Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Expand
Code Block
languagesql
CREATE VIEW [dbo].[PW001SRV203] AS
SELECT t.PIN,
       t.EMPLOYMENTSTARTDATE,
       t.EMPLOYMENTENDDATE,
       t.NUMORGID,
       t.NAME,
       t.ORGANIZATION,
       t.[RANK],
       t.[RANK CODE],
       t.ACTIVITY,
       t.[ACTIVITY START],
       t.[ACTIVITY END],
       t.[ACTIVITY ESTIMATED END],
       t.[ACTIVITY VESSEL],
       t.[ACTIVITY DEPARTMENT],
       t.[ACTIVITY PAYSCALE TABLE],
       t.[ACTIVITY PAYSCALE CODE],
       t.[Contract Type],
       t.[Contract Name],
       t.[Contract Rank],
       t.[Contract Start],
       t.[Contract End],
       t.[CONTRACT PAYSCALE TABLE],
       t.[CONTRACT PAYSCALE],
       t.[CONTRACT PAYSCALE TABLE NAME],
       t.[CONTRACT PAYSCALE NAME],
       t.ISSUES
FROM   (
           SELECT main.PIN,
                  main.EMPLOYMENTSTARTDATE,
                  main.EMPLOYMENTENDDATE,
                  main.NUMORGID,
                  main.NAME,
                  main.ORGANIZATION,
                  main.[RANK],
                  main.[RANK CODE],
                  main.ACTIVITY,
                  main.[ACTIVITY START],
                  main.[ACTIVITY END],
                  main.[ACTIVITY ESTIMATED END],
                  main.[ACTIVITY VESSEL],
                  main.[ACTIVITY DEPARTMENT],
                  main.[ACTIVITY POSITION],
                  main.[ACTIVITY PAYSCALE TABLE],
                  main.[ACTIVITY PAYSCALE CODE],
                  main.ROW#,
                  main.[Contract Type],
                  main.[Contract Name],
                  main.[Contract Rank],
                  main.[Contract Start],
                  main.[Contract End],
                  main.[CONTRACT PAYSCALE TABLE],
                  main.[CONTRACT PAYSCALE],
                  main.[CONTRACT PAYSCALE TABLE NAME],
                  main.[CONTRACT PAYSCALE NAME],
                  ISNULL(
                      STUFF(
                          ISNULL(NULLIF(', ' + main.issue1, ', '), '') +
                          ISNULL(NULLIF(', ' + main.issue2, ', '), '') +
                          ISNULL(NULLIF(', ' + main.issue3, ', '), '') +
                          ISNULL(NULLIF(', ' + main.issue4, ', '), '') +
                          ISNULL(NULLIF(', ' + main.issue5, ', '), '') +
                          ISNULL(NULLIF(', ' + main.issue6, ', '), '') +
                          ISNULL(NULLIF(', ' + main.issue7, ', '), '') +
                          ISNULL(NULLIF(', ' + main.issue8, ', '), '') +
                          ISNULL(NULLIF(', ' + main.issue9, ', '), ''),
                          1,
                          1,
                          ''
                      ),
                      ''
                  )  AS [ISSUES]
           FROM   (
                      SELECT p.PIN,
                             p.EMPLOYMENTSTARTDATE,
                             p.EMPLOYMENTENDDATE,
                             p.CLIENT        NUMORGID,
                             CASE 
                                  WHEN PayslipStatus.PAYSLIPSTATUS = 'Y' THEN 'Distributed'
                                  ELSE       'Not Distributed'
                             END 'PAYSLIP STATUS',
                             company.PERIODE 'PAYMENT PERIOD',
                             periode.PStart 'PERIOD START',
                             periode.PEnd 'PERIOD END',
                             p.NAME,
                             p.COSTPLACE  AS 'Department/Cost Place Code',
                             c43.NAME     AS 'Department/Cost Place',
                             ORGAN.NAME 'ORGANIZATION',
                             c02.NAME 'RANK',
                             dbo.ad_orgPosC02Code(
                                 (
                                     SELECT ORGCODE
                                     FROM   pworg
                                     WHERE  orgtype = 5
                                            AND numorgid = a.NUMORGID
                                 )
                             )'RANK CODE',
                             p.NATIONALITY 'NATIONALITY CODE',
                             (
                                 SELECT TEXT
                                 FROM   pw001c12
                                 WHERE  code = a.code
                             ) 'ACTIVITY',
                             a.DATEFROM 'ACTIVITY START',
                             a.DATETO 'ACTIVITY END',
                             a.TODATEESTIMATED 'ACTIVITY ESTIMATED END',
                             DATEDIFF(
                                 DAY,
                                 (
                                     CASE 
                                          WHEN (
                                                   SELECT MIN(DATEFROM)
                                                   FROM   pw001p03 pa
                                                   WHERE  pa.PIN = p.PIN
                                                          AND pa.datefrom < (
                                                                  DATEADD(
                                                                      MM,
                                                                      1,
                                                                      CAST(
                                                                          CASE 
                                                                               WHEN RIGHT(CAST(company.PERIODE AS VARCHAR), 2) 
                                                                                    =
                                                                                    '00' THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4) 
                                                                                    + '01'
                                                                               WHEN CONVERT(INT, RIGHT(CAST(company.PERIODE AS VARCHAR), 2)) 
                                                                                    >
                                                                                    12 THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4) 
                                                                                    + '12'
                                                                               ELSE CAST(company.PERIODE AS VARCHAR(6))
                                                                          END + '01' AS DATETIME
                                                                      )
                                                                  ) -1
                                                              )
                                                          AND ISNULL(pa.dateto, pa.TODATEESTIMATED) >= (
                                                                  CAST(
                                                                      CASE 
                                                                           WHEN RIGHT(CAST(company.PERIODE AS VARCHAR), 2) 
                                                                                = '00' THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4)
                                                                                + '01'
                                                                           WHEN CONVERT(INT, RIGHT(CAST(company.PERIODE AS VARCHAR), 2)) 
                                                                                > 12 THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4) 
                                                                                + '12'
                                                                           ELSE CAST(company.PERIODE AS VARCHAR(6))
                                                                      END + '01' AS DATETIME
                                                                  )
                                                              )
                                               ) 
                                               < (
                                                   CAST(
                                                       CASE 
                                                            WHEN RIGHT(CAST(company.PERIODE AS VARCHAR), 2) = '00' THEN 
                                                                 LEFT(CAST(company.PERIODE AS VARCHAR), 4)
                                                                 + '01'
                                                            WHEN CONVERT(INT, RIGHT(CAST(company.PERIODE AS VARCHAR), 2)) 
                                                                 > 12 THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4)
                                                                 + '12'
                                                            ELSE CAST(company.PERIODE AS VARCHAR(6))
                                                       END + '01' AS DATETIME
                                                   )
                                               ) THEN CAST(
                                                   CASE 
                                                        WHEN RIGHT(CAST(company.PERIODE AS VARCHAR), 2) = '00' THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4)
                                                             + '01'
                                                        WHEN CONVERT(INT, RIGHT(CAST(company.PERIODE AS VARCHAR), 2)) >
                                                             12 THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4)
                                                             + '12'
                                                        ELSE CAST(company.PERIODE AS VARCHAR(6))
                                                   END + '01' AS DATETIME
                                               )
                                          ELSE (
                                                   SELECT MIN(DATEFROM)
                                                   FROM   pw001p03 pa
                                                   WHERE  pa.PIN = p.PIN
                                                          AND pa.datefrom < (
                                                                  DATEADD(
                                                                      MM,
                                                                      1,
                                                                      CAST(
                                                                          CASE 
                                                                               WHEN RIGHT(CAST(company.PERIODE AS VARCHAR), 2) 
                                                                                    =
                                                                                    '00' THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4) 
                                                                                    + '01'
                                                                               WHEN CONVERT(INT, RIGHT(CAST(company.PERIODE AS VARCHAR), 2)) 
                                                                                    >
                                                                                    12 THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4) 
                                                                                    + '12'
                                                                               ELSE CAST(company.PERIODE AS VARCHAR(6))
                                                                          END + '01' AS DATETIME
                                                                      )
                                                                  ) -1
                                                              )
                                                          AND ISNULL(pa.dateto, pa.TODATEESTIMATED) >= (
                                                                  CAST(
                                                                      CASE 
                                                                           WHEN RIGHT(CAST(company.PERIODE AS VARCHAR), 2) 
                                                                                = '00' THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4)
                                                                                + '01'
                                                                           WHEN CONVERT(INT, RIGHT(CAST(company.PERIODE AS VARCHAR), 2)) 
                                                                                > 12 THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4) 
                                                                                + '12'
                                                                           ELSE CAST(company.PERIODE AS VARCHAR(6))
                                                                      END + '01' AS DATETIME
                                                                  )
                                                              )
                                               )
                                     END
                                 ),
                                 (
                                     CASE 
                                          WHEN (
                                                   SELECT MAX(ISNULL(pa.DATETO, pa.TODATEESTIMATED))
                                                   FROM   pw001p03 pa
                                                   WHERE  pa.PIN = p.PIN
                                                          AND pa.datefrom < (
                                                                  DATEADD(
                                                                      MM,
                                                                      1,
                                                                      CAST(
                                                                          CASE 
                                                                               WHEN RIGHT(CAST(company.PERIODE AS VARCHAR), 2) 
                                                                                    =
                                                                                    '00' THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4) 
                                                                                    + '01'
                                                                               WHEN CONVERT(INT, RIGHT(CAST(company.PERIODE AS VARCHAR), 2)) 
                                                                                    >
                                                                                    12 THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4) 
                                                                                    + '12'
                                                                               ELSE CAST(company.PERIODE AS VARCHAR(6))
                                                                          END + '01' AS DATETIME
                                                                      )
                                                                  ) -1
                                                              )
                                                          AND ISNULL(pa.dateto, pa.TODATEESTIMATED) >= (
                                                                  CAST(
                                                                      CASE 
                                                                           WHEN RIGHT(CAST(company.PERIODE AS VARCHAR), 2) 
                                                                                = '00' THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4)
                                                                                + '01'
                                                                           WHEN CONVERT(INT, RIGHT(CAST(company.PERIODE AS VARCHAR), 2)) 
                                                                                > 12 THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4) 
                                                                                + '12'
                                                                           ELSE CAST(company.PERIODE AS VARCHAR(6))
                                                                      END + '01' AS DATETIME
                                                                  )
                                                              )
                                               )
                                               > (
                                                   DATEADD(
                                                       MM,
                                                       1,
                                                       CAST(
                                                           CASE 
                                                                WHEN RIGHT(CAST(company.PERIODE AS VARCHAR), 2) = '00' THEN 
                                                                     LEFT(CAST(company.PERIODE AS VARCHAR), 4)
                                                                     + '01'
                                                                WHEN CONVERT(INT, RIGHT(CAST(company.PERIODE AS VARCHAR), 2)) 
                                                                     > 12 THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4)
                                                                     + '12'
                                                                ELSE CAST(company.PERIODE AS VARCHAR(6))
                                                           END + '01' AS DATETIME
                                                       )
                                                   ) -1
                                               ) THEN (
                                                   DATEADD(
                                                       MM,
                                                       1,
                                                       CAST(
                                                           CASE 
                                                                WHEN RIGHT(CAST(company.PERIODE AS VARCHAR), 2) = '00' THEN 
                                                                     LEFT(CAST(company.PERIODE AS VARCHAR), 4)
                                                                     + '01'
                                                                WHEN CONVERT(INT, RIGHT(CAST(company.PERIODE AS VARCHAR), 2)) 
                                                                     > 12 THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4)
                                                                     + '12'
                                                                ELSE CAST(company.PERIODE AS VARCHAR(6))
                                                           END + '01' AS DATETIME
                                                       )
                                                   ) -1
                                               )
                                          ELSE (
                                                   SELECT MAX(ISNULL(pa.DATETO, pa.TODATEESTIMATED))
                                                   FROM   pw001p03 pa
                                                   WHERE  pa.PIN = p.PIN
                                                          AND pa.datefrom < (
                                                                  DATEADD(
                                                                      MM,
                                                                      1,
                                                                      CAST(
                                                                          CASE 
                                                                               WHEN RIGHT(CAST(company.PERIODE AS VARCHAR), 2) 
                                                                                    =
                                                                                    '00' THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4) 
                                                                                    + '01'
                                                                               WHEN CONVERT(INT, RIGHT(CAST(company.PERIODE AS VARCHAR), 2)) 
                                                                                    >
                                                                                    12 THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4) 
                                                                                    + '12'
                                                                               ELSE CAST(company.PERIODE AS VARCHAR(6))
                                                                          END + '01' AS DATETIME
                                                                      )
                                                                  ) -1
                                                              )
                                                          AND ISNULL(pa.dateto, pa.TODATEESTIMATED) >= (
                                                                  CAST(
                                                                      CASE 
                                                                           WHEN RIGHT(CAST(company.PERIODE AS VARCHAR), 2) 
                                                                                = '00' THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4)
                                                                                + '01'
                                                                           WHEN CONVERT(INT, RIGHT(CAST(company.PERIODE AS VARCHAR), 2)) 
                                                                                > 12 THEN LEFT(CAST(company.PERIODE AS VARCHAR), 4) 
                                                                                + '12'
                                                                           ELSE CAST(company.PERIODE AS VARCHAR(6))
                                                                      END + '01' AS DATETIME
                                                                  )
                                                              )
                                               )
                                     END
                                 )
                             ) + 1 'ACTIVITY DAYS',
                             (
                                 SELECT NAME
                                 FROM   pworg
                                 WHERE  NUMORGID = a.VESSEL
                             ) 'ACTIVITY VESSEL',
                             (
                                 SELECT NAME
                                 FROM   pworg
                                 WHERE  orgtype = 4
                                        AND numorgid = (
                                                SELECT NUMORGIDABOVE
                                                FROM   pworg
                                                WHERE  orgtype = 5
                                                       AND numorgid = a.NUMORGID
                                            )
                             ) 'ACTIVITY DEPARTMENT',
                             (
                                 SELECT NAME
                                 FROM   pworg
                                 WHERE  orgtype = 5
                                        AND numorgid = a.NUMORGID
                             ) 'ACTIVITY POSITION',
                             a.PAYSCALETABLE 'ACTIVITY PAYSCALE TABLE',
                             a.PAYSCALE 'ACTIVITY PAYSCALE CODE',
                             CASE--       p0p.PAYSCALETABLE 'PD PAYSCALE TABLE',
                         WHEN p20.CONTRACTKIND = 0 THEN-- 'Main Contract'     p0p.PAYSCALECODE 'PD PAYSCALE',
                           WHEN p20.CONTRACTKIND = 1 THEN 'Sub Contract' ROW_NUMBER() OVER(
                                 PARTITION BY p20.PIN ORDER WHENBY p20.CONTRACTKINDPIN,
 = 2 THEN 'Ammendment'                             p20.CONTRACTKIND DESC
    ELSE ''                        )      END      AS ROW#,
  AS 'Contract Type',                         CASE 
   C32CONT.Text 'Contract Name',                             WHEN C02CONT.NAMEp20.CONTRACTKIND = 0 THEN 'Main Contract Rank',
                             p20.DATESTART 'Contract Start',   WHEN p20.CONTRACTKIND = 1 THEN 'Sub Contract'
                    p20.DATEEND 'Contract End',            WHEN p20.CONTRACTKIND = 2 THEN  'Ammendment'
           p20.PAYSCALETABLE 'CONTRACT PAYSCALE TABLE',                     ELSE ''
       p20.PAYSCALECODE 'CONTRACT PAYSCALE',                    END          payscale.Table_NameAS 'CONTRACT PAYSCALE TABLE NAMEContract Type',
                             payscaleC32CONT.Payscale_NameText 'CONTRACTContract PAYSCALE NAMEName',
                             payC02CONT.CALCULATEDBYNAME 'CALCULATEDContract BYRank',
                             payp20.CalculateTimeDATESTART 'CALCULATEContract TIMEStart',
                             CASEp20.DATEEND 'Contract End',
                             p20.PAYSCALETABLE 'CONTRACT PAYSCALE TABLE',
WHEN P.Transferbalance = '0' THEN 'Carry Forward To Next Month'                    p20.PAYSCALECODE 'CONTRACT PAYSCALE',
            WHEN P.Transferbalance = '1' THEN 'Transfer To Bank Account'                 payscale.Table_Name 'CONTRACT PAYSCALE TABLE NAME',
                             payscale.Payscale_Name 'CONTRACT PAYSCALE NAME',
       WHEN P.Transferbalance = '2' THEN 'Interpay'                 pay.CALCULATEDBY 'CALCULATED BY',
               WHEN P.Transferbalance = '3' THEN 'Alpha Credit Bank'       pay.CalculateTime 'CALCULATE TIME',
                         WHEN P.Transferbalance = '4' THENCASE 'Cash'
                                  WHEN P.Transferbalance = '50' THEN 'Citibank Direct DepositCarry Forward To Next Month'
                                  WHEN P.Transferbalance = '61' THEN 'CitibankTransfer To Bank Account'
                                  WHEN P.Transferbalance = '72' THEN 'Chase ManhattanInterpay'
                                  WHEN P.Transferbalance = '83' THEN 'HellenicAlpha Credit Bank'
                                  WHEN P.Transferbalance = '94' THEN 'Isabel DomesticCash'
                                  WHEN P.Transferbalance = 'A5' THEN 'IsabelCitibank Direct InternationalDeposit'
                                  WHEN P.Transferbalance = 'B6' THEN 'Bank TransferCitibank'
                                  WHEN P.Transferbalance = 'C7' THEN 'SwedishChase DomesticManhattan'
                                  WHEN P.Transferbalance = 'D8' THEN 'SwedishHellenic InternationalBank'
                                  WHEN P.Transferbalance = 'E9' THEN 'PhilippineIsabel BankingDomestic'
                                  WHEN P.Transferbalance = 'FA' THEN 'ManualIsabel BankInternational'
                                  WHEN P.Transferbalance = 'GB' THEN 'ZagrebanckaBank Transfer'
                                  WHEN P.Transferbalance = 'HC' THEN 'INGSwedish BankDomestic'
                                  WHEN P.Transferbalance = 'ID' THEN 'Direct Deposit E-MoneeSwedish International'
                                  WHEN P.Transferbalance = 'JE' THEN 'DeutschePhilippine BankBanking'
                                  WHEN P.Transferbalance = 'KF' THEN 'SACSManual Bank'
                                  WHEN P.Transferbalance = 'LG' THEN 'Hellenic CyprusZagrebancka'
                                  WHEN P.Transferbalance = 'MH' THEN 'MTING 100Bank'
                                  WHEN P.Transferbalance = 'NI' THEN 'Citibank (PL)Direct Deposit E-Monee'
                                  WHEN P.Transferbalance = '0J' THEN 'AgentDeutsche .RBank'
                                  WHEN P.Transferbalance = 'PK' THEN 'German BankSACS'
                                  WHEN P.Transferbalance = 'QL' THEN 'TridentHellenic TrustCyprus'
                                  WHEN P.Transferbalance = 'RM' THEN 'CitibankMT (Asia)100'
                                  WHEN P.Transferbalance = 'SN' THEN 'PNCCitibank Bank(PL)'
                                  WHEN P.Transferbalance = 'T0' THEN 'ChaseAgent Insight.R'
                                  WHEN P.Transferbalance = 'UP' THEN 'OceanGerman PayBank'
                                  WHEN P.Transferbalance = 'VQ' THEN 'BancoTrident de OroTrust'
                                  WHEN P.Transferbalance = 'WR' THEN 'Bank of Philippine IslandCitibank (Asia)'
                                  WHEN P.Transferbalance = 'XS' THEN 'CitiDirectPNC (Onboard)Bank'
                                  WHEN P.Transferbalance = 'YT' THEN 'Metrobank Direct (PH)Chase Insight'
                                  WHEN P.Transferbalance = 'ZU' THEN 'ElektronOcean Pay'
                                  WHEN P.Transferbalance = 'A1V' THEN 'E-Banking (Maramut)Banco de Oro'
                                  WHEN P.Transferbalance = 'A2W' THEN 'RBSBank of DirectPhilippine AccessIsland'
                                  WHEN P.Transferbalance = 'A3X' THEN 'BrazilianCitiDirect Banks(Onboard)'
                                  WHEN P.Transferbalance = 'A4Y' THEN 'NETSMetrobank Direct (PH)'
                                  WHEN P.Transferbalance = 'A5Z' THEN 'NONEElektron'
                                  WHEN P.Transferbalance = 'A6A1' THEN 'JDP MorganE-Banking (Maramut)'
                                  WHEN P.Transferbalance = 'A7A2' THEN 'J.RBS P.Direct Morgan Access'
                                  WHEN P.Transferbalance = 'A8A3' THEN 'SparBrazilian Nord DomesticBanks'
                                  WHEN P.Transferbalance = 'A9A4' THEN 'Spar Nord InternationalNETS'
                                  WHEN P.Transferbalance = 'B1A5' THEN 'RabobankNONE'
                                  WHEN P.Transferbalance = 'B2A6' THEN 'DeutscheJDP BankMorgan'
                                  WHEN P.Transferbalance = 'B4A7' THEN 'ISO20022J. P. Morgan Access'
                                  WHEN P.Transferbalance = 'B5A8' THEN 'BrightwellSpar Nord Domestic'
                             END     WHEN P.Transferbalance = 'A9' THEN 'Spar ASNord International'PAYMENT METHOD',
                                  WHEN payP.CURRENCYFORPAYMENTTransferbalance = 'B1'PAYMENT THEN CURRENCY','Rabobank'
                                   CASE WHEN P.Transferbalance = 'B2' THEN 'Deutsche Bank'
                                  WHEN pP.EMAILPAYSLIPTransferbalance = 'FB4' THEN 'OffISO20022'
                                  WHEN pP.EMAILPAYSLIPTransferbalance = 'TB5' THEN 'OnBrightwell'
                             END          AS 'DISTRIBUREPAYMENT PAYSLIP OPTIONMETHOD',
                             emailpay.TELENOCURRENCYFORPAYMENT 'EMAILPAYMENT CURRENCY',
                             CASE 
                                  WHEN Pp.EMPLOYMENTSTARTDATEEMAILPAYSLIP IS= NULL'F' THEN 'EmploymentOff'
 Start Date missing'                               WHEN p.EMAILPAYSLIP = 'T' ELSETHEN 'On'
                             END 'DISTRIBURE PAYSLIP OPTION',
          Issue1,                   email.TELENO 'EMAIL',
         CASE                    CASE 
              WHEN P.EMPLOYMENTSTARTDATE > a.DATEFROM THEN                WHEN P.EMPLOYMENTSTARTDATE IS                      NULL THEN 'Employment Start Date greater than Activity Start Datemissing'
                                  ELSE ''
                             END             Issue2Issue1,
                             CASE 
                                  WHEN AP.DATEFROMEMPLOYMENTSTARTDATE < CAST(GETDATE() AS DATE)> a.DATEFROM THEN 
                                       AND ISNULL(A.PLANNED, 'N') = 'Y'
  'Employment Start Date greater than Activity Start Date'
                                  ELSE ''
OR A.TODATEESTIMATED < CAST(GETDATE() AS DATE)                        END             Issue2,
  AND A.DATETO IS NULL THEN 'Activity not confirmed'                    CASE 
             ELSE ''                    WHEN A.DATEFROM < CAST(GETDATE() AS DATE)
    END             Issue3,                      AND ISNULL(A.PLANNED, 'N') = 'Y'
   CASE                                    WHENOR NULLIF(A.PAYSCALETABLE, ''TODATEESTIMATED < CAST(GETDATE() IS NOT NULLAS DATE)
                                       AND NULLIF(A.PAYSCALE, '') DATETO IS NULL THEN 'Activity Payscale Code missing'not confirmed'
                                      ELSE ''
                                 END         Issue3,
   Issue4,                              CASE 
                                      WHEN NULLIF(A.PAYSCALETABLE, '') IS NOT NULL
                                       AND NULLIF(aA.PAYSCALETABLEPAYSCALE, '') IS NOT NULL THEN 'Activity Payscale Code missing'
                                      AND NULLIF(a.PAYSCALE, ELSE '')
IS NOT NULL                               END         )Issue4,
                                 CASE 
    AND (                                 WHEN (
         (p20.PAYSCALECODE  <> a.PAYSCALE)                                   NULLIF(a.PAYSCALETABLE, '') IS NOT NULL
    OR (p20.PAYSCALETABLE <> a.PAYSCALETABLE)                                        ) THEN 'Payscale mismatch between Contract and Activity'AND NULLIF(a.PAYSCALE, '') IS NOT NULL
                                     ELSE ''     )
                        END          AS Issue5,    AND (
                        CASE                       (p20.PAYSCALECODE <> a.PAYSCALE)
          WHEN p20.DATESTART > periode.PEnd THEN 'Invalid Contract Start Date'                             OR (p20.PAYSCALETABLE <> a.PAYSCALETABLE)
  ELSE ''                              END          AS) Issue6,THEN 'Payscale mismatch between Contract and Activity'
                       CASE               ELSE ''
                   WHEN p20.CONTRACTKIND IS NULL THEN 'No valid contract for this period'              END      AS Issue5,
                                 CASE 
                                      WHEN p20.DATESTART > periode.PEnd THEN 'Invalid Contract Start Date'
                                      ELSE ''
                                 END      AS Issue6,
                                 CASE 
                                      WHEN p20.CONTRACTKIND IS NULL THEN 'No valid contract for this period'
                                      ELSE ''
                                 END         Issue7,
                                 CASE 
                                      WHEN (
                                               a.CODE IN (SELECT CODE
                                                          FROM   PW001C12
                                                          WHERE  OPTIONS LIKE '%S%')
                                           )
                                       AND (
                                               a.DATEFROM < (
                                                   CASE 
                                                        WHEN p20.DATESTART > maincon.DATESTART THEN maincon.DATESTART
                                                        ELSE p20.DATESTART
                                                   END
                                               )
                                           ) THEN 'No contract starting from ' + CONVERT(VARCHAR, a.DATEFROM, 1) +
                                           ' to ' + CONVERT(VARCHAR, p20.DATESTART, 1)
                                      ELSE ''
                                 END         Issue8,
                                 CASE 
                                      WHEN (a.PAYSCALETABLE IS NULL OR a.PAYSCALETABLE = '')
                                       AND (a.PAYSCALE IS NULL OR a.PAYSCALE = '') THEN 
                                           'Activity Payscale Code and Activity Payscale Table are missing.'
                                      WHEN a.PAYSCALETABLE IS NULL
                                       OR a.PAYSCALETABLE = '' THEN 'Activity Payscale Table is missing'
                                     WHEN a.PAYSCALE IS NULL
                                       OR a.PAYSCALE = '' THEN 'Activity Payscale Code is missing'
                                     ELSE ''
                                END          Issue9
                         FROM   pw001p01 p
                                JOIN (
                                         SELECT NUMORGID,
                                                PERIODE,
                                                CAST(
                                                    CASE 
                                                         WHEN RIGHT(CAST(PERIODE AS VARCHAR), 2) = '00' THEN LEFT(CAST(PERIODE AS VARCHAR), 4) 
                                                              +
                                                              '01'
                                                         WHEN CONVERT(INT, RIGHT(CAST(PERIODE AS VARCHAR), 2)) > 12 THEN 
                                                              LEFT(CAST(PERIODE AS VARCHAR), 4)
                      ELSE ''                              END         + '12'
  Issue7,                   CASE                         WHEN (a.CODE IN (SELECT CODE FROM PW001C12 WHERE OPTIONS LIKE '%S%')) ANDELSE CAST(a.DATEFROMPERIODE <AS (CASE WHEN p20.DATESTART>prevcon.DATESTART THEN prevcon.DATESTART ELSE p20.DATESTART END)) THEN 'No contract starting from ' + CONVERT(VARCHAR, a.DATEFROM, 1) + ' to ' +  CONVERT(VARCHAR, p20.DATESTART, 1)VARCHAR(6))
                                                    END ELSE+ '01' AS DATETIME
                                     END           ) AS Issue8,'PStart',
                     CASE                          WHEN (a.CODE IN (SELECT CODE FROM PW001C12 WHERE OPTIONS LIKE '%S%')) AND (a.DATEFROM > p20.DATESTART) THEN 'Contract started on ' + CONVERT(VARCHAR, p20.DATESTART, 1) + ' instead of ' +  CONVERT(VARCHAR, a.DATEFROM, 1)DATEADD(
                                                    MM,
              ELSE ''                   END             Issue9     1,
                 FROM   pw001p01 p                              JOIN CAST(
                                      SELECT NUMORGID,                 CASE 
                           PERIODE,                                  WHEN RIGHT(CAST(PERIODE AS VARCHAR), 2) = '00' THEN LEFT(CAST(PERIODE AS VARCHAR), 4)
  CAST(                                                  CASE              + '01'
                                        WHEN RIGHT(CAST(PERIODE AS VARCHAR), 2) = '00' THEN LEFT(CAST(PERIODE AS VARCHAR), 4)          WHEN CONVERT(INT, RIGHT(CAST(PERIODE AS VARCHAR), 2)) > 12 THEN 
                                         +                         LEFT(CAST(PERIODE AS VARCHAR), 4)
                               '01'                                   + '12'
                  WHEN CONVERT(INT, RIGHT(CAST(PERIODE AS VARCHAR), 2)) > 12 THEN                                   ELSE CAST(PERIODE AS VARCHAR(6))
                      LEFT(CAST(PERIODE AS VARCHAR), 4)                               END + '01' AS DATETIME
                        + '12'                           )
                           ELSE CAST(PERIODE AS VARCHAR(6))                  ) -1 AS 'PEnd'
                            END + '01' AS DATETIME         FROM   PWORGCMP
                                 ) AS 'PStart',      WHERE  PAYROLLENABLED = 'Y'
                                   DATEADD(      UNION ALL
                                         SELECT MMNUMORGID,
                                                 1PERIODE,

                                                CAST(

                                                    CASE 
                                                          WHEN RIGHT(CAST(PERIODE AS VARCHAR), 2) = '00' THEN LEFT(CAST(PERIODE AS VARCHAR), 4) 
                                                              +
                                                              '01'

                                                         WHEN CONVERT(INT, RIGHT(CAST(PERIODE AS VARCHAR), 2)) > 12 THEN 
                                                               LEFT(CAST(PERIODE AS VARCHAR), 4)

                                                              + '12'
                                                         ELSE CAST(PERIODE AS VARCHAR(6))
                                                    END + ELSE CAST(PERIODE AS VARCHAR(6))'01' AS DATETIME
                                                ) AS 'PStart',
  END + '01' AS DATETIME                                          DATEADD(
       )                                             MM,
) -1 AS 'PEnd'                                       FROM   PWORGCMP       1,
                               WHERE  PAYROLLENABLED = 'Y'                 CAST(
                     UNION ALL                                  CASE 
   SELECT NUMORGID,                                              PERIODE,           WHEN RIGHT(CAST(PERIODE AS VARCHAR), 2) = '00' THEN LEFT(CAST(PERIODE AS VARCHAR), 4)
                       CAST(                                           + '01'
     CASE                                                        WHEN CONVERT(INT, RIGHT(CAST(PERIODE AS VARCHAR), 2)) => '00'12 THEN LEFT(CAST(PERIODE AS VARCHAR), 4) 
                                                                  LEFT(CAST(PERIODE AS VARCHAR), 4)
       +                                                           + '0112'
                                                      WHEN CONVERT(INT, RIGHT(       ELSE CAST(PERIODE AS VARCHAR), 2)) > 12 THEN(6))
                                                        END + '01' AS DATETIME
                     LEFT(CAST(PERIODE AS VARCHAR), 4)                            )
                               + '12'                ) -1 AS 'PEnd'
                                   ELSE CAST(PERIODE AS VARCHAR(6))   FROM   PWORGVES
                                         WHERE  ENDPAYROLLENABLED += '01Y'
AS DATETIME                                    ) periode
        ) AS 'PStart',                           ON  p.CLIENT = periode.NUMORGID
               DATEADD(                 JOIN PWORG ORGAN
                              MM,       ON  p.CLIENT = ORGAN.NUMORGID
                                JOIN PWORGCMP company
   1,                                  ON  p.CLIENT = company.NUMORGID
           CAST(                     LEFT JOIN PW001P0P p0p
                             CASE        ON  p0p.PIN = p.PIN
                                     AND p0p.PNUMBER = 'A'
      WHEN RIGHT(CAST(PERIODE AS VARCHAR), 2) = '00' THEN LEFT(CAST(PERIODE AS VARCHAR), 4)                    AND p0p.PAYSCALECODE IS NOT NULL
                                     AND p0p.PAYSCALECODE +<> '01'
                                LEFT JOIN PW001PAY pay
                         WHEN CONVERT(INT, RIGHT(CAST(PERIODE AS VARCHAR), 2)) > 12 THEN    ON  pay.PIN = p.PIN
                                     AND pay.CalculateTime IS NOT NULL
              LEFT(CAST(PERIODE AS VARCHAR), 4)                    AND pay.PERIODEUSED = company.PERIODE
                                     AND NOT EXISTS(
+ '12'                                            SELECT 1
             ELSE CAST(PERIODE AS VARCHAR(6))                             FROM   PW001PAY PAY2
                    END + '01' AS DATETIME                     WHERE  PAY.PIN = PAY2.PIN
                        )                            AND PAY2.PERIODEUSED = company.PERIODE
              ) -1 AS 'PEnd'                                   AND (
  FROM   PWORGVES                                       WHERE  PAYROLLENABLED = 'Y'            PAY2.CALCULATETIME > PAY.CALCULATETIME
                    ) periode                                   ON  p.CLIENT = periode.NUMORGIDOR (
                            JOIN PWORG ORGAN                                   ON  pPAY2.CLIENTCALCULATETIME = ORGANPAY.NUMORGIDCALCULATETIME
                             JOIN PWORGCMP company                                   ON --AND pPAY2.CLIENTUUID => company.NUMORGIDPAY.UUID
                                  LEFT JOIN PW001P0P p0p                          )
        ON  p0p.PIN = p.PIN                                   AND p0p.PNUMBER = 'A'      )
                            AND p0p.PAYSCALECODE IS NOT NULL         )
                         AND p0p.PAYSCALECODE <> ''    LEFT JOIN PW001P1R p1r5
                      LEFT JOIN PW001PAY pay            ON  p1r5.PIN = p.PIN
                  ON  pay.PIN = p.PIN               AND p1r5.RATENO = 5
                AND pay.CalculateTime IS NOT NULL            LEFT JOIN pw001c02 c02
                   AND pay.PERIODEUSED = company.PERIODE               ON  p.rank = c02.code
               AND NOT EXISTS(               LEFT JOIN PW001P0Y P0Y
                        SELECT 1            ON  p.PIN = P0Y.PIN
                          FROM   PW001PAY PAY2  LEFT JOIN PW001P0T email
                                     WHEREON  PAYemail.PIN = PAY2p.PIN
                                     AND email.TELETYPE =    6
     AND PAY2.PERIODEUSED = company.PERIODE                              AND NOT EXISTS (
                AND (                            SELECT 1
                            PAY2.CALCULATETIME > PAY.CALCULATETIME               FROM   pw001p0t t
                                      OR (      WHERE  t.PIN = email.PIN
                                                    AND  PAY2t.CALCULATETIMETELETYPE = PAYemail.CALCULATETIMETELETYPE
                                                    AND (
       )                                                     t.TELEPRIORITY )< email.TELEPRIORITY
                                     )                       OR (
     LEFT JOIN PW001P1R p1r5                                   ON  p1r5.PIN = p.PIN                    t.TELEPRIORITY = email.TELEPRIORITY
            AND p1r5.RATENO = 5                              LEFT JOIN pw001c02 c02                   AND t.SEQUENCENO > email.SEQUENCENO
            ON  p.rank = c02.code                              LEFT JOIN PW001P0Y P0Y              )
                    ON  p.PIN = P0Y.PIN                              LEFT JOIN PW001P0T)
email                                   ON  email.PIN = p.PIN  )
                                AND email.TELETYPE = 6      --Activity matching payroll period
                         AND NOT EXISTS (    JOIN PW001P03 a
                                    SELECT 1ON  a.PIN = p.PIN
                                     AND FROMa.CODE IN (SELECT pw001p0tCODE
t                                           WHERE  t.PIN = email.PIN     FROM   PW001C12
                                         AND t.TELETYPE = email.TELETYPE        WHERE  TRANSACTIONCODE <> '')
                                     AND (a.datefrom <= periode.PEnd
                                     AND ISNULL(a.dateto, a.TODATEESTIMATED) >= periode.PStart
             t.TELEPRIORITY < email.TELEPRIORITY                 LEFT JOIN PW001p20 p20sub
                                     ORON ( p20sub.PIN = p.PIN
                                         --AND p20.HISTORICAL = 'F'
                t.TELEPRIORITY = email.TELEPRIORITY                   AND p20sub.DATESTART <= ISNULL(A.DATETO, A.TODATEESTIMATED)
                                     AND COALESCE(
  AND t.SEQUENCENO > email.SEQUENCENO                                        p20sub.DATEEND,
                    )                         (
                            )                     SELECT MIN(t.DATESTART) -1
               )                                  FROM   PW001p20 t
--Activity matching payroll period                              JOIN PW001P03 a              WHERE  t.pin = p20sub.pin
                ON   a.PIN = p.PIN                                   AND at.CODEDATESTART IN (SELECT CODE> p20sub.DATESTART
                                             ),
    FROM   PW001C12                                      a.datefrom
           WHERE  TRANSACTIONCODE <> '')                          ) >= A.DATEFROM
      AND a.datefrom <= periode.PEnd                                --AND   AND ISNULL(p20.DATEEND, ISNULL(aA.datetoDATETO, aA.TODATEESTIMATED)) >= periode.PStart
   
                         LEFT JOIN PW001P20 p20             --AND NOT EXISTS   (
                ON  p20.PIN = p.PIN                     --	SELECT 1  FROM PW001p20. z
        AND P20.DATESTART <= ISNULL(A.DATETO, A.TODATEESTIMATED)                             --	WHERE z.PIN = p20.PIN AND p20.DATESTART AND<= COALESCEISNULL(A.DATETO, A.TODATEESTIMATED)
                                         P20--		AND COALESCE(p20.DATEEND,(SELECT MIN(t.DATESTART) -1                             FROM PW001p20. t WHERE  t.pin = p20.pin AND t.DATESTART > p20.DATESTART), a.DATEFROM) >= A.DATEFROM
           (                              --		AND z.DATESTART > p20.DATESTART)
             SELECT MIN(t.DATESTART) -1                          --AND (p20.dateend IS NULL OR ISNULL(p20.DATEEND,GETDATE()) >= periode.PStart)
             FROM   PW001P20 t                        --AND ISNULL(p20.DATEEND,GETDATE()) >= periode.PStart
                   WHERE  t.pin = p20.pin                  
                                LEFT JOIN PW001p20 ANDmaincon
t.DATESTART > p20.DATESTART                                   ON  maincon.PIN = p.PIN
   ),                                  AND maincon.CONTRACTKIND = 0
     a.datefrom                                AND maincon.CONTRACTIDABOVE IS NULL
   ) >= A.DATEFROM                           LEFT JOIN PW001p20 LEFTp20
JOIN PW001P20 prevcon                                   ON  prevconp20.SEQUENCENO = p20.CONTRACTIDABOVEISNULL(p20sub.SEQUENCENO, maincon.SEQUENCENO)
                                LEFT JOIN PW001C02 C02CONT
                                     ON  p20.RANK = C02CONT.CODE
                                LEFT JOIN PW001C32 C32CONT
                                     ON  p20.CONTRACTTYPE = C32CONT.code
                                LEFT JOIN PWPSC000 PT
                                     ON  ISNULL(a.PAYSCALETABLE, p20.PAYSCALETABLE) = pt.REGULATIVECODE
                                     AND (
  (                                           PT.INCLUDEPLANNEDACTIVITY = 'Y'
                                             OR (PT.INCLUDEPLANNEDACTIVITY <> 'Y' AND a.PLANNED <> 'Y')
                                         )
                                LEFT JOIN PWPSC001 PS
                                     ON  ISNULL(a.PAYSCALE, p20.PAYSCALECODE) = PS.PAYSCALECODE
                                     AND PS.SEQNO = pt.SEQNO
                                LEFT JOIN PWORGVES v
                                     ON  a.VESSEL = v.NUMORGID
                                LEFT JOIN PW001C43 c43
                                     ON  c43.CODE = P.COSTPLACE
                                LEFT JOIN (
                                         SELECT C0.REGULATIVECODE AS 'Table_Code',
                                                C0.REGULATIVENAME AS 'Table_Name',
                                                C1.PAYSCALECODE AS 'Payscale_Code',
                                                C1.PAYSCALENAME AS 'Payscale_Name'
                                         FROM   PWPSC000 C0
                                                LEFT JOIN PWPSC001 C1
                                                     ON  C1.SEQNO = C0.SEQNO
                                     ) payscale
                                     ON  payscale.Table_Code = p20.PAYSCALETABLE
                                     AND payscale.Payscale_Code = p20.PAYSCALECODE
                                LEFT JOIN (
                                         SELECT OLE.PIN,
                                                DOCS.DOCTYPE,
                                                DOCS.[DESCRIPTION],
                                                DOCS.SOURCEDOC,
                                                RIGHT(CAST(DOCS.[DESCRIPTION] AS VARCHAR), 6) AS PAYPERIOD,
                                                --),
                                                CASE 
                                                     WHEN DOCS.[DESCRIPTION] IS NOT NULL THEN 'Y'
                                   CASE                  ELSE 'N'
                                WHEN DOCS.[DESCRIPTION] IS NOT NULL THEN 'Y'          END AS PAYSLIPSTATUS
                                      ELSE 'N'  FROM   PW001P01OLE--left join PW001OLEDOCS PAYSL on PAYSL.pin= pin and DOCTYPE='payslip' and SOURCEDOC like '%periodeused%'
                            END AS PAYSLIPSTATUS                  OLE
                    FROM   PW001P01OLE                         LEFT JOIN PW001OLEDOCS DOCS
                 OLE                                    ON  OLE.DOCNO = DOCS.DOCNO
     LEFT JOIN PW001OLEDOCS DOCS                                             AND DOCS.DOCTYPE = 'payslip'
  ON  OLE.DOCNO = DOCS.DOCNO                                                   --AND DOCS.DOCTYPEDESCRIPTION =LIKE 'payslip%PAYSLIP_202308%'
                                     ) PayslipStatus
                                     ON  PayslipStatus.PIN = p.PIN
                                     AND PayslipStatus.PAYPERIOD = company.PERIODE
                         WHERE  (
                                    (
                                        (
                                            CHARINDEX(a.CODE, pt.ACTIVITYCODES, 0) > 0
                                            OR pt.ACTIVITYCODES IS NULL
                                        )
                                    )
                                    OR (
                                           (
                                               CHARINDEX(a.CODE, PS.ACTIVITYCODES, 0) > 0
                                               OR ps.ACTIVITYCODES IS NULL
                                           )
                                       )
                                )
                  )     Main
       ) T
WHERE  t.issues <> ''
       --AND t.NUMORGID NOT IN (10012602)

Columns Specification

Column

Description/ Location in APM

PIN

PIN

EMPLOYMENTSTARTDATE

Personal Details > Employment > Employment Start Date

EMPLOYMENTENDDATE

Personal Details > Employment > Employment End Date

NUMORGID

Personal Details > Client > NUMORGID

NAME

Full name of the person in Personal Details.

ORGANIZATION

Personal Details > Employment > Organization/Company

RANK

Personal Details > Employment > Current Rank

RANK CODE

Personal Details > Employment > Current Rank Code

ACTIVITY NAME

Activity name of matching current payroll period

ACTIVITY START

Activity start date of matching current payroll period

ACTIVITY END

Activity end date of matching current payroll period

ACTIVITY ESTIMATED END

Activity estimated end date of matching current payroll period

ACTIVTY DEPARTMENT

Activity department of matching current payroll period

ACTIVITY VESSEL

Activity vessel of matching current payroll period

ACTIVITY PAYSCALE TABLE

Activity payscale table of matching current payroll period

ACTIVITY PAYSCALE CODE

Activity payscale code of matching current payroll period

CONTRACT TYPE

Contract Type that links to activity

CONTRACT NAME

Contract Name that links to activity

CONTRACT RANK

Contract Rank that links to activity

CONTRACT START

Contract Start date that links to activity

CONTRACT END

Contract End date that links to activity

CONTRACT PAYSCALE TABLE CODE

Contract Payscale table code that links to activity

CONTRACT PAYSCALE CODE

Contract Payscale code that links to activity

CONTRACT PAYSCALE TABLE NAME

Contract Payscale table name that links to activity

CONTRACT PAYSCALE NAME

Contract Payscale name that links to activity

ISSUES

Possible Issues:

  • Employment Start Date missing

  • Employment Start Date greater than Activity Start Date

  • Activity not confirmed

  • Activity Payscale Code missing

  • Payscale mismatch between Contract and Activity

  • Invalid Contract Start Date

  • No valid contract for this period