Index: BL/PPS/TBX/MultiProcessorEN.cls.xml =================================================================== diff -u --- BL/PPS/TBX/MultiProcessorEN.cls.xml (revision 0) +++ BL/PPS/TBX/MultiProcessorEN.cls.xml (revision 901) @@ -0,0 +1,36 @@ + + + + +De verschillende processoren worden gecombineerd met een EN relatie +1 +BL.PPS.TBX.MultiProcessor +62137,71291.994254 +0 + + +BL.PPS.TBX.LabelProcessor +list + + + + +Combinatie dmv EN +label:BL.PPS.TBX.sub.pxLabelV1 +%Boolean + + + + + + Index: BL/Flow/Offerte/ScanEDIMail.cls.xml =================================================================== diff -u -r771 -r901 --- BL/Flow/Offerte/ScanEDIMail.cls.xml (.../ScanEDIMail.cls.xml) (revision 771) +++ BL/Flow/Offerte/ScanEDIMail.cls.xml (.../ScanEDIMail.cls.xml) (revision 901) @@ -1,10 +1,10 @@ - + BL.EC.Common,BL.Derde.KlantSpecifiek,%VHMacro,%occStatus 1 %RegisteredObject -62124,57225.379528 +62154,30632.05375 61773,56551.521812 0 @@ -56,9 +56,10 @@ Set DirArchive=TestPath_..#SubPath_..#ArchiveSubPath Set DirTemp=TestPath_..#SubPath_..#TempSubPath } Else { - Set DirRead=^BLBeri("MSMGATEWAY")_..#SubPath - Set DirArchive=^BLBeri("MSMGATEWAY")_..#SubPath_..#ArchiveSubPath - Set DirTemp=^BLBeri("MSMGATEWAY")_..#SubPath_..#TempSubPath } + Set MSMGATEWAY=##Class(TECH.Config.ConfigMgr).Instance().GetString("MSMGATEWAY") + Set DirRead=MSMGATEWAY_..#SubPath + Set DirArchive=MSMGATEWAY_..#SubPath_..#ArchiveSubPath + Set DirTemp=MSMGATEWAY_..#SubPath_..#TempSubPath } Do SCANDIR^vhDEV(DirRead,"*.*",$NA(Local),"") ; Opbouw van local met de bestandsnamen Set FileName="" @@ -304,5 +305,5 @@ ]]> - + Index: BL/Derde/Klant/LabelMagRek.cls.xml =================================================================== diff -u -r734 -r901 --- BL/Derde/Klant/LabelMagRek.cls.xml (.../LabelMagRek.cls.xml) (revision 734) +++ BL/Derde/Klant/LabelMagRek.cls.xml (.../LabelMagRek.cls.xml) (revision 901) @@ -1,10 +1,10 @@ - + persistent 1 %Persistent,%XML.Adaptor -61648,28079.499925 +62138,32209.605929 61619,26318.8245 0 @@ -64,7 +64,7 @@ Set bl=..%New() If $D(^KPR(ProductId)),($G(KLNr)="") Do . Set PRNr=ProductId - Else If ProductId?1N1"."3N1"."3N1"."1N Do + Else If $$IsValidIdentNr^PRODUKT2(ProductId) Do ; [IDENT] CW . Set IdentNummer=$TR($G(ProductId),". ","") . Set PRNr=$Piece($G(^KPR2(IdentNummer_" ")),"\") . If PRNr="" Set Fout="Onbekend identnummer" @@ -441,5 +441,5 @@ - + Index: BL/MB/UGLYPicking/OrderSel.cls.xml =================================================================== diff -u -r734 -r901 --- BL/MB/UGLYPicking/OrderSel.cls.xml (.../OrderSel.cls.xml) (revision 734) +++ BL/MB/UGLYPicking/OrderSel.cls.xml (.../OrderSel.cls.xml) (revision 901) @@ -1,5 +1,5 @@ - + Business Logic voor order selectie @@ -8,7 +8,7 @@ UglyPickingCNTs Default BL.Lib.EQBaseObj -61257,40931.033372 +62140,59925.56205 59295,32807 0 @@ -306,5 +306,5 @@ %Library.CacheSerialState - + Index: BL/Flow/Order/OrderEvents.cls.xml =================================================================== diff -u -r734 -r901 --- BL/Flow/Order/OrderEvents.cls.xml (.../OrderEvents.cls.xml) (revision 734) +++ BL/Flow/Order/OrderEvents.cls.xml (.../OrderEvents.cls.xml) (revision 901) @@ -1,11 +1,11 @@ - + Methods voor na het aanmaken van een order in ^ORDW 1 %RegisteredObject -61716,59662.982205 +62140,61253.426926 0 @@ -35,16 +35,9 @@ Extra acties bij het doorsturen van ^ORDW naar het WMS Do ##class(BL.Flow.Order.OrderEvents).Instantiate().ConsolidatieKlaarVoorPicking(325930) CONSNr - - + Index: BL/Flow/Offerte/Product.cls.xml =================================================================== diff -u -r774 -r901 --- BL/Flow/Offerte/Product.cls.xml (.../Product.cls.xml) (revision 774) +++ BL/Flow/Offerte/Product.cls.xml (.../Product.cls.xml) (revision 901) @@ -1,13 +1,13 @@ - + Businesslogic voor het verwerken van een product offertelijn Deze businesslogic is afhankelijk van %blFlowOfferte en deze moet reeds geinstantieerd zijn ! %Prod.Product,BL.EC.Common,BL.Prod 1 %RegisteredObject -62124,63465.015221 +62139,55930.639426 60207,60266.304448 0 @@ -200,7 +200,7 @@ . Else Set PRNr=$LG(lbPRNRs,1) Else Do - . Set IdentNr=$$TRIMN^vhRtn1(IdentNr) + . Set IdentNr=$$TRIMIDENT^vhRtn1(IdentNr) ;[IDENT] CW . If $L(IdentNr)=8,$D(^KPR2(IdentNr_" ")) Set PRNr=$P(^KPR2(IdentNr_" "),"\") ; exact match . If $L(IdentNr)=8 Set $E(IdentNr)="" . If PRNr="",$L(IdentNr)=7 Do @@ -245,5 +245,5 @@ ]]> - + Index: BL/Prod/sub/pxSearchCriteria.cls.xml =================================================================== diff -u -r734 -r901 --- BL/Prod/sub/pxSearchCriteria.cls.xml (.../pxSearchCriteria.cls.xml) (revision 734) +++ BL/Prod/sub/pxSearchCriteria.cls.xml (.../pxSearchCriteria.cls.xml) (revision 901) @@ -1,10 +1,10 @@ - + BL.Prod 1 %RegisteredObject,%XML.Adaptor -61865,39437.501075 +62147,42515.992653 60207,60266.158165 0 @@ -156,6 +156,12 @@ %Integer + + +0,1 of meerdere klassificiaties bijhouden +%ListOfDataTypes + + Usage %Status @@ -250,5 +256,5 @@ ]]> - + Index: BL/Prod/ImageLinkImport.cls.xml =================================================================== diff -u -r734 -r901 --- BL/Prod/ImageLinkImport.cls.xml (.../ImageLinkImport.cls.xml) (revision 734) +++ BL/Prod/ImageLinkImport.cls.xml (.../ImageLinkImport.cls.xml) (revision 901) @@ -1,20 +1,24 @@ - + 1. Importeren van de beelden van de Orgalux producten vanuit de kenmerken en de biijhorende vertaling. 2. Creatie van de beelden voor de tandembox laden. %VHMacro,%Prod.Product 1 %RegisteredObject -62102,60609.254612 +62147,54876.380544 60599,31536.811803 0 TBX + +SPAANPLAAT + + TBXGEN @@ -386,6 +390,46 @@ ]]> + + +d ##class(BL.Prod.ImageLinkImport).%New().CreateSpaanplaat() + + + + +ObjRef,WebImage,SmallImage +1 + + + d ##class(BL.Prod.ImageLinkImport).%New().CreateKAD() @@ -413,10 +457,21 @@ d ##class(BL.Prod.ImageLinkImport).%New().CreateLogos() @@ -791,7 +846,7 @@ For Write !,@F2 Read "IDNr:",IDNr Quit:IDNr="" Do . Write !,@F2 Read "ScaleFactor ( 70 -> .7):",ScaleFactor . Quit:'ScaleFactor - . Set IDNr=$$TRIMN^vhRtn1(IDNr)_" " + . Set IDNr=$$TRIMIDENT^vhRtn1(IDNr)_" " ;[IDENT] CW . Set PRNr=$P($G(^KPR2(IDNr)),"\") . Write !,PRNr," ",$P(^KPR(PRNr,0),"\") . Do bl.GetImagesForScaleFactor(PRNr,"PB",ScaleFactor/100) @@ -840,5 +895,6 @@ ]]> - + + Index: BL/Prod/Search.cls.xml =================================================================== diff -u -r734 -r901 --- BL/Prod/Search.cls.xml (.../Search.cls.xml) (revision 734) +++ BL/Prod/Search.cls.xml (.../Search.cls.xml) (revision 901) @@ -1,12 +1,12 @@ - + Search in the product index BL.Prod,%Prod.Product 1 %RegisteredObject -61866,59829.997201 +62147,44127.161888 60207,60266.090772 0 @@ -237,21 +237,35 @@ %Status + + + +==================================================================================================================== +1 + + + + + + +==================================================================================================================== +1 + + + - + + Index: BL/Flow/Offerte/Parser/beHAFELE.cls.xml =================================================================== diff -u -r734 -r901 --- BL/Flow/Offerte/Parser/beHAFELE.cls.xml (.../beHAFELE.cls.xml) (revision 734) +++ BL/Flow/Offerte/Parser/beHAFELE.cls.xml (.../beHAFELE.cls.xml) (revision 901) @@ -1,9 +1,10 @@ - + +vhLib.Macro 1 AbstractParserXML -61775,36968.771638 +62143,37271.644487 0 @@ -37,18 +38,18 @@ Aanvullen van identnr met eerste cijfer IDNr,StartList - + Index: BL/PPS/TBX/DocsV1/1.int.rou =================================================================== diff -u --- BL/PPS/TBX/DocsV1/1.int.rou (revision 0) +++ BL/PPS/TBX/DocsV1/1.int.rou (revision 901) @@ -0,0 +1,1200 @@ + ;BL.PPS.TBX.DocsV1.1 + ;(C)InterSystems, generated for class BL.PPS.TBX.DocsV1. Do NOT edit. 02/16/2011 08:27:53AM + ;;3AA5935F18E5FFA3;BL.PPS.TBX.DocsV1 + Quit + ; + /* + */ + /* + Set MyLB=$$$LBDeleteAt(MyLB,5) ; Verouderde versie: correct, maar lagere performantie. + $$$DoLBDeleteAt(MyLB,5) + $$$DoLBDeleteAtIf(Cond,MyLB,5) + If (cond) $$$DoLBDeleteAt(MyLB,5) + */ + /* + */ + /* + Set MyLB=$$$LBDeleteAt(MyLB,5) ; Verouderde versie: correct, maar lagere performantie. + $$$DoLBDeleteAt(MyLB,5) + $$$DoLBDeleteAtIf(Cond,MyLB,5) + If (cond) $$$DoLBDeleteAt(MyLB,5) + */ +%ClassName(fullname) public { Quit $select($get(fullname,0):"BL.PPS.TBX.DocsV1",1:"DocsV1") } +%Close(%this) Quit ..%Close() +%ConstructClone(%this,deep,cloned) public { Set deep=$get(deep,0) Set object=%this + If $data(cloned(+object)) Do (cloned(+object)).%IncrementCount() Quit cloned(+object) + Set %this=$zobjnew("BL.PPS.TBX.DocsV1") + Set cloned(+object)=%this,cloned(+object,0)=object + Set $zobjval(,1)=$zobjval(object,1),$zobjval(,2)=$zobjval(object,2),$zobjval(,3)=$zobjval(object,3) + Set $zobjval(,4)=$zobjval(object,4),$zobjval(,5)=$zobjval(object,5),$zobjval(,6)=$zobjval(object,6) + Set $zobjval(,7)=$zobjval(object,7),$zobjval(,8)=$zobjval(object,8),$zobjval(,9)=$zobjval(object,9) + Quit %this } +%Extends(isclass) public { Quit "~BL.PPS.TBX.DocsV1~%Library.RegisteredObject~"[("~"_$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isclass,2,$l(isclass)))_"~") } +%GetParameter(paramname) public { Set paramname=$get(paramname) Quit $case(paramname,"Keller":1239,"LabelExtraCommissie":"TBX Extra commissie 5x10","LabelKlantPrinter":"Halux_Productie_Keller","LabelKlantTemplate5x10":"KlantTBX5x10v3","LabelPalletTemplate":"TBX PalletID 5x10","LabelPrinter":"Halux_Productie","LabelTemplate":"TBX Productie","LevHalux":6332,"MaxLadePerPallet":10,"PROPERTYVALIDATION":0,:"") } +%IncrementCount(%this) Quit ..%IncrementCount() +%IsA(isclass) public { Quit "~BL.PPS.TBX.DocsV1~%Library.RegisteredObject~"[("~"_$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isclass,2,$l(isclass)))_"~") } +%IsModified(%this) public { Quit 1 } +%New(initvalue) public { Quit ##class(BL.PPS.TBX.DocsV1).%New($get(initvalue)) +} +%Construct(%this,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10) Set $zobjval(,1,0,0,1)="",$zobjval(,2,0,0,2)="",$zobjval(,3,0,0,3)="",$zobjval(,4,0,0,4)="",$zobjval(,5,0,0,5)="",$zobjval(,6,0,0,6)="" + Set $zobjval(,7,0,0,7)="",$zobjval(,8,0,0,8)="",$zobjval(,9,0,0,9)="" + Quit 1 +%NormalizeObject(%this) Set:$zobjval(,1,0,0,1)'="" $zobjval(,1,0,0,1)=(..%JNormalize($zobjval(,1,0,0,1))) + Set:$zobjval(,2,0,0,2)'="" $zobjval(,2,0,0,2)=(..BatchIDNormalize($zobjval(,2,0,0,2))) + Set:$zobjval(,3,0,0,3)'="" $zobjval(,3,0,0,3)=(..DebugNormalize($zobjval(,3,0,0,3))) + Set:$zobjval(,4,0,0,4)'="" $zobjval(,4,0,0,4)=(..LabelDeviceNormalize($zobjval(,4,0,0,4))) + Set:$zobjval(,5,0,0,5)'="" $zobjval(,5,0,0,5)=(..LabelKlantDeviceNormalize($zobjval(,5,0,0,5))) + Set:$zobjval(,6,0,0,6)'="" $zobjval(,6,0,0,6)=(..LabelKlantLayoutNormalize($zobjval(,6,0,0,6))) + Set:$zobjval(,7,0,0,7)'="" $zobjval(,7,0,0,7)=(..LabelLayoutNormalize($zobjval(,7,0,0,7))) + Set:$zobjval(,8,0,0,8)'="" $zobjval(,8,0,0,8)=(..LineNormalize($zobjval(,8,0,0,8))) + Set:$zobjval(,9,0,0,9)'="" $zobjval(,9,0,0,9)=(..ProdGrpNormalize($zobjval(,9,0,0,9))) + Quit 1 +%ObjectModified(%this) public { Quit 1 } +%PackageName() Quit "BL.PPS.TBX" +%SerializeObject(%this,serial,partial) Set partial=$get(partial,0) New %objOBJ,sc,id + Set $Ztrap = "%SerializeObjectERR" + Set sc=..%ValidateObject() If ('sc) { Ztrap "SO" } + Set sc=..%NormalizeObject() If ('sc) { Ztrap "SO" } + Quit sc +%SerializeObjectERR Set $ZTrap="" If $extract($zerror,1,5)'="" Set sc=$$Error^%apiOBJ(5002,$ZE) + Quit sc +%AddToSaveSet(%this,depth,refresh,norecurseon) public { Set depth=$get(depth,3),refresh=$get(refresh,0),norecurseon=$get(norecurseon) If ($data(%objTX(1,+%this))) && ('refresh) Quit 1 + Set sc=1,intOref=+%this + If refresh { + Set intPoref=$order(%objTX(1,intOref,2,"")) + While intPoref'="" { Kill %objTX(1,intPoref,3,intOref),%objTX(1,intOref,2,intPoref) Set intPoref=$order(%objTX(1,intOref,2,intPoref)) } + } + Set tDepth=$select(depth'=2:depth,1:1) + Set %objTX(2,intOref)=0 +exit Quit sc } +%RemoveFromSaveSet(%this) public { + If '($data(%objTX(1,+%this))) Quit 1 + Set intRef=+%this + Set intSucc="" For Set intSucc=$order(%objTX(1,intRef,3,intSucc)) Quit:intSucc="" Kill %objTX(1,intSucc,2,intRef) + Set intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred="" Kill %objTX(1,intPred,3,intRef) + Kill %objTX(1,intRef),%objTX(2,intRef) + Quit 1 } +%SetModified(%this,value) public { Quit 1 } +%ValidateObject(%this,force) Set force=$get(force,0) Quit 1 +zBevatSFS(%this) public { Set IsSFS=0 + Set oBatch=##class(DS.PPS.TBX.Batch).%OpenId($zobjval(,2,0,0,2)) + If '$IsObject(oBatch) Quit 0 + For i=1:1:oBatch.Toeleveringen.Count() Quit:IsSFS Do + . Set TOENr=oBatch.Toeleveringen.GetAt(i) + . Set IsSFS=$P($G(^KTO(6332,TOENr,1)),"\",8)=12486 + Quit IsSFS } +zBldBasisFromQueue(%this,oQ) public { Set Rec=oQ.ProductGetObjectId()_"\"_oQ.TotaalAantal_"\"_oQ.TOENr_"\"_oQ.TLUNr_"\"_oQ.DOSNr_"\"_oQ.Sequence_"\"_oQ.KlantGetObjectId()_"\"_oQ.DeelAantal + ; Basis = 1:PRNr 2:Qty 3:TOENr 4:TLUNr, 5:Dossier, 6:VolgNr, 7:KLNr, 8:SubVolgNr + Quit Rec } +zCommissieRef(%this,KLNr,BONNr) Quit:KLNr=""||(BONNr="") + Set HfdRec=$G(^KOD(KLNr,"F",BONNr,1)) + Set CommRef=$Piece(HfdRec,"\",19) + If $$UPTRIMAN^vhRtn1(CommRef)="" Do + . Set CommRef=$Piece(HfdRec,"\",3) ; gewone referentie + . Set:CommRef?2N1P2N1P2N1" ".E CommRef=$E(CommRef,10,99) ; gewone referentie waarvan de datum verwijderd is + Quit $S($$UPTRIMAN^vhRtn1(CommRef)="":"",1:"Ref. "_CommRef) +zControleerErrorsFrees(BatchID) public { Set FreesGeneratiePopup = ##class(BL.PPS.TBX.FreesGeneratiePopup).%New() + Do FreesGeneratiePopup.Show() + Set ErrorHandler = ##class(APPS.PM.Maatwerk.TBX.Frees.ErrorHandler).%New(BatchID) + Do ErrorHandler.VoegErrorHandlerObserverToe(FreesGeneratiePopup) + Do ErrorHandler.ControleerVoorErrors(.ErrorFiles) + Do ErrorHandler.VerwijderErrorHandlerObserver(FreesGeneratiePopup) + Do FreesGeneratiePopup.Hide() + Set Iterator = ##class(TECH.ListIterator).%New(ErrorFiles) + Set Body="Volgende errorfiles zijn gegenereerd voor batch "_BatchID + Set i = 1 + While(Iterator.HasNext()) + { + Set Tekst(i) = $Piece(##class(%Library.File).GetFilename(Iterator.Next()),".") + Set Body = Body_"
"_Tekst(i) + Set i = i + 1 + } + If (i > 1) + { + Do SendMiniMail^vhLib(""""_"Frees Admin"_""" ",$ListBuild("ICT_SysOp@vanhoecke.be"),"Generatie errors freesbestanden",Body,0,1) + Set %J=$$%J^vhRtn1() + Kill ^HULP(%J) + Merge ^HULP(%J) = Tekst + Do INIT^vhLIST("HATBXLEAN","FREES",.LD) + Do WRITE^vhLIST(.LD) + Set Input=$$SCROLL^vhLIST(.LD) + Kill ^HULP(%J) + } } +zEtiketChk(%this,oQ) public { Set PRNr=oQ.ProductGetObjectId() + Set ODSP=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"ODSP")) ; Onderdelen Special + Quit ODSP'="F" } +zEtiketOne(%this,oQ) public { ;New IB,RH,SPZK,DS,DK,KLAS,ODSP,BM,DC,RugPRNr,IsSR,Opmerking + ; C via .Local + Set pxLabel=##class(BL.PPS.TBX.sub.pxLabelV1).%New() + Set PRNr=oQ.ProductGetObjectId() + Set (pxLabel.IB,IB)=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"IB")) ; Interne breedte + Set (pxLabel.RH,RH)=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"RH")) ; Rughoogte + Set pxLabel.LD=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"LD")) ; Ladediepte + Set DS=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"DS")) ; Design + Set DK=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"DK")) ; Draagkracht + Set KLAS=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"KLAS")) ; Klasse (Spoelbak, Lade, ...) + Set IsSR=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"IsSR")) ; Stalenrug + Set SPZK=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"SPZK")) ; Spoelbak zijkant + Set ODSP=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"ODSP")) ; Onderdelen special + Set BM=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"BM")) ; Blumotion + Do pxLabel.SetTipon(BM="T") + Set pxLabel.KB=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"KB")) ; KleurBodem + Set pxLabel.KL=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"KL")) ; KleurLadezijkant + Set pxLabel.KR=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"KR")) ; KleurRug + Set DC=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"DC")) ; DesignCode + Set BS=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"BS")) ; BoxSide + Set LC=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"LC")) ; LadeCode + Set pxLabel.ZW=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"ZW")) ; Zijwandhoogte + Set ASM=$S($LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"NMASM")):"",1:$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"ASM"))) ; Antislipmat + Set VPK=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"VERPAK")) ; Verpakking + Set RSTL=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"RSTL")) ; Rug verlaagd + Set PlaatMat=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"MATKL")) ; Materiaal gezaagd + Set Batch=##class(DS.PPS.TBX.Batch).%OpenId(oQ.BatchID) + Set pxLabel.Line=Batch.Line + Quit:ODSP="F" "" ; Onderdelen Speciaal : alleen front + Set pxLabel.Bor="" + If 'IsSR&&((IB'<400)||(DK=80)||(DS="BA")||(KLAS="SP")) Do + . Set pxLabel.Bor=$S((IB'<700)||(KLAS="SP"):2,1:1) + Set TipOnSyncPRNr=$P($G(^PRBS("BS",PRNr,"PRTOSTANG.001")),"\",1) ; ;Z55Sxxx + Set RugPRNr=$P($G(^PRBS("BS",PRNr,"PRRUGHS.001")),"\",1) + Set:RugPRNr?4.7N RH=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TB",RugPRNr,"RugHoogte")) ; Werkelijke hoogte van de rug + Set pxLabel.RHNet=..RugHoogteInMM(RH) + Set RugHPRNr=$P($G(^PRBS("BS",PRNr,"PRRUGLI.001")),"\",1) + Set:RugHPRNr?4.7N RHH=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TB",RugHPRNr,"RugHoogte")) ; Werkelijke hoogte van de rughouder + if $G(RHH)?1A1"-"1A { ; L-vormige rughouders hebben een kenmerk van de vorm BuitenRugHoogte_BinnenRugHoogte + set pxLabel.Opm2 = "RWH : "_..RugHoogteInMM($P(RHH,"-",1))_"_"_..RugHoogteInMM($P(RHH,"-",2)) + } + else{ + set pxLabel.Opm2 = "RWH : "_..RugHoogteInMM($P(RH,"-",1))_"_"_..RugHoogteInMM($P(RH,"-",1)) + } + Set BodemPRNr=$P($G(^PRBS("BS",PRNr,"PRBDHO.001")),"\",1) + Set lbBodemKleuren=$S(BodemPRNr?4.7N:##class(Prod.Kenmerk.DataDefinitie).Get("TB",BodemPRNr,"Kleur"),1:"") ; Mogelijke kleuren van de bodem + Set KB2=$S(lbBodemKleuren'="":$LG(lbBodemKleuren,$S($LF(lbBodemKleuren,pxLabel.KB)=1:2,1:1)),1:"") ; 2e kleur bodem + Set:KB2'="" pxLabel.KB=pxLabel.KB_"/"_KB2 + ; F en A design achter de ladezijkantkleur + Set pxLabel.KL=pxLabel.KL_$CASE(DC,"S":"","B":"","I":":A"_$S((pxLabel.ZW)="L":"2",1:""),"MA":":A",:":"_DC) + If DK=80 Do + . Set pxLabel.BreedteR=IB-87 + . Set pxLabel.BreedteB=IB-81 + Else If DS="BA" Do + . Set pxLabel.BreedteR=IB-112 + . Set pxLabel.BreedteB=IB-75 + Else Do + . Set pxLabel.BreedteR=IB-87 + . Set pxLabel.BreedteB=IB-75 + ; opmerking + Set Opmerking="" + Set:PlaatMat?1(1"HZ",1"HA",1"KS",1"KZ",1"KA") Opmerking=Opmerking_", "_$Case(PlaatMat,"HZ":"Verzaagd","HA":"Verzaagd","KS":"Klant",:"Klant verzaagd") ; plaatmateriaal is reeds gezaagd + Set:##class(BL.PPS.TBX.DocsV1).MetInkeeping(PRNr) Opmerking=Opmerking_", "_"INKEPING" ; controle of de bodem een inkeping heeft (Keller) + Set Opmerking=Opmerking_$CASE(VPK,"Z":"Stuk-Z","O":"PRO-O","C":"PRO-Z","P":"PALLET","A":"KAST-Z","B":"KAST-O","I":"KIST",:"") + Set:"0"'[ASM Opmerking=Opmerking_", "_"MAT:"_ASM + Set:$E(LC,$L(LC))="Z" Opmerking=Opmerking_", "_"FRONT" + Set:DK=80 Opmerking=Opmerking_", "_"80kg" + Set:DK=25 Opmerking=Opmerking_", "_"Intrabox" + Set:DS="BA" Opmerking=Opmerking_", "_"Baliko" + Set:DC="L" Opmerking=Opmerking_", "_"Intivo" + Set:RSTL'="" Opmerking=Opmerking_", "_"VERLAAGDE RUG "_RSTL + Set:BM="T" Opmerking=Opmerking_", "_"TIP-ON"_$S(TipOnSyncPRNr?4.7N:"+"_$E($P(^KPR(TipOnSyncPRNr,0),"\",1),5,7),1:"") ;TIPON + Z55Sxxx + Set:IsSR pxLabel.KR="Staal "_pxLabel.KR_" "_pxLabel.RH_" "_(IB-28),pxLabel.RH="",pxLabel.Bor="",pxLabel.RHNet="",pxLabel.BreedteR="" ;Stalen rug + Set:(ODSP'="")&&(ODSP'["H") pxLabel.KR="--" ; herstelling zonder rugwandhouders + Set:KLAS["SP" Opmerking=Opmerking_", "_$CASE(KLAS,"SP":"SP 1","SP2":"SP 2",:"")_" "_$CASE(SPZK,"S":"Smal",:"Breed"), BreedteR="" + Set:KLAS["SP" pxLabel.Spoelbak = 1 + Set:KLAS["SY" Opmerking=Opmerking_", "_"Sifon", BreedteR="" + Set:KLAS["SY" pxLabel.Sifon = 1 + Set:KLAS="B" Opmerking=Opmerking_", "_"Buro" + Set:ODSP'="" Opmerking=Opmerking_", "_"**SPECIAL:"_ODSP_"**" + Set pxLabel.Opm1=$E(Opmerking,$S($E(Opmerking,1)=",":3,1:1),99) + Set:(BM'="T")&&(BM'="I") pxLabel.Opm2="Blumotion : "_BM_" "_pxLabel.Opm2 + Set pxLabel.TOENr=$E(oQ.TOENr,4,6) + Set pxLabel.BatchID=$E(oQ.BatchID,$L(oQ.BatchID)-2,$L(oQ.BatchID)) + Set pxLabel.DOSNr=oQ.DOSNr + Set pxLabel.VHossID=$S($isObject(oQ.WPVerpak):oQ.WPVerpak.VHossID(),1:"") + Set pxLabel.Qty="("_oQ.DeelAantal_"/"_oQ.TotaalAantal_")" + Set pxLabel.Picture=##class(BL.Prod.ImageLink).%New().GetProductImageURL(PRNr, "LABEL") + Set pxLabel.Device=$zobjval(,4,0,0,4) + Set pxLabel.Layout=$zobjval(,7,0,0,7) + Quit pxLabel } +zEtiketten(%this,StartNr,EndNr) public { // Print all labels except tipons + Set TipOnLabelProcessor = ##class(BL.PPS.TBX.TiponLabelProcessor).%New(0) + Do TipOnLabelProcessor.Init($zobjval(,4,0,0,4), $zobjval(,7,0,0,7)) + Set SifonLabelProcessor = ##class(BL.PPS.TBX.SifonLabelProcessor).%New(0) + Set SpoelbakLabelProcessor = ##class(BL.PPS.TBX.SpoelbakLabelProcessor).%New(0) + Set MultiProcessor = ##class(BL.PPS.TBX.MultiProcessorEN).%New() + Do MultiProcessor.VoegProcessorToe(TipOnLabelProcessor) + Do MultiProcessor.VoegProcessorToe(SifonLabelProcessor) + Do MultiProcessor.VoegProcessorToe(SpoelbakLabelProcessor) + Do ..EtikettenProcessed(MultiProcessor,StartNr,EndNr) + /* + Tests (files on fop, Testbestanden folder): + - TBXL2test1.txt -> batch with normal drawers followed by tipons followed by normal drawers + - TBXL2test2.txt -> batch with tipons at the end + */ } +zEtikettenCommissie(%this) public { + Set blLabelPrinter=##class(BL.Sys.LabelPrinter).Instantiate($zobjval(,3,0,0,3)) + Set rs=##class(%Library.ResultSet).%New() + Do rs.Prepare("Select BatchID, count(ID) as Aantal, Product, TOENr, TLUNr, Status from PPS.TBX_Queue where (BatchID="_$zobjval(,2,0,0,2)_") and (Status<>'PB') group by TOENr, TLUNr, Product") + Do rs.Execute() + For Quit:'rs.Next() Do ;berekenen van het aantal etiketten dat moet afgedrukt worden + . Set PRNr=rs.Data("Product") + . Set TOENr=rs.Data("TOENr") + . Set TLUNr=rs.Data("TLUNr") + . Set Aantal=rs.Data("Aantal") + . Quit:'$D(^KTO(6332,TOENr)) + . Set ASM=$S($LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"NMASM")):"",1:$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"ASM"))) ; Antislipmat + . Set VPK=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"VERPAK")) ; Verpakking + . If ((VPK="A")!(VPK="B"))&(ASM'=0) Set AantASM(TOENr)=$G(AantASM(TOENr))+Aantal + . If (VPK="O")!(VPK="B") Set AantOnderdelen(TOENr)=$G(AantOnderdelen(TOENr))+Aantal + Set TOENr="" + For Set TOENr=$O(AantASM(TOENr)) Quit:TOENr="" Do ; labels naar de bartender sturen + . Set Aantal=$S(AantASM(TOENr)#5=0:AantASM(TOENr)\5,1:AantASM(TOENr)\5+1) + . Set pxLabel=..EtikettenCommissieOne(TOENr,Aantal,"ANTISLIPMAT") + . Do blLabelPrinter.Add(pxLabel) + For Set TOENr=$O(AantOnderdelen(TOENr)) Quit:TOENr="" Do + . Set Aantal=$S(AantOnderdelen(TOENr)#4=0:AantOnderdelen(TOENr)\4,1:AantOnderdelen(TOENr)\4+1) + . Set pxLabel=..EtikettenCommissieOne(TOENr,Aantal,"ONDERDELEN") + . Do blLabelPrinter.Add(pxLabel) + Do blLabelPrinter.Print2Bartender($zobjval(,3,0,0,3)) ; eigenlijke afdruk +} +zEtikettenCommissieOne(%this,TOENr,Aantal,Titel) public { Set pxLabel=##class(BL.PPS.TBX.sub.pxCommissie).%New() + Set xHeader=^KTO(6332,TOENr,1) + Set OrderNr=$Piece(xHeader,"\",7) + Set KLNr=$Piece(xHeader,"\",8) + If KLNr'="" Do + . Set KlantIndex=$Piece(^KK1(KLNr),"\") + . Set KlantNaam=$Piece(^KKL(KlantIndex,0),"\",2) + Else Set KlantNaam="" + Set CommissieRef=..CommissieRef(KLNr,OrderNr) + Set pxLabel=##class(BL.PPS.TBX.sub.pxCommissie).%New() + If (##class(TECH.Config.ConfigMgr).Instance().GetBoolean("BL.PPS.TBX.DocsV1_LogPrintLabelsIpvTePrinten")) + { + Set pxLabel.Device = "\\fop\test3" + } + Else + { + Set pxLabel.Device = "Halux_Productie" + } + Set pxLabel.Layout="TBX Extra commissie 5x10" + Set pxLabel.Logo="logo\Logo VHZwart.svg" + Set pxLabel.KlantNaam=KlantNaam + Set pxLabel.CommissieRef=CommissieRef + Set pxLabel.OrderNr=OrderNr + Set pxLabel.TOENr=TOENr + Set pxLabel.Aantal=Aantal + Set pxLabel.Titel=Titel + Quit pxLabel } +zEtikettenProcessed(%this,proc,StartNr,EndNr) public { Set blLabelPrinter=##class(BL.Sys.LabelPrinter).Instantiate($zobjval(,3,0,0,3)) ; debug off + Set rs=##class(%Library.ResultSet).%New("BL.PPS.TBX.Sequencer:GetSequence") + Set sc=rs.Execute($zobjval(,2,0,0,2)) + Set Count=0 + For Quit:'rs.Next() Do + . Set oQ=##class(DS.PPS.TBX.Queue).%OpenId(rs.Data("ID")) + . Quit:oQ.Status="PB" ; sequencelijnen met status "PB" worden overgeslagen + . Set VolgNr=rs.Data("Sequence") + . Quit:'..EtiketChk(oQ) + . Set pxLabel=..EtiketOne(oQ) + . Quit:'$isObject(pxLabel) + . Set pxLabel.VolgNr = VolgNr + . Set Count=Count+1 + . If proc.Process(.pxLabel) Do + . . If $D(StartNr) Quit:CountEndNr + . . Do blLabelPrinter.Add(pxLabel) + Do:proc.PostProcess(blLabelPrinter) blLabelPrinter.Print2Bartender($zobjval(,3,0,0,3)) } +zEtikettenSifon(%this,StartNr,EndNr) public { Set SifonLabelProcessor = ##class(BL.PPS.TBX.SifonLabelProcessor).%New(1) + Do ..EtikettenProcessed(SifonLabelProcessor,StartNr,EndNr) } +zEtikettenSpoelbak(%this,StartNr,EndNr) public { Set SpoelbakLabelProcessor = ##class(BL.PPS.TBX.SpoelbakLabelProcessor).%New(1) + Do ..EtikettenProcessed(SpoelbakLabelProcessor,StartNr,EndNr) } +zEtikettenSpoelbakSifon(%this,StartNr,EndNr) public { Set SifonLabelProcessor = ##class(BL.PPS.TBX.SifonLabelProcessor).%New(1) + Set SpoelbakLabelProcessor = ##class(BL.PPS.TBX.SpoelbakLabelProcessor).%New(1) + Set MultiProcessor = ##class(BL.PPS.TBX.MultiProcessorOF).%New() + Do MultiProcessor.VoegProcessorToe(SifonLabelProcessor) + Do MultiProcessor.VoegProcessorToe(SpoelbakLabelProcessor) + Do ..EtikettenProcessed(MultiProcessor,StartNr,EndNr) } +zEtikettenTipon(%this,StartNr,EndNr) public { // Print only the labels for tipon + Set TipOnLabelProcessor = ##class(BL.PPS.TBX.TiponLabelProcessor).%New(1) + Do TipOnLabelProcessor.Init($zobjval(,4,0,0,4), $zobjval(,7,0,0,7)) + Do ..EtikettenProcessed(TipOnLabelProcessor,StartNr,EndNr) } +zFrontCB(Ref) New TOENr,Fmt,Rec + Quit:$L(Ref)=1 "" Set Rec=@Ref + Set TOENr=$P(Rec,"\",3) + Set Dossier=$P(Rec,"\",5) + Set Fmt="BL\;1" + Set:%MemTOENr'=TOENr&(%MemTOENr'="") Fmt="BR\;1" + Set %MemTOENr=TOENr + Quit Fmt +zFrontChk(%this,oQ) public { Quit:oQ.DeelAantal>1 0 ; Slechts 1 keer voorkomen + Set PRNr=oQ.ProductGetObjectId() + Quit:..IsSpoel(PRNr) 0 + Set LT=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"LT")) ; Front type + Quit LT="B" ; alleen binnenlades +} +zFrontLijst(%this,BatchID,BatchList) public { ; Sorteren + Set Label="F" + Set rs=##class(%Library.ResultSet).%New("BL.PPS.TBX.Sequencer:GetSequence") + Set sc=rs.Execute($zobjval(,2,0,0,2)) + Set (Count,FrontCnt)=0 + For Quit:'rs.Next() Do + . Set oQ=##class(DS.PPS.TBX.Queue).%OpenId(rs.Data("ID")) + . Quit:oQ.Status="PB" ; sequencelijnen met status "PB" worden overgeslagen + . Quit:'..FrontChk(oQ) + . Set Rec=..FrontOne(..BldBasisFromQueue(oQ)) + . Set:$L(Rec) ^HULP($zobjval(,1,0,0,1),Label,$I(Count))=Rec + . Set FrontCnt=FrontCnt+oQ.TotaalAantal + ; Output + ; Basis + 10:Opmerking + Quit:'$D(^HULP($zobjval(,1,0,0,1),Label)) 0 + Do INIT^vhLISTO("HATBXLEAN","PRINT",.PLD) + Set PLD(5)=70 + Set PLD(1)=$NA(^HULP($zobjval(,1,0,0,1),Label)) + Set PLD(10)="Class("_##class(BL.PPS.TBX.DocsV1).%ClassName(1)_").FrontCB" + Set PLD(11)="TBX FRONT\Lijn:"_$zobjval(,8,0,0,8)_" Batch:"_$zobjval(,2,0,0,2) + Set PLD("HALUX")="" + Set (%MemTOENr,%MemDossier)="" + Do PRINT^OUTPUT(.PLD,$S($zobjval(,3,0,0,3):"S",1:"P"),"S","BL") + Kill %MemDossier,%MemTOENr + Quit FrontCnt } +zFrontOne(%this,Basis) public { Set PRNr=$P(Basis,"\") + Set ODSP=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"ODSP")) ; Onderdelen speciaal + ; netto breedte + Set Rec="" + Set:ODSP="F" Rec="**SPECIAL:"_ODSP_"**" + Set $P(Basis,"\",10)=Rec + Quit Basis } +zGlasSnijCB(Ref) New TOENr,Fmt,Rec + Quit:$L(Ref)=1 "" + Set Rec=@Ref + Set TOENr=$P(Rec,"\",3) + Set Dossier=$P(Rec,"\",5) + Set Fmt="BL\;1" + Set:%MemTOENr'=TOENr&(%MemTOENr'="") Fmt="BR\;1" + Set %MemTOENr=TOENr + Quit "" ;Fmt +zGlasSnijChk(%this,oQ) public { Quit:oQ.DeelAantal>1 0 ; + Set PRNr=oQ.ProductGetObjectId() + Set API = ##class(DOM.DomeinContext).Instance().GeefProductAPI() + Set TandemBox = API.GeefProduct(PRNr) + Quit TandemBox.BevatInTeKortenGlas() } +zGlasSnijLijst(%this) ; Sorteren + Set Label="S" + Kill ^HULP($zobjval(,1,0,0,1),Label) + Set rs=##class(%Library.ResultSet).%New("BL.PPS.TBX.Sequencer:GetSequence") + Set sc=rs.Execute($zobjval(,2,0,0,2)) + Set (Count,GlasSnijCnt)=0 + For Quit:'rs.Next() Do + . Set oQ=##class(DS.PPS.TBX.Queue).%OpenId(rs.Data("ID")) + . Quit:oQ.Status="PB" ; sequencelijnen met status "PB" worden overgeslagen + . Quit:'..GlasSnijChk(oQ) + . Set Resultaat=..GlasSnijOne(..BldBasisFromQueue(oQ)) + . For i=1:1:$LL(Resultaat) DO + . . Set Rec=$LG(Resultaat,i) + . . Set:$L(Rec) ^HULP($zobjval(,1,0,0,1),Label,$I(Count))=Rec + . . Set GlasSnijCnt=GlasSnijCnt+oQ.TotaalAantal + ; Output + ; Basis + 10:Aantal, 11:Lengte, 12:RugHoogte, 13:Type, 14:ProductNaam + Quit:'$D(^HULP($zobjval(,1,0,0,1),Label)) 0 + Do INIT^vhLISTO("HATBXLEAN","GLASSNIJLIJST",.PLD) + Set PLD("HALUX")="" + Set PLD(5)=75 + Set PLD(1)=$NA(^HULP($zobjval(,1,0,0,1),Label)) + Set PLD(10)="Class("_##class(BL.PPS.TBX.DocsV1).%ClassName(1)_").GlasSnijCB" + Set PLD(11)="TBX Snijlijst Glas\Lijn:"_$zobjval(,8,0,0,8)_" Batch:"_$zobjval(,2,0,0,2) + Set (%MemTOENr,%MemDossier)="" + Do PRINT^OUTPUT(.PLD,$S($zobjval(,3,0,0,3):"S",1:"P"),"S","BL") + Kill %MemDossier,%MemTOENr + Quit GlasSnijCnt +zGlasSnijOne(%this,Basis,Aantal) public { + // Code geschreven door PV --> aangepast door CSC --> uitgebreid door WV + // Datum laatste wijziging : 19/01/2011 + // + // Een deel van de code maakt reeds gebruik van de enclapsulatie (TBX) + // Verdere encapsulatie (GeefRugHoogte(), ... ) kan nog doorgevoerd worden. + // + // INFO: + // Aantal snijdingen = Aantal "stukken" glas te snijden en door te geven om in tandembox te plaatsen + // Aantal pickingen = Aantal "stroken" glas te picken uit magazijn die nog bewerkt moeten worden + Set Resultaat="" + Set PRNr=$P(Basis,"\",1) + Set API = ##class(DOM.DomeinContext).Instance().GeefProductAPI() + Set TandemBox = API.GeefProduct(PRNr) + // Front glas snijden (Meer algemeen uitgedrukt : Front inschijfelement inkorten) + Set MoetFrontGlasInkorten=TandemBox.BevatInTeKortenFrontGlas() ; ($D(^PRBS("BS",PRNr,"PRFRGLAS.001")))||($D(^PRBS("BS",PRNr,"PRFRGLASSTRK.001"))) + If (MoetFrontGlasInkorten) + { + If ($D(^PRBS("BS",PRNr,"PRFRGLASSTRK.001"))) { + Set GlasSnij1=$P($G(^PRBS("BS",PRNr,"PRFRGLASSTRK.001","D")),"\",1) ; D-subnode : Dimensie-gegevens + Set xGlas1=^PRBS("BS",PRNr,"PRFRGLASSTRK.001") + Set SnijdenUitStrook=1 + } + Else { + Set GlasSnij1=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"IB"))-118 + Set xGlas1=^PRBS("BS",PRNr,"PRFRGLAS.001") + Set SnijdenUitStrook=0 + } + Set KPRNr1=$P(xGlas1,"\") + Set AantalSnijdingen1=$Piece(Basis,"\",2)*$Piece(xGlas1,"\",2) + If (SnijdenUitStrook) { + Set GlasDimBrut1=$P($G(^PRBS("BS",PRNr,"PRFRGLASSTRK.001","D")),"\",2) ; D-subnode : Dimensie-gegevens + Set AantalPickingen1=##class(BL.PPS.TBX.DocsV1).TelMagazijnStuks(KPRNr1,AantalSnijdingen1,1,GlasDimBrut1) + } + Else { + Set AantalPickingen1=AantalSnijdingen1 + } + Set:(AantalSnijdingen1<10) AantalSnijdingen1=" "_AantalSnijdingen1 + Set:(AantalPickingen1<10) AantalPickingen1=" "_AantalPickingen1 + Set KortTekst1=$Piece(^KPR(KPRNr1,0),"\") + Set PType="Front" + Set RugHoogte=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"RH")) + Set Kleur=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TB",KPRNr1,"Kleur")) + ;b "s+" + Set Rec1=AantalPickingen1_":"_AantalSnijdingen1_"\"_GlasSnij1_"\"_RugHoogte_"\"_PType_"\"_KortTekst1_"\"_Kleur + Set $Piece(Basis,"\",10)=Rec1 + Set Resultaat=$LB(Basis) + } + // Zijwand glas snijden, tenzij exact (BOXCOVER) (Meer algemeen uitgedrukt : Zijwand inschuifelement inkorten) + Set MoetZijwandGlasInkorten=TandemBox.BevatInTeKortenZijkantGlas() ; $D(^PRBS("BS",PRNr,"PRBXKGSTRK.001")) || ($D(^PRBS("BS",PRNr,"PRBXKG.001")) en (LadeDiepte HF verschillend)) + If (MoetZijwandGlasInkorten) + { + If ($D(^PRBS("BS",PRNr,"PRBXKGSTRK.001"))) { + Set GlasSnij2=$P($G(^PRBS("BS",PRNr,"PRBXKGSTRK.001","D")),"\",1) ; D-subnode : Dimensie-gegevens + Set xGlas2=^PRBS("BS",PRNr,"PRBXKGSTRK.001") + Set SnijdenUitStrook=1 + } + Else { + Set GlasSnij2=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"LD"))-60 + Set xGlas2=^PRBS("BS",PRNr,"PRBXKG.001") + Set KPRNr2=$P(xGlas2,"\",1) + Set SnijdenUitStrook=0 + } + Set KPRNr2=$P(xGlas2,"\",1) + Set AantalSnijdingen2=$Piece(Basis,"\",2)*2 ;$Piece(xGlas2,"\",2) + If (SnijdenUitStrook) { + Set GlasDimBrut2=$P($G(^PRBS("BS",PRNr,"PRBXKGSTRK.001","D")),"\",2) ; D-subnode : Dimensie-gegevens + Set AantalPickingen2=##class(BL.PPS.TBX.DocsV1).TelMagazijnStuks(KPRNr2,AantalSnijdingen2,1,GlasDimBrut2) + } + Else { + Set AantalPickingen2=$Piece(Basis,"\",2)*$Piece(xGlas2,"\",2) + } + Set:(AantalSnijdingen2<10) AantalSnijdingen2=" "_AantalSnijdingen2 + Set:(AantalPickingen2<10) AantalPickingen2=" "_AantalPickingen2 + Set KortTekst2=$Piece(^KPR(KPRNr2,0),"\") + Set PType="Zijkant" + Set RugHoogte=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TB",KPRNr2,"RugHoogte")) + Set Kleur=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TB",KPRNr2,"Kleur")) + ;b "s+" + Set Rec2=AantalPickingen2_":"_AantalSnijdingen2_"\"_GlasSnij2_"\"_RugHoogte_"\"_PType_"\"_KortTekst2_"\"_Kleur + Set $Piece(Basis,"\",10)=Rec2 + Set Resultaat=Resultaat_$LB(Basis) + } + Quit Resultaat } +zInit(%this,BatchID,ProdGrp,LabelDevice,FOPDevice) public { Set $zobjval(,4,0,0,4)=$G(LabelDevice,"Halux_Productie") + Set $zobjval(,7,0,0,7)="TBX Productie" + Set $zobjval(,5,0,0,5)=$G(LabelDevice,"Halux_Productie_Keller") + Set $zobjval(,6,0,0,6)="KlantTBX5x10v3" + Set $zobjval(,2,0,0,2)=$G(BatchID) + If BatchID'="" Set $zobjval(,8,0,0,8)=$S(##class(DS.PPS.TBX.Batch).%ExistsId(BatchID):##class(DS.PPS.TBX.Batch).%OpenId(BatchID).Line,1:"") + Set $zobjval(,9,0,0,9)=$G(ProdGrp,"S") + Set $zobjval(,1,0,0,1)=$$%J^vhRtn1() + Kill ^HULP($zobjval(,1,0,0,1)) } +zInstantiate(Debug) public { Set bl=##class(BL.PPS.TBX.DocsV1).%New() + Set bl.Debug=$G(Debug) + Quit bl } +zIsSpoel(%this,PRNr) public { Set KLAS=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"KLAS")) + Quit:KLAS'?1(1"L",1"B") 1 ; Geen lade of burolade dus spoelbak + Set DC=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"DC")) + Quit:DC="B" 2 ; Baliko + Quit 0 } +zKlantEtiketChk(%this,oQ) public { Set PRNr=oQ.ProductGetObjectId() + Set ODSP=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"ODSP")) ; Onderdelen Special + Quit ODSP'="F" } +zKlantEtiketOne(%this,oQ) public { Set pxLabel=##class(BL.PPS.TBX.sub.pxLabelKlant).%New() + Do General(oQ.KlantGetObjectId(),oQ.TOENr,oQ.TLUNr,oQ.BatchID,pxLabel) + Do Product(oQ.ProductGetObjectId(),$S($isObject(oQ.WPVerpak):oQ.WPVerpak.VHossID(),1:""),pxLabel) + Set pxLabel.Device=$zobjval(,5,0,0,5) + Set pxLabel.Layout=$zobjval(,6,0,0,6) + Quit pxLabel +General(KLNr,TOENr,TLUNr,BatchID,pxLabel) + Set TLNr=$G(^TO("IU",TOENr,TLUNr),"*") + Set ORDNr=$P($G(^KTO(6332,TOENr,TLNr)),"\",27) ; KOMLink + Set OLNr=$P($G(^KTO(6332,TOENr,TLNr)),"\",28) ; KOMLink + Set pxLabel.OrderRef=$$OrderRef(KLNr,ORDNr,OLNr) + Set ProjectRef=$S('OLNr:"",1:$P($G(^KOD(KLNr,"F",ORDNr,OLNr)),"\",5)) + Set:$L(ProjectRef) pxLabel.OrderRef=ProjectRef ; Projectreferentie is belangrijker dan de orderreferentie + Do AdresOrder(ORDNr,KLNr,pxLabel) + If (KLNr=7833)||(KLNr=6279) Set pxLabel.KlantNaamBig=$$UPTRIMAN^vhRtn1(pxLabel.OrderRef) ; Voor Hein en Optima + ; Indien contract dan leverweek van toelevering + If TOENr,TLNr,$D(^KTO(6332,TOENr,TLNr)) Do + . Set pxLabel.ProdWk=$TR($P(^KTO(6332,TOENr,TLNr),"\",25),"/","") + Else Do + . Set pxLabel.ProdWk=$TR($S('OLNr:"",1:$P($G(^KOD(KLNr,"F",ORDNr,OLNr)),"\",25)),"/","") + Set Taal=$S(KLNr:$P(^KKL(^KK1(KLNr),0),"\",9),1:"") + Set:(Taal'="F")&&(Taal'="D") Taal="N" + Set pxLabel.Taal=Taal + If KLNr=4855 Set pxLabel.KlantBarcode=pxLabel.OrderRef,pxLabel.KlantBarcodeTxt=pxLabel.OrderRef ; Neves + Set:$G(KLNr)&&($D(^IPCom("CS","LOGO"_KLNr,0))) pxLabel.LogoImg="LOGO\"_^IPCom("CS","LOGO"_KLNr,0) + Set:pxLabel.LogoImg="" pxLabel.LogoImg="LOGO\"_^IPCom("CS","LOGO"_4682,0) ; default Van Hoecke + Set pxLabel.ORDNr=ORDNr + Set pxLabel.TOENr=TOENr + Set pxLabel.BatchID=BatchID + If oQ.Status="PB" Set pxLabel.Opmerking="|" ; er wordt een streep toegevoegd aan de rechterkant van het etiket + Quit +AdresOrder(ORDNr,KLNr,pxLabel) + Set Adres="" + Set:KLNr&&ORDNr Adres=$G(^KOD(KLNr,"F",ORDNr,3)) + Set:($L($TR(Adres,"\",""))<5)&&KLNr Adres=^KKL(^KK1(KLNr),0) ; Geen of onvoldoende adres + Set pxLabel.KlantNaam=$P(Adres,"\",2) + Set pxLabel.KlantNr=KLNr + Set pxLabel.KlantNaamBig=$$TRIMNAAM^vhRtn1(pxLabel.KlantNaam,1) + Set:(KLNr=8545) pxLabel.KlantNaamBig="I.SCHREURS" ; Speciaal toegevoegd om verwarring te vermijden met 3760 - PV - 13-09-05 + Set:(KLNr=4451) pxLabel.KlantNaam="@4451",pxLabel.KlantNaamBig="4451" ; Assenti + Set:(KLNr=1300) pxLabel.KlantNaamBig="OSTE K" ; Speciaal toegevoegd op vraag van klant - PV - 21-04-08 + Set pxLabel.Toenaam=$P(Adres,"\",3) + Set pxLabel.Straat=$P(Adres,"\",5) + Set pxLabel.PostCode=$S($E($P(Adres,"\",6),1,2)="NL":"NL",$P(Adres,"\",6)?4N:"",1:$P(Adres,"\",6)) + Set pxLabel.Gemeente=$E($P(Adres,"\",7),1,18) + Quit +OrderRef(KLNr,ORDNr,OLNr) ; Referentie opzoeken in leveringsbon indien order reeds op bon gezet + Quit:'ORDNr "VOORRAAD" + Set OrdRef="" + If KLNr,ORDNr,OLNr Set OrdRef=$P($G(^KOD(KLNr,"F",ORDNr,OLNr)),"\",19) ; Klantcomm. ref + If KLNr,ORDNr,OrdRef="" Set OrdRef=$P($G(^KOD(KLNr,"F",ORDNr,1)),"\",3) ; rderref + If $E(OrdRef,1,3)="EDI" Set $E(OrdRef,1,3)="",OrdRef=$TR(OrdRef," ","") + If (OrdRef?1.2N1"."1.2N1"."2N1" ".E)||(OrdRef?1.2N1"/"1.2N1"/"2N1" ".E)||(OrdRef?1.2N1"-"1.2N1"-"2N1" ".E) Set OrdRef=$P(OrdRef," ",2,99) + Quit OrdRef +Product(PRNr,VHossID,pxLabel) + Set pxLabel.BreedteCorpus=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"CB")) ; Corpus breedte + Set pxLabel.Diepte=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"LD")) ; Ladediepte + Set pxLabel.WandDikte=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"WD")) ; Wanddikte + Set pxLabel.Kleur=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"KL")) ; Kleur + Set pxLabel.Verpak=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"VERPAK")) ; Verpakking + Set pxLabel.LadeCode=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"LC")) ; LadeCode + Set pxLabel.KortTekst=$P(^KPR(PRNr,0),"\") + Set pxLabel.IdentNr=$P(^KPR(PRNr,2),"\",25) + Set pxLabel.Kleur=$E(pxLabel.KortTekst,22,23)_"/"_$E(pxLabel.KortTekst,24,25) + Set pxLabel.DossierBarcodeTxt=$$BARCODE^HAD(PRNr,"F") + Set pxLabel.DossierBarcode=$TR(pxLabel.DossierBarcodeTxt,".") + Set pxLabel.VHossID=$G(VHossID) + Set pxLabel.ProdImg=##class(BL.Prod.ImageLink).%New().GetProductImageURL(PRNr, "LABEL") + Quit } +zKlantEtiketten(%this,StartNr,EndNr) public { Set blLabelPrinter=##class(BL.Sys.LabelPrinter).Instantiate($zobjval(,3,0,0,3)) + Set rs=##class(%Library.ResultSet).%New("BL.PPS.TBX.Sequencer:GetSequence") + Set sc=rs.Execute($zobjval(,2,0,0,2)) + Set Count=0 + For Quit:'rs.Next() Do + . Set oQ=##class(DS.PPS.TBX.Queue).%OpenId(rs.Data("ID")) + . Set VolgNr=rs.Data("Sequence") + . If $D(StartNr) Quit:VolgNrEndNr + . Quit:'..KlantEtiketChk(oQ) + . Set pxLabel=..KlantEtiketOne(oQ) + . Quit:'$isObject(pxLabel) + . Do blLabelPrinter.Add(pxLabel) + . Set Count=Count+1 + Do blLabelPrinter.Print2Bartender($zobjval(,3,0,0,3)) } +zLadeZijkantBakCB(Ref) New TOENr,Fmt,Rec + Quit:$L(Ref)=1 "" Set Rec=@Ref + Set Verpak=$P(Rec,"\",19) + Set Fmt=";1" + Set:%MemVerpak'=Verpak&&(%MemVerpak'="") Fmt="BL\;1" + Set %MemVerpak=Verpak + Quit Fmt +zLadeZijkantBakLijst(%this,BatchID,BatchList) public { ;Set %J=$$%J^vhRtn1() + ;Kill ^HULP(..%J) + Set Label1="Z1" + Set Label2="Z2" + Set Count=0 + Set rs=##class(%Library.ResultSet).%New("BL.PPS.TBX.Sequencer:GetSequence") + Set sc=rs.Execute($zobjval(,2,0,0,2)) + For Quit:'rs.Next() Do + . Set oQ=##class(DS.PPS.TBX.Queue).%OpenId(rs.Data("ID")) + . Quit:oQ.Status="PB" ; sequencelijnen met status "PB" worden overgeslagen + . Quit:..IsSpoel(oQ.ProductGetObjectId()) + . Set Rec=..LadeZijkantBakOne(..BldBasisFromQueue(oQ)) + . Quit:Rec="" + . Set ^HULP($zobjval(,1,0,0,1),Label1,$I(Count))=Rec + . ; Basis + 10: LadeDiepte \ ZijHoogte \ Design \ Kleur \ Draagkracht \ IsSR \ Verpak \ ZijPRNr \ ZijKortTekst \ Doos \ Opmerking + Quit:'$D(^HULP($zobjval(,1,0,0,1),Label1)) + Do ..Transform2Bak(Label1,Label2) ; opdelen in bakjes + Do INIT^vhLISTO("HATBXLEAN","LADEZIJKANT",.PLD) + Set PLD("HALUX")="" + Set PLD(1)=$NA(^HULP($zobjval(,1,0,0,1),Label2)) + Set PLD(5)=80 + Set PLD(10)="Class("_##class(BL.PPS.TBX.DocsV1).%ClassName(1)_").LadeZijkantBakCB" + Set PLD(11)="TBX ZIJKANTEN\Lijn:"_$zobjval(,8,0,0,8)_" Batch:"_$zobjval(,2,0,0,2) + Set (%MemVerpak,%MemDossier,%MemTOENr)="" + Do PRINT^OUTPUT(.PLD,$S($zobjval(,3,0,0,3):"S",1:"P"),"S","BL") + Kill %MemVerpak,%MemDossier,%MemTOENr + Quit } +zLadeZijkantBakOne(%this,Basis) public { Set Rec="" + Set Opmerking="" + Set PRNr=$P(Basis,"\",1) + Set DC=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"DC")) ; Designcode + Set LD=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"LD")) ; Ladediepte + Set LC=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"LC")) ; LadeCode + Set KL=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"KL")) ; Kleurlade + Set DK=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"DK")) ; Draagkracht + Set KLAS=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"KLAS")) ; Klasse (Spoelbak, Lade, ...) + Set ZWH=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"ZW")) ; Zijwandhoogte + Set IsSR=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"IsSR")) ; Stalenrug + Set KL=KL_$CASE(DC,"S":"","B":"","I":"-A"_$S((ZWH)="L":"2",1:""),"MA":"-A",:"-"_DC) + If DK=25 Set DK="I" + Else If DK=80 Set DK="80" + Else Set DK="" + Set ZijPRNr=$P($G(^PRBS("BS",PRNr,"PRLALI.001")),"\",1) + Quit:ZijPRNr'?4.7N "" + Set KortTekst=$P(^KPR(ZijPRNr,0),"\") + Set VPK=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TB",ZijPRNr,"Verpakking")) ; Verpakking van de ladezijkant + Set:VPK["I" VPK="" + Set Rec=LD_"\"_ZWH_"\"_DC_"\"_KL_"\"_DK_"\"_IsSR_"\"_VPK_"\"_ZijPRNr_"\"_KortTekst + Set $P(Basis,"\",10)=Rec + Quit Basis } +zMatCB(Ref) New TOENr,Fmt,Rec + Quit:$L(Ref)=1 "" Set Rec=@Ref + Set TOENr=$P(Rec,"\",3) + Set Dossier=$P(Rec,"\",5) + Set Fmt="BL\;1" + Set:%MemTOENr'=TOENr&(%MemTOENr'="") Fmt="BR\;1" + Set %MemTOENr=TOENr + Quit Fmt +zMatChk(%this,oQ) public { Quit:oQ.DeelAantal>1 0 ; Slechts 1 keer voorkomen + Set PRNr=oQ.ProductGetObjectId() + Quit:..IsSpoel(PRNr) 0 ; spoelbak laden worden apart verwerkt + Set StdProd=$G(^PRBS("BS",PRNr,"PRASM.001")) + Quit:$L(StdProd) 1 + Set StrkProd=$G(^PRBS("BS",PRNr,"PRASMSTRK.001")) + Set Dim=$P($G(^PRBS("BS",PRNr,"PRASMSTRK.001","D")),"\") + Quit:$L(StrkProd)&&Dim 1 + Set RolProd=$G(^PRBS("BS",PRNr,"PRASMROL.001")) + Set Dim=$P($G(^PRBS("BS",PRNr,"PRASMROL.001","D")),"\") + Quit:$L(RolProd)&&Dim 1 + Quit 0 } +zMatLijst(%this,BatchID,BatchList) public { ; Sorteren + Set Label="M" + Set rs=##class(%Library.ResultSet).%New("BL.PPS.TBX.Sequencer:GetSequence") + Set sc=rs.Execute($zobjval(,2,0,0,2)) + Set (Count,MatCnt)=0 + For Quit:'rs.Next() Do + . Set oQ=##class(DS.PPS.TBX.Queue).%OpenId(rs.Data("ID")) + . Quit:oQ.Status="PB" ; sequencelijnen met status "PB" worden overgeslagen + . Quit:'..MatChk(oQ) + . Set Rec=..MatOne(..BldBasisFromQueue(oQ)) + . Set:$L(Rec) ^HULP($zobjval(,1,0,0,1),Label,$I(Count))=Rec + . Set MatCnt=MatCnt+oQ.TotaalAantal + ; Output + ; Basis + 10:KleurMat, 11:LadeDiepte, 12:Lengte, 13:TussenLengte, 14:Opmerking + Quit:'$D(^HULP($zobjval(,1,0,0,1),Label)) 0 + Do INIT^vhLISTO("HATBXLEAN","MAT",.PLD) + Set PLD("HALUX")="" + Set PLD(5)=70 + Set PLD(1)=$NA(^HULP($zobjval(,1,0,0,1),Label)) + Set PLD(10)="Class("_##class(BL.PPS.TBX.DocsV1).%ClassName(1)_").MatCB" + Set PLD(11)="TBX MAT\Lijn:"_$zobjval(,8,0,0,8)_" Batch:"_$zobjval(,2,0,0,2) + Set (%MemTOENr,%MemDossier)="" + Do PRINT^OUTPUT(.PLD,$S($zobjval(,3,0,0,3):"S",1:"P"),"S","BL") + Kill %MemDossier,%MemTOENr + Quit MatCnt } +zMatOne(%this,Basis) public { Set PRNr=$P(Basis,"\",1) + Set ASM=$S($LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"NMASM")):"",1:$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"ASM"))) ; Antislipmat + Quit:0[ASM + Set KPRNr=$P($G(^PRBS("BS",PRNr,"PRASM.001")),"\",1) + If KPRNr Do + . Set Dim=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TB",KPRNr,"BreedteIntern"))-85 + . Set Opmerking=", "_$$Get^PRODUKT(KPRNr,"101") + Else Do ;Strook + . Set KPRNr=$P($G(^PRBS("BS",PRNr,"PRASMSTRK.001")),"\",1) + . If KPRNr Do + . . Set Dim=$P($G(^PRBS("BS",PRNr,"PRASMSTRK.001","D")),"\") + . . Set Opmerking=", "_$$Get^PRODUKT(KPRNr,"101") + . Else Do ; Rol + . . Set KPRNr=$P($G(^PRBS("BS",PRNr,"PRASMROL.001")),"\",1) + . . If KPRNr Do + . . . Set Dim=$P($G(^PRBS("BS",PRNr,"PRASMROL.001","D")),"\") + . . . Set Opmerking="" + Set LD=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"LD")) ; Ladediepte + Set ODSP=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"ODSP")) ; Interne breedte + Set IsSR=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"IsSR")) ; Stalenrug + Set KLAS=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"KLAS")) ; Klasse (Spoelbak, Lade, ...) + ;Set SPZK=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"SPZK")) ; Spoelbak zijkant + Set MatOpties = $LG(##class(Prod.Kenmerk.DataDefinitie).Get("TB",KPRNr,"Opties")) ; Mat opties + Set Type=$S(MatOpties["AGO":"AGO",1:"") + /* + Set KPRNr=$P($G(^PRBS("BS",PRNr,"PRTUSASMROL.001")),"\",1) + Set TusDim=$P($G(^PRBS("BS",PRNr,"PRTUSASMROL.001","D")),"\") + Set:KLAS["SP" Opmerking=Opmerking_", "_$CASE(KLAS,"SP":"SP 1","SP2":"SP 2",:"")_" "_$CASE(SPZK,"S":"Smal",:"Breed") + */ + Set:IsSR Opmerking=Opmerking_", "_"Staalrug" + Set:ODSP'="" Opmerking=Opmerking_", "_"**SPECIAL:"_ODSP_"**" + Set $E(Opmerking,1,2)="" + Set Rec=$Case(ASM,"Z":"Zwart","R":"Rood","G":"Grijs",:"")_"\"_(LD-27)_"\"_Dim_"\"_Type_"\"_Opmerking + Set $P(Basis,"\",10)=Rec + Quit Basis } +zMetInkeeping(PRNr) public { Set BodemPRNr=$P($G(^PRBS("BS",PRNr,"PRBDHO.001")),"\",1) ; meest voorkomend + Set:BodemPRNr'?4.7N BodemPRNr=$P($G(^PRBS("BS",PRNr,"PRBDHZ.001")),"\",1) ; reeds op maat + ;w BodemPRNr + If BodemPRNr'?4.7N Do ; Niet gevonden zoeken naar bodem + . Set BSKey="" + . For Set BSKey=$O(^PRBS("BS",PRNr,BSKey)) Quit:BSKey="" Do + . . Set TempPRNr=$P($G(^PRBS("BS",PRNr,BSKey)),"\") + . . Quit:'TempPRNr + . . ;w ^KPR(TempPRNr,0) + . . Set:$P($G(^KPR(TempPRNr,0)),"\")?1"SPP"1E1"B"1.E BodemPRNr=TempPRNr + Set MetInkeeping=0 + Set:BodemPRNr&&($LG(##class(Prod.Kenmerk.DataDefinitie).Get("TB",BodemPRNr,"Opties"))="INKEPING") MetInkeeping=1 + Quit $G(MetInkeeping) } +zOnderdelenCB(Ref) New TOENr,Fmt,Rec + Quit:$L(Ref)=1 "" Set Rec=@Ref + Set TOENr=$P(Rec,"\",3) + Set Dossier=$P(Rec,"\",5) + Set Fmt=";1" + Set:%MemDossier'=Dossier&(%MemDossier'="") Fmt="BL\;1" + Set %MemDossier=Dossier + Set:%MemTOENr'=TOENr&(%MemTOENr'="") Fmt="BR\;1" + Set %MemTOENr=TOENr + Quit Fmt +zOnderdelenLijst(%this,BatchID,BatchList) public { ; Sorteren + Set Label="O" + ; Ophalen data + Set rs=##class(%Library.ResultSet).%New("BL.PPS.TBX.Sequencer:GetSequence") + Set sc=rs.Execute($zobjval(,2,0,0,2)) + Set Count=0 + For Quit:'rs.Next() Do + . Set oQ=##class(DS.PPS.TBX.Queue).%OpenId(rs.Data("ID")) + . Quit:oQ.Status="PB" ; sequencelijnen met status "PB" worden overgeslagen + . Quit:..IsSpoel(oQ.ProductGetObjectId()) + . Set Rec=..OnderdelenOne(..BldBasisFromQueue(oQ)) + . Set:$L(Rec) ^HULP($zobjval(,1,0,0,1),Label,$I(Count))=Rec + ; Output + ; Basis + 10:Opmerking + Quit:'$D(^HULP($zobjval(,1,0,0,1),Label)) + Do INIT^vhLISTO("HATBXLEAN","PRINT",.PLD) + Set PLD("HALUX")="" + Set PLD(1)=$NA(^HULP($zobjval(,1,0,0,1),Label)) + Set PLD(5)=70 + Set PLD(10)="Class("_##class(BL.PPS.TBX.DocsV1).%ClassName(1)_").OnderdelenCB" + Set PLD(11)="TBX ONDERDELEN\Lijn:"_$zobjval(,8,0,0,8)_" Batch:"_$zobjval(,2,0,0,2) + ;zw PLD + Set (%MemTOENr,%MemDossier)="" + Do PRINT^OUTPUT(.PLD,$S($zobjval(,3,0,0,3):"S",1:"P"),"S","BL") + Kill %MemTOENr,%MemDossier + Quit } +zOnderdelenOne(%this,Basis) public { Set Rec="" + Set PRNr=$P(Basis,"\") + Set Opmerking="" + Set IsSR=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"IsSR")) ; Stalenrug + Set ODSP=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"ODSP")) ; Onderdelen special + Set:IsSR Opmerking=Opmerking_", "_"Staalrug" + Set:ODSP'="" Opmerking=Opmerking_", "_"**SPECIAL:"_ODSP_"**" + Set $E(Opmerking,1,2)="" + Set Rec=Opmerking + Set $P(Basis,"\",10)=Rec + Quit Basis } +zPalletEtiketOne(%this,Type) public { If '$D(Type) Set Type="SFS" + Set pxLabel=##class(BL.PPS.TBX.sub.pxLabelPallet).%New() + If (##class(TECH.Config.ConfigMgr).Instance().GetBoolean("BL.PPS.TBX.DocsV1_LogPrintLabelsIpvTePrinten")) + { + Set pxLabel.Device="\\fop\test3" + } + Else + { + Set pxLabel.Device=$zobjval(,4,0,0,4) + } + Set pxLabel.Layout="TBX PalletID 5x10" + If Type="SFS" Do + . Set pxLabel.LogoImg="logo\logo SFS Unimarket 12486.jpg" + Else Set pxLabel.LogoImg1="logo\logo vhzwart.jpg" + Set LocId=$I(^RES("EWPAL","CNT","TBX")) + If LocId>999999 Set LocId=1,^RES("EWPAL","CNT","TBX")=LocId + Set pxLabel.Barcode=$S(Type="SFS":"SFS",1:"TBX")_$TR($J(LocId,5)," ","0") + Set pxLabel.BarcodeTxt=$E(pxLabel.Barcode,1,4)_" "_$E(pxLabel.Barcode,5,8) + Quit pxLabel } +zPalletEtiketten(%this) public { If '..BevatSFS() Do ..PalletEtikettenNietSFS() Quit + Set blLabelPrinter=##class(BL.Sys.LabelPrinter).Instantiate($zobjval(,3,0,0,3)) + Set rs=##class(%Library.ResultSet).%New("BL.PPS.TBX.Sequencer:GetSequence") + Set sc=rs.Execute($zobjval(,2,0,0,2)) + ; aantal laden + Set Count=0 + For Quit:'rs.Next() Do + . Quit:rs.Data("Status")="PB" ; sequencelijnen met status "PB" worden overgeslagen + . Set Count=Count+1 + ; etiket per theoretisch pallet + For Count2=1:1:((Count+10-1)\10) Do + . Set pxLabel=..PalletEtiketOne() + . Quit:'$isObject(pxLabel) + . Do blLabelPrinter.Add(pxLabel) + Do blLabelPrinter.Print2Bartender($zobjval(,3,0,0,3)) } +zPalletEtikettenNietSFS(%this) public { + Set blLabelPrinter=##class(BL.Sys.LabelPrinter).Instantiate($zobjval(,3,0,0,3)) + Set rs=##class(%Library.ResultSet).%New() + Do rs.Prepare("Select TOENr, Count(*) As Aantal from PPS.TBX_Queue where (BatchID="_$zobjval(,2,0,0,2)_") and (Status<>'PB') group by TOENr") + Do rs.Execute() + For Quit:'rs.Next() Do ;berekenen van het aantal etiketten dat moet afgedrukt worden + . Set TOENr=rs.Data("TOENr") + . Set AantalLijnen(TOENr)=rs.Data("Aantal") + Set TOENr="" + For Set TOENr=$O(AantalLijnen(TOENr)) Quit:TOENr="" Do + . Set Aantal=$S(AantalLijnen(TOENr)#6=0:AantalLijnen(TOENr)\6,1:AantalLijnen(TOENr)\6+1) + . For i=1:1:Aantal Do + . . Set pxLabel=..PalletEtiketOne("TBX") + . . Quit:'$isObject(pxLabel) + . . Do blLabelPrinter.Add(pxLabel) + Do blLabelPrinter.Print2Bartender($zobjval(,3,0,0,3)) } +zPrintDocs(%this,Opties,QtyFront,QtyMat,StartNr,EndNr) public { + /* VRIJE LETTERS, GELIEVE TE UPDATEN BIJ GEBRUIK + / + / H Y + / + */ + Set Opties=$G(Opties,"ELZOFKMRT") + Set:Opties["Z" QtyTot=..ZaagLijst() + Do:Opties["O" ..OnderdelenLijst() + Set:Opties["F" QtyFront=..FrontLijst() + Set:Opties["M" QtyMat=..MatLijst() + ;Do:Opties["V" ..Verbruik() + Do:Opties["L" ..LadeZijkantBakLijst() + Do:Opties["E" ..Etiketten(StartNr,EndNr) + Do:Opties["R" ..StaalRugLijst() + Do:Opties["S" ..StaalRugOverzicht() + Do:Opties["K" ..KlantEtiketten(StartNr,EndNr) + Do:Opties["P" ..PalletEtiketten() + Do:Opties["T" ..EtikettenTipon(StartNr,EndNr) + Do:Opties["N" ..EtikettenSifon(StartNr,EndNr) + Do:Opties["Q" ..EtikettenSpoelbak(StartNr,EndNr) + Do:Opties["C" ..EtikettenCommissie() + Do:Opties["G" ..GlasSnijLijst() + Do:Opties["I" ..RelingInkortenLijst() + // Controleer voor errors op de frees indien etiketten voor tipons, sifons of spoelbakken zijn afgedrukt + If ((Opties["U") || (Opties["W")) + { + Do ##class(APPS.PM.Maatwerk.TBX.Frees.Generator).%New($zobjval(,2,0,0,2)).GenerateFiles(Opties["W",Opties["W",Opties["U") + Do ##class(BL.PPS.TBX.DocsV1).ControleerErrorsFrees($zobjval(,2,0,0,2)) + } + ;update in batch + Set oBatch=##class(DS.PPS.TBX.Batch).%OpenId($zobjval(,2,0,0,2)) + Set PrintList=oBatch.PrintList + For i=1:1:$L(Opties) Do + . Set Optie=$E(Opties,i) + . If Optie="P" Set Optie="PA" + . If '$LF(PrintList,Optie) Set PrintList=PrintList_$LB(Optie) + Set oBatch.PrintList=PrintList + Do oBatch.%Save() } +zRelingInkortenLijst(%this) public { Set API = ##class(DOM.DomeinContext).Instance().GeefProductAPI() + Set Document = ##class(TECH.Print.Kolommen.Document).%New("RelingInkortenLijst","In te korten relingen","Batch ID: "_$zobjval(,2,0,0,2)) + Set DataLijnen = ##class(%Library.ListOfDataTypes).%New() + Set rs=##class(%Library.ResultSet).%New("BL.PPS.TBX.Sequencer:GetSequence") + Set sc=rs.Execute($zobjval(,2,0,0,2)) + While rs.Next() + { + Quit:rs.Data("Status")="PB" ; sequencelijnen met status "PB" worden overgeslagen + Do DataLijnen.Insert(rs.Data("ID")_"\"_rs.Data("Status")_"\"_rs.Data("Product")) + } + Do Document.VoegLijnToe("\\\\\\","\") + Do Document.VoegLijnToe("\\\\\\PICKING","\") + Do Document.VoegLijnToe("\\\\\\","\") + Set Aantallen = ##class(%Library.ArrayOfDataTypes).%New() + Set Iterator = ##class(TECH.ListIterator).%New(DataLijnen) + While Iterator.HasNext() { + Set DataLijn = Iterator.Next() + Set PRNr = $Piece(DataLijn,"\",3) + Set TandemBox = API.GeefProduct(PRNr) + If (TandemBox.BevatInTeKortenReling()) + { + Set RelingPRNr = TandemBox.GeefReling().GeefPRNr() + Set RelingBouwsteen = ##class(DOM.PR.BouwStenen.BouwSteen).%OpenId(PRNr_"||"_"PRRL.001") + Set Aantal = RelingBouwsteen.Aantal + Do Aantallen.SetAt(Aantallen.GetAt(RelingPRNr)+Aantal,RelingPRNr) + If (TandemBox.BevatTussenReling()) + { + Set RelingPRNr = TandemBox.GeefTussenReling().GeefPRNr() + Do Aantallen.SetAt(Aantallen.GetAt(RelingPRNr)+Aantal,RelingPRNr) + } + } + } + Set i = 1 + Set Iterator = ##class(TECH.ListIterator).%New(Aantallen) + While (Iterator.HasNext()) + { + Set Aantal = Iterator.Next() + Set PRNr = Iterator.Key() + Set Reling = API.GeefProduct(PRNr) + Do ..VoegRelingToeAanDocument(i, Reling, Document, Aantal, "", "") + Set i = i + 1 + } + Do Document.VoegLijnToe("\\\\\\","\") + Do Document.VoegLijnToe("\\\\\\INKORTEN","\") + Do Document.VoegLijnToe("\\\\\\","\") + // In te korten relingen opbouwen + Set i = 1 + Set Iterator = ##class(TECH.ListIterator).%New(DataLijnen) + While Iterator.HasNext() { + Set DataLijn = Iterator.Next() + Set Status = $Piece(DataLijn,"\",2) + Set PRNr = $Piece(DataLijn,"\",3) + Set TandemBox = API.GeefProduct(PRNr) + If (TandemBox.BevatInTeKortenReling()) + { + Set oQ = ##class(DS.PPS.TBX.Queue).%OpenId($Piece(DataLijn,"\",1)) + Set ToeDos = $E(oQ.TOENr,4,6)_":"_$E(oQ.DOSNr,1,4) + Set Reling = TandemBox.GeefReling() + Set Lengte = ##class(DOM.PM.Maatwerk.TBX.HalffabrikaatUtils).GeefRelingLengteNaInkorten(PRNr,Reling.GeefPRNr()) + Set RelingBouwsteen = ##class(DOM.PR.BouwStenen.BouwSteen).%OpenId(PRNr_"||PRRL.001") + Set Aantal = RelingBouwsteen.Aantal + Set RelingAantal = Aantal + Set Verpakking = Reling.GeefVerpakking() + If (Verpakking '= ##class(DOM.PM.enu.Verpakking).Industrie()) { + Set RelingAantal = Aantal * 2 + } + Do ..VoegRelingToeAanDocument(i, Reling, Document, Aantal_":"_RelingAantal, ToeDos, Lengte) + If (TandemBox.BevatTussenReling()) + { + Do ..VoegRelingToeAanDocument(i, TandemBox.GeefTussenReling(), Document, Aantal, ToeDos, Lengte) + } + Set i = i + 1 + } + } + If (Aantallen.Count() > 0) + { + Do Document.PrintDocument("HALUX",##class(TECH.Config.ConfigMgr).Instance().GetBoolean("PrintLijstenOpScherm")) + } } +zRugHoogteInMM(%this,RH) public { quit $Case(RH,"N":69,"M":84,"K":116,"B":135,"C":167,"D":199,:"") } +zStaalRugCB(Ref) New TOENr,Fmt,Rec + Quit:$L(Ref)=1 "" Set Rec=@Ref + Set TOENr=$P(Rec,"\",3) + Set Fmt=";1" + Set:%MemTOENr'=TOENr&(%MemTOENr'="") Fmt="BR\;1" + Set %MemTOENr=TOENr + Quit Fmt +zStaalRugLijst(%this,BatchID,BatchList) public { ; Sorteren + Set Label1="R1" + Set Label2="R2" + ; Ophalen data + Set rs=##class(%Library.ResultSet).%New("BL.PPS.TBX.Sequencer:GetSequence") + Set sc=rs.Execute($zobjval(,2,0,0,2)) + For Quit:'rs.Next() Do + . Set oQ=##class(DS.PPS.TBX.Queue).%OpenId(rs.Data("ID")) + . Quit:oQ.Status="PB" ; sequencelijnen met status "PB" worden overgeslagen + . Set PRNr=oQ.ProductGetObjectId() + . Quit:..IsSpoel(PRNr) + . Set (Basis1,Basis2)=..BldBasisFromQueue(oQ) + . Do ..StaalRugOne(PRNr,.Detail1,.Detail2) + . ;b "s+" + . If $L(Detail1) Do + . . Set $P(Basis1,"\",10)=Detail1 + . . Set:$P(Basis1,"\",13)=1 $P(Basis1,"\",13)="" ; HFQty + . . Set ^HULP($zobjval(,1,0,0,1),Label2,$O(^HULP($zobjval(,1,0,0,1),Label2,""),-1)+1)=Basis1 + . If $L(Detail2) Do + . . Set $P(Basis2,"\",10)=Detail2 + . . Set ^HULP($zobjval(,1,0,0,1),Label2,$O(^HULP($zobjval(,1,0,0,1),Label2,""),-1)+1)=Basis2 + ; Output + ; Basis + 10: RugKleur \ RugHoogte \ BreedteRug \ Aantal \ Opmerking \ HFPRNr \ KortTekst + Quit:'$D(^HULP($zobjval(,1,0,0,1),Label2)) + Do INIT^vhLISTO("HATBXLEAN","STAALRUG",.PLD) + Set PLD("HALUX")="" + Set PLD(1)=$NA(^HULP($zobjval(,1,0,0,1),Label2)) + Set PLD(5)=77 + Set PLD(10)="Class("_##class(BL.PPS.TBX.DocsV1).%ClassName(1)_").StaalRugCB" + Set PLD(11)="TBX STALENRUG\Lijn:"_$zobjval(,8,0,0,8)_" Batch:"_$zobjval(,2,0,0,2) + Set (%MemTOENr,%MemDossier)="" + Do PRINT^OUTPUT(.PLD,$S($zobjval(,3,0,0,3):"S",1:"P"),"S","BL") + Kill %MemDossier,%MemTOENr + Quit } +zStaalRugOne(%this,PRNr,Rec1,Rec2) public { + Set (Rec1,Rec2)="" + Set Opmerking="" + Set IsSR=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"IsSR")) ; Stalenrug + Quit:'IsSR "" + Set KR=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"KR")) ; KleurRug + Set RH=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"RH")) ; RugHoogte + Set IB=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"IB")) ; Interne breedte + Set BSKey=$O(^PRBS("BS",PRNr,"PRSRUG.")) + If $E(BSKey,1,$L("PRSRUG."))="PRSRUG." Do + . Set BSRec=^PRBS("BS",PRNr,BSKey) + . Set HFPRNr=$P(BSRec,"\",1) + . If HFPRNr'?4.7N Quit + . If '$D(HFPRNr) Set Rec1="\\\\\*Onbekend "_HFPRNr_"*" Quit + . Set HFQty=$P(BSRec,"\",2) + . Set RB=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TB",HFPRNr,"BreedteIntern"))-28 + . Set RH=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TB",HFPRNr,"RugHoogte")) + . Set KortTekst=$P(^KPR(HFPRNr,0),"\") + . Set Rec1=KR_"\"_RH_"\"_RB_"\"_HFQty_"\\"_HFPRNr_"\"_KortTekst + Set BSKey=$O(^PRBS("BS",PRNr,"PRSRUGTS.")) + If $E(BSKey,1,$L("PRSRUGTS."))="PRSRUGTS." Do + . Set BSRec=^PRBS("BS",PRNr,BSKey) + . Set HFPRNr=$P(BSRec,"\",1) + . If HFPRNr'?4.7N Quit + . If '$D(HFPRNr) Set Rec1="\\\\\*Onbekend "_HFPRNr_"*" Quit + . Set HFQty=$P(BSRec,"\",2) + . Set RB=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TB",HFPRNr,"BreedteIntern"))-28 + . Set RH=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TB",HFPRNr,"RugHoogte")) + . Set KortTekst=$P(^KPR(HFPRNr,0),"\") + . Set Rec2=KR_"\"_"N"_"\"_RB_"\"_HFQty_"\"_"Spoelbak"_"\"_HFPRNr_"\"_KortTekst + . Set:$L(Rec1) $P(Rec1,"\",5)="Spoelbak" + Quit } +zStaalRugOverzicht(%this,BatchID,BatchList) Set Label1="OR1" + Set Label2="OR2" + Set Label3="OR3" + Kill ^HULP($zobjval(,1,0,0,1),Label1), ^HULP($zobjval(,1,0,0,1),Label2) + ; Ophalen data + Set rs=##class(%Library.ResultSet).%New("BL.PPS.TBX.Sequencer:GetSequence") + Set sc=rs.Execute($zobjval(,2,0,0,2)) + For Quit:'rs.Next() Do + . Set oQ=##class(DS.PPS.TBX.Queue).%OpenId(rs.Data("ID")) + . Quit:oQ.Status="PB" ; sequencelijnen met status "PB" worden overgeslagen + . Set PRNr=oQ.ProductGetObjectId() + . Quit:..IsSpoel(PRNr) + . Set (Basis1,Basis2)=..BldBasisFromQueue(oQ) + . Do ..StaalRugOne(PRNr,.Detail1,.Detail2) + . If $L(Detail1) Do + . . Set HFPRNr=$P(Detail1,"\",6) ; HFPRNr + . . Set HFQty=$P(Detail1,"\",4) ; HFQty + . . Set $P(Detail1,"\",4)="" ; 1ste keer dubbeltelling vermijden + . . Set Detail1=$G(^HULP($zobjval(,1,0,0,1),Label1,HFPRNr),Detail1) + . . Set $P(Detail1,"\",4)=$P(Detail1,"\",4)+HFQty + . . Set ^HULP($zobjval(,1,0,0,1),Label1,HFPRNr)=Detail1 + . If $L(Detail2) Do + . . Set HFPRNr=$P(Detail2,"\",6) ; HFPRNr + . . Set HFQty=$P(Detail2,"\",4) ; HFQty + . . Set $P(Detail2,"\",4)="" ; 1ste keer dubbeltelling vermijden + . . Set Detail2=$G(^HULP($zobjval(,1,0,0,1),Label1,HFPRNr),Detail2) + . . Set $P(Detail2,"\",4)=$P(Detail2,"\",4)+HFQty + . . Set ^HULP($zobjval(,1,0,0,1),Label1,HFPRNr)=Detail2 + ; Sorteren + Set HFPRNr="" + For Set HFPRNr=$O(^HULP($zobjval(,1,0,0,1),Label1,HFPRNr)) Quit:HFPRNr="" Do + . Set Rec="",$P(Rec,"\",10)=^HULP($zobjval(,1,0,0,1),Label1,HFPRNr) + . Set SortKey=$J($P(Rec,"\",10),3)_$J($P(Rec,"\",11),2)_$TR($J($P(Rec,"\",12),7,1)," ",0) ; Sort = Kleur_RugHoogte_Breedte + . Set ^HULP($zobjval(,1,0,0,1),Label2,SortKey)=Rec + ; Lineariseren + Set Key="",VolgNr=0 + For Set Key=$O(^HULP($zobjval(,1,0,0,1),Label2,Key)) Quit:Key="" Do + . Set ^HULP($zobjval(,1,0,0,1),Label3,$I(VolgNr))=^HULP($zobjval(,1,0,0,1),Label2,Key) + ; Output + ; Basis + 10: RugKleur \ RugHoogte \ BreedteRug \ Aantal \ Opmerking \ HFPRNr \ KortTekst + Quit:'$D(^HULP($zobjval(,1,0,0,1),Label3)) + Do INIT^vhLISTO("HATBXLEAN","STAALRUGOVERZICHT",.PLD) + Set PLD("HALUX")="" + Set PLD(1)=$NA(^HULP($zobjval(,1,0,0,1),Label3)) + Set PLD(5)=77 + Set PLD(10)="Class("_##class(BL.PPS.TBX.DocsV1).%ClassName(1)_").StaalRugOverzichtCB" + Set PLD(11)="Overzicht TBX STALENRUG\Lijn:"_$zobjval(,8,0,0,8)_" Batch:"_$zobjval(,2,0,0,2) + Set (%MemTOENr,%MemDossier)="" + Do PRINT^OUTPUT(.PLD,$S($zobjval(,3,0,0,3):"S",1:"P"),"S","BL") + Kill %MemDossier,%MemTOENr + Quit +zStaalRugOverzichtCB(Ref) Quit:$L(Ref)=1 "" + Quit "BL\;1" +zTelMagazijnStuks(PRNr,QtyNodig,NaarBovenAfronden,DimBrut) New D,Q,U + Set D="\",Q="K",U=";" + Quit $$TELMAGST^MRP(PRNr,QtyNodig,NaarBovenAfronden,DimBrut) ; ,DimNet) --> DimNet wordt niet gebruikt +zTransform2Bak(%this,Label1,Label2) New Done,VolgNr,VolgNrBak,PrevVolgNr,BakPos,BakNr + Set Done=0 + Set VolgNr="" + Set VolgNr=$O(^HULP($zobjval(,1,0,0,1),Label1,VolgNr)) Set:VolgNr="" Done=1 + Set VolgNrPrev="" + Set VolgNrBakStart="" + Set BakQty=0 + Set BakNr="" + For Do Quit:Done + . Set:VolgNrBakStart="" VolgNrBakStart=VolgNr + . Set VolgNrGVPEnd=$$TryGVP(VolgNr) + . If VolgNrGVPEnd Do + . . If BakQty Do + . . . Do BldBak(VolgNrBakStart,VolgNrPrev,BakQty) + . . Do BldGVP(VolgNr,VolgNrGVPEnd) + . . Set VolgNr=VolgNrGVPEnd + . . Set VolgNrBakStart="" + . . Set BakQty=0 + . Else If $I(BakQty)=5 Do + . . Do BldBak(VolgNrBakStart, VolgNr,BakQty) + . . Set VolgNrBakStart="" + . . Set BakQty=0 + . Set VolgNrPrev=VolgNr + . Set VolgNr=$O(^HULP($zobjval(,1,0,0,1),Label1,VolgNr)) Set:VolgNr="" Done=1 + If BakQty Do ; rest overbrengen + . Do BldBak(VolgNrBakStart, VolgNrPrev,BakQty) + Quit +BldBak(From, To, BakQty) + New VolgNr,I,Rec + Set VolgNr=To + Set BakNr=BakNr+1 + Set Ref=$J(BakNr,4) + For I=1:1:BakQty Do + . Set Rec=^HULP($zobjval(,1,0,0,1),Label1,VolgNr) + . Set $P(Rec,"\",19)="B"_BakNr + . Set $P(Rec,"\",20)=Ref + . Set Ref="" + . Set ^HULP($zobjval(,1,0,0,1),Label2,$O(^HULP($zobjval(,1,0,0,1),Label2,""),-1)+1)=Rec + . Set VolgNr=$O(^HULP($zobjval(,1,0,0,1),Label1,VolgNr),-1) + Quit +BldGVP(From, To) + New Rec,PRNr,GVP + Set Rec=^HULP($zobjval(,1,0,0,1),Label1,From) + Set PRNr=$P(^HULP($zobjval(,1,0,0,1),Label1,From),"\",17) + Set GVP=$$Get^PRODUKT(PRNr,"J16") + Set Rec=^HULP($zobjval(,1,0,0,1),Label1,VolgNr) + Set $P(Rec,"\",19)="D"_PRNr + Set $P(Rec,"\",20)="Doos V"_GVP + Set ^HULP($zobjval(,1,0,0,1),Label2,$O(^HULP($zobjval(,1,0,0,1),Label2,""),-1)+1)=Rec + Quit +TryGVP(VolgNr) + New PRNr,KVP,GVP,NVP,Done + Set PRNr=$P(^HULP($zobjval(,1,0,0,1),Label1,VolgNr),"\",17) + Quit:PRNr'?4.7N "" + Set KVP=$$Get^PRODUKT(PRNr,"J14") + Set NVP=$$Get^PRODUKT(PRNr,"J15") + Set GVP=$$Get^PRODUKT(PRNr,"J16") + If (KVP=1)||(NVP=1)||(GVP=1) Quit "" + Set Done=0 + For Do Quit:Done + . Set GVP=GVP-1 + . If GVP=0 Set Done=1 Quit + . Set VolgNr=$O(^HULP($zobjval(,1,0,0,1),Label1,VolgNr)) Set:VolgNr="" Done=1 Quit:Done + . If PRNr'=$P(^HULP($zobjval(,1,0,0,1),Label1,VolgNr),"\",17) Set Done=1 Quit + If 'GVP Quit VolgNr + Quit "" +zVoegRelingToeAanDocument(%this,Nr,Reling,Document,Aantal,ToeDos,Lengte) public { Set Verpakking = Reling.GeefVerpakking() + Set RelingKleur = Reling.GeefKleur() + If (Verpakking = ##class(DOM.PM.enu.Verpakking).Industrie()) { + Set Verpakking = "" + } + Do Document.GeefKolom(1).Insert(Nr) + Do Document.GeefKolom(2).Insert(ToeDos) + Do Document.GeefKolom(3).Insert(RelingKleur) + Do Document.GeefKolom(4).Insert(Lengte) + Do Document.GeefKolom(5).Insert(Verpakking) + Do Document.GeefKolom(6).Insert(Aantal) + Do Document.GeefKolom(7).Insert(Reling.GeefKorttekst()) } +zZaagCB(Ref) New TOENr,Fmt,Rec + Quit:$L(Ref)=1 "" Set Rec=@Ref + Set TOENr=$P(Rec,"\",3) + Set Fmt="BL\;1" + Set:%MemTOENr'=TOENr&(%MemTOENr'="") Fmt="BR\;1" + Set %MemTOENr=TOENr + Quit Fmt +zZaagChk(%this,oQ) public { Quit:oQ.DeelAantal>1 0 ; Slechts 1 keer voorkomen + Set PRNr=oQ.ProductGetObjectId() + Quit:..IsSpoel(PRNr) 0 + Set ODSP=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"ODSP")) ; Onderdelen Special + Quit ODSP'="F" } +zZaagLijst(%this,BatchID,BatchList) public { ; Sorteren + Set Label="Z" + Set rs=##class(%Library.ResultSet).%New("BL.PPS.TBX.Sequencer:GetSequence") + Set sc=rs.Execute($zobjval(,2,0,0,2)) + Set Count=0 + For Quit:'rs.Next() Do + . Set oQ=##class(DS.PPS.TBX.Queue).%OpenId(rs.Data("ID")) + . Quit:oQ.Status="PB" ; sequencelijnen met status "PB" worden overgeslagen + . Quit:'..ZaagChk(oQ) + . Set Rec=..ZaagOne(..BldBasisFromQueue(oQ)) + . Set:$L(Rec) ^HULP($zobjval(,1,0,0,1),Label,$I(Count))=Rec + ; Basis + 10: Kleurbodem, 11:InterneBreedte, 12:LadeDiepte, 13:RugHoogte, 14:NettoBreedteRug, 15:NettoBreedteBodem, 16:NettoHoBodem, 17:NettoHoRug 18:Opmerking + ; Output + Quit:'$D(^HULP($zobjval(,1,0,0,1),Label)) 0 + Do INIT^vhLISTO("HATBXLEAN","ZAAG",.PLD) + Set PLD("HALUX")="" + Set PLD(1)=$NA(^HULP($zobjval(,1,0,0,1),Label)) + Set PLD(5)=76 + Set PLD(10)="Class("_##class(BL.PPS.TBX.DocsV1).%ClassName(1)_").ZaagCB" + Set PLD(11)="TBX ZAAG\Lijn:"_$zobjval(,8,0,0,8)_" Batch:"_$zobjval(,2,0,0,2) + Set %MemTOENr="" + Do PRINT^OUTPUT(.PLD,$S($zobjval(,3,0,0,3):"S",1:"P"),"S","BL") + Kill %MemTOENr + Quit Count } \ No newline at end of file Index: BL/PPS/TBX/MultiProcessor.cls.xml =================================================================== diff -u -r734 -r901 --- BL/PPS/TBX/MultiProcessor.cls.xml (.../MultiProcessor.cls.xml) (revision 734) +++ BL/PPS/TBX/MultiProcessor.cls.xml (.../MultiProcessor.cls.xml) (revision 901) @@ -1,9 +1,10 @@ - + +1 1 BL.PPS.TBX.LabelProcessor -62038,51014.998719 +62138,28950.615337 0 @@ -18,38 +19,11 @@ +1 labelprinter:BL.Sys.LabelPrinter %Boolean - - - - -This method gets calles for every label. the label should be passed by reference -to allow the processor to modify the label. -Override this method to actually do something useful -label:BL.PPS.TBX.sub.pxLabelV1 -%Boolean - - - + + Index: BL/PPS/TBX/LijstDefinities/RelingLijstDefinitie.cls.xml =================================================================== diff -u -r734 -r901 --- BL/PPS/TBX/LijstDefinities/RelingLijstDefinitie.cls.xml (.../RelingLijstDefinitie.cls.xml) (revision 734) +++ BL/PPS/TBX/LijstDefinities/RelingLijstDefinitie.cls.xml (.../RelingLijstDefinitie.cls.xml) (revision 901) @@ -1,9 +1,9 @@ - + 1 %RegisteredObject -62081,56918.465928 +62137,59541.060867 0 @@ -25,8 +25,9 @@ Set Kolom3 = ##class(TECH.Print.Kolommen.KolomDefinitie).%New("Kleur",,##class(TECH.Print.Kolommen.TekstType).String(),##class(TECH.Print.Kolommen.TekstUitlijning).Rechts()) Set Kolom4 = ##class(TECH.Print.Kolommen.KolomDefinitie).%New("Lengte",,##class(TECH.Print.Kolommen.TekstType).String(),##class(TECH.Print.Kolommen.TekstUitlijning).Rechts()) Set Kolom5 = ##class(TECH.Print.Kolommen.KolomDefinitie).%New("VPK",,##class(TECH.Print.Kolommen.TekstType).String(),##class(TECH.Print.Kolommen.TekstUitlijning).Rechts()) - Set Kolom6 = ##class(TECH.Print.Kolommen.KolomDefinitie).%New("Aantal",,##class(TECH.Print.Kolommen.TekstType).String(),##class(TECH.Print.Kolommen.TekstUitlijning).Rechts()) - Set Kolom7 = ##class(TECH.Print.Kolommen.KolomDefinitie).%New("Product",25,##class(TECH.Print.Kolommen.TekstType).String(),##class(TECH.Print.Kolommen.TekstUitlijning).Rechts()) + Set Kolom6 = ##class(TECH.Print.Kolommen.KolomDefinitie).%New("^",,##class(TECH.Print.Kolommen.TekstType).String(),##class(TECH.Print.Kolommen.TekstUitlijning).Rechts()) + Set Kolom7 = ##class(TECH.Print.Kolommen.KolomDefinitie).%New("Aant",,##class(TECH.Print.Kolommen.TekstType).String(),##class(TECH.Print.Kolommen.TekstUitlijning).Rechts()) + Set Kolom8 = ##class(TECH.Print.Kolommen.KolomDefinitie).%New("Product",25,##class(TECH.Print.Kolommen.TekstType).String(),##class(TECH.Print.Kolommen.TekstUitlijning).Rechts()) // verwijdert eventuele oude definities Do DocumentType.ClearDocument() @@ -39,11 +40,12 @@ Do DocumentType.VoegKolomDefinitieToe(Kolom5) Do DocumentType.VoegKolomDefinitieToe(Kolom6) Do DocumentType.VoegKolomDefinitieToe(Kolom7) + Do DocumentType.VoegKolomDefinitieToe(Kolom8) // sla het documenttype op Do DocumentType.SaveDocument() ]]> - + Index: BL/PR/GA/impl/TandemBoxRecalcBS.cls.xml =================================================================== diff -u -r734 -r901 --- BL/PR/GA/impl/TandemBoxRecalcBS.cls.xml (.../TandemBoxRecalcBS.cls.xml) (revision 734) +++ BL/PR/GA/impl/TandemBoxRecalcBS.cls.xml (.../TandemBoxRecalcBS.cls.xml) (revision 901) @@ -1,9 +1,9 @@ - + 1 BL.PR.GA.TandemBoxRecalc -62112,62244.644263 +62125,37930.566182 0 @@ -290,5 +290,5 @@ ]]> - + Index: BL/Prod/sub/pxVoorraadIdentificatie.cls.xml =================================================================== diff -u -r734 -r901 --- BL/Prod/sub/pxVoorraadIdentificatie.cls.xml (.../pxVoorraadIdentificatie.cls.xml) (revision 734) +++ BL/Prod/sub/pxVoorraadIdentificatie.cls.xml (.../pxVoorraadIdentificatie.cls.xml) (revision 901) @@ -1,10 +1,10 @@ - + %VHMacro 1 %RegisteredObject,%XML.Adaptor -61894,32075.028487 +62133,57376.136374 0 @@ -100,12 +100,17 @@ Set ..FSCCode=Product.FSCHout Do ..FSCLogoURL() Set ..LeveranciersReferentie=$$$Trim(ProductPrijs.LeveranciersReferentie) - Set BasisType=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TB",PRNr,"BasisType")) - Set ..BasisType=$S(BasisType?1"BODEM".E:"BODEM", BasisType?1"RUG".E:"RUG", 1:BasisType) - Set ..BasisTypeOms=$S(..BasisType=BasisType:"", 1:BasisType) - Set ..Kleur=$$ListToPieces^vhLib(##class(Prod.Kenmerk.DataDefinitie).Get("TB",PRNr,"Kleur")," / ") - Do ..Afmeting() + Set BasisType=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TB",PRNr,"BasisType"),1) + If BasisType="HOEKKAST" { + Do ..HoekKastLade(BasisType) + } + Else { + Set ..BasisType=$S(BasisType?1"BODEM".E:"BODEM", BasisType?1"RUG".E:"RUG", 1:BasisType) + Set ..BasisTypeOms=$S(..BasisType=BasisType:"", 1:BasisType) + Do ..ZetKleur() + Do ..ZetAfmeting() + } Quit $$$OK ]]> @@ -121,23 +126,55 @@ ]]> - + +BasisType:%String + + + + + + + +0) ..Afmeting=..Afmeting_$S($L(..Afmeting):" ",1:"")_"B"_(BreedteIntern-75) } - If $E(..BasisType,1,3)="RUG"!(..BasisType="RUGSTRK"){ + ElseIf ($E(..BasisType,1,3)="RUG")||(..BasisType="RUGSTRK") { Set RugHoogte=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TB",PRNr,"RugHoogte"),1) Set ..Afmeting=$Case(RugHoogte,"N":69,"M":84,"K":116,"B":135,"C":167,"D":199,:"") } + Quit ]]> - + FishEye: Tag 901 refers to a dead (removed) revision in file `BL/Prod/Kenmerk.cls.xml'. FishEye: No comparison available. Pass `N' to diff? Index: BL/MB/UGLYPicking/Aventosbak/Aventosbak.cls.xml =================================================================== diff -u -r734 -r901 --- BL/MB/UGLYPicking/Aventosbak/Aventosbak.cls.xml (.../Aventosbak.cls.xml) (revision 734) +++ BL/MB/UGLYPicking/Aventosbak/Aventosbak.cls.xml (.../Aventosbak.cls.xml) (revision 901) @@ -1,10 +1,10 @@ - + %Prod.Product,BL.Sys.Proxy,BL.Sys.FOP.Common 1 %RegisteredObject -62070,39927.487664 +62145,48921.462698 61759,38146.826578 0 @@ -477,7 +477,7 @@ 1 - + Index: BL/PPS/TBX/MultiProcessorOF.cls.xml =================================================================== diff -u --- BL/PPS/TBX/MultiProcessorOF.cls.xml (revision 0) +++ BL/PPS/TBX/MultiProcessorOF.cls.xml (revision 901) @@ -0,0 +1,30 @@ + + + + +De verschillende processoren worden gecombineerd met een OF relatie +1 +BL.PPS.TBX.MultiProcessor +62137,71318.123735 +0 + + + +Combinatie dmv OF +label:BL.PPS.TBX.sub.pxLabelV1 +%Boolean + + + + + + Index: BL/PR/GA/TB/tmpDev2.mac.rou =================================================================== diff -u --- BL/PR/GA/TB/tmpDev2.mac.rou (revision 0) +++ BL/PR/GA/TB/tmpDev2.mac.rou (revision 901) @@ -0,0 +1,531 @@ +#include PRGACNTs + /* + // +-+-+-+-+-+-+-+-+-+-+-+-+ + // + TBX - TandemBox + + // +-+-+-+-+-+-+-+-+-+-+-+-+ + // + // [ DEEL 2 ] + */ + +WSTB ; This is a test method + New WS,WSLn + Set WS=##class(WS.TBX.Order).%New() + Set WSLn=##class(WS.TBX.EM.OrderLijn).%New() + Set WSLn.ItemKL="MG" ;"IN" ; + Set WSLn.ItemLT="D" + Do WS.Lijnen.SetAt(WSLn,1) + Do WS.CalcPricesWeb() + Set WS="" ; Close + Quit + + +BuildFromWS ; Parameters: WS,Opties + Quit:('WS) + Quit:(WS.Lijnen.Count()="") + d TTraceW("WS: Begin BuildFromWS - ID="_WS.mID) + ;d TTraceW("WS: Opties:"_$G(Opties)_" condition No Prices calc:"_($G(Opties)'["PRS=1;")) + new sDbg Set sDbg="" + + New dsID,Result,Templ,arKDtl,lbDomLU,sDomVERW,sDomKLNr + New arValidWS + Set lbDomLU=WS.DomainLookUp(WS.WebDomain,$LB("VERW","KLNR")) + Set sDomVERW=$LG(lbDomLU,1) + Set sDomKLNr=$LG(lbDomLU,2) + Set Result=$$bfwTemplateViaLadeKL(..GetKlantBeperkDesign(WS.KLNummer,sDomVERW)) ; (.Templ) + If '$G(Templ) Do Quit + . Do bfwMarkAllError + . d TTraceW(Result_" "_sDbg) + ; Else : + d DbgAdd("Templ",Templ) + ;d DbgAdd("Templ.ProdID",Templ.ProductGetObjectId()) + ;d TTrace("WSOrd= "_$C(13,10)_$$ExportXMLGAProd^WV(Templ.Product,"No Product")) + Do bfwCalcWSLijnen + d TTraceW("Result=OK: "_sDbg) + ;d WL^vhDBG("Tijd einde BldFrWS : "_$$RestartTimer^vhLib) + Quit +bfwTemplateViaLadeKL(BeperkDesignCode) ; (Templ) + New klID,lbTPs,TPCode,TemplateID,blnCheckDesign ; "dsID" is declared at a higher level + Set klID=WS.Lijnen.GetNext("").ItemKL + Set:(klID="BE") klID="BA" + d DbgAdd("KL",klID) + Set dsID=WS.Lijnen.GetNext("").ItemDS ; Get design from first line - it shoud be the same for all other + If dsID="" Do + . Set blnCheckDesign=(BeperkDesignCode="") + . Set dsID=..DesignFromLadeKleur(klID,BeperkDesignCode) + Else If $L(BeperkDesignCode) Do ; !!! TEMPORARY PATCH for F-Design !!! (added by WimV on 13/03/2009) + . Set blnCheckDesign=0 + . Set dsID=..DesignFromLadeKleur(klID,BeperkDesignCode) + Else Do + . Set blnCheckDesign=0 + Quit:(dsID="") "Geen Design gevonden" + d DbgAdd("DS",dsID) + ; Alleen "Standaard Design" toegelaten. + Quit:(blnCheckDesign)&&($LG(..BTDep("TBDesign","TBDesignCode",dsID),1)'?1(1"S",1"B")) "Geen Standaard Design" + Set lbTPs=..TPCodesFromDesign(dsID) + Set TPCode=$LG(lbTPs,1) + Quit:(TPCode="") "TemplateCode niet gevonden" + d DbgAdd("TPCode",TPCode) + Set TemplateID=$LG(##class(Prod.GAData.Template).IDsViaCode(TPCode),1) + Quit:(TemplateID="") "TemplateID niet gevonden" + d DbgAdd("TemplateID",TemplateID) + Set Templ=##class(Prod.GAData.Template).%OpenId(TemplateID) + Quit "" +bfwMarkAllError + New i + Set i="" + For Set WSLn=WS.Lijnen.GetNext(.i) Quit:(i="") Do + . Set WSLn.KostPrijs="ERROR" + Quit +bfwCalcWSLijnen + New Prod,i,arValidPR,Som,SomAant,WSLn,OrdStdL,arWSStdL,KLReductie,KLKorting,KLNrProd + ;n arORefs + Do bfwCalcProductsInit + Set i="" + For Set WSLn=WS.Lijnen.GetNext(.i) Quit:(i="") Do + . ;do ChronoReset^vhLib() + . Set Prod=$$bfwProductFromWSLijn(WSLn,i,WS.NietMeeleveren) + . Quit:(Prod="") + . Do bfwCalcProduct(Prod,i) + . ;d WL^vhDBG("Tijd voor CalcProduct "_i_$C(9)_" : "_$$ChronoStepFMT^vhLib) + . Set Prod="" ; Close Prod anyway + Do bfwCalcProductsAfter + Set Templ="" ; Close + Quit + + /* + ONDERSTAAND GEDEELTE VAN DE CODE (in deze method) MOET SYNCHROON BLIJVEN MET DE CODE OP VOLGENDE SERVERS + - CACHE01 : klasse BL.Flow.Offerte.ProductGAData --> voor import into Admin + calc vanuit Excel + - CACHE02 : klasse BL.Prod.GAData.TBXLadeConvert --> voor import into (Dev-)Admin + calc vanuit Excel + - routine BL.PR.GA.TB.tmpDev2.MAC --> voor berekening WSOrder + */ + +bfwProductFromWSLijn(WSLn,i,pdlNietMee) ; Returns Prod (kan zowel ORef als string value zijn) + ; Maakt een GAData.Product object voor WSLn + If (WSLn.Exclude=1) Do Quit "" + Else If WSLn.ItemSTDL=$$$tbxCodeStdLade Do Quit $$$tbxCodeStdLade + Set ..Qty=WSLn.Qty + Set WSLn.ItemDS=dsID + Set WSLn.GAMeta="TBX" + Do ..ResetTB() + Do bfwBTItemsFromWSLijn + ; Data van blTBox naar GAData.Product + New Prod + Set Prod=##class(Prod.GAData.Product).BuildFromTemplate(Templ.%Id()) + Do Prod.TemplateTmpInit() + Do Prod.AutosFromTemplate(,"FILL") + Do:(KLNrProd) Prod.KlantSetObjectId(KLNrProd) + Do ..BTValues.SetAt(Prod.TemplateCode,"TemplateCode") + Do bfwSetNietMeeItems(pdlNietMee) + Do bfwFBevestNML + Do bfwResetNMItemsBinnenlade ; Reling/boxside worden sowieso gemonteerd op een binnenlade + Do ..BTValuesToProduct(Prod) + Do ..BWValuesToProduct(Prod) + Do ..KMValuesToProduct(Prod,"TBR") + Quit Prod + +bfwBTItemsFromWSLijn + New lbDSCodes,DSCode,KFront,KRug,KBxs + ;d WLIP^vhDBG(97,"*"_$L(WSLn.ItemRK)_"*"_" - "_WSLn.ItemRK) + Set DSCode=$S($L(WSLn.ItemDS):$LG(..BTDep("TBDesign","TBDesignCode",WSLn.ItemDS),1), 1:"") + Set KFront=$S($L(WSLn.ItemRK):$LG(..BTDep("TBRelingKleur","TBFrontKleur",WSLn.ItemRK),1), 1:"") + Set KRug =$S($L(WSLn.ItemDS):$LG(..BTDep("TBDesign","TBRugKleur",dsID),1), 1:"") + If WSLn.ItemKX="" Do + . Set KBxs=$S($L(WSLn.ItemDS):$LG(..BTDep("TBDesign","TBBoxsideKleur",dsID),1), 1:"") + . Set WSLn.ItemKX=KBxs ; Set to WSLijn + Else Do + . Set KBxs=WSLn.ItemKX + Do ..BTValues.SetAt(WSLn.ItemDS ,"TBDesign") + Do ..BTValues.SetAt(DSCode ,"TBDesignCode") + Do ..BTValues.SetAt(WSLn.ItemLT ,"LadeCode") + Do bfwBTItemsLadeCode(WSLn.ItemLT) + Do ..BTValues.SetAt($S(..BTValues.GetAt("TBLadeType")="B":"Z", 1:WSLn.ItemFB) ,"TBFBevestiging") + Do ..BTValues.SetAt(WSLn.ItemCB ,"TBCBreedte") + Do ..BTValues.SetAt(WSLn.ItemWD ,"TBWandDikte") + Do ..BTValues.SetAt($S(WSLn.ItemOPVL["L":25, 1:0) ,"OpvullijstLi") + Do ..BTValues.SetAt($S(WSLn.ItemOPVL["R":25, 1:0) ,"OpvullijstRe") + Do ..BTValues.SetAt(..DFLMinTolerantie(WSLn.ItemWD) ,"MinTolerantie") ; $S(+WSLn.ItemWD=0:0, 1:1) + Do ..BTValues.SetAt(WSLn.ItemLD ,"TBLadeDiepte") + Do ..BTValues.SetAt(WSLn.ItemDK ,"TBDraagKracht") + Do ..BTValues.SetAt(WSLn.ItemKB ,"TBBodemKleur") + Do ..BTValues.SetAt(WSLn.ItemRK ,"TBRelingKleur") + Do ..BTValues.SetAt(KFront ,"TBFrontKleur") + Do ..BTValues.SetAt($S(WSLn.ItemKL="BE":"BA", 1:WSLn.ItemKL) ,"TBLadeKleur") + Do ..BTValues.SetAt(KRug ,"TBRugKleur") + Do ..BTValues.SetAt(WSLn.ItemBM ,"TBBlumotion") + + /* + ; Temporary work-around for GlazenBoxside, until the web-wizard also uses ItemKV (switched off by WimV on 30/03/2009) + If 1 && (WSLn.ItemBX?1(1"BZ",1"BF",1"BC")) Do + . New KVul + . Set KVul=$Case(WSLn.ItemBX, "BZ":"FZ", "BF":"FG", "BC":"FC", :ERROR) + . Do ..BTValues.SetAt("BG" ,"TBBoxSide") + . Do ..BTValues.SetAt(KBxs ,"TBBoxsideKleur") + . Do ..BTValues.SetAt(KVul ,"TBVulstukKleur") + Else Do + . Do ..BTValues.SetAt(WSLn.ItemBX ,"TBBoxSide") + . Do ..BTValues.SetAt(WSLn.ItemKX ,"TBBoxsideKleur") + . Do ..BTValues.SetAt(WSLn.ItemKV ,"TBVulstukKleur") + */ + Do ..BTValues.SetAt(WSLn.ItemBX ,"TBBoxSide") + Do ..BTValues.SetAt(KBxs ,"TBBoxsideKleur") ; WSLn.ItemKX + Do ..BTValues.SetAt(WSLn.ItemKV ,"TBVulstukKleur") + + Do ..BTValues.SetAt(WSLn.ItemSB ,"TBStabilisator") + Do ..BTValues.SetAt("Z" ,"TBStalenRug") + Do ..BTValues.SetAt($P(WSLn.ItemSPZK,";",1) ,"TBSPZijkant") + + #define SPZkOpMaat(%v) (%v?1(1"M".E,1"SI".E)) + + If $$$SPZkOpMaat($P(WSLn.ItemSPZK,";",1)) Do ; Spoelbak zijkant op maat + . Do ..BTValues.SetAt($P(WSLn.ItemSPZK,";",2) ,"SpoelbakZkLi") + . Do ..BTValues.SetAt($P(WSLn.ItemSPZK,";",3) ,"SpoelbakZkRe") + . Do ..BTValues.SetAt($P(WSLn.ItemSPZK,";",4) ,"SpoelbakZkMi") + . ; SpoelbakBreedte (SPBR) wordt berekend in Prod.BWValuesToProduct() + + ;d WLIP^vhDBG(97,WSLn.ItemSPZK_" SPZK LI: "_..BTValues.GetAt("SpoelbakZkLi")_" SPZK RE: "_..BTValues.GetAt("SpoelbakZkRe")) + + If ($L(WSLn.ItemVPK)) Do + . Do ..BTValues.SetAt(WSLn.ItemVPK ,"Verpakking") + . Do:(WSLn.ItemVPK?1(1"C",1"P",1"Z",1"A")) bfwUpdateNMItemsBulk + + Do:($L(WSLn.ItemBGRP) ) ..BTValues.SetAt(WSLn.ItemBGRP ,"TBBinnenGreep") + Do:('$L(WSLn.ItemBGRP)) ..BTValues.SetAt($S(WSLn.ItemLT?1(1"D/Z",1"C/Z"):"H",1:""),"TBBinnenGreep") + + Do ..BTValues.SetAt($S(WSLn.ItemFS="":"A", 1:WSLn.ItemFS) ,"TBFrontSteun") + Do ..BTValues.SetAt($S(WSLn.ItemASM="":"0", 1:WSLn.ItemASM) ,"TBMat") + Do ..BTValues.SetAt(WSLn.ItemDWV ,"TBDwarsVerdeling") + Do ..BTValues.SetAt(WSLn.ItemOLP ,"OrgaluxProduct") + Do bfwExtrasFromGlobal(DSCode) + Quit +bfwBTItemsLadeCode(LCodeID) + ; Uit LadeCode volgen deze vijf properties: + ; TBKlasse - TBGlijderType - TBLadeType - TBZijwand - TBRugHoogte + New LCode,Key,TBVal + Set LCode=##class(Prod.GAMeta.BT.LadeCode).%OpenId(LCodeID) + Quit:('LCode) + Set Key="" + For Set TBVal=LCode.TBKenm.GetNext(.Key) Quit:(Key="") Do + . Do ..BTValues.SetAt(TBVal,Key) + Set LCode="" ; Close + Quit +bfwSetNietMeeItems(pdlNietMee) ; Niet Meeleveren is gedefinieerd op Hoofding-niveau en niet op Lijn-niveau + Quit:(pdlNietMee="") + New lbNietMee,i + Set lbNietMee="" + Set:(pdlNietMee["NMCP" ) lbNietMee=lbNietMee_$LB("NMCorpusProfiel") + Set:(pdlNietMee["NMRL" ) lbNietMee=lbNietMee_$LB("NMZijReling") + Set:(pdlNietMee["NMAK" ) lbNietMee=lbNietMee_$LB("NMAfdekkap") + Set:(pdlNietMee["NMBDS" ) lbNietMee=lbNietMee_$LB("NMBodemsteun") + Set:(pdlNietMee["NMBMM" ) lbNietMee=lbNietMee_$LB("NMBlumoMeenemer") + Set:(pdlNietMee["NMBMB" ) lbNietMee=lbNietMee_$LB("NMBlumoBehuizing") + Set:(pdlNietMee["NMFB" ) lbNietMee=lbNietMee_$LB("NMFBevestiging") + Set:(pdlNietMee["NMBS" ) lbNietMee=lbNietMee_$LB("NMBoxSide") + Set:(pdlNietMee["NMOVL" ) lbNietMee=lbNietMee_$LB("NMOpvullijst") + Set:(pdlNietMee["NMSPDL") lbNietMee=lbNietMee_$LB("NMSPDwarsLatjes") + Set:(pdlNietMee["NMASM" ) lbNietMee=lbNietMee_$LB("NMAntislipmat") + For i=1:1:$LL(lbNietMee) Do:(1) ..BTValues.SetAt(1,$LI(lbNietMee,i)) + + ; WEL Meeleveren ("WM...") + Set lbWelMee="" + Set:(pdlNietMee["WMCP" ) lbWelMee=lbWelMee_$LB("NMCorpusProfiel") + Set:(pdlNietMee["WMRL" ) lbWelMee=lbWelMee_$LB("NMZijReling") + Set:(pdlNietMee["WMAK" ) lbWelMee=lbWelMee_$LB("NMAfdekkap") + Set:(pdlNietMee["WMBDS" ) lbWelMee=lbWelMee_$LB("NMBodemsteun") + Set:(pdlNietMee["WMBMM" ) lbWelMee=lbWelMee_$LB("NMBlumoMeenemer") + Set:(pdlNietMee["WMBMB" ) lbWelMee=lbWelMee_$LB("NMBlumoBehuizing") + Set:(pdlNietMee["WMFB" ) lbWelMee=lbWelMee_$LB("NMFBevestiging") + Set:(pdlNietMee["WMBS" ) lbWelMee=lbWelMee_$LB("NMBoxSide") + Set:(pdlNietMee["WMOVL" ) lbWelMee=lbWelMee_$LB("NMOpvullijst") + Set:(pdlNietMee["WMSPDL") lbWelMee=lbWelMee_$LB("NMSPDwarsLatjes") + Set:(pdlNietMee["WMASM" ) lbWelMee=lbWelMee_$LB("NMAntislipmat") + For i=1:1:$LL(lbWelMee) Do:(1) ..BTValues.SetAt(0,$LI(lbWelMee,i)) + Quit +bfwFBevestNML ; FrontBevestiging Niet Meeleveren bij Lade ZONDER FB (excl. Binnenlade) ! + If (..BTValues.GetAt("TBFBevestiging")="NM") || ((..BTValues.GetAt("TBFBevestiging")="Z")&&(..BTValues.GetAt("TBLadeType")'="B")) Do + . Do ..BTValues.SetAt("S","TBFBevestiging") + . Do ..BTValues.SetAt(1,"NMFBevestiging") + Quit +bfwUpdateNMItemsBulk + New Key,dummy + Set Key="NM" + For Set Key=$O(..LookUp(Key)) Quit:(Key'?1"NM".E) Do + . Quit:(Key?1(1"NMBlumoBehuizing",1"NMAntislipmat")) + . Do:('..BTValues.IsDefined(Key)) ..BTValues.SetAt(1,Key) + ;Do bfwResetNMItemsBinnenlade // de oproep is nu verhuisd naar bfwProductFromWSLijn + Quit +bfwResetNMItemsBinnenlade + ; Binnenlade kan NIET gemonteerd worden zonder Reling, dus NMZijReling terug op 0 zetten + If (..BTValues.GetAt("TBLadeType")="B")&&(..BTValues.GetAt("TBBoxSide")'="ZR") Do ; binnenlade met reling/boxside + . Do ..BTValues.SetAt(0,"NMZijReling") + . Do ..BTValues.SetAt(0,"NMBoxSide") + Quit +bfwExtrasFromGlobal(DSCode) + #define KLDataExtra(%v) $$$GlobalKLData(0,sDomVERW,KLNrProd,%v) + #define DelimByDC(%v) $P(%v,";",$S(DSCode="I":2,1:1)) + Quit:(sDomVERW'="VHEPN") ; Only for safety + Do:($$$DelimByDC($G($$$KLDataExtra("NMAK")))=1) ..BTValues.SetAt(1,"NMAfdekkap") ; KLNrProd <--> WS.KLNummer + Do:($G($$$GlobalKLData(0,sDomVERW,KLNrProd,"SR"))?1"V") ..BTValues.SetAt($$$GlobalKLData(0,sDomVERW,KLNrProd,"SR"),"TBStalenRug") + Set:($G($$$GlobalKLData(0,sDomVERW,KLNrProd,"MATKL1239"))="HA")&&($G(arKenm("TBBodemKleur"))="LGS")&&($G(arKenm("TBLadeDiepte"))?1(1"500")) arKenm("PlaatMat")="HA" ; Bodems Keller gebruiken : "Halux Afgewerkt" i.p.v. "Halux Stroken" // Copied from class BL.Flow.Offerte.ProductGAData for calc. via Excel + Quit + +bfwCalcProductsInit + New i + Set OrdStdL="LoadMeNow" + Set KLNrProd=+$S(sDomVERW'="VHEPN":sDomKLNr, 1:WS.KLNummer) + Set KLKorting=WS.KLKorting ; (waarde in % uitgedrukt) + Set KLReductie=$S(+KLKorting'=0:$J(1-(KLKorting/100),0,4), 1:1) + + // Actieve Acties ophalen. Deze worden lijn per lijn gecontroleerd. Achteraf zal de unie van de ActieCode (op lijnniveau) bewaard worden op het WSOrd (hoofding) niveau. + // (Added by WimV on 17/12/2010) + Set RefDatum=$H + Set Shop=sDomVERW + Set Klant=WS.KLNummer ; Klant-object kan enkel voor VHEPN; bij SFS of andere handels andere implementatie van het klant-object gebruiken (TBD) + + // ActieCodes wissen op WSOrd en WSLijn-niveau + Do:($IsObject(WS.ActieCodesList)) WS.ActieCodesList.Clear() + Set i="" + For Set WSLn=WS.Lijnen.GetNext(.i) Quit:(i="") Do + . ;Do WSLn.ActieCodesList.Clear() ; Vorige implementatie (MAG WEG) + . Do WSLn.WisAlleActieGegevens() + . Set WSLn.ActieKorting="" + + Set ActieveActiesList=##class(APPS.TBXWeb.Actie).GeefActieveActies(RefDatum,Shop,Klant) + Set GeldigeActiesVoorOrder=ActieveActiesList.%New() + + d WL^vhDBG("Check geldige acties : ") + Set itActieveActies=##class(TECH.ListIterator).%New(ActieveActiesList) + While itActieveActies.HasNext() { + Set Actie=itActieveActies.Next() + If Actie.IsGeldigOrder(WS) { + d WL^vhDBG("Geldige actie : "_Actie.ActieCode) + Do GeldigeActiesVoorOrder.Insert(Actie) + ;Do WS.VoegToeActieCode(Actie.ActieCode) + } + } + + Set (Som,SomAant)=0 + Quit +bfwCalcProduct(Prod,i) + Kill arValidPR + If Prod=$$$tbxCodeStdLade Do + . Do bfwCalcProdStdL ; all params are globally known + Else If $IsObject(Prod) Do + . Do bfwCalcProdViaItems + Else Do + . ; Nothing + Set:(WSLn.KostPrijs'="ERROR") SomAant=SomAant+WSLn.Qty + Merge arValidWS(i)=arValidPR(0) + Quit +bfwCalcProductsAfter + Set WS.TotAantal=$S(SomAant>0:SomAant, 1:"") + Set WS.TotPrijs=$S(Som>0:+$J(Som,0,2), 1:"") + Do WS.VerzamelActieCodesVanLijnen() + d TTrace("ValidWS(): "_$$ArrayToText^vhLib("arValidWS")) + Set Prod="" + Set OrdStdL="" + Quit + +bfwCalcProdViaItems + // Binnen de BENELUX wordt met LijstPrijs gewerkt. Buiten de BENELUX bepaalt de verwerker zelf zijn Marge op AKPrijs +#define GenPRNrTBX 89322 +#define MargeHEIN 2.95 +#define MargeLMC 2.33 + // MargeDUPO=1 , berekening via LijstPrijs --> geen +#define MargeDUPO 1 + // MargeHELMY=1, berekening via LijstPrijs --> geen +#define MargeHELMY 1 + // MargeHFLE=1 , berekening via LijstPrijs --> geen +#define MargeHFLE 1 + // MargeMBHO=1 , berekening via LijstPrijs --> geen +#define MargeMBHO 1 + // MargeSFS= ? , berekening via ??? (modified by WimV on 28/02/2011, previous value: 2.8 --> change to MargeSFS active from 01/03/2011) +#define MargeSFS 2.525 + New KPrijsVH,LPrs,VKPrs,VerwMarge,KLNrPrs,PrPiece,GenPRNr,IsBeursUser,IsAnonymousUser + New D,Q,U + Set Q="K",D="\",U=";" + Do Prod.CalcAll() + Kill arValidPR + + Set IsBeursUser=($G(Opties)["PRS=B;") + Set IsAnonymousUser=0 ; ($G(Opties)'["PRS=1;") + + If Prod.ValidatePR(.arValidPR) Do + . Set GenPRNr=Prod.GenerischPRNr() + . Set WSLn.Exclude=0 + . + . // Speciale users --> geen prijsberekening + . If $G(Opties)["PRS=B;" Do Quit ; IsBeursUser + . . Set KLNrPrs=sDomKLNr + . . Set (AKPrs,VKPrs)="99.99" + . Else If $G(Opties)'["PRS=1;" Do Quit ; IsAnonymousUser + . . Set IsAnonymousUser=1 + . . Set (AKPrs,VKPrs)="" + . + . // Else : gewone user --> standaard prijsberekening (zowel AKPrijs als VKPrijs bijhouden) + . Set KPrijsVH=$G(Prod.Cumuls("KPrijs")) + . Set KLNrPrs=$S(sDomVERW'="VHEPN":sDomKLNr, (WS.KLNummer?1.N)&&(WS.KLNummer>0):WS.KLNummer, 1:4645) + . Set AKPrs=$P($$KLANTPR^KPRIJS(KLNrPrs,GenPRNr,,$J(KPrijsVH,0,2)),"\",1) + . Set VKPrs=$$bfwCalcVKPrijsKlant(KPrijsVH,AKPrs) + Else Do + . Set VKPrs="ERROR" + . Set WSLn.Exclude=1 + + ; Fill in WSLn-properties + If (VKPrs>0)||(IsAnonymousUser) Do + . Set WSLn.AKPrijs=AKPrs + . Set WSLn.KostPrijs=VKPrs + . Do:('IsAnonymousUser) bfwZoekGeldigeActiesVoorWSLijn(WSLn,Prod,KLNrPrs,GenPRNr,GeldigeActiesVoorOrder,VKPrs) + . Set Som=Som+(WSLn.Qty*WSLn.KostPrijs) + Else Do + . Set WSLn.AKPrijs="ERROR" + . Set WSLn.KostPrijs="ERROR" + . ;d TTrace("WSOrd ln("_i_"): "_$C(13,10)_$$ExportXMLGAProd^WV(Prod,"No Product")) + . d bfwTranslateErr + Quit + +bfwZoekGeldigeActiesVoorWSLijn(WSLn,Prod,KLNrPrs,GenPRNr,GeldigeActiesVoorOrder,VKPrsNormaal) + Set itActies=##class(TECH.ListIterator).%New(GeldigeActiesVoorOrder) + While itActies.HasNext() { + Set Actie=itActies.Next() + If Actie.IsGeldigProduct(WSLn,Prod) { + + // Bereken ActieKorting + + // Deze code moet verplaatst worden naar ActieSFSCorpusProfielen.BererkenKorting() of zoiets + + ;d WL^vhDBG("Show Cumuls") + ;d WL^vhDBG($$ArrayToText^vhLib("Cumuls(""KPrijs"")",Prod,"Cumuls")) + Set PrijsCP=$G(Prod.Cumuls("KPrijs",2,1,5))+$G(Prod.Cumuls("KPrijs",2,1,6)) ; CP links + CP rechts + Set AKPrsCP=$P($$KLANTPR^KPRIJS(KLNrPrs,GenPRNr,,$J(PrijsCP,0,2)),"\",1) + Set VKPrijsCP=$$bfwCalcVKPrijsKlant(PrijsCP,AKPrsCP) + If VKPrijsCP>0 { + d WL^vhDBG("KPrijs CP : "_VKPrijsCP_" (is berekend via Cumuls)") + Do WSLn.VoegToeActieGegevens(Actie.ActieCode,VKPrijsCP) + } + Else { + // Problemen bij de berekening van de KortingPrijs + Set VKPrijsCP=0 + Do WSLn.VerwijderActieItem(Actie.ActieCode) + } + } + + Set WSLn.ActieKorting=WSLn.BerekenKorting() + Set WSLn.KostPrijs=VKPrsNormaal-WSLn.ActieKorting + } + Quit + +bfwCalcVKPrijsKlant(KPrijsVH,AKPrs) + #define PcLijstPrs 15 + #define PcVkPrsVH 14 + #define HandelAankoopPrijs(%v) $P(%v,"\",$$$PcVkPrsVH) + #define HandelLijstPrijs(%v) $P(%v,"\",$$$PcLijstPrs) + + // Van Hoecke domein + Quit:(sDomVERW="VHEPN") AKPrs + + // BENELUX handels zonder korting, i.e. zonder klantinfo (dus Anonymous) + Quit:(sDomVERW="DUPO" ) $P($$KLANTPR^KPRIJS(KLNrPrs,GenPRNr,,$J(KPrijsVH,0,2)),"\",$$$PcLijstPrs) + Quit:(sDomVERW="HFLE" ) $P($$KLANTPR^KPRIJS(KLNrPrs,GenPRNr,,$J(KPrijsVH,0,2)),"\",$$$PcLijstPrs) + Quit:(sDomVERW="HELMY") $P($$KLANTPR^KPRIJS(KLNrPrs,GenPRNr,,$J(KPrijsVH,0,2)),"\",$$$PcLijstPrs) + + // BENELUX handels met korting, i.e. met klantinfo + New HandelVKPrijs,KPrijsData,HandelVKPrijs + If (sDomVERW="MBHO") { + Set KPrijsData=$$KLANTPR^KPRIJS(KLNrPrs,GenPRNr,,$J(KPrijsVH,0,2)) + Set HandelVKPrijs=$J($$$HandelLijstPrijs(KPrijsData)*KLReductie,0,2) + // Als de "HandelVKPrijs met KLKorting" kleiner dan de HandelAKPrijs, dan wordt de KLKorting volledig ongedaan gemaakt. + If HandelVKPrijs<$$$HandelAankoopPrijs(KPrijsData) { Set HandelVKPrijs=$$$HandelLijstPrijs(KPrijsData) } + } + Quit:(sDomVERW="MBHO") HandelVKPrijs + + // Niet-BENELUX handels (met en zonder korting , i.e. met en zonder klantinfo) + Set VerwMarge=$CASE(sDomVERW, "HEIN":$$$MargeHEIN, "LMC":$$$MargeLMC, "SFS":$$$MargeSFS, :1) ; , "DUPO":$$$MargeDUPO, "HELMY":$$$MargeHELMY, "HFLE":$$$MargeHFLE, "MBHO":$$$MargeMBHO + If sDomVERW="LMC" Do + . If ($G(KLReductie)<(1/$$$MargeLMC)) Set KLReductie=1 ; ( 1 / $$$MargeLMC = 0.4292 ) m.a.w. KLKorting mag niet groter zijn dan de MargeLMC + . Set HandelVKPrijs=$J(AKPrs*VerwMarge*KLReductie,0,2) + Else If sDomVERW="SFS" Do + . If ($G(KLReductie)<(1/$$$MargeSFS)) Set KLReductie=1 ; ( 1 / $$$MargeSFS = 0.3571 ) + . Set HandelVKPrijs=$J(AKPrs*VerwMarge*KLReductie,0,2) + Else Do + . Set HandelVKPrijs=$S((VerwMarge=1):AKPrs, 1:$J(AKPrs*VerwMarge+0.004999,0,2)) ; Opnieuw afronden na VerwMarge-calculatie + + Quit HandelVKPrijs + +bfwTrapCalcPrs + Set HandelVKPrijs="" + Quit + +bfwTranslateErr + New msg + Set msg=Prod.ValidPRArrayToText(.arValidPR,1) ; blnAddInfoNode=1 + Quit + /* + New Key + Set Key="" + For Set Key=$O(arValidPR(0,Key)) Quit:(Key="") Do + . Set DItem=Prod.DataItems.GetAt(Key) + . Set arValidPR(0,Key,"I")=DItem.Get("Oms")_" ("_DItem.Code_") : PRNr="""_DItem.Get("PRNr")_"""" ; _" Kenm="_$$$LCVT(DItem.Get("Kenm")) + Quit + */ + +bfwCalcProdStdL + New VKPrs + If OrdStdL="LoadMeNow" Do ; Execute only once + . Set OrdStdL=$$bfwGetStdLadeOrder(sDomKLNr) ; ($S(sDomVERW="HEIN":sDomKLNr, 1:"")) + . Do:(OrdStdL) OrdStdL.DataArrayFromWS(.arWSStdL) + Set VKPrs="" + Set:(OrdStdL) VKPrs=$$bfwGetPrijsFromMatchLn(WSLn, .arWSStdL) + If 'VKPrs Do + . Set WSLn.KostPrijs="ERROR" + . Set WSLn.Exclude=1 + . Set arValidPR(0,"STDL")=$S(VKPrs["N/A":"StdLade "_VKPrs ,1:"StdL niet gevonden.") + . Set VKPrs="" + Else Do + . Set VKPrs=VKPrs*$G(KLReductie,1) + . Set WSLn.KostPrijs=VKPrs + . Set Som=Som+(WSLn.Qty*VKPrs) + . ;d TTrace("WSOrd ln("_i_"): "_$C(13,10)_"Std Lade") + d WL^vhDBG("Tijd voor StdLade matchLn : "_$$RestartTimer^vhLib) + Quit +bfwGetStdLadeOrder(KLNr) + New wsID + Set wsID=##class(cspBasis.GAProdTBox).WSOrderIDStdLadeViaKLNr(KLNr) + Quit:($L(wsID)) ##class(WS.TBX.Order).%OpenId(wsID) + Quit "" +bfwGetPrijsFromMatchLn(WSLn,arWSStdL) + New i,Prijs,FBVal,AddPrsVal + Set i=$$bfwGetMatchLijnNr + Quit:(i="") "" + Set FBVal=WSLn.ItemFB + Set AddPrsVal=$S(FBVal="":"", 1:OrdStdL.Lijnen.GetAt(i).AddPrs.GetAt("FB_"_FBVal)) + If (AddPrsVal="N/A") Do + . Set Prijs="N/A: FB="_FBVal + . d WL^vhDBG("StdLade N/A: FB="_FBVal) + Else Do + . Set Prijs=$G(arWSStdL("LN",i,"PRIJS")) + . Set:(+Prijs) Prijs=Prijs+AddPrsVal + Quit Prijs +bfwGetMatchLijnNr() + New arWSLn,arMDRow,MatchResult + Do WSLn.DataArrayFromWSLn(.arWSLn) + ;d TTrace("ArWSLn:"_$$ArrayToText^vhLib("arWSLn")) + Set i="" + For Set i=$O(arWSStdL("LN",i)) Quit:(i="") Do Quit:(MatchResult=1) ; (Prijs'="") + . Quit:($G(arWSStdL("LN",i,"LIJNNR"))="") + . Kill arMDRow + . Merge arMDRow=arWSStdL("LN",i) + . Set MatchResult=$$CompareFull^cspBasis.GAProdTBox.tmpDev(.arMDRow,.arWSLn) + . d:(MatchResult=1) TTrace("Match found with line: "_i) ; _$$ArrayToText^vhLib("arMDRow")) + Quit i + +DbgAdd(s,v) + Set sDbg=sDbg_s_"="_v_" ** " + Quit +TTrace(msg) + s:('$D(ClientIP)) ClientIP="192.168.1.97" + d WL^vhDBG("TBox:"_msg) + Quit +TTraceW(msg) + d TTrace(.msg) + ;w msg,! + Quit \ No newline at end of file Index: BL/PPS/TBX/LeanBatch.cls.xml =================================================================== diff -u -r734 -r901 --- BL/PPS/TBX/LeanBatch.cls.xml (.../LeanBatch.cls.xml) (revision 734) +++ BL/PPS/TBX/LeanBatch.cls.xml (.../LeanBatch.cls.xml) (revision 901) @@ -1,10 +1,10 @@ - + BL.Derde.KlantSpecifiek,BL.Derde.LevSpecifiek,%VHMacro 1 %RegisteredObject -62070,40445.190954 +62144,43577.038968 61706,56090.718311 0 @@ -13,7 +13,7 @@ -;1000;5023;1213;3814;1390;1387;1966;4073;1949;4451;6780;3044;2523;4533;6261;11620 +;1000;5023;1213;3814;1390;1387;1966;4073;1949;4451;6780;3044;2523;4533;6261;11620;3670;3814; @@ -522,5 +522,6 @@ ]]> - + + Index: BL/EC/Product.cls.xml =================================================================== diff -u -r734 -r901 --- BL/EC/Product.cls.xml (.../Product.cls.xml) (revision 734) +++ BL/EC/Product.cls.xml (.../Product.cls.xml) (revision 901) @@ -1,12 +1,12 @@ - + Controle van usernaam en wachtwoord + alle bijhorende rechten BL.EC.Common,%Prod.Product,BL.Prod 1 %RegisteredObject -62075,40109.360464 +62157,51760.362713 60207,60266.090772 0 @@ -499,7 +499,7 @@ Criteria:pxCriteriaSet pxFetch - + Index: BL/PPS/TBX/WPZaag/pxWPZaagInfo.cls.xml =================================================================== diff -u -r734 -r901 --- BL/PPS/TBX/WPZaag/pxWPZaagInfo.cls.xml (.../pxWPZaagInfo.cls.xml) (revision 734) +++ BL/PPS/TBX/WPZaag/pxWPZaagInfo.cls.xml (.../pxWPZaagInfo.cls.xml) (revision 901) @@ -1,9 +1,9 @@ - + 1 %RegisteredObject,%XML.Adaptor -61066,39095.379757 +62138,60368.882321 0 @@ -115,7 +115,7 @@ %String - + %String @@ -135,5 +135,5 @@ %String - + Index: BL/PPS/TBX/DocsV1.cls.xml =================================================================== diff -u -r734 -r901 --- BL/PPS/TBX/DocsV1.cls.xml (.../DocsV1.cls.xml) (revision 734) +++ BL/PPS/TBX/DocsV1.cls.xml (.../DocsV1.cls.xml) (revision 901) @@ -1,13 +1,13 @@ - + Production Process Steering - Tandembox Genereert van een Toelevering de verpakkingsdefinitie BL.Derde.KlantSpecifiek,BL.Derde.LevSpecifiek,%Prod.Product,BL.Prod.OptiBox,BL.PPS.TBX.Common,BL.Sys.Toegang,BL.Sys.Proxy,BL.Sys.FOP.Common,vhLib.Macro 1 %RegisteredObject -62116,55755.248186 +62144,59523.134042 60997,54476.941438 0 @@ -645,7 +645,7 @@ Do TipOnLabelProcessor.Init(..LabelDevice, ..LabelLayout) Set SifonLabelProcessor = ##class(BL.PPS.TBX.SifonLabelProcessor).%New(0) Set SpoelbakLabelProcessor = ##class(BL.PPS.TBX.SpoelbakLabelProcessor).%New(0) - Set MultiProcessor = ##class(BL.PPS.TBX.MultiProcessor).%New() + Set MultiProcessor = ##class(BL.PPS.TBX.MultiProcessorEN).%New() Do MultiProcessor.VoegProcessorToe(TipOnLabelProcessor) Do MultiProcessor.VoegProcessorToe(SifonLabelProcessor) Do MultiProcessor.VoegProcessorToe(SpoelbakLabelProcessor) @@ -689,6 +689,18 @@ ]]> + +StartNr,EndNr + + + proc:LabelProcessor,StartNr:%Numeric,EndNr:%Numeric 1 @@ -1772,9 +1784,9 @@ Do DataLijnen.Insert(rs.Data("ID")_"\"_rs.Data("Status")_"\"_rs.Data("Product")) } - Do Document.VoegLijnToe("\\\\\\","\") - Do Document.VoegLijnToe("\\\\\\PICKING","\") - Do Document.VoegLijnToe("\\\\\\","\") + Do Document.VoegLijnToe("\\\\\\\","\") + Do Document.VoegLijnToe("\\\\\\\PICKING","\") + Do Document.VoegLijnToe("\\\\\\\","\") Set Aantallen = ##class(%ArrayOfDataTypes).%New() Set Iterator = ##class(TECH.ListIterator).%New(DataLijnen) @@ -1785,12 +1797,15 @@ If (TandemBox.BevatInTeKortenReling()) { Set RelingPRNr = TandemBox.GeefReling().GeefPRNr() - Do Aantallen.SetAt(Aantallen.GetAt(RelingPRNr)+1,RelingPRNr) + Set RelingBouwsteen = ##class(DOM.PR.BouwStenen.BouwSteen).%OpenId(PRNr_"||"_"PRRL.001") + Set Aantal = RelingBouwsteen.Aantal + Do Aantallen.SetAt(Aantallen.GetAt(RelingPRNr)+Aantal,RelingPRNr) + If (TandemBox.BevatTussenReling()) { Set RelingPRNr = TandemBox.GeefTussenReling().GeefPRNr() - Do Aantallen.SetAt(Aantallen.GetAt(RelingPRNr)+1,RelingPRNr) + Do Aantallen.SetAt(Aantallen.GetAt(RelingPRNr)+Aantal,RelingPRNr) } } } @@ -1802,20 +1817,16 @@ Set Aantal = Iterator.Next() Set PRNr = Iterator.Key() Set Reling = API.GeefProduct(PRNr) - Do Document.GeefKolom(1).Insert(i) - Do Document.GeefKolom(2).Insert("") - Do Document.GeefKolom(3).Insert(Reling.GeefKleur()) - Do Document.GeefKolom(4).Insert("") - Do Document.GeefKolom(5).Insert(Reling.GeefVerpakking()) - Do Document.GeefKolom(6).Insert(Aantal) - Do Document.GeefKolom(7).Insert(Reling.GeefKorttekst()) + + Do ..VoegRelingToeAanDocument(i, Reling, Document, Aantal) + Set i = i + 1 } - Do Document.VoegLijnToe("\\\\\\","\") - Do Document.VoegLijnToe("\\\\\\INKORTEN","\") - Do Document.VoegLijnToe("\\\\\\","\") + Do Document.VoegLijnToe("\\\\\\\","\") + Do Document.VoegLijnToe("\\\\\\\INKORTEN","\") + Do Document.VoegLijnToe("\\\\\\\","\") // In te korten relingen opbouwen Set i = 1 Set Iterator = ##class(TECH.ListIterator).%New(DataLijnen) @@ -1831,46 +1842,66 @@ Set Reling = TandemBox.GeefReling() Set Lengte = ##class(DOM.PM.Maatwerk.TBX.HalffabrikaatUtils).GeefRelingLengteNaInkorten(PRNr,Reling.GeefPRNr()) - Set RelingBouwsteen = ##class(DOM.PR.BouwStenen.BouwSteen).%OpenId(PRNr_"||"_"PRRL.001") + Set RelingBouwsteen = ##class(DOM.PR.BouwStenen.BouwSteen).%OpenId(PRNr_"||PRRL.001") Set Aantal = RelingBouwsteen.Aantal + Set RelingAantal = Aantal + Set Verpakking = Reling.GeefVerpakking() + If (Verpakking '= ##class(DOM.PM.enu.Verpakking).Industrie()) { + Set RelingAantal = Aantal * 2 + } + Set Uitvoer = "P" + If (TandemBox.GeefLadeType() = ##class(DOM.PM.enu.TBXLadeType).BinnenLade()) { Set Uitvoer = "M" } - Do ..VoegRelingToeAanDocument(i, Reling, Document, Aantal, ToeDos, Lengte) + Do ..VoegRelingToeAanDocument(i, Reling, Document, Aantal_":"_RelingAantal, ToeDos, Lengte, Uitvoer) If (TandemBox.BevatTussenReling()) { - Do ..VoegRelingToeAanDocument(i, TandemBox.GeefTussenReling(), Document, Aantal, ToeDos, Lengte) + Do ..VoegRelingToeAanDocument(i, TandemBox.GeefTussenReling(), Document, Aantal, ToeDos, Lengte, Uitvoer) } Set i = i + 1 } } + + Do Document.VoegLijnToe("\\\\\\\","\") + Do Document.VoegLijnToe("\\\\\\\LEGENDE","\") + Do Document.VoegLijnToe("\\\\\\\","\") + Do Document.VoegLijnToe("\\\\\\\ M = Montage ","\") + Do Document.VoegLijnToe("\\\\\\\ P = Picking onderdelen","\") - Do Document.PrintDocument("HALUX",##class(TECH.Config.ConfigMgr).Instance().GetBoolean("PrintLijstenOpScherm")) + Set SorteerVan = 6+Aantallen.Count() + Set SorteerTot = SorteerVan + i - 1 + Do Document.Sorteer(##class(TECH.Comparator.StringComparator).%New(),6,SorteerVan,SorteerTot) + + // Nummering correct instellen na sorteren + For i = 1:1:SorteerTot-SorteerVan { Do Document.GeefKolom(1).SetAt(i,SorteerVan+i) } + + If (Aantallen.Count() > 0) + { + Do Document.PrintDocument("HALUX",##class(TECH.Config.ConfigMgr).Instance().GetBoolean("PrintLijstenOpScherm")) + } ]]> -Nr:%Integer,Reling:DOM.PM.TBXProduct.TBXReling,Document:TECH.Print.Kolommen.Document,Aantal:%Integer,ToeDos:%String,Lengte:%Integer +Nr:%Integer,Reling:DOM.PM.TBXProduct.TBXReling,Document:TECH.Print.Kolommen.Document,Aantal:%Integer,ToeDos:%String="",Lengte:%Integer="",Uitvoer:%String="" 1 - + + Index: BL/Flow/Offerte/Parser/AbstractParserXML.cls.xml =================================================================== diff -u -r734 -r901 --- BL/Flow/Offerte/Parser/AbstractParserXML.cls.xml (.../AbstractParserXML.cls.xml) (revision 734) +++ BL/Flow/Offerte/Parser/AbstractParserXML.cls.xml (.../AbstractParserXML.cls.xml) (revision 901) @@ -1,11 +1,11 @@ - + 1 %VHMacro 1 AbstractParser -61775,36963.786583 +62154,30402.487294 0 @@ -33,7 +33,11 @@ XSLT translatie toepassen en daarna inlezen van het FilePath Dir,FileName,TempDir - + Index: BL/Flow/Proxy/pxLevering.cls.xml =================================================================== diff -u -r734 -r901 --- BL/Flow/Proxy/pxLevering.cls.xml (.../pxLevering.cls.xml) (revision 734) +++ BL/Flow/Proxy/pxLevering.cls.xml (.../pxLevering.cls.xml) (revision 901) @@ -1,12 +1,12 @@ - + Proxy-klasse voor een Leveringsbon BL.Sys.FOP.Common,BL.Flow.Doc.Common,%VHMacro,BL.Derde.KlantSpecifiek 1 %RegisteredObject,%XML.Adaptor -62073,35069.70463 +62136,60293.724134 60017,42885.748409 0 @@ -707,5 +707,5 @@ ]]> - + Index: BL/Prod/Select.cls.xml =================================================================== diff -u -r734 -r901 --- BL/Prod/Select.cls.xml (.../Select.cls.xml) (revision 734) +++ BL/Prod/Select.cls.xml (.../Select.cls.xml) (revision 901) @@ -1,12 +1,12 @@ - + Controle van usernaam en wachtwoord + alle bijhorende rechten BL.Prod,%Prod.Product 1 %RegisteredObject -61422,38445.745997 +62144,62328.343199 60207,60266.090772 0 @@ -1046,5 +1046,6 @@ ]]> - + + Index: BL/PPS/TBX/OptiBox.cls.xml =================================================================== diff -u -r734 -r901 --- BL/PPS/TBX/OptiBox.cls.xml (.../OptiBox.cls.xml) (revision 734) +++ BL/PPS/TBX/OptiBox.cls.xml (.../OptiBox.cls.xml) (revision 901) @@ -1,13 +1,13 @@ - + Production Process Steering - Tandembox Genereert van een Toelevering de verpakkingsdefinitie %Prod.Product,BL.Prod.OptiBox,BL.Sys.Toegang,BL.Sys.Proxy 1 %RegisteredObject -62013,30734.568995 +62143,54650.39613 60945,71283.050474 0 @@ -505,7 +505,7 @@ . Do:VpkFRONT'="S" ..GroepFRONT(PRNr,Qty,TLUNr,VpkFRONT) ; separaat verpakte onderdelen . ;Do WL^vhDBG("Processed"_$P(^KPR(PRNr,0),"\")) - m LOGroep=..LOGroep d WLIP^vhDBG($$ArrayToText^vhLib("LOGroep",.LOGroep)) + d WLIP^vhDBG(15,$$ArrayToText^vhLib("LOGroep",##this,"LOGroep")) ; Property LOGroep uitschrijven (is multi-dimensional) Do ..AddLO(oParent,BasisRef) Do ..AddASM(oParent,BasisRef) Do ..AddFRONT(oParent,BasisRef) @@ -621,6 +621,7 @@ oParent,BasisRef - + + Index: BL/Prod/SearchBuildIndex.cls.xml =================================================================== diff -u -r734 -r901 --- BL/Prod/SearchBuildIndex.cls.xml (.../SearchBuildIndex.cls.xml) (revision 734) +++ BL/Prod/SearchBuildIndex.cls.xml (.../SearchBuildIndex.cls.xml) (revision 901) @@ -1,5 +1,5 @@ - + Build of the productindexen. @@ -9,7 +9,7 @@ %Prod.Product,BL.Prod 1 %RegisteredObject -61997,29738.322311 +62137,53986.104624 61648,40563.312 0 @@ -277,7 +277,7 @@ Set Merk=..Product.Prijs.Merk_" " Set:$L(Merk)=1 Merk=" " ; Erase Kill ^KPR1(ComprKortT) - Kill ^KPR2($$TRIMN^vhRtn1(..Product.IdentNummer)_" ") + Kill ^KPR2($$TRIMIDENT^vhRtn1(..Product.IdentNummer)_" ") ;[IDENT] CW If $L(GenTyp),$L(HDosNr) Do . Kill ^KPR3(GenTyp,HDosNr) @@ -313,7 +313,7 @@ ;Indexes Set ^KPR1(ComprKortT)=..PRNr_D_..Product.KortTekst ; KortTekst ;w $zr,! - Set ^KPR2($$TRIMN^vhRtn1(..Product.IdentNummer)_" ")=PRNr_D_..Product.IdentNummer ; IdentNr + Set ^KPR2($$TRIMIDENT^vhRtn1(..Product.IdentNummer)_" ")=PRNr_D_..Product.IdentNummer ; IdentNr ;[IDENT] CW ;w $zr,! If $L(GenTyp),$L(HDosNr) Do @@ -526,5 +526,6 @@ ]]> - + + Index: BL/PPS/TBX/WPZaagSrvHelper.cls.xml =================================================================== diff -u -r734 -r901 --- BL/PPS/TBX/WPZaagSrvHelper.cls.xml (.../WPZaagSrvHelper.cls.xml) (revision 734) +++ BL/PPS/TBX/WPZaagSrvHelper.cls.xml (.../WPZaagSrvHelper.cls.xml) (revision 901) @@ -1,11 +1,11 @@ - + serial %VHMacro,%Prod.Product,BL.Sys.Proxy,BL.PPS.TBX.Common,BL.PPS.TBX.WPZaag 1 %SerialObject -61068,36514.415356 +62138,60481.531 0 @@ -566,11 +566,11 @@ && (Queue1.WPZaag.KenmerkDK = Queue2.WPZaag.KenmerkDK) // Draagkracht && (Queue1.WPZaag.KenmerkIsSR = Queue2.WPZaag.KenmerkIsSR) // Is Stalen Rug (0/1) && (Queue1.WPZaag.KenmerkDS = Queue2.WPZaag.KenmerkDS) // Design - && (Queue1.WPZaag.KenmerkBM = Queue2.WPZaag.KenmerkBM) // BluMotion + && (Queue1.WPZaag.KenmerkBM = Queue2.WPZaag.KenmerkBM) // Blumotion && (Queue1.WPZaag.KenmerkKB = Queue2.WPZaag.KenmerkKB) // Kleur Bodem && (Queue1.WPZaag.KenmerkLD = Queue2.WPZaag.KenmerkLD) // Lade Diepte && (Queue1.WPZaag.KenmerkKR = Queue2.WPZaag.KenmerkKR) // Kleur Rug - && (Queue1.WPZaag.KenmerkRH = Queue2.WPZaag.KenmerkRH) //Rug Hoogte + && (Queue1.WPZaag.KenmerkRH = Queue2.WPZaag.KenmerkRH) // Rug Hoogte { Set retval = 1 } @@ -765,7 +765,7 @@ Set q = ##class(DS.PPS.TBX.Queue).%OpenId(QueueID) Set bm = q.WPZaag.KenmerkBM - Set pxWPZaagInfo.BluMotion=$S(bm="L":"Links",bm="R":"Rechts",bm="LR":"Links & Rechts",bm="RL":"Links & Rechts",1:"???") + Set pxWPZaagInfo.Blumotion=$S(bm="L":"Links",bm="R":"Rechts",bm="LR":"Links & Rechts",bm="RL":"Links & Rechts",1:"???") quit $$$pxStatusOK ]]> @@ -800,7 +800,7 @@ quit:Code="RRE" "Rug Rechts" quit:Code="RMID" "Rug Midden" quit:Code="RBA" "Rug Baliko" - quit:Code="BM" "BluMotion" + quit:Code="BM" "Blumotion" quit:Code="Frz" "Frezzen" quit "Onbekende Code : "_Code ]]> @@ -1370,5 +1370,6 @@ - + + Index: BL/Prod/OptiBox/BoxMeta.cls.xml =================================================================== diff -u -r734 -r901 --- BL/Prod/OptiBox/BoxMeta.cls.xml (.../BoxMeta.cls.xml) (revision 734) +++ BL/Prod/OptiBox/BoxMeta.cls.xml (.../BoxMeta.cls.xml) (revision 901) @@ -1,13 +1,13 @@ - + Verwerking van de metadefinitie van een doos. De metadefinitie definieert de BoxSelect van de Optimizer en geeft defaults voor de BoxData BL.Sys.Proxy 1 %RegisteredObject -61058,37088.734543 +62134,40953.742715 60997,54476.978362 0 @@ -23,6 +23,26 @@ Kan het boxmeta-object niet bewaren + + +de UI geeft ALLE boxselects terug bij aanmaak van een nieuwe Meta +PV - 12/02/2011 +D ##class(BL.Prod.OptiBox.BoxMeta).CleanBoxSelect() +1 +MetaID +1 + { + Set sc=bl.oMeta.BoxSelect.RemoveAt(2) + } + Set sc=bl.oMeta.%Save() +]]> + + MetaID:%String="" BL.Sys.Proxy.pxStatus @@ -204,11 +224,11 @@ pxMeta:BL.Prod.OptiBox.sub.pxBoxMeta BL.Sys.Proxy.pxStatus DATA") - d WLIP^vhDBG(15,"=============") - d WXIP^vhDBG(15,pxMeta) - d WLIP^vhDBG(15,"=============") + ;d WLIP^vhDBG(15,"=============") + ;d WLIP^vhDBG(15,"PROXY -> DATA") + ;d WLIP^vhDBG(15,"=============") + ;d WXIP^vhDBG(15,pxMeta) + ;d WLIP^vhDBG(15,"=============") Set ..oMeta.Name=pxMeta.Name Set ..oMeta.ProductGroep=pxMeta.ProductGroep @@ -228,8 +248,11 @@ ; BoxSelect list Do ..oMeta.BoxSelect.Clear() Set Key="" - For Set pxBoxSelect=pxMeta.BoxSelect.GetNext(.Key) Quit:Key="" Do + Set Cnt=0 + For Set pxBoxSelect=pxMeta.BoxSelect.GetNext(.Key) Quit:Key="" Do Quit:Cnt>4 . Set oBoxSelect=..CreateBoxSelectFromProxy(pxBoxSelect) + . Set Cnt=Cnt+1 ; om een fout in de UI op te lossen + . Quit:'$isObject(oBoxSelect) . Do ..oMeta.BoxSelect.Insert(oBoxSelect) ; Param list @@ -262,24 +285,14 @@ pxBoxSelect:BL.Prod.OptiBox.sub.pxemBoxSelect DS.Prod.OptiBox.sub.emBoxSelect - - -d ##class(BL.Prod.OptiBox.BoxMeta).Test() -1 - - - - + + Index: BL/PPS/TBX/Sequencer.cls.xml =================================================================== diff -u -r734 -r901 --- BL/PPS/TBX/Sequencer.cls.xml (.../Sequencer.cls.xml) (revision 734) +++ BL/PPS/TBX/Sequencer.cls.xml (.../Sequencer.cls.xml) (revision 901) @@ -1,13 +1,13 @@ - + Production Process Steering - Tandembox Genereert van een Toelevering de verpakkingsdefinitie %Prod.Product,BL.Prod.OptiBox,BL.PPS.TBX.Common,BL.Sys.Toegang,BL.Sys.Proxy 1 %RegisteredObject -62014,47998.938082 +62138,40541.942437 60997,54476.941438 0 @@ -68,16 +68,17 @@ . Kill Sort . Set TOENr=$LI(lbTOENrs,BatchSeq) . Set KLNr=$P($G(^KTO($$$LevHalux,TOENr,1)),"\",8) - . Set TLUNr=100 - . For Set TLUNr=$O(^KTO($$$LevHalux,TOENr,TLUNr)) Quit:TLUNr="" Do - . . Set LRec=$G(^KTO($$$LevHalux,TOENr,TLUNr)) + . Set TLNr=100 + . For Set TLNr=$O(^KTO($$$LevHalux,TOENr,TLNr)) Quit:TLNr="" Do + . . Set LRec=$G(^KTO($$$LevHalux,TOENr,TLNr)) + . . Set TLUNr=$P(LRec,D,15) . . Set PRNr=$P(LRec,D,2) . . Quit:$P(LRec,D,3)<1 . . Quit:PRNr'?4.7N . . Quit:$P(LRec,D,3)<1 . . Set SortKey=..SequenceKey(PRNr) . . Quit:SortKey="" - . . Quit:(KLNr=..#Assenti)&&((..IsSpoel(PRNr))||($P(^KPR(PRNr,0),"\")[("*"_..#Assenti_"*"))) ;klant Assenti -> zonder spoelbak + . . ;Quit:(KLNr=..#Assenti)&&((..IsSpoel(PRNr))||($P(^KPR(PRNr,0),"\")[("*"_..#Assenti_"*"))) ;klant Assenti -> zonder spoelbak . . Set SortKey=SortKey_"-"_TOENr_"-"_TLUNr . . Set $P(LRec,D)=TLUNr . . Set Sort(SortKey)=LRec @@ -290,5 +291,6 @@ ]]> - + + Index: BL/Derde/Agenda/Agenda.cls.xml =================================================================== diff -u -r734 -r901 --- BL/Derde/Agenda/Agenda.cls.xml (.../Agenda.cls.xml) (revision 734) +++ BL/Derde/Agenda/Agenda.cls.xml (.../Agenda.cls.xml) (revision 901) @@ -1,12 +1,12 @@ - + d ##class(BL.Derde.Agenda.Agenda).RijdenWerkPriveAll() BL.EC.Common 1 %RegisteredObject -62097,58749.137207 +62145,31619.196966 59994,36389.667445 0 @@ -22,7 +22,7 @@ 1 UserId @@ -377,16 +377,27 @@ . Set InternTo=InternTo_$S($L(InternTo):";",1:"")_oIP.%Id() ; Vanuit de Agenda zijn er geen interne gebruikers opgegeven -> defaulten naar interne gebruikers - Set Q="K",D="\",U=";" - If $isObject(Agenda.Klant)&&'Agenda.eMailIntern.Count() Do - . Set VerslagGrp="" - . Set:(Agenda.Klant.Sektor>0)&&(Agenda.Klant.Sektor<10) VerslagGrp="GeoVerslagIP" - . Set:(Agenda.Klant.Sektor>29)&&(Agenda.Klant.Sektor<39) VerslagGrp="GeoVerslagIP" - . Set:(Agenda.Klant.Sektor>9)&&(Agenda.Klant.Sektor<20) VerslagGrp="GeoVerslagKSBE" - . Set:(Agenda.Klant.Sektor>19)&&(Agenda.Klant.Sektor<29) VerslagGrp="GeoVerslagKSNL" - . Set IPNr=$S(VerslagGrp["KS":"",1:$$INTVW^KLOPV(Agenda.Klant.%Id())) - . Set:IPNr&&(";"_InternTo_";")'[(";"_IPNr_";") InternTo=InternTo_$S($L(InternTo):";",1:"")_IPNr ; interne verantw - . Set InternTo=InternTo_$S($L(InternTo)&&$L(VerslagGrp):";",1:"")_VerslagGrp + Set Q="K",D="\",U=";" + If $isObject(Agenda.Klant)&&'Agenda.eMailIntern.Count() { + Set VerslagGrp="" + + if ( (Agenda.Klant.Sektor>0)&&(Agenda.Klant.Sektor<10) ) || ( (Agenda.Klant.Sektor>39)&&(Agenda.Klant.Sektor<99) ) { + set VerslagGrp="GeoVerslagIP" + } + if (Agenda.Klant.Sektor>9)&&(Agenda.Klant.Sektor<19) { + set VerslagGrp="GeoVerslagKSBE" + } + if (Agenda.Klant.Sektor>19)&&(Agenda.Klant.Sektor<29) { + set VerslagGrp="GeoVerslagKSNL" + } + if (Agenda.Klant.Sektor>29)&&(Agenda.Klant.Sektor<39) { + set VerslagGrp="GeoVerslagAR" + } + + Set IPNr=$S(VerslagGrp["KS":"",1:$$INTVW^KLOPV(Agenda.Klant.%Id())) + Set:IPNr&&(";"_InternTo_";")'[(";"_IPNr_";") InternTo=InternTo_$S($L(InternTo):";",1:"")_IPNr ; interne verantw + Set InternTo=InternTo_$S($L(InternTo)&&$L(VerslagGrp):";",1:"")_VerslagGrp + } Quit:InternTo="" ; geen interne gebruikers @@ -904,5 +915,5 @@ ]]> - + Index: BL/PPS/TBX/WPPers.cls.xml =================================================================== diff -u -r734 -r901 --- BL/PPS/TBX/WPPers.cls.xml (.../WPPers.cls.xml) (revision 734) +++ BL/PPS/TBX/WPPers.cls.xml (.../WPPers.cls.xml) (revision 901) @@ -1,13 +1,13 @@ - + Production Process Steering - Tandembox Genereert van een Toelevering de verpakkingsdefinitie %Prod.Product,BL.Prod.OptiBox,BL.PPS.TBX.Common,BL.Sys.Toegang,BL.Sys.Proxy 1 WPAbstract -62117,28682.217391 +62145,37064.487572 60974,31788.004962 0 @@ -260,6 +260,8 @@ Quit:'$isObject(oQ) $$$pxStatusErrorEx("Kan queue-object niet openen.","QueueID: "_QueueID) Set oQ.WPPers.Reden=Reden Set oQ.WPPers.WachtTijd=WachtTijd + ; Toegevoegd PV 23/02/2011 + Do ##class(APPS.Halux.TBX.Stilstanden).Create(##class(APPS.Halux.TBX.enu.Werkpost).Pers1(), oQ, Reden, WachtTijd) Set CacheStatus=oQ.%Save() Quit $$$pxCacheStatusEx(CacheStatus,"Fout tijdens verwerken batch.") ]]> @@ -484,6 +486,7 @@ Set LD=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"LD")) Set DK=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"DK")) Set DC=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"DC")) + Set BM=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"BM")) Set IsSR=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"IsSR")) Set ODSP=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"ODSP")) ; onderdelen speciaal Set IsSpoel=KLAS'?1(1"L",1"B") @@ -499,6 +502,7 @@ Set (Info1,Info2)="" Set:ODSP'="" Info1=$S($L(Info1):Info1_"; ",1:"R:")_"SPECIAAL : "_$CASE(ODSP,"F":"FRONT","R":"RUG","B":"BODEM","BR":"BODEM&RUG",:ODSP) Set:IsSpoel Info1=$S($L(Info1):Info1_"; ",1:"R:")_"SPOELBAK/SYFON" + Set:BM="T" Info1=$S($L(Info1):Info1_"; ",1:"R:")_"TIP-ON" Set:DC="B" Info1=$S($L(Info1):Info1_"; ",1:"R:")_"HOUTEN BALIKO LADE" Set:IB<..#MinIB Info1=$S($L(Info1):Info1_"; ",1:"R:")_"EXTRA SMAL" Set:IB>..#MaxIB Info1=$S($L(Info1):Info1_"; ",1:"R:")_">1500" @@ -720,5 +724,6 @@ ]]> - + + Index: BL/Flow/Proxy/pxOrder.cls.xml =================================================================== diff -u -r734 -r901 --- BL/Flow/Proxy/pxOrder.cls.xml (.../pxOrder.cls.xml) (revision 734) +++ BL/Flow/Proxy/pxOrder.cls.xml (.../pxOrder.cls.xml) (revision 901) @@ -1,12 +1,12 @@ - + Proxy-klasse voor een OrderBevestiging BL.Sys.FOP.Common,BL.Flow.Doc.Common,%VHMacro 1 %RegisteredObject,pxOrderAbstract,%XML.Adaptor -61992,55328.183973 +62150,60349.456599 60017,33785.716511 0 @@ -136,10 +136,15 @@ ORDNr:%String,lbPPODKeywords:%List,Opties:%String %Status CW: Goederen is incl. port + . Set GoederenMetPort=$P(OrdPrijsRec,"\",2) + . Set Btw=$P(OrdPrijsRec,"\",4) + . Set Port=$P(OrdPrijsRec,"\",5) + . If IsConsument Do + . . If BtwRegime Set TekstOrderTotaal="OrderTotaalB2CInclBTW",OrderTotaal=GoederenMetPort+Btw + . . Else Set TekstOrderTotaal="OrderTotaalB2CExclBTW",OrderTotaal=GoederenMetPort + . Else Set TekstOrderTotaal="OrderTotaalB2B",OrderTotaal=GoederenMetPort-Port + . Set TekstOrderTotaal=##class(Res.Vertaling).GetVertaling($$$VertalingsGroep,TekstOrderTotaal,"L", Taal) + . Set:(blnBruto) TekstOrderTotaal=TekstOrderTotaal_" ("_##class(Res.Vertaling).GetVertaling($$$VertalingsGroep,"OrderTotaal_inclKorting","L", Taal)_")" + . + . Set tmpRec="" + . Set $P(tmpRec,"\",3)="" ; AANTAL + . Set $P(tmpRec,"\",5)=TekstOrderTotaal ; OMS + . Set $P(tmpRec,"\",6)="" ; EHPRIJS + . Set $P(tmpRec,"\",9)=OrderTotaal ; BEDRAG + . Set $P(tmpRec,"\",16)="" ; BEDRAG (BRUTO) + . Set $P(tmpRec,"\",17)="KOFGRP##0" ; LijnSoort (GroepTotaal, 0:geen pagebreak) + . Set $P(tmpRec,"\",20)="" ; IdentNr + . Set LijnObj=##class(pxManueleLijn).BuildFromRec("O",tmpRec,KLNr,Taal,blnBruto) + . Do ..AppendLijn(LijnObj) + Do fobOrderEnd ; (KLNr,ORDNr,Taal) Do fobPPODFields() // Lock terug afzetten @@ -292,5 +324,5 @@ ]]> - + Index: BL/CRM/impl/KlantVerlofPeriode.cls.xml =================================================================== diff -u -r734 -r901 --- BL/CRM/impl/KlantVerlofPeriode.cls.xml (.../KlantVerlofPeriode.cls.xml) (revision 734) +++ BL/CRM/impl/KlantVerlofPeriode.cls.xml (.../KlantVerlofPeriode.cls.xml) (revision 901) @@ -1,9 +1,9 @@ - + 1 %RegisteredObject -62102,31639.650652 +62132,34183.437391 0 @@ -68,5 +68,5 @@ ]]> - + Index: BL/Flow/Proxy/pxOrderAbstract.cls.xml =================================================================== diff -u -r734 -r901 --- BL/Flow/Proxy/pxOrderAbstract.cls.xml (.../pxOrderAbstract.cls.xml) (revision 734) +++ BL/Flow/Proxy/pxOrderAbstract.cls.xml (.../pxOrderAbstract.cls.xml) (revision 901) @@ -1,8 +1,8 @@ - + 1 -61487,60480.124586 +62136,55553.984061 60029,39642.275241 0 @@ -47,6 +47,7 @@ KlantOrderRef samenstellen 1 OrgalRef:%String,EdiNummer:%String,VHisieVwCust:%String +1 %String - + Index: BL/Sys/Proxy/pxXMLDataSet.cls.xml =================================================================== diff -u -r734 -r901 --- BL/Sys/Proxy/pxXMLDataSet.cls.xml (.../pxXMLDataSet.cls.xml) (revision 734) +++ BL/Sys/Proxy/pxXMLDataSet.cls.xml (.../pxXMLDataSet.cls.xml) (revision 901) @@ -1,10 +1,11 @@ - + + BL.Sys.Proxy 1 %XML.DataSet -61051,57479.432799 +62145,39480.36782 60873,58753.510641 0 @@ -116,5 +117,5 @@ ]]> - + Index: BL/Prod/pxSelectCriteria.cls.xml =================================================================== diff -u -r734 -r901 --- BL/Prod/pxSelectCriteria.cls.xml (.../pxSelectCriteria.cls.xml) (revision 734) +++ BL/Prod/pxSelectCriteria.cls.xml (.../pxSelectCriteria.cls.xml) (revision 901) @@ -1,12 +1,20 @@ - + + 1 %RegisteredObject,%XML.Adaptor -60824,30241.981692 +62146,38196.344974 60207,60266.158165 0 + +STRING +,0,1,runtime +1 +ENUM + + Leeg of een combinatie van S=Stock, N=NietStock, A=Afgeleid @@ -69,5 +77,5 @@ %Integer - +