Versions Compared

Key

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

...

Page Properties

Summary

This view shows missing/expiring Requirements (Competence, Travel, Medical) for the crew currently onboard or planned to embark.

Keywords

Required Documents

Category

Crew List View

Description

This view shows missing/expiring Requirements (Competence, Travel, Medical) for the crew currently onboard or who are planned to embark based on the setup of the Requirements Profile and the Organization Structure > Crew Change for the Vessel Pool.

View Sample

...

Main Data Selection

All seafarers that have sea-service activity regardless if it's planned or current.

SQL statement

VIEWID should be substituted with the ID of the crew list view that you are creating in your system e.g. PW001SRV20 etc.

Expand
Code Block
CREATE VIEW dbo.PW001SRV86PW001SRV56 AS

SELECT final.PIN,
       final.ALTERNATIVEPIN,
       [Full Name],
       [Organization Name],
       [Current Rank],
       [Nationality],
       [Document Type],
       [Document Code],
       [Document Name],
       [Document Status],
       [Issued Date],
       [Expiry Date],
       VESSEL_NUMORGID,
       [Embarkation Date],
       [Disembarkation Date],
       [Activity Vessel],
       [Activity Department],
       [Activity Position],
       [Scan Status],
       NUMORGID,
       EMPLOYMENTSTARTDATE,
       EMPLOYMENTENDDATE
FROM   (
           SELECT p01.PIN,
                  P01.ALTERNATIVEPIN,
                  p01.CLIENT                NUMORGID,
                  P01.EMPLOYMENTSTARTDATE,
                  P01.EMPLOYMENTENDDATE,
                  p01.[NAME]             AS 'Full Name',
                  org.[NAME]             AS 'Organization Name',
                  c02.NAME               AS 'Current Rank',
                  nat.NATIONALITY        AS 'Nationality',
                  doc.[TYPE]             AS 'Document Type',
                  doc.CODE               AS 'Document Code',
                  docName.[TEXT]         AS 'Document Name',
                  doc.[STATUS]           AS 'Document Status',
                  docDetails.DATEFROM    AS 'Issued Date',
                  docDetails.EXPIRYDATE  AS 'Expiry Date',
                  ves.NUMORGID           AS VESSEL_NUMORGID,
                  P03p03plan.DATEFROM        AS 'Embarkation Date',
                  ISNULL(P03p03plan.DATETO, P03p03plan.TODATEESTIMATED) AS 'Disembarkation Date',
                  ves.[NAME]             AS 'Activity Vessel',
                  dep.[NAME]             AS 'Activity Department',
                  pos.[NAME]             AS 'Activity Position',
                  CASE 
                       WHEN (
                                docDetails.scanneddocno IS NULL
                                OR oledoc.[DOCUMENT] IS NULL
                            ) THEN NCHAR(9940) + ' Missing'
                       WHEN docDetails.SCANVALIDITY = 1
                            AND docDetails.scanneddocno IS NOT NULL THEN NCHAR(10004) + ' Confirmed'
                           WHEN (
                                    docDetails.SCANVALIDITY = 0
                                    OR docDetails.SCANVALIDITY IS NULL
                                )
                            AND scanneddocno IS NOT NULL THEN NCHAR(10006) +
                                ' Not-Confirmed'
                                --ELSE 'N/A'
                  END    END                AS 'Scan Status'
               FROM   (
                      SELECT prc.PIN,   SELECT DISTINCT * --JMV Fetch distinct value as a quickfix
                 prc.[TYPE],         FROM   (
                 CASE                    SELECT prc.PIN,
              WHEN p05.CODE IS NULL THEN 'Missing'                         prc.[TYPE],
         WHEN p05.CODE IS NOT NULL THEN 'Expiring'                             CASE END
AS STATUS,                              prc.COMPETENCE AS CODE,                WHEN p05.CODE IS NULL THEN 'Missing'
        p05.SEQUENCENO                       FROM   (               WHEN p05.CODE IS NOT NULL THEN 'Expiring'
            SELECT DISTINCT p03.PIN,                              END AS STATUS,
        CASE                                    prc.COMPETENCE AS CODE,
        WHEN c12.CODE IS NOT NULL THEN 'Competence/Certificate'                              p05.SEQUENCENO
          END AS TYPE,                         FROM   (
            prc.COMPETENCE                                  FROM  SELECT PW001P03DISTINCT p03.PIN,
                                        JOIN PW001C12 c12             CASE 
                               ON  c12.CODE = p03.CODE                         WHEN c12.CODE IS NOT NULL    THEN 'Competence/Certificate'
            AND  c12.OPTIONS LIKE '%S%'                                       END AS JOINTYPE,
PWORGPRC prc                                              ON  prc.NUMORGID = p03.NUMORGID    prc.COMPETENCE
                             WHERE  p03.DATETO >= CONVERT(VARCHAR, GETDATE(), 112)             FROM   PW001P03 p03
                       OR  p03.DATETO IS NULL                            JOIN PW001C12 )c12
prc                              LEFT JOIN PW001P05 p05                           ON  c12.CODE = p03.CODE
   ON  p05.PIN = prc.PIN                                   AND prc.COMPETENCE = p05.CODE               AND c12.OPTIONS LIKE '%S%'
    UNION ALL                        SELECT p.PIN,                         JOIN PWORGPRC prc
  CASE                                    WHEN                       ON  prc.NUMORGID = p03.NUMORGID
                                                WHERE  p03.DATETO >= CONVERT(VARCHAR, GETDATE(), 112)
                                                       OR  p03.DATETO IS NULL
                                            ) prc
                                            LEFT JOIN PW001P05 p05
                                                 ON  p05.PIN = prc.PIN
                                                 AND p05.CODE = dbo.ad_ReturnReplacingCode(p05.pin, prc.COMPETENCE, 0)
                                     
                                     UNION ALL 
                                     SELECT p.PIN,
                                            CASE 
                                                 WHEN c23.CODE IS NOT NULL THEN 'Travel'
                                                 WHEN c24.code IS NOT NULL THEN 'Medical'
                                            END AS TYPE,
                                            CASE 
                                                 WHEN p08.SEQUENCENO IS NOT NULL THEN 'Expiring'
                                                 WHEN p07.SEQUENCENO IS NOT NULL THEN 'Expiring'
                                                 WHEN p07.SEQUENCENO IS NULL THEN 'Missing'
                                                 WHEN p08.SEQUENCENO IS NULL THEN 'Missing'
                                            END AS STATUS,
                                            rtd.DOCCODE AS Code,
                                            CASE rtd.DOCTYPE
                                                 WHEN 8 THEN p08.SEQUENCENO
                                                 WHEN 7 THEN p07.SEQUENCENO
                                            END AS SEQUENCENO
                                     FROM   PW001P01 p
                                            JOIN (
                                                     SELECT DISTINCT p03.PIN,
                                                            dbo.ad_scanorgtree(p03.NUMORGID, 2) companyID
                                                     FROM   PW001P03 p03
                                                            JOIN PW001C12 c12
                                                                 ON  c12.CODE = p03.CODE
                                                                 AND c12.OPTIONS LIKE '%S%'
                                                     WHERE  p03.DATETO >= CONVERT(VARCHAR, GETDATE(), 112)
                                                            OR  p03.DATETO IS NULL
                                                 ) p03
                                                 ON  p03.PIN = p.PIN
                                            JOIN PWORGRTD rtd
                                                 ON  rtd.NUMORGID = p03.companyID
                                            LEFT JOIN PW001C23 c23
                                                 ON  c23.CODE = rtd.DOCCODE
                                                 AND rtd.DOCTYPE = 8
                                            LEFT JOIN PW001P08 p08
                                                 ON  p08.PIN = p.PIN
                                                 AND p08.CODE = c23.CODE
                                            LEFT JOIN PW001C24 c24
                                                 ON  c24.CODE = rtd.DOCCODE
                                                 AND rtd.DOCTYPE = 7
                                            LEFT JOIN PW001P07 p07
                                                 ON  p07.PIN = p.PIN
                                                 AND p07.CODE = c24.CODE
                                     
                                     UNION ALL
                                     SELECT p01.PIN,
                                            CASE 
                                                 WHEN c23.CODE IS NOT NULL THEN 'Travel'
                                                 WHEN c24.code IS NOT NULL THEN 'Medical'
                             END          AS TYPE,    END AS TYPE,
                       CASE                     CASE 
             WHEN p08.SEQUENCENO IS NOT NULL THEN 'Expiring'                                   WHEN p07p08.SEQUENCENO IS NOT NULL THEN 'Expiring'
                                                 WHEN p07.SEQUENCENO IS NOT NULL THEN 'Missing'Expiring'
                                                 WHEN p08p07.SEQUENCENO IS NULL THEN 'Missing'
                             END              AS STATUS,     WHEN p08.SEQUENCENO IS NULL THEN 'Missing'
                   rtd.DOCCODE  AS Code,                      END AS STATUS,
     CASE rtd.DOCTYPE                                   WHEN 8 THEN p08reqDoc.SEQUENCENO[DOCUMENT] AS Code,
                                WHEN  7 THEN p07.SEQUENCENO        CASE 
                    END          AS SEQUENCENO                  WHEN c23.CODE IS NOT NULL FROMTHEN p08.SEQUENCENO
 PW001P01 p                              JOIN (                WHEN c24.code IS NOT NULL THEN p07.SEQUENCENO
                SELECT DISTINCT p03.PIN,                          END AS SEQUENCENO
                 dbo.ad_scanorgtree(p03.NUMORGID, 2) companyID                  FROM   (
                 FROM   PW001P03 p03                           SELECT DISTINCT p03.PIN,
                JOIN PW001C12 c12                                     dbo.ad_scanorgtree(p03.NUMORGID, 2) companyID,
           ON  c12.CODE = p03.CODE                                        p.NATIONALITY
          AND c12.OPTIONS LIKE '%S%'                                   FROM   PW001P03 WHEREp03
 p03.DATETO >= CONVERT(VARCHAR, GETDATE(), 112)                                              OR  p03.DATETO IS NULL JOIN PW001C12 c12
                               ) p03                            ON  c12.CODE = p03.CODE
  ON  p03.PIN = p.PIN                              JOIN PWORGRTD rtd                      AND c12.OPTIONS LIKE '%S%'
         ON  rtd.NUMORGID = p03.companyID                              LEFT JOIN PW001C23 c23         LEFT JOIN PW001P01 P
                      ON  c23.CODE = rtd.DOCCODE                                  ON AND rtdp.DOCTYPEPIN = 8p03.PIN
                             LEFT JOIN PW001P08 p08                WHERE  p03.DATETO >= CONVERT(VARCHAR, GETDATE(), 112)
            ON  p08.PIN = p.PIN                                   AND p08.CODE = c23.CODE OR  p03.DATETO IS NULL
                        LEFT JOIN PW001C24 c24                 ) p01
                ON  c24.CODE = rtd.DOCCODE                        CROSS APPLY (
        AND rtd.DOCTYPE = 7                              LEFTSELECT JOIN7 PW001P07AS p07DOCTYPE,
                                  ON  p07.PIN = p.PIN          *
                        AND p07.CODE = c24.CODE              FROM   RP_NAT_REQDOC_MEDICAL
                            UNION ALL            UNION ALL 
        SELECT p01.PIN,                              CASE  SELECT 8 AS DOCTYPE,
                              WHEN c23.CODE IS NOT NULL THEN 'Travel'            *
                      WHEN c24.code IS NOT NULL THEN 'Medical'             FROM   RP_NAT_REQDOC_TRAVEL
             END  AS TYPE,                     ) reqDoc
       CASE                              LEFT JOIN PW001C23 c23
  WHEN p08.SEQUENCENO IS NOT NULL THEN 'Expiring'                                   WHEN p07.SEQUENCENO IS NOT NULL THEN 'Expiring'ON  c23.CODE = reqDoc.DOCUMENT
                              WHEN p07.SEQUENCENO IS NULL THEN 'Missing'              AND reqDoc.DOCTYPE = 8
                 WHEN p08.SEQUENCENO IS NULL THEN 'Missing'                      LEFT JOIN PW001P08 p08
    END  AS STATUS,                              reqDoc.[DOCUMENT] AS Code,          ON  p08.PIN = p01.PIN
               CASE                                  AND p08.CODE WHEN= c23.CODE
       IS NOT NULL THEN p08.SEQUENCENO                                 LEFT JOIN WHENPW001C24 c24.code
IS NOT NULL THEN p07.SEQUENCENO                              END  AS SEQUENCENO            ON  c24.CODE = reqDoc.DOCUMENT
      FROM   (                                  SELECT DISTINCT p03.PIN,    AND reqDoc.DOCTYPE = 7
                                 dbo.ad_scanorgtree(p03.NUMORGID, 2) companyID,            LEFT JOIN PW001P07 p07
                              p.NATIONALITY                   ON  p07.PIN = p01.PIN
          FROM   PW001P03 p03                                   AND p07.CODE = reqDoc.[DOCUMENT]
  JOIN PW001C12 c12                                        LEFT JOIN PWCOUNTRY c
  ON  c12.CODE = p03.CODE                                           ON  c.COUNTRYCODE AND= c12p01.OPTIONSNATIONALITY
  LIKE '%S%'                                         LEFT JOIN PW001P01 P RP_NAT_EXCLUDED_MEDICAL excMed
                                                 ON  pexcMed.PINNATIONALITY = p03c.PINCOUNTRYCODE
                                 WHERE  p03.DATETO >= CONVERT(VARCHAR, GETDATE(), 112)               AND excMed.[DOCUMENT] = reqDoc.[DOCUMENT]
                       OR  p03.DATETO IS NULL          WHERE  excMed.NATIONALITY IS NULL
               ) p01                 )t
            CROSS APPLY (        ) doc
                 SELECT 7 AS DOCTYPE,  LEFT JOIN PW001P01 p01
                           ON * p01.PIN = doc.PIN
                      LEFT FROMJOIN PWORG org
RP_NAT_REQDOC_MEDICAL                           UNIONON ALL org.NUMORGID = p01.CLIENT
                      LEFT JOIN SELECTPW001P0P 8p0p
AS DOCTYPE,                          ON  p0p.PIN = p01.PIN
   *                   LEFT JOIN PW001C02 c02
    FROM   RP_NAT_REQDOC_TRAVEL                    ON  c02.CODE )= reqDocp0p.POSITIONID
                      LEFT JOIN PW001C23PWCOUNTRY nat
 c23                          ON  nat.COUNTRYCODE = p01.NATIONALITY
    ON  c23.CODE = reqDoc.DOCUMENT              LEFT JOIN (
                  AND reqDoc.DOCTYPE = 8          SELECT CODE,
                  LEFT JOIN PW001P08 p08                 [TEXT]
                 ON  p08.PIN = p01.PIN          FROM   PW001C06
                     AND p08.CODE = c23.CODE       WHERE  OPTIONS NOT LIKE '%P%' --JMV Filter out passive document codes to avoid duplicates
        LEFT JOIN PW001C24 c24                    UNION ALL
             ON  c24.CODE = reqDoc.DOCUMENT              SELECT CODE,
                   AND reqDoc.DOCTYPE = 7                VISATYPE AS [TEXT]
           LEFT JOIN PW001P07 p07                 FROM   PW001C23
              ON  p07.PIN = p01.PIN             WHERE  OPTIONS NOT LIKE '%P%'--JMV Filter out passive document codes to avoid duplicates
        AND p07.CODE = reqDoc.[DOCUMENT]                    UNION ALL
        LEFT JOIN PWCOUNTRY c                    SELECT CODE,
             ON  c.COUNTRYCODE = p01.NATIONALITY                     [TEXT]
        LEFT JOIN RP_NAT_EXCLUDED_MEDICAL excMed                    FROM   PW001C24
           ON  excMed.NATIONALITY = c.COUNTRYCODE                WHERE  OPTIONS NOT LIKE '%P%'--JMV Filter out passive document codes to avoid duplicates
     AND excMed.[DOCUMENT] = reqDoc.[DOCUMENT]                   )docName
   WHERE  excMed.NATIONALITY IS NULL                   ) docON  docName.CODE = doc.CODE
              LEFT JOIN PW001P01 p01     LEFT JOIN (
                ON  p01.PIN = doc.PIN           SELECT PIN,
      LEFT JOIN PWORG org                        ON  org.NUMORGID = p01.CLIENT SEQUENCENO,
                 LEFT JOIN PW001P0P p0p                  DATEFROM,
     ON  p0p.PIN = p01.PIN                   LEFT JOIN PW001C02 c02       EXPIRYDATE,
                ON  c02.CODE = p0p.POSITIONID                  SCANNEDDOCNO,
LEFT JOIN PWCOUNTRY nat                        ON  nat.COUNTRYCODE = p01.NATIONALITY       SCANVALIDITY
           LEFT JOIN (                  FROM   PW001P05
      SELECT CODE,                        UNION ALL 
        [TEXT]                       SELECT PIN,
   FROM   PW001C06                            UNION ALL   SEQUENCENO,
                        SELECT CODE,             DATEISSUED AS DATEFROM,
                   VISATYPE AS [TEXT]                 EXPIRYDATE,
          FROM   PW001C23                         SCANNEDDOCNO,
  UNION ALL                            SELECT CODE,      SCANVALIDITY
                            [TEXT]   FROM   PW001P07
                     FROM   PW001C24       UNION ALL
               )docName                SELECT PIN,
      ON  docName.CODE = doc.CODE                   LEFT JOIN (       SEQUENCENO,
                    SELECT SEQUENCENO,                 DATEFROM,
                 DATEFROM,                     DATETO AS EXPIRYDATE,
           EXPIRYDATE,                           SCANNEDDOCNO,
       SCANNEDDOCNO,                               SCANVALIDITY
   SCANVALIDITY                            FROM   PW001P05PW001P08
                           ) UNIONdocDetails
ALL                           ON  SELECT SEQUENCENO,docDetails.SEQUENCENO = doc.SEQUENCENO
                           AND  docDetails.PIN = p01.PIN
  DATEISSUED AS DATEFROM,                  JOIN PW001P03 p03plan
              EXPIRYDATE,             ON  p03plan.PIN = p01.PIN
                 SCANNEDDOCNO,          AND p03plan.PLANNED = 'Y'
                     SCANVALIDITY      AND p03plan.CODE IN (SELECT t.CODE
                 FROM   PW001P07                            UNIONFROM ALL  pw001c12 t
                        SELECT SEQUENCENO,                       WHERE  t.OPTIONS LIKE '%S%')
       DATEFROM,                    AND NOT EXISTS (
           DATETO AS EXPIRYDATE,                      SELECT 1
           SCANNEDDOCNO,                        FROM   PW001P03 p03t
      SCANVALIDITY                            FROM  WHERE PW001P08 p03t.PIN = p01.PIN
                    ) docDetails                     AND p03t.PLANNED = ON'Y'
 docDetails.SEQUENCENO = doc.SEQUENCENO                   JOIN dbo.PW001P03 P03                  AND p03t.CODE IN (SELECT t.CODE
 ON  P01.PIN = P03.PIN                        AND P03.CODE IN (SELECT c12.CODE                           FROM   PW001C12 t
            FROM   PW001C12 c12                                            WHERE  c12t.OPTIONS LIKE '%S%')
                                          AND (P03.DATETO IS NULL OR P03.DATETO >= GETDATE())p03t.DATEFROM < p03plan.DateFrom
                            AND P03.DATEFROM <= GETDATE()
                      LEFT JOIN (
                               SELECT NUMORGID,
                                      dbo.ad_scanorgtree(NUMORGID, 3) AS VesselID,,
                                      dbo.ad_scanorgtree(NUMORGID, 4) AS DeptID
                               FROM   pworg
                           ) ou
                           ON  ou.NUMORGID = P03p03plan.NUMORGID
                      LEFT JOIN pworg ves
                           ON  ves.NUMORGID = ou.VesselID
                      LEFT JOIN pworg dep
                           ON  dep.NUMORGID = ou.DeptID
                      LEFT JOIN pworg pos
                           ON  pos.NUMORGID = P03p03plan.NUMORGID
                      LEFT JOIN PW001OLEDOCS oledoc
                           ON  oledoc.DOCNO = docDetails.scanneddocno
       ) final
WHERE  (
           final.[Expiry Date] <= DATEADD(YEAR, 1, CAST(GETDATE() AS DATE))
           OR  Final.[Expiry Date] IS NULL
       )
	   --ORDER BY PIN
       --AND final.pin = 800027

Columns Specification

Column

Description/ Location in APM

PIN

Personal Details > Personal > PIN

Alternative PIN

Personal Details > Personal > Alternative PIN

Full Name

Personal Details > Personal > Full Name

Nationality

Personal Details > Personal > Nationality

Organization Name

Personal Details > Employment > Organization’s Name

Current Rank

Personal Details > Employment > Current Rank

Numorgid

Personal Details > Employment > Organization’s No

Document Type

The type of the document: Competence, Medical, Travel.

Document Code

The code of the document record linked to the selected crew.

Document Name

The name of the document record linked to the selected crew.

Document No

The number of the document record linked to the selected crew.

Document Status

The status of the document record linked to the selected crew.

Issue Date

The date from of the document record linked to the selected crew.

Expiry Date

The expert date of the document record linked to the selected crew.

EmploymentStartDate

Personal Details > Employment > Employment Start Date

EmploymentEndDate

Personal Details > Employment > Employment End Date

NUMORGID

Perosnal Details > Client > NUMORGID

Embarkation Date

Shows the activity DateFrom of the Embarked activity. If none, then blank.

Disembarkation Date

Shows the activity DateTo/ToDateEstimated of the Embarked activity. If none, then blank.

Activty Vessel

Shows the vessel name of the Embarked activity. If none, then blank.

Activity Department

Shows the department name of the Embarked activity. If none, then blank.

Activity Position

Showsthe position name of the Embarked activity. If none, then blank.

Scan status

Shows missing, confirmed, and non confirmed document status.

VESSEL_NUMORGID

Shows the vessels numorgid of the Embarked activity. If none, then blank.

Start Page

N/A