Parameters
iiCompanyId | input | integer | |
itPostingDateFrom | input | date | |
itPostingDateTo | input | date | |
icPostingCreator | input | character | |
icPostingVerifier | input | character | |
itCreationDate | input | date | |
itVerificationDate | input | date | |
icReference | input | character | |
iiPostingPeriod | input | integer | |
iiPostingYear | input | integer | |
iiPostingVoucher | input | integer | |
icJournalCodeFrom | input | character | |
icJournalCodeTo | input | character | |
icJournalTypeCode | input | character | |
icApproveStatus | input | character | |
icVerifyStatus | input | character | |
icActivityCode | input | character | |
tPostingStatusChange | output | temp-table | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program1/bjournalentry.p)
assign oiReturnStatus = -98
viLocalReturnStatus = 0
vlUsrQueryStarted = false
viVerifierUsr_ID = ?.
/* Normalize input paramters */
if iiCompanyId = 0 or iiCompanyId = ?
then assign iiCompanyId = viCompanyId.
POSTINGSTATUSCHANGEBLOCK:
do on error undo, leave:
empty temp-table tStatusDataDictionaryVerify.
empty temp-table tStatusDataDictionaryApprove.
/* ======================= */
/* Clear the instance Data */
/* ======================= */
<M-6 run ClearData (output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
if viFcReturnSuper <> 0 and viLocalReturnStatus >= 0
then assign viLocalReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then leave POSTINGSTATUSCHANGEBLOCK.
/* ============================================= */
/* Retrieve the data and load it in the instance */
/* ============================================= */
if icActivityCode = 'Verify':U or icActivityCode = 'Approve':U
then do:
empty temp-table tPostingStatusChange.
/* set the ranges for dates */
<M-98 run GetDateRangeParameters
(input-output itPostingDateFrom (btFromDate),
input-output itPostingDateTo (btToDate),
output vtPostingDate (otOneDate),
output oiReturnStatus (oiReturnStatus)) in BJournalEntry>
/* set the ranges for journal codes */
<M-91 run GetCharacterRangeParameters
(input-output icJournalCodeFrom (bcFromChar),
input-output icJournalCodeTo (bcToChar),
output vcJournalCode (ocOneChar),
output oiReturnStatus (oiReturnStatus)) in BJournalEntry>
if icActivityCode = 'Verify':U
then do:
<Q-5 run PostingByVerifyStatus (all) (Read) (NoCache)
(input iiCompanyId, (CompanyId)
input itPostingDateFrom, (PostingDateFrom)
input itPostingDateTo, (PostingDateTo)
input itCreationDate, (PostingSystemDate)
input icReference, (PostingText)
input iiPostingyear, (PostingYear)
input iiPostingVoucher, (PostingVoucher)
input icVerifyStatus, (PostingVerifyStatus)
input icJournalCodeFrom, (JournalCodeFrom)
input icPostingCreator, (UsrLogin)
input iiPostingPeriod, (PeriodPeriod)
input icJournalCodeTo, (JournalCodeTo)
input icJournalTypeCode, (JournalTypeCode)
input vtPostingDate, (PostingDate)
input vcJournalCode, (JournalCode)
output dataset tqPostingByVerifyStatus) in BJournalEntry>
for each tqPostingByVerifyStatus:
create tPostingStatusChange.
<M-18 run BufferCopy
(input buffer tqPostingByVerifyStatus:Handle (ihFrom),
input buffer tPostingStatusChange:Handle (ihTo),
output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
if viFcReturnSuper <> 0 and viLocalReturnStatus >= 0
then viLocalReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then leave POSTINGSTATUSCHANGEBLOCK.
end.
end. /* end of Verify Activity*/
else do:
if icPostingVerifier <> '':U and icPostingVerifier <> ?
then do:
<Q-3 run UserByUsrLogin (all) (Read) (NoCache)
(input icPostingVerifier, (UsrLogin)
output dataset tqUserByUsrLogin) in BUser>
find first tqUserByUsrLogin no-error.
if not available tqUserByUsrLogin
then leave POSTINGSTATUSCHANGEBLOCK.
else assign viVerifierUsr_ID = tqUserByUsrLogin.tiUsr_ID.
end. /* if icPostingVerifier <> '':U and icPostingVerifier <> ? */
<Q-9 run PostingByApproveStatus (all) (Read) (NoCache)
(input iiCompanyId, (CompanyId)
input itPostingDateFrom, (PostingDateFrom)
input itPostingDateTo, (PostingDateTo)
input itVerificationDate, (PostingVerifiedDate)
input icReference, (PostingText)
input iiPostingYear, (PostingYear)
input iiPostingVoucher, (PostingVoucher)
input icApproveStatus, (PostingApproveStatus)
input icJournalCodeFrom, (JournalCodeFrom)
input icPostingCreator, (UsrLogin)
input iiPostingPeriod, (PeriodPeriod)
input itCreationDate, (PostingSystemDate)
input viVerifierUsr_ID, (LastVerifiedUsr_ID)
input icVerifyStatus, (PostingVerifyStatus)
input icJournalCodeTo, (JournalCodeTo)
input icJournalTypeCode, (JournalTypeCode)
input vtPostingDate, (PostingDate)
input vcJournalCode, (JournalCode)
output dataset tqPostingByApproveStatus) in BJournalEntry>
for each tqPostingByApproveStatus:
create tPostingStatusChange.
<M-59 run BufferCopy
(input buffer tqPostingByApproveStatus:Handle (ihFrom),
input buffer tPostingStatusChange:Handle (ihTo),
output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
if viFcReturnSuper <> 0 and viLocalReturnStatus >= 0
then viLocalReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then leave POSTINGSTATUSCHANGEBLOCK.
end.
end. /* end of Approve Activity*/
/* ================================== */
/* create tPostingStatusChange for UI */
/* ================================== */
for each tPostingStatusChange:
/*Reinitializing class level variable with null values so as to get new translated value next time when the call is done to above metnods*/
assign vcPostingVerifyStatusAll = '':U
vcPostingApproveStatusAll = '':U.
/* dont want to get the translatable string each time, so store it in a temp table */
find first tStatusDataDictionaryVerify where tStatusDataDictionaryVerify.tcKey = tPostingStatusChange.PostingVerifyStatus no-lock no-error.
if available tStatusDataDictionaryVerify then
assign tPostingStatusChange.PostingVerifyStatus = tStatusDataDictionaryVerify.tcItem.
else do:
create tStatusDataDictionaryVerify.
assign tStatusDataDictionaryVerify.tcKey = tPostingStatusChange.PostingVerifyStatus.
assign tPostingStatusChange.PostingVerifyStatus = <M-11 GetPostingVerifyStatusCalc (input tPostingStatusChange.PostingVerifyStatus (icStatus)) in BJournalEntry>
tStatusDataDictionaryVerify.tcItem = tPostingStatusChange.PostingVerifyStatus.
end.
/* tStatusDataDictionaryApprove */
find first tStatusDataDictionaryApprove where tStatusDataDictionaryApprove.tcKey = tPostingStatusChange.PostingApproveStatus no-lock no-error.
if available tStatusDataDictionaryApprove then
assign tPostingStatusChange.PostingApproveStatus = tStatusDataDictionaryApprove.tcItem.
else do:
create tStatusDataDictionaryApprove.
assign tStatusDataDictionaryApprove.tcKey = tPostingStatusChange.PostingApproveStatus.
assign tPostingStatusChange.PostingApproveStatus = <M-26 GetPostingApproveStatusCalc (input tPostingStatusChange.PostingApproveStatus (icStatus)) in BJournalEntry>
tStatusDataDictionaryApprove.tcItem = tPostingStatusChange.PostingApproveStatus.
end.
if vcListJOURNALTYPECODES = "":U then assign vcListJOURNALTYPECODES = {&JOURNALTYPES}.
do viCounter = num-entries(vcListJOURNALTYPECODES, chr(2)) to 1 by -2 :
if entry(viCounter, vcListJOURNALTYPECODES, chr(2)) = tPostingStatusChange.tcJournalTypeCode
then do :
assign tPostingStatusChange.tcJournalTypeCode = entry(viCounter - 1, vcListJOURNALTYPECODES, chr(2)) no-error.
leave.
end. /* if entry(viCounter, vcListJOURNALTYPECODES, chr(2)) */
end. /* do viCounter = num-entries(vcListJOURNALTYPECODES, chr(2)) */
/* assign original status, comments */
if icActivityCode = 'Verify':U
then assign tPostingStatusChange.tcOriginalStatus = tPostingStatusChange.PostingVerifyStatus
tPostingStatusChange.tcOriginalComments = tPostingStatusChange.PostingVerifyComments.
else assign tPostingStatusChange.tcOriginalComments = tPostingStatusChange.PostingApproveComments
tPostingStatusChange.tcOriginalStatus = tPostingStatusChange.PostingApproveStatus
tPostingStatusChange.ttOriginalAddGLNbrDate = tPostingStatusChange.PostingAddGLNbrDate.
assign tPostingStatusChange.tlPostingSelected = false.
/* ========================= */
/* Retrieve User information */
/* ========================= */
if tPostingStatusChange.CreatorUsr_ID <> 0 and
tPostingStatusChange.CreatorUsr_ID <> ?
then do:
<Q-42 run UserById (all) (Read) (Cache)
(input tPostingStatusChange.CreatorUsr_ID, (UsrId)
output dataset tqUserById) in BUser>
find first tqUserById no-error.
if available tqUserById
then assign tPostingStatusChange.tcCreator = tqUserById.tcUsrLogin.
end. /* if tPostingStatusChange.CreatorUsr_ID <> 0 and */
if tPostingStatusChange.LastVerifiedUsr_ID <> 0 and
tPostingStatusChange.LastVerifiedUsr_ID <> ?
then do:
<Q-57 run UserById (all) (Read) (Cache)
(input tPostingStatusChange.LastVerifiedUsr_ID, (UsrId)
output dataset tqUserById) in BUser>
find first tqUserById no-error.
if available tqUserById
then assign tPostingStatusChange.tcVerifier = tqUserById.tcUsrLogin.
end. /* if tPostingStatusChange.LastVerifiedUsr_ID <> 0 and */
if tPostingStatusChange.LastApprovedUsr_ID <> 0 and
tPostingStatusChange.LastApprovedUsr_ID <> ?
then do:
<Q-64 run UserById (all) (Read) (Cache)
(input tPostingStatusChange.LastApprovedUsr_ID, (UsrId)
output dataset tqUserById) in BUser>
find first tqUserById no-error.
if available tqUserById
then assign tPostingStatusChange.tcApprover = tqUserById.tcUsrLogin.
end. /* if tPostingStatusChange.LastApprovedUsr_ID <> 0 and */
end. /* for each tPosting */
end. /* if icActivityCode = 'Verify':U or icActivityCode = 'Approve':U */
END. /* POSTINGSTATUSCHANGEBLOCK */
/* Error-handling */
assign oiReturnStatus = viLocalReturnStatus.