Description
Assign the Statutory Currency Amounts based on the amounts in TC and the exchange Rate between TC and the newly entered SC.
Split into detail method, because main method would get to big.
Parameters
ocErrorMessage | output | character | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program1/tsetstatutorycurrency.p)
assign oiReturnStatus = -98
viLocalReturnStatus = 0.
STATCURRDETBLOCK:
do on error undo, return:
/* DInvoice */
for each Company of Domains,
each DInvoice of Company exclusive-lock Transaction:
/* Get Exchange Rates */
<M-28 run GetExchangeRate
(input DInvoice.DInvoiceCurrency_ID (iiFromCurrencyID),
input viNewSCID (iiToCurrencyID),
input viSCExchangeRateTypeID (iiExchangeRateTypeID),
input DInvoice.DInvoicePostingDate (itDate),
input viExchangeRateSharedSetID (iiSharedSetID),
output vdRate (odExchangeRate),
output vdScale (odExchangeRateScale),
output ocErrorMessage (ocErrorMessage),
output viFcReturnSuper (oiReturnStatus)) in TSetStatutoryCurrency>
if viFcReturnSuper <> 0
then assign viLocalReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then leave STATCURRDETBLOCK.
assign DInvoice.DInvoiceBalanceCC = <M-29 RoundSCAmount (input DInvoice.DInvoiceBalanceTC * vdRate * vdScale (idUnroundedAmount)) in TSetStatutoryCurrency>
DInvoice.DInvoiceBalanceCreditCC = <M-30 RoundSCAmount (input DInvoice.DInvoiceBalanceCreditTC * vdRate * vdScale (idUnroundedAmount)) in TSetStatutoryCurrency>
DInvoice.DInvoiceBalanceDebitCC = <M-31 RoundSCAmount (input DInvoice.DInvoiceBalanceDebitTC * vdRate * vdScale (idUnroundedAmount)) in TSetStatutoryCurrency>
DInvoice.DInvoiceNonDiscAmtCC = <M-32 RoundSCAmount (input DInvoice.DInvoiceNonDiscAmtTC * vdRate * vdScale (idUnroundedAmount)) in TSetStatutoryCurrency>
DInvoice.DInvoiceOriginalCreditCC = <M-33 RoundSCAmount (input DInvoice.DInvoiceOriginalCreditTC * vdRate * vdScale (idUnroundedAmount)) in TSetStatutoryCurrency>
DInvoice.DInvoiceOriginalDebitCC = <M-34 RoundSCAmount (input DInvoice.DInvoiceOriginalDebitTC * vdRate * vdScale (idUnroundedAmount)) in TSetStatutoryCurrency>
DInvoice.DInvoiceVatBaseCreditCC = <M-35 RoundSCAmount (input DInvoice.DInvoiceVatBaseCreditTC * vdRate * vdScale (idUnroundedAmount)) in TSetStatutoryCurrency>
DInvoice.DInvoiceVatBaseDebitCC = <M-36 RoundSCAmount (input DInvoice.DInvoiceVatBaseDebitTC * vdRate * vdScale (idUnroundedAmount)) in TSetStatutoryCurrency>
DInvoice.DInvoiceVatCreditCC = <M-37 RoundSCAmount (input DInvoice.DInvoiceVatCreditTC * vdRate * vdScale (idUnroundedAmount)) in TSetStatutoryCurrency>
DInvoice.DInvoiceVatDebitCC = <M-38 RoundSCAmount (input DInvoice.DInvoiceVatDebitTC * vdRate * vdScale (idUnroundedAmount)) in TSetStatutoryCurrency>
DInvoice.DInvoiceCCRate = vdRate
DInvoice.DInvoiceCCScale = vdScale.
/* DInvoiceStage */
for each DInvoiceStage of DInvoice exclusive-lock:
assign DInvoiceStage.DInvoiceStageAmountCC = <M-39 RoundSCAmount (input DInvoiceStage.DInvoiceStageAmountTC * vdRate * vdScale (idUnroundedAmount)) in TSetStatutoryCurrency>.
end. /* DInvoiceStage */
/* DInvoiceVat */
for each DInvoiceVat of DInvoice exclusive-lock:
assign DInvoiceVat.DInvoiceVatVatBaseCreditCC = <M-40 RoundSCAmount (input DInvoiceVat.DInvoiceVatVatBaseCreditTC * vdRate * vdScale (idUnroundedAmount)) in TSetStatutoryCurrency>
DInvoiceVat.DInvoiceVatVatBaseDebitCC = <M-41 RoundSCAmount (input DInvoiceVat.DInvoiceVatVatBaseDebitTC * vdRate * vdScale (idUnroundedAmount)) in TSetStatutoryCurrency>
DInvoiceVat.DInvoiceVatVatCreditCC = <M-42 RoundSCAmount (input DInvoiceVat.DInvoiceVatVatCreditTC * vdRate * vdScale (idUnroundedAmount)) in TSetStatutoryCurrency>
DInvoiceVat.DInvoiceVatVatDebitCC = <M-43 RoundSCAmount (input DInvoiceVat.DInvoiceVatVatDebitTC * vdRate * vdScale (idUnroundedAmount)) in TSetStatutoryCurrency>.
end. /* DInvoiceVat */
/* DInvoiceDeduction */
for each DInvoiceDeduction of DInvoice exclusive-lock:
assign DInvoiceDeduction.DInvoiceDeductionCC = <M-2 RoundSCAmount (input DInvoiceDeduction.DInvoiceDeductionTC * vdRate * vdScale (idUnroundedAmount)) in TSetStatutoryCurrency>.
end. /* DInvoiceDeduction */
end. /* DInvoice */
end. /* STATCURRDETBLOCK */
assign oiReturnStatus = viLocalReturnStatus.