| 1 | PRSAXMIT ; HISC/FPT-Transmit 8B Records ;8/17/95  08:45 | 
|---|
| 2 | ;;4.0;PAID;;Sep 21, 1995 | 
|---|
| 3 | ;                       VARIABLES USED | 
|---|
| 4 | ;                       --------- ---- | 
|---|
| 5 | ;  EMPCNT  = number of employees processed | 
|---|
| 6 | ;  IEN     = employee's internal entry number (file 450) | 
|---|
| 7 | ;  LENGTH  = length of 8b record | 
|---|
| 8 | ;  LOOP    = for loop variable | 
|---|
| 9 | ;  PPE     = pay period | 
|---|
| 10 | ;  PPI     = pay period internal entry number | 
|---|
| 11 | ;  RECCNT  = number of records per message | 
|---|
| 12 | ;  RECORD  = 8b record | 
|---|
| 13 | ;  STUB    = characters 1 thru 32 of the 8b record | 
|---|
| 14 | ;  SN      = station number | 
|---|
| 15 | ;  TLE     = t&l unit number | 
|---|
| 16 | ;  TLI     = t&l unit internal entry number (#455.5) | 
|---|
| 17 | ;  TRECCNT = total number of records transmitted | 
|---|
| 18 | ; | 
|---|
| 19 | ;                       ARRAYS USED | 
|---|
| 20 | ;                       ------ ---- | 
|---|
| 21 | ;   ^TMP($J)        = 8b records that will be passed to xmtext | 
|---|
| 22 | ;   ^TMP("PRSA",$J) = employee iens (used to change status of record) | 
|---|
| 23 | ; | 
|---|
| 24 | K DIC S DIC="^PRST(458,",DIC(0)="AEMQZ" S PPI=$P($G(^PRST(458,0)),U,3) I PPI<1 D KILL Q | 
|---|
| 25 | S DIC("B")=$P(^PRST(458,PPI,0),U,1) D ^DIC K DIC I +Y<1 D KILL Q | 
|---|
| 26 | S PPI=+Y D CHECK G:YN["^" KILL | 
|---|
| 27 | S PPE=$P($P(^PRST(458,PPI,0),U),"-",2) | 
|---|
| 28 | K DIR S DIR(0)="Y",DIR("A")="Ready to Transmit to Austin",DIR("B")="NO" | 
|---|
| 29 | W ! D ^DIR K DIR I $D(DIRUT)!(Y=0) D KILL Q | 
|---|
| 30 | W !!,"Transmitting to Austin " | 
|---|
| 31 | K ^TMP("PRSA",$J),^TMP($J) | 
|---|
| 32 | S (EMPCNT,IEN,RECCNT,TRECCNT)=0 | 
|---|
| 33 | F  S IEN=$O(^PRST(458,PPI,"E",IEN)) Q:IEN'>0  I $P($G(^PRST(458,PPI,"E",IEN,0)),U,2)="P" D PROCESS D:RECCNT>174 MAIL | 
|---|
| 34 | D:RECCNT>0 MAIL | 
|---|
| 35 | S X="N",%DT="XT" D ^%DT S NOW=+Y K %DT | 
|---|
| 36 | I EMPCNT>0 S $P(^PRST(458,PPI,0),U,2)=DUZ,$P(^PRST(458,PPI,0),U,3)=NOW,$P(^PRST(458,PPI,0),U,4)=$P(^PRST(458,PPI,0),U,4)+EMPCNT,$P(^PRST(458,PPI,0),U,5)=$P(^PRST(458,PPI,0),U,5)+TRECCNT | 
|---|
| 37 | ; | 
|---|
| 38 | W !!,EMPCNT," Employees Processed",! | 
|---|
| 39 | KILL K DIR,DIROUT,DIRUT,DTOUT,DUOUT,EMPCNT,IEN,NOW,PPE,PPI,RECCNT,RECORD,SN,TLE,TLI,TRECCNT,X,Y Q | 
|---|
| 40 | ; | 
|---|
| 41 | PROCESS ; | 
|---|
| 42 | S RECORD=$G(^PRST(458,PPI,"E",IEN,5)) | 
|---|
| 43 | I RECORD="" W !,"8B record is missing for ",$P($G(^PRSPC(IEN,0)),U,1) Q | 
|---|
| 44 | S TLE=$E(RECORD,22,24) | 
|---|
| 45 | S EMPCNT=EMPCNT+1,STUB=$E(RECORD,1,32) | 
|---|
| 46 | AGAIN I $L(RECORD)<81 S RECCNT=RECCNT+1,^TMP($J,RECCNT)=RECORD_$J("",80-$L(RECORD)) W:RECCNT#100=1 "." S ^TMP("PRSA",$J,IEN)="" K LENGTH,RECORD,STUB Q | 
|---|
| 47 | F LENGTH=80:-1:33 Q:$E(RECORD,LENGTH-1,LENGTH)?2U | 
|---|
| 48 | S RECCNT=RECCNT+1,^TMP($J,RECCNT)=$E(RECORD,1,LENGTH-2)_$J("",80-(LENGTH-2)),RECORD=STUB_$E(RECORD,LENGTH-1,$L(RECORD)) G AGAIN | 
|---|
| 49 | Q | 
|---|
| 50 | ; | 
|---|
| 51 | MAIL ; call MailMan | 
|---|
| 52 | S XMDUZ=.5 | 
|---|
| 53 | S XMY("G.TAB@"_^XMB("NETNAME"))="" | 
|---|
| 54 | S XMY("XXX@Q-TAB.VA.GOV")="" | 
|---|
| 55 | S SN=$P($G(^XMB(1,1,"XUS")),"^",17),SN=$S(+SN>0:$P($G(^DIC(4,SN,99)),"^",1),1:"") | 
|---|
| 56 | S XMSUB=^DD("SITE")_" ("_SN_") Payroll Data (Pay Period "_PPE_")" | 
|---|
| 57 | S XMTEXT="^TMP($J,",XMDUZ=.5 D ^XMD | 
|---|
| 58 | I XMZ>0 D | 
|---|
| 59 | .S LOOP=0 F  S LOOP=$O(^TMP("PRSA",$J,LOOP)) Q:LOOP'>0  S $P(^PRST(458,PPI,"E",LOOP,0),U,2)="X" | 
|---|
| 60 | .S:'$D(^PRST(458,PPI,"X",0)) ^PRST(458,PPI,"X",0)="^458.03P^^" K DIC,DD,DO S DIC="^PRST(458,PPI,""X"",",DIC(0)="L",DLAYGO=458,DA(1)=PPI,(X,DINUM)=XMZ D FILE^DICN K DIC,DINUM | 
|---|
| 61 | .D NOW^%DTC | 
|---|
| 62 | .S $P(^PRST(458,PPI,"X",+Y,0),U,2)=DUZ | 
|---|
| 63 | .S $P(^PRST(458,PPI,"X",+Y,0),U,3)=% | 
|---|
| 64 | .S TRECCNT=TRECCNT+RECCNT | 
|---|
| 65 | S RECCNT=0 | 
|---|
| 66 | K %,^TMP("PRSA",$J),^TMP($J),DA,DD,DIC,DINUM,DLAYGO,DO,LOOP,X,XMDUZ,XMSUB,XMTEXT,XMY,XMZ,Y,XMLOC,XMMG Q | 
|---|
| 67 | CHECK ; Run 8B Edit Check | 
|---|
| 68 | W !!,"Edit Checks will now be run ...",! | 
|---|
| 69 | D CODES^PRSACED6 S YN="",COUNT=0,HDR=1 | 
|---|
| 70 | S ATL="ATL00" F  S ATL=$O(^PRSPC(ATL)) Q:ATL'?1"ATL".E  S TL=$E(ATL,4,6),NAM="" F  S NAM=$O(^PRSPC(ATL,NAM)) Q:NAM=""  F DFN=0:0 S DFN=$O(^PRSPC(ATL,NAM,DFN)) Q:DFN<1  D  G:YN["^" AB | 
|---|
| 71 | .I '$D(^PRST(458,PPI,"E",DFN,5)) Q | 
|---|
| 72 | .I $P(^PRST(458,PPI,"E",DFN,0),"^",2)'="P" Q | 
|---|
| 73 | .S COUNT=COUNT+1 D ^PRSACED1 W:COUNT#50=1 "." Q | 
|---|
| 74 | Q | 
|---|
| 75 | AB W !,"Edit Checks aborted. NO Transmission.",! Q | 
|---|