| 1 | PRCFDIC ;WISC/LEM-LOOK UP INVOICES BY P.O. OR VENDOR ;8/18/94  14:20
 | 
|---|
| 2 | V ;;5.1;IFCAP;;Oct 20, 2000
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 | PO ; LOOK UP INVOICES BY P.O.
 | 
|---|
| 5 |  K DA,DR,X,Y
 | 
|---|
| 6 |  ;S PRCF("PO")=$G(X) Q:X=""
 | 
|---|
| 7 | PO1 S X=$G(PRCF("PO")) Q:X=""
 | 
|---|
| 8 |  N MULT,VIEW S MULT=0,I="" I $D(^PRCF(421.5,"D",X)) D
 | 
|---|
| 9 |  . F  S I=$O(^PRCF(421.5,"D",X,I)) Q:I=""  S MULT=MULT+1 Q:MULT>1
 | 
|---|
| 10 |  . Q
 | 
|---|
| 11 |  N DIC,D S DIC="^PRCF(421.5,",DIC(0)="EZ",D="D"
 | 
|---|
| 12 |  S X=$P(X,"-",1,2)
 | 
|---|
| 13 |  D IX^DIC Q:Y<0  S VIEW=+Y
 | 
|---|
| 14 |  I VIEW=$G(PRCF("CIDA")) S X="  ("_+Y_" - THIS Invoice.)*" D MSG^PRCFQ
 | 
|---|
| 15 |  I VIEW D VIEW G PO1:MULT>1
 | 
|---|
| 16 |  Q
 | 
|---|
| 17 | VENDOR ; LOOK UP INVOICES BY VENDOR
 | 
|---|
| 18 |  S X=$G(PRCF("VENDA")) Q:X=""
 | 
|---|
| 19 |  N MULT,VIEW S MULT=0,I="" I $D(^PRCF(421.5,"C",X)) D
 | 
|---|
| 20 |  . F  S I=$O(^PRCF(421.5,"C",X,I)) Q:I=""  S MULT=MULT+1 Q:MULT>1
 | 
|---|
| 21 |  . Q
 | 
|---|
| 22 |  N DIC S DIC="^PRCF(421.5,",DIC(0)="EZ",D="C"
 | 
|---|
| 23 |  D IX^DIC Q:Y<0  S VIEW=+Y
 | 
|---|
| 24 |  I VIEW=$G(PRCF("CIDA")) S X="  ("_+Y_" - THIS Invoice.)*" D MSG^PRCFQ
 | 
|---|
| 25 |  I VIEW D VIEW G VENDOR:MULT>1
 | 
|---|
| 26 |  Q
 | 
|---|
| 27 | VIEW ;VIEW INDIVIDUAL CERTIFIED INVOICE
 | 
|---|
| 28 |  S (FR,TO)=$P(Y,"^",2),L=0,BY="@.01;",FLDS="[CAPTIONED]",IOP="HOME"
 | 
|---|
| 29 |  D WAIT^PRCFYN,EN1^DIP
 | 
|---|
| 30 | OUTV K DIC,DA,DR,X,Y
 | 
|---|
| 31 |  Q
 | 
|---|
| 32 | DUP ; Look for Duplicate Invoice(s)
 | 
|---|
| 33 |  K PRCF("DUP") S PRCF("DUP")=0 Q:'$G(PRCF("CIDA"))
 | 
|---|
| 34 |  Q:'$G(PRCF("VENDA"))  Q:'$D(^PRCF(421.5,"C",PRCF("VENDA")))
 | 
|---|
| 35 |  S PRCF("INVNO")=$P($G(^PRCF(421.5,PRCF("CIDA"),0)),U,3)
 | 
|---|
| 36 |  Q:PRCF("INVNO")=""
 | 
|---|
| 37 |  N X S X="Checking for duplicate invoices . . .*" D MSG^PRCFQ
 | 
|---|
| 38 |  N I S I="" F  S I=$O(^PRCF(421.5,"C",PRCF("VENDA"),I)) Q:I=""  D
 | 
|---|
| 39 |  . Q:I=PRCF("CIDA")
 | 
|---|
| 40 |  . I PRCF("INVNO")=$P($G(^PRCF(421.5,I,0)),U,3) D
 | 
|---|
| 41 |  . . S PRCF("DUP")=PRCF("DUP")+1
 | 
|---|
| 42 |  . . N CIDNO S CIDNO=$P($G(^PRCF(421.5,I,0)),U,1)
 | 
|---|
| 43 |  . . S PRCF("DUP",CIDNO)=""
 | 
|---|
| 44 |  . . Q
 | 
|---|
| 45 |  . Q
 | 
|---|
| 46 |  I PRCF("DUP")=0 N X S X="none found.*" D MSG^PRCFQ Q
 | 
|---|
| 47 |  S X="WARNING!  Identical invoices numbers for this vendor were found in the following Tracking ID#s:*"
 | 
|---|
| 48 |  D MSG^PRCFQ S I="" F  S I=$O(PRCF("DUP",I)) Q:I=""  W !?10,I
 | 
|---|
| 49 |  W !! S X="Please review these records and check for duplicate invoices.*"
 | 
|---|
| 50 |  D MSG^PRCFQ
 | 
|---|
| 51 |  Q
 | 
|---|
| 52 | PPT ; Load Prompt Payment Terms from File 442
 | 
|---|
| 53 |  Q:'$G(PRCF("CIDA"))  Q:'$G(PRCF("PODA"))
 | 
|---|
| 54 |  Q:$D(^PRCF(421.5,PRCF("CIDA"),6))  Q:'$D(^PRC(442,PRCF("PODA"),5,1,0))
 | 
|---|
| 55 |  N PPT S PPT=$G(^PRC(442,PRCF("PODA"),5,1,0))
 | 
|---|
| 56 |  N PCT,DAYS S PCT=$P(PPT,U,1),DAYS=$P(PPT,U,2)
 | 
|---|
| 57 |  S ^PRCF(421.5,PRCF("CIDA"),6,0)="^421.531A^1^1"
 | 
|---|
| 58 |  S ^PRCF(421.5,PRCF("CIDA"),6,1,0)="1^^"_PCT_"^^"_DAYS
 | 
|---|
| 59 |  S ^PRCF(421.5,PRCF("CIDA"),6,"B",1,1)=""
 | 
|---|
| 60 |  Q
 | 
|---|
| 61 | INPUT N X0 S X0=$TR(X,"net","NET")
 | 
|---|
| 62 |  I X]"",$E("NET",1,$L(X0))=X0 S X=0 Q
 | 
|---|
| 63 |  ; Native FileMan Input Transform follows:
 | 
|---|
| 64 |  K:+X'=X!(X>99.999)!(X<0)!(X?.E1"."4N.N) X
 | 
|---|
| 65 |  Q
 | 
|---|
| 66 | OUTPUT I Y?1"0"."."."0" S Y="NET"
 | 
|---|
| 67 |  Q
 | 
|---|
| 68 |  N DA S DA(1)=$G(PRCF("CIDA")) Q:DA(1)=""
 | 
|---|
| 69 |  N NODE S NODE=$G(^PRCF(421.5,DA(1),5,0))
 | 
|---|
| 70 |  I NODE="" S ^PRCF(421.5,DA(1),5,0)=U_$P(^DD(421.5,41,0),U,2)
 | 
|---|
| 71 |  N CTR,I S (CTR,I)=0 F  S I=$O(PRCFD(I)) Q:I'>0  D
 | 
|---|
| 72 |  . S CTR=$S(I=991:CTR,1:CTR+1),CTR=$S(CTR=991:992,1:CTR)
 | 
|---|
| 73 |  . N DIC S DIC="^PRCF(421.5,"_DA(1)_",5,",DIC(0)="L"
 | 
|---|
| 74 |  . S X=$P(PRCFD(I),U,1),AMT=+$P(PRCFD(I),U,2)
 | 
|---|
| 75 |  . K DD,DO D FILE^DICN I Y'>0 W "ERROR" Q
 | 
|---|
| 76 |  . N DIE S DIE=DIC,DA=+Y,FMSL=$S(I=991:991,1:CTR)
 | 
|---|
| 77 |  . N DR S DR="1////^S X=AMT;2////^S X=FMSL" D ^DIE
 | 
|---|
| 78 |  . Q
 | 
|---|
| 79 |  Q
 | 
|---|
| 80 | DISC ; COMPUTE FMS LINE LIQ AMT FROM TOTAL AMT & DISCOUNT TERMS
 | 
|---|
| 81 |  ; INPUT: PRCF("CIDA") - IEN FOR PAYMENT/INVOICE TRACKING RECORD
 | 
|---|
| 82 |  ;        PRCFA("LAMT") - FMS LINE AMOUNT FOR THIS INVOICE
 | 
|---|
| 83 |  ; OUTPUT: PRCFA("LIQ") - FMS COMPUTED LIQUIDATION AMOUNT
 | 
|---|
| 84 |  Q:'$D(PRCF("CIDA"))!'$D(PRCFA("LAMT"))
 | 
|---|
| 85 |  N I,DISC,HIGHDISC S (HIGHDISC,I)=0
 | 
|---|
| 86 |  F  S I=$O(^PRCF(421.5,PRCF("CIDA"),6,I)) Q:+I'=I  D
 | 
|---|
| 87 |  . S DISC=+$P($G(^PRCF(421.5,PRCF("CIDA"),6,I,0)),U,3)
 | 
|---|
| 88 |  . I DISC>HIGHDISC S HIGHDISC=DISC
 | 
|---|
| 89 |  . Q
 | 
|---|
| 90 |  S PRCFA("LIQ")=$FN(1-(HIGHDISC/100)*PRCFA("LAMT"),"",2)
 | 
|---|
| 91 |  Q
 | 
|---|
| 92 | SUM ;
 | 
|---|
| 93 |  ; INPUT: PRCF("CIDA") - IEN FOR PAYMENT/INVOICE TRACKING RECORD
 | 
|---|
| 94 |  ;        PRCFA("CAMT") - TOTAL INVOICE AMOUNT CERTIFIED FOR PAYMENT
 | 
|---|
| 95 |  ; OUTPUT: OK - 1 IF SUM OF LINE AMOUNTS = TOTAL AMOUNT CERTIFIED
 | 
|---|
| 96 |  ;            - 0 IF AMOUNTS NOT EQUAL
 | 
|---|
| 97 |  Q:'$D(PRCF("CIDA"))!'$D(PRCF("CAMT"))
 | 
|---|
| 98 |  N I,LAMT S (I,OK,PRCF("TAMT"))=0
 | 
|---|
| 99 |  F  S I=$O(^PRCF(421.5,PRCF("CIDA"),5,I)) Q:+I'=I  D
 | 
|---|
| 100 |  . S LAMT=+$P($G(^PRCF(421.5,PRCF("CIDA"),5,I,0)),U,2)
 | 
|---|
| 101 |  . S PRCF("TAMT")=PRCF("TAMT")+LAMT
 | 
|---|
| 102 |  . Q
 | 
|---|
| 103 |  I PRCF("CAMT")/100=PRCF("TAMT") S OK=1
 | 
|---|
| 104 |  Q
 | 
|---|
| 105 | SCREEN ; CHECK BOC
 | 
|---|
| 106 |  I $G(X) I $D(PRCFX("SA",X))
 | 
|---|
| 107 |  Q
 | 
|---|
| 108 | LOOKUP(X,PARTIAL) ; X = STA-PAT # - LOOKUP returns next available PARTIAL #.
 | 
|---|
| 109 |  N DIC S DIC="^PRCF(421.9,",DIC(0)="O" K DD,DO D ^DIC
 | 
|---|
| 110 |  I Y<0 D FILE^DICN
 | 
|---|
| 111 |  I +Y,$P(Y,U,3)=1 S PARTIAL="01",$P(^PRCF(421.9,+Y,0),U,2)="01" Q
 | 
|---|
| 112 |  S P=$P($G(^PRCF(421.9,+Y,0)),U,2),P=P+1
 | 
|---|
| 113 |  S P="00"_P,P=$E(P,$L(P)-1,$L(P))
 | 
|---|
| 114 |  S PARTIAL=P,$P(^PRCF(421.9,+Y,0),U,2)=P
 | 
|---|
| 115 |  Q
 | 
|---|