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