Skip to content

Latest commit

 

History

History
151 lines (96 loc) · 7.34 KB

LOG0501.md

File metadata and controls

151 lines (96 loc) · 7.34 KB
erp.entity erp.type
Logistics.Wms.WarehouseRequisitions
generation

LOG0501 Create Simple Warehouse Orders

Basic Information

Module Logistics.WMS
Code LOG0501
Parent Document Warehouse Requisition
Sub-document Warehouse Order
Full Name Create Simple Warehouse Orders
Status NEW
Deterministic YES
Supports Transitional Documents NO
Supports Single Execution YES
Replaces -
Orphan Rows Ignore
Split Function -
Version Introduced: 2022 Updated: -
Date of Suspension -

Business Logic

This generation is used to create Warehouse Orders from Warehouse Requisitions. Thе generation is called simple because it uses a simplified method in creating tasks. It creates a single task for each warehouse requisition line instead of relying on the complex logic of the zone-based routing.

It is suitable for use when starting work with the module or if it is not necessary to use complex logic in determining the warehouse locations.

The Warehouse Order’s header is created based on the Warehouse Requisition’s header as follows:

WarehouseOrder.DocumentDate = WarehouseRequisition.DocumentDate

WarehouseOrder.Warehouse = WarehouseRequisition.Warehouse

WarehouseOrder.WarehouseWorker = NULL

Note

The attributes which are not specified here are filled in as described in Standard Document Attributes

Note

The new Warehouse Order is saved then and only when there is at least one line in it.

Fulfillments

Fulfilment Name WarehouseRequisitionLineToWarehouseOrderLine
Fulfilment Tracking Type Fulfilment Table
Parent Entity WarehouseRequisitionLine
Fulfilment Table DocumentFulfillment
Parent Entity/ Fulfilment Table Relationship WarehouseRequisitionLineId = DocumentFulfillment.DocumentLineId
Fulfilment Name Metric Name Measurement Unit Parent Value Fulfilment Table Value New Record
WarehouseRequisitionLineToWarehouseOrderLine MQuantityBase WarehouseRequisitionLine.Product.BaseMeasurementUnit WarehouseRequisitionLineLine.QuantityBase DocumentFulfillment.QuantityBase NO
WarehouseRequisitionLineToWarehouseOrderLine MStandardQuantity WarehouseRequisitionLine.Product.BaseMeasurementUnit WarehouseRequisitionLineLine.StandardQuantity DocumentFulfillment.StandardQuantity YES



The lines of the new document are created based on the data of the Planned records in the Document Fulfillments table. The table contains the information for the Fulfilled Part of quantities by the Warehouse Oders which have already been created.

Note

Note that for the calculation of the Fulfilled Part are taken into account only the recods whoose Fulfillment Type is Planned.


The new Warehouse Order Line is created as follows:

WarehouseOrderLine.TaskType = If (WarehouseRequisition.RequisitionType = Inbound )

                            , then WarehouseOrderLine.TaskType = Receive

                            , else WarehouseOrderLine.TaskType = Dispatch

WarehouseOrderLine.Product = WarehouseRequisitionLine.Product

WarehouseOrderLine.Lot = WarehouseRequisitionLine.Lot

WarehouseOrderLine.SerialNumber = WarehouseRequisitionLine.SerialNumber

WarehouseOrderLine.ProductVariant = WarehouseRequisitionLine.ProductVariant

WarehouseOrderLine.QuantityUnit = WarehouseRequisitionLine.QuantityUnit

WarehouseOrderLine.Quantity =  If there are no records in the Document Fulfillment table for the current WarehouseRequisitionLine
                               , then WarehouseOrderLine.Quantity = WarehouseRequisitionLine.Quantity
                               , else CONVERT(WarehouseOrderLine.StandardQuantity, WarehouseOrderLine.QuantityUnit)

WarehouseOrderLine.QuantityBase = WarehouseRequisitionLine.REMAINING(MQuantityBase)

WarehouseOrderLine.StandardQuantity = WarehouseRequisitionLine.REMAINING(MStandardQuantity)

WarehouseOrderLine.LogisticUnit = NULL

WarehouseOrderLine.WarehouseZone = NULL

WarehouseOrderLine.WarehouseLocation =NULL

WarehouseOrderLine.ToWarehouseLocation = NULL

WarehouseOrderLine.WarehouseWorker = NULL

WarehouseOrderLine.Notes = WarehouseRequisitionLine.Notes

WarehouseOrderLine.ParentDocument = WarehouseRequisition

WarehouseOrderLine.ParentLineNo = WarehouseRequisitionLine.LineNo

Once all lines are created and before the document is saved, the generation generates records in the Document Fulfillment table. These records reflect the quantities fulfilled by the current iteration of the generation procedure and are needed to determine the quantities for subsequent generation iterations.

The new Document Fulfillment is created as follows:

DocumentFulfillment.Document = WarehouseRequisition

DocumentFulfillment.DocumentLineId = WarehouseRequisitionLineId

DocumentFulfillment.LineNo = WarehouseRequisitionLine.LineNo

DocumentFulfillment.FulfillmentType = Planned

DocumentFulfillment.IsFinal = If (WarehouseOrder.DocumentType.GenerateSingleDocument = true)

                          , then DocumentFulfillment.IsFinal = true

                          , else DocumentFulfillment.IsFinal = false

DocumentFulfillment.LineType = Line

DocumentFulfillment.QuantityBase = WarehouseOrderLine.QuantityBase

DocumentFulfillment.StandardQuantity = WarehouseOrderLine.StandardQuantity

DocumentFulfillment.Product = WarehouseOrderLine.Product

DocumentFulfillment.Lot = WarehouseOrderLine.Lot

DocumentFulfillment.SerialNumber = WarehouseOrderLine.SerialNumber

DocumentFulfillment.ProductVariant = WarehouseOrderLine.ProductVariant

DocumentFulfillment.DestinationEntityName = Wms_Warehouse_Order_Lines