1 | GECSUFM1 ;WISC/RFJ/KLD-fms utilities: rebuild rejects ;13 Oct 98
|
---|
2 | ;;2.0;GCS;**4,8,10,19,27,30,31**;MAR 14, 1995
|
---|
3 | Q
|
---|
4 | ;
|
---|
5 | ;
|
---|
6 | REBUILD(STACKDA,SYSTEM,SECCODE,FCPFLAG,DESCRIPT) ; rebuild rejected document
|
---|
7 | ; stackda = ien of stack entry to rebuild
|
---|
8 | ; system = "A" for ar, "I" for ifcap, "E" for eng, "C" for create doc
|
---|
9 | ; seccode = security 1 code (usually '10 ')
|
---|
10 | ; fcpflag = Y if transaction has updated ifcap fcp balance
|
---|
11 | ; use only for tran-code RC, CR, IV, MO, SA, ST
|
---|
12 | ; descript = description of event (null entry will not change orig)
|
---|
13 | ; return gecsfms("ctl"), gecsfms("bat"), gecsfms("doc")
|
---|
14 | N %,%H,%I,BATNUMB,DATE,DOCUMENT,FY,SEGMENT,STACK,STATION,TRANCLAS,TRANCODE,X,Y
|
---|
15 | ;
|
---|
16 | K GECSFMS
|
---|
17 | S STACK=$P($G(^GECS(2100.1,+STACKDA,0)),"^") I STACK="" Q
|
---|
18 | ;
|
---|
19 | S SYSTEM=$S($E(SYSTEM)="A":"ARS",$E(SYSTEM)="I":"IFC",$E(SYSTEM)="E":"AMM",1:"CFD")
|
---|
20 | ; stack entry in the form IV-460I12345 -460123
|
---|
21 | ; TT-STA###### -STAbat
|
---|
22 | S TRANCODE=$P(STACK,"-")
|
---|
23 | S STATION=$E($P(STACK,"-",2),1,3)
|
---|
24 | S DOCUMENT=$E($P(STACK,"-",2)_" ",1,11)
|
---|
25 | S BATNUMB=$E($P(STACK,"-",3)_" ",1,6)
|
---|
26 | S SECCODE=$E(SECCODE_" ",1,4)
|
---|
27 | D NOW^%DTC S Y=%,DATE=X D DD^%DT
|
---|
28 | S FY=$S($E(DATE,4,5)<10:$E(DATE,2,3),1:$E(DATE,2,3)+1)
|
---|
29 | S TRANCLAS="DOC" I TRANCODE="VR" S TRANCLAS="VRQ",TRANCODE=" "
|
---|
30 | S GECSFMS("CTL")="CTL^"_SYSTEM_"^FMS^"_$E(STATION,1,3)_"^"_TRANCLAS_"^"_TRANCODE_"^"_SECCODE_"^"_$E(BATNUMB,1,6)_"^"_DOCUMENT_"^"_(17+$E(DATE))_$E(DATE,2,7)_"^"_$$FORMTIME($P(Y,"@",2))_"^001^001^001^"_$C(126)
|
---|
31 | ;
|
---|
32 | ; vendor request, re-add ctl to stack and quit
|
---|
33 | I TRANCLAS="VRQ" D UPDSTACK(STACKDA,GECSFMS("CTL"),"","",DESCRIPT) Q
|
---|
34 | ;
|
---|
35 | ; change segment for specific transaction codes
|
---|
36 | S SEGMENT=TRANCODE
|
---|
37 | I TRANCODE="CF"!(TRANCODE="WR")!(TRANCODE="TR") S SEGMENT="CR"
|
---|
38 | I TRANCODE="DV"!(TRANCODE="ET") S SEGMENT="DD"
|
---|
39 | I TRANCODE="AO"!(TRANCODE="CO")!(TRANCODE="SO")!(TRANCODE="TG")!(TRANCODE="WO") S SEGMENT="MO"
|
---|
40 | I TRANCODE="AV"!(TRANCODE="CT")!(TRANCODE="MV")!(TRANCODE="OP")!(TRANCODE="PS")!(TRANCODE="TD") S SEGMENT="PV"
|
---|
41 | I TRANCODE="AR"!(TRANCODE="RT") S SEGMENT="RC"
|
---|
42 | I TRANCODE="BV" S SEGMENT="SV"
|
---|
43 | I TRANCODE="RO"!(TRANCODE="TZ") S SEGMENT="TO"
|
---|
44 | I TRANCODE="RV"!(TRANCODE="TY") S SEGMENT="TV"
|
---|
45 | ; create bat segment
|
---|
46 | I BATNUMB'=" " S GECSFMS("BAT")="BAT^"_$C(126)_SEGMENT_"0^"_BATNUMB_"^"_$C(126)
|
---|
47 | ; create doc and <tc>1 segments
|
---|
48 | I "RC^CR^TR^IV^MO^SA^ST"[SEGMENT S FCPFLAG=$S(FCPFLAG="Y":"Y",1:"N")_"^"
|
---|
49 | ; security code is not on the sa1,st1 code sheets
|
---|
50 | S SECCODE=SECCODE_"^"
|
---|
51 | I "SA^ST"[SEGMENT S SECCODE=""
|
---|
52 | S GECSFMS("DOC")="DOC^"_$C(126)
|
---|
53 | ; do not create <tc>1 document for at transaction code or amm system
|
---|
54 | I SEGMENT'="AT",SYSTEM'="AMM" S GECSFMS("DOC")=GECSFMS("DOC")_SEGMENT_"1^"_TRANCODE_"^"_DOCUMENT_"^"_SECCODE_FCPFLAG_$C(126)
|
---|
55 | ;
|
---|
56 | ; re-add code sheet to stack file
|
---|
57 | D UPDSTACK(STACKDA,GECSFMS("CTL"),$G(GECSFMS("BAT")),GECSFMS("DOC"),DESCRIPT)
|
---|
58 | Q
|
---|
59 | ;
|
---|
60 | ;
|
---|
61 | UPDSTACK(STACKDA,CONTROL,BATCH,DOCUMENT,DESCRIPT) ; kill existing stack
|
---|
62 | ; entry code sheets and add new ones
|
---|
63 | ; stackda = ien of stack entry
|
---|
64 | ; control = control segment
|
---|
65 | ; batch = batch segment (optional, use "" if not defined)
|
---|
66 | ; document = doc and <tc>1 segments (optional, use "" if not defined)
|
---|
67 | ; descript = 79 character description of event
|
---|
68 | I '$D(^GECS(2100.1,STACKDA,0)) Q
|
---|
69 | N DATE,TIME,GDT
|
---|
70 | ;
|
---|
71 | L +^GECS(2100.1,STACKDA)
|
---|
72 | S DATE=$P(CONTROL,"^",10),DATE=($E(DATE,1,2)-17)_$E(DATE,3,8)
|
---|
73 | S TIME=$P(CONTROL,"^",11)
|
---|
74 | S GDT=DATE_"."_TIME
|
---|
75 | S DR="2///^S X=GDT",DIE=2100.1,DA=STACKDA D ^DIE
|
---|
76 | D SETSTAT^GECSSTAA(STACKDA,"")
|
---|
77 | I $L(DESCRIPT) S ^GECS(2100.1,STACKDA,1)=$E(DESCRIPT,1,79)
|
---|
78 | K ^GECS(2100.1,STACKDA,10)
|
---|
79 | ; reset code sheet size to 0, checksum and hold date to null
|
---|
80 | S $P(^GECS(2100.1,STACKDA,11),"^",1,3)="0^^"
|
---|
81 | D SETCS^GECSSTAA(STACKDA,CONTROL)
|
---|
82 | I $P(CONTROL,"^",8),BATCH'="" D SETCS^GECSSTAA(STACKDA,BATCH)
|
---|
83 | I DOCUMENT'="" D SETCS^GECSSTAA(STACKDA,DOCUMENT)
|
---|
84 | L -^GECS(2100.1,STACKDA)
|
---|
85 | Q
|
---|
86 | ;
|
---|
87 | ;
|
---|
88 | FORMTIME(TIME) ; return formatted time for control ctl segment
|
---|
89 | N H,M,S
|
---|
90 | S H=$P(TIME,":"),M=$P(TIME,":",2),S=$P(TIME,":",3),H=$E("00",$L(H)+1,2)_H,M=$E("00",$L(M)+1,2)_M,S=$E("00",$L(S)+1,2)_S
|
---|
91 | Q H_M_S
|
---|