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

PRCHITM4.m

Go to the documentation of this file.
  1. PRCHITM4 ;OI&T/LKG - READING 832 TXN IN E-MAIL ;10/27/17 12:44
  1. ;;5.1;IFCAP;**198**;OCT 20, 2000;Build 6
  1. ;Per VA Directive 6402, this routine should not be modified.
  1. ;Integration agreements
  1. ; ICR #2171: $$STA^XUAF4()
  1. ; ICR #2541: $$KSP^XUPARAM()
  1. ; ICR #4440: $$PROD^XUPROD()
  1. ; ICR #10070: ^XMD
  1. ; ICR #10072: REMSBMSG^XMAIC
  1. Q
  1. IN N XMER,XMRG,PRCTXN,PRCTXNTYPE,PRCHNODE,PRCERRC,PRCLCTR,PRCIUPD,PRCITC S PRCLCTR=0,PRCIUPD=0
  1. N PRCSTN S PRCSTN=$$STA^XUAF4($$KSP^XUPARAM("INST"))
  1. F X XMREC Q:XMER<0!($E(XMRG,1,4)="ISA^")
  1. I XMER<0 G END
  1. S PRCTXN=$P(XMRG,"^",14) D INITLOG^PRCHITM5(PRCTXN)
  1. N PRCISITE S PRCISITE=$P($P($P(XMRG,"^",9),"~",2)," ") S:PRCISITE="" PRCISITE="not specified"
  1. I PRCISITE'="ALL",PRCISITE'=PRCSTN D G END
  1. . D ERR^PRCHITM5("*** Wrong receiving station; Import aborted ***")
  1. . D ERR^PRCHITM5("832 Txn ICN "_PRCTXN_" for station "_PRCISITE_" was sent to "_PRCSTN_".")
  1. F X XMREC Q:XMER<0 D Q:XMER<0
  1. . I $E(XMRG,1,3)="ST^" D PROCTXN
  1. I XMER<0 G END
  1. END ;
  1. I $D(PRCHNODE) D
  1. . ; send message if errors
  1. . I $D(^XTMP(PRCHNODE,"ERR")) D
  1. . . N XMDUZ,XMMG,XMSUB,XMTEXT,XMY,XMZ
  1. . . S XMSUB="Stn "_PRCSTN_" Errors for NIF/IFCAP 832 Txn ICN "_$P(PRCHNODE,";",2)
  1. . . S XMDUZ=.5,XMTEXT="^XTMP(PRCHNODE,""ERR"","
  1. . . S XMY("G.ISM")="" S:$$PROD^XUPROD() XMY("VHANIFMO@domain.ext")=""
  1. . . D ^XMD
  1. . ; If no errors then delete ^XTMP("PRCHNODE") nodes when done
  1. . I '$D(^XTMP(PRCHNODE,"ERR")) K ^XTMP(PRCHNODE)
  1. I $D(PRCHNODE) D
  1. . N XMDUZ,XMMG,XMSUB,XMTEXT,XMY,XMZ,PRCARR
  1. . S XMSUB="Stn "_PRCSTN_" Statistics NIF/IFCAP 832 Txn ICN "_$P(PRCHNODE,";",2)
  1. . S PRCARR(1)="Transaction Item Lines Processed: "_PRCLCTR,PRCARR(2)="Item Master File Entries Updated: "_PRCIUPD
  1. . S XMDUZ=.5,XMTEXT="PRCARR(",XMY("G.ISM")="" S:$$PROD^XUPROD() XMY("VHANIFMO@domain.ext")=""
  1. . D ^XMD
  1. ; delete MailMan message from server basket
  1. I $D(XMZ) S XMSER="S."_XQSOP D REMSBMSG^XMA1C
  1. K ^TMP($J,"PRCHITM3")
  1. Q
  1. ;
  1. PROCTXN ;
  1. S PRCTXNTYPE=$P(XMRG,"^",2) N PRCTRANS S PRCTRANS=$P(XMRG,"^",3)
  1. I PRCTXNTYPE'=832 D ERR^PRCHITM5("Trans #"_PRCTRANS_" is not X.12 832 type.") Q
  1. K ^TMP($J,"PRCHITM3")
  1. F X XMREC Q:XMER<0!($E(XMRG,1,3)="SE^") D Q:XMER<0
  1. . D:$E(XMRG,1,4)="REF^" REF
  1. . D:$E(XMRG,1,3)="N1^" N1
  1. . I $E(XMRG,1,4)="LIN^" D LIN S PRCLCTR=PRCLCTR+1
  1. Q
  1. REF ;Process REF segments
  1. I $P(XMRG,"^",4)="IEN",$P(XMRG,"^",3)'="" S ^TMP($J,"PRCHITM3","VEN","IEN")=$P(XMRG,"^",3)
  1. E D ERR^PRCHITM5("Erroneous vendor '"_$P(XMRG,"^",4)_"' REF segment for ST #"_PRCTRANS_".")
  1. Q
  1. N1 ;
  1. N PRCL,PRCM S PRCM=0
  1. Q:$P(XMRG,"^",3)="" N PRCTYPE,PRCVALUE
  1. S PRCTYPE=$P(XMRG,"^",5),PRCVALUE=$P(XMRG,"^",3)
  1. I PRCTYPE="ORDER" S ^TMP($J,"PRCHITM3","VEN","ORDER NAME")=PRCVALUE
  1. E D ERR^PRCHITM5("Erroneous vendor '"_PRCTYPE_"' N1 segment for ST #"_PRCTRANS_".")
  1. Q
  1. LIN ;Process Item Lines
  1. N PRCLNCT,PRCLIN,PRCREFCT S PRCLNCT=0,PRCLIN=$P(XMRG,"^",2),PRCREFCT=0
  1. K ^TMP($J,"PRCHITM3","ITEM")
  1. S:$P(XMRG,"^",4)'="" ^TMP($J,"PRCHITM3","ITEM","NIF#")=$P(XMRG,"^",4)
  1. S:$P(XMRG,"^",6)'="" ^TMP($J,"PRCHITM3","ITEM","FSC")=$P(XMRG,"^",6)
  1. S:$P(XMRG,"^",8)'="" ^TMP($J,"PRCHITM3","ITEM","NSN")=$P(XMRG,"^",8)
  1. S:$P(XMRG,"^",10)'="" ^TMP($J,"PRCHITM3","ITEM","MFG PART")=$P(XMRG,"^",10)
  1. S:$P(XMRG,"^",12)'="" ^TMP($J,"PRCHITM3","ITEM","VSTOCK#")=$P(XMRG,"^",12)
  1. S:$P(XMRG,"^",14)'="" ^TMP($J,"PRCHITM3","ITEM","NDC")=$P(XMRG,"^",14)
  1. S:$P(XMRG,"^",18)'="" ^TMP($J,"PRCHITM3","ITEM","BOC")=$P(XMRG,"^",18)
  1. S:$P(XMRG,"^",20)'="" ^TMP($J,"PRCHITM3","ITEM","DRUG TYPE")=$P(XMRG,"^",20)
  1. S:$P(XMRG,"^",22)'="" ^TMP($J,"PRCHITM3","ITEM","MANUFACTURER")=$P(XMRG,"^",22)
  1. S:$P(XMRG,"^",24)'="" ^TMP($J,"PRCHITM3","ITEM","SOURCE MFG PART#")=$P(XMRG,"^",24)
  1. S:$P(XMRG,"^",26)'="" ^TMP($J,"PRCHITM3","ITEM","SOURCE VENDOR STOCK#")=$P(XMRG,"^",26)
  1. F X XMREC Q:XMER<0 D Q:$E(XMRG,1,4)="G55^"
  1. . D:$E(XMRG,1,4)="SLN^" SLN
  1. . D:$E(XMRG,1,4)="DTM^" DTM
  1. . D:$E(XMRG,1,4)="REF^" IREF
  1. . D:$E(XMRG,1,4)="CTB^" CTB
  1. . D:$E(XMRG,1,4)="PID^" PID
  1. . D:$E(XMRG,1,4)="PKG^" PKG
  1. . D:$E(XMRG,1,4)="PO4^" PO4
  1. . D:$E(XMRG,1,4)="G55^" G55
  1. D FILE^PRCHITM5(PRCTRANS,PRCLIN,.PRCITC) S PRCIUPD=PRCIUPD+PRCITC
  1. Q
  1. SLN ;
  1. S:$P(XMRG,"^",6)'="" ^TMP($J,"PRCHITM3","ITEM","UOP")=$P(XMRG,"^",6)
  1. S:$P(XMRG,"^",7)'="" ^TMP($J,"PRCHITM3","ITEM","UNIT COST")=$P(XMRG,"^",7)
  1. S:$P(XMRG,"^",11)'="" ^TMP($J,"PRCHITM3","ITEM","CONTRACT")=$P(XMRG,"^",11)
  1. Q
  1. IREF ;
  1. S:$P(XMRG,"^",4)'="" PRCREFCT=PRCREFCT+1,^TMP($J,"PRCHITM3","ITEM","SYN",PRCREFCT)=$P(XMRG,"^",4)
  1. Q
  1. DTM ;
  1. I $P(XMRG,"^",3)'="",$P(XMRG,"^",2)=167 S ^TMP($J,"PRCHITM3","ITEM","NIF UPDATE DATE")=$P(XMRG,"^",3)
  1. Q
  1. CTB ;
  1. N PRCCODE,PRCVALUE S PRCCODE=$P(XMRG,"^",4),PRCVALUE=$P(XMRG,"^",5)
  1. I PRCCODE=57 S ^TMP($J,"PRCHITM3","ITEM","MIN QTY")=PRCVALUE
  1. E I PRCCODE=70 S ^TMP($J,"PRCHITM3","ITEM","MAX QTY")=PRCVALUE
  1. E I PRCCODE="AP" S ^TMP($J,"PRCHITM3","ITEM","ORDER QTY MULTIPLE")=PRCVALUE
  1. Q
  1. PID ;
  1. S PRCLNCT=PRCLNCT+1
  1. S:$P(XMRG,"^",6)'="" ^TMP($J,"PRCHITM3","ITEM","LONG DESC",PRCLNCT)=$P(XMRG,"^",6)
  1. Q
  1. PKG ;
  1. S:$P(XMRG,"^",5)'="" ^TMP($J,"PRCHITM3","ITEM","UNIT CONVERSION FACTOR")=$P(XMRG,"^",5)
  1. S:$P(XMRG,"^",6)'="" ^TMP($J,"PRCHITM3","ITEM","SHORT DESC")=$P(XMRG,"^",6)
  1. Q
  1. PO4 ;
  1. S:$P(XMRG,"^",2)'="" ^TMP($J,"PRCHITM3","ITEM","PKG MULT")=$P(XMRG,"^",2)
  1. Q
  1. G55 ;
  1. S:$P(XMRG,"^",3)'="" ^TMP($J,"PRCHITM3","ITEM","IMFNBR")=$P(XMRG,"^",3)
  1. S:$P(XMRG,"^",5)'="" ^TMP($J,"PRCHITM3","ITEM","STOCK KEEPING UNIT")=$P(XMRG,"^",5)
  1. Q
  1. ;
  1. ;PRCHITM4