Index: TAOR-rework-bugfixing/TAOR rework/laden/special laden/Sifonladen/SifonLadeDto.vb =================================================================== diff -u --- TAOR-rework-bugfixing/TAOR rework/laden/special laden/Sifonladen/SifonLadeDto.vb (revision 0) +++ TAOR-rework-bugfixing/TAOR rework/laden/special laden/Sifonladen/SifonLadeDto.vb (revision 1628) @@ -0,0 +1,13 @@ +''' +''' Een lege klasse die enkel dient om waarden bij te houden. +''' +Public Class SifonLadeDto + 'Afmetingen + Public Property KastBreedte As Double + Public Property LadeDiepte As Double + Public Property KleurBinnen As String + Public Property PositieSifonuitsparingL As Double + Public Property PositieSifonuitsparingR As Double + Public Property BreedteSifonuitsparing As Double + Public Property DiepteSifonuitsparing As Double +End Class Index: TAOR-rework-bugfixing/TAOR rework/laden/special laden/Sifonladen/ISifonLade.vb =================================================================== diff -u --- TAOR-rework-bugfixing/TAOR rework/laden/special laden/Sifonladen/ISifonLade.vb (revision 0) +++ TAOR-rework-bugfixing/TAOR rework/laden/special laden/Sifonladen/ISifonLade.vb (revision 1628) @@ -0,0 +1,20 @@ +Public Interface ISifonLade + 'Onderdelen + Property BuitenzijkantL As Zijkant + Property BuitenzijkanttR As Zijkant + Property BinnenzijkantL1 As Zijkant + Property BinnenzijkantR1 As Zijkant + property Front As Front + Property Bodem As Bodem + Property RugL As Rug + Property RugR As Rug + + 'Afmetingen + Property KastBreedte As Double + Property LadeDiepte As Double + Property KleurBinnen As String + Property PositieSifonuitsparingL As Double + Property PositieSifonuitsparingR As Double + Property BreedteSifonuitsparing As Double + Property DiepteSifonuitsparing As Double +End Interface FishEye: Tag 1628 refers to a dead (removed) revision in file `TAOR-rework-bugfixing/TAOR rework/Domeincontroller.vb'. FishEye: No comparison available. Pass `N' to diff? Index: TAOR-rework-bugfixing/TAOR rework/controllers/SifonLadeController.vb =================================================================== diff -u --- TAOR-rework-bugfixing/TAOR rework/controllers/SifonLadeController.vb (revision 0) +++ TAOR-rework-bugfixing/TAOR rework/controllers/SifonLadeController.vb (revision 1628) @@ -0,0 +1,64 @@ +Public Class SifonLadeController + Private Shared _instance As SifonLadeController + + Private ReadOnly _specialLadenRep As SpecialLadenRepository + + Public Sub New() + _specialLadenRep = New SpecialLadenRepository + End Sub + + Public Shared Function GetInstance() As SifonLadeController + If _instance Is Nothing Then + _instance = New SifonLadeController + End If + Return _instance + End Function + + 'informatie opvragen over de sifonLade + Public Function GeefInformatieSifonLade() As SifonLadeDto + 'De eerste sifonlade opvragen. + Dim sifonLade As ISifonLade = _specialLadenRep.geefSifonLade(0) + 'De DTO converter aanmaken. + Dim dtoConverter = New SifonLadeDtoConverter + 'Sifonlade converteren en retourneren als DTO. + Return dtoConverter.ToDto(sifonLade) + End Function + + Private Sub verdeelSifonLadenOverReworkTrays() + Dim zijkanten As New List(Of ArdisData) + For Each sifonLade In _specialLadenRep.sifonLaden + 'zijkanten + zijkanten.AddRange(sifonLade.zijkanten) + Next + 'special rework trays laten verwerken + 'todo voegReworkTraysSpecialLadeToe(zijkanten) + End Sub + + Private Sub slaSifonLadenOp() + 'todo Dim hoofdAansturingSifonLade As HoofdAansturingSpecialLade = New HoofdAansturingSifonLade(reworkTrayRep) + 'hoofdAansturingSifonLade.verwerkenSpecialLadeMetTrays(_specialLadenRep.sifonLaden) + End Sub + + 'verplaatsen van de sifon laden uit het bestand naar de directory meegegeven in het config bestand en de niet verwerkte in het bestand terug zetten + Public Sub verplaatsVerwerkteSifonLaden() + Try + Dim bestandsNaam As String = _specialLadenRep.bestandsNaam + + For Each sifonLade In _specialLadenRep.sifonLaden + 'alle onderdelen afgaan + 'zijkanten + For Each zijkant As ArdisData In sifonLade.zijkanten + ArdisTextMapper.opslaanSifonLadeVoorVerwerking(zijkant, bestandsNaam) + Next + 'rug + ArdisTextMapper.opslaanSifonLadeVoorVerwerking(sifonLade.rug, bestandsNaam) + 'bodem + ArdisTextMapper.opslaanSifonLadeVoorVerwerking(sifonLade.bodem, bestandsNaam) + Next + ArdisTextMapper.stopArdisTextOpslag() + Catch ex As Exception + Throw New Exception("Er is iets foutgelopen bij het verplaatsen van het uitgelezen sifonLade bestand naar een andere folder" & vbNewLine & ex.Message) + End Try + End Sub + +End Class Index: TAOR-rework-bugfixing/TAOR rework/laden/special laden/Sifonladen/SifonLadeV2.vb =================================================================== diff -u --- TAOR-rework-bugfixing/TAOR rework/laden/special laden/Sifonladen/SifonLadeV2.vb (revision 0) +++ TAOR-rework-bugfixing/TAOR rework/laden/special laden/Sifonladen/SifonLadeV2.vb (revision 1628) @@ -0,0 +1,26 @@ +Public Class SifonLadeV2 + Implements ISifonLade + +#Region "Onderdelen" + Public Property BuitenzijkantL As Zijkant Implements ISifonLade.BuitenzijkantL + Public Property BuitenzijkanttR As Zijkant Implements ISifonLade.BuitenzijkanttR + Public Property BinnenzijkantL1 As Zijkant Implements ISifonLade.BinnenzijkantL1 + Public Property BinnenzijkantR1 As Zijkant Implements ISifonLade.BinnenzijkantR1 + Public Property Front As Front Implements ISifonLade.Front + Public Property Bodem As Bodem Implements ISifonLade.Bodem + Public Property RugL As Rug Implements ISifonLade.RugL + Public Property RugR As Rug Implements ISifonLade.RugR + +#End Region + +#Region "Afmetingen" + Public Property KastBreedte As Double Implements ISifonLade.KastBreedte + Public Property LadeDiepte As Double Implements ISifonLade.LadeDiepte + Public Property KleurBinnen As String Implements ISifonLade.KleurBinnen + Public Property PositieSifonuitsparingL As Double Implements ISifonLade.PositieSifonuitsparingL + Public Property PositieSifonuitsparingR As Double Implements ISifonLade.PositieSifonuitsparingR + Public Property BreedteSifonuitsparing As Double Implements ISifonLade.BreedteSifonuitsparing + Public Property DiepteSifonuitsparing As Double Implements ISifonLade.DiepteSifonuitsparing +#End Region + +End Class Index: TAOR-rework-bugfixing/TAOR rework/controllers/Domeincontroller.vb =================================================================== diff -u --- TAOR-rework-bugfixing/TAOR rework/controllers/Domeincontroller.vb (revision 0) +++ TAOR-rework-bugfixing/TAOR rework/controllers/Domeincontroller.vb (revision 1628) @@ -0,0 +1,1085 @@ +Imports TA_OR_Rework +Imports TA_OR_rework.SpecialLadenRepository + +Public Class Domeincontroller + Private Shared instance As Domeincontroller + Private reworkRep As ReworkRepository + Private reworkTrayslotRep As ReworkTraySlotRepository + Private reworkTrayRep As ReworkTrayRepository + Private reworkRedenenRep As ReworkRedenenRepository + Private testLadenRep As TestLadenRepository + Private hoofdAansturingRework As HoofdAansturingRework + Private specialLadenRep As SpecialLadenRepository + Private voorraadRepository As VoorraadItemRepository + Private stalenRepository As StalenRepository + + Private Sub New() + reworkRep = New ReworkRepository + reworkTrayslotRep = New ReworkTraySlotRepository + reworkTrayRep = New ReworkTrayRepository + reworkRedenenRep = New ReworkRedenenRepository + testLadenRep = New TestLadenRepository + hoofdAansturingRework = New HoofdAansturingRework + specialLadenRep = New SpecialLadenRepository + voorraadRepository = New VoorraadItemRepository + stalenRepository = New StalenRepository + End Sub + + Public Shared Function getInstance() As Domeincontroller + If instance Is Nothing Then + instance = New Domeincontroller + End If + Return instance + End Function + +#Region "reworks" + +#Region "reworks toevoegen, rework redenen, wijzigen en verwijderen" + + Public Function geefReworkOnderdeelMachines(ByVal onderdeelNaam As String) As List(Of String) + Dim machines As New List(Of String) + Try + For Each machine As Machine In reworkRedenenRep.geefReworkOnderdeel(onderdeelNaam).Machines + machines.Add(machine.Label) + Next + Catch ex As Exception + MessageBox.Show("Er is iets foutgelopen bij het opvragen van de machines voor de reworkRedenen (dc) met onderdeel: " & onderdeelNaam & vbNewLine & ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error) + Application.Exit() + End Try + Return machines + End Function + + 'opvragen van een reworkOnderdeel (wordt gebruikt om reden te selecteren) + Public Function geefReworkOnderdeelRedenen(ByVal onderdeelNaam As String, ByVal machineNaam As String) As List(Of String()) + Dim redenen As New List(Of String()) + Try + For Each reden As Reden In reworkRedenenRep.geefMachine(onderdeelNaam, machineNaam).redenen + Dim redenCodeEnLabel(1) As String + redenCodeEnLabel(0) = reden.Label + redenCodeEnLabel(1) = reden.Code + redenen.Add(redenCodeEnLabel) + Next + Catch ex As Exception + MessageBox.Show("Er is iets foutgelopen bij het opvragen van de redenen voor de reworkRedenen bij een machine (dc) met onderdeel: " & onderdeelNaam & " en machinenaam: " & machineNaam & vbNewLine & ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error) + Application.Exit() + End Try + Return redenen + End Function + + Public Sub addRework(ByVal barcode As String, ByVal reden() As String, ByVal onderdeel As String, ByVal voorVoorraad As String) + reworkRep.addRework(New Rework(barcode, reden, onderdeel, voorVoorraad)) + End Sub + + Public Sub verwijderRework(ByVal barcode As String) + If reworkRep.bestaatRework(barcode) Then + reworkRep.verwijderRework(reworkRep.geefRework(barcode)) + Else + Throw New Exception("De rework bestaat niet en kan dus niet worden verwijderd") + End If + End Sub + + Public Function geefAantalReworks() As Integer + Return reworkRep.aantalReworks + End Function + + Public Function geefReworks() As List(Of String()) + Dim reworks As List(Of String()) = New List(Of String()) + + For Each reworkClass As Rework In reworkRep.getReworks + Dim rework(3) As String + rework(0) = reworkClass.barcode + rework(1) = reworkClass.onderdeel + rework(2) = reworkClass.redenLabel + rework(3) = reworkClass.opslaanArdis + reworks.Add(rework) + Next + Return reworks + End Function + + Public Function bestaatRework(ByVal barcode As String) + Dim gevonden As Boolean = False + For Each rework As Rework In reworkRep.getReworks + If rework.barcode.Equals(barcode) Then + gevonden = True + End If + Next + Return gevonden + End Function + + Public Sub wijzigOpslaanArdisRework(ByVal barcode As String) + If reworkRep.bestaatRework(barcode) Then + reworkRep.wijzigOpslaanArdis(reworkRep.geefRework(barcode)) + Else + Throw New Exception("De rework bestaat niet en opslag Ardis kan dus niet worden aangepast") + End If + End Sub + + Public Sub verwijderAlleReworks() + reworkRep.verwijderAlleReworks() + End Sub + +#End Region + +#Region "reworks verwerken" + + Public Sub verwerkReworks() + 'de reworks die niet in een van de trays zitten (dus geen zijkant zijn) verwerken + For Each rework As Rework In reworkRep.getReworks + Dim onderdeel As String = rework.onderdeel.ToLower.Trim + Select Case onderdeel + Case "front" + hoofdAansturingRework.verwerkFront(rework) + Case "rug" + hoofdAansturingRework.verwerkRug(rework) + Case "bodem" + hoofdAansturingRework.verwerkBodem(rework) + Case Else + If Not onderdeel.Contains("zijkant") Then + MsgBox($"Tussen de geselecteerde reworks zit een onderdeel waar nog geen productieproces voor is gedefinieerd, gelieve dit aan te passen in de Domeincontroller en HoofdAansturing, het onderdeel in kwestie is: {onderdeel.ToUpper}") + End If + End Select + Next + Try + 'de reworktrays verwerken en data aanpassen + For Each ReworkTray As ReworkTray In reworkTrayRep.reworkTrays + hoofdAansturingRework.verwerkTray(ReworkTray) + Next + Catch ex As Exception + reworkTrayRep.verwijderReworkTrays() + Throw ex + End Try + + ArdisTextMapper.stopArdisTextOpslag() + + 'alle reworks hun redenen opslaan in Caché + If Configs.geefVerwerkStatus Then + reworkRep.slaAlleReworkRedenenOp() + End If + + 'alle reworks verwijderen + reworkRep.verwijderAlleReworks() + End Sub + + Public Sub verdeelReworkZijkantenOverReworkTray() + If Not (reworkTrayRep.reworkTrays Is Nothing OrElse reworkTrayRep.reworkTrays.Count >= 0) Then + reworkTrayRep.verwijderReworkTrays() + Throw New Exception("De rework zijkanten waren al verdeeld over de reworktray, nu niet meer.") + End If + + 'de reworks vervolledigen met extra informatie + reworkRep.updateAllReworks() + + Try + Dim reworks As List(Of Rework) = reworkRep.getReworks() + Dim zijkanten As New List(Of Rework) + For Each rework As Rework In reworks + If rework.onderdeel.ToUpper.Contains("ZIJKANT") Then + zijkanten.Add(rework) + End If + Next + If zijkanten.Count > 0 Then + handelZijkantReworkAf(zijkanten) + End If + + For Each reworkTray As ReworkTray In reworkTrayRep.reworkTrays + hoofdAansturingRework.updateTray(reworkTray) + Next + Catch ex As Exception + MessageBox.Show("Er is iets foutgelopen bij het verwerken van de zijkantreworks (dc) " & ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error) + reworkRep.verwijderAlleReworks() + reworkTrayRep.verwijderReworkTrays() + End Try + End Sub + + Private Sub handelZijkantReworkAf(ByVal reworkZijkanten As List(Of Rework)) + Dim zelfdeBatchEnDossier As New List(Of List(Of Rework)) + + Dim batch As String = "" + Dim dossierCode As String = "" + Do While reworkZijkanten.Count >= 1 + batch = reworkZijkanten(0).batch + dossierCode = reworkZijkanten(0).dossierCode + + Dim eenBatchEnDossier As New List(Of Rework) + eenBatchEnDossier.Add(reworkZijkanten(0)) + reworkZijkanten.RemoveAt(0) + + Dim teller As Integer = 0 + Do While teller < reworkZijkanten.Count + If reworkZijkanten(teller).batch.Equals(batch) And reworkZijkanten(teller).dossierCode.Equals(dossierCode) Then + eenBatchEnDossier.Add(reworkZijkanten(teller)) + reworkZijkanten.RemoveAt(teller) + Else + teller += 1 + End If + Loop + + zelfdeBatchEnDossier.Add(eenBatchEnDossier) + Loop + + Dim paren As New List(Of Rework()) + Dim enkelen As New List(Of Rework) + + + Do While zelfdeBatchEnDossier.Count > 0 + Dim gesplitsteReworksBatchEnDossier As List(Of Rework) = zelfdeBatchEnDossier(0) + zelfdeBatchEnDossier.RemoveAt(0) + + Do While gesplitsteReworksBatchEnDossier.Count > 0 + Dim isGevonden As Boolean = False + Dim type As String = gesplitsteReworksBatchEnDossier(0).barcode.Substring(5, 1) + For Each mogelijkZelfdeType As Rework In gesplitsteReworksBatchEnDossier + If Not gesplitsteReworksBatchEnDossier(0).Equals(mogelijkZelfdeType) Then + Dim anderType As String = mogelijkZelfdeType.barcode.Substring(5, 1) + 'kijken of de types paren vormen, in de twee richtingen + If (type.Equals("A") And anderType.Equals("B")) Or (type.Equals("B") And anderType.Equals("A")) Or + (type.Equals("L") And anderType.Equals("R")) Or (type.Equals("R") And anderType.Equals("L")) Or + (type.Equals("C") And anderType.Equals("D")) Or (type.Equals("D") And anderType.Equals("C")) Or + (type.Equals("E") And anderType.Equals("F")) Or (type.Equals("F") And anderType.Equals("E")) Or + (type.Equals("A") And anderType.Equals("A")) Or + (type.Equals("B") And anderType.Equals("B")) Or + (type.Equals("L") And anderType.Equals("L")) Or + (type.Equals("R") And anderType.Equals("R")) Or + (type.Equals("C") And anderType.Equals("C")) Or + (type.Equals("D") And anderType.Equals("D")) Or + (type.Equals("E") And anderType.Equals("E")) Or + (type.Equals("F") And anderType.Equals("F")) Then + Dim paar(1) As Rework + paar(0) = gesplitsteReworksBatchEnDossier(0) + paar(1) = mogelijkZelfdeType + paren.Add(paar) + gesplitsteReworksBatchEnDossier.Remove(gesplitsteReworksBatchEnDossier(0)) + gesplitsteReworksBatchEnDossier.Remove(mogelijkZelfdeType) + isGevonden = True + Exit For + End If + End If + If gesplitsteReworksBatchEnDossier.Count <= 0 Then + Exit For + End If + Next + If Not isGevonden Then + enkelen.Add(gesplitsteReworksBatchEnDossier(0)) + gesplitsteReworksBatchEnDossier.RemoveAt(0) + End If + + Loop + Loop + + + verdeelParenEnEnkeleOverTrays(paren, enkelen) + End Sub + + Dim traynummer As Integer = 0 + Private Sub verdeelParenEnEnkeleOverTrays(ByVal paren As List(Of Rework()), ByVal enkel As List(Of Rework)) + + Do While paren.Count > 0 Or enkel.Count > 0 + Dim reworkTray As ReworkTray = New ReworkTray(reworkTrayslotRep.slots) + + Do While paren.Count > 0 + If Not reworkTray.parenVol Then + reworkTray.voegPaarToe(paren(0)) + paren.RemoveAt(0) + Else + Exit Do + End If + Loop + + Do While enkel.Count > 0 + If Not reworkTray.enkelVol Then + reworkTray.voegEnkelToe(enkel(0)) + enkel.RemoveAt(0) + Else + Exit Do + End If + Loop + + reworkTrayRep.addReworkTray(reworkTray) + Loop + End Sub + +#End Region + +#End Region + +#Region "opvragen info rework trays en verwijderen" + + Public Function geefTypeInReworkTray() As ItemType + If voorraadRepository.zijnErVoorraadItems Then + Return ItemType.VOORRAAD + End If + If specialLadenRep.zijnErSpecialLaden Then + Return specialLadenRep.typeLade + End If + If reworkRep.aantalReworks > 0 Or reworkTrayRep.aantalReworkTrays > 0 Then + Return ItemType.REWORK + End If + If _gekozenZijkanten.Count > 0 Then + Return ItemType.TESTLADE + End If + Throw New Exception("Type in rework tray is niet gedefinieerd") + End Function + + Public Function geefAantalReworkTrays() As Integer + Return reworkTrayRep.aantalReworkTrays() + End Function + + Public Function geefReworkTrayNummer(index As Integer) As String + Return reworkTrayRep.geefReworkTrayNummer(index) + End Function + + 'inhoud van alle slots van een reworktray geven + Public Function geefSlotsReworkTray(index As Integer) As List(Of List(Of String)) + Dim trays As New List(Of List(Of String)) + Try + + ' For Each slot As Slot In reworktrayRep.reworkTrays(0).geefNietLegeSlots() + For teller As Integer = 0 To reworkTrayRep.reworkTrays(index).slots.Count - 1 + Dim slot As Slot = reworkTrayRep.reworkTrays(index).slots(teller) + Dim content As New List(Of String) + If Not (slot.zijkanten Is Nothing OrElse slot.zijkanten.Count <= 0) Then + content.Add(slot.nummer) + content.Add(slot.zijkanten(0).barcode) + content.Add(slot.zijkanten(0).batch) + content.Add(slot.zijkanten(0).color) + content.Add(slot.zijkanten(0).length) + content.Add(slot.zijkanten(0).height) + Else + 'de cijfers toch meegeven, maar gewoon geen andere informatie meegeven + content.Add(teller + 1) + content.Add("") + content.Add("") + content.Add("") + content.Add("") + content.Add("") + End If + + trays.Add(content) + Next + Return trays + Catch ex As Exception + MessageBox.Show("Er is een fout opgetreden bij het opvragen van een reworktray (dc)" & ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error) + Return Nothing + End Try + End Function + + 'verwijderen van alle reworkTrays + Public Sub verwijderReworkTrays() + _gekozenZijkanten.Clear() + reworkTrayRep.verwijderReworkTraysSpecialLade() + reworkTrayRep.verwijderReworkTrays() + End Sub + +#Region "special laden rework trays" + + Function geefSpecialAantalReworkTrays() As Integer + Return reworkTrayRep.aantalReworkTraysSpecial + End Function + + Public Function geefSpecialLadeReworkTrayNummer(index As Integer) As String + Return reworkTrayRep.geefSpecialLadeReworkTrayNummer(index) + End Function + + 'inhoud van alle slots van een reworktray geven + Public Function geefSlotsSpecialReworkTray(index As Integer) As List(Of List(Of String)) + Dim trays As New List(Of List(Of String)) + Try + For teller As Integer = 0 To reworkTrayRep.reworkTraysSpecialLaden(index).slots.Count - 1 + Dim slot As Slot = reworkTrayRep.reworkTraysSpecialLaden(index).slots(teller) + Dim content As New List(Of String) + If Not (slot.zijkantenSpeciaal Is Nothing OrElse slot.zijkantenSpeciaal.Count <= 0) Then + 'voorraad + content.Add(slot.nummer) + content.Add(slot.zijkantenSpeciaal(0).PartCalc) + content.Add(slot.zijkantenSpeciaal(0).geefBatch) + If slot.zijkantenSpeciaal.Count = 4 Then 'voorraad + content.Add(slot.zijkantenSpeciaal(0).geefColorDubbelVoorraad(slot.zijkantenSpeciaal(1), slot.zijkantenSpeciaal(2), slot.zijkantenSpeciaal(3))) + ElseIf slot.type = SlotType.enkel Then 'voorraad met 1 zijkant + content.Add(slot.zijkantenSpeciaal(0).geefColorEnkel(slot.zijkantenSpeciaal(1))) + Else + content.Add(slot.zijkantenSpeciaal(0).geefColorDubbel(slot.zijkantenSpeciaal(1))) + End If + + content.Add(slot.zijkantenSpeciaal(0).PartL) + content.Add(slot.zijkantenSpeciaal(0).PartW) + Else 'leeg slot + 'de cijfers wel, maar gewoon geen andere informatie meegeven + content.Add(teller + 1) + content.Add("") + content.Add("") + content.Add("") + content.Add("") + content.Add("") + End If + + trays.Add(content) + Next + Return trays + Catch ex As Exception + MessageBox.Show("Er is een fout opgetreden bij het opvragen van een special lade reworktray" & ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error) + Return Nothing + End Try + End Function + +#End Region + +#End Region + +#Region "labels" + + 'geven van de data die op een ticket komt + Public Function geefLabelData(barcode As String) As String() + Try + Dim ardisData As ArdisData = ArdisMapper.OphalenData(barcode) + If ardisData Is Nothing Then + Throw New Exception("Er is iets foutgelopen bij het ophalen van de ArdisData met een barcode, de barcode heeft geen resultaat opgeleverd in Ardis") + End If + Dim retourString(4) As String + retourString(0) = ardisData.PartCalc + retourString(1) = ardisData.PartExt01 + retourString(2) = ardisData.PartExt02 + retourString(3) = ardisData.PartExt03 + retourString(4) = ardisData.PartExt04 + Return retourString + Catch ex As Exception + Throw ex + End Try + End Function + + Public Function geefLabelTemplates() As List(Of String) + Return Configs.templateNamen + End Function + + Public Function geefLabelPrinters() As List(Of String) + Return Configs.printerNamen + End Function + + 'het ticket aan de mapper geven met de eventueel aangepaste data + Public Sub schrijfLabel(ByVal partCalc As String, ByVal partExt1 As String, ByVal partExt2 As String, ByVal partExt3 As String, ByVal partExt4 As String, ByVal template As String, ByVal printer As String) + If Not (template Is Nothing OrElse template.Equals("") OrElse printer Is Nothing OrElse printer.Equals("")) Then + BartenderTextMapper.writeToFile(partCalc, partExt1, partExt2, partExt3, partExt4, Configs.geefTemplateData(template), Configs.geefPrinterData(printer)) + Else + MessageBox.Show("Ongeldige template of printer ingesteld bij het schrijven van een label", "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error) + End If + End Sub + +#End Region + +#Region "testladen" + + 'opvragen van een lijst van alle test laden namen + Public Function geefTestLadeNamen() As List(Of String) + Return testLadenRep.geefTestLadeNamen + End Function + + Public Sub selecteerTestLade(naam As String) + testLadenRep.selecteerTestLade(naam) + End Sub + + 'opvragen van de testladen + Public Function geefTestLadeInfo() As List(Of String) + Dim testLadeInfo As New List(Of String) + Dim lade As TestLade = testLadenRep.geefTestLade() + testLadeInfo.Add(lade.Label) + testLadeInfo.Add(lade.AantalKeer) + testLadeInfo.Add(testLadenRep.testLadeBevatZijkant()) + testLadeInfo.Add(testLadenRep.testLadeBevatFront()) + testLadeInfo.Add(testLadenRep.testLadeBevatRug()) + testLadeInfo.Add(testLadenRep.testLadeBevatBodem()) + testLadeInfo.Add(lade.WordtVerdeeldOverReworkTray) + Return testLadeInfo + End Function + + 'updaten van de informatie van de testladen en eventueel verwerken + Private _gekozenZijkanten As New List(Of OnderdeelTestLade) + Private _gekozenOnderdelen As New List(Of List(Of OnderdeelTestLade)) + Private _wordtVerdeeldOverReworkTray As Boolean + Public Sub updateEnVerdeelTestLade(aantalKeer As Integer, onderdelenKeuzes As Boolean(), wordtVerdeeldOverReworkTray As Boolean) + _wordtVerdeeldOverReworkTray = wordtVerdeeldOverReworkTray + Dim lade As TestLade = testLadenRep.geefTestLade() + 'De geselecteerde onderdelen eruit halen + Dim gekozenOnderdeelNamen As List(Of String) = testLadenRep.geefGekozenOnderdelen(onderdelenKeuzes) + _gekozenOnderdelen = lade.geefLijstVanOnderdelenDoorAantal(gekozenOnderdeelNamen, aantalKeer) + + Dim zijkanten As New List(Of ArdisData) + For Each onderdelenVanTestladeGroep As List(Of OnderdeelTestLade) In _gekozenOnderdelen + 'sleutels worden hermaakt per testlade + Dim sleutels As List(Of Sleutel) = lade.genereerSleutels() + For Each onderdeel As OnderdeelTestLade In onderdelenVanTestladeGroep + 'we geven nu nog het default traynummer mee, ook voor demoladen, kan nadien nog worden overschreven + onderdeel.updateOnderdeel(sleutels, lade.TrayNummer) + + 'zijkanten worden over rework tray verdeeld + If wordtVerdeeldOverReworkTray And onderdeel.Label.ToLower.Equals("zijkant") Then + zijkanten.AddRange(onderdeel.MachinesArdis) + _gekozenZijkanten.Add(onderdeel) + End If + Next + Next + If zijkanten.Count > 0 Then + voegReworkTraysSpecialLadeToe(zijkanten) + End If + End Sub + + Public Sub verwerkTestLaden() + Try + For Each lade As List(Of OnderdeelTestLade) In _gekozenOnderdelen + HoofdAansturingTestLade.verwerkTestLade(lade, _wordtVerdeeldOverReworkTray) + Next + + If reworkTrayRep.aantalReworkTraysSpecial > 0 Then + testLadeVerwerkZijkantOnderdeel() + End If + + _gekozenOnderdelen.Clear() + ArdisTextMapper.stopArdisTextOpslag() + Catch ex As Exception + Throw New Exception("Kon test laden niet verwerken" & vbNewLine & ex.Message) + Finally + ArdisTextMapper.stopArdisTextOpslag() + End Try + End Sub + + Private Sub testLadeVerwerkZijkantOnderdeel() + Try + For Each onderdeel As OnderdeelTestLade In _gekozenZijkanten + 'updaten met de juiste info van de rework trays + If onderdeel.MachinesArdis Is Nothing OrElse onderdeel.MachinesArdis.Count <= 0 Then + Throw New Exception("Er zijn geen machines ardis aanwezig en kan dus barcode voor tray niet opvragen") + End If + + Dim trayEnSlotNummer As String() = reworkTrayRep.geefReworkTrayEnSlotNummerBijBarcode(onderdeel.MachinesArdis(0).PartCalc) + If trayEnSlotNummer Is Nothing Then + Throw New Exception("Kon tray -en slotnummer niet opvragen bij barcode: '" & onderdeel.MachinesArdis(0).PartCalc & "'") + End If + + For Each zijkamerFreesProductieData As ZijkamerFreesProductieData In onderdeel.MachinesZijkantfrees + zijkamerFreesProductieData.testLadeUpdateTrayEnSlotNummer(trayEnSlotNummer(0), trayEnSlotNummer(1)) + Next + + HoofdAansturingTestLade.verwerkTestOnderdeel(onderdeel) + Next + Catch ex As Exception + Throw New Exception("Kon zijkant onderdeel niet verwerken" & vbNewLine & ex.Message) + End Try + End Sub + +#End Region + +#Region "special laden" + + 'kiezen van de special laden + Public Sub kiesSpecialLaden(code As String, type As ItemType) + specialLadenRep.kiesSpecialLaden(code, type) + End Sub + + 'opvragen van het type special lade dat is gekozen + Public Function geefTypeSpecialLade() As ItemType + If voorraadRepository.zijnErVoorraadItems Then + Return ItemType.VOORRAAD + End If + Return specialLadenRep.typeLade + End Function + + 'opvragen van alle onderdelen van een special lade met de bijhorende barcodes + Public Function geefSpecialLadenOnderdelenEnBarcodes() As List(Of String()) + Dim specialLadenOnderdelenEnBarcodes As New List(Of String()) + For Each specialLade As SpecialLade In specialLadenRep.specialLaden + specialLadenOnderdelenEnBarcodes.AddRange(specialLade.geefOnderdelenEnBarcodes) + Next + Return specialLadenOnderdelenEnBarcodes + End Function + + 'opvragen van aantal special laden + Public Function geefAantalSpecialLaden() As Integer + Return specialLadenRep.aantalSpecialLaden + End Function + + 'kijken of er special laden er in het bestand zitten + Public Function heeftNogExtraSpecialLaden() As Boolean + Return specialLadenRep.zijnErNogExtraSpecialLaden() + End Function + + 'verdelen van de special laden over de rework trays, waar mogelijk + Public Sub verdeelOverReworkTrays() + Dim typeLade As ItemType = specialLadenRep.typeLade + If Not specialLadenRep.zijnErSpecialLaden Then + If voorraadRepository.zijnErVoorraadItems Then + typeLade = ItemType.VOORRAAD + Else + Throw New Exception("Er zijn geen special laden voor verwerking aanwezig") + End If + End If + Try + Select Case typeLade + Case ItemType.VOORRAAD + For Each voorraadItem As VoorraadItem In voorraadRepository.voorraadItems + voorraadItem.genereerZijkantArdisData() + Next + verdeelVoorraadItemsOverTrays() + For Each voorraadItem As VoorraadItem In voorraadRepository.voorraadItems + voorraadItem.genereerZijkantAutomillingData() + voorraadItem.genereerZijkantKantenbandDatas() + Next + Case ItemType.SIFONLADE + specialLadenRep.updateDataSpecialLaden() + 'de extra zijkanten en ruggen toevoegen + specialLadenRep.maakExtraOnderdelenSifonLaden() + 'de etiketlijnen updaten + specialLadenRep.updateEtiketLijnSifonLaden() + + verdeelSifonLadenOverReworkTrays() + Case ItemType.DUBBELESIFONLADE + specialLadenRep.updateDataSpecialLaden() + 'de extra zijkanten en ruggen toevoegen + specialLadenRep.maakExtraOnderdelenSpoelbakLaden() + 'de etiketlijnen updaten + specialLadenRep.updateEtiketLijnSpoelbakLaden() + + verdeelSpoelbakLadenOverReworkTrays() + Case Else + specialLadenRep.verwijderSpecialLaden() + reworkTrayRep.verwijderReworkTraysSpecialLade() + Throw New Exception("Type '" & EnumMapper.GeefTekstVanEnumOptie(specialLadenRep.typeLade) & "' kan niet verdeeld worden over rework trays") + End Select + Catch ex As Exception + specialLadenRep.verwijderSpecialLaden() + reworkTrayRep.verwijderReworkTraysSpecialLade() + Throw New Exception("De special laden konden niet worden verdeeld over rework trays" & vbNewLine & ex.Message) + End Try + End Sub + + 'verwerken van alle mogelijke special laden + Public Sub verwerkSpecialLaden() + Dim typeLade As ItemType = specialLadenRep.typeLade + If Not specialLadenRep.zijnErSpecialLaden Then + If voorraadRepository.zijnErVoorraadItems Then + typeLade = ItemType.VOORRAAD + Else + Throw New Exception("Er zijn geen special laden voor verwerking aanwezig") + End If + End If + Try + Select Case typeLade + Case ItemType.VOORRAAD + slaVoorraadItemsOp() + Case ItemType.DIEPEREZIJKANT + specialLadenRep.updateDataSpecialLaden() + slaSpecialLadenDiepereZijkantOp() + specialLadenRep.verwijderSpecialLaden() + Case ItemType.HOGEREZIJKANT + specialLadenRep.updateDataSpecialLaden() + slaSpecialLadenHogereZijkantOp() + specialLadenRep.verwijderSpecialLaden() + Case ItemType.NIEUWEKLEUR + specialLadenRep.updateDataSpecialLaden() + slaSpecialLadenNieuweKleurOp() + specialLadenRep.verwijderSpecialLaden() + Case ItemType.SIFONLADE + slaSifonLadenOp() + Case ItemType.DUBBELESIFONLADE + slaSpoelbakLadenOp() + Case ItemType.GEEN + specialLadenRep.verwijderSpecialLaden() + reworkTrayRep.verwijderReworkTraysSpecialLade() + Throw New Exception("Er zijn geen special laden om te verwerken") + Case Else + specialLadenRep.verwijderSpecialLaden() + reworkTrayRep.verwijderReworkTraysSpecialLade() + Throw New Exception("Type '" & EnumMapper.GeefTekstVanEnumOptie(specialLadenRep.typeLade) & "' heeft geen verwerking") + End Select + + Catch ex As Exception + Throw New Exception("De special laden konden niet worden verwerkt" & vbNewLine & ex.Message) + End Try + + ArdisTextMapper.stopArdisTextOpslag() + End Sub + + 'verwijderen van alle special laden + Public Sub verwijderAlleSpecialLaden() + specialLadenRep.verwijderSpecialLaden() + End Sub + +#Region "specialLadeDiepereZijkant" + + 'informatie opvragen over de special lade diepere zijkant + Public Function geefInformatieSpecialLadeDiepereZijkant() As List(Of String) + Dim specialLade As SpecialLadeDiepereZijkant = specialLadenRep.geefSpecialLadeDiepereZijkant(0) + Dim informatie As New List(Of String) + informatie.Add(specialLadenRep.bestandsNaam) + informatie.Add(specialLade.geefBatch) 'batch ID + informatie.Add(specialLade.geefOrigineleBarcodeDeel) + Return informatie + End Function + + 'waarden instellen voor de specialLadeDiepereZijkant + Public Sub specialLadeDiepereZijkantStelWaardenIn(diepteVerschil As Integer, barcodeDeel As String) + specialLadenRep.specialLadeDiepereZijkantStelDiepteVerschilIn(diepteVerschil) + specialLadenRep.specialLadeDiepereZijkantStelBarcodeDeelIn(barcodeDeel) + End Sub + + Private Sub slaSpecialLadenDiepereZijkantOp() + Dim hoofdAansturing As HoofdAansturingSpecialLade = New HoofdAansturingSpecialLadeDiepereZijkant + For Each specialLade In specialLadenRep.specialLaden + hoofdAansturing.verwerkenSpecialLade(specialLade) + Next + End Sub + +#End Region + +#Region "specialLadeHogereZijkant" + + 'informatie opvragen over de special lade hogere zijkant + Public Function geefInformatieSpecialLadeHogereZijkant() As List(Of String) + Dim specialLade As SpecialLade = specialLadenRep.specialLaden(0) + Dim informatie As New List(Of String) + informatie.Add(specialLadenRep.bestandsNaam) + informatie.Add(specialLade.geefBatch) 'batch ID + Return informatie + End Function + + 'waarden instellen voor de specialLadeHogereZijkant + Public Sub specialLadeHogereZijkantStelWaardenIn(nieuweHoogteLetter As String, automillingProgrammaLetter As String) + specialLadenRep.specialLadeHogereZijkantStelNieuweHoogteLetterIn(nieuweHoogteLetter) + specialLadenRep.specialLadeHogereZijkantStelAutomillingProgrammaLetterIn(automillingProgrammaLetter) + End Sub + + Private Sub slaSpecialLadenHogereZijkantOp() + Dim hoofdAansturing As HoofdAansturingSpecialLade = New HoofdAansturingSpecialLadeHogereZijkant + For Each specialLade In specialLadenRep.specialLaden + hoofdAansturing.verwerkenSpecialLade(specialLade) + Next + End Sub + +#End Region + +#Region "specialLadeNieuweKleur" + + Public Function geefSpecialLadeNieuweKleurTeVervangenKleuren() As List(Of String) + Return specialLadenRep.geefKleurenSpecialLadenOnderdelen() + End Function + + 'informatie opvragen over de special lade nieuwe kleur + Public Function geefInformatieSpecialLadeNieuweKleur() As List(Of String) + Dim informatie As New List(Of String) + informatie.Add(specialLadenRep.bestandsNaam) + Return informatie + End Function + + 'waarden instellen voor de specialLadeNieuweKleur + Public Sub specialLadeNieuweKleurStelWaardenIn(teVervangenKleur As String, nieuweKleur As String, kantenbandKleur As String) + specialLadenRep.specialLadeNieuweKleurStelTeVervangenKleurIn(teVervangenKleur) + specialLadenRep.specialLadeNieuweKleurStelNieuweKleurIn(nieuweKleur) + specialLadenRep.specialLadeNieuweKleurStelKantenbandKleurIn(kantenbandKleur) + End Sub + + Private Sub slaSpecialLadenNieuweKleurOp() + Dim hoofdAansturing As HoofdAansturingSpecialLade = New HoofdAansturingSpecialLadeNieuweKleur + For Each specialLade In specialLadenRep.specialLaden + hoofdAansturing.verwerkenSpecialLade(specialLade) + Next + End Sub + +#End Region + +#Region "sifonLade" + + 'informatie opvragen over de sifonLade + Public Function GeefInformatieSifonLade() As List(Of String) + Dim sifonLade As SifonLade = specialLadenRep.geefSifonLade(0) + Dim informatie As New List(Of String) + informatie.Add(specialLadenRep.bestandsNaam) + informatie.Add(sifonLade.geefLW) 'lade width + informatie.Add(sifonLade.geefNLLade) 'nominale lengte + informatie.Add(sifonLade.geefKleurBinnen) 'kleur binnen + informatie.Add(sifonLade.geefBatch) 'batch ID + informatie.Add(sifonLade.geefBreedte) 'breedte + informatie.Add(sifonLade.geefBreedteSifonUitsparing) 'breedte uitsparing + informatie.Add(sifonLade.geefDiepte) 'diepte + informatie.Add(sifonLade.geefDiepteSifon) 'diepte van de sifon + informatie.Add(sifonLade.geefPositieUitsparingSifon) 'positie uitsparing sifon + informatie.Add(sifonLade.geefRestTekening) 'rest breedte + Return informatie + End Function + + Private Sub verdeelSifonLadenOverReworkTrays() + Dim zijkanten As New List(Of ArdisData) + For Each sifonLade In specialLadenRep.sifonLaden + 'zijkanten + zijkanten.AddRange(sifonLade.zijkanten) + Next + 'special rework trays laten verwerken + voegReworkTraysSpecialLadeToe(zijkanten) + End Sub + + Private Sub slaSifonLadenOp() + Dim hoofdAansturingSifonLade As HoofdAansturingSpecialLade = New HoofdAansturingSifonLade(reworkTrayRep) + hoofdAansturingSifonLade.verwerkenSpecialLadeMetTrays(specialLadenRep.sifonLaden) + End Sub + + 'verplaatsen van de sifon laden uit het bestand naar de directory meegegeven in het config bestand en de niet verwerkte in het bestand terug zetten + Public Sub verplaatsVerwerkteSifonLaden() + Try + Dim bestandsNaam As String = specialLadenRep.bestandsNaam + + For Each sifonLade In specialLadenRep.sifonLaden + 'alle onderdelen afgaan + 'zijkanten + For Each zijkant As ArdisData In sifonLade.zijkanten + ArdisTextMapper.opslaanSifonLadeVoorVerwerking(zijkant, bestandsNaam) + Next + 'rug + ArdisTextMapper.opslaanSifonLadeVoorVerwerking(sifonLade.rug, bestandsNaam) + 'bodem + ArdisTextMapper.opslaanSifonLadeVoorVerwerking(sifonLade.bodem, bestandsNaam) + Next + ArdisTextMapper.stopArdisTextOpslag() + Catch ex As Exception + Throw New Exception("Er is iets foutgelopen bij het verplaatsen van het uitgelezen sifonLade bestand naar een andere folder" & vbNewLine & ex.Message) + End Try + End Sub + +#End Region + +#Region "spoelbakLade" + + 'waarden instellen voor de spoelbak lade + Public Sub spoelbakLadeStelPositieIn(positie As Double) + specialLadenRep.spoelbakLadeStelPositieIn(positie) + End Sub + Public Sub spoelbakLadeStelBreedteIn(breedte As Double) + specialLadenRep.spoelbakLadeStelBreedteIn(breedte) + End Sub + + 'informatie opvragen over de spoelbakLade + Function geefInformatieSpoelbakLade() As List(Of String) + Dim spoelbakLade As SpoelbakLade = specialLadenRep.geefSpoelbakLade(0) + Dim informatie As New List(Of String) + informatie.Add(specialLadenRep.bestandsNaam) + informatie.Add(spoelbakLade.geefLW) 'lade width + informatie.Add(spoelbakLade.geefNLLade) 'nominale lengte + informatie.Add(spoelbakLade.geefKleurBinnen) 'kleur binnen + informatie.Add(spoelbakLade.geefBatch) 'batch ID + informatie.Add(spoelbakLade.geefBreedte) 'breedte + informatie.Add(spoelbakLade.geefBreedteSpoelbakUitsparing) 'breedte uitsparing + informatie.Add(spoelbakLade.geefDiepte) 'diepte + informatie.Add(spoelbakLade.geefDiepteSpoelbak) 'diepte uitsparing + informatie.Add(spoelbakLade.positieSpoelbak) 'positie spoelbak + informatie.Add(spoelbakLade.geefRestBreedte) 'rest breedte + Return informatie + End Function + + Public Sub spoelbakLadeStelInitiëlePositieIn() + specialLadenRep.spoelbakLadeStelInitiëlePositieIn() + End Sub + + Function geefNuttigeRuimteZijvakkenSpoelbak() As Double + Return specialLadenRep.geefNuttigeRuimteZijvakkenSpoelbakVanSpoelbakLaden() + End Function + + Function geefPositieUitsparingSpoelbak() As Double + Return specialLadenRep.geefPositieSpoelbakVanSpoelbakLaden + End Function + + Private Sub verdeelSpoelbakLadenOverReworkTrays() + Dim zijkanten As New List(Of ArdisData) + For Each spoelbakLade In specialLadenRep.spoelbakLaden + 'zijkanten + zijkanten.AddRange(spoelbakLade.zijkanten) + Next + 'de zijkanten en de special rework trays laten verwerken + voegReworkTraysSpecialLadeToe(zijkanten) + End Sub + + Private Sub slaSpoelbakLadenOp() + Dim hoofdAansturingSpoelbakLade As HoofdAansturingSpecialLade = New HoofdAansturingSpoelbakLade(reworkTrayRep) + hoofdAansturingSpoelbakLade.verwerkenSpecialLadeMetTrays(specialLadenRep.spoelbakLaden) + End Sub + + 'verplaatsen van de spoelbak laden uit het bestand naar de directory meegegeven in het config bestand en de niet verwerkte in het bestand terug zetten + Public Sub verplaatsVerwerkteSpoelbakLaden() + Try + Dim bestandsNaam As String = specialLadenRep.bestandsNaam + + For Each spoelbakLade In specialLadenRep.spoelbakLaden + 'alle onderdelen afgaan + 'zijkanten + For Each zijkant As ArdisData In spoelbakLade.zijkanten + ArdisTextMapper.opslaanSpoelbakLadeVoorVerwerking(zijkant, bestandsNaam) + Next + 'rug + ArdisTextMapper.opslaanSpoelbakLadeVoorVerwerking(spoelbakLade.rug, bestandsNaam) + 'bodem + ArdisTextMapper.opslaanSpoelbakLadeVoorVerwerking(spoelbakLade.bodem, bestandsNaam) + Next + ArdisTextMapper.stopArdisTextOpslag() + Catch ex As Exception + Throw New Exception("Er is iets foutgelopen bij het verplaatsen van het uitgelezen sifonLade bestand naar een andere folder" & vbNewLine & ex.Message) + End Try + End Sub + +#End Region + + Private Sub voegReworkTraysSpecialLadeToe(ByVal zijkanten As List(Of ArdisData)) + Dim zijkantenList As New List(Of ArdisData) + zijkantenList.AddRange(zijkanten) + '4 plankjes worden 2 plankjes in 1 slot + Do While zijkantenList.Count > 0 + Dim reworkTray As New ReworkTray(reworkTrayslotRep.slots) + Do While zijkantenList.Count > 0 + If Not reworkTray.parenVol Then + 'twee plankjes, de originelen + Dim paarOriginelen As New List(Of ArdisData) + paarOriginelen.Add(zijkantenList(0)) + paarOriginelen.Add(zijkantenList(2)) + reworkTray.voegPaarToe(paarOriginelen) + zijkantenList.RemoveRange(0, 4) + Else + Exit Do + End If + Loop + reworkTrayRep.addReworkTraySpecialLade(reworkTray) + Loop + End Sub + + Public Sub verwijderSpecialLadenBestand() + Dim bestandsNaam As String = specialLadenRep.bestandsNaam + ArdisTextMapper.verwijderSpecialLadenBestand(bestandsNaam) + ArdisTextMapper.stopArdisTextOpslag() + End Sub + + Public Sub opslaanNietVerwerkteSpecialLaden() + Dim bestandsNaam As String = specialLadenRep.bestandsNaam + ArdisTextMapper.opslaanNietVerwerkteSpecialLaden(specialLadenRep.nietVerwerkteSpecialLadenLijnen, bestandsNaam) + ArdisTextMapper.stopArdisTextOpslag() + End Sub + +#End Region + +#Region "voorraad" + + Public Function geefVoorraadDieptes() As List(Of String) + Return voorraadRepository.dieptes + End Function + + Public Function geefVoorraadHoogtes() As List(Of String) + Return voorraadRepository.hoogtes + End Function + + Public Function geefVoorraadKleuren() As List(Of String) + Return voorraadRepository.kleuren + End Function + + Public Sub voegVoorraadItemToe(label As String, linksOfRechts As LinksOfRechts, diepte As String, hoogte As String, kantenband As String, kleurBinnen As String, kleurBuiten As String) + Dim voorraadItem As VoorraadItem = New VoorraadItem(label, linksOfRechts, diepte, hoogte, kantenband, kleurBinnen, kleurBuiten) + voorraadRepository.voegVoorraadItemToe(voorraadItem) + End Sub + + Public Function geefVoorraadItems() As IEnumerable(Of IVoorraadItem) + Return voorraadRepository.voorraadItems() + End Function + + Public Sub verwijderVoorraadItem(voorraadItem As IVoorraadItem) + If voorraadRepository.voorraadItems.Count <= 0 Then + Throw New Exception("Voorraad item kan niet worden verwijderd als er geen voorraad items aanwezig zijn") + End If + voorraadRepository.verwijderVoorraadItem(voorraadItem) + End Sub + + Public Sub verwijderVolledigeVoorraad() + voorraadRepository.verwijderVolledigeVoorraad() + End Sub + + Private Sub verdeelVoorraadItemsOverTrays() + Dim voorraadItems As List(Of VoorraadItem) = voorraadRepository.voorraadItems + + Dim paren As List(Of VoorraadItem()) = New List(Of VoorraadItem()) + Dim enkele As List(Of VoorraadItem) = New List(Of VoorraadItem) + + Dim gevonden As Boolean = False + + Do While voorraadItems.Count > 0 + gevonden = False + Dim templateToCheck As VoorraadItem = voorraadItems(0) 'eerste van de lijst + voorraadItems.RemoveAt(0) + For index As Integer = 0 To voorraadItems.Count - 1 + 'waarden controleren + Dim instanceToCheck As VoorraadItem = voorraadItems(index) + If (templateToCheck.diepte.Equals(instanceToCheck.diepte)) And (templateToCheck.hoogte.Equals(instanceToCheck.hoogte)) Then + templateToCheck.partnerInSlot = instanceToCheck + instanceToCheck.partnerInSlot = templateToCheck + instanceToCheck.isTweedeVanPaar = True + paren.Add({templateToCheck, instanceToCheck}) + voorraadItems.RemoveAt(index) + gevonden = True + Exit For + End If + Next + If Not gevonden Then + enkele.Add(templateToCheck) + End If + Loop + + Do While paren.Count > 0 Or enkele.Count > 0 + Dim reworkTray As New ReworkTray(reworkTrayslotRep.slots) + Do While paren.Count > 0 + If Not reworkTray.parenVol Then + Dim paar As VoorraadItem() = paren(0) + Dim zijkanten As New List(Of ArdisData) + zijkanten.Add(paar(0).zijkantArdisDatas()(0)) 'eerste plankje nemen van de zijkant van de eerste van het paar + zijkanten.Add(paar(0).zijkantArdisDatas()(1)) 'tweede plankje nemen van de zijkant van de eerste van het paar + zijkanten.Add(paar(1).zijkantArdisDatas()(0)) 'eerste plankje nemen van de zijkant van de tweede van het paar + zijkanten.Add(paar(1).zijkantArdisDatas()(1)) 'tweede plankje nemen van de zijkant van de tweede van het paar + reworkTray.voegPaarToe(zijkanten) + paren.RemoveAt(0) + Else + Exit Do + End If + Loop + Do While enkele.Count > 0 + If Not reworkTray.enkelVol Then + Dim enkel As VoorraadItem = enkele(0) + Dim zijkanten As New List(Of ArdisData) + zijkanten.Add(enkel.zijkantArdisDatas()(0)) + zijkanten.Add(enkel.zijkantArdisDatas()(1)) 'eerste plankje nemen van de zijkant + reworkTray.voegEnkelToe(zijkanten) + enkele.RemoveAt(0) + Else + Exit Do + End If + Loop + + reworkTrayRep.addReworkTraySpecialLade(reworkTray) + Loop + End Sub + + Private Sub slaVoorraadItemsOp() + For Each voorraadItem As VoorraadItem In voorraadRepository.voorraadItems + HoofdAansturingVoorraad.opslaanVoorraadItem(voorraadItem) + Next + End Sub + +#End Region + +#Region "stalen" + Public Function geefStaalKleuren() As List(Of String) + Return stalenRepository.staalKleuren + End Function + + Public Function geefStaalLabels(kleur As String) As List(Of String) + Return stalenRepository.geefStaalLabels(kleur) + End Function + + Public Sub maakStalen(ByVal kleur As String, ByVal label As String, ByVal aantal As Integer) + Dim staal As ArdisData = stalenRepository.geefStaal(kleur, label) + If staal Is Nothing Then + Throw New Exception("Geen staal gevonden met deze informatie, kleur, label: " & kleur & "," & label) + End If + If Configs.geefVerwerkStatus Then + stalenRepository.maakStalen(staal, aantal) + End If + End Sub +#End Region + +End Class