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

RCDPCSA.m

Go to the documentation of this file.
  1. RCDPCSA ;UNY/RGB-CROSS-SERVICING STATUS FIX ;03/15/14 3:34 PM
  1. ;;4.5;Accounts Receivable;**325,336,343**;Mar 20, 1995;Build 59
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;OPTION: RCDP TCSP FLAG CONTROL
  1. ;
  1. ;PRCA*4.5*336 When setting bills to cross service date
  1. ; ensure the TCSP address node ^PRCA(430,ien,16)
  1. ; is established
  1. ;PRCA*4.5*343 Moved Name/taxid lookup into routine since they
  1. ; were moved from previous calls into RCTCSPD.
  1. ;
  1. A S U="^" S SITE=+$$SITE^VASITE
  1. B K DIR S DIR(0)="SO^1:Set cross-service flag on BILL;2:Clear cross-service flag on BILL;3:Clear cross-service flag on DEBTOR (AND ALL BILLS);4:Set cross-service flag on DEBTOR;5:Fully re-establish debtor/bill as cross-serviced"
  1. S DIR("?")="Enter an option number 1 to 5."
  1. S DIR("A")="Select Number"
  1. D ^DIR
  1. G EXIT:$D(DIRUT)
  1. S PRCAOPT=+Y
  1. ;
  1. C ;select bill
  1. ; returns -1 for timeout or ^, 0 for no selection, or ien of bill
  1. K %,%Y,C,DIC,DIR,DIE,DTOUT,DUOUT,X,Y
  1. K RCY,DIR,DIRUT
  1. W ! S DIC="^PRCA(430,",DIC(0)="QEAM",DIC("A")="Select BILL: "
  1. ; special lookup on input
  1. S RCBEFLUP=1
  1. D ^DIC
  1. I $G(DUOUT)!$G(DTOUT) G B
  1. I Y<0 G B
  1. S RCBILLDA=+Y
  1. ;Disp last 4 soc#
  1. C1 I '$D(^PRCA(430,"TCSP",RCBILLDA)),PRCAOPT=2 W !,"*** BILL NOT CROSS SERVICED ***" G C
  1. I $P($G(^PRCA(430,RCBILLDA,0)),U,8)'=16 W !,"*** BILL NOT ACTIVE ***" G C
  1. S RCDEBTOR=$P($G(^PRCA(430,RCBILLDA,0)),U,9) I 'RCDEBTOR W !," < *** debtor not found on bill *** >" G C
  1. S RCDEBTV=$P($G(^RCD(340,RCDEBTOR,0)),U) I 'RCDEBTV W !," < *** debtor on bill not found *** >" G C
  1. I RCDEBTV'["DPT(" W !," < *** debtor must be a veteran *** >" G C
  1. I '$D(^RCD(340,"TCSP",RCDEBTOR)),"245"'[PRCAOPT W !," <debtor not flagged as CS *** >" G C
  1. S RCDPT=+RCDEBTV,RC0=$G(^DPT(RCDPT,0)) I RC0="" W !," < *** debtor info not found *** >" G C
  1. W ?60,$E($P(RC0,U,9),6,9)
  1. D @PRCAOPT
  1. G C
  1. 1 ;option 1
  1. I $D(^PRCA(430,"TCSP",RCBILLDA)) W !,"*** BILL ALREADY CROSS-SERVICED ***" Q
  1. S DIR(0)="D",DIR("A")="Enter Cross-Sevice Date" D ^DIR K DIR
  1. I $D(DIRUT)!($D(DUOUT)) Q
  1. S RCDATE=Y
  1. S DIR(0)="YA",DIR("A")="File CS Bill Change (Y/N): ",DIR("B")="N",DIR("?")="Enter (Y)es to file or (N)o to skip filing"
  1. D ^DIR K DIR I Y=0!$G(DIRUT) W " < Bill Not Updated >" Q
  1. S RCDAS=RCBILLDA_",",PRCAR(430,RCDAS,151)=RCDATE D FILE^DIE("EK","PRCAR","PRCAERR") I $D(PRCAERR) W " <",$G(PRCAERR("DIERR",1,"TEXT",1)),">" K PRCAERR G 1
  1. D SET16 ;PRCA*4.5*336
  1. W " <DONE>"
  1. Q
  1. 2 ;option 2
  1. I '$D(^PRCA(430,"TCSP",RCBILLDA)) W !,"*** BILL NOT CROSS SERVICED ***" Q
  1. S DIR(0)="YA",DIR("A")="File CS Bill Flag Removal (Y/N): ",DIR("B")="N",DIR("?")="Enter (Y)es to file or (N)o to skip filing"
  1. D ^DIR K DIR I Y=0!$G(DIRUT) W " <Bill Not Updated" Q
  1. K ^PRCA(430,RCBILLDA,16)
  1. S DA=RCBILLDA,DIE="^PRCA(430,",DR="151////@" D ^DIE W " <DONE>" ;PRCA*4.5*336
  1. Q
  1. 3 ;option 3
  1. S DIR(0)="YA",DIR("A")="File CS Debtor/Bills Flag Removal (Y/N): ",DIR("B")="N",DIR("?")="Enter (Y)es to file or (N)o to skip filing"
  1. D ^DIR I Y=0!$G(DIRUT) W " <Bill Not Updated" Q
  1. S DA=RCDEBTOR,DIE="^RCD(340,",DR="7.05////@" D ^DIE W " <DONE>"
  1. S PRCAIEN=0
  1. F S PRCAIEN=$O(^PRCA(430,"C",RCDEBTOR,PRCAIEN)) Q:'PRCAIEN D
  1. . I '$D(^PRCA(430,"TCSP",PRCAIEN)) Q
  1. . S DA=PRCAIEN,DIE="^PRCA(430,",DR="151////@" D ^DIE ;PRCA*4.5*336
  1. . K ^PRCA(430,RCBILLDA,16)
  1. . W !,?4,$P(^PRCA(430,PRCAIEN,0),U)," Cleared"
  1. Q
  1. 4 ;option 4
  1. I $D(^RCD(340,"TCSP",RCDEBTOR)) W !,"*** DEBTOR ALREADY CROSS-SERVICED ***" Q
  1. S DIR(0)="D",DIR("A")="Enter Debtor Cross-Sevice Date" D ^DIR K DIR
  1. I $D(DIRUT)!($D(DUOUT)) Q
  1. S RCDATE=Y
  1. S DIR(0)="YA",DIR("A")="File CS Debtor Change (Y/N): ",DIR("B")="N",DIR("?")="Enter (Y)es to file or (N)o to skip filing"
  1. D ^DIR K DIR I Y=0!$G(DIRUT) W " < Debtor Not Updated >" Q
  1. S RCDAS=RCDEBTOR_",",RCDR(340,RCDAS,7.05)=RCDATE D FILE^DIE("EK","RCDR","RCDERR") I $D(RCDERR) W " <",$G(RCDERR("DIERR",1,"TEXT",1)),">" K RCDERR G 4
  1. W " <DONE>"
  1. Q
  1. 5 ;option 5
  1. I $D(^PRCA(430,"TCSP",RCBILLDA)) W !,"*** BILL ALREADY CROSS-SERVICED, DEBTOR MUST BE ALSO ***" Q
  1. I $D(^RCD(340,"TCSP",RCDEBTOR)) W !,"*** DEBTOR ALREADY CROSS-SERVICED, USE OPTION 1 TO SET BILL ***" Q
  1. I $D(^PRCA(430,RCBILLDA,30)) W !,"*** BILL RETURNED BY RECONCILIATION ***" Q
  1. S DIR(0)="D",DIR("A")="Enter Debtor Cross-Sevice Date" D ^DIR K DIR Q:$G(DIRUT)
  1. S RCDATE=Y
  1. S DIR(0)="YA",DIR("A")="File CS Debtor/Bill Change (Y/N): ",DIR("B")="N",DIR("?")="Enter (Y)es to file or (N)o to skip filing"
  1. D ^DIR K DIR I Y=0!$G(DIRUT) W " < Debtor Not Updated >" Q
  1. S RCDAS=RCDEBTOR_",",RCDR(340,RCDAS,7.05)=RCDATE D FILE^DIE("EK","RCDR","RCDERR") I $D(RCDERR) W " <",$G(RCDERR("DIERR",1,"TEXT",1)),">" K RCDERR G 5
  1. S ^PRCA(430,RCBILLDA,15)="",DA=RCBILLDA,DIE="^PRCA(430,",DR="151////^S X=RCDATE" D ^DIE
  1. D SET16 ;PRCA*4.5*336
  1. W " <DONE>",!,">>> Bill Updating for CS info... "
  1. W "fully re-established as Cross-Serviced >"
  1. Q
  1. ;
  1. SET16 ;SET NODE 16 FOR TCSP BILL ;PRCA*4.5*336
  1. N RCXX,RCYY
  1. S (RCDEBTR0,DEBTOR0)=$G(^RCD(340,RCDEBTOR,0)),DEBTOR1=$G(^RCD(340,RCDEBTOR,1)),RCDFN=+RCDEBTR0
  1. S RCDPN16="",RCB6=$G(^PRCA(430,RCBILLDA,6)),RCB7=$G(^(7)),RCBILLDT=$P($P(RCB6,U,21),".")
  1. S TAXID=$$TAXID(RCDEBTOR),RCNAME=$$NAME(+RCDEBTR0),RCNAME=$P(RCNAME,U)
  1. S $P(RCDPN16,U)=TAXID,$P(RCDPN16,U,2)=RCNAME,$P(RCDPN16,U,3)=+RCBILLDT
  1. S DEBTOR=RCDEBTOR,ADDRCS=$$ADDR^RCTCSP1(RCDFN,1),$P(RCDPN16,U,4,8)=$P(ADDRCS,U,1,5)
  1. S $P(RCDPN16,U,12)=$S($P(ADDRCS,U,7)>2:$P(ADDRCS,U,7),+^PRCA(430,RCBILLDA,0)=436:2,1:1),$P(RCDPN16,U,13)=$P(^DPT(RCDFN,0),U,3)
  1. S RCAMTRFD=0 F I=1:1:5 S RCAMTRFD=RCAMTRFD+$P(RCB7,U,I)
  1. F I=9,10 S $P(RCDPN16,U,I)=RCAMTRFD
  1. S (RCXX,RCYY)=$P(ADDRCS,U,6)
  1. I RCXX'?10N D
  1. . S RCYY="" F I=1:1:$L(RCXX) I $E(RCXX,I)?1N S RCYY=RCYY_$E(RCXX,I)
  1. S $P(RCDPN16,U,11)=$E("000000000000",1,10-$L(RCYY))_RCYY
  1. S ^PRCA(430,RCBILLDA,16)=RCDPN16
  1. Q
  1. ;
  1. TAXID(DEBTOR) ;computes TAXID to place on documents ;PRCA*4.5*343
  1. N TAXID,DIC,DA,DR,DIQ
  1. S TAXID=$$SSN^RCFN01(DEBTOR)
  1. S TAXID=$$LJSF(TAXID,9)
  1. Q TAXID
  1. ;
  1. NAME(DFN) ;returns name for document and name in file ;PRCA*4.5*343
  1. N FN,LN,MN,NM,DOCNM,VA,VADM
  1. S NM=""
  1. D DEM^VADPT
  1. I $D(VADM) S NM=VADM(1)
  1. S LN=$TR($P(NM,",")," .'-"),MN=$P($P(NM,",",2)," ",2)
  1. I ($E(MN,1,2)="SR")!($E(MN,1,2)="JR")!(MN?2.3"I")!(MN?0.1"I"1"V"1.3"I") S MN=""
  1. S FN=$P($P(NM,",",2)," ")
  1. S DOCNM=$$LJ^XLFSTR($E(LN,1,35),35)_$$LJ^XLFSTR($E(FN,1,35),35)_$$LJ^XLFSTR($E(MN,1,35),35)
  1. Q DOCNM
  1. ;
  1. LJSF(X,Y) ;left justified space filled
  1. S X=$E(X,1,Y)
  1. S X=X_$$BLANK(Y-$L(X))
  1. Q X
  1. ;
  1. BLANK(X) ;returns 'x' blank spaces
  1. N BLANK
  1. S BLANK="",$P(BLANK," ",X+1)=""
  1. Q BLANK
  1. ;
  1. EXIT D KILL^XUSCLEAN Q