Add these fields to ITMMST.USR
FieldName | Description | Pos. | Type | Length | Mandatory / Conversion | Default Value | Validation |
|
PACKAGING | Packaging | 9 | A | 20 |
|
|
|
|
FOLDED.YN | Is Folded | 10 | Copy from ITMMST INSP.REQD |
|
|
|
| |
MATERIAL | Material | 11 | A | 25 | Y |
| WEBOPTIONS.USR (OPTION.TYPE=MATERIAL, OPTION.VALUE) |
|
ANTISTATIC.RESIN | Anti-static Resin | 12 | A | 15 | N |
| WEBOPTIONS.USR (OPTION.TYPE=ASRESIN, OPTION.VALUE) |
|
ANTISTATIC.MILSPEC | Anti-static Mil. Spec | 13 | A | 10 | N |
| WEBOPTIONS.USR (OPTION.TYPE=ASMILSPEC, OPTION.VALUE) |
|
ANTISTATIC.PCT | Anti-Static % | 14 | N | 3 | N / MD0 | 0 |
|
|
METALLOCENE.YN | Has Metallocene | 15 | Copy from ITMMST INSP.REQD |
|
|
|
| |
METALLOCENE.PCT | Metallocene % | 16 | N | 3 | N / MD0 | 0 |
|
|
ANTIBLOCK.YN | Has Anti-Block | 17 | Copy from ITMMST INSP.REQD |
|
|
|
| |
HIGHSLIP.YN | Has Highslip | 18 | Copy from ITMMST INSP.REQD |
|
|
|
| |
UVI.YN | Has UVI/UVA | 19 | Copy from ITMMST INSP.REQD |
|
|
|
| |
UVI.PCT | UVI/UVA % | 20 | N | 3 | N / MD0 | 0 |
|
|
COLOR | Color | 21 | A | 15 | Y / |
| WEBOPTIONS.USR (OPTION.TYPE=COLOR, OPTION.VALUE) |
|
OPACITY | Opacity | 22 | A | 10 | Y / |
| WEBOPTIONS.USR (OPTION.TYPE=OPACITY, OPTION.VALUE) |
|
PLATE.NBR | Plate Nbr | 23 | A | 10 | N / |
| FILE(PLATES.USR) |
|
PLATE.DESC | Plate Description | 24 | A | 20 | Y - IF PLATE.NBR <> "" / |
| MUST BE BLANK IF PLATE.NBR = "" |
|
IMAGE.HEIGHT | Image Height | 25 | N | 5 | Y - IF PLATE.NBR <> "" / MD2 |
| MUST BE 0 IF PLATE.NBR = "" |
|
IMAGE.WIDTH | Image Width | 26 | N | 5 | Y - IF PLATE.NBR <> "" / MD2 |
| MUST BE 0 IF PLATE.NBR = "" |
|
INK.COLOR | Ink Color | 27 | A | 10 | Y - IF PLATE.NBR <> "" / |
| MUST BE BLANK IF PLATE.NBR = "" |
|
PRINT.DIRECTION | Print Direction | 28 | A | 10 | Y - IF PLATE.NBR <> "" |
| MUST BE BLANK IF PLATE.NBR = "" |
|
READ.ORIENTATION | Read Orientation | 29 | A | 10 | Y - IF PLATE.NBR <> "" |
| WEBOPTIONS.USR (OPTION.TYPE=READORIENT, OPTION.VALUE) |
|
HOLETYPE | Hole Type | 30 | A | 15 |
|
| WEBOPTIONS.USR (OPTION.TYPE=HOLETYPE, OPTION.VALUE) |
|
HOLE.PLACEMENT | Hole Placement | 31 | A | 15 |
|
|
|
|
HOLE.SIDE | Hole Side | 32 | A | 10 |
|
|
|
|
NBR.OF.HOLES |
| 33 | N | 3 |
|
|
|
|
FROM.SIDE | From Side | 34 | N | 3 |
|
|
|
|
FROM.BOTTOM | From Bottom | 35 | N | 3 |
|
|
|
|
FULL.GAUGE | Full Gauge | 36 | Copy from ITMMST INSP.REQD |
|
|
|
|
I descriptors to add to ITMMST.USR
LFGUS | If DEPTH > 0 "Gusseted" else "Layflat" | Remote Location | Key to other File |
|
|
WIDTH | Width | ITMMST<117> | CPN |
|
|
DEPTH | Depth | ITMMST<118> | CPN |
|
|
LENGTH | Length | ITMMST<119> | CPN |
|
|
Processes to alter: BOM3000
Screen Definitions:
There is currently a screen under development in DEV.DATA where characteristics of the items can be entered. BOMI3000.2PS
Add the above fields to that screen.
Create a Option Lookup file & Maintenance Screen.
Process Name: WEB9005
File Name: WEBOPTIONS.USR
File Structure:
FieldName | Description | Pos. | Type | Length | Mandatory / Conversion | Default Value | Validation |
OPTION.VALUE | Option Value | 1 | A | 15 | Y |
|
|
OPTION.TEXT | Option Text | 2 | A | 25 | Y |
|
|
OPTION.TYPE | Option Type | 0 | A | 10 | Y / (<0>, "G0*1) |
| SYSTBL(WEB.OPTIONTYPES.LAD) |
OPTION.CODE | Option Code | 0 | N | 5 | Y / (<0>, "G0*1) |
|
|
Both Option Text and Option Value will need to contain spaces, so neither of them can be part of the key. So the key will be OPTION.TYPE*OPTION.CODE.
OPTION.TYPE will be have to exist in the SYSTBL WEB.OPTIONTYPES.LAD before it is allowed to be entered.
OPTION.CODE will be an entered number.
Screen Definition:
|
Function Keys:
F2 – Save
F4 – Delete
Redback Interface Routine:
Routine Name:
RPC$CUSTOMERPRODUCTITEM_GETBYFILTER (Rename the existing routine to OLD$CUSTOMERPRODUCTITEM_GETBYFILTER)
RPC$WEBPRODUCTITEM_GETBYFILTER
Purpose: Return a list of items that are readable to redback based on the parameters passed in.
Includes:
BP.INCLUDES LAD.COMMON |
Input variable name – ITMMST.USR field name:
COMPANY.ID |
Output Field Names: BASEITEM.READ
CPN: KEY to ITMMST |
Output Fields: WEBPRODUCTITEM.READ
DATE.AVAILABLE: Calculated availability date. Explained below. |
Calculated availability date:
Establish if it is a MOD (Made on Demand) or stock Item
For stock items:
Establish the primary warehouse based on SHOP.ZIPCODE
Read WZIP from SYSTBL
Read the list of Warehouses from SYSTBL WZIP*SHOP.ZIPCODE
Check if any of those warehouses are marked as offline. (OFFLINE.WHS.LAD SYSCON F1)
Set Primary Warehouse as the first warehouse read from the list of warehouses read earlier.
Check Qty Available in that warehouse
Read Quantity Available from INVWHS.
QTY.AVAILABLE = INVWHS<1> - (INVWHS<2> + INVWHS<4> + INVWHS<17>)
If QTY.AVAILABLE < QTY REQUESTED check next warehouse.
If QTY REQUESTED not available anywhere:
Establish if it is a made or purchased.
If CD7 (7th char in ITMMST<57>) = M it's made, P it's purchased.
If Made (CD7 = M)
The assumption is that we can make any backordered item in 3 days. So we will tell the customer out of stock made items are available in 3 days.
AVAILABLE = Today + 3 days.
If Purchased (CD7 = P)
Routine overview:
SHOP.WIDTH, SHOP.LENGTH, SHOP.DEPTH, & SHOP.GAUGE may all be blank. For these parameters, if they are blank do not include them in the criteria of the select statement. We don't want to be selecting items that have "" in any of these dimension fields.
SELECT ITMMST WITH DIMENSIONS.
SELECT ITMMST.USR WITH ALL CHARACTERISTICS MATCHING EXACTLY.
READ SELECTED ITEMS
GIVEN PAGING, FIND THE START AND END OF THE ITEM LIST.
LOOP FROM START TO END
SET KEY = READ ID
$INCLUDE LD.INCLUDES BASEITEM.READ
SET KEY = READ.ID
$INCLUDE LD.INCLUDES WEBPRODUCTITEM.READ
END LOOP
BASEITEM.READ
READ ITMMST.REC FROM ITMMST, KEY ELSE ITMMST.REC = ""
READ ITMMST.USR.REC FROM ITMMST.USR, KEY ELSE ITMMST.USR.REC = ""
WEBPRODUCTITEM.READ
Price per UOM:
Files Needed: PRICE.RECALC, PRICEDET, CUSTMST,
Read price list from CUSTMST<65> for BILLTO.NBR
Read that record from PRICE.RECALC to get price break quantities.
If passed in qty = "" QTY= 1
Locate where QTY would fall in the break quantities (PRICE.RECALC<1> = Break Min qty, PRICE.RECALC<2> = Break Max Qty)
Find the associated Price HDR key(PHK) PRICE.RECALC<3> for the located Break.
Read the PRICEDET Record for the given PHK*CPN. Price is in PRICEDET<3> 5 decimal points.
Look at RPC$PRICE_GETBYFILTER for some ideas, but it only has the first part of this area.