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.