AP Bill Payer Functional Design and Specification Page i AP Bill Bayer Functional Design Document Version: Date: 29 July 2017 Prepared By: For: Error! Reference source not found. Mary McKeel Internal development (Product) © 2017 ASA Tire Systems 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design and Specification Page ii Revision History Title : Functional Design Project: Accounts Payable Document : AP Print Checks Functional Design and Specifications.docx Version : Error! Reference source not found. Date : 29 July 2017 Changes : Change History : Version Date By Summary 1.0 1.1 09/02/2014 09/23/2014 M McKeel M. McKeel First Draft Added Void/Reprint 1.2 09/26/2014 M McKeel 1.3 10/22/14 M McKeel Change to print one batch at a time with connection to g-bank for a company Added detail to Alignment check 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design and Specification Page iii Table of Contents 1 Introduction ..............................................................................................................5 1.1 Scope ............................................................................................................5 1.2 Security / Roles ............................................................................................5 1.3 Glossary .......................................................................................................5 1.4 References ....................................................................................................5 1.4.1 AP Data Structure Functional Design - BZ 2368 ............................5 1.5 Application Definitions ................................................................................5 1.5.1 Table “application” ..........................................................................5 1.5.2 descriptionUid ..................................................................................5 1.5.3 Type .................................................................................................6 1.5.4 accessUrl ..........................................................................................6 1.5.5 primaryEntity ...................................................................................6 1.5.6 allowConcurrent ...............................................................................6 1.5.7 Parking Definition Line 1 ................................................................6 1.5.8 Parking Definition Line 2 ................................................................6 1.5.9 Hover Help .......................................................................................6 1.5.10 Universal and Other Searches ..............................................6 1.5.11 “Complete” Button Definition .............................................6 2 Process Context........................................................................................................6 2.1 Data Flow Diagram ......................................................................................6 2.2 System Description ......................................................................................7 2.2.1 Tiremaster Enterprise (TME) ...........................................................7 2.2.2 Interactions with other external systems ..........................................7 3 Database Tables .......................................................................................................7 3.1 Introduction ..................................................................................................7 3.2 Batch and Transaction Tables ......................................................................7 3.2.1 apBatch – AP check writing batch control ......................................8 3.2.2 apTransCDCheck - actual check record .........................................8 3.2.3 apTransCDInvoice – remittance advice(invoice detail) ..................8 3.3 Forms tables for AP Checks ........................................................................9 3.3.1 formAPCheck – Check summary ....................................................9 3.3.2 formAPRemit – check remittance detail ..........................................9 3.3.3 printJob – printer and form info .......................................................9 3.3.4 payEFTReference – Reference # for electronic transactions ...........9 3.3.5 Changes to existing tables – add Uids .............................................9 3.4 AP Vendor Tables ......................................................................................10 3.4.1 apVendor (revised a-vend).............................................................10 3.4.2 apVendorMisc - AP Miscellaneous Vendor .................................10 3.4.3 apVendorCustNum – Vendor’s customer account list...................10 4 Work Flow .............................................................................................................11 4.1 Use Case 1 – Print Checks .........................................................................11 4.2 Use Case 2 - Send ACH/Credit Card payments........................................11 5 Process Model ........................................................................................................11 5.1 System Transactional Relationships ..........................................................11 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design and Specification 5.1.1 5.1.2 5.1.3 6 Page iv AP Invoice Release ........................................................................12 AP Bill Payer .................................................................................13 AP Bill Payer Update .....................................................................14 Detailed Module Descriptions ...............................................................................15 6.1 System Set up and Assumptions ................................................................15 6.2 General Requirements ................................................................................15 6.3 AP Bill Payer .............................................................................................15 6.3.1 Batch Entry and Review ................................................................15 6.3.2 Initial States On Open of Application ............................................15 6.3.3 Populating the Batch Browse .........................................................16 6.3.4 AP Bill Payer Selection criteria .....................................................17 6.3.5 Payment Type: ...............................................................................18 6.3.6 Select the printer, form to be used, and payment type ...................19 6.3.7 AP Payment Batch Set ...................................................................20 6.3.8 Print Alignment Check .........................23 6.3.9 Print Checks ......................................................23 6.3.10 Complete ............................................................................33 6.3.11 Reset – We will not allow this if we have actually printed checks 33 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design Page-5 1 Introduction Some vendors require an actual check to be printed. These may be pre-printed forms or they could be blank paper where the combination of software and special hardware print the whole check including MICR encoding. The check writing system will use 2 new transaction tables to hold check writing records. This is a temporary table and will be deleted once checks have been printed. 1.1 Scope Although payments can take the form of a check, ACH or Credit Card payment, this document describes the functional design of printing hard copy check forms only. Enhancements for sending outgoing ACH or credit card payments are separate APIs and will be outside of this program. 1.2 Security / Roles The procedure supports 2 basic types of users in increasing order (each includes features of lower level users and all is controlled by password): 1. AP Back Office User - all functionality except some maintenance. 2. Accounts Payable Administrator – allows maintenance to records that should not be touched without a GL entry. 1.3 Glossary Browse – a list view of data, typically with a scroll bar on the right to navigate through the list. Browses can be read-only or updateable. Remittance – Listing of all invoices and credits that make up the individual check. PayClix – a 3rd party on line payment system including an end user UI and the requests/response web service calls that allows data integration for remote payments and ACH transactions. 1.4 References 1.4.1 AP Data Structure Functional Design - BZ 2368 1.5 Application Definitions 1.5.1 Table “application” “Bill Payer” 1.5.2 descriptionUid apPrintChecksUid 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design 1.5.3 Type 1:Runnable with UI Page-6 1.5.4 accessUrl A URL to directly access the application. An application context can be passed as a parameter to recreate uncommitted application state. 1.5.5 primaryEntity apBatch 1.5.6 allowConcurrent FALSE 1.5.7 Parking Definition Line 1 Bill Payer 1.5.8 Parking Definition Line 2 This definition should consist of the batch chosen for printing Table.Field Label Pay Type for Run Starting CHk# Ending Check# 1.5.9 Hover Help No hover help is required in this application 1.5.10 Universal and Other Searches There are no universal searches required for this application 1.5.11 “Complete” Button Definition Today, the “Complete” button will do nothing but close the application. In the future, we may decide to incorporate the Bill Pay Update here. 2 Process Context 2.1 Data Flow Diagram The Bill Payer with a PayClix interface, impacts data flow of the system in the following ways: User can print checks for vendors who must receive hard copies via snail mail User can make payments via PayClix for ACH payments User can make payments by credit card through Merchants or Pay Clix. 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design Page-7 TME User Accounts Payable AP Checks Bank PayClix Web Service Powerflow Positive Pay System Context 2.2 System Description 2.2.1 Tiremaster Enterprise (TME) TME is ASA’s accounting system software that allows the user to select invoices for payment manually. 2.2.2 Interactions with other external systems There are no changes identified for the following external systems: Credit card interface Etirelink EDI interfaces 3 Database Tables 3.1 Introduction The following tables will be updated during the AP Print Check process. 3.2 Batch and Transaction Tables The tables referenced below can be found attached to BZ 2368 – AP Data Structure Functional Design. 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design 3.2.1 apBatch – AP check writing batch control Page-8 This table is used for controlling batch input of AP invoices. Field apBatchUid batchUid Type Character Character Format X(36) X(5) Label Unique ID Batch Loc journalCode invoiceCount Character Integer X(3) 9999999 Journal Invoice Count checkCount Integer 9999999 Check Count APInvoiceTot Dec AP Total discountAmt Dec bankTotal Dec 999,999,999.99 999,999,999.99 999,999,999.99 - Initial Disc taken Check Total Help/Description System Assign Unique ID Batch UID used to group transactions Journal source CDJ” Number of invoices entered/paid Number of Checks Written Total Invoice amt to/From AP Total Discount taken during check writing Total Check amount apBatchUID Description: A unique record id that is used to tie all of the entries for 1 batch together. This will allow reports to be reprinted after posting. batchUID Description: Unique Id of the Batch control journalCode Description: Journal code used when posting to the GL and to identify an entry for invoice entry vs check writing. invoiceCount Description: Number of invoices entered during PJ entry or paid during check writing checkCount Description: Number of “checks” or single payments(ACH) created APInvoiceTotal Description: Total invoice amount CR/DR to AP Control discountAmt Description: Total cash discount taken during check writing bankTotal Description: Total check amount written Index Name Key-uid Key-upd 3.2.2 Area Description Unique id Update key Flags PAUW,Ab PU U Fields to be included apbatchUid batchUid A/D A A apTransCDCheck - actual check record One record per check written. Total Due, Total Discount and checkAmt are the totals of the invoice detail Records are created during the release invoices for payment The records in this table do not get deleted after the update. They remain for history audit until purged. Check numbers are assigned after checks are printed/sent electonically for payment PayType is used to identify the kind of payment. Void check records are added to this table prior to a reprint. The company in this record could be different than the companies in the detail 3.2.3 apTransCDInvoice – remittance advice(invoice detail) One record per invoice on the remittance advice The records in this table do not get deleted after the update. They remain for history audit until purged. 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design Page-9 The number of records in this table dictate whether a separate remittance advice is needed. These records could be mixed companies 3.3 Forms tables for AP Checks The data to be printed on the check is contained in the forms tables so the program rendering the print data (BIRT) does not have to look up data in other tables. Checks are represented in the database by 2 tables; 1)a check table that holds the information about the check and/or payment if credit card or ACH 2) the remittance advice which is the invoice detail paid by this check. A special printJob table has been created to pass the form and printer ids to BIRT. 3.3.1 formAPCheck – Check summary Records are added to this table when the “Print Check” button is selected One record per check number Data fully populated 3.3.2 formAPRemit – check remittance detail Records are added to this table when the “Print Check” button is selected. One record per invoice on the remittance, multiple records per check May be counted to determine if a separate remittance advice is needed 3.3.3 printJob – printer and form info A record is added to this table when the “Print Check” button is selected One record per print job sent to BIRT 3.3.4 payEFTReference – Reference # for electronic transactions When making an ACH or credit card payment, a transaction id must be sent along with the payment. This id will be used by both the sending and receiving parties to trace a transaction if necessary. The id must be system wide meaning one set of numbers for a database instance. Even if the system has multiple companies and locations we need a unique number for traceability. Normally a db sequence number could be used for this. However, since we are trying to be database independent, a regular table for this purpose will be used. This reference will be used like a “check Number” in that it will be assigned to the transactions during the “PrintCheck” routine and updated by one automatically each time a number is used. 3.3.5 Changes to existing tables – add Uids 3.3.5.1 S-form This table contains the form definitions that will tell BIRT which form to use for the print check format. sformUid has been added to this table. This is a Tirepro table and will be used as is for now. 3.3.5.2 S-printer This table contains the printer definitions for all printers on the networks. It will be passed to BIRT for printing directly to the printer without stopping for user intervention. sprinterUid has been added to this table. This is a Tirepro table and will be used as is for now. 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design 3.3.5.3 Password Page-10 There are no changes to the password table. The default form# and printer designation are in the password table. The field for the AP Check printer default is password.printer[6]. The field for the AP Check form is password.form#[6]. This default will be moved to the paymentType table in Phase 2 when the final printing methodology is complete. 3.4 AP Vendor Tables The system uses standard and miscellaneous vendors. All Universal Vendor search components will need to search both types. Additionally, there is now an affordance to create a parent/child relationship between a vendor and a customer. This information will be used to populate the form* tables. The tables referenced below can be found attached to BZ 2368 – AP Data Structure Functional Design. 3.4.1 apVendor (revised a-vend) This table holds all of the necessary information for a regular vendor. The table referenced can be found attached to BZ 2368 – AP Data Structure Functional Design 3.4.2 apVendorMisc - AP Miscellaneous Vendor A new table is added for miscellaneous vendors. A flag has been added to the invoice and check records to tell the system it is a miscellaneous vendor’s invoice/check. 95% of the time, there is only 1 invoice in the system for a miscellaneous vendor. Retreader’s casing purchases do use the same misc vendor more often. Maybe 10 – 20 % of the time. A name search –for miscellaneous vendors - will use the new table and will display in the AP Invoice Release and Vendor Account Inquiry. We will be able to reuse the name in case the misc vendor isn’t exactly as miscellaneous as it should be. . This is different than how Tirepro views a miscellaneous vendor. All other vendor information will come from the regular apVendor record attached to this table via the VendorNum field. That includes the 1099 box id default. A new password “AllowMiscVendors” yes/no will be added. If FALSE, a user will not be allowed to enter a miscellaneous vendor during AP Invoice Release. The table referenced can be found attached to BZ 2368 – AP Data Structure Functional Design. 3.4.3 apVendorCustNum – Vendor’s customer account list This table will hold the customer numbers with the vendor account. Many vendors have separate accounts for each location. This table will allow us to have 1 vendor record with multiple customer numbers. At least 1 record for each vendor will be created. 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design Page-11 4 Work Flow 4.1 Use Case 1 – Print Checks A list of batches that have release invoices is displayed. The user can select one or more batches for check printing. The pay types must be printed one at a time because different banks could have different check formats. This means different paper in the printer. This could mean selecting a batch more than once for printing. 4.2 Use Case 2 - Send ACH/Credit Card payments Sending the actual ACH payment or credit card payment will be done through a third party vendor. It will be added to this spec in a later pahse. 5 Process Model 5.1 System Transactional Relationships The following is a representation of the entire Bill Pay process from release invoices for payment, printing checks, sending ACH payments and updating the information into permanent tables. 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design 5.1.1 AP Invoice Release Page-12 Batch apBatch batchLoc batchid batchDate batchUid apBatchUid apinvoice isRelease = Yes apTransCDInvoice apTransCDCheckUid Location invoiceNum futureCode As invoices are selected for payment from apInvoice, apTransCDInvoice detail is created. At the same time, apTransCDCheck is created and updated. This record contains the total payment to be made to the vendor. The invoices may cross company boundaries making intercompany accounting mandatory. Checks are printed and or electronic payments are made from the apTransCDCheck record. apTransCDCheck (summary of released invoices) batchLoc batchid batchDate 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design 5.1.2 AP Bill Payer Page-13 Batch apBatch batchLoc batchid batchDate batchUid apBatchUid apTransCDCheck (summary of released invoices) apBatchUid apTransCDInvoice apTransCDCheckUid Location invoiceNum futureCode formAPCheck (copy of apTransCd ) printJobUid fromAPRemit formAPCheckUid Location invoiceNum futureCode PRINT Checks Assign check #s E Ref #s If Print printJob printjobUid batchUid, printUid formUid EXIT REPRINT OK Done Print Checks Get next PayType Printed Checks Yes Reprint and VOID? No 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design 5.1.3 AP Bill Payer Update Batch apBatch batchLoc batchid batchDate bztchUid apBatchUid Page-14 apTransCDInvoice apTransInvHeadUId apTransCDCheck apBatchUid apTransCdGL** apTransCdGLUId Intercompany Process Disc and AP Control apCheck batch loc,id,date vendorNum checkNum Company paymentType .vendorNum NE “” Yes apPurchases No To Bank apCheckInvoice apCheckUid Company Location invoiceNum futureCode apInvoice apInvoiceGlDist if paid by another vendor. Include getInterCoEntry vendorNum GL Period Disc Taken Payments Checkcount (if real check) g-prepst vendorNum Location invoiceNum batchloc batchid batchdate If new apInvoice update Purchases and InvoiceCount apInvoice AP Control entries are made based on the invoice location. Possible multiple Intercompany entries are made if the bank is in a different location than the invoices being paid. **apTransCdGL is not part of this phase. It was to hold write offs made during the release invoices for payment. 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design Page-15 6 Detailed Module Descriptions 6.1 System Set up and Assumptions ATTRIBUTE SETTINGS: TABLE SETTINGS: Password Setting Location Settings Third Party Info Other Table Settings (inventory, customer, etc) OTHER SET UPS: Menu definitions Report Meta Data 6.2 General Requirements 6.3 Ability to quickly select vendors for check printing Ability to reprint checks for any reason. Ability to Void Checks that need to be reprinted. Only checks that were actually destroyed or printed in error are voided. This application is password controlled – meaning a user can either do the function or not. Ability to see the Check List in Summary after the checks are printed. Ability to print and reprint as many time as needed. “Complete” will finish the process. Ability to Park a partially completed entry. Ability to Send to another User. Ability to Email to another User. AP Bill Payer 6.3.1 Batch Entry and Review There is no batch entry or review for this process. All apTrandCd* records will be available whether printed or not. 6.3.2 Initial States On Open of Application When the application is first opened, the main application area will display the Batch Browse based on the users password/locations allowed. 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design Page-16 There is no “batch” that controls this application. It is looking at many batches already in existence in order to make payments/print checks. At this point, the user selects a batch for printing. The print will be done for one batch at a time. The user needs to choose between Print Checks or Electronic Funds Transfer (EFT). If EFT, no other filter criteria is needed except for the Pay Type. The Filter Criteria is to be moved to the left of the main window where all other criteria is. It is additional info used for selecting the checks to be printed once the batch(s) is selected: Select the Pay Type to be printed. It should default to blank. – Mandatory Entry Select the printer and the check form to be printed Toggle negative checks on/off. Off is the default Enter the starting/ending check numbers - Mandatory Enter the check date (default to TODAY”) Select the sort option If this is a rerun, enter the “Starting/ending check numbers. Once the Apply Filter is selected, the user may deselect/select the Payment records to be taken into consideration for check printing. The user can click on the batch to see all of the “checks” that are to be considered for the pay type. . The user can click on a vendor to see the invoices that are being paid but cannot change or select/deselect the invoice records. The Print Alignment Check and Print Checks button will be used to print the actual checks on a form. The “Print Check” Button will also be used to assign EFT Reference ids to payments and designate them as electronic payments. This will tell the update process they are ready to go. Can we change the name of this button to “EFT Reference” if the PaymentType.isCheck <> TRUE? UNDO, Reset and Complete are disabled. 6.3.3 Populating the Batch Browse TABLE batch batch batch batch apBatch Join Criteria batchModule = “AP” moduleProcess = “Release Invoices” batchLoc = [user allowed locs] userLoginID = [current user or ALL if password allows] Operator Comment AND AND AND AND batchUid = batch.batchUid Most of the time the user who released the checks will be the one who prints the checks and they will only want to see their batches. However, some companies only have 1 person who is allowed to actually print the checks so the userLoginId is critical for this. 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design Page-17 Table.Field Type Format Label batch.batchloc batch.batchID batch.batchDate batch.userLoginId Toggle Character character Date char ON/OFF x(5) x(8) mm/dd/yyyy x(15) Select Batch Loc Batch ID Batch date User Id. apBatch.invoiceCount apBatch.apInvioceTot apBatch.discountAmt apBatch.bankTotal integer decimal decimal decimal 9,999,999 999,999,999.99999,999,999.99999,999,999.99- # Invoices Total Amount Total Discount Payment 6.3.4 Description Shows the batch has this pay type in it and is selected for printing Location from master Batch BatchID from master batch Batch Date from Master Batch identifies whose batch it is Total # of invoices being paid in the batch Total Gross invoice amount in batch Total discount taken in batch Total Amount of Payments AP Bill Payer Selection criteria The user must select one of the following options. EFT will be completed in a later Phase. It will be used for ACH and Credit card payments. 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design Page-18 Print Checks Electronic Funds Transaction (EFT) (option will be added later. It requires no other filter) 6.3.5 Payment Type: Select the payment type that is to be compared to the data for selecting records. Once the Pay Type has been selected, apbatches and their apTransCDCheck records will be automatically selected where that PayType is included. We can only print one pay type at a time because different banks and bank accounts may require different check form stock. The user may need to run this procedure several times to get all of the checks printed. For example, they would select a payment type, enter the filter criteria, Choose Print Checks. When check printing is done, reload the printer with different check forms, select the Pay Type, enter the filter criteria, Choose print Checks. They may need to change the Printer and/or form# in between as well – but probably not in most cases. Once they have printed all of the checks, they would choose complete and the system will update the apTransCDCheck with the proper check numbers. If reruns were done, the void checks would already be in that table. Display payment types in this combo. TABLE batch location file-assoc Operator Join Criteria batch.batchUid = apBatch.batchUid location.loc = batch.batchloc file-assoc.a-assoc = location.co AND g-bank gb-co = file-assoc.a-assoc gb-bank = paymentType.gb-bank paymentType paymentType gb-bank is in the list of g-banks available to the batch’s company PayModule = “APP” The user selected “Print Checks” isCheck = TRUE The user selected “EFT” isCheck = FALSE isACH or isCredit or isDebit = TRUE Comment Get a list of all g-banks available for this batch locations company AND AND AND OR AND AND AP payment types only Checks only Show all electronic pay types Populate the combo with the following data. Fixed length columns would make it easier for the user to find the correct selection Table paymentType paymentType paymentType 7/29/2017 Field PayType gb-bank Descr Format x(8) x(2) x(20) Comment Payment Type Bank ID – FYI only Description TME Version 1.0 AP Bill Payer Functional Design If an EFT Pay Type was chosen, skip to section 6.3.7 Page-19 6.3.6 Select the printer, form to be used, and payment type Without seeing what Gikas and Dmitry are working on for printer and forms selection, this part of the spec is pure TME. We need the exact same functionality in G4. It does not have to look the same. The printer and form definitions do not have to be the same. But, bottom line when the user needs to print anything in the system, it should follow the exact same functionality as described below. Printer Name: Select the printer. The printers that are available to the user are in password.allprt. The combo box should be populated with that list only. If that list is blank, the combo is populated with all printers in sprinter where s-printer.sp-name does not begin with a “!”. The “!” records are used for creating new printer records only using the copy function in the Tirepro maintenance. They are never used for actual printing. The default for printing AP Checks is found in password.printer[6]. If for some reason the default printer is not in the password.allprint list, it must be added to the printer selections in the combo box. It will be selected by default. Form Number: Select the form to be used. There could be many different AP Check forms in the system. Today, we don’t list just the application’s forms. We list all forms in the combo box that are in the table s-form. Our new forms design must include the application module where the form should be listed so the combo list does not include superfluous forms for the app. The current s-form table contains information that is now controlled by BIRT. However, there is a Print Program name (s-form.sf-printprg), an XSL Template path and name (s-form.sf-template), a Crystal Reports template (s-form.sf-crystaltemplate) and the number of copies to print (s-from.sf-copies). All/any of these fields could be used to point to the [form].rptdesign that Marianne is building for the checks. We can still display the form# and description in the window. She is using the form# in her from design name. For example: formCheck215.rptdesign and formRemit215.rptDesign are both BIRT layouts used in forms printing. They will be mentioned in the spec below. The user, for example, just needs to be able to pick 215 OR AP Standard Check- 1 stub, 315 OR AP Standard Check-2 stubs, 415 OR ABC Tire Custom Check. By selecting the correct form option the software needs to be smart enough to pass enough information to BIRT so it knows which *.rptdesign to use. The data will always be the same. The form design will use what it needs out of it. The default form for printing AP Checks is found in password.form#[6]. This will be moved to the paymentType table once the final printing methodology is determined. Meanwhile we will use the existing method of find the default form. If it is not in the s-form table, an error should be displayed that the form does not exist in the system and force the user to change it to a proper form. This will only happen when we initially set up the system. It will not be a common error. All AP Check forms should be listed in the combo box with the default form# highlighted and selected. 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design 6.3.6.1 Print Checks Filter Criteria Page-20 The check print program will create records in the formAP* table to be used by BIRT for printing. This takes all of the business logic out of the report rendering tool and puts it in the calling program. Every check print or reprint follows the chart below showing the fields on the Filter Criteria. The filter criteria will be used for creating the formAP* records to be printed as well as how the checks should be sorted, printed, reprinted or voided. Filter Id Sort By: Print $0 or Negative Checks? Table.Field or Description Vendor Number o Vendor Name Toggle Box Beginning Check # g-bank.gb-chk# Label 1 2 3 Type Format Radio logical yes/no integer >>>>>9 integer date >>>>>9 99/99/99 4 5 Ending Check # Date of Checks Description The checks will print in this order Default to toggle off This will be from the bank id in the select pay type. Ending number cannot be more than the beginning Check date default to TODAY The main application area will not become active until the user has hit Apply Filter. If there are no released invoices for a vendor with Pay Types = to the applied filter criteria, the user will get a message: “There are no Pay Types for your search. Please try again.” These selections can be run many times before “Complete” is chosen. 6.3.7 AP Payment Batch Set Clicking on the “Apply Filter” button will automatically select the Payment records for the batch chosen in the “Batch Browse” that have paytypes matching the payType selected. It will activate all rows in the Batch Browse so they can be queried but the system will not allow the user to deselect the batch chosen at the beginning. It will also look at the “print $0 or Negative toggle”. Select those payments and their detail as follows: TABLE/origin Selection Criteria Operator AND apTrandCdCheck.PayType Filter ID = 2 apTrandCdCheck.checkamt payType = PayType selected in combo Print $0/Negative = TRUE <= 0 7/29/2017 TME AND OR Comment Just select chosen pay types If toggle is on select $0 or negative checks Version 1.0 AP Bill Payer Functional Design Page-21 Filter ID = 2 Print $0/Negative = FALSE apTrandCdCheck.checkamt >0 AND If any records in your batch apTransCdCheck.checkNum have checkNum = “”. IF toggle off Select positive value checks only Only show batches where there are checks to be printed or sent Select the apBatch and the apTransCdCheck for printing when the records meet the above criteria. Show the apBatch as selected in the Browse. Batch Browse 6.3.7.1 Populating the Payment Browse When the user clicks on a row in the Batch browse, populate and display the “Check” Browse. Payment Browse Get all apTransCdCheck records in the batch including other payTypes. Show the ones with matching PayTypes as selected. A toggle option “Include Printed Checks?” for seeing/not seeing Printed/ EFT Ref assigned should be available. Include Printed/EFT Assigned? (Default this to off) TABLE apBatch apTransCdCheck Join Criteria apBatch.apBatchUid Operator AND AND Include paid toggle = OFF aptransCdCheck.checkNum = “” Include paid toggle = ON aptransCdCheck.checkNum <> “” OR AND Comment User select the apBatch get all of the Check records for the batch Show non printed or sent payments only Show all records Field definitions for the “Payment Browse” Table.Field 7/29/2017 Type Format TME Label Description Version 1.0 AP Bill Payer Functional Design Page-22 Select Toggle ON/OFF Select batch.batchid apTransCdCheck.PayType char char x(8) x(8) Batch ID Pay Type apTransCdCheck.checkNum apTransCdCheck.vendorNum OR apVendorMisc.vendorNum apVendor.vendorName OR apVendorMisc.vendorName char x(12) Check/Ref# char x(10) Vendor# char x(20) Vendor Name apVendor.payee_name car x(15) Payee Name Shows the vendor’s “Check” that has the pay type in it and is selected for printing It is possible that more than one batch has been selected. We need to see the batch id of the check displayed. Browses shows all This will be used to display the EFT reference as well. It should be large enough to handle that once we decide what it will be. If this field is not blank, the payment was printed/sent successfully apTrandCdCheck.totalDue decimal apTrandCdCheck.totalDiscount decimal apTrandCdCheck.checkAmt decimal 999,999,999.99- Amount Due 999,999,999.99- Discount Amount 999,999,999.99- Payment Amount CALCULATED integer 9,999,999 apTrandCdCheck.comment character x(70) Invoices Payment Notes Cut off to make room May be blank- cut off to make room Total Gross invoice amount for the check Total discount taken for the check Total check amount Number of invoices this check is paying Can Wrap if we need room. If apTransCdCheck.checkType = “V”, display “VOID” It is possible that a pay type must be changed. Allow the user to change the pay type in the Payment browse. They can change a non selected payment’s pay type to be equal to the one selected at the beginning. By doing this, it will select the payment for printing. They can also change one that has been selected for printing to another pay type. In this case the payment would be deselected for printing. They can deselect any payment they do not wish to print. This will not change how the records are updated. It will only remove it from printing in this session. Do not let the user change anything if the checknum <> “”. This means it has been thru the printing/ or assigned an electronic reference. 6.3.7.2 Populating the Remit Browse If the user wants to see the invoices that the check will be paying, they can do that by clicking on a line in the Payment browse. Nothing can be changed or selected in this browse. It is for information only. TABLE Join Criteria apTransCdCheck 7/29/2017 Operator Comment User selects the check TME Version 1.0 AP Bill Payer Functional Design aptransCdInvoice apInvoice Page-23 apTrandCdCheckUid = apTransCdCheck. apTrandCdCheckUid apInvoiceUid = apTransCdInvoice.apInvoiceUid List all invoice details for the check To get vendor cust num Field definitions for the “Remit Browse” Table.Field Type Format Label apInvoice.VendorCustNum apTransCdInvoice.Location apTransCdInvoice.invoiceNum apTransCdInvoice.futureCode apTransCdInvoice.invoiceDate apInvoice.discountDate apTransCdInvoice.amountDue apTransCdInvoice.discountAmt apTransCdInvoice.writeOffAmt apTransCdInvoice.payAmount apTransCdInvoice.comment Char char char char Date Date Dec Dec Dec Dec char x(10) x(5) x(16) x(2) MM/DD/YYYY MM/DD/YYYY 999,999,999.99999,999,999.99999,999,999.99999,999,999.99x(70) Acct# Location Invoice# Future code Invoice Date Discount Date Amount Due Discount Amount Write Off Payment Amount Invoice Comment 6.3.8 Description Our account number with the vendor for the invoice Invoice Location Invoice Number Blank if not future invoice Total Invoice amount due Invoice Discount Invoice Write off amount Total payment on the invoice may wrap if needed Print Alignment Check This option is used to make sure the forms are aligned in the printer correctly. The system has to keep track of the check# used for alignment printing. All of the values to be printed are hard coded in BIRT with the exception of the check#. We need to make one call to the printer, with the next check# each time the “Print Alignment Check” button is chosen. This option does not print the “real” checks that have been selected for printing. It prints one void check each time the “Print Alignment Check” button is clicked.. An “alignment” parameter needs to be sent to BIRT when we make the call to the print routine. Each time an alignment check is printed, a VOID check record is added to the formAPCheck table where printstatus = “VOID” with the check# used for the alignment check. There is no need to create formAPRemit. Each time an alignment check is printed, the next check # is updated by 1, the one printed is voided. Most check paper is not completely blank paper. There is usually a control number of some kind on a special kind of paper that makes erasing and changing number manually impossible. They need to keep track of those control numbers too. This option will be disabled if EFT. 6.3.9 Print Checks This option is used to print all of the checks that have been selected for printing. First we need to build the data to be printed, then pass the printer id and form # to the printing routine. If EFT has been cosen, change the name of the button to “EFT Reference #s. 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design 6.3.9.1 Build the data to be printed Page-24 Create the print job record to pass to the logic BIRT will need to print the checks Table = PrintJob – Ties the check data to a batch, printer, and form Field printJobUid batchUid printUid formUid Data Map System assigned to this record batch.batchUid s-printer.printUid s-form.formUid Label Unique Id Batch ID Printer ID Form Uid Description System assigned unique ID Parent Id for the batch Unique ID of the printer we want to use. Uniqu id of the form we need to use This table has the information needed for a print run. We need to look at the printing requirements for all of the formats. BIRT needs to be able to use the data, bundle up the *rptdesign records it needs for the form, then print the data without any further user intervention on the BIRT side. The form# and printer designation for the application has a default for the user. A “reprint” will assign a new printjobUid to the records selected for reprinting.. Additonal tables needed for populating the data. Add’l TABLEs batch location file-assoc country g-bank apVendor apVendorMisc apInvoice Operator Join Criteria batch.batchUid = apBatch.batchUid location.loc = batch.batchloc file-assoc.a-assoc = location.co countryCd = file-assoc.Country gb-co = file-assoc.a-assoc gb-bank = paymentType.gb-bank vendorNum = apTransCdCheck.vendorNum apVendorMiscUid = apTransCdCheck.apVendorMiscUid apInvoiceUid = apTransCdInvoice.apInviceUid Comment AND This data is in similar format to apTransCDCheck and apTransCdInvioce except it is print ready. BIRT does not have to look at any other tables besides these to print a check. This means we need to populate the data accurately before we send the print job to BIRT. Table = formAPCheck – populate with apTransCDCheck records that have been selected for printing Field formApCheckUid printJobUid company company_Name Data Map System assigned to this record printJob.printJobUid apTransCdCheck.company file-assoc.a-name Label Unique Id Print Uid Company# Co Name company_Addr1 company_Addr2 company_Addr3 company_City company_State file-assoc.a-addr1 file-assoc.a-addr2 file-assoc.a-addr3 file-assoc.a-city file-assoc.a-st Co Add 1 Co Add 2 Co Add 3 Co City Co State 7/29/2017 TME Description System assigned unique ID Parent Id for the print job. Company ID Company Name to print on check (note: this is _not_ the Payee Name). Address 1 to print on the check Address 2 to print on the check Address 3 to print on the check City to print on the check State code for the check Version 1.0 AP Bill Payer Functional Design Page-25 file-assoc.a-zip1 + “-“ + a-zip2 company_Zip company_Country country.name Co Zip Co Country bank_Name g-bank.bank_name Bank Name bank_Addr1 bank_Addr2 bank_Addr3 bank_City bank_State bank_Zip bank_Country bank_Route vendorNum g-bank. bank_Addr1 g-bank. bank_Addr2 g-bank. bank_Addr3 g-bank. bank_City g-bank. bank_State g-bank. bank_Zip g-bank. bank_Country g-bank. bank_Route apTransCdCheck.vendorNum Bank Add1 Bank Add 2 Bank Add 3 Bank City Bank State Bank Zip Bank Country Routing # Vendor # payee_Name See Below – 1. Payee Name See Below payee_Addr1 payee_Addr2 payee_Addr3 See Below – 1. See Below – 1. Payee Add 3 Payee name to print on the check Payee address line 1 to print on the check Payee address line 2 to print on the check. Payee address line 3 to print onthe check Payee Add 2 See Below – 1. Postal code to print on the check Country Name (not Code) to print on the check Bank name Bank name to print on check Bank address line 1 Bank address line 2 Bank address line 3 Bank city Bank State code Bank postal/zip code Bank country code Bank's Transit/Routing Number (ABA) Enter the vendor number payee_City See Below – 1. Payee City Payee city to print on the check payee_State See Below – 1. Payee State Payee Zip Payee State to print on the check Payee postal/zip code to print on the check Payee country to print on the check. payee_Zip See Below – 1. payee_Country See Below – 1. Payee Country checkDate See Below – 2. Ck Date checkNum checkAmt See Below – 3. apTransCdCheck.checkAmt Check Number Net Check Amount checkAmtDisp payInWords comment VendorCustNum See Below – 4. Amt Disp See Below – 5. Amt in words Check Notes Acct# apTransCdCheck.comment See Below – 6. apTransCdCheckUid apTransCdCheck. apTransCdCheckUid Check Trans Check date Check Amt formatted for the check (*****1,234.44) Amount of the check spelled out in words Check comment to print on check. The customer Account# with the vendor. If there is only one vendor's customer number for the account, this field will get filled in to print in the heading of the check stub. If more than one, the detail comment will be populated with the correct # for the location. Id of the Bill Pay transaction this came from 1. Populating the payee_* fields IF apTransCdCheck.isMisc = TRUE THEN Field 7/29/2017 Map Table Map Field TME Version 1.0 AP Bill Payer Functional Design payee_Name apVendorMisc payee_Addr1 apVendorMisc payee_Addr2 apVendorMisc payee_Addr3 apVendorMisc apVendorMisc payee_City payee_State apVendorMisc apVendorMisc payee_Zip payee_Country apVendorMisc Page-26 vendorName address1 address2 address3 city state zip country IF apTransCdCheck.isMisc = FALSE AND apVendor.payee_Name <> “” THEN Map Table Field payee_Name apVendor payee_Addr1 apVendor payee_Addr2 apVendor payee_Addr3 apVendor apVendor payee_City payee_State apVendor apVendor payee_Zip payee_Country apVendor Map Field payee_Name payee_Addr1 payee_Addr2 payee_Addr3 payee_City payee_State payee_Zip payee_Country IF apTransCdCheck.isMisc = FALSE AND apVendor.payee_Name = “” THEN Map Table Field payee_Name apVendor payee_Addr1 apVendor payee_Addr2 apVendor payee_Addr3 apVendor apVendor payee_City payee_State apVendor apVendor payee_Zip payee_Country apVendor Map Field vendorName address1 address2 address3 city state zip country 2. Check Date This comes from Filter ID 5 entered at the beginning of the program 3. Check Number(checkNum) The first check number to be used is from Filter ID 3 - Beginning check number. The next check number will be calculated automatically each time a check # is assigned to an FormAPCheck id. This starting number comes from g-bank.gb-chk# for printed checks. For ACH or credit card paymentTypes, the electronic reference will come from payEFTReference.eftTransId. Alignment checks: Create a formAPCheck record : checkNum = the next available real check number then update that to the next number payee_name = “Alignment” comment = “VOID” + batch.userLoginID. Voided Checks (from a reprint): 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design Page-27 Create a formAPCheck record for the voided check# by copying the original formAPCheck record to a new record. There is no need to copy the detail because we’re not backing out numbers. We’re simply saying we messed up a form. Payee_name = “Reprint” Comment = “VOID” + batch.userLoginID. Reassign a new check number to be printed to the original formAPCheck record The voided checks will be added to apTransCDCheck when we OK the print. They will also be created in the final apCheck table so we can account for all check numbers. Regular checks: As formAPCheck records are created, assign the check # automatically starting with the next available check number. The records and check#s will be assigned by sort type which is vendor name or vendor number. Create formAPCheck records until you assign the ending check number. There may be more checks to print but you will need to reload the paper at this point. We will use formAPCheck.checkNum to update apTransCdCheckNum. We must keep track of the last check# printed so we can update the next available check # in g-bank when we OK the print run. This means we need to be aware of others printing checks for this g-bank. Locking the g-bank record at the beginning of the check run is recommended. ACH and Credit Card payments: Each electronic transaction must have a unique id so it can be traced in both systems using the same number. It must be human readable because when search for something we may need to give that id verbally on either side. A new table/field payEFTReference.eftTransId is used for this unique identifier. When we update the check# it will be “E” + this number. If this is an electronic payment update apTransCdCheck.electronicReference id = payee_name + “ID: + ”this number . Do not exceed 50 characters – cut off part of the Payee name to make it fit. Each time a reference number is used, increment eftTransId by 1. 4. Check Amount to be displayed (checkAmtDisp) Format the check amount with leading asterisks (**). This is to prevent someone from changing the check amount by adding numbers in front of the actual amount. The format of the check amount is 999,999,999.99-. It is OK to replace this format with ** for the leading zeroes plus 1 extra asterisk in case the check is actually written for the full amount. Do not replace the commas with *. There should be a routine we can run that does this for us. But the result should be as follows: 2,265.00 = *****2,265.00 100,000,000.00 = *100,000,00.00 IN other words, replace the actual leading 0s with asterisks + 1 if the amount is full. 5. Check Amount in words (payinwords) There should be a routine already available that can be called to produce this value. 2,265.00 = TWO THOUSAND TWO HUNDRED SIXTY-FIVE and 00/100 DOLLARS Do not worry about how long the field is. BIRT will wrap the comment around to make room for all. The field size is big enough to hold the maximum possible words. 6. Our Account number with the vendor (vendorCustNum) This one is tricky because there is not enough room to print this account number on the stub along with everything else we need to print BUT it is possible that different locations will have different 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design Page-28 vendor account #s. We need to check the data to see what it is we’re printing AND how the vendor’s customer account#s are created. If apTransCdCheck.isMisc = TRUE ASSIGN formAPCheck.vendorCustNum = apVendorMisc.vendorCustNum. If we have one account number with this vendor, there will be only 1 record in apVendorCustNum where apvendorCustNum.apVendorUid = apVendor.apVendorUid. In this case, ASSIGN formAPCheck.vendorCustNum = apVendorCustNum.vendorCustNum. IF there is more than one record in apVendorCustNum where apvendorCustNum.apVendorUid = apVendor.apVendorUid leave this field blank. We will assign those by location in formAPRemit.Comment. This will override any actual comment that may have been entered. For furter details, see below for populating the table formAPRemit. Table = formAPRemit – popuilate with apTransCDCheck records that have been selected for printing Field formApRemitUid formApCheckUid Data Map System assigned to this record formApCheck.formApCheckUid Label Unique Id Parent Id VendorCustNum company location See Below - 7. apTransCdInvoice.company apTransCdInvoice.location Acct# Company Id Loc invoiceNum apTransCdInvoice.invoiceNum Invoice # futureCode invoiceDate amountDue apTransCdInvoice.futureCode apTransCdInvoice,invoiceDate apTransCdInvoice.amountDue Future Code Invoice Date Invoice Amt Due discountAmt apTransCdInvoice.discountAmt Invoice Discount writeOffAmt payAmount apTransCdInvoice.writeOffAmt Write Off apTransCdInvoice.payAmount Net Invoice Amt comment apTransCdInvoice.comment Comment poNum deductTotal apInvoice.poNum formAPRemit.discountAmt + PO No. Total Deductions 7/29/2017 TME Description System assigned unique id Check Parent ID The customer Account# with the vendor. Company ID Control GL Interface Vendor invoice# OR original invoice# if a transfer If we pay one vendor account with another, that orignal invoice# is copied to the new vendor. If a duplicate, we will add "###" to the end until we get a unique # Future code for split payments If this is a future invoice, enter AA-ZZ for additional payment. This is used for split terms and is part of the invoice number that makes it unique Total Discount taken during check writing Total amount of write offs against this invoice this check run Net amt to be paid Invoice comment to print on check. Entered at AP invoice entry. PO# or Claim# from interface to a-apclr and o-claim For a print option on the Version 1.0 AP Bill Payer Functional Design Page-29 formAPRemit.writeOffAmt check stub. 7. Our Account number with the vendor (vendorCustNum) This one is tricky because there is not enough room to print this account number on the stub along with everything else we need to print BUT it is possible that different locations will have different vendor account #s. We need to check the data to see what it is we’re printing AND how the vendor’s customer account#s are created. If formAPCheck.vendorCustNum <> “”, there is only 1 vendorCustNum account for this vendor. WE do not need to populate this field. It will be printed once on the check stub If formAPCheck.vendorCustNum == “” THEN ASSIGN formAPRemit.vendorCustNum = apInvoice.vendorCustNum NOTE: BIRT will have to look at this field to decide what to print in the comment. If this field is not blank, then the vendorCustNum will print in the comment column. If it is blank, formAPRemit.comment will print in the comment column. 6.3.9.2 Send the data to the black box for printing This part of the program will call a program that interfaces with the G4 print mechanism. BIRT will only print checks for those formAPCheck records with the printjobUid we send to it. For a reprint, this is accomplished by resetting the printjobUid to a new value when we reassign check numbers for a reprint. We will never “reprint” or “void” an EFT. It may take some time to print the data so we need to let the user know what is happening with a message. In the standard message area at the top of the screen, as soon as the user clicks on either “Print Alignment Check” or “Print Checks” display “Printing Checks, please wait.” We cannot let the user go elsewhere or park this until it is done printing. When the program is done printing it will return the screen to the user, the program will display “Checks have been printed” at the top of the screen and the “Paid for Payment Type [AAAAAA] browse below: Paid for Payment Type [AAAAAAAA] Reprint (ALL) (select) Void (ALL) (select) BatchId Check/Ref# Check Date Payment Amount MM/DD/YYYY 11.2- Vendor# x(8) x(12) x(10) Payee Name x(30) Status x(8) One record for each formAPCheck for the PayType. Field definitions for the “Paid for Payment Type [selected in section 6.2.5.1 at the beginning]” Browse The Reprint and Void selections will have an “ALL” selection option in the heading. Previously voided checks will show in this display but will not be changeable. Table.Field Type Format Label see below see below batch.batchid Toggle Toggle char ON/OFF ON/OFF x(8) Reprint VOID Batch ID 7/29/2017 TME Description Allow user to select this check to be reprinted Is this check# to be voided? It is possible that more than one Version 1.0 AP Bill Payer Functional Design Page-30 formAPCheck.checkNum formAPCheck.checkDate formAPCheck.checkAmt formAPCheck.vendorNum char date decimal char formAPCheck.payee_name formAPCheck.printStatus x(12) MM/DD/YYYY 999,999,999.99x(10) character x(30) Character x(8) Check/Ref# Check Date Payment Amount Vendor# Payee Name Status batch has been selected. We need to see the batch id of the check displayed. This will be used to display the EFT reference as well. It should be large enough to handle that once we decide what it will be. Total check amount May be blank- cut off to make room Reprint, Voided (FYI only) Reprint Toggle – Reprint the check selected. It is possible that we need to re-assign check#s on a reprint because not all of the checks need to be voided – only a few actually jammed. Change the status to “Reprint”. If the user deselects “Reprint”, change the status back to blank. Void Toggle – Void the check# showing by creating another formAPCheck record with the voided information as described above. Set the status to “Voided”. If the user deselects “VOID”, the status should be changed to blank. If a check’s status was previously set to voided, do not let the user reprint or change the status back once it has been through another print cycle. If Void Toggle is on, automatically turn Reprint on. If deselect void, deselect both. BIRT will not print Void records. Status – The status will be blank the first time the data is sent to BIRT. “Sent for Pay” if electronic payment was made when it comes back. When the printing is done, the user will verify 1 of the following. . REPRINT OK EXIT – checks are not printed successfully, do not reprint (close the print check part of the application, delete printJob and formAP* tables. Do not update as printed, as a result on reopen the application that checks are displayed in the list as if they had not been sent to the printer). Go to the final section 6.3.9.4.. EXIT is a BAD option. Both Cindy and I agree this is too dangerous and should not be included. Once checks have been “printed” there is no way you can actually tell if a hard copy was in fact created. To let the user simply make the check disappear would be a violation of security. If they have come this far, they either need to Reprint or VOID whatever checks were not successful but always finish this procedure with an OK. That will leave an audit trail in the system. OK – The checks have been printed successfully. Close the browse, Go to the update section 6.3.9.3 – Update apTransCdCheck. REPRINT – Disable the REPRINT BUTTON until the Print Criteria is entered for reprinting: If reprinting is needed, in the Print Filter Criteria: The user will enter the new Starting and Ending Check numbers and check date. 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design Page-31 Change “Rerun” to “Reprint” The user will click the “Is this a Reprint”? Once this toggle is on, ask the following questions: Filter Id 7 Label Reprint FROM old Check# 8 Reprint TO old Check# Table.Field or Description formAPCheck.checkNum Type integer Format >>>>>9 formAPCheck.checkNum integer >>>>>9 Description This is the original starting check number that needs to be reprinted. This is the original ending check number that needs to be reprinted. Field ID 7/8 – The user must enter the first and last check #s from the Paid for Payment Type browser to be reprinted. When the apply filter is selected, select those checks in the Paid browse to be reprinted. By comparing the reprints with the new check number range, figure out which of the original checks are to be voided. These would be any checks selected for reprinting that are not included in the new check # range. Set those to be voided as well. For example, the original print was for check #s 100 to 200. The reprint is from check # 103 to 200 in the original range which is displayed in the Paid for Payment Browse. The new check number range is 104 to 201. This tells me check #s 100, 101 and 102 are fine and do not need to be reprinted. Since 103 is not in my new number range it should be voided. Set that to void. My original checks 104 thru 200 do not need to be voided, they are still good checks because I am reusing those numbers in my reprint run. The Reprint and Void options in the browse have an “ALL” selection in the column heading that will allow a select/deselect of all rows in the brose. .A password setting will disable the user from changing these settings. If the user is allowed to change the reprint/void selections they should be able to click on the heading option or change individual checks. Any check set to VOID, will automatically be set to REPRINT. If the use is not allowed to change these, they will be disabled. When the user clicks on REPRINT, create voided checks in formAPCheck for those marked Void and display the Status as VOID when displayed from the reprint process. Reprint all checks that are marked for reprint. Assign new check #s and printJobUids for the records to be reprinted before it sends them to the printer API. Checks that have been reprinted, should display a status of “Reprint” when displayed from the reprint process. The reprint functionality may be run several times before OK is selected. It would be unusual for checks to have intermittent good/bad checks needing to be voided but we should allow for it. The EFT option will not have a reprint function. It can have a void option because nothing has been sent anywhere, yet. Voiding an electronic payment will not update apTrandCDCheck as if it had been paid. It will remain as open in the browses. 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design Page-32 6.3.9.3 Update apTranCdCheck showing the checks were printed or to be sent electronically. Printed Checks – Table.Field apTransCDCheck.checkNum apTransCdCheck.checkType apTransCdCheck.payee_Name Description = formAPCheck.checkNum the actual check number printed = “C” Computer printed check = formAPCheck.payee_Name Actual Payee_Name . Find g-bank for the PayType to update g-bank.gb-chk# = last check number printed. Table.Field g-bank.gb-chk# = the last (highest) check # printed in formAPCheck.checkNum Description This is done for paymentType.isCheck = TRUE only. Voided Checks – Create apTransCdCheck records Table.Field apTransCDCheck.apTransCdCheckUi d apTransCDCheck.apBatchUid apTransCDCheck.batchDate apTransCDCheck.batchId = = apBatch.apBatchUid = batch.batchDate = batch.batchId apTransCDCheck.batchLoc apTransCDCheck.company apTransCdCheck.checkType apTransCDCheck.PayType apTransCDCheck.gb-bank apTransCDCheck.vendorNum apTransCDCheck.checkAmt = = = = = = = apTransCdCheck.comment “VOID” + batch.userLoginID + = payee_name apTransCdCheck.payee_Name Description System assigned unique id Link to parent AP Entry Batch Date AP Entry Batch ID Batch Location used to group transactions Company ID Computer printed check Printing pay type batch.batchLoc formAPCheck.company “V” PayType being selected for printing paytype.gb-bank formAPCheck.vendorNum formAPCheck.checkAmt Vendor Number Check Amount Void identity = formAPCheck.Payee_Name No apTransCdInvoice records need to be created. This is simply a form being voided. It has not affect on totals or GL. Electronic Payments – ACH & Credit Cards If an electronic payment was “voided” in the print check routine, ignore this section of the update and DO NOT create a void check record in apTransCdCheck. Table.Field apTransCDCheck.checkNum apTransCdCheck.checkType Description System assigned unique id Computer printed check = formAPCheck.checkNum = “E” formAPCheck.payee_name + “ID:” + apTransCdCheck. electronicReference = formAPCheck.checkNum Reference for reconciliation 6.3.9.4 Exit and OK Delete the formAPCheck and formAPRemit records for your print job(s) Delete the printJob record(s). You may have more than one if a reprint. 7/29/2017 TME Version 1.0 AP Bill Payer Functional Design 6.3.10 Complete Page-33 The message: “Selections have been paid” will appear on a successful Complete and the application will close. There are no other data base updates necessary because the bill payer update routine is another process. It would seem that the Complete button is unnecessary because the user can close the app using the “X” button or “Close” option in the Context menu. However, at some point we may change the complete button to fully run the bill payer update so that we can eliminate another menu process. Leaving the Complete button in place will make more sense to the end user because every program of this type has a Complete button which finishes the application. Without it, I think the users will be confused. They won’t know what to do next. 6.3.11 Reset – We will not allow this if we have actually printed checks If no checks have been printed and or EFT Transaction Refeences have been assigned, Reset will clear the filter criteria, deselect any records that have been selected for printing, and reset the Batch Browse to Read Only. Once check and reference numbers have been assigned to apTransCdCheck, this button should disappear. 7/29/2017 TME Version 1.0
© Copyright 2026 Paperzz