project QadFinancials > class BCInvoice > method CreateCInvoiceMovementsDiffCC
function returns logical
Description
Calculates possible difference in CC that should be applied in postinng when both TC and LC becomes balanced
Parameters
idDebitTC | input | decimal | |
idCreditTC | input | decimal | |
idDebitLC | input | decimal | |
idCreditLC | input | decimal | |
bdDebitCC | input-output | decimal | |
bdCreditCC | input-output | decimal | |
Internal usage
unused
program code (program7/bcinvoice.p)
assign vdNewBalanceDebitTC = 0
vdNewBalanceCreditTC = 0
vdNewBalanceDebitLC = 0
vdNewBalanceCreditLC = 0
vdNewBalanceDebitCC = 0
vdNewBalanceCreditCC = 0
vdNewBalanceTC = 0
vdNewBalanceLC = 0
vdNewBalanceCC = 0
idDebitTC = if idDebitTC = ? then 0 else idDebitTC
idCreditTC = if idCreditTC = ? then 0 else idCreditTC
idDebitLC = if idDebitLC = ? then 0 else idDebitLC
idCreditLC = if idCreditLC = ? then 0 else idCreditLC
bdDebitCC = if bdDebitCC = ? then 0 else bdDebitCC
bdCreditCC = if bdCreditCC = ? then 0 else bdCreditCC.
if tCInvoice.CInvoiceBalanceDebitTC <> ? and tCInvoice.CInvoiceBalanceDebitTC <> 0
then assign vdNewBalanceDebitTC = tCInvoice.CInvoiceBalanceDebitTC - idCreditTC + idDebitTC
vdNewBalanceDebitLC = tCInvoice.CInvoiceBalanceDebitLC - idCreditLC + idDebitLC
vdNewBalanceDebitCC = tCInvoice.CInvoiceBalanceDebitCC - bdCreditCC + bdDebitCC.
else do:
if tCInvoice.CInvoiceBalanceCreditTC <> ? and tCInvoice.CInvoiceBalanceCreditTC <> 0
then assign vdNewBalanceCreditTC = tCInvoice.CInvoiceBalanceCreditTC + idCreditTC - idDebitTC
vdNewBalanceCreditLC = tCInvoice.CInvoiceBalanceCreditLC + idCreditLC - idDebitLC
vdNewBalanceCreditCC = tCInvoice.CInvoiceBalanceCreditCC + bdCreditCC - bdDebitCC.
else assign vdNewBalanceDebitTC = idDebitTC
vdNewBalanceDebitLC = idDebitLC
vdNewBalanceDebitCC = bdDebitCC
vdNewBalanceCreditTC = idCreditTC
vdNewBalanceCreditLC = idCreditLC
vdNewBalanceCreditCC = bdCreditCC.
end.
assign vdNewBalanceTC = vdNewBalanceDebitTC - vdNewBalanceCreditTC
vdNewBalanceLC = vdNewBalanceDebitLC - vdNewBalanceCreditLC
vdNewBalanceCC = vdNewBalanceDebitCC - vdNewBalanceCreditCC.
if vdNewBalanceTC = 0 and
vdNewBalanceLC = 0 and
vdNewBalanceCC <> 0
then do:
/*as the above calculated balances vdNewBalanceDebitCC, vdNewBalanceCreditCC can be both + or -
I can always use this formula "+ vdNewBalanceDebitCC + vdNewBalanceCreditCC" so to get the right CC amounts */
if tCInvoice.CInvoiceBalanceDebitTC <> ? and tCInvoice.CInvoiceBalanceDebitTC <> 0
then do:
if bdDebitCC <> 0
then assign bdDebitCC = bdDebitCC + vdNewBalanceDebitCC + vdNewBalanceCreditCC.
else if bdCreditCC <> 0
then assign bdCreditCC = bdCreditCC + vdNewBalanceDebitCC + vdNewBalanceCreditCC.
end.
else do:
if tCInvoice.CInvoiceBalanceCreditTC <> ? and tCInvoice.CInvoiceBalanceCreditTC <> 0
then do:
if bdDebitCC <> 0
then assign bdDebitCC = bdDebitCC + vdNewBalanceDebitCC + vdNewBalanceCreditCC.
else if bdCreditCC <> 0
then assign bdCreditCC = bdCreditCC + vdNewBalanceDebitCC + vdNewBalanceCreditCC.
end.
end.
return true.
end.
return false.