[613] | 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
|
---|