Feature - Add Selection Criteria to Print Duplicate Invoice Screen

Release date: 4/9/2016

In the past, when a user chose COP -> Processing -> Print Duplicate Invoice, the user could only print one invoice at a time by specifying the invoice number. This function allows the user to print a duplicate invoice copy based on the invoice history database.  There have been a lot of requests to expand the selection parameters for this function.

Therefore, the Print Duplicate Invoice selection parameters have been significantly improved.  The new selection criteria include Invoice number, Customer number, Order number, Invoice date, Salesman, Ship Via code, Terms Code, Location, Order type, and Customer type.  See sample screen below:



This change is not applicable to users who use Design Your Own (DYO) Invoice.

If you use standard Elliott invoice printing function, the followings are scenarios for using each selection criteria:
  • Invoice Number Range: This is the common selection to print one invoice or a range of invoices. If All is selected, the starting invoice number = 0, ending invoice number = 999999
  • Customer Number Range: Print a range of invoices for a certain customer. If All is selected, the starting customer number = low-values, ending customer number = high-values
  • Order Number Range: Print a range of invoices for certain order (to show all the shipment history of one order), or a range of orders because the web orders and regular Elliott orders had a different range. If All is selected, the starting order number = 0, and the ending order number = 999999
  • Invoice Date Range: Print all invoices from prior date. If All is selected, the starting invoice date = 0 and the ending invoice date = 99999999.
  • Salesman Range: Print all invoices for a salesman for him/her to review. If All is selected, the starting salesman = low-values, the ending salesman = high values.
  • Ship Via Range: Special handle for certain type of ship via, like drop ship. If all is selected, the starting ship via = low values, and the ending ship via code = high values.
  • Terms Code Range: Special handling for certain types of terms code, like ACH or credit card...etc. If all is selected, the starting terms code = low value, and the ending terms code = high value.
  • Location Range: Say you have a service location, and you wish to print all the invoices for that location. If All is selected, then the starting location = low-values, and the ending location = high-values.
  • Order Type To Print: You can use this to say, only print a credit memo, or exclude a credit memo. The possible selection are I (invoices, which includes both O and I types of orders), C (credit memo) or A (All). Default value is "A" for all.
Because the invoice history is a big database, we don't want users to choose "All" for all parameters, which means all invoices will be printed and it will take a long time to print. Therefore, when the user performs the selection in this screen, the user must specify at least one specific range for the four ranges:
    Invoice Number Range
    Customer Number Range
    Order Number Range
    Invoice Date Range
This will result in the usage of one of the following four keys in the invoice header table for performance consideration:
    Key 0 - Invoice-Number
    Key 1 - Customer-Number + Invoice-Number
    Key 2 - Order-Number
    Key 3 - Invoice-Date

How Printing Sequence Is Determined by the Index Being Used
The following is the logic behind which index will be used:
If (1) Starting-Invoice-Number = Ending-Invoice-Number (one invoice is selected)
    We will use Key 0
Else if (2) Starting Customer Number = Ending Customer Number
  We will use Key 1
Else if (3) Starting Order Number = Ending Order Number
  We will use Key 2
Else if (4) Starting Invoice Date = Ending Invoice Date
  We will use Key 3
Else if (5) Invoice Range <> All
  We will use Key 0
Else if (6) Customer Range <> All
  We will use Key 1
Else if (7) Order Number Range <> All
  We will use Key 2
Else if (8) Invoice Date Range <> All
  We will use Key 3
Else if (9) all above condition does not match
  We will use Key 0 - This condition should not happen, since our user interface will prevent the "All" for the first 4 range selections.
  • If Key 0 is used, then the invoice is printed by invoice number range.
  • If Key 1 is used, then it is printed by customer number + invoice number sequence.
  • If Key 2 is used, then it is printed by the order number sequence, within the same order (multitple shipments per order due to back order), it is likely printed by invoice number sequence, but no guarantee.
  • If Key 3 is used, then it is printed by the invoice date sequence, withing the same date, it is likely to print by order number sequence, but no guarantee.
Modified programs: CP03S2.WS, CP1725S, CP03S2, XCP03S2, CP0000, CPINVPRT, CP0100, CP0300, CP0400, CPONEINV, CPPICDTL, CPQUOSCN, CPRESORD, CPSBMENU, CPSHPVER, CP1713

DLM

Feedback and Knowledge Base