Containers and Contents Component
From UG
Note: Contents is synonym for Commodities
Contents |
CT Containers Table
FCL vs LCL
Dates
Completness for Containers and Contents
At some point in life cycle of CT both Containers and Commodity tables become complete:
- every container listed on Containers Table is not empty (has at least one commodity line assigned)
- every line listed under Commodity Table is "assigned" to a container
Containers and Contents Completeness is required for some operations for example generating pdf
Ver 1.0
Container related Logic and Use Cases for Master Ocean
==========================================
1. Intro
1.1 Containers in Master are managed through Master Containers List/Panel located on Master Details Tab.
1.2 CTs that are part of the given Master have their own Container Panels located on ComTableTab being disabled. But commodity items in CT can be assigned to containers through CT's Commodity Tab. Commodity-to-container assignment dropdown is always showing Master Containers List.
1.3 For every Master/CT use case we need to ask the following questions:
q1) what happens to containers list in M? q2) what happens to commodity-to-container assignment dropdown in CT? q3) what happens to commodity-to-container assignment in CT?
1.4 There will be additional panel for assignment of contents in Master. Append it below Master Container Panel. Through this Panel User should be able to select subset of CTs (that are part of this Master). Then select ONE container from the Master Containers List. Then press "Move" button. As a result all content from selected CTs will be re-assigned to selected above container.
1.5 If CT is deleted then remove CT from master
2. Use cases
UC1) Create Master. Manage Master Conatiners. (Add, remove, edit) same as in individual CT
UC2) Create Master based on CT.
- create new Master;
- add all containers to M;
UC3) Add CT1,..., CTN to M (KEEP CONTAINERS=y)
q1) what happens to containers list in M? this list is a superset of all containers in M and in all CT's
q2) what happens to commodity-to-container assignment dropdown in CT? all CTs have same Master Containers List in commodity-to-container assignment dropdown
q3) what happens to commodity-to-container assignment in CT? remains the same
UC4) Add CT1,..., CTN to M (KEEP CONTAINERS=n)
q1) what happens to containers list in M? remains the same
q2) what happens to commodity-to-container assignment dropdown in CT? shows only containers from M's containers list
q3) what happens to commodity-to-container assignment in CT? all items assigned to "undefined"
UC5) Remove CT1,..., CTN from M
q1) what happens to containers list in M? remains the same
q2) what happens to commodity-to-container assignment dropdown in CT? shows only "undefined"
q3) what happens to commodity-to-container assignment? all items assigned to "undefined"
3. Questions
Example1: Day 1: CT#10. Container added: Cont# AAAA-222222-1, size/type: DV 20ft, seal#b123
Day 2: CT#11. Container added: Cont# AAAA-222222-1, size/type: HQ 40ft, seal#b123
Day 3: M#5. CT#10 added (keep containers=y) to M#5. Master Container list now has Cont# AAAA-222222-1, size/type: DV 20ft, seal#b123
Day 4: M#5. CT#11 added (keep containers=y) to M#5. Master Container list now has both: Cont# AAAA-222222-1, size/type: DV 20ft, seal#b123 Cont# AAAA-222222-1, size/type: HQ 40ft, seal#b123 This is probably incorrect - same container number but different types. System treats them as two different containers.
Suggested solution: System will keep record (register) all containers ever entered (container#/size/type/seal) and if user is trying to add existing container# but with new size/type then system would complain (or it could pre-fill size/type itself).
QUESTION: If we implement this then how to let users edit size/type in case they made error originally? If we let them edit then all "old" records will show "new" size/type for a given cont#. Is that OK?
Also, similar question is with seal#. Is it possible to have 2 containers with same cont#/size/type but different seal#? In what cases? What to do if user is trying to add these 2 containers to the same CT or M?
Another related example: Example2: Day 1: CT#10. Container added: Cont# AAAA-222222-1, size/type: DV 20ft, seal#ffff Day 2: CT#10. Container added: Cont# AAAA-222222-1, size/type: HQ 40ft, seal#gggg
Comment #1 From Natalia Mitasova 2008-11-19 16:29 [reply] -------
When clicked on "Move this CT to Master" and Master id not inputted
there is NullPointerException
Comment #2 From Dmitriy Chagin 2008-11-19 16:51 [reply] -------
(In reply to comment #1) > When clicked on "Move this CT to Master" and Master id not inputted > there is NullPointerException >
Fixed.
Comment #3 From Natalia Mitasova 2008-11-19 17:17 [reply] -------
In TruckingOcean CTs created containers don't save when pressing save button
Comment #4 From Dmitriy Chagin 2008-11-19 19:10 [reply] -------
Additional trucking logic:
If trucking shipment is saved then containers doesn't become part of master. And if "keep containers" = off then containers will be deleted.
Comment #5 From Dmitriy Chagin 2008-11-19 19:29 [reply] -------
(In reply to comment #3) > In TruckingOcean CTs created containers don't save when pressing save button >
Done.
(In reply to comment #4) > Additional trucking logic: > > If trucking shipment is saved then containers doesn't become part of master. > And if "keep containers" = off then containers will be deleted. >
Done.
Comment #7 From Natalia Mitasova 2008-11-20 13:45 [reply] -------
Logic: UC6) Remove M with CT1,..., CTN assigned to it
q1) what happens to CT? CT is no longer assigned to any master
q2) what happens to containers list in CT? there will be no containers
q3 what happens to commodity-to-container assignment dropdown in CT? all items assigned to "undefined"
q4) what happens to commodity-to-container assignment in CT? all items assigned to "undefined"
Ver 1.1
Requirement:
Instead of entering "AMS Handling Units" number by operator system must calculate it and display in totals.
AMS Handling Units = Ttl pkgs on plts + Loose pkgs
Design:
ss1 // remove "AMS Handling Units" textbox (from UI and DB, existing data on /internal for this field can be lost) ss2 // add "AMS" column to Totals table. Use formula above to display AMS. Systew must display 3 numbers on GRAND TOTAL TOTAL, TOTAL Haz , TOTAL Non-Haz lines
Ver 1.2
- ss1 // if user is trying to remove container linked to CT that has contents assigned to this container and Actual Delivery set to something then system must block user from doing it. Issue pop-up "Can not remove container with contents assigned and actual delivery date not empty."
Ver 1.3
- ss1 // add History feature to all dates on container panel in CT (Cont tab)
- ss2 // add History feature to all dates on container panel in Master (Master Details Tab)
Ver 1.4
Fix layout:
- now column headers are larger than field width
- increase field size to 4 for: Ttl # of plts, Ttl pkgs on plts, Ttl G kg
- fix layout of container table (column width)
RFC Need to simplify overall design
Containers to CT to Master relationship is already complex. Delivery dates logic add another layer increasing number of possible cases and additional required logic to handle them.
One example would be when user is adding a new commodity line to a CT with delivered dates on one of the containers set. This could be container that has nothing to do with this CT (container panel is shared among CT in the M) Attempt to save with any commodities unassigned will fail (we block this to prevent setting delivered date on CT with unassigned items) unless they are immediately assigned to a container. But maybe user doesn't know yet container#? She is forced to assign any number to save.
It is just one example. We see daily examples when users prevented doing what they need by blockers.
By trying to cover all possible cases we had to add more and more validations and blockers which themselves add complexity and contradict each other. See for example see http://mantis.jaguarfreight.com/wiki/CT_Dates#Ver_1.4_Additional_restrictions_on_assigning_CT_dates
I think we have to review entire design and try to simplify it instead of trying to patch it with yet additional logic.
Some ideas that come to mind:
- allow to edit container properties in Master (including dates) just from Master or just from CT one CT (now it can be done from any CT or Master).
- limit number of cases in terms of CT-Container-master relationships. For example say that for FCL 1 container may contain commodities from at most one CT.