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

ACHSYDRV.m

Go to the documentation of this file.
  1. ACHSYDRV ; IHS/ITSC/PMF - SEARCH FOR DUP EIN NUMBERS IN VENDOR FILE ; [ 10/16/2001 8:16 AM ]
  1. ;;3.1;CONTRACT HEALTH MGMT SYSTEM;;JUN 11, 2001
  1. ;
  1. ; This report will generate a list of VENDORS whose file
  1. ; contains either a DUPLICATE or MISSING EIN.
  1. ; Kernel variables need to be defined.
  1. ;
  1. S ACHSUSR=$$USR^ACHS,ACHSFAC=$P(^AUTTLOC(DUZ(2),0),U,2)
  1. W !!?18,"This report will generate a list of VENDORS whose",!?18,"file contains either a DUPLICATE or MISSING EIN."
  1. DEVICE ;Device Selection
  1. W *7,!!?18,"Since this report may take awhile to compile",!?18,"it is recommended that you QUEUE to a PRINTER.",!
  1. S %ZIS="PQ"
  1. D ^%ZIS
  1. I POP W !,"NO DEVICE SELECTED - REQUEST ABORTED" D HOME^%ZIS S Y=$$DIR^XBDIR("E") G END:Y=0,DEVICE:Y=1
  1. I '$D(IO("Q")) W:'$D(IO("S")) ! D:'$D(IO("S")) WAIT^DICD G CALC
  1. ;
  1. S ZTRTN="CALC^ACHSYDRV",ZTIO="",ZTDESC="DUPLICATE EIN REPORT",ACHSQIO=ION_";"_IOST_";"_IOM_";"_IOSL_$S($D(IOPAR):U_IOPAR,1:"")
  1. F %="ACHSFAC","ACHSUSR","ACHSQIO","ACHSFACP" S ZTSAVE(%)=""
  1. D ^%ZTLOAD
  1. K IO("Q"),ZTSK
  1. D HOME^%ZIS
  1. END ;
  1. K ACHSUSR,DIR,DTOUT,DIROUT,DUOUT,DIRUT,ACHSFAC,ACHSBAD,ACHSVNDR,ACHSEIN,ACHSDAT,ACHSQIO,ACHSPAGE,ACHSSAVE,ACHSSKIP,ACHSTIM,C,I,^TMP("ACHSYDRV",$J)
  1. D ^%ZISC
  1. S:$D(ZTQUEUED) ZTREQ="@"
  1. D ERPT^ACHS
  1. Q
  1. ;
  1. CALC ;EP - From TaskMan
  1. ; E is EIN, V is IEN
  1. N ACHSLUDT,ACHSNODE
  1. K ^TMP("ACHSYDRV",$J),E,V
  1. S V=0
  1. F S V=$O(^AUTTVNDR(V)) Q:'V I $D(^AUTTVNDR(V,11)) S ^TMP("ACHSYDRV",$J,"DUP",$S($P(^AUTTVNDR(V,11),U):$P(^AUTTVNDR(V,11),U)_$P(^AUTTVNDR(V,11),U,2),1:"NOT ON FILE"),V)=""
  1. I '$D(^TMP("ACHSYDRV",$J,"DUP")) G PRINT
  1. S E=0
  1. CHECK1 ;
  1. S E=$O(^TMP("ACHSYDRV",$J,"DUP",E))
  1. I E="" K E,V G PRINT
  1. S V=""
  1. VNDR ;
  1. S V=$O(^TMP("ACHSYDRV",$J,"DUP",E,V))
  1. G:V="" CHECK1
  1. I '$O(^TMP("ACHSYDRV",$J,"DUP",E,V)),'$D(^TMP("ACHSYDRV",$J,E)) K ^TMP("ACHSYDRV",$J,"DUP",E) G VNDR
  1. S X="UNKNOWN"
  1. S:$D(^AUTTVNDR(V,0)) X=$P(^(0),U)
  1. S ^TMP("ACHSYDRV",$J,E,V)=X
  1. K ^TMP("ACHSYDRV",$J,"DUP",E,V)
  1. G VNDR
  1. ;
  1. PRINT ;
  1. D BRPT^ACHSFU
  1. S (ACHSEIN,ACHSPAGE,ACHSSKIP)=0
  1. D HEADER
  1. S C=0
  1. I '$D(^TMP("ACHSYDRV",$J)) G END
  1. P1 ;
  1. S ACHSEIN=$O(^TMP("ACHSYDRV",$J,ACHSEIN))
  1. G TOTL:'ACHSEIN
  1. S ACHSVNDR=""
  1. I ACHSSKIP'=ACHSEIN W !
  1. P2 ;
  1. S ACHSVNDR=$O(^TMP("ACHSYDRV",$J,ACHSEIN,ACHSVNDR))
  1. G:ACHSVNDR="" P1
  1. U IO
  1. W !?12,ACHSEIN,?30,$E($P(^TMP("ACHSYDRV",$J,ACHSEIN,ACHSVNDR),U),1,30)
  1. S C=C+1
  1. D LSTUSED
  1. I IOST["P-",$Y>(IOSL-10) D HEADER
  1. I IOST["C-",'$D(IO("S")),$Y>(IOSL-6) Q:'$$DIR^XBDIR("E","","","","","",2) D HEADER
  1. S ACHSSKIP=ACHSEIN
  1. G P2
  1. ;
  1. TOTL ;
  1. U IO
  1. W !!?1,"TOTAL",?30,C
  1. I IOST["C-",'$D(IO("S")) Q:'$$DIR^XBDIR("E","","","","","",2)
  1. BADEIN ; Print list of Vendors with no EIN on file
  1. S ACHSPAGE=0
  1. D BADHEAD
  1. I '$D(^TMP("ACHSYDRV",$J,"NOT ON FILE")) U IO W !!,"Good for YOU!! All VENDORS in your file have EIN's!" G END
  1. W !!
  1. S ACHSBAD="",C=0
  1. BAD1 ;
  1. S ACHSBAD=$O(^TMP("ACHSYDRV",$J,"NOT ON FILE",ACHSBAD))
  1. G BADTOTL:ACHSBAD=""
  1. W !?12,$P(^AUTTVNDR(ACHSBAD,0),U)
  1. S C=C+1
  1. I IOST["P-",$Y>(IOSL-10) D BADHEAD
  1. I IOST["C-",'$D(IO("S")),$Y>(IOSL-6) Q:'$$DIR^XBDIR("E","","","","","",2) D BADHEAD
  1. G BAD1
  1. ;
  1. BADTOTL ;
  1. U IO
  1. W !!?1,"TOTAL",?12,C
  1. I IOST["C-",'$D(IO("S")) Q:'$$DIR^XBDIR("E","","","","","",2)
  1. W @IOF
  1. G END
  1. ;
  1. U IO
  1. W @IOF
  1. S ACHSPAGE=ACHSPAGE+1
  1. S Y=$$HTE^XLFDT($H),ACHSDAT=$P(Y,"@",1),ACHSTIM=$P(Y,"@",2)
  1. W !,"*",ACHSDAT
  1. S X=$$LOC^ACHS
  1. W ?((80/2)-($L(X)/2)),X,!!
  1. S X="DUPLICATE VENDOR EIN Report - Page "
  1. W ?((80/2)-($L(X)/2)),X_ACHSPAGE
  1. W !!,$$REPEAT^XLFSTR("*",80)
  1. W !!?12,"VENDOR EIN",?30,"VENDOR NAME",?66,"LAST USED"
  1. W !,$$REPEAT^XLFSTR("~",80),!
  1. Q
  1. ;
  1. BADHEAD ;Prints heading of missing EIN's
  1. W @IOF
  1. S ACHSPAGE=ACHSPAGE+1
  1. S Y=$$HTE^XLFDT($H),ACHSDAT=$P(Y,"@",1),ACHSTIM=$P(Y,"@",2)
  1. W !,"*",ACHSDAT
  1. S X=$$LOC^ACHS
  1. W ?((80/2)-($L(X)/2)),X
  1. W ?71,ACHSTIM,"*",!,"*User: ",ACHSUSR,?70,"Device:",IO,"*",!!
  1. S X="VENDOR(s) MISSING EIN Report - Page "
  1. W ?((80/2)-($L(X)/2)),X_ACHSPAGE
  1. W !!,$$REPEAT^XLFSTR("*",80)
  1. W !!?8,"The following do(es) not have an EIN entry in the VENDOR FILE."
  1. W !?25,"PLEASE validate and correct."
  1. W !,$$REPEAT^XLFSTR("~",80),!
  1. Q
  1. ;
  1. LSTUSED ;CHECKS LAST USED DATE IN ^ACHSF(DUZ(2),"VB"
  1. S ACHSNODE=0
  1. Q:'$D(^ACHSF(DUZ(2),"VB",ACHSVNDR))
  1. LST2 ;
  1. S ACHSNODE=$O(^ACHSF(DUZ(2),"VB",ACHSVNDR,ACHSNODE))
  1. G LSTEND:+ACHSNODE=0
  1. S ACHSDTSV=ACHSNODE
  1. G LST2
  1. ;
  1. LSTEND ;
  1. S ACHSLUDT=""
  1. S:$D(ACHSDTSV) ACHSLUDT=$P(^ACHSF(DUZ(2),"D",ACHSDTSV,0),U,2)
  1. U IO
  1. W ?65,$E(ACHSLUDT,4,5),"-",$E(ACHSLUDT,6,7),"-",$E(ACHSLUDT,2,3)
  1. Q
  1. ;