Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/ACCOUNTS_RECEIVABLE-PRCA-PRY-RC/RCFMOBR.m

    r613 r623  
    1 RCFMOBR ;WASH-ISC@ALTOONA,PA/RWT-BILL RECONCILIATIONS LIST ;11/20/96  2:30 PM
    2 V       ;;4.5;Accounts Receivable;**2,20,40,53,249**;Mar 20, 1995;Build 2
    3         ;;Per VHA Directive 10-93-142, this routine should not be modified.
    4 EN      ;Creates report from OBR data in file 423.6
    5         ;
    6         ;      OBR Data Structure used by this routine
    7         ; ^TMP("OBR",$J,SITE,"NOT IN AR")=NextRec^TotalItems^TotalFMSAmt
    8         ; ^TMP("OBR",$J,SITE,"NOT IN FMS")=NextRec^TotalItems^TotalARAmt
    9         ; ^TMP("OBR",$J,SITE,"DISCREPANCY")=NextRec^TotalItems^TotalFMSAmt^TotalARAmt
    10         ; ^TMP("OBR",$J,"BN",BILLNUMBER)=[423.6 rec] <-- x-ref of FMS Bills
    11         ; ^TMP("OBR",$J,"REPORT","1")="LINE 1"
    12         ; ^TMP("OBR",$J","REPORT,"2")="LINE 2"
    13         ;
    14         ; Descriptions of modules:
    15         ;    PROCFMS  -  loop through FMS bills (^PRCF(423.6)) updating
    16         ;                global ^TMP("OBR",$J,"BN") while also checking
    17         ;                for invalid AR bills
    18         ;    PROCAR   -  loop through all Active AR Bills comparing amounts
    19         ;                and looking for Detail bills not found in FMS
    20         ;    BUILDRPT -  Prepares report in global ^TMP("OBR",$J,"REPORT")
    21         ;
    22         N X,Y,OBR,A0,ERR
    23         K ^TMP("OBR",$J)
    24         ;
    25         I $G(PRCADA) D PROCESS(PRCADA) G Q1
    26         S OBR="OBR-",ERR=-1
    27         F  S OBR=$O(^PRCF(423.6,"B",OBR)) Q:OBR=""!(OBR'["OBR-")  D
    28            .I $O(^PRCF(423.6,"B",OBR))'["OBR-" D  Q
    29               ..S A0=$O(^PRCF(423.6,"B",OBR,0))
    30               ..S ERR=0 D PROCESS(A0)
    31         I ERR D PROCESS(ERR)
    32 Q1      K ^TMP("OBR",$J)
    33         Q
    34 PROCESS(A0)     N X,X1,X2,Y,SN,PARENT,XMTEXT,XMSUB,XMSENDER,XMDUZ,ERR,DATE,FMSDATE
    35         S ERR=0 D
    36           .I '$D(^PRCF(423.6,A0,0)) S ERR=-1 Q
    37           .I $E(^PRCF(423.6,A0,0),1,3)'["OBR" S ERR=-1 Q
    38           .S X=$P(^PRCF(423.6,A0,0),"-",2)
    39           .S X=$E(X,5,6)_"-"_$E(X,7,8)_"-"_$E(X,1,4) D ^%DT ;Y is defined
    40           .S PARENT=$P($P(^PRCF(423.6,A0,0),"-",5),U)
    41           .;
    42           .D PROCFMS^RCFMOBR1(A0)
    43           .D PROCAR^RCFMOBR1(A0)
    44           .D BUILDRPT^RCFMOBR2(PARENT)
    45         ;
    46         I '$D(PARENT) S PARENT=$$SITE^RCMSITE
    47         S PARENT=$P(^DIC(4,+$O(^DIC(4,"D",PARENT,0)),0),U)
    48         ;
    49         I '$D(Y) S Y=DT  ;Y may be defined from %DT call above
    50         S X1=Y,X2=($E(Y,6,7)+1)*-1 D C^%DTC,YX^%DTC
    51         S FMSDATE=$P(Y,"@"),FMSDATE=$E(FMSDATE,1,4)_$E(FMSDATE,9,12)
    52         D NOW^%DTC S DATE=$E(X,4,5)_"-"_$E(X,6,7)_"-"_$E(X,2,3)
    53         ; - Transmits report via e-mail to FMS mail group
    54         S XMSUB="FMS "_FMSDATE_" RECONCILIATION ("_DATE_") "
    55         S XMSUB=XMSUB_PARENT
    56         I ERR D
    57           .S ^TMP("OBR",$J,"REPORT",1)="Date of Report: "_DATE
    58           .S ^TMP("OBR",$J,"REPORT",2)="NOTE: This report compares your current A/R records with data received from"
    59           .S ^TMP("OBR",$J,"REPORT",3)="      FMS on the last day of the previous accounting period."
    60           .S ^TMP("OBR",$J,"REPORT",4)=""
    61           .S ^TMP("OBR",$J,"REPORT",5)="No FMS data exists to reconcile!"
    62         S XMTEXT="^TMP(""OBR"",$J,""REPORT"","
    63         S XMDUZ="Accounts Receivable Package",XMY("G.FMS")="",XMY(DUZ)="" D ^XMD
    64         Q
    65 EN2     ;Entry point from Regenerate Prior Month OBRs option
    66         N DIR,PRCADA,Y
    67         W !!,"This option will transmit the OBR report(s) to you and members"
    68         W !,"of the G.FMS mail group."
    69         W !!,"NOTE: Depending on the number of active AR bills in your system,"
    70         W !,"      this may take awhile to run.",!
    71         S DIR(0)="YO",DIR("A")="Are you sure you want to do this",DIR("B")="NO"
    72         D ^DIR Q:Y'=1  S ZTRTN="EN^RCFMOBR",ZTDESC="Prior Month OBRs"
    73         S ZTIO="" D ^%ZTLOAD Q
    74         ;
    75 EN3     ;Deletes OBRs over 60 days old
    76         N A0,A1,A2,DA,DIK,X,X1,X2
    77         S A0="OBR-" F  S A0=$O(^PRCF(423.6,"B",A0)) Q:A0=""!(A0'["OBR-")  S A1=$E($P(A0,"-",2),1,8),A2=0 F  S A2=$O(^PRCF(423.6,"B",A0,A2)) Q:+A2=0  D
    78         .S X1=DT,X2=$$RCDT(A1) D ^%DTC I X>60 S DIK="^PRCF(423.6,",DA=A2 D ^DIK
    79         Q
    80 RCDT(A1)        ;Convert yyyymmdd to FM date
    81         N X,Y
    82         S X=A1,X=$E(X,5,6)_" "_$E(X,7,8)_", "_$E(X,1,4)
    83         D ^%DT
    84         Q Y
    85 PURGE   ;purge unprocessed document file
    86         N DIR,Y,X,X1,X2,RCDT
    87         S DIR("A")="How many days worth of DATA do you want to retain"
    88         S DIR(0)="N",DIR("?")="This is the number of days entries will remain in the file."
    89         D ^DIR
    90         I +Y<0!(Y="")!($E(Y,1)="^") G POUT
    91         S X1=DT,X2=-(+Y) D C^%DTC S RCDT=X
    92         S ZTRTN="QPURGE^RCFMOBR",ZTSAVE("RCDT")="",ZTDESC="Purge unprocessed document list",ZTIO="" D ^%ZTLOAD
    93 POUT    K DIRUT,DIROUT,DTOUT,DUOUT Q
    94         ;
    95 QPURGE  N DA,DIK
    96         S DIK="^RC(347,"
    97         Q:'$D(^RC(347))
    98         S DA=0 F  S DA=$O(^RC(347,DA)) Q:'DA  I $P(^(DA,0),U,5)<RCDT D ^DIK
    99         K RCDT
    100         Q
     1RCFMOBR ;WASH-ISC@ALTOONA,PA/RWT-BILL RECONCILIATIONS LIST ;11/20/96  2:30 PM
     2V ;;4.5;Accounts Receivable;**2,20,40,53**;Mar 20, 1995
     3 ;;Per VHA Directive 10-93-142, this routine should not be modified.
     4EN ;Creates report from OBR data in file 423.6
     5 ;
     6 ;      OBR Data Structure used by this routine
     7 ; ^TMP("OBR",$J,SITE,"NOT IN AR")=NextRec^TotalItems^TotalFMSAmt
     8 ; ^TMP("OBR",$J,SITE,"NOT IN FMS")=NextRec^TotalItems^TotalARAmt
     9 ; ^TMP("OBR",$J,SITE,"DISCREPANCY")=NextRec^TotalItems^TotalFMSAmt^TotalARAmt
     10 ; ^TMP("OBR",$J,"BN",BILLNUMBER)=[423.6 rec] <-- x-ref of FMS Bills
     11 ; ^TMP("OBR",$J,"REPORT","1")="LINE 1"
     12 ; ^TMP("OBR",$J","REPORT,"2")="LINE 2"
     13 ;
     14 ; Descriptions of modules:
     15 ;    PROCFMS  -  loop through FMS bills (^PRCF(423.6)) updating
     16 ;                global ^TMP("OBR",$J,"BN") while also checking
     17 ;                for invalid AR bills
     18 ;    PROCAR   -  loop through all Active AR Bills comparing amounts
     19 ;                and looking for Detail bills not found in FMS
     20 ;    BUILDRPT -  Prepares report in global ^TMP("OBR",$J,"REPORT")
     21 ;
     22 N X,Y,OBR,A0,ERR
     23 K ^TMP("OBR",$J)
     24 ;
     25 I $G(PRCADA) D PROCESS(PRCADA) G Q1
     26 S OBR="OBR-",ERR=-1
     27 F  S OBR=$O(^PRCF(423.6,"B",OBR)) Q:OBR=""!(OBR'["OBR-")  D
     28    .I $O(^PRCF(423.6,"B",OBR))'["OBR-" D  Q
     29       ..S A0=$O(^PRCF(423.6,"B",OBR,0))
     30       ..S ERR=0 D PROCESS(A0)
     31 I ERR D PROCESS(ERR)
     32Q1 K ^TMP("OBR",$J)
     33 Q
     34PROCESS(A0) N X,X1,X2,Y,SN,PARENT,XMTEXT,XMSUB,XMSENDER,XMDUZ,ERR,DATE,FMSDATE
     35 S ERR=0 D
     36   .I '$D(^PRCF(423.6,A0,0)) S ERR=-1 Q
     37   .I $E(^PRCF(423.6,A0,0),1,3)'["OBR" S ERR=-1 Q
     38   .S X=$P(^PRCF(423.6,A0,0),"-",2)
     39   .S X=$E(X,5,6)_"-"_$E(X,7,8)_"-"_$E(X,1,4) D ^%DT ;Y is defined
     40   .S PARENT=$P($P(^PRCF(423.6,A0,0),"-",5),U)
     41   .;
     42   .D PROCFMS^RCFMOBR1(A0)
     43   .D PROCAR^RCFMOBR1(A0)
     44   .D BUILDRPT^RCFMOBR2(PARENT)
     45 ;
     46 I '$D(PARENT) S PARENT=$$SITE^RCMSITE
     47 S PARENT=$P(^DIC(4,+$O(^DIC(4,"D",PARENT,0)),0),U)
     48 ;
     49 I '$D(Y) S Y=DT  ;Y may be defined from %DT call above
     50 S X1=Y,X2=($E(Y,6,7)+1)*-1 D C^%DTC,YX^%DTC
     51 S FMSDATE=$P(Y,"@"),FMSDATE=$E(FMSDATE,1,4)_$E(FMSDATE,9,12)
     52 D NOW^%DTC S DATE=$E(X,4,5)_"-"_$E(X,6,7)_"-"_$E(X,2,3)
     53 ; - Transmits report via e-mail to FMS mail group
     54 S XMSUB="FMS "_FMSDATE_" RECONCILIATION ("_DATE_") "
     55 S XMSUB=XMSUB_PARENT
     56 I ERR D
     57   .S ^TMP("OBR",$J,"REPORT",1)="Date of Report: "_DATE
     58   .S ^TMP("OBR",$J,"REPORT",2)="NOTE: This report compares your current A/R records with data received from"
     59   .S ^TMP("OBR",$J,"REPORT",3)="      FMS on the last day of the previous accounting period."
     60   .S ^TMP("OBR",$J,"REPORT",4)=""
     61   .S ^TMP("OBR",$J,"REPORT",5)="No FMS data exists to reconcile!"
     62 S XMTEXT="^TMP(""OBR"",$J,""REPORT"","
     63 S XMDUZ="Accounts Receivable Package",XMY("G.FMS")="",XMY(DUZ)="" D ^XMD
     64 Q
     65EN2 ;Entry point from Regenerate Prior Month OBRs option
     66 N DIR,PRCADA,Y
     67 W !!,"This option will transmit the OBR report(s) to you and members"
     68 W !,"of the G.FMS mail group."
     69 W !!,"NOTE: Depending on the number of active AR bills in your system,"
     70 W !,"      this may take awhile to run.",!
     71 S DIR(0)="YO",DIR("A")="Are you sure you want to do this",DIR("B")="NO"
     72 D ^DIR Q:Y'=1  S ZTRTN="EN^RCFMOBR",ZTDESC="Prior Month OBRs"
     73 S ZTIO="" D ^%ZTLOAD Q
     74 ;
     75EN3 ;Deletes OBRs over 60 days old
     76 N A0,A1,A2,DA,DIK,X,X1,X2
     77 S A0="OBR-" F  S A0=$O(^PRCF(423.6,"B",A0)) Q:A0=""!(A0'["OBR-")  S A1=2_$E($P(A0,"-",2),3,8),A2=0 F  S A2=$O(^PRCF(423.6,"B",A0,A2)) Q:+A2=0  D
     78 .S X1=DT,X2=A1 D ^%DTC I X>60 S DIK="^PRCF(423.6,",DA=A2 D ^DIK
     79 Q
     80PURGE ;purge unprocessed document file
     81 N DIR,Y,X,X1,X2,RCDT
     82 S DIR("A")="How many days worth of DATA do you want to retain"
     83 S DIR(0)="N",DIR("?")="This is the number of days entries will remain in the file."
     84 D ^DIR
     85 I +Y<0!(Y="")!($E(Y,1)="^") G POUT
     86 S X1=DT,X2=-(+Y) D C^%DTC S RCDT=X
     87 S ZTRTN="QPURGE^RCFMOBR",ZTSAVE("RCDT")="",ZTDESC="Purge unprocessed document list",ZTIO="" D ^%ZTLOAD
     88POUT K DIRUT,DIROUT,DTOUT,DUOUT Q
     89 ;
     90QPURGE N DA,DIK
     91 S DIK="^RC(347,"
     92 Q:'$D(^RC(347))
     93 S DA=0 F  S DA=$O(^RC(347,DA)) Q:'DA  I $P(^(DA,0),U,5)<RCDT D ^DIK
     94 K RCDT
     95 Q
Note: See TracChangeset for help on using the changeset viewer.