BEGIN;

DELETE FROM rlarp.osm_pool WHERE order_date < '2020-06-01';

INSERT INTO rlarp.osm_pool
WITH
repc AS (
    SELECT
        LTRIM(RTRIM(C.A9)) RCODE
        ,C.A30 REPP
        ,COALESCE(Q.DIR,'Other') DIRECTOR
    FROM
        LGDAT.CODE C
        LEFT OUTER JOIN RLARP.QRH Q ON
            Q.QR = LTRIM(RTRIM(C.A9))
    WHERE
        C.A2 = 'MM'
)
,SEG AS (
    SELECT
        GLEC
        ,SEGM
    FROM
        (
            VALUES
            ('1SU','Sustainable'),
            ('1CU','Sustainable'),
            ('1GR','Greenhouse'),
            ('1NU','Nursery'),
            ('1RE','Retail'),
            ('2WI','Greenhouse'),
            ('3BM','Other'),
            ('3CO','Other'),
            ('3PE','Other'),
            ('3PP','Other'),
            ('4CO','Other'),
            ('4RA','Other'),
            ('9MI','Other'),
            ('9SA','Other'),
            ('9TO','Other')
        ) X(GLEC, SEGM)
)
----------------------------------------------------sales major codes----------------------------------------------------------------------------------------------------------------------------------
,SJ AS (
    SELECT * FROM LGDAT.MMSL WHERE COALESCE(BSMNCD,'') = ''
)
----------------------------------------------------sales minor codes----------------------------------------------------------------------------------------------------------------------------------
,SI AS (
    SELECT * FROM LGDAT.MMSL WHERE COALESCE(BSMNCD,'') <> ''
)
SELECT
    fspr
    ,plnt
    ,promo
    ,terms
    ,bill_cust||' - '||bc.bvname bill_cust_descr
    ,ship_cust||' - '||sc.bvname ship_cust_descr
    ,dsm
    ,coalesce(repc.repp,dsm) quota_rep_descr
    ,repc.director
    ,account billto_group
    ,shipgrp shipto_group
    ,chan
    ,chansub
    ,CASE seg.segm
        WHEN 'Retail' THEN
            CASE o.bill_class
                WHEN 'RMAS' THEN 'MASS' 
                WHEN 'RNAT' THEN 'NATIONAL' 
                ELSE 'OTHER' 
            END
        ELSE o.chan
    END chan_retail     
    ,part
    ,part||coalesce(' - '||i.descr,'') part_descr
    ,stlcd part_group
    ,brnd branding
    ,o.majg||' - '||i.majgd majg_descr
    ,o.ming||' - '||i.mingd ming_descr
    ,o.majs||' - '||i.majsd majs_descr
    ,o.mins||' - '||i.minsd mins_descr
    ,seg.segm
    ,CASE WHEN o.majg = '610' THEN 'Fiber' ELSE 'Plastic' END substance
    ,fs_line
    ,r_currency
    ,r_rate
    ,c_currency
    ,c_rate
    ,fb_qty units
    ,fb_val_loc value_loc
    ,fb_val_loc * r_rate value_usd
    ,fb_cst_loc_cur cost_loc
    ,fb_cst_loc_cur * c_rate cost_usd
    ,calc_status
    ,flag
    ,o.odate order_date
    ,to_char(CASE WHEN extract(month FROM o.odate) >= 6 THEN -5 ELSE 7 END + extract(month FROM o.odate),'FM00')||' - '||to_char(o.odate,'TMMon') order_month
    ,oseas order_season
    ,rdate request_date
    ,to_char(CASE WHEN extract(month FROM o.rdate) >= 6 THEN -5 ELSE 7 END + extract(month FROM o.rdate),'FM00')||' - '||to_char(o.rdate,'TMMon') request_month
    ,rseas request_season
    ,sdate ship_date
    ,to_char(CASE WHEN extract(month FROM o.sdate) >= 6 THEN -5 ELSE 7 END + extract(month FROM o.sdate),'FM00')||' - '||to_char(o.sdate,'TMMon') ship_month
    ,sseas ship_season
    ,version
    ,iter
    ,logload.id logid
    ,logload.doc->>'tag' tag
    ,logload.doc->>'message' "comment"
    ,logload.doc->>'type' module
FROM
    rlarp.osmf_dev o
    INNER JOIN rlarp.osm_log logload ON
        logload.id = 1
    LEFT OUTER JOIN lgdat.cust bc ON
        bc.bvcust = o.bill_cust
    LEFT OUTER JOIN lgdat.cust sc ON
        sc.bvcust = o.ship_cust
    LEFT OUTER JOIN repc ON
        repc.rcode = o.dsm
    /*
    LEFT OUTER JOIN lgdat.majg ON
        bqgrp = o.majg
    LEFT OUTER JOIN lgdat.mmgp ON
        brmgrp = o.ming
        AND BRGRP = o.majg
    LEFT OUTER JOIN si ON
        si.bsmjcd = o.majs
        AND si.bsmncd = o.mins
    LEFT OUTER JOIN sj ON
        sj.bsmjcd = o.majs
    */
    LEFT OUTER JOIN seg ON
        seg.glec = o.glec
    LEFT OUTER JOIN rlarp.itemm i ON
        i.item = o.part
WHERE
    odate < '2020-06-01';


SELECT
    "version",
    iter,
    order_season,
    order_month ,
    sum(value_usd ) value_usd
FROM
    RLARP.osm_pool op 
WHERE
    --oseas = 2020
    fs_line = '41010'
    --AND odate < '2020-04-01'
    AND CALC_STATUS <> 'CANCELED'
    AND NOT (calc_status = 'CLOSED' AND flag = 'REMAINDER')
GROUP BY 
    "version",
    iter,
    order_season,
    order_month;
    
    
--ROLLBACK;

commit;
