| 1 | PRCPCDIC ;WISC/RFJ-disassemble case cart                            ;01 Sep 93 | 
|---|
| 2 | ;;5.1;IFCAP;;Oct 20, 2000 | 
|---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | D ^PRCPUSEL Q:'$G(PRCP("I")) | 
|---|
| 5 | I PRCP("DPTYPE")'="P" W !,"THIS OPTION SHOULD ONLY BE USED BY A PRIMARY INVENTORY POINT." Q | 
|---|
| 6 | N %,CCITEM,DATA,ITEMDA,ITEMDATA,NOTINVPT,ORDERNO,PRCPCDIC,PRCPID,QUANTITY,TOTVAL,X,Y | 
|---|
| 7 | I $$CHECK^PRCPCUT1(PRCP("I")) Q | 
|---|
| 8 | S IOP="HOME" D ^%ZIS K IOP | 
|---|
| 9 | K X S X(1)="The Disassemble Case Cart option will break down the case cart and return the individual disposable items back to stock." | 
|---|
| 10 | S X(2)="When a case cart is disassembled, the quantity on-hand for the case cart will be decremented and the quantity on-hand for the disposable items will be incremented.  The quantity on-hand for reusable items will not change." | 
|---|
| 11 | S X(3)="The disposable item quantity to return to stock equals the quantity used for the item during assembly of the case cart." | 
|---|
| 12 | S X(4)="This quantity may be different from the case cart definition quantity since the case cart definition may have been altered after the case cart was assembled." | 
|---|
| 13 | D DISPLAY^PRCPUX2(40,79,.X) | 
|---|
| 14 | DISASMBL ;  disassemble case cart | 
|---|
| 15 | K NOTINVPT,ORDERNO,PRCPFLAG | 
|---|
| 16 | W ! S ITEMDA=$$SELECT^PRCPCED0("C",0,PRCP("I")) I ITEMDA<1 Q | 
|---|
| 17 | S ITEMDATA=$G(^PRCP(445,PRCP("I"),1,ITEMDA,0)) | 
|---|
| 18 | I ITEMDATA="" W !!,"Case Cart is not stored as an item in the inventory point." G DISASMBL | 
|---|
| 19 | I '$P(ITEMDATA,"^",7) W !!,"Case Cart has not been assembled (quantity on-hand is zero)." G DISASMBL | 
|---|
| 20 | W ! S QUANTITY=$$QUANTITY^PRCPCUT1($P(ITEMDATA,"^",7),"D") I 'QUANTITY G DISASMBL | 
|---|
| 21 | L +^PRCP(445.7,ITEMDA):5 I '$T D SHOWWHO^PRCPULOC(445.7,ITEMDA,0),EXIT G DISASMBL | 
|---|
| 22 | D ADD^PRCPULOC(445.7,ITEMDA,0,"Disassemble Case Cart") | 
|---|
| 23 | ; | 
|---|
| 24 | ;  show items in cc | 
|---|
| 25 | D PRINT^PRCPCDIR(ITEMDA,QUANTITY) | 
|---|
| 26 | ;  some items not in inventory point message | 
|---|
| 27 | I $G(NOTINVPT) D  D EXIT G DISASMBL | 
|---|
| 28 | .   K X S X(1)="WARNING -- Before disassembling a case cart, all items used to build the case cart must be contained in the inventory point." | 
|---|
| 29 | .   D DISPLAY^PRCPUX2(20,60,.X) | 
|---|
| 30 | .   D R^PRCPUREP | 
|---|
| 31 | ; | 
|---|
| 32 | ;  no items to build list with | 
|---|
| 33 | I '$O(^TMP($J,"PRCPCDIR",0)) D  D EXIT G DISASMBL | 
|---|
| 34 | .   K X S X(1)="There are no items or defined quantities for disassembling the case cart." | 
|---|
| 35 | .   D DISPLAY^PRCPUX2(20,60,.X) | 
|---|
| 36 | ; | 
|---|
| 37 | ;  user entered '^' during list display | 
|---|
| 38 | I $G(PRCPFLAG) D  D EXIT G DISASMBL | 
|---|
| 39 | .   K X S X(1)="You must display the entire list of items for the case cart before you can disassemble it." | 
|---|
| 40 | .   D DISPLAY^PRCPUX2(20,60,.X) | 
|---|
| 41 | S XP="ARE YOU SURE YOU WANT TO DISASSEMBLE THIS CASE CART",XH="Enter 'YES' to disassemble the case cart, 'NO' or '^' to exit." | 
|---|
| 42 | W ! I $$YN^PRCPUYN(2)'=1 D EXIT G DISASMBL | 
|---|
| 43 | ; | 
|---|
| 44 | S ORDERNO=$$ORDERNO^PRCPUTRX(PRCP("I")) | 
|---|
| 45 | S CCITEM=0 F  S CCITEM=$O(^TMP($J,"PRCPCDIR",CCITEM)) Q:'CCITEM  S DATA=^(CCITEM) D | 
|---|
| 46 | .   K PRCPCDIC S PRCPCDIC("QTY")=$P(DATA,"^"),PRCPCDIC("INVVAL")=$J($P(DATA,"^",2),0,2),PRCPCDIC("REASON")="0:Disassembled Case Cart" | 
|---|
| 47 | .   D ITEM^PRCPUUIP(PRCP("I"),CCITEM,"S",ORDERNO,.PRCPCDIC) | 
|---|
| 48 | ; | 
|---|
| 49 | ;  decrement case cart item | 
|---|
| 50 | S ITEMDATA=^PRCP(445,PRCP("I"),1,ITEMDA,0),TOTVAL=$J(QUANTITY*$P(ITEMDATA,"^",22),0,2) | 
|---|
| 51 | I $P(ITEMDATA,"^",7)=QUANTITY S TOTVAL=$P(ITEMDATA,"^",27) K ^PRCP(445,PRCP("I"),1,ITEMDA,8) | 
|---|
| 52 | K PRCPCDIC S PRCPCDIC("QTY")=-QUANTITY,PRCPCDIC("INVVAL")=-TOTVAL,PRCPCDIC("REASON")="0:Disassembled Case Cart" | 
|---|
| 53 | D ITEM^PRCPUUIP(PRCP("I"),ITEMDA,"S",ORDERNO,.PRCPCDIC) | 
|---|
| 54 | D EXIT G DISASMBL | 
|---|
| 55 | ; | 
|---|
| 56 | EXIT ;  exit, unlock, clean up | 
|---|
| 57 | D CLEAR^PRCPULOC(445.7,ITEMDA,0) | 
|---|
| 58 | L -^PRCP(445.7,ITEMDA) | 
|---|
| 59 | K ^TMP($J,"PRCPCDIR") | 
|---|
| 60 | Q | 
|---|