| [613] | 1 | PRCHNPO7 ;WISC/RHD-MISCELLANEOUS ROUTINES FROM P.O.ADD/EDIT 442 ; 7/27/05 10:16am
 | 
|---|
 | 2 | V ;;5.1;IFCAP;**79,100**;Oct 20, 2000
 | 
|---|
 | 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
 | 4 |  ;
 | 
|---|
 | 5 | EN1 ;INPUT TRANSFORM-FILE 442, NSN #9.5
 | 
|---|
 | 6 |  I '$D(^PRC(441.2,+X,0)) W !!,$C(7),"Invalid NSN--first 4 characters must be FSC code!!" K X Q
 | 
|---|
 | 7 |  S PRCHCI=+$P(^PRC(442,DA(1),2,DA,0),U,5)
 | 
|---|
 | 8 |  S Z=$O(^PRC(441,"BB",X,0)) S:Z=PRCHCI Z=$O(^(Z)) I Z W !!,$C(7),"This NSN has already been assigned to item # "_$O(^(0))_"!!" K X Q
 | 
|---|
 | 9 |  I $P(^PRC(441.2,+X,0),U,4)="" W $C(7),!,"Commodity Code missing on this FSC--Required for LOG code sheets!" K X Q
 | 
|---|
 | 10 |  S $P(^PRC(442,DA(1),2,DA,2),U,3)=+X
 | 
|---|
 | 11 |  Q:$P(^PRC(442,DA(1),2,DA,0),U,5)=""
 | 
|---|
 | 12 |  S:'$D(PRC("SITE")) PRC("SITE")=+^PRC(442,DA(1),0) S PRCHCPO=DA(1) D EN5^PRCHCRD
 | 
|---|
 | 13 |  S PRCHSAVX=X,X=+X
 | 
|---|
 | 14 |  G EN11
 | 
|---|
 | 15 |  ;
 | 
|---|
 | 16 | EN10 ;UPDATE FEDERAL SUPPLY CLASSIFICATION/PRODUCT SERVICE CODE (FSC/PSC), field #8, file #442.
 | 
|---|
 | 17 |  ;PRC*5.1*79: if entering a service item, don't check for commodity code.
 | 
|---|
 | 18 |  ;The field title is now called 'FSC/PSC' to hold either a Federal Supply
 | 
|---|
 | 19 |  ;Classification (FSC) code or a Product Service Code (PSC) to support a
 | 
|---|
 | 20 |  ;new FPDS report for the Austin Automation Center (AAC). The variable
 | 
|---|
 | 21 |  ;PRCSAVE is killed in various PO input templates where it is used.
 | 
|---|
 | 22 |  ;
 | 
|---|
 | 23 |  I '$D(PRCSAVE)&(X'=$P(^PRC(441.2,+X,0),U,1))&($P(^PRC(442,DA(1),2,DA,0),U,5)'="") D EN102 K A,X Q
 | 
|---|
 | 24 |  ;
 | 
|---|
 | 25 |  I ($P(^PRC(441.2,+X,0),U,4)="")&(X=$P(^PRC(441.2,+X,0),U,1)) D EN104 K A,X Q
 | 
|---|
 | 26 |  S:'$D(PRC("SITE")) PRC("SITE")=+^PRC(442,DA(1),0)
 | 
|---|
 | 27 |  I $G(PRCSAVE)="G"&(X'=$P(^PRC(441.2,+X,0),U,1)) D EN102 K A,X Q
 | 
|---|
 | 28 |  ;
 | 
|---|
 | 29 |  I $G(PRCSAVE)="S"&(X=$P(^PRC(441.2,+X,0),U,1))&($P(^PRC(442,DA(1),2,DA,0),U,5)="") D EN103 K A,X Q
 | 
|---|
 | 30 |  ;
 | 
|---|
 | 31 | EN11 S PRCHCI=+$P(^PRC(442,DA(1),2,DA,0),U,5),PRCHCPO=DA(1) I $D(^PRC(441,+PRCHCI,0)) D EN8^PRCHCRD1
 | 
|---|
 | 32 |  S:$D(PRCHSAVX) X=PRCHSAVX K PRCHSAVX
 | 
|---|
 | 33 |  Q
 | 
|---|
 | 34 |  ;
 | 
|---|
 | 35 | EN100 ;Come here for amended orders - check FSC/PSC, field #8, file #443.6.
 | 
|---|
 | 36 |  ;PRC*5.1*79: if entering a service item, don't check for commodity code
 | 
|---|
 | 37 |  I X=""&($P(^PRC(443.6,DA(1),2,DA,2),U,3)="") D EN^DDIOL("This field is Required!!") S Y="@6" Q
 | 
|---|
 | 38 |  I '$D(PRCSAVE)&(X'=$P(^PRC(441.2,+X,0),U,1))&($P(^PRC(443.6,DA(1),2,DA,0),U,5)'="") D EN102 K A,X Q
 | 
|---|
 | 39 |  ;
 | 
|---|
 | 40 |  I ($P(^PRC(441.2,+X,0),U,4)="")&(X=$P(^PRC(441.2,+X,0),U,1)) D EN104 K A,X Q
 | 
|---|
 | 41 |  S:'$D(PRC("SITE")) PRC("SITE")=+^PRC(442,DA(1),0)
 | 
|---|
 | 42 |  I $G(PRCSAVE)="G"&(X'=$P(^PRC(441.2,+X,0),U,1)) D EN102 K A,X Q
 | 
|---|
 | 43 |  ;
 | 
|---|
 | 44 |  I $G(PRCSAVE)="S"&(X=$P(^PRC(441.2,+X,0),U,1))&($P(^PRC(443.6,DA(1),2,DA,0),U,5)="") D EN103 K A,X Q
 | 
|---|
 | 45 |  ;
 | 
|---|
 | 46 |  S PRCHCI=+$P(^PRC(443.6,DA(1),2,DA,0),U,5),PRCHCPO=DA(1) I $D(^PRC(441,+PRCHCI,0)) D EN8^PRCHCRD1
 | 
|---|
 | 47 |  S:$D(PRCHSAVX) X=PRCHSAVX K PRCHSAVX
 | 
|---|
 | 48 |  Q
 | 
|---|
 | 49 |  ;
 | 
|---|
 | 50 | EN101 ;Check Request for Quotations - check FSC/PSC, field #4, file #444.
 | 
|---|
 | 51 |  I '$D(PRCSAVE)&($P(^PRC(444,DA(1),2,DA,0),U,4)'="")&(X'=$P(^PRC(441.2,+X,0),U,1)) D EN102 K A,X Q
 | 
|---|
 | 52 |  ;
 | 
|---|
 | 53 |  I ($P(^PRC(441.2,+X,0),U,4)="")&(X=$P(^PRC(441.2,+X,0),U,1)) D EN104 K A,X Q
 | 
|---|
 | 54 |  I $G(PRCSAVE)="G"&(X'=$P(^PRC(441.2,+X,0),U,1)) D EN102 K A,X Q
 | 
|---|
 | 55 |  ;
 | 
|---|
 | 56 |  I $G(PRCSAVE)="S"&(X=$P(^PRC(441.2,+X,0),U,1)) D EN103 K A,X Q
 | 
|---|
 | 57 |  ;
 | 
|---|
 | 58 |  S PRCHCI=+$P(^PRC(444,DA(1),2,DA,0),U,5),PRCHCPO=DA(1) I $D(^PRC(441,+PRCHCI,0)) D EN8^PRCHCRD1
 | 
|---|
 | 59 |  S:$D(PRCHSAVX) X=PRCHSAVX K PRCHSAVX
 | 
|---|
 | 60 |  Q
 | 
|---|
 | 61 |  ;
 | 
|---|
 | 62 | EN102 ;Stop assignment of a PSC to an item.
 | 
|---|
 | 63 |  S A(1)="This is a Product Service Code - Not allowed on ITEMS!!"
 | 
|---|
 | 64 |  S A(2,"F")="!"
 | 
|---|
 | 65 |  D EN^DDIOL(.A)
 | 
|---|
 | 66 |  Q
 | 
|---|
 | 67 |  ;
 | 
|---|
 | 68 | EN103 ;Stop assignment of an FSC to a service.
 | 
|---|
 | 69 |  S A(1)="This is a Federal Supply Classification Code - Not allowed on SERVICES!!"
 | 
|---|
 | 70 |  S A(2,"F")="!"
 | 
|---|
 | 71 |  D EN^DDIOL(.A)
 | 
|---|
 | 72 |  Q
 | 
|---|
 | 73 |  ;
 | 
|---|
 | 74 | EN104 ;Stop user if commodity code is missing.
 | 
|---|
 | 75 |  S A(1)="Commodity Code missing on this Federal Supply Classification--Required for LOG code sheets!"
 | 
|---|
 | 76 |  S A(2,"F")="!"
 | 
|---|
 | 77 |  D EN^DDIOL(.A)
 | 
|---|
 | 78 |  Q
 | 
|---|
 | 79 |  ;
 | 
|---|
 | 80 | EN105 ;Stop a PO if a line item does not contain an FSC or PSC. This tag is
 | 
|---|
 | 81 |  ;called from the routine PRCHNP04. Do not clean up variables here.
 | 
|---|
 | 82 |  ;This check is for all POs that may be required by FPDS. PRC*5.1*100.
 | 
|---|
 | 83 |  I $P(^PRC(442,PRCHPO,1),U,7)]"" D
 | 
|---|
 | 84 |  . S PRCHITM=0 F  S PRCHITM=$O(^PRC(442,PRCHPO,2,PRCHITM)) Q:'PRCHITM  I $P($G(^PRC(442,PRCHPO,2,PRCHITM,2)),U,3)="" D EN^DDIOL("Line item "_PRCHITM_" on this PO does not contain an FSC or PSC.","","!!?5") S ERROR=1
 | 
|---|
 | 85 |  ;End of changes for PRC*5.1*79
 | 
|---|
 | 86 |  Q
 | 
|---|
 | 87 |  ;
 | 
|---|
 | 88 | EN106 ;PRC*5.1*100: stop amended PO with line items lacking an FSC or PSC.
 | 
|---|
 | 89 |  I $P(^PRC(443.6,PRCHPO,1),U,7)]"" D
 | 
|---|
 | 90 |  . S PRCHITM=0 F  S PRCHITM=$O(^PRC(443.6,PRCHPO,2,PRCHITM)) Q:'PRCHITM  I $P($G(^PRC(443.6,PRCHPO,2,PRCHITM,2)),U,3)="" D EN^DDIOL("Line item "_PRCHITM_" on this PO does not contain an FSC or PSC.","","!!?5") S ERROR=1
 | 
|---|
 | 91 |  Q
 | 
|---|
 | 92 |  ;
 | 
|---|
 | 93 | EN2 ;IF 'ESTIMATED P.O.' MOVE VERBAGE INTO COMMENTS
 | 
|---|
 | 94 |  D EN2A
 | 
|---|
 | 95 |  Q:'$D(^PRC(442,PRCHPO,7))  Q:$P(^(7),U,3)'="Y"  S WX="*** ESTIMATED PURCHASE ORDER ***" I $D(^PRC(442,PRCHPO,4,1,0)),^(0)[WX K WX Q
 | 
|---|
 | 96 |  S WX=WX_"   ",PRCH="^PRC(442,PRCHPO,4," D WORD^PRCHUTL K PRCH
 | 
|---|
 | 97 |  Q
 | 
|---|
 | 98 |  ;
 | 
|---|
 | 99 | EN2A ;CHECK DELIVERY SCHEDULES-QUANTITY DELIVERED MUST BE >0
 | 
|---|
 | 100 |  N NUM,J,K,DA
 | 
|---|
 | 101 |  S NUM=$P(^PRC(442,PRCHPO,0),U)
 | 
|---|
 | 102 |  I $D(^PRC(442.8,"AC",NUM)) D
 | 
|---|
 | 103 |  . F J=0:0 S J=$O(^PRC(442.8,"AC",NUM,J)) Q:J'>0  D
 | 
|---|
 | 104 |  . . F K=0:0 S K=$O(^PRC(442.8,"AC",NUM,J,K)) Q:K'>0  D
 | 
|---|
 | 105 |  . . . I $P(^PRC(442.8,K,0),U,5)'>0 S DIK="^PRC(442.8,",DA=K D ^DIK K DIK
 | 
|---|
 | 106 |  Q
 | 
|---|
 | 107 | EN3 ;COMPLETE DEPOT/GSA PUSH ORDERS
 | 
|---|
 | 108 |  S I=$P(^PRC(442,PRCHPO,0),U,15)
 | 
|---|
 | 109 |  W !!,"Total Dollar Amount: "_I_" //" R X:DTIME S:'$T X="^" S:X="" X=I I X["^" S X=1 G EN31
 | 
|---|
 | 110 |  I X=""!(X=0) G EN30
 | 
|---|
 | 111 |  I X["?" W !!,"You can either enter the total dollar amount for the entire PUSH, or just the",!,"dollar amount for this part (regular, subsistence or drugs).  This is just",!,"used to update the P.O.register." G EN3
 | 
|---|
 | 112 |  S:X["$" X=$P(X,"$",2) I X'?.N.1".".2N!(X>9999999.99)!(X<1) W $C(7),"??" G EN3
 | 
|---|
 | 113 |  S $P(^PRC(442,PRCHPO,0),U,15)=X
 | 
|---|
 | 114 |  ;
 | 
|---|
 | 115 | EN30 S X=1,%A="Complete this Requisition ",%B="This action will change the status to 'Transaction Complete'.",%=1 D ^PRCFYN I %=1 S X=40
 | 
|---|
 | 116 |  ;
 | 
|---|
 | 117 | EN31 S DA=PRCHPO D ENS^PRCHSTAT
 | 
|---|
 | 118 |  Q
 | 
|---|
 | 119 |  ;
 | 
|---|
 | 120 | EN6 ;FILE 442, SKU #9.4
 | 
|---|
 | 121 |  D VEN Q:'$D(X)!($P(^PRC(442,DA(1),2,DA,0),U,5)="")
 | 
|---|
 | 122 |  S:'$D(PRC("SITE")) PRC("SITE")=$P($P(^PRC(442,DA(1),0),U,1),"-",1) S PRCHCV=$P(^PRC(442,DA(1),1),U,1),PRCHCI=$P(^(2,DA,0),U,5),PRCHCPO=DA(1) D EN10^PRCHCRD1
 | 
|---|
 | 123 |  Q
 | 
|---|
 | 124 |  ;
 | 
|---|
 | 125 | EN7 ;FILE 442, UNIT CONVERSION FACTOR #9.7
 | 
|---|
 | 126 |  D VEN Q:'$D(X)!($P(^PRC(442,DA(1),2,DA,0),U,5)="")
 | 
|---|
 | 127 |  S:'$D(PRC("SITE")) PRC("SITE")=+^PRC(442,DA(1),0) S PRCHCV=+$P(^PRC(442,DA(1),1),U,1),PRCHCI=+$P(^(2,DA,0),U,5),PRCHCPO=DA(1) D EN11^PRCHCRD1
 | 
|---|
 | 128 |  Q
 | 
|---|
 | 129 |  ;
 | 
|---|
 | 130 | VEN I $S('$D(^PRC(442,DA(1),1)):1,$P(^(1),U,1)="":1,1:0) W !!,"Vendor must be entered before items ! ",$C(7) K X
 | 
|---|
 | 131 |  Q
 | 
|---|
 | 132 |  ;
 | 
|---|
 | 133 | VENA I $S('$D(^PRC(442,DA,1)):1,$P(^(1),U,1)="":1,1:0) W !!,"Vendor must be entered before items ! ",$C(7) K X
 | 
|---|
 | 134 |  Q
 | 
|---|
 | 135 |  ;
 | 
|---|
 | 136 | VEN1 I $S('$D(^PRC(443.6,DA(1),1)):1,$P(^(1),U,1)="":1,1:0) W !!,"Vendor must be entered before items ! ",$C(7) K X
 | 
|---|
 | 137 |  Q
 | 
|---|
 | 138 |  ;
 | 
|---|
 | 139 | VEN1A I $S('$D(^PRC(443.6,DA,1)):1,$P(^(1),U,1)="":1,1:0) W !!,"Vendor must be entered before items ! ",$C(7) K X
 | 
|---|
 | 140 |  Q
 | 
|---|
 | 141 |  ;
 | 
|---|
 | 142 |  ;
 | 
|---|
 | 143 |  ;
 | 
|---|
 | 144 | SUPBOC(QUIETLY) ;stmts.to compute pre-implied BOC, moved from template PRCH2138 into this routine and also called in BOC input transform
 | 
|---|
 | 145 |  N PRCHIDA,SPFCP,PRCHBOCC,ACCT
 | 
|---|
 | 146 |  S:$G(QUIETLY)=-1 X=$P($G(^PRC(442,DA(1),2,DA,0)),U,4)
 | 
|---|
 | 147 |  D VEN Q:'$D(X) ""
 | 
|---|
 | 148 |  S PRCHIDA=+$P(^PRC(442,DA(1),2,DA,0),U,5),SPFCP=+$P(^PRC(442,DA(1),0),U,19)
 | 
|---|
 | 149 |  I SPFCP=2 D
 | 
|---|
 | 150 |  . S PRCHN("SFC")=SPFCP,ACCT=$$ACCT^PRCPUX1($E($$NSN^PRCPUX1(PRCHIDA),1,4))
 | 
|---|
 | 151 |  . D  ;:$D(ACCT)
 | 
|---|
 | 152 |  .  .  S PRCHBOCC=$P($G(^PRCD(420.2,$S(ACCT=1:2697,ACCT=2:2698,ACCT=3:2699,ACCT=6:2699,ACCT=8:2696,1:2699),0)),U)
 | 
|---|
 | 153 |  .  .  I PRCHBOCC S $P(^PRC(442,DA(1),2,DA,0),U,4)=PRCHBOCC D
 | 
|---|
 | 154 |  .  .  .  I PRCHBOCC'=X,PRCHBOCC W:'$G(QUIETLY) !,?5,"BOC must be ",PRCHBOCC,!,?5,"For a supply fund order, a BOC ",X," is invalid.",! S X=PRCHBOCC
 | 
|---|
 | 155 |  Q X
 | 
|---|
 | 156 |  ;
 | 
|---|
 | 157 |  ;
 | 
|---|
 | 158 |  ;
 | 
|---|
 | 159 | EN8 ;FILE 442, ITEM #40; BOC #3.5  -- Z0 must = BOC on entry
 | 
|---|
 | 160 |  N DIC D VEN Q:'$D(X)
 | 
|---|
 | 161 |  S DIC="^PRCD(420.1,"_Z0_",1,",DIC(0)="QEMZ"
 | 
|---|
 | 162 |  I $P(^PRC(442,DA(1),0),U,19)'=2 D
 | 
|---|
 | 163 |  . D ^DIC K:Y<0 X K Z0
 | 
|---|
 | 164 |  . I $D(X) S X=$P(Y(0,0),"^",1) D
 | 
|---|
 | 165 |  . . S PRCHBOC=+Y ;D EN2^PRCHNPO8
 | 
|---|
 | 166 |  . . W !,X
 | 
|---|
 | 167 |  Q
 | 
|---|
 | 168 |  ;
 | 
|---|
 | 169 |  ;
 | 
|---|
 | 170 | EN88 ;FILE 442, EST. SHIPPING BOC #13.05  -- Z0 must = BOC on entry
 | 
|---|
 | 171 |  N DIC D VENA Q:'$D(X)
 | 
|---|
 | 172 |  S DIC="^PRCD(420.1,"_Z0_",1,",DIC(0)="QEMZ" D ^DIC K:Y<0 X K Z0
 | 
|---|
 | 173 |  I $D(X) S X=$P(Y(0,0),"^",1) W !,X
 | 
|---|
 | 174 |  Q
 | 
|---|
 | 175 |  ;
 | 
|---|
 | 176 | EN9 ;CHECK FOR PAYMENT FIELDS AND OTHER FIELDS IN VENDOR FILE
 | 
|---|
 | 177 |  ;CALLED FROM FILE 442 INPUT TEMPLATES.
 | 
|---|
 | 178 |  ;FLAG --is set to 1 in template when certain VENDOR conditions are met
 | 
|---|
 | 179 |  S PRCHOV7=$G(^PRC(440,+^PRC(442,D0,1),7)) G:PRCHOV7="" EXIT
 | 
|---|
 | 180 |  I $P(PRCHOV7,U,3)]"",($P(PRCHOV7,U,7)]""),($P(PRCHOV7,U,8)]""),($P(PRCHOV7,U,9)]""),$P(PRCHOV3,U,11)]"",$P(PRCHOV3,U,14)]"",$P(PRCHOV3,U,13)]"",FLAG S Y="@20" G EXIT
 | 
|---|
 | 181 |  S VEN=+^PRC(442,D0,1),%X="^PRC(440,VEN,",%Y="^PRC(440.3,VEN," D %XY^%RCR K VEN
 | 
|---|
 | 182 | EXIT Q
 | 
|---|
 | 183 |  ;
 | 
|---|
 | 184 | EN12 ;UPDATE NATIONAL DRUG CODE #9.3
 | 
|---|
 | 185 |  D VEN Q:'$D(X)!($P(^PRC(442,DA(1),2,DA,0),U,5)="")
 | 
|---|
 | 186 |  S:'$D(PRC("SITE")) PRC("SITE")=$P($P(^PRC(442,DA(1),0),U,1),"-",1) S PRCHCV=$P(^PRC(442,DA(1),1),U,1),PRCHCI=$P(^(2,DA,0),U,5),PRCHCPO=DA(1) D EN12^PRCHCRD1
 | 
|---|
 | 187 |  Q
 | 
|---|
 | 188 |  ;
 | 
|---|
 | 189 | EN13 ;FILE 443.6, ITEM #40;BOC #3.5, EST. SHIPPING BOC #13.05
 | 
|---|
 | 190 |  D VEN1 Q:'$D(X)  S DIC="^PRCD(420.1,"_Z0_",1,",DIC(0)="QEMZ" D ^DIC K:Y<0 X K DIC,Z0 I $D(X) S X=$P(Y(0,0),"^",1) W !,X
 | 
|---|
 | 191 |  Q
 | 
|---|
 | 192 | EN133 ;FILE 443.6, EST. SHIPPING BOC #13.05
 | 
|---|
 | 193 |  D VEN1A Q:'$D(X)  S DIC="^PRCD(420.1,"_Z0_",1,",DIC(0)="QEMZ" D ^DIC K:Y<0 X K DIC,Z0 I $D(X) S X=$P(Y(0,0),"^",1) W !,X
 | 
|---|
 | 194 |  Q
 | 
|---|