Untitled

 avatar
unknown
plain_text
2 years ago
52 kB
7
Indexable
create or replace PROCEDURE REQ_CZ_TMP_BBM_SLI_MESSAGE (
    ORIGINATOR_REF  IN      VARCHAR,            -- PREPARATIONS ORIGINATOR REFERENCE
    YEAR_NUM        IN      INT,                -- YEAR NUMBER
    ORD_NUM         IN      INT,                -- PREPARATIONS NUMBER
    RESULTS         OUT     SYS_REFCURSOR
)
AS
    DEPOT_CODE	    VARCHAR2(3);
    ACTIVITY_CODE   VARCHAR2(3);
BEGIN
    DEPOT_CODE      := 'TMP';
    ACTIVITY_CODE   := 'BBM';
OPEN RESULTS FOR
   WITH
    HL52110 AS(
    SELECT DISTINCT 110 AS "SEQ", 0 AS "SEQ2", 0 AS "SEQ3", '0' AS "LINE_NB",
                    'HL52110'
                    || CAST(ACTIVITY_CODE AS CHAR(3))                                           -- ACTIVITY CODE
                    || CAST(DEPOT_CODE AS CHAR(3))                                              -- PHYSICAL DEPOT CODE
                    || CAST(HL_PREPA_ENTETE.PENANN  AS CHAR(2))                                 -- YEAR NUMBER
                    || CAST(SUBSTR('000000000'||HL_PREPA_ENTETE.PENPRE, -9) AS CHAR(9))         -- PREPARATION NUMBER
                    || CAST(HL_PREPA_ENTETE.PECTPR AS CHAR(3))                                  -- PREPARATION TYPE CODE
                    || CAST(HL_PREPA_ENTETE.PECDES AS CHAR(13))                                 -- PREPARATION CONSIGNEE CODE
                    || CAST(HL_PREPA_ENTETE.PECDES AS CHAR(13))                                 -- DESPATCH CONSIGNEE CODE
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_ENTETE.PEQTPP * 1000,'00000000000'))) AS CHAR(11))
                                                                                                -- TRANSPORT QUANTITY
                    || CAST(' '    AS CHAR(3))                                                  -- TRANSPORT QUANTITY UNIT
                    || CAST(HL_PREPA_ENTETE.PECMOP AS CHAR(3))                                  -- PREPARATION ORDER REASON CODE
                    || CAST(HL_PREPA_ENTETE.PECRGE AS CHAR(13))                                 -- DESPATCH GROUPING CODE
                    || CAST(' '    AS CHAR(20))                                                 -- TRANSPORT DESPATCH ID
                    || ''''        AS LINE
               FROM SD_HLPRENP HL_PREPA_ENTETE
              WHERE HL_PREPA_ENTETE.PENPRE = ORD_NUM
                AND HL_PREPA_ENTETE.PENANN = YEAR_NUM
                AND HL_PREPA_ENTETE.PERODP = ORIGINATOR_REF
                AND HL_PREPA_ENTETE.PECACT = ACTIVITY_CODE
    ),
    HL52120 AS(
    SELECT DISTINCT 120 AS "SEQ", 0 AS "SEQ2", 0 AS "SEQ3", '0' AS "LINE_NB",
                    'HL52120'
                    || CAST(ACTIVITY_CODE AS CHAR(3))                                           -- ACTIVITY CODE
                    || CAST(DEPOT_CODE AS CHAR(3))                                              -- PHYSICAL DEPOT CODE
                    || CAST(HL_PREPA_ENTETE.PENANN  AS CHAR(2))                                 -- YEAR NUMBER
                    || CAST(SUBSTR('000000000'||HL_PREPA_ENTETE.PENPRE, -9) AS CHAR(9))         -- PREPARATION NUMBER
                    || CAST(SUBSTR('00'||HL_PREPA_ENTETE.PESLEP, -2) AS CHAR(2))                -- DESPATCH CONSIGNEE - PLANNED DELIVERY DATE - CENTURY
                    || CAST(SUBSTR('00'||HL_PREPA_ENTETE.PEALEP, -2) AS CHAR(2))                -- DESPATCH CONSIGNEE - PLANNED DELIVERY DATE - YEAR
                    || CAST(SUBSTR('00'||HL_PREPA_ENTETE.PEMLEP, -2) AS CHAR(2))                -- DESPATCH CONSIGNEE - PLANNED DELIVERY DATE - MONTH
                    || CAST(SUBSTR('00'||HL_PREPA_ENTETE.PEJLEP, -2) AS CHAR(2))                -- DESPATCH CONSIGNEE - PLANNED DELIVERY DATE - DAY
                    || CAST(SUBSTR('0000'||HL_PREPA_ENTETE.PEHDEP, -4) AS CHAR(4))              -- DESPATCH CONSIGNEE - PLANNED DELIVERY START TIME
                    || CAST(SUBSTR('0000'||HL_PREPA_ENTETE.PEHFEP, -4) AS CHAR(4))              -- DESPATCH CONSIGNEE - PLANNED DELIVERY END TIME
                    || ''''        AS LINE
               FROM SD_HLPRENP HL_PREPA_ENTETE
              WHERE HL_PREPA_ENTETE.PENPRE = ORD_NUM
                AND HL_PREPA_ENTETE.PENANN = YEAR_NUM
                AND HL_PREPA_ENTETE.PERODP = ORIGINATOR_REF
                AND HL_PREPA_ENTETE.PECACT = ACTIVITY_CODE
    ),
    HL52130 AS(
    SELECT DISTINCT 130 AS "SEQ", 0 AS "SEQ2", 0 AS "SEQ3", '0' AS "LINE_NB",
                    'HL52130'
                    || CAST(ACTIVITY_CODE AS CHAR(3))                                           -- ACTIVITY CODE
                    || CAST(DEPOT_CODE AS CHAR(3))                                              -- PHYSICAL DEPOT CODE
                    || CAST(HL_PREPA_ENTETE.PENANN  AS CHAR(2))                                 -- YEAR NUMBER
                    || CAST(SUBSTR('000000000'||HL_PREPA_ENTETE.PENPRE, -9) AS CHAR(9))         -- PREPARATION NUMBER
                    || CAST(SUBSTR('00'||HL_PREPA_ENTETE.PESREP, -2) AS CHAR(2))                -- DESPATCH CONSIGNEE APPOINTMENT DATE - CENTURY
                    || CAST(SUBSTR('00'||HL_PREPA_ENTETE.PEAREP, -2) AS CHAR(2))                -- DESPATCH CONSIGNEE APPOINTMENT DATE - YEAR
                    || CAST(SUBSTR('00'||HL_PREPA_ENTETE.PEMREP, -2) AS CHAR(2))                -- DESPATCH CONSIGNEE APPOINTMENT DATE - MONTH
                    || CAST(SUBSTR('00'||HL_PREPA_ENTETE.PEJREP, -2) AS CHAR(2))                -- DESPATCH CONSIGNEE APPOINTMENT DATE - DAY
                    || CAST(SUBSTR('0000'||HL_PREPA_ENTETE.PEHDRP, -4) AS CHAR(4))              -- DESPATCH CONSIGNEE APPOINTMENT START TIME
                    || CAST(SUBSTR('0000'||HL_PREPA_ENTETE.PEHFRP, -4) AS CHAR(4))              -- DESPATCH CONSIGNEE APPOINTMENT END TIME
                    || ''''        AS LINE
               FROM SD_HLPRENP HL_PREPA_ENTETE
              WHERE HL_PREPA_ENTETE.PENPRE = ORD_NUM
                AND HL_PREPA_ENTETE.PENANN = YEAR_NUM
                AND HL_PREPA_ENTETE.PERODP = ORIGINATOR_REF
                AND HL_PREPA_ENTETE.PECACT = ACTIVITY_CODE
    ),
    HL52140 AS (
    SELECT DISTINCT 140 AS "SEQ", 0 AS "SEQ2", 0 AS "SEQ3", '0' AS "LINE_NB",
                    'HL52140'
                    || CAST(ACTIVITY_CODE AS CHAR(3))                                           -- ACTIVITY CODE
                    || CAST(DEPOT_CODE AS CHAR(3))                                              -- PHYSICAL DEPOT CODE
                    || CAST(HL_PREPA_ENTETE.PENANN  AS CHAR(2))                                 -- YEAR NUMBER
                    || CAST(SUBSTR('000000000'||HL_PREPA_ENTETE.PENPRE, -9) AS CHAR(9))         -- PREPARATION NUMBER
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_ENTETE.PET1PP,'000000000'))) AS CHAR(9))
                                          -- PREPARATION - TOTAL LEVEL 1 TO PREPARE
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_ENTETE.PET2PP,'000000000'))) AS CHAR(9))
                                          -- PREPARATION - TOTAL LEVEL 2 TO PREPARE
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_ENTETE.PET3PP,'000000000'))) AS CHAR(9))
                                          -- PREPARATION - TOTAL LEVEL 3 TO PREPARE
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_ENTETE.PETBPP,'000000000'))) AS CHAR(9))
                                          -- PREPARATION - TOTAL IN BASE LVS TO PREPARE
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_ENTETE.PETG1P,'000000000'))) AS CHAR(9))
                                          -- PREPARATION - GENERAL TOTAL LEVEL 1 TO PREPARE
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_ENTETE.PETG2P,'000000000'))) AS CHAR(9))
                                          -- PREPARATION - GENERAL TOTAL LEVEL 2 TO PREPARE
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_ENTETE.PEPNTA * 1000,'00000000000'))) AS CHAR(11))
                                          -- PREPARATION - TOTAL NET WEIGHT TO PREPARE
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_ENTETE.PEPBTA * 1000,'00000000000'))) AS CHAR(11))
                                          -- PREPARATION - TOTAL GROSS WEIGHT TO PREPARE
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_ENTETE.PEVTAP * 1000,'00000000000'))) AS CHAR(11))
                                          -- PREPARATION - TOTAL VOLUME TO PREPARE
                    || '''' AS LINE
               FROM SD_HLPRENP HL_PREPA_ENTETE
              WHERE HL_PREPA_ENTETE.PENPRE = ORD_NUM
                AND HL_PREPA_ENTETE.PENANN = YEAR_NUM
                AND HL_PREPA_ENTETE.PERODP = ORIGINATOR_REF
                AND HL_PREPA_ENTETE.PECACT = ACTIVITY_CODE
    ),
    HL52150 AS (
    SELECT DISTINCT 150 AS "SEQ", 0 AS "SEQ2", 0 AS "SEQ3", '0' AS "LINE_NB",
                    'HL52150'
                    || CAST(ACTIVITY_CODE AS CHAR(3))                                           -- ACTIVITY CODE
                    || CAST(DEPOT_CODE AS CHAR(3))                                              -- PHYSICAL DEPOT CODE
                    || CAST(HL_PREPA_ENTETE.PENANN  AS CHAR(2))                                 -- YEAR NUMBER
                    || CAST(SUBSTR('000000000'||HL_PREPA_ENTETE.PENPRE, -9) AS CHAR(9))         -- PREPARATION NUMBER
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_ENTETE.PET1PV,'000000000'))) AS CHAR(9))
                                          -- PREPARATION - TOTAL LEVEL 1 CONFIRMED
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_ENTETE.PET2PV,'000000000'))) AS CHAR(9))
                                          -- PREPARATION - TOTAL LEVEL 2 CONFIRMED
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_ENTETE.PET3PV,'000000000'))) AS CHAR(9))
                                          -- PREPARATION - TOTAL LEVEL 3 CONFIRMED
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_ENTETE.PETBPV,'000000000'))) AS CHAR(9))
                                          -- PREPARATION - TOTAL IN BASE LVS CONFIRMED
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_ENTETE.PETG1V,'000000000'))) AS CHAR(9))
                                           -- PREPARATION - GENERAL TOTAL LEVEL 1 CONFIRMED
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_ENTETE.PETG2V,'000000000'))) AS CHAR(9))
                                           -- PREPARATION - GENERAL TOTAL LEVEL 2 CONFIRMED
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_ENTETE.PEPNTV * 1000,'00000000000'))) AS CHAR(11))
                                           -- PREPARATION - TOTAL NET WEIGHT CONFIRMED
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_ENTETE.PEPBTV * 1000,'00000000000'))) AS CHAR(11))
                                            -- PREPARATION - TOTAL GROSS WEIGHT CONFIRMED
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_ENTETE.PEVTAV * 1000,'00000000000'))) AS CHAR(11))
                                            -- PREPARATION - TOTAL VOLUME CONFIRMED
                    || '''' AS LINE
               FROM SD_HLPRENP HL_PREPA_ENTETE
              WHERE HL_PREPA_ENTETE.PENPRE = ORD_NUM
                AND HL_PREPA_ENTETE.PENANN = YEAR_NUM
                AND HL_PREPA_ENTETE.PERODP = ORIGINATOR_REF
                AND HL_PREPA_ENTETE.PECACT = ACTIVITY_CODE
    ),
    HL52160 AS (
    SELECT DISTINCT 160 AS "SEQ", 0 AS "SEQ2", 0 AS "SEQ3", '0' AS "LINE_NB",
                    'HL52160'
                    || CAST(ACTIVITY_CODE AS CHAR(3))                                           -- ACTIVITY CODE
                    || CAST(DEPOT_CODE AS CHAR(3))                                              -- PHYSICAL DEPOT CODE
                    || CAST(HL_PREPA_ENTETE.PENANN  AS CHAR(2))                                 -- YEAR NUMBER
                    || CAST(SUBSTR('000000000'||HL_PREPA_ENTETE.PENPRE, -9) AS CHAR(9))         -- PREPARATION NUMBER
                    || CAST(SUBSTR('00'||HL_PREPA_ENTETE.PESSOR, -2) AS CHAR(2))                -- PREPARATION - STOCK DESPATCH DATE - CENTURY
                    || CAST(SUBSTR('00'||HL_PREPA_ENTETE.PEASOR, -2) AS CHAR(2))                -- PREPARATION - STOCK DESPATCH DATE - YEAR
                    || CAST(SUBSTR('00'||HL_PREPA_ENTETE.PEMSOR, -2) AS CHAR(2))                -- PREPARATION - STOCK DESPATCH DATE - MONTH
                    || CAST(SUBSTR('00'||HL_PREPA_ENTETE.PEJSOR, -2) AS CHAR(2))                -- PREPARATION - STOCK DESPATCH DATE - DAY
                    || CAST(SUBSTR('000000'||HL_PREPA_ENTETE.PEHSOR, -6) AS CHAR(6))            -- PREPARATION - STOCK DESPATCH TIME
                    || '''' AS LINE
               FROM SD_HLPRENP HL_PREPA_ENTETE
              WHERE HL_PREPA_ENTETE.PENPRE = ORD_NUM
                AND HL_PREPA_ENTETE.PENANN = YEAR_NUM
                AND HL_PREPA_ENTETE.PERODP = ORIGINATOR_REF
                AND HL_PREPA_ENTETE.PECACT = ACTIVITY_CODE
    ),
    -- HL52165
    HL52199 AS (
    SELECT DISTINCT 199 AS "SEQ", 0 AS "SEQ2", 0 AS "SEQ3", '0' AS "LINE_NB",
                    'HL52199'
                    || CAST(ACTIVITY_CODE AS CHAR(3))                                           -- ACTIVITY CODE
                    || CAST(DEPOT_CODE AS CHAR(3))                                              -- PHYSICAL DEPOT CODE
                    || CAST(HL_PREPA_ENTETE.PENANN  AS CHAR(2))                                 -- YEAR NUMBER
                    || CAST(SUBSTR('000000000'||HL_PREPA_ENTETE.PENPRE, -9) AS CHAR(9))         -- PREPARATION NUMBER
                    || CAST (NVL(HL_COMMENTAIRE.COTXTC, ' ') AS CHAR(70))                       -- COMMENT
                    || CAST (NVL(HL_COMMENTAIRE.COCFCO, ' ') AS CHAR(3))                        -- COMMENT GROUP
                    || '''' AS LINE
               FROM SD_HLPRENP HL_PREPA_ENTETE

          LEFT JOIN SD_HLCOMMP HL_COMMENTAIRE
                 ON HL_COMMENTAIRE.CONCOM = HL_PREPA_ENTETE.PENCOM
                AND HL_COMMENTAIRE.COCFCO IN ('WSN', 'SRN', 'SH1', 'SH0')
                -- IFC - if oreder was fully cancelled
                -- SH1 - ShippingAgentCode
                -- SH0 - ShippingAgentServiceCode

              WHERE HL_PREPA_ENTETE.PENPRE = ORD_NUM
                AND HL_PREPA_ENTETE.PENANN = YEAR_NUM
                AND HL_PREPA_ENTETE.PERODP = ORIGINATOR_REF
                AND HL_PREPA_ENTETE.PECACT = ACTIVITY_CODE
    UNION ALL
    -- IFC - if oreder was fully cancelled
    SELECT DISTINCT 199 AS "SEQ", 0 AS "SEQ2", 0 AS "SEQ3", '0' AS "LINE_NB",
                    'HL52199'
                    || CAST(ACTIVITY_CODE AS CHAR(3))                                           -- ACTIVITY CODE
                    || CAST(DEPOT_CODE AS CHAR(3))                                              -- PHYSICAL DEPOT CODE
                    || CAST(HL_PREPA_ENTETE.PENANN  AS CHAR(2))                                 -- YEAR NUMBER
                    || CAST(SUBSTR('000000000'||HL_PREPA_ENTETE.PENPRE, -9) AS CHAR(9))         -- PREPARATION NUMBER
                    || CAST ('FULLY CANCELLED ORDER' AS CHAR(70))                               -- COMMENT
                    || CAST ('IFC' AS CHAR(3))                                                  -- COMMENT GROUP
                    || '''' AS LINE
              FROM SD_HLPRENP HL_PREPA_ENTETE

              JOIN SD_HLPRPLP HL_PREPA_LIGNE
                ON HL_PREPA_ENTETE.PECACT = HL_PREPA_LIGNE.P1CACT
               AND HL_PREPA_ENTETE.PECDPO = HL_PREPA_LIGNE.P1CDPO
               AND HL_PREPA_ENTETE.PENANN = HL_PREPA_LIGNE.P1NANP
               AND HL_PREPA_ENTETE.PENPRE = HL_PREPA_LIGNE.P1NPRE

              JOIN SD_HLCOMMP HL_COMMENTAIRE
                ON HL_COMMENTAIRE.CONCOM = HL_PREPA_LIGNE.P1NCOM
               AND HL_COMMENTAIRE.COCFCO IN ('OOS', 'CCL')

              WHERE HL_PREPA_ENTETE.PENPRE = ORD_NUM
                AND HL_PREPA_ENTETE.PENANN = YEAR_NUM
                AND HL_PREPA_ENTETE.PERODP = ORIGINATOR_REF
                AND HL_PREPA_ENTETE.PECACT = ACTIVITY_CODE
                AND HL_PREPA_ENTETE.PETSOL = 1
                AND HL_PREPA_ENTETE.PETVAP = 1

     UNION ALL
    -- MDT - MESSAGE DATE TIME - MAX VALUE FROM HL230
    SELECT DISTINCT 199 AS "SEQ", 0 AS "SEQ2", 0 AS "SEQ3", '0' AS "LINE_NB",
                    'HL52199'
                    || CAST(ACTIVITY_CODE AS CHAR(3))                                           -- ACTIVITY CODE
                    || CAST(DEPOT_CODE AS CHAR(3))                                              -- PHYSICAL DEPOT CODE
                    || CAST(HL_PREPA_ENTETE.PENANN  AS CHAR(2))                                 -- YEAR NUMBER
                    || CAST(SUBSTR('000000000'||HL_PREPA_ENTETE.PENPRE, -9) AS CHAR(9))         -- PREPARATION NUMBER
                    || CAST (MAX(  CAST(SUBSTR('00'||HL_PREPA_LIGNE.P1SVLP, -2) AS CHAR(2))                 -- PREPARATION LINE CONFIRMATION DATE - CENTURY
                                || CAST(SUBSTR('00'||HL_PREPA_LIGNE.P1AVLP, -2) AS CHAR(2))                 -- PREPARATION LINE CONFIRMATION DATE - YEAR
                                || CAST(SUBSTR('00'||HL_PREPA_LIGNE.P1MVLP, -2) AS CHAR(2))                 -- PREPARATION LINE CONFIRMATION DATE - MONTH
                                || CAST(SUBSTR('00'||HL_PREPA_LIGNE.P1JVLP, -2) AS CHAR(2))                 -- PREPARATION LINE CONFIRMATION DATE - DAY
                                || CAST(SUBSTR('000000'||HL_PREPA_LIGNE.P1HVLP, -6) AS CHAR(6)))            -- PREPARATION LINE CONFIRMATION TIME                                -- COMMENT
                                AS CHAR(70))
                    || CAST ('MDT' AS CHAR(3))                                                  -- COMMENT GROUP
                    || '''' AS LINE
               FROM SD_HLPRENP HL_PREPA_ENTETE

               JOIN SD_HLPRPLP HL_PREPA_LIGNE
                 ON HL_PREPA_ENTETE.PECACT = HL_PREPA_LIGNE.P1CACT
                AND HL_PREPA_ENTETE.PECDPO = HL_PREPA_LIGNE.P1CDPO
                AND HL_PREPA_ENTETE.PENANN = HL_PREPA_LIGNE.P1NANP
                AND HL_PREPA_ENTETE.PENPRE = HL_PREPA_LIGNE.P1NPRE

              WHERE HL_PREPA_ENTETE.PENPRE = ORD_NUM
                AND HL_PREPA_ENTETE.PENANN = YEAR_NUM
                AND HL_PREPA_ENTETE.PERODP = ORIGINATOR_REF
                AND HL_PREPA_ENTETE.PECACT = ACTIVITY_CODE

    GROUP BY 199, 0
    ,CAST(ACTIVITY_CODE AS CHAR(3))
    ,CAST(DEPOT_CODE AS CHAR(3))
    ,CAST(HL_PREPA_ENTETE.PENANN  AS CHAR(2))
    ,CAST(SUBSTR('000000000'||HL_PREPA_ENTETE.PENPRE, -9) AS CHAR(9))
    ,CAST ('MDT' AS CHAR(3))
    ),
    ---------------------- DETAILS
    HL52210 AS(
    SELECT DISTINCT 210 AS "SEQ", 0 AS "SEQ2", 0 AS "SEQ3", CAST(HL_PREPA_LIGNE.P1NLOP || '/' || HL_PREPA_LIGNE.P1NLPR || '/' || HL_PREPA_LIGNE.P1CART  AS CHAR(16) ) AS "LINE_NB",
                    'HL52210'
                    || CAST(ACTIVITY_CODE AS CHAR(3))                                           -- ACTIVITY CODE
                    || CAST(DEPOT_CODE AS CHAR(3))                                              -- PHYSICAL DEPOT CODE
                    || CAST(HL_PREPA_LIGNE.P1NANN AS CHAR(2))                                   -- PREPARATION LINE YEAR NUMBER
                    || CAST(LPAD(HL_PREPA_LIGNE.P1NLPR, 13, '0') AS CHAR(13))                   -- PREPARATION LINE NUMBER
                    || CAST(HL_PREPA_ENTETE.PENANN AS CHAR(2))                                  -- PREPARATION YEAR NUMBER
                    || CAST(LPAD(HL_PREPA_ENTETE.PENPRE, 9, '0') AS CHAR(9))                    -- PREPARATION NUMBER
                    || CAST(HL_PREPA_LIGNE.PECDOD AS CHAR(3))                                   -- PREPARATION ORDER PHYSICAL DEPOT CODE
                    || CAST(HL_PREPA_LIGNE.P1NANO AS CHAR(2))                                   -- PREPARATION ORDER YEAR NUMBER
                    || CAST(LPAD(HL_PREPA_LIGNE.P1NODP, 9, '0') AS CHAR(9))                     -- PREPARATION ORDER NUMBER
                    || CAST(LPAD(HL_PREPA_LIGNE.P1NLOP, 7, '0') AS CHAR(7))                     -- PREPARATION ORDER LINE NUMBER
                    || CAST(HL_PREPA_LIGNE.P1CART AS CHAR(16))                          		-- ITEM CODE
                    || CAST(HL_PREPA_LIGNE.P1CVLA AS CHAR(2))                           	 	-- ITEM LV CODE
                    || CAST(LPAD(HL_PREPA_LIGNE.P1CPRP, 3, '0') AS CHAR(3))            		    -- OWNER CODE
                    || CAST(LPAD(HL_PREPA_LIGNE.P1CQAL, 3, '0') AS CHAR(3))            		    -- GRADE CODE
                    || CAST(HL_PREPA_LIGNE.P1CDES AS CHAR(13))          		                -- END CONSIGNEE CODE
                    || CAST(HL_PROPRIETAIRE.PRCLPR AS CHAR(13))                         		-- OWNER LONG CODE
                    || CAST(HL_PREPA_ENTETE.PERODP AS CHAR(20))           		                -- PREPARATION ORIGINATOR REFERENCE
                    || CAST(LPAD(HL_ODP_LIGNE.OLLROP, 7, '0') AS CHAR(7))                       -- PREPARATION ORIGINATOR REFERENCE LINE NUMBER
                    || CAST(HL_ODP_LIGNE.OLRCDD AS CHAR(20))                            		-- CONSIGNEE ITEM REFERENCE
                    || CAST(HL_PREPA_LIGNE.P1CKIL AS CHAR(1))                                   -- KIT CODE
                    || CAST(HL_ODP_ENTETE.OERODD AS CHAR(20))                                   -- END CONSIGNEE REFERENCE
                    || '''' AS LINE
               FROM SD_HLPRENP HL_PREPA_ENTETE

               JOIN SD_HLPRPLP HL_PREPA_LIGNE
                 ON HL_PREPA_ENTETE.PECACT = HL_PREPA_LIGNE.P1CACT
                AND HL_PREPA_ENTETE.PECDPO = HL_PREPA_LIGNE.P1CDPO
                AND HL_PREPA_ENTETE.PENANN = HL_PREPA_LIGNE.P1NANP
                AND HL_PREPA_ENTETE.PENPRE = HL_PREPA_LIGNE.P1NPRE

               JOIN SD_HLODPLP HL_ODP_LIGNE
                 ON HL_PREPA_LIGNE.PECDOD = HL_ODP_LIGNE.OLCDPO
                AND HL_PREPA_LIGNE.P1CACT = HL_ODP_LIGNE.OLCACT
                AND HL_PREPA_LIGNE.P1NANO = HL_ODP_LIGNE.OLNANN
                AND HL_PREPA_LIGNE.P1NODP = HL_ODP_LIGNE.OLNODP
                AND HL_PREPA_LIGNE.P1NLOP = HL_ODP_LIGNE.OLNLOP

               JOIN SD_HLODPEP HL_ODP_ENTETE
                 ON HL_ODP_LIGNE.OLCACT = HL_ODP_ENTETE.OECACT
                AND HL_ODP_LIGNE.OLCDPO = HL_ODP_ENTETE.OECDPO
                AND HL_ODP_LIGNE.OLNANN = HL_ODP_ENTETE.OENANN
                AND HL_ODP_LIGNE.OLNODP = HL_ODP_ENTETE.OENODP

               JOIN SD_HLPROPP HL_PROPRIETAIRE
                 ON HL_PREPA_LIGNE.P1CACT = HL_PROPRIETAIRE.PRCACT
                AND HL_PREPA_LIGNE.P1CPRP = HL_PROPRIETAIRE.PRCPRP

              WHERE HL_PREPA_ENTETE.PENPRE = ORD_NUM
                AND HL_PREPA_ENTETE.PENANN = YEAR_NUM
                AND HL_PREPA_ENTETE.PERODP = ORIGINATOR_REF
                AND HL_PREPA_ENTETE.PECACT = ACTIVITY_CODE
   ),
    HL52220 AS(
    SELECT DISTINCT 210 AS "SEQ", 1 AS "SEQ2", 0 AS "SEQ3", CAST(HL_PREPA_LIGNE.P1NLOP || '/' || HL_PREPA_LIGNE.P1NLPR || '/' || HL_PREPA_LIGNE.P1CART AS CHAR(16) ) AS "LINE_NB",
                    'HL52220'
                    || CAST(ACTIVITY_CODE AS CHAR(3))                                           -- ACTIVITY CODE
                    || CAST(DEPOT_CODE AS CHAR(3))                                              -- PHYSICAL DEPOT CODE
                    || CAST(HL_PREPA_LIGNE.P1NANN AS CHAR(2))                                   -- PREPARATION LINE YEAR NUMBER
                    || CAST(LPAD(HL_PREPA_LIGNE.P1NLPR, 13, '0') AS CHAR(13))                   -- PREPARATION LINE NUMBER
                    || CAST(HL_PREPA_ENTETE.PENANN AS CHAR(2))                                  -- PREPARATION YEAR NUMBER
                    || CAST(LPAD(HL_PREPA_ENTETE.PENPRE, 9, '0') AS CHAR(9))                    -- PREPARATION NUMBER
                    || CAST(LPAD(HL_PREPA_LIGNE.P1QODP, 7, '0') AS CHAR(7))                     -- PRO PREPARATION LINE - QUANTITY IN BASE LVS TO PREPARE
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_LIGNE.P1PNOD * 1000,'000000000'))) AS CHAR(9))
                                                                                                -- PRO PREPARATION LINE - NET WEIGHT TO PREPARE
                    || CAST(LPAD(HL_PREPA_LIGNE.P1QAPR, 7, '0') AS CHAR(7))                     -- PREPARATION LINE - QUANTITY IN BASE LVS TO PREPARE
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_LIGNE.P1PAPN * 1000,'000000000'))) AS CHAR(9))
                                                                                                -- PREPARATION LINE - NET WEIGHT TO PREPARE
                    || CAST(LPAD(HL_PREPA_LIGNE.P1QPRE, 7, '0') AS CHAR(7))                     -- PREPARATION LINE - QUANTITY IN BASE LVS CONFIRMED
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_LIGNE.P1PNPR * 1000,'000000000'))) AS CHAR(9))
                                                                                                -- PREPARATION LINE - NET WEIGHT CONFIRMED
                    || CAST(LPAD(HL_PREPA_LIGNE.P1QRGE, 7, '0') AS CHAR(7))                     -- PREPARATION LINE - QUANTITY IN BASE LVS OF GENERATED BACK ORDER ITEMS
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_LIGNE.P1PNRG * 1000,'000000000'))) AS CHAR(9))
                                                                                                -- PREPARATION LINE - NET WEIGHT OF BACK ORDER ITEMS GENERATED
                    || CAST(LPAD(HL_PREPA_LIGNE.P1NQSB, 7, '0') AS CHAR(7))                     -- PREPARATION LINE - NUMERATOR QUANTITY SUBSTITUTED
                    || CAST(LPAD(HL_PREPA_LIGNE.P1DQSB, 7, '0') AS CHAR(7))                     -- PREPARATION LINE - DENOMINATOR QUANTITY SUBSTITUTED
                    || CAST(LTRIM(RTRIM(TO_CHAR(HL_PREPA_LIGNE.P1PNSU * 1000,'000000000'))) AS CHAR(9))
                                                                                                -- PREPARATION LINE - NET WEIGHT SUBSTITUTED
                    || '''' AS LINE
               FROM SD_HLPRENP HL_PREPA_ENTETE

               JOIN SD_HLPRPLP HL_PREPA_LIGNE
                 ON HL_PREPA_ENTETE.PECACT = HL_PREPA_LIGNE.P1CACT
                AND HL_PREPA_ENTETE.PECDPO = HL_PREPA_LIGNE.P1CDPO
                AND HL_PREPA_ENTETE.PENANN = HL_PREPA_LIGNE.P1NANP
                AND HL_PREPA_ENTETE.PENPRE = HL_PREPA_LIGNE.P1NPRE

              WHERE HL_PREPA_ENTETE.PENPRE = ORD_NUM
                AND HL_PREPA_ENTETE.PENANN = YEAR_NUM
                AND HL_PREPA_ENTETE.PERODP = ORIGINATOR_REF
                AND HL_PREPA_ENTETE.PECACT = ACTIVITY_CODE
   ),
    HL52230 AS(
    SELECT DISTINCT 210 AS "SEQ", 2 AS "SEQ2", 0 AS "SEQ3", CAST(HL_PREPA_LIGNE.P1NLOP || '/' || HL_PREPA_LIGNE.P1NLPR || '/' || HL_PREPA_LIGNE.P1CART AS CHAR(16) ) AS "LINE_NB",
                    'HL52230'
                    || CAST(ACTIVITY_CODE AS CHAR(3))                                           -- ACTIVITY CODE
                    || CAST(DEPOT_CODE AS CHAR(3))                                              -- PHYSICAL DEPOT CODE
                    || CAST(HL_PREPA_LIGNE.P1NANN AS CHAR(2))                                   -- PREPARATION LINE YEAR NUMBER
                    || CAST(LPAD(HL_PREPA_LIGNE.P1NLPR, 13, '0') AS CHAR(13))                   -- PREPARATION LINE NUMBER
                    || CAST(HL_PREPA_ENTETE.PENANN AS CHAR(2))                                  -- PREPARATION YEAR NUMBER
                    || CAST(LPAD(HL_PREPA_ENTETE.PENPRE, 9, '0') AS CHAR(9))                    -- PREPARATION NUMBER
                    || CAST(LPAD(HL_PREPA_LIGNE.P1NJMF, 3, '0') AS CHAR(3))                     -- FORCED PRIORITY DATE MINIMUM NUMBER OF DAYS
                    || CAST(SUBSTR('00'||HL_PREPA_LIGNE.P1SVLP, -2) AS CHAR(2))                 -- PREPARATION LINE CONFIRMATION DATE - CENTURY
                    || CAST(SUBSTR('00'||HL_PREPA_LIGNE.P1AVLP, -2) AS CHAR(2))                 -- PREPARATION LINE CONFIRMATION DATE - YEAR
                    || CAST(SUBSTR('00'||HL_PREPA_LIGNE.P1MVLP, -2) AS CHAR(2))                 -- PREPARATION LINE CONFIRMATION DATE - MONTH
                    || CAST(SUBSTR('00'||HL_PREPA_LIGNE.P1JVLP, -2) AS CHAR(2))                 -- PREPARATION LINE CONFIRMATION DATE - DAY
                    || CAST(SUBSTR('000000'||HL_PREPA_LIGNE.P1HVLP, -6) AS CHAR(6))             -- PREPARATION LINE CONFIRMATION TIME
                    || '''' AS LINE
               FROM SD_HLPRENP HL_PREPA_ENTETE

               JOIN SD_HLPRPLP HL_PREPA_LIGNE
                 ON HL_PREPA_ENTETE.PECACT = HL_PREPA_LIGNE.P1CACT
                AND HL_PREPA_ENTETE.PECDPO = HL_PREPA_LIGNE.P1CDPO
                AND HL_PREPA_ENTETE.PENANN = HL_PREPA_LIGNE.P1NANP
                AND HL_PREPA_ENTETE.PENPRE = HL_PREPA_LIGNE.P1NPRE

              WHERE HL_PREPA_ENTETE.PENPRE = ORD_NUM
                AND HL_PREPA_ENTETE.PENANN = YEAR_NUM
                AND HL_PREPA_ENTETE.PERODP = ORIGINATOR_REF
                AND HL_PREPA_ENTETE.PECACT = ACTIVITY_CODE
   ),
    HL52240 AS(
    SELECT DISTINCT 210 AS "SEQ", 3 AS "SEQ2", 0 AS "SEQ3", CAST(HL_PREPA_LIGNE.P1NLOP || '/' || HL_PREPA_LIGNE.P1NLPR || '/' || HL_PREPA_LIGNE.P1CART AS CHAR(16) ) AS "LINE_NB",
                    'HL52240'
                    || CAST(ACTIVITY_CODE AS CHAR(3))                                           -- ACTIVITY CODE
                    || CAST(DEPOT_CODE AS CHAR(3))                                              -- PHYSICAL DEPOT CODE
                    || CAST(HL_PREPA_LIGNE.P1NANN AS CHAR(2))                                   -- PREPARATION LINE YEAR NUMBER
                    || CAST(LPAD(HL_PREPA_LIGNE.P1NLPR, 13, '0') AS CHAR(13))                   -- PREPARATION LINE NUMBER
                    || CAST(HL_PREPA_ENTETE.PENANN AS CHAR(2))                                  -- PREPARATION YEAR NUMBER
                    || CAST(LPAD(HL_PREPA_ENTETE.PENPRE, 9, '0') AS CHAR(9))                    -- PREPARATION NUMBER
                    || CAST(' ' AS CHAR(3))                                                     -- ACTIVITY CODE OF CORRESPONDING BACK-ORDER PREPARATION LINE
                    || CAST(' ' AS CHAR(3))                                                     -- PHYSICAL DEPOT CODE OF CORRESPONDING BACK-ORDER PREPARATION LINE
                    || CAST(' ' AS CHAR(2))                                                     -- YEAR NUMBER OF CORRESPONDING BACK-ORDER PREPARATION LINE
                    || CAST(' ' AS CHAR(13))                                                    -- NUMBER OF CORRESPONDING BACK-ORDER PREPARATION LINE
                    || '''' AS LINE
               FROM SD_HLPRENP HL_PREPA_ENTETE

               JOIN SD_HLPRPLP HL_PREPA_LIGNE
                 ON HL_PREPA_ENTETE.PECACT = HL_PREPA_LIGNE.P1CACT
                AND HL_PREPA_ENTETE.PECDPO = HL_PREPA_LIGNE.P1CDPO
                AND HL_PREPA_ENTETE.PENANN = HL_PREPA_LIGNE.P1NANP
                AND HL_PREPA_ENTETE.PENPRE = HL_PREPA_LIGNE.P1NPRE

              WHERE HL_PREPA_ENTETE.PENPRE = ORD_NUM
                AND HL_PREPA_ENTETE.PENANN = YEAR_NUM
                AND HL_PREPA_ENTETE.PERODP = ORIGINATOR_REF
                AND HL_PREPA_ENTETE.PECACT = ACTIVITY_CODE
   ),
    HL52250 AS(
    SELECT DISTINCT 210 AS "SEQ", 4 AS "SEQ2", 1 AS "SEQ3", CAST(HL_PREPA_LIGNE.P1NLOP || '/' || HL_PREPA_LIGNE.P1NLPR || '/' || HL_PREPA_LIGNE.P1CART AS CHAR(16) ) AS "LINE_NB",
                    'HL52250'
                    || CAST(ACTIVITY_CODE AS CHAR(3))                                           -- ACTIVITY CODE
                    || CAST(DEPOT_CODE AS CHAR(3))                                              -- PHYSICAL DEPOT CODE
                    || CAST(HL_PREPA_LIGNE.P1NANN AS CHAR(2))                                   -- PREPARATION LINE YEAR NUMBER
                    || CAST(LPAD(HL_PREPA_LIGNE.P1NLPR, 13, '0') AS CHAR(13))                   -- PREPARATION LINE NUMBER
                    || CAST(HL_PREPA_ENTETE.PENANN AS CHAR(2))                                  -- PREPARATION YEAR NUMBER
                    || CAST(LPAD(HL_PREPA_ENTETE.PENPRE, 9, '0') AS CHAR(9))                    -- PREPARATION NUMBER
                    || CAST( LPAD(HL_GEI_SORTI.GSQGEI, 7, '0') AS CHAR(7))                      -- IPG QUANTITY IN BASE LVs
                    || CAST( LPAD(HL_GEI_SORTI.GSPNGE * 1000, 9, '0') AS CHAR(9))               -- IPG NET WEIGHT
                    || CAST(HL_GEI_SORTI.GSCFOU AS CHAR(13))                                    -- SUPPLIER CODE

                    || CAST(HL_GEI_SORTI.GSNCOL  AS CHAR(18))                                   -- CARTON NUMBER (ZAMIENIONA KOLEJNOSC Z CARTON, BO LINKER ZLE WYSYLA)
                    || CAST(HL_GEI_SORTI.GSNSUP AS CHAR(18))                                    -- HD NUMBER(ZAMIENIONA KOLEJNOSC Z CARTON, BO LINKER ZLE WYSYLA)

                    || CAST(LPAD(HL_GEI_SORTI.GSPRGE  * 1000, 11, '0') AS CHAR(11))             -- PRICE
                    || CAST(HL_GEI_SORTI.GSLOTF AS CHAR(20))                                    -- BATCH 1
                    || CAST( LPAD(HL_GEI_SORTI.GSSFAB, 2, '0') AS CHAR(2))                      -- IPG DATE OF MANUFACTURE - CENTURY
                    || CAST( LPAD(HL_GEI_SORTI.GSAFAB, 2, '0') AS CHAR(2))                      -- IPG DATE OF MANUFACTURE - YEAR
                    || CAST( LPAD(HL_GEI_SORTI.GSMFAB, 2, '0') AS CHAR(2))                      -- IPG DATE OF MANUFACTURE - MONTH
                    || CAST( LPAD(HL_GEI_SORTI.GSJFAB, 2, '0') AS CHAR(2))                      -- IPG DATE OF MANUFACTURE - DAY
                    || CAST( LPAD(HL_GEI_SORTI.GSSREG, 2, '0') AS CHAR(2))                      -- IPG RECEIPT DATE - CENTURY
                    || CAST( LPAD(HL_GEI_SORTI.GSAREG, 2, '0') AS CHAR(2))                      -- IPG RECEIPT DATE - YEAR
                    || CAST( LPAD(HL_GEI_SORTI.GSMREG, 2, '0') AS CHAR(2))                      -- IPG RECEIPT DATE - MONTH
                    || CAST( LPAD(HL_GEI_SORTI.GSJREG, 2, '0') AS CHAR(2))                      -- IPG RECEIPT DATE - DAY
                    || CAST( LPAD(HL_GEI_SORTI.GSSDLU, 2, '0') AS CHAR(2))                      -- IPG BBD - CENTURY
                    || CAST( LPAD(HL_GEI_SORTI.GSADLU, 2, '0') AS CHAR(2))                      -- IPG BBD - YEAR
                    || CAST( LPAD(HL_GEI_SORTI.GSMDLU, 2, '0') AS CHAR(2))                      -- IPG BBD - MONTH
                    || CAST( LPAD(HL_GEI_SORTI.GSJDLU, 2, '0') AS CHAR(2))                      -- IPG BBD - DAY
                    || CAST( LPAD(HL_GEI_SORTI.GSSDLV, 2, '0') AS CHAR(2))                      -- IPG SBD - CENTURY
                    || CAST( LPAD(HL_GEI_SORTI.GSADLV, 2, '0') AS CHAR(2))                      -- IPG SBD - YEAR
                    || CAST( LPAD(HL_GEI_SORTI.GSMDLV, 2, '0') AS CHAR(2))                      -- IPG SBD - MONTH
                    || CAST( LPAD(HL_GEI_SORTI.GSJDLV, 2, '0') AS CHAR(2))                      -- IPG SBD - DAY
                    || CAST( LPAD(HL_GEI_SORTI.GSSDLC, 2, '0') AS CHAR(2))                      -- IPG UBD - CENTURY
                    || CAST( LPAD(HL_GEI_SORTI.GSADLC, 2, '0') AS CHAR(2))                      -- IPG UBD - YEAR
                    || CAST( LPAD(HL_GEI_SORTI.GSMDLC, 2, '0') AS CHAR(2))                      -- IPG UBD - MONTH
                    || CAST( LPAD(HL_GEI_SORTI.GSJDLC, 2, '0') AS CHAR(2))                      -- IPG UBD - DAY
                    || CAST(HL_GEI_SORTI.GSLOT2 AS CHAR(20))                                    -- BATCH 2
                    || CAST(HL_GEI_SORTI.GSLOT3 AS CHAR(20))                                    -- BATCH 3
--                    || CAST(HL_GEI_SORTI.GSCTSU AS CHAR(3))                                     -- HD TYPE CODE
--                    || CAST(HL_GEI_SORTI.GSCTCO AS CHAR(3))                                     -- CARTON TYPE CODE
|| CAST('      ' AS CHAR(6))
                    || CAST(' ' AS CHAR(35))                                                    -- TRANSPORT DESPATCH UNIT ID
                    || '''' AS LINE
               FROM SD_HLPRENP HL_PREPA_ENTETE

			   JOIN SD_HLPRPLP HL_PREPA_LIGNE   		-- PREPARATION LINE
				 ON HL_PREPA_ENTETE.PECACT = HL_PREPA_LIGNE.P1CACT
				AND HL_PREPA_ENTETE.PECDPO = HL_PREPA_LIGNE.P1CDPO
				AND HL_PREPA_ENTETE.PENANN = HL_PREPA_LIGNE.P1NANP
				AND HL_PREPA_ENTETE.PENPRE = HL_PREPA_LIGNE.P1NPRE

--			   JOIN	SD_HLPLLPP HL_PRL_LIG_PRP 			-- PICK/PREPARATION LINE
--				 ON	HL_PRL_LIG_PRP.PPCACP = HL_PREPA_LIGNE.P1CACT
--				AND	HL_PRL_LIG_PRP.PPCDPP = HL_PREPA_LIGNE.P1CDPO
--				AND	HL_PRL_LIG_PRP.PPNANP = HL_PREPA_LIGNE.P1NANN
--				AND	HL_PRL_LIG_PRP.PPNLPR = HL_PREPA_LIGNE.P1NLPR

--			   JOIN	SD_HLPRELP HL_PRELEVEMENT			-- PICK
--				 ON	HL_PRELEVEMENT.PVCACT = HL_PRL_LIG_PRP.PPCACT
--				AND	HL_PRELEVEMENT.PVCDPO = HL_PRL_LIG_PRP.PPCDPO
--				AND	HL_PRELEVEMENT.PVNANN = HL_PRL_LIG_PRP.PPNANN
--				AND	HL_PRELEVEMENT.PVNPRL = HL_PRL_LIG_PRP.PPNPRL
--				AND HL_PRELEVEMENT.PVTVPR = '1'
--				AND HL_PRELEVEMENT.PVTNPR = '0'

				--== DESPATCHED IPG ==--
				-- CONNECT BY 'IPG AFTER PICK' WITH PICK
			   JOIN	SD_HLGESOP HL_GEI_SORTI
--				 ON	HL_GEI_SORTI.GSNGEI = HL_PRELEVEMENT.PVNGEG
--                AND HL_GEI_SORTI.GSNSUP = HL_PRELEVEMENT.PVNSUG
--                AND HL_GEI_SORTI.GSNAPP != 0
--                AND HL_GEI_SORTI.GSNPRE != 0
                 ON	HL_GEI_SORTI.GSCACT  = HL_PREPA_LIGNE.P1CACT
                 AND HL_GEI_SORTI.GSCDPO  = HL_PREPA_LIGNE.P1CDPO
                 AND HL_GEI_SORTI.GSNALI  = HL_PREPA_LIGNE.P1NANP
                 AND HL_GEI_SORTI.GSNLPR  = HL_PREPA_LIGNE.P1NLPR

--               JOIN SD_HLMISSP HL_MISSION       -- Pick batch
--                 ON HL_PRELEVEMENT.PVCDPO = HL_MISSION.MICDPO
--                AND HL_PRELEVEMENT.PVNANN = HL_MISSION.MINANN
--                AND HL_PRELEVEMENT.PVNMIS = HL_MISSION.MINMIS
--                AND NOT (MITMVA = 1 AND MITBPM = 0)

--               JOIN SD_HLPOPRP HL_POOL_PREPA      -- Preparation for preparation pool
--				 ON HL_PREPA_ENTETE.PECACT = HL_POOL_PREPA.POPCACT
--				AND HL_PREPA_ENTETE.PECDPO = HL_POOL_PREPA.POPCDPO
--				AND HL_PREPA_ENTETE.PENANN = HL_POOL_PREPA.POPNAPRE
--				AND HL_PREPA_ENTETE.PENPRE = HL_POOL_PREPA.POPNPRE
--
--               JOIN SD_HLPVPOP HL_PRELEV_POOL      -- Pick - Preparation pool
--				 ON	HL_PRL_LIG_PRP.PPCACP = HL_PRELEV_POOL.PPOCACT
--				AND	HL_PRL_LIG_PRP.PPCDPP = HL_PRELEV_POOL.PPOCDPO
--				AND	HL_PRL_LIG_PRP.PPNANN = HL_PRELEV_POOL.PPONANN
--				AND	HL_PRL_LIG_PRP.PPNPRL = HL_PRELEV_POOL.PPONPRL
--                AND HL_POOL_PREPA.POPNANN = HL_PRELEV_POOL.PPONAPOO
--                AND HL_POOL_PREPA.POPNUMPOPR = HL_PRELEV_POOL.PPONUMPOPR

              WHERE HL_PREPA_ENTETE.PENPRE = ORD_NUM
                AND HL_PREPA_ENTETE.PENANN = YEAR_NUM
                AND HL_PREPA_ENTETE.PERODP = ORIGINATOR_REF
                AND HL_PREPA_ENTETE.PECACT = ACTIVITY_CODE
                AND HL_PREPA_ENTETE.PETVAP = '1'        -- Flag - Preparation confirmed
                AND HL_PREPA_ENTETE.PETESS = '1'        -- Flag - Preparation stock despatch in progress
                AND HL_PREPA_ENTETE.PETSOP = '1'        -- Flag - Stock despatch made for preparation

 UNION ALL
 -- SLI AFTER CONFIRM BUT BEFORE DESPATCH
 -- DATA FROM HL_PRELEVEMENT + HL_GEL
SELECT DISTINCT 210 AS "SEQ", 4 AS "SEQ2", 1 AS "SEQ3", CAST(HL_PREPA_LIGNE.P1NLOP || '/' || HL_PREPA_LIGNE.P1NLPR || '/' || HL_PREPA_LIGNE.P1CART AS CHAR(16) ) AS "LINE_NB",
                     'HL52250'
                    || CAST(ACTIVITY_CODE AS CHAR(3))                                           -- ACTIVITY CODE
                    || CAST(DEPOT_CODE AS CHAR(3))                                              -- PHYSICAL DEPOT CODE
                    || CAST(HL_PREPA_LIGNE.P1NANN AS CHAR(2))                                   -- PREPARATION LINE YEAR NUMBER
                    || CAST(LPAD(HL_PREPA_LIGNE.P1NLPR, 13, '0') AS CHAR(13))                   -- PREPARATION LINE NUMBER
                    || CAST(HL_PREPA_ENTETE.PENANN AS CHAR(2))                                  -- PREPARATION YEAR NUMBER
                    || CAST(LPAD(HL_PREPA_ENTETE.PENPRE, 9, '0') AS CHAR(9))                    -- PREPARATION NUMBER
                    || CAST( LPAD(HL_GEI.GEQGEI, 7, '0') AS CHAR(7))                            -- IPG QUANTITY IN BASE LVs
                    || CAST( LPAD(HL_GEI.GEPNGE * 1000, 9, '0') AS CHAR(9))                     -- IPG NET WEIGHT
                    || CAST(HL_GEI.GECFOU AS CHAR(13))                                          -- SUPPLIER CODE

                    || CAST(HL_GEI.GENCOL AS CHAR(18))                      -- CARTON NUMBER (ZAMIENIONA KOLEJNOSC Z HD, BO LINKER ZLE WYSYLA)
                    || CAST(HL_GEI.GENSUP AS CHAR(18))                                          -- HD NUMBER (ZAMIENIONA KOLEJNOSC Z CARTON, BO LINKER ZLE WYSYLA)

                    || CAST(LPAD(HL_GEI.GEPRGE  * 1000, 11, '0') AS CHAR(11))                   -- PRICE
                    || CAST(HL_GEI.GELOTF AS CHAR(20))                                          -- BATCH 1
                    || CAST( LPAD(HL_GEI.GESFAB, 2, '0') AS CHAR(2))                            -- IPG DATE OF MANUFACTURE - CENTURY
                    || CAST( LPAD(HL_GEI.GEAFAB, 2, '0') AS CHAR(2))                            -- IPG DATE OF MANUFACTURE - YEAR
                    || CAST( LPAD(HL_GEI.GEMFAB, 2, '0') AS CHAR(2))                            -- IPG DATE OF MANUFACTURE - MONTH
                    || CAST( LPAD(HL_GEI.GEJFAB, 2, '0') AS CHAR(2))                            -- IPG DATE OF MANUFACTURE - DAY
                    || CAST( LPAD(HL_GEI.GESREG, 2, '0') AS CHAR(2))                            -- IPG RECEIPT DATE - CENTURY
                    || CAST( LPAD(HL_GEI.GEAREG, 2, '0') AS CHAR(2))                            -- IPG RECEIPT DATE - YEAR
                    || CAST( LPAD(HL_GEI.GEMREG, 2, '0') AS CHAR(2))                            -- IPG RECEIPT DATE - MONTH
                    || CAST( LPAD(HL_GEI.GEJREG, 2, '0') AS CHAR(2))                            -- IPG RECEIPT DATE - DAY
                    || CAST( LPAD(HL_GEI.GESDLU, 2, '0') AS CHAR(2))                            -- IPG BBD - CENTURY
                    || CAST( LPAD(HL_GEI.GEADLU, 2, '0') AS CHAR(2))                            -- IPG BBD - YEAR
                    || CAST( LPAD(HL_GEI.GEMDLU, 2, '0') AS CHAR(2))                            -- IPG BBD - MONTH
                    || CAST( LPAD(HL_GEI.GEJDLU, 2, '0') AS CHAR(2))                            -- IPG BBD - DAY
                    || CAST( LPAD(HL_GEI.GESDLV, 2, '0') AS CHAR(2))                            -- IPG SBD - CENTURY
                    || CAST( LPAD(HL_GEI.GEADLV, 2, '0') AS CHAR(2))                            -- IPG SBD - YEAR
                    || CAST( LPAD(HL_GEI.GEMDLV, 2, '0') AS CHAR(2))                            -- IPG SBD - MONTH
                    || CAST( LPAD(HL_GEI.GEJDLV, 2, '0') AS CHAR(2))                            -- IPG SBD - DAY
                    || CAST( LPAD(HL_GEI.GESDLC, 2, '0') AS CHAR(2))                            -- IPG UBD - CENTURY
                    || CAST( LPAD(HL_GEI.GEADLC, 2, '0') AS CHAR(2))                            -- IPG UBD - YEAR
                    || CAST( LPAD(HL_GEI.GEMDLC, 2, '0') AS CHAR(2))                            -- IPG UBD - MONTH
                    || CAST( LPAD(HL_GEI.GEJDLC, 2, '0') AS CHAR(2))                            -- IPG UBD - DAY
                    || CAST(HL_GEI.GELOT2 AS CHAR(20))                                          -- BATCH 2
                    || CAST(HL_GEI.GELOT3 AS CHAR(20))                                          -- BATCH 3
--                    || CAST(HL_PRELEVEMENT.PVCTSU AS CHAR(3))                                   -- HD TYPE CODE
--                    || CAST(HL_PRELEVEMENT.PVCTCO AS CHAR(3))                                   -- CARTON TYPE CODE
|| CAST('      ' AS CHAR(6))
                    || CAST(' ' AS CHAR(35))                                                    -- TRANSPORT DESPATCH UNIT ID
                    || '''' AS LINE
               FROM SD_HLPRENP HL_PREPA_ENTETE

			   JOIN SD_HLPRPLP HL_PREPA_LIGNE   		-- PREPARATION LINE
				 ON HL_PREPA_ENTETE.PECACT = HL_PREPA_LIGNE.P1CACT
				AND HL_PREPA_ENTETE.PECDPO = HL_PREPA_LIGNE.P1CDPO
				AND HL_PREPA_ENTETE.PENANN = HL_PREPA_LIGNE.P1NANP
				AND HL_PREPA_ENTETE.PENPRE = HL_PREPA_LIGNE.P1NPRE

			   JOIN	SD_HLPLLPP HL_PRL_LIG_PRP 			-- PICK/PREPARATION LINE
				 ON	HL_PRL_LIG_PRP.PPCACP = HL_PREPA_LIGNE.P1CACT
				AND	HL_PRL_LIG_PRP.PPCDPP = HL_PREPA_LIGNE.P1CDPO
				AND	HL_PRL_LIG_PRP.PPNANP = HL_PREPA_LIGNE.P1NANN
				AND	HL_PRL_LIG_PRP.PPNLPR = HL_PREPA_LIGNE.P1NLPR

			   JOIN	SD_HLPRELP HL_PRELEVEMENT			-- PICK
				 ON	HL_PRELEVEMENT.PVCACT = HL_PRL_LIG_PRP.PPCACT
				AND	HL_PRELEVEMENT.PVCDPO = HL_PRL_LIG_PRP.PPCDPO
				AND	HL_PRELEVEMENT.PVNANN = HL_PRL_LIG_PRP.PPNANN
				AND	HL_PRELEVEMENT.PVNPRL = HL_PRL_LIG_PRP.PPNPRL
				AND HL_PRELEVEMENT.PVTVPR = '1'
				AND HL_PRELEVEMENT.PVTNPR = '0'

               JOIN SD_HLMISSP HL_MISSION       -- Pick batch
                 ON HL_PRELEVEMENT.PVCDPO = HL_MISSION.MICDPO
                AND HL_PRELEVEMENT.PVNANN = HL_MISSION.MINANN
                AND HL_PRELEVEMENT.PVNMIS = HL_MISSION.MINMIS
                AND NOT (MITMVA = 1 AND MITBPM = 0)

              JOIN SD_HLLPRGP HL_LIG_PRP_GEI
            ON HL_PREPA_LIGNE.P1NANN = HL_LIG_PRP_GEI.LGNANN
            AND HL_PREPA_LIGNE.P1NLPR = HL_LIG_PRP_GEI.LGNLPR
            AND HL_PREPA_LIGNE.P1CACT  = HL_LIG_PRP_GEI.LGCACT
            AND HL_PREPA_LIGNE.P1CDPO  = HL_LIG_PRP_GEI.LGCDPO

				--== NOT DESPATCHED IPG ==--
				-- CONNECT BY 'IPG AFTER PICK' WITH PICK
              JOIN SD_HLGEINP HL_GEI
--                ON HL_GEI.GENGEI = HL_PRELEVEMENT.PVNGEG
                ON HL_LIG_PRP_GEI.LGNGEI = HL_GEI.GENGEI

--               JOIN SD_HLPOPRP HL_POOL_PREPA      -- Preparation for preparation pool
--				 ON HL_PREPA_ENTETE.PECACT = HL_POOL_PREPA.POPCACT
--				AND HL_PREPA_ENTETE.PECDPO = HL_POOL_PREPA.POPCDPO
--				AND HL_PREPA_ENTETE.PENANN = HL_POOL_PREPA.POPNAPRE
--				AND HL_PREPA_ENTETE.PENPRE = HL_POOL_PREPA.POPNPRE
--
--               JOIN SD_HLPVPOP HL_PRELEV_POOL      -- Pick - Preparation pool
--				 ON	HL_PRL_LIG_PRP.PPCACP = HL_PRELEV_POOL.PPOCACT
--				AND	HL_PRL_LIG_PRP.PPCDPP = HL_PRELEV_POOL.PPOCDPO
--				AND	HL_PRL_LIG_PRP.PPNANN = HL_PRELEV_POOL.PPONANN
--				AND	HL_PRL_LIG_PRP.PPNPRL = HL_PRELEV_POOL.PPONPRL
--                AND HL_POOL_PREPA.POPNANN = HL_PRELEV_POOL.PPONAPOO
--                AND HL_POOL_PREPA.POPNUMPOPR = HL_PRELEV_POOL.PPONUMPOPR

              WHERE HL_PREPA_ENTETE.PENPRE = ORD_NUM
                AND HL_PREPA_ENTETE.PENANN = YEAR_NUM
                AND HL_PREPA_ENTETE.PERODP = ORIGINATOR_REF
                AND HL_PREPA_ENTETE.PECACT = ACTIVITY_CODE
                AND HL_PREPA_ENTETE.PETVAP = '1'        -- Flag - Preparation confirmed
                AND HL_PREPA_ENTETE.PETESS = '0'        -- Flag - Preparation stock despatch in progress
                AND HL_PREPA_ENTETE.PETSOP = '0'        -- Flag - Stock despatch made for preparation
   ),
    HL52251 AS(
    SELECT DISTINCT 210 AS "SEQ", 4 AS "SEQ2", 2 AS "SEQ3", CAST(HL_PREPA_LIGNE.P1NLOP || '/' || HL_PREPA_LIGNE.P1NLPR || '/' || HL_PREPA_LIGNE.P1CART AS CHAR(16) ) AS "LINE_NB",
                    'HL52251'
                    || CAST(ACTIVITY_CODE AS CHAR(3))                                           -- ACTIVITY CODE
                    || CAST(DEPOT_CODE AS CHAR(3))                                              -- PHYSICAL DEPOT CODE
                    || CAST(HL_PREPA_LIGNE.P1NANN AS CHAR(2))                                   -- PREPARATION LINE YEAR NUMBER
                    || CAST(LPAD(HL_PREPA_LIGNE.P1NLPR, 13, '0') AS CHAR(13))                   -- PREPARATION LINE NUMBER
                    || CAST(HL_PREPA_ENTETE.PENANN AS CHAR(2))                                  -- PREPARATION YEAR NUMBER
                    || CAST(LPAD(HL_PREPA_ENTETE.PENPRE, 9, '0') AS CHAR(9))                    -- PREPARATION NUMBER

                    || '''' AS LINE
               FROM SD_HLPRENP HL_PREPA_ENTETE

			   JOIN SD_HLPRPLP HL_PREPA_LIGNE   		-- PREPARATION LINE
				 ON HL_PREPA_ENTETE.PECACT = HL_PREPA_LIGNE.P1CACT
				AND HL_PREPA_ENTETE.PECDPO = HL_PREPA_LIGNE.P1CDPO
				AND HL_PREPA_ENTETE.PENANN = HL_PREPA_LIGNE.P1NANP
				AND HL_PREPA_ENTETE.PENPRE = HL_PREPA_LIGNE.P1NPRE

              WHERE HL_PREPA_ENTETE.PENPRE = ORD_NUM
                AND HL_PREPA_ENTETE.PENANN = YEAR_NUM
                AND HL_PREPA_ENTETE.PERODP = ORIGINATOR_REF
                AND HL_PREPA_ENTETE.PECACT = ACTIVITY_CODE
   ),
    HL52299 AS(
    SELECT DISTINCT 210 AS "SEQ", 4 AS "SEQ2", 3 AS "SEQ3", CAST(HL_PREPA_LIGNE.P1NLOP || '/' || HL_PREPA_LIGNE.P1NLPR || '/' || HL_PREPA_LIGNE.P1CART AS CHAR(16) ) AS "LINE_NB",
                    'HL52299'
                    || CAST(ACTIVITY_CODE AS CHAR(3))                                           -- ACTIVITY CODE
                    || CAST(DEPOT_CODE AS CHAR(3))                                              -- PHYSICAL DEPOT CODE
                    || CAST(HL_PREPA_LIGNE.P1NANN AS CHAR(2))                                   -- PREPARATION LINE YEAR NUMBER
                    || CAST(LPAD(HL_PREPA_LIGNE.P1NLPR, 13, '0') AS CHAR(13))                   -- PREPARATION LINE NUMBER
                    || CAST(HL_PREPA_ENTETE.PENANN AS CHAR(2))                                  -- PREPARATION YEAR NUMBER
                    || CAST(LPAD(HL_PREPA_ENTETE.PENPRE, 9, '0') AS CHAR(9))                    -- PREPARATION NUMBER
                    || CAST (NVL(HL_COMMENTAIRE.COTXTC, ' ') AS CHAR(70))                       -- COMMENT
                    || CAST (NVL(HL_COMMENTAIRE.COCFCO, ' ') AS CHAR(3))                        -- COMMENT GROUP
                    || '''' AS LINE
               FROM SD_HLPRENP HL_PREPA_ENTETE

			   JOIN SD_HLPRPLP HL_PREPA_LIGNE   		-- PREPARATION LINE
				 ON HL_PREPA_ENTETE.PECACT = HL_PREPA_LIGNE.P1CACT
				AND HL_PREPA_ENTETE.PECDPO = HL_PREPA_LIGNE.P1CDPO
				AND HL_PREPA_ENTETE.PENANN = HL_PREPA_LIGNE.P1NANP
				AND HL_PREPA_ENTETE.PENPRE = HL_PREPA_LIGNE.P1NPRE

          LEFT JOIN SD_HLCOMMP HL_COMMENTAIRE
                 ON HL_COMMENTAIRE.CONCOM = HL_PREPA_LIGNE.P1NCOM
                AND HL_COMMENTAIRE.COCFCO IN ('LIN', 'OOS', 'CCL', 'EAN', 'DS1', 'DS2', 'TTN', 'PLE', 'PWI', 'PHE', 'PWE', 'PVO')
            -- TTN - PackageTrackingNo

              WHERE HL_PREPA_ENTETE.PENPRE = ORD_NUM
                AND HL_PREPA_ENTETE.PENANN = YEAR_NUM
                AND HL_PREPA_ENTETE.PERODP = ORIGINATOR_REF
                AND HL_PREPA_ENTETE.PECACT = ACTIVITY_CODE
   ),
   OUT AS (
   SELECT SEQ, SEQ2, SEQ3, LINE_NB, LINE FROM HL52110
   UNION ALL
   SELECT SEQ, SEQ2, SEQ3, LINE_NB, LINE FROM HL52120
   UNION ALL
   SELECT SEQ, SEQ2, SEQ3, LINE_NB, LINE FROM HL52130
   UNION ALL
   SELECT SEQ, SEQ2, SEQ3, LINE_NB, LINE FROM HL52140
   UNION ALL
   SELECT SEQ, SEQ2, SEQ3, LINE_NB, LINE FROM HL52150
   UNION ALL
   SELECT SEQ, SEQ2, SEQ3, LINE_NB, LINE FROM HL52160
   UNION ALL
   SELECT SEQ, SEQ2, SEQ3, LINE_NB, LINE FROM HL52199
   UNION ALL
   SELECT SEQ, SEQ2, SEQ3, LINE_NB, LINE FROM HL52210
   UNION ALL
   SELECT SEQ, SEQ2, SEQ3, LINE_NB, LINE FROM HL52220
   UNION ALL
   SELECT SEQ, SEQ2, SEQ3, LINE_NB, LINE FROM HL52230
   UNION ALL
   SELECT SEQ, SEQ2, SEQ3, LINE_NB, LINE FROM HL52250
   UNION ALL
   SELECT SEQ, SEQ2, SEQ3, LINE_NB, LINE FROM HL52299

   ORDER BY SEQ, LINE_NB, SEQ2, SEQ3
   )

   SELECT LPAD(CAST (ROWNUM AS VARCHAR(7)),7,'0')|| LINE AS LINE FROM OUT;

END;
Editor is loading...