project QadFinancials > class BDInvoice > method ValidateComponentAllJournal
Description
This method is a submethod of ValidateComponentAll.
This method validates the Journal of the debtor invoice.
Parameters
blstartJrnlByJrnlIDCodeType | input-output | logical | is query tqJournalByJournalIDCodeType already started or not ? |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program5/bdinvoice.p)
for each t_sDInvoice where
t_sDInvoice.tc_Status <> "D":U :
if can-find(first t_sDInvoiceOpInfo where
t_sDInvoiceOpInfo.tc_ParentRowid = t_sDInvoice.tc_Rowid and
t_sDInvoiceOpInfo.tc_Rowid <> "D":U)
then next.
if can-find(first t_sDInvoiceMovement where
t_sDInvoiceMovement.DInvoice_ID = t_sDInvoice.DInvoice_ID and
t_sDInvoiceMovement.DInvoiceMovementType = {&MOVEMENTTYPE-MOVEMENT} and
t_sDInvoiceMovement.tc_Status = "N":U)
then next.
if t_sDInvoice.tcJournalCode <> "":U and t_sDInvoice.tcJournalCode <> ?
then do:
if blstartJrnlByJrnlIDCodeType = false
then do:
<Q-14 run JournalByJournalIDCodeType (Start) in BJournal >
assign blstartJrnlByJrnlIDCodeType = true.
end.
<Q-13 run JournalByJournalIDCodeType (all) (Read) (NoCache)
(input ?, (CompanyId)
input t_sDInvoice.Journal_ID, (JournalID)
input ?, (JournalCode)
input ?, (JournalTypeCode)
output dataset tqJournalByJournalIDCodeType) in BJournal >
find first tqJournalByJournalIDCodeType where
tqJournalByJournalIDCodeType.tiJournal_ID = t_sDInvoice.Journal_ID
no-lock no-error.
if not available tqJournalByJournalIDCodeType
then do:
assign vcMessage = trim(substitute(#T-4'Daybook &1 is not defined in the system.':150(60889)T-4#, t_sDInvoice.tcJournalCode))
oiReturnStatus = -1.
<M-2 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tDInvoice.tcJournalCode':U (icFieldName),
input t_sDInvoice.tcJournalCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sDInvoice.tc_Rowid (icRowid),
input 'QadFin-6176':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BDInvoice>
return.
end.
if tqJournalByJournalIDCodeType.tlJournalIsActive = false
then do:
assign vcMessage = #T-8'Only active daybooks are allowed.':150(1077)T-8#
oiReturnStatus = -1.
<M-7 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'DInvoice.Journal_ID':U (icFieldName),
input t_sDInvoice.Journal_ID (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sDInvoice.tc_Rowid (icRowid),
input 'QadFin-7417':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BDInvoice>
end.
if tqJournalByJournalIDCodeType.tcJournalControl <> {&JOURNALCONTROL-FINANCIAL}
then do:
assign vcMessage = trim(substitute(#T-5'Thhe daybook is defined with an invalid daybook control (&1).':150(60885)T-5#, tqJournalByJournalIDCodeType.tcJournalControl)) + chr(10) +
trim(substitute(#T-6'Only &1 daybook controls are allowed.':150(60886)T-6#,{&JOURNALCONTROL-FINANCIAL-TR}))
oiReturnStatus = -1.
<M-3 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tDInvoice.tcJournalCode':U (icFieldName),
input t_sDInvoice.tcJournalCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sDInvoice.tc_Rowid (icRowid),
input 'QadFin-6177':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BDInvoice>
end.
if (t_sDInvoice.DInvoiceType = {&INVOICETYPE-INVOICE} and
tqJournalByJournalIDCodeType.tcJournalTypeCode <> {&JOURNALTYPE-DEBTORINVOICE} and
tqJournalByJournalIDCodeType.tcJournalTypeCode <> {&JOURNALTYPE-SELFBILLINVOICE}) or
(t_sDInvoice.DInvoiceType = {&INVOICETYPE-FINANCECHARGE} and
tqJournalByJournalIDCodeType.tcJournalTypeCode <> {&JOURNALTYPE-DEBTORFINANCECHARGE}) or
(t_sDInvoice.DInvoiceType = {&INVOICETYPE-CREDITNOTE} and
tqJournalByJournalIDCodeType.tcJournalTypeCode <> {&JOURNALTYPE-DEBTORCREDITNOTE}) or
(t_sDInvoice.DInvoiceType = {&INVOICETYPE-INVOICECORRECTION} and
tqJournalByJournalIDCodeType.tcJournalTypeCode <> {&JOURNALTYPE-DEBTORINVOICECORRECT}) or
(t_sDInvoice.DInvoiceType = {&INVOICETYPE-CREDITNOTECORRECTION} and
tqJournalByJournalIDCodeType.tcJournalTypeCode <> {&JOURNALTYPE-DEBTORCREDITNOTECORRECT}) or
(t_sDInvoice.DInvoiceType = {&INVOICETYPE-DEDUCTION} and
tqJournalByJournalIDCodeType.tcJournalTypeCode <> {&JOURNALTYPE-DEDUCTION})
then do:
assign vcMessage = trim(substitute(#T-10'The daybook has an invalid daybook type (&1).':150(1078)T-10#,tqJournalByJournalIDCodeType.tcJournalTypeCode)) + chr(10) +
trim(substitute(#T-11'You can only specify the following daybook types: &1, &2, &3, &4, &5, &6,&7.':150(664236560)T-11#,{&JOURNALTYPE-DEBTORINVOICE-TR},{&JOURNALTYPE-DEBTORCREDITNOTE-TR},{&JOURNALTYPE-DEBTORFINANCECHARGE-TR},{&JOURNALTYPE-DEBTORINVOICECORRECT-TR},{&JOURNALTYPE-DEBTORCREDITNOTECORRECT-TR},{&JOURNALTYPE-SELFBILLINVOICE-TR},{&JOURNALTYPE-DEDUCTION}))
oiReturnStatus = -1.
<M-9 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'Dinvoice.Journal_ID':U (icFieldName),
input t_sDInvoice.DInvoiceType (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sDInvoice.tc_Rowid (icRowid),
input 'QadFin-7428':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BDInvoice>
end.
end.
end.