Crew Data Issues

Summary

A view that will display all activity and contracts details that matches the current payroll period dates.

Keywords

Data issue, Activity, Contracts

Category

Crew List View

Description

A view that will display all activity and contract details (from Contracts Datagroup) that match the current payroll period dates.

It indicates what possible user mistakes were made while creating/updating the profile.

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

View Sample

image-20240308-040426.png

Main Data Selection

All crew who has sea-service activity that matches the current payroll period.

SQL statement

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 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 PAYSCALE TABLE], main.[ACTIVITY PAYSCALE CODE], 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 WHEN p20.CONTRACTKIND = 0 THEN 'Main Contract' WHEN p20.CONTRACTKIND = 1 THEN 'Sub Contract' WHEN p20.CONTRACTKIND = 2 THEN 'Ammendment' ELSE '' END AS 'Contract Type', C32CONT.Text 'Contract Name', C02CONT.NAME 'Contract Rank', p20.DATESTART 'Contract Start', p20.DATEEND 'Contract End', p20.PAYSCALETABLE 'CONTRACT PAYSCALE TABLE', p20.PAYSCALECODE 'CONTRACT PAYSCALE', payscale.Table_Name 'CONTRACT PAYSCALE TABLE NAME', payscale.Payscale_Name 'CONTRACT PAYSCALE NAME', pay.CALCULATEDBY 'CALCULATED BY', pay.CalculateTime 'CALCULATE TIME', CASE WHEN P.Transferbalance = '0' THEN 'Carry Forward To Next Month' WHEN P.Transferbalance = '1' THEN 'Transfer To Bank Account' WHEN P.Transferbalance = '2' THEN 'Interpay' WHEN P.Transferbalance = '3' THEN 'Alpha Credit Bank' WHEN P.Transferbalance = '4' THEN 'Cash' WHEN P.Transferbalance = '5' THEN 'Citibank Direct Deposit' WHEN P.Transferbalance = '6' THEN 'Citibank' WHEN P.Transferbalance = '7' THEN 'Chase Manhattan' WHEN P.Transferbalance = '8' THEN 'Hellenic Bank' WHEN P.Transferbalance = '9' THEN 'Isabel Domestic' WHEN P.Transferbalance = 'A' THEN 'Isabel International' WHEN P.Transferbalance = 'B' THEN 'Bank Transfer' WHEN P.Transferbalance = 'C' THEN 'Swedish Domestic' WHEN P.Transferbalance = 'D' THEN 'Swedish International' WHEN P.Transferbalance = 'E' THEN 'Philippine Banking' WHEN P.Transferbalance = 'F' THEN 'Manual Bank' WHEN P.Transferbalance = 'G' THEN 'Zagrebancka' WHEN P.Transferbalance = 'H' THEN 'ING Bank' WHEN P.Transferbalance = 'I' THEN 'Direct Deposit E-Monee' WHEN P.Transferbalance = 'J' THEN 'Deutsche Bank' WHEN P.Transferbalance = 'K' THEN 'SACS' WHEN P.Transferbalance = 'L' THEN 'Hellenic Cyprus' WHEN P.Transferbalance = 'M' THEN 'MT 100' WHEN P.Transferbalance = 'N' THEN 'Citibank (PL)' WHEN P.Transferbalance = '0' THEN 'Agent .R' WHEN P.Transferbalance = 'P' THEN 'German Bank' WHEN P.Transferbalance = 'Q' THEN 'Trident Trust' WHEN P.Transferbalance = 'R' THEN 'Citibank (Asia)' WHEN P.Transferbalance = 'S' THEN 'PNC Bank' WHEN P.Transferbalance = 'T' THEN 'Chase Insight' WHEN P.Transferbalance = 'U' THEN 'Ocean Pay' WHEN P.Transferbalance = 'V' THEN 'Banco de Oro' WHEN P.Transferbalance = 'W' THEN 'Bank of Philippine Island' WHEN P.Transferbalance = 'X' THEN 'CitiDirect (Onboard)' WHEN P.Transferbalance = 'Y' THEN 'Metrobank Direct (PH)' WHEN P.Transferbalance = 'Z' THEN 'Elektron' WHEN P.Transferbalance = 'A1' THEN 'E-Banking (Maramut)' WHEN P.Transferbalance = 'A2' THEN 'RBS Direct Access' WHEN P.Transferbalance = 'A3' THEN 'Brazilian Banks' WHEN P.Transferbalance = 'A4' THEN 'NETS' WHEN P.Transferbalance = 'A5' THEN 'NONE' WHEN P.Transferbalance = 'A6' THEN 'JDP Morgan' WHEN P.Transferbalance = 'A7' THEN 'J. P. Morgan Access' WHEN P.Transferbalance = 'A8' THEN 'Spar Nord Domestic' WHEN P.Transferbalance = 'A9' THEN 'Spar Nord International' WHEN P.Transferbalance = 'B1' THEN 'Rabobank' WHEN P.Transferbalance = 'B2' THEN 'Deutsche Bank' WHEN P.Transferbalance = 'B4' THEN 'ISO20022' WHEN P.Transferbalance = 'B5' THEN 'Brightwell' END AS 'PAYMENT METHOD', pay.CURRENCYFORPAYMENT 'PAYMENT CURRENCY', CASE WHEN p.EMAILPAYSLIP = 'F' THEN 'Off' WHEN p.EMAILPAYSLIP = 'T' THEN 'On' END 'DISTRIBURE PAYSLIP OPTION', email.TELENO 'EMAIL', CASE WHEN P.EMPLOYMENTSTARTDATE IS NULL THEN 'Employment Start Date missing' ELSE '' END Issue1, CASE WHEN P.EMPLOYMENTSTARTDATE > a.DATEFROM THEN 'Employment Start Date greater than Activity Start Date' ELSE '' END Issue2, CASE WHEN A.DATEFROM < CAST(GETDATE() AS DATE) AND ISNULL(A.PLANNED, 'N') = 'Y' OR A.TODATEESTIMATED < CAST(GETDATE() AS DATE) AND A.DATETO IS NULL THEN 'Activity not confirmed' ELSE '' END Issue3, CASE WHEN NULLIF(A.PAYSCALETABLE, '') IS NOT NULL AND NULLIF(A.PAYSCALE, '') IS NULL THEN 'Activity Payscale Code missing' ELSE '' END Issue4, CASE WHEN ( NULLIF(a.PAYSCALETABLE, '') IS NOT NULL AND NULLIF(a.PAYSCALE, '') IS NOT NULL ) AND ( (p20.PAYSCALECODE <> a.PAYSCALE) OR (p20.PAYSCALETABLE <> a.PAYSCALETABLE) ) THEN 'Payscale mismatch between Contract and Activity' ELSE '' 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>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) ELSE '' END Issue8, 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) 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) + '12' ELSE CAST(PERIODE AS VARCHAR(6)) END + '01' AS DATETIME ) AS 'PStart', DATEADD( MM, 1, 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 + '01' AS DATETIME ) ) -1 AS 'PEnd' FROM PWORGCMP WHERE PAYROLLENABLED = 'Y' UNION ALL 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) + '12' ELSE CAST(PERIODE AS VARCHAR(6)) END + '01' AS DATETIME ) AS 'PStart', DATEADD( MM, 1, 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 + '01' AS DATETIME ) ) -1 AS 'PEnd' FROM PWORGVES WHERE PAYROLLENABLED = 'Y' ) periode ON p.CLIENT = periode.NUMORGID JOIN PWORG ORGAN ON p.CLIENT = ORGAN.NUMORGID JOIN PWORGCMP company ON p.CLIENT = company.NUMORGID LEFT JOIN PW001P0P p0p ON p0p.PIN = p.PIN AND p0p.PNUMBER = 'A' AND p0p.PAYSCALECODE IS NOT NULL AND p0p.PAYSCALECODE <> '' LEFT JOIN PW001PAY pay ON pay.PIN = p.PIN AND pay.CalculateTime IS NOT NULL AND pay.PERIODEUSED = company.PERIODE AND NOT EXISTS( SELECT 1 FROM PW001PAY PAY2 WHERE PAY.PIN = PAY2.PIN AND PAY2.PERIODEUSED = company.PERIODE AND ( PAY2.CALCULATETIME > PAY.CALCULATETIME OR ( PAY2.CALCULATETIME = PAY.CALCULATETIME ) ) ) LEFT JOIN PW001P1R p1r5 ON p1r5.PIN = p.PIN AND p1r5.RATENO = 5 LEFT JOIN pw001c02 c02 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 AND NOT EXISTS ( SELECT 1 FROM pw001p0t t WHERE t.PIN = email.PIN AND t.TELETYPE = email.TELETYPE AND ( t.TELEPRIORITY < email.TELEPRIORITY OR ( t.TELEPRIORITY = email.TELEPRIORITY AND t.SEQUENCENO > email.SEQUENCENO ) ) ) --Activity matching payroll period JOIN PW001P03 a ON a.PIN = p.PIN AND a.CODE IN (SELECT CODE FROM PW001C12 WHERE TRANSACTIONCODE <> '') AND a.datefrom <= periode.PEnd AND ISNULL(a.dateto, a.TODATEESTIMATED) >= periode.PStart LEFT JOIN PW001P20 p20 ON p20.PIN = p.PIN AND P20.DATESTART <= ISNULL(A.DATETO, A.TODATEESTIMATED) 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 LEFT JOIN PW001P20 prevcon ON prevcon.SEQUENCENO = p20.CONTRACTIDABOVE 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' ELSE 'N' END AS PAYSLIPSTATUS FROM PW001P01OLE OLE LEFT JOIN PW001OLEDOCS DOCS ON OLE.DOCNO = DOCS.DOCNO AND DOCS.DOCTYPE = 'payslip' ) 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 <> ''

Columns Specification

Column

Description/ Location in APM

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

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