Tutorial 37 - Check Writing
|During this Tutorial, you will:|
|set up the AP Procedure that is triggered by Check Writing (select the Tools > Check Writing... menu item in the Accounting Data Entry function);|
|generate seven sets of check transactions, in two stages, using the Accounts Payable obligations set up as part of Tutorial 27 and Tutorial 36;|
|configure a Print Template (Check Form) based upon an imaginary pre-printed check form;|
|configure two Report Procedures - Check and CheckStub (using the CheckStub Procedure as an encapsulated Function of the main Check Procedure);|
|Test the Check Procedure and print the seven Checks to reflect the seven sets of generated check transactions.|
|As part of these exercises, you will learn how to generate Accounts Payable Checks, and their related accounting transactions, for Invoices that are paid in full or partially/instalments, with or without Discount provisions as well as calculating Discounts on partial payments.
Database Retrieval Inspector settings and other explanations, specific to a Procedure, are included in the Procedure image.
Exercise 37 - 1, Configure a Check Writing Procedure
In configuring Check Writing Procedure, you will use Special Local Resources from the Palette e.g. ORIGINAL_AMOUNT and PAYMENT_AMOUNT. The images shown below show you what data these resources refer to:
|1.||Launch the Transaction Procedures editor and select AP - Check writing from the Open Procedure panel.|
|2.||Configure the Procedure shown below:|
This Procedure is executed when selecting Vendor Invoices to be paid in the Check Writing window as well as when the actual transactions are being generated by clicking either on the Pay selected or Pay all buttons in the Check Writing window.
|When defining the Transaction type of a Make TX object as either Payment or Discount, you are specifying which of the two accounts, defined in the Chart's GL Account Inspector view, is to be used as the offset account (i.e. Bank and Discount - see the GL Account Inspector image included in the explanation above).|
|Exercise 37 - 2, Generate six sets of Check Transactions|
Check Writing is broken down into two distinct stages, after the liabilities are recorded:
|generating the transactions i.e. debit Accounts Payable and credit Bank plus, if applicable, debit Accounts Payable and credit Discount Earned;|
|printing the actual Checks.|
|This segregation into two stages has a number of benefits e.g. checks can be reprinted if lost in the mail or messed up during or after printing. Security issues, e.g. concerns about issuing and cashing a single check entitlement twice, are easily addressed in STEP FORWARD but will not be dealt with in this Tutorial.|
|1.||Launch the Accounting Data Entry function and select the Tools
- Check writing menu item.|
This will display the Select Open Items panel:
|2.||The default Trade Search is shown (Trade is the name of the database table in which the Subledger Vendor records (account 1-308) are located) . Simply specify the Due Date (up to and including) to be considered in the search and press the Select button.|
|This will cause the Check Writing window to be displayed with a list of all the Vendors who have unpaid invoices that fit into the Due Date range.|
|Select a Vendor from the Trade area (e.g. #12 Green Acres) which will display all unpaid Groups (the Group reference is the match field which you declared in the GL Account Inspector in Tutorial 20, Exercise 20-1, i.e. you specified the Reference # field as the match field). Each displayed group is shown with the Selection switch checked (the default). If you want to exclude a Group from payment, uncheck the Selection switch as shown above. For the purposes of this Exercise (to match the Tutorial database), include all three Groups of Vendor #12 in the payment selection.
You can also make a partial payment against a given Group by changing the suggested Pay amount as shown in the example below. Vendor #14 also offers a 2% Discount if paid within the Discount eligibility period. The Check Writing Procedure which you created as part of Exercise 37-1 provided for the calculation of Discount of partial payments made within the Discount eligibility period; therefore, the payment of $1,000.00 should result in a debt reduction of $1,020.41 (i.e. $1,000.00 = 100% - 2% or 98%) because the payment being made is after the Discount is deducted.
|3.||For the purpose of this Exercise the Payment Date should be January 31, 1999, set the Pay amount to $1,000.00 and (the Grand total will show $3,597,052.23 the total amount of the proposed Payment (Bank) transactions) click on the Pay all button.|
|Dismiss the Check Writing window and inspect the generated transactions in the Accounting Data Entry window:|
|The Source Document name CGC was inherited from the instructions set in the GL Account Inspector of the Chart editor. Select Document that is 4th from the top and view the generated transactions and compare them to the specifications made in the Check Writing window: it did process both a Payment of $1,000.00 and a Discount of $20.41 for a total debt reduction of $1,020.41 (being the sum total of the transactions generated as debits against account group 1-308-14).|
|Exercise 37 - 3, Generate another set of Check Transactions|
This Exercise is carried out to show you that you can make multiple partial payments against an outstanding obligation.
|1.||Select the Tools - Check writing menu item and specify a Due Date of February 4, 1999 in the Select Open Items panel. The Check Writing window will list only one Vendor:|
|2.||Select the Trade account (Vendor 14) to display the Unpaid Groups. Select the Group 8967 to display the Open items for 8967.|
|You will note that the Amount of 1,455.19 is the residual of the original obligation of 2,475.60 after Check 5 in the amount of $1,000.00 plus Discount of $20.41 were applied. (The column display of this Open items area matches that of the Open Items window and is set with Preferences.)|
|Set the Payment Date to February 5, 1999 (since this is beyond the Due Date, no further Discount eligibility exists) and set the Payment amount to 1,200.00. Click on the Pay selected button.|
|3.||Dismiss the Check Writing window and select the newly created CGC document
in the Accounting Data Entry window.|
Select the Document line with GL 308.
Select the Tools > Open items... from the menu to display the Open Items window for GL Account 1 308, Subledger 14.
|The Match Group 8967 has now got a balance of -255.19. Click on this line and display the Open Items detail that will show how the amount was arrived at.|
|Exercise 37 - 4, Configure the Print Template CheckForm|
The Print Template editor allows you to configure and report layout and print it to plain paper or pre-printed form. Our example is based on an actual pre-printed check form which is approximately 18.5 cm x 16.5 cm (7.5" x 6.5") divided in half with the Check on top and the Stub at the bottom.
|1.||Launch the Print Template editor and start with a New (Untitled) Workspace.
Lay out the Workspace as per this example and settings:|
Format > Page Layout: Page Size: Width = 7.25; Height = 6.25; all four Margins = 0.25
Format > Grid Inspector - Grid spacing: H = 5; V =12
Template - Printing = Always start on the new page
Segment - Header = Print when template starts (Insert 3 Blank lines before printing the fields)
Segment = Body = default
Segment - Footer = Print when template ends
Money field settings:
|Amount 1 Money field||All other Money fields|
|In addition Money fields Am2 and Am3 have the If zero value, show as blank space switch set to checked.|
|2.||Save: Name = CheckForm; Description = Check - Stub on bottom.|
|Exercise 37 - 5, Configure the Report Procedure CheckStub|
The Procedure's Inspector Legend view shows a combination of In and Out Parameters. The CheckStub Report Procedure will be incorporated into the Check Report Procedure as an encapsulated Function and receive data (consisting of Date, Ref#, and Amounts Am1-Am5, as applicable) to be printed on the stub of the CheckForm (one print line with each pass).
Please note that the Selectable as a Report switch is set to unchecked.
The Condition objects in the Procedure check the Record type of each record being retrieved from the Open Item Table for the specified Open Item Group. There are three Record types that are associated with Check Writing; they are identified in the Open Item table with a single character:
|Regular (' ') shown as a single blank space, being a Primary or Secondary Transaction that was not entered as a generated transaction using the Make TX object in the Check Writing Procedure.|
|Once the Record type is determined the Amount is directed to the applicable column-specific accumulator. The Calculation is made in such a manner as to sum up the amounts in the event that more than one of the same Record types are encountered during the analysis of a unique Open Item Group. The Date and Ref# are based on the last (or only) Regular Record type transaction for the Group.
The various data values are stored in the designated Parameter fields and passed to the Check Report Procedure, when no more rows are found in the Open Item table for the specified Group.
|Exercise 37 - 6, Configure the Report Procedure Check|
This Procedure assumes that once sets of Check transactions are processed with Check # assigned to them, Checks will be printed according to the Check #. The Search criteria of the 1st Retrieval (from the TXDetail table) defines the Check # Parameter to be subject to a Search Key i.e. the Comparison Operators are forming part of the Parameter specification and allow the Check # to be specified according to these options:
|In Exercises 37-2 and 37-3 you generated seven sets of Check accounting transactions e.g. the offsetting account for the Payment was 1-104. This Procedure takes this fact as its starting point. Based upon the Parameter specification, retrieve (#1) the Get field data as it relates to the Bank (Account 1-104) from the TXDetail table and follow the Procedure cycle for all Open Item Groups impacted by that Check #:|
|retrieve (#2) the Subledger number from the Accounts Payable (Account 1-308) Document line based upon the TX number retrieved (#1);|
|retrieve (#3) the Payee information as based on the Subledger number retrieved (#2);|
|define the address fields to the USA and other patterns (Zip code after the State or as a separate line);|
|retrieve (#4) all Open Item Match Group numbers that were included in whole or in part in the Check issuance and proceed to execute the remaining instructions with the first Group number;|
|prime up and set all Stub Money fields to zero (0.00);|
|execute the CheckStub Function with Parameters In/Out and obtain the data for the first CheckStub line;|
|execute the Print object (on the first encounter print the Header and the first CheckStub line;|
|calculate/increment the Check's final total (Money fields Am4T);|
|execute the instructions for the next Group number, if any, until no more rows found;|
|when no more rows are found, terminate (Stop) the CheckForm Print template which will cause the CheckForm's footer to be printed.|
|Reset the Check Amount fields (Amount1 and Amount2) to zero and process/print the Check for the next Check #. If no more rows are found, the Report Procedure terminates.
Exercise 37 - 7, Test the Report Procedure Check
This will have generated the Checks for seven Checks. Check Number 7 shown above in the amount of $1,200.00 and dated February 5, 1999 is the Check transaction created as part of Exercise 37-3.
The template and procedure design call for the inclusion of any Prior Check(s) data. As a result, the Check Stub shown above shows the original Invoice amount of $2,475.60, the Discount of 20.41 and the Payment of $1,000 (Check Number 5), the current Check payment of $1,000.00, which results in a residual Balance owing of $255.19 for Match Group 8967.
|Tutorial 38 - Creating an Aged Analysis of Accounts|