Namespace Rework Public Class HoofdAansturingRework Private _productieData As ZijkamerFreesProductieData Private ReadOnly _productieDatas As New List(Of ZijkamerFreesProductieData) Public Sub verwerkRug(rug As Rework) 'Naar Ardis sturen. HerzagenOnderdelen(rug) 'de opdracht resetten in de afkanter resetOpdrachtAfkanter(rug.barcode) End Sub Public Sub verwerkFront(front As Rework) 'Naar Ardis sturen. HerzagenOnderdelen(front) 'de opdracht resetten in de afkanter resetOpdrachtAfkanter(front.barcode) End Sub Public Sub verwerkBodem(bodem As Rework) 'Naar Ardis sturen. HerzagenOnderdelen(bodem) 'Productie tabel wordt nooit gewist op stemasC en insert moet dus niet worden uitgevoerd End Sub Private Sub resetOpdrachtAfkanter(ByVal barcodeID As String) Try 'kijken of het wel moet worden opgeslagen If Configs.geefVerwerkStatus Then KantenbandMapper.resetOpdracht(barcodeID) End If Catch ex As Exception Throw ex End Try End Sub Private Sub HerzagenOnderdelen(rework As Rework, Optional trayNummer As String = "", Optional slotNummer As String = "") Try If rework.opslaanArdis Then If rework.onderdeel.ToLower.Contains("zijkant") Then Dim LinksEnOfRechts As String = rework.onderdeel.ToLower.Replace("zijkant", "").Replace("i", "").Replace("e", "").Trim.ToUpper If LinksEnOfRechts.Equals("L") Or LinksEnOfRechts.Equals("LR") Then HerzaagZijkant(rework, "L", trayNummer, slotNummer) End If If LinksEnOfRechts.Equals("R") Or LinksEnOfRechts.Equals("LR") Then HerzaagZijkant(rework, "R", trayNummer, slotNummer) End If If LinksEnOfRechts.Equals("") Then HerzaagZijkant(rework, "", trayNummer, slotNummer) End If Else HerzaagOnderdeel(rework.barcode) End If End If Catch ex As Exception Throw ex End Try End Sub Private Sub MaakFreesOpdrachtInReworkTray(ByVal barcodeID As String, ByVal linksOfRechts As String, ByVal nieuwTrayNummer As String, ByVal slotNr As String, ByVal voorVoorraad As Boolean, etiketTekst As String, Optional barcodeID2 As String = "", Optional andereZijkantLinksOfRechts As String = "") Try _productieData = AutomillingMapper.OphalenUitProductie(barcodeID) If _productieData Is Nothing Then _productieData = AutomillingMapper.OphalenUitHistoriek(barcodeID) If _productieData Is Nothing Then Throw New Exception("De productieData kon niet worden opgehaald uit automiling met barcode: " & barcodeID) End If End If 'als het een uit een paar is updaten met de informatie uit de andere van het paar If barcodeID2.Equals("") Then _productieData.aanpassenData(linksOfRechts, nieuwTrayNummer, slotNr, voorVoorraad, etiketTekst) Else Dim productieDataAndere As ZijkamerFreesProductieData productieDataAndere = AutomillingMapper.OphalenUitProductie(barcodeID2) If productieDataAndere Is Nothing Then productieDataAndere = AutomillingMapper.OphalenUitHistoriek(barcodeID2) If productieDataAndere Is Nothing Then Throw New Exception("De productieData kon niet worden opgehaald uit automiling met barcode: " & barcodeID) End If End If _productieData.aanpassenData(linksOfRechts, nieuwTrayNummer, slotNr, voorVoorraad, etiketTekst, productieDataAndere, andereZijkantLinksOfRechts) End If _productieDatas.Add(_productieData.ShallowCopy) Catch ex As Exception Throw ex End Try End Sub Private Sub opslaanInAutomilling() For Each data As ZijkamerFreesProductieData In _productieDatas If data Is Nothing Then _productieDatas.Clear() Throw New Exception("Automilling data mag niet Nothing zijn om op te slaan") End If 'kijken of het wel moet worden opgeslagen If Configs.geefVerwerkStatus Then AutomillingMapper.opslaan(data) End If Next _productieDatas.Clear() End Sub Private Sub HerzaagZijkant(rework As Rework, linksOfRechts As String, trayNummer As String, slotNummer As String) Try Dim ardisData As ArdisData = ArdisMapper.OphalenData(rework.barcode) If ardisData Is Nothing Then Throw New Exception("Ardisdata kon niet worden opgevraagd voor rework met barcode: " & rework.barcode) End If 'als het een speciale zijkant is moeten we het corresponderende plankje vinden, aka A of B Dim barcodes As List(Of String) If Not (ardisData.isSpecialGegenereerd()) Then barcodes = ArdisMapper.geefBarcode(ardisData.PartGroup, ardisData.PartExt02, ardisData.PartL, linksOfRechts) Else barcodes = ArdisMapper.geefBarcodeGegenereerdePlankjes(ardisData.PartGroup, ardisData.PartExt02, ardisData.PartL) End If If barcodes Is Nothing Then Throw New Exception("Er is iets foutgelopen bij het ophalen van de barcodes van de zijkanten uit de Ardis databank") ElseIf barcodes.Count > 2 Then Throw New Exception("Er zijn teveel barcodes gevonden bij het ophalen van de barcodes van de zijkanten uit de Ardis databank, Partgroup, PartExt02: " & ardisData.PartGroup & ", " & ardisData.PartExt02) End If For Each barcode In barcodes HerzaagOnderdeel(barcode, trayNummer, slotNummer) Next Catch ex As Exception Throw ex End Try End Sub Private Sub HerzaagOnderdeel(ByVal BarcodeID As String, Optional trayNummer As String = "", Optional slotNummer As String = "") Try Dim ardisData As ArdisData = ArdisMapper.OphalenData(BarcodeID) ardisData.aanpassenDataRework() 'kijken of het wel moet worden opgeslagen If Configs.geefVerwerkStatus Then ArdisTextMapper.opslaan(ItemType.REWORK, ardisData, trayNummer, slotNummer) End If Catch ex As Exception Throw ex End Try End Sub Public Sub updateTray(tray As ReworkTray) Try For Each slot As Slot In tray.geefNietLegeSlots If slot.zijkanten.Count > 0 Then Dim linksOfRechts As String = slot.zijkanten(0).geefLinksOfRechts() 'In automilling (technologica) laten verwerken If slot.zijkanten.Count >= 2 Then MaakFreesOpdrachtInReworkTray(slot.zijkanten(0).barcode, linksOfRechts, tray.nummer, slot.nummer, slot.zijkanten(0).voorVoorraad, slot.zijkanten(0).etiketTekst, slot.zijkanten(1).barcode, slot.zijkanten(1).geefLinksOfRechts()) Else MaakFreesOpdrachtInReworkTray(slot.zijkanten(0).barcode, linksOfRechts, tray.nummer, slot.nummer, slot.zijkanten(0).voorVoorraad, slot.zijkanten(0).etiketTekst) End If 'de naam van onderdeel naar "ONDERDEEL LR" zetten 'als een van de twee niet in ardis wordt opgeslagen de andere automatisch ook niet! slot.updateReworkOnderdeel() 'waarden in de rework invullen slot.zijkanten(0).color = If(slot.type = SlotType.dubbel, _productieData.colorDubbel, _productieData.colorEnkel) slot.zijkanten(0).length = _productieData.length slot.zijkanten(0).height = _productieData.height 'In ARDIS per zijkant twee planken zagen (er moet maar 1 zijkant worden meegegeven, onderdeel is naar LR gezet) HerzagenOnderdelen(slot.zijkanten(0), tray.nummer, slot.nummer) End If Next Catch ex As Exception Throw ex End Try End Sub Public Sub verwerkTray(tray As ReworkTray) Try For Each slot As Slot In tray.geefNietLegeSlots If slot.zijkanten.Count > 0 Then opslaanInAutomilling() For Each zijkant As Rework In slot.zijkanten 'de opdracht resetten in de afkanter resetOpdrachtAfkanter(zijkant.barcode) Next 'als het een paar is de andere van het paar verwijderen slot.verwijderTweedeVanPaar() End If Next Catch ex As Exception Throw ex End Try End Sub End Class End Namespace