| 1 | PRCPOPER ;WISC/RFJ/DGL-distribution order error report; ; 3/17/00 3:23pm | 
|---|
| 2 | V ;;5.1;IFCAP;;Oct 20, 2000 | 
|---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | Q | 
|---|
| 5 | ; | 
|---|
| 6 | ; | 
|---|
| 7 | CHECKORD ;  check order for errors (called from prcpopl protocol) | 
|---|
| 8 | D VARIABLE^PRCPOPU | 
|---|
| 9 | D EN^VALM("PRCP DIST ORDER CHECK ITEMS") | 
|---|
| 10 | D INIT^PRCPOPL | 
|---|
| 11 | S VALMBCK="R" | 
|---|
| 12 | Q | 
|---|
| 13 | ; | 
|---|
| 14 | ; | 
|---|
| 15 | INIT       ;  check order for errors and build array | 
|---|
| 16 | N DATA,ERROR,ITEMDA,QTYORDER,STATUS,QTYOH | 
|---|
| 17 | K ^TMP($J,"PRCPOPER") | 
|---|
| 18 | S VALMCNT=0 | 
|---|
| 19 | I 'PRCPPRIM D SET^PRCPOPL("PRIMARY INVENTORY SOURCE MISSING.  PLEASE RE-EDIT THE ORDER FIRST.") Q | 
|---|
| 20 | I 'PRCPSECO D SET^PRCPOPL("SECONDARY INVENTORY POINT IS MISSING, PLEASE RE-EDIT THE ORDER FIRST.") Q | 
|---|
| 21 | ; | 
|---|
| 22 | S STATUS=$P(^PRCP(445.3,ORDERDA,0),"^",6) | 
|---|
| 23 | ;  check items on order | 
|---|
| 24 | S ITEMDA=0 F  S ITEMDA=$O(^PRCP(445.3,ORDERDA,1,ITEMDA)) Q:'ITEMDA  S DATA=^(ITEMDA,0) D | 
|---|
| 25 | .   S QTYORDER=$P(DATA,"^",2) | 
|---|
| 26 | .   I 'QTYORDER D BLDARRAY^PRCPOPL,SET^PRCPOPL("     ** THERE IS NO QUANTITY ORDERED, ITEM SHOULD BE DELETED FROM ORDER **") Q | 
|---|
| 27 | .   S ERROR=$$ITEMCHK(PRCPPRIM,PRCPSECO,ITEMDA) | 
|---|
| 28 | .   S X=$G(^PRCP(445,PRCPPRIM,1,ITEMDA,0)) | 
|---|
| 29 | .   I X]"" D | 
|---|
| 30 | .   .   S QTYOH=+$P(X,"^",7) | 
|---|
| 31 | .   .   I PRCP("DPTYPE")'="S",QTYOH<QTYORDER S ERROR=ERROR_$S(ERROR="":"",1:"^")_"     ** QTY ORDERED ("_QTYORDER_") IS MORE THAN PRIMARY QTY ON HAND ("_QTYOH_") **" | 
|---|
| 32 | .   .   Q | 
|---|
| 33 | .   I ERROR="" Q | 
|---|
| 34 | .   D BLDARRAY^PRCPOPL(PRCPPRIM,PRCPSECO,ITEMDA,QTYORDER,STATUS) | 
|---|
| 35 | .   F %=1:1 Q:$P(ERROR,"^",%,99)=""  I $P(ERROR,"^",%)'="" D SET^PRCPOPL($P(ERROR,"^",%)) | 
|---|
| 36 | ; | 
|---|
| 37 | I VALMCNT=0 S VALMQUIT=1,VALMSG="* * * NO ERRORS FOUND * * *" | 
|---|
| 38 | Q | 
|---|
| 39 | ; | 
|---|
| 40 | ; | 
|---|
| 41 | EXIT ;  exit and clean up | 
|---|
| 42 | K ^TMP($J,"PRCPOPER") | 
|---|
| 43 | Q | 
|---|
| 44 | ; | 
|---|
| 45 | ; | 
|---|
| 46 | EEITEMS ;  called from protocol file to enter/edit invpt items | 
|---|
| 47 | D | 
|---|
| 48 | .   N PRC,PRCP | 
|---|
| 49 | .   S PRCP("DPTYPE")="PS" | 
|---|
| 50 | .   D ^PRCPEILM | 
|---|
| 51 | D INIT | 
|---|
| 52 | S VALMBCK="R" | 
|---|
| 53 | I $G(VALMQUIT) K VALMBCK | 
|---|
| 54 | Q | 
|---|
| 55 | ; | 
|---|
| 56 | ; | 
|---|
| 57 | ITEMCHK(PRCPPRIM,PRCPSECO,ITEMDA) ;  check items | 
|---|
| 58 | ;  returns errors delimited by ^ or "" | 
|---|
| 59 | N ITEMDATA,ERROR,VDATA | 
|---|
| 60 | S ERROR="" | 
|---|
| 61 | S ITEMDATA=$G(^PRCP(445,PRCPPRIM,1,ITEMDA,0)) | 
|---|
| 62 | I ITEMDATA="" S ERROR="    ** ITEM NOT STORED IN PRIMARY INVENTORY POINT ** ^     Either add item to primary or delete item from order." | 
|---|
| 63 | I '$D(^PRCP(445,PRCPSECO,1,ITEMDA,0)) S ERROR=ERROR_$S(ERROR="":"",1:"^")_"    ** ITEM NOT STORED IN SECONDARY INVENTORY POINT **" | 
|---|
| 64 | ; | 
|---|
| 65 | S VDATA=$$GETVEN^PRCPUVEN(PRCPSECO,ITEMDA,PRCPPRIM_";PRCP(445,",1) | 
|---|
| 66 | I 'VDATA S ERROR=ERROR_$S(ERROR="":"",1:"^")_"    ** PRIMARY INVENTORY POINT IS NOT LISTED AS A SOURCE **" | 
|---|
| 67 | I $P(VDATA,"^",2,3)'=($P(ITEMDATA,"^",5)_"^"_$P(ITEMDATA,"^",14)) S ERROR=ERROR_$S(ERROR="":"",1:"^")_"    ** SECONDARY UNIT PER RECEIPT DOES NOT EQUAL PRIMARY UNIT PER ISSUE **" | 
|---|
| 68 | Q ERROR | 
|---|