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