| [613] | 1 | PRCHMA0 ;WISC/AKS-Amendments to purchase orders and requisitions ;3/5/97  15:05
 | 
|---|
 | 2 |  ;;5.1;IFCAP;**97**;Oct 20, 2000
 | 
|---|
 | 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
 | 4 | EN1 ;Ship to edit
 | 
|---|
 | 5 |  N DR,DIE,DA,DIE,PRCH0
 | 
|---|
 | 6 |  S PRCH0=$G(^PRC(443.6,PRCHPO,0))
 | 
|---|
 | 7 |  S DR=$S($P(PRCH0,U,2)'=4:5.4,1:5.3)
 | 
|---|
 | 8 |  S DIE="^PRC(443.6,",DA=PRCHPO D ^DIE
 | 
|---|
 | 9 |  S DELIVER=1 W !
 | 
|---|
 | 10 |  Q
 | 
|---|
 | 11 | EN2 ;Line Item add
 | 
|---|
 | 12 |  N J,%,%A,%B,DIE,DA,DR,D0,D1,PRCHI,PRCHLC,PRCHSTN,NODE0,PRCHI1,PRCHPONO,BFLAG
 | 
|---|
 | 13 |  N X,Y
 | 
|---|
 | 14 |  D MV,MVDIS^PRCHMA3 S NODE0=^PRC(443.6,PRCHPO,0),PRCHLC=$P(NODE0,U,14)
 | 
|---|
 | 15 |  S J=PRCHLC+1,BFLAG=0
 | 
|---|
 | 16 |  S (I,N,M)=0 F  S N=$O(^PRC(443.6,PRCHPO,2,N)) Q:'N  S I=$P(^(N,0),U),M=N
 | 
|---|
 | 17 |  S PRCHI=(I+1)_"^"_J S:$P(^PRC(443.6,PRCHPO,2,0),U,3)<M $P(^(0),U,3)=M
 | 
|---|
 | 18 |  S %=2,%A="     ADD LINE ITEM "_+PRCHI,%B="" D ^PRCFYN
 | 
|---|
 | 19 |  I %'=1 W ?40,"<NOTHING ADDED>" Q
 | 
|---|
 | 20 |  K DD,DO S DA(1)=PRCHPO,X=+PRCHI,DIC="^PRC(443.6,"_DA(1)_",2,"
 | 
|---|
 | 21 |  S DIC(0)="L" D FILE^DICN K DIC Q:+Y'>0
 | 
|---|
 | 22 |  S PRCHI1=+PRCHI,$P(PRCHI,U)=+Y
 | 
|---|
 | 23 |  ;S $P(^PRC(443.6,PRCHPO,2,0),U,3)=$P(PRCHI,U),$P(^(0),U,4)=+PRCHI
 | 
|---|
 | 24 |  S $P(NODE0,U,14)=J
 | 
|---|
 | 25 |  I $D(^PRC(443.6,PRCHPO,3)) D
 | 
|---|
 | 26 |  .S N=0 F  S N=$O(^PRC(443.6,PRCHPO,3,N)) Q:'N  S $P(^PRC(443.6,PRCHPO,3,N,0),U,6)=$P(^PRC(443.6,PRCHPO,3,N,0),U,6)+1
 | 
|---|
 | 27 |  S:$P(NODE0,U,18)]"" $P(NODE0,U,18)=J
 | 
|---|
 | 28 |  S ^PRC(443.6,PRCHPO,0)=NODE0
 | 
|---|
 | 29 |  S PRCHEDI=$G(^PRC(440,$P(^PRC(443.6,PRCHPO,1),U),3)) S:PRCHEDI]"" PRCHEDI=$P(PRCHEDI,U,2)
 | 
|---|
 | 30 |  S PRCHSTN=$P($P(NODE0,U),"-"),PRCHPONO=$P(NODE0,U)
 | 
|---|
 | 31 |  S DIE="^PRC(443.6,",DA=PRCHPO
 | 
|---|
 | 32 |  S DR=$S($D(PRCHREQ):"[PRCHRQITM]",1:"[PRCHLINE]"),DIE("NO^")="BACK"
 | 
|---|
 | 33 |  I $G(PRCHAUTH)=1 S DR="[PRCH PURCHASE CARD AMEND]"
 | 
|---|
 | 34 |  I $G(PRCHAUTH)=2 S DR="[PRCH DELIVERY ORDER AMEND]"
 | 
|---|
 | 35 |  S DIE("NO^")="OUTOK"
 | 
|---|
 | 36 |  D ^DIE K DIE
 | 
|---|
 | 37 |  I $D(^PRC(443.6,PRCHPO,2,+PRCHI,0))  D
 | 
|---|
 | 38 |  .S:'$D(^(2)) ^(2)=0
 | 
|---|
 | 39 |  .I $P(^PRC(443.6,PRCHPO,2,+PRCHI,0),U,2)=""  D
 | 
|---|
 | 40 |  ..W !,"Line item is being deleted because of incomplete information.",!
 | 
|---|
 | 41 |  ..S DA=+PRCHI,DA(1)=PRCHPO,DIK="^PRC(443.6,"_DA(1)_",2,",BFLAG=1
 | 
|---|
 | 42 |  ..D ^DIK
 | 
|---|
 | 43 |  I BFLAG=0  D
 | 
|---|
 | 44 |  .S DELIVER=1 W !
 | 
|---|
 | 45 |  .D ERCHK^PRCHMA1 K ERROR
 | 
|---|
 | 46 |  .S DA(1)=PRCHPO,DA=PRCHI1 D EN12^PRCHAMXG
 | 
|---|
 | 47 |  Q
 | 
|---|
 | 48 | EN3 ;Line Item delete
 | 
|---|
 | 49 |  N PRCHI,I442,I2Z,DIC,PRCHAREC,DIE,DR,DELIVER,%,%A,%B,PONUM,DIK
 | 
|---|
 | 50 |  N PONOEXT,PODS,IENDS
 | 
|---|
 | 51 |  D MV,MVDIS^PRCHMA3 S DA(1)=PRCHPO,DIC="^PRC(443.6,"_DA(1)_",2,",DIC(0)="AEQZ" D ^DIC
 | 
|---|
 | 52 |  I Y<0 W !?5,"<NOTHING DELETED>" Q
 | 
|---|
 | 53 |  S PRCHI=Y
 | 
|---|
 | 54 |  I $P($G(^PRC(443.6,PRCHPO,2,+PRCHI,2)),U,8)>0 D  Q
 | 
|---|
 | 55 |  .W !?5,"CANNOT DELETE ITEM ",$P(PRCHI,U,2),", IT HAS ALREADY BEEN RECEIVED!",$C(7)
 | 
|---|
 | 56 |  S %="",%A="   SURE YOU WANT TO DELETE LINE ITEM "_$P(PRCHI,U,2),%B=""
 | 
|---|
 | 57 |  D ^PRCFYN I %'=1 W ?50,"<NOTHING DELETED>" Q
 | 
|---|
 | 58 |  S I442=$G(^PRC(442,PRCHPO,2,+PRCHI,0)) I I442="" D  Q
 | 
|---|
 | 59 |  .S PONUM=$P(^PRC(443.6,PRCHPO,2,+PRCHI,0),U)
 | 
|---|
 | 60 |  .K ^PRC(443.6,PRCHPO,2,"B",PONUM),^PRC(443.6,PRCHPO,2,"C",PONUM)
 | 
|---|
 | 61 |  .I $P($G(^PRC(443.6,PRCHPO,2,+PRCHI,0)),U,5)]"" K ^PRC(443.6,PRCHPO,2,"AE",$P(^PRC(443.6,PRCHPO,2,+PRCHI,0),U,5))
 | 
|---|
 | 62 |  .;
 | 
|---|
 | 63 |  .;If item was added during amendment process then kill Item/Del. Sch.
 | 
|---|
 | 64 |  .S PONOEXT=$P(^PRC(443.6,PRCHPO,0),U),PODS=0
 | 
|---|
 | 65 |  .F  S PODS=$O(^PRC(441.7,"AG",PONOEXT,+PRCHI,PODS)) Q:'PODS  I $D(PODS) S DA=PODS,DIK="^PRC(441.7," D ^DIK
 | 
|---|
 | 66 |  .;
 | 
|---|
 | 67 |  .K ^PRC(443.6,PRCHPO,2,+PRCHI)
 | 
|---|
 | 68 |  .S I2Z=^PRC(443.6,PRCHPO,2,0),$P(I2Z,U,4)=$P(I2Z,U,4)-1
 | 
|---|
 | 69 |  .S ^PRC(443.6,PRCHPO,2,0)=I2Z
 | 
|---|
 | 70 |  .S N=0 F I=1:1 S N=$O(^PRC(443.6,PRCHPO,2,N)) Q:'N  D
 | 
|---|
 | 71 |  ..S $P(^PRC(443.6,PRCHPO,2,N,0),U)=I
 | 
|---|
 | 72 |  .K ^PRC(443.6,PRCHPO,2,"B"),^PRC(443.6,PRCHPO,2,"C")
 | 
|---|
 | 73 |  .S DA(1)=PRCHPO,DIK(1)=".01^B^C"
 | 
|---|
 | 74 |  .S DIK="^PRC(443.6,"_DA(1)_",2," D ENALL^DIK K N,I,DIK
 | 
|---|
 | 75 |  .S J=$P(^PRC(443.6,PRCHPO,0),U,14)-1
 | 
|---|
 | 76 |  .S $P(^PRC(443.6,PRCHPO,0),U,14)=J,$P(^(0),U,18)=J
 | 
|---|
 | 77 |  .I $D(^PRC(443.6,PRCHPO,3)) D
 | 
|---|
 | 78 |  ..S N=0 F  S N=$O(^PRC(443.6,PRCHPO,3,N)) Q:'N  S $P(^PRC(443.6,PRCHPO,3,N,0),U,6)=$P(^PRC(443.6,PRCHPO,3,N,0),U,6)-1
 | 
|---|
 | 79 |  I $D(^PRC(443.6,PRCHPO,2,+PRCHI,2)),$P(^(2),U,6)>0 S PRCHAREC=1
 | 
|---|
 | 80 |  ;
 | 
|---|
 | 81 |  ;If item already exists then either mark or delete the Del. Sch. 
 | 
|---|
 | 82 |  I I442]"" D
 | 
|---|
 | 83 |  .S PONOEXT=$P(^PRC(443.6,PRCHPO,0),U)
 | 
|---|
 | 84 |  .S POSC=0
 | 
|---|
 | 85 |  .F  S POSC=$O(^PRC(441.7,"AG",PONOEXT,+PRCHI,POSC)) Q:'POSC  D
 | 
|---|
 | 86 |  . . S IENDS=$G(^PRC(441.7,POSC,0))
 | 
|---|
 | 87 |  . . Q:IENDS=""
 | 
|---|
 | 88 |  . . S PERM=+$P(IENDS,U,7)
 | 
|---|
 | 89 |  . . I PERM>0 S DR="5////D",DIE="^PRC(441.7,",DA=POSC D ^DIE Q
 | 
|---|
 | 90 |  . . I PERM'>0 K PRCHNORE S DIK="^PRC(441.7,",DA=POSC D ^DIK  S PRCHNORE=1 Q
 | 
|---|
 | 91 |  ;
 | 
|---|
 | 92 |  S DR="5///0;2////0"
 | 
|---|
 | 93 |  S DA(1)=PRCHPO,DA=+PRCHI
 | 
|---|
 | 94 |  S DIE="^PRC(443.6,"_DA(1)_",2,"
 | 
|---|
 | 95 |  D ^DIE K DIE
 | 
|---|
 | 96 |  S DELIVER=1 W !
 | 
|---|
 | 97 |  Q
 | 
|---|
 | 98 | MV ;Move line item information from 442
 | 
|---|
 | 99 |  Q:$D(^PRC(443.6,PRCHPO,2,0))  Q:$P($G(^(0)),U,4)>0  D WAIT^DICD
 | 
|---|
 | 100 |  N %X,%Y,N,M,PRCHPO1,OK,PRCHNORE
 | 
|---|
 | 101 |  S %X="^PRC(442,PRCHPO,2,",%Y="^PRC(443.6,PRCHPO,2," D %XY^%RCR
 | 
|---|
 | 102 |  S $P(^PRC(443.6,PRCHPO,2,0),U,2)=$P(^DD(443.6,40,0),U,2) K ^("C")
 | 
|---|
 | 103 |  S PRCHPO1=$P(^PRC(442,PRCHPO,0),"^")
 | 
|---|
 | 104 |  Q:'$D(^PRC(442.8,"B",PRCHPO1))  Q:$D(^PRC(441.7,"B",PRCHPO1))
 | 
|---|
 | 105 |  S N=0,M=+$P(^PRC(441.7,0),"^",3)
 | 
|---|
 | 106 |  F  S N=$O(^PRC(442.8,"B",PRCHPO1,N)) Q:'N  D
 | 
|---|
 | 107 | MV1 .S M=M+1,OK=$G(^PRC(441.7,M,0)) I OK'="" G MV1
 | 
|---|
 | 108 |  .S ^PRC(441.7,M,0)=^PRC(442.8,N,0)
 | 
|---|
 | 109 |  .S $P(^PRC(441.7,M,0),U,7)=N
 | 
|---|
 | 110 |  .S $P(^PRC(441.7,0),"^",3)=M
 | 
|---|
 | 111 |  .S $P(^PRC(441.7,0),"^",4)=$P(^(0),"^",4)+1
 | 
|---|
 | 112 |  .S DIK="^PRC(441.7,",DA=M D IX^DIK K DIK,DA
 | 
|---|
 | 113 |  .Q
 | 
|---|
 | 114 |  Q
 | 
|---|
 | 115 | ONLY ;Make sure only 'Cancel' amendment
 | 
|---|
 | 116 |  S PRCHON=0
 | 
|---|
 | 117 |  I $P($G(^PRC(443.6,PRCHPO,6,PRCHAM,3,0)),U,4)>2 D ERR Q
 | 
|---|
 | 118 |  I $P($G(^PRC(443.6,PRCHPO,6,PRCHAM,3,0)),U,4)=2 D  Q
 | 
|---|
 | 119 |  .I $P($G(^PRC(443.6,PRCHPO,6,PRCHAM,3,2,0)),U,2)'=34 D ERR Q
 | 
|---|
 | 120 |  .S PRCHON=1
 | 
|---|
 | 121 |  S PRCHON=1
 | 
|---|
 | 122 |  QUIT
 | 
|---|
 | 123 | ERR ;Error
 | 
|---|
 | 124 |  ;W !?5,"You can only "_$S($D(PRCHREQ):$P(^PRCD(442.2,15,0),U,2),1:$P(^PRCD(442.2,5,0),U,2))_" if this is the ONLY change you",!?5,"are making to the "_$S($D(PRCHREQ):"requisition.",1:"purchase order.")
 | 
|---|
 | 125 |  W !?5,"To "_$S($D(PRCHREQ):$P(^PRCD(442.2,15,0),U,2),1:$P(^PRCD(442.2,5,0),U,2))_" it must be the ONLY change you",!?5,"are making on the amendment."
 | 
|---|
 | 126 |  QUIT
 | 
|---|
 | 127 |  ;
 | 
|---|
 | 128 | SUPBOC(QUIETLY) ;compute pre-implied BOC, moved from template PRCHRQITEM, PRCHLINE into this routine and also called in BOC input transform
 | 
|---|
 | 129 |  N PRCHIDA,SPFCP,PRCHBOCC,ACCT
 | 
|---|
 | 130 |  S:$G(QUIETLY)=-1 X=$P($G(^PRC(443.6,DA(1),2,DA,0)),U,4)
 | 
|---|
 | 131 |  Q:'$D(X)
 | 
|---|
 | 132 |  S PRCHIDA=+$P($G(^PRC(443.6,DA(1),2,DA,0)),U,5),SPFCP=+$P(^PRC(443.6,DA(1),0),U,19)
 | 
|---|
 | 133 |  I SPFCP=2 D
 | 
|---|
 | 134 |  . S PRCHN("SFC")=SPFCP,ACCT=$$ACCT^PRCPUX1($E($$NSN^PRCPUX1(PRCHIDA),1,4))
 | 
|---|
 | 135 |  . D  ;:$D(ACCT)
 | 
|---|
 | 136 |  . . S PRCHBOCC=$P($G(^PRCD(420.2,$S(ACCT=1:2697,ACCT=2:2698,ACCT=3:2699,ACCT=6:2699,ACCT=8:2696,1:2699),0)),U)
 | 
|---|
 | 137 |  . . I PRCHBOCC S $P(^PRC(443.6,DA(1),2,DA,0),U,4)=PRCHBOCC D
 | 
|---|
 | 138 |  . . . I PRCHBOCC'=X,PRCHBOCC W:'$G(QUIETLY) !,?5,"BOC must be ",PRCHBOCC,!,?5,"For a supply fund order, a BOC ",X," is invalid.",! S X=PRCHBOCC
 | 
|---|
 | 139 |  Q X
 | 
|---|
 | 140 |  ;
 | 
|---|