source: WorldVistAEHR/trunk/r/PAID-PRS/PRS8CR.m@ 1800

Last change on this file since 1800 was 623, checked in by George Lilly, 15 years ago

revised back to 6/30/08 version

File size: 2.9 KB
RevLine 
[623]1PRS8CR ;HISC/MRL-DECOMPOSITION, CREATE STRING ;8/23/01
2 ;;4.0;PAID;**2,6,45,69**;Sep 21, 1995
3 ;
4 ;This routine take the information contained in the WK array
5 ;and creates the activity string to be passed to Austin. The
6 ;WK(1) node contains those items pertaining to Week 1 activity,
7 ;WK(2) contains those items pertaining to Week 2 activity and
8 ;WK(3) contains the Miscellaneous information shown on the bottom
9 ;of the timecard.
10 ;
11 ;Called by Routines: PRS8DR
12 ;
13 ;Variable S contains the lengths of each of the Values for the
14 ;different time codes. Used to format values with leading and
15 ;trailing zero's
16 N MLINHRS
17 S MLINHRS=$$MLINHRS^PRSAENT(DFN)
18 S S="33333333333333333333333333333333344362323333333"
19 S E(1)="ANSKWDNOAURTCECUUNNANBSPSASBSCDADBDCTFOAOBOCYAOKOMRARBRCHAHBHCPTPAONYDHDVCEA EB TATCFAFCADNT"
20 S E(2)="ALSLWPNPABRLCTCOUSNRNSSQSESFSGDEDFDGTGOEOFOGYEOSOURERFRGHLHMHNPHPBCLYHHOVSEC ED TBTDFBFDAFNH"
21 S E(3)="NLDWINTLLULNLDDTTOLAMLCAPCCYRRFFFECD"
22 K V S V="" F I=1,2,3 S V(I)=""
23 ;
24 ;Next section gets Week 1 and Week 2 data and stores in V(WK)
25 F J=1,2 F I=1:1:38,40,42,43,44,45,46,47 S X=+$P(WK(J),"^",I) I X]"" D
26 .I TYP'["D",I'=38,I'=40 D QH
27 .I TYP["D" S X=+X_"0"
28 .I TYP["Pd",$E(ENT,2)'="D",$P(WK(J),"^",32)="",V(J)="" S V(J)=V(J)_$S(J=1:"PT000",J=2:"PH000",1:"") ;for p/t drs put PT,PH in 8B string even if they are 0 (PT+PH=NH)
29 .I I=32,TYP["P",TYP["N",TYP'["B"!(TYP["H"),'X D Q
30 ..S X=$E("0000000",0,+$E(S,I)-$L(X))_X
31 ..S V(J)=V(J)_$E(E(J),I+(I-1),I*2)_X
32 ..Q
33 .I I=37,$P(C0,"^",20)="P",$P(C0,"^",21)="U" D
34 ..S X=$E("0000000",0,+$E(S,I)-$L(X))_X
35 ..I 'X S V(J)=V(J)_$E(E(J),I+(I-1),I*2)_X
36 ..Q
37 .S X=+X I I=32,TYP["Pd",X=0 S X=1
38 .Q:'X
39 .I I=32,TYP["Pd",X=1 S X=0
40 .I I=38!(I=40) D
41 ..S Z=X,X=4*$P(WK(J),"^",I+1) D QH
42 ..S X=($E("00",0,$E(S,I)-$L(Z))_+Z)_($E("000",0,$E(S,I+1)-$L(+X))_+X) ;combine env. diff. % and hours
43 ..Q
44 .E S X=$E("0000000",0,+$E(S,I)-$L(X))_+X
45 .I +X S V(J)=V(J)_$E(E(J),I+(I-1),I*2)_X,V=V+X
46 ;
47 ;Now we get miscellaneous data
48 ;
49 S S="22134446114423146"
50 F I=1:1:17 S X=$P(WK(3),"^",I) I X'="" D
51 .I I=11 D
52 . . I MLINHRS D QH ; Convert to 1/4 hours.
53 . . I MLINHRS=0 S X=X_"0" ; Convert to 1/4 hours.
54 .S X=$E("000000",0,+$E(S,I)-$L(X))_X
55 .I $D(X) S V(3)=V(3)_$E(E(3),I+(I-1),I*2)_X,V=V+X
56 ;
57 ;finish up
58 ;
59 S VAL="" I $L(V(1))!($L(V(2)))!($L(V(3))) S X=V(1)_V(2)_V(3)_"CD"_$E("000000",0,6-$L(+V))_+V,VAL=X
60 ;
61STUB ; --- enter here to create stub only
62 I '($D(VAL)#2) S VAL=""
63 ; code below to add CP field to STUB record (32nd position)
64 S CPFX=""
65 S CPFX=$P($G(^PRST(458,PY,"E",DFN,0)),"^",6) ;get CP from 458
66 I CPFX="" S CPFX=$P($G(^PRSPC(DFN,1)),"^",7) ;if 458 null get from 450
67 I "0"[CPFX S CPFX=" " ;if it is 0 or "" set CPFX = " "
68 S PPE=$G(^PRST(458,+PY,0)),PPE=$P(PPE,"^",1),PPI=+PY D ^PRSAXSR
69 S VAL=HDR_CPFX_VAL ;decomp no longer saves 8B in 5 node (6/95)
70 K I,J,S Q
71 ;
72QH ; --- for persons paid hourly/convert to Quarter Hours
73 ;
74 I I'=37 S X1=X#4,X=X\4_+X1 K X1
75 Q
Note: See TracBrowser for help on using the repository browser.