LOG0210 Create issue store order with break down by lots

Basic Information

Module Logistics.Inventory
Code LOG0210
Parent Document Transfer Order
Sub-document Store Order
Full Name Create issue store order with break down by lots
Status NEW
Deterministic NO
Supports Transitional Documents NO
Supports Single Execution YES
Replaces CreateIssueStoreOrderWithBreakDownByLots
Orphan Rows Forbid
Split Function
Introduced In Version 2024
Date of Suspension -

Business Logic

This Generation is used to create Store Orders from the Transfer Order and break down rows by Available To Promise Lots.

If for the current row of the Transfer Order there is no enough quantity from first Lot then is created another row in the Store Orders with remaining Quantity and another Available Lot.

If there is no Available Lot then Lot is Null.

StoreOrder.DocumentDate = TransferOrder.DocumentDate

StoreOrder.Store = TransferOrder.FromStore

StoreOrder.MovementType = Issue

StoreOrder.DueDate = TransferOrder.DefautDueDateOut

StoreOrder.PlannedReleaseDate = TransferOrder.DefautDueDateOut

StoreOrder.PlannedCompletionDate = TransferOrder.DefautDueDateOut

StoreOrder.IssuedByParty = null

StoreOrder.DocumentCurrency =  

​                          if (TransferOrder.FromStore.Currency != null)

​                          , then TransferOrder.FromStore.Currency

​                          , else Error "The field 'Document Currency' in the Store Order cannot be filled because currency for the issued store is not specified."

StoreOrder.FromParty = TransferOrder.FromParty

StoreOrder.ToParty = TransferOrder.ToStore

Fulfillments

Name TransferOrderLineToStoreOrderLine
Parent Entity TransferOrderLines
Child Entity StoreOrderLines (where "StoreOrderLine.StoreOrder.MovementType = Issue"
Parent / Child Relationship StoreOrderLine.ParentDocument = TransferOrder; StoreOrderLine.ParentLineNo = TransferOrderLine.LineOrd

Metrics

Fulfillment Name Metric Name Measurement Unit Parent Value Child Value New Record
TransferOrderLineToStoreOrderLine MStandardQuantityBase TransferOrderLine.Product.BaseMeasurementUnit TransferOrderLine.StandardQuantityBase StoreOrderLine.StandardQuantityBase YES
TransferOrderLineToStoreOrderLine MQuantity TransferOrderLine.QuantityUnit TransferOrderLine.Quantity StoreOrderLine.Quantity NO
TransferOrderLineToStoreOrderLine MQuantityBase TransferOrderLine.Product.BaseMeasurementUnit TransferOrderLine.QuantityBase StoreOrderLine.QuantityBase NO
StoreOrderLine.LineNo = TransferOrderLine.LineOrd

StoreOrderLine.ParentLineId = TranferOrderLine.Id

StoreOrderLine.Product = TransferOrderLine.Product

StoreOrderLine.ProductVariant = TransferOrderLine.ProductVariant

StoreOrderLine.StoreBin = TransferOrderLine.FromStoreBin

StoreOrderLine.SerialNumber = TransferOrderLine.SerialNumber

StoreOrderLine.Quantity = TransferOrderLine.REMAINING(MQuantity)

StoreOrderLine.QuantityUnit = TransferOrderLine.QuantityUnit

StoreOrderLine.QuantityBase = TransferOrderLine.REMAINING(MQuantityBase)

StoreOrderLine.StandardQuantityBase = TransferOrderLine.REMAINING(MStandardQuantityBase)

StoreOrderLine.UnitCost = null

StoreOrderLine.LineCost = null

StoreOrderLine.Lot =

​                 if (TransferOrderLine.Lot != Null), then TransferOrderLine.Lot

                 else if (Lots Issue* == Null), then Null

                 else Lots Issue*

StoreOrderLine.GuaranteePeriodDays = TransferOrderLine.Product.GuaranteePeriodDays

StoreOrderLine.SalesOrderLine = null

StoreOrderLine.Notes = TransferOrderLine.Notes

StoreOrderLine.PersistLot = false

StoreOrderLine.ParentDocument = TransferOrder

StoreOrderLine.ParentLineNo = TransferOrderLine.LineOrd

StoreOrderLine.TransactionTimestamp = null

StoreOrderLine.ForOrdering = false

Lots Issue is algorithm than determine Lots from Available To Promise Lots.

If there is no enough quantity from first Lot then current row is break down to multiple rows as in next row is filled another Lots that is available.

If there is no available Lot for the current row then Lot = Null.

Note

WARNING: Any of the Store Orders created according to the description above is saved then and only when there is at least one line in it.