| 1 | PRCNUTL ;SSI/ALA-UTILITY PROGRAM ;[ 09/11/96  2:08 PM ]
 | 
|---|
| 2 |  ;;1.0;Equipment/Turn-In Request;**15**;Sep 13, 1996
 | 
|---|
| 3 | SEQ ;  Get the next sequential number, returns PRCNDA and TST
 | 
|---|
| 4 |  ;   TST is the beginning part of the transaction number
 | 
|---|
| 5 |  S NDA=$O(^PRCN(413.7,"B",TST,"")) I NDA="" D
 | 
|---|
| 6 |  . NEW DIC,DIE,DA,DR,DLAYGO
 | 
|---|
| 7 |  . S X=TST,DIC="^PRCN(413.7,",DIC(0)="L",DLAYGO=413.7 D FILE^DICN
 | 
|---|
| 8 |  . S NDA=+Y,$P(^PRCN(413.7,NDA,0),U,2)=0
 | 
|---|
| 9 |  S PRCNDA=$P(^PRCN(413.7,NDA,0),U,2)+1,$P(^PRCN(413.7,NDA,0),U,2)=PRCNDA
 | 
|---|
| 10 | EXIT K NDA,X,Y Q
 | 
|---|
| 11 | EMSG ;  Loop for message for requests
 | 
|---|
| 12 |  S (X,CT)=0 F  S X=$O(^PRCN(413,"AC",STA,X)) Q:X=""  D
 | 
|---|
| 13 |  . I STA=1,$P(^PRCN(413,X,0),U,2)'=DUZ Q
 | 
|---|
| 14 |  . I STA=3,$P(^PRCN(413,X,0),U,6)'=DUZ Q
 | 
|---|
| 15 |  . I STA=9,$G(^PRCN(413,X,5,"B",DUZ))="" Q
 | 
|---|
| 16 |  . I STA=45,$P(^PRCN(413,X,0),U,6)'=DUZ Q
 | 
|---|
| 17 |  . S CT=CT+1
 | 
|---|
| 18 |  I CT>0 W $C(7),!!! D
 | 
|---|
| 19 |  . S TEX3=$P(^PRCN(413.5,STA,0),U),TEX1=$S(CT=1:"is",1:"are")
 | 
|---|
| 20 |  . S TEX2=$S(CT=1:"request",1:"requests")
 | 
|---|
| 21 |  . W !,?3,"There "_TEX1_" "_CT_" equipment "_TEX2_" "_TEX3_"."
 | 
|---|
| 22 |  K X,CT,TEX1,TEX2,TEX3
 | 
|---|
| 23 |  Q
 | 
|---|
| 24 | TMSG ;  Loop for turn-in messages
 | 
|---|
| 25 |  S (X,CT)=0 F  S X=$O(^PRCN(413.1,"AC",STA,X)) Q:X=""  D
 | 
|---|
| 26 |  . I STA=1,$P(^PRCN(413.1,X,0),U,2)'=DUZ Q
 | 
|---|
| 27 |  . I STA=3,$P(^PRCN(413.1,X,0),U,6)'=DUZ Q
 | 
|---|
| 28 |  . S CT=CT+1
 | 
|---|
| 29 |  I CT>0 W $C(7),!!! D
 | 
|---|
| 30 |  . S TEX1=$S(CT=1:"is",1:"are"),TEX2=$S(CT=1:"request",1:"requests")
 | 
|---|
| 31 |  . S TEX3=$P(^PRCN(413.5,STA,0),U)
 | 
|---|
| 32 |  . W ?3,"There "_TEX1_" "_CT_" Turn-In "_TEX2_" "_TEX3
 | 
|---|
| 33 |  K X,CT Q
 | 
|---|
| 34 |  ; Electronic Signature Code check. FAIL is defined if check fails.
 | 
|---|
| 35 | ES S FAIL="" D ESIG^PRCUESIG(DUZ,.FAIL)
 | 
|---|
| 36 | ES1 I FAIL<1 W $C(7),"  SIGNATURE CODE FAILURE " R X:3 G EQ
 | 
|---|
| 37 | EQ K X,I Q
 | 
|---|
| 38 | FYQ ;RETURNS FY AND QTR GIVEN IN FILEMANAGER DATE IN 'X'
 | 
|---|
| 39 |  G:'$D(X) QQ G:X=""!($E(X,1,7)'?7N)!(+$E(X,1,7)'=$E(X,1,7)) QQ
 | 
|---|
| 40 |  S Y=$E(X,2,3),Y(1)=$E(X,4,5),PRC("FY")=$S(Y(1)<10:Y,1:Y+1)
 | 
|---|
| 41 |  S PRC("QTR")=$S(Y(1)<4:2,Y(1)<7:3,Y(1)<10:4,1:1) K Y S %=1 Q
 | 
|---|
| 42 | QQ K PRC,PRCF("X"),PRCB,%DT,DIC,%F,A,B,X,Y S %=0 Q
 | 
|---|
| 43 | EN1 ;  Check for utilities=13 to ask for free text OTHER
 | 
|---|
| 44 |  S FL=0 S:$D(^PRCN(413,DA,3,"B",13)) FL=1
 | 
|---|
| 45 |  Q
 | 
|---|
| 46 | VEN ; Translate potential vendor field into pointer and store it
 | 
|---|
| 47 |  S VEN=X
 | 
|---|
| 48 |  N DIEL,DM,DC,DH,DI,DK,DP,DL,DIFLD,DQ,DR,DIC,DIE,DA,X,Y
 | 
|---|
| 49 |  S X=VEN,DIC(0)="EZ",DIC="^PRC(440," D ^DIC S PRCNVEN=+Y
 | 
|---|
| 50 |  I PRCNVEN<0 S $P(^PRCN(413,D0,1,D1,0),U,13)=VEN,$P(^(0),U,2)="" G EX
 | 
|---|
| 51 |  I PRCNVEN'<0 S $P(^PRCN(413,D0,1,D1,0),U,2)=PRCNVEN,$P(^(0),U,13)=""
 | 
|---|
| 52 | EX K VEN,PRCNVEN
 | 
|---|
| 53 |  Q
 | 
|---|
| 54 | VENHLP ; Executable help for potential vendor field
 | 
|---|
| 55 |  S DUOUT=0,PRCNCT=0,HL0=0
 | 
|---|
| 56 |  F  S HL0=$O(^DD(413.015,2,21,HL0)) Q:HL0'>0  W !,^DD(413.015,2,21,HL0,0)
 | 
|---|
| 57 |  W !!,"Current Vendors: "
 | 
|---|
| 58 |  S L="" F  S L=$O(^PRC(440,"B",L)) Q:L=""  D T I $G(DUOUT)=1 S DUOUT=0 Q
 | 
|---|
| 59 |  K L,PRCNDI,PRCND,PRCNA,X
 | 
|---|
| 60 |  Q
 | 
|---|
| 61 | T S PRCNCT=PRCNCT+1
 | 
|---|
| 62 |  I PRCNCT<10 W !,L Q
 | 
|---|
| 63 |  R !,"'^' TO STOP: ",PRCNA:DTIME S:'$T PRCNA=U
 | 
|---|
| 64 |  I $G(PRCNA)[U S DUOUT=1 Q
 | 
|---|
| 65 |  S PRCNCT=0 Q
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 | CHECK ; PRCN*1.0*15 new subroutine to check if all line items for a
 | 
|---|
| 68 |  ; transaction have been dispositioned - CMR equals null if dispo'd
 | 
|---|
| 69 |  N N1,PRCNT0
 | 
|---|
| 70 |  S POP=1
 | 
|---|
| 71 |  S N1=999 F  S N1=$O(^PRCN(413.1,PRCNTDA,1,N1),-1) Q:'N1  D
 | 
|---|
| 72 |  . S PRCNT0=$P($G(^PRCN(413.1,PRCNTDA,1,N1,0)),U)
 | 
|---|
| 73 |  . I +$P($G(^ENG(6914,PRCNT0,2)),U,9) S POP=0 Q
 | 
|---|
| 74 |  D:'POP DMSG
 | 
|---|
| 75 |  Q
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 | DMSG ; PRCN*1.0*15 new subroutine to display message to user
 | 
|---|
| 78 |  W !! F X=1:1:79 W "*"
 | 
|---|
| 79 |  W !,"* SORRY.  THERE ARE ADDITIONAL LINE ITEMS FOR TRANSACTION:",?78,"*"
 | 
|---|
| 80 |  W !,"*",?78,"*"
 | 
|---|
| 81 |  W !,"*",?80-$L($G(Y(0,0)))/2,$G(Y(0,0)),?78,"*"
 | 
|---|
| 82 |  W !,"*",?78,"*"
 | 
|---|
| 83 |  W !,"* THAT MUST BE DISPOSITIONED BEFORE THIS TRANSACTION CAN BE FINALIZED.",?78,"*"
 | 
|---|
| 84 |  W ! F X=1:1:79 W "*"
 | 
|---|
| 85 |  W !!
 | 
|---|
| 86 |  Q
 | 
|---|
| 87 |  ;
 | 
|---|
| 88 | RESET ; PRCN*1.0*15 reset status, plus original CMR and SGL values
 | 
|---|
| 89 |  ; and set disposition date, method and value each to null
 | 
|---|
| 90 |  N DATA,OLDCMR,OLDSGL,OLDUST,NULL,N
 | 
|---|
| 91 |  S DIE="^PRCN(413.1,",DR="6////"_23 D ^DIE
 | 
|---|
| 92 |  N DA
 | 
|---|
| 93 |  S N=0 F  S N=$O(OLDVALUE(N)) Q:'N  D
 | 
|---|
| 94 |  . S DATA=OLDVALUE(N),NULL=""
 | 
|---|
| 95 |  . S DA=$P(DATA,U,1),OLDCMR=$P(DATA,U,2),OLDUST=$P(DATA,U,3),OLDSGL=$P(DATA,U,4)
 | 
|---|
| 96 |  . S DIE="^ENG(6914,"
 | 
|---|
| 97 |  . S DR="19////^S X=OLDCMR;20////^S X=OLDUST;38////^S X=OLDSGL;22///@;31///@;32///@" D ^DIE
 | 
|---|
| 98 |  . K DA,DIE,DR
 | 
|---|
| 99 |  Q
 | 
|---|