update script to snap the whole pool to the
appropriate quota rep.
This commit is contained in:
commit
1f96081a41
@ -1,70 +1,59 @@
|
||||
BEGIN;
|
||||
|
||||
--SELECT dsm, director, quota_rep_descr, billto_group, shipto_group, sum(value_usd ), count(*) from rlarp.osm_pool where order_season = 2021 group by dsm, director, quota_rep_descr, billto_group, shipto_group;
|
||||
--forego setting other customer attributes as they are not stored in osm_pool anyways
|
||||
|
||||
UPDATE
|
||||
rlarp.osm_pool o
|
||||
RLARP.OSM_POOL S
|
||||
SET
|
||||
chan = CASE SUBSTRING(b.bvclas,2,3)
|
||||
--if the bill to class is ditsributor, then it's either warehouse or drop
|
||||
WHEN 'DIS' THEN
|
||||
--if the ship-to is a different name than the bill-to then it's drop, otherwise it's warehouse
|
||||
CASE SUBSTRING(s.bvclas,2,3)
|
||||
WHEN 'DIS' THEN 'WHS'
|
||||
ELSE 'DRP'
|
||||
END
|
||||
--CASE WHEN RTRIM(SUBSTRING(LTRIM(SC.BVADR7)||SC.BVNAME,1,30)) = RTRIM(SUBSTRING(LTRIM(BC.BVADR7)||BC.BVNAME,1,30)) THEN 'DIS' ELSE 'DRP' END
|
||||
--everything else does not involve a distributor and is considered direct
|
||||
ELSE 'DIR'
|
||||
END,
|
||||
chansub = CASE SUBSTRING(b.bvclas,2,3)
|
||||
WHEN 'DIS' THEN
|
||||
--if the ship-to is a different name than the bill-to then it's drop, otherwise it's warehouse
|
||||
CASE SUBSTRING(s.bvclas,2,3)
|
||||
WHEN 'DIS' THEN 'WHS'
|
||||
ELSE CASE SUBSTRING(s.bvclas,1,1) WHEN 'R' THEN 'RDP' ELSE 'DRP' END
|
||||
END
|
||||
WHEN 'MAS' THEN 'RMN'
|
||||
WHEN 'NAT' THEN 'RMN'
|
||||
ELSE CASE SUBSTRING(s.bvclas,1,1) WHEN 'R' THEN 'RDI' ELSE 'DIR' END
|
||||
END,
|
||||
dsm =
|
||||
DSM = CR.QUOTA_REP
|
||||
FROM
|
||||
(
|
||||
SELECT DISTINCT
|
||||
VERSION,
|
||||
COALESCE(SEGM,'') SEGM,
|
||||
MING_DESCR,
|
||||
BILL_CUST_DESCR,
|
||||
SHIP_CUST_DESCR,
|
||||
------------quota rep column--------------
|
||||
CASE WHEN COALESCE(substring(ming_descr,1,3),'') = 'B52' THEN 'PW' ELSE
|
||||
CASE WHEN COALESCE(SUBSTRING(ming_descr,1,3),'') = 'B52' THEN 'PW' ELSE
|
||||
--if the gl expense code is 1RE use the retail rep assigned to the bill-to customer if available
|
||||
CASE WHEN COALESCE(o.segm,'') = 'Retail' AND COALESCE((SELECT currep FROM lgpgm.usrcust where cucust = b.bvcust),'') <> ''
|
||||
THEN
|
||||
(SELECT currep FROM lgpgm.usrcust where cucust = b.bvcust)
|
||||
CASE WHEN COALESCE(segm,'') = 'Retail' AND COALESCE(cu.currep,'') <> '' THEN
|
||||
cu.currep
|
||||
--default logic
|
||||
ELSE
|
||||
CASE SUBSTR(b.bvclas,2,3)
|
||||
WHEN 'DIS' THEN s.bvsalm
|
||||
ELSE b.bvsalm
|
||||
CASE SUBSTR(bc.bvclas,2,3)
|
||||
WHEN 'DIS' THEN
|
||||
sc.bvsalm
|
||||
ELSE
|
||||
bc.bvsalm
|
||||
END
|
||||
END
|
||||
END,
|
||||
billto_group = CASE b.bvadr6 WHEN '' THEN b.bvname ELSE b.bvadr6 END,
|
||||
shipto_group = CASE s.bvadr6 WHEN '' THEN s.bvname ELSE s.bvadr6 END
|
||||
END QUOTA_REP
|
||||
FROM
|
||||
lgdat.cust b,
|
||||
lgdat.cust s
|
||||
RLARP.OSM_POOL S
|
||||
LEFT OUTER JOIN LGDAT.CUST BC ON
|
||||
BC.BVCUST = (regexp_match(S.bill_cust_descr,'(.*) - .*'))[1]
|
||||
LEFT OUTER JOIN LGDAT.CUST SC ON
|
||||
SC.BVCUST = (regexp_match(S.ship_cust_descr,'(.*) - .*'))[1]
|
||||
LEFT OUTER JOIN lgpgm.usrcust cu ON
|
||||
cu.cucust = (regexp_match(S.bill_cust_descr,'(.*) - .*'))[1]
|
||||
) CR
|
||||
WHERE
|
||||
b.bvcust = rtrim(substring(o.bill_cust_descr,1,8))
|
||||
AND s.bvcust = rtrim(substring(o.ship_cust_descr,1,8));
|
||||
--BEGIN;
|
||||
CR.VERSION = S.VERSION
|
||||
AND CR.SEGM = COALESCE(S.SEGM,'')
|
||||
AND CR.MING_DESCR = S.MING_DESCR
|
||||
AND CR.BILL_CUST_DESCR = S.BILL_CUST_DESCR
|
||||
AND CR.SHIP_CUST_DESCR = S.SHIP_CUST_DESCR
|
||||
AND COALESCE(S.DSM,'') <> CR.QUOTA_REP;
|
||||
|
||||
UPDATE
|
||||
rlarp.osm_pool o
|
||||
SET
|
||||
quota_rep_descr = c.a30
|
||||
,director = COALESCE(Q.DIR,'Other')
|
||||
quota_rep_descr = (regexp_match(r.repp,'.* - (.*)$'))[1]
|
||||
FROM
|
||||
lgdat.code c
|
||||
,rlarp.qrh q
|
||||
rlarp.repc r
|
||||
WHERE
|
||||
LTRIM(RTRIM(c.a9)) = o.dsm
|
||||
and c.a2 = 'MM'
|
||||
AND q.qr = LTRIM(RTRIM(c.a9));
|
||||
r.rcode = o.dsm
|
||||
AND quota_rep_descr <> (regexp_match(r.repp,'.* - (.*)$'))[1];
|
||||
|
||||
COMMIT;
|
||||
--ROLLBACK;
|
||||
|
@ -135,7 +135,7 @@ target AS (SELECT $$swap_doc$$::jsonb swap)
|
||||
,o.terms
|
||||
,COALESCE(c.bill_r||' - '||c.bill_dba,o.bill_cust_descr) bill_cust_descr
|
||||
,COALESCE(c.ship_r||' - '||c.ship_dba,o.ship_cust_descr) ship_cust_descr
|
||||
,o.dsm
|
||||
,r.rcode dsm
|
||||
,(regexp_match(r.repp,'.* - (.*)$'))[1] quota_rep_descr
|
||||
,r.director
|
||||
,COALESCE(c.bill_dba,o.billto_group) billto_group
|
||||
|
Loading…
Reference in New Issue
Block a user