Imports System.Text Imports TA_OR_rework.Rework Public Class FormReworkTrayPrinter Private _aantalTrays As Integer Private _nummerTray As Integer Private _isNieuweSifonDomein As Boolean Private _isDubbeleSifonlade As Boolean Public Sub New(Optional isNieuweSifonDomein As Boolean = False, Optional isDubbeleSifonLade As Boolean = False) InitializeComponent() 'nummer welke special tray er getoond wordt instellen _nummerTray = 1 If isNieuweSifonDomein Then _aantalTrays = SifonLadeController.GetInstance().GeefAantalTrays() _isNieuweSifonDomein = isNieuweSifonDomein _isDubbeleSifonlade = isDubbeleSifonLade Else 'origineel aantal instellen If Domeincontroller.getInstance.geefTypeInReworkTray = ItemType.Rework Then _aantalTrays = Domeincontroller.getInstance.geefAantalReworkTrays Else _aantalTrays = Domeincontroller.getInstance.geefSpecialAantalReworkTrays End If End If End Sub Private Sub FormReworkTrayPrinter_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 'zorgen dat form niet kan gesloten worden Me.ControlBox = False 'tekenen gaat niet als het formulier nog niet is geladen en geen enkel event is laat genoeg Timer.Start() Try If _aantalTrays <= 0 Then LblMelding.Text = "Er zijn geen reworktrays om te tonen" LblIndexReworkTray.Text = "" btnPrintEnToonVolgende.Text = "Ga verder" ElseIf _aantalTrays = 1 Then btnPrintEnToonVolgende.Text = "Verwerk en ga verder" LblIndexReworkTray.Text = String.Format("{0}/{1}", _nummerTray, _aantalTrays) Else LblIndexReworkTray.Text = String.Format("{0}/{1}", _nummerTray, _aantalTrays) End If Catch ex As Exception MessageBox.Show(ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub Private Sub Timer_Tick(sender As System.Object, e As System.EventArgs) Handles Timer.Tick Try Timer.Stop() If _aantalTrays >= 1 Then vulTextboxMetReworkTray() End If Catch ex As Exception MessageBox.Show(ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub Private _builder As StringBuilder Private Sub vulBuilderMetInfo(indexSpecialTray As Integer) Try _builder = New StringBuilder Dim typelade As String Dim reworkTrayNummer As String If _isNieuweSifonDomein Then typelade = "sifonlade" reworkTrayNummer = SifonLadeController.GetInstance.GeefSpecialLadeReworkTrayNummer(_nummerTray - 1) Else Select Case Domeincontroller.getInstance.geefTypeInReworkTray Case ItemType.Voorraad typelade = "voorraad" reworkTrayNummer = Domeincontroller.getInstance.geefSpecialLadeReworkTrayNummer(_nummerTray - 1) Case ItemType.Testlade typelade = "test lade" reworkTrayNummer = Domeincontroller.getInstance.geefSpecialLadeReworkTrayNummer(_nummerTray - 1) Case ItemType.Rework typelade = "rework" reworkTrayNummer = Domeincontroller.getInstance.geefReworkTrayNummer(_nummerTray - 1) Case Else Throw New Exception("Het type: " & EnumMapper.GeefTekstVanEnumOptie(Domeincontroller.getInstance.geefTypeInReworkTray) & " kon niet gebruikt worden voor tray printer te visualiseren") End Select End If _builder.AppendLine("Rework tray " & reworkTrayNummer & " | " & typelade) _builder.AppendLine() _builder.AppendLine(String.Format("{0,4}{1,13}{2,7}{3,13}{4,8}{5,8}", "Slot", "Barcode", "Batch", "Color", "Length", "Height")) 'elk "slot" overlopen en toevoegen als lijn Dim lijnen As List(Of List(Of String)) If _isNieuweSifonDomein Then lijnen = SifonLadeController.GetInstance.GeefSlotsSpecialReworkTray(_nummerTray - 1) Else If Domeincontroller.getInstance.geefTypeInReworkTray = ItemType.Rework Then lijnen = Domeincontroller.getInstance.geefSlotsReworkTray(_nummerTray - 1) Else lijnen = Domeincontroller.getInstance.geefSlotsSpecialReworkTray(_nummerTray - 1) End If End If For Each lijn As List(Of String) In lijnen _builder.AppendLine(String.Format("{0,4}{1,13}{2,7}{3,13}{4,8}{5,8}", lijn(0), lijn(1), lijn(2), lijn(3), lijn(4), lijn(5))) Next Catch ex As Exception Throw New Exception("Kon builder niet vullen met info" & vbNewLine & ex.Message) End Try End Sub Private Sub btnPrintEnToonVolgende_Click(sender As System.Object, e As System.EventArgs) Handles btnPrintEnToonVolgende.Click Try 'als er geen reworks meer zijn wordt er bij het drukken op de knop naar formGrid gegaan If _aantalTrays <= 0 Then gaVerder() ElseIf _nummerTray + 1 <= _aantalTrays Then 'er zijn nog trays te tonen If _nummerTray + 1 = _aantalTrays Then 'er is nog 1 tray If _isNieuweSifonDomein Then btnPrintEnToonVolgende.Text = "Verwerk en ga verder" Else If Domeincontroller.getInstance.geefTypeInReworkTray = ItemType.Testlade Then btnPrintEnToonVolgende.Text = "Ga verder" Else btnPrintEnToonVolgende.Text = "Verwerk en ga verder" End If End If End If 'de index verhogen met 1 _nummerTray += 1 'updaten van label LblIndexReworkTray.Text = String.Format("{0}/{1}", _nummerTray, _aantalTrays) vulTextboxMetReworkTray() Else verwerkDeItems() If Configs.geefVerwerkStatus Then Try opslaanBacklog() Catch ex As Exception MessageBox.Show("Backlog kon niet worden opgeslagen" & vbNewLine & ex.Message, "Opgepast!", MessageBoxButtons.OK, MessageBoxIcon.Warning) End Try 'printen van document met default printer van de pc 'alle trays overlopen For _nummerTray = 1 To _aantalTrays PrintDocument.Print() Next End If gaVerder() End If Catch ex As Exception MessageBox.Show(ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub Private Sub verwerkDeItems() 'verwerken, onderscheid tussen reworks en special laden If _isNieuweSifonDomein Then If _isDubbeleSifonlade Then SifonLadeController.GetInstance().ProduceerDubbeleSifonladen() Else SifonLadeController.GetInstance().ProduceerSifonladen() End If Else Select Case Domeincontroller.getInstance.geefTypeInReworkTray Case ItemType.Sifonlade, ItemType.DubbeleSifonlade, ItemType.Voorraad Domeincontroller.getInstance.verwerkSpecialLaden() Case ItemType.Rework Domeincontroller.getInstance.verwerkReworks() Case ItemType.Testlade Domeincontroller.getInstance.verwerkTestLaden() Case Else Throw New Exception("Het type: " & EnumMapper.GeefTekstVanEnumOptie(Domeincontroller.getInstance.geefTypeInReworkTray) & " kon niet gebruikt worden voor te verwerken") End Select End If End Sub Private Sub opslaanBacklog() 'alle trays overlopen en builder opnieuw vullen For _nummerTray = 1 To _aantalTrays vulBuilderMetInfo(_nummerTray - 1) If _isNieuweSifonDomein Then PrinterBacklogDocMapper.addPrinterBacklogDoc(SifonLadeController.GetInstance.GeefSpecialLadeReworkTrayNummer(_nummerTray - 1), _builder.ToString(), True) Else Select Case Domeincontroller.getInstance.geefTypeInReworkTray Case ItemType.Sifonlade, ItemType.DubbeleSifonlade, ItemType.Voorraad, ItemType.Testlade PrinterBacklogDocMapper.addPrinterBacklogDoc(Domeincontroller.getInstance.geefSpecialLadeReworkTrayNummer(_nummerTray - 1), _builder.ToString(), True) Case ItemType.Rework PrinterBacklogDocMapper.addPrinterBacklogDoc(Domeincontroller.getInstance.geefReworkTrayNummer(_nummerTray - 1), _builder.ToString(), False) Case Else Throw New Exception("Het type: " & EnumMapper.GeefTekstVanEnumOptie(Domeincontroller.getInstance.geefTypeInReworkTray) & " kon niet gebruikt worden voor opslag backlog") End Select End If Next End Sub #Region "tonen" Private Sub vulTextboxMetReworkTray() Try vulBuilderMetInfo(_nummerTray - 1) 'scherm terug leeg maken TextBoxReworkTraySlots.CreateGraphics.Clear(DefaultBackColor) 'de tekst printen op het scherm Dim font As New Font("Courier New", 15, FontStyle.Regular) TextBoxReworkTraySlots.CreateGraphics.DrawString(_builder.ToString, font, Brushes.Black, 30, 100) Catch ex As Exception MessageBox.Show(ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub #End Region #Region "printen" Private Sub PrintDocument1_PrintPage(sender As System.Object, e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument.PrintPage 'font instellen van de tekst Dim font As New Font("Courier New", 15, FontStyle.Regular) Try 'builder opnieuw vullen vulBuilderMetInfo(_nummerTray - 1) 'de tekst "tekenen" op het printerdocument e.Graphics.DrawString(_builder.ToString, font, Brushes.Black, 30, 100) 'e.HasMorePages = _aantalTrays > 1 Catch ex As Exception MessageBox.Show(ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub #End Region Private Sub gaVerder() If Not _isNieuweSifonDomein Then Domeincontroller.getInstance.verwijderAlleReworks() Domeincontroller.getInstance.verwijderAlleSpecialLaden() Domeincontroller.getInstance.verwijderReworkTrays() Domeincontroller.getInstance.verwijderVolledigeVoorraad() Else SifonLadeController.GetInstance().WisSifonladen() End If FormController.getInstance.laadVorige(Me) End Sub Private Sub ButtonRefresh_Click(sender As System.Object, e As System.EventArgs) Handles ButtonRefresh.Click If _aantalTrays >= 1 Then vulTextboxMetReworkTray() End If End Sub Private Sub btnAnnuleer_Click(sender As System.Object, e As System.EventArgs) Handles btnAnnuleer.Click gaVerder() End Sub End Class