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
|
---|