| 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
|
---|