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

ACRFUFMX.m

Go to the documentation of this file.
  1. ACRFUFMX ;IHS/OIRM/DSD/AEF - UTILITY STANDALONE TO READ OPEN DOCUMENTS FROM CORE FOR UFMS [ 05/09/2007 9:44 AM ]
  1. ;;2.1;ADMIN RESOURCE MGMT SYSTEM;**22**;NOV 05, 2001
  1. ;NEW ROUTINE; CONTINUATION OF ACRFUFMZ ;ACR*2.1*22 UFMS
  1. ;
  1. ; *********************************************
  1. ;
  1. ; This routine is a continuation of ACRFUFMZ. If there is no match to the
  1. ; FMS DOCUMENT file, it attempts to match the CORE document number in the
  1. ; 1166 APPROVALS FOR PAYMENT and the FMS DOCUMENT HISTORY RECORD files.
  1. ;
  1. Q ;MUST ENTER AT LINE LABELS
  1. ;
  1. ; ****************************************************
  1. HIT1166(ACRCDOC,FLAG) ;EP; CHECK 1166 APPROVALS FOR PAYMENT FILE
  1. ;
  1. ; - Enters with: ACRCDOC = CORE document number
  1. ; FLAG = 0 OR 1
  1. ; ACRCORE string VARIABLES from CORE file
  1. ;
  1. ; ACRCTYP ;CORE DOCUMENT TYPE
  1. ; ACRCAP ;CORE ACCOUNTING POINT
  1. ; ACRCFY ;CORE FISCAL YEAR
  1. ; ACRCCAN ;CORE CAN
  1. ; ACRCOCC ;CORE OBJECT CLASS CODE
  1. ; ACRCEIN ;CORE VENDOR EIN
  1. K ACRXX
  1. D LOOP11(ACRCDOC,.ACRXX) ;LOOP THROUGH 1166 APPROVALS FOR PAYMENT FILE
  1. S:'$G(ACRXX) ACRXX=0
  1. Q:FLAG ;IF FROM FMS DOC,ONLY WANT 1166 FILE POINTERS
  1. S ACRHIT=0
  1. F I=1:1:ACRXX D ;ALLOW FOR MULTIPLES
  1. .S ACRMATCH=$$MATCH2^ACRFUFMU(.ACRXX,I,.ACRV)
  1. .I ACRMATCH'=0 D
  1. ..D ITEMS11^ACRFUFMI(ACRMATCH) ;SETS ITEMS INTO ^ACRZ("ITEMS"
  1. ..S ACRHIT=1
  1. I 'ACRHIT D SETCK^ACRFUFMU("NO MATCH 1166",ACR)
  1. I ACRHIT D SET^ACRFUFMZ
  1. Q
  1. ;
  1. HITDHR(ACRCDOC) ;EP; CHECK FMS DOCUMENT HISTORY RECORD FILE
  1. ;
  1. ; - Enters with: ACRCDOC = CORE document number
  1. ;
  1. ; ****************************************************
  1. N ACRZ,ACRD1,ACRI,ACRTCOD,ACRAMT
  1. K ACRXX
  1. S (ACRZ,ACRMATCH,ACRX)=0
  1. F S ACRZ=$O(^ACRDHR("B",ACRCDOC,ACRZ)) Q:ACRZ="" D
  1. .S ACRD1=$G(^ACRDHR(ACRZ,1))
  1. .S ACREDAT=$$SLDATE^ACRFUTL($P(ACRD1,U,2)) ;EFFECTIVE DATE
  1. .S ACRCAN=$P(ACRD1,U,12) ;CAN
  1. .S ACROCC=$P(ACRD1,U,13) ;OBJECT CLASS CODE
  1. .S ACRAMT=$P(ACRD1,U,14) ;DOLLAR AMOUNT
  1. .S ACRTCOD=$P(ACRD1,U,3) ;TRANSACTION CODE
  1. .S ACRI=$E(ACRTCOD,1,2) ;TRANSACTION CODE
  1. .S ACRIFIN=$S(ACRI="05":"OBLIGATION",ACRI="18":"PARTIAL INVOICE",ACRI="19":"FINAL INVOICE",1:ACRI)
  1. .S ACRVEIN=$TR($P(ACRD1,U,16)," ") ;VENDOR EIN+
  1. .S:$G(ACRV)'>0 ACRV=$$VEN^ACRFUFMU(ACRVEIN)
  1. .S ACRCCIEN=$$CCVEN^ACRFUFMU ;CC DEFAULT VENDOR IEN
  1. .S ACRCIEN=$$VEN^ACRFUFMU(ACRCEIN)
  1. .I ACRCIEN,ACRCIEN=ACRCCIEN S ACRV=ACRCCIEN ;CHANGE TO CC DEFAULT VENDOR
  1. .S ACRFY=$P(ACRD1,U,28) ;2-DIGIT FY
  1. .S ACRMATCH=$$MATCH^ACRFUFMU
  1. .S ACRSTR=ACRCDOC_U_ACREDAT_U ;NO REQ OR INVOICE INFO
  1. .S ACRX=$G(ACRX)+1 ;COUNTER
  1. .S ACRXX(ACRMATCH,ACRX,ACRV)=ACRSTR_"@"_ACRZ_U_ACRCAN_U_ACROCC_U_ACRAMT_U_ACRIFIN_U_ACRTCOD ;ALLOW FOR MULTIPLES
  1. .S ACRXX=ACRX
  1. S ACRHIT=0
  1. F I=1:1:ACRXX D
  1. .S ACRMATCH=$$MATCH2^ACRFUFMU(.ACRXX,I,ACRV)
  1. .I ACRMATCH'=0 D
  1. ..D ITEMSDHR^ACRFUFMI(ACRMATCH,ACRCORE) ;SETS ITEMS INTO ^ACRZ("ITEMS"
  1. ..S ACRHIT=1
  1. I 'ACRHIT D SETCK^ACRFUFMU("NO MATCH DHR",ACR)
  1. I ACRHIT D SET^ACRFUFMZ
  1. Q
  1. ; ************************************************
  1. LOOP11(ACRCDOC,ACRXX) ;
  1. N ACRAFY,ACRABCH,ACRASEQ,ACRADATE
  1. S (ACRAFY,ACRMATCH,ACRX)=0
  1. F S ACRAFY=$O(^AFSLAFP("N",ACRCDOC,ACRAFY)) Q:'ACRAFY D
  1. .S ACRABCH=0
  1. .F S ACRABCH=$O(^AFSLAFP("N",ACRCDOC,ACRAFY,ACRABCH)) Q:'ACRABCH D
  1. ..S ACRASEQ=0
  1. ..F S ACRASEQ=$O(^AFSLAFP("N",ACRCDOC,ACRAFY,ACRABCH,ACRASEQ)) Q:'ACRASEQ D
  1. ...S ACRAF0=$G(^AFSLAFP(ACRAFY,1,ACRABCH,1,ACRASEQ,0))
  1. ...Q:ACRAF0']""
  1. ...S ACRAF3=$G(^AFSLAFP(ACRAFY,1,ACRABCH,1,ACRASEQ,3))
  1. ...S ACRFY=$P(ACRAF3,U,3)
  1. ...S:ACRFY="" ACRFY=$P(^AFSLAFP(ACRAFY,0),U) ;FY OF BATCH
  1. ...S ACRAF34=$P(ACRAF3,U,4) ;INVOICE IN LIEU OF IDENTIFIER
  1. ...S ACRADAT=$P(ACRAF0,U,13) ;DATE
  1. ...I ACRADAT="" S ACRADAT=$P($G(^AFSLAFP(ACRAFY,1,ACRABCH,1,ACRASEQ,2)),U)
  1. ...S ACRADAT=$$SLDATE^ACRFUTL(ACRADAT)
  1. ...I ACRADAT="" S ACRADAT="0/0/"_ACRFY ;WHEN ALL ELSE FAILS
  1. ...S ACRCANDA=$P(ACRAF0,U,7)
  1. ...S ACROCCDA=$P(ACRAF0,U,8)
  1. ...D PIECE^ACRFUFMU
  1. ...S ACRMATCH=$$MATCH^ACRFUFMU
  1. ...S:$G(ACRV)'>0 ACRV=+$P(ACRAF0,U,10) ;DON'T RESET VENDOR
  1. ...I ACRREQ,'ACRMATCH D S ACRX=0 Q ;IN CASE PAYMENT DOESN'T MATCH
  1. ....S ACRSTR=ACRREQ_U_ACRADAT_U_ACRAF34
  1. ...S ACRSTR=ACRCDOC_U_ACRADAT_U_ACRAF34 ;NO REQ GIVE INVOICE
  1. ...S ACRX=$G(ACRX)+1 ;COUNTER
  1. ...S ACRXX(ACRMATCH,ACRX,ACRV)=ACRSTR_"@"_ACRAFY_U_ACRABCH_U_ACRASEQ
  1. ...S ACRXX=ACRX ;COUNT MATCHES
  1. Q