#Include Prod.Product ; import LocatieID HLX Set reader=##class(TECH.FileReader).%New("\\Notes01\Shared\P V\Producten met LocatieID HLX.txt") ;Do reader.SetDelimiter($C(9)) ; optioneel, default is TAB ;Do reader.SetHeaderRow(1) ; optioneel, default = 1 ;Do reader.SetFirstDataRow(2) ; optioneel, default = 2 ;Do reader.SetTranslateHeader2UpperCase() ; optioneel, default=0 ;Do reader.AddHeaderTranslation(From, To, DataType) ; optioneel, 1 per translatie While reader.Next() { Set ItemID=$tr(reader.Column(1),". ") Set PRNr=$p($G(^KPR2(ItemID_" ")),"\") ;2de column is korttekst Set Code=reader.Column(3) Set LocPCData=$tr(reader.Column(4),"""") Write ItemID,*9,PRNr,*9,Code,*9,LocPCData If PRNr,$D(^KPR(PRNr)),$L(LocPCData) { ;Do $$$PRSet($$$ControleStatus,Code) Do $$$PRSet($$$CycleCountTypeWMS,LocPCData) W " stored" } Else { W "Not found" } Write ! } Quit CLEAN Set PRNr=$O(^KPR(0)) While PRNr { ;Do $$$PRSet($$$CycleCountTypeWMS,"") If $p(^KPR(PRNr,1),"\",2)'="" { ;W PRNr,$p(^KPR(PRNr,1),"\",2)," " Set $P(^KPR(PRNr,1),"\",2)="" } Set PRNr=$O(^KPR(PRNr)) } Quit TestPCData(BatchID, Ordernummer, Familie, Lijn) ; opgelet : De drop map is Familie afhankelijk Set Dev=$$OPEN^vhDEV(,Ordernummer_".pic","W","T") Use Dev Set ZonderLocatieCnt=0 Do WriteHeader Do WriteOnePick(Familie,BatchID,Ordernummer,Lijn,1978976,2,.ZonderLocatieCnt) Do WriteOnePick(Familie,BatchID,Ordernummer,Lijn,1979110,3,.ZonderLocatieCnt) Do WriteOnePick(Familie,BatchID,Ordernummer,Lijn,839514,2,.ZonderLocatieCnt) ; heeft 2 locaties Do WriteOnePick(Familie,BatchID,Ordernummer,Lijn,852189,4,.ZonderLocatieCnt) ; heeft gn locatie dus default Do WriteOnePick(Familie,BatchID,Ordernummer,Lijn,837572,6,.ZonderLocatieCnt) ; 2de met gn locatie If ZonderLocatieCnt>0 { Do WriteZonderLocatie(Familie, BatchID, Ordernummer, Lijn, ZonderLocatieCnt) } Do CLOSE^vhDEV(Dev) Quit WriteHeader Write "Type",*9,"OrderID",*9,"BoxBarcode",*9,"OrderDesc",*9,"Location",*9,"AskedAmount",*9,"PickedAmount",*9,"PackAmount",*9,"SourceEmpty",*9,"ProductCode",*9,"ProductDescription",*9,"UserField1",*9,"UserField2",*9,"UserField3",*9,"UserField4",*9,"UserField5",*9,"UserField6",! Quit WriteOnePick(Familie,BatchID, Ordernummer, Lijn, PRNr, Aantal,ZonderLocatieCnt) Set:Familie="TA.B" Familie="TAX" Set LookupService=##class(OBJTimpl.PM.OBJTIdentLookupService).%New() Set IdentNr=LookupService.GeefOBJTIdentNr($$$PRGet($$$IdentNummer)) Set:$D(^KPR2($TR(IdentNr,".")_" ")) PRNr=$P(^KPR2($TR(IdentNr,".")_" "),"\",1) ; Aanpassen van het SOPR product naar het OBJT product. Beter voor Korttekst en Identnummer Set Product=##class(Prod.Product).%OpenId(PRNr) Set HLXLocatie=$$$PRGet($$$ControleStatus) ; herbruik van veld voor HLX Locatie Set PCDataLocatie=$$BepaalPCDataLocatie(Familie,Product) Set EANCode=Product.BarcodeWaarde Set KortTekst=Product.KortTekst ;Set Lijn=Product.Tekst.GetOmschrijving("N",";") Set BoxBarcode=Ordernummer Set OrderDesc=Lijn_" "_$E(BatchID,$L(BatchID)-3,$L(BatchID)) Set (PackAmount,SourceEmpty,UserField2,UserField3,UserField4,UserField5,UserField6)="" Set PickedAmount=0 If PCDataLocatie="" { Set ZonderLocatieCnt=ZonderLocatieCnt+1 ; variabele doorgegeven by Reference } Else { Write "P",*9,Ordernummer,*9,BoxBarcode,*9,OrderDesc Write *9,PCDataLocatie,*9,Aantal,*9,PickedAmount,*9,PackAmount,*9,SourceEmpty Write *9,IdentNr,*9,KortTekst,*9,HLXLocatie,*9,UserField2,*9,UserField3,*9,UserField4,*9,UserField5,*9,UserField6 Write ! } Quit WriteZonderLocatie(Familie,BatchID, Ordernummer, Lijn, ZonderLocatieCnt) Set BoxBarcode=Ordernummer Set OrderDesc=Lijn_" "_$E(BatchID,$L(BatchID)-3,$L(BatchID)) Set (PackAmount,SourceEmpty,UserField2,UserField3,UserField4,UserField5,UserField6)="" Set PickedAmount=0 Set PCDataLocatie=$$GeefZonderLocatie(Familie) Set Aantal=ZonderLocatieCnt Set IdentNr="ZONDERLOC" Set KortTekst="Zonder vaste locatie" Set HLXLocatie="" Set EANCode="" Write "P",*9,Ordernummer,*9,BoxBarcode,*9,OrderDesc Write *9,PCDataLocatie,*9,Aantal,*9,PickedAmount,*9,PackAmount,*9,SourceEmpty Write *9,IdentNr,*9,KortTekst,*9,HLXLocatie,*9,UserField2,*9,UserField3,*9,UserField4,*9,UserField5,*9,UserField6 Write ! Quit BepaalPCDataLocatie(Familie,Product) Set Locaties=Product.CycleCountTypeWMS ; Herbruik van veld voor PCData locatie If Locaties[";" { Set PCDataLocatie="" Set I=0 While $L($P(Locaties,";",$I(I))) { If $P($P(Locaties,";",I),":")=Familie { Set PCDataLocatie=$P($P(Locaties,";",I),":",2) } } } Else { Set PCDataLocatie=Locaties } If PCDataLocatie'?1"A"2N1"_"3N { Set PCDataLocatie="" ;$$GeefZonderLocatie(Familie) } Quit PCDataLocatie GeefZonderLocatie(Familie) Quit:Familie="TAX" "A02_099" Quit:Familie="LBX" "A04_099" Quit ""