Projects:ReturnMaterial/Technical Documentation
Contents |
Introduction
In this document are explained all the needed developments to fulfill the requirements of the project.
Tables
Tables needed to store material return documents and its lines. Existing C_Order and C_OrderLine tables. Below is a list of the new columns needed to core tables
C_Order
ColumnName | Type | Comment |
---|---|---|
DocStatus | varchar2(60) | New statuses to add:
|
C_Return_Reason_ID | varchar2(32) | foreign key |
Materials_Condition | varchar2(60) | Closed list:
|
RM_PickFromShipment | char(1) | Button for pick and execute process |
RM_ReceiveMaterials | char(1) | Button for pick and execute process |
RM_CreateInvoice | varchar2(60) | Button for process to create invoice |
C_OrderLine
ColumnName | Type | Comment |
---|---|---|
C_Return_Reason_ID | varchar2(32) | foreign key |
M_InoutLine_ID | varchar2(32) | Identifies the original inout line that is returned. |
M_InOut
ColumnName | Type | Comment |
---|---|---|
RM_Receipt_Pickedit | char(1) | Button for pick and execute process |
RM_Shipment_Pickedit | char(1) | Button for pick and execute process |
M_Condition_Goods_ID | varchar2(32) |
M_InOutLine
ColumnName | Type | Comment |
---|---|---|
M_Condition_Goods_ID | varchar2(32) |
Modified core windows
Sales/Purchase Order, Goods Shipment/Receipt
Header
- Filter
- modified to show only documents related to Document types that are not return documents
Warehouse and Storage Bins
Header
- Returned bin
- New field to set the default storage bin for customer returns.
Document Type
Header
- Return
- New flag to identify return documents. Valid for Orders, Receipt/Shipments and Invoices.
Collateral changes
- Initial client setup
- The initial client setup process modified to create the return document types for purchase/sale orders, receipts/shipments and purchase/sale invoices. In the invoices case existing reversal invoices are updated to enable this flag.
- Document Type validations
- Document Type fields on windows for orders and shipment/receipts (including existing core ones) have been updated to include a filter by the new flag. Enabled or disabled depending on the window. All Return windows must are identified using an auxiliary input named isReturnMaterial.
- AD_Get_DocType function
- Core's AD_Get_DocType modified to filter out Return enabled document types.
- Order, InOut, Invoice post procedures
- New validation added on the Book/Complete action of C_Order_Post1, M_InOut_Post and C_Invoice_Post procedures. It is not possible to book/complete return documents with positive quantities.
- Generate Shipments process
- Modify M_InOut_Create to filter out return orders.
- Create Shipments from Orders process
- Filter out return orders. GenerateShipementsmanual_data.xsql file.
- Create lines from process of Goods Receipt/Shipment
- Filter out return orders. CreateFrom_Shipment_data.xsql file.
- Create invoices from Orders process
- Filter out return documents. GenerateInvoicesmanual_data.xsql file.
- Pending Goods Receipt process
- Filter out return orders. MaterialReceiptPending_data.xsql file
New Windows
Return Reasons
Window with a single tab based on new table C_Return_Reason.
Fields:
- Organization
- Value
- Name
- Active
- Return from customer. Flag used to filter drop down list on Return from Customer window.
- Return to vendor. Flag used to filter drop down list on Return to Vendor window.
- Description
Condition of the goods
Window with a single tab based on new table M_Condition_Goods.
Fields:
- Organization
- Value
- Name
- Description
- Active
Return from Customer
Window copy of Sales Order. Quantities and amounts are stored as negative numbers in database but shown as positive numbers in the window using canvas fields.
Header
Filter:
- Only shows orders related to Return doctypes with IsSOTrx enabled.
Buttons:
- Standard docAction
- Pick/Edit lines
- Create Credit
Lines
Read only tab. Lines are managed using the Pick/Edit Lines pick and execute process.
Return to Vendor
Window copy of Purchase Order. Quantities and amounts are stored as negative numbers in database but shown as positive numbers in the window using canvas fields.
Header
Filter:
- Only shows orders related to Return doctypes.
Buttons:
- Standard docAction
- Pick/Edit lines
Lines
Read only tab. Lines are managed using the Pick/Edit Lines pick and execute process.
Return Material Receipt
Window copy of Goods Shipment. Quantities and amounts are stored as negative numbers in database but shown as positive numbers in the window using canvas fields.
Header
Filter:
- Only shows orders related to Return doctypes.
Buttons:
- Standard docAction
- Pick/Edit lines
Lines
Read only tab. Lines are managed using the Pick/Edit Lines pick and execute process.
Return Material Shipment
Window copy of Goods Receipt. Quantities and amounts are stored as negative numbers in database but shown as positive numbers in the window using canvas fields.
Header
Filter:
- Only shows orders related to Return doctypes.
Buttons:
- Standard docAction
- Pick/Edit lines
Lines
Read only tab. Lines are managed using the Pick/Edit Lines pick and execute process.
Processes
Pick and Execute related JavaScript validations and actions when lines are selected are defined in ob-return-material.js file of client application module web/org.openbravo.client.application/js/return-material/ folder. Some numeric validations are done using new BigDecimal.js library
Pick/Edit Lines for Return Orders
Process built using the Pick and Execute functionality available on Return from Customer and Return to Vendor windows when the document is not processed.
Picking grid
Data based on receipts/shipments and existing related order lines (C_RM_Order_Pick_Edit_Lines view). Filtered by default to show the last 4 weeks shipments of the selected business partner.
Available columns:
- Shipment/Receipt No.
- Shipment date.
- Product
- Attribute
- Ship/Receipt Qty
- UOM
- Returned. Defaulted to the ordered quantity. Editable when the row is selected.
- Price. Editable.
- Return Reason. Editable when the row is selected. FK of C_Return_Reason. Optional.
- Business Partner
- Sales Order
Selection Process
- OB.RM.RMOrderSelectionChange
- Sets header's return reason.
Field validations
- OB.RM.RMOrderQtyValidate
- Returned Qty. <= Ship/Receipt Qty.
Processes
- Done
- Creates the lines based on the selected rows. It deletes existing ones and creates all of them again. Using SRMOPickEditLines action handler. If return reason is left blank and the header has one defined this is set in the lines.
- Cancel
- Closes the window without any change.
Pick/Lines for Return Material Receipt
Process built using the Pick and Execute functionality. Available on Return Material Receipt window when the document is not processed.
Picking grid
Data based on the lines of Return from Customer documents (M_RM_Receipt_Pick_Edit view). Only lines of Return from Customer orders with pending quantity to receive are shown.
Available columns:
- RFC Order No.
- Product
- Line No.
- Attribute
- Returned
- Pending
- Receiving. Editable when row is selected.
- Storage bin.
- UOM
- Condition of the Goods. Editable when row is selected. FK to M_Condition_Goods table.
Selection Process
- OB.RM.RMReceiptSelectionChange
- Sets receiving = pending, storage bin = receiving locator, condition goods as header's. Receiving locator is stored as an auxiliary input (ReturnLocator) in the header and updated by a callout (SE_InOut_Warehouse) when the warehouse is selected.
Field validations
- OB.RM.RMReceiptQtyValidate
- Receiving <= Pending
Processes
- Done
- Creates the lines based on the selected rows. It deletes existing ones and creates all of them again. Using RMInOutPickEditLines action handler. If condition of the goods is left blank and the header has one defined this is set in the lines.
- Cancel
- Closes the window without any change.
Pick/Lines for Return Material Shipment
Process built using the Pick and Execute functionality. Available on Return to Vendor Shipment window when the document is not processed.
Picking grid
Data based on the lines of Return to Vendor documents and the available quantity on the warehouse for each product (M_RM_Shipment_Pick_Edit view). Only lines of Return to Vendor orders with pending quantity to ship are shown.
Available columns:
- RM Order No.
- Line No.
- Product
- Attribute
- Returned
- UOM
- Pending
- Ship Qty. Editable when row is selected.
- Storage Bin
- Available Qty.
Selection Process
- OB.RM.RMShipmentSelectionChange
- Sets Ship Qty = Min(Pending, Available) considering already shipped qty from other Storage Bins.
Field validations
- OB.RM.RMShipmentQtyValidate
- Ship Qty <= Min(Pending, Available) and if same RM Order No. and Line No. is shipped from different Storage Bin consider all selected lines for pending qty.
Processes
- Done
- Creates the lines based on the selected rows. It deletes existing ones and creates all of them again. Using RMShipmentPickEditLines action handler. If condition of the goods is left blank and the header has one defined this is set in the lines.
- Cancel
- Closes the window without any change.
Create Credit button
- Process only available on Return From Customer window.
- Display logics:
- Document is processed
- There is quantity pending to invoice. Using PendingToInvoice auxiliary input.
- The original sales order is invoiced. Using OriginalOrderInvoiced auxiliary input.
- Java class: org.openbravo.erpCommon.ad_actionButton.RMCreateInvoice
- It calls the C_Invoice_Create procedure setting the order id as parameter. It can happen that no invoice is created based on the invoice terms.
- In the case of Scheduled after delivery invoice term. It can mix Return from customer orders and Sales Orders. When both types are mixed it will use the invoice document type set in the Document Type definition of the Sales Order.
- It executes all pending payments using the Leave As Credit execution process.
Reports
Return from Customer and Return to Vendor windows print document
C_RMOrderJR.jrxml and C_RMOrderLinesJR.jrxml templates. Based on core's C_OrderJR.jrxml and C_OrderLinesJR.jrxml. Changes the sign of all quantities and amounts to show them as positive numbers.
Return to Vendor Shipment window print document
RptM_RMInOut.jrxml and RptM_RMInOutLines.jrxml templates. Based on core's RptM_InOut.jrxml and RptM_RMInOutLines.jrxml. Changes the sign of all quantities and amounts to show them as positive numbers.
Other changes
Leave As Credit execution process
New execution process added to APR. org.openbravo.advpaymentmngt.executionprocess.LeaveAsCredit. Execution process that on negative payments. Sets the leaves the payment amount as credit while modifying the payment's amount to zero.
- Modified trigger APRM_FIN_PMT_CHECK_TRG
- Modified to allow to change the amount of a payment in Awaiting Execution status when the generated credit amount is modified as well with the same amount. For example: A payment with amount -10 and 0 generated credit is possible to be changed to: 0 amount and 10 generated credit.