project QadFinancials > class BReportPeriod > method DataNewMultipleCopyPeriodYear

Description

This method creates a new report year based on another existing year.


Parameters


iiReportYearinputintegerthe Year that you want to create
iiSourceReportYearinputintegerThe year where you want to copy from
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


unused


program code (program7/breportperiod.p)

/* ========================= */
    /* Validate input parameters */
    /* ========================= */
    if iiReportYear = 0 or iiReportYear = ?
    then do:
        assign vcMsgRepPd     = trim(#T-13'You must enter the reporting year you want to create.':255(3549)T-13#)
               oiReturnStatus = -1.
        <M-3 run SetMessage (input  vcMsgRepPd (icMessage),
                     input  '':U (icArguments),
                     input  '':U (icFieldName),
                     input  '':U (icFieldValue),
                     input  'E':U (icType),
                     input  3 (iiSeverity),
                     input  '':U (icRowid),
                     input  'QADFIN-985':U (icFcMsgNumber),
                     input  '' (icFcExplanation),
                     input  '' (icFcIdentification),
                     input  '' (icFcContext),
                     output viFcReturnSuper (oiReturnStatus)) in BReportPeriod>
        return.
    end. /* if iiReportYear = 0 */
    if iiSourceReportYear = 0
    then do:
        assign vcMsgRepPd     = trim(#T-14'You must enter the reporting year to copy from.':255(3550)T-14#)
               oiReturnStatus = -1.
        <M-5 run SetMessage (input  vcMsgRepPd (icMessage),
                     input  '':U (icArguments),
                     input  '':U (icFieldName),
                     input  '':U (icFieldValue),
                     input  'E':U (icType),
                     input  3 (iiSeverity),
                     input  '':U (icRowid),
                     input  'QADFIN-986':U (icFcMsgNumber),
                     input  '' (icFcExplanation),
                     input  '' (icFcIdentification),
                     input  '' (icFcContext),
                     output viFcReturnSuper (oiReturnStatus)) in BReportPeriod>
        return.
    end. /* if iiSourceReportYear = 0 */
    <Q-6 assign vlFcQueryRecordsAvailable = ReportPeriodByAllInfo (NoCache)
          (input ?, (ReportPeriodID)
           input iiSourceReportYear, (ReportPeriodYear)
           input ?, (ReportPeriodPeriod)
           input ?, (ReportPeriodStartDate)
           input ?, (ReportPeriodEndDate)
           input ?, (ReportPeriodIsReported)) in BReportPeriod >
    if vlFcQueryRecordsAvailable = false
    then do:
        assign vcMsgRepPd     = trim(#T-15'The reporting year you want to copy is not defined in the system.':255(3551)t-15#)
               oiReturnStatus = -1.
        <M-7 run SetMessage (input  vcMsgRepPd (icMessage),
                     input  '':U (icArguments),
                     input  '':U (icFieldName),
                     input  '':U (icFieldValue),
                     input  'E':U (icType),
                     input  3 (iiSeverity),
                     input  '':U (icRowid),
                     input  'QADFIN-987':U (icFcMsgNumber),
                     input  '' (icFcExplanation),
                     input  '' (icFcIdentification),
                     input  '' (icFcContext),
                     output viFcReturnSuper (oiReturnStatus)) in BReportPeriod>
        return.
    end. /* if not vlFcQueryRecordsAvailable */
    
    /* ========================================================================================== */
    /* First, clear the instance, otherwise problems might occur when executing this method twice */
    /* ========================================================================================== */
    <M-8 run ClearData (output viFcReturnSuper (oiReturnStatus)) in BReportPeriod>
    if viFcReturnSuper <> 0
    then do:
        assign oiReturnStatus = viFcReturnSuper.
        return.
    end. /* if viFcReturnSuper <> 0 */
    
    /* ================================================================ */
    /* Read the Accounting Year to copy                                 */
    /* ================================================================ */
    <Q-9 run ReportPeriodByAllInfo (all) (Read) (NoCache)
          (input ?, (ReportPeriodID)
           input iiSourceReportYear, (ReportPeriodYear)
           input ?, (ReportPeriodPeriod)
           input ?, (ReportPeriodStartDate)
           input ?, (ReportPeriodEndDate)
           input ?, (ReportPeriodIsReported)
           output dataset tqReportPeriodByAllInfo) in BReportPeriod >
    for each tqReportPeriodByAllInfo where
             tqReportPeriodByAllInfo.tiReportPeriodYear = iiSourceReportYear no-lock :
        <M-10 run AddDetailLine (input  'ReportPeriod':U (icTable), 
                             input  '':U (icParentRowid), 
                             output viFcReturnSuper (oiReturnStatus)) in BReportPeriod>
        if viFcReturnSuper <> 0
        then do:
            assign oiReturnStatus = viFcReturnSuper.
            return.
        end.
        assign tReportPeriod.ReportPeriodYear                  = iiReportYear
               tReportPeriod.ReportPeriodPeriod                = tqReportPeriodByAllInfo.tiReportPeriodPeriod
               tReportPeriod.ReportPeriodIsReported            = false
               tReportPeriod.ReportPeriodStartDate             = <M-11 GetDate (input  tqReportPeriodByAllInfo.ttReportPeriodStartDate (itDate), 
                                                                       input  tqReportPeriodByAllInfo.tiReportPeriodYear (iiOldYear), 
                                                                       input  iiReportYear (iiNewYear)) in BReportPeriod>
               tReportPeriod.ReportPeriodEndDate               = <M-12 GetDate (input  tqReportPeriodByAllInfo.ttReportPeriodEndDate (itDate), 
                                                                       input  tqReportPeriodByAllInfo.tiReportPeriodYear (iiOldYear), 
                                                                       input  iiReportYear (iiNewYear)) in BReportPeriod>  .
    end. /* for each tqReportPeriodByAllInfo where */
    
    /* ============================================================ */
    /* Validate data - perform external updates - save data         */
    /* you don't have to do it here because this method is executed */
    /* when they start the period form so when they press save      */
    /* the methods will automatically executed                      */
    /* ============================================================ */