| 1 | RCRJR ;WISC/RFJ,TJK-nightly process, monthly data extractors ;1 Mar 98
 | 
|---|
| 2 |  ;;4.5;Accounts Receivable;**101,103,78,153,191,239**;Mar 20, 1995
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  Q
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 | START ;  start the nightly process
 | 
|---|
| 8 |  ;  called by PRCABJ
 | 
|---|
| 9 |  N X,Y
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 |  ;  if the 15th of the month, warn user of deletion
 | 
|---|
| 12 |  I $E(DT,6,7)=15 D CLEANXMB
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 |  ;  clean up old mailman messages on day 1
 | 
|---|
| 15 |  ;  monthly transmission of reports on day 1
 | 
|---|
| 16 |  I +$E(DT,6,7)=$E($$LDATE(DT)+1,6,7) D
 | 
|---|
| 17 |  .   ;  clean up old mailman messages
 | 
|---|
| 18 |  .   D CLEANXMB
 | 
|---|
| 19 |  .   ;  NDB and monthly FMS summary documents, bad debt report
 | 
|---|
| 20 |  .   ;  oig extract (end of quarter)
 | 
|---|
| 21 |  .   D QUEUE("AR Data Collector","DQ^RCRJRCO")
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 |  ;  monthly transmission on the second to last workday
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 |  ;    Code commented out with patch PRCA*4.5*239
 | 
|---|
| 26 |  ;     Allowances are now transmitted to FMS by the ARDC
 | 
|---|
| 27 |  ;     when it runs on the third to last workday of month.
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 |  ;   I +$E(DT,6,7)=$E($$LDAY(DT),6,7) D
 | 
|---|
| 30 |  ;   .   ;  bad debt report sent to FMS
 | 
|---|
| 31 |  ;   .   D QUEUE("Bad Debt Report","BADDEBT^RCXFMSSV")
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 |  ;  quarterly oig transaction report on 15th
 | 
|---|
| 34 |  I $E(DT,4,5)#3=1,$E(DT,6,7)=15 D QUEUE("AR OIG Transaction Extract","EN2^RCNRIG")
 | 
|---|
| 35 |  ;
 | 
|---|
| 36 |  ;  reports sent on tuesday and thursdays (dmc)
 | 
|---|
| 37 |  S X=DT D DW^%DTC
 | 
|---|
| 38 |  I $E(X)="T" D
 | 
|---|
| 39 |  .   ;  dmc 90 day reports
 | 
|---|
| 40 |  .   N ZTSAVE
 | 
|---|
| 41 |  .   I '$O(^RC(342,0)) Q
 | 
|---|
| 42 |  .   ;  tUesday
 | 
|---|
| 43 |  .   I $E(X,2)="U",$D(^RCD(340,"DMC")) D  Q
 | 
|---|
| 44 |  .   .   S ZTSAVE("RCDOC")="W" D QUEUE("DMC 90 Day Reports","ENTER^RCDMC90")
 | 
|---|
| 45 |  .   S X1=DT,X2=7 D C^%DTC I $E(DT,4,5)=$E(X,4,5) Q
 | 
|---|
| 46 |  .   S ZTSAVE("RCDOC")="M" D QUEUE("DMC 90 Day Reports","ENTER^RCDMC90")
 | 
|---|
| 47 |  Q
 | 
|---|
| 48 |  ;
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 | QUEUE(ZTDESC,ZTRTN) ;  create taskmanager task
 | 
|---|
| 51 |  N %X,%Y,Y,ZTSK
 | 
|---|
| 52 |  S ZTIO="",ZTDTH=$H
 | 
|---|
| 53 |  D ^%ZTLOAD
 | 
|---|
| 54 |  D ^%ZISC
 | 
|---|
| 55 |  Q
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 | CLEANXMB ;  clean up old mailman messages generated by AR
 | 
|---|
| 59 |  N SUBJECT,VERIFY
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 |  ;  delete the AR Data Collector Detail Report
 | 
|---|
| 62 |  S SUBJECT="ARDC Detail Report For "
 | 
|---|
| 63 |  S VERIFY="I $E(DATA,65)=""."",$E(DATA,76)=""."""
 | 
|---|
| 64 |  D GETXMZ(SUBJECT,VERIFY)
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 |  ;  delete the mccr ndb return reports
 | 
|---|
| 67 |  S SUBJECT="MCCR NDB Site "
 | 
|---|
| 68 |  S VERIFY="I $E(DATA,1,14)=""MCCR NDB Site """
 | 
|---|
| 69 |  D GETXMZ(SUBJECT,VERIFY)
 | 
|---|
| 70 |  ;
 | 
|---|
| 71 |  ;  delete the nightly interest/admin/penalty messages
 | 
|---|
| 72 |  S SUBJECT="AR Nightly Interest/Admin/Pen"
 | 
|---|
| 73 |  S VERIFY="I $E(DATA,1,18)=""BILL      DATEPREP"""
 | 
|---|
| 74 |  D GETXMZ(SUBJECT,VERIFY)
 | 
|---|
| 75 |  Q
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 |  ;
 | 
|---|
| 78 | GETXMZ(RCSUBJCT,RCVERIFY) ;  find a message to delete
 | 
|---|
| 79 |  ;  loop through a subject, execute a check on the message, kill it
 | 
|---|
| 80 |  N DATA,RCSUBJ,RCXMZ
 | 
|---|
| 81 |  S RCSUBJ=RCSUBJCT
 | 
|---|
| 82 |  F  S RCSUBJ=$O(^XMB(3.9,"B",RCSUBJ)) Q:$E(RCSUBJ,1,$L(RCSUBJCT))'=RCSUBJCT  D
 | 
|---|
| 83 |  .   S RCXMZ=0
 | 
|---|
| 84 |  .   F  S RCXMZ=$O(^XMB(3.9,"B",RCSUBJ,RCXMZ)) Q:'RCXMZ  D
 | 
|---|
| 85 |  .   .   S DATA=$G(^XMB(3.9,RCXMZ,2,1,0))
 | 
|---|
| 86 |  .   .   X RCVERIFY
 | 
|---|
| 87 |  .   .   ;  message found
 | 
|---|
| 88 |  .   .   I $T D
 | 
|---|
| 89 |  .   .   .   ;  if the current date is not the first, warn the user
 | 
|---|
| 90 |  .   .   .   ;  if the current date is the first, kill the message
 | 
|---|
| 91 |  .   .   .   I $E(DT,6,7)'=$E($$LDATE(DT)+1,6,7) D WARNKILL(RCXMZ) Q
 | 
|---|
| 92 |  .   .   .   ;
 | 
|---|
| 93 |  .   .   .   ;  only kill the message if it was created before the
 | 
|---|
| 94 |  .   .   .   ;  15th day of the previous month (since no warning
 | 
|---|
| 95 |  .   .   .   ;  message would of been generated).
 | 
|---|
| 96 |  .   .   .   I $P($$ZNODE^XMXUTIL2(RCXMZ),"^",3)>($E($$FMDIFF^XLFDT(DT,-1),1,5)_19.999999) Q
 | 
|---|
| 97 |  .   .   .   ;
 | 
|---|
| 98 |  .   .   .   D KILLXMZ(RCXMZ)
 | 
|---|
| 99 |  Q
 | 
|---|
| 100 |  ;
 | 
|---|
| 101 |  ;
 | 
|---|
| 102 | KILLXMZ(XMZ) ;  kills a message and responses
 | 
|---|
| 103 |  N K,X,XMABORT,XMKILL,Y
 | 
|---|
| 104 |  S XMABORT=0,(XMKILL("MSG"),XMKILL("RESP"))=0
 | 
|---|
| 105 |  D KILL^XMA32A(XMZ,.XMKILL,XMABORT)
 | 
|---|
| 106 |  Q
 | 
|---|
| 107 |  ;
 | 
|---|
| 108 |  ;
 | 
|---|
| 109 | WARNKILL(RCXMZ) ;  enter response to the message warning the user the message
 | 
|---|
| 110 |  ;   will deleted on the first of the month
 | 
|---|
| 111 |  N %,%H,%I,I,MESSAGE,XMZ2,Y
 | 
|---|
| 112 |  ;
 | 
|---|
| 113 |  ;  get the first of next month (add 30 days and reset day to 1)
 | 
|---|
| 114 |  ;S Y=$E($$FMADD^XLFDT(DT,30),1,5)_"01" D DD^%DT
 | 
|---|
| 115 |  S Y=$$LDATE(DT)+1 D DD^%DT
 | 
|---|
| 116 |  ;  create response
 | 
|---|
| 117 |  S MESSAGE(1)="WARNING, This message will be deleted on "_Y_".  Please save"
 | 
|---|
| 118 |  S MESSAGE(2)="the data in this message to an excel spreadsheet or word document"
 | 
|---|
| 119 |  S MESSAGE(3)="prior to "_Y_"."
 | 
|---|
| 120 |  S %=$$ENT^XMA2R(RCXMZ,"Message Deletion",.MESSAGE,"","AR Package")
 | 
|---|
| 121 |  Q
 | 
|---|
| 122 | LDATE(X) ; DETERMINE CUT-OFF DATE FOR THE MONTH
 | 
|---|
| 123 |  S X=$E(X,1,5)_$P("31^28^31^30^31^30^31^31^30^31^30^31","^",+$E(X,4,5))
 | 
|---|
| 124 |  I +$E(X,6,7)=28,$E(X,2,3)#4=0 S $E(X,6,7)=29
 | 
|---|
| 125 |  S X=$$WORKPLUS^XUWORKDY(X,-3)
 | 
|---|
| 126 |  Q X
 | 
|---|
| 127 | LDAY(X) ;SECOND LAST WORKDAY OF THE MONTH
 | 
|---|
| 128 |  S X=$E(X,1,5)_$P("31^28^31^30^31^30^31^31^30^31^30^31","^",+$E(X,4,5))
 | 
|---|
| 129 |  I +$E(X,6,7)=28,$E(X,2,3)#4=0 S $E(X,6,7)=29
 | 
|---|
| 130 |  S X=$$WORKPLUS^XUWORKDY(X,-1)
 | 
|---|
| 131 |  Q X
 | 
|---|