--BEGIN;

WITH 
--------for this script the req values are just the increment---------
req AS (
    SELECT
        -1000000 value_d
        ,-582302 cost_d
)
---------collapse iterations--------------------------------------
,collapse AS (
    SELECT
         o.fspr
        ,o.plnt                
        ,o.promo               
        ,o.terms
        ,o.bill_cust_descr     
        ,o.ship_cust_descr     
        ,o.dsm
        ,o.quota_rep_descr     
        ,o.director
        ,o.billto_group        
        ,o.shipto_group
        ,o.chan                
        ,o.chansub
        ,o.chan_retail
        ,o.part
        ,o.part_descr
        ,o.part_group
        ,o.branding
        ,o.majg_descr
        ,o.ming_descr
        ,o.majs_descr
        ,o.mins_descr
        ,o.segm
        ,o.substance
        ,o.fs_line          
        ,o.r_currency      
        ,o.r_rate           
        ,o.c_currency       
        ,o.c_rate           
        ,SUM(o.units)                      units
        ,SUM(o.value_loc)                  value_loc
        ,SUM(o.value_usd)                  value_usd
        -----exclude any prior pricing adjustments from the "current" price in the forecast------
        ,SUM(o.cost_loc)                   cost_loc
        ,SUM(o.cost_usd)                   cost_usd
        ,o.calc_status      --0 
        ,o.flag             --0 
        ,o.order_date       --history date mix
        ,o.order_month
        ,o.order_season
        ,o.request_date     --history date mix
        ,o.request_month
        ,o.request_season
        ,o.ship_date        --history date mix
        ,o.ship_month
        ,o.ship_season
    FROM
        rlarp.osm_pool o
        --need to join to itemm to get the product from osm_pool
    WHERE
        o.segm = 'Greenhouse'
        AND o.ship_season = '2022'
        AND o.ship_month =  '08 - Jan'
        AND o.order_month = '08 - Jan'
    GROUP BY 
         o.fspr
        ,o.plnt          ---master data 
        ,o.promo          --history date mix
        ,o.terms
        ,o.bill_cust_descr          --history cust mix
        ,o.ship_cust_descr          --history cust mix
        ,o.dsm
        ,o.quota_rep_descr          --master data 
        ,o.director
        ,o.billto_group          --master data 
        ,o.shipto_group
        ,o.chan          --master data 
        ,o.chansub
        ,o.chan_retail
        ,o.part
        ,o.part_descr
        ,o.part_group
        ,o.branding
        ,o.majg_descr
        ,o.ming_descr
        ,o.majs_descr
        ,o.mins_descr
        ,o.segm
        ,o.substance
        ,o.fs_line          
        ,o.r_currency      
        ,o.r_rate           
        ,o.c_currency       
        ,o.c_rate           
        ,o.calc_status      --0 
        ,o.flag             --0 
        ,o.order_date          --history date mix
        ,o.order_month
        ,o.order_season
        ,o.request_date          --history date mix
        ,o.request_month
        ,o.request_season
        ,o.ship_date          --history date mix
        ,o.ship_month
        ,o.ship_season
    --HAVING
    --    sum(o.units) <> 0
)
------------------cost/units adjustment percent------------------
,adj_c AS (
    SELECT
        (SELECT cost_d FROM req) adj_d 
        ,(SELECT cost_d FROM req)/SUM(o.cost_usd) adj_p
    FROM
        collapse o
)
-----------------sales value adjustment percent-----------------
,adj_v AS (
    SELECT
          (SELECT value_d FROM req) adj_d 
        ,(SELECT value_d FROM req)/SUM(o.value_usd) adj_p
    FROM
        collapse o
)
--SELECT * from adj;
----------------create a log entry--------------------
,log AS (
    INSERT INTO
           rlarp.osm_log(doc)
    SELECT 
        $${
            "message":"sales smooth",
            "tag":"sales smooth",
            "type":"build" 
        }$$::jsonb doc 
    RETURNING *
)
-------------build the iteration rows----------------
,ins AS (
SELECT
     o.fspr
    ,o.plnt          ---master data 
    ,o.promo          --history date mix
    ,o.terms
    ,o.bill_cust_descr          --history cust mix
    ,o.ship_cust_descr          --history cust mix
    ,o.dsm
    ,o.quota_rep_descr          --master data 
    ,o.director
    ,o.billto_group          --master data 
    ,o.shipto_group
    ,o.chan          --master data 
    ,o.chansub
    ,o.chan_retail
    ,o.part
    ,o.part_descr
    ,o.part_group
    ,o.branding
    ,o.majg_descr
    ,o.ming_descr
    ,o.majs_descr
    ,o.mins_descr
    ,o.segm
    ,o.substance
    ,o.fs_line          --master data 
    ,o.r_currency          --history cust mix
    ,o.r_rate          --master data 
    ,o.c_currency          --master data 
    ,o.c_rate          --master data 
    --,o.units
    ,units      *adj_c.adj_p units
    ,value_loc  *adj_v.adj_p value_loc
    ,value_usd  *adj_v.adj_p value_usd
    ,cost_loc   *adj_c.adj_p cost_loc
    ,cost_usd   *adj_c.adj_p cost_usd
    ,o.calc_status          --0 
    ,o.flag          --0 
    ,o.order_date          --history date mix
    ,o.order_month
    ,o.order_season
    ,o.request_date          --history date mix
    ,o.request_month
    ,o.request_season
    ,o.ship_date          --history date mix
    ,o.ship_month
    ,o.ship_season
    ---this iteration has to be listed in the master template file in order to be effectively included---
    ,'b22' AS version
    ,'upload volume' iter
    ,log.id
    ,COALESCE(log.doc->>'tag','') "tag"
    ,log.doc->>'message' "comment"
    ,log.doc->>'type' module
FROM
    collapse o
    --need to join to itemm to get the product from osm_pool
    ,log
    ,adj_c
    ,adj_v
)
--SELECT *, SUM(VALUE_USD) OVER() FROM (SELECT order_season, order_month, sum(value_usd) value_usd from ins group by order_season, order_month) as x;
INSERT INTO rlarp.osm_pool SELECT * FROM ins;
--SELECT * FROM ins WHERE shipto_group = 'BATTLEFIELD FARMS' and part = 'XNT0TQT3X56B220PYDKP';
-----------aggregate the impact------------

--COMMIT;
