diff --git a/build/build_forecast.sql b/build/build_forecast.sql index 753a74b..6f5c6f2 100644 --- a/build/build_forecast.sql +++ b/build/build_forecast.sql @@ -723,4 +723,5 @@ UPDATE rlarp.osmf SET iter = 'bad date' WHERE sdate < odate; --flag budget orders that are planned to book before the budget UPDATE rlarp.osmf SET iter = 'py carryover' WHERE iter = 'copy' AND odate <= '2025-06-01'; ---flag past due orders that are dropping out in shipments on current date +--set new fiscal periods, may require adding dates to lgdat.gldate +UPDATE rlarp.osmf SET fspr = g.fspr FROM rlarp.gld g ON sdate BETWEEN sdat AND edat; diff --git a/offline/new_cust_profile.pg.sql b/offline/new_cust_profile.pg.sql index 78e618f..9000e9a 100644 --- a/offline/new_cust_profile.pg.sql +++ b/offline/new_cust_profile.pg.sql @@ -1,59 +1,200 @@ WITH newc AS ( - SELECT - * - FROM - ( - VALUES - ('JOHNSON FARMS'), - ('QUALITREE PROPAGATORS'), - ('TY NURSERY INC'), - ('CK GREENHOUSES'), - ('DESERT HORIZON NURSERY'), - ('PHELPS NURSERY'), - ('R PLANTS'), - ('STOKLEY NURSERY'), - ('ONE FLORAL'), - ('HUIZENGA BRO GREENHOUSE INC'), - ('SUNRISE GREENHOUSES'), - ('HORTECH INC'), - ('EDGEWOOD GREENHOUSE'), - ('DGI'), - ('DAYNABROOK GREENHOUSES'), - ('A&W ANNUALS'), - ('ANDERSEN NURSERY'), - ('BUCKHORN NURSERY'), - ('RAZBUTONS INC'), - ('HSU''S'), - ('JANOSKI GREENHOUSE'), - ('GROWERS SOLUTION LLC'), - ('GREEN BARN INC'), - ('HONEYMOON ACRES'), - ('WALNUT GROVE NURSERY'), - ('PIEPER NURSERY'), - ('SUN NURSERIES'), - ('D''ADDIO FAMILY NURSERY'), - ('BOEKESTYN GREENHOUSES LTD'), - ('GORRELL BROTHERS LLC'), - ('EXOTIC BOTANICALS'), - ('SPRING VALLEY NURSERY'), - ('PINE VIEW FARM'), - ('BROUWERS FLOWERS'), - ('HUNTER ROAD GREENHOUSES'), - ('CAPOGNA FLOWERS'), - ('J FRANK GAUDET TREE NURSERY'), - ('SALMON WHOLESALE NURSERY'), - ('ORLANDO NURSERY INC'), - ('ARIZONA EAST'), - ('ALASKA GDN & PET SUPPLY RET'), - ('TONYS GARDEN CENTER'), - ('SESTER FARMS INC') - ) x(cust) + SELECT * FROM (VALUES +('Target'), +('BATTLEFIELD FARMS'), +('BYLANDS NURSERIES'), +('BRENTANOS TREE FARM'), +('QUALITREE PROPAGATORS'), +('LINNAEA NURSERIES LTD'), +('CI FARMS'), +('DESERT HORIZON NURSERY'), +('MEADOWLARK ORNAMENTALS LLC'), +('PHELPS NURSERY'), +('MEDFORD NURSERY INC'), +('JEFFEREYS GREENHOUSES'), +('STOKLEY NURSERY'), +('STEWARTS GREENHOUSE'), +('A & R Spada Farms'), +('HUIZENGA BRO GREENHOUSE INC'), +('HEIRLOOM ROSES'), +('SUNRISE GREENHOUSES'), +('ALPHA NURSERY'), +('BREEZY HILL NURSERY'), +('DAYNABROOK GREENHOUSES'), +('DGI'), +('EDGEWOOD GREENHOUSE'), +('RAZBUTON INC'), +('GOLD COAST FARMS LLC'), +('A&W ANNUALS'), +('MESQUITE VALLEY GROWERS'), +('CAAN FLORAL CO INC'), +('SUNLAND NURSERY'), +('HSU''S'), +('GREEN BARN INC'), +('HONEYMOON ACRES'), +('COUNTRYSIDE FLOWER SHOP NURSER'), +('ARNOLDS GREENHOUSES'), +('WALNUT GROVE NURSERY'), +('KATOS NURSERY'), +('BAYVIEW GREENHOUSES'), +('AMERIGO'), +('AVA NURSERY'), +('SLC STORE'), +('BELLE INVESTMENTS'), +('SUN NURSERIES'), +('D''ADDIO FAMILY NURSERY'), +('GEORGE''S PLANT FARM'), +('MR GREENJEANS FARM MARKET'), +('BOEKESTYN GREENHOUSES LTD'), +('FISHER FARMS'), +('PINE VIEW FARM'), +('GILSON FAMILY ENTERPRISE'), +('STARLING NURSERY'), +('A GARDEN CENTER'), +('MCCALLS NURSERIES INC'), +('MAHONEYS GROWING DIVISION'), +('CAPOGNA FLOWERS'), +('J FRANK GAUDET TREE NURSERY'), +('NORTHWEST PLANT COMPANY'), +('KATYDID GREENHOUSE'), +('SHANER AVENUE NURSERY'), +('BEAUTIFUL LAND PRODUCTS'), +('ALASKA GDN & PET SUPPLY RET'), +('UNITED CENTRAL ORCHIDS'), +('WAYFAIR LLC'), +('DAHLINGHAUS VENTURES LLC'), +('PAYNES NURSERIES & GREENHOUSE'), +('IMPERIAL''S GARDEN INC'), +('TONYS GARDEN CENTER'), +('CINDYS GREENHOUSE'), +('DETWEILER''S FLOWERS'), +('FERGUSON LANDSCAPE'), +('BAYSIDE GARDEN CENTER'), +('WATERTOWN FLORAL') +) x(cust) ) ,profile AS ( - SELECT * FROM rlarp.osm WHERE shipgrp IN (select cust FROM newc ) AND oseas = 2019 + SELECT * FROM rlarp.osm WHERE shipgrp IN (select cust FROM newc ) AND oseas >= 2018 ) ,checkc AS ( SELECT distinct shipgrp FROM profile ) -SELECT cust, sum(fb_qty) FROM newc LEFT OUTER JOIN profile ON shipgrp = cust GROUP by cust +-- SELECT cust, sum(fb_qty) FROM newc LEFT OUTER JOIN profile ON shipgrp = cust GROUP by cust +----grouped prices------------- +,pgrp AS ( + SELECT + o.bill_dba + ,o.ship_dba + ,o.part + ,o.odate + ,o.qtyord + ,i.nwht * CASE WHEN i.nwun = 'KG' THEN 2.2 ELSE 1 END lbs + ,i.mpck pltq + ,ROUND(o.sales_usd / o.qty,5) price + ,(o.pricing->>'guidance_price')::NUMERIC guidance + ,(o.pricing->>'floor' )::numeric(15,5) floor + ,(o.pricing->>'ceiling')::numeric(15,5) ceiling + ,(o.pricing->>'uselimits')::boolean uselimits + FROM + rlarp.osm_stack o + LEFT OUTER JOIN "CMS.CUSLG".itemm i ON + i.item = o.part + WHERE + VERSION = 'Actual' + AND oseas >= 2024 + AND calc_status <> 'CANCELED' + AND o.fs_line = '41010' + AND o.part <> '' + AND substring(o.glec,1,1) <= '2' + AND o.qty <> 0 + GROUP BY + o.bill_dba + ,o.ship_dba + ,o.part + ,o.odate + ,o.qtyord + ,o.pounds + ,o.pallets + ,ROUND(o.sales_usd / o.qty,5) + ,i.nwht * CASE WHEN i.nwun = 'KG' THEN 2.2 ELSE 1 END + ,i.mpck + ,(o.pricing->>'guidance_price')::NUMERIC + ,(o.pricing->>'floor' )::numeric(15,5) + ,(o.pricing->>'ceiling')::numeric(15,5) + ,(o.pricing->>'uselimits')::boolean +) +----sequenced for most recent price------------ +,seq AS ( + SELECT + bill_dba + ,ship_dba + ,part + ,odate + ,qtyord + ,lbs + ,pltq + ,price + ,guidance + ,floor + ,ceiling + ,uselimits + ,row_number() OVER (PARTITION BY bill_dba, ship_dba, part ORDER BY odate desc) rn + ,round(avg(price) over (PARTITION BY bill_dba, ship_dba, part),5) avgprice + FROM + pgrp +) +,grp AS ( + SELECT + o.account + ,o.shipgrp + ,o.part + ,o.oseas + ,o.odate + ,o.sseas + ,o.sdate + -- ,o.calc_status + ,ROUND(sum(fb_qty * lbs),5) lbs + ,ROUND(sum(fb_qty),2) qty + ,ROUND(sum(fb_val_loc * r_rate),2) sales_usd + ,ROUND(sum(fb_cst_loc_cur * c_rate),2) cost_curstd_usd + FROM + profile o + -- WHERE + -- iter IN ('actuals','actuals_plug','copy') + GROUP BY + o.account + ,o.shipgrp + ,o.part + ,o.oseas + ,o.odate + ,o.sseas + ,o.sdate + -- ,o.calc_status +) + SELECT + grp.account + ,grp.shipgrp + ,grp.part + ,grp.oseas + ,grp.odate + ,grp.sseas + ,grp.sdate + ,grp.lbs + ,grp.qty + ,grp.sales_usd + ,grp.cost_curstd_usd + ,sum(grp.lbs) OVER (PARTITION BY shipgrp, oseas) shiplbs + ,seq.floor + ,seq.ceiling + ,seq.uselimits + ,seq.price + ,seq.avgprice + ,seq.pltq + FROM + grp + LEFT OUTER JOIN seq ON + seq.ship_dba = grp.shipgrp + AND seq.bill_dba = grp.account + AND seq.part = grp.part + AND seq.rn = 1