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

BARMAWO2.m

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