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
-
+