project QadFinancials > class BFixedAssetRevaluation > method RevaluationCreateDet

Description

Creates tFARevalDet record.
NOTE: All these RevaluationCreate... methods should be in one segment


Parameters


icParentRowidinputcharacterParentRowid
iiGLIdinputintegerGLId
iiDivisionIdinputintegerDivision ID
iiCostCentreIdinputintegerCostCentreId
iiProjectIdinputintegerProject ID
idFARevalDetAmountLCinputdecimalFARevalDetAmountLC
idFARevalDetAmountCCinputdecimalFARevalDetAmountCC
icFARevalDetPostingTextinputcharacter
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BFixedAssetRevaluation.RevaluationCreate


program code (program3/bfixedassetrevaluation.p)

assign iiGLId           = if iiGLId = ? then 0 else iiGLId
       iiDivisionId     = if iiDivisionId = ? then 0 else iiDivisionId
       iiCostCentreId   = if iiCostCentreId = ? then 0 else iiCostCentreId
       iiProjectId      = if iiProjectId = ? then 0 else iiProjectId.
       
<M-1 run AddDetailLine (input  'FARevalDet':U (icTable), 
                        input  icParentRowid (icParentRowid), 
                        output viFcReturnSuper (oiReturnStatus)) in BFixedAssetRevaluation>
if viFcReturnSuper <> 0
then do:
    assign oiReturnStatus = viFcReturnSuper.
    return.
end.
assign tFARevalDet.FARevalDetAmountLC   = idFARevalDetAmountLC
       tFARevalDet.FARevalDetAmountCC   = idFARevalDetAmountCC
       tFARevalDet.GL_ID                = iiGLId
       tFARevalDet.Division_ID          = iiDivisionId
       tFARevalDet.CostCentre_ID        = iiCostCentreId
       tFARevalDet.Project_ID           = iiProjectId
       tFARevalDet.FARevalDetPostingText= icFARevalDetPostingText.            
/*Unfortunately Calculate does not work for newly created records 
therefore we have to do the Id-Code conversion ourselves (results of the following Prim queries will be cached)*/
/*GL*/
if tFARevalDet.GL_ID > 0
then do:
    find first tqGLPrim where               
               tqGLPrim.tiGL_ID = tFARevalDet.GL_ID no-error.
    if not available tqGLPrim
    then do:
        <Q-2 run GLPrim (all) (Read) (Cache)
          (input viCompanyId, (CompanyId)
           input '':U, (GLCode)
           input tFARevalDet.GL_ID, (GLId)
           output dataset tqGLPrim) in BGL >
        find first tqGLPrim where               
                   tqGLPrim.tiGL_ID = tFARevalDet.GL_ID no-error.
    end.
    assign tFARevalDet.tcGLCode = if available tqGLPrim then tqGLPrim.tcGLCode else "":U.
end.
/*Division*/
if tFARevalDet.Division_ID > 0
then do:
    find first tqDivisionPrim where               
               tqDivisionPrim.tiDivision_ID = tFARevalDet.Division_ID no-error.
    if not available tqDivisionPrim
    then do:
        <Q-3 run DivisionPrim (all) (Read) (NoCache)
          (input viCompanyId, (CompanyId)
           input tFARevalDet.Division_ID, (DivisionID)
           input '':U, (DivisionCode)
           output dataset tqDivisionPrim) in BDivision >
        find first tqDivisionPrim where               
                   tqDivisionPrim.tiDivision_ID = tFARevalDet.Division_ID no-error.
    end.                      
    assign tFARevalDet.tcDivisionCode = if available tqDivisionPrim then tqDivisionPrim.tcDivisionCode else "":U.
end.
/*CostCentre*/
if tFARevalDet.CostCentre_ID > 0
then do:
    find first tqCostCentrePrim where               
               tqCostCentrePrim.tiCostCentre_ID = tFARevalDet.CostCentre_ID no-error.
    if not available tqCostCentrePrim
    then do:
        <Q-4 run CostCentrePrim (all) (Read) (NoCache)
          (input viCompanyId, (CompanyId)
           input tFARevalDet.CostCentre_ID, (CostCentreID)
           input '':U, (CostCentreCode)
           output dataset tqCostCentrePrim) in BCostCentre >
        find first tqCostCentrePrim where               
                   tqCostCentrePrim.tiCostCentre_ID = tFARevalDet.CostCentre_ID no-error.
    end.
    assign tFARevalDet.tcCostCentreCode = if available tqCostCentrePrim then tqCostCentrePrim.tcCostCentreCode else "":U.
end.
/*Project*/
if tFARevalDet.Project_ID > 0
then do:
    find first tqProjectPrim where               
               tqProjectPrim.tiProject_ID = tFARevalDet.Project_ID no-error.
    if not available tqProjectPrim
    then do:
        <Q-5 run ProjectPrim (all) (Read) (NoCache)
          (input viCompanyId, (CompanyId)
           input tFARevalDet.Project_ID, (ProjectID)
           input '':U, (ProjectCode)
           output dataset tqProjectPrim) in BProject >
        find first tqProjectPrim where               
                   tqProjectPrim.tiProject_ID = tFARevalDet.Project_ID no-error.
    end.
    assign tFARevalDet.tcProjectCode = if available tqProjectPrim then tqProjectPrim.tcProjectCode else "":U.           
end.