Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PRCPSFU0

PRCPSFU0.m

Go to the documentation of this file.
  1. PRCPSFU0 ;WISC/RFJ-fms code sheet utilities (find iv line) ;9.9.97
  1. ;;5.1;IFCAP;;Oct 20, 2000
  1. ;Per VHA Directive 10-93-142, this routine should not be modified.
  1. Q
  1. ;
  1. ;
  1. FINDLINE(PRCPDA,LINEDA) ; find fms line number for lineda
  1. ; return acct,subacct,fmsline
  1. N %,DATA
  1. S %=$G(^PRCS(410,PRCPDA,"IT",LINEDA,445))
  1. S ACCT=$P($P(%,"^"),"-"),SUBACCT=$P($P(%,"^"),"-",2),FMSLINE=+$P(%,"^",2)
  1. I ACCT,SUBACCT,FMSLINE Q
  1. S DATA=$G(^PRCS(410,PRCPDA,"IT",LINEDA,0))
  1. S SUBACCT=+$P(DATA,"^",4) S:'SUBACCT SUBACCT=$P($G(^PRC(441,+$P(DATA,"^",5),0)),"^",10) S SUBACCT=$E(SUBACCT_"0000",1,4)
  1. S ACCT=$$ACCT1^PRCPUX1($P($$NSN^PRCPUX1($P(DATA,"^",5)),"-"))
  1. ; look to see if a line has already been created for acct-subacct
  1. S FMSLINE=+$O(^PRCS(410,PRCPDA,"IT","FMSLINE","A"_ACCT_"-"_SUBACCT,0))
  1. I FMSLINE D SETLINE(PRCPDA,LINEDA,"A"_ACCT_"-"_SUBACCT,FMSLINE) Q
  1. ; get next fms line number and set it for line
  1. S FMSLINE=$$GETNEXT(PRCPDA)
  1. D SETLINE(PRCPDA,LINEDA,"A"_ACCT_"-"_SUBACCT,FMSLINE)
  1. Q
  1. ;
  1. ;
  1. SETLINE(PRCPDA,LINEDA,ACCTNG,FMSLINE) ; set fms line on issue book line
  1. ; fmsline=fmsline number to set; acctng=acct-subaact
  1. I '$D(^PRCS(410,PRCPDA,"IT",LINEDA,0)) Q
  1. S $P(^PRCS(410,PRCPDA,"IT",LINEDA,445),"^",1,2)=ACCTNG_"^"_FMSLINE
  1. S ^PRCS(410,PRCPDA,"IT","FMSLINE",ACCTNG,FMSLINE,LINEDA)=""
  1. Q
  1. ;
  1. ;
  1. GETNEXT(PRCPDA) ; get next fmsline for issue book
  1. ; all fmsline numbers are odd, even numbers used for profit
  1. I '$D(^PRCS(410,PRCPDA,0)) Q 0
  1. N FMSLINE
  1. S FMSLINE=$P($G(^PRCS(410,PRCPDA,445)),"^",2)
  1. I 'FMSLINE S $P(^PRCS(410,PRCPDA,445),"^",2)=1 Q 1
  1. S FMSLINE=FMSLINE+2,$P(^PRCS(410,PRCPDA,445),"^",2)=FMSLINE
  1. Q FMSLINE
  1. ;
  1. ;
  1. XREFFMS(PRCPDA,LINEDA,VALUE,FIELD,SETKILL) ; build fms cross reference
  1. ; used for issue book IV document
  1. ; x = value of data in field
  1. ; field = field number for x
  1. ; setkill = "SET" to set; "KILL" (or anything other than set) to kill
  1. N %,ACCTNG,FMSLINE
  1. S %=$G(^PRCS(410,PRCPDA,"IT",LINEDA,445)) I %="" Q
  1. S ACCTNG=$P(%,"^"),FMSLINE=+$P(%,"^",2)
  1. D
  1. . I FIELD=445.01 S ACCTNG=X Q
  1. . I FIELD=445.02 S FMSLINE=X Q
  1. I ACCTNG=""!('FMSLINE) Q
  1. I SETKILL="SET" S ^PRCS(410,PRCPDA,"IT","FMSLINE",ACCTNG,FMSLINE,LINEDA)="" Q
  1. K ^PRCS(410,PRCPDA,"IT","FMSLINE",ACCTNG,FMSLINE,LINEDA)
  1. Q