Things to remember when creating MOD results:
- For centerfold sheeting, produce 2 MOD results: 1 for A-Wind and 1 for B-Wind (no price difference) - pass info along to production paperwork 6/20-this was changed - we will now ask this question for Centerfold sheeting on the Packaging Menu. A-wind is default. *** NO LONGER BEING ASKED. WE WON'T SPECIFY ON W/O PAPERWORK. WE WILL CONTINUE TO RUN THE WAY WE THINK BEST. WILL BE RE-EVALUATED FOR MACCHI LINE.
- For gusseted sheeting, produce 2 MOD results: 1 for Slit Center and 1 for Slit Gusset (no price difference) - pass info along to production paperwork. 6/20-this was changed - we wil now ask this question for gusseted sheeting on the packaging menu. Slit Gusseted is default.
- For sheeting and tubing, default to RL for pricing Uom - PRICING UOM TOGGLE LOGIC REMOVED - SHEETING AND TUBING ARE ALWAYS PRICED BY THE ROLL
Is pricing calculation different for SHEETING and TUBING now that we aren't forcing them to full gauge? (defaulted to nominal and user can change) ONLY PROGRAMMED ROLLSHEET/ROLLTUBE so I think we're ok with defaulting to full gauge but allowing them to change. - If pkg is Rolls,Boxed or Cases, limit Bags per Case/Roll to be within range for boxed. If rolls, they would have to change to cradlepacked to go outside that range. THIS WAS COMPLETED FOR SHOP.PACKOUT. WAS ONLY NEEDED FOR ROLLS,BOXED. IF ROLLS,BOXED AND PKG WAS NOT CRADLEPACKED, THE UPPER RANGE FOR PACKOUT IS BOXMAX INSTEAD OF MAX.
- FURN - roll diameter table lookup has different rules than BAGS. Min/Best/Max Bags per Roll uses Width instead of Length THIS WAS COMPLETED FOR SHOP.PACKOUT
- FURN - force cradlepack - has different rules than BAGS and uses length instead of width THIS WAS COMPLETED FOR SHOP.PACKOUT - CHANGED UPPER RANGE IF NOT CRADLEPACKED.
- If a single exact-match stock result was found, automatically set the MTO flag on the quote. The web would have to provide this information as we wouldn't know how many stock results were found.
- Possibility that they would want to know 3 options to the question: Can we make this as a MOD Item based on shop widget answers? Definitely Not, Maybe-give me more info, Yes-here it is
- Be sure to set PRINT AREA for printed jobs (center or gusset) when creating configuration
- Should add'l logic be added to WEB.FREIGHTOPT.DEFAULT.VALUE to set PPD/FOB based on user preference and/or CPU choice?
- When creating config records: only pass SHOP.DEPTH if # FURN. only pass length if not continuous. if 0.00 passed, the item desc1 in Avante won't be built correctly.
- In results area for continuous sheeting and tubing, make sure that we are asking for Feet per Roll instead of Bags per Roll or Sheets per Roll. Update configurator-feet per roll criteria.
- Random Repeat Printed Jobs - lead time calculation may be changed before phase I rollout - THIS WAS ALREADY COMPLETED IN CURRENT AND NEW SITE
- Check for any user preferences (contact and customer) that affect the widget or results area (ie, setting default on full gauge based on customer preference).
- No MOD result if:
- Polypropelene or Static Shieilding Materials were selected (these will be marketplace someday but not yet)
- dimensions outside of custom ranges (material/printing/venting checks)
- When entering a MOD Item# from the top banner search ... we will use the item characteristics from MOD.ITMMST.USR for the billto cust to populate the widget and execute FIND. The results are always new results.
- Marketplace Rules - determine whether MP MOD item can be offered based on the following rules:
- Is the Width between 3" and 24"?
- Is the Depth <= 0?
- If Width and Length < 4", allowable gauge is 2-4mil; otherwise 2-6mil
- Must be Full Gauge - SHOULD WE BE DEFAULTING TO FULL GAUGE FOR ZIPTOPS?
- Materials allowed: only Standard and Anti Static. If Static Shielding, don't create MP
- Color: Clear for any material. Pink if Material is Anti-Static. Don't create MP for any other selections.
- No printing or Venting
- Packaging - cases only
- If an exact stock match is found, we will only create a MOD Marketplace quote if the MOD Price AND Availability are better than the stock option.
- Bags, Sheeting, Tubing, Perforated Sheets, Furniture Bags - determine whether a MOD item can be offered based on the following rules:
- If any of the following rulesets, we cannot produce a MOD result:
- 104 - Bubble Bag
- 106 - Garment Bag
- 108 - Newspaper Bag
- 111 - Polypro Bag
- 112 - Pre-opened Bag
- 113 - Silverware Bag
- 114 - Shrink Bag
- 117 - Wicketed Bag
- 202 - Slider Top Bag
- 203 - Recloseable Bubble Bag
- 204 - Recloseable Medical
- 206 - ZipTop Parts Bag
- 208 - ZipTop w/White Block
- 209 - ZipTop Static Shielding
- 404 thru 406 - C&A
- Any ruleset starting with 5 (Misc)
- Width:
- Is Width > 0? If so, continue with following checks. If not, we cannot produce a MOD result.
- If Furniture Bag, is width within range of 25"-9999" ?
- If Printed = Y (all items except furn bags), is width within range of 9-98"?
- Bags/Tubing/Centerfold Sheeting: If (Material=LLD and LayflatorGusseted=Layflat) OR (Material=Anti Static and Anti Static Resin Base=Linear Low Density and LayflatorGusseted=Layflat) or (Centerfold Sheeting and Material=LLD) OR (Centerfold Sheeting and Material=Anti Static and Anti Static Resin Base=Linear Low Density) - Is Width within range of 8" - 98"?
- Gussted Bags/Gusseted Tubing/Gusseted Sheeting: If LayflatorGusseted = Gusseted, is width within range of 4" - 96"?
- Continuous and Perforated Sheeting - If Singlewound, is range within 24" - 98"? If Centerfold, is width within range of 4" - 98"?
- Length:
- Is Length > 0 (for all items except continuous sheeting and tubing)? If so, continue with following checks. If not, we cannot produce a MOD result.
- If Furniture Bag, is length within range of 24" - 98"?
- If Perforated Singlewound Sheets, is length within range of 10" - 400"?
- If Perforated Centerfold Sheets and Width < 24" and Printed, is length within range of 8" - 400"?
- If Perforated Centerfold Sheets and Width < 24", is length within range of 4" - 400"?
- If Perforated Centerfold Sheets and Width >=24" < 34", is length within range of 8" - 400"?
- If Perforated Centerfold Sheets and Width >= 34", is length within range of 8" - 1200"?
- If Perforated Gusseted Sheets and Width+Depth < 34", is length within range of 8" - 400"?
- If Perforated Gusseted Sheets and Width+Depth >= 34", is length within range of 8" - 1200"?
- If Ziptop Bags, is length within range of 3" - 24"? *** THIS IS ALREADY INCLUDED IN MARKETPLACE RULES ABOVE
- If Printed and (Depth > 0" OR Width >= 24" OR Sleeves), is length within range of 8" - 288"?
- If Printed and Depth <=0 and Width < 24", is length within range of 4" - 288"
- If Printed, is length within range of 8" - 999"
- Should add'l draw length tests for BAGS be moved to this program (see WEB.DRAW.LENGTH called by WEB.VALIDATE.ALL)???
- Gauge:
- Is Gauge > 0? If so, continue with following checks. If not, we cannot produce a MOD result.
- See Function Specs-Shop #27 and associated code in BP WEB.GAUGE.VALIDATE. Use this code (including 'Apply Exceptions' logic).
- Material:
- If Material = Polypropylene, we cannot produce a MOD result
- If Material = Trans Shielding, we cannot produce a MOD result
- Zip Code:
- If Prepaid Freight and Zip Code is null, we cannot produce a MOD result
- If Prepaid Freight and Zip Code is null, we cannot produce a MOD result
Going forward, LDLIB RPC$MODPRODUCTITEM_GETBYFILTER should call the following programs to get info:
- Program that detemines if MOD item can be created (will be FCT function call)
- If program #1 determines that we can create a MOD item, continue with the following calls:
- WEB.FREIGHTOPT.DEFAULT.VALUE (PPD/P&A)
- WEB.PACKOUT.DEFAULT.VALUE (Bags per CS/RL Default)
- WEB.REQUESTEDQTY.DEFAULT.VALUE (Minimum Qty default)
- Program that will price the MOD item, as well as defining the BOM and Routings for the item
- Program that will calculate lead time date (start with existing program)
- Program that will put together a MOD item description
- If the 'save or create quote' flags are on, call program that increments configuration revision or create quote/new configuration
If user changes packout or order qty in the results area, the web should execute the associated validation routine: WEB.PACKOUT.VALIDATE or WEB.REQUESTEDQTY.VALIDATE (freight options i a drop-down list so no validation is required)
Avante programs that need to be reviewed for possible re-write:
It was decided that SYSS9015.1 (leadtime calc) will be copied and revised because SHOP. variables need to be used (we don't have an item desc yet). SOPS9097.3 (packaging upcharges) will be changed to remove un-needed upcharges going forward. This program is only needed by the web so doesn't need to be renamed. The MOD pricing routine will call these 6 programs, passing in PARAM and accepting data back from PARMS(8). This s/b ok since we are on Avante side for duration of pricing logic.
- SYSS9015.1 - MOD Leadtime Calculation: RENAME "WEB.MOD.LEADTIME" and use SHOP. variables
- The current site is using the live BP program. This program is called by other Avante processes (quote line screen, quote accept screen, s/o ackn form). Things to consider:
- File Opens (may not need to be changed)
- Accepts data via PARAM (how is this handled today?)
- Uses CUSTOM PART for rules - change to RULESET
- Use SHOP. variables instead of parsing description
- SOPS9097.1 - Calculates the Freight$ for the quote price and price breaks:
- The current site is using the live BP program, and I think we may be ok to call this std version. This program is called by other Avante processes (create pickslips, shipments update, credit card authorization). Things to consider:
- File Opens
- Accepts data via PARAMS
- SOPS9097.2 - Calculates the Order Weight w/Packaging & Skids for the quote qty and the price break quantities:
- The current site is running an AVBP version, whose only difference is that SB.DISPs have been removed. We could either:
- Call the live version of this program OR
- Incorporate this code into Wayne's MOD pricing routine, because it's not that much code. It could be run as an internal subroutine because it's called 4 times. I don't think we'll need the current version any longer because only the configurator calls this program.
- The current site is running an AVBP version, whose only difference is that SB.DISPs were removed and some comments were added. Things to consider:
- New version won't need some of these upcharges (#Pkgs per Pallet, Pallet Hgt, Pallet Wgt, Double Poly Lining)
- New version will need add'l logic for standard comment upcharges (liftgate, inside delivery, etc)
- This is only needed for quotes, so we won't need 2 versions going forward
- SOPS9125.1 - Calculates the Quote Adjustment$ and $/LB for the quote and price break prices:
- Current site is running std version. It's very small program, and since it doesn't need to be called from 7 configurations any longer, could be incorporated into Wayne's MOD pricing program. It's not used by anything except the configurator.
- SOPS9147.5 - Calculates the Printing Upcharge (for printed jobs):
- Current site is running std version. It's a reasonably small program, and since it doesn't need to be called from 7 configurations any longer, could be incorporated into Wayne's MOD pricing program. It's not used by anything except the configurator.
- SOPS9147.6 - Calculates the Printer Ink Qty (for printed jobs):
- Current site is running std version. *** this program is also called by BCDS9000.4 (production barcode screen) to calc qty for printer ink inventory reduction.
THE FOLLOWING WAS DONE AS A TEMPORARY MEASURE TO RETURN A MOD RESULT (BEFORE REAL LOGIC WAS WRITTEN)
3/11/13 - Create MOD results program shells, stubbing in hardcoded information to keep web-side programming moving forward:
- Create LDLIB RPC$MODPRODUCTITEM_GETBYFILTER:
- For now, test to see if SHOP.WIDTH < 4. If so, set MOD.OPTION=0 and send back all null info
- If SHOP.WIDTH >= 4, set MOD.OPTION=1 and continue with pricing logic by including the MODPRODUCTITEM.READ logic
- Create LD.INCLUDES MODPRODUCTITEM.READ returning the following information to the web: This is for a 12x24x2mil 1250/CS:
- DATE.AVAILABLE = Today + 10
- UNIT.PRICE = 49.12
- FREIGHT = ''
- MIN.QTY = 14.58
- STOCK.UOM = 'M'
- WEIGHT = 38.4
Return a second mod item for the gusseted version 8x4x24x2mil 1250/CS:
- DATE.AVAILABLE = Today + 10
- UNIT.PRICE = 58.12
- FREIGHT = ''
- MIN.QTY = 13.02
- STOCK.UOM = 'M'
- WEIGHT = 38.4