Initial changes to mip_quotation.pck and mip_bulk_load.pck to support PhaseII purging requirements.

New attributes added to Schema/ext_cost.pdc,  Data/BulkLoad/BULK_LOAD.xls (as exported through Data/BulkLoad/MATERIAL_COSTS.csv).

Changes to views V_AICO.vw and V_QUOTE_DETAILS.vw to recognize the new attributes and to stop PURGING being excluded from details.


git-svn-id: http://locode01.ad.dom/svn/WEBMIP/trunk@12526 248e525c-4dfb-0310-94bc-949c084e9493
This commit is contained in:
andrew.hardy
2009-09-04 16:29:42 +00:00
parent d96fb6925c
commit c621cd7b24
8 changed files with 1303 additions and 856 deletions

Binary file not shown.

View File

@@ -1,195 +1,195 @@
,,,,,,,,,
"SELLING_PRICE","COST_PRICE","DELIVERY_COST","VALID_FROM","VALID_TO","COST_TYPE","MODU_CODE","HOU_CODE","BAS_CODE","ADIT_CODE"
48.63,,0,,,"MOCO","AD016S",,,
48.63,,0,,,"MOCO","AD016SW",,,
101.37,,0,,,"MOCO","AD025S",,,
101.37,,0,,,"MOCO","AD025SW",,,
101.38,,0,,,"MOCO","AD040S",,,
481.53,,0,,,"MOCO","AD065S",,,
493.92,,0,,,"MOCO","AD100S",,,
719.38,,0,,,"MOCO","AD160S",,,
228.734,,27.5,,,"MOCO","ARCMVV0025A",,,
228.734,,27.5,,,"MOCO","ARCMVV0025AW",,,
302.973,,27.5,,,"MOCO","ARCMVV0040AW",,,
302.973,,27.5,,,"MOCO","ARCMVV0040A",,,
692.89,,60.5,,,"MOCO","ARCMHH0065A",,,
692.89,,60.5,,,"MOCO","ARCMVV0065A",,,
692.89,,60.5,,,"MOCO","ARCMVH0065A",,,
692.89,,60.5,,,"MOCO","ARCMHV0065A",,,
692.89,,60.5,,,"MOCO","ARCMHH0100A",,,
692.89,,60.5,,,"MOCO","ARCMVV0100A",,,
692.89,,60.5,,,"MOCO","ARCMVH0100A",,,
692.89,,60.5,,,"MOCO","ARCMHV0100A",,,
955.614,,60.5,,,"MOCO","ARCMVV0160A",,,
955.614,,60.5,,,"MOCO","ARCMHH0160A",,,
955.614,,60.5,,,"MOCO","ARCMVH0160A",,,
955.614,,60.5,,,"MOCO","ARCMHV0160A",,,
955.614,,60.5,,,"MOCO","ARCMVV0200A",,,
955.614,,60.5,,,"MOCO","ARCMHH0200A",,,
955.614,,60.5,,,"MOCO","ARCMVH0200A",,,
955.614,,60.5,,,"MOCO","ARCMHV0200A",,,
955.614,,60.5,,,"MOCO","ARCMVV0250A",,,
955.614,,60.5,,,"MOCO","ARCMHH0250A",,,
955.614,,60.5,,,"MOCO","ARCMVH0250A",,,
955.614,,60.5,,,"MOCO","ARCMHV0250A",,,
1878.272,,60.5,,,"MOCO","ARVV0250AP",,,
1878.272,,60.5,,,"MOCO","ARHH0250AP",,,
1878.272,,60.5,,,"MOCO","ARVH0250AP",,,
1878.272,,60.5,,,"MOCO","ARHV0250AP",,,
1232.869,,60.5,,,"MOCO","ARVV0300A",,,
1232.869,,60.5,,,"MOCO","ARHH0300A",,,
1232.869,,60.5,,,"MOCO","ARVH0300A",,,
1232.869,,60.5,,,"MOCO","ARHV0300A",,,
2848.373,,99,,,"MOCO","ARVV0300AP",,,
2848.373,,99,,,"MOCO","ARHH0300AP",,,
2848.373,,99,,,"MOCO","ARVH0300AP",,,
2848.373,,99,,,"MOCO","ARHV0300AP",,,
1663.486,,60.5,,,"MOCO","ARVV0400A",,,
1663.486,,60.5,,,"MOCO","ARHH0400A",,,
1663.486,,60.5,,,"MOCO","ARVH0400A",,,
1663.486,,60.5,,,"MOCO","ARHV0400A",,,
1911.855,,99,,,"MOCO","ARVV0650A",,,
1911.855,,99,,,"MOCO","ARHH0650A",,,
1911.855,,99,,,"MOCO","ARVH0650A",,,
1911.855,,99,,,"MOCO","ARHV0650A",,,
4233.68,,550,,,"MOCO","ARVV0650AP",,,
4233.68,,550,,,"MOCO","ARHH0650AP",,,
4233.68,,550,,,"MOCO","ARVH0650AP",,,
4233.68,,550,,,"MOCO","ARHV0650AP",,,
1935.879,,99,,,"MOCO","ARVV1000A",,,
1935.879,,99,,,"MOCO","ARHH1000A",,,
1935.879,,99,,,"MOCO","ARVH1000A",,,
1935.879,,99,,,"MOCO","ARHV1000A",,,
4793.349,,550,,,"MOCO","ARVV1000AP",,,
4793.349,,550,,,"MOCO","ARHH1000AP",,,
4793.349,,550,,,"MOCO","ARVH1000AP",,,
4793.349,,550,,,"MOCO","ARHV1000AP",,,
402.754,,92.4,,,"MOCO","ASD016A",,,
401.654,,92.4,,,"MOCO","ASD016AW",,,
461.604,,92.4,,,"MOCO","ASD025A",,,
632.082,,92.4,,,"MOCO","ASD040A",,,
1157.211,,92.4,,,"MOCO","ASD065A",,,
1628.979,,92.4,,,"MOCO","ASD100A",,,
1652.915,,92.4,,,"MOCO","ASD160A",,,
606.375,,92.4,,,"MOCO","ASR0025A",,,
618.376,,92.4,,,"MOCO","ASR0040A",,,
1648.768,,92.4,,,"MOCO","ASR0100A",,,
1842.225,,92.4,,,"MOCO","ASR0160A",,,
2107.446,,92.4,,,"MOCO","ASR0200A",,,
3041.896,,92.4,,,"MOCO","ASR0250A",,,
3302.156,,92.4,,,"MOCO","ASR0300A",,,
3667.752,,92.4,,,"MOCO","ASR0400A",,,
3902.514,,550,,,"MOCO","ASR0650A",,,
4569.862,,550,,,"MOCO","ASR1000A",,,
1377.2,,330,,,"MOCO","ASR0025D",,,
1377.2,,330,,,"MOCO","ASR0040D",,,
1377.2,,330,,,"MOCO","ASR0065D",,,
2376,,330,,,"MOCO","ASR0100D",,,
3131.7,,330,,,"MOCO","ASR0160D",,,
3663,,605,,,"MOCO","ASR0250D",,,
3771.9,,605,,,"MOCO","ASR0310D",,,
6092.9,,605,,,"MOCO","ASR0450D",,,
6092.9,,605,,,"MOCO","ASR0450DP",,,
6938.8,,605,,,"MOCO","ASR0650D",,,
7616.4,,605,,,"MOCO","ASR1075D",,,
8800,,605,,,"MOCO","ASR1600D",,,
12862.3,,605,,,"MOCO","ASR2885D",,,
437.44,,,,,"AICO",,,,"EMS"
400,,,,,"AICO",,,,"LIFTING GEAR"
,,,,,"AICO",,,,"PURGING"
,,,,,"AICO",,,,"AMR"
245.91,,,,,"AICO",,,,"CONVERTER INSTALL"
311.7,,,,,"AICO",,,,"CONVERTER REMOVE"
996.93,,,,,"BACO",,,"RA0025LPB",
996.93,,,,,"BACO",,,"RA0025MPB",
996.93,,,,,"BACO",,,"RA0040LPB",
996.93,,,,,"BACO",,,"RA0040MPB",
1620.02,,,,,"BACO",,,"RA0065LPB",
1620.02,,,,,"BACO",,,"RA0100LPB",
996.93,,,,,"BACO",,,"RA0100MPB",
1620.02,,,,,"BACO",,,"RA0160LPB",
996.93,,,,,"BACO",,,"RA0160MPB",
1620.02,,,,,"BACO",,,"RA0200LPB",
996.93,,,,,"BACO",,,"RA0200MPB",
1620.02,,,,,"BACO",,,"RA0250+LPB",
1620.02,,,,,"BACO",,,"RA0250LPB",
1620.02,,,,,"BACO",,,"RA0250MPB",
1931.56,,,,,"BACO",,,"RA0300+LPB",
1620.02,,,,,"BACO",,,"RA0300LPB",
1620.02,,,,,"BACO",,,"RA0300MPB",
1931.56,,,,,"BACO",,,"RA0400LPB",
1620.02,,,,,"BACO",,,"RA0400MPB",
2118.49,,,,,"BACO",,,"RA0650+LPB",
1931.56,,,,,"BACO",,,"RA0650LPB",
1931.56,,,,,"BACO",,,"RA0650MPB",
2118.49,,,,,"BACO",,,"RA1000+LPB",
1931.56,,,,,"BACO",,,"RA1000LPB",
1931.56,,,,,"BACO",,,"RA1000MPB",
996.93,,,,,"BACO",,,"RD0025MPB",
996.93,,,,,"BACO",,,"RD0040MPB",
996.93,,,,,"BACO",,,"RD0065MPB",
996.93,,,,,"BACO",,,"RD0100MPB",
1620.02,,,,,"BACO",,,"RD0160MPB",
1620.02,,,,,"BACO",,,"RD0250MPB",
1620.02,,,,,"BACO",,,"RD0310MPB",
1620.02,,,,,"BACO",,,"RD0450+MPB",
1620.02,,,,,"BACO",,,"RD0450MPB",
1931.56,,,,,"BACO",,,"RD0650MPB",
1931.56,,,,,"BACO",,,"RD1075MPB",
1931.56,,,,,"BACO",,,"RD1600MPB",
2430.03,,,,,"BACO",,,"RD2885MPB",
996.93,,,,,"BACO",,,"U016LPB",
996.93,,,,,"BACO",,,"U016MPB",
996.93,,,,,"BACO",,,"U025LPB",
996.93,,,,,"BACO",,,"U025MPB",
996.93,,,,,"BACO",,,"U040LPB",
996.93,,,,,"BACO",,,"U040MPB",
996.93,,,,,"BACO",,,"U065LPB",
1620.02,,,,,"BACO",,,"U065MPB",
1620.02,,,,,"BACO",,,"U100LPB",
1620.02,,,,,"BACO",,,"U100MPB",
1620.02,,,,,"BACO",,,"U160LPB",
1620.02,,,,,"BACO",,,"U160MPB",
248.61,,,,,"HOCO",,"GC2",,
293.47,,,,,"HOCO",,"GC2FS",,
310.92,,,,,"HOCO",,"GC2MP",,
354.53,,,,,"HOCO",,"GC3",,
394.41,,,,,"HOCO",,"GC4",,
662.96,,,,,"HOCO",,"GC4+",,
781.35,,,,,"HOCO",,"GC5",,
869.83,,,,,"HOCO",,"GC6LP",,
981.98,,,,,"HOCO",,"GC6MP",,
1094.14,,,,,"HOCO",,"GC7LP",,
1206.29,,,,,"HOCO",,"GC7MP",,
1265.48,,,,,"HOCO",,"GC7+LP",,
1377.64,,,,,"HOCO",,"GC7+MP",,
2722.88,,,,,"HOCO",,"GC8LP/MP",,
316.53,,,,,"HOCO",,"Gas Cab No 2 (Multi)",,
392.54,,,,,"HOCO",,"Gas Cab No 4",,
891.01,,,,,"HOCO",,"Gas Cab No 6",,
3673.7,,,,,"HOCO",,"Custom1",,
4055.03,,,,,"HOCO",,"Custom2",,
4204.57,,,,,"HOCO",,"Custom3",,
3916.71,,,,,"HOCO",,"Custom4",,
4326.7,,,,,"HOCO",,"Custom5",,
4978.44,,,,,"HOCO",,"Custom6",,
3303.59,,,,,"HOCO",,"KP1",,
3535.38,,,,,"HOCO",,"KP2",,
3770.9,,,,,"HOCO",,"KP3",,
4431.37,,,,,"HOCO",,"KP4",,
4574.68,,,,,"HOCO",,"KP5",,
280.39,,,,,"HOCO",,"Gas Cab No 2BB",,
392.54,,,,,"HOCO",,"Gas Cab No 4BB25",,
392.54,,,,,"HOCO",,"Gas Cab No 4BB40",,
956.39,,,,,"HOCO",,"Gas Cab No 6BB100",,
1170.88,,,,,"HOCO",,"Gas Cab No 6BB160",,
293.47,,,,,"HOCO",,"GC2FSBB",,
354.53,,,,,"HOCO",,"GC3BB",,
394.41,,,,,"HOCO",,"GC4BB25",,
394.41,,,,,"HOCO",,"GC4BB40",,
781.35,,,,,"HOCO",,"GC5BB",,
956.39,,,,,"HOCO",,"GC6BB100",,
1170.88,,,,,"HOCO",,"GC6BB160",,
248.61,,,,,"HOCO",,"GC2BB",,
316.53,,,,,"HOCO",,"Gas Cab No 2MP",,
5625.2,,,,,"HOCO",,"Custom7",,
,,,,,,,,,,,,,,,,,,,,,,,,,
"SELLING_PRICE","COST_PRICE","DELIVERY_COST","VALID_FROM","VALID_TO","COST_TYPE","MODU_CODE","HOU_CODE","BAS_CODE","ADIT_CODE","METY_CODE","MESC_CODE",,,,,,,,,,,,,,
48.63,,0.00,,,"MOCO","AD016S",,,,,,,,,,,,,,,,,,,
48.63,,0.00,,,"MOCO","AD016SW",,,,,,,,,,,,,,,,,,,
101.37,,0.00,,,"MOCO","AD025S",,,,,,,,,,,,,,,,,,,
101.37,,0.00,,,"MOCO","AD025SW",,,,,,,,,,,,,,,,,,,
101.38,,0.00,,,"MOCO","AD040S",,,,,,,,,,,,,,,,,,,
481.53,,0.00,,,"MOCO","AD065S",,,,,,,,,,,,,,,,,,,
493.92,,0.00,,,"MOCO","AD100S",,,,,,,,,,,,,,,,,,,
719.38,,0.00,,,"MOCO","AD160S",,,,,,,,,,,,,,,,,,,
228.73,,27.50,,,"MOCO","ARCMVV0025A",,,,,,,,,,,,,,,,,,,
228.73,,27.50,,,"MOCO","ARCMVV0025AW",,,,,,,,,,,,,,,,,,,
302.97,,27.50,,,"MOCO","ARCMVV0040AW",,,,,,,,,,,,,,,,,,,
302.97,,27.50,,,"MOCO","ARCMVV0040A",,,,,,,,,,,,,,,,,,,
692.89,,60.50,,,"MOCO","ARCMHH0065A",,,,,,,,,,,,,,,,,,,
692.89,,60.50,,,"MOCO","ARCMVV0065A",,,,,,,,,,,,,,,,,,,
692.89,,60.50,,,"MOCO","ARCMVH0065A",,,,,,,,,,,,,,,,,,,
692.89,,60.50,,,"MOCO","ARCMHV0065A",,,,,,,,,,,,,,,,,,,
692.89,,60.50,,,"MOCO","ARCMHH0100A",,,,,,,,,,,,,,,,,,,
692.89,,60.50,,,"MOCO","ARCMVV0100A",,,,,,,,,,,,,,,,,,,
692.89,,60.50,,,"MOCO","ARCMVH0100A",,,,,,,,,,,,,,,,,,,
692.89,,60.50,,,"MOCO","ARCMHV0100A",,,,,,,,,,,,,,,,,,,
955.61,,60.50,,,"MOCO","ARCMVV0160A",,,,,,,,,,,,,,,,,,,
955.61,,60.50,,,"MOCO","ARCMHH0160A",,,,,,,,,,,,,,,,,,,
955.61,,60.50,,,"MOCO","ARCMVH0160A",,,,,,,,,,,,,,,,,,,
955.61,,60.50,,,"MOCO","ARCMHV0160A",,,,,,,,,,,,,,,,,,,
955.61,,60.50,,,"MOCO","ARCMVV0200A",,,,,,,,,,,,,,,,,,,
955.61,,60.50,,,"MOCO","ARCMHH0200A",,,,,,,,,,,,,,,,,,,
955.61,,60.50,,,"MOCO","ARCMVH0200A",,,,,,,,,,,,,,,,,,,
955.61,,60.50,,,"MOCO","ARCMHV0200A",,,,,,,,,,,,,,,,,,,
955.61,,60.50,,,"MOCO","ARCMVV0250A",,,,,,,,,,,,,,,,,,,
955.61,,60.50,,,"MOCO","ARCMHH0250A",,,,,,,,,,,,,,,,,,,
955.61,,60.50,,,"MOCO","ARCMVH0250A",,,,,,,,,,,,,,,,,,,
955.61,,60.50,,,"MOCO","ARCMHV0250A",,,,,,,,,,,,,,,,,,,
1878.27,,60.50,,,"MOCO","ARVV0250AP",,,,,,,,,,,,,,,,,,,
1878.27,,60.50,,,"MOCO","ARHH0250AP",,,,,,,,,,,,,,,,,,,
1878.27,,60.50,,,"MOCO","ARVH0250AP",,,,,,,,,,,,,,,,,,,
1878.27,,60.50,,,"MOCO","ARHV0250AP",,,,,,,,,,,,,,,,,,,
1232.87,,60.50,,,"MOCO","ARVV0300A",,,,,,,,,,,,,,,,,,,
1232.87,,60.50,,,"MOCO","ARHH0300A",,,,,,,,,,,,,,,,,,,
1232.87,,60.50,,,"MOCO","ARVH0300A",,,,,,,,,,,,,,,,,,,
1232.87,,60.50,,,"MOCO","ARHV0300A",,,,,,,,,,,,,,,,,,,
2848.37,,99.00,,,"MOCO","ARVV0300AP",,,,,,,,,,,,,,,,,,,
2848.37,,99.00,,,"MOCO","ARHH0300AP",,,,,,,,,,,,,,,,,,,
2848.37,,99.00,,,"MOCO","ARVH0300AP",,,,,,,,,,,,,,,,,,,
2848.37,,99.00,,,"MOCO","ARHV0300AP",,,,,,,,,,,,,,,,,,,
1663.49,,60.50,,,"MOCO","ARVV0400A",,,,,,,,,,,,,,,,,,,
1663.49,,60.50,,,"MOCO","ARHH0400A",,,,,,,,,,,,,,,,,,,
1663.49,,60.50,,,"MOCO","ARVH0400A",,,,,,,,,,,,,,,,,,,
1663.49,,60.50,,,"MOCO","ARHV0400A",,,,,,,,,,,,,,,,,,,
1911.86,,99.00,,,"MOCO","ARVV0650A",,,,,,,,,,,,,,,,,,,
1911.86,,99.00,,,"MOCO","ARHH0650A",,,,,,,,,,,,,,,,,,,
1911.86,,99.00,,,"MOCO","ARVH0650A",,,,,,,,,,,,,,,,,,,
1911.86,,99.00,,,"MOCO","ARHV0650A",,,,,,,,,,,,,,,,,,,
4233.68,,550.00,,,"MOCO","ARVV0650AP",,,,,,,,,,,,,,,,,,,
4233.68,,550.00,,,"MOCO","ARHH0650AP",,,,,,,,,,,,,,,,,,,
4233.68,,550.00,,,"MOCO","ARVH0650AP",,,,,,,,,,,,,,,,,,,
4233.68,,550.00,,,"MOCO","ARHV0650AP",,,,,,,,,,,,,,,,,,,
1935.88,,99.00,,,"MOCO","ARVV1000A",,,,,,,,,,,,,,,,,,,
1935.88,,99.00,,,"MOCO","ARHH1000A",,,,,,,,,,,,,,,,,,,
1935.88,,99.00,,,"MOCO","ARVH1000A",,,,,,,,,,,,,,,,,,,
1935.88,,99.00,,,"MOCO","ARHV1000A",,,,,,,,,,,,,,,,,,,
4793.35,,550.00,,,"MOCO","ARVV1000AP",,,,,,,,,,,,,,,,,,,
4793.35,,550.00,,,"MOCO","ARHH1000AP",,,,,,,,,,,,,,,,,,,
4793.35,,550.00,,,"MOCO","ARVH1000AP",,,,,,,,,,,,,,,,,,,
4793.35,,550.00,,,"MOCO","ARHV1000AP",,,,,,,,,,,,,,,,,,,
402.75,,92.40,,,"MOCO","ASD016A",,,,,,,,,,,,,,,,,,,
401.65,,92.40,,,"MOCO","ASD016AW",,,,,,,,,,,,,,,,,,,
461.60,,92.40,,,"MOCO","ASD025A",,,,,,,,,,,,,,,,,,,
632.08,,92.40,,,"MOCO","ASD040A",,,,,,,,,,,,,,,,,,,
1157.21,,92.40,,,"MOCO","ASD065A",,,,,,,,,,,,,,,,,,,
1628.98,,92.40,,,"MOCO","ASD100A",,,,,,,,,,,,,,,,,,,
1652.92,,92.40,,,"MOCO","ASD160A",,,,,,,,,,,,,,,,,,,
606.38,,92.40,,,"MOCO","ASR0025A",,,,,,,,,,,,,,,,,,,
618.38,,92.40,,,"MOCO","ASR0040A",,,,,,,,,,,,,,,,,,,
1648.77,,92.40,,,"MOCO","ASR0100A",,,,,,,,,,,,,,,,,,,
1842.23,,92.40,,,"MOCO","ASR0160A",,,,,,,,,,,,,,,,,,,
2107.45,,92.40,,,"MOCO","ASR0200A",,,,,,,,,,,,,,,,,,,
3041.90,,92.40,,,"MOCO","ASR0250A",,,,,,,,,,,,,,,,,,,
3302.16,,92.40,,,"MOCO","ASR0300A",,,,,,,,,,,,,,,,,,,
3667.75,,92.40,,,"MOCO","ASR0400A",,,,,,,,,,,,,,,,,,,
3902.51,,550.00,,,"MOCO","ASR0650A",,,,,,,,,,,,,,,,,,,
4569.86,,550.00,,,"MOCO","ASR1000A",,,,,,,,,,,,,,,,,,,
1377.20,,330.00,,,"MOCO","ASR0025D",,,,,,,,,,,,,,,,,,,
1377.20,,330.00,,,"MOCO","ASR0040D",,,,,,,,,,,,,,,,,,,
1377.20,,330.00,,,"MOCO","ASR0065D",,,,,,,,,,,,,,,,,,,
2376.00,,330.00,,,"MOCO","ASR0100D",,,,,,,,,,,,,,,,,,,
3131.70,,330.00,,,"MOCO","ASR0160D",,,,,,,,,,,,,,,,,,,
3663.00,,605.00,,,"MOCO","ASR0250D",,,,,,,,,,,,,,,,,,,
3771.90,,605.00,,,"MOCO","ASR0310D",,,,,,,,,,,,,,,,,,,
6092.90,,605.00,,,"MOCO","ASR0450D",,,,,,,,,,,,,,,,,,,
6092.90,,605.00,,,"MOCO","ASR0450DP",,,,,,,,,,,,,,,,,,,
6938.80,,605.00,,,"MOCO","ASR0650D",,,,,,,,,,,,,,,,,,,
7616.40,,605.00,,,"MOCO","ASR1075D",,,,,,,,,,,,,,,,,,,
8800.00,,605.00,,,"MOCO","ASR1600D",,,,,,,,,,,,,,,,,,,
12862.30,,605.00,,,"MOCO","ASR2885D",,,,,,,,,,,,,,,,,,,
437.44,,,,,"AICO",,,,"EMS",,,,,,,,,,,,,,,,
400.00,,,,,"AICO",,,,"LIFTING GEAR",,,,,,,,,,,,,,,,
123.56,,,,,"AICO",,,,"PURGING","Diaphragm",,,,,,,,,,,,,,,
,,,,,"AICO",,,,"AMR",,,,,,,,,,,,,,,,"Diaphragm"
245.91,,,,,"AICO",,,,"CONVERTER INSTALL",,,,,,,,,,,,,,,,
311.70,,,,,"AICO",,,,"CONVERTER REMOVE",,,,,,,,,,,,,,,,
996.93,,,,,"BACO",,,"RA0025LPB",,,,,,,,,,,,,,,,,
996.93,,,,,"BACO",,,"RA0025MPB",,,,,,,,,,,,,,,,,
996.93,,,,,"BACO",,,"RA0040LPB",,,,,,,,,,,,,,,,,
996.93,,,,,"BACO",,,"RA0040MPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"RA0065LPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"RA0100LPB",,,,,,,,,,,,,,,,,
996.93,,,,,"BACO",,,"RA0100MPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"RA0160LPB",,,,,,,,,,,,,,,,,
996.93,,,,,"BACO",,,"RA0160MPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"RA0200LPB",,,,,,,,,,,,,,,,,
996.93,,,,,"BACO",,,"RA0200MPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"RA0250+LPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"RA0250LPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"RA0250MPB",,,,,,,,,,,,,,,,,
1931.56,,,,,"BACO",,,"RA0300+LPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"RA0300LPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"RA0300MPB",,,,,,,,,,,,,,,,,
1931.56,,,,,"BACO",,,"RA0400LPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"RA0400MPB",,,,,,,,,,,,,,,,,
2118.49,,,,,"BACO",,,"RA0650+LPB",,,,,,,,,,,,,,,,,
1931.56,,,,,"BACO",,,"RA0650LPB",,,,,,,,,,,,,,,,,
1931.56,,,,,"BACO",,,"RA0650MPB",,,,,,,,,,,,,,,,,
2118.49,,,,,"BACO",,,"RA1000+LPB",,,,,,,,,,,,,,,,,
1931.56,,,,,"BACO",,,"RA1000LPB",,,,,,,,,,,,,,,,,
1931.56,,,,,"BACO",,,"RA1000MPB",,,,,,,,,,,,,,,,,
996.93,,,,,"BACO",,,"RD0025MPB",,,,,,,,,,,,,,,,,
996.93,,,,,"BACO",,,"RD0040MPB",,,,,,,,,,,,,,,,,
996.93,,,,,"BACO",,,"RD0065MPB",,,,,,,,,,,,,,,,,
996.93,,,,,"BACO",,,"RD0100MPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"RD0160MPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"RD0250MPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"RD0310MPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"RD0450+MPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"RD0450MPB",,,,,,,,,,,,,,,,,
1931.56,,,,,"BACO",,,"RD0650MPB",,,,,,,,,,,,,,,,,
1931.56,,,,,"BACO",,,"RD1075MPB",,,,,,,,,,,,,,,,,
1931.56,,,,,"BACO",,,"RD1600MPB",,,,,,,,,,,,,,,,,
2430.03,,,,,"BACO",,,"RD2885MPB",,,,,,,,,,,,,,,,,
996.93,,,,,"BACO",,,"U016LPB",,,,,,,,,,,,,,,,,
996.93,,,,,"BACO",,,"U016MPB",,,,,,,,,,,,,,,,,
996.93,,,,,"BACO",,,"U025LPB",,,,,,,,,,,,,,,,,
996.93,,,,,"BACO",,,"U025MPB",,,,,,,,,,,,,,,,,
996.93,,,,,"BACO",,,"U040LPB",,,,,,,,,,,,,,,,,
996.93,,,,,"BACO",,,"U040MPB",,,,,,,,,,,,,,,,,
996.93,,,,,"BACO",,,"U065LPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"U065MPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"U100LPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"U100MPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"U160LPB",,,,,,,,,,,,,,,,,
1620.02,,,,,"BACO",,,"U160MPB",,,,,,,,,,,,,,,,,
248.61,,,,,"HOCO",,"GC2",,,,,,,,,,,,,,,,,,
293.47,,,,,"HOCO",,"GC2FS",,,,,,,,,,,,,,,,,,
310.92,,,,,"HOCO",,"GC2MP",,,,,,,,,,,,,,,,,,
354.53,,,,,"HOCO",,"GC3",,,,,,,,,,,,,,,,,,
394.41,,,,,"HOCO",,"GC4",,,,,,,,,,,,,,,,,,
662.96,,,,,"HOCO",,"GC4+",,,,,,,,,,,,,,,,,,
781.35,,,,,"HOCO",,"GC5",,,,,,,,,,,,,,,,,,
869.83,,,,,"HOCO",,"GC6LP",,,,,,,,,,,,,,,,,,
981.98,,,,,"HOCO",,"GC6MP",,,,,,,,,,,,,,,,,,
1094.14,,,,,"HOCO",,"GC7LP",,,,,,,,,,,,,,,,,,
1206.29,,,,,"HOCO",,"GC7MP",,,,,,,,,,,,,,,,,,
1265.48,,,,,"HOCO",,"GC7+LP",,,,,,,,,,,,,,,,,,
1377.64,,,,,"HOCO",,"GC7+MP",,,,,,,,,,,,,,,,,,
2722.88,,,,,"HOCO",,"GC8LP/MP",,,,,,,,,,,,,,,,,,
316.53,,,,,"HOCO",,"Gas Cab No 2 (Multi)",,,,,,,,,,,,,,,,,,
392.54,,,,,"HOCO",,"Gas Cab No 4",,,,,,,,,,,,,,,,,,
891.01,,,,,"HOCO",,"Gas Cab No 6",,,,,,,,,,,,,,,,,,
3673.70,,,,,"HOCO",,"Custom1",,,,,,,,,,,,,,,,,,
4055.03,,,,,"HOCO",,"Custom2",,,,,,,,,,,,,,,,,,
4204.57,,,,,"HOCO",,"Custom3",,,,,,,,,,,,,,,,,,
3916.71,,,,,"HOCO",,"Custom4",,,,,,,,,,,,,,,,,,
4326.70,,,,,"HOCO",,"Custom5",,,,,,,,,,,,,,,,,,
4978.44,,,,,"HOCO",,"Custom6",,,,,,,,,,,,,,,,,,
3303.59,,,,,"HOCO",,"KP1",,,,,,,,,,,,,,,,,,
3535.38,,,,,"HOCO",,"KP2",,,,,,,,,,,,,,,,,,
3770.90,,,,,"HOCO",,"KP3",,,,,,,,,,,,,,,,,,
4431.37,,,,,"HOCO",,"KP4",,,,,,,,,,,,,,,,,,
4574.68,,,,,"HOCO",,"KP5",,,,,,,,,,,,,,,,,,
280.39,,,,,"HOCO",,"Gas Cab No 2BB",,,,,,,,,,,,,,,,,,
392.54,,,,,"HOCO",,"Gas Cab No 4BB25",,,,,,,,,,,,,,,,,,
392.54,,,,,"HOCO",,"Gas Cab No 4BB40",,,,,,,,,,,,,,,,,,
956.39,,,,,"HOCO",,"Gas Cab No 6BB100",,,,,,,,,,,,,,,,,,
1170.88,,,,,"HOCO",,"Gas Cab No 6BB160",,,,,,,,,,,,,,,,,,
293.47,,,,,"HOCO",,"GC2FSBB",,,,,,,,,,,,,,,,,,
354.53,,,,,"HOCO",,"GC3BB",,,,,,,,,,,,,,,,,,
394.41,,,,,"HOCO",,"GC4BB25",,,,,,,,,,,,,,,,,,
394.41,,,,,"HOCO",,"GC4BB40",,,,,,,,,,,,,,,,,,
781.35,,,,,"HOCO",,"GC5BB",,,,,,,,,,,,,,,,,,
956.39,,,,,"HOCO",,"GC6BB100",,,,,,,,,,,,,,,,,,
1170.88,,,,,"HOCO",,"GC6BB160",,,,,,,,,,,,,,,,,,
248.61,,,,,"HOCO",,"GC2BB",,,,,,,,,,,,,,,,,,
316.53,,,,,"HOCO",,"Gas Cab No 2MP",,,,,,,,,,,,,,,,,,
5625.20,,,,,"HOCO",,"Custom7",,,,,,,,,,,,,,,,,,
1
2 SELLING_PRICE COST_PRICE DELIVERY_COST VALID_FROM VALID_TO COST_TYPE MODU_CODE HOU_CODE BAS_CODE ADIT_CODE METY_CODE MESC_CODE
3 48.63 0 0.00 MOCO AD016S
4 48.63 0 0.00 MOCO AD016SW
5 101.37 0 0.00 MOCO AD025S
6 101.37 0 0.00 MOCO AD025SW
7 101.38 0 0.00 MOCO AD040S
8 481.53 0 0.00 MOCO AD065S
9 493.92 0 0.00 MOCO AD100S
10 719.38 0 0.00 MOCO AD160S
11 228.734 228.73 27.5 27.50 MOCO ARCMVV0025A
12 228.734 228.73 27.5 27.50 MOCO ARCMVV0025AW
13 302.973 302.97 27.5 27.50 MOCO ARCMVV0040AW
14 302.973 302.97 27.5 27.50 MOCO ARCMVV0040A
15 692.89 60.5 60.50 MOCO ARCMHH0065A
16 692.89 60.5 60.50 MOCO ARCMVV0065A
17 692.89 60.5 60.50 MOCO ARCMVH0065A
18 692.89 60.5 60.50 MOCO ARCMHV0065A
19 692.89 60.5 60.50 MOCO ARCMHH0100A
20 692.89 60.5 60.50 MOCO ARCMVV0100A
21 692.89 60.5 60.50 MOCO ARCMVH0100A
22 692.89 60.5 60.50 MOCO ARCMHV0100A
23 955.614 955.61 60.5 60.50 MOCO ARCMVV0160A
24 955.614 955.61 60.5 60.50 MOCO ARCMHH0160A
25 955.614 955.61 60.5 60.50 MOCO ARCMVH0160A
26 955.614 955.61 60.5 60.50 MOCO ARCMHV0160A
27 955.614 955.61 60.5 60.50 MOCO ARCMVV0200A
28 955.614 955.61 60.5 60.50 MOCO ARCMHH0200A
29 955.614 955.61 60.5 60.50 MOCO ARCMVH0200A
30 955.614 955.61 60.5 60.50 MOCO ARCMHV0200A
31 955.614 955.61 60.5 60.50 MOCO ARCMVV0250A
32 955.614 955.61 60.5 60.50 MOCO ARCMHH0250A
33 955.614 955.61 60.5 60.50 MOCO ARCMVH0250A
34 955.614 955.61 60.5 60.50 MOCO ARCMHV0250A
35 1878.272 1878.27 60.5 60.50 MOCO ARVV0250AP
36 1878.272 1878.27 60.5 60.50 MOCO ARHH0250AP
37 1878.272 1878.27 60.5 60.50 MOCO ARVH0250AP
38 1878.272 1878.27 60.5 60.50 MOCO ARHV0250AP
39 1232.869 1232.87 60.5 60.50 MOCO ARVV0300A
40 1232.869 1232.87 60.5 60.50 MOCO ARHH0300A
41 1232.869 1232.87 60.5 60.50 MOCO ARVH0300A
42 1232.869 1232.87 60.5 60.50 MOCO ARHV0300A
43 2848.373 2848.37 99 99.00 MOCO ARVV0300AP
44 2848.373 2848.37 99 99.00 MOCO ARHH0300AP
45 2848.373 2848.37 99 99.00 MOCO ARVH0300AP
46 2848.373 2848.37 99 99.00 MOCO ARHV0300AP
47 1663.486 1663.49 60.5 60.50 MOCO ARVV0400A
48 1663.486 1663.49 60.5 60.50 MOCO ARHH0400A
49 1663.486 1663.49 60.5 60.50 MOCO ARVH0400A
50 1663.486 1663.49 60.5 60.50 MOCO ARHV0400A
51 1911.855 1911.86 99 99.00 MOCO ARVV0650A
52 1911.855 1911.86 99 99.00 MOCO ARHH0650A
53 1911.855 1911.86 99 99.00 MOCO ARVH0650A
54 1911.855 1911.86 99 99.00 MOCO ARHV0650A
55 4233.68 550 550.00 MOCO ARVV0650AP
56 4233.68 550 550.00 MOCO ARHH0650AP
57 4233.68 550 550.00 MOCO ARVH0650AP
58 4233.68 550 550.00 MOCO ARHV0650AP
59 1935.879 1935.88 99 99.00 MOCO ARVV1000A
60 1935.879 1935.88 99 99.00 MOCO ARHH1000A
61 1935.879 1935.88 99 99.00 MOCO ARVH1000A
62 1935.879 1935.88 99 99.00 MOCO ARHV1000A
63 4793.349 4793.35 550 550.00 MOCO ARVV1000AP
64 4793.349 4793.35 550 550.00 MOCO ARHH1000AP
65 4793.349 4793.35 550 550.00 MOCO ARVH1000AP
66 4793.349 4793.35 550 550.00 MOCO ARHV1000AP
67 402.754 402.75 92.4 92.40 MOCO ASD016A
68 401.654 401.65 92.4 92.40 MOCO ASD016AW
69 461.604 461.60 92.4 92.40 MOCO ASD025A
70 632.082 632.08 92.4 92.40 MOCO ASD040A
71 1157.211 1157.21 92.4 92.40 MOCO ASD065A
72 1628.979 1628.98 92.4 92.40 MOCO ASD100A
73 1652.915 1652.92 92.4 92.40 MOCO ASD160A
74 606.375 606.38 92.4 92.40 MOCO ASR0025A
75 618.376 618.38 92.4 92.40 MOCO ASR0040A
76 1648.768 1648.77 92.4 92.40 MOCO ASR0100A
77 1842.225 1842.23 92.4 92.40 MOCO ASR0160A
78 2107.446 2107.45 92.4 92.40 MOCO ASR0200A
79 3041.896 3041.90 92.4 92.40 MOCO ASR0250A
80 3302.156 3302.16 92.4 92.40 MOCO ASR0300A
81 3667.752 3667.75 92.4 92.40 MOCO ASR0400A
82 3902.514 3902.51 550 550.00 MOCO ASR0650A
83 4569.862 4569.86 550 550.00 MOCO ASR1000A
84 1377.2 1377.20 330 330.00 MOCO ASR0025D
85 1377.2 1377.20 330 330.00 MOCO ASR0040D
86 1377.2 1377.20 330 330.00 MOCO ASR0065D
87 2376 2376.00 330 330.00 MOCO ASR0100D
88 3131.7 3131.70 330 330.00 MOCO ASR0160D
89 3663 3663.00 605 605.00 MOCO ASR0250D
90 3771.9 3771.90 605 605.00 MOCO ASR0310D
91 6092.9 6092.90 605 605.00 MOCO ASR0450D
92 6092.9 6092.90 605 605.00 MOCO ASR0450DP
93 6938.8 6938.80 605 605.00 MOCO ASR0650D
94 7616.4 7616.40 605 605.00 MOCO ASR1075D
95 8800 8800.00 605 605.00 MOCO ASR1600D
96 12862.3 12862.30 605 605.00 MOCO ASR2885D
97 437.44 AICO EMS
98 400 400.00 AICO LIFTING GEAR
99 123.56 AICO PURGING Diaphragm
100 AICO AMR Diaphragm
101 245.91 AICO CONVERTER INSTALL
102 311.7 311.70 AICO CONVERTER REMOVE
103 996.93 BACO RA0025LPB
104 996.93 BACO RA0025MPB
105 996.93 BACO RA0040LPB
106 996.93 BACO RA0040MPB
107 1620.02 BACO RA0065LPB
108 1620.02 BACO RA0100LPB
109 996.93 BACO RA0100MPB
110 1620.02 BACO RA0160LPB
111 996.93 BACO RA0160MPB
112 1620.02 BACO RA0200LPB
113 996.93 BACO RA0200MPB
114 1620.02 BACO RA0250+LPB
115 1620.02 BACO RA0250LPB
116 1620.02 BACO RA0250MPB
117 1931.56 BACO RA0300+LPB
118 1620.02 BACO RA0300LPB
119 1620.02 BACO RA0300MPB
120 1931.56 BACO RA0400LPB
121 1620.02 BACO RA0400MPB
122 2118.49 BACO RA0650+LPB
123 1931.56 BACO RA0650LPB
124 1931.56 BACO RA0650MPB
125 2118.49 BACO RA1000+LPB
126 1931.56 BACO RA1000LPB
127 1931.56 BACO RA1000MPB
128 996.93 BACO RD0025MPB
129 996.93 BACO RD0040MPB
130 996.93 BACO RD0065MPB
131 996.93 BACO RD0100MPB
132 1620.02 BACO RD0160MPB
133 1620.02 BACO RD0250MPB
134 1620.02 BACO RD0310MPB
135 1620.02 BACO RD0450+MPB
136 1620.02 BACO RD0450MPB
137 1931.56 BACO RD0650MPB
138 1931.56 BACO RD1075MPB
139 1931.56 BACO RD1600MPB
140 2430.03 BACO RD2885MPB
141 996.93 BACO U016LPB
142 996.93 BACO U016MPB
143 996.93 BACO U025LPB
144 996.93 BACO U025MPB
145 996.93 BACO U040LPB
146 996.93 BACO U040MPB
147 996.93 BACO U065LPB
148 1620.02 BACO U065MPB
149 1620.02 BACO U100LPB
150 1620.02 BACO U100MPB
151 1620.02 BACO U160LPB
152 1620.02 BACO U160MPB
153 248.61 HOCO GC2
154 293.47 HOCO GC2FS
155 310.92 HOCO GC2MP
156 354.53 HOCO GC3
157 394.41 HOCO GC4
158 662.96 HOCO GC4+
159 781.35 HOCO GC5
160 869.83 HOCO GC6LP
161 981.98 HOCO GC6MP
162 1094.14 HOCO GC7LP
163 1206.29 HOCO GC7MP
164 1265.48 HOCO GC7+LP
165 1377.64 HOCO GC7+MP
166 2722.88 HOCO GC8LP/MP
167 316.53 HOCO Gas Cab No 2 (Multi)
168 392.54 HOCO Gas Cab No 4
169 891.01 HOCO Gas Cab No 6
170 3673.7 3673.70 HOCO Custom1
171 4055.03 HOCO Custom2
172 4204.57 HOCO Custom3
173 3916.71 HOCO Custom4
174 4326.7 4326.70 HOCO Custom5
175 4978.44 HOCO Custom6
176 3303.59 HOCO KP1
177 3535.38 HOCO KP2
178 3770.9 3770.90 HOCO KP3
179 4431.37 HOCO KP4
180 4574.68 HOCO KP5
181 280.39 HOCO Gas Cab No 2BB
182 392.54 HOCO Gas Cab No 4BB25
183 392.54 HOCO Gas Cab No 4BB40
184 956.39 HOCO Gas Cab No 6BB100
185 1170.88 HOCO Gas Cab No 6BB160
186 293.47 HOCO GC2FSBB
187 354.53 HOCO GC3BB
188 394.41 HOCO GC4BB25
189 394.41 HOCO GC4BB40
190 781.35 HOCO GC5BB
191 956.39 HOCO GC6BB100
192 1170.88 HOCO GC6BB160
193 248.61 HOCO GC2BB
194 316.53 HOCO Gas Cab No 2MP
195 5625.2 5625.20 HOCO Custom7

View File

@@ -258,14 +258,14 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
(code
,description)
(SELECT code
,initcap(code)
,INITCAP(code)
FROM (SELECT DISTINCT upper(TRIM(mety_code)) AS code
FROM ext_meters)
WHERE code IS NOT NULL
AND code NOT IN (SELECT code
FROM meter_types));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': meter_types');
-- Meter Sizes
INSERT INTO meter_size_codes
@@ -275,7 +275,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,valid_for_existing_meter
,valid_for_new_meter)
(SELECT code
,initcap(code)
,INITCAP(code)
,0
,'YES'
,'NO'
@@ -287,7 +287,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
AND code NOT IN (SELECT code
FROM meter_size_codes));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': meter_size_codes');
-- Manufacturers
@@ -302,7 +302,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
(SELECT prty_seq.NEXTVAL
,manu_ref
,manu_ref
,initcap(manu_ref)
,INITCAP(manu_ref)
,'MANU'
,SYSDATE
,USER
@@ -313,7 +313,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
FROM parties
WHERE prty_type = 'MANU'));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': manufacturers');
-- Drawings
@@ -328,7 +328,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
AND code NOT IN (SELECT code
FROM drawings));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': drawings');
MERGE INTO meters metr
@@ -348,14 +348,14 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
WHEN valid_from IS NULL THEN
trunc(SYSDATE)
ELSE
to_date(valid_from
TO_DATE(valid_from
,'dd/mm/yyyy')
END AS valid_from
,CASE
WHEN valid_to IS NULL THEN
NULL
ELSE
to_date(valid_to
TO_DATE(valid_to
,'dd/mm/yyyy')
END AS valid_to
,qmin
@@ -418,7 +418,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,e.qmin
,e.mesc_code) log errors reject LIMIT unlimited;
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': meters');
END load_meters;
@@ -439,7 +439,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
(code
,description)
(SELECT code
,initcap(code)
,INITCAP(code)
FROM (SELECT DISTINCT code
FROM (SELECT upper(REPLACE(TRIM(inlet_cnty_code)
,'"'
@@ -454,7 +454,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
AND code NOT IN (SELECT code
FROM connection_types));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': connection_types');
-- Drawings
INSERT INTO drawings
@@ -469,7 +469,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
AND code NOT IN (SELECT code
FROM drawings));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': drawings');
-- Manufacturers
@@ -484,7 +484,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
(SELECT prty_seq.NEXTVAL
,manu_ref
,manu_ref
,initcap(manu_ref)
,INITCAP(manu_ref)
,'MANU'
,SYSDATE
,USER
@@ -495,7 +495,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
FROM parties
WHERE prty_type = 'MANU'));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': manufacturers');
-- Relief valves
@@ -514,7 +514,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
WHERE code NOT IN (SELECT code
FROM relief_valves));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': relief_valves');
-- Slamshut valves
INSERT INTO slamshut_valves
@@ -532,7 +532,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
WHERE code NOT IN (SELECT code
FROM slamshut_valves));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': slamshut_valves');
-- Service pressures
@@ -549,7 +549,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
AND code NOT IN (SELECT code
FROM service_pressures));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': service_pressures');
-- Bases
@@ -586,7 +586,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
AND code NOT IN (SELECT code
FROM bases));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': bases');
-- Housings
@@ -615,7 +615,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
AND code NOT IN (SELECT code
FROM housings));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': housings');
-- Regulators
@@ -636,7 +636,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
AND code NOT IN (SELECT code
FROM regulators));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': regulators');
-- Filters
@@ -653,7 +653,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
AND code NOT IN (SELECT code
FROM filters));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': filters');
-- Connection orientations
@@ -661,7 +661,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
(code
,description)
(SELECT code
,initcap(code)
,INITCAP(code)
FROM (SELECT DISTINCT code
FROM (SELECT upper(TRIM(inlet_cnor_code)) AS code
FROM ext_modules
@@ -672,7 +672,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
WHERE code NOT IN (SELECT code
FROM connection_orientations));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': connection_orientations');
MERGE INTO modules modu
@@ -707,14 +707,14 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
WHEN valid_from IS NULL THEN
trunc(SYSDATE)
ELSE
to_date(valid_from
TO_DATE(valid_from
,'dd/mm/yyyy')
END AS valid_from
,CASE
WHEN valid_to IS NULL THEN
NULL
ELSE
to_date(valid_to
TO_DATE(valid_to
,'dd/mm/yyyy')
END AS valid_to
,upper(TRIM(regu_code)) AS regu_code
@@ -829,7 +829,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,e.prty_id
,e.qmax) log errors reject LIMIT unlimited;
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': modules');
END load_modules;
@@ -859,7 +859,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
get_dir_list(l_directory_path);
FOR l_rec IN (SELECT filename AS filename
,upper(substr(filename
,upper(SUBSTR(filename
,1
,regexp_instr(filename
,'.(jpg)|.(jpeg)$'
@@ -867,7 +867,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,1
,0
,'i') - 1)) AS drwg_code
,substr(filename
,SUBSTR(filename
,regexp_instr(filename
,'.(jpg)|.(jpeg)$'
,1
@@ -909,7 +909,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
--Shouldn't we add the flow id to this where clause to?
DELETE FROM wwv_flow_files
WHERE NAME LIKE '%/' || l_rec.filename
and FLOW_ID = apex_application.g_flow_id;
AND flow_id = apex_application.g_flow_id;
DELETE FROM document_roles doro
WHERE doro.drwg_code = l_rec.drwg_code;
@@ -932,7 +932,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,apex_application.g_flow_id
,l_source_file_length
,'Bulk Loaded on ' ||
to_char(SYSDATE
TO_CHAR(SYSDATE
,'DD-MON-YYYY HH24:MI:SS')
,l_blob)
RETURNING NAME INTO l_uri;
@@ -977,7 +977,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
WHERE TRIM(field_2) IS NOT NULL)
WHERE code NOT IN (SELECT code
FROM drawings));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': drawings');
MERGE INTO bases bas
USING (SELECT upper(TRIM(field_1)) AS field_1
@@ -999,7 +999,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
UPDATE
SET drwg_code = e.field_2
,description = nvl(e.field_3
,initcap(e.field_1))
,INITCAP(e.field_1))
,dim_a = e.field_4
,dim_b = e.field_5
,dim_c = e.field_6
@@ -1029,7 +1029,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
(e.field_1
,e.field_2
,nvl(e.field_3
,initcap(e.field_1))
,INITCAP(e.field_1))
,e.field_4
,e.field_5
,e.field_6
@@ -1041,7 +1041,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,e.field_12
,e.field_13) log errors reject LIMIT unlimited;
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': bases');
END load_bases;
@@ -1067,7 +1067,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
(SELECT prty_seq.NEXTVAL
,manu_ref
,manu_ref
,initcap(manu_ref)
,INITCAP(manu_ref)
,'MANU'
,SYSDATE
,USER
@@ -1077,7 +1077,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
WHERE manu_ref NOT IN (SELECT manu_ref
FROM parties
WHERE prty_type = 'MANU'));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': manufacturers');
-- Drawings
@@ -1091,7 +1091,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
WHERE TRIM(field_3) IS NOT NULL)
WHERE code NOT IN (SELECT code
FROM drawings));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': drawings');
-- Housing Types
@@ -1099,13 +1099,13 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
(code
,description)
(SELECT code
,initcap(code)
,INITCAP(code)
FROM (SELECT DISTINCT upper(TRIM(field_4)) AS code
FROM ext_housings
WHERE TRIM(field_4) IS NOT NULL)
WHERE code NOT IN (SELECT code
FROM housing_types));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': housing_types');
MERGE INTO housings hou
@@ -1129,7 +1129,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,drwg_code = e.field_3
,hoty_code = e.field_4
,description = nvl(e.field_5
,initcap(e.field_1))
,INITCAP(e.field_1))
,dim_w = e.field_6
,dim_h = e.field_7
,dim_l = e.field_8
@@ -1151,13 +1151,13 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,e.field_3
,e.field_4
,nvl(e.field_5
,initcap(e.field_1))
,INITCAP(e.field_1))
,e.field_6
,e.field_7
,e.field_8
,e.field_9) log errors reject LIMIT unlimited;
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': housings');
END load_housings;
@@ -1185,26 +1185,36 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,cost_price
,delivery_cost
,CASE
WHEN valid_from IS NULL AND valid_to IS NULL THEN
WHEN valid_from IS NULL
AND valid_to IS NULL THEN
trunc(SYSDATE)
WHEN valid_from IS NULL AND valid_to IS NOT NULL THEN
least(trunc(sysdate),to_date(valid_to,'dd/mm/yyyy'))
WHEN valid_from IS NOT NULL AND valid_to IS NULL THEN
to_date(valid_from
WHEN valid_from IS NULL
AND valid_to IS NOT NULL THEN
least(trunc(SYSDATE)
,TO_DATE(valid_to
,'dd/mm/yyyy'))
WHEN valid_from IS NOT NULL
AND valid_to IS NULL THEN
TO_DATE(valid_from
,'dd/mm/yyyy')
ELSE
least(to_date(valid_from, 'dd/mm/yyyy'), to_date(valid_to, 'dd/mm/yyyy'))
least(TO_DATE(valid_from
,'dd/mm/yyyy')
,TO_DATE(valid_to
,'dd/mm/yyyy'))
END AS valid_from
,CASE
WHEN valid_to IS NULL THEN
NULL
ELSE
to_date(valid_to
TO_DATE(valid_to
,'dd/mm/yyyy')
END AS valid_to
,UPPER(trim(mety_code)) AS mety_code
,UPPER(trim(mesc_code)) AS mesc_code
FROM ext_material_costs
WHERE upper(TRIM(cost_type)) = 'AICO') e
ON (e.adit_code = cos.adit_code AND e.valid_from = cos.valid_from AND cos.cost_type = 'AICO')
ON (e.adit_code = cos.adit_code AND e.valid_from = cos.valid_from AND cos.cost_type = 'AICO' AND ((e. mesc_code IS NULL AND cos.mesc_code IS NULL) OR (e.mesc_code = cos.mesc_code)) AND ((e.mety_code IS NULL AND cos.mety_code IS NULL) OR (e.mety_code = cos.mety_code)))
WHEN MATCHED THEN
UPDATE
SET selling_price = e.selling_price
@@ -1220,7 +1230,9 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,valid_from
,valid_to
,cost_type
,adit_code)
,adit_code
,mety_code
,mesc_code)
VALUES
(cost_seq.NEXTVAL
,e.selling_price
@@ -1229,9 +1241,11 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,e.valid_from
,e.valid_to
,'AICO'
,e.adit_code) log errors reject LIMIT unlimited;
,e.adit_code
,e.mety_code
,e.mesc_code) log errors reject LIMIT unlimited;
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': additional_items');
--
-- Base costs
@@ -1242,21 +1256,29 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,cost_price
,delivery_cost
,CASE
WHEN valid_from IS NULL AND valid_to IS NULL THEN
WHEN valid_from IS NULL
AND valid_to IS NULL THEN
trunc(SYSDATE)
WHEN valid_from IS NULL AND valid_to IS NOT NULL THEN
least(trunc(sysdate),to_date(valid_to,'dd/mm/yyyy'))
WHEN valid_from IS NOT NULL AND valid_to IS NULL THEN
to_date(valid_from
WHEN valid_from IS NULL
AND valid_to IS NOT NULL THEN
least(trunc(SYSDATE)
,TO_DATE(valid_to
,'dd/mm/yyyy'))
WHEN valid_from IS NOT NULL
AND valid_to IS NULL THEN
TO_DATE(valid_from
,'dd/mm/yyyy')
ELSE
least(to_date(valid_from, 'dd/mm/yyyy'), to_date(valid_to, 'dd/mm/yyyy'))
least(TO_DATE(valid_from
,'dd/mm/yyyy')
,TO_DATE(valid_to
,'dd/mm/yyyy'))
END AS valid_from
,CASE
WHEN valid_to IS NULL THEN
NULL
ELSE
to_date(valid_to
TO_DATE(valid_to
,'dd/mm/yyyy')
END AS valid_to
FROM ext_material_costs
@@ -1288,7 +1310,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,'BACO'
,e.bas_code) log errors reject LIMIT unlimited;
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': bases');
--
-- Housing costs
@@ -1299,21 +1321,29 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,cost_price
,delivery_cost
,CASE
WHEN valid_from IS NULL AND valid_to IS NULL THEN
WHEN valid_from IS NULL
AND valid_to IS NULL THEN
trunc(SYSDATE)
WHEN valid_from IS NULL AND valid_to IS NOT NULL THEN
least(trunc(sysdate),to_date(valid_to,'dd/mm/yyyy'))
WHEN valid_from IS NOT NULL AND valid_to IS NULL THEN
to_date(valid_from
WHEN valid_from IS NULL
AND valid_to IS NOT NULL THEN
least(trunc(SYSDATE)
,TO_DATE(valid_to
,'dd/mm/yyyy'))
WHEN valid_from IS NOT NULL
AND valid_to IS NULL THEN
TO_DATE(valid_from
,'dd/mm/yyyy')
ELSE
least(to_date(valid_from, 'dd/mm/yyyy'), to_date(valid_to, 'dd/mm/yyyy'))
least(TO_DATE(valid_from
,'dd/mm/yyyy')
,TO_DATE(valid_to
,'dd/mm/yyyy'))
END AS valid_from
,CASE
WHEN valid_to IS NULL THEN
NULL
ELSE
to_date(valid_to
TO_DATE(valid_to
,'dd/mm/yyyy')
END AS valid_to
FROM ext_material_costs
@@ -1345,7 +1375,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,'HOCO'
,e.hou_code) log errors reject LIMIT unlimited;
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': housings');
--
-- Module costs
@@ -1356,21 +1386,29 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,cost_price
,delivery_cost
,CASE
WHEN valid_from IS NULL AND valid_to IS NULL THEN
WHEN valid_from IS NULL
AND valid_to IS NULL THEN
trunc(SYSDATE)
WHEN valid_from IS NULL AND valid_to IS NOT NULL THEN
least(trunc(sysdate),to_date(valid_to,'dd/mm/yyyy'))
WHEN valid_from IS NOT NULL AND valid_to IS NULL THEN
to_date(valid_from
WHEN valid_from IS NULL
AND valid_to IS NOT NULL THEN
least(trunc(SYSDATE)
,TO_DATE(valid_to
,'dd/mm/yyyy'))
WHEN valid_from IS NOT NULL
AND valid_to IS NULL THEN
TO_DATE(valid_from
,'dd/mm/yyyy')
ELSE
least(to_date(valid_from, 'dd/mm/yyyy'), to_date(valid_to, 'dd/mm/yyyy'))
least(TO_DATE(valid_from
,'dd/mm/yyyy')
,TO_DATE(valid_to
,'dd/mm/yyyy'))
END AS valid_from
,CASE
WHEN valid_to IS NULL THEN
NULL
ELSE
to_date(valid_to
TO_DATE(valid_to
,'dd/mm/yyyy')
END AS valid_to
FROM ext_material_costs
@@ -1402,7 +1440,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,'MOCO'
,e.modu_code) log errors reject LIMIT unlimited;
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': modules');
--
-- Labour costs
@@ -1468,21 +1506,29 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
END AS selling_price
,'NETW0' || l_network AS regi_code
,CASE
WHEN valid_from IS NULL AND valid_to IS NULL THEN
WHEN valid_from IS NULL
AND valid_to IS NULL THEN
trunc(SYSDATE)
WHEN valid_from IS NULL AND valid_to IS NOT NULL THEN
least(trunc(sysdate),to_date(valid_to,'dd/mm/yyyy'))
WHEN valid_from IS NOT NULL AND valid_to IS NULL THEN
to_date(valid_from
WHEN valid_from IS NULL
AND valid_to IS NOT NULL THEN
least(trunc(SYSDATE)
,TO_DATE(valid_to
,'dd/mm/yyyy'))
WHEN valid_from IS NOT NULL
AND valid_to IS NULL THEN
TO_DATE(valid_from
,'dd/mm/yyyy')
ELSE
least(to_date(valid_from, 'dd/mm/yyyy'), to_date(valid_to, 'dd/mm/yyyy'))
least(TO_DATE(valid_from
,'dd/mm/yyyy')
,TO_DATE(valid_to
,'dd/mm/yyyy'))
END AS valid_from
,CASE
WHEN valid_to IS NULL THEN
NULL
ELSE
to_date(valid_to
TO_DATE(valid_to
,'dd/mm/yyyy')
END AS valid_to
,l_enty.code AS enty_code /*,upper(TRIM(enty_code)) AS enty_code */
@@ -1523,7 +1569,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,e.svcpt_code
,e.mety_code) log errors reject LIMIT unlimited;
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': ' || l_enty.code || ':NETW0' ||
l_network || ': labour');
@@ -1573,7 +1619,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,field_5
,field_6) log errors reject LIMIT unlimited;
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': caveat_texts');
END load_caveats;
@@ -1593,13 +1639,13 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
(code
,description)
(SELECT code
,initcap(code)
,INITCAP(code)
FROM (SELECT DISTINCT upper(TRIM(field_2)) AS code
FROM ext_postcodes)
WHERE code NOT IN (SELECT code
FROM regions));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': regions');
DELETE FROM postcodes pd
@@ -1612,51 +1658,51 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,incode
FROM postcodes p
MINUS
SELECT CASE instr(TRIM(field_1)
SELECT CASE INSTR(TRIM(field_1)
,' ')
WHEN 0 THEN
upper(TRIM(field_1))
ELSE
upper(substr(field_1
upper(SUBSTR(field_1
,1
,instr(field_1
,INSTR(field_1
,' ') - 1))
END AS outcode
,CASE instr(TRIM(field_1)
,CASE INSTR(TRIM(field_1)
,' ')
WHEN 0 THEN
NULL
ELSE
substr(TRIM(field_1)
,instr(TRIM(field_1)
SUBSTR(TRIM(field_1)
,INSTR(TRIM(field_1)
,' ') + 1)
END AS incode
FROM ext_postcodes));
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': postcodes - delete');
--
-- Postcodes
--
MERGE INTO postcodes p
USING (SELECT CASE instr(TRIM(field_1)
USING (SELECT CASE INSTR(TRIM(field_1)
,' ')
WHEN 0 THEN
upper(TRIM(field_1))
ELSE
upper(substr(TRIM(field_1)
upper(SUBSTR(TRIM(field_1)
,1
,instr(TRIM(field_1)
,INSTR(TRIM(field_1)
,' ') - 1))
END AS outcode
,CASE instr(TRIM(field_1)
,CASE INSTR(TRIM(field_1)
,' ')
WHEN 0 THEN
NULL
ELSE
substr(TRIM(field_1)
,instr(TRIM(field_1)
SUBSTR(TRIM(field_1)
,INSTR(TRIM(field_1)
,' ') + 1)
END AS incode
,upper(TRIM(field_2)) AS regi_code
@@ -1677,7 +1723,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,e.incode
,e.regi_code) log errors reject LIMIT unlimited;
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': postcodes - merge');
END load_postcodes;
@@ -1751,7 +1797,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,e.svcpt_code
,e.days) log errors reject LIMIT unlimited;
pl(to_char(SQL%ROWCOUNT
pl(TO_CHAR(SQL%ROWCOUNT
,'FM099G999') || ': leadtimes - merge');
END load_leadtimes;

View File

@@ -176,7 +176,7 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS
g_email_plain_body CLOB;
g_email_html_body CLOB;
gc_newline CONSTANT CHAR(2) DEFAULT chr(10) || chr(13);
gc_newline CONSTANT CHAR(2) DEFAULT CHR(10) || CHR(13);
SUBTYPE t_enqu IS enquiries%ROWTYPE;
@@ -233,7 +233,7 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS
,id)
VALUES
(p_enqu_id
,substr(p_reason
,SUBSTR(p_reason
,1
,239)
,p_internal_or_external
@@ -467,7 +467,7 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS
IF l_qust_code IN ('SELECTED', 'ACCEPTED') THEN
l_quote_deleted := FALSE;
p_message := 'Unable to delete quote ' || p_qute_id ||
' as it has a status of ' || initcap(l_qust_code);
' as it has a status of ' || INITCAP(l_qust_code);
ELSE
--
-- delete all associations with this quote
@@ -850,11 +850,11 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS
PROCEDURE al(p_in IN VARCHAR2) IS
BEGIN
dbms_lob.writeappend(g_email_plain_body
,length(p_in || gc_newline)
,LENGTH(p_in || gc_newline)
,p_in || gc_newline);
dbms_lob.writeappend(g_email_html_body
,length(p_in || '<br>')
,LENGTH(p_in || '<br>')
,p_in || '<br>');
END al;
@@ -872,7 +872,7 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS
dbms_lob.OPEN(lob_loc => g_email_html_body
,open_mode => dbms_lob.lob_readwrite);
dbms_lob.writeappend(g_email_html_body
,length('<html><body>')
,LENGTH('<html><body>')
,'<html><body>');
al(' ');
@@ -905,9 +905,9 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
al('Quote summary for Quote Reference Number: ' || p_qute_id);
al('This quote is valid from ' ||
to_char(l_quote_row.valid_from
TO_CHAR(l_quote_row.valid_from
,'ddth Month YYYY') || ' to ' ||
to_char(l_quote_row.valid_until
TO_CHAR(l_quote_row.valid_until
,'ddth Month YYYY'));
IF l_quote_row.qute_type = 'AQ' THEN
@@ -955,7 +955,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
PROCEDURE close_body IS
BEGIN
dbms_lob.writeappend(g_email_html_body
,length('</body></html>')
,LENGTH('</body></html>')
,'</body></html>');
END close_body;
@@ -1012,7 +1012,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
,dir.description
FROM data_item_roles dir
WHERE dir.enty_code = l_enty_code
ORDER BY to_number(dir.display_sequence)) LOOP
ORDER BY TO_NUMBER(dir.display_sequence)) LOOP
al(l_rec.description || ': ' ||
return_value(p_enqu_id => p_enqu_id
@@ -1243,7 +1243,8 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
,$$PLSQL_LINE);
SELECT p.shortcode
INTO l_shortcode
FROM v_latest_rt_code_for_enro v, parties p
FROM v_latest_rt_code_for_enro v
,parties p
WHERE rt_code = 'ENQ SUPP'
AND v.enqu_id = p_enqu_id
AND p.id = v.prty_id;
@@ -1599,7 +1600,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
FUNCTION get_seq_u_meter_size(p_existing_mesc_code IN meter_size_codes.code%TYPE
,p_n_or_p IN VARCHAR2 DEFAULT 'N')
RETURN meter_size_codes.code%TYPE IS
l_next_required BOOLEAN := upper(substr(p_n_or_p
l_next_required BOOLEAN := upper(SUBSTR(p_n_or_p
,1
,1)) = 'N';
l_prev_mesc_code meter_size_codes.code%TYPE;
@@ -1752,7 +1753,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
l_manual_or_automatic_quote := gc_manual_quote;
add_quote_reason(p_enqu.id
,'Site Survey is required for OFMAT of an existing ' ||
initcap(l_rec_metr_details.mety_code) ||
INITCAP(l_rec_metr_details.mety_code) ||
' meter.'
,gc_external_reason);
END IF; -- ROTARY / TURBINE
@@ -1924,7 +1925,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
IF p_enqu.enty_code IN ('OFMAT')
AND NOT (p_enqu.existing_mety_code = 'DIAPHRAGM')
AND (substr(nvl(p_enqu.required_mesc_code
AND (SUBSTR(nvl(p_enqu.required_mesc_code
,get_u_meter_size(p_enqu.qmax))
,1) <> 'U') THEN
p_manual_or_automatic_quote := gc_manual_quote;
@@ -2046,7 +2047,10 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
END get_base;
FUNCTION get_aico(p_adit_code IN costs.adit_code%TYPE
,p_regi_code IN regions.code%TYPE)
,p_regi_code IN regions.code%TYPE
,p_enty_code IN enquiry_types.code%TYPE
,p_mety_code IN meter_types.code%TYPE
,p_mesc_code IN meter_size_codes.code%TYPE)
RETURN t_rec_additional_costs IS
l_rec_costs t_rec_additional_costs;
BEGIN
@@ -2067,10 +2071,22 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
,cost_price
,delivery_cost
,adit_code
FROM (SELECT decode(regi_code
,p_regi_code
,1
,999) AS accuracy
FROM (SELECT CASE
WHEN cost.regi_code IS NULL THEN
0
ELSE
100
END + CASE
WHEN cost.mety_code IS NULL THEN
0
ELSE
10
END + CASE
WHEN cost.mesc_code IS NULL THEN
0
ELSE
1
END AS accuracy
,adit_code
,selling_price
,cost_price
@@ -2080,8 +2096,15 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
WHERE adit_code = p_adit_code
AND SYSDATE BETWEEN cost.effective_from AND
cost.effective_to
AND (regi_code = p_regi_code OR regi_code IS NULL)
ORDER BY 1)
AND ((regi_code = p_regi_code) OR
(regi_code IS NULL))
AND ((cost.enty_code = p_enty_code) OR
(enty_code IS NULL))
AND ((cost.mety_code = p_mety_code) OR
(mety_code IS NULL))
AND ((cost.mesc_code = p_mesc_code) OR
(mesc_code IS NULL))
ORDER BY 1 DESC)
WHERE rownum < 2) cost
WHERE adit.code = cost.adit_code
AND adit.code = p_adit_code;
@@ -2150,7 +2173,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
AND mety_code = p_mety_code
AND svcp.code = p_svcp_code
AND ((cost.mesc_code = p_mesc_code) OR (mesc_code IS NULL))
ORDER BY 1)
ORDER BY 1 DESC)
WHERE rownum < 2;
pl('get_laco:exit:' || l_rec_costs.selling_price);
@@ -2267,9 +2290,9 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
l_desc := l_desc || l_rec.description || ', ';
END LOOP;
l_desc := substr(l_desc
l_desc := SUBSTR(l_desc
,1
,length(l_desc) - 2) || '.';
,LENGTH(l_desc) - 2) || '.';
RETURN l_desc;
@@ -2398,6 +2421,11 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
,NULL AS lifting_gear_cost_price
,NULL AS lifting_gear_delivery_cost
,NULL AS lifting_gear_lead_time
,NULL AS purging_cost_id
,NULL AS purging_selling_price
,NULL AS purging_cost_price
,NULL AS purging_delivery_cost
,NULL AS purging_lead_time
FROM (SELECT modu.code
,modu.metr_code
,modu.hou_code
@@ -2563,7 +2591,10 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
IF p_enqu.amr_required = 'YES' THEN
l_additional_costs := get_aico(p_adit_code => 'AMR'
,p_regi_code => l_regi_code);
,p_regi_code => l_regi_code
,p_enty_code => p_enqu.enty_code
,p_mety_code => l_rec_module.mety_code
,p_mesc_code => l_rec_module.mesc_code);
l_rec_module.amr_selling_price := l_additional_costs.selling_price;
l_rec_module.amr_cost_price := l_additional_costs.cost_price;
l_rec_module.amr_delivery_cost := l_additional_costs.delivery_cost;
@@ -2583,7 +2614,10 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
END IF;
IF p_enqu.ems_required = 'YES' THEN
l_additional_costs := get_aico(p_adit_code => 'EMS'
,p_regi_code => l_regi_code);
,p_regi_code => l_regi_code
,p_enty_code => p_enqu.enty_code
,p_mety_code => l_rec_module.mety_code
,p_mesc_code => l_rec_module.mesc_code);
l_rec_module.ems_selling_price := l_additional_costs.selling_price;
l_rec_module.ems_cost_price := l_additional_costs.cost_price;
l_rec_module.ems_delivery_cost := l_additional_costs.delivery_cost;
@@ -2601,9 +2635,13 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
,p_internal_or_external => gc_internal_reason);
END IF;
END IF;
IF p_enqu.bypass_required = 'YES' THEN
l_additional_costs := get_aico(p_adit_code => 'BYPASS'
,p_regi_code => l_regi_code);
,p_regi_code => l_regi_code
,p_enty_code => p_enqu.enty_code
,p_mety_code => l_rec_module.mety_code
,p_mesc_code => l_rec_module.mesc_code);
l_rec_module.bypass_selling_price := l_additional_costs.selling_price;
l_rec_module.bypass_cost_price := l_additional_costs.cost_price;
l_rec_module.bypass_delivery_cost := l_additional_costs.delivery_cost;
@@ -2623,12 +2661,46 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
END IF;
--
-- Purging required on Fixed Costs basis
--
IF p_enqu.purging_required = 'FC' THEN
l_additional_costs := get_aico(p_adit_code => 'PURGING'
,p_regi_code => l_regi_code
,p_enty_code => p_enqu.enty_code
,p_mety_code => l_rec_module.mety_code
,p_mesc_code => l_rec_module.mesc_code);
l_rec_module.purging_selling_price := l_additional_costs.selling_price;
l_rec_module.purging_cost_price := l_additional_costs.cost_price;
l_rec_module.purging_delivery_cost := l_additional_costs.delivery_cost;
l_rec_module.purging_lead_time := l_additional_costs.lead_time;
IF l_rec_module.purging_selling_price IS NULL THEN
l_this_is_automatic_quote := FALSE;
add_quote_reason(p_enqu.id
,p_reason => 'Unable to find selling price for PURGING.'
,p_internal_or_external => gc_internal_reason);
END IF;
END IF;
--
-- Purging required on Time and Materials basis
--
IF p_enqu.purging_required = 'TM' THEN
l_rec_module.purging_selling_price := NULL;
l_rec_module.purging_cost_price := NULL;
l_rec_module.purging_delivery_cost := NULL;
l_rec_module.purging_lead_time := NULL;
END IF;
/* Lifting gear required UNLESS LP Diaphragm */
IF NOT (l_rec_module.mety_code = 'DIAPHRAGM' AND
l_rec_module.laco_svcpt_code = 'LP') THEN
l_additional_costs := get_aico(p_adit_code => 'LIFTING GEAR'
,p_regi_code => l_regi_code);
,p_regi_code => l_regi_code
,p_enty_code => p_enqu.enty_code
,p_mety_code => l_rec_module.mety_code
,p_mesc_code => l_rec_module.mesc_code);
l_rec_module.lifting_gear_selling_price := l_additional_costs.selling_price;
l_rec_module.lifting_gear_cost_price := l_additional_costs.cost_price;
l_rec_module.lifting_gear_delivery_cost := l_additional_costs.delivery_cost;
@@ -2810,6 +2882,27 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
,'AQI');
END IF;
IF p_enqu.purging_required IN ('TM', 'FC') THEN
INSERT INTO quote_items
(id
,qute_id
,adit_code
,cost_price
,selling_price
,delivery_price
,lead_time
,quit_type)
VALUES
(quit_seq.NEXTVAL
,l_qute_id
,'PURGING'
,l_rec_module.purging_cost_price
,l_rec_module.purging_selling_price
,l_rec_module.purging_delivery_cost
,l_rec_module.purging_lead_time
,'AQI');
END IF;
IF l_rec_module.lifting_gear_selling_price IS NOT NULL THEN
INSERT INTO quote_items
@@ -2960,7 +3053,8 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
l_qute_id quotes.id%TYPE;
l_labour_costs t_rec_additional_costs;
l_quote_document VARCHAR2(240);
l_additional_costs t_rec_additional_costs;
l_lifting_gear_costs t_rec_additional_costs;
l_purging_costs t_rec_additional_costs;
l_required_qmax NUMBER;
l_existing_rec_metr_details t_rec_metr_details;
BEGIN
@@ -3035,20 +3129,50 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
,p_internal_or_external => gc_internal_reason);
END IF;
--
-- Purging required on Fixed Costs basis
--
IF p_enqu.purging_required = 'FC' THEN
l_purging_costs := get_aico(p_adit_code => 'PURGING'
,p_regi_code => l_regi_code
,p_enty_code => p_enqu.enty_code
,p_mety_code => l_existing_rec_metr_details.mety_code
,p_mesc_code => l_existing_rec_metr_details.mesc_code);
IF l_purging_costs.selling_price IS NULL THEN
l_this_is_automatic_quote := FALSE;
add_quote_reason(p_enqu.id
,p_reason => 'Unable to find selling price for PURGING.'
,p_internal_or_external => gc_internal_reason);
END IF;
END IF;
--
-- Purging required on Time and Materials basis
--
IF p_enqu.purging_required = 'TM' THEN
l_purging_costs.selling_price := NULL;
l_purging_costs.cost_price := NULL;
l_purging_costs.delivery_cost := NULL;
l_purging_costs.lead_time := NULL;
END IF;
/* Lifting gear required UNLESS LP Diaphragm */
IF NOT (l_existing_rec_metr_details.mety_code = 'DIAPHRAGM' AND
l_labour_costs.svcpt_code = 'LP') THEN
l_additional_costs := get_aico(p_adit_code => 'LIFTING GEAR'
,p_regi_code => l_regi_code);
IF l_additional_costs.selling_price IS NULL THEN
l_lifting_gear_costs := get_aico(p_adit_code => 'LIFTING GEAR'
,p_regi_code => l_regi_code
,p_enty_code => p_enqu.enty_code
,p_mety_code => l_existing_rec_metr_details.mety_code
,p_mesc_code => l_existing_rec_metr_details.mesc_code);
IF l_lifting_gear_costs.selling_price IS NULL THEN
l_this_is_automatic_quote := FALSE;
add_quote_reason(p_enqu.id
,p_reason => 'Unable to find selling price for LIFTING GEAR.'
,p_internal_or_external => gc_internal_reason);
END IF;
IF l_additional_costs.lead_time IS NULL THEN
IF l_lifting_gear_costs.lead_time IS NULL THEN
l_this_is_automatic_quote := FALSE;
add_quote_reason(p_enqu.id
,p_reason => 'Unable to find lead time for LIFTING GEAR.'
@@ -3093,7 +3217,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
,l_lead_time
,'LQI');
IF l_additional_costs.selling_price IS NOT NULL THEN
IF l_lifting_gear_costs.selling_price IS NOT NULL THEN
INSERT INTO quote_items
(id
,qute_id
@@ -3107,10 +3231,31 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
(quit_seq.NEXTVAL
,l_qute_id
,'LIFTING GEAR'
,l_additional_costs.cost_price
,l_additional_costs.selling_price
,l_additional_costs.delivery_cost
,l_additional_costs.lead_time
,l_lifting_gear_costs.cost_price
,l_lifting_gear_costs.selling_price
,l_lifting_gear_costs.delivery_cost
,l_lifting_gear_costs.lead_time
,'AQI');
END IF;
IF p_enqu.purging_required IN ('TM', 'FC') THEN
INSERT INTO quote_items
(id
,qute_id
,adit_code
,cost_price
,selling_price
,delivery_price
,lead_time
,quit_type)
VALUES
(quit_seq.NEXTVAL
,l_qute_id
,'PURGING'
,l_purging_costs.cost_price
,l_purging_costs.selling_price
,l_purging_costs.delivery_cost
,l_purging_costs.lead_time
,'AQI');
END IF;
@@ -3216,7 +3361,10 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
l_amr_costs t_rec_additional_costs;
l_ems_costs t_rec_additional_costs;
l_bypass_costs t_rec_additional_costs;
l_purging_costs t_rec_additional_costs;
l_quote_document VARCHAR2(240);
l_existing_rec_metr_details t_rec_metr_details;
BEGIN
pl('produce_addon_quotes:entry'
,$$PLSQL_LINE);
@@ -3237,13 +3385,18 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
l_this_is_automatic_quote := TRUE;
l_existing_rec_metr_details := get_existing_metr_details(p_enqu);
--
-- check whether we have the required prices
-- if we do not, then we may need to produce a manual quote
--
IF p_enqu.amr_required = 'YES' THEN
l_amr_costs := get_aico(p_adit_code => 'AMR'
,p_regi_code => l_regi_code);
,p_regi_code => l_regi_code
,p_enty_code => p_enqu.enty_code
,p_mety_code => l_existing_rec_metr_details.mety_code
,p_mesc_code => l_existing_rec_metr_details.mesc_code);
IF l_amr_costs.selling_price IS NULL THEN
l_this_is_automatic_quote := FALSE;
add_quote_reason(p_enqu.id
@@ -3259,7 +3412,10 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
END IF;
IF p_enqu.ems_required = 'YES' THEN
l_ems_costs := get_aico(p_adit_code => 'EMS'
,p_regi_code => l_regi_code);
,p_regi_code => l_regi_code
,p_enty_code => p_enqu.enty_code
,p_mety_code => l_existing_rec_metr_details.mety_code
,p_mesc_code => l_existing_rec_metr_details.mesc_code);
IF l_ems_costs.selling_price IS NULL THEN
l_this_is_automatic_quote := FALSE;
add_quote_reason(p_enqu.id
@@ -3275,7 +3431,10 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
END IF;
IF p_enqu.bypass_required = 'YES' THEN
l_bypass_costs := get_aico(p_adit_code => 'BYPASS'
,p_regi_code => l_regi_code);
,p_regi_code => l_regi_code
,p_enty_code => p_enqu.enty_code
,p_mety_code => l_existing_rec_metr_details.mety_code
,p_mesc_code => l_existing_rec_metr_details.mesc_code);
IF l_bypass_costs.selling_price IS NULL THEN
l_this_is_automatic_quote := FALSE;
add_quote_reason(p_enqu.id
@@ -3290,13 +3449,42 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
END IF;
END IF;
--
-- Purging required on Fixed Costs basis
--
IF p_enqu.purging_required = 'FC' THEN
l_purging_costs := get_aico(p_adit_code => 'PURGING'
,p_regi_code => l_regi_code
,p_enty_code => p_enqu.enty_code
,p_mety_code => l_existing_rec_metr_details.mety_code
,p_mesc_code => l_existing_rec_metr_details.mesc_code);
IF l_purging_costs.selling_price IS NULL THEN
l_this_is_automatic_quote := FALSE;
add_quote_reason(p_enqu.id
,p_reason => 'Unable to find selling price for PURGING.'
,p_internal_or_external => gc_internal_reason);
END IF;
END IF;
--
-- Purging required on Time and Materials basis
--
IF p_enqu.purging_required = 'TM' THEN
l_purging_costs.selling_price := NULL;
l_purging_costs.cost_price := NULL;
l_purging_costs.delivery_cost := NULL;
l_purging_costs.lead_time := NULL;
END IF;
l_svcpt_code := get_svcpt_for_svcp(p_enqu.required_svcp_code);
/* Lifting gear required UNLESS LP Diaphragm */
IF NOT (p_enqu.existing_mety_code = 'DIAPHRAGM' AND l_svcpt_code = 'LP') THEN
l_lifting_gear_costs := get_aico(p_adit_code => 'LIFTING GEAR'
,p_regi_code => l_regi_code);
,p_regi_code => l_regi_code
,p_enty_code => p_enqu.enty_code
,p_mety_code => l_existing_rec_metr_details.mety_code
,p_mesc_code => l_existing_rec_metr_details.mesc_code);
IF l_lifting_gear_costs.selling_price IS NULL THEN
l_this_is_automatic_quote := FALSE;
add_quote_reason(p_enqu.id
@@ -3396,6 +3584,27 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
,'AQI');
END IF;
IF p_enqu.purging_required IN ('TM', 'FC') THEN
INSERT INTO quote_items
(id
,qute_id
,adit_code
,cost_price
,selling_price
,delivery_price
,lead_time
,quit_type)
VALUES
(quit_seq.NEXTVAL
,l_qute_id
,'PURGING'
,l_purging_costs.cost_price
,l_purging_costs.selling_price
,l_purging_costs.delivery_cost
,l_purging_costs.lead_time
,'AQI');
END IF;
IF l_lifting_gear_costs.selling_price IS NOT NULL THEN
INSERT INTO quote_items
(id
@@ -3554,7 +3763,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
WHEN OTHERS THEN
pl(SQLERRM
,$$PLSQL_LINE);
RAISE;
cout_err.report_and_stop;
END produce_quotes;
END mip_quotation;

View File

@@ -11,7 +11,7 @@ CREATE OR REPLACE PACKAGE mip_quotation_document IS
width NUMBER
,height NUMBER);
TYPE cost_line IS RECORD(
cost_description VARCHAR2(80)
cost_description VARCHAR2(160)
,cost_price NUMBER);
TYPE address IS VARRAY(7) OF VARCHAR2(160);
@@ -230,6 +230,11 @@ END mip_quotation_document;
/
CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
TYPE t_rec_font_details IS RECORD(
fontname VARCHAR2(80)
,fontsize NUMBER
,fontstyle VARCHAR2(80));
PROCEDURE pl(p_in IN VARCHAR2
,p_line IN NUMBER DEFAULT NULL) IS
BEGIN
@@ -240,6 +245,113 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
$END NULL;
END pl;
FUNCTION get_current_font_details RETURN t_rec_font_details IS
l_rec_font_details t_rec_font_details;
BEGIN
l_rec_font_details.fontname := plpdf.getprintfontname;
l_rec_font_details.fontsize := plpdf.getprintfontsize;
l_rec_font_details.fontstyle := plpdf.getprintfontstyle;
END get_current_font_details;
PROCEDURE print_costs(p_description IN VARCHAR2
,p_description_width IN NUMBER DEFAULT 80
,p_cost IN NUMBER DEFAULT NULL
,p_border IN VARCHAR2 DEFAULT '0') IS
l_row_data plpdf_type.t_row_datas;
l_row_width plpdf_type.t_row_widths;
l_row_align plpdf_type.t_row_aligns;
l_row_border plpdf_type.t_row_borders;
l_row_maxline plpdf_type.t_row_maxlines;
l_row_style plpdf_type.t_row_styles;
BEGIN
l_row_data(1) := p_description;
IF p_cost IS NOT NULL THEN
l_row_data(2) := '<27>';
l_row_data(3) := TO_CHAR(p_cost
,'FM999G990D00');
END IF;
l_row_width(1) := p_description_width;
l_row_width(2) := 12;
l_row_width(3) := 30;
l_row_align(1) := 'L';
l_row_align(2) := 'R';
l_row_align(3) := 'R';
l_row_border(1) := p_border;
l_row_border(2) := p_border;
l_row_border(3) := p_border;
plpdf.row_print2(p_data => l_row_data -- plpdf_type.t_row_datas: Data shown in the cells
,p_width => l_row_width -- plpdf_type.t_row_widths: Width of the cells
,p_align => l_row_align -- plpdf_type.t_row_aligns: Alignment of the cells
,p_border => l_row_border
,p_style => l_row_style
,p_maxline => l_row_maxline
,p_h => 4 --number default 5: Height of the cells
,p_fill => 0 --number default 0: Fill
--o 0: no fill
--o 1: fill with current fill color
,p_min_height => 0 --number default 0: Minimal height of row, 0 means not USE this parameter
-- ,p_clipping => 0 --number default 1: Clipping text
--o 0: no clipping
--o 1: clipping
);
END print_costs;
PROCEDURE print_works(p_description IN VARCHAR2
,p_description_width IN NUMBER DEFAULT 80
,p_work IN VARCHAR2 DEFAULT NULL
,p_border IN VARCHAR2 DEFAULT '0') IS
l_row_data plpdf_type.t_row_datas;
l_row_width plpdf_type.t_row_widths;
l_row_align plpdf_type.t_row_aligns;
l_row_border plpdf_type.t_row_borders;
l_row_maxline plpdf_type.t_row_maxlines;
l_row_style plpdf_type.t_row_styles;
l_rec_font_details t_rec_font_details;
BEGIN
l_rec_font_details := get_current_font_details;
plpdf.setprintfont(p_family => l_rec_font_details.fontname
,p_style => 'B'
,p_size => l_rec_font_details.fontsize);
l_row_data(1) := p_description;
IF p_work IS NOT NULL THEN
l_row_data(2) := p_work;
END IF;
l_row_width(1) := p_description_width;
l_row_width(2) := 0;
l_row_align(1) := 'L';
l_row_align(2) := 'L';
l_row_border(1) := p_border;
l_row_border(2) := p_border;
l_row_border(3) := p_border;
plpdf.row_print2(p_data => l_row_data -- plpdf_type.t_row_datas: Data shown in the cells
,p_width => l_row_width -- plpdf_type.t_row_widths: Width of the cells
,p_align => l_row_align -- plpdf_type.t_row_aligns: Alignment of the cells
,p_border => l_row_border
,p_style => l_row_style
,p_maxline => l_row_maxline
,p_h => 4 --number default 5: Height of the cells
,p_fill => 0 --number default 0: Fill
--o 0: no fill
--o 1: fill with current fill color
,p_min_height => 0 --number default 0: Minimal height of row, 0 means not USE this parameter
-- ,p_clipping => 0 --number default 1: Clipping text
--o 0: no clipping
--o 1: clipping
);
plpdf.setprintfont(p_family => l_rec_font_details.fontname
,p_style => l_rec_font_details.fontstyle
,p_size => l_rec_font_details.fontsize);
END print_works;
/*
function get_meter_type_code_desc
--recives a meter code and returns the corresponding meter type description
@@ -620,13 +732,13 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
BEGIN
SELECT SUM(selling_price + nvl(delivery_price
SELECT SUM(nvl(selling_price
,0) + nvl(delivery_price
,0))
INTO l_quote_total_cost
FROM quote_items
WHERE qute_id = p_quoteid
AND NOT
(quit_type = 'AQI' AND adit_code IN ('LIFTING GEAR', 'PURGING'));
AND NOT (quit_type = 'AQI' AND adit_code IN ('LIFTING GEAR'));
RETURN l_quote_total_cost;
END get_total_cost;
@@ -794,22 +906,29 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
--Get costs
l_add_item_row := get_additional_item(quote_item_rec.adit_code);
--only show the lifting gear/purging description, not the materials bit
IF quote_item_rec.adit_code = 'LIFTING GEAR' or quote_item_rec.adit_code ='PURGING' THEN
--If AH's build quote items has left the cost as null then the additional item
--must be costed on time and materials (as part of purging changes '09)
IF quote_item_rec.adit_code = 'LIFTING GEAR' THEN
IF quote_item_rec.selling_price IS NULL THEN
p_quote_data.quote_costs(l_counter).cost_description := l_add_item_row.description||' (if required)(On Time and Materials Basis)';
p_quote_data.quote_costs(l_counter).cost_description := l_add_item_row.description ||
' (if required)(On Time and Materials Basis)';
ELSE
p_quote_data.quote_costs(l_counter).cost_description := l_add_item_row.description;
p_quote_data.quote_costs(l_counter).cost_price := quote_item_rec.selling_price;
END IF;
ELSIF quote_item_rec.adit_code = 'PURGING' THEN
--If AH's build quote items has left the cost as null then the additional item
--must be costed on time and materials (as part of purging changes '09)
IF quote_item_rec.selling_price IS NULL THEN
p_quote_data.quote_costs(l_counter).cost_description := l_add_item_row.description ||
' (On Time and Materials Basis)';
ELSE
IF quote_item_rec.adit_code <> 'AMR' THEN
p_quote_data.quote_costs(l_counter).cost_description := l_add_item_row.description;
p_quote_data.quote_costs(l_counter).cost_price := quote_item_rec.selling_price;
END IF;
ELSIF quote_item_rec.adit_code <> 'AMR' THEN
p_quote_data.quote_costs(l_counter).cost_description := l_add_item_row.description ||
' Materials cost';
p_quote_data.quote_costs(l_counter).cost_price := quote_item_rec.selling_price;
END IF;
END IF;
IF NOT (quote_item_rec.delivery_price IS NULL) THEN
l_counter := l_counter + 1;
p_quote_data.quote_costs(l_counter).cost_description := l_add_item_row.description ||
@@ -1003,30 +1122,35 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
--The caveats
CURSOR c_get_caveats(cp_enty_code VARCHAR2, cp_mety_code VARCHAR2, cp_svcpt_code VARCHAR2, cp_quoteid NUMBER) IS
SELECT t.*
FROM caveat_texts t, quote_items qi
FROM caveat_texts t
,quote_items qi
WHERE t.enty_code = cp_enty_code
AND t.mety_code = cp_mety_code
AND t.svcpt_code = cp_svcpt_code
AND qi.qute_id = cp_quoteid
and qi.adit_code is null
and t.adit_code is null
union
AND qi.adit_code IS NULL
AND t.adit_code IS NULL
UNION
SELECT t.*
FROM caveat_texts t, quote_items qi
FROM caveat_texts t
,quote_items qi
WHERE t.enty_code = cp_enty_code
AND t.mety_code = cp_mety_code
AND t.svcpt_code = cp_svcpt_code
AND qi.qute_id = cp_quoteid
and qi.adit_code is not null
and t.adit_code is not null
AND qi.adit_code IS NOT NULL
AND t.adit_code IS NOT NULL
AND t.adit_code = qi.adit_code
AND REGEXP_LIKE(DECODE(qi.selling_price, NULL, 'NULL', qi.selling_price),t.condition)
AND regexp_like(decode(qi.selling_price
,NULL
,'NULL'
,qi.selling_price)
,t.condition)
ORDER BY 1
,2
,3
,4
,5
;
,5;
--Agent Name
l_agent_first_name VARCHAR2(80);
l_agent_last_name VARCHAR2(80);
@@ -1460,6 +1584,7 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
plpdf.printtext(p_indent
,p_vertical_offset + 48
,'Full Description of Works to be carried out by National Grid Metering:');
plpdf.setprintfont(p_font
,'B'
,10); --set bold
@@ -1476,6 +1601,7 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
END IF;
l_works_counter := p_quote_data.quote_works.NEXT(l_works_counter);
END LOOP;
-- DESC_WORK caveat here
IF p_quote_data.caveat_desc_works IS NOT NULL THEN
print_caveats(p_quote_data.caveat_desc_works
@@ -1490,22 +1616,24 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
plpdf.setprintfont(p_font
,'B'
,10); --set bold
plpdf.printtext(140
,p_vertical_offset + 106
,p_quote_data.lead_time || ' working days');
plpdf.setprintfont(p_font
,NULL
,10); --unset bold
/*
plpdf.printtext(p_indent
,p_vertical_offset + 114
,'Contract sum (excluding V.A.T): ');
plpdf.setprintfont(p_font
,'B'
,10); --set bold
plpdf.printtext(85
,p_vertical_offset + 114
,'#' || TO_CHAR(p_quote_data.total_cost
,'FM999999D90'));
,print_cost_aligned(p_quote_data.total_cost));
-- ,'<EFBFBD>' || TO_CHAR(p_quote_data.total_cost
-- ,'FM999999D90'));
*/
l_ybefore := plpdf.getcurrenty;
-- CONT_SUM caveat here
@@ -1520,13 +1648,25 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
plpdf.setprintfont(p_font
,NULL
,10); --unset bold
plpdf.printtext(p_indent
plpdf.setcurrenty(p_vertical_offset + 114);
print_costs(p_description => 'Contract sum (excluding V.A.T):'
,p_cost => p_quote_data.total_cost);
plpdf.linebreak(20); -- line break, height is 20
print_costs(p_description => 'Analysis of Costs (all costs exclude V.A.T)');
/* plpdf.printtext(p_indent
,plpdf.getcurrenty + 4
,'Analysis of Costs (all costs exclude V.A.T)');
*/
plpdf.setprintfont(p_font
,'B'
,10); --set bold
plpdf.linebreak(20); -- line break, height is 20
--plpdf.setcurrenty( l_vertical_offset_for_costs + 4);
/*
l_cost_line_counter := 1;
WHILE p_quote_data.quote_costs(l_cost_line_counter)
.cost_description IS NOT NULL LOOP
@@ -1535,27 +1675,58 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
l_cost_line_counter * 4
, p_quote_data.quote_costs(l_cost_line_counter)
.cost_description);
-- some items do not show a cost value
IF p_quote_data.quote_costs(l_cost_line_counter)
.cost_price IS NOT NULL THEN
plpdf.printtext(120
,l_vertical_offset_for_costs +
l_cost_line_counter * 4
,'#' || TO_CHAR(p_quote_data.quote_costs(l_cost_line_counter)
.cost_price
,'FM999999D90'));
,print_cost_aligned(p_quote_data.quote_costs(l_cost_line_counter)
.cost_price));
-- '<27>' || TO_CHAR(p_quote_data.quote_costs(l_cost_line_counter)
-- .cost_price
-- ,'FM999,999D90'));
plpdf.setprintfont(p_font
,'B'
,10);
END IF;
l_cost_line_counter := l_cost_line_counter + 1;
END LOOP;
l_cost_totals_offset := l_vertical_offset_for_costs +
*/
l_cost_line_counter := 1;
WHILE p_quote_data.quote_costs(l_cost_line_counter)
.cost_description IS NOT NULL LOOP
print_costs(p_description => p_quote_data.quote_costs(l_cost_line_counter)
.cost_description
,p_cost => p_quote_data.quote_costs(l_cost_line_counter)
.cost_price);
l_cost_line_counter := l_cost_line_counter + 1;
END LOOP;
/* l_cost_totals_offset := l_vertical_offset_for_costs +
l_cost_line_counter * 4;
plpdf.drawline(p_indent
,l_cost_totals_offset + 2
,185
,l_cost_totals_offset + 2);
*/
print_costs(p_description => 'Total costs:'
,p_cost => p_quote_data.total_cost
,p_border => 'T');
/*
plpdf.printtext(p_indent
,l_cost_totals_offset + 6
,'Total costs:');
plpdf.printtext(120
,l_cost_totals_offset + 6
,'#' || TO_CHAR(p_quote_data.total_cost
,'FM999999D90'));
,print_cost_aligned(p_quote_data.total_cost));
-- ,'<EFBFBD>' || TO_CHAR(p_quote_data.total_cost
-- ,'FM999999D90'));
*/
-- CONT_SUM caveat here
IF p_quote_data.caveat_cont_sum IS NOT NULL THEN
print_one_line_caveats(p_quote_data.caveat_cont_sum
@@ -1655,21 +1826,30 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
plpdf.setprintfont(p_font
,NULL
,10); --unset bold
plpdf.printtext(p_indent
plpdf.linebreak;
print_costs(p_description => 'Liquidated Damages (sum per day)(excluding V.A.T):'
,p_description_width => 100
,p_cost => p_quote_data.liquid_damage_day);
print_costs(p_description => 'Liquidated Damages (monetary cap)(excluding V.A.T):'
,p_description_width => 100
,p_cost => p_quote_data.liquid_damage_cap);
/* plpdf.printtext(p_indent
,p_vertical_offset + 230
,'Liquidated Damages (sum per day)(excluding V.A.T):');
plpdf.printtext(130
,p_vertical_offset + 230
,'#' || TO_CHAR(p_quote_data.liquid_damage_day
,'FM999999D90'));
,print_cost_aligned(p_quote_data.liquid_damage_day));
-- ,'<EFBFBD>' || TO_CHAR(p_quote_data.liquid_damage_day
-- ,'FM999999D90'));
plpdf.printtext(p_indent
,p_vertical_offset + 238
,'Liquidated Damages (monetary cap)(excluding V.A.T):');
plpdf.printtext(130
,p_vertical_offset + 238
,'#' || TO_CHAR(p_quote_data.liquid_damage_cap
,'FM999999D90'));
,print_cost_aligned(p_quote_data.liquid_damage_cap));
-- ,'<EFBFBD>' || TO_CHAR(p_quote_data.liquid_damage_cap
-- ,'FM999999D90'));
*/
END build_caveats_page;
/*
PROCEDURE build_drawings_page
@@ -2754,7 +2934,7 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
,10); --set bold
plpdf.printtext(85
,p_vertical_offset + 62
,'#' || TO_CHAR(p_quote_data.total_cost
,'<EFBFBD>' || TO_CHAR(p_quote_data.total_cost
,'FM999999D90'));
plpdf.setcurrenty(66);
l_ybefore := plpdf.getcurrenty;

View File

@@ -5,12 +5,15 @@ SELECT id
,cost_price
,delivery_cost
,regi_code
,enty_code
,mety_code
,mesc_code
,valid_from AS effective_from
,least(nvl(valid_to
,to_date('2099'
,TO_DATE('2099'
,'yyyy'))
,nvl(next_valid_from
,to_date('2099'
,TO_DATE('2099'
,'yyyy'))) AS effective_to
FROM (SELECT id
,adit_code
@@ -18,8 +21,11 @@ SELECT id
,cost_price
,delivery_cost
,regi_code
,enty_code
,mety_code
,mesc_code
,valid_from
,valid_to
,lead(valid_from) over(PARTITION BY cost.adit_code, regi_code ORDER BY valid_from) AS next_valid_from
,lead(valid_from) over(PARTITION BY adit_code, regi_code, enty_code, mety_code, mesc_code ORDER BY valid_from) AS next_valid_from
FROM costs cost
WHERE cost_type = 'AICO');

View File

@@ -39,7 +39,7 @@ SELECT enquiry_id
,quotes q
WHERE t.qute_id = q.id
AND NOT (quit_type = 'AQI' AND
adit_code IN ('LIFTING GEAR', 'PURGING'))
adit_code IN ('LIFTING GEAR'))
ORDER BY enqu_id
,quote_id
,t.id) all_quote_items
@@ -58,5 +58,5 @@ COMMENT ON COLUMN v_quote_details.qmax IS 'The meter module''s Q max.';
COMMENT ON COLUMN v_quote_details.qmin IS 'The meter module''s Q min.';
COMMENT ON COLUMN v_quote_details.inlet_orientation IS 'The orientation of the meter inlet.';
COMMENT ON COLUMN v_quote_details.outlet_orientation IS 'The orientatino of the meter outlet.';
COMMENT ON COLUMN v_quote_details.total_cost IS 'The total cost of the quote. This figure excludes any lifting gear or purging.';
COMMENT ON COLUMN v_quote_details.total_cost IS 'The total cost of the quote. This figure excludes any lifting gear.';
/

View File

@@ -64,7 +64,10 @@ create table ext_material_costs
modu_code varchar2(240),
hou_code varchar2(240),
bas_code varchar2(240),
adit_code varchar2(240)
adit_code varchar2(240),
mety_code varchar2(240),
mesc_code varchar2(240),
enty_code varchar2(240)
)
ORGANIZATION EXTERNAL
( type oracle_loader
@@ -85,7 +88,10 @@ access parameters
modu_code,
hou_code,
bas_code,
adit_code
adit_code,
mety_code,
mesc_code,
enty_code
)
)
location ('MATERIAL_COSTS.csv')