H*=============================================================================================
H* Program ID.: HR017R
H* Author.....: David Zhao
H* Function...: HR Automatic Check Status in HREMPLYP
H* Input......: --
H* Output.....: --
H* Remark.....: --
H* Updated....: 07-Oct-2008
H*=============================================================================================
H* Indicator..: 0 1 2 3 4 5 6 7 8 9
H* 0 ** ** ** ** ** ** ** ** **
H* 1 ** ** ** ** ** ** ** ** ** **
H* 2 ** ** ** ** ** ** ** ** ** **
H* 3 ** ** ** ** ** ** ** ** ** **
H* 4 ** ** ** ** ** ** ** ** ** **
H* 5 ** ** ** ** ** ** ** ** ** **
H* 6 ** ** ** ** ** ** ** ** ** **
H* 7 ** ** ** ** ** ** ** ** ** **
H* 8 ** ** ** ** ** ** ** ** ** **
H* 9 ** ** ** ** ** ** ** ** 98 99
H* LR
H*=============================================================================================
H* Usage......:
H* 9x : Dummy
H*=============================================================================================
H/COPY H_DFT
H*=============================================================================================
FHREMPLYP UF A E K DISK
D*=============================================================================================
D*
D Working DS INZ *Working variables
D xxSD D INZ(D'2006-01-01') *Start date
D xxED D INZ(D'2006-01-01') *End date
D xxSTS 1A INZ(' ') *Status
D xxSDP 8P 0 INZ(0) *Start date P
D xxTIMESTAMP Z *Dummy timestamp
C*=============================================================================================
C* *INZSR = Program initialization.
C*=============================================================================================
CSR *INZSR BEGSR
C*
C MOVEA *OFF *IN
C*
C EXSR /MAIN *Main step
C*
C EVAL *INLR = *ON *End of program
C RETURN
C*
CSR ENDSR
C*=============================================================================================
C* /MAIN = Main routine.
C*=============================================================================================
CSR /MAIN BEGSR
C*
C TIME xxTIMESTAMP
C EVAL xxSD = %date(xxTIMESTAMP)
C MOVEL xxSD xxSDP
C*
C *LOVAL SETLL(E) HREMPLYP
C READ HREMPLYP 9999
C*
C DOW (not *IN99)
C*
C CLEAR xxSTS
C*
C SELECT
C WHEN (EMPLVD > 0) AND (EMPLVD <= xxSDP)
C EVAL xxSTS = 'L'
C*
C WHEN EMPTRD = 0
C EVAL xxSTS = 'A'
C*
C WHEN EMPTRD > 0
C MOVE EMPIND xxED
C IF EMPTRD < %diff(xxSD:xxED:*D)
C EVAL xxSTS = 'A'
C ELSE
C EVAL xxSTS = 'P'
C ENDIF
C*
C OTHER
C EVAL xxSTS = 'A'
C ENDSL
C*
C IF xxSTS <> EMPSTS
C*
C EVAL EMPSTS = xxSTS
C*
C IF EMPSTS = 'L'
C EVAL EMPIC = *BLANK
C ENDIF
C*
C UPDATE HREMPLYR
C EXSR /LOGR
C*
C ENDIF
C*
C READ HREMPLYP 9999
C*
C ENDDO
C*
CSR ENDSR
C*=============================================================================================
C* /LOGR = Add a log record
C*=============================================================================================
CSR /LOGR BEGSR
C*
C*
CSR ENDSR
* * * * E N D O F S O U R C E * * * *
H* Program ID.: HR017R
H* Author.....: David Zhao
H* Function...: HR Automatic Check Status in HREMPLYP
H* Input......: --
H* Output.....: --
H* Remark.....: --
H* Updated....: 07-Oct-2008
H*=============================================================================================
H* Indicator..: 0 1 2 3 4 5 6 7 8 9
H* 0 ** ** ** ** ** ** ** ** **
H* 1 ** ** ** ** ** ** ** ** ** **
H* 2 ** ** ** ** ** ** ** ** ** **
H* 3 ** ** ** ** ** ** ** ** ** **
H* 4 ** ** ** ** ** ** ** ** ** **
H* 5 ** ** ** ** ** ** ** ** ** **
H* 6 ** ** ** ** ** ** ** ** ** **
H* 7 ** ** ** ** ** ** ** ** ** **
H* 8 ** ** ** ** ** ** ** ** ** **
H* 9 ** ** ** ** ** ** ** ** 98 99
H* LR
H*=============================================================================================
H* Usage......:
H* 9x : Dummy
H*=============================================================================================
H/COPY H_DFT
H*=============================================================================================
FHREMPLYP UF A E K DISK
D*=============================================================================================
D*
D Working DS INZ *Working variables
D xxSD D INZ(D'2006-01-01') *Start date
D xxED D INZ(D'2006-01-01') *End date
D xxSTS 1A INZ(' ') *Status
D xxSDP 8P 0 INZ(0) *Start date P
D xxTIMESTAMP Z *Dummy timestamp
C*=============================================================================================
C* *INZSR = Program initialization.
C*=============================================================================================
CSR *INZSR BEGSR
C*
C MOVEA *OFF *IN
C*
C EXSR /MAIN *Main step
C*
C EVAL *INLR = *ON *End of program
C RETURN
C*
CSR ENDSR
C*=============================================================================================
C* /MAIN = Main routine.
C*=============================================================================================
CSR /MAIN BEGSR
C*
C TIME xxTIMESTAMP
C EVAL xxSD = %date(xxTIMESTAMP)
C MOVEL xxSD xxSDP
C*
C *LOVAL SETLL(E) HREMPLYP
C READ HREMPLYP 9999
C*
C DOW (not *IN99)
C*
C CLEAR xxSTS
C*
C SELECT
C WHEN (EMPLVD > 0) AND (EMPLVD <= xxSDP)
C EVAL xxSTS = 'L'
C*
C WHEN EMPTRD = 0
C EVAL xxSTS = 'A'
C*
C WHEN EMPTRD > 0
C MOVE EMPIND xxED
C IF EMPTRD < %diff(xxSD:xxED:*D)
C EVAL xxSTS = 'A'
C ELSE
C EVAL xxSTS = 'P'
C ENDIF
C*
C OTHER
C EVAL xxSTS = 'A'
C ENDSL
C*
C IF xxSTS <> EMPSTS
C*
C EVAL EMPSTS = xxSTS
C*
C IF EMPSTS = 'L'
C EVAL EMPIC = *BLANK
C ENDIF
C*
C UPDATE HREMPLYR
C EXSR /LOGR
C*
C ENDIF
C*
C READ HREMPLYP 9999
C*
C ENDDO
C*
CSR ENDSR
C*=============================================================================================
C* /LOGR = Add a log record
C*=============================================================================================
CSR /LOGR BEGSR
C*
C*
CSR ENDSR
* * * * E N D O F S O U R C E * * * *