Option Explicit On
Imports IntraSell_DLL
Imports MySql.Data.MySqlClient


Module ModuleKassabuch

    ''' <summary>
    ''' fügt einen eintrag ins Kassabuch
    ''' </summary>
    ''' <param name="Datum"></param>
    ''' <param name="Konto"></param>
    ''' <param name="Beschreibung"></param>
    ''' <param name="Betrag"></param>
    ''' <param name="MitarbeiterNr"></param>
    ''' <param name="Zahlungsmethode">Zahlungsmethode</param>
    ''' <param name="VorgangTyp"></param>
    ''' <param name="VorgangNummer"></param>
    ''' <remarks></remarks>
    Public Sub MakeKassaBuchEintrag(Datum As Date,
     Konto As String,
     Beschreibung As String,
     Betrag As Double,
     MitarbeiterNr As Integer,
     Zahlungsmethode As String,
     VorgangTyp As String,
     VorgangNummer As Integer)
        WriteLog($"Erstelle KassaBuchEintrag über {Betrag}")
        Dim betragfield = "BetragEingang"
        'Dim sql As String

        If Betrag < 0 Then betragfield = "BetragAusgang"
        Betrag = Math.Abs(Betrag)
        Dim cmd As New MySql.Data.MySqlClient.MySqlCommand(
                   "INSERT INTO buchKassabuch (Datum, Konto, Beschreibung," & betragfield & ", MitarbeiterNr, Typ, VorgangTyp, VorgangNummer)  " &
                   " VALUES (@Datum, @Konto, @Beschreibung, @Betrag, @MitarbeiterNr, @Typ, @VorgangTyp, @VorgangNummer)") With {
            .Connection = CurrentDB
                   }
        cmd.Parameters.Add(New MySqlParameter("Datum", Datum))
        cmd.Parameters.Add(New MySqlParameter("Konto", Konto))
        cmd.Parameters.Add(New MySqlParameter("Beschreibung", Beschreibung))
        cmd.Parameters.Add(New MySqlParameter("Betrag", Betrag))
        cmd.Parameters.Add(New MySqlParameter("MitarbeiterNr", MitarbeiterNr))
        cmd.Parameters.Add(New MySqlParameter("Typ", Zahlungsmethode))
        cmd.Parameters.AddWithValue("VorgangTyp", VorgangTyp)
        cmd.Parameters.AddWithValue("VorgangNummer", VorgangNummer)
        cmd.ExecuteNonQuery()
    End Sub

    ''' <summary>
    ''' 
    ''' </summary>
    ''' <param name="dateTimePicker"></param>
    ''' <param name="dateTimePicker1"></param>
    Public Sub SetLastMonth(dateTimePicker As DateTimePicker, dateTimePicker1 As DateTimePicker)
        Dim lastDay = Today.AddMonths(-1)
        lastDay = lastDay.AddDays(-1 * (Today.Day - 1))
        dateTimePicker.Value = lastDay
        dateTimePicker1.Value = lastDay.AddMonths(1).AddMinutes(-1)
    End Sub

End Module
