Parameters
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program1/bpaymentcondition.p)
assign oiReturnStatus = -98
viLocalReturnStatus = 0.
/* PreValidates all New and Changed Items */
for each t_sPaymentCondition where
t_sPaymentCondition.tc_Status <> 'D':U:
/* The fields which cannot be modified within the modify mode */
/* only handle alreadyused field for modified records */
if t_sPaymentCondition.tc_Status = 'C':U
then do:
find t_iPaymentCondition where
t_iPaymentCondition.tc_Rowid = t_sPaymentCondition.tc_Rowid
no-error.
if available t_iPaymentCondition and
t_iPaymentCondition.PaymentConditionPaymentTyp <> t_sPaymentCondition.PaymentConditionPaymentTyp
then do:
if t_sPaymentCondition.tlPaymentConditionIsAlreadyUsed = false
then do:
<M-1 run ApiIsPaymentConditionAlreadyUsed
(input viCompanyId (iiCompanyId),
input t_sPaymentCondition.PaymentCondition_ID (iiPaymentConditionID),
input '':U (icPaymentConditionCode),
output t_sPaymentCondition.tlPaymentConditionIsAlreadyUsed (olIsPaymentConditionAlreadyUsed),
output viFcReturnSuper (oiReturnStatus)) in BPaymentCondition>
if viFcReturnSuper <> 0 and viLocalReturnStatus >= 0
then assign viLocalReturnStatus = viFcReturnSuper.
end. /* t_sPaymentCondition.tlPaymentConditionIsAlreadyUsed = false */
if t_sPaymentCondition.tlPaymentConditionIsAlreadyUsed
then do:
<M-2 run SetMessage
(input #T-3'You cannot modify the credit terms type when it has already been used.':150(2951)t-3# (icMessage),
input '':U (icArguments),
input 'tPaymentCondition.PaymentConditionPaymentTyp':U (icFieldName),
input t_sPaymentCondition.PaymentConditionPaymentTyp (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sPaymentCondition.tc_Rowid (icRowid),
input 'QADFIN-2252':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BPaymentCondition>
assign viLocalReturnStatus = -1.
end. /* if t_sPaymentCondition.tlPaymentConditionIsAlreadyUsed */
end. /* if available t_iPaymentCondition and ... */
end. /* if(t_sPaymentCondition.tc_Status = 'C':U) */
if (t_sPaymentCondition.PaymentConditionPaymentTyp = {&PAYMENTCONDITIONPAYMENTTYPE-STAGED})
then do:
/* validate the percentage sum for modified records and new records */
assign vdStagedPercSum = 0.
for each t_sPaymentConditionStaged where
t_sPaymentConditionStaged.PaymentCondition_ID = t_sPaymentCondition.PaymentCondition_ID and
t_sPaymentConditionStaged.tc_Status <> 'D':U:
assign vdStagedPercSum = vdStagedPercSum + t_sPaymentConditionStaged.PaymentConditionStagedPerc.
if t_sPaymentConditionStaged.tcStagedPaymentConditionCode = "" or
t_sPaymentConditionStaged.tcStagedPaymentConditionCode = ? then
assign vlStagedCodeIsBlank = YES.
end. /* end of for each t_sPaymentConditionStaged */
/* showing a message if staged percentage sum is not equal to 100 */
if vdStagedPercSum <> 100
then do:
<M-4 run SetMessage
(input #T-4'The sum of all staged credit terms percentages is not equal to 100%.':150(47890)t-4# (icMessage),
input '':U (icArguments),
input 'tPaymentConditionStaged.PaymentConditionStagedPerc':U (icFieldName),
input vdStagedPercSum (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sPaymentCondition.tc_Rowid (icRowid),
input 'QadFin-5142':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BPaymentCondition>
assign viLocalReturnStatus = -1.
end. /* end of if sum is no equal to 100 */
if vlStagedCodeIsBlank = YES then do:
<M-6 run SetMessage
(input trim(#T-16'You cannot enter a staged payment with a blank code.':90(65903)T-16#) (icMessage),
input '':U (icArguments),
input 't_sPaymentConditionStaged.tcStagedPaymentConditionCode':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sPaymentCondition.tc_Rowid (icRowid),
input 'QadFin-7532':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BPaymentCondition>
assign viLocalReturnStatus = -1.
end. /* end of if staged payment code is blank */
end. /* end of if payment condition type is staged */
/* validation if the paymentcondition has been used in the domainproperty, then the discount should
always be zero */
if (t_sPaymentCondition.PaymentConditionPaymentTyp = {&PAYMENTCONDITIONPAYMENTTYPE-NORMAL})
then do:
<Q-86 run DomainPropertyByCreditTermId (all) (Read) (NoCache)
(input t_sPaymentCondition.PaymentCondition_ID, (DeductionPaymentConditionId)
input t_sPaymentCondition.PaymentCondition_ID, (PrepayPaymentConditionId)
output dataset tqDomainPropertyByCreditTermId) in BDomainProperty>
find first tqDomainPropertyByCreditTermId no-error.
if available tqDomainPropertyByCreditTermId
then do:
if t_sPaymentCondition.PaymentConditionPercentage <> 0 or
t_sPaymentCondition.PaymentConditionDayMthDisc <> 0
then do:
<M-71 run SetMessage
(input trim(#T-36'You cannot enter the discount value or discount periods value when the credit term has been used in the domain.':150(638033113)T-36#) (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sPaymentCondition.tc_Rowid (icRowid),
input 'qadfin-275314':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BPaymentCondition>
assign viLocalReturnStatus = -1.
end.
end.
end. /* if (t_sPaymentCondition.PaymentConditionPaymentTyp = {&PAYMENTCONDITIONPAYMENTTYPE-NORMAL}) */
end. /* for each t_sPaymentCondition ... */
assign oiReturnStatus = viLocalReturnStatus.