Imports System.Diagnostics.Eventing.Reader Public Class ArdisData Public PartId As String Public OrderId As String Public PartRef As String Public PartQty As String Public PartMat As String Public PartL As String Public PartW As String Public PartCalc As String Public PartRemark As String Public PartRemark2 As String Public PartRemark3 As String Public PartGroup As String Public PartLevel As String Public PartExt01 As String Public PartExt02 As String Public PartExt03 As String Public PartExt04 As String Public PartExt05 As String Public PartExt06 As String Public PartExt07 As String Public PartExt08 As String Public PartExt09 As String Public PartD As String Public PartProd As String Public GroupCode As String Public Status As String Public Inserted As String Public LastChanged As String Public PartQtyCut As String Public PartExt10 As String Public PartExt11 As String Property Label As String Property KamerfreesTrayId As String Property KamerfreesSlotNr As String Property Bestandsnaam As String 'Naam van het bestand waar de Ardis data zich in bevindt voor special laden. Public Function ShallowCopy() As ArdisData Return DirectCast(Me.MemberwiseClone(), ArdisData) End Function Public Overrides Function ToString() As String Return PartCalc End Function Public Sub updateKommasNaarPunten() PartL = PartL.Replace(",", ".") 'lengte PartW = PartW.Replace(",", ".") 'breedte PartExt06 = PartExt06.Replace(",", ".") 'dikte End Sub Public Sub aanpassenDataRework() PartProd = 0 Status = 0 PartRemark3 = "Rework" PartExt04 = Mid(PartExt04, 1, 11) & "/***REWORK***" End Sub Public Function geefLinksOfRechts() As String Return PartCalc.Substring(5).Substring(0, 1).ToUpper() End Function Public Function geefColorEnkel(andereKant As ArdisData) As String Return GeefKleurBinnen() & "-" & andereKant.GeefKleurBinnen End Function Public Function geefColorDubbel(andereKant As ArdisData) As String Return GeefKleurBinnen() & "-" & andereKant.GeefKleurBinnen & "-" & GeefKleurBinnen() & "-" & andereKant.GeefKleurBinnen End Function Public Function GeefBatch() As String Return PartGroup.Substring(0, PartGroup.Length - 3) End Function Public Function GeefKleurBinnen() As String Return PartExt07 End Function 'Specials ''' ''' PartExt07 aanpassen met huidig materiaal. ''' Public Sub PasKleurAanSpecial() Dim firstIndex As Integer = PartMat.IndexOf(".", StringComparison.Ordinal) + 1 Dim lastIndex As Integer = PartMat.LastIndexOf(".", StringComparison.Ordinal) PartExt07 = PartMat.Substring(firstIndex, lastIndex - firstIndex) End Sub ''' ''' Opvragen of een zijkant is gegenereerd in een sifonlade. Dus of het een binnenzijkantje is. ''' ''' Function IsSpecialGegenereerd() As Boolean Return PartExt09.ToUpper.Equals("A") Or PartExt09.ToUpper.Equals("B") End Function #Region "sifon laden" ''' ''' Updaten etiketlijn 2 en 4. ''' Public Sub SifonLadeUpdateEtiketLijnen() 'Bij etiketlijn 2 'kar' vervangen door sifon PartExt02 = PartExt02.Replace("KAR", "SIFON") 'Etiketlijn 4 aanpassen. PartExt04 = PartCalc & "/B/" & CStr(CDbl(PartL.Replace(".", ",")) - 5).Replace(",", ".") & "xH:" & CStr(CDbl(PartW.Replace(".", ",")) - 5).Replace(",", ".") End Sub ''' ''' Nieuw zijkantplaatje aanmaken met bepaalde data. ''' Aanpassingen aan: PartL, PartW, PartMat, PartExt09, Barcode en etiketlijnen 2 en 4. ''' ''' ''' ''' ''' ''' Public Sub SifonLadeNieuweZijkantData(lengte As String, hoogteRug As String, materiaalOrigineleRug As String, barcodeRug As String, isLinksPlaatje As Boolean) 'Nieuwe barcode geven. 'Kijken of het een linkse of rechtse plaat is Dim typePlaat As String = PartCalc.Substring(5, 1) 'De barcode opbouwen met eerste teken uit originele barcode. Dim nieuweBarcode As String = PartCalc.Substring(0, 1) 'Tweede teken is tweede teken van barcode rug. nieuweBarcode &= barcodeRug.Substring(1, 1) 'Derde teken is opnieuw van originele barcode. nieuweBarcode &= PartCalc.Substring(2, 1) 'Teken daarna is de STEMAS B code, opvragen en toevoegen. nieuweBarcode &= Configs.geefCodeStemasB(lengte) 'Speciale letter toevoegen, afhankelijk of het links of rechts is. If typePlaat.ToUpper.Equals("L") Or typePlaat.ToUpper.Equals("C") Then nieuweBarcode &= "E" ElseIf typePlaat.ToUpper.Equals("R") Or typePlaat.ToUpper.Equals("D") Then nieuweBarcode &= "F" Else Throw New Exception($"Type {typePlaat} is niet gekend in de barcode voor nieuwe zijkant data") End If 'De barcode vullen met nullen en de uniek nummer dat wordt opgehaald. Dim nummer As String = CacheMapper.GeefBarcodeNummer Dim aantalNullen As Integer = PartCalc.Length - nieuweBarcode.Length - CStr(nummer).Length For teller = 0 To aantalNullen - 2 nummer &= "0" Next 'De letter 'S' in het midden toevoegen. nieuweBarcode &= nummer.Insert(2, "S") 'Toewijzen aan PartCalc. PartCalc = nieuweBarcode 'PartL aanpassen. PartL = lengte + 5 'PartW (hoogte) aanpassen. PartW = CStr(CDbl(hoogteRug.Replace(".", ",")) + 10.0).Replace(",", ".") 'Materiaal aanpassen. MATERIAAL.KLEUR.DIKTE -> materiaal en kleur uit originele rug, dikte behouden van zijkantplaatje. PartMat = materiaalOrigineleRug.Substring(0, materiaalOrigineleRug.LastIndexOf(".")) & PartMat.Substring(PartMat.LastIndexOf(".")) 'PartExt09 updaten afhankelijk van links or rechts. If isLinksPlaatje Then 'Is links. PartExt09 = "A" Else 'Is rechts PartExt09 = "B" End If 'Kleur aanpassen. PasKleurAanSpecial() 'Updaten etiket. SifonLadeUpdateEtiketLijnen() End Sub ''' ''' Kijken of de rug verlaagd is, aan de hand van het eerste tekens van de PartCalc. ''' ''' PartCalc van een originele zijkant ''' True als de sifonlade verlaagd is Public Function SifonLadeIsVerlaagdeRug(partCalcOrigineleZijkant As String) As Boolean Return Not PartCalc.Substring(1, 1).Equals(partCalcOrigineleZijkant.Substring(1, 1)) End Function ''' ''' Nieuwe data voor een linkse rug. ''' ''' ''' ''' Public Sub SifonLadeNieuweRug1Data(positieSifon As Double, oorspronkelijkeLengteRug As String, isVerlaagdeRug As Boolean) 'PartL updaten. Dim nieuwePartL = positieSifon - 23.5 'Ticketlijnen en PartL updaten. SifonladeUpdatePartLEnEtiketlijnen(oorspronkelijkeLengteRug, nieuwePartL, isVerlaagdeRug, RugStuk.Links) 'Kleur aanpassen. PasKleurAanSpecial() End Sub ''' ''' Nieuwe data voor een rechtse rug van een enkele sifonlade. ''' ''' ''' ''' Public Sub SifonLadeNieuweRug2Data(rest As Double, oorspronkelijkeLengteRug As String, isVerlaagdeRug As Boolean) 'PartL berekenen. Dim nieuwePartL = rest - 23.5 'Ticketlijnen en PartL updaten. SifonladeUpdatePartLEnEtiketlijnen(oorspronkelijkeLengteRug, nieuwePartL, isVerlaagdeRug, RugStuk.Rechts) 'Kleur aanpassen. PasKleurAanSpecial() End Sub ''' ''' Nieuwe data voor de middelste rug. ''' ''' ''' Public Sub SifonLadeNieuweRugMData(breedteMiddenstuk As Double, oorspronkelijkeLengteRug As String) 'PartL berekenen. Dim nieuwePartL = breedteMiddenstuk - 15 'Zet type op Valligne. PartCalc = PartCalc.Substring(0, 2) & "A" & PartCalc.Substring(3) 'Ticketlijnen updaten. 'Ticketlijnen en PartL updaten. SifonladeUpdatePartLEnEtiketlijnen(oorspronkelijkeLengteRug, nieuwePartL, False, RugStuk.Midden) 'Kleur aanpassen. PasKleurAanSpecial() End Sub ''' ''' PartExt01 aanpassen. ''' ''' Private Sub SifonLadeUpdateEtiketLijn1Rug(oorspronkelijkeLengteRug As String) Dim afdekKapjesEnSy As String = PartExt01.Substring(PartExt01.LastIndexOf("/")) Dim tempPartExt01 As String = PartExt01.Substring(0, PartExt01.LastIndexOf("/")) afdekKapjesEnSy = tempPartExt01.Substring(tempPartExt01.LastIndexOf("/")) & afdekKapjesEnSy tempPartExt01 = tempPartExt01.Substring(0, tempPartExt01.LastIndexOf("/")) afdekKapjesEnSy = tempPartExt01.Substring(tempPartExt01.LastIndexOf("/")) & afdekKapjesEnSy PartExt01 = PartRef.Substring(0, 3) & "/" & PartExt07 & "-" & PartExt07 & "/" & CStr(CDbl(oorspronkelijkeLengteRug.Replace(".", ",")) + 5).Replace(",", ".") & "x" & PartW & "/" & PartRemark & afdekKapjesEnSy End Sub Private Enum RugStuk Links Rechts Midden End Enum ''' ''' Updaten van partL, etiketlijnen en barcode. PartL wordt aangepast als baliko en PartL kleiner dan 181 -> 600 Vallinge. ''' Anders als PartL kleiner dan minimum lengte rug -> minimum lengte rug. ''' Als verlaagde rug en te kort dan PartL - 5.5 ''' ''' ''' ''' Private Sub SifonladeUpdatePartLEnEtiketlijnen(oorspronkelijkeLengteRug As String, nieuwePartL As Double, isVerlaagdeRug As Boolean, rugstuk As RugStuk) Dim isVergrootteBaliko As Boolean = False Dim isVergrootteVallinge As Boolean = False dim isteKorteRug as Boolean = false 'Controleren of het een verlaagde rug is. If isVerlaagdeRug Then 'Verlaagde rug, PartL aanpassen. nieuwePartL -= 5.5 End If 'Controleren dat het geen te korte baliko rug is. PartL onder de 181 en derde letter van de originele barcode is 'B'. If nieuwePartL < 181 Then If PartCalc.Chars(2) = "B" Then 'Te korte Baliko. 'Dit is een vergrootte baliko. isVergrootteBaliko = True 'Nooit een verlaagde rug. Uit Vallinge rug maken. isVerlaagdeRug = False 'PartL instellen PartL = 600 'Etiket aanpassen. PartExt04 = $"{PartExt04.Substring(0, PartExt04.IndexOf("/"))}/*EKO-{CStr(nieuwePartL).Replace(",", ".")}*" Else 'Te korte Vallinge. 'Dit is een vergrootte Vallinge. isVergrootteVallinge = True 'PartL instellen PartL = Configs.SifonLadeGeefMinimumLengteRug() 'Etiket aanpassen. PartExt04 = $"{PartExt04.Substring(0, PartExt04.IndexOf("/"))}/*ROB-{CStr(nieuwePartL).Replace(",", ".")}*" End If 'Controleren of de PartL minder is dan de minimum lengte van de rug. ElseIf Not nieuwePartL < Configs.SifonLadeGeefMinimumLengteRug() Then 'Niet te kort. PartL = CStr(nieuwePartL + 5).Replace(",", ".") 'Etiketlijnen updaten. SifonLadeUpdateEtiketLijnen() Else 'Te korte rug. isteKorteRug = True 'Etiketlijnen zelf aanpassen. 'Etiketlijn 4 aanpassen. PartExt04 = $"{PartExt04.Substring(0, PartExt04.IndexOf("/"))}/*CUT-{CStr(nieuwePartL + 5).Replace(",", ".")}*" 'PartL overschrijven met minimum lengte rug. PartL = Configs.SifonLadeGeefMinimumLengteRug() End If SifonLadeUpdateEtiketLijn1Rug(oorspronkelijkeLengteRug) 'Bij etiketlijn 2 'kar' vervangen door 'sifon'. PartExt02 = PartExt02.Replace("KAR", "SIFON") 'Barcode updaten. SifonLadeUpdateBarcodeRug(nieuwePartL, isVerlaagdeRug, rugstuk, isVergrootteBaliko, isVergrootteVallinge, isteKorteRug) End Sub ''' ''' Barcode voor een rug opbouwen. ''' ''' ''' Private Sub SifonLadeUpdateBarcodeRug(nieuwePartL As Double, isVerlaagdeRug As Boolean, rugstuk As RugStuk, isVergrootteBaliko As Boolean, isVergrootteVallinge As Boolean, isTeKorteRug As Boolean) 'Nieuwe barcode Dim nieuweBarcode As String If isVergrootteBaliko Then 'Vergrootte baliko -> Vallinge. nieuweBarcode = "R" nieuweBarcode &= PartCalc.Substring(1, 1) nieuweBarcode &= "X" ElseIf rugstuk = RugStuk.Midden Then 'Eerste 2 tekens van originele barcode + X. nieuweBarcode = PartCalc.Substring(0, 2) nieuweBarcode &= "X" Else 'Eerste twee tekens van originele barcode nieuweBarcode = PartCalc.Substring(0, 2) 'Links of rechts of overeenkomstige letter van special lade. If Not isVerlaagdeRug Then 'Geen verlaagde rug. If rugstuk = RugStuk.Links Then nieuweBarcode &= "L" Else nieuweBarcode &= "R" End If Else 'Is verlaagde rug, juiste letter toevoegen. If rugstuk = RugStuk.Links Then nieuweBarcode &= "C" Else nieuweBarcode &= "D" End If End If End If 'De lengte in de barcode steken. Dim lengte As Double If isTeKorteRug Then 'Te korte rug. lengte = nieuwePartL elseIf Not ((Not isVerlaagdeRug) And isVergrootteVallinge) Then 'Normaal. lengte = CDbl(PartL.Replace(".", ",")) - 5 Else 'Geen verlaagde rug maar wel vergrootte Vallinge. lengte = Configs.SifonLadeGeefMinimumLengteRug() - 5 End If Dim getallenStuk As String = "" If lengte < 1000 Then getallenStuk &= 0 End If 'De niet kommagetallen toevoegen. getallenStuk &= Math.Floor(lengte) 'Deel voor de komma eruit halen. getallenStuk &= CStr(lengte Mod 1).Replace("0,", String.Empty) 'Getal gedeelte toevoegen. nieuweBarcode &= getallenStuk 'Vaste waarde toevoegen. nieuweBarcode &= "US" 'De opgevraagde nummer vullen met nullen en de unieke nummer die we ophalen. Dim nummer As Integer = CacheMapper.GeefBarcodeNummer Dim aantalNullen As Integer = PartCalc.Length - nieuweBarcode.Length - CStr(nummer).Length - 2 'De twee wijst op de vaste waarden die we nog gaan toevoegen. For teller = 0 To aantalNullen - 1 nieuweBarcode &= "0" Next nieuweBarcode &= nummer 'Vaste waarde toevoegen. nieuweBarcode &= "D0" 'Toewijzen aan variabele. PartCalc = nieuweBarcode End Sub Public Function sifonLadeGeefOorspronkelijkeLengteRug() Dim getal As Double Dim lengteInBarcode = PartCalc.Substring(3, 5) Try getal = PartCalc.Substring(3, 5) Catch ex As InvalidCastException Throw New Exception($"Kan oorspronkelijke lengte rug niet uit de barcode '{PartCalc}' halen, huidige resultaat lengte: '{lengteInBarcode}'") End Try getal /= 10 Return getal End Function Function SifonLadeGeefLWBodem() As String Return PartL - 5 + 31 End Function Public Shared Function sifonLadeGeefBreedte(lw As Double) As Double Return lw - 31 End Function Public Shared Function sifonLadeGeefDiepte(nlLade As String) As String Return nlLade - 20 End Function Public Shared Function sifonLadeGeefDiepteSifonUitsparing(lengte As String) As String Return CDbl(lengte) - 8 End Function Public Function sifonLadeGeefOnderdeelLetter() As String Return PartCalc.Substring(5, 1) End Function Public Shared Function sifonLadeGeefPositieUitsparing(positionSifon As Double) Return positionSifon + 5 - 21 + 5.5 - 13 End Function #End Region #Region "spoelbak lade" Function spoelbakLadeGeefLWBodem() As String Return PartL - 5 + 31 End Function Public Shared Function spoelbakgeefNLSpoelbakUitsparing(nlLade As Double) Return nlLade - 100 End Function Public Shared Function spoelbakgeefDiepteUitsparing(nlSpoelbakUitsparing As Double) Return nlSpoelbakUitsparing - 20 - 7 End Function Public Shared Function spoelbakLadeGeefDiepte(nlLade As String) As Double Return nlLade - 20 End Function Public Shared Function spoelbakLadeGeefBreedte(lw As String) As Double Return lw - 31 End Function Public Shared Function spoelbakLadegeefNuttigeRuimteZijvakken(lw As Double, breedteUitsparing As Double) Return ((lw - 42) - breedteUitsparing) / 2 End Function Public Shared Function spoelbakLadegeefInitiëlePositieUitsparing(nuttigeRuimteZijvakken As Double) As Double Return nuttigeRuimteZijvakken + 10.5 End Function Public Shared Function spoelbakLadegeefRestBreedte(nuttigeRuimteZijvakken As Double, positieUitsparing As Double) As Double Return nuttigeRuimteZijvakken * 2 - (positieUitsparing - 10.5) + 10.5 End Function Public Sub spoelbakLadeUpdateEtiketLijnen() 'bij etiketlijn 1 'SP' van spoelbak toevoegen achteraan de lijn PartExt01 &= "SP" 'bij etiketlijn 2 'kar' vervangen door sifon PartExt02 = PartExt02.Replace("KAR", "SPOELBAK") End Sub Public Shared Function spoelbakLadeGeefLengteNieuweZijkantAfgewerkt(nominaleLengteNieuweZijkant As Double) As Double Return nominaleLengteNieuweZijkant - 14 - 5 End Function Public Sub spoelbakLadeNieuweZijkantData(lengte As String, lengteNieuweZijkantAfgewerkt As Double, hoogteRug As String, barcodeRug As String) 'lengte aanpassen PartL = lengte + 8 + 5 'hoogte aanpassen PartW = CStr(CDbl(hoogteRug.Replace(".", ",")) + 10.0).Replace(",", ".") 'nieuwe barcode geven 'kijken of het een linkse of rechtse plaat is Dim typePlaat As String = PartCalc.Substring(5, 1) 'de barcode al vullen met de eerste 3 letters uit de oude, als het een verlaagde rug is de letter uit de rug nemen Dim nieuweBarcode As String = PartCalc.Substring(0, 1) nieuweBarcode &= barcodeRug.Substring(1, 1) nieuweBarcode &= "V" 'de STEMAS B code opvragen en toevoegen nieuweBarcode &= Configs.spoelbakLadeGeefCodeStemasB(lengteNieuweZijkantAfgewerkt) nieuweBarcode &= typePlaat 'de barcode vullen met nullen en de unieke nummer die we ophalen Dim nummer As String = CacheMapper.GeefBarcodeNummer Dim aantalNullen As Integer = PartCalc.Length - nieuweBarcode.Length - CStr(nummer).Length For teller As Integer = 0 To aantalNullen - 2 nummer &= "0" Next 'de letter S in het midden toevoegen nummer = nummer.Insert(2, "S") nieuweBarcode &= nummer PartCalc = nieuweBarcode End Sub Public Sub spoelbakLadeStelLengteRugIn(nuttigeRuimteZijvakken As Double, vasteWaardeRugBerekening As Double) PartL = (nuttigeRuimteZijvakken + 11) * 2 + vasteWaardeRugBerekening + 5 End Sub Public Sub spoelbakLadeUpdateBarcodeRug() 'nieuwe barcode met vast gedeelte oude barcode Dim nieuweBarcode As String = PartCalc.Substring(0, 2) nieuweBarcode &= "V" 'de lengte in de barcode steken Dim lengte As Double = PartL - 5 Dim getallenStuk As String = "" If lengte < 1000 Then getallenStuk &= 0 End If 'de niet kommagetallen toevoegen getallenStuk &= Math.Floor(lengte) getallenStuk &= CStr(lengte Mod 1).Replace("0,", "") 'getal gedeelte toevoegen nieuweBarcode &= getallenStuk 'vaste waarde toevoegen nieuweBarcode &= "US" 'de opgevraagde nummer vullen met nullen en de unieke nummer die we ophalen Dim nummer As Integer = CacheMapper.GeefBarcodeNummer Dim aantalNullen As Integer = PartCalc.Length - nieuweBarcode.Length - CStr(nummer).Length - 2 'de twee wijst op de vaste waarden die we nog gaan toevoegen For teller As Integer = 0 To aantalNullen - 1 nieuweBarcode &= "0" Next nieuweBarcode &= nummer 'vaste waarde toevoegen nieuweBarcode &= "D0" PartCalc = nieuweBarcode End Sub #End Region #Region "test lade" Public Sub testLadeUpdateTrayEnSlotNummer(trayNummer As String, Optional slotNummer As String = "") KamerfreesTrayId = trayNummer KamerfreesSlotNr = slotNummer End Sub #End Region #Region "special lade diepere zijkant" Public Function geefBarcodeDeelDiepereZijkant() As String Return PartCalc.Substring(3, 2) End Function Public Sub specialLadeDiepereZijkantUpdateZijkant(diepteVerschil As Integer, barcodeDeel As String) PartL = (CInt(PartL.Replace(".", ",")) + diepteVerschil).ToString.Replace(",", ".") Dim nieuweBarcode As String = PartCalc.Substring(0, 3) nieuweBarcode &= barcodeDeel & PartCalc.Substring(5) PartCalc = nieuweBarcode End Sub Public Sub specialLadeDiepereZijkantUpdateBodem(diepteVerschil As Integer) PartW = (CInt(PartW.Replace(".", ",")) + diepteVerschil).ToString.Replace(",", ".") 'updaten het tweede deel afmetingen partext01 Dim nieuwePartExt01 As String = PartExt01 nieuwePartExt01 = nieuwePartExt01.Remove(nieuwePartExt01.LastIndexOf("/")) nieuwePartExt01 = nieuwePartExt01.Remove(nieuwePartExt01.LastIndexOf("/")) nieuwePartExt01 = nieuwePartExt01.Remove(nieuwePartExt01.LastIndexOf("/")) nieuwePartExt01 = nieuwePartExt01.Remove(nieuwePartExt01.LastIndexOf("/")) Dim waarde As String = nieuwePartExt01.Substring(nieuwePartExt01.LastIndexOf("x") + 1) waarde = (CInt(waarde.Replace(".", ",")) + diepteVerschil).ToString.Replace(",", ".") PartExt01 = PartExt01.Replace(nieuwePartExt01, nieuwePartExt01.Substring(0, nieuwePartExt01.LastIndexOf("x") + 1) & waarde) 'updaten tweede deel laatste afmetingen Dim nieuwePartExt04 As String = PartExt04.Remove(PartExt04.IndexOf("xD:") + 3) Dim waarde2 As String = PartExt04.Substring(PartExt04.IndexOf("xD:") + 3) waarde2 = (CInt(waarde2.Replace(".", ",")) + diepteVerschil).ToString.Replace(",", ".") nieuwePartExt04 &= waarde2 PartExt04 = nieuwePartExt04 End Sub #End Region #Region "special lade hogere zijkant" Public Sub specialLadeHogereZijkantUpdateZijkant(hoogteLetter As String) PartW = (Configs.geefNieuweHoogtesData(hoogteLetter)).ToString.Replace(",", ".") Dim nieuweBarcode As String = PartCalc.Substring(0, 1) nieuweBarcode &= hoogteLetter & PartCalc.Substring(3) PartCalc = nieuweBarcode End Sub Public Sub specialLadeHogereZijkantUpdateRug(hoogteLetter As String) Dim hoogte As String = (Configs.geefNieuweHoogtesData(hoogteLetter) - 10).ToString.Replace(",", ".") PartW = hoogte 'updaten het tweede deel afmetingen partext01 Dim nieuwePartExt01 As String = PartExt01 nieuwePartExt01 = nieuwePartExt01.Remove(nieuwePartExt01.LastIndexOf("/")) nieuwePartExt01 = nieuwePartExt01.Remove(nieuwePartExt01.LastIndexOf("/")) nieuwePartExt01 = nieuwePartExt01.Remove(nieuwePartExt01.LastIndexOf("/")) nieuwePartExt01 = nieuwePartExt01.Remove(nieuwePartExt01.LastIndexOf("/")) Dim waarde As String = nieuwePartExt01.Substring(nieuwePartExt01.LastIndexOf("x") + 1) PartExt01 = PartExt01.Replace(waarde, hoogte) 'updaten tweede deel laatste afmetingen Dim nieuwePartExt04 As String = PartExt04.Remove(PartExt04.IndexOf("xH:") + 3) nieuwePartExt04 &= hoogte PartExt04 = nieuwePartExt04 End Sub #End Region #Region "special lade nieuwe kleur" 'te vervangen kleur opvragen Public Function specialLadeNieuweKleurGeefTeVervangenKleur() As String Dim kleur As String = PartMat.Remove(0, PartMat.IndexOf(".") + 1) kleur = kleur.Remove(kleur.IndexOf(".")) Return kleur End Function 'bodem heeft maar 1 kleur veld Public Sub specialLadeNieuweKleurVervangBodemKleuren(teVervangenKleur As String, nieuweKleur As String, nieuweKleurData As String) Dim gelukt As Boolean = specialLadeNieuweKleurUpdatePlaatmateriaalEnKleurEnDecor(teVervangenKleur, nieuweKleurData) If gelukt Then Dim nieuweEtiketlijn As String = PartExt01.Replace(teVervangenKleur, nieuweKleur) PartExt01 = nieuweEtiketlijn End If End Sub 'rug heeft 2 kleur velden Public Sub specialLadeNieuweKleurVervangRugKleuren(teVervangenKleur As String, nieuweKleur As String, nieuweKleurData As String, kantenbandKleur As String) Dim gelukt As Boolean = specialLadeNieuweKleurUpdatePlaatmateriaalEnKleurEnDecor(teVervangenKleur, nieuweKleurData) If gelukt Then Dim kleurenLetters As String = PartExt01.Remove(0, PartExt01.IndexOf("/") + 1) kleurenLetters = kleurenLetters.Substring(0, kleurenLetters.IndexOf("/")) Dim nieuweKleurenLetters As String = kleurenLetters.Substring(0, kleurenLetters.IndexOf("-")).Replace(teVervangenKleur, nieuweKleur) + "-" nieuweKleurenLetters += kleurenLetters.Substring(kleurenLetters.LastIndexOf("-") + 1).Replace(teVervangenKleur, kantenbandKleur) PartExt01 = PartExt01.Replace(kleurenLetters, nieuweKleurenLetters) End If End Sub 'zijkant heeft 3 kleur velden Public Sub specialLadeNieuweKleurVervangZijkantKleuren(teVervangenKleur As String, nieuweKleur As String, kantenbandNieuweKleur As String, nieuweKleurData As String) Dim gelukt As Boolean = specialLadeNieuweKleurUpdatePlaatmateriaalEnKleurEnDecor(teVervangenKleur, nieuweKleurData) If gelukt Then Dim kleurenLetters As String = specialLadeNieuweKleurGeefKleurenLetters() Dim nieuweKleurenLetters As String = kleurenLetters.Substring(0, kleurenLetters.IndexOf("-")).Replace(teVervangenKleur, nieuweKleur) nieuweKleurenLetters += "-" & kantenbandNieuweKleur & "-" nieuweKleurenLetters += kleurenLetters.Substring(kleurenLetters.LastIndexOf("-") + 1).Replace(teVervangenKleur, nieuweKleur) PartExt01 = PartExt01.Replace(kleurenLetters, nieuweKleurenLetters) End If End Sub Public Function specialLadeNieuweKleurGeefKleurenLetters() As String Dim kleurenLetters As String = PartExt01.Remove(0, PartExt01.IndexOf("/") + 1) Return kleurenLetters.Substring(0, kleurenLetters.IndexOf("/")) End Function Private Function specialLadeNieuweKleurUpdatePlaatmateriaalEnKleurEnDecor(teVervangenKleur As String, nieuweKleurData As String) As Boolean 'kijken of het wel geüpdate moet worden Dim nieuwePartMat As String = PartMat.Remove(0, PartMat.IndexOf(".") + 1) If nieuwePartMat.ToLower.Contains(teVervangenKleur.ToLower) Then 'updaten plaatmateriaal nieuwePartMat = nieuwePartMat.Remove(0, nieuwePartMat.IndexOf(".")) nieuwePartMat = nieuweKleurData & nieuwePartMat PartMat = nieuwePartMat 'updaten kleur Dim nieuweKleur As String = nieuweKleurData.Remove(0, PartMat.IndexOf(".") + 1) PartExt07 = nieuweKleur 'updaten decor Dim nieuwDecor As String = nieuweKleurData.Substring(0, nieuweKleurData.IndexOf(".")) PartExt08 = nieuwDecor Return True End If Return False End Function #End Region #Region "voorraad" Public Function geefColorDubbelVoorraad(zijkantB As ArdisData, andereZijkantA As ArdisData, andereZijkantB As ArdisData) As String Return GeefKleurBinnen() & "-" & zijkantB.GeefKleurBinnen & "-" & andereZijkantA.GeefKleurBinnen & "-" & andereZijkantB.GeefKleurBinnen End Function Public Sub voorraadStelInitieleWaardenIn(diepte As String, hoogteLetter As String, label As String, kleur As String) PartRef = "Zijkantplaat" 'rol/onderdeel PartQty = "1" 'aantal PartMat = "WORDT VERVANGEN" 'plaatmateriaal" PartCalc = "WORDT VERVANGEN" 'barcode PartRemark2 = "1" 'ladesequenty PartRemark = "NoRework" 'dossiercode PartExt09 = "" 'extrainfo PartL = diepte 'lengte PartW = Configs.geefHoogteDataVoorraad(hoogteLetter) 'breedte PartExt06 = "6,5" 'dikte PartExt07 = kleur 'kleur PartExt08 = "WORDT VERVANGEN" 'decor PartExt01 = label 'etiketlijn1 PartExt02 = "" 'etiketlijn2 PartExt03 = "" 'etiketlijn3 PartExt04 = "WORDT VERVANGEN" 'etiketlijn4 PartExt05 = "NoLabel" 'etiketinfo PartRemark3 = "NoRework" 'rework PartGroup = "99999001" 'kar PartLevel = DateTime.Now.ToString("yyyyMMdd") + "12" 'banding PartExt07 = kleur 'kleur PartMat = Configs.voorraadGeefPlaatmateriaal(kleur) 'plaatmateriaal PartExt08 = PartMat.Substring(0, PartMat.IndexOf(".")) End Sub Public Sub voorraadGenereerBarcodeEnStelEtiketlijnIn(linksOfRechts As LinksOfRechts, hoogteLetter As String, barcodeNummer As String, isSifonlade As Boolean) 'barcodenummer opvullen met nullen (0076) Do Until barcodeNummer.Length = 4 barcodeNummer = "0" & barcodeNummer Loop 'barcode opbouwen Dim barcode As String = "" 'eerste letter (onderdeel) barcode &= "Z" 'tweede letter (breedte) barcode &= hoogteLetter 'derde letter (vast) barcode &= "V" 'cijfer (lengte) barcode &= Configs.voorraadGeefCodeStemasB(Configs.voorraadGeefNettoLengte(PartL)) 'letter voor rechts of links. Als het over een sifonlade gaat nemen we een andere letter. If linksOfRechts = LinksOfRechts.Links Then 'Links barcode &= If(Not isSifonlade, "L", "E") Else 'Rechts barcode &= If(Not isSifonlade, "R", "F") End If 'eerste deel barcodeNummer barcode &= barcodeNummer.Substring(0, 2) 'tussenletter (vast) barcode &= "A" 'tweede deel barcodeNummer barcode &= barcodeNummer.Substring(2) 'nieuwe barcode en etiketlijn4 instellen PartCalc = barcode PartExt04 = barcode End Sub #End Region End Class