32 lines
1022 B
Mathematica
32 lines
1022 B
Mathematica
FSCUC ;SLC/STAFF-NOIS Utilities Count ;1/17/98 14:29
|
|
;;1.1;NOIS;;Sep 06, 1998
|
|
;
|
|
CALLNUM(SITE0,DATE,CALLREF,OK) ; from FSCELID, FSCRPCNC
|
|
; constructs call number from (site,date)
|
|
N COUNT S OK=0
|
|
S CALLREF=""
|
|
I '$L(SITE0) Q
|
|
I 'DATE Q
|
|
D COUNT(DATE,.COUNT,.OK)
|
|
I 'OK Q
|
|
S CALLREF=$S($L($P(SITE0,U,3)):$P(SITE0,U,3),1:"ZZZ")_"-"_$E(DATE,4,5)_$E(DATE,2,3)_"-"_$S($P(SITE0,U,11):$P(SITE0,U,11),1:"N")_COUNT
|
|
Q
|
|
;
|
|
COUNT(DATE,COUNT,OK) ;returns the next available counting number for
|
|
N DA,DIK,NUM S OK=1
|
|
S DATE=$E(DATE,1,5),NUM=+$O(^FSCD("COUNT","B",DATE,0))
|
|
D
|
|
.I 'NUM D Q
|
|
..L +^FSCD("COUNT"):30 I '$T S OK=0 Q
|
|
..S COUNT=1,NUM=1+$P(^FSCD("COUNT",0),U,3)
|
|
..F Q:'$D(^FSCD("COUNT",NUM)) S NUM=NUM+1
|
|
..S $P(^FSCD("COUNT",0),U,3)=NUM,$P(^(0),U,4)=$P(^(0),U,4)+1,^(NUM,0)=DATE_U_1
|
|
..S DA=NUM,DIK="^FSCD(""COUNT""," D IX1^DIK
|
|
..L -^FSCD("COUNT")
|
|
.L +^FSCD("COUNT",NUM):30 I '$T S OK=0 Q
|
|
.S COUNT=$P(^FSCD("COUNT",NUM,0),U,2)+1,$P(^(0),U,2)=COUNT
|
|
.L -^FSCD("COUNT",NUM)
|
|
I 'OK Q
|
|
S COUNT=$TR($J(COUNT,4)," ",0)
|
|
Q
|