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

ABMUCUT2.m

Go to the documentation of this file.
  1. ABMUCUT2 ; IHS/SD/SDR - 3PB/UFMS Cashiering Utilities - Part 2
  1. ;;2.6;IHS Third Party Billing;**14,21**;NOV 12, 2009;Build 379
  1. ; New routine - abm*2.6*14
  1. ; Cashiering Utilities
  1. ;IHS/SD/SDR - 2.6*21 - HEAT121470 - Updated to use a new x-ref for session status. Taking
  1. ; too long to look through all sessions and causing <STORE>FINDACLS+22^ABMUCUTL
  1. ;
  1. FINDAOPN ;EP - look for all open sessions
  1. ; 0 returned means no open sessions found
  1. ; anything else is list of open sessions (ABMO(SESSION#,DUZ,SDT)
  1. ;
  1. K ABMO
  1. S ABMLOC=$$FINDLOC^ABMUCUTL ;what location to look under
  1. S ABMFD=0
  1. ;user entries
  1. ;S ABMUSER=0 ;abm*2.6*14 HEAT121470
  1. S ABMUSER=1 ;start at 1 to skip POS sess; ;abm*2.6*21 IHS/SD/SDR HEAT121470
  1. ;F S ABMUSER=$O(^ABMUCASH(ABMLOC,10,ABMUSER)) Q:+ABMUSER=0 D ;abm*2.6*21 IHS/SD/SDR HEAT121470
  1. F S ABMUSER=$O(^ABMUCASH(ABMLOC,"AC","O",ABMUSER)) Q:+ABMUSER=0 D ;abm*2.6*21 IHS/SD/SDR HEAT121470
  1. .S ABMSDT=0
  1. .;F S ABMSDT=$O(^ABMUCASH(ABMLOC,10,ABMUSER,20,ABMSDT)) Q:+ABMSDT=0 D Q:ABMFD'=0 ;abm*2.6*21 IHS/SD/SDR HEAT121470
  1. .F S ABMSDT=$O(^ABMUCASH(ABMLOC,"AC","O",ABMUSER,ABMSDT)) Q:+ABMSDT=0 D Q:ABMFD'=0 ;abm*2.6*21 IHS/SD/SDR HEAT121470
  1. ..I $P($G(^ABMUCASH(ABMLOC,10,ABMUSER,20,ABMSDT,0)),U,3)'="" Q
  1. ..S ABMO(ABMSDT,ABMUSER,ABMSDT)=""
  1. ..S ABMAFLG=$$ACTIVCK^ABMUUTL(ABMLOC,ABMSDT,ABMUSER) ;check for activity in session
  1. ..I +$G(ABMAFLG)'=0 S $P(ABMO(ABMSDT,ABMUSER,ABMSDT),U,3)=1
  1. ;look for POS entries
  1. ;start old abm*2.6*21 IHS/SD/SDR HEAT121470
  1. ;S ABMUSER=0
  1. ;F S ABMUSER=$O(^ABMUCASH(ABMLOC,20,ABMUSER)) Q:+ABMUSER=0 D
  1. ;.S ABMSDT=0
  1. ;.F S ABMSDT=$O(^ABMUCASH(ABMLOC,20,ABMUSER,20,ABMSDT)) Q:+ABMSDT=0 D Q:ABMFD'=0
  1. ;..I $P($G(^ABMUCASH(ABMLOC,20,ABMUSER,20,ABMSDT,0)),U,3)'="" Q
  1. ;..S ABMO(ABMSDT,"POS",ABMSDT)=""
  1. ;end old start new abm*2.6*21 IHS/SD/SDR HEAT121470
  1. S ABMSDT=0,ABMUSER=1
  1. F S ABMSDT=$O(^ABMUCASH(ABMLOC,"AC","O",1,ABMSDT)) Q:+ABMSDT=0 D Q:ABMFD'=0
  1. .I $P($G(^ABMUCASH(ABMLOC,20,ABMUSER,20,ABMSDT,0)),U,3)'="" Q
  1. .S ABMO(ABMSDT,"POS",ABMSDT)=""
  1. ;end new abm*2.6*21 IHS/SD/SDR HEAT121470
  1. Q
  1. FINDACLS ;EP - look for all closed sessions
  1. ; 0 returned means no closed sessions found
  1. ; anything else is list of closed sessions (ABMO(SESSION#,DUZ,SDT)
  1. ;
  1. K ABMO
  1. S ABMLOC=$$FINDLOC^ABMUCUTL ;what location to look under
  1. S ABMFD=0
  1. ;start old abm*2.6*21 IHS/SD/SDR HEAT121470
  1. ;S ABMDUZ=0
  1. ;F S ABMDUZ=$O(^ABMUCASH(ABMLOC,10,ABMDUZ)) Q:+ABMDUZ=0 D
  1. ;.S ABMSDT=0
  1. ;.F S ABMSDT=$O(^ABMUCASH(ABMLOC,10,ABMDUZ,20,ABMSDT)) Q:+ABMSDT=0 D Q:ABMFD'=0
  1. ;..I $P($G(^ABMUCASH(ABMLOC,10,ABMDUZ,20,ABMSDT,0)),U,3)="" Q
  1. ;..I $G(ABMFLG)="CLOSED",($P($G(^ABMUCASH(ABMLOC,10,ABMDUZ,20,ABMSDT,0)),U,4))'="C" Q
  1. ;..S ABMO(ABMSDT,ABMDUZ,ABMSDT)=$P($G(^ABMUCASH(ABMLOC,10,ABMDUZ,20,ABMSDT,0)),U,4)_"^"_$P($G(^ABMUCASH(ABMLOC,10,ABMDUZ,20,ABMSDT,0)),U,3)
  1. ;..S ABMAFLG=$$ACTIVCK^ABMUUTL(ABMLOC,ABMSDT,ABMDUZ) ;check for activity in session
  1. ;..I +$G(ABMAFLG)'=0 S $P(ABMO(ABMSDT,ABMDUZ,ABMSDT),U,3)=1
  1. ;;POS entries
  1. ;S ABMSDT=0
  1. ;F S ABMSDT=$O(^ABMUCASH(ABMLOC,20,1,20,ABMSDT)) Q:+ABMSDT=0 D Q:ABMFD'=0
  1. ;.I $P($G(^ABMUCASH(ABMLOC,20,1,20,ABMSDT,0)),U,3)="" Q
  1. ;.I $G(ABMFLG)="CLOSED",($P($G(^ABMUCASH(ABMLOC,20,1,20,ABMSDT,0)),U,4))'="C" Q
  1. ;.S ABMO(ABMSDT,"POS",ABMSDT)=$P($G(^ABMUCASH(ABMLOC,20,1,20,ABMSDT,0)),U,4)_"^"_$P($G(^ABMUCASH(ABMLOC,20,1,20,ABMSDT,0)),U,3)
  1. ;end old start new abm*2.6*21 IHS/SD/SDR HEAT121470
  1. S X1=DT
  1. S X2="-"_$P($G(^ABMDPARM(DUZ(2),1,4)),U,16) ;display number of days limit
  1. D C^%DTC
  1. S ABMDLIMT=X
  1. S ABMDUZ=1
  1. F ABMSTAT="C","T","R" D
  1. .F S ABMDUZ=$O(^ABMUCASH(ABMLOC,"AC",ABMSTAT,ABMDUZ)) Q:+ABMDUZ=0 D
  1. ..S ABMSDT=0
  1. ..F S ABMSDT=$O(^ABMUCASH(ABMLOC,"AC",ABMSTAT,ABMDUZ,ABMSDT)) Q:+ABMSDT=0 D Q:ABMFD'=0
  1. ...I $G(ABMSESSL)'="C" Q:ABMSDT<ABMDLIMT
  1. ...I $P($G(^ABMUCASH(ABMLOC,10,ABMDUZ,20,ABMSDT,0)),U,3)="" Q
  1. ...I $G(ABMFLG)="CLOSED",($P($G(^ABMUCASH(ABMLOC,10,ABMDUZ,20,ABMSDT,0)),U,4))'="C" Q
  1. ...S ABMO(ABMSDT,ABMDUZ,ABMSDT)=$P($G(^ABMUCASH(ABMLOC,10,ABMDUZ,20,ABMSDT,0)),U,4)_"^"_$P($G(^ABMUCASH(ABMLOC,10,ABMDUZ,20,ABMSDT,0)),U,3)
  1. ...S ABMAFLG=$$ACTIVCK^ABMUUTL(ABMLOC,ABMSDT,ABMDUZ) ;check for activity in session
  1. ...I +$G(ABMAFLG)'=0 S $P(ABMO(ABMSDT,ABMDUZ,ABMSDT),U,3)=1
  1. ;POS entries
  1. F ABMSTAT="C","T","R" D
  1. .S ABMSDT=0
  1. .F S ABMSDT=$O(^ABMUCASH(ABMLOC,"AC",ABMSTAT,1,ABMSDT)) Q:+ABMSDT=0 D Q:ABMFD'=0
  1. ..I $G(ABMSESSL)'="C" Q:ABMSDT<ABMDLIMT
  1. ..I $P($G(^ABMUCASH(ABMLOC,20,1,20,ABMSDT,0)),U,3)="" Q
  1. ..I $G(ABMFLG)="CLOSED",($P($G(^ABMUCASH(ABMLOC,20,1,20,ABMSDT,0)),U,4))'="C" Q
  1. ..S ABMO(ABMSDT,"POS",ABMSDT)=$P($G(^ABMUCASH(ABMLOC,20,1,20,ABMSDT,0)),U,4)_"^"_$P($G(^ABMUCASH(ABMLOC,20,1,20,ABMSDT,0)),U,3)
  1. ;end new abm*2.6*21 IHS/SD/SDR HEAT121470
  1. Q