1 | PRCPSFU0 ;WISC/RFJ-fms code sheet utilities (find iv line) ;9.9.97
|
---|
2 | ;;5.1;IFCAP;;Oct 20, 2000
|
---|
3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | ;
|
---|
7 | FINDLINE(PRCPDA,LINEDA) ; find fms line number for lineda
|
---|
8 | ; return acct,subacct,fmsline
|
---|
9 | N %,DATA
|
---|
10 | S %=$G(^PRCS(410,PRCPDA,"IT",LINEDA,445))
|
---|
11 | S ACCT=$P($P(%,"^"),"-"),SUBACCT=$P($P(%,"^"),"-",2),FMSLINE=+$P(%,"^",2)
|
---|
12 | I ACCT,SUBACCT,FMSLINE Q
|
---|
13 | S DATA=$G(^PRCS(410,PRCPDA,"IT",LINEDA,0))
|
---|
14 | S SUBACCT=+$P(DATA,"^",4) S:'SUBACCT SUBACCT=$P($G(^PRC(441,+$P(DATA,"^",5),0)),"^",10) S SUBACCT=$E(SUBACCT_"0000",1,4)
|
---|
15 | S ACCT=$$ACCT1^PRCPUX1($P($$NSN^PRCPUX1($P(DATA,"^",5)),"-"))
|
---|
16 | ; look to see if a line has already been created for acct-subacct
|
---|
17 | S FMSLINE=+$O(^PRCS(410,PRCPDA,"IT","FMSLINE","A"_ACCT_"-"_SUBACCT,0))
|
---|
18 | I FMSLINE D SETLINE(PRCPDA,LINEDA,"A"_ACCT_"-"_SUBACCT,FMSLINE) Q
|
---|
19 | ; get next fms line number and set it for line
|
---|
20 | S FMSLINE=$$GETNEXT(PRCPDA)
|
---|
21 | D SETLINE(PRCPDA,LINEDA,"A"_ACCT_"-"_SUBACCT,FMSLINE)
|
---|
22 | Q
|
---|
23 | ;
|
---|
24 | ;
|
---|
25 | SETLINE(PRCPDA,LINEDA,ACCTNG,FMSLINE) ; set fms line on issue book line
|
---|
26 | ; fmsline=fmsline number to set; acctng=acct-subaact
|
---|
27 | I '$D(^PRCS(410,PRCPDA,"IT",LINEDA,0)) Q
|
---|
28 | S $P(^PRCS(410,PRCPDA,"IT",LINEDA,445),"^",1,2)=ACCTNG_"^"_FMSLINE
|
---|
29 | S ^PRCS(410,PRCPDA,"IT","FMSLINE",ACCTNG,FMSLINE,LINEDA)=""
|
---|
30 | Q
|
---|
31 | ;
|
---|
32 | ;
|
---|
33 | GETNEXT(PRCPDA) ; get next fmsline for issue book
|
---|
34 | ; all fmsline numbers are odd, even numbers used for profit
|
---|
35 | I '$D(^PRCS(410,PRCPDA,0)) Q 0
|
---|
36 | N FMSLINE
|
---|
37 | S FMSLINE=$P($G(^PRCS(410,PRCPDA,445)),"^",2)
|
---|
38 | I 'FMSLINE S $P(^PRCS(410,PRCPDA,445),"^",2)=1 Q 1
|
---|
39 | S FMSLINE=FMSLINE+2,$P(^PRCS(410,PRCPDA,445),"^",2)=FMSLINE
|
---|
40 | Q FMSLINE
|
---|
41 | ;
|
---|
42 | ;
|
---|
43 | XREFFMS(PRCPDA,LINEDA,VALUE,FIELD,SETKILL) ; build fms cross reference
|
---|
44 | ; used for issue book IV document
|
---|
45 | ; x = value of data in field
|
---|
46 | ; field = field number for x
|
---|
47 | ; setkill = "SET" to set; "KILL" (or anything other than set) to kill
|
---|
48 | N %,ACCTNG,FMSLINE
|
---|
49 | S %=$G(^PRCS(410,PRCPDA,"IT",LINEDA,445)) I %="" Q
|
---|
50 | S ACCTNG=$P(%,"^"),FMSLINE=+$P(%,"^",2)
|
---|
51 | D
|
---|
52 | . I FIELD=445.01 S ACCTNG=X Q
|
---|
53 | . I FIELD=445.02 S FMSLINE=X Q
|
---|
54 | I ACCTNG=""!('FMSLINE) Q
|
---|
55 | I SETKILL="SET" S ^PRCS(410,PRCPDA,"IT","FMSLINE",ACCTNG,FMSLINE,LINEDA)="" Q
|
---|
56 | K ^PRCS(410,PRCPDA,"IT","FMSLINE",ACCTNG,FMSLINE,LINEDA)
|
---|
57 | Q
|
---|