Index: TAOR-rework-bugfixing/TAOR rework/databases/Cache/CacheMapper.vb =================================================================== diff -u -r1601 -r1603 --- TAOR-rework-bugfixing/TAOR rework/databases/Cache/CacheMapper.vb (.../CacheMapper.vb) (revision 1601) +++ TAOR-rework-bugfixing/TAOR rework/databases/Cache/CacheMapper.vb (.../CacheMapper.vb) (revision 1603) @@ -2,502 +2,532 @@ 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 - Private Sub connectToCache() - Try - If SQLConnection Is Nothing Then - 'Connectie initialiseren. - SQLConnection = New OdbcConnection(CONNECTIE_STRING) + ''' + ''' 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 + Public Sub sluitDataReader() + If Not (dr Is Nothing OrElse dr.IsClosed) Then + dr.Close() + dr = Nothing 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 + End Sub - 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 + 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 - 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 + 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.{vbNewLine}{ex.Message}") + End Try + End Function - Private Function executeIntoListOfString(ByVal query As String) As List(Of String) - Try - connectToCache() - Dim comm As OdbcCommand = New OdbcCommand(query, SQLConnection) + 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 - Dim data As New List(Of String) + Private Function executeIntoListOfString(ByVal query As String) As List(Of String) + Try + ConnectToCache() + Dim comm As OdbcCommand = New OdbcCommand(query, _sqlConnection) - dr = comm.ExecuteReader() + Dim data As New List(Of String) - While (dr.Read()) - data.Add(dr.GetValue(0).ToString) - End While + dr = comm.ExecuteReader() - 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 + While (dr.Read()) + data.Add(dr.GetValue(0).ToString) + End While - Private Function getDataReader(kolom As Kolommen, waarde As String) As OdbcDataReader - LogBestandTextMapper.writeToFile("Caché", "Opvragen van OdbcDataReader met kolom, waarde: " & EnumMapper.geefWaardeBijEnumValue(kolom) & ", " & waarde) + 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 - Dim kolomnaam As String = geefCacheKolomNaamBijKolom(kolom) - Dim keyword As String = " = " + 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 - Try - 'als het een naam is moeten we "like" gebruiken - If kolomnaam.Equals("naam") Then - keyword = " like " - waarde = "%" + waarde + "%" - End If + 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 - 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 & "'" & "group by BatchID, ToeleveringID,Klant.naam,log.VerwerkingID, log.dossiercode,Onderdeel, Kar order by BatchID, ToeleveringID, Kar" + 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" - executeIntoDataReader(query) - Catch ex As Exception - Throw New Exception("Fout bij opvragen van OdbcDataReader met kolom, waarde: " & EnumMapper.geefWaardeBijEnumValue(kolom) & ", " & waarde & vbNewLine & ex.Message) - End Try + 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 - LogBestandTextMapper.writeToFile("Caché", "Opvragen van OdbcDataReader met kolom, waarde: " & kolom & ", " & waarde, True) - Return dr - End Function + Private Function GetDataReaderBarcode(waarde As String) As OdbcDataReader + LogBestandTextMapper.writeToFile("Caché", $"Opvragen van data reader met barcode: {waarde}") - Private Function getDataReaderBarcode(waarde As String) As OdbcDataReader - LogBestandTextMapper.writeToFile("Caché", "Opvragen van OdbcDataReader met barcode: " & waarde) - 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 + 'Variable declaratie. + Dim batch, kar - Dim batch As String = "" - Dim kar As String = "" - Dim uniekeBarcode As Boolean = True - Do While dr.Read - If Not uniekeBarcode Then - Throw New Exception("De barcode is niet uniek") + 'Opvragen batch en kar. + Try + 'Opvragen van de datareader met als type barcode bij de hulpfunctie. + Dim barcodeDataReader = GetDataReader(Kolommen.barcode, waarde) + + 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 - batch = dr.GetValue(0).ToString - kar = dr.GetValue(4).ToString - uniekeBarcode = False - Loop - 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" - executeIntoDataReader(query) - 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 datareader uit de Caché databank" & vbNewLine & ex.Message) - End Try + 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 - LogBestandTextMapper.writeToFile("Caché", "Opvragen van OdbcDataReader met barcode: " & waarde, True) - Return dr - End Function + '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" - 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) + LogBestandTextMapper.writeToFile("Caché", $"Opvragen van data reader met barcode: {waarde}", True) - 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 + '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 - 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" + 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) - 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 + 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 - LogBestandTextMapper.writeToFile("Caché", "Opvragen van OdbcDataReader met kolom, waarde, filter: " & EnumMapper.geefWaardeBijEnumValue(kolom) & ", " & waarde & ", " & filter, True) - Return dr - End Function + 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" - 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 + 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 - dr.Read() + LogBestandTextMapper.writeToFile("Caché", "Opvragen van OdbcDataReader met kolom, waarde, filter: " & EnumMapper.geefWaardeBijEnumValue(kolom) & ", " & waarde & ", " & filter, True) + Return dr + End Function - Dim batch As String = dr.GetValue(0).ToString - Dim kar As String = dr.GetValue(4).ToString + 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 - 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" + dr.Read() - executeIntoDataReader(query) - Catch ex As Exception - Throw New Exception("Fout bij opvragen van OdbcDataReader met waarde, filter: " & waarde & ", " & filter & vbNewLine & ex.Message) - End Try + Dim batch As String = dr.GetValue(0).ToString + Dim kar As String = dr.GetValue(4).ToString - LogBestandTextMapper.writeToFile("Caché", "Opvragen van OdbcDataReader met waarde, filter: " & waarde & ", " & filter, True) - Return dr - End Function + 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" - Private dr As OdbcDataReader - Public Sub sluitDataReader() - If Not (dr Is Nothing OrElse dr.IsClosed) Then - dr.Close() - dr = Nothing - End If - End Sub + ExecuteIntoDataReader(query) + Catch ex As Exception + Throw New Exception("Fout bij opvragen van OdbcDataReader met waarde, filter: " & waarde & ", " & filter & vbNewLine & ex.Message) + End Try - Public Function getDetails(barcode As String) As OdbcDataReader - LogBestandTextMapper.writeToFile("Caché", "Opvragen van OdbcDataReader met details, van barcode: " & barcode) + LogBestandTextMapper.writeToFile("Caché", "Opvragen van OdbcDataReader met waarde, filter: " & waarde & ", " & filter, True) + Return dr + End Function - 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 + Public Function getDetails(barcode As String) As OdbcDataReader + LogBestandTextMapper.writeToFile("Caché", "Opvragen van OdbcDataReader met details, van barcode: " & barcode) - Public Function geefdatareader(kolom As Kolommen, waarde As Object) 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) - ElseIf kolom = Kolommen.barcodesVoorraad Then - Return geefdatareader(TryCast(CObj(waarde), List(Of String))) - Else - Return getDataReader(kolom, waarde) - End If - End Function + 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 - 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 + Public Function GeefDataTable(kolom As Kolommen, waarde As Object) As DataTable + Dim dataReader As OdbcDataReader - 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" + 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 As New List(Of String) - 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 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 - Else - barcode = barcodeOrigineel - 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"))) - - 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") + 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 - 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 + End Function - Public Sub opslaanReworkReden(ByRef rework As Rework.Rework) - LogBestandTextMapper.writeToFile("Caché", "Opslaan rework reden met reden: " & rework.reden) + 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" - updateStapNummer(rework.barcode) + Dim onderdelen As New List(Of String) + onderdelen = executeIntoListOfString(query) - slaRedenOp(rework) + LogBestandTextMapper.writeToFile("Caché", "Opvragen van onderdelen", True) + Return onderdelen + End Function - LogBestandTextMapper.writeToFile("Caché", "Opslaan rework reden met reden: " & rework.reden, True) - End Sub + Public Function updateRework(rework As Rework.Rework, Optional barcodeOrigineel As String = "") As Rework.Rework + LogBestandTextMapper.writeToFile("Caché", "Updaten van rework met informatie uit databank") - 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" + Dim barcode As String + If barcodeOrigineel.Equals("") Then + barcode = rework.barcode + Else + barcode = barcodeOrigineel + 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"))) - 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 + 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 - Private Sub slaRedenOp(ByVal rework As Rework.Rework) - LogBestandTextMapper.writeToFile("Caché", "Rework reden wegschrijven naar de databank, reden: " & rework.reden) + Public Sub opslaanReworkReden(ByRef rework As Rework.Rework) + LogBestandTextMapper.writeToFile("Caché", "Opslaan rework reden met reden: " & rework.reden) - 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 & "')" - Try - Dim addCommand As New OdbcCommand - addCommand.CommandText = query - addCommand.Connection = SQLConnection + updateStapNummer(rework.barcode) - connectToCache() - addCommand.ExecuteNonQuery() - 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 + slaRedenOp(rework) - '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 + LogBestandTextMapper.writeToFile("Caché", "Opslaan rework reden met reden: " & rework.reden, True) + End Sub - Dim retry As Boolean = 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'" + Private Sub updateStapNummer(ByVal verwerkingID As String) + LogBestandTextMapper.writeToFile("Caché", "Updaten stapnummer met verwerkingID: " & verwerkingID) Try - executeIntoDataReader(query) + Dim query As String = "UPDATE APPS_Halux_Opvolging_ProductieStap_TAOR_dto.ProductieStapLogItem SET StapNummer=-StapNummer WHERE VerwerkingID= '" & verwerkingID & "' and StapNummer>0" - dr.Read() - - teller = CInt(dr.Item("Teller")) - maxteller = CInt(dr.Item("MaxTeller")) - minTeller = CInt(dr.Item("MinTeller")) + executeCommand(query) 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) + 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 - If teller > maxteller Then - nieuweTeller = minTeller - Else - nieuweTeller = teller + 1 - End If + Private Sub slaRedenOp(ByVal rework As Rework.Rework) + LogBestandTextMapper.writeToFile("Caché", "Rework reden wegschrijven naar de databank, reden: " & rework.reden) + 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 & "')" + Try + Dim addCommand As New OdbcCommand + addCommand.CommandText = query + addCommand.Connection = _sqlConnection - 'alleen uitvoeren als de verwerk optie aanstaat - If Configs.geefVerwerkStatus Then + ConnectToCache() + addCommand.ExecuteNonQuery() + 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 - LogBestandTextMapper.writeToFile("Caché", "Opvragen van alle tellers", True) + '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 - 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) + Dim retry As Boolean = True - LogBestandTextMapper.writeToFile("Caché", "Opvragen van de geüpdate teller") - query = "select Teller from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.Tellers where label='BARCODE'" + 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) + ExecuteIntoDataReader(query) dr.Read() - teller = dr.Item("Teller") + 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 nieuwe teller voor test lade barcode nummer" & 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é", "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 + + If teller > maxteller Then + nieuweTeller = minTeller Else - retry = False + nieuweTeller = teller + 1 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 + 'alleen uitvoeren als de verwerk optie aanstaat + If Configs.geefVerwerkStatus Then - 'Opvragen barcode nummer voor test lade - Public Function geefTestLadeTrayNummer() As Integer - Dim query As String = "" - Dim teller, maxteller, minTeller, nieuweTeller As Integer + LogBestandTextMapper.writeToFile("Caché", "Opvragen van alle tellers", True) - Dim retry As Boolean = 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 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'" - Try - executeIntoDataReader(query) + 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() + dr.Read() - 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 test lade tray nummer") - End Try - If teller > maxteller Then - nieuweTeller = minTeller - Else - nieuweTeller = teller + 1 - End If + 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 - 'alleen uitvoeren als de verwerk optie aanstaat - If Configs.geefVerwerkStatus Then + Else 'er wordt niet verwerkt + retry = False + End If + Loop - LogBestandTextMapper.writeToFile("Caché", "Opvragen van alle tellers", True) + LogBestandTextMapper.writeToFile("Caché", "- Opvragen van barcode nummer, retry: " & retry, True) + Return nieuweTeller + End Function - 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) + 'Opvragen barcode nummer voor test lade + Public Function geefTestLadeTrayNummer() As Integer + Dim query As String = "" + Dim teller, maxteller, minTeller, nieuweTeller As Integer - LogBestandTextMapper.writeToFile("Caché", "Opvragen van de geüpdate teller") - query = "select Teller from APPS_Halux_Opvolging_ProductieStap_TAOR_dto.Tellers where label='TRAY'" + 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'" Try - executeIntoDataReader(query) + ExecuteIntoDataReader(query) dr.Read() - teller = dr.Item("Teller") + 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 nieuwe teller voor test lade tray nummer") + Throw New Exception("Er is een fout opgetreden bij het opvragen van de tellers 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 + 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='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 - Throw New Exception("Kan geen unieke tray nummer opvragen") + retry = False End If - Else + + Else 'er wordt niet verwerkt retry = False End If + Loop - Else 'er wordt niet verwerkt - retry = False - End If - Loop + LogBestandTextMapper.writeToFile("Caché", "- Opvragen van tray nummer, retry: " & retry, True) + Return nieuweTeller + End Function - LogBestandTextMapper.writeToFile("Caché", "- Opvragen van tray 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 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) + 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 - Dim addCommand As New OdbcCommand - addCommand.CommandText = query - addCommand.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() - connectToCache() - 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())) - '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 - 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 - 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" - 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 - 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 + End Module \ No newline at end of file