project QadFinancials > class BJournal > method PreValidateComponent
Description
Validations that are done before the ancestor code of ValidateComponent.
- Layercode should be filled in with an existing value.
- Validate if the journaltype is allowed, based on the correction control settings.
- The combination of journal type and layer code should be unique for revaluation journals.
Parameters
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program1/bjournal.p)
assign vlJournalGroupByCodeByIDStart = false.
for each t_sJournal where
t_sJournal.tc_Status = "N":U or
t_sJournal.tc_Status = "C":U:
/* Check to see if Journal Groups are in use. Note: tlJournalGroupIsEnabled is set in the calculate method */
if t_sJournal.tlJournalGroupsIsEnabled and t_sJournal.tcJournalGroupCode = ""
then do:
<M-28 run SetMessage
(input #T-28'Daybook Groups are enabled for this Shared Set, you must specify a Daybook Group Code for Daybook $1':255(999890768)T-28# (icMessage),
input t_sJournal.JournalCode (icArguments),
input 'tJournal.tcJournalGroupCode' (icFieldName),
input t_sJournal.tcJournalGroupCode (icFieldValue),
input 'E' (icType),
input 3 (iiSeverity),
input t_sJournal.tc_rowid (icRowid),
input 'QadFin-9295':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output vifcReturnSuper (oiReturnStatus)) in BJournal>
assign oireturnstatus = -1.
end.
else if not(t_sJournal.tlJournalGroupsIsEnabled) and t_sJournal.tcJournalGroupCode <> ""
then do:
<M-29 run SetMessage
(input #T-31'Daybook Groups are not enabled for this Shared Set. Daybook Group Code must be blank for Daybook $1':255(999890769)T-31# (icMessage),
input t_sJournal.JournalCode (icArguments),
input 'tJournal.tcJournalGroupCode' (icFieldName),
input t_sJournal.tcJournalGroupCode (icFieldValue),
input 'E' (icType),
input 3 (iiSeverity),
input t_sJournal.tc_rowid (icRowid),
input 'QadFin-9296':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output vifcReturnSuper (oiReturnStatus)) in BJournal>
assign oireturnstatus = -1.
end.
else if t_sJournal.tlJournalGroupsIsEnabled and t_sJournal.tcJournalGroupCode <> ""
then do:
if not(vlJournalGroupByCodeByIDStart)
then do:
<Q-35 run JournalGroupByCodeByID (Start) in BJournalGroup >
assign vlJournalGroupByCodeByIDStart = true.
end.
<Q-34 run JournalGroupByCodeByID (all) (Read) (NoCache)
(input t_sJournal.tcJournalGroupCode, (JournalGroupCode)
input ?, (JournalGroupId)
input true, (JournalGroupIsActive)
input viCompanyID, (CompanyId)
output dataset tqJournalGroupByCodeByID) in BJournalGroup >
find first tqJournalGroupByCodeByID where tqJournalGroupByCodeByID.tcJournalGroupCode = t_sJournal.tcJournalGroupCode no-lock no-error.
if not available(tqJournalGroupByCodeByID)
then do:
<M-32 run SetMessage
(input #T-33'Daybook Groups are enabled for this Shared Set. Daybook Group Code $1 must be a valid active Daybook Group Daybook $2':255(999890859)T-33# (icMessage),
input t_sjournal.tcjournalGroupCode + chr(2) + t_sJournal.JournalCode (icArguments),
input 'tJournal.tcJournalGroupCode' (icFieldName),
input t_sJournal.tcJournalGroupCode (icFieldValue),
input 'E' (icType),
input 3 (iiSeverity),
input t_sJournal.tc_rowid (icRowid),
input 'QadFin-9377':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output vifcReturnSuper (oiReturnStatus)) in BJournal>
assign oireturnstatus = -1.
end.
end.
/* validate JournalTypeCode by correction control flag */
<Q-8 run GLCorrectionControlByDomain (all) (Read) (NoCache)
(input vcDomainCode, (DomainCode)
output dataset tqGLCorrectionControlByDomain) in BMFGGLCorrectionControl >
find first tqGLCorrectionControlByDomain no-error.
if available tqGLCorrectionControlByDomain
then do:
if tqGLCorrectionControlByDomain.tlglcor_ap = false
then do:
if t_sJournal.JournalTypeCode = {&JOURNALTYPE-CREDITORINVOICECORRECT} or
t_sJournal.JournalTypeCode = {&JOURNALTYPE-CREDITORCREDITNOTECORRECT}
then do:
assign vcMessage = #T-18'The Daybook Type cannot be selected due to the AP correction control setting':120(64210)T-18#.
<M-10 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tJournal.JournalTypeCode':U (icFieldName),
input t_sJournal.JournalTypeCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sJournal.tc_Rowid (icRowid),
input 'QadFin-5471':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BJournal>
assign oiReturnStatus = -1.
end. /* end of if t_sJournal.JournalTypeCode = {&JOURNALTYPE-CREDITORINVOICECORRECT} */
end. /* end of if tqGLCorrectionControlByDomain.tlglcor_ap = false */
if tqGLCorrectionControlByDomain.tlglcor_ar = false
then do:
if t_sJournal.JournalTypeCode = {&JOURNALTYPE-DEBTORINVOICECORRECT} or
t_sJournal.JournalTypeCode = {&JOURNALTYPE-DEBTORCREDITNOTECORRECT}
then do:
assign vcMessage = #T-25'You cannot select a Customer Invoice Corrections daybook unless you have activated Accounts Receivable in the AP AR Corrections frame of GL Correction Control':255(999890426)T-25#.
<M-11 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tJournal.JournalTypeCode':U (icFieldName),
input t_sJournal.JournalTypeCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sJournal.tc_Rowid (icRowid),
input 'QadFin-5472':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BJournal>
assign oiReturnStatus = -1.
end. /* end of if t_sJournal.JournalTypeCode = {&JOURNALTYPE-CREDITORINVOICECORRECT} */
end. /* end of if tqGLCorrectionControlByDomain.tlglcor_ap = false */
end. /* end of if available ... */
/* For Revaluation Daybooks Daybook type and Layer Code should be unique */
if t_sJournal.tc_Status = "N":U and
can-do ({&JOURNALTYPE-REVALCREDITOR} + ",":U + {&JOURNALTYPE-REVALCREDITORDOC} + ",":U + {&JOURNALTYPE-REVALDEBTOR}
+ ",":U + {&JOURNALTYPE-REVALDEBTORDOC} + ",":U + {&JOURNALTYPE-REVALGL}
+ ",":U + {&JOURNALTYPE-REVALINTERCO} + ",":U + {&JOURNALTYPE-REVALVAT}
,t_sJournal.JournalTypeCode )
then do:
<Q-24 assign vlFcQueryRecordsAvailable = JournalByJournalTypeLayerType (NoCache)
(input viCompanyId, (CompanyId)
input t_sJournal.JournalTypeCode, (JournalTypeCode)
input t_sJournal.tcLayerCode, (LayerCode)
input true, (JournalIsActive)) in BJournal >
if vlFcQueryRecordsAvailable <> false
then do:
assign vcMessage = #T-21'The combination of Daybook type and Layer Code should be unique for revaluation daybooks.':160(65709)T-21#.
assign oiReturnStatus = -1.
<M-22 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sJournal.tc_Rowid (icRowid),
input 'QadFin-7327':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BJournal>
end. /* end of if vlFcQueryRecordsAvailable = true */
end. /* end of if t_sJournal.tc_Status = "N":U and ... */
end. /* end of for each */
if vlJournalGroupByCodeByIDStart
then do:
<Q-36 run JournalGroupByCodeByID (Stop) in BJournalGroup >
end.