Imports System.Diagnostics.Eventing.Reader
Imports System.Text.RegularExpressions
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.
Property AndereZijkantVanPaar As ArdisData
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, isVerlaagdeRug As Boolean, partExt01Zijkant As String)
'PartL updaten.
Dim nieuwePartL = positieSifon - 23.5
'Ticketlijnen en PartL updaten.
SifonladeUpdatePartLEnEtiketlijnen(nieuwePartL, isVerlaagdeRug, RugStuk.Links, partExt01Zijkant)
'Kleur aanpassen.
PasKleurAanSpecial()
End Sub
'''
''' Nieuwe data voor een rechtse rug van een enkele sifonlade.
'''
'''
'''
Public Sub SifonLadeNieuweRug2Data(rest As Double, isVerlaagdeRug As Boolean, partExt01Zijkant As String)
'PartL berekenen.
Dim nieuwePartL = rest - 23.5
'Ticketlijnen en PartL updaten.
SifonladeUpdatePartLEnEtiketlijnen(nieuwePartL, isVerlaagdeRug, RugStuk.Rechts, partExt01Zijkant)
'Kleur aanpassen.
PasKleurAanSpecial()
End Sub
'''
''' Nieuwe data voor de middelste rug.
'''
'''
Public Sub SifonLadeNieuweRugMData(breedteMiddenstuk As Double, partExt01Zijkant 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(nieuwePartL, False, RugStuk.Midden, partExt01Zijkant)
'Kleur aanpassen.
PasKleurAanSpecial()
End Sub
'''
''' PartExt01 aanpassen.
'''
Private Sub SifonLadeUpdateEtiketLijn1Rug(partExt01Zijkant 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
Dim r = New Regex("\/\w*-(\w*)-\w*\/", RegexOptions.IgnoreCase)
Dim m As Match = r.Match(partExt01Zijkant)
If Not m.Success Then
Throw New Exception("Kon materiaal voor etiketlijn 1 van een rug niet updaten, de juiste kleur is niet aanwezig in de partExt01 van de zijkant.")
End If
Dim materiaalZijkant = m.Groups(1).Value
PartExt01 = $"{PartRef.Substring(0, 3)}/{PartExt07}-{materiaalZijkant}/{PartL}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(nieuwePartL As Double, isVerlaagdeRug As Boolean, rugstuk As RugStuk, partExt01Zijkant As String)
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.
If (nieuwePartL + 5 <= Configs.SifonLadeGeefMinimumLengteRug()) Then
'Nieuwe PartL is niet in grensgebied (195-200)
PartL = Configs.SifonLadeGeefMinimumLengteRug()
Else
PartL = nieuwePartL + 5
End If
End If
SifonLadeUpdateEtiketLijn1Rug(partExt01Zijkant)
'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
'PartExt04 aanpassen met nieuwe barcode.
PartExt04 = PartCalc & PartExt04.Substring(PartExt04.IndexOf("/"))
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