digraph G {
   labelloc = "t";
   rankdir=LR;
   splines = polyline;
   node [shape=record];
   edge [style = dashed, fontsize=10];

   Carton [label="<Carton> Carton|<deductConsumableInventory> deductConsumableInventory|<cartonizationRule> cartonizationRule|<installConsumables> installConsumables|<transferFrom> transferFrom|<fulfill> fulfill|<bindOrder> bindOrder"];
   CartonBag [label="<CartonBag> CartonBag|<deductConsumableInventory> deductConsumableInventory|<fulfill> fulfill|<putOnPallet> putOnPallet"];
   Consumable [label="<Consumable> Consumable|<isInventory> isInventory"];
   Container [label="<Container> Container|<skuNoSet> skuNoSet|<getContainerItemBag> getContainerItemBag"];
   ContainerBag [label="<ContainerBag> ContainerBag|<orderNoSet> orderNoSet|<confirmQty> confirmQty|<totalQty> totalQty|<totalPendingQty> totalPendingQty|<totalSku> totalSku"];
   ContainerItem [label="<ContainerItem> ContainerItem|<getExpectedQty> getExpectedQty|<getPendingQty> getPendingQty|<diffQty> diffQty|<getSku> getSku"];
   ContainerItemBag [label="<ContainerItemBag> ContainerItemBag|<totalQty> totalQty|<totalPendingQty> totalPendingQty|<totalSku> totalSku"];
   Order [label="<Order> Order|<getOrderNo> getOrderNo|<recommendPackQty> recommendPackQty|<checkedBy> checkedBy|<ship> ship|<totalExpectedQty> totalExpectedQty|<recommendedPlatform> recommendedPlatform"];
   OrderBag [label="<OrderBag> OrderBag|<canceledBag> canceledBag|<consumableCostFirst> consumableCostFirst|<orderNos> orderNos"];
   OrderCartons [label="<OrderCartons> OrderCartons|<totalCartonizedQty> totalCartonizedQty"];
   OrderLine [label="<OrderLine> OrderLine|<getOrderLineNo> getOrderLineNo|<expectedQty> expectedQty"];
   OrderLineBag [label="<OrderLineBag> OrderLineBag|<orderLineNos> orderLineNos|<totalExpectedQty> totalExpectedQty"];
   ShipManifest [label="<ShipManifest> ShipManifest|<ship> ship|<loadForOrder> loadForOrder"];
   Sku [label="<Sku> Sku|<value> value"];
   Task [label="<Task> Task|<claimedWith> claimedWith|<orderNoSet> orderNoSet|<containerBag> containerBag|<confirmQty> confirmQty|<totalQty> totalQty|<isEmpty> isEmpty|<totalPendingQty> totalPendingQty|<plan> plan|<removeOrderLines> removeOrderLines|<totalSku> totalSku"];
   TaskBag [label="<TaskBag> TaskBag|<totalQty> totalQty|<totalCheckedQty> totalCheckedQty|<totalPendingQty> totalPendingQty|<platforms> platforms"];
   TaskOfOrderPending [label="<TaskOfOrderPending> TaskOfOrderPending|<confirmQty> confirmQty"];
   TaskOfSkuPending [label="<TaskOfSkuPending> TaskOfSkuPending|<confirmQty> confirmQty"];

   CartonBag:deductConsumableInventory -> Carton:deductConsumableInventory
   CartonBag:fulfill -> Carton:fulfill
   CheckingAppService -> TaskOfOrderPending:confirmQty [label="checkByOrder"];
   CheckingAppService -> CartonBag:fulfill [label="checkByOrder"];
   CheckingAppService -> CartonBag:putOnPallet [label="checkByOrder"];
   CheckingAppService -> Order:checkedBy [label="checkByOrder"];
   CheckingAppService -> CartonBag:deductConsumableInventory [label="checkByOrder"];
   CheckingAppService -> Carton:cartonizationRule [label="checkBySku"];
   CheckingAppService -> Carton:bindOrder [label="checkBySku"];
   CheckingAppService -> Carton:transferFrom [label="checkBySku"];
   CheckingAppService -> OrderBag:canceledBag [label="claimTask"];
   CheckingAppService -> Carton:installConsumables [label="fulfillCarton"];
   CheckingAppService -> Carton:fulfill [label="fulfillCarton"];
   CheckingAppService -> Order:recommendedPlatform [label="recommendPlatformByOrder"];
   CheckingAppService -> TaskBag:platforms [label="recommendPlatformByOrder"];
   CheckingAppService -> TaskBag:totalCheckedQty [label="recommendPlatformByTaskBacklog"];
   CheckingAppService -> TaskBag:totalPendingQty [label="recommendPlatformByTaskBacklog"];
   CheckingAppService -> OrderBag:canceledBag [label="submitTask"];
   CheckingAppService -> Task:removeOrderLines [label="submitTask"];
   CheckingAppService -> Task:isEmpty [label="submitTask"];
   CheckingAppService -> Task:plan [label="submitTask"];
   ConsumableBag:inventoryControlBag -> Consumable:isInventory
   ConsumableExtPolicy -> OrderBag:consumableCostFirst [label="extensionCode"];
   ContainerBag:totalPendingQty -> ContainerItemBag:totalPendingQty
   ContainerBag:totalPendingQty -> Container:getContainerItemBag
   ContainerBag:totalQty -> ContainerItemBag:totalQty
   ContainerBag:totalQty -> Container:getContainerItemBag
   ContainerItemBag:totalPendingQty -> ContainerItem:getPendingQty
   ContainerItemBag:totalQty -> ContainerItem:getExpectedQty
   Container:skuNoSet -> Sku:value
   Container:skuNoSet -> ContainerItem:getSku
   OrderBag:orderNos -> Order:getOrderNo
   OrderLineBag:orderLineNos -> OrderLine:getOrderLineNo
   OrderLineBag:totalExpectedQty -> OrderLine:expectedQty
   OrderNotFullyCartonized -> Order:totalExpectedQty [label="isSatisfiedBy"];
   Order:recommendPackQty -> OrderCartons:totalCartonizedQty
   Order:totalExpectedQty -> OrderLineBag:totalExpectedQty
   ShippingAppService -> ShipManifest:loadForOrder [label="shipOrder"];
   ShippingAppService -> ShipManifest:ship [label="shipOrder"];
   ShippingAppService -> Order:ship [label="shipOrder"];
   TaskBag:totalPendingQty -> ContainerBag:totalPendingQty
   TaskBag:totalPendingQty -> Task:containerBag
   TaskBag:totalQty -> ContainerBag:totalQty
   TaskBag:totalQty -> Task:containerBag
   Task:confirmQty -> TaskOfSkuPending:confirmQty
   Task:totalPendingQty -> ContainerBag:totalPendingQty
   Task:totalQty -> ContainerBag:totalQty
   Task:totalSku -> ContainerBag:totalSku
}