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

PRCHLO1.m

Go to the documentation of this file.
  1. PRCHLO1 ;WOIFO/RLL-EXTRACT ROUTINE (cont.)CLO REPORT SERVER ;5/22/09 14:10
  1. ;;5.1;IFCAP;**83,130**;Oct 20, 2000;Build 25
  1. ;Per VHA Directive 2004-038, this routine should not be modified.
  1. ; DBIA 10093 - Read file 49 via FileMan.
  1. ; Continuation of PRCHLO1. This program builds the extracts for
  1. ; the Master PO Table and the associated multiples
  1. POMAST ; PoMaster Table
  1. Q
  1. PODISCW ; Write PO Discount table data
  1. N GPOID,GPOND
  1. S GPOID=0,GPOND=""
  1. F S GPOID=$O(^TMP($J,"PODISC",GPOID)) Q:GPOID="" D
  1. . F S GPOND=$O(^TMP($J,"PODISC",GPOID,GPOND)) Q:GPOND="" D
  1. . . W $G(^TMP($J,"PODISC",GPOID,GPOND))
  1. . . W !
  1. . . Q
  1. . Q
  1. Q
  1. GPOMAST ; get PO Master record
  1. S U="^"
  1. N N0,N1,N7,N12,N16,N23,PONUMB,STNUMB,PODAT,PPOKEY
  1. N PAPAB,PAPAB1,AGAPO,AGAPO1,PCHDR,PCHDR1,PCUSR,PCUSR1,POIDC,PRCVAL
  1. N VL1,VL6,VL7,VL8,VL9,VL10,VL11,VL12,VL13,VL14,VL15,VL16,VL17,VL18
  1. N VL19,VL20,VL21,VL22,VL23,VL24,VL25,VL26,VL27,VL28,VL29,VL30,VL31
  1. N VL32,VL33,VL34,VL35,VL36,VL37,VL38,VL39,VL40,VL41
  1. N GN0,GN0A,GN0B,GN1,GN1A,GN2,VN,VN1,VN2
  1. N VL6E,VL6E1,VL6E2,VL7E,VL7E1,VL7E2,VL8E,VL8E1,VL8E2,VL10E,VL10E1
  1. N VL10E2,VL21E,VL21E1,VL21E2,VL25E,VL25E1,VL25E2,VL35E,VL35E1,VL35E2
  1. N VL16E,VL16E1,VL16E2,VL18E,VL18E1,VL18E2,VL33E,VL33E1,VL33E2
  1. N VL34E,VL34E1,VL34E2,PC2237V,PC2237V1,EXDT,EXDT1,EXDT2
  1. S N0=$G(^PRC(442,POID,0))
  1. S N1=$G(^PRC(442,POID,1))
  1. S N7=$G(^PRC(442,POID,7))
  1. S N12=$G(^PRC(442,POID,12))
  1. S N16=$G(^PRC(442,POID,16))
  1. S N23=$G(^PRC(442,POID,23))
  1. S PONUMB=$P(N0,U,1),STNUMB=$P(PONUMB,"-",1)
  1. S EXDT=$P(N1,U,15)
  1. I EXDT="" S EXDT=POCRDAT ; if PO Date "" use x-ref date value for PO
  1. S EXDT1=$P(EXDT,".",1)
  1. S EXDT2=$$FMTE^XLFDT(EXDT1)
  1. S PODAT=EXDT2 ; needed for key
  1. S PPOKEY=POID_U_PONUMB_U_PODAT_U_MNTHYR_U_STNUMB
  1. ;
  1. ; The 1st 5 values in PPOKEY above are included in each record
  1. ;
  1. S VL6E=$P(N0,U,12),VL6E1=$G(^PRCS(410,+VL6E,0)),VL6E2=$P(VL6E1,U,1)
  1. S VL6=VL6E2 ; Prim2237
  1. S VL7E=$P(N0,U,2),VL7E1=$G(^PRCD(442.5,+VL7E,0)),VL7E2=$P(VL7E1,U,1)
  1. S VL7=VL7E2 ; meth.of proc
  1. S VL8E=$P(N1,U,19),VL8E1=$G(^PRC(443.8,+VL8E,0)),VL8E2=$P(VL8E1,U,2)
  1. S VL8=VL8E2 ; locProcRsnCode
  1. S VL9=$P(N1,U,18) ; exp/non-exp
  1. S VL10E=$P(N7,U,1),VL10E1=$G(^PRCD(442.3,+VL10E,0))
  1. S VL10E2=$P(VL10E1,U,1)
  1. S VL10=VL10E2 ; Supply status
  1. S VL11=$P(N7,U,2) ; Sup Stat Order
  1. S VL12=$P(N7,U,4) ;Fis Stat Order
  1. S VL13=$P(N0,U,3) ;FCP
  1. S VL14=$P(N0,U,4) ;Appropriation
  1. S VL15=$P(N0,U,5) ;CostCenter
  1. S VL16E=$P(N0,U,6),VL16E1=$G(^PRCD(420.2,+VL16E,0))
  1. S VL16E2=$P(VL16E1,U,1)
  1. S VL16=VL16E2 ;SubAcct1
  1. S VL17=$P(N0,U,7) ;SubAmt1
  1. S VL18E=$P(N0,U,8),VL18E1=$G(^PRCD(420.2,+VL18E,0))
  1. S VL18E2=$P(VL18E1,U,1)
  1. S VL18=VL18E2 ;SubAcct2
  1. S VL19=$P(N0,U,9) ;SubAmt2
  1. ; set Node 0 of ^TMP
  1. S GN0=PPOKEY_U_VL6_U_VL7_U_VL8_U_VL9_U_VL10_U
  1. S GN0A=GN0_VL11_U_VL12_U_VL13_U_VL14_U_VL15_U
  1. S GN0B=GN0A_VL16_U_VL17_U_VL18_U_VL19_U
  1. S GN0B=GN0B_VL6E_U ;IEN OF PRIMARY 2237
  1. S GN0B=GN0B_VL7E_U ;IEN OF METHOD OF PROCESSING
  1. S GN0B=GN0B_VL10E_U ;IEN OF SUPPLY STATUS
  1. S GN0B=GN0B_VL16E_U ;IEN OF SUBACCOUNT1
  1. S GN0B=GN0B_VL18E_U ;IEN OF SUBACCOUNT2
  1. S ^TMP($J,"POMAST",POID,0)=GN0B ; build and set node 0
  1. ; begin Node 1
  1. ; look up Vendor
  1. S VN=$P(N1,U,1),VN1=$G(^PRC(440,+VN,0)),VN2=$P(VN1,U,1)
  1. S VL20=VN2 ;Vendor Name
  1. S VL21E=$P(N1,U,2),VL21E1=$$GET1^DIQ(49,+VL21E_",",.01)
  1. S VL21E2=$P(VL21E1,U,1)
  1. S VL21=VL21E2 ; Req. Service
  1. S VL22=$P(N1,U,6) ; Fob Point
  1. ; get ext. date
  1. S EXDT=$P(N0,U,20),EXDT1=$P(EXDT,".",1)
  1. S EXDT2=$$FMTE^XLFDT(EXDT1)
  1. S VL23=EXDT2 ; Org. Del. Date
  1. S VL24=$P(N0,U,11) ; Est. Cost
  1. S VL25E=$P(N1,U,7),VL25E1=$G(^PRCD(420.8,+VL25E,0))
  1. S VL25E2=$P(VL25E1,U,2)
  1. S VL25=VL25E2 ; Source Code
  1. S VL26=$P(N0,U,13) ; Est Shipping
  1. S VL27=$P(N0,U,18) ; Shp Ln Itm #
  1. S VL28=$P(N0,U,14) ; Ln Itm Cnt
  1. S PAPAB=$P(N1,U,10),PAPAB1=$G(^VA(200,+PAPAB,0))
  1. S VL29=$P(PAPAB1,U,1) ; PaPpmAuthBuyer
  1. S VL8=$P($G(^VA(200,+PAPAB,5)),"^") ;Service - PaPpmAuthBuyer
  1. S VL9=$S(VL8="":"",1:$$GET1^DIQ(49,+VL8_",",.01)) ;SVC ext - PaPpmAuthBuyer
  1. S AGAPO=$P(N12,U,4),AGAPO1=$G(^VA(200,+AGAPO,0))
  1. S VL30=$P(AGAPO1,U,1) ; Agt Assgnd PO
  1. S VL6=$P($G(^VA(200,+AGAPO,5)),"^") ;Service - Agt Assgnd PO
  1. S VL7=$S(VL6="":"",1:$$GET1^DIQ(49,+VL6_",",.01)) ;SVC ext - Agt Assgnd
  1. ; get external date
  1. S EXDT=$P(N12,U,5),EXDT1=$P(EXDT,".",1)
  1. S EXDT2=$$FMTE^XLFDT(EXDT1)
  1. S VL31=EXDT2 ; DatePoAssigned
  1. S VL32=$P(N16,U,0) ;remarks
  1. S VL33E=$P(N23,U,3),VL33E1=$G(^PRC(442,+VL33E,0))
  1. S VL33E2=$P(VL33E1,U,1)
  1. S VL33=VL33E2 ; OldPoRec
  1. S VL34E=$P(N23,U,4),VL34E1=$G(^PRC(442,+VL34E,0))
  1. S VL34E2=$P(VL34E1,U,1)
  1. S VL34=$P(N23,U,4) ; New PoRec
  1. S GN1=VL20_U_VL21_U_VL22_U_VL23_U_VL24_U_VL25_U_VL26_U_VL27_U
  1. S GN1A=GN1_VL28_U_VL29_U_VL30_U_VL31_U_VL32_U_VL33_U_VL34_U
  1. S GN1A=GN1A_VL8_U_VL9_U_AGAPO_U_VL6_U_VL7_U
  1. S ^TMP($J,"POMAST",POID,1)=GN1A
  1. ;
  1. ; build node 2
  1. S VL35E=$P(N23,U,14),VL35E1=$G(^PRC(440,+VL35E,0))
  1. S VL35E2=$P(VL35E1,U,1)
  1. S VL35=VL35E2 ; PcDo Vendor
  1. S PCUSR=$P(N23,U,17),PCUSR1=$G(^VA(200,+PCUSR,0))
  1. S VL36=$P(PCUSR1,U,1) ; Pur Crd User
  1. S VL6=$P($G(^VA(200,+PCUSR,5)),"^") ;Service - Pur Crd User
  1. S VL7=$S(VL6="":"",1:$$GET1^DIQ(49,+VL6_",",.01)) ;SVC ext - Pur Crd User
  1. S VL37=$P(N23,U,21) ; Pur Cost
  1. S PCHDR=$P(N23,U,22),PCHDR1=$G(^VA(200,+PCHDR,0))
  1. S VL38=$P(PCHDR1,U,1) ; Pur Card Hldr
  1. S VL8=$P($G(^VA(200,+PCHDR,5)),"^") ;Service - Pur Crd Hldr
  1. S VL9=$S(VL8="":"",1:$$GET1^DIQ(49,+VL8_",",.01)) ;SVC ext - Pur Crd Hldr
  1. ; get ext. value for 2237
  1. S PC2237V=$P(N23,U,23),PC2237V1=$G(^PRCS(410,+PC2237V,0))
  1. S VL39=$P(PC2237V1,U,1) ; Pcdo2237
  1. S VL40=$P(N0,U,15) ; Total Amount
  1. S VL41=$P(N0,U,16) ; Net amount
  1. ;
  1. S GN2=VL35_U_VL36_U_VL37_U_VL38_U_VL39_U_VL40_U_VL41_U
  1. S ^TMP($J,"POMAST",POID,2)=GN2_VL6_U_VL7_U_VL8_U_VL9_U
  1. S VL20=$P(N23,U,2) S:VL20'="" VL20=$E(VL20+17000000,1,4) ;BBFY
  1. S VL21=$$FMTE^XLFDT($P($P(N23,U,5),".")) ;END DATE FOR SERVICE ORDER
  1. S VL19=$$GET1^DIQ(442,POID_",",30) ;AUTO ACCRUE
  1. S VL22=$P(N23,U,7) ;SUBSTATION IEN
  1. S VL23=$P($G(^PRC(411,+VL22,0)),U,1) ;SUBSTATION EXTERNAL
  1. S VL24=VN ;VENDOR IEN
  1. S VL25=$P($G(^PRC(440,+VN,3)),U,4) ;VENDOR FMS CODE
  1. S VL26=$P($G(^PRC(440,+VN,3)),U,5) ;VENDOR ALT-ADDR-IND
  1. S VL27=$P($G(^PRC(440,+VN,7)),U,12) ;VENDOR D & B
  1. S VL28=$$GET1^DIQ(442,POID,21) ;MONTH
  1. S VL29=$$GET1^DIQ(442,POID,22) ;QUARTER
  1. S VL30=$$GET1^DIQ(442,POID,23) ;LAST DIGIT OF FISCAL YEAR
  1. S GN1=VL20_U_VL21_U_VL19_U_VL22_U_VL23_U_VL24_U_VL25_U_VL26_U_VL27
  1. S ^TMP($J,"POMAST",POID,3)=GN1_U_VL28_U_VL29_U_VL30_U
  1. S N1=$G(^PRC(442,POID,8)) D
  1. . S VL20=$P(N1,U,1) ;ACTUAL 1358 BALANCE
  1. . S VL21=$P(N1,U,2) ;FISCAL 1358 BALANCE
  1. . S VL22=$P(N1,U,3) ;ESTIMATED 1358 BALANCE
  1. . S VL23=$$GET1^DIQ(442,POID_",",96.7) ;BULLETIN SENT
  1. S VL24=$P($G(^PRC(442,POID,24)),U,3) ;INTERFACE PACKAGE PREFIX
  1. S VL25=$P($G(^PRC(442,POID,18)),U,3) ;DOCUMENT IDENTIFIER/COMMON #
  1. S VL26=$$GET1^DIQ(442,POID_",",116) ;DO YOU WANT TO SEND THIS EDI?
  1. S GN1=VL20_U_VL21_U_VL22_U_VL23_U_VL24_U_VL25_U_VL26_U
  1. S ^TMP($J,"POMAST",POID,4)=GN1
  1. K PRCVAL,POIDC S POIDC=POID_","
  1. D GETS^DIQ(442,POIDC,"117:132","E","PRCVAL")
  1. S GN1=""
  1. F VL1=117:1:132 S GN1=GN1_$G(PRCVAL(442,POIDC,VL1,"E"))_U
  1. K PRCVAL,POIDC
  1. S GN1=GN1_$P($G(^PRC(442,POID,25)),U,17)_U ; SEND TO FPDS?
  1. S $P(GN1,U,18,20)=PAPAB_U_$P(N23,U,17)_U_$P(N23,U,22)
  1. S $P(GN1,U,21)=$$GET^XPAR("SYS","PRCPLO REGIONAL ACQ CENTER",1,"Q")
  1. S ^TMP($J,"POMAST",POID,5)=GN1 ;NODE 25, TOTAL OF 17 FIELDS
  1. ;
  1. D PODISC^PRCHLO1A
  1. D POBOC^PRCHLO1A
  1. D POCMTS^PRCHLO1A
  1. D PORMKS^PRCHLO1A
  1. D PO2237^PRCHLO1A
  1. D POAMT^PRCHLO1A
  1. D POAMMD^PRCHLO1A
  1. D POPPTER^PRCHLO2A
  1. D POPART^PRCHLO2A
  1. D POOBL^PRCHLO2A
  1. D POPMET^PRCHLO2A
  1. D GPOITEM^PRCHLO2
  1. Q
  1. PODISCH ; PO Discount Header File
  1. ; Header file for PO Discount Multiple
  1. W "PoIdNum^PurchaseOrderNum^PoDate^MonthYrRun^StationNum^"
  1. W "DiscountIdNum^DiscountItem^PercentDollarAmount^"
  1. W "DiscountAmount^ItemCount^Contract^LineItem",!
  1. Q