| 1 | PRCPDAPV ;WISC/RFJ-drug accountability/prime vendor ;12.15.97
|
---|
| 2 | ;;5.1;IFCAP;;Oct 20, 2000
|
---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | N %,COSTCNTR,COUNT,DATA,I,LINE,PRC,PRCPFERR,PRCPFLAG,PRCPREPN,PRCPVEND,PRCSIP,SEGMENT,X,Y
|
---|
| 5 | S IOP="HOME" D ^%ZIS K IOP
|
---|
| 6 | K X S X(1)="* * * E N T E R C O N T R O L P O I N T I N F O R M A T I O N * * *" D DISPLAY^PRCPUX2(1,79,.X)
|
---|
| 7 | D ^PRCSUT Q:Y<0
|
---|
| 8 | I '$D(^PRC(420,PRC("SITE"),1,+PRC("CP"),0)) K X S X(1)="ERROR - cannot find STATION ("_PRC("SITE")_") and CONTROL POINT ("_PRC("CP")_") in FUND CONTROL POINT file 420." D DISPLAY^PRCPUX2(5,75,.X) Q
|
---|
| 9 | ; special control point
|
---|
| 10 | ; removed hard set of 600000 cost center for Supply Fund w/ 149
|
---|
| 11 | I '$O(^PRC(420,PRC("SITE"),1,+PRC("CP"),2,0)) K X S X(1)="ERROR - No COST CENTERS have been entered for this CONTROL POINT ("_PRC("CP")_")." D DISPLAY^PRCPUX2(5,75,.X) Q
|
---|
| 12 | D Q:'COSTCNTR
|
---|
| 13 | . N DIC,I,X,Y
|
---|
| 14 | . S DIC("A")="Select COST CENTER: ",DIC="^PRC(420,PRC(""SITE""),1,+PRC(""CP""),2,",DIC(0)="AEMNQZ"
|
---|
| 15 | . D ^DIC I Y'>0 Q
|
---|
| 16 | . S COSTCNTR=+Y
|
---|
| 17 | I '$D(^PRCD(420.1,COSTCNTR,0)) K X S X(1)="ERROR - cannot find COST CENTER ("_COSTCNTR_") in COST CENTER file 420.1." D DISPLAY^PRCPUX2(5,75,.X) Q
|
---|
| 18 | ;
|
---|
| 19 | S PRCPREPN=PRC("SITE")_"-"_PRC("FY")_"-"_PRC("QTR")_"-"_$P(PRC("CP")," ")_"-"_COSTCNTR
|
---|
| 20 | K X S X(1)="I will generate requests for: "_PRCPREPN D DISPLAY^PRCPUX2(1,79,.X)
|
---|
| 21 | ;
|
---|
| 22 | K X S X(1)="Select the PRIME VENDOR for the requests." D DISPLAY^PRCPUX2(1,79,.X)
|
---|
| 23 | S PRCPVEND=$$VENDOR^PRCPAGPV I PRCPVEND'>0 Q
|
---|
| 24 | ;
|
---|
| 25 | F D Q:$G(PRCPFLAG)
|
---|
| 26 | . N DWLC,XTKDIC,XTKERR,XTKMODE
|
---|
| 27 | . K ^TMP($J,"PRCPDAPV"),PRCPFLAG
|
---|
| 28 | . K X S X(1)="* * * U P L O A D O F P R I M E V E N D O R I N V O I C E * * *" W ! D DISPLAY^PRCPUX2(1,79,.X)
|
---|
| 29 | . S XP="ARE YOU READY TO UPLOAD THE PRIME VENDOR INVOICE",XH="Enter YES to start the upload of the prime vendor invoice, NO or ^ to exit."
|
---|
| 30 | . I $$YN^PRCPUYN(2)'=1 S PRCPFLAG=1 Q
|
---|
| 31 | . K X S X(1)="Press <ALT> 1 if your Prime Vendor script is installed as a Meta Key, otherwise press <ALT> F5 and enter ""PV"""
|
---|
| 32 | . W ! D DISPLAY^PRCPUX2(1,79,.X)
|
---|
| 33 | . X ^%ZOSF("EOFF") R X:20 X ^%ZOSF("EON") D HASH^XUSHSHP I X'="$4_\y o\Xp>RN}ab*_%," S PRCPFLAG=1
|
---|
| 34 | . I '$G(PRCPFLAG) S XTKDIC="^TMP($J,""PRCPDAPV"",",DWLC=0,XTKMODE=2 D RECEIVE^XTKERMIT
|
---|
| 35 | . I $G(PRCPFLAG) S XTKERR="PRIME VENDOR INVOICE CORRUPT" K ^TMP($J,"PRCPDAPV") H 1
|
---|
| 36 | . I $G(XTKERR)'=0 K X S X(1)="ERROR - "_XTKERR D DISPLAY^PRCPUX2(5,75,.X) Q
|
---|
| 37 | . I DWLC=0 K X S X(1)="ERROR - NO LINES RECEIVED." D DISPLAY^PRCPUX2(5,75,.X) Q
|
---|
| 38 | . W !,"OK, FINISHED WITH SUCCESSFUL UPLOAD, ",DWLC," lines received."
|
---|
| 39 | . S PRCPFLAG=1
|
---|
| 40 | I '$O(^TMP($J,"PRCPDAPV",0)) D Q Q
|
---|
| 41 | ;
|
---|
| 42 | K X S X(1)="* * * U N W R A P P I N G T H E I N V O I C E * * * " W ! D DISPLAY^PRCPUX2(1,79,.X)
|
---|
| 43 | K ^TMP($J,"PRCPDAPVS"),PRCPFLAG
|
---|
| 44 | S DATA="",LINE=1,COUNT=0 F D Q:$G(PRCPFLAG)
|
---|
| 45 | . I DATA'[$C(126) S DATA=DATA_$TR($G(^TMP($J,"PRCPDAPV",LINE,0)),"*\","^~"),LINE=LINE+1
|
---|
| 46 | . I DATA'[$C(126) S DATA=DATA_$TR($G(^TMP($J,"PRCPDAPV",LINE,0)),"*\","^~"),LINE=LINE+1
|
---|
| 47 | . I '$D(^TMP($J,"PRCPDAPV",LINE,0)) S PRCPFLAG=1
|
---|
| 48 | . F Q:DATA'["~" S SEGMENT=$P(DATA,"~"),DATA=$P(DATA,"~",2,999) D
|
---|
| 49 | . . ; remove all leading spaces
|
---|
| 50 | . . F Q:$E(SEGMENT)'=" " S SEGMENT=$E(SEGMENT,2,999)
|
---|
| 51 | . . S COUNT=COUNT+1,^TMP($J,"PRCPDAPVS",COUNT)=SEGMENT
|
---|
| 52 | W !,"OK, FINISHED UNWRAPPING THE INVOICE."
|
---|
| 53 | K ^TMP($J,"PRCPDAPV")
|
---|
| 54 | ;
|
---|
| 55 | K X S X(1)="* * * P R O C E S S I N G I N V O I C E D A T A * * *" W ! D DISPLAY^PRCPUX2(1,79,.X)
|
---|
| 56 | D PROCESS^PRCPDAP1
|
---|
| 57 | I $G(PRCPFLAG) D Q Q
|
---|
| 58 | W !,"OK, FINISHED PROCESSING INVOICE DATA.",!
|
---|
| 59 | K ^TMP($J,"PRCPDAPVS")
|
---|
| 60 | ;
|
---|
| 61 | I $G(PRCPFERR) D
|
---|
| 62 | . K X S X(1)="ERRORS HAVE BEEN FOUND AND THE REPETITIVE ITEM LISTS CANNOT BE BUILT. PLEASE RE-UPLOAD THE PRIME VENDOR INVOICE AFTER CORRECTING THE ERRORS." D DISPLAY^PRCPUX2(1,79,.X)
|
---|
| 63 | I '$G(PRCPFERR) D
|
---|
| 64 | . K X S X(1)="* * * B U I L D R E P E T I T I V E I T E M L I S T S * * *" D DISPLAY^PRCPUX2(1,79,.X)
|
---|
| 65 | . K PRCPFLAG
|
---|
| 66 | . D BUILDRIL^PRCPDAPB
|
---|
| 67 | . I $G(PRCPFLAG) D Q
|
---|
| 68 | . . K X S X(1)="THE SYSTEM HAD PROBLEMS CREATING THE REPETITIVE ITEM LISTS. PLEASE TRY AND RE-UPLOAD THE PRIME VENDOR INVOICE AGAIN LATER." D DISPLAY^PRCPUX2(1,79,.X)
|
---|
| 69 | . W !,"OK, FINISHED BUILDING THE REPETITIVE ITEM LISTS."
|
---|
| 70 | ;
|
---|
| 71 | K X S X(1)="* * * P R I N T I T E M S O N I N V O I C E * * *" W ! D DISPLAY^PRCPUX2(1,79,.X)
|
---|
| 72 | D PRINT^PRCPDAP2
|
---|
| 73 | I '$G(PRCPFERR) W !,"THE UPLOAD WAS SUCCESSFUL."
|
---|
| 74 | Q K ^TMP($J,"PRCPDAPV"),^TMP($J,"PRCPDAPVS"),^TMP($J,"PRCPDAPV SET")
|
---|
| 75 | Q
|
---|