| 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
 | 
|---|