Enable Customer Invoice Date Control
The functionality is enabled by selecting the new 'Customer invoice date control' (CIDC) check box on 'Settings - General Ledger' (CRS750/F). When the functionality is enabled, customer invoicing will update the new 'Last invoice date' (LIVD) field on (CRS750/F) if the invoice date used for invoicing is later than the last invoice date. After that, invoicing is only permitted using an invoice date equal to or later than the last invoice date. When trying to create an invoice with an invoice date before the last invoice date in (CRS750), an error message is displayed on the entering panel. If the last invoice date in (CRS750) has been updated by a different job during an ongoing invoicing, the invoicing job will be interrupted from that point as the invoice date is no longer valid and the remaining invoices will need to be invoiced anew. To give the user an indication of this occurrence, application message type 59-'Invoice date not valid' is displayed in 'Application Message. Open' (CRS420).
Example of the business logic:
Last invoice date displayed on (CRS750/F) = 2023-05-01
- Invoicing on dates before 2023-05-01 is not allowed and will generate the error message "The specified invoice date must not be before the last invoice date 2023-05-01 in (CRS750)".
- Invoicing on the same date (2023-05-01) is allowed and no error/warning message is displayed.
- Invoicing on dates later than 2023-05-01, for example, 2023-05-02 will generate the warning message "Invoice date is after the last invoice date 2023-05-01. Last invoice date in (CRS750) will be updated." with the option to press OK or cancel. If OK is selected, the last invoice date on (CRS750/F) will be updated to 2023-05-02.
There are some scenarios where there will not be any dialog with the user or there will be prevention of invoicing:
- Direct invoicing at CO entry 'Next man funct' 4 on 'CO Type. Open' (OIS010/E).
- Invoicing through Autojob (OIS950) 'Auto level – in' 3 on 'CO Type. Open' (OIS010/K) or 'Prt document' selected in 'CO Type. Connect Documents' (OIS011).
- Payment of advance payment document or payment requests that trigger the creation of an advance invoice record used for the deduction of the advance payment on delivery invoice ('Adv invoicing' 2, 3, or 5 on (OIS010/K)).
- The MCO has automatic invoicing, that is, 'Print document' is selected in 'Maint CO. Connect documents' (COS104) for document number 380, variant 07.
- If the last invoice date in (CRS750) is later than the invoice date, the invoice date on the invoice is changed to the last invoice date from (CRS750).
- If the last invoice date in (CRS750) is earlier than the invoice date, the last invoice date in (CRS750) is automatically updated with the new date.
Since it is required to override the customer invoice date control in some scenarios, the 'User class' (USCL) field has been added on (CRS750/F). If a user class is specified, users included in the user class can create customer invoices with an invoice date before the last invoice date. The last invoice date displayed on (CRS750/F) will not be updated in this scenario. Removing the user class from the 'User class' field in (CRS750) is highly recommended once the intentional backdated invoicing is done. Otherwise, there is a risk of the customer invoice date control being overriden unintentionally since warning messages cannot be displayed in all invoicing functions. User classes are maintained in 'User Class. Open' (MNS415).
If invoicing is done on a faulty invoice date, you can reset the last invoice date in (CRS750) using correction ID CR02 in 'Program Problem. Solve' (CRS418). Since this allows the user to select any date, it risks breaking the date chronology and must therefore be used with great caution and only for severe errors.