| 1 | PRCPOPD ;WISC/RFJ/DWA-delete distribution order ;27 Sep 93 | 
|---|
| 2 | V ;;5.1;IFCAP;**24,52**;Oct 20, 2000 | 
|---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | Q | 
|---|
| 5 | ; | 
|---|
| 6 | ; | 
|---|
| 7 | ORDRDELM ;  delete distribution order (ask first) | 
|---|
| 8 | ;  called from protocol | 
|---|
| 9 | S VALMBCK="R" | 
|---|
| 10 | S XP="Do you want to DELETE the distribution order" | 
|---|
| 11 | S XH="Enter 'YES' to delete the order, 'NO' or '^' to retain the order on file." | 
|---|
| 12 | W ! I $$YN^PRCPUYN(1)'=1 Q | 
|---|
| 13 | ; | 
|---|
| 14 | D VARIABLE^PRCPOPU | 
|---|
| 15 | N ITEMDA,PRCPSTOP,QTY | 
|---|
| 16 | S PRCPSTOP=0 | 
|---|
| 17 | ; | 
|---|
| 18 | ;  if order is released or backordered, cancel dueins and dueouts | 
|---|
| 19 | I $P(PRCPORD(0),"^",6)'="" D  I PRCPSTOP QUIT | 
|---|
| 20 | .   W ! | 
|---|
| 21 | . I $P(^PRCP(445.3,+ORDERDA,0),"^",10)]"",$$REFILL(+ORDERDA) D  I PRCPSTOP QUIT | 
|---|
| 22 | . . N DA,DIR,DR | 
|---|
| 23 | . . S DIR(0)="Y" | 
|---|
| 24 | . . S DIR("A",1)="The supply station received items on this order." | 
|---|
| 25 | . . S DIR("A",2)="WARNING: IF YOU DELETE THE ORDER, GIP WILL NOT BE UPDATED." | 
|---|
| 26 | . . S DIR("A",3)=" " | 
|---|
| 27 | . . S DIR("A")="Are you sure you want to delete the order" | 
|---|
| 28 | . . S DIR("?")="Enter 'Y' or 'YES' to delete the current order." | 
|---|
| 29 | . . S DIR("?",1)="Enter 'N' or 'NO' to retain the order and exit deletion." | 
|---|
| 30 | . . D ^DIR | 
|---|
| 31 | . . I $D(DUOUT)!$D(DTOUT) S PRCPSTOP=1 Q | 
|---|
| 32 | . . I Y=0 S PRCPSTOP=1 Q | 
|---|
| 33 | . I $P(PRCPORD(0),"^",2)'="" W !,"<*> Cancelling DUE-OUTS in ",$P(PRCPORD(0),"^",2) | 
|---|
| 34 | . I $P(PRCPORD(0),"^",3)'="" W !,"<*> Cancelling DUE-INS  in ",$P(PRCPORD(0),"^",3) | 
|---|
| 35 | . S ITEMDA=0 | 
|---|
| 36 | . F  S ITEMDA=$O(^PRCP(445.3,ORDERDA,1,ITEMDA)) Q:'ITEMDA  D | 
|---|
| 37 | . . S QTY=$P(^PRCP(445.3,ORDERDA,1,ITEMDA,0),"^",2) | 
|---|
| 38 | . . I QTY D DUEOUTIN^PRCPOPU(PRCPPRIM,PRCPSECO,ITEMDA,-QTY,0) | 
|---|
| 39 | ; | 
|---|
| 40 | D DELORDER(ORDERDA) | 
|---|
| 41 | ;  pause so user can see msg | 
|---|
| 42 | D R^PRCPUREP | 
|---|
| 43 | ;  kill valmbck to exit LM | 
|---|
| 44 | K VALMBCK | 
|---|
| 45 | Q | 
|---|
| 46 | ; | 
|---|
| 47 | ; | 
|---|
| 48 | DELORDER(ORDERDA)         ;  delete distribution order from file 445.3 | 
|---|
| 49 | ;  cancel due-ins and due-outs first | 
|---|
| 50 | I '$D(^PRCP(445.3,+ORDERDA,0)) Q | 
|---|
| 51 | I $P(^PRCP(445.3,+ORDERDA,0),"^",10)]"",$P(^PRCP(445.3,+ORDERDA,0),"^",6)="R" D MESSAGE(+ORDERDA,1) | 
|---|
| 52 | N %,DA,DIC,DIK,X,Y | 
|---|
| 53 | W !!,"DELETING distribution order..." | 
|---|
| 54 | S DA=+ORDERDA,DIK="^PRCP(445.3," D ^DIK | 
|---|
| 55 | Q | 
|---|
| 56 | ; | 
|---|
| 57 | ; | 
|---|
| 58 | ITEMDELM ;  delete an item from a distribution order | 
|---|
| 59 | D FULL^VALM1 | 
|---|
| 60 | S VALMBCK="R" | 
|---|
| 61 | ; | 
|---|
| 62 | D VARIABLE^PRCPOPU | 
|---|
| 63 | N %,ITEMDA,QTY | 
|---|
| 64 | ; | 
|---|
| 65 | F  S ITEMDA=+$$ITEMSEL^PRCPOPUS(ORDERDA,PRCPPRIM,0) Q:'ITEMDA  D | 
|---|
| 66 | .   S XP="Do you want to DELETE the item from the distribution order",XH="Enter 'YES' to delete the item, 'NO' or '^' to retain the item on the order." | 
|---|
| 67 | .   I $$YN^PRCPUYN(1)'=1 Q | 
|---|
| 68 | .   ; | 
|---|
| 69 | .   S QTY=$P($G(^PRCP(445.3,ORDERDA,1,ITEMDA,0)),"^",2) | 
|---|
| 70 | .   I 'QTY D DELITEM(ORDERDA,ITEMDA) W !?5,"* * * ITEM DELETED * * *" Q | 
|---|
| 71 | .   ; | 
|---|
| 72 | .   I $P(PRCPORD(0),"^",6)'="" D DUEOUTIN^PRCPOPU(PRCPPRIM,PRCPSECO,ITEMDA,-QTY,1) | 
|---|
| 73 | .   D DELITEM(ORDERDA,ITEMDA) | 
|---|
| 74 | .   W !?5,"* * * ITEM DELETED * * *" | 
|---|
| 75 | D INIT^PRCPOPL | 
|---|
| 76 | Q | 
|---|
| 77 | ; | 
|---|
| 78 | MESSAGE(ORDER,ACTIVITY) ; tell user of items filled by supply station | 
|---|
| 79 | ; | 
|---|
| 80 | ; ORDER - ien of file 445.3 | 
|---|
| 81 | ; ACTIVITY:  1- ORDER DELETED, 2 - SUPPLY STATION FLAG REMOVED | 
|---|
| 82 | ; | 
|---|
| 83 | N ITEM,LN,ORDERNO,PRCPSEC,PRCPXMY,REFILL,XMB,XMDUZ,XMTEXT,XMY | 
|---|
| 84 | S ITEM=$G(^PRCP(445.3,ORDER,0)) I ITEM']"" QUIT | 
|---|
| 85 | S ORDERNO=$P(ITEM,"^",1) | 
|---|
| 86 | S PRCPSEC=$P(ITEM,"^",3) | 
|---|
| 87 | I '$$REFILL(ORDER) QUIT | 
|---|
| 88 | D GETUSER^PRCPXTRM(PRCPSEC) Q:'$O(PRCPXMY(""))  ; quit if no users in inv point | 
|---|
| 89 | S ITEM=0 | 
|---|
| 90 | ; restrict message to managers | 
|---|
| 91 | F  S ITEM=$O(PRCPXMY(ITEM)) Q:ITEM'>0  I PRCPXMY(ITEM)=1 S XMY(ITEM)="" | 
|---|
| 92 | K ^TMP($J,"PRCPSSORDER") | 
|---|
| 93 | S XMTEXT="^TMP($J,""PRCPSSORDER"",1," | 
|---|
| 94 | S XMB="PRCP_ORDER_PARTIALLY_LOST" | 
|---|
| 95 | S XMB(1)=ORDERNO | 
|---|
| 96 | S XMB(2)=$$INVNAME^PRCPUX1(PRCPSEC) | 
|---|
| 97 | I ACTIVITY=1 D | 
|---|
| 98 | . S XMB(3)="deleted" | 
|---|
| 99 | . S XMB(4)="If refilled, enter an emergency or call-in order to update GIP." | 
|---|
| 100 | I ACTIVITY=2 D | 
|---|
| 101 | . S XMB(3)="flagged for completion on GIP" | 
|---|
| 102 | . S XMB(4)="If refilled, adjust the quantity ordered to the refill amount." | 
|---|
| 103 | S XMB(5)="If not refilled, adjust the supply station down and the secondary up" | 
|---|
| 104 | S XMB(6)="                 by the same value for each affected item" | 
|---|
| 105 | S XMDUZ="SUPPLY STATION INTERFACE" | 
|---|
| 106 | S ITEM=0,LN=0 | 
|---|
| 107 | F  S ITEM=$O(^PRCP(445.3,ORDER,1,ITEM)) Q:'+ITEM  D | 
|---|
| 108 | . I $P($G(^PRCP(445.3,ORDER,1,ITEM,0)),"^",7)>0 D | 
|---|
| 109 | . . N QTY,NAME,PRIMVN | 
|---|
| 110 | . . S LN=LN+1 | 
|---|
| 111 | . . S QTY=$P(^PRCP(445.3,ORDER,1,ITEM,0),"^",7) | 
|---|
| 112 | . . S PRIMVN=$P(^PRCP(445.3,ORDER,0),"^",2)_";PRCP(445," | 
|---|
| 113 | . . S X=$$GETVEN^PRCPUVEN(PRCPSEC,ITEM,PRIMVN,1) | 
|---|
| 114 | . . S X=$P(X,"^",4) ; pkg multiple (conversion factor) | 
|---|
| 115 | . . I 'X S X=1 | 
|---|
| 116 | . . S QTY=QTY*X | 
|---|
| 117 | . . S NAME=$P(^PRC(441,ITEM,0),"^",2) | 
|---|
| 118 | . . S ^TMP($J,"PRCPSSORDER",1,LN,0)=$E("        ",$L(QTY)+1,8)_QTY_"  "_"("_ITEM_") "_NAME | 
|---|
| 119 | S ^TMP($J,"PRCPSSORDER",1)=LN | 
|---|
| 120 | D EN^XMB | 
|---|
| 121 | K ^TMP($J,"PRCPSSORDER") | 
|---|
| 122 | Q | 
|---|
| 123 | ; | 
|---|
| 124 | REFILL(ORDER) ; | 
|---|
| 125 | ; | 
|---|
| 126 | ; This subroutine will return 1 if the order has any refill activity | 
|---|
| 127 | ; and 0 if there is none | 
|---|
| 128 | ; | 
|---|
| 129 | ; ORDER  ien of file 445.3 | 
|---|
| 130 | ; | 
|---|
| 131 | N REFILL | 
|---|
| 132 | S ITEM=0,REFILL=0 | 
|---|
| 133 | F  S ITEM=$O(^PRCP(445.3,ORDER,1,ITEM)) Q:'+ITEM!REFILL  D | 
|---|
| 134 | . I $P($G(^PRCP(445.3,ORDER,1,ITEM,0)),"^",7)>0 S REFILL=1 | 
|---|
| 135 | QUIT REFILL | 
|---|
| 136 | ; | 
|---|
| 137 | ; | 
|---|
| 138 | DELITEM(ORDERDA,ITEMDA)     ;  delete item from distribution order | 
|---|
| 139 | I '$D(^PRCP(445.3,+ORDERDA,1,+ITEMDA,0)) Q | 
|---|
| 140 | N %,DA,DIC,DIK,X,Y | 
|---|
| 141 | S DA(1)=+ORDERDA,DA=+ITEMDA,DIK="^PRCP(445.3,"_ORDERDA_",1," D ^DIK Q | 
|---|