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