284 lines
11 KiB
Plaintext
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
|