Embed
Email

Project PRJ814320 Platform Default Database HC890STB Version ...

Document Sample

Shared by: linxiaoqin
Categories
Tags
Stats
views:
10
posted:
1/7/2012
language:
pages:
146
Project: PRJ814320

Platform Default

Database HC890STB

Version 85

Description UPD814320

Comments

UPD814320







Records

GPCHAEBV1_TMP

GPCHAEZV1_TMP

GPCHELM_AET

GPCHINS_AET

GPCHTX021_VW

GPCHTX07B_TMP

GPCHTX07_AET

GPCH_EG_CPLT_DW

GPCH_EG_ELOG_DW

GPCH_EG_FHEADER

GPCH_EG_FSTATUS

GPCH_EG_ILOG_DW

GPCH_EG_PER_VW

GPCH_EG_PHEADER

GPCH_EG_PRO_DW

GPCH_EG_PSTATUS

GPCH_EG_PSTA_VW

GPCH_EG_PTOTALS

GPCH_IF_TX07_VW

GPCH_PK_DAT_DTL

GPCH_RP_AL10ONL

GPCH_RP_SI07_VW

GPCH_SIAL2_NRVW

GPCH_SI_ADD2_VW

GPCH_SI_ADDL_VW

GPCH_SI_ADDTNL2

GPCH_SI_ADSP_VW

GPCH_SI_SPL1_VW

GPCH_SI_SPL2_VW

GPCH_SI_SPLIT

GPCH_SI_SPLT_VW

GPCH_SI_VARIAN2

GPCH_TX_MNPL_VW

GPCH_XP_EMPLID

GPES_ADLNJOB_VW

GPES_ADLNREM_VW

GPES_ADLNSEQ_VW

GPES_ANT_AUS_VW

GPES_CC_EE_DTA

GPES_CC_PT_DAYS

GPES_CC_XCCC_VW

GPES_CC_XEE_VW

GPFR_AF_ATR_IMP

GPFR_AF_ATR_PRM

GPFR_AF_ATTR

GPFR_AF_EXTR_VW

GPFR_AF_RUN_OTH

GPFR_AF_SQLENTY

GPFR_ASS_SRCH

GPFR_AT_RSLT_VW

GPFR_GAR_DEP_VW

GPFR_GUIDE_VW

GPFR_RSLT_AC_VW

GPFR_RSLT_AR_VW

GPIN_F16_AK_DTL

GPIN_F16_AK_DTL GPIN_ACK_NUM

GPIN_F16_AK_DTL GPIN_IT_PAN_NBR

GPIN_F16_AK_DTL GPIN_IT_TAN_NBR

GPIN_F16_AK_DTL GPIN_PERIOD_ID

GPIN_F16_AK_DTL GPIN_QUARTER_ID

GPJP_YEA_ST_VW







Fields

GPCH_EG_REQUEST_ID

GPCH_PK_SALARY

GPCH_SI_ALT_ID

GPFR_AF_RPT_ONLY

GPIN_ACK_NUM

GPIN_ACK_NUM GPIN_ACK_NUM

GPIN_IT_PAN_NBR

GPIN_IT_PAN_NBR GPIN_IT_PAN_NBR

GPIN_IT_PAN_NBR GPIN_LBL

GPIN_IT_TAN_NBR

GPIN_IT_TAN_NBR GPIN_IT_TAN_NBR

GPIN_IT_TAN_NBR GPIN_LBL

GPIN_PERIOD_ID

GPIN_PERIOD_ID GPIN_FISCAL PER_ID

GPIN_PERIOD_ID PERIOD_ID

GPIN_QUARTER_ID

GPIN_QUARTER_ID QUARTER





Translate Values

GPIN_QUARTER_ID (1900-01-01) 10

GPIN_QUARTER_ID (1900-01-01) 20

GPIN_QUARTER_ID (1900-01-01) 30

GPIN_QUARTER_ID (1900-01-01) 40

GPJP_IT_DEP (2011-01-01) 11







Pages

GPFR_AF_ATRPRP_SEC

GPJP_LA_PYE_RPT1





PeopleCode (Record)

FUNCLIB_GPJP.GPJP_YEA_SSERVICE.FieldFormula

GPCH_AE_DERIVED.GPCH_RP_TX07_XML.FieldFormula

GPCH_EG_STAT_DW.FUNCLIB.FieldFormula

GPFR_AF_RUN_EXT.GPFR_AF_EXTRACT_ID.FieldChange

GPGB_ABS_EVT_JR.GPGB_ABS_LINK_DUR.SavePostChange

GPGB_EDIFUNCLIB.GPGB_EDI_WORKS_ID.FieldFormula

GPGB_RNCTL_EDI.GPGB_UNIQUE_ID.SaveEdit

GP_ACCUMULATOR.ENTRY_TYPE_USER_K1.FieldFormula





Process Definitions

Application Engine UPD850896_A1







Message Catalog Entries

GP UK - Online 17130, 248

GP UK - Online 17130, 253

GP Singapore - Text Messages 17231, 387

GP Singapore - Text Messages 17231, 388

GP Singapore - Text Messages 17231, 389

GP Singapore - Text Messages 17231, 390

GP Singapore - Text Messages 17231, 391

GP Singapore - Text Messages 17231, 392

GP Singapore - Text Messages 17231, 393

GP Singapore - Text Messages 17231, 394

Global Payroll India 17410, 49







SQL

GPCHTX021_VW View

GPCH_AE_ELM STAX_VD Step02 S ApplEng

GPCH_AE_INS PrepIns Step02 S ApplEng

GPCH_AE_INS PrepIns Step02a S ApplEng

GPCH_AE_INS PrepIns Step03 S ApplEng

GPCH_AE_INS PrepIns Step04 S ApplEng

GPCH_AE_INS PrepIns Step05 S ApplEng

GPCH_BK_TRN GPCHBK10Step05 S ApplEng

GPCH_EG_PER_VW View

GPCH_EG_PSTA_VW View

GPCH_IF_TX07_VW View

GPCH_RP_SI07_VW View

GPCH_SIAL2_NRVW View

GPCH_SI_ADD2_VW View

GPCH_SI_ADDL_VW View

GPCH_SI_ADSP_VW View

GPCH_SI_SPL1_VW View

GPCH_SI_SPL2_VW View

GPCH_SI_SPLT_VW View

GPCH_TX_MNPL_VW View

GPES_ADLNJOB_VW View

GPES_ADLNREM_VW View

GPES_ADLNSEQ_VW View

GPES_ANT_AUS_VW View

GPES_CC_XCCC_VW View

GPES_CC_XEE_VW View

GPFR_AF_DT_TO_CHAR Normal

GPFR_AF_EXTR_VW View

GPFR_ASS_SRCH View

GPFR_AT_RSLT_VW View

GPFR_DB2 Normal

GPFR_GAR_DEP_VW View

GPFR_GUIDE_VW View

GPFR_IS_NULL Normal

GPFR_PYSL_AEREADTABLEmplidS S ApplEng

GPFR_PYSL_AEREADTABLInsertS3D ApplEng

GPFR_PYSL_AEREADTABLInsertS3S ApplEng

GPFR_RETURN_CHAR_POS Normal

GPFR_RSLT_AC_VW View

GPFR_RSLT_AR_VW View

GPJP_SC_BNS BNS Step01 S ApplEng

GPJP_YEA_ST_VW View

GPSG_IR8A_CRUPDATES Step03 S ApplEng

GPSG_IRAS_LATEST_ACTIVE_JOB Normal

NUM_TO_CHAR Normal

UPD850896_A1MAIN Step01 S ApplEng

UPD850896_A1MAIN Step02 S ApplEng







Appl Engine (Prog)

GPCH_AE_INS

GPCH_AE_TX07

GPCH_BK_TRN

GPFR_AF_AE

UPD850896_A1





Appl Engine (Section)

GPFR_AF_AE DBPARM

GPGB_EDI_P14 P14All

GPGB_EDI_P14 P14AllA

GPGB_EDI_P14 P14Foot

GPGB_EDI_P14 P14Write

UPD850896_A1 MAIN





PeopleCode (ApplEng)

GPCH_AE_ELM.STAX_VD GBLdefault 1900-01-01.Step01.OnExecute

GPFR_AF_AE.DBPARM GBLDB2 1900-01-01.Step01.OnExecute

GPFR_AF_AE.DBPARM GBLDB2UNIX 1900-01-01.Step01.OnExecute







PeopleCode (Page)

GPJP_LA_PYE_RPT1.Activate





PeopleCode (Component)

GPCH_RC_EGOVT(GBL).SavePostChange

GPES_RC_FNQ1(GBL).SavePreChange

GPGB_ABS_EVENT(GBL).SavePostChange

PeopleCode (CompRecord)

GPES_ABS_EVENT(GBL).INSTALLATION.SavePreChange

GPGB_ABS_EVENT(GBL).GP_ABS_EVENT.SaveEdit

GPGB_EE_TAX(GBL).GPGB_EE_TAX.SaveEdit

GPIN_YE_F24_F16(GBL).GPIN_F16_AK_DTL.SaveEdit







PeopleCode (CompRecFld)

GPES_SSTC_IND_RES(GBL).DERIVED_GPES.SEARCH_BUTTON FieldChange





File References

CH814320_DAT_DAT

CH814320_IMP_DMS

CN814320_DAT_DAT

CN814320_IMP_DMS

ES814320_DAT_DAT

ES814320_IMP_DMS

ES848467_01_DMS

FR814320_DAT_DAT

FR814320_IMP_DMS

FR846213_01_DAT

FR846213_01_DMS

GB814320_DAT_DAT

GB814320_IMP_DMS

GB842731_01_DAT

GB842731_01_DMS

GPAUPS02_SQC

GPCHAL05_SQR

GPCHAL07_SQR

GPCHAL08_SQR

GPCHAL10_SQR

GPCHSI07_SQR

GPCHSI08_SQR

GPCHST02_SQC

GPCHST02_SQR

GPCHTX02_SQC

GPCHTX02_SQR

GPCHTX04_SQR

GPCHTX2A_SQR

GPCHUT06_SQC

GPCUARPR_CBL

GPESFNQ1_SQR

GPJPYE04_SQR

GPPDPDM0_CBL

GPPRDMGR_CBL

GPSGIR01_SQR

GPSGIR02_SQR

GPSGIR03_SQR

GPSGIR04_SQR

GPSGIR07_SQR

GPSGIR09_SQR

JP814320_DAT_DAT

JP814320_IMP_DMS

NZ814320_DAT_DAT

NZ814320_IMP_DMS

SG851314_01_DAT

SG851314_01_DMS





Object Type: 69 ?

COBOL, , ,

DATA, , ,

SCRIPTS, , ,

SQR, , ,









Record Detail

Record: GPCHAEBV1_TMP

Description Pension Fund Data

Record Type Temporal

Parent Record

Related Language

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll Switzerland

Comments Pension Fund Data



FieldName Type Len Key Srch Req Edit Prompt C Default

PROCESS_INSTANCE Num 10 KA

EMPLID Char 11 KALS Req Prmt PERSONAL_DATA

EFFDT Date 10 KD Req %date

PRD_END_DT Date 10 KA

GPCH_SI_PROV_TYPE Char 1 KALS Req Xlat '6'

COMPANY Char 3 KA

GPCH_SI_PROV_CD Char 6 KALS Req Prmt GPCH_SI_PRV_VW1

GPCH_PK_STATUS Char 1 Xlat

GPCH_PK_ID_INS Char 11

GPCH_PK_ID_ALT Num 9

GPCH_PK_INS_PLAN Char 2 Prmt GPCH_PK_PLANS

GPCH_PK_INS_STATUS Char 8 Prmt GPCH_PK_STATUS

GPCH_PK_EXIT_DATE Date 10

GPCH_PK_SALARY Num 12.6

GPCH_PK_SALARY Num 12.2

CURRENCY_CD Char 3 Prmt CURRENCY_CD_TBL 'CHF'

HIRE_DT Date 10

TERMINATION_DT Date 10

GPCH_RP_AMOUNT4 Sign 12.6









Record: GPCHAEZV1_TMP

Description Social Insurance Table

Record Type Temporal

Parent Record GPCH_SI_VARIAN1

Related Language

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll Switzerland

Comments Social Insurance Table



FieldName Type Len Key Srch Req Edit Prompt C Default

PROCESS_INSTANCE Num 10 KA Req

EMPLID Char 11 KALS Req

EMPL_RCD Num 3 KALS Req

EFFDT Date 10 KD Req

GPCH_SI_VARIAN1.EFFDT

GPCH_SI_TYPE_ID Char 3 KA Req

GPCH_SI_ALT_ID Char 2 KA Req

GPCH_SI_ALT_ID Char 8 KA Req

GPCH_SI_PROV_TYPE Char 1 Req

STATUS Char 1 'A'

GPCH_CALCULATE Char 1 'A'

AMOUNT Sign 15.3

CURRENCY_CD Char 3

BEGIN_DT Date 10

END_DT Date 10

ENDING_DT_PERIOD Date 10

HIRE_DT Date 10

TERMINATION_DT Date 10

GPCH_RP_AMOUNT1 Sign 12.6

GPCH_RP_AMOUNT2 Sign 12.6

GPCH_RP_AMOUNT3 Sign 12.6

GPCH_RP_AMOUNT4 Sign 12.6

GPCH_RP_AMOUNT5 Sign 12.6









Record: GPCHELM_AET

Description ELM App Engine State Record

Record Type Derived/Work

Parent Record

Related Language

Owner ID Global Payroll Switzerland

Comments ELM App Engine State Record



FieldName Type Len Key Srch Req Edit Prompt C Default

PROCESS_INSTANCE Num 10 KA

OPRID Char 30

LANGUAGE_CD Char 3 Xlat

RUN_CNTL_ID Char 30

GPCH_EG_DOMAINID Num 3

GPCH_RC_PAY_YEAR Num 4

COMPANY Char 3

GPCH_EG_CREATE Char 1 'Y'

FILENAME Char 80

GPCH_EG_REQUEST_ID Char 25

GPCH_EG_REQUEST_ID Char 30

GPCH_EG_MONITOR_ID Char 25

FILE_OUTPUT_DIR Char 127

GPCH_EG_HDR_XML Long

GPCH_SI_PROV_TYPE Char 1 Xlat

GPCH_SI_PROV_CD Char 6

GPCH_EG_REGENERATE Char 1 Y/N 'N'

FILE_DATA_CHAR Long

GPCH_TX_FLG Char 1

GPCH_TX_STAX_FLG Char 1 Y/N 'N'

GPCH_FAK_FLAG Char 1 Y/N 'N'









Record: GPCHINS_AET

Description State record for Identify AE

Record Type SQL Table

Parent Record

Related Language

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll Switzerland

Comments State record for Identify,BVG,KTG,UVGZ Application engine



FieldName Type Len Key Srch Req Edit Prompt C Default

PROCESS_INSTANCE Num 10

OPRID Char 30

RUN_CNTL_ID Char 30

GPCH_EG_YEP_FLG Char 1

GPCH_EG_DOMAINID Num 3

GPCH_EG_REQUEST_ID Char 25

GPCH_EG_REQUEST_ID Char 30

GPCH_RUN_OPTIONS Char 1

GPCH_CANCEL_OPTION Char 1

EMPLID Char 11

EMPL_RCD Num 3

COMPANY Char 3

GPCH_RC_PAY_YEAR Num 4

GPCH_RC_FROM_DT Date 10

GPCH_RC_TO_DT Date 10

GPCH_RC_RUN_TYPE Char 1 Xlat

GPCH_TX_FLG Char 1

GPCH_SI_PROV_CD Char 6

GPCH_PK_INS_PLAN Char 2

PIN_NUM Num 8

GPCH_PIN_NUM Num 8









Record: GPCHTX021_VW

Description Temp Record for GPCHTX02

Record Type SQL View

Parent Record

Related Language

Build Seq 1

Owner ID Global Payroll Switzerland

Comments

Temp Record for GPCHTX02



FieldName Type Len Key Srch Req Edit Prompt C Default

PROCESS_INSTANCE Num 10 KA

GPCH_TX_CANTON Char 2 KA

GPCH_TX_VILLAGE_CD Char 4 KA

GPCH_TX_TRF_TYPE Char 1 KA Xlat

EMPLID Char 11 KA Req Prmt PERSON

EMPL_RCD Num 3 KA

GPCH_AL_CPAY_ENDDT Date 10 KA

SEG_BGN_DT Date 10

SEG_END_DT Date 10 KA

RSLT_SEG_NUM Num 4 KA

SEQNUM Num 3 KA '0'

SEX Char 1 Xlat

COMPANY Char 3

PRD_END_DT Date 10

TERMINATION_DT Date 10

BEGIN_DT Date 10

END_DT Date 10

BIRTHDATE Date 10

GPCH_TX_TRF_CD Char 10

NATIONAL_ID Char 20

GPCH_AH_NNSS Char 20

VISA_PERMIT_TYPE Char 3

CONTRACT_TYPE Char 3

ACTION Char 3 Prmt ACTION_TBL

POSTAL Char 12

GPCH_RP_AMOUNT1 Sign 12.6

GPCH_RP_AMOUNT2 Sign 12.6

GPCH_RP_AMOUNT3 Sign 12.6

GPCH_RP_AMOUNT11 Sign 12.6

GPCH_RP_AMOUNT14 Sign 12.6

GPCH_RP_AMOUNT19 Sign 12.6

GPCH_RP_AMOUNT20 Sign 12.6

GPCH_RP_CHAR03 Char 6

GPCH_RP_FROMDT1 Date 10

REG_TEMP Char 1 Xlat

FTE Num 1.6

Record: GPCHTX07B_TMP

Description Year End ProviderTotals temp

Record Type Temporal

Parent Record

Related Language

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll Switzerland

Comments Stores Provider total data for each functional type per year per com

pany in a Temp Record.



FieldName Type Len Key Srch Req Edit Prompt C Default

PROCESS_INSTANCE Num 10 KA

COMPANY Char 3 KA

GPCH_RC_PAY_YEAR Num 4 KA

GPCH_EG_DOMAINID Num 3 KA

GPCH_EG_REQUEST_ID Char 25 KA

GPCH_EG_REQUEST_ID Char 30 KA

GPCH_SI_PROV_TYPE Char 1 KA Xlat

GPCH_SI_PROV_CD Char 6 DA

GPCH_EG_USERKEY Char 2









Record: GPCHTX07_AET

Description GPCHTX07_AET

Record Type SQL Table

Parent Record

Related Language

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll Switzerland

Comments LAW 2006



FieldName Type Len Key Srch Req Edit Prompt C Default

PROCESS_INSTANCE Num 10 KA

OPRID Char 30

RUN_CNTL_ID Char 30

LANGUAGE_CD Char 3 Xlat

STRM_NUM Num 4

EMPLID Char 11

EMPL_RCD Num 3

EMPLID_FROM Char 11

EMPLID_TO Char 11

GPCH_RC_DT_OPT Char 1 Xlat

GPCH_RC_PAY_YEAR Num 4

GPCH_RC_FROM_DT Date 10

GPCH_RC_TO_DT Date 10 Prmt GPCH_RP_DATE_VW

PAY_ENTITY Char 10 Prmt GP_PYENT

GPCH_TX_CANTON Char 2 Prmt STATE_NAMES_TBL

DEPTID Char 10 Prmt DEPT_TBL

LOCATION Char 10

GP_PAYGROUP Char 10

NAME Char 50

GPCH_AL_PAGE_NUM Num 4

GPCH_IF_VER Num 3 KALS Req '1'

GPCH_RC_ADJUST_DT Date 10

GPCH_RC_RUN_TYPE Char 1 Xlat

GPCH_RC_INC_P_CALC Char 1 Y/N

GPCH_RC_APLY_SPLIT Char 1

GPCH_PIN_NUM Num 8

PIN_NUM Num 8

GPCH_AL_EXPEXP Char 1 Xlat

ACM_PRD_OPTN Char 1 Xlat

GPCH_AL_PIN_CAT Num 2

GPCH_AL_RPT_LANG Char 3

BEGIN_DT Date 10

END_DT Date 10

COMPANY Char 3

GPCH_AL_FR_TRSP Char 1 Xlat

GPCH_TX_CANTEEN Char 1 Xlat

GPCH_AL_EXPENSE Char 1 Xlat

SEX Char 1 Xlat

COUNTRY_FROM Char 3

MAR_STATUS Char 1 Xlat

NATIONAL_ID Char 20

BIRTHDATE Date 10

GPCH_RP_TX07_A Char 1

GPCH_RP_TX07_B Char 1

GPCH_AH_NNSS Char 20

GPCH_RC_AL01_S1 Char 1 Xlat

GPCH_RC_AL01_S2 Char 1 Xlat

GPCH_RC_AL01_S3 Char 1 Xlat

GPCH_EG_DOMAINID Num 3

GPCH_EG_REQUEST_ID Char 25

GPCH_EG_REQUEST_ID Char 30

GPCH_RUN_OPTIONS Char 1 Xlat

GPCH_CANCEL_OPTION Char 1

GPCH_SI_PROV_CD Char 6

GPCH_TX_FLG Char 1









Record: GPCH_EG_CPLT_DW

Description ELM Completion Details

Record Type Derived/Work

Parent Record

Related Language

Owner ID Global Payroll Switzerland

Comments ELM Completion Details



FieldName Type Len Key Srch Req Edit Prompt C Default

COMPANY Char 3 KA

GPCH_RC_PAY_YEAR Num 4 KA

GPCH_EG_DOMAINID Num 3 KA

GPCH_EG_REQUEST_ID Char 25 KA

GPCH_EG_REQUEST_ID Char 30 KA

GPCH_SI_PROV_TYPE Char 1 KA

GPCH_SI_PROV_CD Char 6 KA

GPCH_URL_ADDRESS Char 254

USERKEY Char 254

PASSWORD Char 254

GPCH_EG_EXPIRY Char 30









Record: GPCH_EG_ELOG_DW

Description ELM External Log details

Record Type Derived/Work

Parent Record

Related Language

Owner ID Global Payroll Switzerland

Comments ELM External Log details



FieldName Type Len Key Srch Req Edit Prompt C Default

COMPANY Char 3 KA

GPCH_RC_PAY_YEAR Num 4 KA

GPCH_EG_DOMAINID Num 3 KA

GPCH_EG_REQUEST_ID Char 25 KA

GPCH_EG_REQUEST_ID Char 30 KA

GPCH_EG_RESPONSEID Char 30 KA

GPCH_EG_ELOG Char 1

GPCH_EG_RESP_FILE Char 1

GPCH_EG_SENT_FILE Char 1

GPCH_EG_SYNC_FILE Char 1

GPCH_EG_SYNC_RESP Char 1

GPCH_EG_SYNC_RSLT Char 1

GPCH_EG_SCRSLT_RSP Char 1

GPCH_EG_SC_SALREQ Char 1

GPCH_EG_SAL_RESP Char 1

GCPH_EG_SC_LOAD Char 1

GPCH_EG_SAL_LOAD Char 1

GPCH_EG_SAL_VIEW Char 1

GPCH_EG_SC_VIEW Char 1









Record: GPCH_EG_FHEADER

Description Year End File Header Data

Record Type SQL Table

Parent Record

Related Language

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll Switzerland

Comments Year End File Header Data



FieldName Type Len Key Srch Req Edit Prompt C Default

COMPANY Char 3 KA

GPCH_RC_PAY_YEAR Num 4 KA

GPCH_EG_DOMAINID Num 3 KA

GPCH_EG_REQUEST_ID Char 25 KAL

GPCH_EG_REQUEST_ID Char 30 KAL

GPCH_EG_HDR_XML Long









Record: GPCH_EG_FSTATUS

Description ELM Internal XML File Status

Record Type SQL Table

Parent Record

Related Language

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll Switzerland

Comments GPCH-ELM Internal XML File Status



FieldName Type Len Key Srch Req Edit Prompt C Default

COMPANY Char 3 KA

GPCH_RC_PAY_YEAR Num 4 KA

GPCH_EG_DOMAINID Num 3 KA

GPCH_EG_REQUEST_ID Char 25 KA

GPCH_EG_REQUEST_ID Char 30 KA

GPCH_EG_RESPONSEID Char 30

FILENAME Char 80

TIME_STAMP DT 26

GPCH_REPORT_STATUS Char 4 Xlat

FILE_DATA_CHAR Long

GPCH_EG_REQID_OLD Char 30

GPCH_EG_RESPID_OLD Char 30









Record: GPCH_EG_ILOG_DW

Description ELM Internal Log Details

Record Type Derived/Work

Parent Record

Related Language

Owner ID Global Payroll Switzerland

Comments ELM Internal Log Details



FieldName Type Len Key Srch Req Edit Prompt C Default

COMPANY Char 3 KA

GPCH_RC_PAY_YEAR Num 4 KA

GPCH_EG_DOMAINID Num 3 KA

GPCH_EG_REQUEST_ID Char 25 KA

GPCH_EG_REQUEST_ID Char 30 KA

GPCH_EG_ELM_FILE Char 1

GPCH_EG_CONF_FILE Char 1

GPCH_EG_ILOG Char 1









Record: GPCH_EG_PER_VW

Description ELM Person table

Record Type SQL View

Parent Record

Related Language

Build Seq 1

Owner ID Global Payroll Switzerland

Comments

ELM Person table



FieldName Type Len Key Srch Req Edit Prompt C Default

GPCH_EG_DOMAINID Num 3 KA

GPCH_RC_PAY_YEAR Num 4 KA

COMPANY Char 3 KA

GPCH_SI_PROV_TYPE Char 1 KA Xlat

GPCH_SI_PROV_CD Char 6 KA

EMPLID Char 11 KA

EMPL_RCD Num 3 KA

BEGIN_DT Date 10 KA

END_DT Date 10 KA

GPCH_IF_VER Num 3 KA

GPCH_EG_PRSN_XML Long









Record: GPCH_EG_PHEADER

Description ELM Provider Header

Record Type SQL Table

Parent Record

Related Language

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll Switzerland

Comments ELM Provider Header



FieldName Type Len Key Srch Req Edit Prompt C Default

COMPANY Char 3 KALS

GPCH_RC_PAY_YEAR Num 4 KALS

GPCH_EG_DOMAINID Num 3 KALS

GPCH_EG_REQUEST_ID Char 25 KA

GPCH_EG_REQUEST_ID Char 30 KA

GPCH_SI_PROV_TYPE Char 1 KA Xlat

GPCH_SI_PROV_CD Char 6 KA

GPCH_EG_USERKEY Char 2

GPCH_EG_RESPONSEID Char 30

FILE_DATA_CHAR Long









Record: GPCH_EG_PRO_DW

Description ELM Provider Derived Record

Record Type Derived/Work

Parent Record

Related Language

Owner ID Global Payroll Switzerland

Comments ELM Provider Derived Record



FieldName Type Len Key Srch Req Edit Prompt C Default

COMPANY Char 3

GPCH_SI_PROV_TYPE Char 1 Xlat

GPCH_EG_ISSU_DAT Date 10

GPCH_RC_PAY_YEAR Num 4

GPCH_EG_DOMAINID Num 3

GPCH_EG_REQUEST_ID Char 25

GPCH_EG_REQUEST_ID Char 30

GPCH_SI_PROV_CD Char 6

GPCH_EG_TRANS_MODE Char 3 Xlat

GPCH_REPORT_STATUS Char 4 Xlat

GPCH_EG_F_GROUB Char 10

GPCH_RPT_E_STATUS Char 4 Xlat

SAVE_PB Char 1

PRINT_BTN Char 1

GPCH_EG_SEND Char 1 'Y'

GPCH_EG_RESEND Char 1

GPCH_EG_VALIDATE Char 1 Y/N 'N'

GPCH_HISTORY_PB Char 1

GPCH_EG_COMPARE Char 1 Y/N 'N'

GPCH_EG_FEEDBACK Char 1 Y/N 'N'

GPCH_EG_GETRESULT Char 1 Y/N 'N'

FILE_OUTPUT_DIR Char 127

GPCH_EG_MONITOR_ID Char 25

GPCH_EG_DISTRIBUTR Char 1

GPCH_EG_TESTMODE Char 1 Y/N 'N'

GPCH_EG_SIGN Char 1 Y/N 'Y'

GPCH_EG_COMPRESS Char 1 Y/N 'N'

GPCH_EG_ENCRYPT Char 1 Y/N 'N'

URL Char 254

GPCH_EG_CERTIFICTE Char 25

GPCH_EG_PASSWORD Long

GPCH_EG_ALIAS_PASS Long

GPCH_EG_CERT_PATH Long

GPCH_EG_CERT_TYPE Char 10

GPCH_EG_LABEL Char 1

GPCH_EG_PRO_TOT Sign 8.2

GPCH_EG_PING Char 1

GPCH_EG_INTEROP Char 1 Xlat

GPCH_EG_POWERUSER Char 1 Y/N 'N'

GPCH_XMLP_SORT_1 Char 1 Xlat

GPCH_XMLP_SORT_2 Char 1 Xlat

GPCH_XMLP_SORT_3 Char 1 Xlat

GPCH_XMLP_OUTPUT Char 1 Xlat 'P'

GROUP_LIST_ID Char 10 Prmt GP_GRP_LIST_VW

LANGUAGE_CD Char 3 Xlat 'ENG'

GPCH_XMLP_SUBSLCT Char 1 Xlat 'E'

GPCH_XMLP_AHV_ALV Char 1 Xlat 'H'

GPCH_TX_CANTON Char 2



Extend Field Info SetCtrlField Label PageControl Audit

GPCH_EG_PING PING









Record: GPCH_EG_PSTATUS

Description ELM Reciever File Status

Record Type SQL Table

Parent Record

Related Language

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll Switzerland

Comments GPCH:ELM Reciever File Status



FieldName Type Len Key Srch Req Edit Prompt C Default

COMPANY Char 3 KA

GPCH_RC_PAY_YEAR Num 4 KA

GPCH_EG_DOMAINID Num 3 KA

GPCH_EG_REQUEST_ID Char 25 KA

GPCH_EG_REQUEST_ID Char 30 KA

GPCH_SI_PROV_TYPE Char 1 KA Xlat

GPCH_SI_PROV_CD Char 6 KA

OPRID Char 30 KA

GPCH_EG_USERKEY Char 2

GPCH_EG_RESPONSEID Char 30

GPCH_REPORT_STATUS Char 4 Xlat

GPCH_EG_COMPLETE Char 1 Y/N 'N'

FILE_DATA_CHAR Long

GPCH_EG_SNT_TIME DT 26

GPCH_EG_RCV_TIME DT 26

GPCH_EG_RESEND Char 1 Y/N 'N'

GPCH_EG_REQID_OLD Char 30

GPCH_EG_RESPID_OLD Char 30









Record: GPCH_EG_PSTA_VW

Description ELM Provider Status View

Record Type SQL View

Parent Record

Related Language

Build Seq 1

Owner ID Global Payroll Switzerland

Comments ELM Provider Status View



FieldName Type Len Key Srch Req Edit Prompt C Default

COMPANY Char 3

GPCH_RC_PAY_YEAR Num 4

GPCH_EG_DOMAINID Num 3

GPCH_EG_REQUEST_ID Char 25

GPCH_EG_REQUEST_ID Char 30

GPCH_SI_PROV_TYPE Char 1 Xlat

GPCH_SI_PROV_CD Char 6

GPCH_EG_TRANS_MODE Char 3 Xlat

FILENAME Char 80

TIME_STAMP DT 26

GPCH_REPORT_STATUS Char 4 Xlat

GPCH_RPT_E_STATUS Char 4

GPCH_EG_RESEND Char 1

GPCH_EG_REQID_OLD Char 30

GPCH_EG_RESPID_OLD Char 30









Record: GPCH_EG_PTOTALS

Description Year End ProviderTotals

Record Type SQL Table

Parent Record

Related Language

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll Switzerland

Comments Stores Provider total data for each functional type per year per com

pany.



FieldName Type Len Key Srch Req Edit Prompt C Default

COMPANY Char 3 KA

GPCH_RC_PAY_YEAR Num 4 KA

GPCH_EG_DOMAINID Num 3 KA

GPCH_EG_REQUEST_ID Char 25 KA

GPCH_EG_REQUEST_ID Char 30 KA

GPCH_SI_PROV_TYPE Char 1 KA Xlat

GPCH_SI_PROV_CD Char 6 KA

GPCH_EG_USERKEY Char 2

GPCH_EG_CMP_XML Long









Record: GPCH_IF_TX07_VW

Description GPCH_IF_TX07

Record Type SQL View

Parent Record

Related Language

Build Seq 1

Owner ID Global Payroll Switzerland

Comments

Stores the LAW XML



FieldName Type Len Key Srch Req Edit Prompt C Default

EMPLID Char 11 KALS Req

EMPL_RCD Num 3 KALS

BEGIN_DT Date 10 KALS Req %Date

END_DT Date 10 KALS Req %Date

COMPANY Char 3 KALS Req Prmt COMPANY_TBL

GPCH_EG_DOMAINID Num 3

GPCH_IF_VER Num 3 KALS Req '1'

LOCATION Char 10

DEPTID Char 10

GP_PAYGROUP Char 10

PAY_ENTITY Char 10

GPCH_TX_CANTON Char 2

NAME Char 50

GPCH_AL_PAGE_NUM Num 4

GPCH_IF_STATUS Char 1 Req Xlat 'O'

GPCH_RP_SRC_IND Char 1 Req Xlat 'U'

GPCH_RP_TX7_DATA Long

GPCH_RP_PRINT_FL Char 1









Record: GPCH_PK_DAT_DTL

Description Pension Fund Data

Record Type SQL Table

Parent Record

Related Language

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll Switzerland

Comments Pension Fund Data



FieldName Type Len Key Srch Req Edit Prompt C Default

EMPLID Char 11 KALS Req Prmt PERSONAL_DATA

EMPL_RCD Num 3 KA

EFFDT Date 10 KD Req

GPCH_SI_PROV_TYPE Char 1 KA Xlat '6'

GPCH_SI_PROV_CD Char 6 KALS Req Prmt GPCH_SI_PRV_VW1

GPCH_PK_INS_PLAN Char 2 KA Prmt GPCH_PK_PLANS

GPCH_PK_INS_STATUS Char 8 KA Prmt GPCH_PK_STATUS

GPCH_PK_STATUS Char 1 Xlat

GROUP_LIST_ID Char 10 Prmt GP_GRP_LIST

GPCH_PK_ID_INS Char 11

GPCH_PK_ID_ALT Num 9

GPCH_PK_EXIT_DATE Date 10

GPCH_PK_SALARY Num 12.6

GPCH_PK_SALARY Num 12.2

CURRENCY_CD Char 3 Prmt CURRENCY_CD_TBL 'CHF'









Record: GPCH_RP_AL10ONL

Description Online Payslip

Record Type SQL Table

Parent Record

Related Language

DDL Space Name HRAPP.PSHRDMOH

Owner ID Global Payroll Switzerland

Comments Online Payslip staging record



FieldName Type Len Key Srch Req Edit Prompt C Default

EMPLID Char 11 KALS

CAL_RUN_ID Char 18 KA

EMPL_RCD Num 3 KALS

GPCH_RP_SEQUENCE Num 8 KA

PAY_ENTITY Char 10 KA

DEPTID Char 10

COMPANY Char 3

GPCH_AL_CPAY_ENDDT Date 10 KALS

GPCH_RC_FINAL_PR Char 1

GPCH_AL_AL01_PRINT Char 1

GPCH_AL_AL01_ADDR Char 2 Xlat

ADDRESS_TYPE Char 4 Prmt ADDRESS_TYP_TBL 'HOME'

GP_CALC_TS DT 26

GPCH_RP_AL1_DATA Long









Record: GPCH_RP_SI07_VW

Description Temporary Table SI07

Record Type SQL View

Parent Record

Related Language

Build Seq 1

Owner ID Global Payroll Switzerland

Comments

Temporary Table SI07



FieldName Type Len Key Srch Req Edit Prompt C Default

EMPLID Char 11 KALS Req Prmt PERSON

CAL_RUN_ID Char 18 KA

EMPL_RCD Num 3 KA

GP_PAYGROUP Char 10 KA

CAL_ID Char 18 KA

ORIG_CAL_RUN_ID Char 18 KA

RSLT_SEG_NUM Num 4 KA

SLICE_END_DT Date 10 KA

GPCH_TX_UV_PROV_CD Char 6 KA

GPCH_TX_UV_STATUS Char 1 KA Xlat

GPCH_SI_COV_UV Char 1 KA Xlat

SLICE_BGN_DT Date 10

PAY_ENTITY Char 10

COMPANY Char 3 L Req Prmt COMPANY_TBL

PRD_END_DT Date 10

GPCH_AL_CPAY_ENDDT Date 10

GPCH_RP_YEAR Date 10

BEGIN_DT Date 10

END_DT Date 10

FULL_PART_TIME Char 1 Xlat

SEX Char 1 Xlat

GPCH_RP_AMOUNT1 Sign 12.6

GPCH_RP_AMOUNT2 Sign 12.6

GPCH_RP_AMOUNT3 Sign 12.6

STATUS Char 1 Xlat

GPCH_RP_AMOUNT4 Sign 12.6

GPCH_RP_AMOUNT6 Sign 12.6

GPCH_RP_SEQUENCE Num 8









Record: GPCH_SIAL2_NRVW

Description Additional Insurance Table

Record Type SQL View

Parent Record GPCH_SI_ADDTNL1

Related Language

Build Seq 1

Owner ID Global Payroll Switzerland

Comments Additional Insurance Table



FieldName Type Len Key Srch Req Edit Prompt C Default

COMPANY Char 3 KALS Req Prmt COMPANY_TBL

GPCH_SI_PROV_TYPE Char 1 KALS Req Prmt GPCH_SI_ADDTNL1

EFFDT Date 10 KD Req

GPCH_SI_TYPE_ID Char 3 KALS Req Xlat

GPCH_SI_ALT_ID Char 2 KALS Req Xlat

GPCH_SI_ALT_ID Char 8 KALS Req Xlat

GPCH_RATE_M Num 3.4

GPCH_RATE_F Num 3.4

GPCH_RATE2_M Num 4.2

GPCH_RATE2_F Num 4.2

GPCH_LOW_SALARY Num 7.2

GPCH_HIGH_SALARY Num 7.2

CURRENCY_CD Char 3 Prmt CURRENCY_CD_TBL 'CHF'

GPCH_PIN_NUM Num 8 Prmt GP_PIN_ER0_VW

GPCH_PIN_NUM01 Num 8 Prmt GP_PIN_ER0_VW

GPCH_PIN_NUM02 Num 8 Prmt GP_PIN_ER0_VW

GPCH_PIN_NUM03 Num 8

GPCH_PIN_NUM04 Num 8

GPCH_PIN_NUM05 Num 8

GPCH_PIN_NUM06 Num 8

GPCH_PIN_NUM07 Num 8

GPCH_PIN_NUM08 Num 8









Record: GPCH_SI_ADD2_VW

Description Additional Insurance View

Record Type SQL View

Parent Record GPCH_SI_ADDTNL1

Related Language

Build Seq 1

Owner ID Global Payroll Switzerland

Comments Additional Insurance View



FieldName Type Len Key Srch Req Edit Prompt C Default

COMPANY Char 3 KALS Req Prmt COMPANY_TBL

GPCH_SI_PROV_TYPE Char 1 KALS Req Prmt GPCH_SI_ADDTNL1

EFFDT Date 10 KD Req

GPCH_SI_TYPE_ID Char 3 KAL Req Xlat

GPCH_SI_ALT_ID Char 2 KAL Xlat

GPCH_SI_ALT_ID Char 8 KAL Xlat

GPCH_ZV_DFLT_GRP Char 1

GPCH_ZV_DFLT_SPLIT Char 3









Record: GPCH_SI_ADDL_VW

Description Additional Insurance View

Record Type SQL View

Parent Record

Related Language

Build Seq 1

Owner ID Global Payroll Switzerland

Comments Additional Insurance View



FieldName Type Len Key Srch Req Edit Prompt C Default

EMPLID Char 11 KA

EMPL_RCD Num 3 KA

EFFDT Date 10 KD %date

COMPANY Char 3 KA

GPCH_SI_PROV_TYPE Char 1 KA Xlat

GPCH_SI_TYPE_ID Char 3 Xlat

GPCH_SI_ALT_ID Char 2 Xlat

GPCH_SI_ALT_ID Char 8 Xlat

AMOUNT Sign 15.3

CURRENCY_CD Char 3

GPCH_RATE_M Num 3.4

GPCH_RATE_F Num 3.4

GPCH_RATE2_M Num 4.2

GPCH_RATE2_F Num 4.2

GPCH_LOW_SALARY Num 7.2

GPCH_HIGH_SALARY Num 7.2

GPCH_PIN_NUM Num 8

GPCH_PIN_NUM01 Num 8

GPCH_PIN_NUM02 Num 8

GPCH_PIN_NUM03 Num 8

GPCH_PIN_NUM04 Num 8

GPCH_PIN_NUM05 Num 8

GPCH_PIN_NUM06 Num 8

GPCH_PIN_NUM07 Num 8

GPCH_PIN_NUM08 Num 8

GPCH_PREM_AN_M_PCT Num 3.4

GPCH_PREM_AN_F_PCT Num 3.4

GPCH_PREM_PERS_M Num 3.4

GPCH_PREM_PERS_F Num 3.4

GPCH_PROPOSE Char 1 Xlat

GPCH_PREMIUM_MIN Num 3.2

GRADE Char 3









Record: GPCH_SI_ADDTNL2

Description Additional Insurance Table

Record Type SQL Table

Parent Record GPCH_SI_ADDTNL1

Related Language

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll Switzerland

Comments Additional Insurance Table



FieldName Type Len Key Srch Req Edit Prompt C Default

COMPANY Char 3 KALS Req Prmt COMPANY_TBL

GPCH_SI_PROV_TYPE Char 1 KALS Req Prmt GPCH_SI_ADDTNL1

EFFDT Date 10 KD Req

GPCH_SI_TYPE_ID Char 3 KALS Req Xlat

GPCH_SI_ALT_ID Char 2 KALS Req Xlat

GPCH_SI_ALT_ID Char 8 KALS Req Xlat

GPCH_RATE_M Num 3.4

GPCH_RATE_F Num 3.4

GPCH_RATE2_M Num 4.2

GPCH_RATE2_F Num 4.2

GPCH_LOW_SALARY Num 7.2

GPCH_HIGH_SALARY Num 7.2

CURRENCY_CD Char 3 Prmt CURRENCY_CD_TBL 'CHF'

GPCH_PIN_NUM Num 8 Prmt GP_PIN_ER0_VW

GPCH_PIN_NUM01 Num 8 Prmt GP_PIN_ER0_VW

GPCH_PIN_NUM02 Num 8 Prmt GP_PIN_AC0_VW

GPCH_PIN_NUM03 Num 8

GPCH_PIN_NUM04 Num 8

GPCH_PIN_NUM05 Num 8

GPCH_PIN_NUM06 Num 8

GPCH_PIN_NUM07 Num 8

GPCH_PIN_NUM08 Num 8

GPCH_ZV_DFLT_GRP Char 1

GPCH_ZV_DFLT_SPLIT Char 3 Prmt GPCH_SI_GRD_VW









Record: GPCH_SI_ADSP_VW

Description Additional Insurance View

Record Type SQL View

Parent Record

Related Language

Build Seq 1

Owner ID Global Payroll Switzerland

Comments Additional Insurance View



FieldName Type Len Key Srch Req Edit Prompt C Default

COMPANY Char 3 KA

GPCH_SI_PROV_TYPE Char 1 KA Xlat

EFFDT Date 10 KD %date

GPCH_SI_TYPE_ID Char 3 KA Xlat

GPCH_SI_ALT_ID Char 2 KA Xlat

GPCH_SI_ALT_ID Char 8 KA Xlat

CURRENCY_CD Char 3

GPCH_RATE_M Num 3.4

GPCH_RATE_F Num 3.4

GPCH_RATE2_M Num 4.2

GPCH_RATE2_F Num 4.2

GPCH_LOW_SALARY Num 7.2

GPCH_HIGH_SALARY Num 7.2

GPCH_PIN_NUM Num 8

GPCH_PIN_NUM01 Num 8

GPCH_PIN_NUM02 Num 8

GPCH_PIN_NUM03 Num 8

GPCH_PIN_NUM04 Num 8

GPCH_PIN_NUM05 Num 8

GPCH_PIN_NUM06 Num 8

GPCH_PIN_NUM07 Num 8

GPCH_PIN_NUM08 Num 8

GRADE Char 3

GPCH_PREM_AN_M_PCT Num 3.4

GPCH_PREM_AN_F_PCT Num 3.4

GPCH_PREM_PERS_M Num 3.4

GPCH_PREM_PERS_F Num 3.4

GPCH_PROPOSE Char 1 Xlat

GPCH_PREMIUM_MIN Num 3.2









Record: GPCH_SI_SPL1_VW

Description View to prompt valid entries

Record Type SQL View

Parent Record

Related Language

Build Seq 1

Owner ID Global Payroll Switzerland

Comments View to prompt valid entries for EE's ,Company and Grade



FieldName Type Len Key Srch Req Edit Prompt C Default

EMPLID Char 11 KA S

COMPANY Char 3 KA S

GPCH_SI_TYPE_ID Char 3 KALS Xlat

GPCH_SI_ALT_ID Char 2 KALS Xlat

GPCH_SI_ALT_ID Char 8 KALS Xlat

DESCR2 Char 30

GPCH_SI_PROV_TYPE Char 1 L Xlat









Record: GPCH_SI_SPL2_VW

Description View to prompt valid entries

Record Type SQL View

Parent Record

Related Language

Build Seq 1

Owner ID Global Payroll Switzerland

Comments View to prompt valid entries for EE's ,Company and Grade



FieldName Type Len Key Srch Req Edit Prompt C Default

EMPLID Char 11 KA S

COMPANY Char 3 KA S

GPCH_SI_TYPE_ID Char 3 KALS Xlat

GPCH_SI_ALT_ID Char 2 KALS Xlat

GPCH_SI_ALT_ID Char 8 KALS Xlat

GPCH_SI_PROV_TYPE Char 1 KALS Xlat

DESCR Char 30 L









Record: GPCH_SI_SPLIT

Description Social Security Split

Record Type SQL Table

Parent Record GPCH_SI_ADDTNL2

Related Language

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll Switzerland

Comments Social Security Split



FieldName Type Len Key Srch Req Edit Prompt C Default

COMPANY Char 3 KALS Req Prmt COMPANY_TBL

GPCH_SI_PROV_TYPE Char 1 KALS Req Prmt GPCH_SI_ADDTNL1

EFFDT Date 10 KD Req

GPCH_SI_TYPE_ID Char 3 KALS Req Xlat

GPCH_SI_ALT_ID Char 2 KA Req Xlat

GPCH_SI_ALT_ID Char 8 KA Req Xlat

GRADE Char 3 KA Req Prmt GPCH_SI_GRD_VW

GPCH_PREM_AN_M_PCT Num 3.4

GPCH_PREM_AN_F_PCT Num 3.4

GPCH_PREM_PERS_M Num 3.4

GPCH_PREM_PERS_F Num 3.4

GPCH_PROPOSE Char 1 Req Xlat

GPCH_PREMIUM_MIN Num 3.2

GPCH_CALCULATE Char 1 Xlat









Record: GPCH_SI_SPLT_VW

Description View to prompt valid entries

Record Type SQL View

Parent Record

Related Language

Build Seq 1

Owner ID Global Payroll Switzerland

Comments View to prompt valid entries for EE's ,Company and Grade



FieldName Type Len Key Srch Req Edit Prompt C Default

EMPLID Char 11 KA S

COMPANY Char 3 KA S

GPCH_SI_TYPE_ID Char 3 KALS Xlat

DESCR1 Char 30 AAL

GPCH_SI_ALT_ID Char 2 L Xlat

GPCH_SI_ALT_ID Char 8 L Xlat

GPCH_SI_PROV_TYPE Char 1 L Xlat









Record: GPCH_SI_VARIAN2

Description Social Insurance Table

Record Type SQL Table

Parent Record GPCH_SI_VARIAN1

Related Language

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll Switzerland

Comments Social Insurance Table



FieldName Type Len Key Srch Req Edit Prompt C Default

EMPLID Char 11 KALS Req

EMPL_RCD Num 3 KALS

EFFDT Date 10 KD Req

GPCH_SI_VARIAN1.EFFDT

GPCH_SI_TYPE_ID Char 3 KA Req Xlat

GPCH_SI_ALT_ID Char 2 KA Req Xlat

GPCH_SI_ALT_ID Char 8 KA Req Xlat

GPCH_SI_PROV_TYPE Char 1 Req Xlat

STATUS Char 1 Req Xlat 'A'

GPCH_CALCULATE Char 1 Xlat 'A'

AMOUNT Sign 15.3

CURRENCY_CD Char 3 Prmt CURRENCY_CD_TBL 'CHF'

Record: GPCH_TX_MNPL_VW

Description GPCH_TX_MNPL_VW

Record Type SQL View

Parent Record

Related Language

Build Seq 1

Owner ID Global Payroll Switzerland

Comments GPCH_TX_MNPL_VW



FieldName Type Len Key Srch Req Edit Prompt C Default

GPCH_TX_CANTON Char 2 KALS

GPCH_TX_CANTON Char 2 AAL Req

CITY Char 30 L

GPCH_TX_VILLAGE_CD Char 4 KALS Req Prmt GPCH_TX_MNPL_VW

DESCR Char 30 AAL Req









Record: GPCH_XP_EMPLID

Description EMPLID Subselection Record

Record Type SQL Table

Parent Record GPCH_EG_FSTATUS

Related Language

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll Switzerland

Comments EMPLID subselection for XMLP .



FieldName Type Len Key Srch Req Edit Prompt C Default

COMPANY Char 3 KA

GPCH_RC_PAY_YEAR Num 4 KA

GPCH_EG_DOMAINID Num 3 KA

GPCH_EG_REQUEST_ID Char 25 KA

GPCH_EG_REQUEST_ID Char 30 KA

EMPLID Char 11 KA Prmt PERS_SRCH_GBL









Record: GPES_ADLNJOB_VW

Description Adv/Loan Job data status

Record Type SQL View

Parent Record

Related Language

Build Seq 2

Owner ID Global Payroll Spain

Comments

This view returns the employees job rows along with the status



FieldName Type Len Key Srch Req Edit Prompt C Default

EMPLID Char 11 KALS Prmt PERSON

EMPL_RCD Num 3 KALS

EFFDT_NEW Date 10

HR_STATUS Char 1









Record: GPES_ADLNREM_VW

Description Adv/Loan Rem. total repayments

Record Type SQL View

Parent Record

Related Language

Build Seq 2

Owner ID Global Payroll Spain

Comments Sums all the remaining repayments by emplid, type ( Advance or Loan)

and currency code.

This is used at termination time to deduct all the employee pending

repayments from the termination payment.



FieldName Type Len Key Srch Req Edit Prompt C Default

EMPLID Char 11 KALS Prmt PERSON

SEQNUM Num 3

GPES_ADVLOAN_OPT Char 1 Req Xlat

GPES_PYMNT_DT Date 10

GPES_DED_BEG_DT Date 10

CURRENCY_CD Char 3

GPES_ADLN_AMT Num 8.2 Y Curr: CURRENCY_CD

GPES_DED_AMT Num 8.2 Y Curr: CURRENCY_CD

EFFDT_NEW Date 10

HR_STATUS Char 1









Record: GPES_ADLNSEQ_VW

Description Adv/Loan total repaid amount

Record Type SQL View

Parent Record

Related Language

Build Seq 2

Owner ID Global Payroll Spain

Comments

Retrieves all repayments that have been deducted for a sequence numb

er



FieldName Type Len Key Srch Req Edit Prompt C Default

EMPLID Char 11 KALS Prmt PERSON

SEQNUM Num 3 KA

GPES_DED_AMT Num 8.2 Y Curr: CURRENCY_CD









Record: GPES_ANT_AUS_VW

Description Absences that affect seniority

Record Type SQL View

Parent Record

Related Language

Build Seq 1

Owner ID Global Payroll Spain

Comments Retrieves begin and end dates for employee absences that affects sen

iority years.



Its affect seniority by subtracting the number of days between both

dates from the seniority years. This operation is done for all the

returned rows. At the end the result will be seniority years less th

e summ off all days between begin and end date of each row.



FieldName Type Len Key Srch Req Edit Prompt C Default

EMPLID Char 11 KALS

EMPL_RCD Num 3 KA

BGN_DT Date 10 KA

PIN_TAKE_NUM Num 8 KA

END_DT Date 10 KA

EFFDT Date 10 KD %date

EFF_STATUS Char 1 Xlat









Record: GPES_CC_EE_DTA

Description CC Employee Data

Record Type SQL Table

Parent Record

Related Language

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll Spain

Comments Company Certificate Employee Data.

Used for Reporting.



FieldName Type Len Key Srch Req Edit Prompt C Default

OPRID Char 30 KA

RUN_CNTL_ID Char 30 KA

EMPLID Char 11 KALS

EFFDT Date 10 KD %date

SSN_EMPLOYER Char 13 KALS Prmt GPES_CCC_VW

EMPL_RCD Num 3

GPES_SCHEME_CCC Char 15

RESPONSIBLE_ID Char 11 Prmt PERSON

JOBCODE_DESCR Char 30

COMPANY Char 3

NATIONAL_ID Char 20

SOC_SEC_WRK_GRP_CD Char 2

CONTRACT_TYPE Char 3

HIRE_DT Date 10

TERMINATION_DT Date 10

TERMINATION_REASON Char 3

GPES_LITIG_DAYS Char 5 '00000'

GPES_LITIG_BGN_DT Date 10

GPES_LITIG_END_DT Date 10

GPES_VACTN_DAYS Char 3

GPES_VACTN_BS_CC Char 9

GPES_VACTN_BS_CP Char 9

GPES_CNT_DURATION Char 5

GPES_CNT_FREQ Char 1

GPES_CNO_CODE_8 Char 8

FISCAL_ID_CD Char 10

GPES_WRK_CNCL_FUNC Char 4

GPES_CNCL_PCT Char 4

GPES_ERE_ID Char 9

GPES_ERE_REDN_PCT Char 4

GPES_ERE_SUS_ENDDT Date 10

GPES_REDN_PCT_OTH Char 4

GPES_REDN_RSN Char 2









Record: GPES_CC_PT_DAYS

Description CC Part Time Distribution Schd

Record Type SQL Table

Parent Record

Related Language

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll Spain

Comments Company Certificate Distribution Schedule for Part Time employees.

Used only for Reporting.



FieldName Type Len Key Srch Req Edit Prompt C Default

OPRID Char 30 KA

RUN_CNTL_ID Char 30 KA

EMPLID Char 11 KALS

EFFDT Date 10 KD %date

SSN_EMPLOYER Char 13 KALS

GPES_PT_BGN_DT Date 10 KA

EMPL_RCD Num 3

GPES_PT_END_DT Date 10

GPES_PT_SCHD_TYPE Char 1

GPES_PT_WRKED_DAYS Char 5









Record: GPES_CC_XCCC_VW

Description Comp Certif CCC Data VW ESP

Record Type SQL View

Parent Record

Related Language

Build Seq 2

Owner ID Global Payroll Spain

Comments Company Certificate CCC Data.



FieldName Type Len Key Srch Req Edit Prompt C Default

OPRID Char 30 KA

RUN_CNTL_ID Char 30 KA

SSN_EMPLOYER Char 13 KALS

GPES_SCHEME_CCC Char 15

RESPONSIBLE_ID Char 11

JOBCODE_DESCR Char 30

FIRST_NAME Char 30

LAST_NAME Char 30

SECOND_LAST_NAME Char 30

FISCAL_ID_CD Char 10

NATIONAL_ID Char 20









Record: GPES_CC_XEE_VW

Description Comp Certif EE Data VW ESP

Record Type SQL View

Parent Record

Related Language

Build Seq 1

Owner ID Global Payroll Spain

Comments Company Certificate Employee Data.



FieldName Type Len Key Srch Req Edit Prompt C Default

OPRID Char 30 KA

RUN_CNTL_ID Char 30 KA

SSN_EMPLOYER Char 13 KALS

EMPLID Char 11 KALS

EFFDT Date 10 KD %date









Record: GPFR_AF_ATR_IMP

Description Attribute Import Record

Record Type SQL Table

Parent Record

Related Language GPFR_AF_IMP_LNG

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll France

Comments Application Framework - This record is a copy GPFR_AF_ATTR record. U

sed for data upgrading into the GPFR_AF_ATTR record.



FieldName Type Len Key Srch Req Edit Prompt C Default

COUNTRY Char 3 KALS Req

GPFR_AF_APPL Char 10 KALS Req

GPFR_AF_KEY_NODE Num 8 KALS Req

GPFR_AF_KEY_ATTR Num 8 KALS Req '99999999'

GPFR_AF_ATTR_NAME Char 12 AAL Req

GPFR_AF_ATTR_STAT Char 1 Req Xlat 'A'

GPFR_AF_ATTR_SEQ Num 4 Req

DESCR60 Char 60 Req

GPFR_AF_ATTR_TYPE Char 1 Xlat

GPFR_AF_ATR_LENGTH Num 3

GPFR_AF_ATR_DECIML Num 2

GPFR_AF_MANDATORY Char 1 Y/N 'N'

GPFR_AF_ATR_LBLSRC Char 4 Xlat

GPFR_AF_CODE_ID Char 12

GPFR_AF_PROMPT Char 15

GPFR_DA_DATTYP Char 10

GPFR_AF_PR_LBL_FLD Char 18

GPFR_AF_PR_KEY_FLD Char 18

GPFR_AF_ATTR_FIELD Char 18

GPFR_AF_PS_DON Char 16

GPFR_AF_CUST_DON Char 16

GPFR_AF_RPT_ONLY Char 1 Y/N 'N'

COMMENTS Long

GPFR_AF_OWNER Char 1 Xlat









Record: GPFR_AF_ATR_PRM

Description Attribute Parameter Record

Record Type SQL Table

Parent Record

Related Language

DDL Space Name PSIMAGE.PSHRDMO

Owner ID Global Payroll France

Comments Application Framework - This record stores the overriden parameters

of an attribute along with the overriden values.



FieldName Type Len Key Srch Req Edit Prompt C Default

COUNTRY Char 3 KALS Req Prmt COUNTRY_TBL

GPFR_AF_APPL Char 10 KALS Req Prmt GPFR_AF_APPL

GPFR_AF_KEY_NODE Num 8 KA Req

GPFR_AF_KEY_ATTR Num 8 KA Req

GPFR_AF_DON Char 16 KA Req

GPFR_AF_SQL_SEQ Num 8 KA Req

GPFR_AF_PARM_SEQ Num 8 KA Req

GPFR_AF_FUNCT_NM Char 16

GPFR_AF_PARM_NM Char 20

GPFR_AF_DON_SRCTYP Char 3 Req Xlat 'SYS'

GPFR_AF_CODE_ID Char 12 Prmt GPFR_AF_MPCD_VW

GPFR_AF_INPUT_FLD Char 18 Prmt GPFR_AF_ENT_DVW

GPFR_AF_DATE_VAL Date 10

GPFR_AF_CHAR_VAL Char 50

GPFR_AF_NUM_VAL Sign 12.6

GPFR_AF_SQL_VAL Long

GPFR_AF_OWNER Char 1 Xlat









Record: GPFR_AF_ATTR

Description Attribute Record

Record Type SQL Table

Parent Record

Related Language GPFR_AF_ATR_LNG

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll France

Comments Application Framework - This is the base Attribute Record. This reco

rd Stores all the attributes along with their properties.



FieldName Type Len Key Srch Req Edit Prompt C Default

COUNTRY Char 3 KALS Req Prmt COUNTRY_TBL

GPFR_AF_APPL Char 10 KALS Req Prmt GPFR_AF_APPL

GPFR_AF_KEY_NODE Num 8 KALS Req Prmt GPFR_AF_NODE

GPFR_AF_KEY_ATTR Num 8 KALS Req '99999999'

GPFR_AF_ATTR_NAME Char 12 AAL Req

GPFR_AF_ATTR_STAT Char 1 Req Xlat 'A'

GPFR_AF_ATTR_SEQ Num 4 Req

DESCR60 Char 60 Req

GPFR_AF_ATTR_TYPE Char 1 Xlat

GPFR_AF_ATR_LENGTH Num 3

GPFR_AF_ATR_DECIML Num 2

GPFR_AF_MANDATORY Char 1 Y/N 'N'

GPFR_AF_ATR_LBLSRC Char 4 Xlat

GPFR_AF_CODE_ID Char 12 Prmt GPFR_AF_CODE_VW

GPFR_AF_PROMPT Char 15 Prmt RECDEFN_VW

GPFR_DA_DATTYP Char 10 Prmt GPFR_DA_DATTYP

GPFR_AF_PR_LBL_FLD Char 18 Prmt GPFR_AF_FLD_DVW

GPFR_AF_PR_KEY_FLD Char 18 Prmt GPFR_AF_FLD_DVW

GPFR_AF_ATTR_FIELD Char 18 Prmt GPFR_AF_DBFLDVW

GPFR_AF_PS_DON Char 16 Prmt GPFR_AF_PDON_VW

GPFR_AF_CUST_DON Char 16 Prmt GPFR_AF_CDON_VW

GPFR_AF_RPT_ONLY Char 1 Y/N 'N'

COMMENTS Long

GPFR_AF_OWNER Char 1 Xlat









Record: GPFR_AF_EXTR_VW

Description Extraction view

Record Type SQL View

Parent Record GPFR_AF_EXTRACT

Related Language

Build Seq 1

Owner ID Global Payroll France

Comments Application Framework - This view is used in extraction



FieldName Type Len Key Srch Req Edit Prompt C Default

COUNTRY Char 3 KA Req

GPFR_AF_APPL Char 10 KA Req

GPFR_AF_NODE_SET Char 16 KA Req

GPFR_AF_EXTRACT_ID Char 18 KA Req

COMPANY Char 3 KA

EMPLID Char 11 KA

EMPL_RCD Num 3 KA

GPFR_AF_SIT_BGN_DT Date 10 KA

GPFR_AF_SIT_END_DT Date 10 KA

GPFR_AF_KEY_NODE Num 8 KA Req '99999999'

GPFR_AF_KEY_ATTR Num 8 KA Req '99999999'

GPFR_AF_KEY_EXTRCT Char 12 KA

GPFR_AF_NODE_NAME Char 20

GPFR_AF_ATTR_NAME Char 12

GPFR_AF_CHAR_VAL Char 50

GPFR_AF_DATE_VAL Date 10

GPFR_AF_NUM_VAL Sign 12.6

GPFR_AF_RND_NM_VAL Num 12

ESTABID Char 12

GPFR_AF_DON Char 16

GPFR_AF_SQL_SEQ Num 8

GPFR_AF_LVL_1_ORD Num 6

GPFR_AF_LVL_1_VAL Char 50

GPFR_AF_LVL_2_ORD Num 6

GPFR_AF_LVL_2_VAL Char 50

GPFR_AF_LVL_3_ORD Num 6

GPFR_AF_LVL_3_VAL Char 50

GPFR_AF_LVL_4_ORD Num 6

GPFR_AF_LVL_4_VAL Char 50

GPFR_AF_LVL_5_ORD Num 6

GPFR_AF_LVL_5_VAL Char 50

GPFR_AF_LVL_6_ORD Num 6

GPFR_AF_LVL_6_VAL Char 50

GPFR_AF_LVL_7_ORD Num 6

GPFR_AF_LVL_7_VAL Char 50

GPFR_AF_LVL_8_ORD Num 6

GPFR_AF_LVL_8_VAL Char 50

GPFR_AF_LVL_9_ORD Num 6

GPFR_AF_LVL_9_VAL Char 50

GPFR_AF_LVL_10_ORD Num 6

GPFR_AF_LVL_10_VAL Char 50

GPFR_AF_CHECK_DONE Char 1 Y/N 'N'









Record: GPFR_AF_RUN_OTH

Description Define other nodes for extr

Record Type SQL Table

Parent Record

Related Language

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll France

Comments Application Framework - This record is used to list non levle zero n

odes forwhich extraction is run



FieldName Type Len Key Srch Req Edit Prompt C Default

OPRID Char 30 KA Req

RUN_CNTL_ID Char 30 KA Req

GPFR_AF_EXTRACT_ID Char 18 KA Req

GPFR_AF_ORDER Num 6 KA

GPFR_AF_KEY_NODE Num 8 KA Req

GPFR_AF_SELND_OTH Char 1 Y/N 'Y'

GPFR_AF_RUN_ATTR Char 1









Record: GPFR_AF_SQLENTY

Description SQL Entity Definition

Record Type SQL Table

Parent Record

Related Language GPFR_AF_SQL_LNG

DDL Space Name PSIMAGE.PSHRDMO

Owner ID Global Payroll France

Comments Application Framework - This record is used to define SQL entity for

specific country and application



FieldName Type Len Key Srch Req Edit Prompt C Default

COUNTRY Char 3 KALS Req Prmt COUNTRY_TBL

GPFR_AF_APPL Char 10 KALS Req Prmt GPFR_AF_APPL

GPFR_AF_SQL_ENTITY Char 16 KALS Req

DESCR Char 30 L Req

GPFR_AF_SQL_TYPE Char 1 Req Xlat

GPFR_AF_OUPUT_REC Char 20 Req Prmt GPFR_AF_OREC_VW

GPFR_AF_INPUT_REC Char 20 Req Prmt PSRECDEFN

GPFR_AF_SECIN_REC Char 20 Prmt PSRECDEFN

GPFR_AF_TEMPLT_OVR Char 1 Y/N 'N'

GPFR_AF_SQL_TEMPLT Long

GPFR_AF_OWNER Char 1 Xlat









Record: GPFR_ASS_SRCH

Description Assedic: used as srch record

Record Type SQL View

Parent Record

Related Language

Build Seq 2

Owner ID Global Payroll France

Comments Assedic: used as srch record for the all functionality.



FieldName Type Len Key Srch Req Edit Prompt C Default

OPRID Char 30 KA

ROWSECCLASS Char 30 KA

CAL_RUN_ID Char 18 KALS Prmt GPFR_ASS_SRCH1

EMPLID Char 11 KALS Prmt GPFR_ASS_SRCH5

EMPL_RCD Num 3 KALS

LAST_DATE_WORKED Date 10 KDLS

COMPANY Char 3 AAL Prmt GPFR_ASS_SRCH7

ESTABID Char 12 AAL Prmt GPFR_ASS_SRCH6

NAME Char 50 L









Record: GPFR_AT_RSLT_VW

Description AT/ILL: scrollselect view

Record Type SQL View

Parent Record

Related Language

Build Seq 5

Owner ID Global Payroll France

Comments AT/ILL: scrollselect view. Used as the view to retrieve the employee

s with an absence to take into consideration for data retrieval.



FieldName Type Len Key Srch Req Edit Prompt C Default

GB_GROUP_ID Char 15 KA

EMPLID Char 11 KA

EMPL_RCD Num 3 KA

BGN_DT Date 10 KD

ORIG_BEGIN_DT Date 10 KD

NAME Char 50

PIN_NUM Num 8

END_DT Date 10

GPFR_AT_ID_PRINTED Char 1 Y/N 'N'

GPFR_ABS_FAMILY Char 2 Xlat

ROWSECCLASS Char 30









Record: GPFR_GAR_DEP_VW

Description Garnishment Dependent Counter

Record Type SQL View

Parent Record

Related Language

Build Seq 2

Owner ID Global Payroll France

Comments Counts of dependents and beneficiaries for garnishment



FieldName Type Len Key Srch Req Edit Prompt C Default

EMPLID Char 11 KA Req Prmt PERSON

EFFDT Date 10 KD %date

COUNTER Sign 5









Record: GPFR_GUIDE_VW

Description Payees segm. list for reports

Record Type SQL View

Parent Record

Related Language

Build Seq 1

Owner ID Global Payroll France

Comments Payees segments list for reports



FieldName Type Len Key Srch Req Edit Prompt C Default

EMPLID Char 11 KA

EMPL_RCD Num 3 KA

CAL_RUN_ID Char 18 KA

GP_PAYGROUP Char 10 KA

CAL_ID Char 18 KA

ORIG_CAL_RUN_ID Char 18 KA

RSLT_SEG_NUM Num 4 KA

PYMT_KEY1 Char 25

PYMT_KEY2 Char 25

PYMT_KEY3 Char 25

PYMT_KEY4 Char 25

CALC_ACTION Char 1 Xlat

PRD_TYPE Char 1 Xlat

CURRENCY_CD Char 3









Record: GPFR_RSLT_AC_VW

Description Result view: Accum Current

Record Type SQL View

Parent Record

Related Language

Query Security EMPLMT_SRCH_QRY

Build Seq 2

Owner ID Global Payroll France

Comments Result Table for accumulators. View for the current calculation



FieldName Type Len Key Srch Req Edit Prompt C Default

GPFR_RSLT_SUBR SRec

PIN_NUM Num 8 KA

ACM_PRD_OPTN Char 1 Xlat

SLICE_BGN_DT Date 10 KA

SLICE_END_DT Date 10 KA

CALC_RSLT_VAL Sign 12.6

USER_KEY1 Char 25 KA

USER_KEY2 Char 25 KA

USER_KEY3 Char 25 KA

USER_KEY4 Char 25 KA

USER_KEY5 Char 25

USER_KEY6 Char 25

ACM_FROM_DT Date 10 KA

ACM_THRU_DT Date 10 KA









Record: GPFR_RSLT_AR_VW

Description Result view: Accum Recalc

Record Type SQL View

Parent Record

Related Language

Query Security EMPLMT_SRCH_QRY

Build Seq 2

Owner ID Global Payroll France

Comments Result Table for accumulators. View for the recalculation



FieldName Type Len Key Srch Req Edit Prompt C Default

GPFR_RSLT_SUBR SRec

PIN_NUM Num 8 KA

PIN_NUM Num 8

ACM_PRD_OPTN Char 1 Xlat

SLICE_BGN_DT Date 10 KA

SLICE_END_DT Date 10 KA

SLICE_BGN_DT Date 10

SLICE_END_DT Date 10

CALC_RSLT_VAL Sign 12.6

USER_KEY1 Char 25 KA

USER_KEY2 Char 25 KA

USER_KEY3 Char 25 KA

USER_KEY4 Char 25 KA

USER_KEY1 Char 25

USER_KEY2 Char 25

USER_KEY3 Char 25

USER_KEY4 Char 25

USER_KEY5 Char 25

USER_KEY6 Char 25

ACM_FROM_DT Date 10 KA

ACM_THRU_DT Date 10 KA

ACM_FROM_DT Date 10

ACM_THRU_DT Date 10









Record: GPIN_F16_AK_DTL

Description Form 16 Acknowledgement Detail

Record Type SQL Table

Parent Record

Related Language

DDL Space Name GPAPP.PSHRDMOP

Owner ID Global Payroll India

Comments This Record is to store the Acknowledgement Details for Form 16



FieldName Type Len Key Srch Req Edit Prompt C Default

GPIN_IT_PAN_NBR Char 30 KA

GPIN_IT_TAN_NBR Char 30 KA

GPIN_PERIOD_ID Char 10 KA

GPIN_QUARTER_ID Char 2 KA Req Xlat

GPIN_ACK_NUM Num 15

GPIN_ACK_NUM Char 15









Record: GPJP_YEA_ST_VW

Description Employee YEA Self Serv status

Record Type SQL View

Parent Record

Related Language

Build Seq 1

Owner ID Global Payroll Japan

Comments This record contains the statuses of an Employee YEA Information. nI

t use to populate the YEA Inforamtion main page



FieldName Type Len Key Srch Req Edit Prompt C Default

OPRID Char 30 KA

EMPLID Char 11 KALS

DATE_YEAR_VAL Num 4 KA S

GPJP_YEA_EEPR_STAT Char 3 Xlat

GPJP_YEA_EETX_STAT Char 3 Xlat

GPJP_YEA_DTAX_STAT Char 3 Xlat

GPJP_YEA_LIFE_STAT Char 3 Xlat

GPJP_YEA_NLIF_STAT Char 3 Xlat

GPJP_YEA_SP_STAT Char 3 Xlat

GPJP_YEA_HOUS_STAT Char 3 Xlat

DATETIME_STAMP DT 26

GPJP_TAX_ESTAB Char 15 Prmt GPJP_TAXESIT_VW

PAY_ENTITY Char 10 Prmt GP_PYENT

BUSINESS_UNIT Char 5 Prmt BUS_UNIT_TBL_HR

DEPTID Char 10 Prmt DEPT_TBL

LOCATION Char 10 Prmt LOCATION_TBL









Field Detail

Field: GPCH_EG_REQUEST_ID

Field Type Char

Length 30 25

Format MixedCase

Family Name

Display Name

Owner ID Global Payroll Switzerland

Comments Holds Request ID in the ELM File



Label ID Short Name Long Name Def

REQUEST_ID Request ID Request ID Yes









Field: GPCH_PK_SALARY

Field Type Num

Length 15 19

Decimal Positions 2 6

Format UpperCase

Family Name

Display Name

Owner ID Global Payroll Switzerland

Comments PK Salary



Label ID Short Name Long Name Def

PK_SALARY PK Salary PK Salary Yes









Field: GPCH_SI_ALT_ID

Field Type Char

Length 8 2

Format UpperCase

Family Name

Display Name

Owner ID Global Payroll Switzerland

Comments Insurance Alternative ID



Label ID Short Name Long Name Def

GPCH_SI_ALT_ID Alternative ID Insurance Alternative ID Yes









Field: GPFR_AF_RPT_ONLY

Field Type Char

Length 1

Format UpperCase

Family Name

Display Name

Owner ID Global Payroll France

Comments Field for Report Only Attribute



Label ID Short Name Long Name Def

GPFR_AF_RPT_ONLY Report Only Report Only Attribute Yes









Field: GPIN_ACK_NUM

Field Type Char Num

Length 15

Decimal Positions 0

Format UpperCase

Family Name

Display Name

Owner ID Global Payroll India

Comments This record is used to store the Acknowledgement details of each Qua

rter for Form16



Label ID Short Name Long Name Def

GPIN_ACK_NUM Ack No. Acknowledgement Nbr Yes









Field: GPIN_IT_PAN_NBR

Field Type Char

Length 30

Format UpperCase

Family Name

Display Name

Owner ID Global Payroll India

Comments This Field is created for Establishment ID for Global Payroll Countr

y Estension India. This field captures the Permanent Account Number.



Label ID Short Name Long Name Def

GPIN_IT_PAN_NBR PAN No. Permanent Account Nbr Yes

GPIN_LBL PAN Details PAN Details

Field: GPIN_IT_TAN_NBR

Field Type Char

Length 30

Format UpperCase

Family Name

Display Name

Owner ID Global Payroll India

Comments This Field is created for Establishment ID for Global Payroll Countr

y Estension India. This field captures the Tax Deduction Account Num

ber.



Label ID Short Name Long Name Def

GPIN_IT_TAN_NBR Tax Deduction A Tax Deduction Acc Nbr Yes

GPIN_LBL TAN Details TAN Details









Field: GPIN_PERIOD_ID

Field Type Char

Length 10

Format UpperCase

Family Name

Display Name

Owner ID Global Payroll India

Comments This Field Defines the Period ID for India Specific



Label ID Short Name Long Name Def

GPIN_FISCAL PER_ID Fiscal Period Fiscal Period ID

PERIOD_ID Period ID Period ID Yes









Field: GPIN_QUARTER_ID

Field Type Char

Length 2

Format UpperCase

Family Name

Display Name

Owner ID Global Payroll India

Comments Quater of the Year identifier



Label ID Short Name Long Name Def

QUARTER Quarter Quarter Of Year Yes









Translate Value Detail

Translate Value: GPIN_QUARTER_ID (1900-01-01) 10

Field Name GPIN_QUARTER_ID

Value 10

EffDt 1900-01-01

Status Active

Long Name Q1

Short Name Q1









Translate Value: GPIN_QUARTER_ID (1900-01-01) 20

Field Name GPIN_QUARTER_ID

Value 20

EffDt 1900-01-01

Status Active

Long Name Q2

Short Name Q2









Translate Value: GPIN_QUARTER_ID (1900-01-01) 30

Field Name GPIN_QUARTER_ID

Value 30

EffDt 1900-01-01

Status Active

Long Name Q3

Short Name Q3









Translate Value: GPIN_QUARTER_ID (1900-01-01) 40

Field Name GPIN_QUARTER_ID

Value 40

EffDt 1900-01-01

Status Active

Long Name Q4

Short Name Q4









Translate Value: GPJP_IT_DEP (2011-01-01) 11

Field Name GPJP_IT_DEP

Value 11

EffDt 2011-01-01

Status Active

Long Name Juvenile

Short Name Juvenile









Page Detail

Page: GPFR_AF_ATRPRP_SEC

Description Attribute Property

Type Secondary Page

Allow Deferred Proc. Yes

Owner ID Global Payroll France

Comments Application Framework - This secondary page is used to enter attribu

te properties



Type ID Lvl Record Field Label Attributes

EditBox 1 0 GPFR_AF_ATTR COUNTRY +COUNTRY Gray CtrlFld

EditBox 2 0 COUNTRY_TBL DESCR [None ] Gray Related:1

EditBox 3 0 GPFR_AF_ATTR GPFR_AF_APPL +GPFR_AF_APPL Gray CtrlFld

EditBox 4 0 GPFR_AF_APPL DESCR [None ] Gray Related:3

EditBox 5 0 GPFR_AF_ATTR GPFR_AF_KEY_NODE [None ] Hide CtrlFld

EditBox 6 0 GPFR_AF_NODE GPFR_AF_NODE_NAME +GPFR_AF_NODE_NAME Gray

Related:5

EditBox 7 0 GPFR_AF_NODE DESCR100 [None ] Gray Related:5

EditBox 8 0 GPFR_AF_ATTR GPFR_AF_ATTR_NAME +GPFR_AF_ATTR_NAME Gray

EditBox 9 0 GPFR_AF_ATTR DESCR60 [None ] Gray

EditBox 10 0 GPFR_AF_ATTR GPFR_AF_ATTR_SEQ -GPFR_AF_ATTR_SEQU Gray

GroupBox 11 0 DERIVED_GPFR_AF GPFR_AF_LABELS +GPFR_AF_ATTR_PROP

ComboBox 12 0 GPFR_AF_ATTR GPFR_AF_ATTR_STAT -GPFR_AF_ATTR_STAT noDefrr

XLatShort

ComboBox 13 0 GPFR_AF_ATTR GPFR_AF_ATTR_TYPE -GPFR_AF_ATTR_TYPE noDefrr

XLatShort

EditBox 14 0 GPFR_AF_ATTR GPFR_AF_ATR_LENGTH -GPFR_AF_ATR_LENGTH

EditBox 15 0 GPFR_AF_ATTR GPFR_AF_ATR_DECIML -GPFR_AF_ATR_DECIML Zero

CheckBox 16 0 GPFR_AF_ATTR GPFR_AF_MANDATORY [None ] On:Y Off:N

Label 17 0 'Generate in Final

CheckBox 18 0 GPFR_AF_ATTR GPFR_AF_RPT_ONLY +GPFR_AF_RPT_ONLY On:Y Off:N

GroupBox 19 0 DERIVED_GPFR_AF GPFR_AF_LABELS +GPFR_AF_UPDT_OPTN

ComboBox 20 0 GPFR_AF_ATTR GPFR_AF_ATR_LBLSRC -GPFR_AF_ATR_LBLSRC noDefrr

XLatShort

EditBox 21 0 GPFR_AF_ATTR GPFR_AF_CODE_ID +GPFR_AF_CODE_ID

EditBox 22 0 GPFR_AF_ATTR GPFR_DA_DATTYP +GPFR_DA_DATTYP

EditBox 23 0 GPFR_AF_ATTR GPFR_AF_ATTR_FIELD +GPFR_AF_ATTR_FIELD

EditBox 24 0 GPFR_AF_ATTR GPFR_AF_PROMPT +GPFR_AF_PROMPT

EditBox 25 0 GPFR_AF_ATTR GPFR_AF_PR_LBL_FLD +GPFR_AF_PR_LBL_FLD

EditBox 26 0 GPFR_AF_ATTR GPFR_AF_PR_KEY_FLD +GPFR_AF_PRMT_KEY

EditBox 27 0 GPFR_AF_ATTR COMMENTS +COMMENTS1 SpellChk









Page: GPJP_LA_PYE_RPT1

Description Enrollment information

Type Secondary Page

Allow Deferred Proc. Yes

Owner ID Global Payroll Japan

Comments This secondary page displays Enrollment information



Type ID Lvl Record Field Label Attributes

Label 1 0 [#17271,211]

Label 2 0 [#17271,212]

EditBox 3 0 GPJP_LA_PYE_RPT EMPLID +EMPLID Hide CtrlFld

EditBox 4 0 DERIVED_GPJP GPJP_NUM5 +GPJP_NUM5 Gray

ComboBox 5 0 GPJP_LA_PYE_RPT GPJP_LA_RPT_TYP +GPJP_LA_RPT_TYP Hide XLatShort

EditBox 6 0 GPJP_LA_PYE_RPT EFFDT +EFFDT Hide Century

EditBox 7 0 GPJP_LA_PYE_RPT EMPL_RCD +EMPL_RCD# Hide

EditBox 8 0 DERIVED_GPJP GPJP_EI_NUM +GPJP_EI_NUM Gray

ComboBox 9 0 GPJP_LA_PYE_RPT GPJP_LA_ENROLL_RSN +GPJP_LA_ENROLL_RSN Hide XLatShort

EditBox 10 0 DERIVED_GPJP GPJP_CHAR1_2 +GPJP_CHAR1_2 Gray

EditBox 11 0 PERSONAL_DT_FST NAME +NAME Gray Related:3

EditBox 12 0 PERSONAL_DT_FST NAME_AC +NAME_AC3 Gray Related:3

EditBox 13 0 PERSONAL_DT_FST SEX +SEX1 Hide Related:3

EditBox 14 0 DERIVED_GPJP GPJP_CHAR1_1 +GPJP_CHAR1_1 Gray

EditBox 15 0 PERSONAL_DT_FST BIRTHDATE +BIRTHDATE Hide Related:3

Century

EditBox 16 0 DERIVED_GPJP GPJP_DT_YYYYMMDD1 +GPJP_DT_YYYYMMDD1 Gray

EditBox 17 0 DERIVED_GPJP GPJP_TAX_ESTAB +TAX_INS_LBL Hide

EditBox 18 0 DERIVED_GPJP GPJP_LA_ESTAB_NO +LA_EST_LBL Gray

EditBox 19 0 DERIVED_GPJP GPJP_DT_YYMMDD1 +GPJP_DT_YYMMDD1 Gray

EditBox 20 0 GPJP_LA_PYE_RPT GPJP_LA_ENROLL_RSN +GPJP_LA_ENROLL_RS1 Gray

EditBox 21 0 GPJP_LA_PYE_RPT GPJP_LA_MTH_WAGE +GPJP_LA_MTH_WAGE1 Hide

EditBox 22 0 DERIVED_GPJP GPJP_CHAR6 +GPJP_CHAR6 Gray

EditBox 23 0 DERIVED_GPJP GPJP_CHAR1 +GPJP_LA_EMPL_TYP Gray

EditBox 24 0 DERIVED_GPJP GPJP_CHAR32 +GPJP_CHAR32 Gray

EditBox 25 0 DERIVED_GPJP GPJP_CHAR2_1 +GPJP_CHAR2_1 Gray

EditBox 26 0 DERIVED_GPJP GPJP_CHAR2_2 [None ] Gray

ComboBox 27 0 DERIVED_GPJP GPJP_LA_TRM_CONTR +GPJP_LA_TRM_CONTR Gray XLatLong

EditBox 28 0 GPJP_LA_PYE_RPT GPJP_START_DATE +GPJP_START_DATE1 Gray Century

EditBox 29 0 GPJP_LA_PYE_RPT GPJP_END_DATE -TERM_TO Gray Century

Process Definition Detail

Process Definition: Application Engine UPD850896_A1

Description UPD850896_A1

Long Desc Evaluates each dependent's status and age as of January 1st, 2011, a

nd inserts new effective dated rows into Income Tax Dependent table

if needed.

Priority Medium

API Aware Yes



Definition Options

Server Name

Recurrence



Override Options

Parameter List None

CommandLine None

Working Dir None



Destination Options

Type Any

Format Any

Source User Specified

Folder Name

Output



Component

AE_REQUEST

PRCSMULTI



Process Group

ALLPAGES









Message Catalog Detail

Message Catalog Entry: GP UK - Online 17130, 248

Severity Message

Msg Text One or more required fields has not been entered.

Explanation One of the following fields has not been entered for previous p45 de

tails:

Tax District, Paye Id, Leave Date, Tax Code, Tax Basis, Tax Year End.

Following mandatory fields for P45 Previous Employment details shoul

d be filled:

Tax District, Paye ID, Leave Date, Tax Code.









Message Catalog Entry: GP UK - Online 17130, 253

Severity Error

Msg Text Please Enter Value for Unique ID

Explanation

For P14 Final Run, the Unique ID field must not be blank.









Message Catalog Entry: GP Singapore - Text Messages 17231, 387

Severity Message

Msg Text Log File

Explanation

Log File









Message Catalog Entry: GP Singapore - Text Messages 17231, 388

Severity Message

Msg Text Employees with missing Date Of Birth

Explanation

Employees with missing Date Of Birth









Message Catalog Entry: GP Singapore - Text Messages 17231, 389

Severity Message

Msg Text User ID

Explanation

User ID









Message Catalog Entry: GP Singapore - Text Messages 17231, 390

Severity Message

Msg Text Run Control ID

Explanation

Run Control ID









Message Catalog Entry: GP Singapore - Text Messages 17231, 391

Severity Message

Msg Text Process Instance

Explanation

Process Instance









Message Catalog Entry: GP Singapore - Text Messages 17231, 392

Severity Message

Msg Text Employer's Tax Reference Number

Explanation

Employer's Tax Reference Number









Message Catalog Entry: GP Singapore - Text Messages 17231, 393

Severity Message

Msg Text Date Created

Explanation

Date Created

Message Catalog Entry: GP Singapore - Text Messages 17231, 394

Severity Message

Msg Text Tax Year

Explanation

Tax Year









Message Catalog Entry: Global Payroll India 17410, 49

Severity Warning

Msg Text "Assessee should quote the receipt number. The receipt number shall be

of eight digits (alphabets)"

Explanation

"Assessee should quote the receipt number. The receipt number shall

be of eight digits (alphabets) and will be applicable only for state

ments pertaining to FY 2010-11 and onwards. Eight digit receipt numb

er can be obtained by viewing the status of the quarterly TDS/TCS st

atement at under Quarterly Statement Status feature available at TIN

website (www.tin-nsdl.com)".









Appl Engine (Program) Detail

Appl Engine (Prog): GPCH_AE_INS

Description Identify a new Domain

Disable Restart Yes

Application Library No

ProgType Standard

Batch Only No

Message Set 0

Instance Count 0

TempTable cannot Assign Continue

Date Override No

As of Date 01/01/1900

Owner ID Global Payroll Switzerland

Comments Identify a new Domain



State Record Def

GPCHINS_AET YES





Temp Record

GPCHAEZV1_TMP

GPCHST021_TMP









Appl Engine (Prog): GPCH_AE_TX07

Description Swiss Tax Statement

Disable Restart Yes

Application Library No

ProgType Standard

Batch Only No

Message Set 0

Instance Count 5

TempTable cannot Assign Continue

Date Override No

As of Date 01/01/1900

Owner ID Global Payroll Switzerland

Comments Swiss Tax Statement

State Record Def

GPCHTX07_AET YES

GPCHUTALL_AET





Temp Record

GPCHTX070_TMP

GPCHTX071_TMP

GPCHTX072_TMP

GPCHTX073_TMP

GPCHTX074_TMP

GPCHTX075_TMP

GPCHTX076_TMP

GPCHTX077_TMP

GPCHTX078_TMP

GPCHTX07A_TMP

GPCHTX710_TMP

GPCHUT011_TMP

GPCHUT012_TMP

GPCHUT013_TMP

GPCHUT014_TMP

GPCHUT071_TMP

GPCHUT072_TMP

GPCHUT081_TMP

GPCHUT082_TMP









Appl Engine (Prog): GPCH_BK_TRN

Description Swiss Banking Process

Disable Restart Yes

Application Library No

ProgType Standard

Batch Only No

Message Set 0

Instance Count 0

TempTable cannot Assign Continue

Date Override No

As of Date 01/01/1900

Owner ID Global Payroll Switzerland

Comments This program performs the Swiss localization banking process of gene

rating payment entries for all payment types for a given CAL RUN ID.



State Record Def

GPCH_BK_TRN_AET YES





Temp Record

GPCH_BK_PMTYP

GPCH_BK_TMP1

GPCH_SRC_BNK









Appl Engine (Prog): GPFR_AF_AE

Description Extract Appln Frame Work Data

Disable Restart Yes

Application Library No

ProgType Standard

Batch Only No

Message Set 0

Instance Count 3

TempTable cannot Assign Continue

Date Override No

As of Date 01/01/1900

Owner ID Global Payroll France

Comments Application Framework -

This application engine is used to Process the data defined for an a

pplication of Application Framework. The purpose of this application

engine is to process the nodes and attribute defined/selected for t

he given extraction ID.



Once the attribute is known for processing the control then moves to

DON, the respective functions and parameters are added in the Appli

cation framework object. The associated SQL template is then refined

(all the contained function and parameter [%PARM.FUNCTION.PARMNAME]

is replaced) and then executed.



State Record Def

GPFR_AF_EXT_AET YES





Temp Record

GPFR_AFND_TMP

GPFR_AFTR_TMP









Appl Engine (Prog): UPD850896_A1

Description Insert Income Tax Dependents

Disable Restart No

Application Library No

ProgType Standard

Batch Only No

Message Set 0

Instance Count 0

TempTable cannot Assign Continue

Date Override No

As of Date 01/01/1900

Owner ID Global Payroll Japan

Comments Evaluates each dependent's status and age as of January 1st, 2011, a

nd inserts new effective dated rows into Income Tax Dependent table

if needed.



State Record Def









Appl Engine (Section) Detail

Appl Engine (Section): GPFR_AF_AE DBPARM

Description Add DB Param - DB2

Market GBL

DataBase DB2

EffDt 01/01/1900

Effective Status Active

Section Type Prepare Only

Auto Commit No



Step/Action Description Attributes



[Step01 ]

[PeopleCode ]





Description Add DB Param - Oracle

Market GBL

DataBase Oracle

EffDt 01/01/1900

Effective Status Active

Section Type Prepare Only

Auto Commit No

Comment This section loads the database specific function and parameter into

the instance of a class.



Ex:



&frameworkAE.AddParamChar("DATABASE", "ORACLE", " ");

&frameworkAE.AddParamChar("DATABASE", "SQL", "TOP");



Step/Action Description Attributes



[Step10 ] Assign the DB Parm - Oracle

[PeopleCode ]





Description Add DB Param - DB2

Market GBL

DataBase DB2/Unix

EffDt 01/01/1900

Effective Status Active

Section Type Prepare Only

Auto Commit No



Step/Action Description Attributes



[Step01 ]

[PeopleCode ]





Description Add DB Param - Microsoft

Market GBL

DataBase SQL Server

EffDt 01/01/1900

Effective Status Active

Section Type Prepare Only

Auto Commit No

Comment This section loads the database specific function and parameter into

the instance of a class.



Ex:



&frameworkAE.AddParamChar("DATABASE", "ORACLE", "ROWNUM");

&frameworkAE.AddParamChar("DATABASE", "SQL", "");



Step/Action Description Attributes



[Step10 ] Assign the DB Parm - MS

[PeopleCode ]









Appl Engine (Section): GPGB_EDI_P14 P14All

Description Select All Employees

Market GBL

DataBase Default

EffDt 01/01/1900

Effective Status Active

Section Type Prepare Only

Auto Commit No



Step/Action Description Attributes



[Step01 ] Select more than one Emplid

[Call Section] Section: GPGB_EDI_P14.P14Cust

[Do Select ] Type: Select/Fetch

[Do Select ] Type: Select/Fetch ReUse

Appl Engine (Section): GPGB_EDI_P14 P14AllA

Description Select All Empids Amended Ret

Market GBL

DataBase Default

EffDt 01/01/1900

Effective Status Active

Section Type Prepare Only

Auto Commit No



Step/Action Description Attributes



[Step01 ]

[Call Section] Section: GPGB_EDI_P14.P14Cust

[Do Select ] Type: Select/Fetch

[Do Select ] Type: Select/Fetch ReUse









Appl Engine (Section): GPGB_EDI_P14 P14Foot

Description P14 Footer Details

Market GBL

DataBase Default

EffDt 01/01/1900

Effective Status Active

Section Type Prepare Only

Auto Commit No



Step/Action Description Attributes



[UNS2 ] UNS2 - Seperator

[PeopleCode ]



[GetPEQs ] Get Pay Entity Level values

[SQL ]

[SQL ] ReUse



[ChkPEQs ] Check Pay Entity level Values

[PeopleCode ]



[TAX2.1 ] Qualifier for tot of EE+ER NI

[PeopleCode ]



[MOA2.1 ] TOT of ER+EE NIC

[PeopleCode ]



[TAX2.2 ] Qualifier For Tot Tax

[PeopleCode ]



[MOA2.2 ] Total TAX

[PeopleCode ]



[TAX2.3 ] Qualifier For Total of SSP

[PeopleCode ]



[MOA2.3 ] Total of SSP Value

[PeopleCode ]



[TAX2.4 ] Qualifier For SMP

[PeopleCode ]



[MOA2.4 ] Total of SMP Value

[PeopleCode ]



[TAX2.5 ] Qualifier For SPP

[PeopleCode ]



[MOA2.5 ] Total of SPP Value

[PeopleCode ]

[TAX2.6 ] Qualifier For SAP

[PeopleCode ]



[MOA2.6 ] Total of SAP Value

[PeopleCode ]



[TAX2.7 ] Qualifier For Tot Hol Claim Inactive

[PeopleCode ]



[MOA2.7 ] Total of HOL NIC Inactive

[PeopleCode ]



[TAX2.8 ] Qualifier For Tot of SL

[PeopleCode ]



[MOA2.8 ] Total of SL

[PeopleCode ]



[TAX2.9 ] Qualifier For Tot of Tax cr

[PeopleCode ]



[MOA2.9 ] Total of Tax cr

[PeopleCode ]



[QTY1 ] QTY1- Totals

[PeopleCode ]



[CNT1 ] CNT1 - Totals

[PeopleCode ]



[LogTots ] Log totals

[PeopleCode ]



[UpdLog ] Update Summary Log

[Call Section] Section: GPGB_EDILIB.SummLog









Appl Engine (Section): GPGB_EDI_P14 P14Write

Description Write P14 Details

Market GBL

DataBase Default

EffDt 01/01/1900

Effective Status Active

Section Type Prepare Only

Auto Commit No



Step/Action Description Attributes



[LIN1.1 ] LIN1 - EE Count

[PeopleCode ]



[NAD2A ] NAD2A - EE Address

[PeopleCode ]



[NAD2B ] NAD2B - EE Name

[PeopleCode ]



[ATT2.1 ] ATT2 - NI Number

[PeopleCode ]



[ATT2.2 ] ATT2 - Works Number

[PeopleCode ]



[ATT2.3 ] ATT2 - Gender Indicator

[PeopleCode ]



[ATT2.4 ] ATT2 - Week Qualifier

[PeopleCode ]

[P14W_NI ] Write NI details

[Call Section] Section: GPGB_EDI_P14.P14W_NI

[Do Select ] Type: Select/Fetch

[Do When ]

[Do Select ] Type: Select/Fetch ReUse

[Do When ] ReUse



[P14W_NI2] Write NI Details Amended Ret

[Call Section] Section: GPGB_EDI_P14.P14W_NI

[Do Select ] Type: Select/Fetch

[Do When ]

[Do Select ] Type: Select/Fetch ReUse

[Do When ] ReUse



[EMP1.1 ] EMP1 - NON-NI

[PeopleCode ]



[TAX1.1 ] Qualifier For SSP

[PeopleCode ]



[MOA1.1 ] TAX2 description

[PeopleCode ]



[TAX1.2 ] TAX2 description

[PeopleCode ]



[MOA1.2 ] SMP

[PeopleCode ]



[TAX1.3 ] Qualifier for SPP

[PeopleCode ]



[MOA1.3 ] Total SPP

[PeopleCode ]



[TAX1.4 ] Qualifier for SAP

[PeopleCode ]



[MOA1.4 ] SAP

[PeopleCode ]



[TAX1.5 ] Qualifier for PAY

[PeopleCode ]



[MOA1.5 ] Pay IN this Employement

[PeopleCode ]



[TAX1.6 ] Qualifier for TAX

[PeopleCode ]



[MOA1.6 ] TAX in this Employement

[PeopleCode ]



[TAX1.7 ] Pay in Previous Employement

[PeopleCode ]



[MOA1.7 ] Pay in Previous Employement

[PeopleCode ]



[TAX1.8 ] TAX in Previous Employement

[PeopleCode ]



[MOA1.8 ] TAX in Previous Employement

[PeopleCode ]



[TAX1.9 ] Qualifier for Life Assurance

[PeopleCode ]



[MOA1.9 ] TAX2 description

[PeopleCode ]

[TAX1.10 ] Qualifier for SL

[PeopleCode ]



[MOA1.10 ] Student Loan

[PeopleCode ]



[TAX1.11 ] Qualifier for TC

[PeopleCode ]



[MOA1.11 ] Tax Credits

[PeopleCode ]



[DTM2.4 ] DMT2 - Date of Birth

[PeopleCode ]



[DTM2.5 ] DMT2 - Date Employment Started

[PeopleCode ]



[DTM2.6 ] DMT2 - Date Employment Started

[Do Select ] Type: Select/Fetch

[Do Select ] Type: Select/Fetch ReUse

[PeopleCode ]



[ALC1 ] ALC1 - Tax Code

[PeopleCode ]



[ATT3.3 ] Qualifier for SVR

[PeopleCode ]



[ATT3.4 ] Qualifier for Week1/Month1

[PeopleCode ]



[AddToTot] ATT3.5 description

[PeopleCode ]



[UpdLog ] Update Detail Log

[Call Section] Section: GPGB_EDILIB.DtlLog

[PeopleCode ]









Appl Engine (Section): UPD850896_A1 MAIN

Description MAIN description

Market GBL

DataBase Default

EffDt 01/01/1900

Effective Status Active

Section Type Prepare Only

Auto Commit No

Access Public



Step/Action Description Attributes



[Step01 ] Dependents under 16

[Log Message ] MsgSet: 18030 Number: 4 Param: %AESECTION,

%AESTEP, %SQLROWS, 'PS_GPJP_IT_DEP_TAX'

[SQL ]



[Step02 ] Dependents Aged 16~18

[Log Message ] MsgSet: 18030 Number: 4 Param: %AESECTION,

%AESTEP, %SQLROWS, 'PS_GPJP_IT_DEP_TAX'

[SQL ]









SQL Detail

SQL: GPCHTX021_VW View



SQL Statement



SELECT TMP.PROCESS_INSTANCE,

TMP.GPCH_TX_CANTON,

TMP.GPCH_TX_VILLAGE_CD,

TMP.GPCH_TX_TRF_TYPE,

TMP.EMPLID,

TMP.EMPL_RCD,

TMP.GPCH_AL_CPAY_ENDDT,

TMP.SEG_BGN_DT,

TMP.SEG_END_DT,

TMP.RSLT_SEG_NUM,

TMP.SEQNUM,

TMP.SEX,

TMP.COMPANY,

TMP.PRD_END_DT,

TMP.TERMINATION_DT,

TMP.BEGIN_DT,

TMP.END_DT,

TMP.BIRTHDATE,

TMP.GPCH_TX_TRF_CD,

TMP.NATIONAL_ID,

TMP.GPCH_AH_NNSS,

TMP.VISA_PERMIT_TYPE,

TMP.CONTRACT_TYPE,

TMP.ACTION,

TMP.POSTAL,

TMP.GPCH_RP_AMOUNT1,

TMP.GPCH_RP_AMOUNT2,

TMP.GPCH_RP_AMOUNT3,

TMP.GPCH_RP_AMOUNT11,

TMP.GPCH_RP_AMOUNT14,

TMP.GPCH_RP_AMOUNT19,

TMP.GPCH_RP_AMOUNT20,

TMP.GPCH_RP_CHAR03,

TMP.GPCH_RP_FROMDT1,

TMP.REG_TEMP,

TMP.FTE

FROM PS_GPCHTX021_TMP TMP









SQL: GPCH_AE_ELM STAX_VD Step02 S ApplEng

ApplEng GPCH_AE_ELM

Section STAX_VD

Step Step02

Action SQL

Market GBL



SQL Statement

UPDATE PS_GPCH_EG_FSTATUS SET

FILENAME = %Bind(GPCHELM_AET.FILENAME),

FILENAME = GPCH_EG_REQUEST_ID %Concat '.xml',

TIME_STAMP = %CurrentDateTimeIn

WHERE COMPANY = %Bind(GPCHELM_AET.COMPANY)

AND GPCH_RC_PAY_YEAR = %Bind(GPCHELM_AET.GPCH_RC_PAY_YEAR)

AND GPCH_EG_DOMAINID = %Bind(GPCHELM_AET.GPCH_EG_DOMAINID)

AND GPCH_EG_REQUEST_ID = %Bind(GPCHELM_AET.GPCH_EG_REQUEST_ID)









SQL: GPCH_AE_INS PrepIns Step02 S ApplEng

ApplEng GPCH_AE_INS

Section PrepIns

Step Step02

Action SQL

Market GBL



SQL Statement

INSERT INTO %Table(GPCHAEZV1_TMP)

(PROCESS_INSTANCE,

EMPLID,

EMPL_RCD,

EFFDT,

GPCH_SI_TYPE_ID,

GPCH_SI_ALT_ID,

GPCH_SI_PROV_TYPE,

STATUS,

GPCH_CALCULATE,

AMOUNT,

CURRENCY_CD,

BEGIN_DT,

END_DT,

ENDING_DT_PERIOD,

HIRE_DT,

TERMINATION_DT,

GPCH_RP_AMOUNT1,

GPCH_RP_AMOUNT2,

GPCH_RP_AMOUNT3,

GPCH_RP_AMOUNT4,

GPCH_RP_AMOUNT5)

SELECT

%ProcessInstance,

V2.EMPLID,

V2.EMPL_RCD,

V2.EFFDT,

V2.GPCH_SI_TYPE_ID,

V2.GPCH_SI_ALT_ID,

V2.GPCH_SI_PROV_TYPE,

V2.STATUS,

V2.GPCH_CALCULATE,

V2.AMOUNT,

V2.CURRENCY_CD,

'',

'',

'',

'',

'',

%Bind(GPCH_RC_FROM_DT),

%Bind(GPCH_RC_FROM_DT),

%Bind(GPCH_RC_FROM_DT),

%Bind(GPCH_RC_FROM_DT),

%Bind(GPCH_RC_FROM_DT),

0.00,

0.00,

0.00,

0.00,

0.00

FROM PS_GPCH_SI_VARIAN2 V2

WHERE V2.EMPLID IN (SELECT T.EMPLID

FROM %Table(GPCHST021_TMP) T

WHERE T.PROCESS_INSTANCE = %ProcessInstance)

AND NOT EXISTS (SELECT 'X'

FROM PS_GPCH_SI_VARIAN2 V21

WHERE V2.EMPLID IN (SELECT R.EMPLID

FROM %Table(GPCHST021_TMP) R

WHERE R.PROCESS_INSTANCE = %ProcessInstance)

AND V2.EMPLID = V21.EMPLID

AND V2.EMPL_RCD = V21.EMPL_RCD

AND V2.GPCH_SI_TYPE_ID = V21.GPCH_SI_TYPE_ID

AND V2.GPCH_SI_ALT_ID = V21.GPCH_SI_ALT_ID

AND V2.GPCH_SI_PROV_TYPE = V21.GPCH_SI_PROV_TYPE

AND V21.EFFDT = (SELECT MAX(V1.EFFDT)

FROM PS_GPCH_SI_VARIAN1 V1

WHERE V2.EMPLID = V1.EMPLID

AND V2.EMPL_RCD = V1.EMPL_RCD

AND V1.EFFDT ' '

AND I.RECIPIENT_ID = P.RECIPIENT_ID

AND I.RECIPIENT_CATEGORY = 'I'

AND I.PAYMENT_MTHD = 'T'

AND T.SRC_BANK_ID = P.SRC_BANK_ID

AND T.EFF_STATUS = 'A'









SQL: GPCH_EG_PER_VW View



SQL Statement



SELECT GPCH_EG_DOMAINID,

GPCH_RC_PAY_YEAR,

COMPANY,

GPCH_SI_PROV_TYPE,

GPCH_SI_PROV_CD,

EMPLID,

EMPL_RCD,

BEGIN_DT,

END_DT,

GPCH_IF_VER,

GPCH_EG_PRSN_XML

FROM PS_GPCH_EG_PERSON









SQL: GPCH_EG_PSTA_VW View



SQL Statement

SELECT DISTINCT FS.COMPANY,

FS.GPCH_RC_PAY_YEAR,

FS.GPCH_EG_DOMAINID,

PS.GPCH_EG_REQUEST_ID,

PS.GPCH_SI_PROV_TYPE,

PS.GPCH_SI_PROV_CD,

SI.GPCH_EG_TRANS_MODE,

FS.FILENAME,

FS.TIME_STAMP,

FS.GPCH_REPORT_STATUS,

PS.GPCH_REPORT_STATUS,

PS.GPCH_EG_RESEND,

FS.GPCH_EG_REQID_OLD,

FS.GPCH_EG_RESPID_OLD

FROM PS_GPCH_EG_FSTATUS FS,

PS_GPCH_EG_PSTATUS PS,

PS_GPCH_SI_PROVIDR SI

WHERE FS.COMPANY = PS.COMPANY

AND FS.GPCH_RC_PAY_YEAR = PS.GPCH_RC_PAY_YEAR

AND FS.GPCH_EG_DOMAINID = PS.GPCH_EG_DOMAINID

AND PS.GPCH_EG_REQUEST_ID = FS.GPCH_EG_REQUEST_ID

AND PS.GPCH_SI_PROV_TYPE = SI.GPCH_SI_PROV_TYPE

AND PS.GPCH_SI_PROV_CD = SI.GPCH_SI_PROV_CD

AND SI.EFFDT = (SELECT MAX(EFFDT)

FROM PS_GPCH_SI_PROVIDR

WHERE GPCH_SI_PROV_TYPE = PS.GPCH_SI_PROV_TYPE

AND GPCH_SI_PROV_CD = PS.GPCH_SI_PROV_CD)









SQL: GPCH_IF_TX07_VW View



SQL Statement



SELECT EMPLID,

EMPL_RCD,

BEGIN_DT,

END_DT,

COMPANY,

GPCH_EG_DOMAINID,

GPCH_IF_VER,

LOCATION,

DEPTID,

GP_PAYGROUP,

PAY_ENTITY,

GPCH_TX_CANTON,

NAME,

GPCH_AL_PAGE_NUM,

GPCH_IF_STATUS,

GPCH_RP_SRC_IND,

GPCH_RP_TX7_DATA,

GPCH_RP_PRINT_FL

FROM PS_GPCH_IF_TX07









SQL: GPCH_RP_SI07_VW View



SQL Statement



SELECT EMPLID,

CAL_RUN_ID,

EMPL_RCD,

GP_PAYGROUP,

CAL_ID,

ORIG_CAL_RUN_ID,

RSLT_SEG_NUM,

SLICE_END_DT,

GPCH_TX_UV_PROV_CD,

GPCH_TX_UV_STATUS,

GPCH_SI_COV_UV,

SLICE_BGN_DT,

PAY_ENTITY,

COMPANY,

PRD_END_DT,

GPCH_AL_CPAY_ENDDT,

GPCH_RP_YEAR,

BEGIN_DT,

END_DT,

FULL_PART_TIME,

SEX,

GPCH_RP_AMOUNT1,

GPCH_RP_AMOUNT2,

GPCH_RP_AMOUNT3,

STATUS,

GPCH_RP_AMOUNT4,

GPCH_RP_AMOUNT6,

GPCH_RP_SEQUENCE

FROM PS_GPCH_RP_SI07









SQL: GPCH_SIAL2_NRVW View



SQL Statement

SELECT COMPANY,

GPCH_SI_PROV_TYPE,

EFFDT,

GPCH_SI_TYPE_ID,

GPCH_SI_ALT_ID,

GPCH_RATE_M,

GPCH_RATE_F,

GPCH_RATE2_M,

GPCH_RATE2_F,

GPCH_LOW_SALARY,

GPCH_HIGH_SALARY,

CURRENCY_CD,

GPCH_PIN_NUM + 50000000,

GPCH_PIN_NUM01 + 50000000,

GPCH_PIN_NUM02 + 50000000,

GPCH_PIN_NUM03 + 50000000,

GPCH_PIN_NUM04 + 50000000,

GPCH_PIN_NUM05 + 50000000,

GPCH_PIN_NUM06 + 50000000,

GPCH_PIN_NUM07 + 50000000,

GPCH_PIN_NUM08 + 50000000

FROM PS_GPCH_SI_ADDTNL2









SQL: GPCH_SI_ADD2_VW View



SQL Statement

SELECT COMPANY,

GPCH_SI_PROV_TYPE,

EFFDT,

GPCH_SI_TYPE_ID,

GPCH_SI_ALT_ID,

GPCH_ZV_DFLT_GRP,

GPCH_ZV_DFLT_SPLIT

FROM PS_GPCH_SI_ADDTNL2









SQL: GPCH_SI_ADDL_VW View



SQL Statement

SELECT E1.EMPLID,

E1.EMPL_RCD,

E1.EFFDT,

S1.COMPANY,

E2.GPCH_SI_PROV_TYPE,

E2.GPCH_SI_TYPE_ID,

E2.GPCH_SI_ALT_ID,

E2.AMOUNT,

E2.CURRENCY_CD,

S2.GPCH_RATE_M,

S2.GPCH_RATE_F,

S2.GPCH_RATE2_M,

S2.GPCH_RATE2_F,

S2.GPCH_LOW_SALARY,

S2.GPCH_HIGH_SALARY,

S2.GPCH_PIN_NUM,

S2.GPCH_PIN_NUM01,

S2.GPCH_PIN_NUM02,

S2.GPCH_PIN_NUM03,

S2.GPCH_PIN_NUM04,

S2.GPCH_PIN_NUM05,

S2.GPCH_PIN_NUM06,

S2.GPCH_PIN_NUM07,

S2.GPCH_PIN_NUM08,

S3.GPCH_PREM_AN_M_PCT,

S3.GPCH_PREM_AN_F_PCT,

S3.GPCH_PREM_PERS_M,

S3.GPCH_PREM_PERS_F,

S3.GPCH_PROPOSE,

S3.GPCH_PREMIUM_MIN,

S3.GRADE

FROM PS_GPCH_SI_VARIAN1 E1,

PS_GPCH_SI_VARIAN2 E2,

PS_GPCH_SI_ADDTNL1 S1,

PS_GPCH_SI_ADDTNL2 S2,

PS_GPCH_SI_SPLIT S3

WHERE E2.STATUS = 'A'

AND E1.EMPLID = E2.EMPLID

AND E1.EMPL_RCD = E2.EMPL_RCD

AND E1.EFFDT = E2.EFFDT

AND E2.GPCH_CALCULATE = 'A'

AND S1.EFF_STATUS = 'A'

AND E2.GPCH_SI_PROV_TYPE = S1.GPCH_SI_PROV_TYPE

AND S1.EFFDT = (SELECT MAX(S4.EFFDT)

FROM PS_GPCH_SI_ADDTNL2 S4

WHERE S1.COMPANY = S4.COMPANY

AND S1.GPCH_SI_PROV_TYPE = S4.GPCH_SI_PROV_TYPE

AND S4.EFFDT 'I'

AND B.TAKE_CONFIG4 = '01'

AND A.PRC_EVT_ACTN_OPTN = 'N'









SQL: GPES_CC_XCCC_VW View



SQL Statement

SELECT DISTINCT B.OPRID,

B.RUN_CNTL_ID,

A.SSN_EMPLOYER,

A.GPES_SCHEME_CCC,

A.RESPONSIBLE_ID,

A.JOBCODE_DESCR,

C.FIRST_NAME,

C.LAST_NAME,

C.SECOND_LAST_NAME,

A.FISCAL_ID_CD,

C.NATIONAL_ID

FROM PS_GPES_CC_EE_DTA A,

PS_GPES_RC_FNQ1_EE B,

PS_PERSDATA_ESP_VW C

WHERE A.EMPLID = B.EMPLID

AND A.EMPL_RCD = B.EMPL_RCD

AND A.EFFDT = B.TERMINATION_DT

AND GENERATE_REPORT = 'Y'

AND A.RESPONSIBLE_ID = C.EMPLID

AND A.EMPL_RCD = B.EMPL_RCD

AND A.OPRID = B.OPRID

AND A.RUN_CNTL_ID = B.RUN_CNTL_ID









SQL: GPES_CC_XEE_VW View



SQL Statement

SELECT B.OPRID,

B.RUN_CNTL_ID,

A.SSN_EMPLOYER,

A.EMPLID,

A.EFFDT

FROM PS_GPES_CC_EE_DTA A,

PS_GPES_RC_FNQ1_EE B

WHERE A.EMPLID = B.EMPLID

AND A.EMPL_RCD = B.EMPL_RCD

AND A.EFFDT = B.TERMINATION_DT

AND B.GENERATE_REPORT = 'Y'

AND B.GPES_REASON = 'INE'

AND B.OPRID = A.OPRID

AND B.RUN_CNTL_ID = A.RUN_CNTL_ID









SQL: GPFR_AF_DT_TO_CHAR Normal

Description Convert Date to Char

Comments Convert Date to Char in YYYYMMDD

Owner ID Global Payroll France



SQL Statement

TO_CHAR (%P(1))





SQL Statement

CHAR (%P(1))



Description Converts Date to Char

Comments Converts Date to Char in YYYYMMDD



SQL Statement

TO_CHAR (%P(1), 'YYYYMMDD')





SQL Statement

CHAR (%P(1))





SQL Statement

CONVERT (CHAR, %P(1))

SQL Statement

CONVERT (CHAR, %P(1), 112)









SQL: GPFR_AF_EXTR_VW View



SQL Statement

SELECT COUNTRY,

GPFR_AF_APPL,

GPFR_AF_NODE_SET,

GPFR_AF_EXTRACT_ID,

COMPANY,

EMPLID,

EMPL_RCD,

GPFR_AF_SIT_BGN_DT,

GPFR_AF_SIT_END_DT,

GPFR_AF_KEY_NODE,

GPFR_AF_KEY_ATTR,

GPFR_AF_KEY_EXTRCT,

GPFR_AF_NODE_NAME,

GPFR_AF_ATTR_NAME,

GPFR_AF_CHAR_VAL,

GPFR_AF_DATE_VAL,

GPFR_AF_NUM_VAL,

GPFR_AF_RND_NM_VAL,

ESTABID,

GPFR_AF_DON,

GPFR_AF_SQL_SEQ,

GPFR_AF_LVL_1_ORD,

GPFR_AF_LVL_1_VAL,

GPFR_AF_LVL_2_ORD,

GPFR_AF_LVL_2_VAL,

GPFR_AF_LVL_3_ORD,

GPFR_AF_LVL_3_VAL,

GPFR_AF_LVL_4_ORD,

GPFR_AF_LVL_4_VAL,

GPFR_AF_LVL_5_ORD,

GPFR_AF_LVL_5_VAL,

GPFR_AF_LVL_6_ORD,

GPFR_AF_LVL_6_VAL,

GPFR_AF_LVL_7_ORD,

GPFR_AF_LVL_7_VAL,

GPFR_AF_LVL_8_ORD,

GPFR_AF_LVL_8_VAL,

GPFR_AF_LVL_9_ORD,

GPFR_AF_LVL_9_VAL,

GPFR_AF_LVL_10_ORD,

GPFR_AF_LVL_10_VAL,

GPFR_AF_CHECK_DONE

FROM PS_GPFR_AF_EXTRACT









SQL: GPFR_ASS_SRCH View



SQL Statement

SELECT SEC.OPRID,

SEC.ROWSECCLASS,

A.CAL_RUN_ID,

A.EMPLID,

A.EMPL_RCD,

A.LAST_DATE_WORKED,

B.COMPANY,

B.ESTABID,

C.NAME

FROM PS_GPFR_ASS_PAYEE A,

PS_GPFR_ASS_COMP B,

PS_PERSON_NAME C %Sql(GPFR_SECU_EMPLMT_SQL,

A)

AND A.EMPLID = B.EMPLID

AND A.EMPL_RCD = B.EMPL_RCD

AND C.EMPLID = A.EMPLID

AND A.CAL_RUN_ID = B.CAL_RUN_ID

AND A.LAST_DATE_WORKED = B.LAST_DATE_WORKED









SQL: GPFR_AT_RSLT_VW View



SQL Statement

SELECT DISTINCT E.GB_GROUP_ID,

SELECT E.GB_GROUP_ID,

A.EMPLID,

A.EMPL_RCD,

A.BGN_DT,

A.ORIG_BEGIN_DT,

B.NAME,

A.PIN_TAKE_NUM,

A.END_DT,

'N',

%Substring(F.GP_ELN_ATTR5,

1,

2),

SEC.ROWSECCLASS

OPR.ROWSECCLASS

FROM PS_GP_ABS_EVENT A,

PS_PERSON_NAME B,

PS_GB_GRP_RES_TBL E,

PS_GP_ELN_PIN_ATTR F %Sql(GPFR_SECU_EMPLMT_SQL,

A)

PS_GP_ELN_PIN_ATTR F,

PS_SJT_PERSON SEC,

PSOPRDEFN OPR

WHERE A.EMPLID = SEC.EMPLID

AND A.EMPL_RCD = SEC.EMPL_RCD

AND A.EMPLID = E.EMPLID

AND A.EMPL_RCD = E.EMPL_RCD

AND B.EMPLID = E.EMPLID

AND SEC.APPT_TYPE '1'

AND (EXISTS (SELECT 'X'

FROM PS_SJT_CLASS_ALL CLS,

PS_SJT_OPR_CLS SOC

WHERE CLS.SCRTY_SET_CD = 'PPLJOB'

AND CLS.SCRTY_TYPE_CD = SEC.SCRTY_TYPE_CD

AND CLS.SCRTY_KEY1 = SEC.SCRTY_KEY1

AND CLS.SCRTY_KEY2 = SEC.SCRTY_KEY2

AND CLS.SCRTY_KEY3 = SEC.SCRTY_KEY3

AND ((CLS.TREE = 'Y'

AND SOC.CLASSID = OPR.ROWSECCLASS

AND SOC.SEC_RSC_FLG IN ('1', '3'))

OR (CLS.TREE = 'N'))

AND SOC.OPRID = OPR.OPRID

AND SOC.CLASSID = CLS.CLASSID))

AND E.VERSIONGBQDM = (SELECT MAX(EE.VERSIONGBQDM)

FROM PS_GB_GRP_RES_TBL EE

WHERE EE.GB_GROUP_ID = E.GB_GROUP_ID)

AND E.JOB_EFFDT = (SELECT MAX(EE.JOB_EFFDT)

FROM PS_GB_GRP_RES_TBL EE

WHERE EE.GB_GROUP_ID = E.GB_GROUP_ID

AND EE.VERSIONGBQDM = E.VERSIONGBQDM

AND EE.EMPLID = E.EMPLID

AND EE.EMPL_RCD = E.EMPL_RCD

AND EE.JOB_EFFDT '1')

AND B.SLICE_END_DT >= B.ACM_FROM_DT

AND (B.SLICE_END_DT 'V'

AND C.PRD_TYPE = 'R'

AND C.CALC_TYPE = 'P'

AND C.RSLT_REV_NUM = 1

AND C.EMPLID = G.EMPLID

AND C.CAL_RUN_ID = G.CAL_RUN_ID

AND C.EMPL_RCD = G.EMPL_RCD

AND C.GP_PAYGROUP = G.GP_PAYGROUP

AND A.PYMT_KEY1 = G.PYMT_KEY1

AND A.PYMT_KEY2 = G.PYMT_KEY2

AND A.PYMT_KEY3 = G.PYMT_KEY3

AND A.PYMT_KEY4 = G.PYMT_KEY4

AND G.RSLT_SEG_NUM = (SELECT MIN(G2.RSLT_SEG_NUM)

FROM PS_GPFR_GUIDE_VW G2

WHERE G2.EMPLID = G.EMPLID

AND G2.CAL_RUN_ID = G.CAL_RUN_ID

AND G2.EMPL_RCD = G.EMPL_RCD

AND G2.GP_PAYGROUP = G.GP_PAYGROUP

AND G2.CAL_ID = G.CAL_ID

AND G2.PYMT_KEY1 = G.PYMT_KEY1

AND G2.PYMT_KEY2 = G.PYMT_KEY2

AND G2.PYMT_KEY3 = G.PYMT_KEY3

AND G2.PYMT_KEY4 = G.PYMT_KEY4)

AND (B.ACM_PRD_OPTN = '1')

AND B.SLICE_END_DT >= B.ACM_FROM_DT

AND (B.SLICE_END_DT 0

AND WA.GPJP_RUN_TYPE_FLAG = 'BON'

AND WA.GPJP_SC_EMPL_REC_N = WA.EMPL_RCD

AND PYE.EMPLID = WA.EMPLID

AND PYE.EMPL_RCD = WA.EMPL_RCD

AND PYE.EMPLID = D.EMPLID

AND D.NAME_TYPE = 'PRI'

AND PYE.EFFDT = (SELECT MAX(PYE1.EFFDT)

FROM %Table(GPJP_SC_PYE_DTA) PYE1

WHERE PYE1.EMPLID = PYE.EMPLID

AND PYE1.EFFDT %Sql(FUNCLIB_HR_DATE_BUILD,

'2011', '01', '02')

AND A.EMPLID = B.EMPLID

AND A.DEPENDENT_BENEF = B.DEPENDENT_BENEF

AND A.EFFDT = (SELECT MAX(EFFDT)

FROM PS_GPJP_IT_DEP_TAX

WHERE EMPLID = A.EMPLID

AND DEPENDENT_BENEF = A.DEPENDENT_BENEF

AND EFFDT = %Sql(FUNCLIB_HR_DATE_BUILD, '2011', '01', '01'))









SQL: UPD850896_A1MAIN Step02 S ApplEng

ApplEng UPD850896_A1

Section MAIN

Step Step02

Action SQL

Market GBL



SQL Statement

INSERT INTO PS_GPJP_IT_DEP_TAX

(EMPLID,

DEPENDENT_BENEF,

EFFDT,

EMPL_RCD,

GPJP_IT_SPOUSE,

GPJP_IT_DEP,

GPJP_IT_DEPDIS,

GPJP_DEP_JOB,

GPJP_DEP_INC,

GPJP_DEP_RCHAN,

GPJP_DIS_DESCR,

GPJP_DIS_RCHAN)

SELECT

A.EMPLID,

A.DEPENDENT_BENEF,

%Sql(FUNCLIB_HR_DATE_BUILD,

'2011',

'01',

'01'),

A.EMPL_RCD,

A.GPJP_IT_SPOUSE,

'20',

A.GPJP_IT_DEPDIS,

A.GPJP_DEP_JOB,

A.GPJP_DEP_INC,

' ',

A.GPJP_DIS_DESCR,

' '

FROM PS_GPJP_IT_DEP_TAX A,

PS_DEP_BEN B

WHERE A.GPJP_IT_DEP = '30'

AND %Sql(FUNCLIB_HR_DATE_YEAR_ADD, B.BIRTHDATE, 19) > %Sql(FUNCLIB_HR_DATE_BUILD,

'2011', '01', '02')

AND A.EMPLID = B.EMPLID

AND A.DEPENDENT_BENEF = B.DEPENDENT_BENEF

AND A.EFFDT = (SELECT MAX(EFFDT)

FROM PS_GPJP_IT_DEP_TAX

WHERE EMPLID = A.EMPLID

AND DEPENDENT_BENEF = A.DEPENDENT_BENEF

AND EFFDT = %Sql(FUNCLIB_HR_DATE_BUILD, '2011', '01', '01'))

PeopleCode Detail

PeopleCode (Record): FUNCLIB_GPJP.GPJP_YEA_SSERVICE.FieldFormula

[ . . . Unchanged Code not Shown . . . ]









PeopleCode (Record): GPCH_AE_DERIVED.GPCH_RP_TX07_XML.FieldFormula

[ . . . Unchanged Code not Shown . . . ]



Function GetRemarks() Returns array of string;

/****************************************************************/

&Remarks = "";

&MsgAmt = "";

&MSG_VAL = CreateArrayRept("", 9999);

&EmpCanton = RTrim(GPCHTX07_AET.GPCH_TX_CANTON);





/********Refresh Temp Record***********/

SQLExec("DELETE FROM %Table(GPCHTX079_TMP)");



/********Insert Company Message into Temp Record***********/



/* FMB Reset Variables */

&MsgNbr = " ";

&Remarks1_1 = " ";

&Remarks1_2 = " ";

&Travelx = " ";

&Remarks5 = " ";

&Remarks6 = " ";

&Remarks7 = " ";

&Remarks8_1 = " ";

&Remarks8_2 = " ";

&Remarks9 = " ";

&Remarks10_1 = " ";

&Remarks10_2 = " ";

&Remarks11_14 = " ";

&Remarks_addl = " ";

&Line_14 = " ";

&Remarks11_14 = " ";

&MSG_VAL [15] = " "; /*89b15*/

&Remarks = " ";



/* FMB Reset Variables */





If &Lang = &Langbase Then



SQLExec("INSERT INTO %Table(GPCHTX079_TMP) (COMPANY ,LANGUAGE_CD ,GPCH_AL_MSG_NBR

,PIN_NUM ,PIN_NM,ACM_PRD_OPTN ,GPCH_TX_CANTON ,GPCH_AL_MSG_CHK ,GPCH_AL_CCAT_AMT

,GPCH_AL_MSG_TXT,CALC_RSLT_VAL

,GPCH_BL_PR_CALC,GPCH_RC_FROM_DT,GPCH_RP_AMOUNT1,GPCH_RC_DESCR3) SELECT B.COMPANY

,C.LANGUAGE_CD ,A.GPCH_AL_MSG_NBR ,A.PIN_NUM ,' ' ,A.ACM_PRD_OPTN,B.GPCH_TX_CANTON

,A.GPCH_AL_MSG_CHK ,A.GPCH_AL_CCAT_AMT ,A.GPCH_AL_MSG_TXT ,0 ,'

',B.GPCH_RC_FROM_DT,B.GPCH_RP_AMOUNT1,B.GPCH_RC_DESCR3 FROM PS_GPCH_AL_MSG_CAT A

,PS_GPCH_AL_CO_MSG B, PSOPTIONS C WHERE A.GPCH_RC_REPORTNAME='GPCHTX07' and

A.GPCH_RC_REPORTNAME = B.GPCH_RC_REPORTNAME AND A.GPCH_AL_MSG_NBR = B.GPCH_AL_MSG_NBR AND

B.COMPANY = :1 AND B.EFFDT = ( SELECT MAX(B1.EFFDT) FROM PS_GPCH_AL_CO_MSG B1 WHERE

B1.COMPANY=B.COMPANY AND B1.GPCH_RC_REPORTNAME = B.GPCH_RC_REPORTNAME AND B1.EFFDT 0 and exists ( SELECT 'X'

FROM PS_GP_PIN A WHERE %Table(GPCHTX079_TMP).PIN_NUM = A.PIN_NUM)");



/********Update Msg check in the Temp Record***********/

SQLExec("UPDATE %Table(GPCHTX079_TMP) SET GPCH_AL_MSG_CHK = 'N' WHERE GPCH_AL_MSG_CHK

'Y'");

/********Picking up 9001*****************************/

If &Lang = &Langbase Then

SQLExec("Select GPCH_AL_MSG_TXT from PS_GPCH_AL_MSG_CAT where GPCH_AL_MSG_NBR=:1 and

GPCH_RC_REPORTNAME='GPCHTX07' ", "9001", &text_9001);

Else

SQLExec("Select GPCH_AL_MSG_TXT from PS_GPCH_AL_MCT_LNG where GPCH_AL_MSG_NBR=:1 AND

LANGUAGE_CD=:2 and GPCH_RC_REPORTNAME='GPCHTX07' ", "9001", &Lang, &text_9001);

End-If;

/********Fetch and Process Employee Messages ***********/





If &Lang = &Langbase Then

&SQL3 = CreateSQL("SELECT GPCH_AL_MSG_NBR , GPCH_AL_ACT_TYPE,

GPCH_AL_MSG_TXT,GPCH_TX_CANTON, %Dateout(GPCH_RC_FROM_DT), GPCH_RP_AMOUNT1,

GPCH_RC_DESCR3 FROM PS_GPCH_TX_LAW_MSG WHERE EMPLID = :1 AND GPCH_RC_PAY_YEAR = :2 AND

COMPANY = :3", GPCHTX07_AET.EMPLID, GPCHTX07_AET.GPCH_RC_PAY_YEAR, GPCHTX07_AET.COMPANY);

Else

&SQL3 = CreateSQL("SELECT A.GPCH_AL_MSG_NBR , A.GPCH_AL_ACT_TYPE,

B.GPCH_AL_MSG_TXT,A.GPCH_TX_CANTON, %Dateout(A.GPCH_RC_FROM_DT), A.GPCH_RP_AMOUNT1,

A.GPCH_RC_DESCR3 FROM PS_GPCH_TX_LAW_MSG A,PS_GPCH_AL_MCT_LNG B WHERE A.EMPLID = :1 AND

A.GPCH_RC_PAY_YEAR = :2 AND A.COMPANY = :3 AND A.GPCH_AL_MSG_NBR=B.GPCH_AL_MSG_NBR AND

B.LANGUAGE_CD=:4", GPCHTX07_AET.EMPLID, GPCHTX07_AET.GPCH_RC_PAY_YEAR,

GPCHTX07_AET.COMPANY, &Lang);

End-If;

/********Fetch Sender Override from GPCH_AL_SDR_DTL ***********/

SQLExec("Select DESCR, ADDRESS1, ADDRESS2, GPCH_AL_SIGNATURE, PHONE, CITY from

PS_GPCH_AL_SDR_DTL A where A.COMPANY = :1 AND A.LANGUAGE_CD = :2 AND A.GPCH_RC_REPORTNAME

= :4 and A.EFFDT = ( select max(A1.EFFDT) from PS_GPCH_AL_SDR_DTL A1 where A.COMPANY =

A1.COMPANY and A.LANGUAGE_CD = A1.LANGUAGE_CD and A.GPCH_RC_REPORTNAME =

A1.GPCH_RC_REPORTNAME and A1.EFFDT 0 Then

&EmpAmount = Substring(&ValTest, 1, &pos1 - 1) | ".00";

Else

&EmpAmount = &ValTest | ".00";

End-If;



&TaxMess.GPCH_RP_AMOUNT1.Value = &EmpAmount;

End-If;

&TaxMess.GPCH_RC_DESCR3.Value = &EmpDescr;

&TaxMess.GPCH_BL_PR_CALC.Value = "Y";

&TaxMess.Insert();

&TaxMess.Update();



Break;



When = 3

&TaxMess = CreateRecord(Record.GPCHTX079_TMP);

&TaxMess.COMPANY.Value = GPCHTX07_AET.COMPANY;

&TaxMess.LANGUAGE_CD.Value = ⟪

&TaxMess.GPCH_AL_MSG_NBR.Value = &EmpMsgNbr;

&TaxMess.GPCH_AL_MSG_TXT.Value = &EmpTxt;

&TaxMess.GPCH_BL_PR_CALC.Value = "Y";

/*FMB 20090710 Begin */

&TaxMess.GPCH_RC_FROM_DT.Value = &EmpApFrom;

If All(&EmpAmount) Then

&ValTest = &EmpAmount;

&TaxMess.GPCH_AL_CCAT_AMT.Value = "Y";

&pos1 = Find(".", &ValTest);

If &pos1 > 0 Then

&EmpAmount = Substring(&ValTest, 1, &pos1 - 1) | ".00";

Else

&EmpAmount = &ValTest | ".00";

End-If;

&TaxMess.GPCH_RP_AMOUNT1.Value = &EmpAmount;

End-If;

&TaxMess.GPCH_RC_DESCR3.Value = &EmpDescr;

/*FMB 20090710 End */

&TaxMess.Update();

Break;



When-Other;



End-Evaluate;

End-While;





/********Final Processing ***********/

&SQL4 = CreateSQL("select A.GPCH_AL_MSG_NBR ,A.PIN_NM ,A.ACM_PRD_OPTN ,A.GPCH_TX_CANTON

,A.GPCH_AL_MSG_CHK ,A.GPCH_AL_CCAT_AMT ,A.GPCH_AL_MSG_TXT

,A.CALC_RSLT_VAL,A.GPCH_BL_PR_CALC,%Dateout(A.GPCH_RC_FROM_DT),GPCH_RP_AMOUNT1,GPCH_RC_

DESCR3 FROM %Table(GPCHTX079_TMP) A WHERE A.GPCH_BL_PR_CALC 'N' AND A.COMPANY = :1 AND

A.LANGUAGE_CD = :2", GPCHTX07_AET.COMPANY, &Lang);





While &SQL4.Fetch(&MsgNbr, &PinNm, &AcmOpn, &CANTON, &AlwaysChk, &ConcatAmt, &MsgTxt,

&MsgAmt, &Noprnt, &Fromdt, &ComAmount, &CoDescr)



&PinNm = RTrim(&PinNm);

&CANTON = RTrim(&CANTON);



/********Fetch Right Pin Amt***********/





&iIndex = &ACUM_NAME.Find(&PinNm);

If &iIndex 0 Then

&MsgAmt = &ACUM_VAL [&iIndex];

End-If;



&ValTest = &ComAmount;

&pos1 = Find(".", &ValTest);

If &pos1 > 0 Then

&ComAmount = Substring(&ValTest, 1, &pos1 - 1) | ".00";

Else

&ComAmount = &ValTest | ".00";

End-If;





/********Check if Message is to be printed***********/

&Print = "Y";









If &AlwaysChk = "N" And /* None(&CANTON) And*/

&AcmOpn = "1" And

&MsgAmt = 0 Then

&Print = "N";

End-If;



If &AlwaysChk = "N" And /* None(&CANTON) And */

&AcmOpn = "5" And

&MsgAmt = 0 Then

&Print = "N";

End-If;







If &AlwaysChk = "Y" Then /*FMB activated*/

&Print = "Y";

End-If;



If &MsgNbr = 11 Or

&MsgNbr = 12 Or

&MsgNbr = 13 Or

&MsgNbr = 14 Then

&MsgTxt = RTrim(&MsgTxt);

&Remarks11_14 = &Remarks11_14 | &MsgTxt | "; ";

Else



If &MsgNbr 1 And

&MsgNbr 8 And

&MsgNbr 10 Then

If &ComAmount "0.00" And

&ConcatAmt = "Y" Then

&MsgTxt = &MsgTxt | " " | &ComAmount;

End-If;

End-If;

If Not None(&CoDescr) Then

&MsgTxt = &MsgTxt | " " | &CoDescr;

End-If;



If Not None(&Fromdt) Then

&FromOut = Substring(&Fromdt, 9, 2) | "." | Substring(&Fromdt, 6, 2) | "." |

Substring(&Fromdt, 1, 4); /* FMB 20081612*/

&MsgTxt = &MsgTxt | " " | &CANTON | " " | &FromOut;

End-If;



If &ConcatAmt = "Y" And

String(Round(&MsgAmt, 2)) "0.00" Then

&MsgTxt = &MsgTxt | " " | String(Round(&MsgAmt, 2));

End-If;



If &MsgNbr = 5 Then

If &verno > 1 Then

&MsgTxt = &MsgTxt | " " | String(&verno);

&Print = "Y";

End-If;

End-If;

End-If;



If &Print = "Y" Then

/*SYED*/



If &MsgNbr = 1 Then

&Remarks1_1 = &Fromdt;

&Remarks1_2 = &CANTON;

End-If;



If &MsgNbr = 2 Then

&Travelx = "X";

End-If;



If &MsgNbr = 5 Then

&Remarks5 = &CoDescr;



End-If;



If &MsgNbr = 6 Then

&Remarks6 = "X";

End-If;



If &MsgNbr = 7 Then

&Remarks7 = &ComAmount;

End-If;

If &MsgNbr = 8 Then

&Remarks8_1 = &Fromdt;

&Remarks8_2 = &CANTON;

End-If;



If &MsgNbr = 9 Then

&Remarks9 = "X";

End-If;



If &MsgNbr = 10 Then

&Remarks10_1 = &Fromdt;

&Remarks10_2 = &CANTON;

End-If;





rem syed 89 B15 End-If;

/* SYEDEND*/



If &MsgNbr >= 1 And /*syed*/

&MsgNbr 1 And

&MsgNbr 2 And

&MsgNbr 5 And

&MsgNbr 6 And

&MsgNbr 7 And

&MsgNbr 8 And

&MsgNbr 9 And

&MsgNbr 10 And

&MsgNbr 11 And

&MsgNbr 12 And

&MsgNbr 13 And

&MsgNbr 14) Then



&Remarks = &Remarks | " " | &MsgTxt | ";";



End-If;



If (&MsgNbr >= 1 And /*syed*/

&MsgNbr 11 And

&MsgNbr 12 And

&MsgNbr 13 And

&MsgNbr 14) Then



&Remarks_addl = &Remarks_addl | " " | &MsgTxt | ";"; /* 89b15*/



End-If;



If &MsgNbr >= 100 And

&MsgNbr " " And

&Line_14 "" Then

&Line_14 = &Line_14 | ";" | &MsgTxt;

Else

&Line_14 = &Line_14 | " " | &MsgTxt;

End-If;

REM FMB 20080529 END &Line_14 = &Line_14 | " " | &MsgTxt;



REM &Line_14 = &Line_14 | " " | &MsgTxt;

End-If;

If &MsgNbr >= 9000 Then

&MSG_VAL [&MsgNbr] = &MsgTxt;

End-If;

End-If; /*Syed 89 B15*/

End-While;



If &Remarks11_14 " " And

&Remarks11_14 "" Then

&MSG_VAL [12] = &Remarks11_14;

&Remarks_addl = &Remarks_addl | &text_9001 | &Remarks11_14 | ";";



End-If;

If &Remarks " " And

&Remarks "" Then

&MSG_VAL [15] = &Remarks;



End-If;

If &Line_14 " " And

&Line_14 "" Then

&CH_LW_140_ALL = RTrim(&CH_LW_140_ALL);

REM FMB 20080529 BEGIN;

If &CH_LW_140_ALL " " And

&CH_LW_140_ALL "" Then

&CH_LW_140_ALL = &CH_LW_140_ALL | ";" | &Line_14 | ";";

Else

&CH_LW_140_ALL = &Line_14 | ";";

End-If;

REM FMB 20080529 END &CH_LW_140_ALL = &CH_LW_140_ALL | &Line_14;



REM &CH_LW_140_ALL = &CH_LW_140_ALL | &Line_14;

End-If;

/*SYED*/

If &Remarks1_1 " " And

&Remarks1_1 "" Then

If Not None(&Remarks1_1) Then

&MSG_VAL [1] = &Remarks1_1;

End-If;

If &Remarks1_2 " " And

&Remarks1_2 "" Then

If Not None(&Remarks1_2) Then

&MSG_VAL [2] = &Remarks1_2;

End-If;



If &Remarks5 " " And

&Remarks5 "" Then

If Not None(&Remarks5) Then

&MSG_VAL [5] = &Remarks5;

End-If;

If &Remarks6 " " And

&Remarks6 "" Then

If Not None(&Remarks6) Then

&MSG_VAL [14] = &Remarks6; /* val14 is overlapping confirm?*/

End-If;



If &Remarks7 " " And

&Remarks7 "" Then

If Not None(&Remarks7) Then

&MSG_VAL [7] = &Remarks7;

End-If;

If &Remarks8_1 " " And

&Remarks8_1 "" Then

If Not None(&Remarks8_1) Then

&MSG_VAL [8] = &Remarks8_1;

End-If;

If &Remarks8_2 " " And

&Remarks8_2 "" Then

If Not None(&Remarks8_2) Then

&MSG_VAL [9] = &Remarks8_2;

End-If;

If &Remarks10_1 " " And

&Remarks10_1 "" Then

If Not None(&Remarks10_1) Then

&MSG_VAL [10] = &Remarks10_1;

End-If;

If &Remarks10_2 " " And

&Remarks10_2 "" Then

If Not None(&Remarks10_2) Then

&MSG_VAL [11] = &Remarks10_2;

End-If;

If &Remarks9 " " And

&Remarks9 "" Then

If Not None(&Remarks9) Then

&MSG_VAL [13] = &Remarks9;

End-If;

/*SYEDEND*/



Return &MSG_VAL;



End-Function;



[ . . . Unchanged Code not Shown . . . ]









PeopleCode (Record): GPCH_EG_STAT_DW.FUNCLIB.FieldFormula

[ . . . Unchanged Code not Shown . . . ]



Function get_seq_no(&ProvType) Returns string

Function get_seq_no(&ProvType) Returns array of string

Local array of string &SEQNO;

&SEQNO = CreateArray("String");





&RowS1 = GetLevel0();

&RowS2 = &RowS1(1).GetRowset(Scroll.GPCH_EG_RSTATUS);

&Rows3 = &RowS1(1).GetRowset(Scroll.GPCH_RC_PROVIDR);



&Flag = 0;

For &k = 1 To &RowS2.ActiveRowCount;

&Row1 = &RowS2.GetRow(&k);



SQLExec("SELECT ACC.GPCH_TX_CANTON,ACC.GPCH_SI_UV_MBR_ID FROM PS_GPCH_SI_ACC_INS

ACC WHERE ACC.COMPANY = :1 AND ACC.GPCH_SI_PROV_TYPE = :2 AND ACC.GPCH_TX_UV_PROV_CD = :3

AND ACC.EFFDT = (SELECT MAX(ACC1.EFFDT) FROM PS_GPCH_SI_ACC_INS ACC1 WHERE ACC1.COMPANY =

ACC.COMPANY AND ACC1.GPCH_SI_PROV_TYPE = ACC.GPCH_SI_PROV_TYPE AND ACC1.GPCH_TX_UV_PROV_CD

= ACC.GPCH_TX_UV_PROV_CD AND ACC1.EFFDT 0)) Or

(Mod(Value(&Year), 400) = 0)) Then

&Day = 29;

Else

&Day = 28;

End-If;

End-If;



End-If;

&EndDate = Date3(Value(&Year), Value(&Month), Value(&Day));

&BeginDt = Date3(Value(&Year), Value(&Month), 1);



&ReturnDates [1] = &BeginDt;

&ReturnDates [2] = &EndDate;

&ReturnDates [3] = &Quarter;

Return &ReturnDates;



End-Function;



[ . . . Unchanged Code not Shown . . . ]









PeopleCode (Record): GPFR_AF_RUN_EXT.GPFR_AF_EXTRACT_ID.FieldChange

[ . . . Unchanged Code not Shown . . . ]









PeopleCode (Record): GPGB_ABS_EVT_JR.GPGB_ABS_LINK_DUR.SavePostChange

Declare Function Update_Abs PeopleCode GPGB_ABS_EVT_JR.GPGB_ABS_LINK_DUR FieldFormula;

Declare Function Calculate_Half_Days PeopleCode GPGB_ABS_EVT_JR.GPGB_ABS_LINK_DUR

FieldFormula;



Component Rowset &level1, &level2;

Local date &first_bgn_dt, &bgn_dt;

Local number &prev_duration;

Component number &pin_take_num_ssp, &refershrow;

Local boolean &link_flag;



/*initilalizing ¤t_duration to zero */

¤t_duration = 0;



&gp_abs_take = CreateRowset(Record.GP_ABS_TAKE);

&num_read = &gp_abs_take.Fill("where PIN_NUM=:1", GPGB_ABS_EVT_JR.PIN_TAKE_NUM);



If GP_PIN.PIN_CODE = "SSP AT1 GBR" Then

&pin_take_num_ssp = GPGB_ABS_EVT_JR.PIN_TAKE_NUM;

End-If;



&level1_row = CreateRowset(Record.GP_ABS_EVENT);



&level0 = GetLevel0();

&level1 = &level0.GetRow(1).GetRowset(Scroll.GP_ABS_EVENT);

&level1.CopyTo(&level1_row);

&level1_row.Sort(GP_ABS_EVENT.END_DT, "D");

&level2 = &level1.GetRow(1).GetRowset(Scroll.GPGB_ABS_EVT_JR);

&i = 1; /* to check it is not the first event */

&j = 0; /* to link the first event date */

&prev_end_day_half_ind = "";

&prev_all_days_ind = "";

&prev_pin_take_num = 0;









For &z = &level1_row.ActiveRowCount To 1 Step - 1

&emplid = &level1_row.getRow(&z).GP_ABS_EVENT.EMPLID.Value;

&empl_rcd = &level1_row.getRow(&z).GP_ABS_EVENT.EMPL_RCD.Value;

&bgn_dt = Date(&level1_row.getRow(&z).GP_ABS_EVENT.BGN_DT.Value);

&end_dt = Date(&level1_row.getRow(&z).GP_ABS_EVENT.END_DT.Value);

&begin_day_half_ind =

Upper(&level1_row.getRow(&z).GP_ABS_EVENT.BEGIN_DAY_HALF_IND.Value);

&end_day_half_ind =

Upper(&level1_row.getRow(&z).GP_ABS_EVENT.END_DAY_HALF_IND.Value);

&begin_day_hrs = &level1_row.getRow(&z).GP_ABS_EVENT.BEGIN_DAY_HRS.Value;

&end_day_hrs = &level1_row.getRow(&z).GP_ABS_EVENT.END_DAY_HRS.Value;

&all_days_ind = Upper(&level1_row.getRow(&z).GP_ABS_EVENT.ALL_DAYS_IND.Value);

&pin_take_num = &level1_row.getRow(&z).GP_ABS_EVENT.PIN_TAKE_NUM.Value;

If (&pin_take_num = &pin_take_num_ssp) Then



&a = Date(&bgn_dt);

&b = Date(&end_dt);





If All(&a, &b) Then

&c = AddToDate(&a, 0, 0, - 1);

¤t_duration = &b - &c;

End-If;

/* ¤t_duration = &end_dt - (&bgn_dt - 1); */



/* Check for Partial Hours - starts */

If (&begin_day_hrs > 0) Then

&begin_day_half_ind = "Y";

End-If;



If (&end_day_hrs > 0) Then

&end_day_half_ind = "Y";

End-If;



/* Check for Partial Hours - ends */



/* Check for All days indicator="Y" - starts */





If (&all_days_ind = "Y" And

Not (&link_flag)) Then

&first_bgn_dt = &bgn_dt;

&prev_duration = 0;



Else

/* &all_days_ind ="N" */



/* &i Checks - it is not the first event */

If (&i > 1) Then



&compare_dt = Date(&bgn_dt) - Date(&prev_end_dt);



If (&compare_dt = 1 And

&prev_end_day_half_ind = "N" And

&begin_day_half_ind = "N" And

&prev_all_days_ind = "N" And

&prev_pin_take_num = &pin_take_num And

&all_days_ind = "N") Then



/* And &all_days_ind = "N" */

/* link the absence events */



¤t_duration = ¤t_duration + &prev_duration;



&prev_duration = Calculate_Half_Days(&begin_day_half_ind,

&end_day_half_ind, ¤t_duration);





If (&j = 0) Then

&first_bgn_dt = &prev_bgn_dt;

&first_end_dt = &prevenddate;

End-If;



&j = &j + 1;

&link_flag = True;





Else /* Not linked reset &j */



If (&j >= 1 And

&link_flag

/* And &level1.ActiveRowCount &i */

) Then



Update_Abs(&emplid, &empl_rcd, &first_bgn_dt, &prev_end_dt,

&pin_take_num, &last_prev_duration);

&link_flag = False;



End-If;





&prev_duration = Calculate_Half_Days(&begin_day_half_ind,

&end_day_half_ind, ¤t_duration);





&link_flag = False;

&j = 0;

&first_bgn_dt = &bgn_dt;





End-If; /*compare_dt */



Else /* if i = 1 */

&first_bgn_dt = &bgn_dt;

If (&end_day_half_ind = "Y" Or

&begin_day_half_ind = "Y") Then

&prev_duration = Calculate_Half_Days(&begin_day_half_ind,

&end_day_half_ind, ¤t_duration);

End-If;



End-If; /* & i > 1 */





End-If; /* Check for All days indicator="Y" - ends */





&prev_bgn_dt = &bgn_dt;

&prev_end_dt = &end_dt;

&prev_duration = ¤t_duration;





If (&i = 1 And

&level1.ActiveRowCount = 1) Then



&prev_duration = Calculate_Half_Days(&begin_day_half_ind, &end_day_half_ind,

¤t_duration);

Update_Abs(&emplid, &empl_rcd, &first_bgn_dt, &end_dt, &pin_take_num,

&prev_duration);



End-If;

If (&j >= 1 And

&link_flag And

&level1.ActiveRowCount = &i) Or

(&all_days_ind = "Y") Then



If (&all_days_ind = "Y") Then

&prev_duration = 0;

&link_flag = False;

End-If;





Update_Abs(&emplid, &empl_rcd, &first_bgn_dt, &end_dt, &pin_take_num,

&prev_duration);



End-If;







If (&j = 0 And

Not (&link_flag) /*And

&i 1 */) Then





If (&z 1) Then

&k = &z - 1;



&next_emplid = &level1_row.getRow(&k).GP_ABS_EVENT.EMPLID.Value;

&next_empl_rcd = &level1_row.getRow(&k).GP_ABS_EVENT.EMPL_RCD.Value;

&next_bgn_dt = Date(&level1_row.getRow(&k).GP_ABS_EVENT.BGN_DT.Value);

&next_end_dt = Date(&level1_row.getRow(&k).GP_ABS_EVENT.END_DT.Value);

&next_begin_day_half_ind =

Upper(&level1_row.getRow(&k).GP_ABS_EVENT.BEGIN_DAY_HALF_IND.Value);

&next_end_day_half_ind =

Upper(&level1_row.getRow(&k).GP_ABS_EVENT.END_DAY_HALF_IND.Value);

&next_begin_day_hrs =

&level1_row.getRow(&k).GP_ABS_EVENT.BEGIN_DAY_HRS.Value;

&next_end_day_hrs = &level1_row.getRow(&k).GP_ABS_EVENT.END_DAY_HRS.Value;

&next_all_days_ind =

Upper(&level1_row.getRow(&k).GP_ABS_EVENT.ALL_DAYS_IND.Value);

&next_pin_take_num = &level1_row.getRow(&k).GP_ABS_EVENT.PIN_TAKE_NUM.Value;





&compare_dt2 = Date(&next_bgn_dt) - Date(&end_dt);



If (&next_emplid = GPGB_ABS_EVT_JR.EMPLID And

&next_empl_rcd = GPGB_ABS_EVT_JR.EMPL_RCD And

&compare_dt2 = 1 And

&end_day_half_ind = "N" And

&next_begin_day_half_ind = "N" And

&all_days_ind = "N" And

&next_pin_take_num = &pin_take_num_ssp) Then





Else

Update_Abs(&emplid, &empl_rcd, &first_bgn_dt, &end_dt, &pin_take_num,

&prev_duration);

End-If; /* 3 C */

Else /* k = 0 */



Update_Abs(&emplid, &empl_rcd, &first_bgn_dt, &end_dt, &pin_take_num,

&prev_duration);

End-If; /* relocate this 2 C */







End-If; /* 1C &j = 0 And

Not (&link_flag) */

&last_prev_duration = &prev_duration;



End-If; /* SSP Absence only */





&prev_end_day_half_ind = &end_day_half_ind;

&prev_all_days_ind = &all_days_ind;

&prev_pin_take_num = &pin_take_num;

&number_of_half_days = 0;

&i = &i + 1;

End-For;



/* CODE to mimic sort & synchronize */



If &refershrow > 0 Then

&refershrow = 0;

&level1.Refresh();

End-If;









PeopleCode (Record): GPGB_EDIFUNCLIB.GPGB_EDI_WORKS_ID.FieldFormula

[ . . . Unchanged Code not Shown . . . ]



Function SetStatDetails Returns boolean

/*On entry to this function, the following information should be in GPGB_EDILIB_AET...

1.National Id

2.Works Id (may be blank)

3.Last Name*/



/*

Local string &sWorksId, &sTrans;

Local number &iReps, &iRet, &iSeqNum, &iC;





Local boolean &bUpdReq

Local string &sTitle, &sParam1, &sParam2, , &sParam4, &sWhere, &sTaxMsg, &sNotes;

Local number &iMessNum, &iNIMatchLen;

Local string &sPathSep;

*/



Local boolean &bGotWorksIdMatch, &bGotNIMatch, &bGotSurnameMatch, &bStillCanDo,

&bGotMatch;

Local boolean &bOk, &bDefEmplRcd, &bMsg;

Local number &iCount, &iEmplRcd1, &iMessCat, &iMessNum, &getemplrcd;

Local string &sSurname, &sNationalId, &sEmplId1, &sMsg, &sSql, &sRet;

Local string &sParam1, &sParam2, &sParam3, &sParam4, &sTaxMsg;

Local SQL &sql;

Local Record &Rec, &Rec2;



&bStillCanDo = True;

&bGotWorksIdMatch = False;

&bGotNIMatch = False;

&bGotSurnameMatch = False;

&bDefEmplRcd = False;

&bGotMatch = False;

&iCount = 0;

&bOk = False;

&sSurname = RTrim(GPGB_EDILIB_AET.LAST_NAME);

&sNationalId = RTrim(GPGB_EDILIB_AET.NATIONAL_ID);



/*No Works Id specified - so try and match on National Id*/



If None(GPGB_EDILIB_AET.GPGB_EDI_WORKS_ID) And

All(&sNationalId) Then



&sEmplId1 = NIMatch(&sNationalId, &sSurname, True);

If All(&sEmplId1) Then

GPGB_EDILIB_AET.EMPLID = &sEmplId1;

/* GPGB_EDILIB_AET.EMPL_RCD = 0; */

/*

we have found the emplid. Now lets find the least(emplrcd)

which is active and belonging to uk payroll */



&sSql = "SELECT MIN(A.EMPL_RCD) FROM PS_PER_ORG_ASGN_VW A, PS_GPGB_EE_TAX B WHERE

A.EMPLID= B.EMPLID AND A.EMPL_RCD = B.EMPL_RCD AND A.EMPLID = :1";

SQLExec(&sSql, GPGB_EDILIB_AET.EMPLID, &getemplrcd);

If All(&getemplrcd) Then

GPGB_EDILIB_AET.EMPL_RCD = &getemplrcd;

End-If;

/* GPGB_EDILIB_AET.GPGB_EDI_WORKS_ID = GetWorksId(&sEmplId1, 0); */

GPGB_EDILIB_AET.GPGB_EDI_WORKS_ID = GetWorksId(&sEmplId1, &getemplrcd);



&bDefEmplRcd = True;

&bGotNIMatch = True;

Else

GPGB_EDILIB_AET.EMPLID = "";

End-If;



End-If;



/*Either have a works id specified in the file - or -

have matched on NI number.

If matched on NI number then &bDefEmplRcd will be true because we have matched

person not job - so have defaulted empl rcd to 0 and set works id based on that*/



If All(GPGB_EDILIB_AET.GPGB_EDI_WORKS_ID) And

Not &bDefEmplRcd Then



/*Works Id specified in file*/



GPGB_EDILIB_AET.EMPLID = GetEmplId(GPGB_EDILIB_AET.GPGB_EDI_WORKS_ID);

&iEmplRcd1 = GetEmplRcd(GPGB_EDILIB_AET.GPGB_EDI_WORKS_ID);



If &iEmplRcd1 = - 1 Then



/*If return from GetEmplRcd is -1 then no empl rcd has been supplied

so default to 0 and set works id*/



/* GPGB_EDILIB_AET.EMPL_RCD = 0; */

&sSql = "SELECT MIN(A.EMPL_RCD) FROM PS_PER_ORG_ASGN_VW A, PS_GPGB_EE_TAX B WHERE

A.EMPLID= B.EMPLID AND A.EMPL_RCD = B.EMPL_RCD AND A.EMPLID = :1";

SQLExec(&sSql, GPGB_EDILIB_AET.EMPLID, &getemplrcd);



If All(&getemplrcd) Then

GPGB_EDILIB_AET.EMPL_RCD = &getemplrcd;

End-If;



GPGB_EDILIB_AET.GPGB_EDI_WORKS_ID = GetWorksId(GPGB_EDILIB_AET.EMPLID,

GPGB_EDILIB_AET.EMPL_RCD);



/*set log that no empl rcd was found in the works id.*/

&sMsg = "P6/P9 Warning : no empl rcd provided in works id for employee %1 - defaulting

to " | &getemplrcd;



&bMsg = SetDtlMessage2(17135, 367, "WARNING", &sMsg, &sSurname,

String(&getemplrcd), "", "");





&bDefEmplRcd = True;



Else



GPGB_EDILIB_AET.EMPL_RCD = &iEmplRcd1;



End-If;



End-If;

/*Either have emplid from a national id match or from a correct works id.

Emplrcd will either be defaulted to 0 (from an NI match only) or will have

been retrieved from works id or defaulted to 0 if not set in works id.*/



If All(GPGB_EDILIB_AET.EMPLID) Then



/* Make sure have a job for the emplid,emplrcd combination.*/



&sSql = "SELECT COUNT(DISTINCT EMPLID) FROM PS_EMPLOYMENT WHERE EMPLID = :1 AND

EMPL_RCD = :2";

SQLExec(&sSql, GPGB_EDILIB_AET.EMPLID, GPGB_EDILIB_AET.EMPL_RCD, &iCount);



If &iCount = 0 Then



&bGotMatch = False;

&sMsg = "P6/P9 Error : could not find employee %1 (%2) employment information -

no update possible";

&bMsg = SetDtlMessage2(17135, 348, "ERROR", &sMsg, &sSurname,

GPGB_EDILIB_AET.GPGB_EDI_WORKS_ID, "", "");

&bStillCanDo = False;



Else



&bGotMatch = True;



/* If GPGB_EDILIB_AET.EMPL_RCD = 0 And */

If GPGB_EDILIB_AET.EMPL_RCD = &getemplrcd And



&bDefEmplRcd Then



/*Empld rcd has been defaulted (either because only NI number was provided)

or because it wasn't found in the works id.

Check to see if got multiple jobs for this ee*/



&sSql = "SELECT COUNT(DISTINCT EMPL_RCD) FROM PS_EMPLOYMENT WHERE EMPLID = :1";

SQLExec(&sSql, GPGB_EDILIB_AET.EMPLID, &iCount);



If &iCount > 1 Then



/*multiple job ee - set warning that updating job 0 of multiple jobs*/

rem need to modify this message such that o is replaxced by getemplrcd value;

&sMsg = "P6/P9 Warning : employee %1 has multiple jobs - will only update

empl rcd " | &getemplrcd;

&bMsg = SetDtlMessage2(17135, 366, "WARNING", &sMsg, &sSurname,

String(&getemplrcd), "", "");





End-If;



Else

/*indicates got a worksid match straight from file - without any defaulting etc*/

&bGotWorksIdMatch = True;

&sMsg = "P6/P9 Info : employee %1 (%2) has a works id match";

&bMsg = SetDtlMessage2(17135, 380, "INFO", &sMsg, &sSurname,

(GPGB_EDILIB_AET.GPGB_EDI_WORKS_ID), "", "");

End-If;



End-If;



End-If;



/*

Need to have a 2 out of 3 match ie (in order of pref) WorksId,NI,Surname.

At this point either have and NI and WorksId or just WorksId.

If just WorksId (because was supplied) then try and match NI.

*/

If Not &bGotNIMatch And

All(GPGB_EDILIB_AET.EMPLID) Then

&sEmplId1 = NIMatch(&sNationalId, &sSurname, True);

If &sEmplId1 GPGB_EDILIB_AET.EMPLID Then

If All(&sEmplId1, &sNationalId) Then

GPGB_EDILIB_AET.EMPLID = &sEmplId1;

End-If;

&sSql = "SELECT NATIONAL_ID FROM PS_PERS_NID WHERE EMPLID = :1";

SQLExec(&sSql, GPGB_EDILIB_AET.EMPLID, &sRet);

If &sRet &sNationalId Then

&sMsg = "P6/P9 Error : employee %1 (%2) NI numbers don't match %3 - no update

possible";

&sParam3 = MsgGetText(17135, 377, "(%1 in system versus %2 in transaction)",

&sRet, &sNationalId);

&bMsg = SetDtlMessage2(17135, 376, "ERROR", &sMsg, &sSurname,

(GPGB_EDILIB_AET.GPGB_EDI_WORKS_ID), &sParam3, "");

&bGotMatch = False;

Else

&bGotNIMatch = True;

&bGotWorksIdMatch = True;

End-If;

Else

&bGotNIMatch = True;

&bGotWorksIdMatch = True

End-If;

End-If;



/*

Check on surname

*/

If All(GPGB_EDILIB_AET.EMPLID) Then

&sSql = "SELECT LAST_NAME FROM PS_PERSON_NAME WHERE EMPLID = :1";

SQLExec(&sSql, GPGB_EDILIB_AET.EMPLID, &sRet);

&sRet = Upper(&sRet);

If &sRet &sSurname Then

If &bGotWorksIdMatch And

&bGotNIMatch Then

/*Got 2 out of 3 - display a warning and continue*/

&sMsg = "P6/P9 Warning : employee %1 (%2) surname doesn't match %3 - processing

continues";

&sRet = "(" | &sRet | " in system versus " | &sSurname | " in transaction)";

&sParam3 = MsgGetText(17135, 377, "(%1 in system versus %2 in transaction)",

&sRet, &sSurname);

&bMsg = SetDtlMessage2(17135, 378, "WARNING", &sMsg, &sSurname,

(GPGB_EDILIB_AET.GPGB_EDI_WORKS_ID), &sRet, "");

Else

/*Only got 1 out of 3 - so error*/

&sMsg = "P6/P9 Error : employee %1 (%2) surname doesn't match %3 - no update

possible";

&sRet = "(" | &sRet | " in system versus " | &sSurname | " in transaction)";

&sParam3 = MsgGetText(17135, 377, "(%1 in system versus %2 in transaction)",

&sRet, &sSurname);

&bMsg = SetDtlMessage2(17135, 379, "ERROR", &sMsg, &sSurname,

(GPGB_EDILIB_AET.GPGB_EDI_WORKS_ID), &sRet, "");

&bGotMatch = False;

End-If;

Else

&sMsg = "P6/P9 Info : employee %1 (%2) has a surname match";

&bMsg = SetDtlMessage2(17135, 381, "INFO", &sMsg, &sSurname,

(GPGB_EDILIB_AET.GPGB_EDI_WORKS_ID), "", "");

&bGotMatch = True;

End-If;

End-If;



If &bGotMatch Then



&bOk = True;

/*&bUpdReq = False; VK: Variable is no longer used*/



/*Check for future rows*/



SQLExec("SELECT COUNT(DISTINCT EMPLID) FROM PS_GPGB_EE_TAX WHERE EMPLID = :1 AND

EMPL_RCD = :2 AND EFFDT > %DateIn(:3)", GPGB_EDILIB_AET.EMPLID, GPGB_EDILIB_AET.EMPL_RCD,

GPGB_EDILIB_AET.EFFDT, &iCount);



If &iCount > 0 Then

&bOk = False;

&sMsg = "P6/P9 Error : employee %1 (%2) has future dated rows - no update possible";

&bMsg = SetDtlMessage2(17135, 351, "ERROR", &sMsg, &sSurname,

GetWorksId(GPGB_EDILIB_AET.EMPLID, GPGB_EDILIB_AET.EMPL_RCD), "", "");



&bMsg = P6AdditionalInfo(&sSurname);



End-If;



/*The following code has been commented out as the checking for current row is no

longer required. A new record is inserted irrespective of the notification source

in the current row in the tax record.



If &bOk Then

&sTrans = "";

SQLExec("SELECT GPGB_TAX_CD_SRC FROM PS_GPGB_EE_TAX WHERE EMPLID = :1 AND EMPL_RCD

= :2 AND EFFDT = %DateIn(:3)", GPGB_EDILIB_AET.EMPLID, GPGB_EDILIB_AET.EMPL_RCD,

GPGB_EDILIB_AET.EFFDT, &sTrans);

If All(&sTrans) Then

&bOk = (RTrim(&sTrans) = RTrim(GPGB_EDILIB_AET.GPGB_EDI_TRANS));

&bUpdReq = &bOk;

End-If;

End-If;

*/

/* ADDITIONAL; LOGIC FOR PROCESSING */

SQLExec("SELECT COUNT(DISTINCT EMPLID) FROM PS_GPGB_EE_TAX WHERE EMPLID = :1 AND

EMPL_RCD = :2 ", GPGB_EDILIB_AET.EMPLID, GPGB_EDILIB_AET.EMPL_RCD, &iCount);

If &iCount = 0 Then



&bOk = False;

&sMsg = "P6/P9 Error : No Employment Record Available For Update";

&bMsg = SetDtlMessage2(17135, 536, "ERROR", &sMsg, &sSurname,

GetWorksId(GPGB_EDILIB_AET.EMPLID, GPGB_EDILIB_AET.EMPL_RCD), "", "");

End-If;



If &bOk Then



&Rec = CreateRecord(Record.GPGB_EE_TAX);



&Rec.EMPLID.Value = GPGB_EDILIB_AET.EMPLID;

&Rec.EMPL_RCD.Value = GPGB_EDILIB_AET.EMPL_RCD;

&sql = CreateSQL("%SelectAll(:1 A) WHERE A.EMPLID = :2 AND A.EMPL_RCD = :3 AND

A.EFFDT = (SELECT MAX(B.EFFDT) FROM PS_GPGB_EE_TAX B WHERE A.EMPLID = B.EMPLID AND A.EMPL_RCD

= B.EMPL_RCD AND B.EFFDT "S" Then

&Rec.TAXCODE_UK.Value = "S" | &Rec.TAXCODE_UK.Value;

End-If;

End-If;



/*set tax basis*/

If GPGB_EDILIB_AET.TAX_BASIS_UK = "1" Then

&Rec.TAX_BASIS_UK.Value = "1";

Else

&Rec.TAX_BASIS_UK.Value = "0";

End-If;



/*set other fields*/

&Rec.GPGB_SV_TAX_IND.Value = GPGB_EDILIB_AET.GPGB_SV_TAX_IND;

/*GPGB_TAX_CD_ALPHA, GPGB_TAX_CD_NUM get set by parsetaxcode function below*/

&Rec.GPGB_TAX_CD_ISSUE.Value = GPGB_EDILIB_AET.GPGB_TAX_CD_ISSUE;

GPGB_EDILIB_AET.GPGB_TAX_YR_END = String(GPGB_EDILIB_AET.GPGB_P45_TXYR + 1);

&Rec.GPGB_TAX_YR_END.Value = GPGB_EDILIB_AET.GPGB_TAX_YR_END;

&Rec.GPGB_P46_STATMNTA.Value = " ";

&Rec.GPGB_P46_STATMNTB.Value = " ";

&Rec.GPGB_P46_STATMNTC.Value = " ";

&Rec.GPGB_PREV_ER_PAYE.Value = " ";

&Rec.GPGB_ER_TAXNUM.Value = 0;

&Rec.GPGB_LEAVE_DT.SetDefault();

&Rec.GPGB_PREV_PERIOD.Value = 0;

&Rec.GPGB_PREV_WKMTH.Value = " ";



&Rec.GPGB_P45_TXYR.Value = GPGB_EDILIB_AET.GPGB_P45_TXYR;

&Rec.GPGB_PREV_TX_BASIS.Value = " ";

&Rec.GPGB_PREV_TAX_CD.Value = " ";

&Rec.GPGB_PREV_SVTAXIND.Value = " ";

&sSql = "SELECT MAX(GPGB_P45_TXYR) FROM PS_GPGB_EE_TAX WHERE EMPLID = :1 AND

GPGB_TAX_CD_SRC IN ('P45','P6','P6T','P6B')";



SQLExec(&sSql, GPGB_EDILIB_AET.EMPLID, &TEMP);

/*NEW CODE ADDED 1830162001

*/

&ssql45 = "SELECT GPGB_P45_PAY_TD,GPGB_P45_TAX_TD FROM PS_GPGB_EE_TAX WHERE

EMPLID = :1 AND GPGB_TAX_CD_SRC IN('P45','P6','P6T','P6B') AND GPGB_P45_TXYR =:2";

SQLExec(&ssql45, GPGB_EDILIB_AET.EMPLID, &TEMP, &t1, &t2);



If GPGB_EDILIB_AET.GPGB_P45_PAY_TD 0 Then

&Rec.GPGB_P45_PAY_TD.Value = GPGB_EDILIB_AET.GPGB_P45_PAY_TD;

Else

If GPGB_EDILIB_AET.GPGB_P45_TXYR &TEMP Then

&Rec.GPGB_P45_PAY_TD.Value = 0;

Else

/*Remark the Boolean variable is used and checked because irrespective

of the tax1 getting specified as 00 or __ the value returned is 0 and the multiple cases

will fail if we just check for none or spaces.*/

If &EdiP6P9Copy And

None(GPGB_EDILIB_AET.GPGB_P45_PAY_TD) Then

&Rec.GPGB_P45_PAY_TD.Value = 0;



Else

If None(GPGB_EDILIB_AET.GPGB_P45_PAY_TD) Then

&Rec.GPGB_P45_PAY_TD.Value = &t1;

Local boolean &ISNEXTYR = False;

Local date &PREV_TAXYR;

Local number &t1, &t2;





SQLExec("SELECT %DATEOUT(A.EFFDT),A.GPGB_TAX_YR_END,A.GPGB_P45_PAY_TD,

A.GPGB_P45_TAX_TD FROM PS_GPGB_EE_TAX A WHERE A.EMPLID=:1 AND A.EMPL_RCD =:2 AND

((A.GPGB_TAX_CD_SRC='P6') or (A.GPGB_TAX_CD_SRC='P6T') OR (A.GPGB_TAX_CD_SRC='P6B')OR (

A.GPGB_TAX_CD_SRC='P45'))and A.EFFDT=(SELECT MAX(B.EFFDT) FROM PS_GPGB_EE_TAX B WHERE

B.EMPLID=A.EMPLID AND B.EMPL_RCD= A.EMPL_RCD AND A.GPGB_TAX_CD_SRC = B.GPGB_TAX_CD_SRC AND

B.EFFDT = &CUR_DATECHK) And

(&PREV_TAXYR 0 Then

&Rec.GPGB_P45_TAX_TD.Value = GPGB_EDILIB_AET.GPGB_P45_TAX_TD;

Else

If GPGB_EDILIB_AET.GPGB_P45_TXYR &TEMP Then

&Rec.GPGB_P45_TAX_TD.Value = 0;

Else

If &EdiP6P9Copy And

None(GPGB_EDILIB_AET.GPGB_P45_PAY_TD) Then

&Rec.GPGB_P45_TAX_TD.Value = 0;

If (GPGB_EDILIB_AET.GPGB_P45_PAY_TD 0 And

&ISNEXTYR = True) Then



Else

If None(GPGB_EDILIB_AET.GPGB_P45_PAY_TD) Then

&Rec.GPGB_P45_TAX_TD.Value = &t2;

GPGB_EDILIB_AET.GPGB_P45_PAY_TD.Value = 0;

GPGB_EDILIB_AET.GPGB_P45_TAX_TD.Value = 0;

GPGB_EDILIB_AET.GPGB_TAX_YR_END.Value = "";

End-If;

End-If;

End-If;

/*NEW CODE ENDED 1830162001*/

End-If;







&Rec.GPGB_P45_PAY_TD.Value = GPGB_EDILIB_AET.GPGB_P45_PAY_TD;

&Rec.GPGB_P45_TAX_TD.Value = GPGB_EDILIB_AET.GPGB_P45_TAX_TD;



&Rec.GPGB_P45_STLOAN.Value = " ";

&Rec.GPGB_P45_CAL_RUN.Value = " ";

&Rec.GPGB_EDI_REF.Value = 0;

&Rec.LEAVE_DT.Value = Date(0);

&Rec.LASTUPDDTTM.Value = %Datetime;

&Rec.LASTUPDOPRID.Value = GPGB_EDILIB_AET.OPRID;

/* ADDED to replicate defaulting */

Local string &P45CALRUN;

Local date &LEAVDT;

Local number &ediref;



&sSql = "SELECT A.GPGB_P45_CAL_RUN,%dateout(A.LEAVE_DT),A.GPGB_EDI_REF FROM

PS_GPGB_EE_TAX A WHERE A.EMPLID = :1 AND A.EMPL_RCD = :2 and A.EFFDT = (SELECT MAX(B.EFFDT)

FROM PS_GPGB_EE_TAX B WHERE A.EMPLID = B.EMPLID AND A.EMPL_RCD = B.EMPL_RCD AND B.EFFDT 0 Then



&bOk = False;

&sMsg = "P6/P9 Error : employee %1 (%2) tax code error of: %3 - no update

possible";

&bMsg = SetDtlMessage2(17135, 352, "ERROR", &sMsg, &sSurname,

GPGB_EDILIB_AET.GPGB_EDI_WORKS_ID, &sTaxMsg, "");

&bMsg = P6AdditionalInfo(&sSurname);



End-If;



If &bOk Then



If GPGB_EDILIB_AET.GPGB_EDI_RUN_TYPE = "0" Then /*Final Run*/



/*A new row is always inserted since EFFSEQ is availabe. Therefore this

check is no longer required.



If &bUpdReq Then

&bOk = &Rec.Update();

&sMsg = "P6/P9 Status : updated employee %1 (%2) current P6/P9

details";

&bMsg = SetDtlMessage2(17135, 365, "STATUS", &sMsg, &sSurname,

GPGB_EDILIB_AET.GPGB_EDI_WORKS_ID, "", "");

Else*/



&bOk = &Rec.Insert();

If &bOk Then

&bOk = &Rec2.Insert();

End-If;



/*write message saying ee inserted*/

&sMsg = "P6/P9 Status : added employee %1 (%2) P6/P9 details";

&bMsg = SetDtlMessage2(17135, 364, "STATUS", &sMsg, &sSurname,

GPGB_EDILIB_AET.GPGB_EDI_WORKS_ID, "", "");

/*End-If;*/



End-If; /*Final Run Check*/



End-If; /*bOk - taxcode parses*/





End-If; /*sql fetch*/



Else



&sMsg = "P6/P9 Error : employee %1 (%2) has an existing row on the same date - no

update possible";

&bMsg = SetDtlMessage2(17135, 350, "ERROR", &sMsg, &sSurname,

GetWorksId(GPGB_EDILIB_AET.EMPLID, GPGB_EDILIB_AET.EMPL_RCD), "", "");



&bMsg = P6AdditionalInfo(&sSurname);



End-If; /*data conflict checks*/



Else



&bMsg = P6AdditionalInfo(&sSurname);



End-If; /*got match*/

/*Clear down discretionary ee fields - might not be read for next ee in file*/

GPGB_EDILIB_AET.GPGB_P45_PAY_TD = 0;

GPGB_EDILIB_AET.GPGB_P45_TAX_TD = 0;

GPGB_EDILIB_AET.GPGB_P45_TXYR = 0;

GPGB_EDILIB_AET.GPGB_SV_TAX_IND = " ";

GPGB_EDILIB_AET.TAX_BASIS_UK = " ";



Return &bOk;

End-Function;



[ . . . Unchanged Code not Shown . . . ]









PeopleCode (Record): GPGB_RNCTL_EDI.GPGB_UNIQUE_ID.SaveEdit

rem EDI Transaction p14 Unique Id cannot be blank for Final Run;

If (GPGB_RNCTL_EDI.GPGB_EDI_TRANS = "P14") Then

If GPGB_RNCTL_EDI.GPGB_EDI_RUN_TYPE.Value = 0 Then

If (None(GPGB_RNCTL_EDI.GPGB_UNIQUE_ID) Or

GPGB_RNCTL_EDI.GPGB_UNIQUE_ID = "") Then

Error MsgGet(17130, 253, "For P14 Final Run,the Unique ID field must not be

blank.");

End-If;

End-If;

End-If;

PeopleCode (Record): GP_ACCUMULATOR.ENTRY_TYPE_USER_K1.FieldFormula

Function ManageUserKeyDisplay;



/*If arrears accumulator and earnings that it is an arrears accumulator for has driver

or user fields defined then disable the fields*/





If %Mode "A" Then

&RET_VAL = "";

&RET_PIN_DRV = "";

SQLExec("SELECT 'X' FROM PS_GP_PIN B WHERE B.PIN_DRIVER_NUM = :1", GP_PIN.PIN_NUM,

&RET_PIN_DRV);

If All(&RET_PIN_DRV) Then

rem SQLExec("SELECT 'X' FROM PS_GP_RSLT_ACUM A where A.PIN_NUM = :1",

GP_PIN.PIN_NUM, &RET_VAL);

SQLExec("SELECT 'X' FROM PS_INSTALLATION WHERE EXISTS (SELECT 'X' FROM

PS_GP_RSLT_ACUM A where A.PIN_NUM = :1)", GP_PIN.PIN_NUM, &RET_VAL);

End-If;

/*If &RET_VAL = "" Then

SQLExec("SELECT 'X' FROM PS_GP_RSLT_ERN_DED A WHERE EXISTS (SELECT 'X' FROM

PS_GP_PIN B WHERE A.PIN_NUM = B.PIN_NUM AND B.PIN_DRIVER_NUM = :1)", GP_PIN.PIN_NUM,

&RET_VAL);

End-If;*/



If (All(&RET_PIN_DRV) And

&RET_VAL = "") Then

SQLExec("SELECT 'X' FROM PS_INSTALLATION WHERE EXISTS (SELECT 'X' FROM

PS_GP_RSLT_ERN_DED A WHERE A.PIN_NUM = (SELECT B.PIN_NUM FROM PS_GP_PIN B WHERE

B.PIN_DRIVER_NUM = :1))", GP_PIN.PIN_NUM, &RET_VAL);

SQLExec("SELECT 'X' FROM PS_INSTALLATION WHERE EXISTS (SELECT 'X' FROM

PS_GP_RSLT_ERN_DED A WHERE A.PIN_NUM IN (SELECT B.PIN_NUM FROM PS_GP_PIN B WHERE

B.PIN_DRIVER_NUM = :1))", GP_PIN.PIN_NUM, &RET_VAL);

End-If;



If &RET_VAL = "" Then

SQLExec("SELECT 'X' FROM PS_GP_PIN_CMPNT A WHERE EXISTS (SELECT 'X' FROM PS_GP_PIN

B WHERE A.PIN_NUM = B.PIN_NUM AND (B.PIN_DRIVER_NUM 0 OR B.ENTRY_TYPE_USER_F1 ' ' ))

AND A.PIN_ARR_ACM_NUM = :1", GP_PIN.PIN_NUM, &RET_VAL);

End-If;

If All(&RET_VAL) Then

GP_ACCUMULATOR.ENTRY_TYPE_USER_K1.Enabled = False;



GetField(GP_ACCUMULATOR.PIN_USER_KEY1_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).Enabled =

False;



GetField(GP_ACCUMULATOR.PIN_USER_KEY1_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).ShowRequired

FieldCue = False;

GP_ACCUMULATOR.ENTRY_TYPE_USER_K2.Enabled = False;



GetField(GP_ACCUMULATOR.PIN_USER_KEY2_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).Enabled =

False;



GetField(GP_ACCUMULATOR.PIN_USER_KEY2_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).ShowRequired

FieldCue = False;

GP_ACCUMULATOR.ENTRY_TYPE_USER_K3.Enabled = False;



GetField(GP_ACCUMULATOR.PIN_USER_KEY3_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).Enabled =

False;



GetField(GP_ACCUMULATOR.PIN_USER_KEY3_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).ShowRequired

FieldCue = False;

GP_ACCUMULATOR.ENTRY_TYPE_USER_K4.Enabled = False;



GetField(GP_ACCUMULATOR.PIN_USER_KEY4_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).Enabled =

False;



GetField(GP_ACCUMULATOR.PIN_USER_KEY4_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).ShowRequired

FieldCue = False;

GP_ACCUMULATOR.ENTRY_TYPE_USER_K5.Enabled = False;



GetField(GP_ACCUMULATOR.PIN_USER_KEY5_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).Enabled =

False;



GetField(GP_ACCUMULATOR.PIN_USER_KEY5_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).ShowRequired

FieldCue = False;

GP_ACCUMULATOR.ENTRY_TYPE_USER_K6.Enabled = False;



GetField(GP_ACCUMULATOR.PIN_USER_KEY6_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).Enabled =

False;



GetField(GP_ACCUMULATOR.PIN_USER_KEY6_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).ShowRequired

FieldCue = False;

End-If;

End-If;



If %Mode = "A" Or

None(&RET_VAL) Then

If All(GP_ACCUMULATOR.ENTRY_TYPE_USER_K1) Then



GetField(GP_ACCUMULATOR.PIN_USER_KEY1_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).Enabled =

True;



GetField(GP_ACCUMULATOR.PIN_USER_KEY1_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).ShowRequired

FieldCue = True;

UnGray(GP_ACCUMULATOR.ENTRY_TYPE_USER_K2);

Else



GetField(GP_ACCUMULATOR.PIN_USER_KEY1_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).Enabled =

False;

Gray(GP_ACCUMULATOR.ENTRY_TYPE_USER_K2);

End-If;

If All(GP_ACCUMULATOR.ENTRY_TYPE_USER_K2) Then



GetField(GP_ACCUMULATOR.PIN_USER_KEY2_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).Enabled =

True;



GetField(GP_ACCUMULATOR.PIN_USER_KEY2_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).ShowRequired

FieldCue = True;

UnGray(GP_ACCUMULATOR.ENTRY_TYPE_USER_K3);

Else



GetField(GP_ACCUMULATOR.PIN_USER_KEY2_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).Enabled =

False;

Gray(GP_ACCUMULATOR.ENTRY_TYPE_USER_K3);

End-If;

If All(GP_ACCUMULATOR.ENTRY_TYPE_USER_K3) Then



GetField(GP_ACCUMULATOR.PIN_USER_KEY3_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).Enabled =

True;



GetField(GP_ACCUMULATOR.PIN_USER_KEY3_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).ShowRequired

FieldCue = True;

UnGray(GP_ACCUMULATOR.ENTRY_TYPE_USER_K4);

Else



GetField(GP_ACCUMULATOR.PIN_USER_KEY3_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).Enabled =

False;

Gray(GP_ACCUMULATOR.ENTRY_TYPE_USER_K4);

End-If;

If All(GP_ACCUMULATOR.PIN_USER_KEY4_NUM) Then



GetField(GP_ACCUMULATOR.PIN_USER_KEY4_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).Enabled =

True;



GetField(GP_ACCUMULATOR.PIN_USER_KEY4_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).ShowRequired

FieldCue = True;

UnGray(GP_ACCUMULATOR.ENTRY_TYPE_USER_K5);

Else



GetField(GP_ACCUMULATOR.PIN_USER_KEY4_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).Enabled =

False;

Gray(GP_ACCUMULATOR.ENTRY_TYPE_USER_K5);

End-If;

If All(GP_ACCUMULATOR.PIN_USER_KEY5_NUM) Then



GetField(GP_ACCUMULATOR.PIN_USER_KEY5_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).Enabled =

True;



GetField(GP_ACCUMULATOR.PIN_USER_KEY5_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).ShowRequired

FieldCue = True;

UnGray(GP_ACCUMULATOR.ENTRY_TYPE_USER_K6);



Else



GetField(GP_ACCUMULATOR.PIN_USER_KEY5_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).Enabled =

False;

Gray(GP_ACCUMULATOR.ENTRY_TYPE_USER_K6);



End-If;

If All(GP_ACCUMULATOR.PIN_USER_KEY6_NUM) Then



GetField(GP_ACCUMULATOR.PIN_USER_KEY6_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).Enabled =

True;



GetField(GP_ACCUMULATOR.PIN_USER_KEY6_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).ShowRequired

FieldCue = True;

Else



GetField(GP_ACCUMULATOR.PIN_USER_KEY6_NUM).GetRelated(GP_PIN_NM_VW.PIN_NM).Enabled =

False;

End-If;

End-If;

End-Function;



[ . . . Unchanged Code not Shown . . . ]









PeopleCode (ApplEng): GPCH_AE_ELM.STAX_VD GBLdefault 1900-01-01.Step01.OnExecute

[ . . . Unchanged Code not Shown . . . ]





/**************Start of Main Code for Source Tax File creation

*******************************************/

SQLExec("select FILENAME from PS_GPCH_EG_FSTATUS WHERE GPCH_EG_DOMAINID = :1 and

GPCH_RC_PAY_YEAR =:2 and COMPANY=:3 and GPCH_EG_REQUEST_ID = :4 ",

GPCHELM_AET.GPCH_EG_DOMAINID, GPCHELM_AET.GPCH_RC_PAY_YEAR, GPCHELM_AET.COMPANY,

GPCHELM_AET.GPCH_EG_REQUEST_ID, &FileName_Stax);



If Not None(&FileName_Stax) Then

Exit 1;

End-If;



&numSeq = 1;

SQLExec("select GPCH_EG_PROP_LONG from PS_GPCH_EG_VAL_PRS Where GPCH_EG_PRCS_NM = 'ELM' AND

GPCH_EG_PROP_NM = 'XML_Version'", &XML_Version);



/* Check what mode the Source tax Report is Run

Modes -> Y= Yearly ,M=Monthly, Q= Quarterly */



&rs0 = CreateRowset(Record.GPCH_EG_REPORTS);

&rs0.Fill("WHERE GPCH_EG_DOMAINID = :1 and GPCH_RC_PAY_YEAR =:2 and COMPANY=:3 and

GPCH_SI_PROV_TYPE = :4 and %Datein(GPCH_AL_CPAY_ENDDT) = ( select

%Datein(R1.GPCH_AL_CPAY_ENDDT) from PS_GPCH_RC_PAYROLL R1 where R1.GPCH_EG_DOMAINID = :1

and R1.GPCH_RC_PAY_YEAR =:2 and R1.COMPANY=:3 and OPRID=%OperatorId and RUN_CNTL_ID=:5) "

| &Employeecrit, GPCHELM_AET.GPCH_EG_DOMAINID, GPCHELM_AET.GPCH_RC_PAY_YEAR,

GPCHELM_AET.COMPANY, "A", GPCHELM_AET.RUN_CNTL_ID);



If &rs0.ActiveRowCount 0 Then

&Report_type =

&rs0.GetRow(1).GetRecord(Record.GPCH_EG_REPORTS).GetField(Field.GPCH_EG_RPT_TYPE).Value

;

End-If;



Warning ("before GPCH_EG_PERSON = ");



&rs = CreateRowset(Record.GPCH_EG_PERSON);



&rs2 = CreateRowset(Record.GPCH_EG_PHEADER);



&rs3 = CreateRowset(Record.GPCH_EG_PTOTALS);



&rs2.Fill("WHERE GPCH_EG_DOMAINID = :1 and GPCH_RC_PAY_YEAR =:2 and COMPANY=:3 and

GPCH_EG_REQUEST_ID = :4 ", GPCHELM_AET.GPCH_EG_DOMAINID, GPCHELM_AET.GPCH_RC_PAY_YEAR,

GPCHELM_AET.COMPANY, GPCHELM_AET.GPCH_EG_REQUEST_ID);

&Provider_type =

&rs2.GetRow(1).GetRecord(Record.GPCH_EG_PHEADER).GetField(Field.GPCH_SI_PROV_CD).Value;



&rs3.Fill("WHERE GPCH_EG_DOMAINID = :1 and GPCH_RC_PAY_YEAR =:2 and COMPANY=:3 and

GPCH_EG_REQUEST_ID = :4 and GPCH_SI_PROV_TYPE = :5 and GPCH_SI_PROV_CD= :6 ",

GPCHELM_AET.GPCH_EG_DOMAINID, GPCHELM_AET.GPCH_RC_PAY_YEAR, GPCHELM_AET.COMPANY,

GPCHELM_AET.GPCH_EG_REQUEST_ID, "A", &Provider_type);

&Totals =

&rs3.GetRow(1).GetRecord(Record.GPCH_EG_PTOTALS).GetField(Field.GPCH_EG_CMP_XML).Value;



/* Find customer ID */

&DummyTotals = &XML_Version | "" | &Totals | "";

&DummyXml = &XML_Version | "" |

&rs2.GetRow(1).GetRecord(Record.GPCH_EG_PHEADER).GetField(Field.FILE_DATA_CHAR).Value |

"";

&CustomerId = GetCustomerNumber(&DummyXml);



/*FMB 20100708 hardcoded for test */

rem &CustomerId = "1500460";





&Employeecrit = "Order by EMPLID";



Evaluate &Report_type

When "Y"

&Begindt = GPCHELM_AET.GPCH_RC_PAY_YEAR | "-01-01";

&Enddt = GPCHELM_AET.GPCH_RC_PAY_YEAR | "-12-31";



&rs.Fill("WHERE GPCH_EG_DOMAINID = :1 and GPCH_RC_PAY_YEAR =:2 and COMPANY=:3 and

GPCH_SI_PROV_TYPE = :4 and BEGIN_DT =%Datein(:5) and END_DT=%Datein(:6) " | &Employeecrit,

GPCHELM_AET.GPCH_EG_DOMAINID, GPCHELM_AET.GPCH_RC_PAY_YEAR, GPCHELM_AET.COMPANY, "A",

&Begindt, &Enddt);

Break;

When "M"



&Enddt =

&rs0.GetRow(1).GetRecord(Record.GPCH_EG_REPORTS).GetField(Field.GPCH_AL_CPAY_ENDDT).Val

ue;

&Month = Month(&Enddt);



If Len(&Month) = 1 Then

&Month = "0" | &Month;

End-If;



&Begindt = GPCHELM_AET.GPCH_RC_PAY_YEAR | "-" | &Month | "-01";



&rs.Fill("WHERE GPCH_EG_DOMAINID = :1 and GPCH_RC_PAY_YEAR =:2 and COMPANY=:3 and

GPCH_SI_PROV_TYPE = :4 and BEGIN_DT =%Datein(:5) and END_DT=%Datein(:6) " | &Employeecrit,

GPCHELM_AET.GPCH_EG_DOMAINID, GPCHELM_AET.GPCH_RC_PAY_YEAR, GPCHELM_AET.COMPANY, "A",

&Begindt, &Enddt);

Break;



When "Q"



&QuaterType =

&rs0.GetRow(1).GetRecord(Record.GPCH_EG_REPORTS).GetField(Field.GPCH_FK_QUARTER).Value;

Evaluate &QuaterType

When "1"

&Begindt = GPCHELM_AET.GPCH_RC_PAY_YEAR | "-01-01";

&Enddt = GPCHELM_AET.GPCH_RC_PAY_YEAR | "-03-31";

&quarter = "01";

Break;



When "2"

&Begindt = GPCHELM_AET.GPCH_RC_PAY_YEAR | "-04-01";

&Enddt = GPCHELM_AET.GPCH_RC_PAY_YEAR | "-06-30";

&quarter = "02";

Break;



When "3"

&Begindt = GPCHELM_AET.GPCH_RC_PAY_YEAR | "-07-01";

&Enddt = GPCHELM_AET.GPCH_RC_PAY_YEAR | "-09-30";

&quarter = "03";

Break;



When "4"

&Begindt = GPCHELM_AET.GPCH_RC_PAY_YEAR | "-10-01";

&Enddt = GPCHELM_AET.GPCH_RC_PAY_YEAR | "-12-31";

&quarter = "04";

Break;





End-Evaluate;

&rs.Fill("WHERE GPCH_EG_DOMAINID = :1 and GPCH_RC_PAY_YEAR =:2 and COMPANY=:3 and

GPCH_SI_PROV_TYPE = :4 and BEGIN_DT =%Datein(:5) and END_DT=%Datein(:6) " | &Employeecrit,

GPCHELM_AET.GPCH_EG_DOMAINID, GPCHELM_AET.GPCH_RC_PAY_YEAR, GPCHELM_AET.COMPANY, "A",

&Begindt, &Enddt);



Break;

End-Evaluate;



If &rs.ActiveRowCount = 0 Then

/*LogIt("No Employees ");*/

Else

Warning ("before DO While = ");

&LRTotals = 0.00;

For &i = 1 To &rs.ActiveRowCount

&Emplid =

&rs.GetRow(&i).GetRecord(Record.GPCH_EG_PERSON).GetField(Field.EMPLID).Value;

&CreatePerson_FLAG = "N"; /*This Flag decides if the Person tag needs to be created

or not */

/*This For-Loop sets the &CreatePerson_FLAG */

&rs1 = CreateRowset(Record.GPCH_EG_PERSON);

&NumOfRows_1 = &rs1.Fill("WHERE GPCH_EG_DOMAINID = :1 and GPCH_RC_PAY_YEAR =:2 and

COMPANY=:3 and EMPLID= :4 and GPCH_SI_PROV_TYPE = :5 and GPCH_SI_PROV_CD=:6 ",

GPCHELM_AET.GPCH_EG_DOMAINID, GPCHELM_AET.GPCH_RC_PAY_YEAR, GPCHELM_AET.COMPANY,

&Emplid, "A", &Provider_type);

If &NumOfRows_1 0 Then

&Pers_XML =

&rs.GetRow(&i).GetRecord(Record.GPCH_EG_PERSON).GetField(Field.GPCH_EG_PRSN_XML).Value;

&decompteSequenced = "";

&Pers_XML = Substitute(&Pers_XML, "", &decompteSequenced);

&Pers_XML = Substitute(&Pers_XML, "GW5_PAS", "PAS");



&len = Len(&Pers_XML);

&Pos1 = Find("", &Pers_XML);

&Pos3 = Find("", &Pers_XML);

&Pos4 = Find("", &Pers_XML);

&Pos5 = Find("", &Pers_XML);

&Pos6 = Find("", &Pers_XML);

&Pos7 = Find("", &Pers_XML);

&Pos8 = Find("", &Pers_XML);

&Pos9 = Find("", &Pers_XML);

&Pos10 = Find("", &Pers_XML);

&Pos11 = Find("", &Pers_XML);

&Pos12 = Find("", &Pers_XML);

If &Pos1 > 0 Then

&identite_XML = Substring(&Pers_XML, &Pos1, &Pos2 - &Pos1 + 11);

End-If;



If &Pos3 > 0 Then

&LRPers_XML = Substring(&Pers_XML, &Pos3 + 4, &Pos4 - (&Pos3 + 4));

If &Pos5 > 0 Or

&Pos7 > 0 Or

&Pos9 > 0 Then

&LRPers_XML = &LRPers_XML | "";

rem &LRPers_XML = &LRPers_XML | "";



End-If;

&LRAllPers_XML = &LRAllPers_XML | Char(10) | Char(13) | &LRPers_XML;

&Pos20 = Find("", &LRPers_XML);

&Pos21 = Find("", &LRPers_XML);

&LRretenue = Substring(&LRPers_XML, &Pos20 + 15, &Pos21 - (&Pos20 + 15));





&LRTotals = &LRTotals + &LRretenue;

End-If;



If &Pos5 > 0 Then

&LC1Pers_XML = Substring(&Pers_XML, &Pos5 + 5, &Pos6 - (&Pos5 + 5));

&LC1Pers_XML = &LC1Pers_XML | "";

&LC1AllPers_XML = &LC1AllPers_XML | Char(10) | Char(13) | &identite_XML |

&LC1Pers_XML;

&Pos20 = Find("", &LC1Pers_XML);

&Pos21 = Find("", &LC1Pers_XML);

&LC1retenue = Substring(&LC1Pers_XML, &Pos20 + 15, &Pos21 - (&Pos20 + 15));

&LC1Totals = &LC1Totals + &LC1retenue;



End-If;



If &Pos7 > 0 Then

&LC2Pers_XML = Substring(&Pers_XML, &Pos7 + 5, &Pos8 - (&Pos7 + 5));

&LC2Pers_XML = &LC2Pers_XML | "";

&LC2AllPers_XML = &LC2AllPers_XML | Char(10) | Char(13) | &identite_XML |

&LC2Pers_XML;

&Pos20 = Find("", &LC2Pers_XML);

&Pos21 = Find("", &LC2Pers_XML);

&LC2retenue = Substring(&LC2Pers_XML, &Pos20 + 15, &Pos21 - (&Pos20 + 15));

&LC2Totals = &LC2Totals + &LC2retenue;

End-If;



If &Pos9 > 0 Then

&LC3Pers_XML = Substring(&Pers_XML, &Pos9 + 5, &Pos10 - (&Pos9 + 5));

&LC3Pers_XML = &LC3Pers_XML | "";

&LC3AllPers_XML = &LC3AllPers_XML | Char(10) | Char(13) | &identite_XML |

&LC3Pers_XML;

&Pos20 = Find("", &LC3Pers_XML);

&Pos21 = Find("", &LC3Pers_XML);

&LC3retenue = Substring(&LC3Pers_XML, &Pos20 + 15, &Pos21 - (&Pos20 + 15));

&LC3Totals = &LC3Totals + &LC3retenue;



End-If;



&LRPers_XML = " ";

&LC1Pers_XML = " ";

&LC2Pers_XML = " ";

&Pos1 = 0;

&Pos2 = 0;

&Pos3 = 0;

&Pos4 = 0;

&Pos5 = 0;

&Pos6 = 0;

&Pos7 = 0;

&Pos8 = 0;

&Pos9 = 0;

&Pos10 = 0;

Warning ("inside DO While &Pers_XML = " | &Pers_XML);

End-If;

End-For;



Warning ("after DO While = ");



/* build XML by strings */



/* &LCXML = &XML_STRG;

/************** write LR */



&XML_STRG = &XML_Version | "";



/* More Company level Tags*/



/* &len = Len(&Totals);

&Pos1 = Find("", &Totals);

&Pos2 = Find("", &Totals);



If &Pos1 > 0 Then

&LRTotals = Substring(&Totals, 1, &Pos1 - 5);

&LCTotals = Substring(&Totals, &Pos1 + 10, &Pos2 - &Pos1 - 10);

Else

&LRTotals = &Totals;

&LCTotals = "";

End-If; */



Warning ("after &LRTotals = " | &LRTotals);

If &LRTotals = 0 Then

&LRTotals = "0.00";

&Commission = "0.00";

Else

&Commission = 0.03 * &LRTotals;

/* This is the swiss rounding to 5 Rappen, means 2nd decimal is always 0 or 5 */

&Commission = Round(&Commission, 2);

&Commission = &Commission * 20;

&Commission = Round(&Commission, 0);

&Commission = &Commission / 20;

&Pos1 = Find(".", &Commission);

/* Not sure, whether there is a better way to the format 9999999.99 ? */

If &Pos1 > 0 Then

If Substring(&Commission, &Pos1 + 2, 1) = " " Then

&Commission = Substring(&Commission, 1, &Pos1 + 1) | "0";

Else

&Commission = Substring(&Commission, 1, &Pos1 + 2);

End-If;

Else

&Commission = &Commission | ".00";

End-If;

End-If;

&Commission_STRG = "" | &Commission | "";



Warning ("after &LRTotals = ");



&LRTotals = "" | &LRTotals | "" | &Commission_STRG;

&XML_STRG = &XML_STRG | "LR" | &CustomerId |

"" | &LRTotals;



&XML_STRG = &XML_STRG | &LRAllPers_XML | "";



/**********************************Write to the File *************************/

/*&ElmFile = &SourctaxXML.GenFormattedXmlString();



/*****************File Creation ****************/

&File_Output_Dir = GPCHELM_AET.FILE_OUTPUT_DIR;

/* &FileName = "LR_" | GPCHELM_AET.GPCH_EG_REQUEST_ID;

&FileName = Substitute(&FileName, "-", "_");

&FilePath = &File_Output_Dir | "/" | &FileName | ".xml"; */



/*****************************************************************************/

/* Build filename */



&FileName = "LR_" | &CustomerId | "_" | GPCHELM_AET.GPCH_RC_PAY_YEAR | "_" |

Substring(&Begindt, 9, 2) | Substring(&Begindt, 6, 2) | "_" | Substring(&Enddt, 9, 2) |

Substring(&Enddt, 6, 2);



&FileName = &quarter | "_LR_" | &CustomerId | "_" | GPCHELM_AET.GPCH_RC_PAY_YEAR | "_"

| Substring(&Begindt, 9, 2) | Substring(&Begindt, 6, 2) | "_" | Substring(&Enddt, 9, 2) |

Substring(&Enddt, 6, 2);

&FileName = Substitute(&FileName, "-", "");

&FilePath = &File_Output_Dir | "/" | &FileName | ".xml";



CreateFile(&XML_STRG, &FilePath);

GPCHELM_AET.FILENAME = &FileName | ".xml";

&CurrentDateTimeIn = %Datetime;

rem SQLExec("UPDATE PS_GPCH_EG_FSTATUS SET FILENAME = :5, TIME_STAMP = :6 WHERE COMPANY=

:1 AND GPCH_RC_PAY_YEAR = :2 AND GPCH_EG_DOMAINID = :3 AND GPCH_EG_REQUEST_ID = :4 ",

GPCHELM_AET.COMPANY, GPCHELM_AET.GPCH_RC_PAY_YEAR, GPCHELM_AET.GPCH_EG_DOMAINID,

GPCHELM_AET.GPCH_EG_REQUEST_ID, GPCHELM_AET.FILENAME, &CurrentDateTimeIn);



/************** write LC1 */



If &LC1AllPers_XML " " And

&LC1AllPers_XML "" Then



/* 20100720 &len = Len(&Totals);

&Pos1 = Find("", &Totals);

&Pos2 = Find("", &Totals);



If &Pos1 > 0 Then

&LRTotals = Substring(&Totals, 1, &Pos1 - 5);

&LCTotals = Substring(&Totals, &Pos1 + 11, &Pos2 - &Pos1 - 11);

Else

&LRTotals = &Totals;

&LCTotals = "";

End-If; */



&Pos1 = Find("", &Totals);



&Begindt = GPCHELM_AET.GPCH_RC_PAY_YEAR | "-01-01";

&Enddt = GPCHELM_AET.GPCH_RC_PAY_YEAR | "-03-31";



/* &XML_STRG = &LCXML;

/* &Totals =

"0.000.00"; */



&XML_STRG = &XML_Version | "";

/* More Company level Tags*/



&LC1Totals = "" | &LC1Totals |

"0.00";

&XML_STRG = &XML_STRG | "LC" | &CustomerId |

"" | &LC1Totals;



&XML_STRG = &XML_STRG | &LC1AllPers_XML | "";



/**********************************Write to the File *************************/

/*&ElmFile = &SourctaxXML.GenFormattedXmlString();



/*****************************************************************************/

/*****************File Creation ****************/

&File_Output_Dir = GPCHELM_AET.FILE_OUTPUT_DIR;



/* &FileName = "LC_" | GPCHELM_AET.GPCH_EG_REQUEST_ID;

&FileName = Substitute(&FileName, "-", "_"); */



&Begindt = Substring(&Begindt, 9, 2) | Substring(&Begindt, 6, 2);

&Enddt = Substring(&Enddt, 9, 2) | Substring(&Enddt, 6, 2);



&FileName = "LC_" | &CustomerId | "_" | GPCHELM_AET.GPCH_RC_PAY_YEAR | "_" | &Begindt

| "_" | &Enddt;

&FileName = &quarter | "_LC_" | &CustomerId | "_" | GPCHELM_AET.GPCH_RC_PAY_YEAR |

"_" | &Begindt | "_" | &Enddt;

&FileName = Substitute(&FileName, "-", "");

&FilePath = &File_Output_Dir | "/" | &FileName | ".xml";



CreateFile(&XML_STRG, &FilePath);

GPCHELM_AET.FILENAME = &FileName | ".xml";



rem SQLExec("UPDATE PS_GPCH_EG_FSTATUS SET FILENAME = :5, TIME_STAMP = :6 WHERE

COMPANY= :1 AND GPCH_RC_PAY_YEAR = :2 AND GPCH_EG_DOMAINID = :3 AND GPCH_EG_REQUEST_ID =

:4 ", GPCHELM_AET.COMPANY, GPCHELM_AET.GPCH_RC_PAY_YEAR, GPCHELM_AET.GPCH_EG_DOMAINID,

GPCHELM_AET.GPCH_EG_REQUEST_ID, GPCHELM_AET.FILENAME, &CurrentDateTimeIn);

Else /* to delete rows from process files and Review files tab of dashboard if file is

blank */

&ReqId = &quarter | "_LC_" | &CustomerId | "_" | GPCHELM_AET.GPCH_RC_PAY_YEAR | "_"

| "0101" | "_" | "3103";

SQLExec("Delete From PS_GPCH_EG_FSTATUS where COMPANY = :1 AND GPCH_RC_PAY_YEAR = :2

AND GPCH_EG_DOMAINID = :3 AND GPCH_EG_REQUEST_ID = :4", GPCHELM_AET.COMPANY,

GPCHELM_AET.GPCH_RC_PAY_YEAR, GPCHELM_AET.GPCH_EG_DOMAINID, &ReqId);

SQLExec("Delete From PS_GPCH_EG_PSTATUS where COMPANY = :1 AND GPCH_RC_PAY_YEAR = :2

AND GPCH_EG_DOMAINID = :3 AND GPCH_EG_REQUEST_ID = :4", GPCHELM_AET.COMPANY,

GPCHELM_AET.GPCH_RC_PAY_YEAR, GPCHELM_AET.GPCH_EG_DOMAINID, &ReqId);

End-If;



/************** write LC2 */



If &LC2AllPers_XML " " And

&LC2AllPers_XML "" Then



/* &len = Len(&Totals);

&Pos1 = Find("", &Totals);

&Pos2 = Find("", &Totals);



If &Pos1 > 0 Then

&LRTotals = Substring(&Totals, 1, &Pos1 - 5);

&LCTotals = Substring(&Totals, &Pos1 + 11, &Pos2 - &Pos1 - 11);

Else

&LRTotals = &Totals;

&LCTotals = "";

End-If; */



&Pos1 = Find("", &Totals);



&Begindt = GPCHELM_AET.GPCH_RC_PAY_YEAR | "-04-01";

&Enddt = GPCHELM_AET.GPCH_RC_PAY_YEAR | "-06-30";



/* &XML_STRG = &LCXML;

/* &Totals =

"0.000.00"; */



&XML_STRG = &XML_Version | "";

/* More Company level Tags*/

&LC2Totals = "" | &LC2Totals |

"0.00";

&XML_STRG = &XML_STRG | "LC" | &CustomerId |

"" | &LC2Totals;



&XML_STRG = &XML_STRG | &LC2AllPers_XML | "";



/**********************************Write to the File *************************/

/*&ElmFile = &SourctaxXML.GenFormattedXmlString();



/*****************************************************************************/





/*****************File Creation ****************/

&File_Output_Dir = GPCHELM_AET.FILE_OUTPUT_DIR;



/* &FileName = "LC_" | GPCHELM_AET.GPCH_EG_REQUEST_ID;

&FileName = Substitute(&FileName, "-", "_"); */



&Begindt = Substring(&Begindt, 9, 2) | Substring(&Begindt, 6, 2);

&Enddt = Substring(&Enddt, 9, 2) | Substring(&Enddt, 6, 2);



&FileName = "LC_" | &CustomerId | "_" | GPCHELM_AET.GPCH_RC_PAY_YEAR | "_" | &Begindt

| "_" | &Enddt;

&FileName = &quarter | "_LC_" | &CustomerId | "_" | GPCHELM_AET.GPCH_RC_PAY_YEAR |

"_" | &Begindt | "_" | &Enddt;

&FileName = Substitute(&FileName, "-", "");

&FilePath = &File_Output_Dir | "/" | &FileName | ".xml";



CreateFile(&XML_STRG, &FilePath);

GPCHELM_AET.FILENAME = &FileName | ".xml";



rem SQLExec("UPDATE PS_GPCH_EG_FSTATUS SET FILENAME = :5, TIME_STAMP = :6 WHERE

COMPANY= :1 AND GPCH_RC_PAY_YEAR = :2 AND GPCH_EG_DOMAINID = :3 AND GPCH_EG_REQUEST_ID =

:4 ", GPCHELM_AET.COMPANY, GPCHELM_AET.GPCH_RC_PAY_YEAR, GPCHELM_AET.GPCH_EG_DOMAINID,

GPCHELM_AET.GPCH_EG_REQUEST_ID, GPCHELM_AET.FILENAME, &CurrentDateTimeIn);

Else /* to delete rows from process files tab of dashboard if file is blank */

&ReqId = &quarter | "_LC_" | &CustomerId | "_" | GPCHELM_AET.GPCH_RC_PAY_YEAR | "_"

| "0104" | "_" | "3006";

SQLExec("Delete From PS_GPCH_EG_FSTATUS where COMPANY = :1 AND GPCH_RC_PAY_YEAR = :2

AND GPCH_EG_DOMAINID = :3 AND GPCH_EG_REQUEST_ID = :4", GPCHELM_AET.COMPANY,

GPCHELM_AET.GPCH_RC_PAY_YEAR, GPCHELM_AET.GPCH_EG_DOMAINID, &ReqId);

SQLExec("Delete From PS_GPCH_EG_PSTATUS where COMPANY = :1 AND GPCH_RC_PAY_YEAR = :2

AND GPCH_EG_DOMAINID = :3 AND GPCH_EG_REQUEST_ID = :4", GPCHELM_AET.COMPANY,

GPCHELM_AET.GPCH_RC_PAY_YEAR, GPCHELM_AET.GPCH_EG_DOMAINID, &ReqId);

End-If;



/************** write LC3 */



If &LC3AllPers_XML " " And

&LC3AllPers_XML "" Then



/* &len = Len(&Totals);

&Pos1 = Find("", &Totals);

&Pos2 = Find("", &Totals);



If &Pos1 > 0 Then

&LRTotals = Substring(&Totals, 1, &Pos1 - 5);

&LCTotals = Substring(&Totals, &Pos1 + 11, &Pos2 - &Pos1 - 11);

Else

&LRTotals = &Totals;

&LCTotals = "";

End-If; */



&Pos1 = Find("", &Totals);



&Begindt = GPCHELM_AET.GPCH_RC_PAY_YEAR | "-07-01";

&Enddt = GPCHELM_AET.GPCH_RC_PAY_YEAR | "-09-30";



/* &XML_STRG = &LCXML;

/* &Totals =

"0.000.00"; */



&XML_STRG = &XML_Version | "";

/* More Company level Tags*/



&LC3Totals = "" | &LC3Totals |

"0.00";

&XML_STRG = &XML_STRG | "LC" | &CustomerId |

"" | &LC3Totals;



&XML_STRG = &XML_STRG | &LC3AllPers_XML | "";



/**********************************Write to the File *************************/

/*&ElmFile = &SourctaxXML.GenFormattedXmlString();



/*****************************************************************************/





/*****************File Creation ****************/

&File_Output_Dir = GPCHELM_AET.FILE_OUTPUT_DIR;



/* &FileName = "LC_" | GPCHELM_AET.GPCH_EG_REQUEST_ID;

&FileName = Substitute(&FileName, "-", "_"); */



&Begindt = Substring(&Begindt, 9, 2) | Substring(&Begindt, 6, 2);

&Enddt = Substring(&Enddt, 9, 2) | Substring(&Enddt, 6, 2);



&FileName = "LC_" | &CustomerId | "_" | GPCHELM_AET.GPCH_RC_PAY_YEAR | "_" | &Begindt

| "_" | &Enddt;

&FileName = &quarter | "_LC_" | &CustomerId | "_" | GPCHELM_AET.GPCH_RC_PAY_YEAR |

"_" | &Begindt | "_" | &Enddt;

&FileName = Substitute(&FileName, "-", "");

&FilePath = &File_Output_Dir | "/" | &FileName | ".xml";



CreateFile(&XML_STRG, &FilePath);

GPCHELM_AET.FILENAME = &FileName | ".xml";



rem SQLExec("UPDATE PS_GPCH_EG_FSTATUS SET FILENAME = :5, TIME_STAMP = :6 WHERE

COMPANY= :1 AND GPCH_RC_PAY_YEAR = :2 AND GPCH_EG_DOMAINID = :3 AND GPCH_EG_REQUEST_ID =

:4 ", GPCHELM_AET.COMPANY, GPCHELM_AET.GPCH_RC_PAY_YEAR, GPCHELM_AET.GPCH_EG_DOMAINID,

GPCHELM_AET.GPCH_EG_REQUEST_ID, GPCHELM_AET.FILENAME, &CurrentDateTimeIn);

Else /* to delete rows from process files tab of dashboard if file is blank */

&ReqId = &quarter | "_LC_" | &CustomerId | "_" | GPCHELM_AET.GPCH_RC_PAY_YEAR | "_"

| "0107" | "_" | "3009";

SQLExec("Delete From PS_GPCH_EG_FSTATUS where COMPANY = :1 AND GPCH_RC_PAY_YEAR = :2

AND GPCH_EG_DOMAINID = :3 AND GPCH_EG_REQUEST_ID = :4", GPCHELM_AET.COMPANY,

GPCHELM_AET.GPCH_RC_PAY_YEAR, GPCHELM_AET.GPCH_EG_DOMAINID, &ReqId);

SQLExec("Delete From PS_GPCH_EG_PSTATUS where COMPANY = :1 AND GPCH_RC_PAY_YEAR = :2

AND GPCH_EG_DOMAINID = :3 AND GPCH_EG_REQUEST_ID = :4", GPCHELM_AET.COMPANY,

GPCHELM_AET.GPCH_RC_PAY_YEAR, GPCHELM_AET.GPCH_EG_DOMAINID, &ReqId);

End-If;



End-If;









PeopleCode (ApplEng): GPFR_AF_AE.DBPARM GBLDB2 1900-01-01.Step01.OnExecute

[ . . . Unchanged Code not Shown . . . ]









PeopleCode (ApplEng): GPFR_AF_AE.DBPARM GBLDB2UNIX 1900-01-01.Step01.OnExecute

[ . . . Unchanged Code not Shown . . . ]









PeopleCode (Page): GPJP_LA_PYE_RPT1.Activate

Local string &BirthDateChar, &EnrDateChar, &XlatBase, &XlatLang;

Local number &std_hours, &i;

Local string &BDate, &Tax_Estab, &Renewal_Descr, &Non_Renewal_Descr, &CodeIn, &DescIn;

Local string &std_hrs_string;

Local Rowset &Xlat1;

Local Field &FLD1;



Declare Function Convert_to_Imperial_date PeopleCode FUNCLIB_GPJP.GPJP_FUNCTIONS

FieldFormula;



DERIVED_GPJP.GPJP_NUM5 = 11101;

DERIVED_GPJP.GPJP_NUM5 = 12101;



If GPJP_LA_PYE_RPT.GPJP_LA_ENROLL_RSN = "1" Or

GPJP_LA_PYE_RPT.GPJP_LA_ENROLL_RSN = "2" Then

DERIVED_GPJP.GPJP_CHAR1_2 = "1";

Else

DERIVED_GPJP.GPJP_CHAR1_2 = "2";

End-If;

If PERSONAL_DT_FST.SEX = "F" Then

DERIVED_GPJP.GPJP_CHAR1_1 = "2";

Else

DERIVED_GPJP.GPJP_CHAR1_1 = "1";

End-If;





If Find("(", PERSONAL_DT_FST.NAME) 0 Then

PERSONAL_DT_FST.NAME = Substring(PERSONAL_DT_FST.NAME, 1, Find("(",

PERSONAL_DT_FST.NAME) - 1);

End-If;



SQLExec("SELECT %dateout(BIRTHDATE) FROM PS_PERSON WHERE EMPLID = :1",

GPJP_LA_PYE_RPT.EMPLID, &BDate);



&BirthDateChar = Convert_to_Imperial_date(Date(&BDate), 2);

DERIVED_GPJP.GPJP_DT_YYYYMMDD1 = Substring(&BirthDateChar, 1, 1) | "-" |

Substring(&BirthDateChar, 2, 6);



SQLExec("Select GPJP_TAX_ESTAB ,GPJP_EI_NUM from PS_GPJP_LA_PYE_DTA A WHERE A.EMPLID = :1

AND EMPL_RCD = :2 AND A.EFFDT = (SELECT MAX(EFFDT) FROM PS_GPJP_LA_PYE_DTA B WHERE A.EMPLID

= B.EMPLID AND A.EMPL_RCD = B.EMPL_RCD AND B.EFFDT "JPN" Then

SQLExec("SELECT XLATLONGNAME FROM PSXLATITEMLANG A where FIELDNAME = 'GPJP_LA_JOB_TYP'

AND LANGUAGE_CD = 'JPN' AND FIELDVALUE = :1 AND A.EFFDT = (SELECT MAX(EFFDT) FROM

PSXLATITEMLANG WHERE FIELDNAME = 'GPJP_LA_JOB_TYP' AND LANGUAGE_CD = 'JPN' AND FIELDVALUE

= :1 AND EFFDT 0 Then

DERIVED_GPJP.GPJP_CHAR2_1 = Substring(&std_hrs_string, 1, Find(".", &std_hrs_string) -

1);

DERIVED_GPJP.GPJP_CHAR2_2 = Substring(&std_hrs_string, Find(".", &std_hrs_string) + 1,

Len(&std_hrs_string));

Else

DERIVED_GPJP.GPJP_CHAR2_1 = &std_hrs_string;

DERIVED_GPJP.GPJP_CHAR2_2 = "00";

End-If;









PeopleCode (Component): GPCH_RC_EGOVT(GBL).SavePostChange

Declare Function Gen_Header_XML PeopleCode GPCH_EG_STAT_DW.FUNCLIB FieldFormula;

Declare Function Get_File_status PeopleCode GPCH_EG_STAT_DW.FUNCLIB FieldFormula;

Declare Function get_seq_no PeopleCode GPCH_EG_STAT_DW.FUNCLIB FieldFormula;

Declare Function Get_status PeopleCode GPCH_EG_STAT_DW.FUNCLIB FieldFormula;

Declare Function GetProviderSubselect PeopleCode GPCH_EG_STAT_DW.FUNCLIB FieldFormula;

Declare Function GetCalDates PeopleCode GPCH_EG_STAT_DW.FUNCLIB FieldFormula;



Local array of string &request_id;

Global string &ResendStatus;



&request_id = CreateArray("String");



&ResendStatus = "N";

&prov_type_old = "";

"e = "'";

&prov_type_old_fstatus = " ";

&prov_type_old_pstatus = " ";

Local boolean &Run_option = False;

&fstatus_rec = CreateRecord(Record.GPCH_EG_FSTATUS);

&pstatus_rec = CreateRecord(Record.GPCH_EG_PSTATUS);

&pstatus_rec1 = CreateRecord(Record.GPCH_EG_PSTATUS);

&run_status_rec = CreateRecord(Record.GPCH_EG_REPORTS);

&pheader = CreateRecord(Record.GPCH_EG_PHEADER);

&fheader = CreateRecord(Record.GPCH_EG_FHEADER);

&Ptotals_rec = CreateRecord(Record.GPCH_EG_PTOTALS);

Local number &year = Value(GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR);

&SS = CreateRowset(Record.GPCH_EG_FSTA_VW);

&acc_ins = CreateRowset(Record.GPCH_SI_ACC_INS);

&run_status = CreateRowset(Record.GPCH_EG_RSTATUS);

&pstatus_vw_rec = CreateRowset(Record.GPCH_EG_PSTA_VW);

&pstatus_rec1 = CreateRowset(Record.GPCH_EG_PSTATUS);

&ParamSetup = GetLevel0().GetRow(1).GetRowset(Scroll.GPCH_EG_ST_HDR);

&RSetup = GetLevel0().GetRow(1).GetRowset(Scroll.GPCH_EG_RSTATUS);

&pstatus = GetLevel0().GetRow(1).GetRowset(Scroll.GPCH_EG_PSTATUS);

&rstatus_rec = CreateRecord(Record.GPCH_EG_RSTATUS);

&Year_date = Date3(&year, 12, 31);



&PoviderSelect = GetProviderSubselect();



If &PoviderSelect "" Then

&PoviderSelect = "AND (" | &PoviderSelect | ")";

End-If;





&ProviderCode_clause = GetSQL(SQL.GPCH_EG_PROV).Value | &PoviderSelect;



&SS.Fill(&ProviderCode_clause | "ORDER BY FILL.GPCH_EG_F_GROUB", GPCH_RC_PAYROLL.COMPANY,

GPCH_RC_PAYROLL.GPCH_EG_DOMAINID, &Year_date);

&where_clause = "WHERE COMPANY = " | "e | GPCH_RC_PAYROLL.COMPANY | "e | "AND

GPCH_EG_DOMAINID=" | GPCH_RC_PAYROLL.GPCH_EG_DOMAINID | " AND GPCH_RC_PAY_YEAR=" |

GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR;

&run_status_where_clause = "WHERE COMPANY = " | "e | GPCH_RC_PAYROLL.COMPANY | "e

| "AND GPCH_EG_DOMAINID=" | GPCH_RC_PAYROLL.GPCH_EG_DOMAINID | " AND GPCH_RC_PAY_YEAR=" |

GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR | " AND GPCH_SI_PROV_TYPE=(:1)";

&acc_ins_where_clause = "where COMPANY=(:1) AND GPCH_SI_PROV_TYPE=(:2) AND

GPCH_TX_UV_PROV_CD=(:3) AND EFFDT = (SELECT MAX(EFFDT) FROM PS_GPCH_SI_ACC_INS WHERE

COMPANY=(:1) AND GPCH_SI_PROV_TYPE=(:2) AND GPCH_TX_UV_PROV_CD=(:3) AND EFFDT 0 Then

&Run_option = True;

End-If;;



/* check for Cancel option is selected */

&prov = &RSetup.GetRow(&m).GPCH_EG_RSTATUS.GPCH_SI_PROV_TYPE.Value;

If &RSetup.GetRow(&m).GPCH_EG_STAT_DW.GPCH_CANCEL_OPTION.Value = "Y" And

&RSetup.GetRow(&m).GPCH_EG_RSTATUS.GPCH_SI_PROV_TYPE.Value 0 Then

&Cancel_option = True;

End-If;



/* This for loop will check the PSTATUS record is already have the same row.if it's

same row then Rerun_option is false */

If &RSetup.GetRow(&m).GPCH_EG_RSTATUS.GPCH_SI_PROV_TYPE.Value 0 And

&RSetup.GetRow(&m).GPCH_EG_RSTATUS.GPCH_SI_PROV_TYPE.Value "B" Then



For &l = 1 To &pstatus.Rowcount



If ((&pstatus.getrow(&l).IsDeleted) And

Not None(&pstatus.GetRow(&l).GPCH_EG_PSTATUS.COMPANY.Value))

Then

If (&Newrec) Then

&run_status_rec.delete(); /* Deletes the extra row inserted when a

delete happens for Monthly reports*/

End-If;

&pheader.GPCH_RC_PAY_YEAR.Value = GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR;

&pheader.GPCH_EG_DOMAINID.Value =

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_EG_DOMAINID.Value;

&pheader.COMPANY.Value =

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.COMPANY.Value;

&pheader.GPCH_EG_REQUEST_ID.Value =

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_EG_REQUEST_ID.Value;

&pheader.GPCH_SI_PROV_TYPE.Value =

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_SI_PROV_TYPE.Value;

&pheader.GPCH_SI_PROV_CD.Value =

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_SI_PROV_CD.Value;

&pheader.delete();





&Ptotals_rec.GPCH_RC_PAY_YEAR.Value =

GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR;

&Ptotals_rec.GPCH_EG_DOMAINID.Value =

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_EG_DOMAINID.Value;

&Ptotals_rec.COMPANY.Value =

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.COMPANY.Value;

&Ptotals_rec.GPCH_EG_REQUEST_ID.Value =

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_EG_REQUEST_ID.Value;

&Ptotals_rec.GPCH_SI_PROV_TYPE.Value =

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_SI_PROV_TYPE.Value;

&Ptotals_rec.GPCH_SI_PROV_CD.Value =

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_SI_PROV_CD.Value;

&Ptotals_rec.delete();





&fheader.GPCH_RC_PAY_YEAR.Value = GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR;

&fheader.GPCH_EG_DOMAINID.Value =

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_EG_DOMAINID.Value;

&fheader.COMPANY.Value =

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.COMPANY.Value;

&fheader.GPCH_EG_REQUEST_ID.Value =

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_EG_REQUEST_ID.Value;

&fheader.delete();



&req = &pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_EG_REQUEST_ID.Value;

&Caldates =

GetCalDates(&pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_EG_REQUEST_ID.Value);

rem SQLExec("delete from PS_GPCH_EG_REPORTS where OPRID =%OperatorId

and RUN_CNTL_ID=:1 and GPCH_EG_DOMAINID =:2 and GPCH_RC_PAY_YEAR=:3 and COMPANY=:4 and

GPCH_SI_PROV_TYPE=5 and GPCH_EG_RPT_TYPE=:6 and GPCH_AL_CPAY_ENDDT=%Datein(:7)",

GPCH_RC_PAYROLL.RUN_CNTL_ID, GPCH_EG_FSTATUS.GPCH_EG_DOMAINID,

GPCH_EG_FSTATUS.GPCH_RC_PAY_YEAR, GPCH_EG_FSTATUS.COMPANY,

GPCH_EG_PRO_DW.GPCH_SI_PROV_TYPE, &reportType, &Date);







&run_status_rec.OPRID.VALUE = %OperatorId;

&run_status_rec.RUN_CNTL_ID.VALUE = GPCH_RC_PAYROLL.RUN_CNTL_ID.Value;

&run_status_rec.GPCH_EG_DOMAINID.VALUE =

GPCH_RC_PAYROLL.GPCH_EG_DOMAINID.Value;

&run_status_rec.COMPANY.VALUE = GPCH_RC_PAYROLL.COMPANY.Value;

&run_status_rec.GPCH_RC_PAY_YEAR.VALUE =

GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR.Value;

&run_status_rec.GPCH_SI_PROV_TYPE.VALUE =

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_SI_PROV_TYPE.Value;

&run_status_rec.GPCH_AL_CPAY_ENDDT.VALUE = &Caldates [2];

&run_status_rec.delete();



rem SQLExec("delete from PS_GPCH_EG_PERSON where GPCH_EG_DOMAINID=:1

and GPCH_RC_PAY_YEAR=:2 and COMPANY=:3 and GPCH_SI_PROV_TYPE=:4 and GPCH_SI_PROV_CD=:5 and

BEGIN_DT = %Datein(:6) and END_DT= %Datein(:7)", GPCH_EG_FSTATUS.GPCH_EG_DOMAINID,

GPCH_EG_FSTATUS.GPCH_RC_PAY_YEAR, GPCH_EG_FSTATUS.COMPANY,

GPCH_EG_PRO_DW.GPCH_SI_PROV_TYPE, GPCH_EG_PRO_DW.GPCH_SI_PROV_CD, &BeginDt, &Date);

/* delete form PS_GPCH_EG_PERSON*/



&Pstats_Company = &pstatus.GetRow(&l).GPCH_EG_PSTATUS.COMPANY.Value;

&Pstats_Year = GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR;

&Pstats_DomainId =

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_EG_DOMAINID.Value;

&Pstats_RequestID =

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_EG_REQUEST_ID.Value;

&Pstats_PovType =

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_SI_PROV_TYPE.Value;

&Pstats_ProvCode =

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_SI_PROV_CD.Value;



/* FMB 20090119 Delete only if no manual update exists */

&Del_EG_PErson_SQL = CreateSQL("delete from PS_GPCH_EG_PERSON where

GPCH_EG_DOMAINID=:1 and GPCH_RC_PAY_YEAR=:2 and COMPANY=:3 and GPCH_SI_PROV_TYPE=:4 and

GPCH_SI_PROV_CD=:5 and BEGIN_DT = %Datein(:6) and END_DT= %Datein(:7) and not exists ( select

'X' from PS_GPCH_EG_PERSON EG1 where PS_GPCH_EG_PERSON.GPCH_EG_DOMAINID =

EG1.GPCH_EG_DOMAINID and PS_GPCH_EG_PERSON.GPCH_RC_PAY_YEAR = EG1.GPCH_RC_PAY_YEAR and

PS_GPCH_EG_PERSON.COMPANY = EG1.COMPANY and PS_GPCH_EG_PERSON.GPCH_SI_PROV_TYPE =

EG1.GPCH_SI_PROV_TYPE and PS_GPCH_EG_PERSON.GPCH_SI_PROV_CD = EG1.GPCH_SI_PROV_CD and

PS_GPCH_EG_PERSON.EMPLID = EG1.EMPLID and PS_GPCH_EG_PERSON.EMPL_RCD = EG1.EMPL_RCD and

EG1.GPCH_IF_VER > 1 )");

&Del_EG_PErson_SQL = CreateSQL("delete from PS_GPCH_EG_PERSON where

GPCH_EG_DOMAINID=:1 and GPCH_RC_PAY_YEAR=:2 and COMPANY=:3 and GPCH_SI_PROV_TYPE=:4 and

GPCH_SI_PROV_CD=:5 and BEGIN_DT = %Datein(:6) and END_DT= %Datein(:7) and not exists ( select

'X' from PS_GPCH_EG_PER_VW EG1 where PS_GPCH_EG_PERSON.GPCH_EG_DOMAINID =

EG1.GPCH_EG_DOMAINID and PS_GPCH_EG_PERSON.GPCH_RC_PAY_YEAR = EG1.GPCH_RC_PAY_YEAR and

PS_GPCH_EG_PERSON.COMPANY = EG1.COMPANY and PS_GPCH_EG_PERSON.GPCH_SI_PROV_TYPE =

EG1.GPCH_SI_PROV_TYPE and PS_GPCH_EG_PERSON.GPCH_SI_PROV_CD = EG1.GPCH_SI_PROV_CD and

PS_GPCH_EG_PERSON.EMPLID = EG1.EMPLID and PS_GPCH_EG_PERSON.EMPL_RCD = EG1.EMPL_RCD and

EG1.GPCH_IF_VER > 1 )");

&Del_EG_PErson_SQL.Execute(&Pstats_DomainId, &Pstats_Year,

&Pstats_Company, &Pstats_PovType, &Pstats_ProvCode, &Caldates [1], &Caldates [2]);



/* FMB 20090119 Delete as well GPCH_IF_TX07_1 and GPCH_IF_TX07 */

If &Pstats_PovType = "8" Then

&Del_IF_TX07_1_SQL = CreateSQL("delete from PS_GPCH_IF_TX07_1 where

COMPANY=:1 and BEGIN_DT >= %Datein(:2) and END_DT

1 )");

&Del_IF_TX07_1_SQL.Execute(&Pstats_Company, &Caldates [1],

&Caldates [2], &Pstats_DomainId);



/* FMB 20090119 Second Delete GPCH_IF_TXO7 */

&Del_IF_TX07_SQL = CreateSQL("delete from PS_GPCH_IF_TX07 where

GPCH_EG_DOMAINID=:1 and COMPANY=:2 and BEGIN_DT >= %Datein(:3) and END_DT 1 )");

&Del_IF_TX07_SQL = CreateSQL("delete from PS_GPCH_IF_TX07 where

GPCH_EG_DOMAINID=:1 and COMPANY=:2 and BEGIN_DT >= %Datein(:3) and END_DT 1 )");

&Del_IF_TX07_SQL.Execute(&Pstats_DomainId, &Pstats_Company,

&Caldates [1], &Caldates [2]);

End-If;





If (&l - 1 0 And

Not None(&pstatus.GetRow(&l -

1).GPCH_EG_PSTATUS.GPCH_EG_REQUEST_ID.Value)) Then

&CaldatesNew = GetCalDates(&pstatus.GetRow(&l -

1).GPCH_EG_PSTATUS.GPCH_EG_REQUEST_ID.Value);

If &RSetup.GetRow(&m).GPCH_EG_RSTATUS.GPCH_SI_PROV_TYPE.Value = "A"

Or

&RSetup.GetRow(&m).GPCH_EG_RSTATUS.GPCH_SI_PROV_TYPE.Value =

"5" Then

If &RSetup.GetRow(&m).GPCH_EG_STAT_DW.GPCH_EG_RPT_TYPE.VALUE =

"M" Then

SQLExec("Update PS_GPCH_RC_PAYROLL set GPCH_AL_CPAY_ENDDT=

%Datein(:1) ,GPCH_RC_YEAR_OPT =:2 where RUN_CNTL_ID=:3", &CaldatesNew [2], "N",

GPCH_RC_PAYROLL.RUN_CNTL_ID);

&RSetup.GetRow(&m).GPCH_EG_STAT_DW.GPCH_AL_CPAY_ENDDT.Value

= &CaldatesNew [2];

GPCH_RC_PAYROLL.GPCH_AL_CPAY_ENDDT.Value = &CaldatesNew [2];

Else



If &RSetup.GetRow(&m).GPCH_EG_STAT_DW.GPCH_EG_RPT_TYPE.VALUE

= "Q" Then

SQLExec("Update PS_GPCH_RC_PAYROLL set GPCH_FK_QUARTER=

:1,GPCH_RC_YEAR_OPT =:2 where RUN_CNTL_ID=:3", &CaldatesNew [3], "Y",

GPCH_RC_PAYROLL.RUN_CNTL_ID);

SQLExec("Update PS_GPCH_RC_PAYROLL set GPCH_AL_CPAY_ENDDT=

%Datein(:1) ,GPCH_RC_YEAR_OPT =:2 where RUN_CNTL_ID=:3", &CaldatesNew [2], "N",

GPCH_RC_PAYROLL.RUN_CNTL_ID);

GPCH_RC_PAYROLL.GPCH_AL_CPAY_ENDDT.Value = &CaldatesNew

[2];

GPCH_RC_PAYROLL.GPCH_FK_QUARTER.Value = &CaldatesNew [3];



&RSetup.GetRow(&m).GPCH_EG_STAT_DW.GPCH_AL_CPAY_ENDDT.Value = &CaldatesNew [2];

&RSetup.GetRow(&m).GPCH_EG_STAT_DW.GPCH_FK_QUARTER.Value

= &CaldatesNew [3];

End-If;

End-If;

End-If;

End-If;

End-If;

End-For;



If &pstatus.ActiveRowcount = 1 Then

If None(&pstatus.getrow(1).GPCH_EG_PSTATUS.COMPANY.Value) Then



&rstatus_rec.GPCH_EG_DOMAINID.VALUE =

GPCH_RC_PAYROLL.GPCH_EG_DOMAINID.Value;

&rstatus_rec.COMPANY.VALUE = GPCH_RC_PAYROLL.COMPANY.Value;

&rstatus_rec.GPCH_RC_PAY_YEAR.VALUE =

GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR.Value;

&rstatus_rec.GPCH_SI_PROV_TYPE.VALUE =

&RSetup.GetRow(&m).GPCH_EG_RSTATUS.GPCH_SI_PROV_TYPE.Value;

&rstatus_rec.GPCH_REPORT_STATUS.VALUE = "0008";

&rstatus_rec.update();

&RSetup.GetRow(&m).GPCH_EG_STAT_DW.GPCH_EG_MONTH_RUN.enabled = True;

&RSetup.GetRow(&m).GPCH_EG_STAT_DW.GPCH_EG_MONTH_RUN.Visible = True;



End-If;

End-If;

End-If;

For &l = 1 To &pstatus.activerowcount



If (&pstatus.getrow(&l).GPCH_EG_PSTATUS.GPCH_SI_PROV_TYPE.Value =

&RSetup.GetRow(&m).GPCH_EG_RSTATUS.GPCH_SI_PROV_TYPE.Value And

&pstatus.getrow(&l).GPCH_EG_PSTATUS.GPCH_SI_PROV_CD.Value =

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_SI_PROV_CD.Value) Or

&RSetup.GetRow(&m).GPCH_EG_STAT_DW.GPCH_RUN_OPTIONS.Value "Y" Or

&RSetup.GetRow(&m).GPCH_EG_RSTATUS.GPCH_SI_PROV_TYPE.Value = 0 Or

&RSetup.GetRow(&m).GPCH_EG_RSTATUS.GPCH_SI_PROV_TYPE.Value = "B" Then

&Rerun_option = False;

Break;

Else

&Rerun_option = True;

End-If;

End-For;



/*check PSTATUS record have atleast one row else set Rerun_option is false */



If &pstatus.Rowcount 0 And

&i &SS.RowCount Then



/*Rstatus record provider type is equal to groub view provider type then break

and do further steps*/



Break;

Else

/* The final loop to Insert the File generate row*/

If &RSetup.GetRow(&m).GPCH_EG_RSTATUS.GPCH_SI_PROV_TYPE.Value = "B" Then

Break;

End-If;

End-If;

End-If;

End-For;







If ( Not (&ParamSetup.GetRow(1).ISdeleted) And

((&ParamSetup.GetRow(1).Isnew) Or

&New_Month_run = True)) And

&Run_option = True Then

/* insert into PSTATUS,FSTATUS and PTOTALS Record */

&pstatus_rec.OPRID.Value = %OperatorId;

&pstatus_rec.GPCH_RC_PAY_YEAR.Value = GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR;

&pstatus_rec.GPCH_EG_DOMAINID.Value =

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_DOMAINID.Value;

&pstatus_rec.COMPANY.Value = &SS.GetRow(&i).GPCH_EG_FSTA_VW.COMPANY.Value;



/* The request Id is generated based on the GPCH_EG_F_GROUB value from GPCH_EG_FSTA_VW

view */

If (&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_F_GROUB.Value

&prov_type_old_pstatus) Or

(&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_TRANS_MODE.Value = 1) Or

(&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_DISTRIBUTR.Value "Y") Or

&New_Month_run = True Then

&request_id =

get_seq_no(&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_SI_PROV_TYPE.Value);

End-If;



&pstatus_rec.GPCH_EG_REQUEST_ID.Value = &request_id;

For &temp = 1 To &request_id.Len

&pstatus_rec.GPCH_EG_REQUEST_ID.Value = &request_id [&temp];

&prov_type_old = &SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_F_GROUB.Value;

&pstatus_rec.GPCH_SI_PROV_TYPE.Value =

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_SI_PROV_TYPE.Value;

&pstatus_rec.GPCH_SI_PROV_CD.Value =

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_SI_PROV_CD.Value;





&Ptotals_rec.GPCH_RC_PAY_YEAR.Value = GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR;

&Ptotals_rec.GPCH_EG_DOMAINID.Value =

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_DOMAINID.Value;

&Ptotals_rec.COMPANY.Value = &SS.GetRow(&i).GPCH_EG_FSTA_VW.COMPANY.Value;

&Ptotals_rec.GPCH_EG_REQUEST_ID.Value = &request_id;

&Ptotals_rec.GPCH_EG_REQUEST_ID.Value = &request_id [&temp];

&Ptotals_rec.GPCH_SI_PROV_TYPE.Value =

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_SI_PROV_TYPE.Value;



&Ptotals_rec.GPCH_SI_PROV_CD.Value =

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_SI_PROV_CD.Value;

&acc_ins.FILL(&acc_ins_where_clause,

&SS.GetRow(&i).GPCH_EG_FSTA_VW.COMPANY.Value,

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_SI_PROV_TYPE.Value,

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_SI_PROV_CD.Value, &Year_date);

If &acc_ins.GetRow(1).GPCH_SI_ACC_INS.GPCH_ALL_CANTONFLG.VALUE = "Y" Then

&pstatus_rec.GPCH_EG_USERKEY.Value = "99";

&Ptotals_rec.GPCH_EG_USERKEY.Value = "99";

Else

If &acc_ins.GetRow(1).GPCH_SI_ACC_INS.GPCH_TX_CANTON.VALUE " " Then

&pstatus_rec.GPCH_EG_USERKEY.Value =

&acc_ins.GetRow(1).GPCH_SI_ACC_INS.GPCH_TX_CANTON.VALUE;

&Ptotals_rec.GPCH_EG_USERKEY.Value =

&acc_ins.GetRow(1).GPCH_SI_ACC_INS.GPCH_TX_CANTON.VALUE;

End-If;

End-If;

&pstatus_rec.GPCH_REPORT_STATUS.Value = "0008";

&pstatus_rec.GPCH_EG_RESEND.Value = "N";

&pstatus_rec.GPCH_EG_COMPLETE.Value = "N";



&pstatus_rec.Insert();

&Ptotals_rec.Insert();





&fstatus_rec.GPCH_RC_PAY_YEAR.Value = GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR;

&fstatus_rec.GPCH_EG_DOMAINID.Value =

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_DOMAINID.Value;

&fstatus_rec.COMPANY.Value = &SS.GetRow(&i).GPCH_EG_FSTA_VW.COMPANY.Value;

&fstatus_rec.GPCH_REPORT_STATUS.Value = "0008";

If (&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_F_GROUB.Value

&prov_type_old_fstatus) Or

(&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_TRANS_MODE.Value = 1) Or

(&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_DISTRIBUTR.Value "Y") Then

&fstatus_rec.GPCH_EG_REQUEST_ID.Value = &request_id;

&fstatus_rec.GPCH_EG_REQUEST_ID.Value = &request_id [&temp];

&fstatus_rec.Insert();

End-If;

&prov_type_old_fstatus = &SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_F_GROUB.Value;

&prov_type_old_pstatus = &SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_F_GROUB.Value;



End-For;

End-If;



If Not (&ParamSetup.GetRow(1).Isdeleted) And

&Cancel_option = True Then

&No_rows = True;

&pstatus_vw_rec.fill(&run_status_where_clause,

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_SI_PROV_TYPE.Value);

For &q = 1 To &pstatus_vw_rec.RowCount

&pstatus_rec.OPRID.Value = %OperatorId;

&pstatus_rec.GPCH_RC_PAY_YEAR.Value = GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR;

&pstatus_rec.GPCH_EG_DOMAINID.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.GPCH_EG_DOMAINID.Value;

&pstatus_rec.COMPANY.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.COMPANY.Value;

&pstatus_rec.GPCH_EG_REQUEST_ID.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.GPCH_EG_REQUEST_ID.Value;

&pstatus_rec.GPCH_SI_PROV_TYPE.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.GPCH_SI_PROV_TYPE.Value;

&pstatus_rec.GPCH_SI_PROV_CD.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.GPCH_SI_PROV_CD.Value;

&pstatus_rec.delete();





&pheader.GPCH_RC_PAY_YEAR.Value = GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR;

&pheader.GPCH_EG_DOMAINID.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.GPCH_EG_DOMAINID.Value;

&pheader.COMPANY.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.COMPANY.Value;

&pheader.GPCH_EG_REQUEST_ID.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.GPCH_EG_REQUEST_ID.Value;

&pheader.GPCH_SI_PROV_TYPE.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.GPCH_SI_PROV_TYPE.Value;

&pheader.GPCH_SI_PROV_CD.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.GPCH_SI_PROV_CD.Value;

&pheader.delete();





&Ptotals_rec.GPCH_RC_PAY_YEAR.Value = GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR;

&Ptotals_rec.GPCH_EG_DOMAINID.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.GPCH_EG_DOMAINID.Value;

&Ptotals_rec.COMPANY.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.COMPANY.Value;

&Ptotals_rec.GPCH_EG_REQUEST_ID.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.GPCH_EG_REQUEST_ID.Value;

&Ptotals_rec.GPCH_SI_PROV_TYPE.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.GPCH_SI_PROV_TYPE.Value;

&Ptotals_rec.GPCH_SI_PROV_CD.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.GPCH_SI_PROV_CD.Value;

rem &Ptotals_rec.delete();

&pstatus_rec1.fill(&where_clause);

For &j = 1 To &pstatus_rec1.activerowcount

If &pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.GPCH_EG_REQUEST_ID.Value =

&pstatus_rec1.GETROW(&j).GPCH_EG_PSTATUS.GPCH_EG_REQUEST_ID.value Then

&No_rows = False;

End-If;

End-For;

If (&No_rows) Then

&fstatus_rec.GPCH_RC_PAY_YEAR.Value = GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR;

&fstatus_rec.GPCH_EG_DOMAINID.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.GPCH_EG_DOMAINID.Value;

&fstatus_rec.COMPANY.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.COMPANY.Value;

&fstatus_rec.GPCH_EG_REQUEST_ID.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.GPCH_EG_REQUEST_ID.Value;

&fstatus_rec.delete();



&fheader.GPCH_RC_PAY_YEAR.Value = GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR;

&fheader.GPCH_EG_DOMAINID.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.GPCH_EG_DOMAINID.Value;

&fheader.COMPANY.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.COMPANY.Value;

&fheader.GPCH_EG_REQUEST_ID.Value =

&pstatus_vw_rec.GetRow(&q).GPCH_EG_PSTA_VW.GPCH_EG_REQUEST_ID.Value;

&fheader.delete();

End-If;

End-For;

End-If;



If Not (&ParamSetup.GetRow(1).ISDELETED) And

&Rerun_option = True Then

&New_request_id = True;

For &l = 1 To &pstatus.activerowcount

If &SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_F_GROUB.Value =

&pstatus.GetRow(&l).GPCH_EG_PSTA_DW.GPCH_EG_F_GROUB.Value Then

&request_id = &pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_EG_REQUEST_ID.Value;

&request_id [&l] =

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_EG_REQUEST_ID.Value;

&New_request_id = False;

End-If;

End-For;



&pstatus_rec.OPRID.Value = %OperatorId;

&pstatus_rec.GPCH_RC_PAY_YEAR.Value = GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR;

&Ptotals_rec.GPCH_RC_PAY_YEAR.Value = GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR;

&pstatus_rec.GPCH_EG_DOMAINID.Value =

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_DOMAINID.Value;

&Ptotals_rec.GPCH_EG_DOMAINID.Value =

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_DOMAINID.Value;

&pstatus_rec.COMPANY.Value = &SS.GetRow(&i).GPCH_EG_FSTA_VW.COMPANY.Value;

&Ptotals_rec.COMPANY.Value = &SS.GetRow(&i).GPCH_EG_FSTA_VW.COMPANY.Value;

If (&New_request_id) Or

(&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_TRANS_MODE.Value = 1) Or

(&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_DISTRIBUTR.Value "Y") Then

&request_id =

get_seq_no(&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_SI_PROV_TYPE.Value);

End-If;

&pstatus_rec.GPCH_EG_REQUEST_ID.Value = &request_id;

&Ptotals_rec.GPCH_EG_REQUEST_ID.Value = &request_id;

For &temp = 1 To &request_id.Len



&pstatus_rec.GPCH_EG_REQUEST_ID.Value = &request_id [&temp];

&Ptotals_rec.GPCH_EG_REQUEST_ID.Value = &request_id [&temp];

&prov_type_old = &SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_F_GROUB.Value;

&pstatus_rec.GPCH_SI_PROV_TYPE.Value =

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_SI_PROV_TYPE.Value;

&Ptotals_rec.GPCH_SI_PROV_TYPE.Value =

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_SI_PROV_TYPE.Value;

&pstatus_rec.GPCH_SI_PROV_CD.Value =

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_SI_PROV_CD.Value;

&Ptotals_rec.GPCH_SI_PROV_CD.Value =

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_SI_PROV_CD.Value;

&acc_ins.FILL(&acc_ins_where_clause,

&SS.GetRow(&i).GPCH_EG_FSTA_VW.COMPANY.Value,

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_SI_PROV_TYPE.Value,

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_SI_PROV_CD.Value, &Year_date);

If &acc_ins.GetRow(1).GPCH_SI_ACC_INS.GPCH_ALL_CANTONFLG.VALUE = "Y" Then

&pstatus_rec.GPCH_EG_USERKEY.Value = "99";

&Ptotals_rec.GPCH_EG_USERKEY.Value = "99";

Else

If &acc_ins.GetRow(1).GPCH_SI_ACC_INS.GPCH_TX_CANTON.VALUE " " Then

&pstatus_rec.GPCH_EG_USERKEY.Value =

&acc_ins.GetRow(1).GPCH_SI_ACC_INS.GPCH_TX_CANTON.VALUE;

&Ptotals_rec.GPCH_EG_USERKEY.Value =

&acc_ins.GetRow(1).GPCH_SI_ACC_INS.GPCH_TX_CANTON.VALUE;

End-If;

End-If;

&pstatus_rec.GPCH_REPORT_STATUS.Value = "0008";

&pstatus_rec.GPCH_REPORT_STATUS.Value = "N";

&pstatus_rec.INSERT();

&Ptotals_rec.INSERT();

ScrollSelect(1, Record.GPCH_EG_PSTATUS, Record.GPCH_EG_PSTATUS,

&run_status_where_clause, &SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_SI_PROV_TYPE.Value);

For &l = 1 To &pstatus.activerowcount

If &pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_SI_PROV_TYPE.Value =

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_SI_PROV_TYPE.Value And

&pstatus.GetRow(&l).GPCH_EG_PSTATUS.GPCH_SI_PROV_CD.Value =

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_SI_PROV_CD.Value Then

&pstatus.GetRow(&l).GPCH_EG_PSTA_DW.GPCH_EG_F_GROUB.Value =

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_F_GROUB.Value;

End-If;

End-For;



&fstatus_rec.GPCH_RC_PAY_YEAR.Value = GPCH_RC_PAYROLL.GPCH_RC_PAY_YEAR;

&fstatus_rec.GPCH_EG_DOMAINID.Value =

&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_DOMAINID.Value;

&fstatus_rec.COMPANY.Value = &SS.GetRow(&i).GPCH_EG_FSTA_VW.COMPANY.Value;

&fstatus_rec.GPCH_REPORT_STATUS.Value = "0008";

If (&New_request_id) Or

(&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_TRANS_MODE.Value = 1) Or

(&SS.GetRow(&i).GPCH_EG_FSTA_VW.GPCH_EG_DISTRIBUTR.Value "Y") Then

&fstatus_rec.GPCH_EG_REQUEST_ID.Value = &request_id;

&fstatus_rec.GPCH_EG_REQUEST_ID.Value = &request_id [&temp];

&fstatus_rec.Insert();

End-If;

End-For;

End-If;

End-For;



If ( Not (&ParamSetup.GetRow(1).ISDELETED)) Then

Gen_Header_XML();

End-If;



ScrollFlush(Record.GPCH_EG_RSTATUS);

ScrollSelect(1, Record.GPCH_EG_RSTATUS, Record.GPCH_EG_RSTATUS, &where_clause);

ScrollFlush(Record.GPCH_EG_FSTATUS);

ScrollSelect(1, Record.GPCH_EG_FSTATUS, Record.GPCH_EG_PSTA_VW, &where_clause);

ScrollFlush(Record.GPCH_EG_PSTATUS);

ScrollSelect(1, Record.GPCH_EG_PSTATUS, Record.GPCH_EG_PSTATUS, &where_clause);



Get_File_status();

Get_status();



SQLExec("SELECT LANGUAGE_CD FROM PS_PRCSRUNCNTL where OPRID =:1 and RUN_CNTL_ID=:2",

GPCH_RC_PAYROLL.OPRID, GPCH_RC_PAYROLL.RUN_CNTL_ID, &LANG_CD);

SQLExec("Update PS_GPCH_RC_PAYROLL set LANGUAGE_CD=:1 where OPRID=:2 and RUN_CNTL_ID=:3",

&LANG_CD, %OperatorId, GPCH_RC_PAYROLL.RUN_CNTL_ID.Value);



SQLExec(" Update PS_GPCH_RC_TX07 set GPCH_TX_FLG='N' where OPRID=:1 and RUN_CNTL_ID=:2",

%OperatorId, &run_status_rec.RUN_CNTL_ID.VALUE);









PeopleCode (Component): GPES_RC_FNQ1(GBL).SavePreChange

Local Rowset &rsItem, &rsData, &rsFNQ;

Local Rowset &rsItem, &rsData, &rsFNQ, &rsRC;

Local Record &rData, &rItem, &rDefn, &rRC;





&rDefn = CreateRecord(Record.XML_DEFN);

&rsItem = CreateRowset(Record.XML_ITEM);

&rItem = CreateRecord(Record.XML_ITEM);

&rsData = CreateRowset(Record.XML_FILE_TBL);

&rData = CreateRecord(Record.XML_FILE_TBL);

&rRC = CreateRecord(Record.XML_RC_ESP);

&rsRC = CreateRowset(Record.XML_RC_ESP);

&rsFNQ = GetLevel0()(1).GetRowset(Scroll.GPES_RC_FNQ1_EE);



/* Delete & Insert XML_DEFN */





&rDefn.XMLFILE_ID.Value = "CC " | %OperatorId | GPES_RC_FNQ1.RUN_CNTL_ID;

&rDefn.Delete();



&FileName = "CC " | %OperatorId | GPES_RC_FNQ1.RUN_CNTL_ID;

&rRC.OPRID.Value = %OperatorId;

&rRC.RUN_CNTL_ID.Value = GPES_RC_FNQ1.RUN_CNTL_ID;

&rRC.XMLFILE_ID.Value = &FileName;

&rRC.Delete();



/* Delete XML_RC_ESP */

/* Delete all XMLs related with OPRID & RUNCNTL to avoid printing of */

/* other XML, like Contrata or Delta which use the same Oprid/Runcntl) */



&rRC.OPRID.Value = %OperatorId;

&rRC.RUN_CNTL_ID.Value = GPES_RC_FNQ1.RUN_CNTL_ID;





&rsRC.Fill("WHERE OPRID = :1 AND RUN_CNTL_ID =:2", %OperatorId, GPES_RC_FNQ1.RUN_CNTL_ID);

For &k = 1 To &rsRC.ActiveRowCount

&rRC.XMLFILE_ID.Value = &rsRC(&k).XML_RC_ESP.XMLFILE_ID.Value;

&rRC.Delete();

End-For;





/* Delete XML_FILE_TBL & XML_ITEM */



&rsData.Fill("WHERE XMLFILE_ID = :1", &FileName);

For &k = 1 To &rsData.ActiveRowCount

&rData.XMLFILE_ID.Value = &rsData(&k).XML_FILE_TBL.XMLFILE_ID.Value;

&rData.KEY1_FLD_VAL.Value = &rsData(&k).XML_FILE_TBL.KEY1_FLD_VAL.Value;

&rData.KEY2_FLD_VAL.Value = &rsData(&k).XML_FILE_TBL.KEY2_FLD_VAL.Value;

&rData.KEY3_FLD_VAL.Value = &rsData(&k).XML_FILE_TBL.KEY3_FLD_VAL.Value;

&rData.XML_SEQ_NBR.Value = &rsData(&k).XML_FILE_TBL.XML_SEQ_NBR.Value;

&rData.Delete();

End-For;

&rsItem.Fill("WHERE XMLFILE_ID = :1", &rDefn.XMLFILE_ID.Value);

For &k = 1 To &rsItem.ActiveRowCount

&rItem.XMLFILE_ID.Value = &rsItem(&k).XML_ITEM.XMLFILE_ID.Value;

&rItem.KEY1_FLD_VAL.Value = &rsItem(&k).XML_ITEM.KEY1_FLD_VAL.Value;

&rItem.KEY2_FLD_VAL.Value = &rsItem(&k).XML_ITEM.KEY2_FLD_VAL.Value;

&rItem.KEY3_FLD_VAL.Value = &rsItem(&k).XML_ITEM.KEY3_FLD_VAL.Value;

&rItem.Delete();

End-For;









If GPES_RC_FNQ1.GPES_EMPLOYEE_TYPE = "I" Then

&rsItem.Fill("WHERE XMLFILE_ID = :1", &rDefn.XMLFILE_ID.Value);

&rDefn.XMLFILE_ID.Value = "CC " | %OperatorId | GPES_RC_FNQ1.RUN_CNTL_ID;

&rDefn.DESCR.Value = "Company Certificate";

&rDefn.XML_TEMPLATE_ID.Value = "G01";

&rDefn.XML_SET.Value = "G01";

&rDefn.Insert();



/* Insert Data in XML_RC_ESP */

&rRC.OPRID.Value = %OperatorId;

&rRC.RUN_CNTL_ID.Value = GPES_RC_FNQ1.RUN_CNTL_ID;

&rRC.XMLFILE_ID.Value = &rDefn.XMLFILE_ID.Value;

&rRC.FILE_NAME.Value = "GPESFNQ1";

&rRC.XML_TEMPLATE_ID.Value = &rDefn.XML_TEMPLATE_ID.Value;

&rRC.XML_SET.Value = &rDefn.XML_SET.Value;

&rRC.Insert();

&r = 1;

&EmplidList = " ";

For &k = 1 To &rsFNQ.ActiveRowCount

If &rsFNQ(&k).GPES_RC_FNQ1_EE.GENERATE_REPORT.Value = "Y" And

&rsFNQ(&k).GPES_RC_FNQ1_EE.GPES_REASON.Value = "INE" And

&rsFNQ(&k).GPES_RC_FNQ1_EE.EMPLID.Value "" Then

If &r > 1 Then

&EmplidList = &EmplidList | ", ";

End-If;

&EmplidList = &EmplidList | "'" | &rsFNQ(&k).GPES_RC_FNQ1_EE.EMPLID.Value | "'";

&r = &r + 1;

End-If;

End-For;





If &EmplidList " " Then

&Sql = CreateSQL("SELECT DISTINCT B.SSN_EMPLOYER FROM PS_JOB_JR B WHERE EMPLID IN ("

| &EmplidList | ") AND %EffdtCheck(JOB_JR B1,B, :1)", %Date);

While &Sql.Fetch(&CCC)

&rItem.XMLFILE_ID.Value = &rDefn.XMLFILE_ID.Value;

&rItem.KEY1_FLD_VAL.Value = &CCC;

&rItem.KEY2_FLD_VAL.Value = " ";

&rItem.KEY3_FLD_VAL.Value = " ";

&rItem.XML_NODE_ID.Value = "G1 01";

&rItem.Insert();

End-While;

End-If;

End-If;









PeopleCode (Component): GPGB_ABS_EVENT(GBL).SavePostChange

Declare Function Update_Abs PeopleCode GPGB_ABS_EVT_JR.GPGB_ABS_LINK_DUR FieldFormula;

Declare Function Calculate_Half_Days PeopleCode GPGB_ABS_EVT_JR.GPGB_ABS_LINK_DUR

FieldFormula;



Component Rowset &level1, &level2;

Local date &first_bgn_dt, &bgn_dt;

Local number &prev_duration;

Component number &pin_take_num_ssp, &refershrow;





/*initilalizing ¤t_duration to zero */

¤t_duration = 0;



&level1_row = CreateRowset(Record.GP_ABS_EVENT);



&level0 = GetLevel0();

&level1 = &level0.GetRow(1).GetRowset(Scroll.GP_ABS_EVENT);

&level1.CopyTo(&level1_row);

&level1_row.Sort(GP_ABS_EVENT.END_DT, "D");

&level2 = &level1.GetRow(1).GetRowset(Scroll.GPGB_ABS_EVT_JR);



&Pin_num = &level2.GetRow(1).GPGB_ABS_EVT_JR.PIN_TAKE_NUM.Value;



&gp_abs_take = CreateRowset(Record.GP_ABS_TAKE);

rem &num_read = &gp_abs_take.Fill("where PIN_NUM=:1", GPGB_ABS_EVT_JR.PIN_TAKE_NUM);

&num_read = &gp_abs_take.Fill("where PIN_NUM=:1", &Pin_num);





rem If GP_PIN.PIN_CODE = "SSP AT1 GBR" Then;

rem &pin_take_num_ssp = GPGB_ABS_EVT_JR.PIN_TAKE_NUM;

REM &pin_take_num_ssp = &Pin_num;

rem End-If;



&gp_pin_cd = &level1.GetRow(1).GP_PIN.PIN_CODE.Value;



If &gp_pin_cd = "SSP AT1 GBR" Then;

&pin_take_num_ssp = &Pin_num;

End-If;





&i = 1; /* to check it is not the first event */

&j = 0; /* to link the first event date */

&prev_end_day_half_ind = "";

&prev_all_days_ind = "";

&prev_pin_take_num = 0;







For &z = &level1_row.ActiveRowCount To 1 Step - 1

&emplid = &level1_row.getRow(&z).GP_ABS_EVENT.EMPLID.Value;

&empl_rcd = &level1_row.getRow(&z).GP_ABS_EVENT.EMPL_RCD.Value;

&bgn_dt = Date(&level1_row.getRow(&z).GP_ABS_EVENT.BGN_DT.Value);

&end_dt = Date(&level1_row.getRow(&z).GP_ABS_EVENT.END_DT.Value);

&begin_day_half_ind =

Upper(&level1_row.getRow(&z).GP_ABS_EVENT.BEGIN_DAY_HALF_IND.Value);

&end_day_half_ind =

Upper(&level1_row.getRow(&z).GP_ABS_EVENT.END_DAY_HALF_IND.Value);

&begin_day_hrs = &level1_row.getRow(&z).GP_ABS_EVENT.BEGIN_DAY_HRS.Value;

&end_day_hrs = &level1_row.getRow(&z).GP_ABS_EVENT.END_DAY_HRS.Value;

&all_days_ind = Upper(&level1_row.getRow(&z).GP_ABS_EVENT.ALL_DAYS_IND.Value);

&pin_take_num = &level1_row.getRow(&z).GP_ABS_EVENT.PIN_TAKE_NUM.Value;

If (&pin_take_num = &pin_take_num_ssp) Then



&count2 = &count2 + 1;

&A = Date(&bgn_dt);

&b = Date(&end_dt);





If All(&A, &b) Then

&c = AddToDate(&A, 0, 0, - 1);

¤t_duration = &b - &c;

End-If;

/* ¤t_duration = &end_dt - (&bgn_dt - 1); */



/* Check for Partial Hours - starts */

If (&begin_day_hrs > 0) Then

&begin_day_half_ind = "Y";

End-If;



If (&end_day_hrs > 0) Then

&end_day_half_ind = "Y";

End-If;



/* Check for Partial Hours - ends */



/* Check for All days indicator="Y" - starts */





If (&all_days_ind = "Y" And

Not (&link_flag)) Then

&first_bgn_dt = &bgn_dt;

&prev_duration = 0;



Else

/* &all_days_ind ="N" */



/* &i Checks - it is not the first event */

If (&i > 1) Then



&compare_dt = Date(&bgn_dt) - Date(&prev_end_dt);



If (&compare_dt = 1 And

&prev_end_day_half_ind = "N" And

&begin_day_half_ind = "N" And

&prev_all_days_ind = "N" And

&prev_pin_take_num = &pin_take_num And

&all_days_ind = "N") Then

/* And &all_days_ind = "N" */

/* link the absence events */



¤t_duration = ¤t_duration + &prev_duration;



&prev_duration = Calculate_Half_Days(&begin_day_half_ind,

&end_day_half_ind, ¤t_duration);





If (&j = 0) Then

&first_bgn_dt = &prev_bgn_dt;

&first_end_dt = &prevenddate;

End-If;



&j = &j + 1;

&link_flag = True;





Else /* Not linked reset &j */



If (&j >= 1 And

&link_flag

/* And &level1.ActiveRowCount &i */

) Then



Update_Abs(&emplid, &empl_rcd, &first_bgn_dt, &prev_end_dt,

&pin_take_num, &last_prev_duration);

&link_flag = False;



End-If;





&prev_duration = Calculate_Half_Days(&begin_day_half_ind,

&end_day_half_ind, ¤t_duration);





&link_flag = False;

&j = 0;

&first_bgn_dt = &bgn_dt;





End-If; /*compare_dt */



Else /* if i = 1 */

&first_bgn_dt = &bgn_dt;

If (&end_day_half_ind = "Y" Or

&begin_day_half_ind = "Y") Then

&prev_duration = Calculate_Half_Days(&begin_day_half_ind,

&end_day_half_ind, ¤t_duration);

End-If;



End-If; /* & i > 1 */





End-If; /* Check for All days indicator="Y" - ends */





&prev_bgn_dt = &bgn_dt;

&prev_end_dt = &end_dt;

&prev_duration = ¤t_duration;





If (&i = 1 And

&level1.ActiveRowCount = 1) Then



&prev_duration = Calculate_Half_Days(&begin_day_half_ind, &end_day_half_ind,

¤t_duration);

Update_Abs(&emplid, &empl_rcd, &first_bgn_dt, &end_dt, &pin_take_num,

&prev_duration);

End-If;









If (&j >= 1 And

&link_flag And

&level1.ActiveRowCount = &i) Or

(&all_days_ind = "Y") Then



If (&all_days_ind = "Y") Then

&prev_duration = 0;

&link_flag = False;

End-If;





Update_Abs(&emplid, &empl_rcd, &first_bgn_dt, &end_dt, &pin_take_num,

&prev_duration);





End-If;







If (&j = 0 And

Not (&link_flag) /*And

&i 1 */) Then





If (&z 1) Then

&k = &z - 1;



&next_emplid = &level1_row.getRow(&k).GP_ABS_EVENT.EMPLID.Value;

&next_empl_rcd = &level1_row.getRow(&k).GP_ABS_EVENT.EMPL_RCD.Value;

&next_bgn_dt = Date(&level1_row.getRow(&k).GP_ABS_EVENT.BGN_DT.Value);

&next_end_dt = Date(&level1_row.getRow(&k).GP_ABS_EVENT.END_DT.Value);

&next_begin_day_half_ind =

Upper(&level1_row.getRow(&k).GP_ABS_EVENT.BEGIN_DAY_HALF_IND.Value);

&next_end_day_half_ind =

Upper(&level1_row.getRow(&k).GP_ABS_EVENT.END_DAY_HALF_IND.Value);

&next_begin_day_hrs =

&level1_row.getRow(&k).GP_ABS_EVENT.BEGIN_DAY_HRS.Value;

&next_end_day_hrs = &level1_row.getRow(&k).GP_ABS_EVENT.END_DAY_HRS.Value;

&next_all_days_ind =

Upper(&level1_row.getRow(&k).GP_ABS_EVENT.ALL_DAYS_IND.Value);

&next_pin_take_num = &level1_row.getRow(&k).GP_ABS_EVENT.PIN_TAKE_NUM.Value;





&compare_dt2 = Date(&next_bgn_dt) - Date(&end_dt);



REM If (&next_emplid = GPGB_ABS_EVT_JR.EMPLID And

&next_empl_rcd = GPGB_ABS_EVT_JR.EMPL_RCD And

&compare_dt2 = 1 And

&end_day_half_ind = "N" And

&next_begin_day_half_ind = "N" And

&all_days_ind = "N" And

&next_pin_take_num = &pin_take_num_ssp) Then;



If (&next_emplid = &level2.GetRow(1).GPGB_ABS_EVT_JR.EMPLID.Value And

&next_empl_rcd = &level2.GetRow(1).GPGB_ABS_EVT_JR.EMPL_RCD.Value

And

&compare_dt2 = 1 And

&end_day_half_ind = "N" And

&next_begin_day_half_ind = "N" And

&all_days_ind = "N" And

&next_pin_take_num = &pin_take_num_ssp) Then



Else

Update_Abs(&emplid, &empl_rcd, &first_bgn_dt, &end_dt, &pin_take_num,

&prev_duration);

End-If; /* 3 C */

Else /* k = 0 */



Update_Abs(&emplid, &empl_rcd, &first_bgn_dt, &end_dt, &pin_take_num,

&prev_duration);



End-If; /* relocate this 2 C */







End-If; /* 1C &j = 0 And

Not (&link_flag) */

&last_prev_duration = &prev_duration;



End-If; /* SSP Absence only */





&prev_end_day_half_ind = &end_day_half_ind;

&prev_all_days_ind = &all_days_ind;

&prev_pin_take_num = &pin_take_num;

&number_of_half_days = 0;

&i = &i + 1;

End-For;





/* CODE to mimic sort & synchronize */

If &refershrow > 0 Then

&refershrow = 0;

&level1.Refresh();

End-If;









PeopleCode (CompRecord): GPES_ABS_EVENT(GBL).INSTALLATION.SavePreChange

Local Rowset &rsGrid, &rsGrid_tmp, &RS3_tgr, &rsGrid_ESabs, &ABS_ATEP;

Local date &org_bgndt, &bgndt, &enddt, &month_bgndt, &month_enddt, &auxl_date, &org_bgndt1,

&bgndt1, &enddt1, &org_bgndt2, &BE_ITbgndt, &BE_ITenddt, &BE_ATEPbgndt, &BE_ATEPenddt,

&TGR_ATEPbgndt, &TGR_ATEPenddt, &TGR_ITorgbgndt, &TGR_ITbgndt, &TGR_ITenddt;

Local date &Date_REF;



&rsGrid = GetLevel0().GetRow(1).GetRowset(Scroll.GP_ABS_EVENT);

&rsGrid_tmp = GetLevel0().GetRow(1).GetRowset(Scroll.GP_ABS_EVENT);

&RS3_tgr = GetLevel0()(1).GetRowset(Scroll.GPES_ABS_TRIGR3);







/*------Fetch Reference Date-----*/



&Datepincode = "GEN VR F REF ACC ESP";



SQLExec("SELECT PIN_NUM FROM PS_GP_PIN WHERE PIN_CODE = :1", &Datepincode, &DatePinnum);

SQLExec("SELECT %DateOut(VARIABLE_DATE) FROM PS_GP_VARIABLE WHERE PIN_NUM = :1 ",

&DatePinnum, &Date_REF);





For &rsIndex = 1 To &rsGrid.ActiveRowCount



If &rsIndex = 1 Then

&RS3_tgr.Flush();

End-If;



&pintakenum = &rsGrid.GetRow(&rsIndex).GP_ABS_EVENT.PIN_TAKE_NUM.Value;

SQLExec("SELECT PIN_CODE FROM PS_GP_PIN WHERE PIN_NUM = :1", &pintakenum, &PIN_CODE);



&rsGrid_ESabs = &rsGrid.GetRow(&rsIndex).GetRowset(Scroll.GPES_ABSEVT_AD);

&lackprd = "N";

&lackprd = &rsGrid_ESabs.GetRow(1).GPES_ABSEVT_AD.GPES_LACKING_IND.Value;

&emplid = &rsGrid_ESabs.GetRow(1).GPES_ABSEVT_AD.EMPLID.Value;

&empl_rcd = &rsGrid_ESabs.GetRow(1).GPES_ABSEVT_AD.EMPL_RCD.Value;



/*Insertion of a row for Absence Type: IT or AT/EP (without lacking period indicator)*/

/* We need to process all the rows irrespective of whether anything is changed

(&rsGrid.GetRow(&rsIndex).GP_ABS_EVENT.BGN_DT.IsChanged)

for row with pin code IT or AT/EP because a date change in IT row could generate a trigger

for AT/EP row or vice versa*/

If (&PIN_CODE = "IT ESP" Or

&PIN_CODE = "AT/EP ESP") And

&lackprd = "N" Then









&org_bgndt = &rsGrid.GetRow(&rsIndex).GP_ABS_EVENT.ORIG_BEGIN_DT.Value;

&bgndt = &rsGrid.GetRow(&rsIndex).GP_ABS_EVENT.BGN_DT.Value;

&enddt = &rsGrid.GetRow(&rsIndex).GP_ABS_EVENT.END_DT.Value;



/*------Check Reference Date-----*/

If &bgndt >= &Date_REF Then

&org_bgndt = AddToDate(&org_bgndt, 0, 0, 1);

&bgndt = AddToDate(&bgndt, 0, 0, 1);

End-If;





&month = Month(&bgndt);

&year = Year(&bgndt);



If &month = 1 Or

&month = 3 Or

&month = 5 Or

&month = 7 Or

&month = 8 Or

&month = 10 Or

&month = 12 Then

&day = 31;

Else

If &month = 2 Then

&mod = Mod(&year, 4);

If &mod = 0 Then

&day = 29;

Else

&day = 28;

End-If;

Else

&day = 30;

End-If;

End-If;





/* Derive the Month Begin date and Month End date */

&DAYONE = "01";

&month_bgndt = Date3(&year, &month, &DAYONE);

&month_enddt = Date3(&year, &month, &day);







/* Process only if the Pin code is IT ESP*/

If &PIN_CODE = "IT ESP" Then



/* Check if the IT absence is extended to more than 15 days. i.e IT has Pago

Delegado*/

&auxl_date = AddToDate(&org_bgndt, 0, 0, 15);



If &auxl_date &rsIndex Then

&pintakenum1 =

&rsGrid.GetRow(&rsIntcnt).GP_ABS_EVENT.PIN_TAKE_NUM.Value;



SQLExec("SELECT PIN_CODE FROM PS_GP_PIN WHERE PIN_NUM = :1",

&pintakenum1, &PIN_CODE1);

If &PIN_CODE1 = "AT/EP ESP" Then



&org_bgndt1 =

&rsGrid.GetRow(&rsIntcnt).GP_ABS_EVENT.ORIG_BEGIN_DT.Value;

/* &org_bgndt1 =

&rsGrid.GetRow(&rsIntcnt).GP_ABS_EVENT.ORIG_BEGIN_DT.Value; */ /* Commenting this line as

&org_bgndt1 has not been used further anywhere */

&bgndt1 = &rsGrid.GetRow(&rsIntcnt).GP_ABS_EVENT.BGN_DT.Value;

&enddt1 = &rsGrid.GetRow(&rsIntcnt).GP_ABS_EVENT.END_DT.Value;



/*------Check Reference Date-----*/

If &bgndt1 >= &Date_REF Then

&bgndt1 = AddToDate(&bgndt1, 0, 0, 1);

End-If;



If &enddt1 = &month_bgndt Then

&ATdate_tmp = Max(&ATdate_tmp, &bgndt1);

/*&GenerateTrigger_IT = "Y";*/

/*Break;*/

End-If;

End-If;



End-If;

End-For;



/* Check absences in the backend (only the ones which are not in buffer), if

there is an AT/EP with the max dt just before the Begin dt of the IT Absence*/

/*If &GenerateTrigger_IT = "N" Then*/



&pincode_ATEP = "AT/EP ESP";

&BE1_ATEPbgndt = Date(19000101);

&BE1_ATEPenddt = Date(19000101);

&exists = "Y";

SQLExec("SELECT PIN_NUM FROM PS_GP_PIN WHERE PIN_CODE = :1", &pincode_ATEP,

&pintakenum_ATEP);

SQLExec("SELECT MAX(EMPLID), %DateOut(MAX(BGN_DT)), %DateOut(MAX(END_DT))

FROM PS_GP_ABS_EVENT WHERE EMPLID = :1 AND EMPL_RCD = :2 AND PIN_TAKE_NUM = :3 AND END_DT

= %DateIn(:5)", &emplid, &empl_rcd, &pintakenum_ATEP, &bgndt,

&month_bgndt, &exists, &BE1_ATEPbgndt, &BE1_ATEPenddt);



/*------Check Reference Date-----*/

If &BE1_ATEPbgndt >= &Date_REF Then

If All(&exists) Then

&BE1_ATEPbgndt = AddToDate(&BE1_ATEPbgndt, 0, 0, 1);

End-If;

End-If;



If All(&exists) Then

/* check if the row exists in the buffer. If yes assign the previously

processed AT/EP date itself */

If ((&BE1_ATEPbgndt >= DERIVED_GP_ABS.FROM_DATE And

&BE1_ATEPbgndt = &BE1_ATEPbgndt And

DERIVED_GP_ABS.FROM_DATE &rsIndex Then



&pintakenum1 =

&rsGrid.GetRow(&rsIntcnt).GP_ABS_EVENT.PIN_TAKE_NUM.Value;

SQLExec("SELECT PIN_CODE FROM PS_GP_PIN WHERE PIN_NUM = :1",

&pintakenum1, &PIN_CODE1);



&org_bgndt1_IT =

&rsGrid.GetRow(&rsIntcnt).GP_ABS_EVENT.ORIG_BEGIN_DT.Value;

&bgndt1_IT = &rsGrid.GetRow(&rsIntcnt).GP_ABS_EVENT.BGN_DT.Value;

&enddt1_IT = &rsGrid.GetRow(&rsIntcnt).GP_ABS_EVENT.END_DT.Value;



/*------Check Reference Date-----*/

If &bgndt1_IT >= &Date_REF Then

&org_bgndt1_IT = AddToDate(&org_bgndt1_IT, 0, 0, 1);

&bgndt1_IT = AddToDate(&bgndt1_IT, 0, 0, 1);

End-If;



If &PIN_CODE1 = "IT ESP" Then

&auxl_date_IT = AddToDate(&org_bgndt1_IT, 0, 0, 15);



If &auxl_date_IT &ATdate_tmp Then

&GenerateTrigger_IT = "N";

End-If;

End-If;

End-If;



End-If;

End-For;

End-If;



/*Scan through all the abences in the BE (the ones which are not in buffer) to

check if there is an IT absence

for more than 15days in the same month between the AT absence and the orginal IT abs*/

If &GenerateTrigger_IT = "Y" Then

&pincode_IT = "IT ESP";

&exists = "Y";

&bgndt_BEIT = Date(19000101);

&enddt_BEIT = Date(19000101);



SQLExec("SELECT PIN_NUM FROM PS_GP_PIN WHERE PIN_CODE = :1", &pincode_IT,

&pintakenum_IT);

SQLExec("SELECT EMPLID, %DateOut(BGN_DT), %DateOut(END_DT) FROM

PS_GP_ABS_EVENT WHERE EMPLID = :1 AND EMPL_RCD = :2 AND PIN_TAKE_NUM = :3 AND

%DATEADD(ORIG_BEGIN_DT,15) = %DateIn(:4) AND BGN_DT %DateIn(:6)", &emplid, &empl_rcd, &pintakenum_IT, &month_bgndt, &bgndt,

&ATdate_tmp, &exists, &bgndt_BEIT, &enddt_BEIT);



/*SQLExec("SELECT EMPLID, %DateOut(BGN_DT), %DateOut(END_DT) FROM

PS_GP_ABS_EVENT WHERE EMPLID = :1 AND EMPL_RCD = :2 AND PIN_TAKE_NUM = :3 AND

%DATEADD(ORIG_BEGIN_DT,15) = %DateIn(:4) AND BGN_DT %DateIn(:6)", &emplid, &empl_rcd, &pintakenum_IT, &month_bgndt, &bgndt,

&ATdate_tmp, &exists, &bgndt_BEIT, &enddt_BEIT);*/

SQLExec("SELECT EMPLID, %DateOut(ORIG_BEGIN_DT), %DateOut(BGN_DT),

%DateOut(END_DT) FROM PS_GP_ABS_EVENT WHERE EMPLID = :1 AND EMPL_RCD = :2 AND PIN_TAKE_NUM

= :3 AND END_DT >= %DateIn(:4) AND BGN_DT %DateIn(:6)", &emplid,

&empl_rcd, &pintakenum_IT, &month_bgndt, &bgndt, &ATdate_tmp, &exists, &bgndt_Org_BEIT,

&bgndt_BEIT, &enddt_BEIT);



/*------Check Reference Date-----*/

If All(&exists) Then

If &bgndt_BEIT >= &Date_REF Then

&bgndt_BEIT = AddToDate(&bgndt_BEIT, 0, 0, 1);

&bgndt_Org_BEIT = AddToDate(&bgndt_Org_BEIT, 0, 0, 1);

End-If;

&bgndt_BEIT_Aux = AddToDate(&bgndt_Org_BEIT, 0, 0, 15);



If &bgndt_BEIT_Aux > &enddt_BEIT Then

&exists = Null;

End-If;



End-If;



If None(&exists) Or

((&bgndt_BEIT >= DERIVED_GP_ABS.FROM_DATE And

&bgndt_BEIT = &bgndt_BEIT And

DERIVED_GP_ABS.FROM_DATE = &Date_REF Then

&Dec_IT_bgndt = AddToDate(&bgndt, 0, 0, - 1);

UpdateValue(GPES_ABS_TRIGR3.EFFDT, &lastrow, &Dec_IT_bgndt);

Else

UpdateValue(GPES_ABS_TRIGR3.EFFDT, &lastrow, &bgndt);

End-If;

End-If;



End-If;



/* Check if due to this IT absence, a trigger should be generated for an AT/EP

absence, that does

not exist in the buffer, but already saved to the backend*/

If &auxl_date %DateIn(:4) ", &emplid, &empl_rcd, &pintakenum_ATEP, &enddt, &exists, &TGR_ATEPbgndt,

&TGR_ATEPenddt);

/* Checking the lacking period indicator.*/

If All(&exists) Then

SQLExec("SELECT GPES_LACKING_IND FROM PS_GPES_ABSEVT_AD WHERE EMPLID = :1

AND EMPL_RCD = :2 AND PIN_TAKE_NUM = :3 AND BGN_DT = %DateIn(:4) AND END_DT = %DateIn(:5)",

&emplid, &empl_rcd, &pintakenum_ATEP, &TGR_ATEPbgndt, &TGR_ATEPenddt, &lackprd_ind);

End-If;



/*------Check Reference Date-----*/

If &TGR_ATEPbgndt >= &Date_REF Then

If All(&exists) Then

&TGR_ATEPbgndt = AddToDate(&TGR_ATEPbgndt, 0, 0, 1);

End-If;

End-If;



&GenTrgr_ATEP = "Y";



/* If there is no AT/EP absence after the IT in the same month or if this row

exists in the

buffer then do not generate trigger*/

If None(&exists) Or

&lackprd_ind = "Y" Or

(Month(&TGR_ATEPbgndt) Month(&enddt)) Or

(&TGR_ATEPbgndt >= DERIVED_GP_ABS.FROM_DATE And

&TGR_ATEPbgndt = &TGR_ATEPbgndt And

DERIVED_GP_ABS.FROM_DATE &rsIndex Then



&pintakenum1 = &rsGrid.GetRow(&rsIntcnt).GP_ABS_EVENT.PIN_TAKE_NUM.Value;

SQLExec("SELECT PIN_CODE FROM PS_GP_PIN WHERE PIN_NUM = :1", &pintakenum1,

&PIN_CODE1);



&org_bgndt1 = &rsGrid.GetRow(&rsIntcnt).GP_ABS_EVENT.ORIG_BEGIN_DT.Value;

&bgndt1 = &rsGrid.GetRow(&rsIntcnt).GP_ABS_EVENT.BGN_DT.Value;

&enddt1 = &rsGrid.GetRow(&rsIntcnt).GP_ABS_EVENT.END_DT.Value;



/*------Check Reference Date-----*/

If &bgndt1 >= &Date_REF Then

&org_bgndt1 = AddToDate(&org_bgndt1, 0, 0, 1);

&bgndt1 = AddToDate(&bgndt1, 0, 0, 1);

End-If;

If &PIN_CODE1 = "IT ESP" Then

&auxl_date = AddToDate(&org_bgndt1, 0, 0, 15);

If &auxl_date = &month_bgndt And

&auxl_date Date(19000101) Then

&auxl_date = &auxl_date_tmp;

End-If;





/* Check in the backend absences which are not in the buffer, if there is an IT

absence before the Begin dt of the AT/EP Absence*/

If &GenerateTrigger_atep = "N" Then

&pincode_IT = "IT ESP";

&BE_ITbgndt = Date(19000101);

&BE_ITenddt = Date(19000101);

&Bgndt_IT = Date(19000101);

&Bgndt_IT_org = Date(19000101);

&ATEP_Relapse = "N";

SQLExec("SELECT PIN_NUM FROM PS_GP_PIN WHERE PIN_CODE = :1", &pincode_IT,

&pintakenum_IT);



&exists = "Y";

SQLExec("SELECT MAX(EMPLID), %DateOut(MAX(ORIG_BEGIN_DT)),

%DateOut(MAX(BGN_DT)), %DateOut(MAX(END_DT)) FROM PS_GP_ABS_EVENT WHERE EMPLID = :1 AND

EMPL_RCD = :2 AND PIN_TAKE_NUM = :3 AND %DATEADD(ORIG_BEGIN_DT,15) =

%DateIn(:4) AND %DATEADD(ORIG_BEGIN_DT,15) =

%DateIn(:4) AND %DATEADD(ORIG_BEGIN_DT,15) = %DateIn(:4) ", &emplid, &empl_rcd,

&pintakenum_IT, &month_bgndt, &exists, &Bgndt_IT_org, &BE_ITbgndt, &BE_ITenddt);



/*------Check Reference Date-----*/

If All(&exists) Then

If &BE_ITbgndt >= &Date_REF Then

&BE_ITbgndt = AddToDate(&BE_ITbgndt, 0, 0, 1);

&Bgndt_IT_org = AddToDate(&Bgndt_IT_org, 0, 0, 1);

End-If;



&Bgndt_IT_org_Aux = AddToDate(&Bgndt_IT_org, 0, 0, 15);



If &Bgndt_IT_org_Aux = DERIVED_GP_ABS.FROM_DATE And

&BE_ITbgndt = &BE_ITbgndt And

DERIVED_GP_ABS.FROM_DATE = &Date_REF Then

&bgndt2 = AddToDate(&bgndt2, 0, 0, 1);

End-If;



/*When an AT/EP is being processed which has IT more than 15days before it,

then we check if there is

another AT/EP absence event between the current AT/EP absence and after 16days of IT

in the same month*/

/* If yes then we break because trigger needs to be generated for the AT/EP

event

which falls immediately after IT*/

If &PIN_CODE2 = "AT/EP ESP" And

&bgndt2 &auxl_date Then

&GenerateTrigger_atep = "N";

Break;

End-If;



End-For;

End-If;



/* Scan thru rows in the backend only the ones which are not in the buffer. bcoz

if a row is deleted in scroll it

would still exist in backend*/

If &GenerateTrigger_atep = "Y" Then

&pincode_ATEP1 = "AT/EP ESP";

&BE_ATEPbgndt = Date(19000101);

&BE_ATEPenddt = Date(19000101);

&exists = "N";

SQLExec("SELECT PIN_NUM FROM PS_GP_PIN WHERE PIN_CODE = :1", &pincode_ATEP1,

&pintakenum_ATEP1);

SQLExec("SELECT EMPLID, %DateOut(BGN_DT), %DateOut(END_DT) FROM

PS_GP_ABS_EVENT WHERE EMPLID = :1 AND EMPL_RCD = :2 AND PIN_TAKE_NUM = :3 AND BGN_DT %DateIn(:5)", &emplid, &empl_rcd, &pintakenum_ATEP1, &bgndt,

&auxl_date, &exists, &BE_ATEPbgndt, &BE_ATEPenddt);



If None(&exists) Or

(&BE_ATEPbgndt >= DERIVED_GP_ABS.FROM_DATE And

&BE_ATEPbgndt = &BE_ATEPbgndt And

DERIVED_GP_ABS.FROM_DATE %DateIn(:4) AND %DATEADD(ORIG_BEGIN_DT,15)

%DateIn(:4) AND %DATEADD(ORIG_BEGIN_DT,15)

%DateIn(:4)", &emplid, &empl_rcd,

&pintakenum_IT, &bgndt, &exists, &TGR_ITorgbgndt, &TGR_ITbgndt, &TGR_ITenddt);



/* Checking the lacking period indicator.*/

If All(&exists) Then

SQLExec("SELECT GPES_LACKING_IND FROM PS_GPES_ABSEVT_AD WHERE EMPLID = :1 AND

EMPL_RCD = :2 AND PIN_TAKE_NUM = :3 AND BGN_DT = %DateIn(:4) AND END_DT = %DateIn(:5)",

&emplid, &empl_rcd, &pintakenum_IT, &TGR_ITbgndt, &TGR_ITenddt, &lackprd_ind);

End-If;



/*------Check Reference Date-----*/

If All(&exists) Then

If &TGR_ITbgndt >= &Date_REF Then

&TGR_ITorgbgndt = AddToDate(&TGR_ITorgbgndt, 0, 0, 1);

&TGR_ITbgndt = AddToDate(&TGR_ITbgndt, 0, 0, 1);

End-If;



&TGR_ITorgbgndt_Aux = AddToDate(&TGR_ITorgbgndt, 0, 0, 15);



If &TGR_ITorgbgndt_Aux = DERIVED_GP_ABS.FROM_DATE And

&TGR_ITbgndt = &TGR_ITbgndt And

DERIVED_GP_ABS.FROM_DATE = &Date_REF Then

&Dec_TGR_ITbgndt = AddToDate(&TGR_ITbgndt, 0, 0, - 1);

UpdateValue(GPES_ABS_TRIGR3.EFFDT, &lastrow, &Dec_TGR_ITbgndt);

Else



UpdateValue(GPES_ABS_TRIGR3.EFFDT, &lastrow, &TGR_ITbgndt);

End-If;

End-If;



End-If; /* &PIN_CODE = "AT/EP ESP"*/



/**************************************************************************************

*/



End-If;

End-For;



/* Deletes the row for which a trigger is already inserted in the GP Core trigger table */

For &rs3_index = &RS3_tgr.ActiveRowCount To 1 Step - 1



&rs3_emplid = &RS3_tgr.GetRow(&rs3_index).GPES_ABS_TRIGR3.EMPLID.Value;

&rs3_emplrcd = &RS3_tgr.GetRow(&rs3_index).GPES_ABS_TRIGR3.EMPL_RCD.Value;

&rs3_effdt = &RS3_tgr.GetRow(&rs3_index).GPES_ABS_TRIGR3.EFFDT.Value;

&rs3_country = "ESP";

&rs3_trg_id = "RISK_CODE";



&tgr_row_exists = " ";

SQLExec("SELECT EMPLID FROM PS_GP_SEG_TRGR WHERE EMPLID = :1 AND EMPL_RCD = :2 AND COUNTRY

= :3 AND TRGR_EVENT_ID = :4 AND TRGR_EFFDT = %DATEIN(:5)", &rs3_emplid, &rs3_emplrcd,

&rs3_country, &rs3_trg_id, &rs3_effdt, &tgr_row_exists);

SQLExec("SELECT EMPLID FROM PS_GP_SEG_TRGR WHERE EMPLID = :1 AND EMPL_RCD = :2 AND COUNTRY

= :3 AND TRGR_EVENT_ID = :4 AND TRGR_EFFDT = %DATEIN(:5) AND SEG_TRGR_STATUS = 'A'",

&rs3_emplid, &rs3_emplrcd, &rs3_country, &rs3_trg_id, &rs3_effdt, &tgr_row_exists);



If All(&tgr_row_exists) Then

DeleteRow(Record.GPES_ABS_TRIGR3, &rs3_index)

End-If;

End-For;









PeopleCode (CompRecord): GPGB_ABS_EVENT(GBL).GP_ABS_EVENT.SaveEdit

Local Rowset &rs1;



If GetRow().IsNew Or

GetRow().IsChanged Then



&rs1 = GetRow().ParentRowset;

rem find the row number to start;

For &p = 1 To &rs1.ActiveRowCount

Local Row &row = &rs1(&p);

If &row.IsNew Or

&row.IsChanged Then

&a = &rs1(&p).GP_ABS_EVENT.BGN_DT.Value;

&b = &rs1(&p).GP_ABS_EVENT.END_DT.Value;

&c = &rs1(&p).GP_ABS_EVENT.PIN_TAKE_NUM.Value;

&loop = &p;

End-If;

End-For;



For &i = 1 To &rs1.ActiveRowCount

rem validate only rows that have been changed/added;

/* For &i = 1 To &rs1.ActiveRowCount

&o_st_date = &rs1(&i).GP_ABS_EVENT.BGN_DT.Value;

&o_ed_date = &rs1(&i).GP_ABS_EVENT.END_DT.Value;

&pin_num1 = &rs1(&i).GP_ABS_EVENT.PIN_TAKE_NUM.Value;

*/

&o_st_date = &a;

&o_ed_date = &b;

&pin_num1 = &c;

If All(&o_ed_date) Then

For &j = 1 To &rs1.ActiveRowCount

If &i &j Then

If &j &loop Then

&st_date = &rs1(&j).GP_ABS_EVENT.BGN_DT.Value;

&ed_date = &rs1(&j).GP_ABS_EVENT.END_DT.Value;

&pin_num2 = &rs1(&j).GP_ABS_EVENT.PIN_TAKE_NUM.Value;



If All(&ed_date) Then

If &pin_num1 = &pin_num2 And

&o_st_date = &st_date Then

Error MsgGet(17130, 207, "", &pin_num1, &o_st_date, &st_date);

Else

&pin_take_num = " ";

SQLExec(SQL.GPGB_PIN_NUM, &pin_num1, &pin_num2, &o_st_date,

&pin_take_num);

&dup_ind =

&rs1(&i).GP_ABS_EVENT.PIN_TAKE_NUM.GetRelated(GP_ABS_TAKE.EVT_DUP_IND).Value;

&dup_ind =

&rs1(&loop).GP_ABS_EVENT.PIN_TAKE_NUM.GetRelated(GP_ABS_TAKE.EVT_DUP_IND).Value;

If ((&o_st_date >= &st_date And

&o_st_date = &st_date And

&o_st_date &pin_take_num)) Then

Error MsgGet(17130, 208, "");

End-If;

End-If;

End-If;





End-If;

End-For;

End-If;



End-For;

rem End-For;



End-If;









PeopleCode (CompRecord): GPGB_EE_TAX(GBL).GPGB_EE_TAX.SaveEdit

Local Record &employment;

Local date &Start_Dt, &Leave_Dt;

Local date &hire_dt;

Local string &taxcode, &substr;

Local number &len, ✓



If GetRow().IsNew Or

GetRow().IsChanged Then



/*The following section of code validates the taxcode format. If the format is correct,

the &check variable is set to '1'. If &check is 0 at the end of processing, then an

error message is displayed. The validation is done in Upper case, since the field

uses the upper case format.

*/

&check = 0;

&taxcode = GPGB_EE_TAX.TAXCODE_UK.Value;

&len = Len(&taxcode);



/*Checking for Scottish taxcode*/

If GPGB_EE_TAX.GPGB_SV_TAX_IND.Value = "Y" Then

&substr = Substring(&taxcode, 1, 1);

If &substr = "S" Then

&taxcode = Substring(&taxcode, 2, &len - 1);

&len = &len - 1;

Else

&check = 2;

End-If;

End-If;





If &len >= 2 And

&len 0 Then

&check = 1;

/* GPGB_EE_TAX.GPGB_TAX_CD_ALPHA = &substr;

GPGB_EE_TAX.GPGB_TAX_CD_NUM = Value(Substring(&taxcode, 2, &len - 1));*/

End-If;



/*nnnnnnx where nnnnnn is in the range of 1 _ 999999 and x is one of T, L, P, V or

Y*/

&substr = Substring(&taxcode, &len, 1);

If (&substr = "T" Or

&substr = "L" Or

&substr = "P" Or

&substr = "P" Or

&substr = "V" Or

&substr = "Y") And

IsDigits(Substring(&taxcode, 1, &len - 1)) And

Value(Substring(&taxcode, 1, &len - 1)) > 0 Then



&check = 1;

/* GPGB_EE_TAX.GPGB_TAX_CD_ALPHA = &substr;

GPGB_EE_TAX.GPGB_TAX_CD_NUM = Value(Substring(&taxcode, 1, &len - 1));*/

End-If;



/*other standard codes*/

If (&taxcode = "BR" Or

&taxcode = "0T" Or

&taxcode = "D0" Or

&taxcode = "NT") Then

&check = 1;

/* GPGB_EE_TAX.GPGB_TAX_CD_ALPHA = &taxcode;

GPGB_EE_TAX.GPGB_TAX_CD_NUM = 0;*/

End-If;

End-If;



Evaluate(&check)

When 0

/*Invalid taxcode format*/

If &len > 0 Then

GPGB_EE_TAX.TAXCODE_UK.SetCursorPos(%Page);

Error MsgGet(17130, 59, ""); /*MESSAGE SHOULD BE MODIFIED*/

End-If;

When 2

/*No preceding 'S' for Scottish taxcode*/

GPGB_EE_TAX.TAXCODE_UK.SetCursorPos(%Page);

Error MsgGet(17130, 42, "");

End-Evaluate;

/* Erase value of the P45 Calendar_run when new Employment */



SQLExec(SQL.GPGB_GET_START_DT, GPGB_EE_TAX.EMPLID, GPGB_EE_TAX.EMPL_RCD,

GPGB_EE_TAX.EFFDT, &Start_Dt);

SQLExec("SELECT %dateout(MAX(EFFDT)), ACTION FROM PS_JOB WHERE EMPLID=:1 AND

HR_STATUS=:2 AND ACTION=:3 GROUP BY EFFDT,ACTION ", GPGB_EE_TAX.EMPLID, "A", "HIR",

&hire_dt, &ACTION);

If GPGB_EE_TAX.EFFDT 0 Or

GPGB_EE_TAX.GPGB_P45_TAX_TD.Value > 0) And

None(GPGB_EE_TAX.GPGB_TAX_YR_END) Then

Error MsgGet(17130, 88, "");

End-If;









/*Cross validation between p46 and stmts a,b,c*/





/*Cross validation between p46 and stmts a,b,c*/

If (GPGB_EE_TAX.GPGB_TAX_CD_SRC.Value = "P46") And

(GPGB_EE_TAX.GPGB_P46_STATMNTA "Y") And

(GPGB_EE_TAX.GPGB_P46_STATMNTB "Y") And

(GPGB_EE_TAX.GPGB_P46_STATMNTC "Y") Then



Error MsgGet(17130, 251, "");

End-If;







/*Cross validation when Notification Source is P45*/

If GPGB_EE_TAX.GPGB_TAX_CD_SRC.Value = "P45" Then

/* CHECK FOR THE MANDATORY EDI VALUES */

If Not All(GPGB_EE_TAX.GPGB_ER_TAXNUM, GPGB_EE_TAX.GPGB_PREV_ER_PAYE,

GPGB_EE_TAX.GPGB_LEAVE_DT, GPGB_EE_TAX.GPGB_PREV_TAX_CD, GPGB_EE_TAX.GPGB_PREV_TX_BASIS,

GPGB_EE_TAX.GPGB_TAX_YR_END) Then

Warning MsgGet(17130, 248, "");

If Not All(GPGB_EE_TAX.GPGB_ER_TAXNUM, GPGB_EE_TAX.GPGB_PREV_ER_PAYE,

GPGB_EE_TAX.GPGB_LEAVE_DT, GPGB_EE_TAX.GPGB_PREV_TAX_CD) Then

Error MsgGet(17130, 248, "");

End-If;

/* end check*/



If GPGB_EE_TAX.GPGB_PREV_TX_BASIS.Value = "1" And

(All(GPGB_EE_TAX.GPGB_PREV_PERIOD) Or

All(GPGB_EE_TAX.GPGB_PREV_WKMTH) Or

All(GPGB_EE_TAX.GPGB_P45_PAY_TD) Or

All(GPGB_EE_TAX.GPGB_P45_TAX_TD)) Then

Error MsgGet(17130, 128, "");

End-If;

If GPGB_EE_TAX.GPGB_PREV_TX_BASIS.Value = "0" And

(None(GPGB_EE_TAX.GPGB_PREV_PERIOD) Or

None(GPGB_EE_TAX.GPGB_PREV_WKMTH)) Then

Warning MsgGet(17130, 129, "");

End-If;

If GPGB_EE_TAX.GPGB_PREV_TX_BASIS.Value = "0" And

Not (GPGB_EE_TAX.GPGB_P45_PAY_TD.Value > 0 Or

GPGB_EE_TAX.GPGB_P45_TAX_TD.Value > 0) Then

Warning MsgGet(17130, 131, "");

End-If;

End-If;



/*Issue warning if history has been modified*/

If Not GetRow().IsNew And

GetRow().IsChanged Or

GetRow().IsDeleted Then

Warning MsgGet(17130, 136, "");

End-If;







/*Warnings to be displayed on changing Student Loans check box in P45/P46 group box*/

Local string &emplid1, &emplid2;

Local date &re_dt;

If Not GetRow().IsNew And

(GPGB_EE_TAX.GPGB_TAX_CD_SRC.Value = "P45" Or

GPGB_EE_TAX.GPGB_TAX_CD_SRC.Value = "P46") And

GPGB_EE_TAX.GPGB_P45_STLOAN.Value = "Y" And

GPGB_EE_TAX.GPGB_P45_STLOAN.OriginalValue = "N" Then

&emplid1 = "";

&emplid2 = "";

SQLExec("SELECT DISTINCT EMPLID FROM PS_GPGB_EE_STLOAN WHERE EMPLID = :1 AND EMPL_RCD

= :2", GPGB_EE_TAX.EMPLID.OriginalValue, GPGB_EE_TAX.EMPL_RCD.OriginalValue, &emplid2);

If &emplid2 = "" Then

/*no record previously exists in student loans record*/

SQLExec("SELECT DISTINCT A.EMPLID FROM PS_GP_PYE_PRC_STAT A, PS_GPGB_EE_RSLT B

WHERE A.EMPLID = B.EMPLID AND A.CAL_RUN_ID = B.CAL_RUN_ID AND A.EMPL_RCD = B.EMPL_RCD AND

A.GP_PAYGROUP = B.GP_PAYGROUP AND A.CAL_ID = B.CAL_ID AND A.EMPLID = :1 AND A.EMPL_RCD =

:2 AND A.PRD_BGN_DT = %DateIn(:3)",

GPGB_EE_TAX.EMPLID.OriginalValue, GPGB_EE_TAX.EMPL_RCD.OriginalValue,

GPGB_EE_TAX.EFFDT.OriginalValue, &emplid1);

If &emplid1 = GPGB_EE_TAX.EMPLID.Value Then

Warning MsgGet(17130, 133, "");

End-If;

Else

/*A record exists in the student loans record*/

&emplid1 = "";

SQLExec("SELECT EMPLID FROM PS_GPGB_EE_STLOAN WHERE EMPLID = :1 AND EMPL_RCD = :2

AND START_DATE = %DateIn(:3)", GPGB_EE_TAX.EMPLID.OriginalValue,

GPGB_EE_TAX.EMPL_RCD.OriginalValue, GPGB_EE_TAX.EFFDT.OriginalValue, &emplid1);

If &emplid1 = "" Then

Warning MsgGet(17130, 134, "");

End-If;

End-If;

End-If;



If Not GetRow().IsNew And

(GPGB_EE_TAX.GPGB_TAX_CD_SRC.OriginalValue = "P45" Or

GPGB_EE_TAX.GPGB_TAX_CD_SRC.OriginalValue = "P46") And

GPGB_EE_TAX.GPGB_P45_STLOAN.Value = "N" And

GPGB_EE_TAX.GPGB_P45_STLOAN.OriginalValue = "Y" Then

&emplid2 = "";

SQLExec("SELECT EMPLID FROM PS_GPGB_EE_STLOAN WHERE EMPLID = :1 AND EMPL_RCD = :2 AND

START_DATE = %DateIn(:3)", GPGB_EE_TAX.EMPLID.OriginalValue,

GPGB_EE_TAX.EMPL_RCD.OriginalValue, GPGB_EE_TAX.EFFDT.OriginalValue, &emplid2);

If &emplid2 = GPGB_EE_TAX.EMPLID.Value Then

Warning MsgGet(17130, 135, "");

End-If;

End-If;



End-If;









Local Rowset &grid2;



&grid2 = GetRowset(Scroll.GPGB_EE_TAX_NTS);



If (&grid2(1).GPGB_EE_TAX_NTS.GPGB_NOTES.Value = "") Then

&grid2(1).GPGB_EE_TAX_NTS.GPGB_NOTES.Label =

&grid2(1).GPGB_EE_TAX_NTS.GPGB_NOTES.GetLongLabel("GPGB_ADD_NOTES");

Else

&grid2(1).GPGB_EE_TAX_NTS.GPGB_NOTES.Label =

&grid2(1).GPGB_EE_TAX_NTS.GPGB_NOTES.GetLongLabel("GPGB_EDIT_NOTES");

End-If;









PeopleCode (CompRecord): GPIN_YE_F24_F16(GBL).GPIN_F16_AK_DTL.SaveEdit

Warning MsgGetText(17410, 49, "Message not found")

PeopleCode (CompRecFld): GPES_SSTC_IND_RES(GBL).DERIVED_GPES.SEARCH_BUTTON

FieldChange

Local Rowset &rs_dat;







If None(DERIVED_GPES.GPES_YEARFROM.Value) Then

SetCursorPos(Page.GPES_SSTC_IND_DAT, DERIVED_GPES.GPES_YEARFROM, CurrentRowNumber());

Error MsgGet(17170, 103, "", Field.GPES_YEARFROM.GetLongLabel("YEARFROM"));

End-If;

If None(DERIVED_GPES.GPES_MONTHFROM.Value) Then

SetCursorPos(Page.GPES_SSTC_IND_DAT, DERIVED_GPES.GPES_MONTHFROM,

CurrentRowNumber());

Error MsgGet(17170, 103, "", Field.GPES_MONTHFROM.GetLongLabel("MONTHFROM"));

End-If;



If None(DERIVED_GPES.GPES_YEARTO.Value) Then

DERIVED_GPES.GPES_YEARTO.Value = 2030;

End-If;

If None(DERIVED_GPES.GPES_MONTHTO.Value) Then

DERIVED_GPES.GPES_MONTHTO.Value = 12

End-If;



/*'From Month/Year' is greater than 'To Month/Year'*/

If (DERIVED_GPES.GPES_YEARFROM.Value > DERIVED_GPES.GPES_YEARTO.Value) Then

Error MsgGet(17170, 68, "");

End-If;



/*'From Month/Year' is greater than 'To Month/Year'*/

If (DERIVED_GPES.GPES_YEARFROM.Value = DERIVED_GPES.GPES_YEARTO.Value) And

(DERIVED_GPES.GPES_MONTHFROM.Value > DERIVED_GPES.GPES_MONTHTO.Value) Then

Error MsgGet(17170, 68, "");

End-If;





&rs_dat = GetLevel0()(1).GetRowset(Scroll.GPES_SSTC_DAT_C);

&rs_dat.Flush();



/*Avoiding DB2 Specific error SQL0417N A statement string to be prepared contains parameter

markers as the operands of the same operator: DB2 does not understand the part "... :2 =

:3 ...". It seems that it requiresto cast one of the operator sides. But CAST does not work

for Sybase (Which uses CONVERT). So, we convert the numeric values to string that way we

implicitly cast the parameters */

&rs_dat.Select(Record.GPES_SSTC_DAT_C, "

WHERE EMPLID = :1 AND ((:2 = :3 AND GPES_YEAR = :2 AND GPES_MONTH BETWEEN :4 AND :5) OR (:2

:3 AND ((GPES_YEAR = :2 AND GPES_MONTH >= :4) OR (GPES_YEAR = :3 AND GPES_MONTH :2 AND GPES_YEAR %NumToChar(:3) AND ((GPES_YEAR = :2 AND GPES_MONTH

>= :4) OR (GPES_YEAR = :3 AND GPES_MONTH :2 AND GPES_YEAR < :3))))

ORDER BY COMPANY, SSN_EMPLOYER, GPES_YEAR, GPES_MONTH, GPES_SSTC_PAYMNT, GPES_YEAR_RECALC,

GPES_MONTH_RECALC, SLICE_BGN_DT", GPES_SSTC_DAT_C.EMPLID.Value,

DERIVED_GPES.GPES_YEARFROM.Value, DERIVED_GPES.GPES_YEARTO.Value,

DERIVED_GPES.GPES_MONTHFROM.Value, DERIVED_GPES.GPES_MONTHTO.Value);



Related docs
Other docs by linxiaoqin
Volume 9 Issue 1- Winter 2-4-2004 _Read-Only_
Views: 17  |  Downloads: 0
VOLUME 35_ NUMBER 5 DECEMBER 10_ 2007
Views: 10  |  Downloads: 0
Volmer Axel-Antero
Views: 25  |  Downloads: 0
Voices for Change
Views: 9  |  Downloads: 0
Vocation Vacation
Views: 10  |  Downloads: 0
VISIT OUR SHOP CONTACT US
Views: 11  |  Downloads: 0
Visit of cellars
Views: 9  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!