Description
Add code here to initialize the calculated fields of a 'new' record (= a record that must be created in the application database) in a class temp-table.
Parameters
icTableName | input | character | Name of the database table of which a record is created in the class temp-table. |
oiReturnStatus | output | integer | |
Internal usage
unused
program code (program/bddocument.p)
<ANCESTOR-CODE>
if icTableName = "DDocument":U
then do:
<Q-5 run DDocumentStatusByTypeStatusGL (Start) in BDDocumentStatus >
/* First try to find the status with Type=Cheque and Status=Init */
<Q-59 run DDocumentStatusByTypeStatusGL (all) (Read) (Cache)
(input viCompanyId, (CompanyId)
input {&PAYFORMATPAYINSTRUMENT-CHEQUE}, (DDocumentStatusDocumentType)
input {&DOCUMENTSTATUS-INIT}, (DDocumentStatusStatus)
input ?, (BankGLId)
input ?, (BankGLCode)
output dataset tqDDocumentStatusByTypeStatusGL) in BDDocumentStatus>
find first tqDDocumentStatusByTypeStatusGL where
tqDDocumentStatusByTypeStatusGL.tcDDocumentStatusDocType = {&PAYFORMATPAYINSTRUMENT-CHEQUE} and
tqDDocumentStatusByTypeStatusGL.tcDDocumentStatusStatus = {&DOCUMENTSTATUS-INIT}
no-error.
if not available tqDDocumentStatusByTypeStatusGL
then do :
/* Then try to find the status with Type=Cheque and Status<>Bounced/PaidCon/Paid */
<Q-6 run DDocumentStatusByTypeStatusGL (all) (Read) (Cache)
(input viCompanyId, (CompanyId)
input {&PAYFORMATPAYINSTRUMENT-CHEQUE}, (DDocumentStatusDocumentType)
input ?, (DDocumentStatusStatus)
input ?, (BankGLId)
input ?, (BankGLCode)
output dataset tqDDocumentStatusByTypeStatusGL) in BDDocumentStatus>
find first tqDDocumentStatusByTypeStatusGL where
tqDDocumentStatusByTypeStatusGL.tcDDocumentStatusDocType = {&PAYFORMATPAYINSTRUMENT-CHEQUE} and
tqDDocumentStatusByTypeStatusGL.tcDDocumentStatusStatus <> {&DOCUMENTSTATUS-BOUNCED} and
tqDDocumentStatusByTypeStatusGL.tcDDocumentStatusStatus <> {&DOCUMENTSTATUS-PAIDCON} and
tqDDocumentStatusByTypeStatusGL.tcDDocumentStatusStatus <> {&DOCUMENTSTATUS-PAID}
no-error.
end. /* if not available tqDDocumentStatusByTypeStatusGL */
if not available tqDDocumentStatusByTypeStatusGL
then do:
/* Then try to find the status with Status<>Bounced/PaidCon/Paid */
<Q-12 run DDocumentStatusByTypeStatusGL (all) (Read) (Cache)
(input viCompanyId, (CompanyId)
input ?, (DDocumentStatusDocumentType)
input {&DOCUMENTSTATUS-INIT}, (DDocumentStatusStatus)
input ?, (BankGLId)
input ?, (BankGLCode)
output dataset tqDDocumentStatusByTypeStatusGL) in BDDocumentStatus>
find first tqDDocumentStatusByTypeStatusGL where
tqDDocumentStatusByTypeStatusGL.tcDDocumentStatusStatus = {&DOCUMENTSTATUS-INIT}
no-error.
end. /* if not available tqDDocumentStatusByTypeStatusGL */
if not available tqDDocumentStatusByTypeStatusGL
then do:
/* Then try to find the first status */
<Q-13 run DDocumentStatusByTypeStatusGL (all) (Read) (Cache)
(input viCompanyId, (CompanyId)
input ?, (DDocumentStatusDocumentType)
input ?, (DDocumentStatusStatus)
input ?, (BankGLId)
input ?, (BankGLCode)
output dataset tqDDocumentStatusByTypeStatusGL) in BDDocumentStatus>
find first tqDDocumentStatusByTypeStatusGL
no-error.
end. /* if not available tqDDocumentStatusByTypeStatusGL */
assign tDDocument.Company_ID = viCompanyId
tDDocument.DDocumentCreationDate = today
tDDocument.DDocumentCreationTime = time
tDDocument.DDocumentDueDate = today
tDDocument.DDocumentStatus = if available tqDDocumentStatusByTypeStatusGL
then tqDDocumentStatusByTypeStatusGL.tcDDocumentStatusStatus
else "":U
tDDocument.DDocumentSubType = {&DOCUMENTSUBTYPE-MAN}
tDDocument.DDocumentTimesPrinted = 0
tDDocument.DDocumentType = if available tqDDocumentStatusByTypeStatusGL
then tqDDocumentStatusByTypeStatusGL.tcDDocumentStatusDocType
else {&PAYFORMATPAYINSTRUMENT-CHEQUE}
tDDocument.DDocumentYear = year(today)
tDDocument.tcCreationUsrLogin = vcUserLogin
tDDocument.tlInvoicesLinked = false
tDDocument.ttPostingDate = today.
if tDDocument.DDocumentStatus = {&DOCUMENTSTATUS-INIT}
then assign tDDocument.DDocumentValueDays = tqDDocumentStatusByTypeStatusGL.tiDDocumentStatusDefValDays.
<Q-9 run DDocumentStatusByTypeStatusGL (Stop) in BDDocumentStatus >
end.