init
This commit is contained in:
commit
397b309a55
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
*.swp
|
||||||
|
*.swo
|
104
db_schema/extract_for_customer_facing.db2.sql
Normal file
104
db_schema/extract_for_customer_facing.db2.sql
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
WITH
|
||||||
|
pc AS (
|
||||||
|
SELECT
|
||||||
|
STLC
|
||||||
|
,COALESCE(COLTIER,'') COLTIER
|
||||||
|
,coalesce(BRANDING,'' ) branding
|
||||||
|
,COALESCE(ACCS ,'') ACCS
|
||||||
|
,COALESCE(SUFF,'') SUFFIX
|
||||||
|
----price 1 -----------------
|
||||||
|
,PCKG PCKG1
|
||||||
|
,1 VOLL1
|
||||||
|
,PCKG VOL1_UOM
|
||||||
|
,PACK VOL1_PRICE
|
||||||
|
----price 2 -----------------
|
||||||
|
,PCKG PCKG2
|
||||||
|
,1 VOLl2
|
||||||
|
,'PLT' VOL2_UOM
|
||||||
|
,MP VOL2_PRICE
|
||||||
|
----price 3 -----------------
|
||||||
|
,'PLT' PCKG3
|
||||||
|
,1 VOLL3
|
||||||
|
,'PLT' VOL33_UOM
|
||||||
|
,BULK VOL3_PRICE
|
||||||
|
FROM
|
||||||
|
rlarp.PCORE P
|
||||||
|
)
|
||||||
|
,colors AS (
|
||||||
|
SELECT
|
||||||
|
pc.STLC
|
||||||
|
,pc.COLTIER
|
||||||
|
,pc.branding
|
||||||
|
,pc.ACCS
|
||||||
|
,pc.SUFFIX
|
||||||
|
,listagg( DISTINCT ltrim(rtrim(i.COLC)),', ') clist
|
||||||
|
----price 1 -----------------
|
||||||
|
,pc.PCKG1
|
||||||
|
,pc.VOLL1
|
||||||
|
,pc.VOL1_UOM
|
||||||
|
,pc.VOL1_PRICE
|
||||||
|
----price 2 -----------------
|
||||||
|
,pc.PCKG2
|
||||||
|
,pc.VOLl2
|
||||||
|
,pc.VOL2_UOM
|
||||||
|
,pc.VOL2_PRICE
|
||||||
|
----price 3 -----------------
|
||||||
|
,pc.PCKG1
|
||||||
|
,pc.VOLL3
|
||||||
|
,pc.VOL33_UOM
|
||||||
|
,pc.VOL3_PRICE
|
||||||
|
FROM
|
||||||
|
pc
|
||||||
|
LEFT OUTER JOIN RLARP.ITEMM i ON
|
||||||
|
i.STLC = pc.stlc
|
||||||
|
AND i.COLTIER = pc.coltier
|
||||||
|
--relax relationship to pick up any colors that we run for the mold and color tier
|
||||||
|
--AND COALESCE(i.BRANDING,'') = pc.branding
|
||||||
|
--AND COALESCE(i.ACCS,'') = pc.ACCS
|
||||||
|
--AND COALESCE(i.SUFFIX,'') = pc.suffix
|
||||||
|
AND APLNT <> 'I'
|
||||||
|
GROUP BY
|
||||||
|
pc.STLC
|
||||||
|
,pc.COLTIER
|
||||||
|
,pc.branding
|
||||||
|
,pc.ACCS
|
||||||
|
,pc.SUFFIX
|
||||||
|
----price 1 -----------------
|
||||||
|
,pc.PCKG1
|
||||||
|
,pc.VOLL1
|
||||||
|
,pc.VOL1_UOM
|
||||||
|
,pc.VOL1_PRICE
|
||||||
|
----price 2 -----------------
|
||||||
|
,pc.PCKG2
|
||||||
|
,pc.VOLl2
|
||||||
|
,pc.VOL2_UOM
|
||||||
|
,pc.VOL2_PRICE
|
||||||
|
----price 3 -----------------
|
||||||
|
,pc.PCKG1
|
||||||
|
,pc.VOLL3
|
||||||
|
,pc.VOL33_UOM
|
||||||
|
,pc.VOL3_PRICE
|
||||||
|
)
|
||||||
|
,items AS (
|
||||||
|
SELECT
|
||||||
|
pc.STLC
|
||||||
|
,pc.coltier
|
||||||
|
,pc.branding
|
||||||
|
,pc.accs
|
||||||
|
,pc.suffix
|
||||||
|
,row_number() OVER (PARTITION BY pc.stlc, pc.coltier, pc.branding, pc.accs, pc.suffix ORDER BY item DESC) seq
|
||||||
|
,item
|
||||||
|
,pckg1
|
||||||
|
,vol1_uom
|
||||||
|
,'PC' to_uom
|
||||||
|
FROM
|
||||||
|
pc
|
||||||
|
LEFT OUTER JOIN RLARP.ITEMM i ON
|
||||||
|
i.STLC = pc.stlc
|
||||||
|
--AND i.COLTIER = pc.coltier
|
||||||
|
AND COALESCE(i.BRANDING,'') = pc.branding
|
||||||
|
AND COALESCE(i.ACCS,'') = pc.ACCS
|
||||||
|
AND COALESCE(i.SUFFIX,'') = pc.suffix
|
||||||
|
AND APLNT <> 'I'
|
||||||
|
)
|
||||||
|
SELECT * FROM items where seq = 1
|
117
db_schema/extract_for_customer_facing.pg.sql
Normal file
117
db_schema/extract_for_customer_facing.pg.sql
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
WITH
|
||||||
|
pc AS materialized (
|
||||||
|
SELECT
|
||||||
|
STLC
|
||||||
|
,COALESCE(COLTIER,'') COLTIER
|
||||||
|
,coalesce(BRANDING,'' ) branding
|
||||||
|
,COALESCE(ACCS ,'') ACCS
|
||||||
|
,COALESCE(SUFF,'') SUFFIX
|
||||||
|
----price 1 -----------------
|
||||||
|
,PCKG PCKG1
|
||||||
|
,1 VOLL1
|
||||||
|
,PCKG VOL1_UOM
|
||||||
|
,PACK VOL1_PRICE
|
||||||
|
----price 2 -----------------
|
||||||
|
,PCKG PCKG2
|
||||||
|
,1 VOLl2
|
||||||
|
,'PLT' VOL2_UOM
|
||||||
|
,MP VOL2_PRICE
|
||||||
|
----price 3 -----------------
|
||||||
|
,'PLT' PCKG3
|
||||||
|
,1 VOLL3
|
||||||
|
,'PLT' VOL3_UOM
|
||||||
|
,BULK VOL3_PRICE
|
||||||
|
FROM
|
||||||
|
rlarp.PCORE P
|
||||||
|
)
|
||||||
|
,colors AS (
|
||||||
|
SELECT
|
||||||
|
pc.STLC
|
||||||
|
,pc.COLTIER
|
||||||
|
,pc.branding
|
||||||
|
,pc.ACCS
|
||||||
|
,pc.SUFFIX
|
||||||
|
,string_agg( DISTINCT ltrim(rtrim(i.COLC)),', ') clist
|
||||||
|
----price 1 -----------------
|
||||||
|
,pc.PCKG1
|
||||||
|
,pc.VOLL1
|
||||||
|
,pc.VOL1_UOM
|
||||||
|
,pc.VOL1_PRICE
|
||||||
|
----price 2 -----------------
|
||||||
|
,pc.PCKG2
|
||||||
|
,pc.VOLl2
|
||||||
|
,pc.VOL2_UOM
|
||||||
|
,pc.VOL2_PRICE
|
||||||
|
----price 3 -----------------
|
||||||
|
,pc.PCKG1
|
||||||
|
,pc.VOLL3
|
||||||
|
,pc.VOL3_UOM
|
||||||
|
,pc.VOL3_PRICE
|
||||||
|
FROM
|
||||||
|
pc
|
||||||
|
LEFT OUTER JOIN RLARP.ITEMMv i ON
|
||||||
|
i.STLC = pc.stlc
|
||||||
|
AND i.COLTIER = pc.coltier
|
||||||
|
--relax relationship to pick up any colors that we run for the mold and color tier
|
||||||
|
--AND COALESCE(i.BRANDING,'') = pc.branding
|
||||||
|
--AND COALESCE(i.ACCS,'') = pc.ACCS
|
||||||
|
--AND COALESCE(i.SUFFIX,'') = pc.suffix
|
||||||
|
AND APLNT <> 'I'
|
||||||
|
GROUP BY
|
||||||
|
pc.STLC
|
||||||
|
,pc.COLTIER
|
||||||
|
,pc.branding
|
||||||
|
,pc.ACCS
|
||||||
|
,pc.SUFFIX
|
||||||
|
----price 1 -----------------
|
||||||
|
,pc.PCKG1
|
||||||
|
,pc.VOLL1
|
||||||
|
,pc.VOL1_UOM
|
||||||
|
,pc.VOL1_PRICE
|
||||||
|
----price 2 -----------------
|
||||||
|
,pc.PCKG2
|
||||||
|
,pc.VOLl2
|
||||||
|
,pc.VOL2_UOM
|
||||||
|
,pc.VOL2_PRICE
|
||||||
|
----price 3 -----------------
|
||||||
|
,pc.PCKG1
|
||||||
|
,pc.VOLL3
|
||||||
|
,pc.VOL3_UOM
|
||||||
|
,pc.VOL3_PRICE
|
||||||
|
)
|
||||||
|
-----------since joining to the item master will be differnt for the last bulk columm---------------
|
||||||
|
-----------must first pivot the data out then join based on the type of row-------------------------
|
||||||
|
,items_init AS (
|
||||||
|
SELECT
|
||||||
|
pc.STLC
|
||||||
|
,pc.coltier
|
||||||
|
,pc.branding
|
||||||
|
,pc.accs
|
||||||
|
,pc.suffix
|
||||||
|
,row_number() OVER (PARTITION BY pc.stlc, pc.coltier, pc.branding, pc.accs, pc.suffix ORDER BY item DESC) seq
|
||||||
|
,item
|
||||||
|
,vol1_uom
|
||||||
|
,vol2_uom
|
||||||
|
,vol3_uom
|
||||||
|
,'PC' to_uom
|
||||||
|
FROM
|
||||||
|
pc
|
||||||
|
LEFT OUTER JOIN RLARP.ITEMMv i ON
|
||||||
|
i.STLC = pc.stlc
|
||||||
|
--AND i.COLTIER = pc.coltier
|
||||||
|
AND COALESCE(i.BRANDING,'') = pc.branding
|
||||||
|
AND COALESCE(i.ACCS,'') = pc.ACCS
|
||||||
|
AND COALESCE(i.SUFFIX,'') = pc.suffix
|
||||||
|
AND APLNT <> 'I'
|
||||||
|
)
|
||||||
|
,items AS (
|
||||||
|
SELECT * FROM items_init where seq = 1
|
||||||
|
)
|
||||||
|
,uom AS (
|
||||||
|
SELECT item partn, vol1_uom from_uom, 'pc' to_uom FROM items_init
|
||||||
|
UNION ALL
|
||||||
|
SELECT item partn, vol2_uom from_uom, 'pc' to_uom FROM items_init
|
||||||
|
UNION ALL
|
||||||
|
SELECT item partn, vol3_uom from_uom, 'pc' to_uom FROM items_init
|
||||||
|
)
|
||||||
|
SELECT * FROM uom
|
13
db_schema/setup.db2.sql
Normal file
13
db_schema/setup.db2.sql
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
CREATE TABLE RLARP.PCORE (
|
||||||
|
STLC VARCHAR(8)
|
||||||
|
COLTIER VARCHAR(1)
|
||||||
|
BRANDING VARCHAR(8)
|
||||||
|
ACCS VARCHAR(2)
|
||||||
|
SUFF VARCHAR(4)
|
||||||
|
PCKG VARCHAR(3)
|
||||||
|
PACK DECIMAL(7,2)
|
||||||
|
MP DECIMAL(7,2)
|
||||||
|
BULK DECIMAL(7,2)
|
||||||
|
);
|
||||||
|
|
||||||
|
COMMENT ON TABLE rlarp.pcore IS 'core price list - mold + attributies and 3 static volume breaks';
|
26
readme.md
Normal file
26
readme.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
Start with a generic listing of conceptual prices and build a full-20 part listing with volume breaks denominated in per 1000 units.
|
||||||
|
|
||||||
|
| stlc | coltier | branding | accs | suff | pckg | pack | mp | bulk |
|
||||||
|
| -------- | ------- | -------- | ---- | ---- | ---- | ------- | ---- | ------- |
|
||||||
|
| HTO10752 | B | | S | | CSE | 1337.61 | 1157 | 1099.15 |
|
||||||
|
| HTO10752 | B | | SH | | CSE | 1337.61 | 1157 | 1099.15 |
|
||||||
|
| HTO10752 | B | | | | CSE | 1337.61 | 1157 | 1099.15 |
|
||||||
|
| HTO10752 | T | | S | | CSE | 1337.61 | 1157 | 1099.15 |
|
||||||
|
| HTO10752 | T | | SH | | CSE | 1337.61 | 1157 | 1099.15 |
|
||||||
|
| HTO10752 | T | | | | CSE | 1337.61 | 1157 | 1099.15 |
|
||||||
|
| HTO10752 | L | | S | | CSE | 1337.61 | 1157 | 1099.15 |
|
||||||
|
| HTO10752 | L | | SH | | CSE | 1337.61 | 1157 | 1099.15 |
|
||||||
|
| HTO10752 | L | | | | CSE | 1337.61 | 1157 | 1099.15 |
|
||||||
|
|
||||||
|
The mold plus basic attributes form a conceptual framework, and have to be attributed to full-20 codes in order for this to work:
|
||||||
|
* mold/part group: first 8 digits (`rlarp.itemm.styc`)
|
||||||
|
* color tier: `rlarp.itemm.coltier`
|
||||||
|
* branding: `rlarp.branding`
|
||||||
|
* accessories: `rlarp.accs_ps`
|
||||||
|
* suffix: `rlarp.suffix`
|
||||||
|
* package: `rlarp.uomp`
|
||||||
|
|
||||||
|
Any part numbers that match these columns in rlarp.itemm would qualify for listed pricing.
|
||||||
|
The only exception is that the "bulk column" only applies to `uomp` value `PLT` (bulk pricing only applies to part numbers with `PLT` default pack unit (`v6cntr`))
|
||||||
|
|
||||||
|
the accs_ps and suff columns in `itemm` are calculated and not materialized anywhere, and are a large dependency
|
196
vba/pricelist.frm
Normal file
196
vba/pricelist.frm
Normal file
@ -0,0 +1,196 @@
|
|||||||
|
VERSION 5.00
|
||||||
|
Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} pricelist
|
||||||
|
Caption = "Price List Name"
|
||||||
|
ClientHeight = 7995
|
||||||
|
ClientLeft = 120
|
||||||
|
ClientTop = 465
|
||||||
|
ClientWidth = 11865
|
||||||
|
OleObjectBlob = "pricelist.frx":0000
|
||||||
|
StartUpPosition = 1 'CenterOwner
|
||||||
|
End
|
||||||
|
Attribute VB_Name = "pricelist"
|
||||||
|
Attribute VB_GlobalNameSpace = False
|
||||||
|
Attribute VB_Creatable = False
|
||||||
|
Attribute VB_PredeclaredId = True
|
||||||
|
Attribute VB_Exposed = False
|
||||||
|
|
||||||
|
Public proceed As Boolean
|
||||||
|
Private pl() As String
|
||||||
|
Private plv() As Variant
|
||||||
|
Private plfv() As Variant
|
||||||
|
|
||||||
|
|
||||||
|
Private Sub bCANCEL_Click()
|
||||||
|
proceed = False
|
||||||
|
Me.Hide
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub bOK_Click()
|
||||||
|
|
||||||
|
If tbPATH = "" Then
|
||||||
|
MsgBox ("no directory specified")
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
|
proceed = True
|
||||||
|
Me.Hide
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
Private Sub bPICK_Click()
|
||||||
|
|
||||||
|
'--------Open file-------------
|
||||||
|
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
|
||||||
|
fd.Show
|
||||||
|
|
||||||
|
tbPATH.Text = fd.SelectedItems(1)
|
||||||
|
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
Private Sub cbInactive_Click()
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub cbLIST_Change()
|
||||||
|
|
||||||
|
Dim plc() As String
|
||||||
|
plc = pl
|
||||||
|
Call FL.x.TBLp_FilterSingle(plc, 0, cbLIST.value, True)
|
||||||
|
If UBound(plc, 2) = 0 Then Exit Sub
|
||||||
|
Me.tbD1 = plc(1, 1)
|
||||||
|
Me.tbD2 = plc(2, 1)
|
||||||
|
Me.tbD3 = plc(3, 1)
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub lbLIST_Click()
|
||||||
|
|
||||||
|
Dim i As Long
|
||||||
|
|
||||||
|
For i = 1 To lbLIST.ListCount
|
||||||
|
If lbLIST.Selected(i) Then
|
||||||
|
cbLIST.value = lbLIST.list(i, 0)
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
Next i
|
||||||
|
|
||||||
|
Me.cbHDR.value = "3 - Update"
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub UserForm_Initialize()
|
||||||
|
|
||||||
|
|
||||||
|
proceed = False
|
||||||
|
Dim x() As Variant
|
||||||
|
Dim i As Long
|
||||||
|
ReDim x(3)
|
||||||
|
|
||||||
|
x(1) = "1 - New"
|
||||||
|
x(2) = "2 - Replace"
|
||||||
|
x(3) = "3 - Update"
|
||||||
|
|
||||||
|
Dim dtl() As Variant
|
||||||
|
ReDim dtl(3)
|
||||||
|
dtl(1) = "1 - Add"
|
||||||
|
dtl(2) = "2 - Update"
|
||||||
|
dtl(3) = "3 - Delete"
|
||||||
|
|
||||||
|
|
||||||
|
cbHDR.list = x
|
||||||
|
cbDTL.list = dtl
|
||||||
|
|
||||||
|
' If login.tbP = "" Then
|
||||||
|
' login.Show
|
||||||
|
' If Not login.proceed Then Exit Sub
|
||||||
|
' If Not FL.x.ADOp_OpenCon(0, ISeries, "S7830956", False, "PTROWBRIDG", "password") Then
|
||||||
|
' MsgBox (FL.x.ADOo_errstring)
|
||||||
|
' Exit Sub
|
||||||
|
' End If
|
||||||
|
' End If
|
||||||
|
|
||||||
|
If Not FL.x.ADOp_OpenCon(1, ISeries, "S7830956", False, "PTROWBRIDG", "password") Then
|
||||||
|
MsgBox (FL.x.ADOo_errstring)
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
|
pl = FL.x.ADOp_SelectS(1, "SELECT plcode, d1,d2,d3 FROM RLARP.PLM p ORDER BY plcode", True, 1000, True)
|
||||||
|
Call FL.x.ADOp_CloseCon(1)
|
||||||
|
ReDim plv(1 To UBound(pl, 2))
|
||||||
|
For i = 1 To UBound(pl, 2)
|
||||||
|
plv(i) = pl(0, i)
|
||||||
|
Next i
|
||||||
|
|
||||||
|
plfv = FL.x.TBLp_StringToVar(FL.x.TBLp_Transpose(pl))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
cbLIST.list = plv
|
||||||
|
lbLIST.list = plfv
|
||||||
|
|
||||||
|
'lbHEAD.ColumnCount = lbHist.ColumnCount
|
||||||
|
'lbHEAD.ColumnWidths = lbHist.ColumnWidths
|
||||||
|
|
||||||
|
Call FL.x.frmListBoxHeader(lbHEAD, lbLIST, "plcode", "descr1", "descr2", "descr3")
|
||||||
|
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub UserForm_Terminate()
|
||||||
|
proceed = False
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub load_lists()
|
||||||
|
|
||||||
|
Dim x() As Variant
|
||||||
|
Dim i As Long
|
||||||
|
ReDim x(3)
|
||||||
|
|
||||||
|
x(1) = "1 - New"
|
||||||
|
x(2) = "2 - Replace"
|
||||||
|
x(3) = "3 - Update"
|
||||||
|
|
||||||
|
Dim dtl() As Variant
|
||||||
|
ReDim dtl(3)
|
||||||
|
dtl(1) = "1 - Add"
|
||||||
|
dtl(2) = "2 - Update"
|
||||||
|
dtl(3) = "3 - Delete"
|
||||||
|
|
||||||
|
|
||||||
|
cbHDR.list = x
|
||||||
|
cbDTL.list = dtl
|
||||||
|
|
||||||
|
' If login.tbP = "" Then
|
||||||
|
' login.Show
|
||||||
|
' If Not login.proceed Then Exit Sub
|
||||||
|
' If Not FL.x.ADOp_OpenCon(0, ISeries, "S7830956", False, "PTROWBRIDG", "") Then
|
||||||
|
' MsgBox (FL.x.ADOo_errstring)
|
||||||
|
' Exit Sub
|
||||||
|
' End If
|
||||||
|
' End If
|
||||||
|
|
||||||
|
If Not FL.x.ADOp_OpenCon(1, ISeries, "S7830956", False, "PTROWBRIDG", "") Then
|
||||||
|
MsgBox (FL.x.ADOo_errstring)
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
|
pl = FL.x.ADOp_SelectS(1, "SELECT plcode, d1, d2, d3 FROM RLARP.PLM p ORDER BY plcode", True, 1000, True)
|
||||||
|
Call FL.x.ADOp_CloseCon(1)
|
||||||
|
ReDim plv(1 To UBound(pl, 2))
|
||||||
|
For i = 1 To UBound(pl, 2)
|
||||||
|
plv(i) = pl(0, i)
|
||||||
|
Next i
|
||||||
|
|
||||||
|
plfv = FL.x.TBLp_StringToVar(FL.x.TBLp_Transpose(pl))
|
||||||
|
|
||||||
|
cbLIST.list = plv
|
||||||
|
lbLIST.list = plfv
|
||||||
|
|
||||||
|
'lbHEAD.ColumnCount = lbHist.ColumnCount
|
||||||
|
'lbHEAD.ColumnWidths = lbHist.ColumnWidths
|
||||||
|
|
||||||
|
Call FL.x.frmListBoxHeader(lbHEAD, lbLIST, "plcode", "d1", "d2", "d3")
|
||||||
|
End Sub
|
||||||
|
|
BIN
vba/pricelist.frx
Normal file
BIN
vba/pricelist.frx
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user