Implementing GTM
An automated setup program creates most of the codes you need to implement GTM, based on how your Canadian taxes are defined. Before executing this program, you should understand the options it provides and the default logic it uses.
Code Generation Rules
GTM codes for tax types, tax zones, and tax environments consist of text strings that uniquely identify the province, county, and city of a tax jurisdiction. In Canada, manual setup of these codes would be a tedious process, since there are thousands of them.
Code Generation Rules in CAN to GTM–Setup (2.13.22.9)
Therefore, by default, CAN to GTM–Setup generates codes based on its code generation rules (
Code Generation Rules in CAN to GTM–Setup (2.13.22.9)). These rules systematically select characters from the province code, county name, and city name in the tax master.
To determine if generated codes are suitable for your company, run the setup and review the audit trail. If you need a different coding scheme, read the rest of this section and change the settings for the code generation rules as necessary. Then, rerun the setup with Delete Previous GTM set to Yes and Convert Tax Masters set to Yes.
For Canadian taxes, the default generated code format for tax zones, tax types, and tax environments is:
PPP-CCCC-ccccccc
PPP is the 3-character province code, CCCC the 4-character county or district name, and ccccccc the 7-character city name. Each text string is separated by a dash (–).
The rules used to determine the characters to select depend on:
• Whether the Canadian code or name used to generate the text string consists of one word or multiple words (text strings separated by blank spaces).
• Whether separator characters are used.
Code Generation Rules in CAN to GTM–Setup (2.13.22.9) lists the default number of characters for each text string under the different conditions. However, you can change the number of characters and use a different separator or no separator, as long as the total number of generated characters—including the separator and any ending integers—is 16 or less.
Code Generation Rules in CAN to GTM–Setup (2.13.22.9)
| | | Multiple Words |
| One Word | Word 1 | Word 2 |
Code | Sep | No Sep | Sep | No Sep | Sep | No Sep |
Province | 3 | 3 | 3 | 3 | 0 | 0 |
County | 4 | 4 | 2 | 2 | 2 | 2 |
City | 7 | 9 | 4 | 5 | 3 | 4 |
Maximum Total Characters, With Separator | | 14 |
Maximum Total Characters, Without Separator | | 16 |
Example: If the original province code for Alberta is ALBA, the generated text string is ALB regardless of whether separators are used. For the city of Southampton, the generated text string is Southam if separators are used and Southampt if they are not. For the city of Thunder Bay, the generated text string is ThunBay if separators are used and ThundBay if they are not.
Setup retains the capitalization from the original Canadian code or name. If the original code or name contains punctuation such as a period, the code generation rules treat it the same as any other non-blank character.
Defining Custom Tax Class and Tax Usage Codes
By default, the setup generates tax classes that directly correspond to your Canadian GST master records. To distinguish the two sets of codes, it appends the letter P to the GST + PST code. For example, if your current GST classes are 0, 1, and 2, the generated GTM classes are 0, 1, and 2 (for GST only) and 0P, 1P, and 2P (for GST + PST). The system does not automatically generate tax usages.
You can override this by creating your own map for the setup program and specifying it in the Class File field. The same class file is also referenced in the programs that convert master data and transaction records.
Class File in CAN to GTM–Setup (2.13.22.9)
You should create a class file if:
• Your company plans to change its tax class codes during the GTM conversion. In this situation, you must define custom codes for GST only and GST + PST.
• Within a tax class, a company can be taxed based on its nature of operation or the way it intends to use an item. In GTM, these conditions are identified by tax usage codes.
The class file is an ASCII file with text strings in the following format:
“Current GST Class” “GST Class” “GST Usage” “Class for GST + PST” “Usage for GST + PST”
GTM tax classes can have a maximum of three characters, and tax usage codes eight characters. An unused optional value is represented by a null string (“ ” or “”)
The class file can have any name or extension. However, code values in .csv files must be separated by commas instead of blank characters. The file must be located in the home directory for the Progress session.
Note: A .csv file is a Windows comma-separated values file format that saves values recorded in a spreadsheet.
Example: Your current GST codes are 0, 1, and 2, and you want to change them to A, B, and C, plus add a G to indicate GST only.
“0” “AG” “” “A” “”
“1” “BG” “” “B” “”
“2” “CG” “” “C” “”
Defining Custom Codes for Provinces, Counties, and Cities
The generated codes for tax zones, tax environments, and tax types consist of text strings that identify the province, county, and city. By default, the code generation rules define the structure of these text strings. However, if you need a different naming convention, you can create geographic files for province codes, county names, and/or city names.
Province, County, and City Files in CAN to GTM–Setup (2.13.22.9)
Create a separate file for each kind of text string and reference the file in CAN to GTM–Setup as shown in
Province, County, and City Files in CAN to GTM–Setup (2.13.22.9). A geographic file is the same as a class file, except that the file is formatted as follows:
“Current Code or Name” “GTM Text String”
Note: You only need to define codes for conditions not already supported by code generation rules.
Example: To map province codes for the provinces of Manitoba and Quebec, create a province file with these lines:
“MANI” “MB”
“QUE” “QB”
Processing Logic
This program creates records as described in
New GTM Records.
New GTM Records
Type of Record | Explanation |
Tax zones | Based on code generation rules or a class file, setup builds the tax zone hierarchy for the country and all province/county/city combinations used in your current system. |
Tax types | Based on code generation rules or a class file, setup generates tax types for the province/county/city combinations used in your current system. |
Tax environments | Based on code generation rules or a class file, setup generates tax environments for all ship-to tax zones. |
Tax rates | Based on code generation rules or a class file, setup generates tax rates for the tax jurisdictions and percentages used in your current system. |
Tax classes | By default, the setup generates tax classes based on your Canadian GST master records, in which GST and PST are represented as separate codes. However, the GTM setup generates tax classes for GST only and GST + PST. It sets up PST only as GST + PST with a GST tax rate of 0%. It sets up non-taxable as GST only with GST and PST tax rates of 0%. To distinguish the generated codes, the setup appends the letter P to the GST + PST code. For example, if your current GST classes are 0, 1, and 2, the generated GTM classes are 0, 1, and 2 (for GST only) and 0P, 1P, and 2P (for GST + PST). The system does not automatically generate tax usages. |
Tax usages | By default, setup does not generate tax usages. However, you can do this with a class file. |
Country code | The setup generates a record for the default country code you specify when you run the setup. This country code is the top-level zone in the tax zone hierarchy. |
Company addresses and address list types | In GTM, company sites require a corresponding company address record because taxes are calculated by address, not site. The setup verifies that each company site has an address record and creates any missing ones, along with any needed address list type records. The setup also creates a ~taxes address record to provide a default tax address whenever a transaction is missing a company site code. |
GTM Control Settings
Setup defines Global Tax Management Control (2.13.24) as described in
Updates to GTM Control Settings.
Updates to GTM Control Settings
Field | Explanation |
Country Code | As specified during the setup |
Tax Method | 01 |
Tax-By-Line | No |
Accrue Tax at Receipt | Yes |
Discount Tax at Invoice | No |
Discount Tax at Payment | No |
Last Tax Code | As specified during the setup |
Rounding Method | Value specified in System/Account Control (36.1) |
CAN to GTM–Setup
Based on your implementation decisions, use CAN to GTM–Setup (2.13.22.9) to set up GTM for Canadian tax processing.
CAN to GTM–Setup (2.13.22.9)
Warning As noted previously, the purpose of the conversion is to replicate your existing tax processing setup in GTM. Do not attempt to implement new GTM functionality until after the entire conversion is complete. Do not change settings in the new GTM records or in Global Tax Management Control (2.13.24). If you do, the master and/or transaction conversions may fail.
Delete Previous GTM
This option determines whether the setup deletes previously created GTM records from the database. If you select this option, the setup deletes tax zones, tax types, tax environments, transaction tax details, and other GTM records from the database.
• Enter No if you have not yet converted your database to GTM.
• Enter Yes to clean up the database if it contains GTM records from unsuccessful conversion or installation attempts.
Convert Tax Masters
This option determines whether the setup generates the GTM master records from the master tables for Canadian GST and PST.
• Enter Yes to create GTM records corresponding to Canadian tax masters: tax classes, tax types, tax zones, tax environments, tax rates, and so on. The audit trail shows the new GTM records.
• Enter No if you only want to delete previous GTM records and do not want the setup program to generate new GTM records.
Country Code
This country code is the top-level tax zone in the tax zone hierarchy. All other tax zones sum into this one.
If Global Tax Management Control already has a country code, it displays here. Otherwise, the setup sets the default country code to CAN. If you override the value here, the setup assigns it to the control program.
Last Tax Code
Enter a value to update the corresponding field in Global Tax Management Control. In GTM, tax codes identify individual tax rates. Codes are generated sequentially based on the value of Last Tax Code in the GTM control program.
The default Last Tax Code is an 8-character value that consists of the GTM country code and a right-justified integer with placeholder zeros. For example, for country code CAN, the default Last Tax Code is CAN00000. The system assigns the number CAN00001 to the first tax rate record created in GTM and increments this number for subsequent rates.
If you want tax codes to have a different format, enter a different prefix. Codes display alphanumerically in screens and reports. Tax codes that are totally numeric are left-justified and have no placeholder zeros. For example, codes 1 through 30 display in a report column as follows:
1
...
19
2
20
...
30
Generated Separator
Enter a character to use as a separator in system-generated tax zones, types, and environments. Using a separator can improve the readability of the component elements of these codes.
The default separator is the dash (–), but you can enter any character. A sample GTM code that uses the dash separator is BC–Van for Vancouver, British Columbia. If you do not want to use separators in codes, enter blank. However, you cannot use blank as a separator character.
Class File
To provide custom mapping of Canadian tax classes to GTM classes and usage codes, specify an ASCII file with conversion information. See
here.
Province, County, City File
To override default code generation rules, specify specific values for geographic locations in an ASCII file. See
here.
Code Generation Rules
Enter appropriate values for your organization. See
here.
Display Status
This setting determines whether the system displays status messages online during the conversion. These messages list database tables and their indexes as they are converted. If you select this option, messages display on the screen and the printed report.
Updates to Company Addresses
In GTM, company sites require a corresponding company address record because taxes are calculated by address, not site. The setup creates any missing company address records for company sites. However, the setup does not populate these new address records with the city, county, province, and country. You must supply this information manually in Company Address Maintenance (2.12).
Also set up tax zone codes to support these new addresses if the setup did not already generate codes for these tax jurisdictions. Do this in Tax Zone Maintenance (2.13.3.13). Then, assign the tax zone to the address.
Set Up Audit Trail
CAN to GTM–Setup prints a report of updated tax master records for GST and PST rates. For GST rates, the report shows the GST class, description, starting and ending effective dates, the GST percent, and the general ledger tax accounts for accounts payable and accounts receivable. For PST, the report shows the province/county/city, tax effective date, tax rate for the effective date, whether PST is based on GST, and the generated GTM tax zone and sums-into zone.
GST Audit Trail and
PST Audit Trail show the audit trail formats.
GST Audit Trail
PST Audit Trail
Troubleshooting GTM Setup
After you run CAN to GTM–Setup, verify that the GTM setup is correct before you continue with the conversion. The problems listed in
Troubleshooting the GTM Setup can cause errors or unexpected values. Before you proceed to the master conversion, review the audit trail, the GTM reports for the new records, and Global Tax Management Control settings. Correct any problems before going on.
Subsequent setups do not automatically overwrite records created by previous ones. To set up new records, you must first delete the old ones. If you rerun the setup, you must remove the records created by the earlier setup attempt. To do this, rerun the setup with Delete Previous GTM set to Yes and Convert Tax Masters set to Yes.
Note: If you must rerun the setup after you have run any of the other conversion programs, restore the database first. Then, rerun the setup and any other conversion programs you ran previously. This is necessary to perpetuate changes to master data, transactions, and tax details.
Troubleshooting the GTM Setup
Error | Explanation |
Tax system must be Canadian. | The CAN to GTM setup can only be run on a Canadian tax system. |
Must delete previous GTM when converting. | When you set Convert Tax Masters to Yes, you must also set Delete Previous GTM to Yes. |
On GST has changed, cannot convert prior to this date. | The setup can convert only the current tax environment, not previous variations. If a city’s GST Only status was changed in the span of time included in the conversion, the setup creates tax environments only for current conditions. |
Warning Do not correct records programmatically. This approach often causes additional problems.
How the Setup Changes GTM Records
The following information is provided to assist developers and others who require technical information on how the setup updates the database.
The menu-level program for CAN to GTM–Setup is txcancnv.p. This program calls subprograms (primarily txcantax.p) that set the GTM tax values in the individual database tables.
Changes to GTM Records lists the affected database tables and summarizes the changes.
Changes to GTM Records
Tables | Summary of Changes |
ad_mstr | txcantax.p creates one ~taxes record for the database. It also scans si_mstr and creates an address record for any company site that does not already have one. |
code_mstr | For each vt_mstr record, txcantax.p creates tax classes for GST only and GST + PST. If a class file is referenced, it creates the specified tax classes and tax usages, if any. For the GST rate in vt_mstr and each PST rate in tax_mstr, txcantax.p creates a tax type code. For non-taxable transactions, it also creates a default NON-TAX tax type. Finally, for each ship-to tax zone, txcantax.p creates a tax environment and assigns it the tax types associated with the tax zone. |
ctry_mstr | txcantax.p creates a record for the default country code specified in the selection data. |
ls_mstr | txcantax.p creates ls_mstr record for each new ad_mstr record, if any. |
tx2_mstr | For each vt_mstr record, txcantax.p creates a tax rate for GST only and GST + PST. For each tax_mstr record, txcantax.p creates multiple tx2_mstr records, one for each combination of (1) GST only and GST + PST and (2) each GST class. (For example, if there are three GST classes, the setup generates six tx2_mstr records.) It also runs txtx2_nt.i to create a non-taxable tax rate and txtxmeth.i to create tax method 01. |
txc_ctrl | txcantax.p sets txc_ctry_code and txc_tax_code from the selection data. It sets txc_method to 01, txc_by_line to Yes, txc_inv_disc and txc_pmt_disc to No, and txc_rcpt_tax_point to Yes. |
txbd_det | txcantax.p creates a tax base record for PST + GST. |
txe_mstr | txcantax.p creates tax environment zone detail records for every tax environment code it generates for code_mstr. |
txed_det | txcantax.p creates tax environment tax type detail records for every tax environment code it generates for code_mstr. |
txz_mstr | txcantax.p creates a top-level sums-into tax zone for the new ctry_mstr record. For each province/county/city combination in tax_mstr, it creates a ship-to tax zone. |