Project

General

Profile

Advance Payment

Technical documentation
07/10/2025

Advance Payment Feature

Requirement Overview

The advance payment feature is designed for those clients who require an advance amount to be collected at the time of placing a sales order. This feature ensures that the sales order is confirmed only after the advance payment has been received.

UI design

https://www.figma.com/design/f0FiEk86FmDlscUComMsPz/Advance-Payment?node-id=0-1&t=7FW4E66fxrwq5tp4-1

Database Changes

  • Setting EnableAdvPaymentInSOrder = 0 | 1
  • Setting EnableAdvPaymentInSOrder = 0
    • Hide Advance Payment in the Sales Order
  • Setting EnableAdvPaymentInSOrder = 1
    • Show Advance Payment in the Sales Order
  • Setting EnableShippingAddress and EnableDeliveryDateInSOrder should be enabled.
  • The separate table named `SORDER_ADVANCE_LOG`will save the sales order’s advance amount log that includes the following columns :
    • VCHRNO (Sales Order Voucher Number )
    • DIVISION (Division name )
    • PHISCALID
    • ADVANCE_AMOUNT(Advance payment amount )
    • PAYMENT_MODE(Payment Mode)
    • CUSTID (Customer Id )
*Add the following columns to the existing table 'RMD_ORDERMAIN', with the data sourced from the sales order:
  • ADVANCE
  • TRNMODE (Selected payment mode)
  • DELIVERYTIME (Delivery time schedule taken from the delivery time field)

Accounting Entry

When the advance payment mode feature is enabled in the sales order, the accounting entries should be done and it involves the table:- ACCMAIN, ACCTRAN, and RMD_JOURNAL.
The journal entry is based on specific settings and follows the format outlined below.
  • Setting EnableCusProfileInSOrder = 1 |0 (Both)
    PAYMENT TERM A/C (CASH/BANK/QR A/C ) DR
    TO ADVANCE A/C CR (MAPPING In RMD_TAXCHARGES_CONFIG)

Note : Advance a/c's Default account should take from Rmd_TaxCharges_Config Table whose Field Name "Particulars = "SOrder_AdvanceAc"" and the listing of "SOrder_AdvanceAc" in the Rmd_TaxChargesConfig table should be updated using the F10 update function.

Functional Requirement

Requirement 1 : Please create the advance payment field in sales order where the user can enter the amount and chose the payment term as per the figure below :
Amount : The system must validate that only numerical inputs are accepted. Additionally, it should ensure that any advance payment made does not exceed the net amount of the corresponding sales order.
Payment Mode : Implement a dropdown menu for selecting payment terms from drop down (Cash, Bank, QR)

Requirement 2: Add the Delivery Time beside the delivery date as shown in the following fig :

Requirement 3 : After saving the the sales order:
The data should be saved in RMD_ORDERMAIN with entered advanced amount (ADVANCE)and the chosen payment mode (TRNMODE)
  • The input data should be saved in the table SORDER_ADVANCE_ LOG
  • The Listing Of SOrder_AdvanceAc in the Rmd_TaxChargesConfig table should be updated using the F10 update function.
  • The accounting entries should be done as per the setting which is mentioned above in the accounting entry.

Requirement 4: Advance amount editable authorization in sales order
Requirement 4.1: A user right titled "Allow Advance Amount Change" should be added in the User Manager. When this right is enabled for a user, they will have the privilege to edit the advance amount in the Sales Order.

Requirement 4.2 : If an authorized user attempts to modify the advance amount in the Sales Order Voucher, an authorization pop-up should appear in the Sales Order (Edit) Voucher.
Requirement 4.3 : For unauthorized persons , the advance amount should be read only form in the Sales Order (Edit) Voucher.
Requirement 4.4 : After changing the advance amount in Sales Order (Edit) Voucher.
a log file should be created storing data (Updated UserName , Updated Time , Previous Advance Amount), and the new amount should be updated accordingly.
Application Flow
Step 1 : Create the sales order with advance payment and save the sales order.
Step 2 : Clicking 'Save’ :
  • If Setting EnableCusProfileInSOrder = 0
    • The mentioned amount in sales order will be debited in either the cash account or the bank account in table RMD_JOURNAL
  • The same amount will be credited to the selected party's account (Taken from Customer Field).
  • If Setting EnableCusProfileInSOrder = 1
    • The mentioned amount in sales order will be debited in either the cash account or the bank account (as mapped during the advance payment) i
    • The same amount will be credited to the Advance payment's A/c in table RMD_JOURNAL

Note: Please verify that the accounting entries are correct and that the data is stored in the respective tables.

Files