1 | PRCHAMYA ;WISC/DJM-MOVING AMENDMENT INFO FROM 443.6 TO 442 ;3/23/95 2:01 PM
|
---|
2 | V ;;5.1;IFCAP;**6,21,59,74**;Oct 20, 2000
|
---|
3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | CHECK(PRCHPO,PRCHAM,FLAG) ;CHECK OUT EACH 'CHANGES' ENTRY. IF THE OLD DATA AND THE NEW DATA
|
---|
5 | ;ARE THE SAME REMOVE THE 'CHANGES' ENTRY.
|
---|
6 | ;'PRCHPO' IS THE RECORD IN FILE 443.6 THAT WAS JUST OBLIGATED.
|
---|
7 | ;'PRCHAM' IS THE AMENDMENT ,IN 'PRCHPO', THAT WAS JUST OBLIGATED.
|
---|
8 | ;'FLAG' IS AN ERROR FLAG. FOR NOW 'FLAG' WILL ONLY RETURN 1.
|
---|
9 | N PRCI,CERT,CHANGS,PRCI,DIQ,DIC,PRCJ,J1,J2,J3,J4,DR,VAL,DIE,FX,PRCHTOTQ,PRCHXXXX,%X,%Y,HOLD,NEW,PRCSUM,PRCSIG,ROUTINE,ITEM,DISCNT,PROMPT,DIR,CHECK,DA,FIELD,FLAG,PRCJ1,PRCJ2,VAL1,EXIT,DIWL,DIWR,DIWF,TYPAM,VALFLG,PPFLG,LINE,ITEM1
|
---|
10 | K PRCHNORE
|
---|
11 | S PRCI=0,DIQ(0)="I",VALFLG=0
|
---|
12 | ;LEAVE 'CHANGES' ENTRY 1 (THE ORGINAL VALUE OF THE 'NET AMOUNT' FIELD) ALONE.
|
---|
13 | ;THIS ENTRY MUST STAY IN THE 'CHANGES' MULTIPLE BECAUSE IT IS NEEDED
|
---|
14 | ;TO BE ABLE TO UPDATE THE FUND CONTROL POINT BALANCE AFTER THIS
|
---|
15 | ;AMENDMENT IS OBLIGATED/SIGNED OFF.
|
---|
16 | F S PRCI=$O(^PRC(443.6,PRCHPO,6,PRCHAM,3,PRCI)) G:PRCI'>0 COPY S DA=PRCHPO,DIC=443.6 D:PRCI>1
|
---|
17 | .S PRCJ=$G(^PRC(443.6,PRCHPO,6,PRCHAM,3,PRCI,0))
|
---|
18 | .S J1=$P(PRCJ,U,3)
|
---|
19 | .S J2=$P(J1,":",2),J3=$P($P(J1,";",2),":"),J4=$P(J1,";")
|
---|
20 | .Q:$P(J3,".")=442
|
---|
21 | .K DR
|
---|
22 | .I J2>0 S DR=J2,DR(J3)=J4,DA(J3)=$P(PRCJ,U,4)
|
---|
23 | .I J2="" S DR=J4
|
---|
24 | .I $P(PRCJ,U,7)>0 S DIC=J3,DA=$P(PRCJ,U,7)
|
---|
25 | .S DIQ="FIELD" D EN^DIQ1
|
---|
26 | .I J2=40,J4=1 K ^UTILITY($J,"W"),^TMP($J,"W") S EXIT=0,VAL1=0,DIWL=1,DIWR=80,DIWF="C80|",PRCJ1=$P(PRCJ,U,4),PRCJ1(PRCJ1)="" D G FIX:EXIT=1,REMOVE
|
---|
27 | ..F S VAL1=$O(FIELD(443.61,PRCJ1,1,VAL1)) Q:VAL1'>0 S X=$G(FIELD(443.61,PRCJ1,1,VAL1)) D ^DIWP
|
---|
28 | ..S %X="^UTILITY($J,""W"",",%Y="^TMP($J,""W""," D %XY^%RCR
|
---|
29 | ..S VAL1=0 K ^UTILITY($J,"W")
|
---|
30 | ..F S VAL1=$O(^PRC(443.6,PRCHPO,6,PRCHAM,3,PRCI,1,VAL1)) Q:VAL1'>0 S X=(^(VAL1,0)) D ^DIWP
|
---|
31 | ..I ^TMP($J,"W",1)'=^UTILITY($J,"W",1) S EXIT=1 Q
|
---|
32 | ..S VAL1=0 F S VAL1=$O(^TMP($J,"W",1,VAL1)) Q:VAL1'>0 I $G(^TMP($J,"W",1,VAL1,0))'=$G(^UTILITY($J,"W",1,VAL1,0)) S EXIT=1 Q
|
---|
33 | ..Q
|
---|
34 | .S VAL=$G(FIELD($S(J3>0:J3,1:443.6),$S(J3["443.6":$P(PRCJ,U,4),J3["441.7":$P(PRCJ,U,7),1:PRCHPO),J4,"I"))
|
---|
35 | .S CHECK=^PRC(443.6,PRCHPO,6,PRCHAM,3,PRCI,1,1,0)
|
---|
36 | .I CHECK'=VAL,VAL'="" D G FIX
|
---|
37 | ..;
|
---|
38 | ..;Update contract changes (See MEM-0596-70183)
|
---|
39 | ..I $P($P(PRCJ,U,2,3),":")="23^4;443.61" D ;
|
---|
40 | ...KILL ^PRC(442,PRCHPO,2,"AC",CHECK,$P(PRCJ,U,4))
|
---|
41 | ...S ^PRC(442,PRCHPO,2,"AC",VAL,$P(PRCJ,U,4))=""
|
---|
42 | .;
|
---|
43 | .I CHECK'=VAL,VAL="" S TYPAM=$P($G(PRCJ),U,2)
|
---|
44 | .S VALFLG=0
|
---|
45 | .S PPFLG=0
|
---|
46 | .I $G(TYPAM)=28,(VAL="") S VALFLG=1
|
---|
47 | .I $G(TYPAM)=33,(VAL="") S PPFLG=1
|
---|
48 | .I $G(TYPAM) I TYPAM=28!(TYPAM=29)!(TYPAM=37) G FIX
|
---|
49 | REMOVE .S DR=".01///@",DIE="^PRC(443.6,"_PRCHPO_",6,"_PRCHAM_",3,",DA(2)=PRCHPO,DA(1)=PRCHAM,DA=PRCI D ^DIE Q
|
---|
50 | FIX .S J3=$S(J3=443.61:442.01,J3=443.66:442.06,J3=443.67:442.07,J3=443.624:442.15,J3=443.63:442.03,J3=441.7:442.8,1:"")
|
---|
51 | .S FX=J4_";"_J3_":"_J2,$P(^PRC(443.6,PRCHPO,6,PRCHAM,3,PRCI,0),U,3)=FX
|
---|
52 | COPY ;THIS STEP WILL COPY THE P.O. FROM 443.6 BACK TO 442.
|
---|
53 | ;FIRST GET THE PRESENT 'TOTAL AMOUNT' FIELD, #91.
|
---|
54 | ;THIS VALUE IS NEEDED TO CALCULATE THE AMOUNT CHANGED. THIS CHANGE
|
---|
55 | ;WILL BE ENTERED INTO THE 'AMOUNT CHANGED' FIELD, FIELD 50 - SUBFIELD
|
---|
56 | ;2, FOR THIS AMENDMENT.
|
---|
57 | ;LATER ON, WITHIN THESE ROUTINES, THE 'TOTAL AMOUNT' FIELD WILL BE
|
---|
58 | ;UPDATED. THUS, SAVING IT HERE.
|
---|
59 | S PRCHTOTQ=$P(^PRC(442,PRCHPO,0),U,15)
|
---|
60 | K PRCHXXXX S %X="^PRC(443.6,"_PRCHPO_",",%Y="^PRC(442,"_PRCHPO_","
|
---|
61 | C2 ;ENTER HERE TO COPY NEW P.O. BACK INTO 442. BOTH %X AND %Y NEED TO
|
---|
62 | ;BE SET WHEN USING THIS ENTRY POINT. 'PRCHPO' NEEDS TO BE SET TO THE
|
---|
63 | ;RECORD THAT IS TO BE COPIED.
|
---|
64 | I $G(VALFLG) K ^PRC(442,PRCHPO,15) S VALFLG=0
|
---|
65 | I $G(PPFLG) K ^PRC(442,PRCHPO,5) S PPFLG=0
|
---|
66 | ;
|
---|
67 | ;Delete current PO item description in file 442, so that it is
|
---|
68 | ;properly updated with an amended item description from file 443.6
|
---|
69 | ;See NOIS CTX-0296-70401
|
---|
70 | I J2=40,J4=1 D ;
|
---|
71 | . S ITEM1=""
|
---|
72 | . F S ITEM1=$O(PRCJ1(ITEM1)) Q:'ITEM1 D ;
|
---|
73 | . . S LINE=0 F S LINE=$O(^PRC(442,PRCHPO,2,ITEM1,1,LINE)) Q:'LINE D ;
|
---|
74 | . . . I $D(^PRC(442,PRCHPO,2,ITEM1,1,LINE,0)) D ;
|
---|
75 | . . . . KILL ^PRC(442,PRCHPO,2,ITEM1,1,LINE,0)
|
---|
76 | ;
|
---|
77 | S HOLD=$G(^PRC(442,PRCHPO,6,0)) D %XY^%RCR
|
---|
78 | ;
|
---|
79 | ;The copy from 443.6 to 442 is done. If an item does not have a
|
---|
80 | ;contract number, but it has an AC cross reference then remove it.
|
---|
81 | ;See NOIS: MEM-0596-70183
|
---|
82 | I $D(^PRC(442,PRCHPO,2,"AC")) D ;
|
---|
83 | . NEW CONTRACT
|
---|
84 | . S CONTRACT=""
|
---|
85 | . F S CONTRACT=$O(^PRC(442,PRCHPO,2,"AC",CONTRACT)) Q:CONTRACT="" D
|
---|
86 | . . I '$D(^PRC(443.6,PRCHPO,2,"AC",CONTRACT)) D
|
---|
87 | . . . KILL ^PRC(442,PRCHPO,2,"AC",CONTRACT)
|
---|
88 | ;
|
---|
89 | ;There has been a change in vendor. Update the files.
|
---|
90 | ;See NOIS FGH-1202-32075
|
---|
91 | N NEWVEN,OLDVEN,NODE,AMEND
|
---|
92 | S NEWVEN=$G(FIELD(443.6,PRCHPO,5,"I"))
|
---|
93 | I NEWVEN D ;
|
---|
94 | . S AMEND=$P(^PRC(443.6,PRCHPO,6,0),U,3)
|
---|
95 | . S NODE=$O(^PRC(443.6,PRCHPO,6,AMEND,3,"AC",31,5,""))
|
---|
96 | . S OLDVEN=^PRC(443.6,PRCHPO,6,AMEND,3,NODE,1,1,0)
|
---|
97 | . I OLDVEN KILL ^PRC(442,"D",OLDVEN,PRCHPO)
|
---|
98 | . S DA=PRCHPO,DR="5////"_NEWVEN,DIE="^PRC(442,"
|
---|
99 | . D ^DIE
|
---|
100 | ;
|
---|
101 | ;There has been a change in Purchase Order number.
|
---|
102 | ;See NOIS LOM-0302-62930
|
---|
103 | I $P(PRCJ,U,2)=32 D ;
|
---|
104 | . NEW CP,NEWPO,VENDOR
|
---|
105 | . S NEWPO=$P($G(^PRC(443.6,PRCHPO,23)),U,4)
|
---|
106 | . Q:NEWPO=""
|
---|
107 | . S VENDOR=$P($G(^PRC(443.6,PRCHPO,1)),U)
|
---|
108 | . S CP=$P(PRC("CP")," ") ;Control point
|
---|
109 | . S ^PRC(442,"D",VENDOR,NEWPO)="" ;Set up "D" X-ref for PO display
|
---|
110 | . S ^PRC(442,"E",CP,NEWPO)="" ;Set up "E" X-ref for PO display
|
---|
111 | . S CP=PRC("SITE")_CP ;Station & control point
|
---|
112 | . ;
|
---|
113 | . ;Get items from PO to setup item master file history
|
---|
114 | . NEW CNT,ITEM,ITEMNUM
|
---|
115 | . S ITEMNUM=0
|
---|
116 | . F S ITEMNUM=$O(^PRC(443.6,PRCHPO,2,ITEMNUM)) Q:'ITEMNUM D
|
---|
117 | . . S ITEM=$P(^PRC(443.6,PRCHPO,2,ITEMNUM,0),U,5)
|
---|
118 | . . QUIT:ITEM=""
|
---|
119 | . . S ^PRC(441,ITEM,4,CP,1,NEWPO,0)=NEWPO
|
---|
120 | . . S ^PRC(441,ITEM,4,CP,1,"AC",9999999-PRC("PODT"),NEWPO)=""
|
---|
121 | . . S $P(^PRC(441,ITEM,4,CP,1,0),U,3)=NEWPO
|
---|
122 | . . S CNT=$P(^PRC(441,ITEM,4,CP,1,0),U,4)
|
---|
123 | . . S $P(^PRC(441,ITEM,4,CP,1,0),U,4)=CNT+1
|
---|
124 | ;
|
---|
125 | I HOLD]"" S $P(HOLD,U,3)=PRCHAM,$P(HOLD,U,4)=$P(HOLD,U,4)+1,$P(HOLD,U,2)=$P(^DD(442,50,0),U,2),^PRC(442,PRCHPO,6,0)=HOLD
|
---|
126 | S NEW=$G(^PRC(443.6,PRCHPO,23))
|
---|
127 | S PRCSUM=$$SUM^PRCUESIG(PRCHPO_"^"_$$STRING^PRCHES5(^PRC(442,PRCHPO,0),^PRC(442,PRCHPO,1),^PRC(442,PRCHPO,12)))
|
---|
128 | S PRCSIG="" D RECODE^PRCHES5(PRCHPO,PRCSUM,.PRCSIG) S ROUTINE="PRCHAMYA"
|
---|
129 | G:PRCSIG<1 QQ K PRCSUM
|
---|
130 | ;AFTER MOVING INTO 442 NOW UPDATE ANY ZERO NODE OF A MULTIPLE FIELD
|
---|
131 | ;FROM THE 'DD'
|
---|
132 | S ITEM=$G(^PRC(442,PRCHPO,2,0)),$P(ITEM,U,2)=$P(^DD(442,40,0),U,2),^PRC(442,PRCHPO,2,0)=ITEM
|
---|
133 | S DISCNT=$G(^PRC(442,PRCHPO,3,0)) I DISCNT]"" S $P(DISCNT,U,2)=$P(^DD(442,14,0),U,2),^PRC(442,PRCHPO,3,0)=DISCNT
|
---|
134 | S PROMPT=$G(^PRC(442,PRCHPO,5,0)) I PROMPT]"" S $P(PROMPT,U,2)=$P(^DD(442,9.2,0),U,2),^PRC(442,PRCHPO,5,0)=PROMPT
|
---|
135 | S CHANGS=$G(^PRC(442,PRCHPO,6,0)) I CHANGS]"" S $P(CHANGS,U,2)=$P(^DD(442,50,0),U,2),^PRC(442,PRCHPO,6,0)=CHANGS
|
---|
136 | S CHANGS=$G(^PRC(442,PRCHPO,6,PRCHAM,3,0)) I CHANGS]"" S $P(CHANGS,U,2)=$P(^DD(442.07,14,0),U,2),^PRC(442,PRCHPO,6,PRCHAM,3,0)=CHANGS
|
---|
137 | S CERT=$G(^PRC(442,PRCHPO,15,0)) I CERT]"" S $P(CERT,U,2)=$P(^DD(442,24,0),U,2),^PRC(442,PRCHPO,15,0)=CERT
|
---|
138 | I NEW]""&($P(NEW,U,4)>0)&($P(NEW,U,4)'=PRCHPO) S PRCHXXXX=PRCHPO,PRCHPO=$P(NEW,U,4),%X="^PRC(443.6,"_PRCHPO_",",%Y="^PRC(442,"_PRCHPO_"," G C2
|
---|
139 | S PRCHPO=$S($D(PRCHXXXX):PRCHXXXX,1:PRCHPO)
|
---|
140 | S DA(1)=PRCHPO,N=0,DIK(1)=".01^C" F S N=$O(^PRC(442,DA(1),2,N)) Q:'N D
|
---|
141 | .S DA=N,DIK="^PRC(442,"_DA(1)_",2," D EN^DIK
|
---|
142 | K DA,DIK,N
|
---|
143 | G ^PRCHAMYB
|
---|
144 | QQ W !!,$$ERR^PRCHQQ(ROUTINE,PRCSIG) W:PRCSIG=0!(PRCSIG=-3) !,"Notify Application Coordinator!" S DIR(0)="EAO",DIR("A")="Press <Return> to continue " D ^DIR S FLAG=1 Q
|
---|