| 1 | IBOHRL ;ALB/EMG-AUTO-RELEASE CHARGES ON HOLD > 90 DAYS ;APR 11 1997
 | 
|---|
| 2 |  ;;2.0;INTEGRATED BILLING;**70,215**;21-MAR-94
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; 
 | 
|---|
| 5 | EN ;
 | 
|---|
| 6 |  N DFN,IBDT,IBDUZ,IBDYS,IBEND,IBGRP,IBN,IBND,IBNOS,IBNUM,IBRCOUNT
 | 
|---|
| 7 |  N IBSEQNO,IBSTJB,IBT,IBTO,X,X1,X2,XMDUZ,XMSUB,XMTEXT,XMY
 | 
|---|
| 8 |  S IBQUIT=0
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  D NOW^%DTC S IBSTJB=$$DAT2^IBOUTL(%)
 | 
|---|
| 11 |  ;***
 | 
|---|
| 12 |  K ^TMP($J)
 | 
|---|
| 13 |  D CHRGS
 | 
|---|
| 14 |  D:'$G(IBQUIT) REL,MAIL
 | 
|---|
| 15 |  ;***
 | 
|---|
| 16 | EXIT ;
 | 
|---|
| 17 |  K ^TMP($J)
 | 
|---|
| 18 |  K DFN,IBDT,IBDUZ,IBDYS,IBEND,IBGRP,IBN,IBND,IBNOS,IBNUM,IBRCOUNT,IBDIFROM
 | 
|---|
| 19 |  K IBQUIT,IBSEQNO,IBSTJB,IBT,IBTO,X,X1,X2,XMDUZ,XMSUB,XMTEXT,XMY
 | 
|---|
| 20 |  Q
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 | CHRGS ; indexes charges on hold longer than the number specified in the NUMBER OF DAYS PT CHARGES HELD field (#7.04) of file #350.9
 | 
|---|
| 23 |  ; 
 | 
|---|
| 24 |  S IBDYS=$P($G(^IBE(350.9,1,7)),U,4)
 | 
|---|
| 25 |  I IBDYS="" S IBQUIT=1 D E4^IBAERR Q  ;quit/send notice if number of days held is unknown
 | 
|---|
| 26 |  S X1=DT,X2=-(IBDYS+1) D C^%DTC S IBTO=X
 | 
|---|
| 27 |  S DFN=0 F  S DFN=$O(^IB("AHDT",DFN)) Q:'DFN  S IBDT=0 F  S IBDT=$O(^IB("AHDT",DFN,8,IBDT)) Q:'IBDT!(IBDT>IBTO)  S IBN=0 F  S IBN=$O(^IB("AHDT",DFN,8,IBDT,IBN)) Q:IBN=""  D
 | 
|---|
| 28 |  .S IBND=$G(^IB(IBN,0)) Q:'IBND
 | 
|---|
| 29 |  .Q:$P(IBND,"^",5)'=8
 | 
|---|
| 30 |  .S ^TMP($J,"IBHOLD",DFN,IBN)=""
 | 
|---|
| 31 |  .Q
 | 
|---|
| 32 |  Q
 | 
|---|
| 33 | REL ; release charges to AR
 | 
|---|
| 34 |  S (DFN,IBNUM,IBSEQNO,IBNOS)="",IBSEQNO=1,IBRCOUNT=0
 | 
|---|
| 35 |  S DFN=0 F  S DFN=$O(^TMP($J,"IBHOLD",DFN)) Q:'DFN  S IBNUM=0 F  S IBNUM=$O(^TMP($J,"IBHOLD",DFN,IBNUM)) Q:'IBNUM  D
 | 
|---|
| 36 |  .S IBNOS=IBNUM
 | 
|---|
| 37 |  .S IBDUZ=$P($G(^IB(IBNOS,1)),U) I IBDUZ="" S IBDUZ=DUZ
 | 
|---|
| 38 |  .D ^IBR
 | 
|---|
| 39 |  .I $P($G(^IB(IBNUM,0)),"^",5)=3 D
 | 
|---|
| 40 |  ..S IBRCOUNT=IBRCOUNT+1
 | 
|---|
| 41 |  ..I $G(IBR60) S IBNDE=^IB(IBNUM,0) D IVM^IBAMTV32(IBNDE) K IBNDE
 | 
|---|
| 42 |  .Q
 | 
|---|
| 43 |  Q
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 | MAIL ; send bulletin when job is complete
 | 
|---|
| 46 |  D NOW^%DTC S IBEND=$$DAT2^IBOUTL(%)
 | 
|---|
| 47 |  S XMSUB=$S($G(IBR60):"CHARGES PENDING REIVEW",1:"HELD CHARGES")_" PASSED TO AR "_$P(IBSTJB,"@",1)
 | 
|---|
| 48 |  S XMDUZ="INTEGRATED BILLING PACKAGE",IBDUZ=DUZ
 | 
|---|
| 49 |  K IBT,XMY
 | 
|---|
| 50 |  S IBGRP=$P($G(^XMB(3.8,+$P($G(^IBE(350.9,1,0)),"^",11),0)),"^")
 | 
|---|
| 51 |  I IBGRP]"" S XMY("G."_IBGRP_"@"_^XMB("NETNAME"))=""
 | 
|---|
| 52 |  S XMTEXT="IBT("
 | 
|---|
| 53 |  S XMY(IBDUZ)=""
 | 
|---|
| 54 |  S IBT(1)="The job that passes "_$S($G(IBR60):"charges pending review",1:"held charges")_" to accounts receivable is complete."
 | 
|---|
| 55 |  S IBT(2)="[ "_IBRCOUNT_" ] charge"_$S(IBRCOUNT=1:" has",1:"s have")_" been passed to accounts receivable."
 | 
|---|
| 56 |  S IBT(3)=" "
 | 
|---|
| 57 |  S IBT(4)="Job started on "_$P(IBSTJB,"@",1)_" at "_$P(IBSTJB,"@",2)
 | 
|---|
| 58 |  S IBT(5)="Job finished on "_$P(IBEND,"@",1)_" at "_$P(IBEND,"@",2)
 | 
|---|
| 59 |  S IBT(6)=" "
 | 
|---|
| 60 |  S IBT(7)=" "
 | 
|---|
| 61 |  I IBRCOUNT>0 D
 | 
|---|
| 62 |  .S IBT(8)="* Use option 'On Hold/Hold-Review Charges Released to AR' to print a detailed"
 | 
|---|
| 63 |  .S IBT(9)="  list of charges auto-released by this tasked job."
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 |  I $G(DIFROM) S IBDIFROM=DIFROM K DIFROM
 | 
|---|
| 66 |  D ^XMD
 | 
|---|
| 67 |  I $G(IBDIFROM) S DIFROM=IBDIFROM
 | 
|---|
| 68 |  Q
 | 
|---|