Description
This method can be used to find GIA mappings. It will be used by the operational programs when creating the GIA transaction.
Parameters
tGIAMapping | input-output | temp-table | Temp-table holding the Sales and Tax Payable COA combinations to be validated. If mapping is found it will be returned in this temp-table as well. |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
unused
program code (program9/bgrossincomeaccounting.p)
for each tGIAMapping
break by tGIAMapping.tcCompanyCode
on error undo, throw:
/* Initialize some tGIAMapping fields */
assign tGIAMapping.tlGIAMapAvailable = false.
if tGIAMapping.tcSalesDivisionCode = ?
then assign tGIAMapping.tcSalesDivisionCode = ''.
if tGIAMapping.tcSalesCostCentreCode = ?
then assign tGIAMapping.tcSalesCostCentreCode = ''.
if tGIAMapping.tcSalesProjectCode = ?
then assign tGIAMapping.tcSalesProjectCode = ''.
if tGIAMapping.tcTaxDivisionCode = ?
then assign tGIAMapping.tcTaxDivisionCode = ''.
/* =========================================================================== */
/* For each new company used in the temp-table, check if it is using GIA */
/* If it is not using GIA, we will skipp all records defined with this company */
/* =========================================================================== */
if first-of(tGIAMapping.tcCompanyCode)
then do:
assign vlCompanyIsDefinedWithGIA = false.
<Q-5 run CompanyPropertyByCompany (all) (Read) (NoCache)
(input 0, (CompanyId)
input tGIAMapping.tcCompanyCode, (CompanyCode)
input '', (CurrencyCode)
output dataset tqCompanyPropertyByCompany) in BCompanyProperty >
find tqCompanyPropertyByCompany where
tqCompanyPropertyByCompany.tcCompanyCode = tGIAMapping.tcCompanyCode and
tqCompanyPropertyByCompany.tlCompanyPropertyIsGrIncAcc = true
no-error.
if available tqCompanyPropertyByCompany
then do:
assign vlCompanyIsDefinedWithGIA = true.
/* Retrieve mappings for this company */
<Q-11 run GrossIncAccForAllFields (all) (Read) (NoCache)
(input tqCompanyPropertyByCompany.tiCompany_ID, (CompanyId)
input 0, (GrossIncAccId)
input 0, (SalesGLId)
input '', (SalesGLCode)
input 0, (SalesDivisionId)
input '', (SalesDivisionCode)
input 0, (SalesCostCentreId)
input '', (SalesCostCentreCode)
input 0, (SalesProjectId)
input '', (SalesProjectCode)
input 0, (TaxPayableGLId)
input '', (TaxPayableGLCode)
input 0, (TaxPayableDivisionId)
input '', (TaxPayableDivisionCode)
output dataset tqGrossIncAccForAllFields) in BGrossIncomeAccounting >
/* initialize the non-mandatory fields that have unknown value */
for each tqGrossIncAccForAllFields on error undo, throw:
if tqGrossIncAccForAllFields.tcSalesDivisionCode = ?
then assign tqGrossIncAccForAllFields.tcSalesDivisionCode = ''.
if tqGrossIncAccForAllFields.tcSalesCostCentreCode = ?
then assign tqGrossIncAccForAllFields.tcSalesCostCentreCode = ''.
if tqGrossIncAccForAllFields.tcSalesProjectCode = ?
then assign tqGrossIncAccForAllFields.tcSalesProjectCode = ''.
if tqGrossIncAccForAllFields.tcTaxPayableDivisionCode = ?
then assign tqGrossIncAccForAllFields.tcTaxPayableDivisionCode = ''.
end. /* for each tqGrossIncAccForAllFields on error undo, throw: */
end. /* if available tqCompanyPropertyByCompany */
end. /* if first-of(tGIAMapping.tcCompanyCode) */
if vlCompanyIsDefinedWithGIA = false
then next.
/* ============================================== */
/* Check if this combination is mapped for GIA */
/* 8 different combinations will be used to check */
/* ============================================== */
/* 1. Sales GL Div CC Proj, Tax GL Division, Div Flag NO, CC Flag NO, Proj Flag NO */
find tqGrossIncAccForAllFields where
tqGrossIncAccForAllFields.tcSalesGLCode = tGIAMapping.tcSalesGLCode and
tqGrossIncAccForAllFields.tcSalesDivisionCode = tGIAMapping.tcSalesDivisionCode and
tqGrossIncAccForAllFields.tcSalesCostCentreCode = tGIAMapping.tcSalesCostCentreCode and
tqGrossIncAccForAllFields.tcSalesProjectCode = tGIAMapping.tcSalesProjectCode and
tqGrossIncAccForAllFields.tcTaxPayableGLCode = tGIAMapping.tcTaxGLCode and
tqGrossIncAccForAllFields.tcTaxPayableDivisionCode = tGIAMapping.tcTaxDivisionCode and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllDivision = false and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllCostCentre = false and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllProject = false
no-error.
if available tqGrossIncAccForAllFields
then do:
assign tGIAMapping.tcTaxExpGLCode = tqGrossIncAccForAllFields.tcTaxExpenseGLCode
tGIAMapping.tcTaxExpDivisionCode = tqGrossIncAccForAllFields.tcTaxExpenseDivisionCode
tGIAMapping.tcTaxExpCostCentreCode = tqGrossIncAccForAllFields.tcTaxExpenseCostCentreCode
tGIAMapping.tcTaxExpProjectCode = tqGrossIncAccForAllFields.tcTaxExpenseProjectCode
tGIAMapping.tcJournalCode = tqGrossIncAccForAllFields.tcJournalCode
tGIAMapping.tlGIAMapAvailable = true.
next.
end. /* if available tqGrossIncAccForAllFields */
/* 2. Sales GL CC Proj, Tax GL Division, Div Flag YES, CC Flag NO, Proj Flag NO */
find tqGrossIncAccForAllFields where
tqGrossIncAccForAllFields.tcSalesGLCode = tGIAMapping.tcSalesGLCode and
tqGrossIncAccForAllFields.tcSalesCostCentreCode = tGIAMapping.tcSalesCostCentreCode and
tqGrossIncAccForAllFields.tcSalesProjectCode = tGIAMapping.tcSalesProjectCode and
tqGrossIncAccForAllFields.tcTaxPayableGLCode = tGIAMapping.tcTaxGLCode and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllDivision = true and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllCostCentre = false and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllProject = false
no-error.
if available tqGrossIncAccForAllFields
then do:
assign tGIAMapping.tcTaxExpGLCode = tqGrossIncAccForAllFields.tcTaxExpenseGLCode
tGIAMapping.tcTaxExpDivisionCode = tqGrossIncAccForAllFields.tcTaxExpenseDivisionCode
tGIAMapping.tcTaxExpCostCentreCode = tqGrossIncAccForAllFields.tcTaxExpenseCostCentreCode
tGIAMapping.tcTaxExpProjectCode = tqGrossIncAccForAllFields.tcTaxExpenseProjectCode
tGIAMapping.tcJournalCode = tqGrossIncAccForAllFields.tcJournalCode
tGIAMapping.tlGIAMapAvailable = true.
next.
end. /* if available tqGrossIncAccForAllFields */
/* 3. Sales GL Div Proj, Tax GL Division, Div Flag NO, CC Flag YES, Proj Flag NO */
find tqGrossIncAccForAllFields where
tqGrossIncAccForAllFields.tcSalesGLCode = tGIAMapping.tcSalesGLCode and
tqGrossIncAccForAllFields.tcSalesDivisionCode = tGIAMapping.tcSalesDivisionCode and
tqGrossIncAccForAllFields.tcSalesProjectCode = tGIAMapping.tcSalesProjectCode and
tqGrossIncAccForAllFields.tcTaxPayableGLCode = tGIAMapping.tcTaxGLCode and
tqGrossIncAccForAllFields.tcTaxPayableDivisionCode = tGIAMapping.tcTaxDivisionCode and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllDivision = false and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllCostCentre = true and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllProject = false
no-error.
if available tqGrossIncAccForAllFields
then do:
assign tGIAMapping.tcTaxExpGLCode = tqGrossIncAccForAllFields.tcTaxExpenseGLCode
tGIAMapping.tcTaxExpDivisionCode = tqGrossIncAccForAllFields.tcTaxExpenseDivisionCode
tGIAMapping.tcTaxExpCostCentreCode = tqGrossIncAccForAllFields.tcTaxExpenseCostCentreCode
tGIAMapping.tcTaxExpProjectCode = tqGrossIncAccForAllFields.tcTaxExpenseProjectCode
tGIAMapping.tcJournalCode = tqGrossIncAccForAllFields.tcJournalCode
tGIAMapping.tlGIAMapAvailable = true.
next.
end. /* if available tqGrossIncAccForAllFields */
/* 4. Sales GL Div CC, Tax GL Division, Div Flag NO, CC Flag NO, Proj Flag YES */
find tqGrossIncAccForAllFields where
tqGrossIncAccForAllFields.tcSalesGLCode = tGIAMapping.tcSalesGLCode and
tqGrossIncAccForAllFields.tcSalesDivisionCode = tGIAMapping.tcSalesDivisionCode and
tqGrossIncAccForAllFields.tcSalesCostCentreCode = tGIAMapping.tcSalesCostCentreCode and
tqGrossIncAccForAllFields.tcTaxPayableGLCode = tGIAMapping.tcTaxGLCode and
tqGrossIncAccForAllFields.tcTaxPayableDivisionCode = tGIAMapping.tcTaxDivisionCode and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllDivision = false and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllCostCentre = false and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllProject = true
no-error.
if available tqGrossIncAccForAllFields
then do:
assign tGIAMapping.tcTaxExpGLCode = tqGrossIncAccForAllFields.tcTaxExpenseGLCode
tGIAMapping.tcTaxExpDivisionCode = tqGrossIncAccForAllFields.tcTaxExpenseDivisionCode
tGIAMapping.tcTaxExpCostCentreCode = tqGrossIncAccForAllFields.tcTaxExpenseCostCentreCode
tGIAMapping.tcTaxExpProjectCode = tqGrossIncAccForAllFields.tcTaxExpenseProjectCode
tGIAMapping.tcJournalCode = tqGrossIncAccForAllFields.tcJournalCode
tGIAMapping.tlGIAMapAvailable = true.
next.
end. /* if available tqGrossIncAccForAllFields */
/* 5. Sales GL Proj, Tax GL Division, Div Flag YES, CC Flag YES, Proj Flag NO */
find tqGrossIncAccForAllFields where
tqGrossIncAccForAllFields.tcSalesGLCode = tGIAMapping.tcSalesGLCode and
tqGrossIncAccForAllFields.tcSalesProjectCode = tGIAMapping.tcSalesProjectCode and
tqGrossIncAccForAllFields.tcTaxPayableGLCode = tGIAMapping.tcTaxGLCode and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllDivision = true and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllCostCentre = true and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllProject = false
no-error.
if available tqGrossIncAccForAllFields
then do:
assign tGIAMapping.tcTaxExpGLCode = tqGrossIncAccForAllFields.tcTaxExpenseGLCode
tGIAMapping.tcTaxExpDivisionCode = tqGrossIncAccForAllFields.tcTaxExpenseDivisionCode
tGIAMapping.tcTaxExpCostCentreCode = tqGrossIncAccForAllFields.tcTaxExpenseCostCentreCode
tGIAMapping.tcTaxExpProjectCode = tqGrossIncAccForAllFields.tcTaxExpenseProjectCode
tGIAMapping.tcJournalCode = tqGrossIncAccForAllFields.tcJournalCode
tGIAMapping.tlGIAMapAvailable = true.
next.
end. /* if available tqGrossIncAccForAllFields */
/* 6. Sales GL CC, Tax GL Division, Div Flag YES, CC Flag NO, Proj Flag YES */
find tqGrossIncAccForAllFields where
tqGrossIncAccForAllFields.tcSalesGLCode = tGIAMapping.tcSalesGLCode and
tqGrossIncAccForAllFields.tcSalesCostCentreCode = tGIAMapping.tcSalesCostCentreCode and
tqGrossIncAccForAllFields.tcTaxPayableGLCode = tGIAMapping.tcTaxGLCode and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllDivision = true and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllCostCentre = false and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllProject = true
no-error.
if available tqGrossIncAccForAllFields
then do:
assign tGIAMapping.tcTaxExpGLCode = tqGrossIncAccForAllFields.tcTaxExpenseGLCode
tGIAMapping.tcTaxExpDivisionCode = tqGrossIncAccForAllFields.tcTaxExpenseDivisionCode
tGIAMapping.tcTaxExpCostCentreCode = tqGrossIncAccForAllFields.tcTaxExpenseCostCentreCode
tGIAMapping.tcTaxExpProjectCode = tqGrossIncAccForAllFields.tcTaxExpenseProjectCode
tGIAMapping.tcJournalCode = tqGrossIncAccForAllFields.tcJournalCode
tGIAMapping.tlGIAMapAvailable = true.
next.
end. /* if available tqGrossIncAccForAllFields */
/* 7. Sales GL Div, Tax GL Division, Div Flag NO, CC Flag YES, Proj Flag Yes */
find tqGrossIncAccForAllFields where
tqGrossIncAccForAllFields.tcSalesGLCode = tGIAMapping.tcSalesGLCode and
tqGrossIncAccForAllFields.tcSalesDivisionCode = tGIAMapping.tcSalesDivisionCode and
tqGrossIncAccForAllFields.tcTaxPayableGLCode = tGIAMapping.tcTaxGLCode and
tqGrossIncAccForAllFields.tcTaxPayableDivisionCode = tGIAMapping.tcTaxDivisionCode and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllDivision = false and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllCostCentre = true and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllProject = true
no-error.
if available tqGrossIncAccForAllFields
then do:
assign tGIAMapping.tcTaxExpGLCode = tqGrossIncAccForAllFields.tcTaxExpenseGLCode
tGIAMapping.tcTaxExpDivisionCode = tqGrossIncAccForAllFields.tcTaxExpenseDivisionCode
tGIAMapping.tcTaxExpCostCentreCode = tqGrossIncAccForAllFields.tcTaxExpenseCostCentreCode
tGIAMapping.tcTaxExpProjectCode = tqGrossIncAccForAllFields.tcTaxExpenseProjectCode
tGIAMapping.tcJournalCode = tqGrossIncAccForAllFields.tcJournalCode
tGIAMapping.tlGIAMapAvailable = true.
next.
end. /* if available tqGrossIncAccForAllFields */
/* 8. Sales GL, Tax GL Division, Div Flag YES, CC Flag YES, Proj Flag YES */
find tqGrossIncAccForAllFields where
tqGrossIncAccForAllFields.tcSalesGLCode = tGIAMapping.tcSalesGLCode and
tqGrossIncAccForAllFields.tcTaxPayableGLCode = tGIAMapping.tcTaxGLCode and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllDivision = true and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllCostCentre = true and
tqGrossIncAccForAllFields.tlGrossIncAccIsAllProject = true
no-error.
if available tqGrossIncAccForAllFields
then do:
assign tGIAMapping.tcTaxExpGLCode = tqGrossIncAccForAllFields.tcTaxExpenseGLCode
tGIAMapping.tcTaxExpDivisionCode = tqGrossIncAccForAllFields.tcTaxExpenseDivisionCode
tGIAMapping.tcTaxExpCostCentreCode = tqGrossIncAccForAllFields.tcTaxExpenseCostCentreCode
tGIAMapping.tcTaxExpProjectCode = tqGrossIncAccForAllFields.tcTaxExpenseProjectCode
tGIAMapping.tcJournalCode = tqGrossIncAccForAllFields.tcJournalCode
tGIAMapping.tlGIAMapAvailable = true.
next.
end. /* if available tqGrossIncAccForAllFields */
end. /* for each tGIAMapping */