| 1 | PRSXP43 ;WCIOFO/JAH-POST INIT FOR PATCH 43 OT WARNINGS--8/18/98 | 
|---|
| 2 | ;;4.0;PAID;**43**;Sep 21, 1995 | 
|---|
| 3 | ;PAID | 
|---|
| 4 | ; Post install loops thru the pay period (pp) file (458) & looks for | 
|---|
| 5 | ; situations where an overtime warning should appear on the Pay Period | 
|---|
| 6 | ; Exceptions report. If such condition occurs, warning is filed in the | 
|---|
| 7 | ; file 458.6 (OVERTIME WARNINGS)--new with patch 43 & used to maintain | 
|---|
| 8 | ; status of overtime warnings.  Payroll may later clear warnings | 
|---|
| 9 | ; thru the new option Overtime Warnings. | 
|---|
| 10 | Q | 
|---|
| 11 | ; | 
|---|
| 12 | SERCH4OT ; | 
|---|
| 13 | N PPSTART,XPDIDTOT,PPI,PPE,PRSDIV,PRSPCT,DFN,OTFLCNT | 
|---|
| 14 | S PPSTART="1998-11",OTFLCNT=0 | 
|---|
| 15 | ;quit if patch installed already | 
|---|
| 16 | I $$PATCH^XPDUTL("PRS*4.0*43") D MES^XPDUTL("     OT Warning search skipped. Checked on earlier PRS*4*43 install") Q | 
|---|
| 17 | ; | 
|---|
| 18 | ; update installer of patch with messages about post-install. | 
|---|
| 19 | ; | 
|---|
| 20 | S PPSTART=$O(^PRST(458,"AB",PPSTART)) | 
|---|
| 21 | Q:$G(PPSTART)'>0 | 
|---|
| 22 | S PPI=$O(^PRST(458,"AB",PPSTART,0)) | 
|---|
| 23 | Q:$G(PPI)'>0 | 
|---|
| 24 | ; | 
|---|
| 25 | D MES^XPDUTL("     This process may take several minutes.") | 
|---|
| 26 | D MES^XPDUTL("     Estimating # of records to check for overtime (OT) warnings.") | 
|---|
| 27 | S XPDIDTOT=$$TOTAL(PPSTART) | 
|---|
| 28 | S PRSDIV=XPDIDTOT\50 I 'PRSDIV S PRSDIV=1 | 
|---|
| 29 | S PRSPCT=0 | 
|---|
| 30 | ; | 
|---|
| 31 | D MES^XPDUTL("     OT check--TT8B string vs. request--pay period "_PPSTART_" to present.") | 
|---|
| 32 | ; | 
|---|
| 33 | ; back up PPI to include records from current PPI in loop | 
|---|
| 34 | S PPI=PPI-.1 | 
|---|
| 35 | F  S PPI=$O(^PRST(458,PPI)) Q:PPI'>0  D | 
|---|
| 36 | .S PPE=$P($G(^PRST(458,PPI,0)),"^") | 
|---|
| 37 | .S DFN=0 | 
|---|
| 38 | .F  S DFN=$O(^PRST(458,PPI,"E",DFN)) Q:DFN'>0  D | 
|---|
| 39 | ..   S PRSPCT=PRSPCT+1 ; # records processed | 
|---|
| 40 | ..;  call to KIDS to update %complete bar at bottom of install screen. | 
|---|
| 41 | ..   I '(PRSPCT#PRSDIV),(PRSPCT<XPDIDTOT) D UPDATE^XPDID(PRSPCT) | 
|---|
| 42 | ..; | 
|---|
| 43 | ..   Q:'$D(^PRST(458,PPI,"E",DFN,"D",0)) | 
|---|
| 44 | ..; | 
|---|
| 45 | ..;   If timecard does not have a status of (T)imekeeper. | 
|---|
| 46 | ..;   and there is a TT8b string on file. | 
|---|
| 47 | ..;   Compare OT that's been calculated in the | 
|---|
| 48 | ..;   TT8B to that which is approved in the request file. | 
|---|
| 49 | ..; | 
|---|
| 50 | ..    N TT8B,STATUS,WEEK,OT8B,OTAPP | 
|---|
| 51 | ..    S TT8B=$G(^PRST(458,PPI,"E",DFN,5)),STATUS=$P($G(^(0)),"^",2) | 
|---|
| 52 | ..    Q:(STATUS="T")!(TT8B="") | 
|---|
| 53 | ..    F WEEK=1:1:2 D | 
|---|
| 54 | ...      D GETOTS^PRSAOTT(PPE,DFN,TT8B,WEEK,.OT8B,.OTAPP) | 
|---|
| 55 | ...      I OTAPP<OT8B D | 
|---|
| 56 | ....       D FILEOTW^PRSAOTTF(PPI,DFN,WEEK,OT8B,OTAPP) | 
|---|
| 57 | ....       S OTFLCNT=OTFLCNT+1 | 
|---|
| 58 | D UPDATE^XPDID(XPDIDTOT) | 
|---|
| 59 | D MES^XPDUTL("          "_OTFLCNT_" overtime warnings filed in 458.6") | 
|---|
| 60 | D MES^XPDUTL("     Please delete routine PRSXP43 when installation is complete.") | 
|---|
| 61 | Q | 
|---|
| 62 | TOTAL(PPE4Y) ;ESTIMATE TOTAL RECORDS TO EXAM DURING POST INIT | 
|---|
| 63 | ; Get # of records for 1 pay period (pp) & multiply by # of pps on | 
|---|
| 64 | ; file from pp passed in.  This total estimates records to | 
|---|
| 65 | ; process during post-install & is used to update KIDS % complete bar. | 
|---|
| 66 | ; INPUT:  pp in 4 digit year format | 
|---|
| 67 | ; LOCAL:  PPS = # pps from PPE4Y to present | 
|---|
| 68 | ;         PPE = pp external.  PPI = pp ien.  DFN = timecard ien | 
|---|
| 69 | ; OUTPUT: TOT = estimated timecards from pp passed (PPE4Y)- present | 
|---|
| 70 | ; | 
|---|
| 71 | S TOT=0 | 
|---|
| 72 | N PPS,PPE,PPI,DFN | 
|---|
| 73 | S PPS=1,PPE=PPE4Y | 
|---|
| 74 | F  S PPE=$O(^PRST(458,"AB",PPE)) Q:PPE'>0  S PPS=PPS+1 | 
|---|
| 75 | S PPI=$O(^PRST(458,"AB",PPE4Y,0)) | 
|---|
| 76 | ; | 
|---|
| 77 | Q:$G(PPI)'>0 TOT | 
|---|
| 78 | S TOT=$P($G(^PRST(458,PPI,"E",0)),"^",4) | 
|---|
| 79 | I TOT'>0 D | 
|---|
| 80 | .  S DFN=0 F  S DFN=$O(^PRST(458,PPI,"E",DFN)) Q:DFN'>0  S TOT=TOT+1 | 
|---|
| 81 | S TOT=TOT*PPS | 
|---|
| 82 | Q TOT | 
|---|
| 83 | ; | 
|---|