- BARMAWO2 ; IHS/SD/LSL - Automatic Write-Off 2000 - Reversal ;
- ;;1.8;IHS ACCOUNTS RECEIVABLE;**28**;OCT 26, 2005;Build 92
- ;
- ; IHS/ASDS/LSL - 09/07/01 - Routine created
- ; Reverse all transactions of transaction type 43 (Adjustment)
- ; with Adjustment category 3 (Write-off)
- ; with Adjustment type 501 (Auto Write-off 2000)
- ;
- ; *********************************************************************
- ;STOP!!! STOP!!!! STOP!!!!
- ;IHS/SD/SDR 1.8*28 HEAT293633 - This is an old, outdated routine and shouldn't be used
- ; without review and possible changes. Routine EN^BARMAWO6 should be used instead. A
- ; quit has been added to this routine so it can't be accidentally run.
- ; *********************************************************************
- Q
- ;
- EN ; EP - IHS/DIT/CPC 1.8*28 CR 8349 START
- W "*********************************************************************",!
- W " STOP!!! STOP!!!! STOP!!!!",!
- W "This is an old, outdated routine and shouldn't be used. Please ",!
- W "request assistance from OIT before starting the write-off process.",!
- W "*********************************************************************",!
- H 10
- Q ;IHS/DIT/CPC 1.8*28 CR 8349 STOP
- D NOTE
- Q:'BARCONT
- D NOW^%DTC
- S BARNOW=%
- D LOOP
- W !!!,BARCNT," Bills with Auto Write off 2000 (501) reversed."
- D XIT
- Q
- ; *********************************************************************
- ;
- NOTE ;
- S BARCONT=0
- W !!,$$EN^BARVDF("RVN"),"NOTE:",$$EN^BARVDF("RVF")
- W ?7,"All transactions (at all facilities) of transaction type 43 (Adjustment)"
- W !?7,"with Adjustment Category 3 (Write Off)"
- W !?7,"and Adjustment Type 501 (Auto Write-off 2000)"
- W !?7,"will be reversed by creating a new transaction of the same type,"
- W !?7,"but negative dollar amount."
- W !!?7,$$EN^BARVDF("RVN"),"ALSO,",$$EN^BARVDF("RVF")," the bill will be re-opened in 3PB with a balance due."
- ;
- D CHECK ; See if this has been run before
- Q:BARDONE
- ;
- W !!,"The bill number and amount written off will scroll by on the screen"
- W !,"if you wish to capture this information.",!
- ;
- K DIR
- S DIR(0)="Y"
- S DIR("A")="Continue"
- S DIR("B")="No"
- D ^DIR
- K DIR
- S:Y=1 BARCONT=1
- Q
- ; *********************************************************************
- ;
- CHECK ;
- ; Check to see if this option has already been run
- S BARDONE=0
- I $D(^BARTMP("AWO-REVERSE")) D Q
- . S Y=^BARTMP("AWO-REVERSE")
- . D DD^%DT
- . S BARDONDT=Y
- . S BARDONE=1
- . S $P(BARDASH,"*",54)=""
- . W !!?14,BARDASH
- . W !?14,"* This option was already executed on ",BARDONDT,". *"
- . W !?14,"*",?24,"It may not be executed again.",?66,"*"
- . W !?14,BARDASH
- . D EOP^BARUTL(0)
- Q
- ; *********************************************************************
- ;
- LOOP ;
- ; Loop all DUZ(2) in transaction file.
- S ^BARTMP("AWO-REVERSE")=DT
- S BARCNT=0
- S BARHOLD=DUZ(2)
- S DUZ(2)=0
- F S DUZ(2)=$O(^BARTR(DUZ(2))) Q:'+DUZ(2) D TRANS
- S DUZ(2)=BARHOLD
- Q
- ; *********************************************************************
- ;
- TRANS ;
- ; Loop transactions after 12/18/2000 @ 7:00 for each DUZ(2)
- ; 12/18/2000 @ 7:00 used because this is when first AWO coding was
- ; completed. Code 501 did not exist before then.
- S BARDTTR=3001228.07
- F S BARDTTR=$O(^BARTR(DUZ(2),BARDTTR)) Q:('+BARDTTR!(BARDTTR>BARNOW)) D ISITAWO
- Q
- ; *********************************************************************
- ;
- ISITAWO ;
- ; Check to see if trans is AWO 2000
- S BARTR(0)=$G(^BARTR(DUZ(2),BARDTTR,0)) ; A/R Transaction 0 node
- S BARTR(1)=$G(^BARTR(DUZ(2),BARDTTR,1)) ; A/R Transaction 1 node
- I $P(BARTR(1),U)=43,$P(BARTR(1),U,2)=3,$P(BARTR(1),U,3)=501 D
- . D REVERSE
- . D ROLLBILL
- Q
- ; *********************************************************************
- ;
- REVERSE ;
- S DIE=90050.03
- S DR="2////^S X=-$P(BARTR(0),U,2)" ; Credit ($$$)
- S DR=DR_";4////^S X=$P(BARTR(0),U,4)" ; A/R Bill
- S DR=DR_";5////^S X=$P(BARTR(0),U,5)" ; A/R Patient
- S DR=DR_";6////^S X=$P(BARTR(0),U,6)" ; A/R Account
- S DR=DR_";8////^S X=$P(BARTR(0),U,8)" ; Parent Location
- S DR=DR_";9////^S X=$P(BARTR(0),U,9)" ; Parent ASUFAC
- S DR=DR_";10////^S X=$P(BARTR(0),U,10)" ; A/R Section
- S DR=DR_";11////^S X=$P(BARTR(0),U,11)" ; Visit location
- S DR=DR_";12////^S X=DT" ; Date
- S DR=DR_";13////^S X=DUZ" ; A/R Entry by
- S DR=DR_";101////43" ; Transaction type (Adj)
- S DR=DR_";102////3" ; Adj Category (Write off)
- S DR=DR_";103////501" ; Adj Type (Auto Write off 2000)
- S DIDEL=90050
- K DIDEL,DIE,DA,DR
- K BARBL
- S BARCNT=BARCNT+1
- S BARBILL=$$GET1^DIQ(90050.01,$P(BARTR(0),U,4),.01)
- W !,BARBILL,?25," for ",$J($FN(-$P(BARTR(0),U,2),",",2),10)," written off (reversed)."
- Q
- ; *********************************************************************
- ;
- ROLLBILL ;
- Q
- ; *********************************************************************
- ;
- BILLED ;
- ; Mark bill in 3PB Bill file as BILLED
- S DIE="^ABMDBILL(DUZ(2),"
- S DA=ABMP("BDFN")
- S DR=".04////B"
- D ^DIE
- K DR
- Q
- ; *********************************************************************
- ;
- XIT ;
- D ^BARVKL0
- Q
- BARMAWO2 ; IHS/SD/LSL - Automatic Write-Off 2000 - Reversal ;
- +1 ;;1.8;IHS ACCOUNTS RECEIVABLE;**28**;OCT 26, 2005;Build 92
- +2 ;
- +3 ; IHS/ASDS/LSL - 09/07/01 - Routine created
- +4 ; Reverse all transactions of transaction type 43 (Adjustment)
- +5 ; with Adjustment category 3 (Write-off)
- +6 ; with Adjustment type 501 (Auto Write-off 2000)
- +7 ;
- +8 ; *********************************************************************
- +9 ;STOP!!! STOP!!!! STOP!!!!
- +10 ;IHS/SD/SDR 1.8*28 HEAT293633 - This is an old, outdated routine and shouldn't be used
- +11 ; without review and possible changes. Routine EN^BARMAWO6 should be used instead. A
- +12 ; quit has been added to this routine so it can't be accidentally run.
- +13 ; *********************************************************************
- +14 QUIT
- +15 ;
- EN ; EP - IHS/DIT/CPC 1.8*28 CR 8349 START
- +1 WRITE "*********************************************************************",!
- +2 WRITE " STOP!!! STOP!!!! STOP!!!!",!
- +3 WRITE "This is an old, outdated routine and shouldn't be used. Please ",!
- +4 WRITE "request assistance from OIT before starting the write-off process.",!
- +5 WRITE "*********************************************************************",!
- +6 HANG 10
- +7 ;IHS/DIT/CPC 1.8*28 CR 8349 STOP
- QUIT
- +8 DO NOTE
- +9 IF 'BARCONT
- QUIT
- +10 DO NOW^%DTC
- +11 SET BARNOW=%
- +12 DO LOOP
- +13 WRITE !!!,BARCNT," Bills with Auto Write off 2000 (501) reversed."
- +14 DO XIT
- +15 QUIT
- +16 ; *********************************************************************
- +17 ;
- NOTE ;
- +1 SET BARCONT=0
- +2 WRITE !!,$$EN^BARVDF("RVN"),"NOTE:",$$EN^BARVDF("RVF")
- +3 WRITE ?7,"All transactions (at all facilities) of transaction type 43 (Adjustment)"
- +4 WRITE !?7,"with Adjustment Category 3 (Write Off)"
- +5 WRITE !?7,"and Adjustment Type 501 (Auto Write-off 2000)"
- +6 WRITE !?7,"will be reversed by creating a new transaction of the same type,"
- +7 WRITE !?7,"but negative dollar amount."
- +8 WRITE !!?7,$$EN^BARVDF("RVN"),"ALSO,",$$EN^BARVDF("RVF")," the bill will be re-opened in 3PB with a balance due."
- +9 ;
- +10 ; See if this has been run before
- DO CHECK
- +11 IF BARDONE
- QUIT
- +12 ;
- +13 WRITE !!,"The bill number and amount written off will scroll by on the screen"
- +14 WRITE !,"if you wish to capture this information.",!
- +15 ;
- +16 KILL DIR
- +17 SET DIR(0)="Y"
- +18 SET DIR("A")="Continue"
- +19 SET DIR("B")="No"
- +20 DO ^DIR
- +21 KILL DIR
- +22 IF Y=1
- SET BARCONT=1
- +23 QUIT
- +24 ; *********************************************************************
- +25 ;
- CHECK ;
- +1 ; Check to see if this option has already been run
- +2 SET BARDONE=0
- +3 IF $DATA(^BARTMP("AWO-REVERSE"))
- Begin DoDot:1
- +4 SET Y=^BARTMP("AWO-REVERSE")
- +5 DO DD^%DT
- +6 SET BARDONDT=Y
- +7 SET BARDONE=1
- +8 SET $PIECE(BARDASH,"*",54)=""
- +9 WRITE !!?14,BARDASH
- +10 WRITE !?14,"* This option was already executed on ",BARDONDT,". *"
- +11 WRITE !?14,"*",?24,"It may not be executed again.",?66,"*"
- +12 WRITE !?14,BARDASH
- +13 DO EOP^BARUTL(0)
- End DoDot:1
- QUIT
- +14 QUIT
- +15 ; *********************************************************************
- +16 ;
- LOOP ;
- +1 ; Loop all DUZ(2) in transaction file.
- +2 SET ^BARTMP("AWO-REVERSE")=DT
- +3 SET BARCNT=0
- +4 SET BARHOLD=DUZ(2)
- +5 SET DUZ(2)=0
- +6 FOR
- SET DUZ(2)=$ORDER(^BARTR(DUZ(2)))
- IF '+DUZ(2)
- QUIT
- DO TRANS
- +7 SET DUZ(2)=BARHOLD
- +8 QUIT
- +9 ; *********************************************************************
- +10 ;
- TRANS ;
- +1 ; Loop transactions after 12/18/2000 @ 7:00 for each DUZ(2)
- +2 ; 12/18/2000 @ 7:00 used because this is when first AWO coding was
- +3 ; completed. Code 501 did not exist before then.
- +4 SET BARDTTR=3001228.07
- +5 FOR
- SET BARDTTR=$ORDER(^BARTR(DUZ(2),BARDTTR))
- IF ('+BARDTTR!(BARDTTR>BARNOW))
- QUIT
- DO ISITAWO
- +6 QUIT
- +7 ; *********************************************************************
- +8 ;
- ISITAWO ;
- +1 ; Check to see if trans is AWO 2000
- +2 ; A/R Transaction 0 node
- SET BARTR(0)=$GET(^BARTR(DUZ(2),BARDTTR,0))
- +3 ; A/R Transaction 1 node
- SET BARTR(1)=$GET(^BARTR(DUZ(2),BARDTTR,1))
- +4 IF $PIECE(BARTR(1),U)=43
- IF $PIECE(BARTR(1),U,2)=3
- IF $PIECE(BARTR(1),U,3)=501
- Begin DoDot:1
- +5 DO REVERSE
- +6 DO ROLLBILL
- End DoDot:1
- +7 QUIT
- +8 ; *********************************************************************
- +9 ;
- REVERSE ;
- +1 SET DIE=90050.03
- +2 ; Credit ($$$)
- SET DR="2////^S X=-$P(BARTR(0),U,2)"
- +3 ; A/R Bill
- SET DR=DR_";4////^S X=$P(BARTR(0),U,4)"
- +4 ; A/R Patient
- SET DR=DR_";5////^S X=$P(BARTR(0),U,5)"
- +5 ; A/R Account
- SET DR=DR_";6////^S X=$P(BARTR(0),U,6)"
- +6 ; Parent Location
- SET DR=DR_";8////^S X=$P(BARTR(0),U,8)"
- +7 ; Parent ASUFAC
- SET DR=DR_";9////^S X=$P(BARTR(0),U,9)"
- +8 ; A/R Section
- SET DR=DR_";10////^S X=$P(BARTR(0),U,10)"
- +9 ; Visit location
- SET DR=DR_";11////^S X=$P(BARTR(0),U,11)"
- +10 ; Date
- SET DR=DR_";12////^S X=DT"
- +11 ; A/R Entry by
- SET DR=DR_";13////^S X=DUZ"
- +12 ; Transaction type (Adj)
- SET DR=DR_";101////43"
- +13 ; Adj Category (Write off)
- SET DR=DR_";102////3"
- +14 ; Adj Type (Auto Write off 2000)
- SET DR=DR_";103////501"
- +15 SET DIDEL=90050
- +16 KILL DIDEL,DIE,DA,DR
- +17 KILL BARBL
- +18 SET BARCNT=BARCNT+1
- +19 SET BARBILL=$$GET1^DIQ(90050.01,$PIECE(BARTR(0),U,4),.01)
- +20 WRITE !,BARBILL,?25," for ",$JUSTIFY($FNUMBER(-$PIECE(BARTR(0),U,2),",",2),10)," written off (reversed)."
- +21 QUIT
- +22 ; *********************************************************************
- +23 ;
- ROLLBILL ;
- +1 QUIT
- +2 ; *********************************************************************
- +3 ;
- BILLED ;
- +1 ; Mark bill in 3PB Bill file as BILLED
- +2 SET DIE="^ABMDBILL(DUZ(2),"
- +3 SET DA=ABMP("BDFN")
- +4 SET DR=".04////B"
- +5 DO ^DIE
- +6 KILL DR
- +7 QUIT
- +8 ; *********************************************************************
- +9 ;
- XIT ;
- +1 DO ^BARVKL0
- +2 QUIT