| [613] | 1 | PRCHUTL ;SF/TKW/ID/RSD-UTILITY ROUTINES FOR SUPPLY SYSTEM ; 5/10/99 10:58am
 | 
|---|
 | 2 |  ;;5.1;IFCAP;**15**;Oct 20, 2000
 | 
|---|
 | 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
 | 4 |  ;
 | 
|---|
 | 5 | EN2 ;CALLED FROM FILE 441 FIELD .01, INPUT X="NEW", OUTPUT X=NEXT INTERNAL NUMBER
 | 
|---|
 | 6 |  S PRCHU=$P(^PRC(441,0),U,3) F I=1:1 S PRCHU=PRCHU+1 I '$D(^PRC(441,PRCHU)) L ^PRC(441,PRCHU) I  S (X,DIX)=PRCHU K PRCHU Q
 | 
|---|
 | 7 |  Q
 | 
|---|
 | 8 |  ;
 | 
|---|
 | 9 | ENPO ;ENTER NEW PO IN FILE 442
 | 
|---|
 | 10 |  K PRCHPO,PRCHNEW,DA,DIC,DLAYGO,L Q:'$D(PRC("SITE"))
 | 
|---|
 | 11 |  I '$D(DT) S X="T" D ^%DT S DT=Y
 | 
|---|
 | 12 |  W !!,"ENTER A NEW "_$S($G(PRCHDELV):"DELIVERY",1:"PURCHASE")_" ORDER NUMBER OR A COMMON NUMBERING SERIES"
 | 
|---|
 | 13 |  W !?3,$S($G(PRCHDELV):"DELIVERY",1:"PURCHASE")_" ORDER: " R X:DTIME
 | 
|---|
 | 14 |  G:X=""!(X=U) ENPOQ
 | 
|---|
 | 15 |  D:'$D(DIC("S"))
 | 
|---|
 | 16 |  . S DIC="^PRC(442.6,",DIC(0)="QEMZ"
 | 
|---|
 | 17 |  . I $G(PRCHPC) S DIC("S")="I +$P(^(0),U,1)=PRC(""SITE""),$P(^(0),U,5)=6"
 | 
|---|
 | 18 |  . E  I $G(PRCHDELV) S DIC("S")="I +$P(^(0),U,1)=PRC(""SITE""),$P(^(0),U,5)=7"
 | 
|---|
 | 19 |  . E  S DIC("S")="I +$P(^(0),U,1)=PRC(""SITE""),($P(^(0),U,5)=2!($P(^(0),U,5)="""")!($P(^(0),U,5)=6))"
 | 
|---|
 | 20 |  I $L(X)<4!($E(X,1)="?") S D="C" D IX^DIC G ENPO:Y<0,NUM:$L(X)<4
 | 
|---|
 | 21 |  I '$O(^PRC(442.6,"B",PRC("SITE")_"-"_$E(X,1,2),0)) W " ??? Not part of an existing Common Numbering Series." G ENPO
 | 
|---|
 | 22 |  I $E(X,1,2)["B" W $C(7),!! W "'B' numbers are normally used for Acquisitions from Federal Sources." S %A="  ARE YOU SURE ",%B="This number should only be used for Federal Source Acquisitions",%=2 D ^PRCFYN G:%=-1 ENPOQ G:%'=1 ENPO
 | 
|---|
 | 23 |  S X=PRC("SITE")_"-"_X I $D(^PRC(442,"B",X)) W !?3,"P.O. ",X," already exist, use edit option to modify." G ENPO
 | 
|---|
 | 24 |  ;
 | 
|---|
 | 25 | ENPO1 K DIC("S") S PRCHNEW="",DIC="^PRC(442,",DLAYGO=442,DIC(0)="L" D ^DIC L  G ENPO:Y<0,W3:'+$P(Y,U,3)
 | 
|---|
 | 26 |  S (DA,PRCHPO)=+Y,%DT="T",X="NOW" D ^%DT S $P(^PRC(442,PRCHPO,12),U,4,5)=DUZ_U_Y
 | 
|---|
 | 27 |  S (X,Y)=1,DA=PRCHPO D UPD^PRCHSTAT
 | 
|---|
 | 28 |  S $P(^PRC(442,PRCHPO,1),U,10)=DUZ
 | 
|---|
 | 29 |  D DOCID
 | 
|---|
 | 30 |  G ENPOQ
 | 
|---|
 | 31 |  ;
 | 
|---|
 | 32 | NUM L ^PRC(442.6,+Y,0):1 G:'$T W1 S X=$P(Y,U,2),Z=$S(+$P(Y(0),U,4)<$P(Y(0),U,2):+$P(Y(0),U,2),1:+$P(Y(0),U,4)),L=$L(X)#2-3
 | 
|---|
 | 33 |  ;
 | 
|---|
 | 34 | Z G:Z>$P(Y(0),U,3) W2 S Z="000"_Z,Z=$E(Z,$L(Z)+L,$L(Z)),X=X_Z I $D(^PRC(442,"B",X)) S Z=Z+1,X=$P(Y,U,2) G Z
 | 
|---|
 | 35 |  W $C(7) S %A="   Are you adding '"_X_"' as a new Purchase Order number ",%B="",%="" D ^PRCFYN I %'=1 L  G ENPO
 | 
|---|
 | 36 |  S $P(^PRC(442.6,+Y,0),U,4)=+Z
 | 
|---|
 | 37 |  G ENPO1
 | 
|---|
 | 38 |  ;
 | 
|---|
 | 39 | DOCID S Z=$P($P(^PRC(442,PRCHPO,0),U,1),"-",2) Q:$L(Z)'=6  F I=1:1:6 S X=$E(Z,I,I) Q:+X=X
 | 
|---|
 | 40 |  I +X=X S $P(^PRC(442,PRCHPO,18),"^",3)=$S(I=1:$E(Z,2,6),1:$E(Z,1,I-1)_$E(Z,I+1,6))
 | 
|---|
 | 41 |  Q
 | 
|---|
 | 42 |  ;
 | 
|---|
 | 43 | W1 L  W !?3," Common numbering series is being edited by another user, try later",$C(7)
 | 
|---|
 | 44 |  G ENPO
 | 
|---|
 | 45 |  ;
 | 
|---|
 | 46 | W2 L  W !?3,"UPPER BOUND HAS BEEN EXCEEDED FOR COMMON NUMBERING SERIES ",$P(Y,U,2),$C(7)
 | 
|---|
 | 47 |  G ENPO
 | 
|---|
 | 48 |  ;
 | 
|---|
 | 49 | W3 W "   Purchase Order number already exist, please try again ",$C(7)
 | 
|---|
 | 50 |  G ENPO
 | 
|---|
 | 51 |  ;
 | 
|---|
 | 52 | ENPOQ K DIC,DLAYGO,%DT,PRCHNEW,L
 | 
|---|
 | 53 |  Q
 | 
|---|
 | 54 |  ;several old linetags that encoded/decoded esigs were removed from here
 | 
|---|
 | 55 |  ;
 | 
|---|
 | 56 | WORD ; PRCH=GLOBAL,WX=LINE TO INSERT
 | 
|---|
 | 57 |  I '$D(@(PRCH_"0)")) S @(PRCH_"0)")="^^0^0^"_DT
 | 
|---|
 | 58 |  S WI=0 F WJ=1:1 S WI=$O(@(PRCH_WI_")")) Q:'WI  I $D(^(WI,0)) S WY=^(0),^(0)=WX,WX=WY
 | 
|---|
 | 59 |  S $P(@(PRCH_"0)"),U,3,4)=WJ_U_WJ,^(WJ,0)=WX K WI,WJ,WX,WY
 | 
|---|
 | 60 |  Q
 | 
|---|
 | 61 |  ;
 | 
|---|
 | 62 | SWITCH N X K PRCHLOG,PRCHISMS S X=$$ISMSFLAG^PRCPUX2(PRC("SITE")) S:X#2 PRCHLOG="" S:X\2 PRCHISMS="",PRCHTYP="I"
 | 
|---|
 | 63 |  Q
 | 
|---|
 | 64 |  ;
 | 
|---|
 | 65 | EDISTAT(D0,D1,LINECNT) ;DISPLAY P.O.'S EDI STATUS & QUANTITY
 | 
|---|
 | 66 |  ;REQUIRES INTERNAL RECORD NUMBER AS D0
 | 
|---|
 | 67 |  ;         INTERNAL SUBRECORD NUMBER AS D1
 | 
|---|
 | 68 |  ;         RETURNS THE NUMBER OF LINES PRINTED AS LINECNT
 | 
|---|
 | 69 |  ;NOTE: THE NAKED REFERENCE WILL BE ^DD(442.01,12 or 13,0) WHEN
 | 
|---|
 | 70 |  ;      THIS MODULE FINISHES.
 | 
|---|
 | 71 |  N X,Y,C
 | 
|---|
 | 72 |  S:'$D(LINECNT) LINECNT=0
 | 
|---|
 | 73 |  I $D(^PRC(442,D0,2,D1,2)) S X=$P(^(2),"^",9,12) D
 | 
|---|
 | 74 |  .I $P(X,"^",1)=""&($P(X,"^",3)="") Q
 | 
|---|
 | 75 |  .W !,"  E D I   S T A T U S :  ",?26
 | 
|---|
 | 76 |  .I $P(X,"^",1)]"" S Y=$P(X,"^",1),C=$P(^DD(442.01,12,0),"^",2) D Y^DIQ W "#1: ",Y,"  QTY: ",$P(X,"^",2),!,?26 S LINECNT=LINECNT+1
 | 
|---|
 | 77 |  .I $P(X,"^",3)]"" S Y=$P(X,"^",3),C=$P(^DD(442.01,13,0),"^",2) D Y^DIQ W "#2: ",Y,"  QTY: ",$P(X,"^",4) S LINECNT=LINECNT+1
 | 
|---|
 | 78 |  .W ! S LINECNT=LINECNT+1
 | 
|---|
 | 79 |  .Q
 | 
|---|
 | 80 |  Q
 | 
|---|
 | 81 |  ;
 | 
|---|
 | 82 |  ;
 | 
|---|
 | 83 |  ;
 | 
|---|
 | 84 | VEN(A) ; Entry point to get FMS Vendor ID_ Alt.Address Indicator  from the vendor file. -- Used by AR (Only)
 | 
|---|
 | 85 |  ;  A = internal entry number to vendor file (#440)
 | 
|---|
 | 86 |  ;
 | 
|---|
 | 87 |  N T S T=$G(^PRC(440,+A,3))
 | 
|---|
 | 88 |  I $L($P(T,U,4))'=9 Q ""
 | 
|---|
 | 89 |  Q $P(T,U,4)_$P(T,U,5)
 | 
|---|
 | 90 |  ;
 | 
|---|
 | 91 | VENSEL() ; VENSEL = VENdor SELection
 | 
|---|
 | 92 |  ; EXTRINSIC FUNCTION THAT ALLOWS A USER TO SELECT AN IFCAP VENDOR.
 | 
|---|
 | 93 |  ; THIS FUNCTION WILL BE USED BY ACCOUNTS RECEIVABLE USERS.
 | 
|---|
 | 94 |  ;
 | 
|---|
 | 95 |  ; THIS EXTRINSIC FUNCTION WILL RETURN A STRING.
 | 
|---|
 | 96 |  ;      CONDITION          STRING VALUE          ^DIC VALUE
 | 
|---|
 | 97 |  ;     LOOKUP FAILED            -1                  Y=-1
 | 
|---|
 | 98 |  ;       TIMED-OUT              -2                  DTOUT
 | 
|---|
 | 99 |  ;       UP-ARROW               -3                  DUOUT
 | 
|---|
 | 100 |  ;      SUCCESSFUL          DA^.01 FIELD            Y=N^S
 | 
|---|
 | 101 |  ;   SUCCESSFUL & NEW      DA^.01 FIELD^1          Y=N^S^1
 | 
|---|
 | 102 |  ;
 | 
|---|
 | 103 |  ; THE DEFINITIONS OF THE ^DIC VALUEs MAY BE FOUND IN VA FileMan
 | 
|---|
 | 104 |  ; V.21.0 Programmer Manual ON PAGES 56-57.  THIS IS THE RETURNED
 | 
|---|
 | 105 |  ; STRING OF THIS FUNCTION.
 | 
|---|
 | 106 |  ;
 | 
|---|
 | 107 |  ; FIRST, ASK THE USER FOR THEIR "SITE".
 | 
|---|
 | 108 |  ;
 | 
|---|
 | 109 |  S PRCF("X")="S"
 | 
|---|
 | 110 |  D ^PRCFSITE
 | 
|---|
 | 111 |  ;
 | 
|---|
 | 112 |  ; NOW THAT WE HAVE THE SITE, CONTINUE ON.
 | 
|---|
 | 113 |  ;
 | 
|---|
 | 114 |  S DIC="^PRC(440,"
 | 
|---|
 | 115 |  S DIC(0)="AEMO"
 | 
|---|
 | 116 |  S DIC("A")="Select the DEBTOR from the VENDOR list: "
 | 
|---|
 | 117 |  K DTOUT,DUOUT
 | 
|---|
 | 118 |  D ^DIC
 | 
|---|
 | 119 |  S:$D(DTOUT) Y=-2
 | 
|---|
 | 120 |  S:$D(DUOUT) Y=-3
 | 
|---|
 | 121 |  K DIC,DTOUT,DUOUT
 | 
|---|
 | 122 |  S PRCOY=Y
 | 
|---|
 | 123 |  I +PRCOY<0 Q PRCOY
 | 
|---|
 | 124 |  ;
 | 
|---|
 | 125 |  ; NOW LETS SEE IF THIS VENDOR RECORD IS PROPERLY SET UP.
 | 
|---|
 | 126 |  ;
 | 
|---|
 | 127 |  S DA=+Y
 | 
|---|
 | 128 |  K ^PRC(440.3,DA)
 | 
|---|
 | 129 |  S %X="^PRC(440,DA,"
 | 
|---|
 | 130 |  S %Y="^PRC(440.3,DA,"
 | 
|---|
 | 131 |  D %XY^%RCR
 | 
|---|
 | 132 |  S FLAG=1
 | 
|---|
 | 133 |  S FISCAL=$G(^PRC(411,PRC("SITE"),9))
 | 
|---|
 | 134 |  S FISCAL=$P(FISCAL,U,3)
 | 
|---|
 | 135 |  S SAVE=$$CHECK^PRCOVTST(DA,PRC("SITE"),FLAG)
 | 
|---|
 | 136 |  I FISCAL="Y",SAVE=0 D
 | 
|---|
 | 137 |  .  S DIE="^PRC(440.3,"
 | 
|---|
 | 138 |  .  S DR="47///^S X=FLAG;48///^S X=DA;49///^S X=PRC(""SITE"")"
 | 
|---|
 | 139 |  .  D ^DIE
 | 
|---|
 | 140 |  .  Q
 | 
|---|
 | 141 |  I FISCAL'="Y",SAVE=0 S PRCZDA=DA D VRQ^PRCOVTST(DA,PRC("SITE")) S DA=PRCZDA K PRCZDA
 | 
|---|
 | 142 |  I SAVE=1 D
 | 
|---|
 | 143 |  .  S AR=449
 | 
|---|
 | 144 |  .  S DIE="^PRC(440.3,"
 | 
|---|
 | 145 |  .  S DR="50///^S X=FLAG;51///^S X=DA;52///^S X=PRC(""SITE"")"
 | 
|---|
 | 146 |  .  D ^DIE
 | 
|---|
 | 147 |  .  K AR
 | 
|---|
 | 148 |  .  Q
 | 
|---|
 | 149 |  Q PRCOY
 | 
|---|
 | 150 |  ;
 | 
|---|
 | 151 | AF ; CALLED BY "AF" X-REF IN FIELD 52 (SITE AR) IN FILE 440.3.
 | 
|---|
 | 152 |  N PRCX,DIC,DLAYGO,Y
 | 
|---|
 | 153 |  Q:$G(AR)'=449
 | 
|---|
 | 154 |  S PRCX=$O(^PRCF(422.2,"B","AR-EDIT-01",0)) D:PRCX=""
 | 
|---|
 | 155 |  .  ; NEED TO SET UP ENTRY IN COUNTER FILE.
 | 
|---|
 | 156 |  .  K DD,DO
 | 
|---|
 | 157 |  .  S DIC="^PRCF(422.2,"
 | 
|---|
 | 158 |  .  S DIC(0)="L"
 | 
|---|
 | 159 |  .  S X="AR-EDIT-01"
 | 
|---|
 | 160 |  .  S DELAYGO=422.2
 | 
|---|
 | 161 |  .  D FILE^DICN
 | 
|---|
 | 162 |  .  S PRCX=+Y
 | 
|---|
 | 163 |  .  Q
 | 
|---|
 | 164 |  S $P(^PRCF(422.2,PRCX,0),U,2)=+$P(^PRCF(422.2,PRCX,0),U,2)+1
 | 
|---|
 | 165 |  Q
 | 
|---|
 | 166 |  ;
 | 
|---|
 | 167 | VENEDITF ; THIS ENTRY POINT WILL INFORM USERS THAT THERE ARE VENDOR
 | 
|---|
 | 168 |  ; RECORDS, USED BY Accounts Receivable, THAT NEED TO BE EDITED
 | 
|---|
 | 169 |  ; BEFORE THEY CAN BE ENTERED INTO A VRQ.
 | 
|---|
 | 170 |  ;
 | 
|---|
 | 171 |  ; SEE IF FISCAL CAN ADD A VENDOR.  IF SO, TELL THE USER THERE
 | 
|---|
 | 172 |  ; RECORDS TO EDIT.
 | 
|---|
 | 173 |  ;
 | 
|---|
 | 174 |  N COUNT,STN411,SHOWIT
 | 
|---|
 | 175 |  Q:'$D(DUZ)   ; YOU ARE UNDEFINED.
 | 
|---|
 | 176 |  ;
 | 
|---|
 | 177 |  ; SEE IF FISCAL CAN ADD VENDORS.
 | 
|---|
 | 178 |  ;
 | 
|---|
 | 179 |  D FIND
 | 
|---|
 | 180 |  Q:STN411'=1
 | 
|---|
 | 181 |  ;
 | 
|---|
 | 182 |  S SHOWIT=0
 | 
|---|
 | 183 |  ;
 | 
|---|
 | 184 |  ; I STN411=1 THEN FISCAL CAN ADD VENDORS.
 | 
|---|
 | 185 |  ; SEE IF THE USER IS A FISCAL USER.
 | 
|---|
 | 186 |  ;
 | 
|---|
 | 187 |  I $D(^XUSEC("PRCFA VENDOR EDIT",DUZ))=1 S SHOWIT=1
 | 
|---|
 | 188 |  Q:SHOWIT'=1
 | 
|---|
 | 189 |  G COUNT
 | 
|---|
 | 190 |  ;
 | 
|---|
 | 191 | VENEDITS ; THIS ENTRY POINT WILL INFORM USERS THAT THERE ARE VENDOR
 | 
|---|
 | 192 |  ; RECORDS, USED BY Accounts Receivable, THAT NEED TO BE EDITED
 | 
|---|
 | 193 |  ; BEFORE THEY CAN BE ENTERED INTO A VRQ.
 | 
|---|
 | 194 |  ;
 | 
|---|
 | 195 |  ; SEE IF FISCAL CAN ADD A VENDOR.  IF NOT, HAVE SUPPLY EDIT THE
 | 
|---|
 | 196 |  ; VENDOR RECORDS.
 | 
|---|
 | 197 |  ;
 | 
|---|
 | 198 |  N COUNT,STN411,SHOWIT
 | 
|---|
 | 199 |  Q:'$D(DUZ)   ; YOU ARE UNDEFINED.
 | 
|---|
 | 200 |  ;
 | 
|---|
 | 201 |  ; SEE IF FISCAL CAN ADD VENDORS.
 | 
|---|
 | 202 |  ;
 | 
|---|
 | 203 |  D FIND
 | 
|---|
 | 204 |  Q:STN411=1
 | 
|---|
 | 205 |  ;
 | 
|---|
 | 206 |  S SHOWIT=0
 | 
|---|
 | 207 |  ;
 | 
|---|
 | 208 |  ; SEE IF THE USER IS A PURCHASING AGENT OR A MANAGER.
 | 
|---|
 | 209 |  ;
 | 
|---|
 | 210 |  I +$P($G(^VA(200,DUZ,400)),U)>2 S SHOWIT=1
 | 
|---|
 | 211 |  Q:SHOWIT'=1
 | 
|---|
 | 212 |  ;
 | 
|---|
 | 213 | COUNT ; NOW SHOW MESSAGE, IF ANY
 | 
|---|
 | 214 |  ;
 | 
|---|
 | 215 |  S COUNT=$O(^PRCF(422.2,"B","AR-EDIT-01",0)) Q:COUNT'>0
 | 
|---|
 | 216 |  S COUNT=$P($G(^PRCF(422.2,COUNT,0)),U,2) Q:COUNT'>0
 | 
|---|
 | 217 |  W !!,"There are Vendor Records that AR is using to be edited."
 | 
|---|
 | 218 |  Q
 | 
|---|
 | 219 |  ;
 | 
|---|
 | 220 | FIND ; SEE IF FISCAL CAN ADD A VENDOR.
 | 
|---|
 | 221 |  ;
 | 
|---|
 | 222 |  N STATION,STNIEN
 | 
|---|
 | 223 |  S STATION=0
 | 
|---|
 | 224 |  S STN411=""
 | 
|---|
 | 225 |  F  S STATION=$O(^PRC(411,"B",STATION)) Q:STATION']""  D  Q:STN411=1
 | 
|---|
 | 226 |  .  S STNIEN=$O(^PRC(411,"B",STATION,0)) Q:STNIEN'>0
 | 
|---|
 | 227 |  .  S STN411=$P($G(^PRC(411,STNIEN,0)),U,20)
 | 
|---|
 | 228 |  .  Q
 | 
|---|
 | 229 |  Q
 | 
|---|