Imports IntraSell_DLL
Imports MySql.Data.MySqlClient

Module ModuleMahnwesen

    Public Const MAHNSTUFE_1 = "MAHNSTUFE_1"
    Public Const MAHNSTUFE_2 = "MAHNSTUFE_2"
    Public Const MAHNSTUFE_3 = "MAHNSTUFE_3"

    Public Function CalculateMahnStufe(RechNummer As String) As String
        Dim altTage As Integer
        Dim sql As String
        Dim countMahnungen
        sql = "select v.Datum, count(mh.id) as countMahnungen 
from buchVorgang v left JOIN buchMahnungshistorie mh ON v.nummer=mh.Nummer 
GROUP BY v.Nummer, v.Typ
HAVING v.Typ = 'AR' and v.nummer=@Nummer"
        Dim cmd As New MySqlCommand(sql)
        cmd.Parameters.AddWithValue("Nummer", RechNummer)
        Dim rs = OpenRecordsetInMemory(cmd)

        Dim RechDatum As DateTime
        If rs.Rows.Count = 0 Then
            countMahnungen = 0
        Else
            RechDatum = rs.Rows(0)("Datum")
            countMahnungen = rs.Rows(0)("countmahnungen")
        End If

        altTage = DateDiff(DateInterval.Day, RechDatum, Date.Today)
        If altTage >= 7 And countMahnungen = 0 Then
            Return MAHNSTUFE_1
        End If

        If altTage >= 14 And countMahnungen = 1 Then
            Return MAHNSTUFE_2
        End If

        If altTage >= 21 And countMahnungen = 2 Then
            Return MAHNSTUFE_3
        End If
        Return Nothing
    End Function


    ''' <summary>
    ''' die Mahnstufe wird gesetzt
    ''' </summary>
    ''' <param name="RechNummer"></param>
    ''' <param name="Stufe"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Function SetzeMahnStufe(RechNummer As String, Stufe As String) As Boolean

        Dim ds As New dsMahnungen
        ds.buchmahnungshistorie.AddbuchmahnungshistorieRow(VorgangTypen.AR, RechNummer, Stufe, Today)
        Dim ta As New dsMahnungenTableAdapters.buchmahnungshistorieTableAdapter
        ta.Update(ds)
        Return True
    End Function

    'Private Sub btnMahnbriefeDrucken_Click()


    '    If Me.FilterOn Then
    '        Dim rs, sql
    '        rs = Me.RecordsetClone
    '        Dim Text



    '        While Not rs.EOF

    '            Text = Forms![MAhnwesen]![ofTextBausteine]![Text]

    '            If IsNull(Text) Or Text = "" Then
    '                MsgBox("Schreiben Sie den Mahntext vorher!", vbCritical)
    '                Exit Sub
    '            End If



    '            Text = Replace(Text, "[Umsatz]", rs("Summe"))
    '            Text = Replace(Text, "[Datum]", rs("Datum"))

    '         Call OpenKorrespondenz_inWord(rs("KundNr"), Me.lstMahnstufe, Text, Date, True)
    '            'set as gemahnt
    '            sql = "insert into buchMahnungshistorie (Nummer, MahnStufe) values (" & _
    '                    rs("Nummer") & ",'" & rs("Mahnstufe") & "')"
    '            DoCmd.SetWarnings(False)
    '            DoCmd.RunSQL(sql)
    '            DoCmd.SetWarnings(True)
    '            rs.MoveNext()
    '        End While
    '        rs.Close()
    '        rs = Nothing

    '    Else
    '        MsgBox("Wählen Sie eine Mahnstufe vorher aus!")
    '    End If

    '    Me.Requery()
    '    MsgBox("Die Mahnbriefe wurden an Word weitergeleitet, ausgedruckt und auch als Word Dateien gespeichert. Fertig!")
    'End Sub


End Module
