Description
Provide extra operations before real merge of the element
Parameters
| icSharedSetTypeCode | input | character | |
| iiMasterObjectId | input | integer | |
| iiRedundantObjectId | input | integer | ID of redundant element |
| oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program6/bsharedsetmerge.p)
/* ====================================================================================== *
* Method : MergeBeforeMerge *
* Description : Provide extra operations before real merge of element *
* -------------------------------------------------------------------------------------- *
* Parameters : SharedSetTypeCode Type of shared set *
* MasterObjectId ID of master object *
* RedundantObjectId ID of redundant object to be removed at the end *
* ====================================================================================== */
assign oiReturnStatus = -98
viLocalReturn = 0.
MAIN_BLOCK:
do on error undo, return:
case icSharedSetTypeCode:
when {&SHAREDSETTYPECODE-COSTCENTRE}
then do:
end.
when {&SHAREDSETTYPECODE-CREDITOR}
then do:
/* Both redundant and master creditors can have bank numbers as default *
* therefore ensure all banks linked to redundant creditors are not default */
assign vcStatement = 'for each BankNumber where ':U +
'BankNumber.ParentObject_ID = &1 and ':U +
'BankNumber.BankNumberIsDefault = true':U
vcStatement = substitute(vcStatement, iiRedundantObjectId).
<M-1 run StartPersistence
(output vhFcComponent (ohPersistence),
output viFcReturnSuper (oiReturnStatus)) in BSharedSetMerge>
if viFcReturnSuper <> 0 then assign viLocalReturn = viFcReturnSuper.
if viFcReturnSuper < 0 then leave MAIN_BLOCK.
<M-2 run WriteDirect
(input 'BankNumber':U (icTableName),
input vcStatement (icPrepare),
input 'BankNumberIsDefault':U (icFieldList),
input 'l':U (icFieldListDataTypes),
input 'false':U (icAbsolute),
input '':U (icIncremental),
input {&TARGETPROCEDURE} (ihClass),
input vcUserLogin (icUserLogin),
output viFcReturnSuper (oiReturnStatus)) in Progress>
if viFcReturnSuper = -4 then assign viFcReturnSuper = 0.
if viFcReturnSuper <> 0 then assign viLocalReturn = viFcReturnSuper.
if viFcReturnSuper < 0 then leave MAIN_BLOCK.
end.
when {&SHAREDSETTYPECODE-DEBTOR}
then do:
/* Both redundant and master debtors can have bank numbers as default *
* therefore ensure all banks linked to redundant debtors are not default */
assign vcStatement = 'for each BankNumber where ':U +
'BankNumber.ParentObject_ID = &1 and ':U +
'BankNumber.BankNumberIsDefault = true':U
vcStatement = substitute(vcStatement, iiRedundantObjectId).
<M-3 run StartPersistence
(output vhFcComponent (ohPersistence),
output viFcReturnSuper (oiReturnStatus)) in BSharedSetMerge>
if viFcReturnSuper <> 0 then assign viLocalReturn = viFcReturnSuper.
if viFcReturnSuper < 0 then leave MAIN_BLOCK.
<M-4 run WriteDirect
(input 'BankNumber':U (icTableName),
input vcStatement (icPrepare),
input 'BankNumberIsDefault':U (icFieldList),
input 'l':U (icFieldListDataTypes),
input 'false':U (icAbsolute),
input '':U (icIncremental),
input {&TARGETPROCEDURE} (ihClass),
input vcUserLogin (icUserLogin),
output viFcReturnSuper (oiReturnStatus)) in Progress>
if viFcReturnSuper = -4 then assign viFcReturnSuper = 0.
if viFcReturnSuper <> 0 then assign viLocalReturn = viFcReturnSuper.
if viFcReturnSuper < 0 then leave MAIN_BLOCK.
end.
when {&SHAREDSETTYPECODE-DIVISION}
then do:
end.
when {&SHAREDSETTYPECODE-EXCHANGERATE}
then do:
end.
when {&SHAREDSETTYPECODE-GL}
then do:
<M-32 run MergeBeforeMergeGL
(input iiMasterObjectId (iiMasterObjectID),
input iiRedundantObjectId (iiRedundantObjectId),
output viFcReturnSuper (oiReturnStatus)) in BSharedSetMerge>
end.
when {&SHAREDSETTYPECODE-JOURNAL}
then do:
end.
when {&SHAREDSETTYPECODE-PROJECT}
then do:
end.
end case.
end. /* MAIN_BLOCK */
assign oiReturnStatus = viLocalReturn.