PRCPOPEE ;WISC/RFJ-edit distribution order items ;27 Sep 93
;;5.1;IFCAP;;Oct 20, 2000
;Per VHA Directive 10-93-142, this routine should not be modified.
Q
;
;
EDIT ; edit distribution order
D FULL^VALM1
S VALMBCK="R"
D ITEMS(ORDERDA)
D INIT^PRCPOPL
Q
;
;
ITEMS(ORDERDA) ; edit items on distribution order orderda
I '$D(^PRCP(445.3,ORDERDA,0)) Q
N AFTERQTY,BEFORQTY,CONV,ITEMDA,PRIMITEM,PRCPORD,SECOITEM,UNITCOST,UNITR,VDATA
D VARIABLE^PRCPOPU
;
F S ITEMDA=+$$ITEMSEL^PRCPOPUS(ORDERDA,PRCPPRIM,1) Q:'ITEMDA D
. ;
. ; show inventory data
. S PRIMITEM=^PRCP(445,PRCPPRIM,1,ITEMDA,0)
. S UNITCOST=+$P(PRIMITEM,"^",22) I $P(PRIMITEM,"^",15)>UNITCOST S UNITCOST=+$P(PRIMITEM,"^",15)
. ;
. W !!,"Data for PRIMARY inventory point: ",$P(PRCPORD(0),"^",2)
. W !?5,"Quantity On-Hand: ",+$P(PRIMITEM,"^",7),?40,"Unit per Issue: ",$$UNIT^PRCPUX1(PRCPPRIM,ITEMDA," per ")
. W !?5,"Quantity Due-Out: ",$$GETOUT^PRCPUDUE(PRCPPRIM,ITEMDA),!?5,"Quantity Due-In : ",$$GETIN^PRCPUDUE(PRCPPRIM,ITEMDA),!?12,"Unit Cost: ",UNITCOST
. I $P(PRIMITEM,"^",25) W !?2,"Required Issue Mult: ",$P(PRIMITEM,"^",25)
. I $P(PRIMITEM,"^",17) W !?4,"Minimum Issue Qty: ",$P(PRIMITEM,"^",17)
. ;
. S SECOITEM=$G(^PRCP(445,PRCPSECO,1,ITEMDA,0))
. W !!,"Data for SECONDARY inventory point: ",$P(PRCPORD(0),"^",3)
. I SECOITEM="" S CONV=1 W !?5,"ITEM NOT STORED IN SECONDARY INVENTORY POINT",!
. ;
. I SECOITEM'="" D
. . W !?5,"Quantity On-Hand: ",+$P(SECOITEM,"^",7),?40,"Unit per Issue: ",$$UNIT^PRCPUX1(PRCPSECO,ITEMDA," per ")
. . S VDATA=$$GETVEN^PRCPUVEN(PRCPSECO,ITEMDA,PRCPPRIM_";PRCP(445,",1),UNITR=$$UNITVAL^PRCPUX1(+$P(VDATA,"^",3),$P(VDATA,"^",2)," per "),CONV=$P(VDATA,"^",4)
. . W !?5,"Quantity Due-In : ",$$GETIN^PRCPUDUE(PRCPSECO,ITEMDA),?40,"Unit per Recpt: ",UNITR,!?37,"Conversion Factor: ",CONV
. ;
. ; enter data
. I '$P(^PRCP(445.3,ORDERDA,1,ITEMDA,0),"^",3) S $P(^(0),"^",3)=UNITCOST
. S BEFORQTY=+$P(^PRCP(445.3,ORDERDA,1,ITEMDA,0),"^",2)
. D ITEMEDIT^PRCPOPUS(ORDERDA,ITEMDA,0)
. S AFTERQTY=+$P(^PRCP(445.3,ORDERDA,1,ITEMDA,0),"^",2)
. ;
. ; if status is released and beginning qty '= current qty
. ; update dueins and dueouts
. I $P(PRCPORD(0),"^",6)'="",BEFORQTY'=AFTERQTY D DUEOUTIN^PRCPOPU(PRCPPRIM,PRCPSECO,ITEMDA,$S(AFTERQTY<0:0,1:AFTERQTY)-BEFORQTY,1)
. ;
. I AFTERQTY=0 D DELITEM^PRCPOPD(ORDERDA,ITEMDA) W !!,"** ITEM HAS BEEN DELETED FROM THE ORDER **" Q
. I AFTERQTY>0,AFTERQTY<$P(PRIMITEM,"^",17) W !,"WARNING -- THE QUANTITY IS LESS THAN THE MINIMUM ISSUE QUANTITY"
. I $P(PRIMITEM,"^",25)>0 S %=AFTERQTY/$P(PRIMITEM,"^",25) I $P(%,".",2)>0 W !,"WARNING -- THE QUANTITY IS NOT A CORRECT REQUIRED ISSUE MULTIPLE"
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPRCPOPEE 2824 printed Oct 16, 2024@18:14:56 Page 2
PRCPOPEE ;WISC/RFJ-edit distribution order items ;27 Sep 93
+1 ;;5.1;IFCAP;;Oct 20, 2000
+2 ;Per VHA Directive 10-93-142, this routine should not be modified.
+3 QUIT
+4 ;
+5 ;
EDIT ; edit distribution order
+1 DO FULL^VALM1
+2 SET VALMBCK="R"
+3 DO ITEMS(ORDERDA)
+4 DO INIT^PRCPOPL
+5 QUIT
+6 ;
+7 ;
ITEMS(ORDERDA) ; edit items on distribution order orderda
+1 IF '$DATA(^PRCP(445.3,ORDERDA,0))
QUIT
+2 NEW AFTERQTY,BEFORQTY,CONV,ITEMDA,PRIMITEM,PRCPORD,SECOITEM,UNITCOST,UNITR,VDATA
+3 DO VARIABLE^PRCPOPU
+4 ;
+5 FOR
SET ITEMDA=+$$ITEMSEL^PRCPOPUS(ORDERDA,PRCPPRIM,1)
if 'ITEMDA
QUIT
Begin DoDot:1
+6 ;
+7 ; show inventory data
+8 SET PRIMITEM=^PRCP(445,PRCPPRIM,1,ITEMDA,0)
+9 SET UNITCOST=+$PIECE(PRIMITEM,"^",22)
IF $PIECE(PRIMITEM,"^",15)>UNITCOST
SET UNITCOST=+$PIECE(PRIMITEM,"^",15)
+10 ;
+11 WRITE !!,"Data for PRIMARY inventory point: ",$PIECE(PRCPORD(0),"^",2)
+12 WRITE !?5,"Quantity On-Hand: ",+$PIECE(PRIMITEM,"^",7),?40,"Unit per Issue: ",$$UNIT^PRCPUX1(PRCPPRIM,ITEMDA," per ")
+13 WRITE !?5,"Quantity Due-Out: ",$$GETOUT^PRCPUDUE(PRCPPRIM,ITEMDA),!?5,"Quantity Due-In : ",$$GETIN^PRCPUDUE(PRCPPRIM,ITEMDA),!?12,"Unit Cost: ",UNITCOST
+14 IF $PIECE(PRIMITEM,"^",25)
WRITE !?2,"Required Issue Mult: ",$PIECE(PRIMITEM,"^",25)
+15 IF $PIECE(PRIMITEM,"^",17)
WRITE !?4,"Minimum Issue Qty: ",$PIECE(PRIMITEM,"^",17)
+16 ;
+17 SET SECOITEM=$GET(^PRCP(445,PRCPSECO,1,ITEMDA,0))
+18 WRITE !!,"Data for SECONDARY inventory point: ",$PIECE(PRCPORD(0),"^",3)
+19 IF SECOITEM=""
SET CONV=1
WRITE !?5,"ITEM NOT STORED IN SECONDARY INVENTORY POINT",!
+20 ;
+21 IF SECOITEM'=""
Begin DoDot:2
+22 WRITE !?5,"Quantity On-Hand: ",+$PIECE(SECOITEM,"^",7),?40,"Unit per Issue: ",$$UNIT^PRCPUX1(PRCPSECO,ITEMDA," per ")
+23 SET VDATA=$$GETVEN^PRCPUVEN(PRCPSECO,ITEMDA,PRCPPRIM_";PRCP(445,",1)
SET UNITR=$$UNITVAL^PRCPUX1(+$PIECE(VDATA,"^",3),$PIECE(VDATA,"^",2)," per ")
SET CONV=$PIECE(VDATA,"^",4)
+24 WRITE !?5,"Quantity Due-In : ",$$GETIN^PRCPUDUE(PRCPSECO,ITEMDA),?40,"Unit per Recpt: ",UNITR,!?37,"Conversion Factor: ",CONV
End DoDot:2
+25 ;
+26 ; enter data
+27 IF '$PIECE(^PRCP(445.3,ORDERDA,1,ITEMDA,0),"^",3)
SET $PIECE(^(0),"^",3)=UNITCOST
+28 SET BEFORQTY=+$PIECE(^PRCP(445.3,ORDERDA,1,ITEMDA,0),"^",2)
+29 DO ITEMEDIT^PRCPOPUS(ORDERDA,ITEMDA,0)
+30 SET AFTERQTY=+$PIECE(^PRCP(445.3,ORDERDA,1,ITEMDA,0),"^",2)
+31 ;
+32 ; if status is released and beginning qty '= current qty
+33 ; update dueins and dueouts
+34 IF $PIECE(PRCPORD(0),"^",6)'=""
IF BEFORQTY'=AFTERQTY
DO DUEOUTIN^PRCPOPU(PRCPPRIM,PRCPSECO,ITEMDA,$SELECT(AFTERQTY<0:0,1:AFTERQTY)-BEFORQTY,1)
+35 ;
+36 IF AFTERQTY=0
DO DELITEM^PRCPOPD(ORDERDA,ITEMDA)
WRITE !!,"** ITEM HAS BEEN DELETED FROM THE ORDER **"
QUIT
+37 IF AFTERQTY>0
IF AFTERQTY<$PIECE(PRIMITEM,"^",17)
WRITE !,"WARNING -- THE QUANTITY IS LESS THAN THE MINIMUM ISSUE QUANTITY"
+38 IF $PIECE(PRIMITEM,"^",25)>0
SET %=AFTERQTY/$PIECE(PRIMITEM,"^",25)
IF $PIECE(%,".",2)>0
WRITE !,"WARNING -- THE QUANTITY IS NOT A CORRECT REQUIRED ISSUE MULTIPLE"
End DoDot:1
+39 QUIT