EWRCPSW ;E'WMS Doorgeven van receptie (of delen van) naar het WMS [ 10/26/2001 3:20 PM ] ; K D INIT^vhTERMINA Set RCPNr=$$SELECT^EWRCP() D SEND(RCPNr) Q SEND(RCPNr) New DH,HC,LC,ObjTyp,ObjRef,BONNr,LUNr,SubLNr,VervId,HRec,LRec Lock +^RCP("D",RCPNr):1 Else Do LDISP^vhLock($NA(^RCP("D",RCPNr)),"Receptie "_RCPNr) Quit Do RLT^FLOWLOG(RCPNr) Set HRec=^RCP("D",RCPNr) Set ObjTyp=$P(HRec,D,1) Set ObjRef=$P(HRec,D,2) Set VervId=$P(HRec,D,3) Do RCPCACHE(ObjTyp,ObjRef,RCPNr,HRec,.HC) Set (BONNr,LUNr,SubLNr)="" For Set BONNr=$O(^RCP("D",RCPNr,"D",BONNr)) Quit:BONNr="" Do .For Set LUNr=$O(^RCP("D",RCPNr,"D",BONNr,LUNr)) Quit:LUNr="" Do ..Set LRec=^RCP("D",RCPNr,"D",BONNr,LUNr) ..Quit:$P(LRec,D,2)'="" ; Alleen degene die nog niet verstuurd zijn ..Set:'$D(DH) DH=$$OPEN^EWRECS ..Do LCACHE(ObjTyp,ObjRef,RCPNr,BONNr,LUNr,LRec,.HC,.LC) ..For Set SubLNr=$O(^RCP("D",RCPNr,"D",BONNr,LUNr,SubLNr)) Quit:SubLNr="" Do ...Do BLDSUB(ObjTyp,ObjRef,RCPNr,BONNr,LUNr,SubLNr,VervId,.LC) ..Set $P(LRec,D,2)="W" ..Set ^RCP("D",RCPNr,"D",BONNr,LUNr)=LRec Set:$P(HRec,D,20)="" $P(HRec,D,20)="W" Set:$P(HRec,D,22)="" $P(HRec,D,22)=$H Set ^RCP("D",RCPNr)=HRec Do:$D(DH) CLOSE^EWRECS(DH) Lock -^RCP("D",RCPNr) Quit RESEND(RCPNr,BONNr,LUNr) ; Terug doorsturen van URGENTIE New DH,HC,LC,ObjTyp,ObjRef,SubLNr,VervId,HRec,LRec,SRec Set HRec=^RCP("D",RCPNr) Set ObjTyp=$P(HRec,D,1) Set ObjRef=$P(HRec,D,2) Set VervId=$P(HRec,D,3) Do RCPCACHE(ObjTyp,ObjRef,RCPNr,HRec,.HC) Set LRec=^RCP("D",RCPNr,"D",BONNr,LUNr) Do LCACHE(ObjTyp,ObjRef,RCPNr,BONNr,LUNr,LRec,.HC,.LC) Set DH=$$OPEN^EWRECS Set SubLNr="" For Set SubLNr=$O(^RCP("D",RCPNr,"D",BONNr,LUNr,SubLNr)) Quit:SubLNr="" Do .Set SRec=^RCP("D",RCPNr,"D",BONNr,LUNr,SubLNr) .Do SCACHE(ObjTyp,ObjRef,RCPNr,BONNr,LUNr,SubLNr,SRec,.LC,.SC) .Set SC="R04" .Do PUT^EWRECS(DH,$NA(SC)) Do CLOSE^EWRECS(DH) Quit BLDSUB(ObjTyp,ObjRef,RCPNr,BONNr,LUNr,SubLNr,VervId,LC) New SRec,FakNr,VervLNr,SC Set SRec=^RCP("D",RCPNr,"D",BONNr,LUNr,SubLNr) Do SCACHE(ObjTyp,ObjRef,RCPNr,BONNr,LUNr,SubLNr,SRec,.LC,.SC) Set SC="R01" Do PUT^EWRECS(DH,$NA(SC)) Set FakNr=$P(SRec,D,10) Set VervLNr=$P(SRec,D,11) ;Nakijken of de receptielijn in een ^Verv zit, dit om de verpakkingsinformatie op te halen If VervId,FakNr,VervLNr,$D(^Verv(ObjRef,"D",VervId,FakNr,VervLNr)) Do .Do BLDVP(ObjRef,VervId,FakNr,VervLNr,.SC) Else Do .Set SC="R02" .Do PUT^EWRECS(DH,$NA(SC)) Set $P(SRec,D,2)="W" Set ^RCP("D",RCPNr,"D",BONNr,LUNr,SubLNr)=SRec Quit BLDVP(LEVNr,VervId,FakNr,VervLNr,SC) ; Doorgeven van de verpakkingsinformatie uit ^Verv New Rec,C,VRec Set Rec=$G(^Verv(LEVNr,"D",VervId,FakNr,VervLNr,"V")) For I=1:1:$L(Rec,D) Do .Set VRec=$P(Rec,D,I) .Quit:$TR(VRec,"; ","")="" .Kill C .Merge C=SC .Set C="R02" .Set C("COLLIEBARCODE")=$P(VRec,";",1) .Set:LEVNr=5005 C("COLLIEBARCODE")="0039002617"_C("COLLIEBARCODE") ; Verlengen barcode met het EAN:AT_BLUM voorloop nummer .Set C("COLLIEAANTAL")=$P(VRec,";",2) .Set C("COLLIEAANTALINCOLLIE")=$P(VRec,";",3) .Do PUT^EWRECS(DH,$NA(C)) If '$D(C) Do ;Geen verpakkingsinfo opgeslagen dan toch nog de andere gegevens doorgeven .Set SC="R02" .Do PUT^EWRECS(DH,$NA(SC)) Quit RCPCACHE(ObjTyp,ObjRef,RCPNr,Rec,C) Kill C Set C("RCPNR")=RCPNr Set C("KLLEVNR")=ObjRef Set C("KLLEVNM")=$S(ObjTyp="K":$P(^KKL(^KK1(ObjRef),0),D,2),1:$P(^KLE(^KL1(ObjRef),0),D,2)) Set C("RCPDAT")=$P(^RCP("D",RCPNr),D,4) Set C("LEVREF")=$P(^RCP("D",RCPNr),D,3) Quit LCACHE(ObjTyp,ObjRef,RCPNr,BONNr,LUNr,Rec,HC,C) New TLNr Kill C Merge C=HC Set C("BONNR")=BONNr Set C("LEVBONREF")=$P(Rec,D,10) Set C("URGENTIE")=$$IsUrgent^FLOWTOE(BONNr,LUNr) Set C("PRNR")=$P(Rec,D,1) Set C("OPSLAGZONE")=$P(^KPR($P(Rec,D,1),2),D,15) Set TLNr=$G(^TO("IU",BONNr,LUNr)) Set C("KOMORDNR")=$S('TLNr:"N",$P($G(^KTO(ObjRef,BONNr,TLNr)),D,27):"Y",1:"N") Quit SCACHE(ObjTyp,ObjRef,RCPNr,BONNr,LUNr,SubLNr,Rec,LC,C) Kill C Merge C=LC Set C("RCPLNR")=LUNr*100+(SubLNr\100) Set C("RCPLSPLITSNR")=(SubLNr#100) Set:$P(Rec,D,1)'=C("PRNR") C("MOEDERPRNR")=C("PRNR") Set C("PRNR")=$P(Rec,D,1) Set C("OPSLAGZONE")=$P(^KPR($P(Rec,D,1),2),D,15) Set C("AANTAL")=$P(Rec,D,3) Quit