ESPAJE ;ALB/ABR - ADD JOURNAL ENTRY ; 9/24/96
;;1.0;POLICE & SECURITY;**17,18,23,24,32,43**;Mar 31, 1994
;
; This will enable multiple journal entries to be added for the same
; time without overwriting one that is in use.
;
N DIC,DA,X,Y,FIRST,REC,TME
D DATE
S FIRST=1
I Y>0 F D ENTRY Q:$G(Y)<0!$D(DUOUT)!$D(DTOUT)
Q
DATE ; select date
S DIC="^ESP(916,",DIC(0)="AEQMZ"
D ^DIC
I Y S ESPDAT=+Y,DIC=DIC_ESPDAT_",4,",DIC("P")=$P(^DD(916,5,0),U,2)
Q
;
ENTRY ;add/edit entry in time multiple
S DA(1)=ESPDAT,DIC(0)="QAELMZ"
I FIRST D
.S DIC("B")=$$LAST(ESPDAT),FIRST=0
E K DIC("B")
D ^DIC Q:Y<1
S (REC,DA)=+Y
L +^ESP(916,ESPDAT,4,REC):2 I '$T D Q
. W !!,">>Entry for this time is in use.",!,"To create an additional entry for this time, enter time in quotes."
. W !," E.g. - ""1300"""
. W !,"Try later to edit same entry.",!
EDIT ; edit (add) info to new entry
S DIE=DIC,DA=+Y,DA(1)=ESPDAT,DR=".01;1;2;3" D ^DIE
L -^ESP(916,ESPDAT,4,REC)
Q
;
LAST(ESPDAT) ; get last time for journal entry
Q:'$G(ESPDAT) ""
N TIME1,TIME2,ESPT,ESPT1,FCX,FC
;
; Are start and end times for the journal defined? If so, use them.
;
S ESPT=$G(^ESP(916,ESPDAT,1)),ESPT1=$P($P(ESPT,"^"),"-",4)
I ESPT S ESPT=$P($P(^ESP(916,ESPDAT,1),"^",2),"-",4)
I ESPT,ESPT?4N,+ESPT>0&+ESPT<2401 D
.S ESPT=+$P($P(^ESP(916,ESPDAT,1),"^",2),"-",4)+1
.S TIME1="",TIME2=""
.F S TIME1=$O(^ESP(916,ESPDAT,4,"B",TIME1)) Q:TIME1="" D
..S X=$S(TIME1<ESPT1:DT+1,1:DT)_"."_TIME1
..S:X>TIME2 TIME2=X
.Q:$G(TIME2)=""
.S TIME2=$J($P(TIME2,".",2),4),TIME2=$TR(TIME2," ",0)
;
; If start/end times for journal not defined, assume 0001-2400
;
E D
.S TIME1=$O(^ESP(916,ESPDAT,4,"B",""),-1)
.S TIME2=$O(^ESP(916,ESPDAT,4,"B",9999),-1)
.I (+TIME1)>TIME2 S TIME2=TIME1
;
Q $G(TIME2)
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HESPAJE 1839 printed Nov 22, 2024@17:39:36 Page 2
ESPAJE ;ALB/ABR - ADD JOURNAL ENTRY ; 9/24/96
+1 ;;1.0;POLICE & SECURITY;**17,18,23,24,32,43**;Mar 31, 1994
+2 ;
+3 ; This will enable multiple journal entries to be added for the same
+4 ; time without overwriting one that is in use.
+5 ;
+6 NEW DIC,DA,X,Y,FIRST,REC,TME
+7 DO DATE
+8 SET FIRST=1
+9 IF Y>0
FOR
DO ENTRY
if $GET(Y)<0!$DATA(DUOUT)!$DATA(DTOUT)
QUIT
+10 QUIT
DATE ; select date
+1 SET DIC="^ESP(916,"
SET DIC(0)="AEQMZ"
+2 DO ^DIC
+3 IF Y
SET ESPDAT=+Y
SET DIC=DIC_ESPDAT_",4,"
SET DIC("P")=$PIECE(^DD(916,5,0),U,2)
+4 QUIT
+5 ;
ENTRY ;add/edit entry in time multiple
+1 SET DA(1)=ESPDAT
SET DIC(0)="QAELMZ"
+2 IF FIRST
Begin DoDot:1
+3 SET DIC("B")=$$LAST(ESPDAT)
SET FIRST=0
End DoDot:1
+4 IF '$TEST
KILL DIC("B")
+5 DO ^DIC
if Y<1
QUIT
+6 SET (REC,DA)=+Y
+7 LOCK +^ESP(916,ESPDAT,4,REC):2
IF '$TEST
Begin DoDot:1
+8 WRITE !!,">>Entry for this time is in use.",!,"To create an additional entry for this time, enter time in quotes."
+9 WRITE !," E.g. - ""1300"""
+10 WRITE !,"Try later to edit same entry.",!
End DoDot:1
QUIT
EDIT ; edit (add) info to new entry
+1 SET DIE=DIC
SET DA=+Y
SET DA(1)=ESPDAT
SET DR=".01;1;2;3"
DO ^DIE
+2 LOCK -^ESP(916,ESPDAT,4,REC)
+3 QUIT
+4 ;
LAST(ESPDAT) ; get last time for journal entry
+1 if '$GET(ESPDAT)
QUIT ""
+2 NEW TIME1,TIME2,ESPT,ESPT1,FCX,FC
+3 ;
+4 ; Are start and end times for the journal defined? If so, use them.
+5 ;
+6 SET ESPT=$GET(^ESP(916,ESPDAT,1))
SET ESPT1=$PIECE($PIECE(ESPT,"^"),"-",4)
+7 IF ESPT
SET ESPT=$PIECE($PIECE(^ESP(916,ESPDAT,1),"^",2),"-",4)
+8 IF ESPT
IF ESPT?4N
IF +ESPT>0&+ESPT<2401
Begin DoDot:1
+9 SET ESPT=+$PIECE($PIECE(^ESP(916,ESPDAT,1),"^",2),"-",4)+1
+10 SET TIME1=""
SET TIME2=""
+11 FOR
SET TIME1=$ORDER(^ESP(916,ESPDAT,4,"B",TIME1))
if TIME1=""
QUIT
Begin DoDot:2
+12 SET X=$SELECT(TIME1<ESPT1:DT+1,1:DT)_"."_TIME1
+13 if X>TIME2
SET TIME2=X
End DoDot:2
+14 if $GET(TIME2)=""
QUIT
+15 SET TIME2=$JUSTIFY($PIECE(TIME2,".",2),4)
SET TIME2=$TRANSLATE(TIME2," ",0)
End DoDot:1
+16 ;
+17 ; If start/end times for journal not defined, assume 0001-2400
+18 ;
+19 IF '$TEST
Begin DoDot:1
+20 SET TIME1=$ORDER(^ESP(916,ESPDAT,4,"B",""),-1)
+21 SET TIME2=$ORDER(^ESP(916,ESPDAT,4,"B",9999),-1)
+22 IF (+TIME1)>TIME2
SET TIME2=TIME1
End DoDot:1
+23 ;
+24 QUIT $GET(TIME2)