| 1 | PRCFFMO ;WISC/SJG-ROUTINE TO PROCESS OBLIGATIONS ;4/27/94  11:30 | 
|---|
| 2 | V ;;5.1;IFCAP;;Oct 20, 2000 | 
|---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | S PRCF("X")="AS" D ^PRCFSITE ; ask station | 
|---|
| 5 | G:'% EXIT D EXIT | 
|---|
| 6 | K DIC("A") S D="C" | 
|---|
| 7 | S DIC("A")="Select Purchase Order Number: " | 
|---|
| 8 | S DIC("S")="I $D(^(7)),+^(0)=PRC(""SITE""),$D(^PRCD(442.3,+^(7),0)) S FSO=$P(^(0),U,3) I FSO>9,FSO<21" | 
|---|
| 9 | S DIC=442,DIC(0)="AEQZ" | 
|---|
| 10 | D IX^DIC K DIC("S"),DIC("A"),FSO | 
|---|
| 11 | G:+Y<0 EXIT | 
|---|
| 12 | S PO=Y,PO(0)=Y(0) | 
|---|
| 13 | S PRCFA("PODA")=+Y | 
|---|
| 14 | S PCP=+$P(PO(0),"^",3) | 
|---|
| 15 | S $P(PCP,"^",2)=$S($D(^PRC(420,PRC("SITE"),1,+PCP,0)):$P(^(0),"^",12),1:"") | 
|---|
| 16 | S PRCFA("RETRAN")=0 | 
|---|
| 17 | ; | 
|---|
| 18 | RETRAN ; Entry point for rebuild/retransmit | 
|---|
| 19 | S PRCFA("MOD")="E^0^Original Entry" | 
|---|
| 20 | L +^PRC(442,PRCFA("PODA")):1 | 
|---|
| 21 | I $T=0 D  G EXIT | 
|---|
| 22 | . W $C(7),! | 
|---|
| 23 | . D EN^DDIOL("This Purchase Order/Requisition is being obligated by another user!") | 
|---|
| 24 | ; | 
|---|
| 25 | ; NOTE: a document cannot be returned to supply once it is obligated. | 
|---|
| 26 | ; Therefore the messages below pertain to documents not being rebuilt. | 
|---|
| 27 | ; Rebuilt documents will hit the message if someone modified a file | 
|---|
| 28 | ; through FileMan.  If the checks are here to catch errors in both | 
|---|
| 29 | ; cases, the message should be changed, otherwise the checks should | 
|---|
| 30 | ; be placed before the RETRAN tag. | 
|---|
| 31 | ; | 
|---|
| 32 | I +$P(PO(0),U,3)=0!('$D(^PRC(420,PRC("SITE"),1,+PCP,0))) D  G EXIT | 
|---|
| 33 | . W $C(7) | 
|---|
| 34 | . W "PURCHASE ORDER DOES NOT CONTAIN A CONTROL POINT.",! | 
|---|
| 35 | . W "UNABLE TO PROCESS - PLEASE RETURN TO SUPPLY FOR CORRECTION!" | 
|---|
| 36 | ; | 
|---|
| 37 | I $P(PO(0),U,5)="",$P(PCP,"^",2)<2 D  G EXIT | 
|---|
| 38 | . W $C(7),! | 
|---|
| 39 | . W "Purchase Order does not contain a Cost Center" | 
|---|
| 40 | . W !,"Unable to process - please return to supply for correction!" | 
|---|
| 41 | ; | 
|---|
| 42 | D DT442^PRCFFUD1(PRCFA("PODA"),PO(0)) | 
|---|
| 43 | ; | 
|---|
| 44 | I +$P(PO(0),"^",16)=0 D  G V | 
|---|
| 45 | . ; S PRCFA("N/C")=1 | 
|---|
| 46 | . W ! | 
|---|
| 47 | . D NC | 
|---|
| 48 | . I 'Y!($D(DIRUT)) D MSG QUIT | 
|---|
| 49 | . I Y D NC2 | 
|---|
| 50 | . D EXIT | 
|---|
| 51 | . Q | 
|---|
| 52 | ; | 
|---|
| 53 | I '$D(^PRC(442,PRCFA("PODA"),22)),$P(PCP,"^",2)="" D  G EXIT | 
|---|
| 54 | . W $C(7) | 
|---|
| 55 | . W !!,"Purchase Order does not contain any BOC data.",! | 
|---|
| 56 | . W "Unable to process - please return to supply for correction!" | 
|---|
| 57 | ; | 
|---|
| 58 | SC ; Display Obligation Data | 
|---|
| 59 | I '$D(IOF)!('$D(IOM)) S IOP="HOME" D ^%ZIS K POP | 
|---|
| 60 | D SC^PRCFFUA1 | 
|---|
| 61 | I $D(^PRC(442,PRCFA("PODA"),13)) W !! D ^PRCFAC0J | 
|---|
| 62 | W ! D OKAY^PRCFFU | 
|---|
| 63 | I $D(DIRUT) D MSG G EXIT | 
|---|
| 64 | I 'Y S FISCEDIT=0 D PO^PRCFFU12 I FISCEDIT G SC | 
|---|
| 65 | S Z=PRC("SITE")_"-"_PRC("FY")_"-"_PRC("QTR")_"-"_$P($P(PO(0),"^",3)," "),C1=1 | 
|---|
| 66 | D ^PRCFFMO1 | 
|---|
| 67 | L -^PRC(442,PRCFA("PODA")) | 
|---|
| 68 | I $D(PRCFA("RETRAN")),PRCFA("RETRAN")=0 D EXIT G V | 
|---|
| 69 | D EXIT | 
|---|
| 70 | QUIT | 
|---|
| 71 | EXIT ; | 
|---|
| 72 | K %,AMT,C1,C,CSDA,D0,DA,DI,DIC,DEL,E,I,J,K,N1,N2,POP,PO,PODA,PRCFA,PRCFQ | 
|---|
| 73 | K PTYPE,T,T1,TIME,TRDA,Y,Z,Z5,ZX | 
|---|
| 74 | K PODATE,P,M0,GECSFMS | 
|---|
| 75 | Q | 
|---|
| 76 | NC ; Prompt for 'NO CHARGE' orders | 
|---|
| 77 | S DIR(0)="Y",DIR("B")="YES" | 
|---|
| 78 | S DIR("A",1)="This order appears to be a 'NO CHARGE' order.  Do you still need to take" | 
|---|
| 79 | S DIR("A")="any action on this order" | 
|---|
| 80 | S DIR("?")="Enter 'YES' or 'Y' or 'RETURN' to continue processing." | 
|---|
| 81 | S DIR("?",1)="Enter 'NO' or 'N' or '^' to exit this option." | 
|---|
| 82 | S DIR("??")="^D NC1^PRCFFMO" D ^DIR K DIR | 
|---|
| 83 | Q | 
|---|
| 84 | NC1 ; Additional help for N/C | 
|---|
| 85 | K MSG S MSG(1)="When processing continues on this 'NO CHARGE' order, the Electronic Signature" | 
|---|
| 86 | S MSG(2)="will be applied and the Fund Control Point balance will be updated." | 
|---|
| 87 | S MSG(3)="There will be no FMS document generated.",MSG(4)="  " | 
|---|
| 88 | S MSG(5)="If exiting, there will be no further action taken on this order." | 
|---|
| 89 | W !! D EN^DDIOL(.MSG) K MSG | 
|---|
| 90 | Q | 
|---|
| 91 | NC2 ; Processing for N/C | 
|---|
| 92 | S %=1 W ! D SIG^PRCFFU4 I $D(PRCFA("SIGFAIL")) K PRCFA("SIGFAIL") S %=-1 D MSG1^PRCFFMO1(ESIGMSG) H 3 Q | 
|---|
| 93 | S PRCFA("BBFY")=$$BBFY^PRCFFU5(+PO) | 
|---|
| 94 | D GENDIQ^PRCFFU7(442,+PO,".1;.07;.03;17","IEN","") | 
|---|
| 95 | S PRCFA("OBLDATE")=$$DTOBL^PRCFFUD1(PRC("RBDT"),PRC("PODT")) | 
|---|
| 96 | D EDIT^PRCFFU ; set up PRCFMO array based upon fund/year required fields table | 
|---|
| 97 | D VAR ; continues set up of PRCFA array | 
|---|
| 98 | S FMSMOD=$P(PRCFA("MOD"),U) | 
|---|
| 99 | D POOBL^PRCFFMO1 | 
|---|
| 100 | W ! D MSG1 | 
|---|
| 101 | I $G(PRCTMP(442,+PO,.07,"I"))="" D NEW410^PRCFFUD | 
|---|
| 102 | D PO^PRCFFUD | 
|---|
| 103 | Q | 
|---|
| 104 | MSG W !! S X="No further processing is being taken on this obligation." | 
|---|
| 105 | D EN^DDIOL(X) H 3 | 
|---|
| 106 | Q | 
|---|
| 107 | MSG1 D EN^DDIOL("...no FMS Document has been generated...") W ! | 
|---|
| 108 | Q | 
|---|
| 109 | SUPP ; Entry point for FMS Documents for Supply Fund Special Control Point | 
|---|
| 110 | ; Called from PRCHNPO4 | 
|---|
| 111 | S DIC("S")="I +^(0)=PRC(""SITE"")" | 
|---|
| 112 | S DIC=442,DIC(0)="NZ",X=PRCHPO | 
|---|
| 113 | D ^DIC K DIC G:+Y<0 EXIT | 
|---|
| 114 | S PO(0)=Y(0),PO=Y | 
|---|
| 115 | S PRCFA("PODA")=+Y | 
|---|
| 116 | S PCP=+$P(PO(0),"^",3) | 
|---|
| 117 | S $P(PCP,"^",2)=$S($D(^PRC(420,PRC("SITE"),1,+PCP,0)):$P(^(0),"^",12),1:"") | 
|---|
| 118 | D DT442^PRCFFUD1(PRCFA("PODA"),PO(0)) | 
|---|
| 119 | S PRCFA("OBLDATE")=$$DTOBL^PRCFFUD1(PRC("RBDT"),PRC("PODT")) | 
|---|
| 120 | D ENSFO^PRCFFMO2 | 
|---|
| 121 | S PRCFA("BBFY")=$$BBFY^PRCFFU5(+PO) | 
|---|
| 122 | D GENDIQ^PRCFFU7(442,+PO,".1;.07;.03;17","IEN","") | 
|---|
| 123 | S IDFLAG="I" | 
|---|
| 124 | S PARAM1="^"_PRC("SITE")_"^"_+PCP_"^"_PRC("FY")_"^"_PRCFA("BBFY") | 
|---|
| 125 | D DOCREQ^PRC0C(PARAM1,"SPE","PRCFMO") | 
|---|
| 126 | S PRCFMO("G/N")=$P(PRCFMO,U,12) | 
|---|
| 127 | D VAR | 
|---|
| 128 | I +$P(PO(0),U,16)=0 D | 
|---|
| 129 | . S FMSMOD=$P(PRCFA("MOD"),U) | 
|---|
| 130 | . D POOBL^PRCFFMO1 | 
|---|
| 131 | . D MSG1 | 
|---|
| 132 | I $G(PRCTMP(442,+PO,.07,"I"))="" D NEW410^PRCFFUD | 
|---|
| 133 | D PO^PRCFFUD | 
|---|
| 134 | I +$P(PO(0),U,16)=0 W ! D EXIT QUIT | 
|---|
| 135 | D STACK^PRCFFMO1,EXIT | 
|---|
| 136 | QUIT | 
|---|
| 137 | VAR ; Set up variables | 
|---|
| 138 | S PRCFA("IDES")="Purchase Order" | 
|---|
| 139 | S PRCFA("MOD")="E^0^Original Entry" | 
|---|
| 140 | S PRCFA("MP")=$P(PO(0),U,2) | 
|---|
| 141 | S PRCFA("REF")=$P(PO(0),U) | 
|---|
| 142 | ; S PRCFA("SFC")=$P(PO(0),U,19) | 
|---|
| 143 | S PRCFA("SYS")="FMS" | 
|---|
| 144 | S PRCFA("TT")=$S(PRCFA("MP")=2:"SO",1:"MO") | 
|---|
| 145 | Q | 
|---|