project QadFinancials > class BBusinessRelation > method PostSave

Description

Actions to take after writing current instance to the database, and before final commit of the transaction.
Use the field tc_status to test the status of the updated records:
'' = unchanged
'N' = new
'C' = changed
'D' = deleted


Parameters


oiReturnStatusoutputinteger


Internal usage


unused


program code (program/bbusinessrelation.p)

<ANCESTOR-CODE>

/* ================================================================= */
/* Replicate address data to the emp_mstr table.                     */
/* Not needed for create as this will happen on create of employee.  */
/* Must be run from PostSave as BMfgEmployee reads address data from */
/* the database.                                                     */
/* ================================================================= */
empty temp-table tEmployeeReplicate.

for each tAddress where
         tAddress.tcAddressTypeCode = {&ADDRESSTYPECODESYSTEM-HEADOFFICE} and
         tAddress.tc_Status = "C" on error undo, throw:

    <Q-72 run EmployeeByBusinessRelationID (all) (Read) (NoCache)
       (input 0, (CompanyId)
        input tAddress.BusinessRelation_ID, (BusinessRelationId)
        output dataset tqEmployeeByBusinessRelationID) in BEmployee>

    for each tqEmployeeByBusinessRelationID on error undo, throw:
        create tEmployeeReplicate.
        assign tEmployeeReplicate.BusinessRelation_ID = tAddress.BusinessRelation_ID
               tEmployeeReplicate.Employee_ID = tqEmployeeByBusinessRelationID.tiEmployee_ID
               tEmployeeReplicate.EmployeeCode = tqEmployeeByBusinessRelationID.tcEmployeeCode
               tEmployeeReplicate.EmployeeDepartmentCode = tqEmployeeByBusinessRelationID.tcEmployeeDepartmentCode
               tEmployeeReplicate.EmployeeEndDate = tqEmployeeByBusinessRelationID.ttEmployeeEndDate
               tEmployeeReplicate.EmployeeIsActive = tqEmployeeByBusinessRelationID.tlEmployeeIsActive
               tEmployeeReplicate.EmployeeIsActiveExpNotes = tqEmployeeByBusinessRelationID.tlEmployeeIsActiveExpNotes
               tEmployeeReplicate.EmployeeIsActiveTimeReg = tqEmployeeByBusinessRelationID.tlEmployeeIsActiveTimeReg
               tEmployeeReplicate.EmployeeIsExternal = tqEmployeeByBusinessRelationID.tlEmployeeIsExternal
               tEmployeeReplicate.EmployeeIsUser = tqEmployeeByBusinessRelationID.tlEmployeeIsUser
               tEmployeeReplicate.EmployeeJobTitle = tqEmployeeByBusinessRelationID.tcEmployeeJobTitle
               tEmployeeReplicate.EmployeeStartDate = tqEmployeeByBusinessRelationID.ttEmployeeStartDate
               tEmployeeReplicate.ActivityCode_ID = tqEmployeeByBusinessRelationID.tiActivityCode_ID
               tEmployeeReplicate.Company_ID = tqEmployeeByBusinessRelationID.tiCompany_ID
               tEmployeeReplicate.CostCentre_ID = tqEmployeeByBusinessRelationID.tiCostCentre_ID
               tEmployeeReplicate.Creditor_ID = tqEmployeeByBusinessRelationID.tiCreditor_ID
               tEmployeeReplicate.Currency_ID = tqEmployeeByBusinessRelationID.tiCurrency_ID
               tEmployeeReplicate.ExpenseCode_ID = tqEmployeeByBusinessRelationID.tiExpenseCode_ID
               tEmployeeReplicate.Project_ID = tqEmployeeByBusinessRelationID.tiProject_ID
               tEmployeeReplicate.Usr_ID = tqEmployeeByBusinessRelationID.tiUsr_ID
               tEmployeeReplicate.tc_Rowid = tqEmployeeByBusinessRelationID.tc_rowid.
        release tEmployeeReplicate.
    end.
end.

if can-find (first tEmployeeReplicate)
then do:
    <I-52 {bFcStartAndOpenInstance
         &CLASS                = "BMfgEmployee"}>
    <M-90 run ApiReplicateFromFinancials
       (input  tEmployeeReplicate (tMfgEmployee), 
        input  no (ilIsKeepInstancesOpen), 
        output viFcReturnSuper (oiReturnStatus)) in BMfgEmployee>
    <I-64 {bFcCloseAndStopInstance
         &CLASS           = "BMfgEmployee"}>
    if viFcReturnSuper <> 0
    then oiReturnStatus = viFcReturnSuper.
    if viFcReturnSuper < 0
    then return.
end.
    
finally:
    empty temp-table tEmployeeReplicate.
end finally.