Index: TAOR-rework-bugfixing/TAOR rework/databases/Cache/CacheMapper.vb
===================================================================
diff -u -r1605 -r1606
--- TAOR-rework-bugfixing/TAOR rework/databases/Cache/CacheMapper.vb (.../CacheMapper.vb) (revision 1605)
+++ TAOR-rework-bugfixing/TAOR rework/databases/Cache/CacheMapper.vb (.../CacheMapper.vb) (revision 1606)
@@ -2,526 +2,539 @@
Imports System.Data.Odbc
Imports System.Text
- Module CacheMapper
- Private Const CONNECTIE_STRING As String = "DSN=Cache01Admin1; DRIVER={InterSystems ODBC}; SERVER=CACHE01;DATABASE=ADMIN1;UID=_SYSTEM;PWD=SYS"
- Private _sqlConnection As OdbcConnection
+Module CacheMapper
+ Private Const CONNECTIE_STRING As String = "DSN=Cache01Admin1; DRIVER={InterSystems ODBC}; SERVER=CACHE01;DATABASE=ADMIN1;UID=_SYSTEM;PWD=SYS"
+ Private _sqlConnection As OdbcConnection
- '''
- ''' Hulpfunctie om de SQLCOnnectie met Caché te openen.
- '''
- Private Sub ConnectToCache()
- Try
- If _sqlConnection Is Nothing Then
- 'Connectie initialiseren.
- _sqlConnection = New OdbcConnection(CONNECTIE_STRING)
- End If
- 'Controleer of connectie status al open is.
- If Not _sqlConnection.State = ConnectionState.Open Then
- 'ALs dit nog niet het geval is, open de connectie.
- _sqlConnection.Open()
- End If
- Catch ex As Exception
- Throw New Exception($"De Caché databank kan niet bereikt worden: {vbNewLine}{ex.Message}")
- End Try
- End Sub
+#Region "Hulpfuncties"
+ '''
+ ''' Hulpfunctie om de SQLCOnnectie met Caché te openen.
+ '''
+ Private Sub ConnectToCache()
+ Try
+ If _sqlConnection Is Nothing Then
+ 'Connectie initialiseren.
+ _sqlConnection = New OdbcConnection(CONNECTIE_STRING)
+ End If
+ 'Controleer of connectie status al open is.
+ If Not _sqlConnection.State = ConnectionState.Open Then
+ 'ALs dit nog niet het geval is, open de connectie.
+ _sqlConnection.Open()
+ End If
+ Catch ex As Exception
+ Throw New Exception($"De Caché databank kan niet bereikt worden: {vbNewLine}{ex.Message}")
+ End Try
+ End Sub
- Private dr As OdbcDataReader
+ '''
+ ''' Uitvoeren van een query naar een data reader.
+ '''
+ ''' De query
+ ''' De ODBC data reader
+ Private Function ExecuteIntoDataReader(query As String) As OdbcDataReader
+ Try
+ ConnectToCache()
+ Return New OdbcCommand(query, _sqlConnection).ExecuteReader()
+ Catch ex As Exception
+ Throw New Exception($"Kon datareader niet opvragen uit Caché datatabank.{vbNewLine}{ex.Message}")
+ End Try
+ End Function
- Private Sub ExecuteIntoDataReader(query As String)
- Try
- ConnectToCache()
- sluitDataReader()
- Dim comm As OdbcCommand = New OdbcCommand(query, _sqlConnection)
- dr = comm.ExecuteReader()
- Catch ex As Exception
- Throw New Exception($"Er is een fout opgetreden bij het opvragen van de DataReader uit de Caché databank.{vbNewLine}{ex.Message}")
- End Try
- End Sub
+ '''
+ ''' Uitvoeren van een commando.
+ '''
+ ''' De query
+ Private Sub ExecuteCommand(query As String)
+ Try
+ ConnectToCache()
+ Dim command = New OdbcCommand(query, _sqlConnection)
+ command.ExecuteNonQuery()
+ Catch ex As Exception
+ Throw New Exception($"Het commando uitvoeren op de Caché databank.{vbNewLine}{ex.Message}")
+ End Try
+ End Sub
- Private Function ExecuteIntoDataReader2(query As String) As OdbcDataReader
- Try
- ConnectToCache()
- Return New OdbcCommand(query, _sqlConnection).ExecuteReader()
- Catch ex As Exception
- Throw New Exception($"Kon datareader niet opvragen uit Caché datatabank.{vbNewLine}{ex.Message}")
- End Try
- End Function
+ '''
+ ''' Commando uitvoeren en eerste items per record retourneren als lijst van strings.
+ '''
+ ''' De query
+ ''' De eerste items van de records.
+ Private Function ExecuteIntoListOfString(ByVal query As String) As List(Of String)
+ Try
+ 'Initialisatie van de lijst.
+ Dim data As New List(Of String)
- Private Sub executeCommand(query As String)
- Try
- ConnectToCache()
- Dim comm As OdbcCommand = New OdbcCommand(query, _sqlConnection)
- comm.ExecuteNonQuery()
- Catch ex As Exception
- Throw New Exception("De caché databank kan niet bereikt worden " & vbNewLine & ex.Message)
- End Try
- End Sub
+ 'Opvragen van de data reader.
+ Dim dr = ExecuteIntoDataReader(query)
- Private Function executeIntoListOfString(ByVal query As String) As List(Of String)
- Try
- ConnectToCache()
- Dim comm As OdbcCommand = New OdbcCommand(query, _sqlConnection)
+ 'Overlopen van de resultaten en toevoegen aan de lijst.
+ While (dr.Read())
+ 'Eerste veld van een record toevoegen aan de lijst.
+ data.Add(dr.GetValue(0).ToString)
+ End While
- Dim data As New List(Of String)
+ 'De lijst retourneren.
+ Return data
+ Catch ex As Exception
+ Throw New Exception($"Er is een fout opgetreden bij het opvragen van een lijst van data uit de Caché databank {vbNewLine}{ex.Message}")
+ End Try
+ End Function
+#End Region
- dr = comm.ExecuteReader()
+#Region "Data readers"
+ '''
+ ''' Opvragen van de datareader voor een bepaald kolom type, een waarde en een optionele filter.
+ '''
+ ''' Het type kolom
+ ''' De waarde
+ ''' Een optionele filter
+ '''
+ Private Function GetDataReader(kolom As Kolommen, waarde As String, Optional filter As String = Nothing) As OdbcDataReader
+ LogBestandTextMapper.writeToFile("Caché", $"Opvragen van DataReader met kolom, waarde, filter?: '{EnumMapper.geefWaardeBijEnumValue(kolom)}' '{waarde}' '{filter}'")
+ Try
+ Dim kolomnaam As String = EnumMapper.geefCacheKolomNaamBijKolom(kolom)
+ Dim equalsOfLikeSleutelwoord As String
- While (dr.Read())
- data.Add(dr.GetValue(0).ToString)
- End While
+ If Not kolom = Kolommen.klantnaam Then
+ 'Geen naam, aka gewoon equals.
+ equalsOfLikeSleutelwoord = "="
+ Else
+ 'Als het een naam is moeten we "like" als sleutelwoord gebruiken.
+ equalsOfLikeSleutelwoord = "like"
+ 'Kijken of veld de naam bevat door gebruik te maken van reguliere expressie.
+ waarde = "%" + waarde + "%"
+ End If
- Return data
- Catch ex As Exception
- Throw New Exception("Er is een fout opgetreden bij het opvragen van data uit de Caché databank" & vbNewLine & ex.Message)
- End Try
- End Function
+ 'Als de filter is meegegeven wordt de tekst juist opgebouwd. Anders is deze leeg, zodat het niet in de query wordt ingevuld.
+ Dim filterTekst = String.Empty
+ If filter IsNot Nothing Then
+ 'De filter is gespecifieerd.
+ filterTekst = $"AND Onderdeel = '{filter}'"
+ End If
- Private Function GetDataReader(kolom As Kolommen, waarde As String) As OdbcDataReader
- LogBestandTextMapper.writeToFile("Caché", $"Opvragen van DataReader met kolom, waarde: {EnumMapper.geefWaardeBijEnumValue(kolom)} {waarde}")
- Try
- Dim kolomnaam As String = EnumMapper.geefCacheKolomNaamBijKolom(kolom)
- Dim equalsOfLikeSleutelwoord As String
+ 'De query wordt opgebouwd met de data en de eventuele filter.
+ Dim query = $"select BatchID, ToeleveringID, Klant.naam, log.dossiercode, Kar, log.VerwerkingID, Onderdeel, max(StapNummer) as VisualStyleElement.Status, sum(IsRework) as Rework from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem log join derde_klant.klant on klant.ID=$Piece(log.PartijID,'||',2) where {kolomnaam} {equalsOfLikeSleutelwoord} '{waarde}' {filterTekst} group by BatchID, ToeleveringID,Klant.naam,log.VerwerkingID, log.dossiercode,Onderdeel, Kar order by BatchID, ToeleveringID, Kar"
- If Not kolom = Kolommen.klantnaam Then
- 'Geen naam, aka gewoon equals.
- equalsOfLikeSleutelwoord = "="
- Else
- 'Als het een naam is moeten we "like" als sleutelwoord gebruiken.
- equalsOfLikeSleutelwoord = "like"
- 'Kijken of veld de naam bevat door gebruik te maken van reguliere expressie.
- waarde = "%" + waarde + "%"
- End If
+ 'Uitvoeren van query en datareader retourneren.
+ Dim dr = ExecuteIntoDataReader(query)
+ LogBestandTextMapper.writeToFile("Caché", $"Opvragen van DataReader met kolom, waarde, filter?: '{EnumMapper.geefWaardeBijEnumValue(kolom)}' '{waarde}' '{filter}'", True)
+ Return dr
+ Catch ex As Exception
+ Throw New Exception($"Fout bij opvragen van DataReader met kolom, waarde, filter?: '{EnumMapper.geefWaardeBijEnumValue(kolom)}' '{waarde}' '{filter}'")
+ End Try
+ End Function
- Dim query = $"select BatchID, ToeleveringID, Klant.naam, log.dossiercode, Kar, log.VerwerkingID, Onderdeel, max(StapNummer) as Status, sum(IsRework) as Rework from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem log join derde_klant.klant on klant.ID=$Piece(log.PartijID,'||',2) where {kolomnaam} {equalsOfLikeSleutelwoord} '{waarde}' group by BatchID, ToeleveringID,Klant.naam,log.VerwerkingID, log.dossiercode,Onderdeel, Kar order by BatchID, ToeleveringID, Kar"
+ '''
+ ''' Opvragen van de data reader aan de hand van een barcode.
+ '''
+ '''
+ '''
+ Private Function GetDataReaderBarcode(barcode As String, Optional filter As String = Nothing) As OdbcDataReader
+ LogBestandTextMapper.writeToFile("Caché", $"Opvragen van data reader met barcode, filter?: '{barcode}' '{filter}'")
- LogBestandTextMapper.writeToFile("Caché", $"Opvragen van DataReader met kolom, waarde: {EnumMapper.geefWaardeBijEnumValue(kolom)} {waarde}", True)
- 'Uitvoeren van query en datareader retourneren.
- Return ExecuteIntoDataReader2(query)
- Catch ex As Exception
- Throw New Exception($"Fout bij opvragen van DataReader met kolom, waarde: {EnumMapper.geefWaardeBijEnumValue(kolom)} {waarde}")
- End Try
- End Function
+ 'Variable declaratie.
+ Dim batch, kar
- Private Function GetDataReaderBarcode(waarde As String) As OdbcDataReader
- LogBestandTextMapper.writeToFile("Caché", $"Opvragen van data reader met barcode: {waarde}")
+ 'Opvragen batch en kar.
+ Try
+ 'Opvragen van de datareader met als type barcode bij de hulpfunctie.
+ Dim barcodeDataReader = GetDataReader(Kolommen.barcode, barcode)
- 'Variable declaratie.
- Dim batch, kar
+ If Not barcodeDataReader.Read() Then
+ 'Als er geen rij is gevonden wordt de lege data reader geretourneert.
+ Return barcodeDataReader
+ Else
+ 'Opvragen en toewijzen van batch en kar.
+ batch = barcodeDataReader.GetValue(0).ToString
+ kar = barcodeDataReader.GetValue(4).ToString
+ End If
- 'Opvragen batch en kar.
- Try
- 'Opvragen van de datareader met als type barcode bij de hulpfunctie.
- Dim barcodeDataReader = GetDataReader(Kolommen.barcode, waarde)
+ Catch ex As Exception
+ Throw New Exception($"Er is een fout opgetreden bij het opvragen van de batch en kar voor het opvragen van de data reader uit de Caché databank {vbNewLine}{ex.Message}")
+ End Try
- If Not barcodeDataReader.Read() Then
- 'Als er geen rij is gevonden wordt de lege data reader geretourneert.
- Return barcodeDataReader
- Else
- 'Opvragen en toewijzen van batch en kar.
- batch = barcodeDataReader.GetValue(0).ToString
- kar = barcodeDataReader.GetValue(4).ToString
- End If
+ 'Data reader opvragen.
+ Try
+ 'Als de filter is meegegeven wordt de tekst juist opgebouwd. Anders is deze leeg, zodat het niet in de query wordt ingevuld.
+ Dim filterTekst = String.Empty
+ If filter IsNot Nothing Then
+ 'De filter is gespecifieerd.
+ filterTekst = $"AND Onderdeel = '{filter}'"
+ End If
- Catch ex As Exception
- Throw New Exception($"Er is een fout opgetreden bij het opvragen van de batch en kar voor het opvragen van de data reader uit de Caché databank {vbnewline}{ex.Message}")
- End Try
+ 'De query wordt opgebouwd met de data en de eventuele filter.
+ Dim query = $"select BatchID, ToeleveringID, Klant.naam, log.dossiercode, ISNULL(Kar, '') as Kar, log.VerwerkingID, Onderdeel, max(StapNummer) as Status, sum(IsRework) as Rework from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem log join derde_klant.klant on klant.ID=$Piece(log.PartijID,'||',2) where (BatchID='{batch}') AND Kar = '{kar}' AND Onderdeel = '{filterTekst}') group by BatchID, ToeleveringID,Klant.naam,log.VerwerkingID, log.dossiercode,Onderdeel, Kar order by BatchID, ToeleveringID, Kar"
- 'Data reader opvragen.
- Try
- Dim query = $"select BatchID, ToeleveringID, Klant.naam, log.dossiercode, ISNULL(Kar, '') as Kar, log.VerwerkingID, Onderdeel, max(StapNummer) as Status, sum(IsRework) as Rework from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem log join derde_klant.klant on klant.ID=$Piece(log.PartijID,'||',2) where (BatchID='{batch}') group by BatchID, ToeleveringID,Klant.naam,log.VerwerkingID, log.dossiercode,Onderdeel, Kar having ISNULL(Kar, '') like '{kar}' order by BatchID, ToeleveringID, Kar"
+ 'Uitvoeren van query en datareader retourneren.
+ Dim dr = ExecuteIntoDataReader(query)
+ LogBestandTextMapper.writeToFile("Caché", $"Opvragen van data reader met barcode: {barcode}", True)
+ Return dr
+ Catch ex As Exception
+ Throw New Exception($"Er is een fout opgetreden bij het vullen van de data reader van een bepaalde batch en kar uit de Caché databank {vbNewLine}{ex.Message}")
+ End Try
+ End Function
- LogBestandTextMapper.writeToFile("Caché", $"Opvragen van data reader met barcode: {waarde}", True)
+ '''
+ ''' Opvragen van de data reader aan de hand van een lijst van barcodes.
+ '''
+ ''' De lijst van barcodes
+ ''' De datareader
+ Private Function GetDataReader(barcodes As List(Of String)) As OdbcDataReader
+ Try
+ LogBestandTextMapper.writeToFile("Caché", $"Opvragen van OdbcDataReader met barcodes: '{String.Join(", ", barcodes.ToArray())}'")
- 'Uitvoeren van query en datareader retourneren.
- Return ExecuteIntoDataReader2(query)
- Catch ex As Exception
- Throw New Exception($"Er is een fout opgetreden bij het vullen van de data reader van een bepaalde batch en kar uit de Caché databank {vbnewline}{ex.Message}")
- End Try
- End Function
+ 'Controleren dat er minstens 2 items in de lijst zitten.
+ If barcodes Is Nothing OrElse barcodes.Count <= 1 Then
+ Throw New Exception("De lijst met barcodes om de OdbcDataReader op te vragen mag niet leeg zijn (minstens 2 elementen).")
+ End If
- Private Function getDataReader(kolom As Kolommen, waarde As String, filter As String) As OdbcDataReader
- LogBestandTextMapper.writeToFile("Caché", "Opvragen van OdbcDataReader met kolom, waarde, filter: " & EnumMapper.geefWaardeBijEnumValue(kolom) & ", " & waarde & ", " & filter)
+ 'Stringbuilder initialiseren en reeds vullen met de eerste barcode.
+ Dim builder As New StringBuilder
+ builder.Append($"'{barcodes.Item(0)}'")
- Dim kolomnaam As String = geefCacheKolomNaamBijKolom(kolom)
- Dim keyword As String = " = "
- Try
- 'als het een naam is moeten we "like" gebruiken
- If kolomnaam.Equals("naam") Then
- keyword = " like "
- waarde = "%" + waarde + "%"
- End If
+ 'Lijst omzetten in juiste formaat voor query.
+ For Each barcode As String In barcodes.GetRange(1, barcodes.Count - 1)
+ 'Barcodes samenvoegen, gescheiden door een komma.
+ builder.Append($", '{barcode}'")
+ Next
- Dim query As String = "select BatchID, ToeleveringID, Klant.naam, log.dossiercode, Kar, log.VerwerkingID, Onderdeel, max(StapNummer) as Status, sum(IsRework) as Rework from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem log join derde_klant.klant on klant.ID=$Piece(log.PartijID,'||',2) where " & kolomnaam & keyword & "'" & waarde & "'" & " AND Onderdeel = " & "'" & filter & "'" & " group by BatchID, ToeleveringID,Klant.naam,log.VerwerkingID, log.dossiercode,Onderdeel, Kar order by BatchID, ToeleveringID, Kar"
+ 'Opbouwen van de query.
+ Dim query = "Select BatchID, ToeleveringID, Klant.naam, log.dossiercode, Kar, log.VerwerkingID, Onderdeel, max(StapNummer) as Status, sum(IsRework) as Rework from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem log join derde_klant.klant on klant.ID=$Piece(log.PartijID,'||',2) "
+ query &= $"where log.VerwerkingID in ({builder.ToString()})"
+ query &= " group by BatchID, ToeleveringID,Klant.naam,log.VerwerkingID, log.dossiercode,Onderdeel, Kar order by BatchID, ToeleveringID, Kar"
- ExecuteIntoDataReader(query)
- Catch ex As Exception
- Throw New Exception("Fout bij opvragen van OdbcDataReader met kolom, waarde, filter: " & EnumMapper.geefWaardeBijEnumValue(kolom) & ", " & waarde & ", " & filter & vbNewLine & ex.Message)
- End Try
-
- LogBestandTextMapper.writeToFile("Caché", "Opvragen van OdbcDataReader met kolom, waarde, filter: " & EnumMapper.geefWaardeBijEnumValue(kolom) & ", " & waarde & ", " & filter, True)
+ 'Uitvoeren van query en datareader retourneren.
+ Dim dr = ExecuteIntoDataReader(query)
+ LogBestandTextMapper.writeToFile("Caché", $"Opvragen van OdbcDataReader met barcodes: '{String.Join(", ", barcodes.ToArray())}'", True)
Return dr
- End Function
+ Catch ex As Exception
+ Throw New Exception($"Fout bij opvragen van OdbcDataReader met barcodes: '{String.Join(", ", barcodes.ToArray())}' {vbNewLine}{ex.Message}")
+ End Try
+ End Function
+#End Region
- Private Function getDataReaderBarcode(waarde As String, filter As String) As OdbcDataReader
- LogBestandTextMapper.writeToFile("Caché", "Opvragen van OdbcDataReader met waarde, filter: " & waarde & ", " & filter)
- Dim query As String
- Try
- Dim dr As OdbcDataReader = GetDataReader(Kolommen.barcode, waarde)
- 'als er geen entry is gevonden wordt de lege datareader gereturnt
- If Not dr.HasRows Then
- Return dr
- End If
+ '''
+ ''' Opvragen van details van een item aan de hand van de barcode.
+ '''
+ ''' De barcode
+ ''' De datareader
+ Public Function GetDetails(barcode As String) As OdbcDataReader
+ LogBestandTextMapper.writeToFile("Caché", $"Opvragen van OdbcDataReader met details, van barcode: {barcode}")
- dr.Read()
+ Dim query As String = $"select BatchID, ToeleveringID, Klant.naam, log.dossiercode, Kar, log.VerwerkingID, machineID, Onderdeel, tijdstipProductie as TijdstipProductie, StapNummer as Productiestap, Case when IsRework=1 THEN 'TRUE' END as rework from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem log join derde_klant.klant on klant.ID=$Piece(log.PartijID,'||',2) where verwerkingID = '{barcode}' order by StapNummer"
+ Try
+ 'Uitvoeren van query en datareader retourneren.
+ Dim dr = ExecuteIntoDataReader(query)
+ LogBestandTextMapper.writeToFile("Caché", $"Opvragen van OdbcDataReader met details, van barcode: {barcode}", True)
+ Return dr
+ Catch ex As Exception
+ Throw New Exception($"Fout bij opvragen van OdbcDataReader met details, van barcode: '{barcode}'{vbNewLine}{ex.Message}")
+ End Try
+ End Function
- Dim batch As String = dr.GetValue(0).ToString
- Dim kar As String = dr.GetValue(4).ToString
+ '''
+ ''' Opvragen van de datatable aan de hand van het type kolom en de waarde.
+ '''
+ '''
+ '''
+ '''
+ Public Function GeefDataTable(kolom As Kolommen, waarde As Object) As DataTable
+ 'Declaratie van de data reader.
+ Dim dataReader As OdbcDataReader
- query = "select BatchID, ToeleveringID, Klant.naam, log.dossiercode, Kar, log.VerwerkingID, Onderdeel, max(StapNummer) as Status, sum(IsRework) as Rework from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem log join derde_klant.klant on klant.ID=$Piece(log.PartijID,'||',2) where (" & geefCacheKolomNaamBijKolom(Kolommen.batch) & " = " & "'" & batch & "'" & " AND " & geefCacheKolomNaamBijKolom(Kolommen.sorteerkar) & " = " & "'" & kar & "'" & " AND Onderdeel = " & "'" & filter & "'" & ") group by BatchID, ToeleveringID,Klant.naam,log.VerwerkingID, log.dossiercode,Onderdeel, Kar order by BatchID, ToeleveringID, Kar"
+ 'Type kolom controleren.
+ If kolom = Kolommen.barcode Then
+ 'Als het een barcode is moeten we iets meer laten zien: alle items die in dezelfde batch en kar zitten.
+ dataReader = GetDataReaderBarcode(waarde)
+ ElseIf kolom = Kolommen.barcodesVoorraad Then
+ 'Barcodes van een voorraad worden met meerdere tegelijk opgevraagd.
+ dataReader = GetDataReader(TryCast(CObj(waarde), List(Of String)))
+ Else
+ 'Elke andere kolom buiten barcode en barcodesvoorraad.
+ dataReader = GetDataReader(kolom, waarde)
+ End If
- ExecuteIntoDataReader(query)
- Catch ex As Exception
- Throw New Exception("Fout bij opvragen van OdbcDataReader met waarde, filter: " & waarde & ", " & filter & vbNewLine & ex.Message)
- End Try
+ 'DataTable initialiseren en vullen met resultaat van de datareader.
+ Dim datatable = New DataTable()
+ datatable.Load(dataReader)
+ 'Connectie van datareader sluiten.
+ dataReader.Close()
+ 'Retourneren van de datatable
+ Return datatable
+ End Function
- LogBestandTextMapper.writeToFile("Caché", "Opvragen van OdbcDataReader met waarde, filter: " & waarde & ", " & filter, True)
- Return dr
- End Function
+ '''
+ ''' Opvragen van de datareader
+ '''
+ '''
+ '''
+ '''
+ '''
+ Public Function GeefdataTable(kolom As Kolommen, waarde As String, filter As String) As DataTable
+ 'Declaratie van de data reader.
+ Dim dataReader As OdbcDataReader
- Public Function getDetails(barcode As String) As OdbcDataReader
- LogBestandTextMapper.writeToFile("Caché", "Opvragen van OdbcDataReader met details, van barcode: " & barcode)
+ 'Type kolom controleren.
+ If kolom = Kolommen.barcode Then
+ 'Als het een barcode is moeten we iets meer laten zien: items die in dezelfde batch en kar zitten.
+ dataReader = GetDataReaderBarcode(waarde, filter)
+ Else
+ dataReader = GetDataReader(kolom, waarde, filter)
+ End If
- Dim query As String = "select BatchID, ToeleveringID, Klant.naam, log.dossiercode, Kar, log.VerwerkingID, machineID, Onderdeel, tijdstipProductie as TijdstipProductie, StapNummer as Productiestap, Case when IsRework=1 THEN 'TRUE' END as rework from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem log join derde_klant.klant on klant.ID=$Piece(log.PartijID,'||',2) where " & "verwerkingID = " & "'" & barcode & "'" & " order by StapNummer"
- Try
- ExecuteIntoDataReader(query)
- Catch ex As Exception
- Throw New Exception("Fout bij opvragen van OdbcDataReader met details, van barcode: " & barcode & vbNewLine & ex.Message)
- End Try
- LogBestandTextMapper.writeToFile("Caché", "Opvragen van OdbcDataReader met details, van barcode: " & barcode, True)
- Return dr
- End Function
+ 'DataTable initialiseren en vullen met resultaat van de datareader.
+ Dim datatable = New DataTable()
+ datatable.Load(dataReader)
+ 'Connectie van datareader sluiten.
+ dataReader.Close()
+ 'Retourneren van de datatable
+ Return datatable
+ End Function
- Public Function GeefDataTable(kolom As Kolommen, waarde As Object) As DataTable
- Dim dataReader As OdbcDataReader
+ '''
+ ''' Opvragen lijst van mogelijke onderdelen (rug, bodem, ...)
+ '''
+ ''' Lijst van namen van onderdelen
+ Public Function GeefOnderdelen() As List(Of String)
+ LogBestandTextMapper.writeToFile("Caché", "Opvragen van onderdelen.")
+ Const query = "select DISTINCT Onderdeel from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem"
- If kolom = Kolommen.barcode Then
- 'Als het een barcode is moeten we iets meer laten zien: entry's die in dezelfde batch en kar zitten als de barcode.
- dataReader = GetDataReaderBarcode(waarde)
- ElseIf kolom = Kolommen.barcodesVoorraad Then
- 'Barcodes van een voorraad worden tegelijk verwerkt.
- dataReader= geefDataReader(TryCast(CObj(waarde), List(Of String)))
- Else
- dataReader= GetDataReader(kolom, waarde)
- End If
+ Dim onderdelen = ExecuteIntoListOfString(query)
- 'DataTable initialiseren en vullen met resultaat van de datareader.
- Dim datatable = new DataTable()
- datatable.Load(datareader)
- 'Connectie van datareader sluiten.
- datareader.Close()
- 'Retourneren van de datatable
- return datatable
- End Function
+ LogBestandTextMapper.writeToFile("Caché", "Opvragen van onderdelen", True)
+ Return onderdelen
+ End Function
- Public Function geefdatareader(kolom As Kolommen, waarde As String, filter As String) As OdbcDataReader
- 'als het een barcode is moeten we iets meer laten zien: entry's die in dezelfde batch en kar zitten als de barcode
- If kolom = Kolommen.barcode Then
- Return getDataReaderBarcode(waarde, filter)
- Else
- Return getDataReader(kolom, waarde, filter)
- End If
- End Function
+ '''
+ ''' Velden van een rework updaten met informatie uit de databank.
+ ''' Dit gebeurt aan de hand van de barcode van de rework zelf of een optionele andere barcode.
+ '''
+ ''' De rework om te laten updaten
+ ''' Optionele barcode van de originele rework
+ '''
+ Public Function UpdateRework(rework As Rework, Optional barcodeOrigineel As String = Nothing) As Rework
+ LogBestandTextMapper.writeToFile("Caché", "Updaten van rework met informatie uit databank.")
- Public Function geefOnderdelen() As List(Of String)
- LogBestandTextMapper.writeToFile("Caché", "Opvragen van onderdelen")
- Dim query As String = "select DISTINCT Onderdeel from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem"
+ 'Controleren welke barcode gebruikt zal worden
+ Dim barcode As String
+ If String.IsNullOrEmpty(barcodeOrigineel) Then
+ 'Barcode van rework gebruiken.
+ barcode = rework.barcode
+ Else
+ 'Andere barcode gebruiken.
+ barcode = barcodeOrigineel
+ End If
- Dim onderdelen As New List(Of String)
- onderdelen = executeIntoListOfString(query)
+ 'Query opbouwen met barcode.
+ Dim query = $"select top 1 BatchID, DossierCode, DueOut, IsRework, Kar, MachineID, Onderdeel, PartijID, ProductID, SequentieNummer, StapNummer, TijdstipCreatie, TijdstipProductie, ToeleveringID, VerwerkingID, ReworkReden from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem log join derde_klant.klant on klant.ID=$Piece(log.PartijID,'||',2) where verwerkingID = '{barcode}'"
- LogBestandTextMapper.writeToFile("Caché", "Opvragen van onderdelen", True)
- Return onderdelen
- End Function
+ Try
+ 'Query uitvoeren en datareader bijhouden.
+ Dim dr = ExecuteIntoDataReader(query)
- Public Function updateRework(rework As Rework.Rework, Optional barcodeOrigineel As String = "") As Rework.Rework
- LogBestandTextMapper.writeToFile("Caché", "Updaten van rework met informatie uit databank")
-
- Dim barcode As String
- If barcodeOrigineel.Equals("") Then
- barcode = rework.barcode
+ 'Controleren of er resultaten zijn.
+ If dr.Read() Then
+ 'Er is een resultaat, de waarden uitlezen.
+ rework.batch = If(IsDBNull(dr.Item("BatchID")), Nothing, CStr(dr.Item("BatchID")))
+ rework.dossierCode = If(IsDBNull(dr.Item("DossierCode")), Nothing, CStr(dr.Item("DossierCode")))
+ rework.DueOut = If(IsDBNull(dr.Item("DueOut")), Nothing, CStr(dr.Item("DueOut")))
+ rework.IsRework = "rework"
+ rework.kar = If(IsDBNull(dr.Item("Kar")), Nothing, CStr(dr.Item("Kar")))
+ rework.MachineID = If(IsDBNull(dr.Item("MachineID")), Nothing, CStr(dr.Item("MachineID")))
+ rework.OrigineelOnderdeel = If(IsDBNull(dr.Item("Onderdeel")), Nothing, CStr(dr.Item("Onderdeel")))
+ rework.PartijID = If(IsDBNull(dr.Item("PartijID")), Nothing, CStr(dr.Item("PartijID")))
+ rework.ProductID = If(IsDBNull(dr.Item("ProductID")), Nothing, CStr(dr.Item("ProductID")))
+ rework.SequentieNummer = If(IsDBNull(dr.Item("SequentieNummer")), Nothing, CStr(dr.Item("SequentieNummer")))
+ rework.StapNummer = If(IsDBNull(dr.Item("StapNummer")), Nothing, CStr(dr.Item("StapNummer")))
+ rework.TijdstipCreatie = If(IsDBNull(dr.Item("TijdstipCreatie")), Nothing, CStr(dr.Item("TijdstipCreatie")))
+ rework.TijdstipProductie = If(IsDBNull(dr.Item("TijdstipProductie")), Nothing, CStr(dr.Item("TijdstipProductie")))
+ rework.ToeleveringID = If(IsDBNull(dr.Item("ToeleveringID")), Nothing, CStr(dr.Item("ToeleveringID")))
Else
- barcode = barcodeOrigineel
+ 'Er is geen resultaat gevonden.
+ Throw New Exception($"Er is geen record in Caché gevonden voor barcode '{barcode}' om een rework te updaten")
End If
- Dim query As String = "select top 1 BatchID, DossierCode, DueOut, IsRework, Kar, MachineID, Onderdeel, PartijID, ProductID, SequentieNummer, StapNummer, TijdstipCreatie, TijdstipProductie, ToeleveringID, VerwerkingID, ReworkReden from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem log join derde_klant.klant on klant.ID=$Piece(log.PartijID,'||',2) where " & "verwerkingID = " & "'" & barcode & "'"
- Dim hasRead As Boolean = False
- Try
- ConnectToCache()
- Dim command As OdbcCommand = New OdbcCommand(query, _sqlConnection)
- dr = command.ExecuteReader
- While dr.Read()
- rework.batch = If(IsDBNull(dr.Item("BatchID")), Nothing, CStr(dr.Item("BatchID")))
- rework.dossierCode = If(IsDBNull(dr.Item("DossierCode")), Nothing, CStr(dr.Item("DossierCode")))
- rework.DueOut = If(IsDBNull(dr.Item("DueOut")), Nothing, CStr(dr.Item("DueOut")))
- rework.IsRework = "rework"
- rework.kar = If(IsDBNull(dr.Item("Kar")), Nothing, CStr(dr.Item("Kar")))
- rework.MachineID = If(IsDBNull(dr.Item("MachineID")), Nothing, CStr(dr.Item("MachineID")))
- rework.OrigineelOnderdeel = If(IsDBNull(dr.Item("Onderdeel")), Nothing, CStr(dr.Item("Onderdeel")))
- rework.PartijID = If(IsDBNull(dr.Item("PartijID")), Nothing, CStr(dr.Item("PartijID")))
- rework.ProductID = If(IsDBNull(dr.Item("ProductID")), Nothing, CStr(dr.Item("ProductID")))
- rework.SequentieNummer = If(IsDBNull(dr.Item("SequentieNummer")), Nothing, CStr(dr.Item("SequentieNummer")))
- rework.StapNummer = If(IsDBNull(dr.Item("StapNummer")), Nothing, CStr(dr.Item("StapNummer")))
- rework.TijdstipCreatie = If(IsDBNull(dr.Item("TijdstipCreatie")), Nothing, CStr(dr.Item("TijdstipCreatie")))
- rework.TijdstipProductie = If(IsDBNull(dr.Item("TijdstipProductie")), Nothing, CStr(dr.Item("TijdstipProductie")))
- rework.ToeleveringID = If(IsDBNull(dr.Item("ToeleveringID")), Nothing, CStr(dr.Item("ToeleveringID")))
+ Catch ex As Exception
+ Throw New Exception($"Er is een fout opgetreden bij het updaten van een rework met data uit database Caché {vbNewLine}{ex.Message}")
+ End Try
+ LogBestandTextMapper.writeToFile("Caché", "Updaten van rework met informatie uit databank.", True)
+ Return rework
+ End Function
- hasRead = True
- End While
- If Not hasRead Then
- Throw New Exception("Er is geen record in Caché gevonden voor barcode " & barcode & " om een rework te updaten")
- End If
- Catch ex As Exception
- Throw New Exception("Er is een fout opgetreden bij het updaten van een rework met data uit database Caché " & vbNewLine & ex.Message)
- End Try
- LogBestandTextMapper.writeToFile("Caché", "Updaten van rework met informatie uit databank", True)
- Return rework
- End Function
+ Public Sub OpslaanReworkReden(ByRef rework As Rework)
+ LogBestandTextMapper.writeToFile("Caché", $"Opslaan rework reden met reden: {rework.reden}")
- Public Sub opslaanReworkReden(ByRef rework As Rework.Rework)
- LogBestandTextMapper.writeToFile("Caché", "Opslaan rework reden met reden: " & rework.reden)
+ 'Updaten van het stapnummer (op 0 zetten)
+ UpdateStapNummer(rework.barcode)
+ 'Opslaan van de reden.
+ SlaRedenOp(rework)
- updateStapNummer(rework.barcode)
+ LogBestandTextMapper.writeToFile("Caché", $"Opslaan rework reden met reden: {rework.reden}", True)
+ End Sub
- slaRedenOp(rework)
+ '''
+ ''' Hulpfunctie voor het resetten van het stapnummer (op 0 plaatsen).
+ '''
+ ''' Het verwerking Id
+ Private Sub UpdateStapNummer(verwerkingId As String)
+ LogBestandTextMapper.writeToFile("Caché", $"Updaten stapnummer met verwerkingId: {verwerkingId}")
+ Try
+ Dim query As String = $"UPDATE APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem SET StapNummer=-StapNummer WHERE VerwerkingID= '{verwerkingId}' and StapNummer>0"
+ 'Commando uitvoeren.
+ ExecuteCommand(query)
+ Catch ex As Exception
+ Throw New Exception($"Er is een fout opgetreden bij het updaten van het stapnummer bij het opslaan van een rework reden in de Caché databank {vbNewLine}{ex.Message}")
+ End Try
+ LogBestandTextMapper.writeToFile("Caché", $"Updaten stapnummer met verwerkingId: {verwerkingId}", True)
+ End Sub
- LogBestandTextMapper.writeToFile("Caché", "Opslaan rework reden met reden: " & rework.reden, True)
- End Sub
+ '''
+ ''' Hulpfunctie voor het opslaan van de rework reden.
+ '''
+ '''
+ Private Sub SlaRedenOp(ByVal rework As Rework)
+ LogBestandTextMapper.writeToFile("Caché", $"Rework reden wegschrijven naar de databank, reden: {rework.reden}")
- Private Sub updateStapNummer(ByVal verwerkingID As String)
- LogBestandTextMapper.writeToFile("Caché", "Updaten stapnummer met verwerkingID: " & verwerkingID)
- Try
- Dim query As String = "UPDATE APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem SET StapNummer=-StapNummer WHERE VerwerkingID= '" & verwerkingID & "' and StapNummer>0"
+ 'Updaten van de data in de rework.
+ rework.aanpassenData()
- executeCommand(query)
- Catch ex As Exception
- Throw New Exception("Er is een fout opgetreden bij het updaten van het stapnummer bij het opslaan van een rework reden in de Caché databank" & vbNewLine & ex.Message)
- End Try
- LogBestandTextMapper.writeToFile("Caché", "Updaten stapnummer met verwerkingID: " & verwerkingID, True)
- End Sub
+ 'Huidige datum registreren.
+ Dim datum As String = Now.ToString("yyyy-MM-dd HH:mm:ss")
+ 'De query opbouwen.
+ Dim query As String = "insert into APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem (BatchID, DossierCode, DueOut, IsRework, Kar, MachineID, Onderdeel, PartijID, ProductID, SequentieNummer, StapNummer, TijdstipCreatie, TijdstipProductie, ToeleveringID, VerwerkingID, ReworkReden) values ('" & rework.batch & "', '" & rework.dossierCode & "', '" & rework.DueOut & "', '" & rework.IsRework & "', '" & rework.kar & "', '" & rework.MachineID & "', '" & rework.OrigineelOnderdeel & "', '" & rework.PartijID & "', '" & rework.ProductID & "', '" & rework.SequentieNummer & "', '" & rework.StapNummer & "', '" & datum & "', '" & datum & "' ,'" & rework.ToeleveringID & "', '" & rework.barcode & "', '" & rework.reden & "')"
+ Try
+ 'Voer het commando uit.
+ ExecuteCommand(query)
+ Catch ex As Exception
+ Throw New Exception($"Er is een fout opgetreden bij het wegschrijven van de rework met reden naar Caché {vbNewLine}{ex.Message}")
+ End Try
+ LogBestandTextMapper.writeToFile("Caché", $"Rework reden wegschrijven naar de databank, reden: {rework.reden}", True)
+ End Sub
- Private Sub slaRedenOp(ByVal rework As Rework.Rework)
- LogBestandTextMapper.writeToFile("Caché", "Rework reden wegschrijven naar de databank, reden: " & rework.reden)
+ '''
+ ''' Opvragen nummer voor in de barcode voor test lade of special lade.
+ '''
+ ''' Het nummer voor de barcode.
+ Public Function GeefBarcodeNummer() As Integer
+ 'Variablen declareren.
+ Dim query As String
+ Dim teller, maxteller, minTeller, nieuweTeller As Integer
+ 'Blijven herhalen indien nodig.
+ Dim retry = True
- rework.aanpassenData()
- Dim datum As String = Now.ToString("yyyy-MM-dd HH:mm:ss")
- Dim query As String = "insert into APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem (BatchID, DossierCode, DueOut, IsRework, Kar, MachineID, Onderdeel, PartijID, ProductID, SequentieNummer, StapNummer, TijdstipCreatie, TijdstipProductie, ToeleveringID, VerwerkingID, ReworkReden) values ('" & rework.batch & "', '" & rework.dossierCode & "', '" & rework.DueOut & "', '" & rework.IsRework & "', '" & rework.kar & "', '" & rework.MachineID & "', '" & rework.OrigineelOnderdeel & "', '" & rework.PartijID & "', '" & rework.ProductID & "', '" & rework.SequentieNummer & "', '" & rework.StapNummer & "', '" & datum & "', '" & datum & "' ,'" & rework.ToeleveringID & "', '" & rework.barcode & "', '" & rework.reden & "')"
+ LogBestandTextMapper.writeToFile("Caché", $"- Opvragen van barcode nummer, retry: {retry}")
+ Do While retry
+ LogBestandTextMapper.writeToFile("Caché", "Opvragen van teller, minimum teller en maximum teller.")
+ 'Toewijzen query.
+ query = "select * from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.Tellers where label='BARCODE'"
Try
- Dim addCommand As New OdbcCommand
- addCommand.CommandText = query
- addCommand.Connection = _sqlConnection
-
- ConnectToCache()
- addCommand.ExecuteNonQuery()
+ 'Query uitvoeren en datareader bijhouden.
+ Dim dr = ExecuteIntoDataReader(query)
+ 'Velden opvragen uit datareader.
+ teller = CInt(dr.Item("Teller"))
+ maxteller = CInt(dr.Item("MaxTeller"))
+ minTeller = CInt(dr.Item("MinTeller"))
Catch ex As Exception
- Throw New Exception("Er is een fout opgetreden bij het wegschrijven van de rework met reden naar Caché " & vbNewLine & ex.Message)
+ Throw New Exception($"Er is een fout opgetreden bij het opvragen van de tellers voor een test lade barcode nummer.{vbNewLine}{ex.Message}")
End Try
- LogBestandTextMapper.writeToFile("Caché", "Rework reden wegschrijven naar de databank, reden: " & rework.reden, True)
- End Sub
- 'Opvragen barcode nummer voor test lade of special lade
- Public Function geefBarcodeNummer() As Integer
- Dim query As String = ""
- Dim teller, maxteller, minTeller, nieuweTeller As Integer
+ 'Kijken of maximum waarde van de teller nog niet is overschreden.
+ If Not (teller > maxteller) Then
+ 'Zo ja, teller verhogen.
+ nieuweTeller = teller + 1
+ Else
+ 'Maximum is overschreden, teller resetten.
+ nieuweTeller = minTeller
+ End If
- Dim retry As Boolean = True
+ LogBestandTextMapper.writeToFile("Caché", "Opvragen van teller, minimum teller en maximum teller.", True)
- LogBestandTextMapper.writeToFile("Caché", "- Opvragen van barcode nummer, retry: " & retry)
- Do While retry
- LogBestandTextMapper.writeToFile("Caché", "Opvragen van alle tellers")
- query = "select * from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.Tellers where label='BARCODE'"
- Try
- ExecuteIntoDataReader(query)
+ 'UPDATEN MET NIEUWE TELLER
+ 'Alleen uitvoeren als de verwerk optie aanstaat
+ If Not Configs.geefVerwerkStatus Then
+ 'Er wordt niet verwerkt, teller niet updaten en lus verbreken.
+ retry = False
+ Else
+ LogBestandTextMapper.writeToFile("Caché", $"Updaten van de teller met de nieuwe teller: {nieuweTeller}")
- dr.Read()
+ 'Query opbouwen.
+ query = $"Update APPS_Halux_Opvolging_ProductieStap_TAOR_dto.Tellers set Teller={nieuweTeller} where label='BARCODE'"
+ 'Commando uitvoeren
+ ExecuteCommand(query)
- teller = CInt(dr.Item("Teller"))
- maxteller = CInt(dr.Item("MaxTeller"))
- minTeller = CInt(dr.Item("MinTeller"))
- Catch ex As Exception
- Throw New Exception("Er is een fout opgetreden bij het opvragen van de tellers voor een test lade barcode nummer" & vbNewLine & ex.Message)
- End Try
+ LogBestandTextMapper.writeToFile("Caché", $"Updaten van de teller met de nieuwe teller: {nieuweTeller}", True)
- If teller > maxteller Then
- nieuweTeller = minTeller
- Else
- nieuweTeller = teller + 1
- End If
-
-
- 'alleen uitvoeren als de verwerk optie aanstaat
- If Configs.geefVerwerkStatus Then
-
- LogBestandTextMapper.writeToFile("Caché", "Opvragen van alle tellers", True)
-
- LogBestandTextMapper.writeToFile("Caché", "Updaten van de teller met de nieuwe teller: " & nieuweTeller)
- query = "Update APPS_Halux_Opvolging_ProductieStap_TAOR_dto.Tellers set Teller=" & nieuweTeller & " where label='BARCODE'"
- executeCommand(query)
- LogBestandTextMapper.writeToFile("Caché", "Updaten van de teller met de nieuwe teller: " & nieuweTeller, True)
-
- LogBestandTextMapper.writeToFile("Caché", "Opvragen van de geüpdate teller")
- query = "select Teller from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.Tellers where label='BARCODE'"
- Try
- ExecuteIntoDataReader(query)
-
- dr.Read()
-
- teller = dr.Item("Teller")
- Catch ex As Exception
- Throw New Exception("Er is een fout opgetreden bij het opvragen van de nieuwe teller voor test lade barcode nummer" & vbNewLine & ex.Message)
- End Try
- LogBestandTextMapper.writeToFile("Caché", "Opvragen van de geüpdate teller", True)
- If nieuweTeller <> teller Then
- If retry Then
- retry = False
- Else
- Throw New Exception("Kan geen unieke barcode nummer opvragen")
- End If
- Else
- retry = False
- End If
-
- Else 'er wordt niet verwerkt
- retry = False
- End If
- Loop
-
- LogBestandTextMapper.writeToFile("Caché", "- Opvragen van barcode nummer, retry: " & retry, True)
- Return nieuweTeller
- End Function
-
- 'Opvragen barcode nummer voor test lade
- Public Function geefTestLadeTrayNummer() As Integer
- Dim query As String = ""
- Dim teller, maxteller, minTeller, nieuweTeller As Integer
-
- Dim retry As Boolean = True
-
- LogBestandTextMapper.writeToFile("Caché", "- Opvragen van tray nummer, retry: " & retry)
- Do While retry
- LogBestandTextMapper.writeToFile("Caché", "Opvragen van alle tellers")
- query = "select * from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.Tellers where label='TRAY'"
+ 'Ophalen geüpdate teller, reden hiervoor is dat de tellers op hetzelfde moment verhoogt kunnen worden.
+ LogBestandTextMapper.writeToFile("Caché", "Opvragen van de geüpdate teller")
+ query = "select Teller from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.Tellers where label='BARCODE'"
Try
- ExecuteIntoDataReader(query)
+ 'Query uitvoeren en datareader bijhouden.
+ Dim dr = ExecuteIntoDataReader(query)
+ 'Teller uitlezen.
dr.Read()
-
- teller = CInt(dr.Item("Teller"))
- maxteller = CInt(dr.Item("MaxTeller"))
- minTeller = CInt(dr.Item("MinTeller"))
+ teller = dr.Item("Teller")
Catch ex As Exception
- Throw New Exception("Er is een fout opgetreden bij het opvragen van de tellers voor test lade tray nummer")
+ Throw New Exception($"Er is een fout opgetreden bij het opvragen van de nieuwe teller voor test lade{vbNewLine}{ex.Message}")
End Try
- If teller > maxteller Then
- nieuweTeller = minTeller
- Else
- nieuweTeller = teller + 1
- End If
+ LogBestandTextMapper.writeToFile("Caché", "Opvragen van de geüpdate teller", True)
- 'alleen uitvoeren als de verwerk optie aanstaat
- If Configs.geefVerwerkStatus Then
-
- LogBestandTextMapper.writeToFile("Caché", "Opvragen van alle tellers", True)
-
- LogBestandTextMapper.writeToFile("Caché", "Updaten van de teller met de nieuwe teller: " & nieuweTeller)
- query = "Update APPS_Halux_Opvolging_ProductieStap_TAOR_dto.Tellers set Teller=" & nieuweTeller & " where label='TRAY'"
- executeCommand(query)
- LogBestandTextMapper.writeToFile("Caché", "Updaten van de teller met de nieuwe teller: " & nieuweTeller, True)
-
- LogBestandTextMapper.writeToFile("Caché", "Opvragen van de geüpdate teller")
- query = "select Teller from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.Tellers where label='TRAY'"
- Try
- ExecuteIntoDataReader(query)
-
- dr.Read()
-
- teller = dr.Item("Teller")
- Catch ex As Exception
- Throw New Exception("Er is een fout opgetreden bij het opvragen van de nieuwe teller voor test lade tray nummer")
- End Try
- LogBestandTextMapper.writeToFile("Caché", "Opvragen van de geüpdate teller", True)
- If nieuweTeller <> teller Then
- If retry Then
- retry = False
- Else
- Throw New Exception("Kan geen unieke tray nummer opvragen")
- End If
- Else
+ 'De opgehaalde teller in de databank verschilt van de teller die is geproeerd weg te schrijven.
+ 'Dit betekent dat de teller reeds is overschreven. Daarom zal geprobeerd worden de teller opnieuw te bepalen.
+ If nieuweTeller <> teller Then
+ 'Kijken of dit niet al eens is gebeurt. Houdt een oneindige loop tegen.
+ If retry Then
+ 'Eerste keer dat dit voorkomt, updaten van variabele.
retry = False
+ Else
+ 'Kon na herproberen nog steeds geen correcte teller ophalen.
+ Throw New Exception("Kan geen unieke barcode nummer opvragen")
End If
-
- Else 'er wordt niet verwerkt
+ Else
+ 'Teller is correct, while-lus verbreken.
retry = False
End If
- Loop
+ End If
+ Loop
- LogBestandTextMapper.writeToFile("Caché", "- Opvragen van tray nummer, retry: " & retry, True)
- Return nieuweTeller
- End Function
+ LogBestandTextMapper.writeToFile("Caché", $"- Opvragen van barcode nummer, retry: {retry}", True)
+ Return nieuweTeller
+ End Function
- 'Opslaan van gegenereerde onderdeel door eerst het origineel op te vragen en bepaalde velden aan te passen en dan te inserten
- Public Sub opslaanGegenereerdeOnderdelen(origineelOnderdeel As ArdisData, nieuwOnderdeel As ArdisData, nieuwOnderdeelNaam As String)
- LogBestandTextMapper.writeToFile("Cache", "Opslaan van gegenereerde onderdeel aan de hand van oud bestaand onderdeel, barcode bestaand onderdeel, barcode nieuw onderdeel: " & origineelOnderdeel.PartCalc & ", " & nieuwOnderdeel.PartCalc)
+ '''
+ ''' Opslaan van gegenereerde onderdeel door eerst het origineel op te vragen, bepaalde velden aan te passen, en dan te inserten.
+ '''
+ ''' Het originele onderdeel.
+ ''' Het nieuwe onderdeel.
+ ''' Naam voor het nieuwe onderdeel.
+ Public Sub OpslaanGegenereerdeOnderdelen(origineelOnderdeel As ArdisData, nieuwOnderdeel As ArdisData, nieuwOnderdeelNaam As String)
+ LogBestandTextMapper.writeToFile("Cache", $"Opslaan van gegenereerde onderdeel aan de hand van oud bestaand onderdeel. Barcode bestaand onderdeel, barcode nieuw onderdeel: '{origineelOnderdeel.PartCalc}' '{nieuwOnderdeel.PartCalc}'")
- Dim query As String = "Insert into APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem (BatchID, DossierCode, DueOut, IsRework, Kar, MachineID, Onderdeel, PartijID, ProductID, SequentieNummer, StapNummer, TijdstipCreatie, TijdstipProductie, ToeleveringID, VerwerkingID) "
- query &= "select top 1 BatchID, DossierCode, DueOut, ?, Kar, MachineID, ?, PartijID, ProductID, SequentieNummer, ?, ?, ?, ToeleveringID, ? from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem where VerwerkingID=?"
- Try
- Dim addCommand As New OdbcCommand
- addCommand.CommandText = query
- addCommand.Connection = _sqlConnection
+ Dim query As String = "Insert into APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem (BatchID, DossierCode, DueOut, IsRework, Kar, MachineID, Onderdeel, PartijID, ProductID, SequentieNummer, StapNummer, TijdstipCreatie, TijdstipProductie, ToeleveringID, VerwerkingID) "
+ query &= "select top 1 BatchID, DossierCode, DueOut, ?, Kar, MachineID, ?, PartijID, ProductID, SequentieNummer, ?, ?, ?, ToeleveringID, ? from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem where VerwerkingID=?"
+ Try
+ 'Commando initialiseren.
+ Dim addCommand As New OdbcCommand With {
+ .CommandText = query,
+ .Connection = _sqlConnection
+ }
- addCommand.Parameters.AddWithValue("@isReworkNieuw", OdbcType.VarChar).Value = False
- addCommand.Parameters.AddWithValue("@OnderdeelNieuw", OdbcType.VarChar).Value = nieuwOnderdeelNaam
- addCommand.Parameters.AddWithValue("@StapNummerNieuw", OdbcType.VarChar).Value = 0
- addCommand.Parameters.AddWithValue("@TijdstipCreatieNieuw", OdbcType.VarChar).Value = Now.ToString("yyyy-MM-dd HH:mm:ss")
- addCommand.Parameters.AddWithValue("@TijdstipProductieNieuw", OdbcType.VarChar).Value = Now.ToString("yyyy-MM-dd HH:mm:ss")
- addCommand.Parameters.AddWithValue("@VerwerkingIDNieuw", OdbcType.VarChar).Value = nieuwOnderdeel.PartCalc
- addCommand.Parameters.AddWithValue("@VerwerkingIDOrigineel", OdbcType.VarChar).Value = origineelOnderdeel.PartCalc
+ addCommand.Parameters.AddWithValue("@isReworkNieuw", OdbcType.VarChar).Value = False
+ addCommand.Parameters.AddWithValue("@OnderdeelNieuw", OdbcType.VarChar).Value = nieuwOnderdeelNaam
+ addCommand.Parameters.AddWithValue("@StapNummerNieuw", OdbcType.VarChar).Value = 0
+ addCommand.Parameters.AddWithValue("@TijdstipCreatieNieuw", OdbcType.VarChar).Value = Now.ToString("yyyy-MM-dd HH:mm:ss")
+ addCommand.Parameters.AddWithValue("@TijdstipProductieNieuw", OdbcType.VarChar).Value = Now.ToString("yyyy-MM-dd HH:mm:ss")
+ addCommand.Parameters.AddWithValue("@VerwerkingIDNieuw", OdbcType.VarChar).Value = nieuwOnderdeel.PartCalc
+ addCommand.Parameters.AddWithValue("@VerwerkingIDOrigineel", OdbcType.VarChar).Value = origineelOnderdeel.PartCalc
- ConnectToCache()
- addCommand.ExecuteNonQuery()
+ 'Connecteren met Caché.
+ ConnectToCache()
+ 'Query uitvoeren.
+ addCommand.ExecuteNonQuery()
- Catch ex As Exception
- Throw New Exception("Er is een fout opgetreden bij het opslaan van de gegenereerde onderdelen in de caché databank" & vbNewLine & ex.Message)
- End Try
- LogBestandTextMapper.writeToFile("Cache", "Opslaan van gegenereerde onderdeel aan de hand van oud bestaand onderdeel, barcode bestaand onderdeel, barcode nieuw onderdeel: " & origineelOnderdeel.PartCalc & ", " & nieuwOnderdeel.PartCalc, True)
- End Sub
+ Catch ex As Exception
+ Throw New Exception($"Er is een fout opgetreden bij het opslaan van de gegenereerde onderdelen in de caché databank {vbNewLine}{ex.Message}")
+ End Try
+ LogBestandTextMapper.writeToFile("Cache", $"Opslaan van gegenereerde onderdeel aan de hand van oud bestaand onderdeel. Barcode bestaand onderdeel, barcode nieuw onderdeel: '{origineelOnderdeel.PartCalc}' '{nieuwOnderdeel.PartCalc}'", True)
+ End Sub
- 'Opvragen gegevens met barcodes voor voorraad aanvulling
- Private Function geefDataReader(barcodes As List(Of String)) As OdbcDataReader
- LogBestandTextMapper.writeToFile("Caché", "Opvragen van OdbcDataReader met barcodes: " & String.Join(", ", barcodes.ToArray()))
-
- If barcodes Is Nothing OrElse barcodes.Count <= 1 Then
- Throw New Exception("De lijst met barcodes om de OdbcDataReader op te vragen mag niet leeg zijn (minstens 2 elementen)")
- End If
-
- Try
- Dim builder As New StringBuilder
- builder.Append("'").Append(barcodes.Item(0)).Append("'")
- 'list omzetten in juiste formaat voor query
- For Each barcode As String In barcodes.GetRange(1, barcodes.Count - 1)
- builder.Append(", '").Append(barcode).Append("'")
- Next
-
- Dim query As String = "Select BatchID, ToeleveringID, Klant.naam, log.dossiercode, Kar, log.VerwerkingID, Onderdeel, max(StapNummer) as Status, sum(IsRework) as Rework from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem log join derde_klant.klant on klant.ID=$Piece(log.PartijID,'||',2) "
- query &= "where log.VerwerkingID in (" & builder.ToString & ")"
- 'query &= "where log.VerwerkingID in (" & "'RKV01990US02363D0', 'RKV01990US02363D1'" & ")"
- query &= " group by BatchID, ToeleveringID,Klant.naam,log.VerwerkingID, log.dossiercode,Onderdeel, Kar order by BatchID, ToeleveringID, Kar"
-
- ExecuteIntoDataReader(query)
- Catch ex As Exception
- Throw New Exception("Fout bij opvragen van OdbcDataReader met barcodes: " & String.Join(", ", barcodes.ToArray()) & vbNewLine & ex.Message)
- End Try
- LogBestandTextMapper.writeToFile("Caché", "Opvragen van OdbcDataReader met barcodes: " & String.Join(", ", barcodes.ToArray()), True)
- Return dr
- End Function
-
- End Module
\ No newline at end of file
+End Module
\ No newline at end of file