| [613] | 1 | PRCESOE ;WISC/CLH/CTB/SJG-1358 OBLIGATION ; 08/22/94  5:11 PM
 | 
|---|
 | 2 | V ;;5.1;IFCAP;;Oct 20, 2000
 | 
|---|
 | 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
 | 4 |  K PRC,PRCF,Y
 | 
|---|
 | 5 |  D OUT
 | 
|---|
 | 6 |  S PRCF("X")="AB"
 | 
|---|
 | 7 |  D ^PRCFSITE Q:'%
 | 
|---|
 | 8 |  D LOOKUP G:Y<0 OUT
 | 
|---|
 | 9 |  D K1A^PRCFFUZ
 | 
|---|
 | 10 |  S (OB,DA)=+Y ; ien for file 410
 | 
|---|
 | 11 |  S PRCFA("RETRAN")=0
 | 
|---|
 | 12 | SC ; Entry point for rebuild/retransmit
 | 
|---|
 | 13 |  D NODE^PRCS58OB(DA,.TRNODE) ; set file 410 values into TRNODE array
 | 
|---|
 | 14 |  S PRCFA("TRDA")=OB
 | 
|---|
 | 15 |  D SCREEN^PRCEOB1 W !
 | 
|---|
 | 16 |  D VENCONO^PRCFFU15(OB) ; display vendor & contract info, if exists
 | 
|---|
 | 17 |  S FLDCHK=0
 | 
|---|
 | 18 |  D EN^PRCFFU14(OB) ; edit auto accrual info
 | 
|---|
 | 19 |  I ACCEDIT=1 G SC
 | 
|---|
 | 20 |  I FLDCHK=1 D OUT G V
 | 
|---|
 | 21 | OKAY S PRCFA("IDES")="1358 Obligation"
 | 
|---|
 | 22 |  D OKAY^PRCFFU ; ask 'Is info correct?'
 | 
|---|
 | 23 |  I $D(DIRUT) D MSG H 3 G OUT
 | 
|---|
 | 24 |  S ESIGCHK=1
 | 
|---|
 | 25 |  S FISCEDIT=0
 | 
|---|
 | 26 |  I 'Y D 1358^PRCFFU13 ; edit cost center or boc?
 | 
|---|
 | 27 |  I 'ESIGCHK D MSG H 3 G OUT
 | 
|---|
 | 28 |  I FISCEDIT G SC
 | 
|---|
 | 29 |  S PRC("RBDT")=$P(TRNODE(0),U,11)
 | 
|---|
 | 30 |  S PCP=$P(TRNODE(0),"-",4)
 | 
|---|
 | 31 |  S PQT=$P(TRNODE(0),"-",3)
 | 
|---|
 | 32 |  D CPBAL^PRCFFMO1 ; display control point balance
 | 
|---|
 | 33 |  K PQT,PRCF("NOBAL")
 | 
|---|
 | 34 |  K PRCTMP
 | 
|---|
 | 35 |  I '$P(TRNODE(0),U,11) D
 | 
|---|
 | 36 |  . D ERS410^PRC0G(DA)
 | 
|---|
 | 37 |  . S TRNODE(0)=^PRCS(410,DA,0)
 | 
|---|
 | 38 |  S PRC("FY")=$P(TRNODE(0),"-",2)
 | 
|---|
 | 39 |  S PRC("QTR")=$P(TRNODE(0),"-",3)
 | 
|---|
 | 40 |  S PRC("CP")=$P(TRNODE(0),"-",4)
 | 
|---|
 | 41 |  I $G(PRCRGS)<1 D OVCOM1^PRCFFU10 I PRCFA("OVCOM")=1!(PRCFA("OVCOM")=2) D REQFAIL^PRCFFU10,MSG H 3 G OUT
 | 
|---|
 | 42 |  W ! D OKAY2^PRCFFU ; ask 'OK to continue?'
 | 
|---|
 | 43 |  I 'Y!($D(DTOUT)) D MSG H 3 G OUT
 | 
|---|
 | 44 |  I $D(PRCFA("RETRAN")),PRCFA("RETRAN")=0 D  G:'$D(DA) OUT
 | 
|---|
 | 45 |  . K DA,X
 | 
|---|
 | 46 |  . S PRCHP("T")=21
 | 
|---|
 | 47 |  . S PRCHP("S")=4
 | 
|---|
 | 48 |  . S PRCHP("A")="1358 Obligation Number"
 | 
|---|
 | 49 |  . S PRCFA(1358)=""
 | 
|---|
 | 50 |  . D EN^PRCHPAT ; ask for obligation #, set up 442 record
 | 
|---|
 | 51 |  . K PRCFA(1358),PRCHP
 | 
|---|
 | 52 |  . I '$D(DA) D MSG3
 | 
|---|
 | 53 |  . Q
 | 
|---|
 | 54 | VAR I $D(PRCFA("RETRAN")),PRCFA("RETRAN") S DA=POIEN ; 442 ien
 | 
|---|
 | 55 |  D PAT^PRCH58OB(DA,.PODA,.PO,.PATNUM) ; set up parameterized variables
 | 
|---|
 | 56 |  N PRCFDEL,AMT,CS,DA,DIK,TIME,MOD
 | 
|---|
 | 57 |  S PRCFA("BBFY")=$TR($P(TRNODE(3),"^",11)," ")
 | 
|---|
 | 58 |  S PRCFA("MOD")="E^0^Original Entry"
 | 
|---|
 | 59 |  S PRCFA("MP")=$P(PO(0),U,2)
 | 
|---|
 | 60 |  S PRCFA("PATNUM")=$P($P(PO(0),"^"),"-",2)
 | 
|---|
 | 61 |  S PRCFA("PODA")=PODA
 | 
|---|
 | 62 |  S PRCFA("REF")=$P(PO(0),U)
 | 
|---|
 | 63 |  ; S PRCFA("SFC")=$P(PO(0),U,19)
 | 
|---|
 | 64 |  S PRCFA("SYS")="FMS"
 | 
|---|
 | 65 |  S PRCFA("TT")="SO"
 | 
|---|
 | 66 | VAR11 I $D(PRCFA("RETRAN")),PRCFA("RETRAN")=1 D  G VAR2
 | 
|---|
 | 67 |  . D RETRANO^PRCESOE2 ; put date in FMS transaction into PRCFA("OBLDATE")
 | 
|---|
 | 68 |  . S X=PRCFA("OBLDATE")
 | 
|---|
 | 69 |  S X=PRC("RBDT")
 | 
|---|
 | 70 |  I X<DT!'X D NOW^%DTC
 | 
|---|
 | 71 | VAR2 S Y=X D D^PRCFQ ; convert date to external format
 | 
|---|
 | 72 |  S %DT="AEX"
 | 
|---|
 | 73 |  S %DT("B")=Y
 | 
|---|
 | 74 |  S %DT("A")="Select Obligation Processing Date: "
 | 
|---|
 | 75 |  W ! D ^%DT K %DT
 | 
|---|
 | 76 |  I Y<0 D EXIT G OUT
 | 
|---|
 | 77 |  S PRCFA("OBLDATE")=Y
 | 
|---|
 | 78 |  S EXIT=0
 | 
|---|
 | 79 |  D ENO^PRCESOE2 ; processes PRCFA("OBLDATE"), gets accounting period
 | 
|---|
 | 80 |  I EXIT=1 D EXIT,KILL^PRCESOE2 G OUT
 | 
|---|
 | 81 |  I PRC("RBDT")'<$P(^PRC(420,PRC("SITE"),0),"^",9),$P($$DATE^PRC0C(PRCFA("OBLDATE"),"I"),U,1,2)'=$P($$DATE^PRC0C(PRC("RBDT"),"I"),U,1,2) D MSG1^PRCFFUD S X=PRC("RBDT") G VAR11
 | 
|---|
 | 82 |  ;
 | 
|---|
 | 83 | GO ; Prompt user for final go-ahead for the document creation
 | 
|---|
 | 84 |  D GO^PRCFFU ; ask 'Transmit?'
 | 
|---|
 | 85 |  I 'Y!($D(DIRUT)) G EXIT
 | 
|---|
 | 86 |  ;
 | 
|---|
 | 87 | ESIG ; Enter the Electronic Signature and away it goes!
 | 
|---|
 | 88 |  W !,"The Electronic Signature must now be entered to generate the "_PRCFA("TYPE")_" Document.",!
 | 
|---|
 | 89 |  D SIG^PRCFFU4
 | 
|---|
 | 90 |  I $D(PRCFA("SIGFAIL")) D  G EXIT
 | 
|---|
 | 91 |  . K PRCFA("SIGFAIL")
 | 
|---|
 | 92 |  . D MSG2(ESIGMSG)
 | 
|---|
 | 93 |  . Q
 | 
|---|
 | 94 |  ;
 | 
|---|
 | 95 |  D OB1^PRCS58OB(PRCFA("TRDA"),PODA) ; save 442 ien in file 410
 | 
|---|
 | 96 |  D COB^PRCH58OB(PODA,.TRNODE,.PO,PRCFA("TRDA"),X) ; stuff some values into 442
 | 
|---|
 | 97 |  D PODT^PRCS58OB(PRCFA("PODA"),PRCFA("OBLDATE")) ; save PRCFA("OBLDATE")  in file 442 as PO DATE
 | 
|---|
 | 98 |  S PRCFA("BBFY")=$$BBFY^PRCFFU5(PRCFA("PODA"))
 | 
|---|
 | 99 |  D GENDIQ^PRCFFU7(442,PRCFA("PODA"),".1;.07;.03;17","IEN","")
 | 
|---|
 | 100 |  D EDIT410^PRCFFUD(PRCFA("TRDA"),"O") ; updates running balance quarter & status in 410
 | 
|---|
 | 101 |  S PRC("CP")=+$P(PO(0),"^",3)
 | 
|---|
 | 102 |  ;
 | 
|---|
 | 103 | EDIT ; Check fund/year dictionary for required FMS fields
 | 
|---|
 | 104 |  D EDIT^PRCFFU ; sets up PRCFMO array to use in building LIN segment
 | 
|---|
 | 105 |  ;
 | 
|---|
 | 106 |  S IDFLAG="I" ; flag to FMS indicating a dollar increase
 | 
|---|
 | 107 |  I $D(PRCFA("RETRAN")),PRCFA("RETRAN")=1 D SET1358^PRCFFERT ; do rebuild
 | 
|---|
 | 108 |  ;
 | 
|---|
 | 109 | STACK ; Create entry in GECS Stack File
 | 
|---|
 | 110 |  D STACK^PRCFFU(0) ; set up CTL,DOC segs of code sheet, (0) means no batch#
 | 
|---|
 | 111 |  ;
 | 
|---|
 | 112 | SEGS ; Create entry in TMP($J, for remaining segments
 | 
|---|
 | 113 |  K ^TMP($J,"PRCMO")
 | 
|---|
 | 114 |  N FMSINT S FMSINT=+PO
 | 
|---|
 | 115 |  S FMSMOD=$P(PRCFA("MOD"),U,1)
 | 
|---|
 | 116 |  D NEW^PRCFFU1(FMSINT,PRCFA("TT"),FMSMOD) ; builds remaining segs
 | 
|---|
 | 117 |  ;
 | 
|---|
 | 118 |  ; Transfers remaining segs from TMP($J, into GECS Stack File
 | 
|---|
 | 119 |  N LOOP S LOOP=0
 | 
|---|
 | 120 |  F  S LOOP=$O(^TMP($J,"PRCMO",GECSFMS("DA"),LOOP)) Q:'LOOP  D SETCS^GECSSTAA(GECSFMS("DA"),^(LOOP))
 | 
|---|
 | 121 |  K ^TMP($J,"PRCMO")
 | 
|---|
 | 122 |  ;
 | 
|---|
 | 123 | TRANS ; Mark the FMS transaction document as queued for transmission
 | 
|---|
 | 124 |  D SETSTAT^GECSSTAA(GECSFMS("DA"),"Q")
 | 
|---|
 | 125 |  N P2 S P2=+PO
 | 
|---|
 | 126 |  S $P(P2,"/",3)=+OB
 | 
|---|
 | 127 |  S $P(P2,"/",5)=$P(PRCFA("ACCPD"),U)
 | 
|---|
 | 128 |  S $P(P2,"/",6)=PRCFA("OBLDATE")
 | 
|---|
 | 129 |  D SETPARAM^GECSSDCT(GECSFMS("DA"),P2)
 | 
|---|
 | 130 |  ;
 | 
|---|
 | 131 | POBAL ; Enter Obligation Data into Purchase Order Record
 | 
|---|
 | 132 |  ;
 | 
|---|
 | 133 |  ; add FMS document info to node 10 of file 442
 | 
|---|
 | 134 |  D EN7^PRCFFU41(PRCFA("TT"),FMSMOD,PRCFA("OBLDATE"),PRCFA("PATNUM"))
 | 
|---|
 | 135 |  ;
 | 
|---|
 | 136 |  ; create daily record in file 424
 | 
|---|
 | 137 |  D POST G OUT:'%
 | 
|---|
 | 138 |  ;
 | 
|---|
 | 139 |  ; continue processing if this is not a rebuild
 | 
|---|
 | 140 |  I $D(PRCFA("RETRAN")),PRCFA("RETRAN") D OUT Q
 | 
|---|
 | 141 |  S X=100
 | 
|---|
 | 142 |  S DA=PRCFA("PODA")
 | 
|---|
 | 143 |  D ENF^PRCHSTAT
 | 
|---|
 | 144 |  S AMT=$P(PO(0),U,7)+$S(+$P(PO(0),U,9)'=0:$P(PO(0),U,9),1:"")
 | 
|---|
 | 145 |  D NOW^PRCFQ
 | 
|---|
 | 146 |  S TIME=X
 | 
|---|
 | 147 |  S X=$P(TRNODE(4),"^",8) ; file 410 transaction amount
 | 
|---|
 | 148 |  S DA=PRCFA("TRDA") ; file 410 ien
 | 
|---|
 | 149 |  D TRANK^PRCSES
 | 
|---|
 | 150 |  S DEL=$S('$D(DEL):"",1:DEL)
 | 
|---|
 | 151 |  D CS^PRCS58OB(OB,AMT,TIME,PATNUM,PODA,DEL,X,.PRC)
 | 
|---|
 | 152 |  W !!,"...updating 1358 Obligation balances...",!
 | 
|---|
 | 153 |  S ^PRC(442,PODA,8)=AMT_"^0^0"
 | 
|---|
 | 154 |  S X=AMT D TRANS1^PRCSES
 | 
|---|
 | 155 |  S X=AMT D  W !! G V
 | 
|---|
 | 156 |  . D TRANS^PRCSES
 | 
|---|
 | 157 |  . D BULLET^PRCEFIS1
 | 
|---|
 | 158 |  . D OUT
 | 
|---|
 | 159 |  ;
 | 
|---|
 | 160 | OUT D K1B^PRCFFUZ
 | 
|---|
 | 161 |  D K1C^PRCFFUZ
 | 
|---|
 | 162 |  Q
 | 
|---|
 | 163 |  ;
 | 
|---|
 | 164 | EXIT I $D(PRCFA("RETRAN")),PRCFA("RETRAN")=0 D MSG1,KILL^PRCH58OB(PODA)
 | 
|---|
 | 165 |  E  D MSG
 | 
|---|
 | 166 |  Q
 | 
|---|
 | 167 |  ;
 | 
|---|
 | 168 | KILL D KILL^PRCH58OB(PODA) G OUT
 | 
|---|
 | 169 |  ;
 | 
|---|
 | 170 | LOOKUP ; Lookup 1358 transaction which is pending fiscal action.
 | 
|---|
 | 171 |  D LOOKUP^PRCESOE1
 | 
|---|
 | 172 |  Q
 | 
|---|
 | 173 |  ;
 | 
|---|
 | 174 | POST ; Post data in file 424
 | 
|---|
 | 175 |  I $D(PRCFA("RETRAN")),'PRCFA("RETRAN") D POST^PRCESOE1
 | 
|---|
 | 176 |  Q
 | 
|---|
 | 177 |  ;
 | 
|---|
 | 178 |  ; Message processing
 | 
|---|
 | 179 | MSG D MSG^PRCESOE1 Q
 | 
|---|
 | 180 | MSG1 D MSG1^PRCESOE1 Q
 | 
|---|
 | 181 | MSG2(MSG) D MSG2^PRCESOE1(MSG) Q
 | 
|---|
 | 182 | MSG3 D MSG3^PRCESOE1 Q
 | 
|---|