- PRC5129 ;(WOIFO)/SU-Extract IFCAP user counts ; 04/09/2001 03:30 PM
- V ;;5.1;IFCAP;**29**;Oct 20, 2000
- ;Per VHA Directive 10-93-142, this routine should not be modified.
- ;
- POST ;
- ;
- NEW I,J,K,IE,FCP,DONE,STA,ESTA,IVP,LOA,LC,FDT,MGR,XMSUB,XMTEXT,XMY
- NEW DIFROM
- S U="^",DT=$$DT^XLFDT
- K ^TMP("PRC5129")
- FCP ;
- ; Control Point
- S I=0 F S I=$O(^PRC(420,"C",I)) Q:'I D
- . S STA=0 F S STA=$O(^PRC(420,"C",I,STA)) Q:'STA D
- .. S FCP=0,K=4,DONE=0
- .. F S FCP=$O(^PRC(420,"C",I,STA,FCP)) Q:'FCP!DONE D
- ... ; skip Inactive Fund
- ... I $P(^PRC(420,STA,1,FCP,0),"^",19) Q
- ... ; get control point Level Of Access
- ... S LOA=$P($G(^PRC(420,STA,1,FCP,1,I,0)),"^",2)
- ... I LOA>3!'LOA Q
- ... I K>LOA S K=LOA ; K only keep the highest level of access
- ... I LOA=1 S DONE=1 ; Stop here if find official level
- .. I K'=4 D SETP(K)
- ;
- INV ;
- ; Inventory
- ;
- ; sort user by station # through "AD",DUZ x-ref
- S I=0 F S I=$O(^PRCP(445,"AD",I)) Q:'I D
- . S IVP=0 K MGR ;get inv pointer
- . F S IVP=$O(^PRCP(445,"AD",I,IVP)) Q:'IVP D
- .. S J=$P(^PRCP(445,IVP,0),"^",3) ; get inv type
- .. S STA=+^PRCP(445,IVP,0) ; get station number
- .. S ^TMP("PRC5129",$J,"INV",STA,I,J)=""
- ;
- S STA=0 F S STA=$O(^TMP("PRC5129",$J,"INV",STA)) Q:'STA D
- . S I=0 F S I=$O(^TMP("PRC5129",$J,"INV",STA,I)) Q:'I D
- .. S J="" F S J=$O(^TMP("PRC5129",$J,"INV",STA,I,J)) Q:J="" D
- ... I J="W" D ; Warehouse
- .... D SETP(7) ; user
- .... I $D(^XUSEC("PRCPW MGRKEY",I)) D SETP(4) ; manager
- ... I J="P" D ; Primary
- .... D SETP(8) ; user
- .... I $D(^XUSEC("PRCP MGRKEY",I)) D SETP(5) ; manager
- ... I J="S" D ; Secondary
- .... D SETP(9) ; user
- .... I $D(^XUSEC("PRCP2 MGRKEY",I)) D SETP(6) ; manager
- ;
- PRCH ;
- ; purchasing
- ;
- ; get IFCAP primary station number (assume only one primary)
- S STA=+$O(^PRC(411,"AC","Y",0))
- ;
- ; get default station for Engineering (piece 17, ^XTV(8989.3,1,"XUS"))
- S ESTA=$$GET1^DIQ(4,$$KSP^XUPARAM("INST")_",",99)
- ;
- S I=0 F S I=$O(^VA(200,I)) Q:'I D
- . ; Purchasing
- . S J=+$G(^VA(200,I,400))
- . I J,J<5 D
- .. I J=1 D SETP(13) ; Warehouse Employee
- .. I J=2 D SETP(10) ; PPM Accountable Officer
- .. I J=3 D SETP(11) ; Purchasing Agent
- .. I J=4 D SETP(12) ; Supply Manager
- . ; Engineering
- . ; Logic copied from ENZACC2 by Scott Baumann
- . S K=0 I $$ACCESS^XQCHK(I,"ENINVNEW")>0 D SETE(1) S K=1
- . I 'K,$$ACCESS^XQCHK(I,"ENINVINV")>0 D SETE(2) S K=1
- . I $$ACCESS^XQCHK(I,"ENSPROOM")>0 D SETE(4) S K=1
- . I $$ACCESS^XQCHK(I,"ENWONEW")>0 D SETE(3) S $E(K,2)=1
- . I '$E(K,2),$$ACCESS^XQCHK(I,"ENWOCLOSE")>0 D SETE(3) S $E(K,2)=1
- . I +K D SETE(5)
- . ; if none of the first 5 case is true or
- . ; case SETE(3) is not true but other case is true
- . I ($E(K,2)'=1&+K)!'K I $$ACCESS^XQCHK(I,"ENWONEW-WARD")>0 D SETE(6)
- . ; count Accounting Staff 1 time only per station
- . I $D(^XUSEC("PRCFA SUPERVISOR",I)) D SETP(15) Q
- . I $D(^XUSEC("PRCFA TRANSMIT",I)) D SETP(15) Q
- . I $D(^XUSEC("PRCFA VENDOR EDIT",I)) D SETP(15) Q
- . I $D(^XUSEC("PRCFA PURGE CODE SHEETS",I)) D SETP(15) Q
- ;
- ;
- BUDGET ;
- S STA=0 F S STA=$O(^PRC(420,STA)) Q:'STA D
- . S I=0 F S I=$O(^PRC(420,STA,2,I)) Q:'I D SETP(14)
- ;
- ACNT ;
- ; Accounting
- S STA=0 F S STA=$O(^PRC(411,"AE",1,STA)) Q:'STA!(STA>999) D
- . S I=0 F S I=$O(^PRC(411,STA,6,I)) Q:'I D SETP(15)
- ;
- PCARD ;
- ; Purchase Card
- S J=0 F S J=$O(^PRC(440.5,J)) Q:'J S K=$G(^(J,0)) D
- . S STA=$P($G(^PRC(440.5,J,2)),"^",3) Q:'STA
- . I $P(^PRC(440.5,J,2),"^",2)="Y" Q ; if Inactive flag set to 'Y'
- . S I=$P(K,"^",8) I I D SETP(16) ; Purchase card holder
- . S I=$P(K,"^",9) I I D SETP(18) ; P card approving officer
- . S I=$P(K,"^",10) I I D SETP(19) ; Alt. P card approving officer
- . ; Get surrogate user which is not the card holder
- . S I=0 F S I=$O(^PRC(440.5,J,1,I)) Q:'I D:$P(K,"^",8)'=I SETP(17)
- ;
- D RPT
- EXIT ;
- K ^TMP("PRC5129")
- Q
- ;
- RPT ;
- ; Generate report from ^TMP("PRC5129")
- ; 1. count from ^TMP
- F IE="I","E" D
- . S STA=0 F S STA=$O(^TMP("PRC5129",$J,IE,STA)) Q:'STA D
- .. K FDT S (FDT,I)=0
- .. F S I=$O(^TMP("PRC5129",$J,IE,STA,I)) Q:'I S J=$G(^(I)) D
- ... F K=1:1:$S(IE="I":19,1:6) I $P(J,"^",K) S FDT(K)=$G(FDT(K))+1
- ... S:IE="I" FDT=FDT+1
- .. F K=1:1:$S(IE="I":19,1:6) D
- ... S $P(^TMP("PRC5129",$J,IE,STA),"^",K)=$G(FDT(K))
- .. I IE="I" S $P(^TMP("PRC5129",$J,"I",STA),"^",20)=FDT
- ; 2. format report using local array
- K FDT S LC=1,FDT(LC)="$REPORT"
- F IE="I","E" D
- . S STA=0 F S STA=$O(^TMP("PRC5129",$J,IE,STA)) Q:'STA S I=$G(^(STA)) D
- .. I LC>1 F J=1:1:3 S LC=LC+1,FDT(LC)=""
- .. S LC=LC+1,FDT(LC)=" "_$S(IE="I":"IFCAP",1:"ENGINEERING")_" USERS BY ROLE"
- .. S LC=LC+1,FDT(LC)=" STATION #: "_STA
- .. S LC=LC+1,FDT(LC)=" Role"_$J("Count",38)
- .. F K=1:1:$S(IE="I":19,1:4) D
- ... S:IE="I" J=$P($T(FORMAT+K),";;",2)
- ... S:IE="E" J=$P($T(ENGFMT+K),";;",2)
- ... S LC=LC+1,FDT(LC)=" "_J_$J(+$P(I,"^",K),42-$L(J))
- .. S LC=LC+1,J="Total Unique "_$S(IE="I":"IFCAP",1:"ENGINEERING")_" Users"
- .. S FDT(LC)=" "_J_$J(+$P(I,"^",$S(IE="I":20,1:5)),46-$L(J))
- .. I IE="E" D
- ... S LC=LC+1,J="Electronic Work Order Requesters"
- ... S FDT(LC)=" "_J_$J(+$P(I,"^",6),46-$L(J))
- ;
- ; $DATA
- ; IFCAP data
- S LC=LC+1,FDT(LC)="$DATA(IFCAP)"
- S STA=0 F S STA=$O(^TMP("PRC5129",$J,"I",STA)) Q:'STA S J=^(STA) D
- . S K="" F I=1:1:19 S K=K_+$P(J,"^",I)_","
- . S LC=LC+1,FDT(LC)="Station"_STA_","_K_+$P(J,"^",20)
- ; Engineering data
- S LC=LC+1,FDT(LC)="$DATA(ENGINEERING)"
- S STA=$O(^TMP("PRC5129",$J,"E",0)) I STA S J=^(STA) D
- . S K="" F I=1:1:5 S K=K_+$P(J,"^",I)_","
- . S LC=LC+1,FDT(LC)="Station"_STA_","_K_+$P(J,"^",6)
- S LC=LC+1,FDT(LC)="$END"
- ;
- MAIL ;
- ; get mail group member
- F I=1:1 S J=$T(MAILGRP+I),J=$P(J,";;",2) Q:J="" S XMY(J)=""
- ; mail to user who install patch 29
- I $G(DUZ),$D(^VA(200,DUZ)) S XMY(DUZ)=""
- S STA=$$GET1^DIQ(4,$$KSP^XUPARAM("INST")_",",.01)
- I STA="" S STA="UNKNOWN"
- S XMSUB="Extract IFCAP Users by Role ("_STA_")"
- S XMTEXT="FDT("
- D ^XMD
- Q
- MAILGRP ;
- ;;G.coreFLS VistA Stats@DOMAIN.EXT
- ;;
- Q
- FORMAT ;
- ;;FCP Official
- ;;FCP Clerk
- ;;FCP Requestor
- ;;Warehouse Inv Manager
- ;;Primary Inv Manager
- ;;Secondary Inv Manager
- ;;Warehouse Inv User
- ;;Primary Inv User
- ;;Secondary Inv User
- ;;PPM Accountable Officer
- ;;Purchasing Agent
- ;;Supply Manager
- ;;Warehouse Employee
- ;;Budget Releasing Official
- ;;Accounting Staff
- ;;Purchase Card Holder
- ;;Purchase Card Surrogate
- ;;Purchase Card Approving Official
- ;;Alt PC Approving Official
- ;;
- ENGFMT ;
- ;;Asset Update
- ;;Asset View Only
- ;;Engr. Work Order
- ;;Update Location
- ;;
- SETP(PC) ;
- ; set value into ^TMP, STA -- station number, I -- DUZ
- ; If termination date is smaller than today's date
- I $P($G(^VA(200,I,0)),"^",11),DT>$P(^(0),"^",11) Q
- I '$P($G(^TMP("PRC5129",$J,"I",STA,I)),"^",PC) S $P(^(I),"^",PC)=1
- Q
- ;
- SETE(PC) ;
- ; set value into ^TMP, ESTA -- engineer station number, I -- DUZ
- ; If termination date is smaller than today's date
- I $P($G(^VA(200,I,0)),"^",11),DT>$P(^(0),"^",11) Q
- I '$P($G(^TMP("PRC5129",$J,"E",ESTA,I)),"^",PC) S $P(^(I),"^",PC)=1
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPRC5129 7562 printed Apr 23, 2025@18:14:12 Page 2
- PRC5129 ;(WOIFO)/SU-Extract IFCAP user counts ; 04/09/2001 03:30 PM
- V ;;5.1;IFCAP;**29**;Oct 20, 2000
- +1 ;Per VHA Directive 10-93-142, this routine should not be modified.
- +2 ;
- POST ;
- +1 ;
- +2 NEW I,J,K,IE,FCP,DONE,STA,ESTA,IVP,LOA,LC,FDT,MGR,XMSUB,XMTEXT,XMY
- +3 NEW DIFROM
- +4 SET U="^"
- SET DT=$$DT^XLFDT
- +5 KILL ^TMP("PRC5129")
- FCP ;
- +1 ; Control Point
- +2 SET I=0
- FOR
- SET I=$ORDER(^PRC(420,"C",I))
- if 'I
- QUIT
- Begin DoDot:1
- +3 SET STA=0
- FOR
- SET STA=$ORDER(^PRC(420,"C",I,STA))
- if 'STA
- QUIT
- Begin DoDot:2
- +4 SET FCP=0
- SET K=4
- SET DONE=0
- +5 FOR
- SET FCP=$ORDER(^PRC(420,"C",I,STA,FCP))
- if 'FCP!DONE
- QUIT
- Begin DoDot:3
- +6 ; skip Inactive Fund
- +7 IF $PIECE(^PRC(420,STA,1,FCP,0),"^",19)
- QUIT
- +8 ; get control point Level Of Access
- +9 SET LOA=$PIECE($GET(^PRC(420,STA,1,FCP,1,I,0)),"^",2)
- +10 IF LOA>3!'LOA
- QUIT
- +11 ; K only keep the highest level of access
- IF K>LOA
- SET K=LOA
- +12 ; Stop here if find official level
- IF LOA=1
- SET DONE=1
- End DoDot:3
- +13 IF K'=4
- DO SETP(K)
- End DoDot:2
- End DoDot:1
- +14 ;
- INV ;
- +1 ; Inventory
- +2 ;
- +3 ; sort user by station # through "AD",DUZ x-ref
- +4 SET I=0
- FOR
- SET I=$ORDER(^PRCP(445,"AD",I))
- if 'I
- QUIT
- Begin DoDot:1
- +5 ;get inv pointer
- SET IVP=0
- KILL MGR
- +6 FOR
- SET IVP=$ORDER(^PRCP(445,"AD",I,IVP))
- if 'IVP
- QUIT
- Begin DoDot:2
- +7 ; get inv type
- SET J=$PIECE(^PRCP(445,IVP,0),"^",3)
- +8 ; get station number
- SET STA=+^PRCP(445,IVP,0)
- +9 SET ^TMP("PRC5129",$JOB,"INV",STA,I,J)=""
- End DoDot:2
- End DoDot:1
- +10 ;
- +11 SET STA=0
- FOR
- SET STA=$ORDER(^TMP("PRC5129",$JOB,"INV",STA))
- if 'STA
- QUIT
- Begin DoDot:1
- +12 SET I=0
- FOR
- SET I=$ORDER(^TMP("PRC5129",$JOB,"INV",STA,I))
- if 'I
- QUIT
- Begin DoDot:2
- +13 SET J=""
- FOR
- SET J=$ORDER(^TMP("PRC5129",$JOB,"INV",STA,I,J))
- if J=""
- QUIT
- Begin DoDot:3
- +14 ; Warehouse
- IF J="W"
- Begin DoDot:4
- +15 ; user
- DO SETP(7)
- +16 ; manager
- IF $DATA(^XUSEC("PRCPW MGRKEY",I))
- DO SETP(4)
- End DoDot:4
- +17 ; Primary
- IF J="P"
- Begin DoDot:4
- +18 ; user
- DO SETP(8)
- +19 ; manager
- IF $DATA(^XUSEC("PRCP MGRKEY",I))
- DO SETP(5)
- End DoDot:4
- +20 ; Secondary
- IF J="S"
- Begin DoDot:4
- +21 ; user
- DO SETP(9)
- +22 ; manager
- IF $DATA(^XUSEC("PRCP2 MGRKEY",I))
- DO SETP(6)
- End DoDot:4
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +23 ;
- PRCH ;
- +1 ; purchasing
- +2 ;
- +3 ; get IFCAP primary station number (assume only one primary)
- +4 SET STA=+$ORDER(^PRC(411,"AC","Y",0))
- +5 ;
- +6 ; get default station for Engineering (piece 17, ^XTV(8989.3,1,"XUS"))
- +7 SET ESTA=$$GET1^DIQ(4,$$KSP^XUPARAM("INST")_",",99)
- +8 ;
- +9 SET I=0
- FOR
- SET I=$ORDER(^VA(200,I))
- if 'I
- QUIT
- Begin DoDot:1
- +10 ; Purchasing
- +11 SET J=+$GET(^VA(200,I,400))
- +12 IF J
- IF J<5
- Begin DoDot:2
- +13 ; Warehouse Employee
- IF J=1
- DO SETP(13)
- +14 ; PPM Accountable Officer
- IF J=2
- DO SETP(10)
- +15 ; Purchasing Agent
- IF J=3
- DO SETP(11)
- +16 ; Supply Manager
- IF J=4
- DO SETP(12)
- End DoDot:2
- +17 ; Engineering
- +18 ; Logic copied from ENZACC2 by Scott Baumann
- +19 SET K=0
- IF $$ACCESS^XQCHK(I,"ENINVNEW")>0
- DO SETE(1)
- SET K=1
- +20 IF 'K
- IF $$ACCESS^XQCHK(I,"ENINVINV")>0
- DO SETE(2)
- SET K=1
- +21 IF $$ACCESS^XQCHK(I,"ENSPROOM")>0
- DO SETE(4)
- SET K=1
- +22 IF $$ACCESS^XQCHK(I,"ENWONEW")>0
- DO SETE(3)
- SET $EXTRACT(K,2)=1
- +23 IF '$EXTRACT(K,2)
- IF $$ACCESS^XQCHK(I,"ENWOCLOSE")>0
- DO SETE(3)
- SET $EXTRACT(K,2)=1
- +24 IF +K
- DO SETE(5)
- +25 ; if none of the first 5 case is true or
- +26 ; case SETE(3) is not true but other case is true
- +27 IF ($EXTRACT(K,2)'=1&+K)!'K
- IF $$ACCESS^XQCHK(I,"ENWONEW-WARD")>0
- DO SETE(6)
- +28 ; count Accounting Staff 1 time only per station
- +29 IF $DATA(^XUSEC("PRCFA SUPERVISOR",I))
- DO SETP(15)
- QUIT
- +30 IF $DATA(^XUSEC("PRCFA TRANSMIT",I))
- DO SETP(15)
- QUIT
- +31 IF $DATA(^XUSEC("PRCFA VENDOR EDIT",I))
- DO SETP(15)
- QUIT
- +32 IF $DATA(^XUSEC("PRCFA PURGE CODE SHEETS",I))
- DO SETP(15)
- QUIT
- End DoDot:1
- +33 ;
- +34 ;
- BUDGET ;
- +1 SET STA=0
- FOR
- SET STA=$ORDER(^PRC(420,STA))
- if 'STA
- QUIT
- Begin DoDot:1
- +2 SET I=0
- FOR
- SET I=$ORDER(^PRC(420,STA,2,I))
- if 'I
- QUIT
- DO SETP(14)
- End DoDot:1
- +3 ;
- ACNT ;
- +1 ; Accounting
- +2 SET STA=0
- FOR
- SET STA=$ORDER(^PRC(411,"AE",1,STA))
- if 'STA!(STA>999)
- QUIT
- Begin DoDot:1
- +3 SET I=0
- FOR
- SET I=$ORDER(^PRC(411,STA,6,I))
- if 'I
- QUIT
- DO SETP(15)
- End DoDot:1
- +4 ;
- PCARD ;
- +1 ; Purchase Card
- +2 SET J=0
- FOR
- SET J=$ORDER(^PRC(440.5,J))
- if 'J
- QUIT
- SET K=$GET(^(J,0))
- Begin DoDot:1
- +3 SET STA=$PIECE($GET(^PRC(440.5,J,2)),"^",3)
- if 'STA
- QUIT
- +4 ; if Inactive flag set to 'Y'
- IF $PIECE(^PRC(440.5,J,2),"^",2)="Y"
- QUIT
- +5 ; Purchase card holder
- SET I=$PIECE(K,"^",8)
- IF I
- DO SETP(16)
- +6 ; P card approving officer
- SET I=$PIECE(K,"^",9)
- IF I
- DO SETP(18)
- +7 ; Alt. P card approving officer
- SET I=$PIECE(K,"^",10)
- IF I
- DO SETP(19)
- +8 ; Get surrogate user which is not the card holder
- +9 SET I=0
- FOR
- SET I=$ORDER(^PRC(440.5,J,1,I))
- if 'I
- QUIT
- if $PIECE(K,"^",8)'=I
- DO SETP(17)
- End DoDot:1
- +10 ;
- +11 DO RPT
- EXIT ;
- +1 KILL ^TMP("PRC5129")
- +2 QUIT
- +3 ;
- RPT ;
- +1 ; Generate report from ^TMP("PRC5129")
- +2 ; 1. count from ^TMP
- +3 FOR IE="I","E"
- Begin DoDot:1
- +4 SET STA=0
- FOR
- SET STA=$ORDER(^TMP("PRC5129",$JOB,IE,STA))
- if 'STA
- QUIT
- Begin DoDot:2
- +5 KILL FDT
- SET (FDT,I)=0
- +6 FOR
- SET I=$ORDER(^TMP("PRC5129",$JOB,IE,STA,I))
- if 'I
- QUIT
- SET J=$GET(^(I))
- Begin DoDot:3
- +7 FOR K=1:1:$SELECT(IE="I":19,1:6)
- IF $PIECE(J,"^",K)
- SET FDT(K)=$GET(FDT(K))+1
- +8 if IE="I"
- SET FDT=FDT+1
- End DoDot:3
- +9 FOR K=1:1:$SELECT(IE="I":19,1:6)
- Begin DoDot:3
- +10 SET $PIECE(^TMP("PRC5129",$JOB,IE,STA),"^",K)=$GET(FDT(K))
- End DoDot:3
- +11 IF IE="I"
- SET $PIECE(^TMP("PRC5129",$JOB,"I",STA),"^",20)=FDT
- End DoDot:2
- End DoDot:1
- +12 ; 2. format report using local array
- +13 KILL FDT
- SET LC=1
- SET FDT(LC)="$REPORT"
- +14 FOR IE="I","E"
- Begin DoDot:1
- +15 SET STA=0
- FOR
- SET STA=$ORDER(^TMP("PRC5129",$JOB,IE,STA))
- if 'STA
- QUIT
- SET I=$GET(^(STA))
- Begin DoDot:2
- +16 IF LC>1
- FOR J=1:1:3
- SET LC=LC+1
- SET FDT(LC)=""
- +17 SET LC=LC+1
- SET FDT(LC)=" "_$SELECT(IE="I":"IFCAP",1:"ENGINEERING")_" USERS BY ROLE"
- +18 SET LC=LC+1
- SET FDT(LC)=" STATION #: "_STA
- +19 SET LC=LC+1
- SET FDT(LC)=" Role"_$JUSTIFY("Count",38)
- +20 FOR K=1:1:$SELECT(IE="I":19,1:4)
- Begin DoDot:3
- +21 if IE="I"
- SET J=$PIECE($TEXT(FORMAT+K),";;",2)
- +22 if IE="E"
- SET J=$PIECE($TEXT(ENGFMT+K),";;",2)
- +23 SET LC=LC+1
- SET FDT(LC)=" "_J_$JUSTIFY(+$PIECE(I,"^",K),42-$LENGTH(J))
- End DoDot:3
- +24 SET LC=LC+1
- SET J="Total Unique "_$SELECT(IE="I":"IFCAP",1:"ENGINEERING")_" Users"
- +25 SET FDT(LC)=" "_J_$JUSTIFY(+$PIECE(I,"^",$SELECT(IE="I":20,1:5)),46-$LENGTH(J))
- +26 IF IE="E"
- Begin DoDot:3
- +27 SET LC=LC+1
- SET J="Electronic Work Order Requesters"
- +28 SET FDT(LC)=" "_J_$JUSTIFY(+$PIECE(I,"^",6),46-$LENGTH(J))
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +29 ;
- +30 ; $DATA
- +31 ; IFCAP data
- +32 SET LC=LC+1
- SET FDT(LC)="$DATA(IFCAP)"
- +33 SET STA=0
- FOR
- SET STA=$ORDER(^TMP("PRC5129",$JOB,"I",STA))
- if 'STA
- QUIT
- SET J=^(STA)
- Begin DoDot:1
- +34 SET K=""
- FOR I=1:1:19
- SET K=K_+$PIECE(J,"^",I)_","
- +35 SET LC=LC+1
- SET FDT(LC)="Station"_STA_","_K_+$PIECE(J,"^",20)
- End DoDot:1
- +36 ; Engineering data
- +37 SET LC=LC+1
- SET FDT(LC)="$DATA(ENGINEERING)"
- +38 SET STA=$ORDER(^TMP("PRC5129",$JOB,"E",0))
- IF STA
- SET J=^(STA)
- Begin DoDot:1
- +39 SET K=""
- FOR I=1:1:5
- SET K=K_+$PIECE(J,"^",I)_","
- +40 SET LC=LC+1
- SET FDT(LC)="Station"_STA_","_K_+$PIECE(J,"^",6)
- End DoDot:1
- +41 SET LC=LC+1
- SET FDT(LC)="$END"
- +42 ;
- MAIL ;
- +1 ; get mail group member
- +2 FOR I=1:1
- SET J=$TEXT(MAILGRP+I)
- SET J=$PIECE(J,";;",2)
- if J=""
- QUIT
- SET XMY(J)=""
- +3 ; mail to user who install patch 29
- +4 IF $GET(DUZ)
- IF $DATA(^VA(200,DUZ))
- SET XMY(DUZ)=""
- +5 SET STA=$$GET1^DIQ(4,$$KSP^XUPARAM("INST")_",",.01)
- +6 IF STA=""
- SET STA="UNKNOWN"
- +7 SET XMSUB="Extract IFCAP Users by Role ("_STA_")"
- +8 SET XMTEXT="FDT("
- +9 DO ^XMD
- +10 QUIT
- MAILGRP ;
- +1 ;;G.coreFLS VistA Stats@DOMAIN.EXT
- +2 ;;
- +3 QUIT
- FORMAT ;
- +1 ;;FCP Official
- +2 ;;FCP Clerk
- +3 ;;FCP Requestor
- +4 ;;Warehouse Inv Manager
- +5 ;;Primary Inv Manager
- +6 ;;Secondary Inv Manager
- +7 ;;Warehouse Inv User
- +8 ;;Primary Inv User
- +9 ;;Secondary Inv User
- +10 ;;PPM Accountable Officer
- +11 ;;Purchasing Agent
- +12 ;;Supply Manager
- +13 ;;Warehouse Employee
- +14 ;;Budget Releasing Official
- +15 ;;Accounting Staff
- +16 ;;Purchase Card Holder
- +17 ;;Purchase Card Surrogate
- +18 ;;Purchase Card Approving Official
- +19 ;;Alt PC Approving Official
- +20 ;;
- ENGFMT ;
- +1 ;;Asset Update
- +2 ;;Asset View Only
- +3 ;;Engr. Work Order
- +4 ;;Update Location
- +5 ;;
- SETP(PC) ;
- +1 ; set value into ^TMP, STA -- station number, I -- DUZ
- +2 ; If termination date is smaller than today's date
- +3 IF $PIECE($GET(^VA(200,I,0)),"^",11)
- IF DT>$PIECE(^(0),"^",11)
- QUIT
- +4 IF '$PIECE($GET(^TMP("PRC5129",$JOB,"I",STA,I)),"^",PC)
- SET $PIECE(^(I),"^",PC)=1
- +5 QUIT
- +6 ;
- SETE(PC) ;
- +1 ; set value into ^TMP, ESTA -- engineer station number, I -- DUZ
- +2 ; If termination date is smaller than today's date
- +3 IF $PIECE($GET(^VA(200,I,0)),"^",11)
- IF DT>$PIECE(^(0),"^",11)
- QUIT
- +4 IF '$PIECE($GET(^TMP("PRC5129",$JOB,"E",ESTA,I)),"^",PC)
- SET $PIECE(^(I),"^",PC)=1
- +5 QUIT