| 1 | PRCFFU15 ;WISC/SJG-1358 & PO OBLIGATION UTILITY, CONT ;8/15/94  17:47 | 
|---|
| 2 | ;;5.1;IFCAP;;Oct 20, 2000 | 
|---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | ; | 
|---|
| 5 | ; No top level entry | 
|---|
| 6 | QUIT | 
|---|
| 7 | ; | 
|---|
| 8 | VENCONO(IEN) ; Display vendor and contract information on org entry | 
|---|
| 9 | ; IEN - Internal entry number from 410 | 
|---|
| 10 | K PRCTMP N VENDOR | 
|---|
| 11 | DISP S (VENDOR,CONT,CONTEND,VENCONT,CONTIEN)="" | 
|---|
| 12 | D GENDIQ^PRCFFU7(410,IEN,"11;12;13;52","IEN","") | 
|---|
| 13 | S VENDOR=$G(PRCTMP(410,IEN,11,"E")) | 
|---|
| 14 | I VENDOR]"" W !,IOINLOW,"VENDOR: ",IOINHI,VENDOR,IOINORM,! | 
|---|
| 15 | S CONT=$G(PRCTMP(410,IEN,13,"E")) Q:CONT="" | 
|---|
| 16 | I CONT]"" D CONTNUM Q:CONTEND="" | 
|---|
| 17 | I CONTEND]"" D | 
|---|
| 18 | .W IOINLOW,"CONTRACT: ",IOINHI,CONT,IOINORM,! | 
|---|
| 19 | .W IOINLOW,"CONTRACT ENDING DATE: ",IOINHI,CONTEND,IOINORM,! | 
|---|
| 20 | Q | 
|---|
| 21 | VENCONM(IEN) ; Display vendor and contract information on adjustment | 
|---|
| 22 | ; IEN - Internal entry number from 442 | 
|---|
| 23 | K PRCTMP N VENDOR,PRRQST | 
|---|
| 24 | D GENDIQ^PRCFFU7(442,+PO,.07,"I","") | 
|---|
| 25 | S PRRQST=$G(PRCTMP(442,+IEN,.07,"I")) | 
|---|
| 26 | Q:PRRQST="" | 
|---|
| 27 | I PRRQST]"" S POIEN=IEN,IEN=PRRQST D DISP | 
|---|
| 28 | Q | 
|---|
| 29 | POVENO(IEN) ; Display vendor and contract information | 
|---|
| 30 | ; IEN - Internal entry number from 442 | 
|---|
| 31 | K PRCTMP N VENNM,VENIEN | 
|---|
| 32 | D GENDIQ^PRCFFU7(442,IEN,5,"IEN","") | 
|---|
| 33 | S VENNM=$G(PRCTMP(442,IEN,5,"E")),VENIEN=$G(PRCTMP(442,IEN,5,"I")) | 
|---|
| 34 | I VENNM]"" W !,"VENDOR: ",VENNM,! | 
|---|
| 35 | I '$D(^PRC(442,+IEN,2,"AC")) W "CONTRACT:  ** NONE ON THIS ORDER **",! | 
|---|
| 36 | PO1 I $D(^PRC(442,+IEN,2,"AC")) D  W ! | 
|---|
| 37 | .S (PRCFMOD,NEWADD)=0 | 
|---|
| 38 | .W ! K MSG S MSG(1)="One or more of the following contracts are associated with the line items" | 
|---|
| 39 | .S MSG(2)="on this Purchase Order for Services for this Vendor: " | 
|---|
| 40 | .D EN^DDIOL(.MSG) K MSG | 
|---|
| 41 | .S CONT="" F  S CONT=$O(^PRC(442,+IEN,2,"AC",CONT)) Q:CONT=""  D ADDCONT | 
|---|
| 42 | .K PRCFMOD,NEWADD | 
|---|
| 43 | .Q | 
|---|
| 44 | PO2 I $D(^PRC(443.6,+IEN,2,"AC")),$P(PRCFA("MOD"),U)="M" D  W ! | 
|---|
| 45 | .S PRCFMOD=1,NEWADD=0 | 
|---|
| 46 | .W ! K MSG S MSG(1)="The Amendment has added line items which contain one or more of the following" | 
|---|
| 47 | .S MSG(2)="contracts to this Purchase Order for Services:" | 
|---|
| 48 | .D EN^DDIOL(.MSG) K MSG | 
|---|
| 49 | .S CONT="" F  S CONT=$O(^PRC(443.6,+IEN,2,"AC",CONT)) Q:CONT=""  D ADDCONT | 
|---|
| 50 | .D:NEWADD=0 EN^DDIOL("  ** NO NEW CONTRACTS ADDED THROUGH THE AMENDMENT  **") | 
|---|
| 51 | .K PRCFMOD,NEWADD | 
|---|
| 52 | .Q | 
|---|
| 53 | Q | 
|---|
| 54 | ADDCONT ; | 
|---|
| 55 | S DIC="^PRC(440,"_VENIEN_",4,",DIC(0)="MNZ",X=CONT D ^DIC K DIC Q:Y<0 | 
|---|
| 56 | I Y>0 D | 
|---|
| 57 | .N DA,CONTIEN,CONTEND S CONTIEN=+Y | 
|---|
| 58 | .S DIC=440,DR=6,DA=VENIEN,DIQ="PRCTMP(",DIQ(0)="IEN",DR(440.03)=".5;1",DA(440.03)=CONTIEN D EN^DIQ1 K DIC,DIQ,DR | 
|---|
| 59 | .S CONTENDE=$G(PRCTMP(440.03,CONTIEN,1,"E")),CONTENDI=$G(PRCTMP(440.03,CONTIEN,1,"I")) | 
|---|
| 60 | .I PRCFMOD=1 Q:$D(CONTENDA(9999999-CONTENDI))  S NEWADD=1 | 
|---|
| 61 | .S CONTENDA(9999999-CONTENDI)=CONTENDE_U_CONTENDI | 
|---|
| 62 | .W !?2,"CONTRACT: ",CONT,?33,"END DATE: ",CONTENDE,?56,"START DATE: ",$G(PRCTMP(440.03,CONTIEN,.5,"E")) W:$G(PRCTMP(440.03,CONTIEN,.5,"E"))="" "NONE LISTED" | 
|---|
| 63 | .Q | 
|---|
| 64 | Q | 
|---|
| 65 | MSG1 ; Display current auto accrual information for PO | 
|---|
| 66 | K MSG W ! N FIL S FIL=$$FILE^PRCFFU16 | 
|---|
| 67 | S MSG(1)="CURRENT VALUES FOR AUTO ACCRUAL FOR P.O. SERVICE ORDER:" | 
|---|
| 68 | S MSG(2)="  ENDING DATE FOR SERVICE: "_$G(PRCTMP(FIL,+OB,29,"E")) | 
|---|
| 69 | S MSG(3)="  AUTO ACCRUAL FLAG: "_$G(PRCTMP(FIL,+OB,30,"E")) | 
|---|
| 70 | D EN^DDIOL(.MSG) K MSG | 
|---|
| 71 | Q | 
|---|
| 72 | MSG2 ; Prompt for change if needed | 
|---|
| 73 | N TAG S TAG=$$LABEL | 
|---|
| 74 | K MSG W !! S MSG(1)="The Ending Date and the Auto Accrual Flag must now be entered for" | 
|---|
| 75 | S MSG(2)="this obligation.  The system will default to the Ending Date on the Vendor" | 
|---|
| 76 | S MSG(3)="Contract from the "_TAG_", if available.  Otherwise, the default Ending" | 
|---|
| 77 | S MSG(4)="Date is the last date of the current month.",MSG(5)="  " | 
|---|
| 78 | S MSG(6)="The Auto Accrual Flag tells FMS whether the "_TAG_" should be accrued." | 
|---|
| 79 | S MSG(7)="The default value will be 'NO' if the Ending Date is within the same month." | 
|---|
| 80 | S MSG(8)="To accrue the "_TAG_", change the flag to 'YES'." | 
|---|
| 81 | D EN^DDIOL(.MSG) K MSG | 
|---|
| 82 | Q | 
|---|
| 83 | CONTNUM ; Determine contract number | 
|---|
| 84 | I $G(PRCTMP(410,IEN,11,"E"))="" Q | 
|---|
| 85 | I $G(PRCTMP(410,IEN,13,"I"))]"" D | 
|---|
| 86 | .S VENID=$G(PRCTMP(410,IEN,12,"I")) Q:VENID="" | 
|---|
| 87 | .S VENCONT=$G(PRCTMP(410,IEN,13,"I")) | 
|---|
| 88 | .S DIC="^PRC(440,"_VENID_",4,",DIC(0)="MNZ",X=VENCONT D ^DIC K DIC | 
|---|
| 89 | .Q:Y<0  I Y>0 D | 
|---|
| 90 | ..N DA S CONTIEN=+Y | 
|---|
| 91 | ..S DIC=440,DR=6,DA=+VENID,DIQ="PRCTMP(",DIQ(0)="IEN",DR(440.03)=".5;1",DA(440.03)=CONTIEN D EN^DIQ1 K DIC,DIQ,DR | 
|---|
| 92 | ..S CONTEND=$G(PRCTMP(440.03,CONTIEN,1,"E")) | 
|---|
| 93 | ..Q | 
|---|
| 94 | .Q | 
|---|
| 95 | Q | 
|---|
| 96 | ; | 
|---|
| 97 | MSG5 ; Exit message | 
|---|
| 98 | W ! D EN^DDIOL("Returning to Obligation processing...") W ! | 
|---|
| 99 | Q | 
|---|
| 100 | LABEL() ; Determine label for messages | 
|---|
| 101 | S LABEL="" | 
|---|
| 102 | I '$D(PRCFA("MP")) S LABEL="" | 
|---|
| 103 | I $D(TRNODE(0)) I $P(TRNODE(0),U,2)="O"!($P(TRNODE(0),U,2)="A") S LABEL="1358" | 
|---|
| 104 | I $D(PRCFA("MP")),PRCFA("MP")=21 S LABEL="1358" | 
|---|
| 105 | I $D(PRCFA("MP")),PRCFA("MP")=2 S LABEL="Purchase Order" | 
|---|
| 106 | Q LABEL | 
|---|