| 1 | PRCOVTST ;WISC/DJM/BGJ-IFCAP VRQ TO-DO ROUTINE ; [10/19/98 11:20am] | 
|---|
| 2 | V ;;5.1;IFCAP;**30**;Oct 20, 2000 | 
|---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | NEW(VEN1,SITE,FLAG) ;VEN1 = VENDOR INTERNAL ENTRY NUMBER | 
|---|
| 5 | N %,B,DATE,GECSFMS,FLAGN,FY,I,J,PS,NAME,MO,PAY,PAY1,PRCOVA,PRCOVA3,PRCOVN,PRCOVN3,SEQ,SSNT,ST,TIME,TRANS,VEN,VEND,X,Y | 
|---|
| 6 | S FLAGN=$G(^PRC(440.3,VEN1,0)) | 
|---|
| 7 | S PRCOVN=$G(^PRC(440,VEN1,0)) | 
|---|
| 8 | S PRCOVN3=$G(^PRC(440,VEN1,3)) | 
|---|
| 9 | S PAY=$G(^PRC(440,VEN1,7)) | 
|---|
| 10 | I FLAGN]"" D | 
|---|
| 11 | .S PRCOVA=FLAGN | 
|---|
| 12 | .S PRCOVA3=$G(^PRC(440.3,VEN1,3)) | 
|---|
| 13 | .S PAY1=$G(^PRC(440.3,VEN1,7)) | 
|---|
| 14 | G:PRCOVN3="" EXIT ;THERE IS NO DATA IN NODE 3 FOR THIS VENDOR--THIS USUALLY WILL NOT HAPPEN.  CAN ONLY QUIT WITHOUT CREATING 'VRQ' | 
|---|
| 15 | ; | 
|---|
| 16 | G:$P(PRCOVN3,U,6)="N" EXIT ;NON-RECURRING VENDOR  "N"=ONE-TIME VENDOR--DON'T NEED TO 'ADD' | 
|---|
| 17 | ; | 
|---|
| 18 | I FLAG=1,$P(PRCOVN3,U,4)]"" G EXIT ;'ADD' VRQ & FMS VENDOR CODE???  VENDOR UPDATED--DON'T NEED TO 'ADD' AGAIN (SHOULD NOT SEE THIS) | 
|---|
| 19 | ; | 
|---|
| 20 | I FLAG=1,(($P(PRCOVN3,U,9)="")!($P(PRCOVN3,U,8)="")) G EXIT ;NO TAX ID/SSN OR SSN/TAX ID INDICATOR--DON'T HAVE ALL INFORMATION TO SEND 'VRQ' | 
|---|
| 21 | ; | 
|---|
| 22 | G:PAY="" EXIT ;DON'T HAVE ANY PAYMENT ADDRESS INFORMATION--DON'T SEND 'VRQ' | 
|---|
| 23 | ; | 
|---|
| 24 | I FLAGN="" G DOIT  ;THIS IS A NEW IFCAP VENDOR ENTRY--SEND IT | 
|---|
| 25 | I FLAG=1,$P(PRCOVN3,U,4)="",$P(PRCOVN3,U,12)="" G DOIT  ;THIS ENTRY NEEDS TO BE SENT BECAUSE IT WASEN'T EVER DONE BEFORE | 
|---|
| 26 | ; | 
|---|
| 27 | I $P(PRCOVN,U)'=$P(PRCOVA,U) G DOIT | 
|---|
| 28 | I $P(PRCOVN3,U,11)'=$P(PRCOVA3,U,11) G DOIT | 
|---|
| 29 | I $P(PRCOVN3,U,13)'=$P(PRCOVA3,U,13) G DOIT | 
|---|
| 30 | I $P(PRCOVN3,U,14)'=$P(PRCOVA3,U,14) G DOIT | 
|---|
| 31 | I $P(PAY,U,3)'=$P(PAY1,U,3) G DOIT | 
|---|
| 32 | I $P(PAY,U,4)'=$P(PAY1,U,4) G DOIT | 
|---|
| 33 | I $P(PAY,U,7)'=$P(PAY1,U,7) G DOIT | 
|---|
| 34 | I $P(PAY,U,8)'=$P(PAY1,U,8) G DOIT | 
|---|
| 35 | I $P(PAY,U,9)'=$P(PAY1,U,9) G DOIT | 
|---|
| 36 | G EXIT ;USER DIDN'T CHANGE ANYTHING USED TO CREAT A VENDOR REQUEST | 
|---|
| 37 | ; | 
|---|
| 38 | DOIT ;COME HERE IF A VRQ SHOULD BE CREATED. | 
|---|
| 39 | S NOVRQ=0 | 
|---|
| 40 | Q NOVRQ | 
|---|
| 41 | ; | 
|---|
| 42 | EXIT ;USE THIS EXIT ONLY IF NO VRQ SHOULD BE CREATED. | 
|---|
| 43 | ;DON'T FORGET TO REMOVE UN-EDITED COPY OF VENDOR RECORD (IN 440.3). | 
|---|
| 44 | K ^PRC(440.3,VEN1) | 
|---|
| 45 | S NOVRQ=1 | 
|---|
| 46 | Q NOVRQ | 
|---|
| 47 | ; | 
|---|
| 48 | CHECK(DA,SITE,FLAG) ; CALL TO SEE IF VENDOR IS PROPERLY SET UP FROM AR | 
|---|
| 49 | ; VENDOR LOOKUP CALL -- VENSEL^PRCHUTL(). | 
|---|
| 50 | ; COME HERE TO DECIDE WHAT NEEDS TO BE DONE WITH THE SELECTED | 
|---|
| 51 | ; VENDOR. | 
|---|
| 52 | ; | 
|---|
| 53 | ; RETURNED VALUE           MEANING | 
|---|
| 54 | ;     0                    NEED TO CREATE A VRQ - ALL DATA TO | 
|---|
| 55 | ;                          CREATE A VRQ IS HERE. | 
|---|
| 56 | ;     1                    NEED TO EDIT VENDOR RECORD BEFORE A | 
|---|
| 57 | ;                          VRQ CAN BE CREATED. | 
|---|
| 58 | ;     2                    THE VENDOR IS PROPERLY SET UP.  NO | 
|---|
| 59 | ;                          VRQ NEEDS TO BE CREATED. | 
|---|
| 60 | ; | 
|---|
| 61 | S PRCOVN3=$G(^PRC(440,DA,3)) | 
|---|
| 62 | I FLAG=1,$P(PRCOVN3,U,4)]"" G EXIT2 ;ADD VRQ WITH FMS VENDOR CODE | 
|---|
| 63 | ; PRESENT???  VENDOR UPDATED--DON'T NEED TO 'ADD' AGAIN. | 
|---|
| 64 | ; | 
|---|
| 65 | S (I,J)=0 | 
|---|
| 66 | F  S I=$O(^PRC(411,I)) Q:I'>0  S J=J+1 | 
|---|
| 67 | I J>1 S PS=$O(^PRC(411,"AC","Y",0)) G:PS="" EXIT1 | 
|---|
| 68 | ; 'PRIMARY STATION' NEEDS TO BE FILLED IN. | 
|---|
| 69 | ; | 
|---|
| 70 | S PAY=$G(^PRC(440,DA,7)) | 
|---|
| 71 | G:PRCOVN3="" EXIT1 ; THIS RECORD NEEDS TO BE EDITED. | 
|---|
| 72 | ; | 
|---|
| 73 | G:$P(PRCOVN3,U,6)="N" EXIT1 ; NON-RECURRING VENDOR  THIS RECORD | 
|---|
| 74 | ; NEEDS TO BE EDITED. | 
|---|
| 75 | ; | 
|---|
| 76 | G:$P(PRCOVN3,U,14)="" EXIT1  ; VENDOR TYPE UNDEFINED. | 
|---|
| 77 | G:PAY="" EXIT1 | 
|---|
| 78 | ; DON'T HAVE ANY PAYMENT ADDRESS INFORMATION--EDIT THIS RECORD. | 
|---|
| 79 | ; | 
|---|
| 80 | G:$P(PAY,U,3)=""!($P(PAY,U,7)="")!($P(PAY,U,8)="")!($P(PAY,U,9)="") EXIT1  ; PAYMENT FIELDS AREN'T FILLED IN. | 
|---|
| 81 | S ST=$P(PAY,U,8) | 
|---|
| 82 | S ST=$E($P($G(^DIC(5,ST,0)),U,2),1,2) | 
|---|
| 83 | G:ST="" EXIT1  ; FOR SOME REASON THIS STATE IS MISSING FROM THE | 
|---|
| 84 | ; STATE FILE. | 
|---|
| 85 | ; | 
|---|
| 86 | I FLAG=1,(($P(PRCOVN3,U,9)="")!($P(PRCOVN3,U,8)="")) G EXIT1 | 
|---|
| 87 | ; NO TAX ID/SSN OR SSN/TAX ID INDICATOR--DON'T HAVE ALL INFORMATION | 
|---|
| 88 | ; TO SEND 'VRQ'.  EDIT THIS RECORD. | 
|---|
| 89 | ; | 
|---|
| 90 | DOIT1 ; COME HERE IF A VRQ SHOULD BE CREATED. | 
|---|
| 91 | S NOVRQ=0 | 
|---|
| 92 | Q NOVRQ | 
|---|
| 93 | ; | 
|---|
| 94 | EXIT1 ; COME HERE IF THE VENDOR RECORD NEEDS TO BE EDITED. | 
|---|
| 95 | S NOVRQ=1 | 
|---|
| 96 | Q NOVRQ | 
|---|
| 97 | ; | 
|---|
| 98 | EXIT2 ; USE THIS EXIT ONLY IF NO VRQ SHOULD BE CREATED. | 
|---|
| 99 | ; IF THERE IS NO "AR" NODE PRESENT REMOVE UN-EDITED COPY OF VENDOR | 
|---|
| 100 | ; RECORD (IN 440.3). | 
|---|
| 101 | S NODE=$D(^PRC(440.3,DA,"AR")) | 
|---|
| 102 | I NODE]"" S NODE=1 | 
|---|
| 103 | K:NODE=0 ^PRC(440.3,DA) | 
|---|
| 104 | S NOVRQ=2 | 
|---|
| 105 | Q NOVRQ | 
|---|
| 106 | ; | 
|---|
| 107 | VRQ(DA,SITE) ; COME HERE TO SEND A VRQ FOR THE VENDOR RECORD SELECTED | 
|---|
| 108 | ; BY THE AR USER.  THIS ENTRY POINT IS CALLED FROM VENSEL^PRCHUTL(). | 
|---|
| 109 | S PRCXDA=DA | 
|---|
| 110 | K ^PRC(440.3,DA) | 
|---|
| 111 | VRQ1 S PRCOVN3=$G(^PRC(440,DA,3)) | 
|---|
| 112 | D NOW^%DTC | 
|---|
| 113 | S DATE=$P(%,".") | 
|---|
| 114 | S DATE=$E(DATE,2,7) | 
|---|
| 115 | S TIME=$P(%,".",2)_"000000" | 
|---|
| 116 | S TIME=$E(TIME,1,6) | 
|---|
| 117 | S FY=$E($P(%,"."),2,3) | 
|---|
| 118 | S MO=$E($P(%,U),4,5) | 
|---|
| 119 | S FY=$E(100+$S(+MO>9:FY+1,1:FY),2,3) | 
|---|
| 120 | K PRCFLN | 
|---|
| 121 | S X=SITE_"-"_FY_"-"_MO | 
|---|
| 122 | D COUNTER^PRCFACP | 
|---|
| 123 | S SEQ="000"_Y | 
|---|
| 124 | S SEQ=$E(SEQ,$L(SEQ)-3,99) | 
|---|
| 125 | S TRANS=SITE_FY_MO_SEQ | 
|---|
| 126 | S DA=PRCXDA | 
|---|
| 127 | S B="VRQ^"_DATE_"^"_TIME_"^"_SITE_"^"_DA_"^"_$P(PRCOVN3,U,8)_"^" | 
|---|
| 128 | S B=B_$S($P(PRCOVN3,U,5)]"":$P(PRCOVN3,U,5),1:"") | 
|---|
| 129 | S NAME=$P($G(^PRC(440,DA,0)),"^") | 
|---|
| 130 | S NAME=$E(NAME,1,30) | 
|---|
| 131 | S B=B_"^"_NAME_"^" | 
|---|
| 132 | S PAY=$G(^PRC(440,DA,7)) | 
|---|
| 133 | S B=B_$E($P(PAY,U,3),1,30)_"^" | 
|---|
| 134 | S B=B_$S($P(PAY,U,4)]"":$E($P(PAY,U,4),1,30),1:"")_"^" | 
|---|
| 135 | S B=B_$E($P(PAY,U,7),1,19)_"^" | 
|---|
| 136 | S ST=$P(PAY,U,8) | 
|---|
| 137 | S ST=$E($P($G(^DIC(5,ST,0)),U,2),1,2) | 
|---|
| 138 | S B=B_ST_"^"_$TR($P(PAY,U,9),"-")_"^" | 
|---|
| 139 | S VEND=$S($P(PRCOVN3,U,11)]"":$P(PRCOVN3,U,11),1:"N") | 
|---|
| 140 | S SSNT=$S($P(PRCOVN3,U,9)]"":$P(PRCOVN3,U,9),1:"T") | 
|---|
| 141 | S:VEND="N" SSNT="" | 
|---|
| 142 | S B=B_SSNT_"^"_VEND_"^"_$P(PRCOVN3,U,14)_"^N^A^~" | 
|---|
| 143 | ; | 
|---|
| 144 | ; REQUEST GENERIC CODE SHEET PACKAGE SET UP AN ENTRY IN FILE 2100.1. | 
|---|
| 145 | ; | 
|---|
| 146 | D CONTROL^GECSUFMS("I",SITE,TRANS,"VR","","","","Vendor Request") | 
|---|
| 147 | ; | 
|---|
| 148 | ; ENTER THE 'VRQ' SEGMENT INTO FILE 2100.1 RECORD CREATED IN | 
|---|
| 149 | ; PREVIOUS CALL. | 
|---|
| 150 | ; | 
|---|
| 151 | D SETCS^GECSSTAA(GECSFMS("DA"),B) | 
|---|
| 152 | ; | 
|---|
| 153 | ; TELL GCS PACKAGE WHAT TO DO WITH THIS RECORD--'QUEUE' IT TO SEND | 
|---|
| 154 | ; THE NEXT TIME ANY FMS TRANSACTIONS ARE SENT TO AUSTIN. | 
|---|
| 155 | ; | 
|---|
| 156 | Q | 
|---|
| 157 | ; | 
|---|
| 158 | VRQS(DA,SITE) ; COME HERE TO SEND A VRQ FROM THE 'SEND VRQ' PROTOCOL. | 
|---|
| 159 | ; | 
|---|
| 160 | S PRCXDA=DA | 
|---|
| 161 | ; | 
|---|
| 162 | ; NOW LETS GO OVER TO SEND THIS VRQ TO AUSTIN, WITHOUT KILLING THE | 
|---|
| 163 | ; RECORD IN FILE 440.3.  THAT RECORD IS USED WITHIN THE AR EDIT | 
|---|
| 164 | ; LIST TEMPLATE UNTIL 'DELETE EDIT REQUEST' REMOVES THE RECORD. | 
|---|
| 165 | ; | 
|---|
| 166 | G VRQ1 | 
|---|