Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports System.Net.Mail
- Public Class Innkalling
- Public valgtDato As String
- Public otimer As New List(Of String)
- Private sistetapping As String
- Private timebestilling As String
- Public idTilinnkalling As String
- Public melding As String
- Public innkallingtlf As String
- Private abotyping
- Private rhdtyping
- Public Function konverterDato(dato As String) As String
- 'For at databasen skal kunne lese dato
- Dim innskrevetDato As Date = dato
- Return innskrevetDato.ToString("yyyy-MM-dd")
- End Function
- Private Sub Innkalling_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- DatePickerInnkalling.Value = DateTime.Today()
- DatePickerInnkalling.MinDate = DateTime.Today()
- 'Denne koden lister alle som har gitt blod tidligere, som kan kalles inn på nytt
- Dim idag As Date = Today
- Dim sistetappingdato As New DataTable
- sistetappingdato = Sporring("SELECT max(DATE_ADD(dato, interval 3 month)) AS dato, brukere.fornavn, brukere.etternavn, blodgiver_id FROM tapping INNER JOIN brukere ON brukere.bruker_id = tapping.blodgiver_id group by brukere.fornavn order by dato")
- For Each rad In sistetappingdato.Rows
- sistetapping = rad("dato") 'På denne måten vil sistetapping bare ha verdien til den siste tappingen.
- If dato(idag, sistetapping) = True Then
- lbInnkalling.Items.Add(rad("fornavn") & " " & rad("etternavn"))
- End If
- Next
- Dim ikkegittblod As New DataTable
- ikkegittblod = Sporring("select bruker_id, fornavn, etternavn from brukere where bruker_id NOT IN (select blodgiver_id from tapping) and type = 'blodgiver'")
- For Each rad In ikkegittblod.Rows
- lbInnkalling.Items.Add(rad("fornavn") & " " & rad("etternavn"))
- Next
- 'kode for at produktet det er tomt av på lager kommer opp, videre fra administrerbanksiden.
- abotyping = administrerBank.cbAbo.SelectedItem
- rhdtyping = administrerBank.cbRhd.SelectedItem
- cbAbo.SelectedItem = abotyping
- cbRhd.SelectedItem = rhdtyping
- End Sub
- Private Sub lbInnkalling_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lbInnkalling.SelectedIndexChanged
- txtTil.Clear()
- Dim valgtbruker As String = lbInnkalling.SelectedItem
- Dim innkallingDato = DatePickerInnkalling.Value.ToString("dd.MM.yyyy")
- Dim innkallingTid = cbLedigetimer.SelectedItem
- 'Teksten til eposten endrer seg når man trykker på et navn i listboxen
- txtMelding.Text = "Hei, " & valgtbruker & vbCrLf &
- "Du er innkalt til time den " & innkallingDato & " klokka " & innkallingTid & vbCrLf & vbCrLf & "Mvh. Blodbanken på St. Olavs hospital."
- Dim valgtansatt = lbInnkalling.SelectedItem
- Try 'Try/catch for å hindre at programmet krasjer dersom man trykker i listboxen uten å faktisk velge et navn
- Dim linje = valgtansatt 'Valget av ansatte går på fornavn etternavn (Ali Nordmann), så for å bruke kombinasjonen av fornavn og etternavn
- Dim linjeOppdelt = linje.Split(" ") 'til søk i databasen må de skilles fra hverandre
- Dim navn = linjeOppdelt(0)
- Dim fornavn = linjeOppdelt(0)
- Dim etternavn = linjeOppdelt(1)
- Dim hentinfo As New DataTable
- 'Spørringen henter ut epost og bruker_id
- hentinfo = Sporring("select epost, bruker_id, mobiltlf FROM brukere where fornavn = '" & fornavn & "' and etternavn = '" & etternavn & "'")
- For Each rad In hentinfo.Rows
- txtTil.AppendText(rad("epost").ToString)
- idTilinnkalling = rad("bruker_id")
- innkallingtlf = rad("mobiltlf")
- Next
- Catch
- End Try
- End Sub
- Private Sub DatePickerInnkalling_ValueChanged(sender As Object, e As EventArgs) Handles DatePickerInnkalling.ValueChanged
- valgtDato = Format(DatePickerInnkalling.Value, "yyyy-MM-dd")
- 'mtimer - mulige tidspunkt å bestille time på
- Dim mtimer As New List(Of String)(New String() {"09:00", "09:30", "10:00", "10:30", "11:00", "11:30", "12:00", "12:30", "13:00", "13:30", "14:00", "14:30"})
- 'otimer - opptatte timer,
- timesjekk()
- cbLedigetimer.Items.Clear()
- Dim ltimer = mtimer.Except(otimer) 'sammenligner de opptatte timene med ledige og lar deg
- For Each time As String In ltimer 'velge fra de som er ledige
- cbLedigetimer.Items.Add(time)
- Next
- cbLedigetimer.SelectedIndex = 0 'velger det tidligste mulige tidspunktet på den valgte datoen
- timebestilling = cbLedigetimer.SelectedIndex
- End Sub
- Private Sub timesjekk()
- Dim bestiltetimer As New DataTable
- bestiltetimer = Sporring("SELECT *, COUNT('tid') as telling FROM bestill_time WHERE dato = '" & valgtDato & "' GROUP BY tid;")
- For Each rad In bestiltetimer.Rows
- If rad("telling") > 4 Then 'Bare 5 personer kan bestille tapping på samme tidspunkt
- otimer.Add(rad("tid")) 'de opptatte timene blir registrert
- End If
- Next
- End Sub
- Private Sub btnSendMail_Click(sender As Object, e As EventArgs) Handles btnSendMail.Click
- 'Kode for å sende epost
- Dim valgtbruker As String = lbInnkalling.SelectedItem
- Dim innkallingDato = DatePickerInnkalling.Value.ToString("dd.MM.yyyy")
- Dim innkallingTid = cbLedigetimer.SelectedItem
- Sporring("INSERT INTO bestill_time (bruker_id, dato, tid) VALUES ('" & idTilinnkalling & "', '" & konverterDato(innkallingDato) & "', '" & innkallingTid & "');")
- Try
- Dim Smtp_Server As New SmtpClient
- Dim e_mail As New MailMessage()
- Smtp_Server.UseDefaultCredentials = False
- Smtp_Server.Credentials = New Net.NetworkCredential("enestaendeblodgiving@gmail.com", "babed01blod") 'kontoen vi bruker til å sende mail
- Smtp_Server.Port = 587
- Smtp_Server.EnableSsl = True
- Smtp_Server.Host = "smtp.gmail.com"
- e_mail = New MailMessage()
- e_mail.From = New MailAddress("enestaendeblodgiving@gmail.com")
- e_mail.To.Add(txtTil.Text)
- e_mail.Subject = "Innkalling til blodbank"
- e_mail.IsBodyHtml = False
- e_mail.Body = txtMelding.Text 'teksten i textboxen vil bli sendt i mailen
- Smtp_Server.Send(e_mail)
- MsgBox(valgtbruker & " er innkalt til time den " & innkallingDato & " klokka " & innkallingTid & ". Det er sendt en mail for å informere giveren om dette.")
- Catch error_t As Exception
- MsgBox(error_t.ToString)
- End Try
- End Sub
- Private Sub btnAvbryt_Click(sender As Object, e As EventArgs) Handles btnAvbryt.Click
- Me.Close()
- Ansatt.Show()
- End Sub
- Private Sub btnHaster_Click(sender As Object, e As EventArgs) Handles btnHaster.Click
- Dim valgtansatt = lbInnkalling.SelectedItem
- Dim epostgiver As String = ""
- Try 'Try/catch for å hindre at programmet krasjer dersom man trykker i listboxen uten å faktisk velge et navn
- Dim linje = valgtansatt 'Valget av ansatte går på fornan etternavn (Ali Nordmann), så for å bruke kombinasjonen av fornavn og etternavn
- Dim linjeOppdelt = linje.Split(" ") 'til søk i databasen må de skilles fra hverandre
- Dim navn = linjeOppdelt(0)
- Dim fornavn = linjeOppdelt(0)
- Dim etternavn = linjeOppdelt(1)
- Dim idag As Date = Date.Today()
- Dim valgtbruker As String = lbInnkalling.SelectedItem
- Sporring("INSERT INTO bestill_time (bruker_id, dato, tid) VALUES ('" & idTilinnkalling & "', '" & konverterDato(idag) & "', '08:00');")
- melding = "Hei, " & valgtbruker & " dette er en HASTEINNKALLING fra blodbanken ved St Olav. Du er herved kalt inn til blodtapping. Møt opp ved blodbanken så FORT SOM MULIG! LIV STÅR PÅ SPILL!"
- Dim hentinfo As New DataTable
- hentinfo = Sporring("select epost, bruker_id, mobiltlf FROM brukere where fornavn = '" & fornavn & "' and etternavn = '" & etternavn & "'")
- For Each rad In hentinfo.Rows
- epostgiver = rad("epost")
- idTilinnkalling = rad("bruker_id")
- innkallingtlf = rad("mobiltlf")
- Next
- Catch
- End Try
- 'samme koden som over for å sende mail.
- Try
- Dim smtp_server As New SmtpClient
- Dim e_mail As New MailMessage()
- Dim valgtbruker As String = lbInnkalling.SelectedItem
- smtp_server.UseDefaultCredentials = False
- smtp_server.Credentials = New Net.NetworkCredential("enestaendeblodgiving@gmail.com", "babed01blod")
- smtp_server.Port = 587
- smtp_server.EnableSsl = True
- smtp_server.Host = "smtp.gmail.com"
- e_mail = New MailMessage()
- e_mail.From = New MailAddress("enestaendeblodgiving@gmail.com")
- e_mail.To.Add(epostgiver)
- e_mail.Subject = "HASTEINNKALLING BLODBANK"
- e_mail.IsBodyHtml = False
- e_mail.Body = melding
- smtp_server.Send(e_mail)
- MsgBox(valgtbruker & " er nå kalt inn, du må også ringe og varsle på tlf " & innkallingtlf)
- Catch error_t As Exception
- MsgBox(error_t.ToString)
- End Try
- End Sub
- Private Sub btnSok_Click(sender As Object, e As EventArgs) Handles btnSok.Click
- 'søkefunksjon etter spesielle blodprodukter
- abotyping = cbAbo.SelectedItem
- rhdtyping = cbRhd.SelectedItem
- lbInnkalling.Items.Clear()
- Dim idag As Date = Today
- Dim sistetappingdato As New DataTable
- sistetappingdato = Sporring("SELECT abotyping, rhdtyping, max(DATE_ADD(dato, interval 3 month)) AS dato, brukere.fornavn, brukere.etternavn, blodgiver_id
- FROM tapping INNER JOIN brukere ON brukere.bruker_id = tapping.blodgiver_id
- WHERE abotyping = '" & abotyping & "' and rhdtyping = '" & rhdtyping & "' group by brukere.fornavn order by dato")
- For Each rad In sistetappingdato.Rows
- sistetapping = rad("dato") 'På denne måten vil sistetapping bare ha verdien til den siste tappingen.
- If dato(idag, sistetapping) = True Then
- lbInnkalling.Items.Add(rad("fornavn") & " " & rad("etternavn"))
- End If
- Next
- End Sub
- Private Sub btnNullstill_Click(sender As Object, e As EventArgs) Handles btnNullstill.Click
- 'nullstiller tilbake til sånn det er når du laster innkallingsvinduet
- lbInnkalling.Items.Clear()
- Dim idag As Date = Today
- Dim sistetappingdato As New DataTable
- sistetappingdato = Sporring("SELECT max(DATE_ADD(dato, interval 3 month)) AS dato, brukere.fornavn, brukere.etternavn, blodgiver_id FROM tapping INNER JOIN brukere ON brukere.bruker_id = tapping.blodgiver_id group by brukere.fornavn order by dato")
- For Each rad In sistetappingdato.Rows
- sistetapping = rad("dato") 'På denne måten vil sistetapping bare ha verdien til den siste tappingen.
- If dato(idag, sistetapping) = True Then
- lbInnkalling.Items.Add(rad("fornavn") & " " & rad("etternavn"))
- End If
- Next
- Dim ikkegittblod As New DataTable
- ikkegittblod = Sporring("select bruker_id, fornavn, etternavn from brukere where bruker_id NOT IN (select blodgiver_id from tapping) and type = 'blodgiver'")
- For Each rad In ikkegittblod.Rows
- lbInnkalling.Items.Add(rad("fornavn") & " " & rad("etternavn"))
- Next
- End Sub
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement