1 | PRCFFMOM ;WOIFO/SJG/AS-ROUTINE TO PROCESS AMENDMENT OBLIGATIONS ;3/8/05
|
---|
2 | V ;;5.1;IFCAP;**81**;Oct 20, 2000
|
---|
3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | D ^PRCFSITE Q:'% ; ask station
|
---|
5 | D OUT1 ; kill variables
|
---|
6 | ;
|
---|
7 | ; prompt for signature (E-Sig code for amendment)
|
---|
8 | S MESSAGE=""
|
---|
9 | D ESIG^PRCUESIG(DUZ,.MESSAGE)
|
---|
10 | I MESSAGE<1 D G OUT1 ; exit if bad response
|
---|
11 | . I (MESSAGE=0)!(MESSAGE=-3) W !,$C(7)," SIGNATURE CODE FAILURE " R X:3 ;3 TRIES or NO SIG ON FILE
|
---|
12 | . I (MESSAGE=-1)!(MESSAGE=-2) Q ;ARROWED OUT or TIMED OUT
|
---|
13 | ;
|
---|
14 | START ; get PO#
|
---|
15 | K PRCFA
|
---|
16 | K DIC("A")
|
---|
17 | S D="E"
|
---|
18 | S DIC=443.6
|
---|
19 | S DIC("S")="I +^(0)=PRC(""SITE"") S FSO=$O(^PRC(443.6,""D"",+Y,0)) I FSO=26!(FSO=31)!(FSO=36)!(FSO=45)!(FSO=71)"
|
---|
20 | S DIC("A")="Select Purchase Order Number: "
|
---|
21 | S DIC(0)="AEQZ"
|
---|
22 | D IX^DIC
|
---|
23 | K DIC("S"),DIC("A")
|
---|
24 | K FSO
|
---|
25 | G:+Y<0 OUT1
|
---|
26 | S FLG=0
|
---|
27 | S PO=Y,PO(0)=Y(0)
|
---|
28 | S PRCFA("PODA")=+Y
|
---|
29 | S PRCFPODA=+Y
|
---|
30 | I '$D(^PRC(443.6,+PO,6)) D NOA G OUT1 ; PO has no amendments
|
---|
31 | I $P(^PRC(443.6,+PO,6,0),"^",4)<0 D NOA G OUT1 ; PO has no amendments
|
---|
32 | I '$$VERIFY^PRCHES5(PRCFPODA) D MSG1 G OUT1 ; tampered PO
|
---|
33 | ;
|
---|
34 | ; get amendment #
|
---|
35 | AMEND S DIC="^PRC(443.6,"_+PO_",6,"
|
---|
36 | S DIC("A")="Select AMENDMENT: "
|
---|
37 | S DIC(0)="AEMNZQ"
|
---|
38 | D ^DIC
|
---|
39 | K DIC("A")
|
---|
40 | G:Y<0 OUT1
|
---|
41 | S PO(6)=Y(0)
|
---|
42 | S PO(6,1)=^PRC(443.6,+PO,6,+Y,1)
|
---|
43 | S PRCFA("AMEND#")=+Y
|
---|
44 | S PRCFAA=+Y
|
---|
45 | ;
|
---|
46 | DESC ; verify amendment is complete
|
---|
47 | I $$CHKAMEN^PRCFFU(+PO,PRCFAA) W !,?15,"Return Amendment to A&MM.",! G START
|
---|
48 | I $P($G(PO(6,1)),U,2)="" D G START
|
---|
49 | . W ! D EN^DDIOL("This amendment is still awaiting signature by A&MM!")
|
---|
50 | . W !
|
---|
51 | ;
|
---|
52 | ; set up variables used in this option
|
---|
53 | S PRCFA("RETRAN")=0
|
---|
54 | S D0=+PO
|
---|
55 | S D1=+Y
|
---|
56 | S PRCHPO=PRCFPODA
|
---|
57 | S PRCHAM=PRCFAA
|
---|
58 | D ^PRCHSF3 ; sets up PRCH("AM") array
|
---|
59 | D ^PRCHDAM ; display amendment info
|
---|
60 | D DT442^PRCFFUD1(PRCFPODA,PO(0),443.6,PRCFA("AMEND#")) ; set up PRC array
|
---|
61 | RETRAN ; Entry point for rebuild/transmit
|
---|
62 | S PRCFA("MOD")="M^1^Modification Entry"
|
---|
63 | ;
|
---|
64 | ; check amendment record for availability
|
---|
65 | L +^PRC(443.6,PRCFPODA):1
|
---|
66 | I $T=0 D G OUT1
|
---|
67 | . W $C(7),!
|
---|
68 | . D EN^DDIOL("This amendment is being obligated by another user!")
|
---|
69 | ;
|
---|
70 | I 'PRCFA("RETRAN"),$O(^PRC(443.6,PRCFPODA,6,PRCFAA,3,"AC",32,0)) N P2237 S P2237=$P(^PRC(443.6,PRCFPODA,0),U,12) I P2237>0 I '$$VERIFY^PRCSC2(P2237) D MSG1 G OUT1 ; tampered PO
|
---|
71 | ;
|
---|
72 | I PRCFA("RETRAN") D DT442^PRCFFUD1(PRCFPODA,PO(0),442,PRCFA("AMEND#"))
|
---|
73 | ;
|
---|
74 | I $G(PRCRGS)<1 D OVCOM^PRCFFU10 I PRCFA("OVCOM")=1!(PRCFA("OVCOM")=2) D POFAIL^PRCFFU10,MSG G OUT1
|
---|
75 | ;
|
---|
76 | S PCP=+$P(PO(0),U,3)
|
---|
77 | S $P(PCP,U,2)=$S($D(^PRC(420,PRC("SITE"),1,+PCP,0)):$P(^(0),U,12),1:"")
|
---|
78 | APP W !
|
---|
79 | D OKAM^PRCFFU I 'Y!($D(DIRUT)) G AMEND ; ask OK to amend?
|
---|
80 | D SC^PRCFFUA1 ; display FCP, cost ctr, PO/Req#
|
---|
81 | D CPBAL^PRCFFUA1 ; display cost & balances
|
---|
82 | D GET^PRCFFUA1 ; display amended (BOC) info
|
---|
83 | S FATAL=0
|
---|
84 | D OK^PRCFFUA ; ask if above BOC info is correct
|
---|
85 | S SAVEY=Y
|
---|
86 | I Y D S Y=SAVEY K SAVEY I FATAL=1 D MSG10^PRCFFUA3 G APP1
|
---|
87 | . D GETBOC^PRCFFUA4
|
---|
88 | . D CHKBOC^PRCFFUA4
|
---|
89 | I 'Y!($D(DIRUT)) D I FISCEDIT G RETRAN
|
---|
90 | .S FISCEDIT=0
|
---|
91 | .I $D(DIRUT) D MSG9^PRCFFUA3 Q
|
---|
92 | .I 'Y D MSG8^PRCFFUA3,POAM^PRCFFUA Q
|
---|
93 | .Q
|
---|
94 | D KILL^PRCFFUA
|
---|
95 | APP1 I FATAL=1 G:PRCFA("RETRAN")=0 START Q:PRCFA("RETRAN")=1
|
---|
96 | I $D(^PRC(443.6,+PO,6)),$P(PO(6,1),"^",5)'="" D I 'Y!($D(DIRUT)) G OUT1
|
---|
97 | . W !
|
---|
98 | . D OKAPP^PRCFFU ; amendment approved, ask 'continue?'
|
---|
99 | PRT W !
|
---|
100 | D OKPRT^PRCFFU S:Y FLG=1 ; print amendment
|
---|
101 | S PRCFA("AMEND#")=PRCFAA
|
---|
102 | S PRCFA("BBFY")=$$BBFY^PRCFFU5(+PO)
|
---|
103 | S PRCFA("IDES")="Purchase Order Amendment Obligation"
|
---|
104 | S PRCFA("MP")=$P(PO(0),U,2)
|
---|
105 | S PRCFA("PODA")=PRCFPODA
|
---|
106 | S PRCFA("REF")=$P(PO(0),U)
|
---|
107 | ; the following line commented out in PRC*5*179
|
---|
108 | ; S PRCFA("SFC")=$P(PO(0),U,19)
|
---|
109 | S PRCFA("SYS")="FMS"
|
---|
110 | S PRCFA("TT")=$S(PRCFA("MP")=2:"SO",1:"MO")
|
---|
111 | I $D(GECSDATA),$E($G(GECSDATA(2100.1,GECSDATA,.01,"E")),1,3)="AR-" S PRCFA("TT")="AR"
|
---|
112 | PRT1 I PRCFA("MP")=2&(PRCFA("TT")="SO") D G:ACCEDIT=1 PRT1
|
---|
113 | . W !
|
---|
114 | . D EN^PRCFFU16(+PO)
|
---|
115 | PRT11 I $D(PRCFA("RETRAN")),PRCFA("RETRAN")=1 D G PRT2
|
---|
116 | . D RETRANM^PRCFFMO2
|
---|
117 | . S Y=PRCFA("OBLDATE")
|
---|
118 | S Y=$$DTOBL^PRCFFUD1(PRC("RBDT"),PRC("AMENDT"))
|
---|
119 | PRT2 D D^PRCFQ
|
---|
120 | S %DT="AEX"
|
---|
121 | S %DT("A")="Select Obligation Processing Date: "
|
---|
122 | S %DT("B")=Y
|
---|
123 | W !
|
---|
124 | D ^%DT
|
---|
125 | K %DT
|
---|
126 | I Y<0 D MSG H 3 G OUT1
|
---|
127 | S PRCFA("OBLDATE")=Y
|
---|
128 | S EXIT=0
|
---|
129 | D ENM^PRCFFMO2
|
---|
130 | I EXIT D MSG,KILL^PRCFFMO2 H 3 G OUT1
|
---|
131 | I PRC("RBDT")'<$P(^PRC(420,PRC("SITE"),0),"^",9),$P($$DATE^PRC0C(PRCFA("OBLDATE"),"I"),U,1,2)'=$P($$DATE^PRC0C(PRC("RBDT"),"I"),U,1,2) D MSG1^PRCFFUD G PRT11
|
---|
132 | D GENDIQ^PRCFFU7(442,+PO,".1;.07;.03;17","IEN","")
|
---|
133 | EDIT ; Get budget/accounting elements
|
---|
134 | N PARAM
|
---|
135 | S PARAM=+$P(PO(0),U,3)_"^"_PRC("FY")_"^"_PRCFA("BBFY")
|
---|
136 | S PRCFMO=$$ACC^PRC0C(PRC("SITE"),PARAM)
|
---|
137 | S IDFLAG="I"
|
---|
138 | S XRBLD=0
|
---|
139 | I PRCFA("RETRAN")=1 D EN^PRCFFUB ; if selected transaction to rebuild is a 'X' decrease or cancel, set XRBLD=1, set to 2 if it is the 'E'
|
---|
140 | ;
|
---|
141 | ; determine the correct transaction type if this is not an MO document
|
---|
142 | I PRCFA("TT")'="MO",XRBLD=0 D I "^AR^SO^"'[("^"_$P(PRCFA("TT"),":",1)) D MSG,OUT1 Q
|
---|
143 | . N PRCFATT S PRCFATT=PRCFA("TT")
|
---|
144 | . D SOAR^PRC0E(PRCFA("PODA"),.PRCFATT,1) ; ask SO or AR, if appropriate
|
---|
145 | . S PRCFA("TT")=PRCFATT K PRCFATT
|
---|
146 | ;
|
---|
147 | I PRCFA("RETRAN")=1,$P(PRCFA("GECS"),"^")="AR",PRCFA("TT")="AR" D
|
---|
148 | . I $P(PRCFA("GECS"),"^",2)="E" S PRCFA("MOD")="E^0^Original Document"
|
---|
149 | . I $P(PRCFA("GECS"),"^",2)="M" S PRCFA("MOD")="M^1^Modification Document"
|
---|
150 | ;
|
---|
151 | I PRCFA("TT")="AR",XRBLD=0 D I "EM"'[X D MSG,OUT1 Q
|
---|
152 | . S X="M"
|
---|
153 | . I PRCFA("RETRAN")=1,$P(PRCFA("GECS"),"^",2)="E" S X="E"
|
---|
154 | . D SC^PRC0A("",.Y,"Label document action as: ","AOM^E:Original Document;M:Modification Document",X)
|
---|
155 | . I $E(Y)="E" S PRCFA("MOD")="E^0^Original Document"
|
---|
156 | . I $E(Y)="M" S PRCFA("MOD")="M^1^Modification Document"
|
---|
157 | . S X=$E(Y)
|
---|
158 | . K Y
|
---|
159 | ;
|
---|
160 | ; check to see if transaction type or document type changed
|
---|
161 | S X=0
|
---|
162 | I XRBLD=0,$G(PRCFA("RETRAN"))=1,"^SO^AR"[("^"_$E(PRCFA("TT"),1,2)),$P(PRCFA("GECS"),"^",1,2)'=($E(PRCFA("TT"),1,2)_"^"_$E(PRCFA("MOD"))) D I X="^" D MSG,PAUSE^PRCFFERU G OUT1
|
---|
163 | . S PRCFA("SIS")=$$GETTXNS^PRCFFERT(PO,PRCFA("AMEND#"),2) ; get other txns for this amendment
|
---|
164 | . S X=$$NEWCHK^PRCFFERT(PRCFA("TT"),$E(PRCFA("MOD"),1),PRCFA("SIS")) ; does selected txn exist?
|
---|
165 | . I X=0 S PRCFA("RETRAN")=2 ; txn doesn't exist, create
|
---|
166 | . I X'=0 S X=$$SWITCH^PRCFFERT(X,2,.GECSDATA) ; replace current GECSDATA values with values belonging to selected txn-- returns '^' if not switched
|
---|
167 | ;
|
---|
168 | GO ; Prompt user for for final go-ahead for approval
|
---|
169 | D GO^PRCFFU
|
---|
170 | I 'Y!($D(DIRUT)) D MSG,OUT1 Q
|
---|
171 | ESIG W !,"The Electronic Signature must now be entered to generate the "_PRCFA("TYPE")_" Document.",!
|
---|
172 | D SIG^PRCFFU4
|
---|
173 | I $D(PRCFA("SIGFAIL")) K PRCFA("SIGFAIL") H 3 G OUT1
|
---|
174 | S DA=PRCFA("PODA")
|
---|
175 | D REMOVE^PRCHES14(PRCFA("PODA"),PRCFA("AMEND#"))
|
---|
176 | S MESSAGE="" ; value not used but variable is needed by next call
|
---|
177 | D ENCODE^PRCHES14(PRCFA("PODA"),PRCFA("AMEND#"),DUZ,.MESSAGE)
|
---|
178 | ;
|
---|
179 | D DT442^PRCFFUD1(PRCFA("PODA"),"",442,PRCFA("AMEND#"))
|
---|
180 | S PRCOAMT=+^PRC(442,PRCFA("PODA"),0)
|
---|
181 | S $P(PRCOAMT,"^",2)=+$P(^PRC(442,PRCFA("PODA"),0),"^",3)
|
---|
182 | S $P(PRCOAMT,"^",3)=PRC("FYQDT")
|
---|
183 | S $P(PRCOAMT,"^",5)=-$P(^PRC(442,PRCFA("PODA"),0),"^",$P(PRCFMO,"^",12)="N"+15)
|
---|
184 | I $D(PRCFA("RETRAN")),PRCFA("RETRAN")>0 G TRANS1
|
---|
185 | TRANS W !!,"...copying amendment information back to Purchase Order file...",! D WAIT^DICD
|
---|
186 | S ERFLAG=""
|
---|
187 | S PRCFA("DLVDATE")=$P(^PRC(442,PRCFA("PODA"),0),"^",10)
|
---|
188 | D CHECK^PRCHAMYA(PRCFA("PODA"),PRCFA("AMEND#"),.ERFLAG)
|
---|
189 | I ERFLAG W !!,"...ERROR IN COPYING AMENDMENT INFORMATION BACK TO PURCHASE ORDER FILE..." G OUT1
|
---|
190 | TRANS1 D DT442^PRCFFUD1(PRCFA("PODA"),"",442,PRCFA("AMEND#"))
|
---|
191 | ; transmit amendment from IFCAP to DynaMed **81**
|
---|
192 | I $$GET^XPAR("SYS","PRCV COTS INVENTORY",1)=1 D
|
---|
193 | . ; No DynaMed interface if rebuild/retransmit
|
---|
194 | . I $D(PRCFA("RETRAN")),PRCFA("RETRAN")>0 Q
|
---|
195 | . D ENT^PRCVPOU(PRCFA("PODA"),PRCFA("AMEND#"))
|
---|
196 | S PRCFA("OLDPODA")=PRCFA("PODA")
|
---|
197 | S PRCFA("OLDREF")=PRCFA("REF")
|
---|
198 | I PRCFA("RETRAN")>0 I XRBLD=1!(XRBLD=2) D GO^PRCFFUB H 3 Q ; if rebuilding a 'dependent' transaction, finish work here
|
---|
199 | D LIST^PRCFFU7(PRCFA("PODA"),PRCFA("AMEND#"))
|
---|
200 | I $G(PRCFA("RETRAN"))<1 D AMEND^PRCFFUD ; create entry in 410
|
---|
201 | I PRCFA("AUTHE") D FCP^PRCFFU11,PRINT G START
|
---|
202 | I 'PRCFA("MOMREQ") D MSG^PRCFFU8 G PRINT ; skip FMS transmit,fiscal upadtes
|
---|
203 | I $D(PRCFA("RETRAN")),PRCFA("RETRAN")=1 D SETPO^PRCFFERT
|
---|
204 | I $G(PRCFA("ACCEDIT"))=1 D TAG33^PRCFFU9
|
---|
205 | TRANS2 K PO
|
---|
206 | D ^PRCFFM1M
|
---|
207 | L -^PRC(443.6,PRCFA("PODA"))
|
---|
208 | I $D(PRCFA("RETRAN")),PRCFA("RETRAN")=0 D OUT1^PRCFFM1M G START
|
---|
209 | QUIT
|
---|
210 | ;
|
---|
211 | PRINT ; Print out copy of Purchase Order Amendment
|
---|
212 | G:'FLG OUT1
|
---|
213 | S PRCHQ="^PRCHPAM"
|
---|
214 | S PRCHQ("DEST")="S8"
|
---|
215 | S D0=PRCFA("PODA")
|
---|
216 | S D1=PRCFA("AMEND#")
|
---|
217 | D ^PRCHQUE
|
---|
218 | OUT1 K FATAL,FLG,%,%Y,DIC,I,J,K,P,PRCFA,PRCFAA,PRCFPODA,PRCFCHG,X,XRBLD,Y,Z
|
---|
219 | Q
|
---|
220 | ; Message processing
|
---|
221 | NOA D NOA^PRCFFM3M Q
|
---|
222 | MSG D MSG^PRCFFM3M Q
|
---|
223 | MSG1 D MSG1^PRCFFM3M Q
|
---|