RMPFET9 ;DDC/KAW-DUPLICATE AN ORDER [ 06/16/95 3:06 PM ]
;;2.0;REMOTE ORDER/ENTRY SYSTEM;;JUN 16, 1995
;; input: RMPFX,RMPFHAT
;;output: RMPFY1
Q:'$D(^RMPF(791810,RMPFX,11)) S RMPFTF=$P(^(11),U,1) Q:RMPFTF'="B"
N RMPFY D ARRAY^RMPFDT2
S (X,CX)=0 F I=1:1 S X=$O(RMPFO(X)) Q:'X S CX=CX+1
G END:CX'=1 K RMPFY1
TWO W !!,"Will the second model be the same as the first? NO// "
D READ G END:$D(RMPFOUT)
TWO1 I $D(RMPFQUT) W !!,"Enter <Y> to order a second model that is the same as the first,",!,"<N> or <RETURN> to continue." G TWO
G END:Y="" S Y=$E(Y,1) I "YyNn"'[Y S RMPFQUT="" G TWO1
G END:"Nn"[Y S RMPFY=$O(RMPFO(0))
I '$D(^RMPF(791810,RMPFX,101,RMPFY,0)) W $C(7),!!,"*** BAD ORDER INFORMATION ***" G END
W !!,"Adding second model ..."
S S0=^RMPF(791810,RMPFX,101,RMPFY,0)
S RMPFIT=$P(S0,U,1),RMPFLR=$P(S0,U,4),RMPFCS=$P(S0,U,14)
S RMPFBAT=$P(S0,U,2),RMPFID=$P(S0,U,8)
I '$D(^RMPF(791810,RMPFX,101,0)) S ^RMPF(791810,RMPFX,101,0)="^791810.0101P"
S DIC="^RMPF(791810,RMPFX,101,",DA(1)=RMPFX,DIC(0)="L",DLAYGO=791810
S X="NOW",%DT="T" D ^%DT S TD=Y W "."
S X=RMPFIT,DIC("DR")=".04////"_$S(RMPFLR="L":"R",1:"L")_";.14////"_RMPFCS_";.15////O"
I RMPFHAT="S" S DIC("DR")=DIC("DR")_";.02////"_RMPFBAT_";.08////"_RMPFID_";.05;101"
K DD,DO D FILE^DICN I Y=-Y W $C(7),!!,"*** MODEL NOT ADDED ***" G END
S (DA,RMPFY1)=+Y,DIE=DIC,DR=".16////"_+Y_";.17////"_TD_";.18///INCOMPLETE;.19////O;.2////1" D ^DIE W "."
W !!,"*** MODEL ADDED ***"
D ARRAY2^RMPFDT2 S CM="",(X,CX)=0 F I=1:1 S X=$O(RMPFC(X)) Q:'X S CX=CX+1,C=$P(RMPFC(X),U,1) I C,$D(^RMPF(791811.2,C,0)) S CM=$S(I=1:$P(^(0),U,3),1:CM_","_$P(^(0),U,3))
G END:'CX
COM W !!,"The following components were ordered with the first model: ",CM
W !!,"Do you wish to order the same components with the second model? NO// "
D READ G END:$D(RMPFOUT)
COM1 I $D(RMPFQUT) W !!,"Enter <Y> to order the same components for the second model",!,"<N> or <RETURN> to continue." G COM
G COM3:Y="" S Y=$E(Y,1) I "YyNn"'[Y S RMPFQUT="" G COM1
G COM3:"Nn"[Y S (RMPFZ,CT)=0 W !!,"Adding component(s) ..."
COM2 S RMPFZ=$O(^RMPF(791810,RMPFX,101,RMPFY,102,RMPFZ)) G EXIT:'RMPFZ S S0=^(RMPFZ,0)
S RMPFCOM=$P(S0,U,1),RMPFCX=$P(S0,U,2)
I '$D(^RMPF(791810,RMPFX,101,RMPFY1,102,0)) S ^RMPF(791810,RMPFX,101,RMPFY1,102,0)="^791810.101102P"
S DIC="^RMPF(791810,"_RMPFX_",101,"_RMPFY1_",102," W "."
S DA(2)=RMPFX,DA(1)=RMPFY1,X=RMPFCOM,DIC(0)="L",DLAYGO=791810
S DIC("DR")=".03////O;.05////"_DUZ_";.06////"_TD W "."
K DO,DD D FILE^DICN I Y=-1 W $C(7),!!,"*** COMPONENT NOT ADDED ***" G END
S $P(^RMPF(791810,RMPFX,101,RMPFY1,102,+Y,0),U,4)=+Y W "." S CT=CT+1
G COM2
COM3 S RMPFY=RMPFY1 D COMPON^RMPFET7 G END
EXIT W !!,"*** COMPONENT" W:CT>1 "S" W " ADDED ***"
END K %,%DT,C,CM,CT,CX,D0,DA,DI,DIC,DIE,DR,I,S0,TD,X,Y,ZZ,DQ,DLAYGO,RMPFC
K RMPFCOM,RMPFCS,RMPFCX,RMPFIT,RMPFLR,RMPFO,RMPFTF,RMPFZ,RMPFID
K RMPFOUT,RMPFQUT,RMPFBAT,M,ZY,%Y,RMPFRE,I,RMPFO,RMPFTF,X
Q
READ K RMPFOUT,RMPFQUT
R Y:DTIME I '$T W $C(7) R Y:5 G READ:Y="." S:'$T Y=U
I Y?1"^".E S (RMPFOUT,Y)="" Q
S:Y?1"?".E (RMPFQUT,Y)=""
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRMPFET9 3102 printed Oct 16, 2024@18:37:14 Page 2
RMPFET9 ;DDC/KAW-DUPLICATE AN ORDER [ 06/16/95 3:06 PM ]
+1 ;;2.0;REMOTE ORDER/ENTRY SYSTEM;;JUN 16, 1995
+2 ;; input: RMPFX,RMPFHAT
+3 ;;output: RMPFY1
+4 if '$DATA(^RMPF(791810,RMPFX,11))
QUIT
SET RMPFTF=$PIECE(^(11),U,1)
if RMPFTF'="B"
QUIT
+5 NEW RMPFY
DO ARRAY^RMPFDT2
+6 SET (X,CX)=0
FOR I=1:1
SET X=$ORDER(RMPFO(X))
if 'X
QUIT
SET CX=CX+1
+7 if CX'=1
GOTO END
KILL RMPFY1
TWO WRITE !!,"Will the second model be the same as the first? NO// "
+1 DO READ
if $DATA(RMPFOUT)
GOTO END
TWO1 IF $DATA(RMPFQUT)
WRITE !!,"Enter <Y> to order a second model that is the same as the first,",!,"<N> or <RETURN> to continue."
GOTO TWO
+1 if Y=""
GOTO END
SET Y=$EXTRACT(Y,1)
IF "YyNn"'[Y
SET RMPFQUT=""
GOTO TWO1
+2 if "Nn"[Y
GOTO END
SET RMPFY=$ORDER(RMPFO(0))
+3 IF '$DATA(^RMPF(791810,RMPFX,101,RMPFY,0))
WRITE $CHAR(7),!!,"*** BAD ORDER INFORMATION ***"
GOTO END
+4 WRITE !!,"Adding second model ..."
+5 SET S0=^RMPF(791810,RMPFX,101,RMPFY,0)
+6 SET RMPFIT=$PIECE(S0,U,1)
SET RMPFLR=$PIECE(S0,U,4)
SET RMPFCS=$PIECE(S0,U,14)
+7 SET RMPFBAT=$PIECE(S0,U,2)
SET RMPFID=$PIECE(S0,U,8)
+8 IF '$DATA(^RMPF(791810,RMPFX,101,0))
SET ^RMPF(791810,RMPFX,101,0)="^791810.0101P"
+9 SET DIC="^RMPF(791810,RMPFX,101,"
SET DA(1)=RMPFX
SET DIC(0)="L"
SET DLAYGO=791810
+10 SET X="NOW"
SET %DT="T"
DO ^%DT
SET TD=Y
WRITE "."
+11 SET X=RMPFIT
SET DIC("DR")=".04////"_$SELECT(RMPFLR="L":"R",1:"L")_";.14////"_RMPFCS_";.15////O"
+12 IF RMPFHAT="S"
SET DIC("DR")=DIC("DR")_";.02////"_RMPFBAT_";.08////"_RMPFID_";.05;101"
+13 KILL DD,DO
DO FILE^DICN
IF Y=-Y
WRITE $CHAR(7),!!,"*** MODEL NOT ADDED ***"
GOTO END
+14 SET (DA,RMPFY1)=+Y
SET DIE=DIC
SET DR=".16////"_+Y_";.17////"_TD_";.18///INCOMPLETE;.19////O;.2////1"
DO ^DIE
WRITE "."
+15 WRITE !!,"*** MODEL ADDED ***"
+16 DO ARRAY2^RMPFDT2
SET CM=""
SET (X,CX)=0
FOR I=1:1
SET X=$ORDER(RMPFC(X))
if 'X
QUIT
SET CX=CX+1
SET C=$PIECE(RMPFC(X),U,1)
IF C
IF $DATA(^RMPF(791811.2,C,0))
SET CM=$SELECT(I=1:$PIECE(^(0),U,3),1:CM_","_$PIECE(^(0),U,3))
+17 if 'CX
GOTO END
COM WRITE !!,"The following components were ordered with the first model: ",CM
+1 WRITE !!,"Do you wish to order the same components with the second model? NO// "
+2 DO READ
if $DATA(RMPFOUT)
GOTO END
COM1 IF $DATA(RMPFQUT)
WRITE !!,"Enter <Y> to order the same components for the second model",!,"<N> or <RETURN> to continue."
GOTO COM
+1 if Y=""
GOTO COM3
SET Y=$EXTRACT(Y,1)
IF "YyNn"'[Y
SET RMPFQUT=""
GOTO COM1
+2 if "Nn"[Y
GOTO COM3
SET (RMPFZ,CT)=0
WRITE !!,"Adding component(s) ..."
COM2 SET RMPFZ=$ORDER(^RMPF(791810,RMPFX,101,RMPFY,102,RMPFZ))
if 'RMPFZ
GOTO EXIT
SET S0=^(RMPFZ,0)
+1 SET RMPFCOM=$PIECE(S0,U,1)
SET RMPFCX=$PIECE(S0,U,2)
+2 IF '$DATA(^RMPF(791810,RMPFX,101,RMPFY1,102,0))
SET ^RMPF(791810,RMPFX,101,RMPFY1,102,0)="^791810.101102P"
+3 SET DIC="^RMPF(791810,"_RMPFX_",101,"_RMPFY1_",102,"
WRITE "."
+4 SET DA(2)=RMPFX
SET DA(1)=RMPFY1
SET X=RMPFCOM
SET DIC(0)="L"
SET DLAYGO=791810
+5 SET DIC("DR")=".03////O;.05////"_DUZ_";.06////"_TD
WRITE "."
+6 KILL DO,DD
DO FILE^DICN
IF Y=-1
WRITE $CHAR(7),!!,"*** COMPONENT NOT ADDED ***"
GOTO END
+7 SET $PIECE(^RMPF(791810,RMPFX,101,RMPFY1,102,+Y,0),U,4)=+Y
WRITE "."
SET CT=CT+1
+8 GOTO COM2
COM3 SET RMPFY=RMPFY1
DO COMPON^RMPFET7
GOTO END
EXIT WRITE !!,"*** COMPONENT"
if CT>1
WRITE "S"
WRITE " ADDED ***"
END KILL %,%DT,C,CM,CT,CX,D0,DA,DI,DIC,DIE,DR,I,S0,TD,X,Y,ZZ,DQ,DLAYGO,RMPFC
+1 KILL RMPFCOM,RMPFCS,RMPFCX,RMPFIT,RMPFLR,RMPFO,RMPFTF,RMPFZ,RMPFID
+2 KILL RMPFOUT,RMPFQUT,RMPFBAT,M,ZY,%Y,RMPFRE,I,RMPFO,RMPFTF,X
+3 QUIT
READ KILL RMPFOUT,RMPFQUT
+1 READ Y:DTIME
IF '$TEST
WRITE $CHAR(7)
READ Y:5
if Y="."
GOTO READ
if '$TEST
SET Y=U
+2 IF Y?1"^".E
SET (RMPFOUT,Y)=""
QUIT
+3 if Y?1"?".E
SET (RMPFQUT,Y)=""
+4 QUIT