Files
Lehrlingsparcours/_archiv/LP/.svn/pristine/f7/f72a1618b8ba5a77f8efbaadb1d4a3cac8e3096c.svn-base
2019-12-21 10:58:30 +01:00

284 lines
11 KiB
Plaintext

Imports System.Data.SQLite
Public Class clsZuteilung
Dim ds As New DataSet
Dim daten As New DataSet
Dim SQLconnect As New SQLite.SQLiteConnection()
Dim dt As New DataTable
Dim da As New SQLiteDataAdapter("", SQLconnect)
Dim clsallg As New clsAllgemein
Public Function Get_Uebersicht(ByRef dt As DataTable)
Dim sql As String = clsallg.Get_SQLAbfrage_Statement(3)
SQLconnect.ConnectionString = Globals.Datenbank
SQLconnect.Open()
Dim sqlcmd As New SQLiteCommand
sqlcmd.Connection = SQLconnect
Try
sqlcmd.CommandType = CommandType.Text
sqlcmd.CommandText = sql
da.SelectCommand = sqlcmd
da.Fill(ds, "Zuget")
Catch ex As Exception
MsgBox(ex.Message)
End Try
dt = ds.Tables(0)
SQLconnect.Close()
End Function
Public Function Get_Uebersicht(ByRef dt As DataTable, ByVal Schuelernr As Integer)
Dim sql As String = clsallg.Get_SQLAbfrage_Statement(4)
sql = sql.Replace("[Where]", " where schueler.schuelernr=" + Schuelernr.ToString + " ")
Try
SQLconnect.ConnectionString = Globals.Datenbank
Catch
End Try
Try
SQLconnect.Open()
Catch
End Try
Dim sqlcmd As New SQLiteCommand
sqlcmd.Connection = SQLconnect
Try
ds.Tables.Clear()
sqlcmd.CommandType = CommandType.Text
sqlcmd.CommandText = sql
da.SelectCommand = sqlcmd
da.Fill(ds, "Zuget")
Catch ex As Exception
MsgBox(ex.Message)
End Try
dt = ds.Tables(0)
SQLconnect.Close()
End Function
Public Function Update_Zuteilung(ByRef r As DataRow)
Dim sqlcmd As New SQLiteCommand
sqlcmd.Connection = SQLconnect
SQLconnect.Open()
sqlcmd.CommandType = CommandType.Text
If r.Item("Aktiv") = False Then
sqlcmd.CommandText = "update zuteilung set aktiv=0 where eintragnr=" + r.Item("eintragnr").ToString
Else
sqlcmd.CommandText = "update zuteilung set aktiv=1 where eintragnr=" + r.Item("eintragnr").ToString
End If
sqlcmd.ExecuteNonQuery()
SQLconnect.Close()
End Function
Public Function Ist_Zugeteilt(ByVal SchuelerBerufNr As Integer) As Boolean
Dim sqlcmd As New SQLiteCommand
sqlcmd.Connection = SQLconnect
sqlcmd.CommandType = CommandType.Text
sqlcmd.CommandText = "Select count(*) from zuteilung where aktiv=1 and schuelerberufnr=" + Str(SchuelerBerufNr)
Try
SQLconnect.Open()
Catch ex As Exception
End Try
Dim result As Boolean = False
Dim SQLreader As SQLiteDataReader = sqlcmd.ExecuteReader()
While SQLreader.Read()
If SQLreader(0).ToString = "0" Then result = False Else result = True
End While
sqlcmd.Dispose()
SQLconnect.Close()
Return result
End Function
Public Function Summe_Verfügbare_Berufe(ByVal Berufnr As Integer) As Integer
Dim sqlcmd As New SQLiteCommand
sqlcmd.Connection = SQLconnect
sqlcmd.CommandType = CommandType.Text
sqlcmd.CommandText = "SELECT sum(anzahl) from firmaberuf where berufnr=" + Berufnr.ToString
SQLconnect.Open()
Dim result As Integer = 0
Dim SQLreader As SQLiteDataReader = sqlcmd.ExecuteReader()
While SQLreader.Read()
Try
result = SQLreader(0).ToString
Catch ex As Exception
result = 0
End Try
End While
sqlcmd.Dispose()
SQLconnect.Close()
Return result
End Function
Public Function Summe_Zugeteilter_Berufe(ByVal Berufnr As Integer) As Integer
Dim sqlcmd As New SQLiteCommand
sqlcmd.Connection = SQLconnect
sqlcmd.CommandType = CommandType.Text
'
'
sqlcmd.CommandText = "SELECT count(eintragnr) FROM zuteilung INNER JOIN firmaberuf ON (zuteilung.firmaberufnr = firmaberuf.FirmaBerufNr) WHERE zuteilung.aktiv = 1 AND firmaberuf.berufnr=" + Berufnr.ToString
SQLconnect.Open()
Dim result As Integer = 0
Dim SQLreader As SQLiteDataReader = sqlcmd.ExecuteReader()
While SQLreader.Read()
Try
result = SQLreader(0).ToString
Catch ex As Exception
result = 0
End Try
End While
sqlcmd.Dispose()
SQLconnect.Close()
Return result
End Function
Public Function Get_Reservierte_Plätze(ByVal Berufnr As Integer) As DataTable
Dim sql As String = clsallg.Get_SQLAbfrage_Statement(7)
sql = sql + Berufnr.ToString
SQLconnect.ConnectionString = Globals.Datenbank
SQLconnect.Open()
Dim sqlcmd As New SQLiteCommand
sqlcmd.Connection = SQLconnect
Try
ds.Tables.Clear()
sqlcmd.CommandType = CommandType.Text
sqlcmd.CommandText = sql
da.SelectCommand = sqlcmd
da.Fill(ds, "Reserviert")
Catch ex As Exception
MsgBox(ex.Message)
End Try
SQLconnect.Close()
Return ds.Tables(0)
End Function
Public Function Get_Freie_Plätze(ByVal Berufnr As Integer) As DataTable
'Angebot auslesen
Dim dtAngebot As New DataTable
Dim sql As String = "Select * from FirmaBeruf where aktiv=1 and Berufnr=" + Berufnr.ToString
SQLconnect.ConnectionString = Globals.Datenbank
SQLconnect.Open()
Dim sqlcmd As New SQLiteCommand
sqlcmd.Connection = SQLconnect
Try
ds.Tables.Clear()
sqlcmd.CommandType = CommandType.Text
sqlcmd.CommandText = sql
da.SelectCommand = sqlcmd
da.Fill(ds, "Angebot")
Catch ex As Exception
MsgBox(ex.Message)
End Try
dtAngebot = ds.Tables(0)
Dim dtZugeteilt As New DataTable
sql = "SELECT Zuteilung.*, FirmaBeruf.FirmaBerufnr FROM zuteilung INNER JOIN firmaberuf ON (zuteilung.firmaberufnr = firmaberuf.FirmaBerufNr) WHERE zuteilung.aktiv = 1 AND firmaberuf.berufnr=" + Berufnr.ToString
Try
ds.Tables.Clear()
sqlcmd.CommandType = CommandType.Text
sqlcmd.CommandText = sql
da.SelectCommand = sqlcmd
da.Fill(ds, "Zugeteilt")
Catch ex As Exception
MsgBox(ex.Message)
End Try
dtZugeteilt = ds.Tables(0)
For Each r As DataRow In dtZugeteilt.Rows
For Each rr As DataRow In dtAngebot.Rows
If r.Item("FirmaBerufNr") = rr.Item("Firmaberufnr") Then
If r.Item("ZeitNr") = rr.Item("Zeitnr") Then
If r.Item("Ansprechpartnernr") = rr.Item("Ansprechpartnernr") Then rr.Item("Anzahl") = rr.Item("Anzahl") - 1
End If
End If
Next
Next
For Each r As DataRow In dtAngebot.Rows
If r.Item("Anzahl") = 0 Then r.Delete()
Next
dtAngebot.AcceptChanges()
Dim dtFreiePlätze As New DataTable
Dim first As Boolean = True
For Each r As DataRow In dtAngebot.Rows
sql = "SELECT Firma.FirmaNr,Firma.NameZ1,FirmaBeruf.ZeitNr, firmaberuf.firmaberufnr,Zeiten.Bezeichnung, 0 as Anzahl, Ansprechpartner.AnsprechpartnerNr, Ansprechpartner.Name || " + """" + " " + """" + " || Ansprechpartner.Vorname As Ansprechpartner FROM Firma INNER JOIN FirmaBeruf ON (Firma.FirmaNr = FirmaBeruf.FirmaNr)"
sql = sql + " INNER JOIN Zeiten ON (FirmaBeruf.ZeitNr = Zeiten.ZeitNr) INNER JOIN Ansprechpartner ON (Firma.FirmaNr = Ansprechpartner.FirmaNr) where firmaberuf.firmaberufnr=" + r.Item("FirmaBerufnr").ToString + " and ansprechpartner.ansprechpartnernr=" + r.Item("Ansprechpartnernr").ToString
Try
ds.Tables.Clear()
sqlcmd.CommandType = CommandType.Text
sqlcmd.CommandText = sql
da.SelectCommand = sqlcmd
da.Fill(ds, "Angebot")
Catch ex As Exception
MsgBox(ex.Message)
End Try
If first Then
dtFreiePlätze = ds.Tables(0).Copy
first = False
Else
For Each r1 As DataRow In ds.Tables(0).Rows
Dim datar As DataRow
datar = dtFreiePlätze.NewRow
For Each s As DataColumn In dtFreiePlätze.Columns
datar.Item(s.ColumnName) = r1.Item(s.ColumnName)
Next
dtFreiePlätze.Rows.Add(datar)
Next
End If
For Each r2 As DataRow In dtFreiePlätze.Rows
If r2.Item("FirmaBerufnr") = r.Item("FirmaBerufnr") Then
r2.Item("Anzahl") = r.Item("Anzahl")
End If
Next
Next
SQLconnect.Close()
Return dtFreiePlätze
End Function
Public Function Insert_Zuteilung(ByVal fbnr As Integer, ByVal sbnr As Integer, ByVal snr As Integer, ByVal prio As Integer, ByVal zeitnr As Integer, ByVal ansprechpartnernr As Integer)
Dim lpdataset As New LPDataSet
Dim lpzuteilungadapter = New LPDataSetTableAdapters.ZuteilungTableAdapter
Dim i As Integer = 0
Dim counter As Integer = 0
Dim zuteilungrow As LPDataSet.ZuteilungRow
zuteilungrow = lpdataset.Zuteilung.NewRow
zuteilungrow.FirmaBerufNr = fbnr
zuteilungrow.SchuelerBerufNr = sbnr
zuteilungrow.SchuelerNr = snr
zuteilungrow.Zeitnr = zeitnr
zuteilungrow.Ansprechpartnernr = ansprechpartnernr
zuteilungrow.Prioritaet = prio
zuteilungrow.aktiv = True
zuteilungrow.erstellt_am = Now
zuteilungrow.mutiert_am = Now
zuteilungrow.Bemerkung = ""
lpdataset.Zuteilung.AddZuteilungRow(zuteilungrow)
lpzuteilungadapter.Update(lpdataset.Zuteilung)
End Function
Public Function SchuelerBeruf_Zugeteilt(ByVal Schuelerberufnr As Integer) As Boolean
Dim sqlcmd As New SQLiteCommand
sqlcmd.Connection = SQLconnect
sqlcmd.CommandType = CommandType.Text
sqlcmd.CommandText = "SELECT count(*) from zuteilung where aktiv=1 and schuelerberufnr=" + Schuelerberufnr.ToString
SQLconnect.Open()
Dim result As Integer = 0
Dim SQLreader As SQLiteDataReader = sqlcmd.ExecuteReader()
While SQLreader.Read()
Try
result = SQLreader(0).ToString
Catch ex As Exception
result = 0
End Try
End While
sqlcmd.Dispose()
SQLconnect.Close()
If result > 0 Then Return True Else Return False
End Function
End Class