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

ACRFUFMR.m

Go to the documentation of this file.
  1. ACRFUFMR ;IHS/OIRM/DSD/AEF - UTILITY STANDALONE TO READ OPEN DOCUMENTS FROM CORE FOR UFMS [ 05/16/2007 9:44 AM ]
  1. ;;2.1;ADMIN RESOURCE MGMT SYSTEM;**22**;NOV 05, 2001
  1. ;NEW ROUTINE ACR*2.1*22 UFMS
  1. ;
  1. ;*************************************************************
  1. READ ;EP;READ CONTENTS OF UNIX CORE FILES INTO ^ACRZ GLOBALS
  1. ;
  1. ; ACRFN = ARMS/CORE FILENAME -- Docs##.txt ; ## = Accounting point
  1. ;
  1. N ACRDIR,X,%DEV,ACRSTR,ACRI,ACRFN,ACRFAP
  1. N P1,P2,P3,P4,P5,P6,P7,P8,P9,ACRQUIT
  1. S ACRFAP=$P(^AUTTACPT($P(^ACRSYS(1,"DT1"),U,13),0),U)
  1. I ACRFAP=65 S ACRFAP="65-94" ;MODIFY FOR HQ/NP
  1. S ACRFN="Docs"_ACRFAP_".txt"
  1. S ACRDIR=$$ARMSDIR^ACRFSYS(1)
  1. I ACRDIR["/usr/ACR/" S ACRDIR="/usr/ACR/"
  1. D HFS^ACRFZISH(ACRDIR,ACRFN,"R",.%DEV)
  1. Q:$G(%DEV)']""
  1. K ^ACRZ("ACRCORE")
  1. U %DEV
  1. S (ACRI,ACRQUIT)=0
  1. F R X:DTIME D I ACRQUIT>4 Q ;DIRECT READ OF UNIX FLAT FILE
  1. . S ACRSTR=$$STR(X)
  1. . Q:ACRSTR=0
  1. . S ACRI=ACRI+1
  1. . S ^ACRZ("ACRCORE",ACRI)=ACRSTR
  1. ;
  1. D CLOSE^%ZISH("FILE")
  1. S ^ACRZ("ACRCORE")=$$NOW^ACRFUTL ;DATE AND TIME STAMP
  1. S ^ACRZ("ACRCORE","TOTAL")=ACRI ;NUMBER OF RECORDS
  1. ;
  1. D EN^ACRFUFMZ
  1. Q
  1. ;
  1. ;*************************************************************
  1. STR(X) ; PARSING STRING
  1. ;40,AP,6007002300 ,2005,J40DU05,252Z,13292,100,1860777569A1
  1. I X="" D Q 0 ;SET QUIT CONDITION IF NULL
  1. .S ACRQUIT=ACRQUIT+1 ;IF IT FINDS FIVE NULL LINES, MUST BE EOF
  1. S P7=$P(X,",",7) ;DOL AMT
  1. I P7=0!(P7="") Q 0 ;SKIP ZERO DOLLAR AMOUNTS
  1. S P1=$P(X,",",1) ;AP
  1. S P2=$P(X,",",2) ;DOC-TYPE
  1. S P3=$E($P(X,",",3),1,10) ;DOCUMENT
  1. S P4=$P(X,",",4) ;FY
  1. S P5=$P(X,",",5) ;CAN
  1. S P6=$P(X,",",6) ;OCC
  1. S P8=$P(X,",",8) ;REF CODE
  1. S P9=$P(X,",",9) ;VENDOR EIN
  1. S STR=P1_U_P2_U_P3_U_P4_U_P5_U_P6_U_P7_U_P8_U_P9
  1. Q STR
  1. ;*************************************************************
  1. ; BEGIN REPORT FILE CREATION
  1. ;*************************************************************
  1. ENW ;EP; ENTRY POINT FOR RECORDS GENERATED BY ^ACRFUFMZ
  1. ;
  1. N ACRNODE,ACRTOT,ACRTOTAL,ACRSITE,ACRCNT,ACRRPTOT,I,ACRCORE,ACRMTCH,TRCNT
  1. S ACRSITEN=$P($G(^AUTTAREA(+$G(^ACRSYS(1,0)),0)),U) ;SITE NAME
  1. K ACRARY
  1. ;CREATE FILE NAME
  1. S ACRSITE=$E(ACRSITEN,1,3)
  1. S:ACRSITE="NAT" ACRSITE="HQ"
  1. S ACRTAIL=".csv" ; USE COMMA SEPARTED VALUE FORMAT
  1. S ACRPFX=ACRSITE_"_CORE_OPEN_"
  1. S (ACRTOT,ACRRPTOT,TRCNT)=0
  1. ;
  1. ;LOOP THROUGH NODES TO CREATE REPORT FILES
  1. F ACRNODE="ITEMS","ACRDOC","VNDR","NOHIT","NOMATCH","NOVNDR","ERR","TR","PAY","GTRIP","CHS","GR","CEIN" D
  1. .S ACRFILE=ACRPFX_ACRNODE_ACRTAIL
  1. .D WRITE(ACRNODE,ACRFILE)
  1. ;
  1. S ACRCORE=$G(^ACRZ("ACRCORE","TOTAL")) ;NUMBER OF RECORDS IN CORE FILE
  1. S ACRMTCH=0
  1. F I="ACRDOC","NOVNDR","TR" D ;TOTAL ALL ARMS MATCHES
  1. .S ACRMTCH=ACRMTCH+$G(^ACRZ(I,"TOTAL"))
  1. S ACRMTCH=ACRMTCH-TRCNT ;SUBTRACT NUMBER OF NO HIT/MATCH TRAVEL
  1. S ACRSTR=ACRSITEN_U_ACRCORE_U_ACRMTCH
  1. ;
  1. F I="TOTALS","ACRDOC","NOVNDR","VNDR","ERR","NOHIT","NOMATCH","TR","PAY","GTRIP","CHS","GR" D
  1. .S ACRSTR=ACRSTR_U_$G(^ACRZ(I,"TOTAL")) ;CREATE 'TOTALS' SUMMARY STRING
  1. .Q:I="ERR"
  1. .Q:I="VNDR"
  1. .S:I'="TOTALS" ACRRPTOT=ACRRPTOT+^ACRZ(I,"TOTAL") ;TOTAL NUMBER IN REPORTS
  1. ;
  1. S ACRSTR=ACRSTR_U_ACRRPTOT
  1. S ^ACRZ("TOTALS")=ACRSTR
  1. S ACRFILE=ACRPFX_"TOTALS"_ACRTAIL
  1. D WRITE("TOTALS",ACRFILE)
  1. I IOST'["C-" Q ;TASKED JOB
  1. U 0
  1. S RAY=0
  1. F S RAY=$O(ACRARY(RAY)) Q:RAY="" D
  1. .W !,ACRARY(RAY)
  1. W !!,"CORE OPEN DOCUMENT FILE IMPORTED ",$G(^ACRZ("ACRCORE"))
  1. W !,"TOTAL RECORDS FROM CORE FILE = ",ACRCORE
  1. W !,"TOTAL RECORDS IN REPORT FILES = ",ACRRPTOT
  1. W !?10,"TOTAL MATCHED DOCUMENTS = ",ACRMTCH
  1. W !?10,"TOTAL VENDORS IN MATCHED FILES = ",^ACRZ("VNDR","TOTAL")
  1. W !?10,"TOTAL MATCHED DOCUMENTS WITH VENDOR ERRORS = ",^ACRZ("ERR","TOTAL")
  1. D PAUSE^ACRFWARN
  1. Q
  1. ;
  1. ;*************************************************************
  1. WRITE(ACRNODE,ACRFILE) ;----- WRITE ^ACRZ(ACRNODE GLOBAL TO UNIX FILE
  1. ;
  1. N %DEV,ACR,ACRDIR,I,ACRI,ACRD,ACRN,ACRSTR,ACRFY
  1. K ACRARY(ACRNODE)
  1. S ACRSTR=""
  1. S ACRDIR=$$ARMSDIR^ACRFSYS(1)
  1. D HFS^ACRFZISH(ACRDIR,.ACRFILE,"W",.%DEV)
  1. Q:'$D(%DEV)
  1. U %DEV
  1. D @(ACRNODE_"H") ;WRITE HEADING
  1. I ACRNODE="TOTALS" D Q ;SINGLE STRING ONLY
  1. .S ACRSTR=^ACRZ(ACRNODE)
  1. .D CNT
  1. .S ACRARY(ACRNODE)=ACRCNT_" records have been put into file "_ACRDIR_ACRFILE
  1. .D CLOSE^%ZISH("FILE")
  1. S ACRCNT=0
  1. S ACRD=""
  1. F S ACRD=$O(^ACRZ(ACRNODE,ACRD)) Q:ACRD="" D
  1. .Q:ACRD="TOTAL"
  1. .S ACRSTR=$G(^ACRZ(ACRNODE,ACRD))
  1. .I ACRNODE="ACRDOC"!(ACRNODE="VNDR")!(ACRNODE="ERR") D
  1. ..S ACRSTR=$P(ACRSTR,U,3,99) ;STRIP AP/VIEN FROM REPORTS
  1. .I ACRNODE="ITEMS" D Q ;LOOP THRU MULTIPLE ITEMS
  1. ..S NUM=0
  1. ..F S NUM=$O(^ACRZ(ACRNODE,ACRD,NUM)) Q:'NUM D
  1. ...S ACRSTR=""
  1. ...F I=1:1:3 S ACRSTR=ACRSTR_$G(^ACRZ(ACRNODE,ACRD,NUM,I))_U
  1. ...D CNT
  1. .D CNT
  1. W !,$C(34)_"TOTAL = "_ACRCNT_$C(34)
  1. S ACRARY(ACRNODE)=ACRCNT_" records have been put into file "_ACRDIR_ACRFILE
  1. D CLOSE^%ZISH("FILE")
  1. S ACRTOT=ACRTOT+ACRCNT
  1. Q
  1. ;*************************************************
  1. CNT ;
  1. W !
  1. F I=1:1:$L(ACRSTR,U) D
  1. .S TMP=$P(ACRSTR,U,I)
  1. .W $C(34) ;WRITE " DOUBLE QUOTE
  1. .I $E(TMP)="0",$L(TMP)'=1 W $C(39) ;WRITE ' SINGLE QUOTE IN FRONT OF ZERO
  1. .W TMP_$C(34)_$C(44) ;WRITE " DOUBLE QUOTE AND COMMA
  1. I ACRNODE="TR",$E(ACRSTR,1,3)="NO " S TRCNT=TRCNT+1 ;COUNT NO HIT/MATCH TRAVEL
  1. S ACRCNT=ACRCNT+1
  1. Q
  1. ;
  1. ;*************************************************************
  1. TRH ;TRAVEL DOCUMENTS
  1. NOMATCHH ;HEADING; DOCUMENT HIT BUT NO MATCH WITH CORE
  1. NOVNDRH ;HEADING; MATCHED DOCUMENTS WITH NO VENDOR
  1. W $C(34)_"NAME"_$C(34)
  1. W $C(44)_$C(34)_"REQUISITION"_$C(34)
  1. W $C(44)_$C(34)_"DATE OF DOCUMENT/TRANSMISSION"_$C(34)
  1. W $C(44)_$C(34)_"IDENTIFIER/INVOICE"_$C(34)
  1. D COREH
  1. I ACRNODE'="NOMATCH" D
  1. .W $C(44)_$C(34)_"ARMS RR STATUS"_$C(34)
  1. .W $C(44)_$C(34)_"ARMS INVOICE STATUS"_$C(34)
  1. Q
  1. ;
  1. ;*************************************************************
  1. ACRDOCH ;HEADING; MATCHED DOCUMENTS WITH VENDOR AND ERROR FLAG
  1. VNDRH ;HEADING; MATCHED DOCUMENT VENDORS WITH ERRORS
  1. ERRH ;HEADING; VENDOR ERRORS WITH DOCUMENTS TO FLAT FILE
  1. W $C(34)_"VENDOR NAME"_$C(34)
  1. W $C(44)_$C(34)_"VENDOR EIN"_$C(34)
  1. W $C(44)_$C(34)_"SUFFIX"_$C(34)
  1. W $C(44)_$C(34)_"ARMS REQUISITION"_$C(34)
  1. W $C(44)_$C(34)_"DATE OF DOCUMENT/TRANSMISSION"_$C(34)
  1. W $C(44)_$C(34)_"IDENTIFIER/INVOICE"_$C(34)
  1. D COREH
  1. W $C(44)_$C(34)_"ARMS RR STATUS"_$C(34)
  1. W $C(44)_$C(34)_"ARMS INVOICE STATUS"_$C(34)
  1. W $C(44)_$C(34)_"VENDOR ERRORS"_$C(34)
  1. Q
  1. ;
  1. ;*************************************************************
  1. NOHITH ;WRITE NO HITS WITH CORE FILE HEADINGS FOR FLAT FILE
  1. GRH ;GRANT DOCUMENTS
  1. NOTRH ;TRAVEL WITHOUT A HIT (NON-GTRIP)
  1. CHSH ;CHS DOCUMENTS
  1. GTRIPH ;GOVTRIP DOCUMENTS
  1. PAYH ;PAY ROLL ENTRIES IN CORE FILE
  1. CEINH ;CORE/ARMS VENDOR CHECK
  1. W $C(34)_"NAME"_$C(34)
  1. COREH ;WRITE ALL CORE RECORDS HEADINGS FOR FLAT FILE
  1. W:ACRNODE'="ITEMS" $C(44)
  1. W $C(34)_"ACCOUNTING POINT"_$C(34)
  1. W $C(44)_$C(34)_"CORE DOC-TYPE"_$C(34)
  1. W $C(44)_$C(34)_"CORE DOCUMENT"_$C(34)
  1. W $C(44)_$C(34)_"FISCAL YEAR"_$C(34)
  1. W $C(44)_$C(34)_"CAN"_$C(34)
  1. W $C(44)_$C(34)_"OCC"_$C(34)
  1. W $C(44)_$C(34)_"CORE DOLLAR AMOUNT"_$C(34)
  1. W $C(44)_$C(34)_"CORE REFERENCE CODE"_$C(34)
  1. W $C(44)_$C(34)_"CORE VENDOR EIN"_$C(34)
  1. Q
  1. TOTALSH ;WRITE SUMMARY TOTALS
  1. W $C(34)_"AREA OFFICE SITE"_$C(34)
  1. W $C(44)_$C(34)_"RECORDS FROM CORE (ACRCORE)"_$C(34)
  1. W $C(44)_$C(34)_"ARMS DOCUMENTS MATCHED WITH OPEN CORE RECORDS"_$C(34)
  1. W $C(44)_$C(34)_"TOTAL UNDISBURSED AMOUNT"_$C(34)
  1. W $C(44)_$C(34)_"MATCHED WITH VENDORS (ACRDOC)"_$C(34)
  1. W $C(44)_$C(34)_"MATCHED WITH NO VENDOR (NOVNDR)"_$C(34)
  1. W $C(44)_$C(34)_"UNIQUE MATCHED DOCUMENT VENDORS (VNDR)"_$C(34)
  1. W $C(44)_$C(34)_"MATCHED RECORDS WITH VENDOR ERRORS (ERR)"_$C(34)
  1. W $C(44)_$C(34)_"RECORDS WITH NO MATCHING DOC # (NOHIT)"_$C(34)
  1. W $C(44)_$C(34)_"RECORDS WITH MATCHING DOC # AND NO MATCH ON CAN, OCC, FY (NOMATCH)"_$C(34)
  1. W $C(44)_$C(34)_"ALL ARMS TRAVEL DOCUMENTS"_$C(34)
  1. W $C(44)_$C(34)_"NO HIT PAYROLL RECORDS (PAY)"_$C(34)
  1. W $C(44)_$C(34)_"NO HIT GOVTRIP DOCUMENTS"_$C(34)
  1. W $C(44)_$C(34)_"NO HIT CHS DOCUMENTS"_$C(34)
  1. W $C(44)_$C(34)_"NO HIT GRANT DOCUMENT"_$C(34)
  1. W $C(44)_$C(34)_"RECORDS IN REPORTS"_$C(34)
  1. Q
  1. ITEMSH ;WRITE HEADINGS FOR LINE ITEMS
  1. D COREH
  1. 1 W $C(44)_$C(34)_"ITEM NUMBER IN DOCUMENT"_$C(34)
  1. W $C(44)_$C(34)_"UNIT OF ISSUE"_$C(34)
  1. W $C(44)_$C(34)_"QUANTITY"_$C(34)
  1. W $C(44)_$C(34)_"UNIT COST"_$C(34)
  1. W $C(44)_$C(34)_"ESTIMATED COST"_$C(34)
  1. W $C(44)_$C(34)_"QUANTITY RECEIVED"_$C(34)
  1. W $C(44)_$C(34)_"QUANTITY ACCEPTED"_$C(34)
  1. W $C(44)_$C(34)_"QUANTITY DUE IN"_$C(34)
  1. W $C(44)_$C(34)_"RR QUANTITY RECEIVED"_$C(34)
  1. W $C(44)_$C(34)_"RR QUANTITY ACCEPTED"_$C(34)
  1. W $C(44)_$C(34)_"RR INVOICE QUANTITY"_$C(34)
  1. W $C(44)_$C(34)_"AMOUNT PAID"_$C(34)
  1. W $C(44)_$C(34)_"ARMS RR STATUS"_$C(34)
  1. W $C(44)_$C(34)_"ARMS INVOICE STATUS"_$C(34)
  1. ;
  1. 2 W $C(44)_$C(34)_"LINE DESCRIPTION"_$C(34)
  1. W $C(44)_$C(34)_"KEYWORD"_$C(34)
  1. W $C(44)_$C(34)_"STANDARD ITEM NUMBER"_$C(34)
  1. 3 ;
  1. W $C(44)_$C(34)_"ITEM DESCRIPTION"_$C(34)
  1. W $C(44)_$C(34)_"CAN 'BILL TO' LOCATION"_$C(34)
  1. W $C(44)_$C(34)_"CAN 'SHIP TO' LOCATION"_$C(34)
  1. W $C(44)_$C(34)_"DEPARTMENT LOCATION"_$C(34)
  1. W $C(44)_$C(34)_"DEPARTMENT LOCATION CODE NAME"_$C(34)
  1. W $C(44)_$C(34)_"CAN LOCATION"_$C(34)
  1. W $C(44)_$C(34)_"CAN LOCATION CODE NAME"_$C(34)
  1. ;
  1. Q