Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: RMPFET82

RMPFET82.m

Go to the documentation of this file.
  1. RMPFET82 ;DDC/KAW-CANCEL A LINE ITEM [ 06/16/95 3:06 PM ]
  1. ;;2.0;REMOTE ORDER/ENTRY SYSTEM;;JUN 16, 1995
  1. ;; input: RMPFX,RMPFHAT,RMPFTYP,RMPFST,RMPFTP,DFN
  1. ;;output: None
  1. Q:'$D(RMPFX) Q:'RMPFX K RMPFY
  1. START W @IOF,?35,"ACTIVE LINE ITEMS",! D ^RMPFDT2
  1. D ARRAY^RMPFDT2 S CL=0 K RMPFRE,RMPFCAN
  1. S X=0 F S X=$O(RMPFO(X)) Q:'X D
  1. .S Y=RMPFO(X) Q:Y="" S Y=$P($G(^RMPF(791810.2,Y,0)),U,2)
  1. .I RMPFHAT="C"!(RMPFHAT="I")!(RMPFHAT="X"),Y'="N" S CL=CL+1,RX=X
  1. .I "BQZWJD"[RMPFHAT,Y="B" S CL=CL+1,RX=X
  1. I '$D(RMPFO) W !!,"*** NO LINE ITEMS TO CANCEL ***" G EXIT
  1. I 'CL W !!,$S(RMPFHAT="C"!(RMPFHAT="I")!(RMPFHAT="X"):"*** ALL LINE ITEMS HAVE ALREADY BEEN CANCELED ***",1:"*** NO ITEMS HAVE BEEN BACKORDERED ***") G EXIT
  1. I CL=1 S RMPFY=RX D SET G EXECUTE
  1. D ASK1 G END:$D(RMPFOUT),EXECUTE:$D(RMPFCAN)
  1. D ASK2 G END:$D(RMPFOUT),END:'$D(RMPFCAN)
  1. EXECUTE D APPROV G END:$D(RMPFOUT),END:'$D(RMPFCAN)
  1. I "CI"[RMPFHAT D ^RMPFET83 G END
  1. D CANCEL1 G END
  1. EXIT F I=1:1 Q:$Y>21 W !
  1. W !,"Type <RETURN> to continue." D READ
  1. END K RMPFY,RMPFRE,RMPFCAN,SL,RMPFO,RMPFMD,CL,CX,C Q
  1. ASK1 ;;Ask to cancel multiple items
  1. ;; input: CL,RMPFO,RMPFX,RMPFY
  1. ;;output: RMPFCAN
  1. W !!,"Do you wish to cancel the orders for ",CL," line items? NO// " D READ G END:$D(RMPFOUT)
  1. ASK11 I $D(RMPFQUT) W !!,"Enter a <Y> to cancel all line items",!?5,"an <N> or <RETURN> to select line items to cancel." G ASK1
  1. S:Y="" Y="N" I "NnYy"'[Y S RMPFQUT="" G ASK11
  1. G ASK1E:"Yy"'[Y S RMPFY=0
  1. F S RMPFY=$O(RMPFO(RMPFY)) Q:'RMPFY S X=RMPFO(RMPFY) I X,$D(^RMPF(791810.2,X,0)),$P(^(0),U,2)'="N" D SET
  1. K RMPFO
  1. ASK1E K Y Q
  1. ASK2 ;;Select items to cancel
  1. ;; input: RMPFMD,RMPFX,RMPFY,RMPFO
  1. ;;output: RMPFCAN
  1. W !!,"Select the Number of the item you wish to cancel: "
  1. D READ G END:$D(RMPFOUT)
  1. ASK21 I $D(RMPFQUT) W !!,"Enter the number to the left of the item you wish to cancel." G ASK2
  1. G ASK2E:Y="" I '$D(RMPFMD(Y)) S RMPFQUT="" G ASK21
  1. S RMPFY=RMPFMD(Y) I $D(RMPFCAN(RMPFY)) W !!,"*** ITEM ALREADY SELECTED ***" G ASK2
  1. S X=RMPFO(RMPFY) I X,$D(^RMPF(791810.2,X,0)),$P(^(0),U,2)="N" K RMPFY W !!,"*** ITEM ALREADY CANCELED ***" G ASK2
  1. D SET
  1. ASK22 W !!,"Select another? NO// " D READ Q:$D(RMPFOUT)
  1. ASK221 I $D(RMPFQUT) W !!,"Enter a <Y> to select another item to cancel",!?5,"an <N> or <RETURN> to continue" G ASK22
  1. S:Y="" Y="N" S Y=$E(Y,1) I "YyNn"'[Y S RMPFQUT="" G ASK221
  1. G ASK2:"Yy"[Y
  1. ASK2E K Y Q
  1. APPROV ;;Display and ask if selection correct
  1. ;; input: RMPFCAN
  1. ;;output: None
  1. S (CN,RMPFY)=0 F S RMPFY=$O(RMPFCAN(RMPFY)) Q:'RMPFY D
  1. .S RMPFIT=$P(RMPFCAN(RMPFY),U,1),RMPFQTY=$P(RMPFCAN(RMPFY),U,2)
  1. .W:CN=0 !!,"Item(s) to be canceled: " W:CN ! W ?25,RMPFIT," (",RMPFQTY,")" S CN=CN+1
  1. APP1 W !!,"Are you sure you wish to cancel ",$S(CN>1:"these",1:"this")," item",$S(CN>1:"s",1:""),"? NO// "
  1. D READ G APPROVE:$D(RMPFOUT)
  1. APP11 I $D(RMPFQUT) W !!,"Enter a <Y> to cancel ",$S(CN>1:"these",1:"this")," item(s)",$S(CN>1:"s",1:""),"",!?5,"an <N> or <RETURN> to leave the item",$S(CN>1:"s",1:"")," active in the order." G APP1
  1. S:Y="" Y="N" S Y=$E(Y,1) I "Yy"'[Y K RMPFCAN
  1. APPROVE K RMPFIT,RMPFQTY,S0,CN,Y Q
  1. CANCEL1 ;;Cancel a line item
  1. ;; input: RMPFCAN
  1. ;;output: None
  1. S (C,DA)=0 F S DA=$O(RMPFCAN(DA)) G CANCEL1E:'DA D
  1. .S C=C+1,%DT="T",X="NOW" D ^%DT S TD=Y
  1. .S RMPFIT=$P(RMPFCAN(DA),U,1),RMPFQTY=$P(RMPFCAN(DA),U,2)
  1. .W !!,"Item # ",C,": ",RMPFIT,?$X+5,"Quantity: ",RMPFQTY,!
  1. .S DIE="^RMPF(791810,"_RMPFX_",101,",DA(1)=RMPFX
  1. .S DR=".15////C;.17////"_TD_";.18///CANCELED;.19////C;.2////1;90.13////"_DUZ_";90.05"
  1. .D ^DIE
  1. CANCEL1E W !!,"Item",$S(C=1:"",1:"(s)")," CANCELED",!!
  1. D APPROV1^RMPFEA2
  1. K C,DA,C,%DT,TD,X,Y,DIE,RMPFIT,RMPFQTY,DR,%X,%Y Q
  1. SET ;;Set up array of items to cancel
  1. ;; input: RMPFX,RMPFY
  1. ;;output: RMPFCAN
  1. S X=$G(^RMPF(791810,RMPFX,101,RMPFY,0))
  1. S RMPFIT=$P(X,U,1),RMPFQTY=$P(X,U,6) S:'RMPFQTY RMPFQTY=1
  1. I RMPFIT,$D(^RMPF(791811,RMPFIT,0)) S RMPFIT=$P(^(0),U,1)
  1. S RMPFCAN(RMPFY)=RMPFIT_U_RMPFQTY
  1. K X,RMPFIT,RMPFQTY Q
  1. READ K RMPFOUT,RMPFQUT
  1. R Y:DTIME I '$T W $C(7) R Y:5 G READ:Y="." S:'$T Y=U
  1. I Y?1"^".E S (RMPFOUT,Y)="" Q
  1. S:Y?1"?".E (RMPFQUT,Y)=""
  1. Q