Processing Details

This topic describes additional processing performed on the purchase order voucher input files that is too complex to cover in the Detailed Table Specifications topic.

Processing Details for Specific Fields

Field Description
Voucher Number

If a voucher number exists in the PO voucher header input file, the preprocessor uses it when generating voucher rows after verifying that it does not already exist in the Voucher Header (VCHR_HDR) and Voucher Header History (VCHR_HDR_HS) tables.

If there is no voucher number in the input file, Costpoint uses the number (if any) that was entered in the Starting Voucher Number field on the Import Purchase Order Vouchers screen to assign voucher numbers in sequence, starting with that number. If the derived voucher number is already used for a prior created voucher or exists in the VCHR_HDR or VCHR_HDR_HS table, Costpoint skips that number and increments the Starting Voucher Number by another 1, and so on until a unique voucher number for the user's company and PO voucher fiscal year is obtained.

If there is no voucher number in the input file, and no Starting Voucher Number was entered on the preprocessor screen, and the Voucher Number Method on the Configure Accounts Payable Voucher Settings screen is System, Costpoint assigns the next available voucher number, and the Last System Voucher Number is updated with the new (last) sequential number.

If there is no voucher number in the input file, no Starting Voucher Number was entered on the preprocessor screen, and the Voucher Number Method on the Configure Accounts Payable Voucher Settings screen is Manual, Costpoint cannot assign a voucher number. The voucher record is flagged with an error.

1099 Flag and Type

If the Print 1099-MISC Form check box is not selected, and the 1099 Type code is blank in the 1099s group box on the Header tab of the Manage Vendor screen, the voucher line's 1099 Type column in the Account Distribution subtask of the Manage Purchase Order Vouchers screen is N. Conversely, if you select the Print 1099-MISC Form check box and the 1099 Type code, this information loads into the voucher line for that vendor. You can edit the 1099 flag and type setting in the Account Distribution subtask of the Manage Purchase Order Vouchers screen.

Approval Status

If a purchase order voucher exceeds any of the discrepancy limits set on the Configure Purchase Order Voucher Settings screen, it will not be approved once the approval process is executed. However, if a purchase order voucher meets the approval criteria selected on the Configure Purchase Order Voucher Settings screen, it will be approved.

If you selected Automatic in the Option field in the Approval Required group box on the Configure Purchase Order Voucher Settings screen, the Appr (Approved) column on the Approve Vouchers screen is set to Y if neither the Rcpt Discrepancy field nor the PO Discrepancy field is over the discrepancy quantity percentage threshold specified in the Configure Purchase Order Voucher Settings screen. If Limited is selected in the Option field, the Appr (Approved) column is set to Y if the total invoice amount is less than or equal to the amount listed in the PO Approval Reqd Above field, and neither the Rcpt Discrepancy field nor the PO Discrepancy field is over the discrepancy quantity percentage threshold.

Extended Cost Amount

For each invoice line, you can enter either quantity and a unit cost, or an extended cost. If you enter a quantity greater than zero, the voucher extended cost equals the voucher line input file quantity multiplied by the voucher line input file unit cost. If you do not provide the unit cost in the input file, or if it is zero, Costpoint pulls the unit cost from the net unit cost amount on the purchase order line. If the quantity is zero or not given, the application uses the input file extended cost amount.

Pay Vendor and Payment Address

If the vendor on the purchase order is not the same Pay Vendor that is listed on the Defaults tab of the Manage Vendors screen, Costpoint assigns the default payment address code for that pay vendor, and verifies the A/P Account Description and Cash Account Description from that subtask for the pay vendor. The address code is assigned a D (Default) as the payment address in the Pmt Addr field in the table window of the Manage Vendors screen.

If no default payment address exists for that vendor, Costpoint verifies that there is only one address row for that vendor on the Manage Vendors screen that has a Pmt Addr of Y. If no payment address is indicated, a voucher is not created.

PO Vendor

If vendor approvals are required in Configure Accounts Payable Settings, you must specify an approved vendor in order to create a purchase order voucher (VEND.VEND_APPRVL_CD = A).

Sales/VAT Tax

If you provide a Taxable Code in the PO Voucher Line input file, Costpoint uses it to set the taxable flag (VCHR_LN.TAXABLE_FL). A Taxable Code of S (sales tax) or U (use tax) sets the taxable flag to Y. A Taxable Code of N (not taxable) sets the taxable flag to N.

If Taxable Code is not included in the input file, the Sales/VAT Tax Default selection on the Configure Purchase Order Voucher Settings screen determines whether the line is taxed. If the default tax source is the purchase order line and the invoice line references a purchase order line, the purchase order voucher line and purchase order voucher line account taxable flags are loaded from the purchase order line taxable flag. The PO line tax code is loaded along with the PO line tax rate, as saved. If the loaded sales tax code has an associated tax rate of zero, the zero tax rate will be used even if the PO line tax rate is non-zero. If no purchase order line is referenced, the taxable flag from the purchase order line charge type loads for the purchase order voucher line miscellaneous line charge type.

If the default tax source is the item type and the referenced purchase order line has a line type of Part, Good, or Service, voucher taxable flags load from the Taxable group box settings on the Configure Product Definition Settings screen. If the purchase order line is a miscellaneous line, or if no purchase order line is referenced, the tax source loads with the taxable flag of that purchase order line's miscellaneous line charge type. If the default tax source is always taxable, all voucher taxable flags are set to Y. If the default tax source is always non-taxable, all voucher taxable flags are set to N.

If a voucher line is taxable, and there is no Taxable Amount in the PO voucher line input file, Costpoint calculates the voucher line and voucher line account sales tax amount by multiplying the purchase order line sales tax by the extended cost amount. The sales tax code is loaded for the ship ID code on the purchase order line. The following explains what happens if a voucher line is taxable and there is taxable amount in the PO voucher line input file:

  • Upon processing, if the voucher line is taxable (VCHR_LN.TAXABLE_FL = Y) and sales tax is applicable (VCHR_LN.TAXABLE_CD = S), Costpoint uploads the value of the tax amount (if non-zero) from the input file (or staging table) to the VCHR_LN.TRN_SALES_TAX_AMT column.
  • Upon processing, if the voucher line is taxable (VCHR_LN.TAXABLE_FL = Y) and use tax is applicable (VCHR_LN.TAXABLE_CD = U), Costpoint uploads the value of the tax amount (if non-zero) from the input file to the VCHR_LN.TRN_USE_TAX_AMT column

    If the invoice line does not reference a purchase order line, the voucher line is assumed to be non-taxable.

Terms Calculations

Payment terms are specified on the purchase order. Standard voucher logic determines due dates, and discount dates, amounts, and rates based on the set terms.

Exchange Rate

The exchange rate information that will be loaded on this screen will depend on the selection made in the Exchange Rate Source field on the Configure Purchase Order Voucher Settings screen.

When the Exchange Rate Source selected is:

  • Purchase Order: All exchange rate information will come from the purchase order (PO).
  • Invoice Date: The default Transaction Currency and Rate Group will come from the PO. The default Pay Currency is linked to the PO vendor. The Invoice Date will come from the input file.
  • Current Date: The default Transaction Currency and Rate Group will come from the PO. The default Pay Currency is linked to the PO vendor. The default rate date is the current date.
Note: If the exchange rate source is either Invoice Date or Current Date, you can modify all fields related to exchange rate except for the Transaction Currency.

Processing Details for PO Voucher Vendor Labor Input Files

Field Description
Vendor Employee ID

The Vendor Employee ID value is taken from the input file, if available. The combination of the Vendor ID from the header record and the Vendor Employee ID from the Vendor Labor record must exist in the Vendor Employee table (the Vendor Employees block of the Manage Vendors screen). When you enter a vendor employee, the Project Labor Category (PLC) default resets based on whether that vendor employee has a default PLC. If you entered a vendor employee, the validation for PLC includes the vendor employee.

Project Labor Category

The Project Labor Category value is taken from the input file, if available, or it can be derived from the Assign PLC to Employee Work Force screen for the project and vendor ID combination. The Project is taken from the purchase order line account that the invoice line references.

A Project is required before you can enter a PLC, and the PLC must exist in the Billing Labor Category table (the Manage Project Labor Categories (PLC) screen). If a work force is not required for the project, Costpoint looks for the project in the Project Labor Category table (the Link Project Labor Categories to Projects screen). If it finds the project, the project and PLC combination must exist in the Project Labor Category table. If a work force is required for the project, the work force project, vendor ID, and PLC combination must exist in the Project Vendor Labor Category table. If the PO line referenced by the invoice line has more than one PO_LN_ACCT row and more than one project is referenced on that purchase order line, Costpoint returns an error.

General Labor Category

The General Labor Category value is taken from the GLC record in the PO voucher vendor labor input file, if available. If the GLC record is not available, Costpoint uses the Vendor Employee ID record as reference to derive the default associated GLC from the Vendor Employees user flow of the Manage Vendors screen. If the PO voucher vendor labor input file has both GLC and Vendor Employee ID records, Costpoint uses the GLC data.

Processing Details for Voucher Line Accounts

Costpoint can load voucher line accounts directly from the optional PO voucher line account input file. This allows you to load multiple project/account/organization (PAO) charge lines and allocation amounts for each voucher line.

If you do not provide a line account input file, Costpoint creates line account records using information in the PO Voucher Line input file in combination with information from the referenced PO. If the voucher line record includes PAO information, Costpoint creates only one VCHR_LN_ACCT record for that voucher line, no matter how many PO_LN_ACCT records exist for the designated PO line. If PAO data exists both in the voucher line and voucher line account input file, Costpoint imports the PAO data from the voucher line account input file.

If the voucher line input file does not include an account ID, the preprocessor ignores the input file project and organization values for all purposes. If the input file record includes an account ID but no project, the project remains null on the created VCHR_LN_ACCT, even if there is a project ID in PO_LN_ACCT.

All POA information, whether supplied by the input file or derived from other tables, must undergo all standard PAO validation applicable to a PO voucher. Failed validations display on the Error Message Report.

PO Voucher Line and PO Voucher Line Account input file records must either reference a valid PO line, or include a Line Charge Code.

  • If the PO voucher line input file references a purchase order line, and the Charge Code Change option on the Configure Purchase Order Voucher Settings screen is selected so that you cannot override the PO's project/account/organization (PAO) information on the PO voucher (VCHR_SETTINGS.PO_VCHR_CHNG_FL = N), or if the PO voucher line input file does not have a populated account, then the voucher line account rows(s) are populated using the same PAO information found on the PO_LN_ACCT row(s). If multiple PO_LN_ACCT rows exist for the selected PO_LN, the same number of rows must be set up in VCHR_LN_ACCT. The vouchered amounts for that line are calculated with PO_LN_ACCT.CST_AMT_PCT_RT.
  • If the PO voucher line input file references a purchase order line, and the Charge Code Change option on the Configure Purchase Order Voucher Settings screen is not selected so that you can override the purchase order's PAO information on the purchase order voucher (VCHR_SETTINGS.PO_VCHR_CHNG_FL = Y), and if the PO voucher line input file has a populated account, then the input file record can override part or all of the PO_LN_ACCT information on the VCHR_LN_ACCT. In this case, the account and project are pulled from the input file record.

    If an organization is also included in the PO voucher line input file record, it is also included in the new VCHR_LN_ACCT. If an organization does not exist in the PO voucher line input file record, and you selected the PO Line Organization option from the preprocessor screen's Default Organization Source drop-down list, the organization ID is pulled from the first PO_LN_ACCT row (lowest sub-key) for the designated PO line.

    If an organization does not exist in the PO voucher line input file record, and you selected the Project Owning Organization option from the parameter screen's Default Organization Source drop-down list, the PROJ.ORG_ID for the project ID supplied in the PO voucher line input file record is used. If you selected the Project Owning Organization option, but there is no project in the input file record, the preprocessor pulls the organization ID from the first PO_LN_ACCT row for the designated PO line.

  • If the PO voucher line account input record does not reference a purchase order line, and an account is entered, the Costpoint pulls the account and project from the PO voucher line input file record. If an organization is also included in the PO voucher line account input file record, it is also included in the new VCHR_LN_ACCT. If an organization does not exist in the PO voucher line account input file record, and the Use Project Owning Org option is selected, Costpoint uses the input file's PROJ.ORG_ID to populate the VCHR_LN_ACCT.ORG_ID. If an organization does not exist in the input file record, and the Use PO Line Org option is selected, the preprocessor uses the first PO line's PO_LN_ACCT.ORG_ID to populate the VCHR_LN_ACCT.ORG_ID.

    If a purchase order line is not referenced and no account is entered on the PO voucher line input file record, and a PO voucher line account input file is not available, a single VCHR_LN_ACCT row is derived as follows:

    1. For the voucher's PO ID and release, the preprocessor looks up the first PO line (lowest PO_LN_KEY).
    2. The preprocessor uses the first PO_LN_ACCT (lowest sub-key) for that line and pulls the PROJ_ID, ORG_ID, PROJ_ABBRV_CD, ORG_ABBRV_CD, REF1_ID, and REF2_ID to use in the VCHR_LN_ACCT.
    3. If the PROJ_ID is not null, it pulls the VCHR_LN_ACCT_ID from the LN_CHG_TYPE.DFLT_PROJ_ACCT_ID. If the PROJ_ID is null, it uses the LN_CHG_TYPE.DFLT_NP_ACCT_ID.

Processing Voucher Discrepancies

Costpoint calculates the discrepancy amounts and percents for each voucher. It compares these amounts and percents against the thresholds set up on the Configure Purchase Order Voucher Settings screen. If the voucher header discrepancy, or any voucher line discrepancies, are over the limits established on the Configure Purchase Order Voucher Settings screen, Costpoint displays a message. If no discrepancies are over the established limits, but the header and/or at least one line has a discrepancy amount or percentage greater than zero, Costpoint displays a message that the discrepancies are under the indicated settings.

Costpoint performs several discrepancy checks on a voucher. One is performed at the header level, and four are performed at the line level. It does not perform unit price and quantity discrepancy checks if the associated purchase order line has a zero or negative quantity and net unit price. It does not perform discrepancy checking on any line that does not reference a PO line. Costpoint calculates the discrepancies as follows:

Discrepancy Check Table.Column Match Calculation Notes
Total PO Discrepancy Amount VCHR_HDR. DISCR_PO_TOT_AMT 2- or 3-Way Match Total PO Discrepancy Amount = Original PO Header Vouchered Amount + PO Voucher Header Invoice Amount - PO Total Amount.

If the Include Sales/VAT Tax check box is not selected on the Configure Purchase Order Voucher Settings screen, the Total PO Discrepancy Amount = Original PO Vouchered Amount + (PO Voucher Invoice Amount - Voucher Header Sales Tax Amount) - (PO Total Amount - PO Sales Tax Amount).

Costpoint compares the Total PO Discrepancy Amount to the PO discrepancy threshold on the Configure Purchase Order Voucher Settings screen.
Unit Price Discrepancy Percent VCHR_LN. DISCR_UNIT_PRC_RT 2- or 3-Way Match Voucher Line Unit Price Discrepancy Percent = (PO Voucher Line Unit Cost - PO Line Net Unit Cost Amount) / (PO Line Net Unit Cost Amount).

If the PO Voucher Line Unit Cost = 0 or the PO line net unit cost amount = 0, the Voucher Line Unit Price Discrepancy Percent is set to 0.

Costpoint compares the Voucher Line Unit Price Discrepancy Percent to the unit cost percent discrepancy threshold on the Configure Purchase Order Voucher Settings screen.
Unit Price Discrepancy Amount VCHR_LN. DISCR_UNIT_PRC_AMT 2- or 3-Way Match PO Voucher Line Unit Price Discrepancy Amount = PO Voucher Line Unit Cost - PO Line Net Unit Cost Amount.

If the PO Voucher Line Unit Cost or PO line Net Unit Cost Amount = 0, the PO Voucher Line Unit Price Discrepancy Amount is set to 0.

Costpoint compares the PO Voucher Line Unit Price Discrepancy Amount to the unit cost amount discrepancy threshold on the Configure Purchase Order Voucher Settings screen.
Quantity Discrepancy Percent VCHR_LN. DISCR_QTY_RT 2-Way Match Voucher Line Quantity Discrepancy Percent = (Original PO Line Vouchered Quantity + PO Voucher Line Invoice Qty - PO Line Order Quantity) / PO Line Order Quantity.

If the PO Line Order Quantity = 0, the Voucher Line Quantity Discrepancy Percent is set to 0.

Costpoint compares the Voucher Line Quantity Discrepancy Percent to the quantity percent discrepancy threshold on the Configure Purchase Order Voucher Settings screen (both 2- and 3-Way Matches).
Quantity Discrepancy Percent VCHR_LN. DISCR_QTY_RT 3-Way Match Voucher Line Quantity Discrepancy Percent = (Original PO Line Vouchered Quantity + PO Voucher Line Invoice Qty - PO Line Accepted Quantity - PO Line Rejected but Pay Quantity) / (PO Line Accepted Quantity + PO Line Rejected but Pay Quantity).

If the PO Line Order Quantity = 0, the Voucher Line Quantity Discrepancy Percent is set to 0; otherwise, if the PO Line Accepted Quantity + PO Line Rejected but Pay Quantity = 0, the Voucher Line Quantity Discrepancy Percent is set to 100.

Total PO Line Discrepancy Amount VCHR_LN. DISCR_TOT_AMT 2-Way Match Voucher Line Total Discrepancy Amount = Original PO line Vouchered Amount + ((PO Voucher Line (Invoice Qty * Unit Cost) or Extended Cost) * (1+PO Line Sales Tax Rate)) - PO line Total Amount.

The Extended Cost is used if Invoice Qty and Unit Price are null or zero.

If the Include Sales/VAT Tax check box is not selected on the Configure Purchase Order Voucher Settings screen, Costpoint subtracts any calculated voucher sales tax from the PO line and PO header vouchered amount. The Voucher Line Total Discrepancy Amount = Original PO Line Vouchered Amount + (PO Voucher Line (Invoice Qty * Unit Cost) or (Extended Cost)) - (PO Line Total Amount - PO Line Sales Tax Amount - PO Line Tax Charge Amount)).

Costpoint compares the Voucher Line Total Discrepancy Amount to the PO Line discrepancy threshold amount on the Configure Purchase Order Voucher Settings screen (both 2- and 3-Way Matches).
Total PO Line Discrepancy Amount VCHR_LN. DISCR_TOT_AMT 3-Way Match PO Voucher Line Total Discrepancy Amount = Original PO Line Vouchered Amount + (((PO Voucher Line (Invoice Qty * Unit Cost) or (Extended Cost)) * (1+PO Line Sales Tax Rate)) - ((PO Line Accepted Amount + PO Line Rejected but Pay Amount) * (1+PO line sales tax rate))) - PO Line Charge Amount - PO Line Charge Tax Amount.

The Extended Cost is used if Invoice Qty and Unit Price are null or zero.

If the Include Sale /VAT Tax check box is not selected on the Configure Purchase Order Voucher Settings screen, the Voucher Line Total Discrepancy Amount = Original PO Line Vouchered Amount + (PO Voucher Line (Invoice Qty * Unit Cost) or (Extended Cost)) -  (PO Line Accepted Amount + PO Line Rejected but Pay Amount) - PO Line Charge Amount.

Receipt Discrepancy Processing

This function allows you to specify a single warehouse or receipt ID on the voucher header input file. This allows Costpoint to search for a specific receipt for the vouchered purchase order and compare a voucher line's invoice quantity/amount, along with previously entered invoiced quantity for that warehouse or receipt, against the total receipt lines accepted or rejected pay quantities to determine if a discrepancy exists.

Note: You can only specify one warehouse or receipt per voucher. Also, this feature does not support the entry of receipt and acceptance information directly from the voucher.

When a voucher line is successfully saved, the preprocessor creates a new VCHR_LN_RECPT_LN record for any voucher lines that were saved against a purchase order line that requires 3-way individual matching.

For each such purchase order line, the preprocessor finds the associated receipt line having a Receipt ID equal to that specified in the voucher header input file (if available). Costpoint verifies the following:

  • RECPT_LN.PO_ID = VCHR_HDR.PO_ID
  • RECPT_LN.PO_RLSE_NO = VCHR_HDR.PO_RLSE_NO
  • RECPT_LN.PO_LN_KEY = VCHR_LN.PO_LN_KEY
  • RECPT_LN.RECPT_KEY = RECPT_KEY corresponding to the RECEIPT_ID in the input file header.

Then Costpoint calculates the discrepancies as follows:

  1. For each such receipt line, find the total quantity that is eligible for voucher payment. This is quantity A. Calculate A as the receipt line accepted + rejected/pay quantity (RECPT_LN.ACCPT_QTY + RECPT_LN.REJ_PAY_QTY).

  2. For each such receipt line, calculate the total quantity that has been vouchered against it. This is quantity B. Calculate B as the sum of the current voucher line input file quantity and previously vouchered quantities for that receipt line.

    Previously vouchered quantities for a particular receipt line are obtained from the sum of VCHR_LN_RECPT_LN.VCHRD_QTY for rows with a matching PO_LN_KEY and RECPT_KEY combination. (Use the RECPT_HDR.RECPT_KEY that corresponds to the input file header RECPT_ID.)

  3. For each PO line that requires matching to the individual receipts, compare A to B. This provides the discrepancy quantity, if any.

    Discrepancy Qty = B-A

    Discrepancy Qty Percent = (B-A)/A

Costpoint then assigns a voucher header receipt discrepancy code (VCHR_HDR.S_RCPT_DISCR_CD) as follows:

  • If the receipt line has a discrepancy, and the discrepancy quantity percent is over the discrepancy quantity percent threshold (VCHR_SETTINGS.DISCR_QTY_RT), Costpoint sets the discrepancy code to O.
  • If there is at least one receipt line with a discrepancy, but all of the lines are below the discrepancy quantity percent threshold, Costpoint sets the discrepancy code to U.
  • If no receipt discrepancy exists, or if no receipt matching is required, Costpoint sets the discrepancy code to N.

Depending on the header receipt discrepancy code, updates to the voucher approval status may be needed as follows:

  • If the VCHR_HDR.S_PO_DISCR_CD = O, S_RCPT_DISCR_CD = O or the HOLD_VCHR_FL = Y, Costpoint the VCHR_HDR. APPRVD_FL = N.
  • If the VOUCHER_SETTINGS.S_AUTO_APPRV_PO_CD = A (automatic), Costpoint changes the approved flag of the voucher to Y if neither the S_RCPT_DISCR_CD or S_PO_DISCR_CD is set to O.  If either of these codes = O, Costpoint sets the Approved flag to N.
  • If the VOUCHER_SETTINGS.S_AUTO_APPRV_PO_CD = L (limited), Costpoint changes the approved flag of the voucher to Y if the total invoice amount is less than or equal to the VOUCHER_SETTINGS.PO_APPRVL_REQD_AMT and neither the S_RCPT_DISCR_CD nor S_PO_DISCR_CD is set to O for the voucher. If these conditions are not met, Costpoint sets the Approved flag to N.
  • If the approved flag is set to Y, Costpoint sets the APPRVL_DTT to the system date/time and the APPRVL_USER_ID to the user ID executing the process.

Miscellaneous Processing Details

  • When you save a voucher, Costpoint updates voucher quantities and amounts on the purchase order header and purchase order line. It may also update the purchase order line and header status for 2-way match lines.
  • If the purchase order line being invoiced has a 2-way match line, the status of the purchase order line is set to S if the total vouchered quantity is greater than or equal to the order quantity, and the order quantity is greater than zero. If the purchase order line is a 2-way match line with an order quantity of zero, the status of the line is changed to S if the vouchered amount is greater than or equal to the purchase order line total amount. The invoice date is loaded in as the PO line purchase order closing date (PO_LN.PO_LN_CLOSE_DT).
  • If the transaction currency and functional currency are different, Costpoint adds the Total Before Discount Amount (PO_LN.TOT_BEF_DISC_AMT) for each PO line to the PO Line Vouchered Amount (PO_LN.VCHRD_AMT) and Transaction Currency Vouchered Amount (TRN_VCHRD_AMT) columns. The invoice quantities for each PO line's voucher line is added to the Vouchered Quantity (VCHRD_QTY). The sum of all invoiced amounts (TOT_BEF_DISC_AMT) for that PO, including invoice lines that do not reference PO lines, is added to the PO Header Vouchered Amount (PO_HDR.VCHRD_AMT) and Transaction Currency Vouchered Amount (TRN_VCHRD_AMT).
  • If the Include Sales/VAT Tax check box is not selected on the Configure Purchase Order Voucher Settings screen and the line is a zero quantity 2-way match line, Costpoint subtracts the purchase order line sales tax amount and purchase order line charge tax amount from the purchase order line when it is compared to the vouchered amount to determine whether the line should be system-closed.
  • If a line status is changed to S, the application checks all other lines on the PO. If they all have a status of S, C, or V, the status of the purchase order header is changed to S.