| opPrimeKey | output | longchar | Primary Key field value of loaded record(s). Keys are chr(4) separated. Key fields are chr(2) separated. |
| oiReturnStatus | output | integer | Return status of the method. |
if oiReturnStatus = 0
then oiReturnStatus = -98.
for each t_sVAT on error undo, return:
/* ================================================================= */
/* Lookup object by logical key */
/* When in create mode, skip lookup. */
/* ================================================================= */
if vcActivityCode <> "Create":U
then do:
vcFreeform = "for each VAT where VAT.Domain_ID = '":U + string(t_sVAT.Domain_ID) + "'":U +
" and VAT.VatCode = '":U + t_sVAT.VatCode + "'":U +
" and VAT.VatInOut = '":U + t_sVAT.VatInOut + "'":U.
<M-2 run DataLoad (input '' (icRowids),
input '' (icPkeys),
input '' (icObjectIds),
input vcFreeform (icFreeform),
input yes (ilKeepPrevious),
output viFcReturnSuper (oiReturnStatus)) in BVAT>
if viFcReturnSuper >= 0
then find first tVAT where tVAT.Domain_ID = t_sVAT.Domain_ID and
tVAT.VatCode = t_sVAT.VatCode and
tVAT.VatInOut = t_sVAT.VatInOut
no-error.
end.
/* ================================================================= */
/* When in delete mode, ignore input data. */
/* When object not found, do not return an error. */
/* ================================================================= */
if vcActivityCode = "Delete":U
then do:
if viFcReturnSuper = -4
then delete t_sVAT.
else do:
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
assign t_sVAT.tc_Rowid = tVAT.tc_Rowid
t_sVAT.tc_ParentRowid = ""
opPrimeKey = (if opPrimeKey = "" then "" else opPrimeKey + chr(4))
+ string(tVAT.Vat_ID).
end.
next.
end.
if vcActivityCode = "Create":U
or viFcReturnSuper = -4
then do:
/* ================================================================= */
/* When object not found and in modify only mode, return an error. */
/* ================================================================= */
if vcActivityCode = "Modify":U
then do:
assign
vcMessage = trim(#T-1'Object with key $1 does not exist.':100(48021)T-1#).
<M-3 run SetMessage (input vcMessage (icMessage),
input t_sVAT.VatCode (icArguments),
input 'tVAT.VatCode' (icFieldName),
input t_sVAT.VatCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sVAT.tc_Rowid (icRowid),
input 'QadFin-5180':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BVAT>
assign oiReturnStatus = -1.
return.
end.
/* ================================================================= */
/* When object not found or in create mode, create it. */
/* ================================================================= */
<M-4 run AddDetailLine (input 'VAT':U (icTable),
input '' (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BVAT>
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
assign t_sVAT.tc_Status = "N":U.
end.
else do:
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
assign t_sVAT.tc_Status = "C":U.
end.
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
/* insert code for subtables here */
/* ================================================================= */
/* Delete existing detail */
/* ================================================================= */
for each tVatRule where
tVatRule.tc_ParentRowid = tVat.tc_Rowid:
assign tVatRule.tc_Status = "D":U.
end.
/* ================================================================= */
/* Update / add detail */
/* ================================================================= */
for each t_sVatRule where
t_sVatRule.tc_ParentRowid = t_sVat.tc_Rowid:
find first tVatRule where
tVatRule.tc_ParentRowid = tVat.tc_Rowid and
tVatRule.VatRuleBaseFull = t_sVatRule.VatRuleBaseFull and
tVatRule.VatRuleSequence = t_sVatRule.VatRuleSequence no-error.
if available tVatRule
then assign t_sVatRule.tc_Status = "C":U.
else do:
<M-5 run AddDetailLine (input 'VatRule':U (icTable),
input tVat.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BVAT>
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
assign t_sVatRule.tc_Status = "N":U.
end. /* else do: */
/* ================================================================= */
/* override value for identity fields in input */
/* ================================================================= */
assign
t_sVatRule.VatRule_ID = tVatRule.VatRule_ID
t_sVatRule.Vat_ID = tVatRule.Vat_ID
t_sVatRule.VatRuleMovementType = {&VATRULEMOV-DEBIT}
t_sVatRule.VatRuleUsage = {&VATRULEUSAGE-NONE}
t_sVatRule.VatRuleRounding = {&VATRULEROUNDING-NOROUNDING}
t_sVatRule.VatRuleOperator = "*":U
tVatRule.VatRuleRef2 = {&VATRULEREF-NONE}
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
t_sVatRule.tc_Rowid = tVatRule.tc_Rowid
t_sVatRule.tc_ParentRowid = tVat.tc_Rowid.
end. /* for each t_sVATRule */
/* end of code for subtables */
<I-20 {UpdateTransString
&TABLE = "Vat"}>
/* ================================================================= */
/* override value for identity fields in input */
/* ================================================================= */
assign
t_sVAT.Vat_ID = tVAT.Vat_ID
t_sVAT.VatIsActive = true
t_sVAT.VatIsGlobalTax = true
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
t_sVAT.tc_Rowid = tVAT.tc_Rowid
t_sVAT.tc_ParentRowid = ""
opPrimeKey = (if opPrimeKey = "" then "" else opPrimeKey + chr(4))
+ string(tVAT.Vat_ID).
end. /* for each t_sVAT */
if oiReturnStatus = -98
then oiReturnStatus = 0.