RCDPAPL1 ;WISC/RFJ-account profile listmanager options ;1 Jun 99
 ;;4.5;Accounts Receivable;**114,315**;Mar 20, 1995;Build 67
 ;;Per VA Directive 6402, this routine should not be modified.
 Q
 ;
ACCOUNT ;  select a new account
 D FULL^VALM1
 S VALMBCK="R"
 ;
 W !!,"This option will allow you to select a new account."
 W ! S %=$$SELACCT^RCDPAPLM
 I %<1 Q
 S RCDEBTDA=%
 ;
 D INIT^RCDPAPLM
 Q
 ;
BILLTRAN ;  show transactions for a bill
 N RCBILLDA
 S VALMBCK="R"
 ;
 S RCBILLDA=$$SELBILL I 'RCBILLDA Q
 D EN^VALM("RCDP TRANSACTIONS LIST")
 ;
 D INIT^RCDPAPLM
 S VALMBCK="R"
 ;  fast exit
 I $G(RCDPFXIT) S VALMBCK="Q"
 Q
 ;
BILLPROF ;  bill profile
 N RCBILLDA
 S VALMBCK="R"
 ;
 S RCBILLDA=$$SELBILL I 'RCBILLDA Q
 D EN^VALM("RCDP BILL PROFILE")
 ;
 D INIT^RCDPAPLM
 S VALMBCK="R"
 ;  fast exit
 I $G(RCDPFXIT) S VALMBCK="Q"
 Q
 ;
SELBILL() ;  select bill from list
 N VALMBG,VALMLST,VALMY
 ;  if no bills, quit
 I '$O(^TMP("RCDPAPLM",$J,"IDX",0)) S VALMSG="There are NO bills to profile." Q 0
 ;
 ;  if only one bill, select that one automatically
 I '$O(^TMP("RCDPAPLM",$J,"IDX",1)) Q +$G(^TMP("RCDPAPLM",$J,"IDX",1,1))
 ;
 ;  select the entry from the list
 ;  if not on first screen, make sure selection begins with 1
 S VALMBG=1
 ;  if not on last screen, make sure selection ends with last
 S VALMLST=$O(^TMP("RCDPAPLM",$J,"IDX",999999999),-1)
 D EN^VALM2($G(XQORNOD(0)),"OS")
 Q +$G(^TMP("RCDPAPLM",$J,"IDX",+$O(VALMY(0)),+$O(VALMY(0))))
 ;
SELMULT(VALMY) ; select 0, 1, or more bills from the list
 ; Output VALMY array, pass by reference.  Return format is VALMY(#)=""
 ; The calling routine must then process any of the entries found in the VALMY array, one at a time.
 ;
 N VALMBG,VALMLST
 K VALMY
 ;
 ; if no bills in list, then update screen message and exit
 I '$O(@VALMAR@("IDX",0)) S VALMSG="There are no bills to select." G SELMX
 ;
 ; if there is only 1 bill in list then add that one into the VALMY array and quit
 I '$O(@VALMAR@("IDX",1)) S VALMY(1)="" G SELMX
 ;
 ; Multiple bills in list. Ask user to select 1 or more of them
 S VALMBG=1                                    ; first possible entry
 S VALMLST=$O(@VALMAR@("IDX",999999999),-1)    ; last possible entry
 ;
 ; call the selector API
 D EN^VALM2($G(XQORNOD(0)),"O")
 ;
SELMX ;
 Q
 ;
SUSPEND ;Suspend a Bill PRCA*4.5*315
 N GOTBILL,VALMY,RCBILLDA,RCDPGN,RCDPGC,RCDPGT,RCDPGQ,DIR,X,Y,DIRUT,DUOUT,DTOUT,DIROUT
 D FULL^VALM1
 D SELMULT(.VALMY) I '$O(VALMY(0)) G SUSPX
 ;
 ; count the number of selected entries and put into RCDPGT
 S RCDPGN=0 F RCDPGT=0:1 S RCDPGN=$O(VALMY(RCDPGN)) Q:'RCDPGN
 ;
 W !
 S (RCDPGN,RCDPGC)=0 F  S RCDPGN=$O(VALMY(RCDPGN)) Q:'RCDPGN  D  Q:$G(RCDPFXIT)!$G(RCDPGQ)
 . S RCBILLDA=$G(@VALMAR@("IDX",RCDPGN,RCDPGN)) Q:'RCBILLDA
 . S RCDPGC=RCDPGC+1
 . W !,"  ======== Bill# ",$P($P($G(^PRCA(430,RCBILLDA,0)),U,1),"-",2)," (",RCDPGC," of ",RCDPGT," selected) ========",!
 . S GOTBILL=1
 . D 47^RCWROFF    ; Call into existing write-off routine for each bill selected
 . I $G(RCDPGQ) W " ... exiting Bill# loop" Q
 . ;
 . ; special break in between each bill
 . W ! S DIR(0)="E" S DIR("A")="Type <Enter> to continue"
 . I (RCDPGT-RCDPGC)>0 S DIR("A")=DIR("A")_" or '^' to exit this Bill# loop"    ; if there are still more bills in loop
 . D ^DIR K DIR W !
 . I $D(DIRUT) S RCDPGQ=1
 . Q
 ;
 D INIT^RCDPAPLM   ; refresh the account profile list of bills
 ;
SUSPX ;
 S VALMBCK="R"
 I $G(RCDPFXIT) S VALMBCK="Q"
 Q
 ;
REESTAB ; Re-Establish a Bill - PRCA*4.5*315
 N GOTBILL,VALMY,RCBILLDA,RCDPGN,RCDPGC,RCDPGT,RCDPGQ,DIR,X,Y,DIRUT,DUOUT,DTOUT,DIROUT
 D FULL^VALM1
 D SELMULT(.VALMY) I '$O(VALMY(0)) G REESTX
 ;
 ; count the number of selected entries and put into RCDPGT
 S RCDPGN=0 F RCDPGT=0:1 S RCDPGN=$O(VALMY(RCDPGN)) Q:'RCDPGN
 ;
 W !
 S (RCDPGN,RCDPGC)=0 F  S RCDPGN=$O(VALMY(RCDPGN)) Q:'RCDPGN  D  Q:$G(RCDPFXIT)!$G(RCDPGQ)
 . S RCBILLDA=$G(@VALMAR@("IDX",RCDPGN,RCDPGN)) Q:'RCBILLDA
 . S RCDPGC=RCDPGC+1
 . W !,"  ======== Bill# ",$P($P($G(^PRCA(430,RCBILLDA,0)),U,1),"-",2)," (",RCDPGC," of ",RCDPGT," selected) ========",!
 . S GOTBILL=1
 . D ENAP^PRCAWREA(RCBILLDA)     ; Call into existing Re-Establish bill routine for each bill selected
 . ;
 . ; special break in between each bill
 . W ! S DIR(0)="E" S DIR("A")="Type <Enter> to continue"
 . I (RCDPGT-RCDPGC)>0 S DIR("A")=DIR("A")_" or '^' to exit this Bill# loop"    ; if there are still more bills in loop
 . D ^DIR K DIR W !
 . I $D(DIRUT) S RCDPGQ=1
 . Q
 ;
 D INIT^RCDPAPLM   ; refresh the account profile list of bills
 ;
REESTX ;
 S VALMBCK="R"
 I $G(RCDPFXIT) S VALMBCK="Q"
 Q
 ;
STOP ;Stop a Bill in Cross-servicing (Debtor) PRCA*4.5*315
 N GOTBILL,VALMY,RCBILLDA,RCDPGN,RCDPGC,RCDPGT,RCDPGQ,DIR,X,Y,DIRUT,DUOUT,DTOUT,DIROUT
 D FULL^VALM1
 D SELMULT(.VALMY) I '$O(VALMY(0)) G STOPX
 ;
 ; count the number of selected entries and put into RCDPGT
 S RCDPGN=0 F RCDPGT=0:1 S RCDPGN=$O(VALMY(RCDPGN)) Q:'RCDPGN
 ;
 W !
 S (RCDPGN,RCDPGC)=0 F  S RCDPGN=$O(VALMY(RCDPGN)) Q:'RCDPGN  D  Q:$G(RCDPFXIT)!$G(RCDPGQ)
 . S RCBILLDA=$G(@VALMAR@("IDX",RCDPGN,RCDPGN)) Q:'RCBILLDA
 . S RCDPGC=RCDPGC+1
 . W !,"  ======== Bill# ",$P($P($G(^PRCA(430,RCBILLDA,0)),U,1),"-",2)," (",RCDPGC," of ",RCDPGT," selected) ========",!
 . S GOTBILL=1
 . D STOP^RCTCSPU  ;Call into existing TOP routine for each bill selected
 . I $G(RCDPGQ) W " ... exiting Bill# loop" Q
 . ;
 . ; special break in between each bill
 . W ! S DIR(0)="E" S DIR("A")="Type <Enter> to continue"
 . I (RCDPGT-RCDPGC)>0 S DIR("A")=DIR("A")_" or '^' to exit this Bill# loop"    ; if there are still more bills in loop
 . D ^DIR K DIR W !
 . I $D(DIRUT) S RCDPGQ=1
 . Q
 ;
 D INIT^RCDPAPLM   ; refresh the account profile list of bills
 ;
STOPX ;
 S VALMBCK="R"
 I $G(RCDPFXIT) S VALMBCK="Q"
 Q
 ;
TERM ;Fiscal Officer Terminated PRCA*4.5*315
 N GOTBILL,VALMY,RCBILLDA,RCDPGN,RCDPGC,RCDPGT,RCDPGQ,DIR,X,Y,DIRUT,DUOUT,DTOUT,DIROUT
 D FULL^VALM1
 D SELMULT(.VALMY) I '$O(VALMY(0)) G TERMX
 ;
 ; count the number of selected entries and put into RCDPGT
 S RCDPGN=0 F RCDPGT=0:1 S RCDPGN=$O(VALMY(RCDPGN)) Q:'RCDPGN
 ;
 W !
 S (RCDPGN,RCDPGC)=0 F  S RCDPGN=$O(VALMY(RCDPGN)) Q:'RCDPGN  D  Q:$G(RCDPFXIT)!$G(RCDPGQ)
 . S RCBILLDA=$G(@VALMAR@("IDX",RCDPGN,RCDPGN)) Q:'RCBILLDA
 . S RCDPGC=RCDPGC+1
 . W !,"  ======== Bill# ",$P($P($G(^PRCA(430,RCBILLDA,0)),U,1),"-",2)," (",RCDPGC," of ",RCDPGT," selected) ========",!
 . S GOTBILL=1
 . D 8^RCWROFF     ; Call into existing write-off routine for each bill selected
 . I $G(RCDPGQ) W " ... exiting Bill# loop" Q
 . ;
 . ; special break in between each bill
 . W ! S DIR(0)="E" S DIR("A")="Type <Enter> to continue"
 . I (RCDPGT-RCDPGC)>0 S DIR("A")=DIR("A")_" or '^' to exit this Bill# loop"    ; if there are still more bills in loop
 . D ^DIR K DIR W !
 . I $D(DIRUT) S RCDPGQ=1
 . Q
 ;
 D INIT^RCDPAPLM   ; refresh the account profile list of bills
 ;
TERMX ;
 S VALMBCK="R"
 I $G(RCDPFXIT) S VALMBCK="Q"
 Q
 ;
RECALLB ;Recall a Bill PRCA*4.5*315
 N GOTBILL,VALMY,RCBILLDA,RCDPGN,RCDPGC,RCDPGT,RCDPGQ,DIR,X,Y,DIRUT,DUOUT,DTOUT,DIROUT
 D FULL^VALM1
 D SELMULT(.VALMY) I '$O(VALMY(0)) G RECALBX
 ;
 ; count the number of selected entries and put into RCDPGT
 S RCDPGN=0 F RCDPGT=0:1 S RCDPGN=$O(VALMY(RCDPGN)) Q:'RCDPGN
 ;
 W !
 S (RCDPGN,RCDPGC)=0 F  S RCDPGN=$O(VALMY(RCDPGN)) Q:'RCDPGN  D  Q:$G(RCDPFXIT)!$G(RCDPGQ)
 . S RCBILLDA=$G(@VALMAR@("IDX",RCDPGN,RCDPGN)) Q:'RCBILLDA
 . S RCDPGC=RCDPGC+1
 . W !,"  ======== Bill# ",$P($P($G(^PRCA(430,RCBILLDA,0)),U,1),"-",2)," (",RCDPGC," of ",RCDPGT," selected) ========",!
 . S GOTBILL=1
 . D RCLLSETB^RCTCSPU    ; Call into existing recall code
 . I $G(RCDPGQ) W " ... exiting Bill# loop" Q
 . ;
 . ; special break in between each bill
 . W ! S DIR(0)="E" S DIR("A")="Type <Enter> to continue"
 . I (RCDPGT-RCDPGC)>0 S DIR("A")=DIR("A")_" or '^' to exit this Bill# loop"    ; if there are still more bills in loop
 . D ^DIR K DIR W !
 . I $D(DIRUT) S RCDPGQ=1
 . Q
 ;
 D INIT^RCDPAPLM   ; refresh the account profile list of bills
 ;
RECALBX ;
 S VALMBCK="R"
 I $G(RCDPFXIT) S VALMBCK="Q"
 Q
 ;
RECALLD ;Recall a Debtor PRCA*4.5*315
 N GOTDEBT,DIR,X,Y,DIRUT,DUOUT,DTOUT,DIROUT
 D FULL^VALM1
 S RCDEBTDA=+$G(RCDEBTDA)     ; RCDEBTDA is set by the ACCTPR^RCTCSWL - Account Profile action protocol
 I 'RCDEBTDA G RECALDX
 ;
 S GOTDEBT=1
 D RCLLSETD^RCTCSPU     ; Call into existing recall code for debtors
 D PAUSE^VALM1
 D INIT^RCDPAPLM        ; refresh the account profile list of bills
RECALDX ;
 S VALMBCK="R"
 I $G(RCDPFXIT) S VALMBCK="Q"
 Q
 ;
INC ;Increase Transaction PRCA*4.5*315
 N GOTBILL,VALMY,RCBILLDA,RCDPGN,RCDPGC,RCDPGT,RCDPGQ,DIR,X,Y,DIRUT,DUOUT,DTOUT,DIROUT
 D FULL^VALM1
 ;
 ; check on security key - same one used in the menu system for AR option PRCAC TR ADJUSTMENT
 I '$D(^XUSEC("PRCADJ",DUZ)) D  G INCX
 . W *7,!!?3,"You must hold the PRCADJ security key in order to access this option.",!
 . D PAUSE^VALM1
 . Q
 ;
 D SELMULT(.VALMY) I '$O(VALMY(0)) G INCX
 ;
 ; count the number of selected entries and put into RCDPGT
 S RCDPGN=0 F RCDPGT=0:1 S RCDPGN=$O(VALMY(RCDPGN)) Q:'RCDPGN
 ;
 W !
 S (RCDPGN,RCDPGC)=0 F  S RCDPGN=$O(VALMY(RCDPGN)) Q:'RCDPGN  D  Q:$G(RCDPFXIT)!$G(RCDPGQ)
 . S RCBILLDA=$G(@VALMAR@("IDX",RCDPGN,RCDPGN)) Q:'RCBILLDA
 . S RCDPGC=RCDPGC+1
 . W !,"  ======== Bill# ",$P($P($G(^PRCA(430,RCBILLDA,0)),U,1),"-",2)," (",RCDPGC," of ",RCDPGT," selected) ========",!
 . S GOTBILL=1
 . D INCREASE^RCBEADJ    ; Call into existing increase code
 . I $G(RCDPGQ) W " ... exiting Bill# loop" Q
 . ;
 . ; special break in between each bill
 . W ! S DIR(0)="E" S DIR("A")="Type <Enter> to continue"
 . I (RCDPGT-RCDPGC)>0 S DIR("A")=DIR("A")_" or '^' to exit this Bill# loop"    ; if there are still more bills in loop
 . D ^DIR K DIR W !
 . I $D(DIRUT) S RCDPGQ=1
 . Q
 ;
 D INIT^RCDPAPLM   ; refresh the account profile list of bills
 ;
INCX ;
 S VALMBCK="R"
 I $G(RCDPFXIT) S VALMBCK="Q"
 Q
 ;
DEC ;Decrease Transaction PRCA*4.5*315
 N GOTBILL,VALMY,RCBILLDA,RCDPGN,RCDPGC,RCDPGT,RCDPGQ,DIR,X,Y,DIRUT,DUOUT,DTOUT,DIROUT
 D FULL^VALM1
 ;
 ; check on security key - same one used in the menu system for AR option PRCAC TR ADJUSTMENT
 I '$D(^XUSEC("PRCADJ",DUZ)) D  G DECX
 . W *7,!!?3,"You must hold the PRCADJ security key in order to access this option.",!
 . D PAUSE^VALM1
 . Q
 ;
 D SELMULT(.VALMY) I '$O(VALMY(0)) G DECX
 ;
 ; count the number of selected entries and put into RCDPGT
 S RCDPGN=0 F RCDPGT=0:1 S RCDPGN=$O(VALMY(RCDPGN)) Q:'RCDPGN
 ;
 W !
 S (RCDPGN,RCDPGC)=0 F  S RCDPGN=$O(VALMY(RCDPGN)) Q:'RCDPGN  D  Q:$G(RCDPFXIT)!$G(RCDPGQ)
 . S RCBILLDA=$G(@VALMAR@("IDX",RCDPGN,RCDPGN)) Q:'RCBILLDA
 . S RCDPGC=RCDPGC+1
 . W !,"  ======== Bill# ",$P($P($G(^PRCA(430,RCBILLDA,0)),U,1),"-",2)," (",RCDPGC," of ",RCDPGT," selected) ========",!
 . S GOTBILL=1
 . D DECREASE^RCBEADJ    ; Call into existing decrease code
 . I $G(RCDPGQ) W " ... exiting Bill# loop" Q
 . ;
 . ; special break in between each bill
 . W ! S DIR(0)="E" S DIR("A")="Type <Enter> to continue"
 . I (RCDPGT-RCDPGC)>0 S DIR("A")=DIR("A")_" or '^' to exit this Bill# loop"    ; if there are still more bills in loop
 . D ^DIR K DIR W !
 . I $D(DIRUT) S RCDPGQ=1
 . Q
 ;
 D INIT^RCDPAPLM   ; refresh the account profile list of bills
 ;
DECX ;
 S VALMBCK="R"
 I $G(RCDPFXIT) S VALMBCK="Q"
 Q
 ;
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRCDPAPL1   11545     printed  Sep 23, 2025@19:19:49                                                                                                                                                                                                   Page 2
RCDPAPL1  ;WISC/RFJ-account profile listmanager options ;1 Jun 99
 +1       ;;4.5;Accounts Receivable;**114,315**;Mar 20, 1995;Build 67
 +2       ;;Per VA Directive 6402, this routine should not be modified.
 +3        QUIT 
 +4       ;
ACCOUNT   ;  select a new account
 +1        DO FULL^VALM1
 +2        SET VALMBCK="R"
 +3       ;
 +4        WRITE !!,"This option will allow you to select a new account."
 +5        WRITE !
           SET %=$$SELACCT^RCDPAPLM
 +6        IF %<1
               QUIT 
 +7        SET RCDEBTDA=%
 +8       ;
 +9        DO INIT^RCDPAPLM
 +10       QUIT 
 +11      ;
BILLTRAN  ;  show transactions for a bill
 +1        NEW RCBILLDA
 +2        SET VALMBCK="R"
 +3       ;
 +4        SET RCBILLDA=$$SELBILL
           IF 'RCBILLDA
               QUIT 
 +5        DO EN^VALM("RCDP TRANSACTIONS LIST")
 +6       ;
 +7        DO INIT^RCDPAPLM
 +8        SET VALMBCK="R"
 +9       ;  fast exit
 +10       IF $GET(RCDPFXIT)
               SET VALMBCK="Q"
 +11       QUIT 
 +12      ;
BILLPROF  ;  bill profile
 +1        NEW RCBILLDA
 +2        SET VALMBCK="R"
 +3       ;
 +4        SET RCBILLDA=$$SELBILL
           IF 'RCBILLDA
               QUIT 
 +5        DO EN^VALM("RCDP BILL PROFILE")
 +6       ;
 +7        DO INIT^RCDPAPLM
 +8        SET VALMBCK="R"
 +9       ;  fast exit
 +10       IF $GET(RCDPFXIT)
               SET VALMBCK="Q"
 +11       QUIT 
 +12      ;
SELBILL() ;  select bill from list
 +1        NEW VALMBG,VALMLST,VALMY
 +2       ;  if no bills, quit
 +3        IF '$ORDER(^TMP("RCDPAPLM",$JOB,"IDX",0))
               SET VALMSG="There are NO bills to profile."
               QUIT 0
 +4       ;
 +5       ;  if only one bill, select that one automatically
 +6        IF '$ORDER(^TMP("RCDPAPLM",$JOB,"IDX",1))
               QUIT +$GET(^TMP("RCDPAPLM",$JOB,"IDX",1,1))
 +7       ;
 +8       ;  select the entry from the list
 +9       ;  if not on first screen, make sure selection begins with 1
 +10       SET VALMBG=1
 +11      ;  if not on last screen, make sure selection ends with last
 +12       SET VALMLST=$ORDER(^TMP("RCDPAPLM",$JOB,"IDX",999999999),-1)
 +13       DO EN^VALM2($GET(XQORNOD(0)),"OS")
 +14       QUIT +$GET(^TMP("RCDPAPLM",$JOB,"IDX",+$ORDER(VALMY(0)),+$ORDER(VALMY(0))))
 +15      ;
SELMULT(VALMY) ; select 0, 1, or more bills from the list
 +1       ; Output VALMY array, pass by reference.  Return format is VALMY(#)=""
 +2       ; The calling routine must then process any of the entries found in the VALMY array, one at a time.
 +3       ;
 +4        NEW VALMBG,VALMLST
 +5        KILL VALMY
 +6       ;
 +7       ; if no bills in list, then update screen message and exit
 +8        IF '$ORDER(@VALMAR@("IDX",0))
               SET VALMSG="There are no bills to select."
               GOTO SELMX
 +9       ;
 +10      ; if there is only 1 bill in list then add that one into the VALMY array and quit
 +11       IF '$ORDER(@VALMAR@("IDX",1))
               SET VALMY(1)=""
               GOTO SELMX
 +12      ;
 +13      ; Multiple bills in list. Ask user to select 1 or more of them
 +14      ; first possible entry
           SET VALMBG=1
 +15      ; last possible entry
           SET VALMLST=$ORDER(@VALMAR@("IDX",999999999),-1)
 +16      ;
 +17      ; call the selector API
 +18       DO EN^VALM2($GET(XQORNOD(0)),"O")
 +19      ;
SELMX     ;
 +1        QUIT 
 +2       ;
SUSPEND   ;Suspend a Bill PRCA*4.5*315
 +1        NEW GOTBILL,VALMY,RCBILLDA,RCDPGN,RCDPGC,RCDPGT,RCDPGQ,DIR,X,Y,DIRUT,DUOUT,DTOUT,DIROUT
 +2        DO FULL^VALM1
 +3        DO SELMULT(.VALMY)
           IF '$ORDER(VALMY(0))
               GOTO SUSPX
 +4       ;
 +5       ; count the number of selected entries and put into RCDPGT
 +6        SET RCDPGN=0
           FOR RCDPGT=0:1
               SET RCDPGN=$ORDER(VALMY(RCDPGN))
               if 'RCDPGN
                   QUIT 
 +7       ;
 +8        WRITE !
 +9        SET (RCDPGN,RCDPGC)=0
           FOR 
               SET RCDPGN=$ORDER(VALMY(RCDPGN))
               if 'RCDPGN
                   QUIT 
               Begin DoDot:1
 +10               SET RCBILLDA=$GET(@VALMAR@("IDX",RCDPGN,RCDPGN))
                   if 'RCBILLDA
                       QUIT 
 +11               SET RCDPGC=RCDPGC+1
 +12               WRITE !,"  ======== Bill# ",$PIECE($PIECE($GET(^PRCA(430,RCBILLDA,0)),U,1),"-",2)," (",RCDPGC," of ",RCDPGT," selected) ========",!
 +13               SET GOTBILL=1
 +14      ; Call into existing write-off routine for each bill selected
                   DO 47^RCWROFF
 +15               IF $GET(RCDPGQ)
                       WRITE " ... exiting Bill# loop"
                       QUIT 
 +16      ;
 +17      ; special break in between each bill
 +18               WRITE !
                   SET DIR(0)="E"
                   SET DIR("A")="Type <Enter> to continue"
 +19      ; if there are still more bills in loop
                   IF (RCDPGT-RCDPGC)>0
                       SET DIR("A")=DIR("A")_" or '^' to exit this Bill# loop"
 +20               DO ^DIR
                   KILL DIR
                   WRITE !
 +21               IF $DATA(DIRUT)
                       SET RCDPGQ=1
 +22               QUIT 
               End DoDot:1
               if $GET(RCDPFXIT)!$GET(RCDPGQ)
                   QUIT 
 +23      ;
 +24      ; refresh the account profile list of bills
           DO INIT^RCDPAPLM
 +25      ;
SUSPX     ;
 +1        SET VALMBCK="R"
 +2        IF $GET(RCDPFXIT)
               SET VALMBCK="Q"
 +3        QUIT 
 +4       ;
REESTAB   ; Re-Establish a Bill - PRCA*4.5*315
 +1        NEW GOTBILL,VALMY,RCBILLDA,RCDPGN,RCDPGC,RCDPGT,RCDPGQ,DIR,X,Y,DIRUT,DUOUT,DTOUT,DIROUT
 +2        DO FULL^VALM1
 +3        DO SELMULT(.VALMY)
           IF '$ORDER(VALMY(0))
               GOTO REESTX
 +4       ;
 +5       ; count the number of selected entries and put into RCDPGT
 +6        SET RCDPGN=0
           FOR RCDPGT=0:1
               SET RCDPGN=$ORDER(VALMY(RCDPGN))
               if 'RCDPGN
                   QUIT 
 +7       ;
 +8        WRITE !
 +9        SET (RCDPGN,RCDPGC)=0
           FOR 
               SET RCDPGN=$ORDER(VALMY(RCDPGN))
               if 'RCDPGN
                   QUIT 
               Begin DoDot:1
 +10               SET RCBILLDA=$GET(@VALMAR@("IDX",RCDPGN,RCDPGN))
                   if 'RCBILLDA
                       QUIT 
 +11               SET RCDPGC=RCDPGC+1
 +12               WRITE !,"  ======== Bill# ",$PIECE($PIECE($GET(^PRCA(430,RCBILLDA,0)),U,1),"-",2)," (",RCDPGC," of ",RCDPGT," selected) ========",!
 +13               SET GOTBILL=1
 +14      ; Call into existing Re-Establish bill routine for each bill selected
                   DO ENAP^PRCAWREA(RCBILLDA)
 +15      ;
 +16      ; special break in between each bill
 +17               WRITE !
                   SET DIR(0)="E"
                   SET DIR("A")="Type <Enter> to continue"
 +18      ; if there are still more bills in loop
                   IF (RCDPGT-RCDPGC)>0
                       SET DIR("A")=DIR("A")_" or '^' to exit this Bill# loop"
 +19               DO ^DIR
                   KILL DIR
                   WRITE !
 +20               IF $DATA(DIRUT)
                       SET RCDPGQ=1
 +21               QUIT 
               End DoDot:1
               if $GET(RCDPFXIT)!$GET(RCDPGQ)
                   QUIT 
 +22      ;
 +23      ; refresh the account profile list of bills
           DO INIT^RCDPAPLM
 +24      ;
REESTX    ;
 +1        SET VALMBCK="R"
 +2        IF $GET(RCDPFXIT)
               SET VALMBCK="Q"
 +3        QUIT 
 +4       ;
STOP      ;Stop a Bill in Cross-servicing (Debtor) PRCA*4.5*315
 +1        NEW GOTBILL,VALMY,RCBILLDA,RCDPGN,RCDPGC,RCDPGT,RCDPGQ,DIR,X,Y,DIRUT,DUOUT,DTOUT,DIROUT
 +2        DO FULL^VALM1
 +3        DO SELMULT(.VALMY)
           IF '$ORDER(VALMY(0))
               GOTO STOPX
 +4       ;
 +5       ; count the number of selected entries and put into RCDPGT
 +6        SET RCDPGN=0
           FOR RCDPGT=0:1
               SET RCDPGN=$ORDER(VALMY(RCDPGN))
               if 'RCDPGN
                   QUIT 
 +7       ;
 +8        WRITE !
 +9        SET (RCDPGN,RCDPGC)=0
           FOR 
               SET RCDPGN=$ORDER(VALMY(RCDPGN))
               if 'RCDPGN
                   QUIT 
               Begin DoDot:1
 +10               SET RCBILLDA=$GET(@VALMAR@("IDX",RCDPGN,RCDPGN))
                   if 'RCBILLDA
                       QUIT 
 +11               SET RCDPGC=RCDPGC+1
 +12               WRITE !,"  ======== Bill# ",$PIECE($PIECE($GET(^PRCA(430,RCBILLDA,0)),U,1),"-",2)," (",RCDPGC," of ",RCDPGT," selected) ========",!
 +13               SET GOTBILL=1
 +14      ;Call into existing TOP routine for each bill selected
                   DO STOP^RCTCSPU
 +15               IF $GET(RCDPGQ)
                       WRITE " ... exiting Bill# loop"
                       QUIT 
 +16      ;
 +17      ; special break in between each bill
 +18               WRITE !
                   SET DIR(0)="E"
                   SET DIR("A")="Type <Enter> to continue"
 +19      ; if there are still more bills in loop
                   IF (RCDPGT-RCDPGC)>0
                       SET DIR("A")=DIR("A")_" or '^' to exit this Bill# loop"
 +20               DO ^DIR
                   KILL DIR
                   WRITE !
 +21               IF $DATA(DIRUT)
                       SET RCDPGQ=1
 +22               QUIT 
               End DoDot:1
               if $GET(RCDPFXIT)!$GET(RCDPGQ)
                   QUIT 
 +23      ;
 +24      ; refresh the account profile list of bills
           DO INIT^RCDPAPLM
 +25      ;
STOPX     ;
 +1        SET VALMBCK="R"
 +2        IF $GET(RCDPFXIT)
               SET VALMBCK="Q"
 +3        QUIT 
 +4       ;
TERM      ;Fiscal Officer Terminated PRCA*4.5*315
 +1        NEW GOTBILL,VALMY,RCBILLDA,RCDPGN,RCDPGC,RCDPGT,RCDPGQ,DIR,X,Y,DIRUT,DUOUT,DTOUT,DIROUT
 +2        DO FULL^VALM1
 +3        DO SELMULT(.VALMY)
           IF '$ORDER(VALMY(0))
               GOTO TERMX
 +4       ;
 +5       ; count the number of selected entries and put into RCDPGT
 +6        SET RCDPGN=0
           FOR RCDPGT=0:1
               SET RCDPGN=$ORDER(VALMY(RCDPGN))
               if 'RCDPGN
                   QUIT 
 +7       ;
 +8        WRITE !
 +9        SET (RCDPGN,RCDPGC)=0
           FOR 
               SET RCDPGN=$ORDER(VALMY(RCDPGN))
               if 'RCDPGN
                   QUIT 
               Begin DoDot:1
 +10               SET RCBILLDA=$GET(@VALMAR@("IDX",RCDPGN,RCDPGN))
                   if 'RCBILLDA
                       QUIT 
 +11               SET RCDPGC=RCDPGC+1
 +12               WRITE !,"  ======== Bill# ",$PIECE($PIECE($GET(^PRCA(430,RCBILLDA,0)),U,1),"-",2)," (",RCDPGC," of ",RCDPGT," selected) ========",!
 +13               SET GOTBILL=1
 +14      ; Call into existing write-off routine for each bill selected
                   DO 8^RCWROFF
 +15               IF $GET(RCDPGQ)
                       WRITE " ... exiting Bill# loop"
                       QUIT 
 +16      ;
 +17      ; special break in between each bill
 +18               WRITE !
                   SET DIR(0)="E"
                   SET DIR("A")="Type <Enter> to continue"
 +19      ; if there are still more bills in loop
                   IF (RCDPGT-RCDPGC)>0
                       SET DIR("A")=DIR("A")_" or '^' to exit this Bill# loop"
 +20               DO ^DIR
                   KILL DIR
                   WRITE !
 +21               IF $DATA(DIRUT)
                       SET RCDPGQ=1
 +22               QUIT 
               End DoDot:1
               if $GET(RCDPFXIT)!$GET(RCDPGQ)
                   QUIT 
 +23      ;
 +24      ; refresh the account profile list of bills
           DO INIT^RCDPAPLM
 +25      ;
TERMX     ;
 +1        SET VALMBCK="R"
 +2        IF $GET(RCDPFXIT)
               SET VALMBCK="Q"
 +3        QUIT 
 +4       ;
RECALLB   ;Recall a Bill PRCA*4.5*315
 +1        NEW GOTBILL,VALMY,RCBILLDA,RCDPGN,RCDPGC,RCDPGT,RCDPGQ,DIR,X,Y,DIRUT,DUOUT,DTOUT,DIROUT
 +2        DO FULL^VALM1
 +3        DO SELMULT(.VALMY)
           IF '$ORDER(VALMY(0))
               GOTO RECALBX
 +4       ;
 +5       ; count the number of selected entries and put into RCDPGT
 +6        SET RCDPGN=0
           FOR RCDPGT=0:1
               SET RCDPGN=$ORDER(VALMY(RCDPGN))
               if 'RCDPGN
                   QUIT 
 +7       ;
 +8        WRITE !
 +9        SET (RCDPGN,RCDPGC)=0
           FOR 
               SET RCDPGN=$ORDER(VALMY(RCDPGN))
               if 'RCDPGN
                   QUIT 
               Begin DoDot:1
 +10               SET RCBILLDA=$GET(@VALMAR@("IDX",RCDPGN,RCDPGN))
                   if 'RCBILLDA
                       QUIT 
 +11               SET RCDPGC=RCDPGC+1
 +12               WRITE !,"  ======== Bill# ",$PIECE($PIECE($GET(^PRCA(430,RCBILLDA,0)),U,1),"-",2)," (",RCDPGC," of ",RCDPGT," selected) ========",!
 +13               SET GOTBILL=1
 +14      ; Call into existing recall code
                   DO RCLLSETB^RCTCSPU
 +15               IF $GET(RCDPGQ)
                       WRITE " ... exiting Bill# loop"
                       QUIT 
 +16      ;
 +17      ; special break in between each bill
 +18               WRITE !
                   SET DIR(0)="E"
                   SET DIR("A")="Type <Enter> to continue"
 +19      ; if there are still more bills in loop
                   IF (RCDPGT-RCDPGC)>0
                       SET DIR("A")=DIR("A")_" or '^' to exit this Bill# loop"
 +20               DO ^DIR
                   KILL DIR
                   WRITE !
 +21               IF $DATA(DIRUT)
                       SET RCDPGQ=1
 +22               QUIT 
               End DoDot:1
               if $GET(RCDPFXIT)!$GET(RCDPGQ)
                   QUIT 
 +23      ;
 +24      ; refresh the account profile list of bills
           DO INIT^RCDPAPLM
 +25      ;
RECALBX   ;
 +1        SET VALMBCK="R"
 +2        IF $GET(RCDPFXIT)
               SET VALMBCK="Q"
 +3        QUIT 
 +4       ;
RECALLD   ;Recall a Debtor PRCA*4.5*315
 +1        NEW GOTDEBT,DIR,X,Y,DIRUT,DUOUT,DTOUT,DIROUT
 +2        DO FULL^VALM1
 +3       ; RCDEBTDA is set by the ACCTPR^RCTCSWL - Account Profile action protocol
           SET RCDEBTDA=+$GET(RCDEBTDA)
 +4        IF 'RCDEBTDA
               GOTO RECALDX
 +5       ;
 +6        SET GOTDEBT=1
 +7       ; Call into existing recall code for debtors
           DO RCLLSETD^RCTCSPU
 +8        DO PAUSE^VALM1
 +9       ; refresh the account profile list of bills
           DO INIT^RCDPAPLM
RECALDX   ;
 +1        SET VALMBCK="R"
 +2        IF $GET(RCDPFXIT)
               SET VALMBCK="Q"
 +3        QUIT 
 +4       ;
INC       ;Increase Transaction PRCA*4.5*315
 +1        NEW GOTBILL,VALMY,RCBILLDA,RCDPGN,RCDPGC,RCDPGT,RCDPGQ,DIR,X,Y,DIRUT,DUOUT,DTOUT,DIROUT
 +2        DO FULL^VALM1
 +3       ;
 +4       ; check on security key - same one used in the menu system for AR option PRCAC TR ADJUSTMENT
 +5        IF '$DATA(^XUSEC("PRCADJ",DUZ))
               Begin DoDot:1
 +6                WRITE *7,!!?3,"You must hold the PRCADJ security key in order to access this option.",!
 +7                DO PAUSE^VALM1
 +8                QUIT 
               End DoDot:1
               GOTO INCX
 +9       ;
 +10       DO SELMULT(.VALMY)
           IF '$ORDER(VALMY(0))
               GOTO INCX
 +11      ;
 +12      ; count the number of selected entries and put into RCDPGT
 +13       SET RCDPGN=0
           FOR RCDPGT=0:1
               SET RCDPGN=$ORDER(VALMY(RCDPGN))
               if 'RCDPGN
                   QUIT 
 +14      ;
 +15       WRITE !
 +16       SET (RCDPGN,RCDPGC)=0
           FOR 
               SET RCDPGN=$ORDER(VALMY(RCDPGN))
               if 'RCDPGN
                   QUIT 
               Begin DoDot:1
 +17               SET RCBILLDA=$GET(@VALMAR@("IDX",RCDPGN,RCDPGN))
                   if 'RCBILLDA
                       QUIT 
 +18               SET RCDPGC=RCDPGC+1
 +19               WRITE !,"  ======== Bill# ",$PIECE($PIECE($GET(^PRCA(430,RCBILLDA,0)),U,1),"-",2)," (",RCDPGC," of ",RCDPGT," selected) ========",!
 +20               SET GOTBILL=1
 +21      ; Call into existing increase code
                   DO INCREASE^RCBEADJ
 +22               IF $GET(RCDPGQ)
                       WRITE " ... exiting Bill# loop"
                       QUIT 
 +23      ;
 +24      ; special break in between each bill
 +25               WRITE !
                   SET DIR(0)="E"
                   SET DIR("A")="Type <Enter> to continue"
 +26      ; if there are still more bills in loop
                   IF (RCDPGT-RCDPGC)>0
                       SET DIR("A")=DIR("A")_" or '^' to exit this Bill# loop"
 +27               DO ^DIR
                   KILL DIR
                   WRITE !
 +28               IF $DATA(DIRUT)
                       SET RCDPGQ=1
 +29               QUIT 
               End DoDot:1
               if $GET(RCDPFXIT)!$GET(RCDPGQ)
                   QUIT 
 +30      ;
 +31      ; refresh the account profile list of bills
           DO INIT^RCDPAPLM
 +32      ;
INCX      ;
 +1        SET VALMBCK="R"
 +2        IF $GET(RCDPFXIT)
               SET VALMBCK="Q"
 +3        QUIT 
 +4       ;
DEC       ;Decrease Transaction PRCA*4.5*315
 +1        NEW GOTBILL,VALMY,RCBILLDA,RCDPGN,RCDPGC,RCDPGT,RCDPGQ,DIR,X,Y,DIRUT,DUOUT,DTOUT,DIROUT
 +2        DO FULL^VALM1
 +3       ;
 +4       ; check on security key - same one used in the menu system for AR option PRCAC TR ADJUSTMENT
 +5        IF '$DATA(^XUSEC("PRCADJ",DUZ))
               Begin DoDot:1
 +6                WRITE *7,!!?3,"You must hold the PRCADJ security key in order to access this option.",!
 +7                DO PAUSE^VALM1
 +8                QUIT 
               End DoDot:1
               GOTO DECX
 +9       ;
 +10       DO SELMULT(.VALMY)
           IF '$ORDER(VALMY(0))
               GOTO DECX
 +11      ;
 +12      ; count the number of selected entries and put into RCDPGT
 +13       SET RCDPGN=0
           FOR RCDPGT=0:1
               SET RCDPGN=$ORDER(VALMY(RCDPGN))
               if 'RCDPGN
                   QUIT 
 +14      ;
 +15       WRITE !
 +16       SET (RCDPGN,RCDPGC)=0
           FOR 
               SET RCDPGN=$ORDER(VALMY(RCDPGN))
               if 'RCDPGN
                   QUIT 
               Begin DoDot:1
 +17               SET RCBILLDA=$GET(@VALMAR@("IDX",RCDPGN,RCDPGN))
                   if 'RCBILLDA
                       QUIT 
 +18               SET RCDPGC=RCDPGC+1
 +19               WRITE !,"  ======== Bill# ",$PIECE($PIECE($GET(^PRCA(430,RCBILLDA,0)),U,1),"-",2)," (",RCDPGC," of ",RCDPGT," selected) ========",!
 +20               SET GOTBILL=1
 +21      ; Call into existing decrease code
                   DO DECREASE^RCBEADJ
 +22               IF $GET(RCDPGQ)
                       WRITE " ... exiting Bill# loop"
                       QUIT 
 +23      ;
 +24      ; special break in between each bill
 +25               WRITE !
                   SET DIR(0)="E"
                   SET DIR("A")="Type <Enter> to continue"
 +26      ; if there are still more bills in loop
                   IF (RCDPGT-RCDPGC)>0
                       SET DIR("A")=DIR("A")_" or '^' to exit this Bill# loop"
 +27               DO ^DIR
                   KILL DIR
                   WRITE !
 +28               IF $DATA(DIRUT)
                       SET RCDPGQ=1
 +29               QUIT 
               End DoDot:1
               if $GET(RCDPFXIT)!$GET(RCDPGQ)
                   QUIT 
 +30      ;
 +31      ; refresh the account profile list of bills
           DO INIT^RCDPAPLM
 +32      ;
DECX      ;
 +1        SET VALMBCK="R"
 +2        IF $GET(RCDPFXIT)
               SET VALMBCK="Q"
 +3        QUIT 
 +4       ;