project QadFinancials > class BCInvoice > method CalcAllSelectCInvoiceForExtended
query calculated fields procedure
Description
Assign a value to query calculated fields
Parameters
iiCompanyId | input | integer | Company id |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program1/bcinvoice.p)
create query vhQuery in widget-pool "non-persistent".
vhQuery:forward-only = yes.
vhQuery:set-buffers(ih_Buffer).
vhQuery:query-prepare("for each ":U + ih_Buffer:table).
vhQuery:query-open().
vhQuery:get-first().
do while not vhQuery:query-off-end:
if {&tiLinkedCInvoice_ID} <> 0 and
{&tiLinkedCInvoice_ID} <> ?
then do:
<Q-1 run CInvoiceByCyIDYearJrnlVchr (all) (Read) (Cache)
(input ?, (CompanyId)
input {&tiLinkedCInvoice_ID}, (CInvoiceId)
input ?, (PeriodYear)
input ?, (JournalId)
input ?, (JournalCode)
input ?, (Voucher)
output dataset tqCInvoiceByCyIDYearJrnlVchr) in BCInvoice >
find first tqCInvoiceByCyIDYearJrnlVchr where
tqCInvoiceByCyIDYearJrnlVchr.tiCInvoice_ID = {&tiLinkedCInvoice_ID}
no-error.
if available tqCInvoiceByCyIDYearJrnlVchr
then assign {&tcLinkedCInvoice} = substitute("&1/&2/&3":U,
tqCInvoiceByCyIDYearJrnlVchr.tiCInvoicePostingYear,
tqCInvoiceByCyIDYearJrnlVchr.tcJournalCode,
tqCInvoiceByCyIDYearJrnlVchr.tiCInvoiceVoucher).
end.
if {&tiReplacedCInvoice_ID} <> 0 and
{&tiReplacedCInvoice_ID} <> ?
then do:
<Q-2 run CInvoiceByCyIDYearJrnlVchr (all) (Read) (Cache)
(input ?, (CompanyId)
input {&tiReplacedCInvoice_ID}, (CInvoiceId)
input ?, (PeriodYear)
input ?, (JournalId)
input ?, (JournalCode)
input ?, (Voucher)
output dataset tqCInvoiceByCyIDYearJrnlVchr) in BCInvoice >
find first tqCInvoiceByCyIDYearJrnlVchr where
tqCInvoiceByCyIDYearJrnlVchr.tiCInvoice_ID = {&tiReplacedCInvoice_ID}
no-error.
if available tqCInvoiceByCyIDYearJrnlVchr
then assign {&tcReplacedCInvoice} = substitute("&1/&2/&3":U,
tqCInvoiceByCyIDYearJrnlVchr.tiCInvoicePostingYear,
tqCInvoiceByCyIDYearJrnlVchr.tcJournalCode,
tqCInvoiceByCyIDYearJrnlVchr.tiCInvoiceVoucher).
end.
if {&tcPaymentConditionPaymentTyp} = {&PAYMENTCONDITIONPAYMENTTYPE-STAGED}
then do:
assign viCount = 1
vlIsDueDateApplied = false.
for each CInvoiceStage no-lock where
CInvoiceStage.CInvoice_ID = {&tiCInvoice_ID} and
viCount <= 6
by CInvoiceStage.CInvoiceStageDueDate:
if viCount = 1
then assign {&tdOpenAmtTCStage1} = (CInvoiceStage.CInvoiceStageAmountTC - CInvoiceStage.CInvoiceStageAmtAppliedTC)
{&ttDueDateStage1} = CInvoiceStage.CInvoiceStageDueDate.
if viCount = 2
then assign {&tdOpenAmtTCStage2} = (CInvoiceStage.CInvoiceStageAmountTC - CInvoiceStage.CInvoiceStageAmtAppliedTC)
{&ttDueDateStage2} = CInvoiceStage.CInvoiceStageDueDate.
if viCount = 3
then assign {&tdOpenAmtTCStage3} = (CInvoiceStage.CInvoiceStageAmountTC - CInvoiceStage.CInvoiceStageAmtAppliedTC)
{&ttDueDateStage3} = CInvoiceStage.CInvoiceStageDueDate.
if viCount = 4
then assign {&tdOpenAmtTCStage4} = (CInvoiceStage.CInvoiceStageAmountTC - CInvoiceStage.CInvoiceStageAmtAppliedTC)
{&ttDueDateStage4} = CInvoiceStage.CInvoiceStageDueDate.
if viCount = 5
then assign {&tdOpenAmtTCStage5} = (CInvoiceStage.CInvoiceStageAmountTC - CInvoiceStage.CInvoiceStageAmtAppliedTC)
{&ttDueDateStage5} = CInvoiceStage.CInvoiceStageDueDate.
if viCount = 6
then assign {&tdOpenAmtTCStage6} = (CInvoiceStage.CInvoiceStageAmountTC - CInvoiceStage.CInvoiceStageAmtAppliedTC)
{&ttDueDateStage6} = CInvoiceStage.CInvoiceStageDueDate.
assign viCount = viCount + 1.
if (CInvoiceStage.CInvoiceStageAmountTC - CInvoiceStage.CInvoiceStageAmtAppliedTC) <> 0 and
vlIsDueDateApplied = false
then assign {&ttNextStageDueDate} = CInvoiceStage.CInvoiceStageDueDate
vlIsDueDateApplied = true.
end. /* for each CInvoiceStage */
if vlIsDueDateApplied = false
then do:
for first CInvoiceStage no-lock where
CInvoiceStage.CInvoice_ID = {&tiCInvoice_ID} and
(CInvoiceStage.CInvoiceStageAmountTC - CInvoiceStage.CInvoiceStageAmtAppliedTC) <> 0
by CInvoiceStage.CInvoiceStageDueDate:
assign {&ttNextStageDueDate} = CInvoiceStage.CInvoiceStageDueDate
vlIsDueDateApplied = true.
end. /* for first CInvoiceStage */
end. /* if vlIsDueDateApplied = false */
end. /* if {&tcPaymentConditionPaymentTyp} = {&PAYMENTCONDITIONPAYMENTTYPE-STAGED} */
vhQuery:get-next().
end.
vhQuery:query-close().
delete object vhQuery.