| 1 | PRCHAMU ;WISC/AKS-Modules helpful in amendments ;8/18/97  9:12 | 
|---|
| 2 | ;;5.1;IFCAP;**21**;Oct 20, 2000 | 
|---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | W !,"Call at the appropriate entry point",$C(7) | 
|---|
| 5 | Q | 
|---|
| 6 | ; | 
|---|
| 7 | GETPO ;get a valid PO | 
|---|
| 8 | ;the variable RETURN is either the PO/REQ# or null if no PO is selected | 
|---|
| 9 | N DIC,D,Y,X,TRANS,PRCHSTAT | 
|---|
| 10 | S DIC="^PRC(442,",DIC(0)="QEAMZ",D="C" | 
|---|
| 11 | S DIC("A")=$S($D(PRCHREQ):"REQUISITION NO.: ",1:"PURCHASE ORDER: ") | 
|---|
| 12 | S DIC("S")="I +$P(^(0),U)=PRC(""SITE"")"_$S($D(PRCHREQ):",$P(^(0),U,2)=8!($P(^(0),U,2)=25)",1:",$P(^(0),U,2)<8!($P(^(0),U,2)=25)!($P(^(0),U,2)=26)") | 
|---|
| 13 | I $G(PRCHAUTH)=1 S DIC("S")="I +$P(^(0),U)=PRC(""SITE""),($P($G(^(23)),U,11)=""P""!($P($G(^(23)),U,11)=""S""))" | 
|---|
| 14 | I $G(PRCHAUTH)=2 S DIC("S")="I +$P(^(0),U)=PRC(""SITE""),$P($G(^(23)),U,11)=""D""" | 
|---|
| 15 | D ^DIC K DIC I Y<0 S OUT=1 Q | 
|---|
| 16 | ;A time-out/up-arrow check before locking the record. | 
|---|
| 17 | I $D(DTOUT)!$D(DUOUT) Q | 
|---|
| 18 | ; Locking the 442 entry i.e. selected by the user to amend. | 
|---|
| 19 | ; This lock is released ONLY at one exit point in EXIT^PRCHMA routine. | 
|---|
| 20 | ; | 
|---|
| 21 | S PRCENTRY=+Y,OUT=0 | 
|---|
| 22 | L +^PRC(442,PRCENTRY):1 E  W !!,?5," Someone else is already editing this amendment record." S PRCFL=1 Q | 
|---|
| 23 | S X=$S($D(^PRC(442,+Y,7)):$P($G(^PRCD(442.3,+^(7),0)),U,2),1:"") | 
|---|
| 24 | I X="" W !,$C(7),"Invalid Supply Status" Q | 
|---|
| 25 | I X<20 W !,$C(7),"    This order is not properly signed yet!!" Q | 
|---|
| 26 | I X=45 W !,$C(7),"This is a cancelled " W:$D(PRCHREQ) "requisition." W:'$D(PRCHREQ) "purchase order." Q | 
|---|
| 27 | I $G(PRCHAUTH)=1 S PCARD=$P($G(^PRC(442,+Y,23)),U,8) D  I $G(PRCHFG) K PCARD,PRCHFG Q | 
|---|
| 28 | . I '$D(^PRC(440.5,"C",DUZ,PCARD)) W !,?5,"You are not authorized to amend this purchase card order." S PRCHFG=1 | 
|---|
| 29 | K PCARD,PRCHFG | 
|---|
| 30 | I $G(PRCHAUTH)=2 S PRCHAUCP=$P(^PRC(442,+Y,0),U,3) D  I $G(PRCHAUFG) K PRCHAUCP,PRCHAUFG Q | 
|---|
| 31 | . I '$D(^PRC(420,PRC("SITE"),1,+PRCHAUCP,1,DUZ)) D  S PRCHAUFG=1 | 
|---|
| 32 | . . W !!,"You are not an authorized user for "_$P(PRCHAUCP," ",1,2)_" control point.",! | 
|---|
| 33 | K PRCHAUCP,PRCHAUFG | 
|---|
| 34 | I '$D(TRANSCMP) I X=40!(X=41) D  Q:$G(TRANS)=1 | 
|---|
| 35 | .Q:($P(^PRC(442,+Y,0),"^",2)=2)!($P(^PRC(442,+Y,0),"^",2)=4) | 
|---|
| 36 | .W $C(7),!!,?5,"Purchase orders (Excluding CERTIFIED INVOICE and GUARANTEED DELIVERY)",!,?5,"with a status of 'Transaction Complete' cannot be amended." | 
|---|
| 37 | .S TRANS=1 | 
|---|
| 38 | I X=50!(X=51) D  Q | 
|---|
| 39 | . W $C(7),!!,?5,"Reconciled Purchase Card orders cannot be amended." | 
|---|
| 40 | I X=28!(X=33) W $C(7),!,"Amendment not allowed until after order has been obligated!!" Q | 
|---|
| 41 | I $D(^PRC(443.6,+Y,0)) S PRCHAM=$O(^PRC(443.6,+Y,6,0)) I PRCHAM="" D  Q | 
|---|
| 42 | .W !!?5,"This record is not set-up properly, it is being cleaned-up." | 
|---|
| 43 | .W !?5,"Please RE-START the amendment process.",! | 
|---|
| 44 | .D DEL | 
|---|
| 45 | I $D(^PRC(443.6,+Y,0)) S PRCHAM=$O(^PRC(443.6,+Y,6,0)) Q:PRCHAM'>0  D  Q:$D(FIS) | 
|---|
| 46 | .I $P($G(^PRC(443.6,+Y,6,PRCHAM,1)),U,2)]"" D | 
|---|
| 47 | ..W !!,?5,"Pending Amendment: ",PRCHAM,"       Status: Pending Fiscal Action" S FIS=1 | 
|---|
| 48 | D FMS | 
|---|
| 49 | I $G(STATUS)]"" I $E(STATUS,1)="R"!($E(STATUS,1)="E") D  K STATUS Q | 
|---|
| 50 | .W !!,?5,"One of the previous documents has been rejected by",!,?5,"FMS or has errored in transmission.",!,?5,"This purchase order cannot be amended at this time." | 
|---|
| 51 | I $D(^PRC(443.6,+Y,0)) I $D(^PRC(443.6,+Y,11)) W !!,"There is a pending Adjustment Voucher against this purchase order" Q | 
|---|
| 52 | I $D(^PRC(443.6,+Y,0)) W $C(7),!!,?5,"*** There is already an amendment pending for this purchase order. ***" S PRCHNEW=111 D  Q:%'=1!$D(DEL) | 
|---|
| 53 | .S %=1,%B="",%A="         Would you like to Edit it" D ^PRCFYN W ! | 
|---|
| 54 | .I %=2 S %B="",%A="         Would you like to delete it" D ^PRCFYN W ! D | 
|---|
| 55 | ..D:%=1 DEL | 
|---|
| 56 | S PRCHPO=+Y | 
|---|
| 57 | Q | 
|---|
| 58 | AMENDNO ;gets next valid amendment number to create | 
|---|
| 59 | ; | 
|---|
| 60 | N I,%,%A,%B,PRCHEX,PRCHEX1 | 
|---|
| 61 | S PRCHAM=1 | 
|---|
| 62 | I $D(^PRC(442,PRCHPO,6)) D | 
|---|
| 63 | .S I=0 F  S I=$O(^PRC(442,PRCHPO,6,I)) Q:'I  S PRCHAM=I+1 | 
|---|
| 64 | W !!?5,"Amendment Number: ",PRCHAM | 
|---|
| 65 | I $D(^PRC(443.6,PRCHPO,0)) W ! Q | 
|---|
| 66 | W !!,"...copying Purchase Order into work file...",! D WAIT^DICD W ! | 
|---|
| 67 | F I=0,1,7,12,23 S ^PRC(443.6,PRCHPO,I)=$G(^PRC(442,PRCHPO,I)) | 
|---|
| 68 | S $P(^PRC(443.6,0),"^",3)=PRCHPO,$P(^(0),"^",4)=$P(^(0),"^",4)+1 | 
|---|
| 69 | S PRCHEX=$P(^PRC(443.6,PRCHPO,0),"^"),PRCHEX1=$P(PRCHEX,"-",2) | 
|---|
| 70 | S (^PRC(443.6,"B",PRCHEX,PRCHPO),^PRC(443.6,"E",PRCHEX1,PRCHPO))="" | 
|---|
| 71 | Q | 
|---|
| 72 | ; | 
|---|
| 73 | INFO ; Ask for common information for amendments | 
|---|
| 74 | N DIE,DA,DR,FLGUP | 
|---|
| 75 | S ER=0,FLGUP=0,DIE="^PRC(443.6,",DA=PRCHPO,DR="[PRCHAMEND]" | 
|---|
| 76 | S:$D(PRCHAV) DR="[PRCHAMENDAV]" | 
|---|
| 77 | S:$G(PRCPROST)=90 DR="[PRCHAMENDPRO]" | 
|---|
| 78 | S:$G(PRCPROST)=6 DR="[PRCHAMENDPRO EDIT]" | 
|---|
| 79 | D ^DIE | 
|---|
| 80 | I $D(Y)!'FLGUP S ER=1 Q | 
|---|
| 81 | S DIE="^PRC(443.6,"_PRCHPO_",6,",DA=PRCHAM,DR="15///TODAY+4" D ^DIE | 
|---|
| 82 | I '$D(^PRC(443.6,PRCHPO,6,PRCHAM,1)) D  S ER=1 Q | 
|---|
| 83 | .W !,?5,"Can't continue without a Purchasing Agent !" | 
|---|
| 84 | ;S PRCHLC=$P(PRCH(0),U,14) | 
|---|
| 85 | Q | 
|---|
| 86 | ASK ;Ask type amendment | 
|---|
| 87 | N PRCHREPO S PRCHREPO=$O(^PRC(443.6,PRCHPO,6,PRCHAM,3,"AC",32,0)) I PRCHREPO>0 S REPONUM=1 Q | 
|---|
| 88 | S ER=0 W ! | 
|---|
| 89 | I '$G(PRCHAUTH) D | 
|---|
| 90 | . S DIC=$S($D(PRCHREQ):"^PRCD(441.6,",1:"^PRCD(442.2,") | 
|---|
| 91 | . S DIC("S")="I Y>19,($P(^(0),U,3)]"""")" | 
|---|
| 92 | . S DIC(0)="MQEAZ" D ^DIC K DIC | 
|---|
| 93 | I $G(PRCHAUTH) D | 
|---|
| 94 | . D:'$D(PRCHREQ) DIRPO^PRCHPCAR D:$D(PRCHREQ) DIRREQ^PRCHPCAR | 
|---|
| 95 | I Y<0 S ER=1 K PRCHVFLG Q | 
|---|
| 96 | I $D(PRCHREQ) D  G:ER ASK | 
|---|
| 97 | .I '$D(^PRCD(441.6,+Y,1)) D  S ER=1 | 
|---|
| 98 | ..W !!?5,"Amendment Lines in 'Type of Requisition Amendment' file are not defined " | 
|---|
| 99 | I '$D(PRCHREQ) D  G:ER ASK | 
|---|
| 100 | .I '$D(^PRCD(442.2,+Y,1)) D  S ER=1 | 
|---|
| 101 | ..W !!?5,"Amendment Lines in 'Type of Amendment' file are not defined " | 
|---|
| 102 | I $P($G(Y(0)),U,3)="" D | 
|---|
| 103 | . S Y(0)=$S($D(PRCHREQ):^PRCD(441.6,Y,0),1:^PRCD(442.2,Y,0)) | 
|---|
| 104 | S PRCHAMDA=+Y,ROU=$P(Y(0),U,3),ROU=$TR(ROU,"~","^") | 
|---|
| 105 | S PRCHL1=$P(^PRCD(442.2,+Y,1),U),PRCHL2=$P(^(1),U,2) | 
|---|
| 106 | Q | 
|---|
| 107 | UPDATE ;Update Delivery date, Original Delivery Date, Amendment status and | 
|---|
| 108 | ;Justification. | 
|---|
| 109 | I $G(DELIVER) D | 
|---|
| 110 | .S PRCHDT=$P(^PRC(443.6,PRCHPO,0),U,10) | 
|---|
| 111 | .I $P($G(^PRC(442,PRCHPO,23)),"^",11)'="S" S DIE="^PRC(443.6,",DA=PRCHPO,DR=7 D ^DIE K DIE | 
|---|
| 112 | .I PRCHDT,$P(^PRC(443.6,PRCHPO,0),U,20)="",$P(^(0),U,10)'=PRCHDT S $P(^(0),U,20)=PRCHDT | 
|---|
| 113 | .K PRCHDT | 
|---|
| 114 | S POSTAT=+$G(^PRC(443.6,PRCHPO,7)) | 
|---|
| 115 | S AMSTAT=$S(POSTAT=25:26,POSTAT=30:31,POSTAT=40:71,POSTAT=6:83,POSTAT=84:85,POSTAT=86:87,POSTAT=90:91,POSTAT=92:93,POSTAT=94:95,POSTAT=96:97,POSTAT=45:45,1:POSTAT) | 
|---|
| 116 | S AMSTAT=$P(^PRCD(442.3,AMSTAT,0),U) | 
|---|
| 117 | S DIE="^PRC(443.6,PRCHPO,6,",DA(1)=PRCHPO,DA=PRCHAM,DR="9//^S X=AMSTAT;16" | 
|---|
| 118 | N AAREPO S AAREPO=$O(^PRC(443.6,PRCHPO,6,PRCHAM,3,"AC",32,0)) | 
|---|
| 119 | I $G(CAN)=1!(AAREPO>0) S DR=16 | 
|---|
| 120 | I $G(PRCPROST)=90 S DR="16////Prosthetic order cancelled" | 
|---|
| 121 | I $G(PRCPROST)=6 S DR="16////Prosthetic Cost Changes" | 
|---|
| 122 | D ^DIE K DIE,AMSTAT,POSTAT | 
|---|
| 123 | QUIT | 
|---|
| 124 | FMS ;Checking FMS documents status | 
|---|
| 125 | ; | 
|---|
| 126 | N N,CODE | 
|---|
| 127 | S N=0,STATUS="" F  S N=$O(^PRC(442,+Y,10,N)) Q:N'>0  D  Q:$E(STATUS,1)="R"!($E(STATUS,1)="E") | 
|---|
| 128 | .I $E(^PRC(442,+Y,10,N,0),1,2)="MO"!($E(^(0),1,2)="SO") D | 
|---|
| 129 | ..S CODE=$P($G(^PRC(442,+Y,10,N,0)),U,4) | 
|---|
| 130 | ..S STATUS=$$STATUS^GECSSGET(CODE) | 
|---|
| 131 | Q | 
|---|
| 132 | DEL ;Delete this amendment | 
|---|
| 133 | N PO,EXPO,EXPO1,N,ZERO,REC,PAT,ITEM | 
|---|
| 134 | S PO=+Y | 
|---|
| 135 | S EXPO=$P(^PRC(443.6,PO,0),U),EXPO1=$P(EXPO,"-",2) | 
|---|
| 136 | S N=0 F  S N=$O(^PRC(441.7,"B",EXPO,N)) Q:N'>0  D | 
|---|
| 137 | .S REC=^PRC(441.7,N,0) | 
|---|
| 138 | .S PAT=$P(REC,U) | 
|---|
| 139 | .S ITEM=$P(REC,U,2) | 
|---|
| 140 | .I ITEM>0 K ^PRC(441.7,"AG",PAT,ITEM,N) | 
|---|
| 141 | .K ^PRC(441.7,"B",PAT,N) | 
|---|
| 142 | .K ^PRC(441.7,N,0) | 
|---|
| 143 | .S ZERO=^PRC(441.7,0) | 
|---|
| 144 | .S $P(ZERO,U,4)=$P(ZERO,U,4)-1 | 
|---|
| 145 | .S:$P(ZERO,U,4)<1 $P(ZERO,U,4)="" | 
|---|
| 146 | .S ^PRC(441.7,0)=ZERO | 
|---|
| 147 | K ^PRC(443.6,"B",EXPO),^PRC(443.6,"C",PO),^PRC(443.6,"D",PO) | 
|---|
| 148 | K ^PRC(443.6,"E",EXPO1),^PRC(443.6,PO) | 
|---|
| 149 | S ZERO=^PRC(443.6,0) | 
|---|
| 150 | S $P(ZERO,U,4)=$P(ZERO,U,4)-1 | 
|---|
| 151 | S:$P(ZERO,U,4)<1 $P(ZERO,U,4)="" | 
|---|
| 152 | S ^PRC(443.6,0)=ZERO | 
|---|
| 153 | S DEL=1 | 
|---|
| 154 | QUIT | 
|---|
| 155 | ; | 
|---|
| 156 | MSG ;This subroutine is called by PRCHMA | 
|---|
| 157 | ;Display message for 'Vendor Change' | 
|---|
| 158 | N AA | 
|---|
| 159 | S AA="NOTE: The vendor has been changed." | 
|---|
| 160 | S AA=AA_"  Please review LINE ITEM & FPDS information" | 
|---|
| 161 | S AA=AA_"        for any necessary changes." | 
|---|
| 162 | D EN^DDIOL(AA) W ! | 
|---|
| 163 | QUIT | 
|---|
| 164 | ; | 
|---|
| 165 | MSG1 ;This subroutine is called by PRCHMA | 
|---|
| 166 | ;Source code was changed to 2 | 
|---|
| 167 | N AA | 
|---|
| 168 | S AA="NOTE: THE CONTRACT WILL BE REMOVED FROM ALL ITEMS" | 
|---|
| 169 | D EN^DDIOL(AA) W ! | 
|---|
| 170 | QUIT | 
|---|
| 171 | ; | 
|---|
| 172 | SOURCE ;This subroutine is called by PRCHMA | 
|---|
| 173 | ;Source code was changed to 2 | 
|---|
| 174 | ;Remove contract number from $P2 and AC x-reference. | 
|---|
| 175 | KILL SCE | 
|---|
| 176 | N CONTRACT,ITEM S ITEM=0 | 
|---|
| 177 | F  S ITEM=$O(^PRC(443.6,PRCHPO,2,ITEM)) Q:'ITEM  D | 
|---|
| 178 | .  S CONTRACT=$G(^PRC(443.6,PRCHPO,2,ITEM,2)) | 
|---|
| 179 | .  S CONTRACT=$P(CONTRACT,U,2) | 
|---|
| 180 | .  Q:CONTRACT="" | 
|---|
| 181 | .  S $P(^PRC(443.6,PRCHPO,2,ITEM,2),U,2)="" | 
|---|
| 182 | .  KILL ^PRC(443.6,PRCHPO,2,"AC",CONTRACT,ITEM) | 
|---|
| 183 | ; | 
|---|
| 184 | QUIT | 
|---|