Imports System.Globalization Imports com.sun.source.tree Imports Microsoft.Office.Interop Imports VERAG_PROG_ALLGEMEIN Public Class frmBU_Mahnlauf Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim listOfTextconserven As cTextkonserve_LIST Private Sub btnSuche_Click(sender As Object, e As EventArgs) Handles btnSuche.Click initDGV(cbxZahlungseingaenge.Checked) End Sub Sub initDGV(Optional zahlungseingaenge As Boolean = False) With MyDatagridview1 .Columns.Clear() Dim Firma_ID = cboFirma._value Dim KdNr = KdSearchBox1.KdNr_value Dim KdTxt = "" If KdNr < 0 Then 'Wenn keine KdNr KdTxt = KdSearchBox1.Text.Trim End If If MyTextBox1._value = "" Then MsgBox("Bitte einen Wert als Bagatellgrenze eingeben!") Exit Sub End If 'Dim sqlStr = "SELECT i_personenkonto Konto,KTO.c_name, KTO.c_landid Land,KTO.c_plz + ' ' + KTO.c_ort Ort,isnull(KTO.c_email,'') Email, count(*) Anzahl, sum(eur_bruttobetrag+eur_zahlung) Ausstand ,min(op.d_netto) Faelligkeit,max(si_mahnstufe) Mahnstufe, cast(MAX(d_mahnung)as date) Mahndatum Dim sqlStr = "SELECT i_personenkonto Konto,KTO.c_name, KTO.c_landid Land,KTO.c_plz + ' ' + KTO.c_ort Ort,/*isnull(KTO.c_email,'') Email, */ " & "isnull(( SELECT TOP 1 [kkd_Email] FROM [FMZOLL\SQLFMZOLL].[VERAG].[dbo].[tblKundenKontakt] where kkd_kkaId=10 and kkd_KundenNr=i_personenkonto ) ,'') Email," & " isnull(( SELECT TOP 1 Vorkasse FROM [FMZOLL\SQLFMZOLL].[VERAG].[dbo].Kunden where KundenNr=i_personenkonto ) ,'') VK,KTO.c_zahlziel as Zahlungsziel, " & "count(*) Anzahl, sum(eur_bruttobetrag+eur_zahlung) Ausstand ,min(op.d_netto) Faelligkeit,max(si_mahnstufe) Mahnstufe, cast(MAX(d_mahnung)as date) Mahndatum" & If(cbxNurFaellig.Checked, "", ",SUM(CASE WHEN op.d_netto(1) ", "") & " " & If(KdNr > 0, " AND i_personenkonto ='" & KdNr & "'", "") & " " & If(KdTxt <> "", " AND KTO.c_name LIKE '" & KdTxt.Replace("*", "%") & "'", "") & " group by i_personenkonto ,KTO.c_name,KTO.c_landid,KTO.c_ort,KTO.c_plz,KTO.c_email, KTO.c_zahlziel, isnull(si_mahnung,0) HAVING sum(eur_bruttobetrag+eur_zahlung)>'" & MyTextBox1._value & "' " & If(MyComboBox1._value > 0, " and max(si_mahnstufe)>='" & MyComboBox1._value & "'", "") & " ORDER BY KTO.c_name" Dim sqlStringVerag360 = "SELECT i_personenkonto Konto,KTO.c_name, KTO.c_landid Land,Kunden.Abfertigungsverbot as AV,max(KTO.dec_aktuellersaldo) as Saldo,/*KTO.c_plz + ' ' + KTO.c_ort Ort,isnull(KTO.c_email,'') Email, */ " & "sum(eur_bruttobetrag+eur_zahlung) as Ausstand,cast(min(d_rechnung)as date) as 'ältesteRg',/*min(op.d_netto) Faelligkeit,*/max(si_mahnstufe) as MS,max(Kunden.UStV_Summe3470BetragEUR) as '3470',max(Kunden.Versicherungssumme) as V, " & If(KdNr > 0, " (select SUM(isnull(eur_bruttobetrag,0)+isnull(eur_zahlung,0)) from op_debitor as OP RIGHT join fibu_konto KTO on i_personenkonto=i_konto AND KTO.i_firm_refid=OP.i_firm_refid Where i_personenkonto ='" & KdNr & "' AND OP.i_firm_refid = '19' AND dt_geloescht IS NULL and isnull(si_mahnflags,0) <>(1)) ", "max(KTO.dec_aktuellersaldo) ") & " - isnull(CASE WHEN Max(Kunden.UStV_SummeUmsatzsteuerbetragEUR) > max(Kunden.UStV_SummeErstattungsbetragEUR) THEN max(Kunden.UStV_SummeUmsatzsteuerbetragEUR) - max(Kunden.UStV_SummeErstattungsbetragEUR) ELSE 0 END ,0) - isnull(max(Kunden.UStV_Summe3470BetragEUR),0) + isnull(max(Kunden.UStV_SummeVZBetragEUR),0) - isnull(max(Kunden.UStV_SummeVorschaubetragEUR),0) - isnull(CASE WHEN ISNULL(max(Kunden.BankgarantieGültigBis), GETDATE()) < GETDATE() THEN 0 ELSE ISNULL(max(Kunden.BankgarantieBetrag), 0) END,0) as Risiko, sum(case when OP.c_typ = 'g' then isnull(OP.eur_bruttobetrag, 0) + isnull(OP.eur_zahlung, 0) else 0 end) as Gutschrift, cast(MAX(d_mahnung)as date) Mahndatum, case when max(si_mahnstufe) = 1 Then 'telefonisch' when max(si_mahnstufe) = 2 Then 'Freitag' when max(si_mahnstufe) = 3 Then 'Donnerstag' when max(si_mahnstufe) = 4 Then 'Mittwoch' when max(si_mahnstufe) >= 5 Then 'gesperrt' else '-' End as Sperre " & If(cbxNurFaellig.Checked, "", ",SUM(CASE WHEN op.d_netto(1) ", "") & " " & If(KdNr > 0, " AND i_personenkonto ='" & KdNr & "'", "") & " " & If(cboBetreuer.Text <> "", " AND kde_betreuer ='" & cboBetreuer.Text & "'", "") & " " & If(KdTxt <> "", " AND KTO.c_name LIKE '" & KdTxt.Replace("*", "%") & "'", "") & " group by i_personenkonto ,KTO.c_name,KTO.c_landid,KTO.c_ort,KTO.c_plz,[tblKundenKontakt].kkd_Email, Kunden.Abfertigungsverbot, isnull(si_mahnung,0), isnull([tblKundenErweitert].kde_betreuer,'') HAVING sum(eur_bruttobetrag+eur_zahlung)>'" & MyTextBox1._value & "' " & If(MyComboBox1._value > 0, " and max(si_mahnstufe)>='" & MyComboBox1._value & "'", "") & " ORDER BY KTO.c_name" Dim SQLWhere = " and (c_kennung = 'KE' or BU.i_konto in (5827, 5829) or LEFT(BU.i_konto,1) = 0 or c_kennung = 'DE')" Select Case cbxKontotyp._value Case "DE", "KE", "KO" : SQLWhere &= " and c_kennung = '" & cbxKontotyp._value & "'" End Select Dim sqlStringVerag360Zahlungseingaenge = " SELECT cast(d_beleg as Date) as d_beleg ,c_urbelegid, c_buchtext, case when c_sollhabenkz = 'H' then eur_betrag else eur_betrag * -1 end as eur_betrag , BU.i_konto as Konto,KTO.c_landid FROM [FIBU2].[dbo].[fibu_belegzeile] as BU RIGHT join fibu_konto KTO on KTO.i_konto=BU.i_konto AND BU.i_firm_refid=KTO.i_firm_refid where cast(d_beleg as date) = '" & txtZahlEingaenge._value & "' and BU.i_firm_refid=" & Firma_ID & SQLWhere & " and (BU.i_konto in (2800, 2801, 2802, 2803, 2811, 2812, 2813, 2814, 2817, 2818, 2822 ,2826, 2827, 2828, 2831, 2832, 2833, 2837, 2845) or i_gegenkonto in (2800, 2801, 2802, 2803, 2811, 2812, 2813, 2814, 2817, 2818, 2822 ,2826, 2827, 2828, 2831, 2832, 2833, 2837, 2845)) order by Konto, i_beleg_refid, i_zeilen_refid" 'MsgBox(sqlStr) Dim dt_OP As DataTable = SQL.loadDgvBySql(If(Firma_ID = 19, IIf(zahlungseingaenge, sqlStringVerag360Zahlungseingaenge, sqlStringVerag360), sqlStr), "FIBU") .DataSource = dt_OP If .Columns.Count = 0 Then Exit Sub If zahlungseingaenge And Firma_ID = 19 Then .Columns("c_buchtext").HeaderText = "Buchungstext" .Columns("c_buchtext").AutoSizeMode = DataGridViewAutoSizeColumnsMode.Fill .Columns("d_beleg").Width = 75 .Columns("d_beleg").HeaderText = "Belegdatum" .Columns("c_urbelegid").Width = 90 .Columns("c_urbelegid").HeaderText = "BelegNr." .Columns("Konto").Width = 75 .Columns("Konto").HeaderText = "KdNr/Konto" .Columns("eur_betrag").Width = 75 .Columns("eur_betrag").HeaderText = "Betrag" .Columns("c_landid").Width = 75 .Columns("c_landid").HeaderText = "Land" Else .Columns("c_name").HeaderText = "Firma" .Columns("c_name").AutoSizeMode = DataGridViewAutoSizeColumnsMode.Fill .Columns("Land").Width = 40 .Columns("mahnbar").Width = 50 If Firma_ID = 19 Then .Columns("ältesteRg").Width = 75 .Columns("MS").Width = 50 '.Columns("Faelligkeit").Width = 75 '.Columns("Faelligkeit").HeaderText = "Fälligkeit" .Columns("AV").Width = 30 .Columns("Saldo").DefaultCellStyle.Format = "###,###.##" .Columns("Saldo").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight .Columns("Ausstand").DefaultCellStyle.Format = "###,###.##" .Columns("Ausstand").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight .Columns("3470").DefaultCellStyle.Format = "###,###.##" .Columns("3470").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight .Columns("Risiko").DefaultCellStyle.Format = "###,###.##" .Columns("Risiko").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight .Columns("V").DefaultCellStyle.Format = "###,###.##" .Columns("V").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight .Columns("Gutschrift").DefaultCellStyle.Format = "###,###.##" .Columns("Gutschrift").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight Else .Columns("Email").Width = 150 .Columns("Ort").Width = 150 .Columns("Anzahl").Width = 40 .Columns("Faelligkeit").Width = 75 .Columns("Faelligkeit").HeaderText = "Fälligkeit" .Columns("Ausstand").HeaderText = "Betrag" .Columns("Mahnstufe").Width = 50 End If .Columns("Mahndatum").Width = 75 .Columns("Konto").Width = 75 .Columns("Konto").HeaderText = "KdNr/Konto" .Columns("Ausstand").Width = 75 If Not cbxNurFaellig.Checked Then .Columns("Summe_Faellig").Width = 75 .Columns("Summe_Faellig").HeaderText = "Summe fällig" End If End If End With End Sub Private Sub frmBU_Mahnlauf_Load(sender As Object, e As EventArgs) Handles Me.Load KdSearchBox1.initKdBox(Me) cboFirma.fillWithSQL("SELECT [Firma_ID],[Firma_Bez] FROM [tblFirma] WHERE 1=1 ORDER BY Firma_ID ", True, "FMZOLL", False) cboFirma.changeItem("1") MyComboBox1.Items.Clear() MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("alle", "-1")) MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("1. Mahnung", "0")) MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("2. Mahnung", "1")) MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("3. Mahnung", "2")) MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("4. Mahnung", "3")) MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("5. Mahnung", "4")) MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("6. Mahnung", "5")) MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("7. Mahnung", "6")) MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("8. Mahnung", "7")) MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("9. Mahnung", "8")) MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("10. Mahnung", "9")) MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("11. Mahnung", "10")) MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("12. Mahnung", "11")) MyComboBox1.changeItem("-1") MyComboBox2.Items.Clear() MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("1. Mahnung", "1")) MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("2. Mahnung", "2")) MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("3. Mahnung", "3")) MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("4. Mahnung", "4")) MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("5. Mahnung", "5")) MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("6. Mahnung", "6")) MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("7. Mahnung", "7")) MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("8. Mahnung", "8")) MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("9. Mahnung", "9")) MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("10. Mahnung", "10")) MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("11. Mahnung", "11")) MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("12. Mahnung", "12")) MyComboBox2.changeItem("") cbxKontotyp.Items.Clear() cbxKontotyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Alle", "A")) cbxKontotyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Debitoren", "DE")) cbxKontotyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Kreditoren", "KE")) 'cbxKontotyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Sachkonten", "KO")) cbxKontotyp.changeItem("Alle") cboBetreuer.Items.Clear() cboBetreuer.fillWithSQL("select mit_id, mit_nname FROM [ADMIN].[dbo].[tblMitarbeiter] where tblMitarbeiter.mit_Funktion = 'VK' and mit_gekuendigt = 0 and mit_abteilung = 'MDM'", False, "ADMIN", True) MyTextBox2._value = Now.ToShortDateString End Sub 'Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click ' If MyDatagridview1.SelectedRows.Count = 1 Then ' 'If MyDatagridview1.SelectedRows(0).Cells("Mahnstufe").Value < 0 Then ' ' MsgBox("Der ausgewählte Kunde hat einen Bankeinzug.") ' 'Else ' doMahnung(3, MyDatagridview1.SelectedRows(0).Cells("Konto").Value, cboFirma._value,,, MyComboBox2._value) ' 'End If ' Else ' MsgBox("Ein Element auswählen!") ' End If 'End Sub Public Function isFaellig(KdNr As Integer, Firma_ID As Integer) As Boolean Dim sqlStr = "SELECT count(*) FROM op_debitor OP WHERE (OP.i_firm_refid = '" & Firma_ID & "') AND (dt_geloescht IS NULL) and OP.i_personenkonto='" & KdNr & "' and isnull(si_mahnflags,0) <>(1) and d_netto<=getdate() " Return (SQL.getValueTxtBySql(sqlStr, "FIBU",,, 0) > 0) End Function Public Function isMahnlauf(KdNr As Integer, Firma_ID As Integer) As Boolean Dim sqlStr = "SELECT count(*) FROM op_debitor OP WHERE (OP.i_firm_refid = '" & Firma_ID & "') AND (dt_geloescht IS NULL) and OP.i_personenkonto='" & KdNr & "' and isnull(si_mahnstufe,0) >=0 and d_netto<=getdate() " Return (SQL.getValueTxtBySql(sqlStr, "FIBU",,, 0) > 0) End Function Public Function isFaelligAndMahnlauf(KdNr As Integer, Firma_ID As Integer) As Boolean Dim sqlStr = "SELECT count(*) FROM op_debitor OP WHERE (OP.i_firm_refid = '" & Firma_ID & "') AND (dt_geloescht IS NULL) and OP.i_personenkonto='" & KdNr & "' and isnull(si_mahnflags,0) <>(1) and isnull(si_mahnstufe,0) >=0 and d_netto<=getdate() " Return (SQL.getValueTxtBySql(sqlStr, "FIBU",,, 0) > 0) End Function Public Function isMahnlauf_Betrag(KdNr As Integer, Firma_ID As Integer) As Boolean Dim sqlStr = "SELECT sum(dec_fremdbrutto+dec_fremdzahlung) FROM op_debitor OP WHERE (OP.i_firm_refid = '" & Firma_ID & "') AND (dt_geloescht IS NULL) and isnull(si_mahnflags,0) <>(1) and OP.i_personenkonto='" & KdNr & "'" Return (SQL.getValueTxtBySql(sqlStr, "FIBU",,, 0) > 0) 'Wenn <0, dann Guthaben!! End Function Public Function increaseMahnstufe(KdNr As Integer, Firma_ID As Integer) As Boolean Dim sqlStr = "UPDATE op_debitor SET si_mahnstufe=(isnull(si_mahnstufe,0)+1),d_mahnung=GETDATE() WHERE (i_firm_refid = '" & Firma_ID & "') AND (dt_geloescht IS NULL) and i_personenkonto='" & KdNr & "' and dec_fremdbrutto>0 and (si_mahnstufe >=0 OR si_mahnstufe is NULL) and d_netto<=getdate()" Return SQL.doSQL(sqlStr, "FIBU") End Function Public Function redoMahnstufe(Firma_ID As Integer, Mahn_Datum As Date) As Boolean Dim sqlStr = " UPDATE op_debitor SET si_mahnstufe=(si_mahnstufe-1) WHERE (i_firm_refid = '" & Firma_ID & "') AND (dt_geloescht IS NULL) and (si_mahnstufe >0 AND si_mahnstufe is not NULL) and d_mahnung>='" & Mahn_Datum.ToShortDateString & "' and d_netto<=getdate()" Return SQL.doSQL(sqlStr, "FIBU") End Function Public Function cntRedoMahnstufe(Firma_ID As Integer, Mahn_Datum As Date) As Integer Dim sqlStr = " SELECT COUNT(*) FROM op_debitor WHERE (i_firm_refid = '" & Firma_ID & "') AND (dt_geloescht IS NULL) and (si_mahnstufe >0 AND si_mahnstufe is not NULL) and d_mahnung>='" & Mahn_Datum.ToShortDateString & "' and d_netto<=getdate()" Return SQL.getValueTxtBySql(sqlStr, "FIBU",,, 0) End Function Public Shared Function doMahnung(Mahndruckart As Integer, KdNr As Integer, Firma_ID As Integer, art As String, Optional ByRef Path As String = "", Optional ByRef PrinterName As String = "", Optional ByRef forceMahnstufe As String = "", Optional showErr As Boolean = True, Optional hideMahnstopp As Boolean = True) As Boolean Dim sqlStr = "SELECT c_urbelegid OP_Typ,d_rechnung Rechnungsdatum,d_netto Faelligkeit,dec_fremdbrutto Rechnungsbetrag,c_bemerkung Bemerkung,dec_fremdzahlung Zahlung,dec_fremdbrutto+dec_fremdzahlung Ausstand,c_waehrung Währung,si_mahnstufe Mahnstufe FROM op_debitor OP WHERE (OP.i_firm_refid = '" & Firma_ID & "') AND (dt_geloescht IS NULL) and i_personenkonto='" & KdNr & "' " & If(hideMahnstopp, " and isnull(si_mahnflags,0) <>(1) ", "") & " order by d_rechnung" Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim dtDataSource = SQL.loadDgvBySql(sqlStr, "FIBU") If dtDataSource Is Nothing Then If showErr Then MsgBox("Keine Daten vorhanden!") Return False End If If dtDataSource.Rows.Count = 0 Then If showErr Then MsgBox("Keine Daten vorhanden!") Return False End If Return doMahnDruck(dtDataSource, Mahndruckart, KdNr, Firma_ID, art, Path, PrinterName, forceMahnstufe) End Function Public Shared Function doMahnDruck(dtDataSource As DataTable, Mahndruckart As Integer, KdNr As Integer, Firma_ID As Integer, art As String, Optional ByRef Path As String = "", Optional ByRef PrinterName As String = "", Optional ByRef forceMahnstufe As String = "") As Boolean ' If RECHNUNG Is Nothing Then MsgBox("Fehler beim Laden der Rechnungsdaten!") : Return False Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim listOfTextconserven As cTextkonserve_LIST Select Case art Case "ZE" : listOfTextconserven = New cTextkonserve_LIST(2, "", Firma_ID) Case "OP" : listOfTextconserven = New cTextkonserve_LIST(3, "", Firma_ID) End Select Try Dim KD As New VERAG_PROG_ALLGEMEIN.cKunde(KdNr) Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(KdNr) Dim KD_ERW As New VERAG_PROG_ALLGEMEIN.cKundenErweitert(KdNr) If KD Is Nothing Then MsgBox("Keine Kundendaten!") : Return False If AD Is Nothing Then MsgBox("Keine Kundendaten!") : Return False Dim Sprache = "DE" If KD_ERW IsNot Nothing Then Sprache = If(KD_ERW.kde_Fakturierung_Sprache, "DE") End If If dtDataSource Is Nothing Then MsgBox("Keine Daten vorhanden!") : Return False If dtDataSource.Rows.Count = 0 Then MsgBox("Keine Daten vorhanden!") : Return False Dim MAHNSTUFE As Integer = -1 If forceMahnstufe <> "" Then MAHNSTUFE = CInt(forceMahnstufe) Else 'MAX Mahnstufe For Each r In dtDataSource.Rows If r("Mahnstufe") > MAHNSTUFE Then MAHNSTUFE = r("Mahnstufe") Next End If Dim dict As New Dictionary(Of String, String) 'dict("MITTWOCH") = Today.AddDays((DayOfWeek.Wednesday - Today.DayOfWeek + 7) Mod 7).ToShortDateString() 'dict("DONNERSTAG") = Today.AddDays((DayOfWeek.Thursday - Today.DayOfWeek + 7) Mod 7).ToShortDateString() 'dict("FREITAG") = Today.AddDays((DayOfWeek.Friday - Today.DayOfWeek + 7) Mod 7).ToShortDateString() dict("MITTWOCH") = Today.AddDays(1).ToShortDateString() dict("DONNERSTAG") = Today.AddDays(2).ToShortDateString() dict("FREITAG") = Today.AddDays(3).ToShortDateString() dict("HEUTE") = Today.ToShortDateString() Dim rpt As New rptMahnung(Sprache, IIf(MAHNSTUFE > 10, 10, MAHNSTUFE), Firma_ID, IIf(Firma_ID = 19, dict, Nothing)) '10. Mahnstufe MAX rpt.Document.Printer.PrinterName = "" rpt.PageSettings.PaperKind = GrapeCity.ActiveReports.Printing.PaperKind.A4 Dim RG_Bezeichnung As String = "" Select Case art Case "ZE" : RG_Bezeichnung = "Mahnung.pdf" Case "OP" : RG_Bezeichnung = "OP-Liste.pdf" Case Else RG_Bezeichnung = "Mahnung.pdf" End Select Dim KD_RG As New VERAG_PROG_ALLGEMEIN.cAdressen(AD.AdressenNr) Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(Firma_ID) If FIRMA Is Nothing Then MsgBox("Keine Firma gewählt!") : Return False rpt.DataSource = dtDataSource Dim sum = 0 Select Case Sprache Case "EN" rpt.lblSummeUeberschrift.Text = "Total:" rpt.lblSteuersatz.Text = "Interest for late payment 9,5 %" rpt.lblZwText.Text = "Reminder Fee" rpt.lblZwischensumme.Text = "Subtotal" Case "RO" rpt.lblSummeUeberschrift.Text = "Total:" rpt.lblSteuersatz.Text = "Penalitati întârziere la plată 9,5 %" rpt.lblZwText.Text = "Taxa somatie" rpt.lblZwischensumme.Text = "Subtotal" Case "TR" rpt.lblSummeUeberschrift.Text = "Toplam:" rpt.lblSteuersatz.Text = "Gecikme faizi 9,5 %" rpt.lblZwText.Text = "Hhatırlatma ücreti" rpt.lblZwischensumme.Text = "Ara toplam" End Select initRgFirma(rpt, FIRMA, AD.LandKz) rpt.lblFirmaFax.Visible = True rpt.lblEmail.Visible = True rpt.lblFaxNr.Visible = True Select Case FIRMA.Firma_ID Case 1 : rpt.picVERAG.Image = My.Resources.Verag_AG_Logo : rpt.Picture1.Image = My.Resources.aeo 'is eh standard Case 7 : rpt.picVERAG.Image = My.Resources.Atilla_big_med ': rpt.Picture1.Image = Nothing Case 11 : rpt.picVERAG.Image = My.Resources.Verag_Customs_Service_GMBH_Logo : rpt.Picture1.Image = Nothing Case 20 : rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple : rpt.Picture1.Image = My.Resources.aeo_AT_imex Case 21 : rpt.picVERAG.Image = My.Resources.Unisped_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_AT Case 22 : rpt.picVERAG.Image = My.Resources.Unisped_DE_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_DE Case 26 : rpt.picVERAG.Image = My.Resources.VERAG_UNISPED_Logo ': rpt.Picture1.Image = Nothing Case 23 : rpt.picVERAG.Image = My.Resources.Unisped_ZS_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_ZS_AT Case 17 : rpt.picVERAG.Image = My.Resources.FrontOfficeSUB_Horizontal ': rpt.Picture1.Image = Nothing Case 19 : rpt.picVERAG.Image = My.Resources.VERAG_360 : rpt.lblFirmaFax.Visible = False : rpt.lblEmail.Visible = False : rpt.lblFaxNr.Visible = False ': rpt.Picture1.Image = Nothing End Select Dim ZZTage = 10 Dim ZZKdZahlungsziel = SQL.DLookup("Zahlungsziel", "Kunden", "Kundennr=" & AD.AdressenNr, "FMZOLL", 10) If ZZKdZahlungsziel IsNot Nothing AndAlso IsNumeric(ZZKdZahlungsziel) Then ZZTage = ZZKdZahlungsziel End If rpt.lblKundenNr.Text = If(AD.AdressenNr > 0, AD.AdressenNr, "") rpt.lblRgDatum.Text = Now.ToShortDateString 'rpt.lblKundenAuftragsnummer.Text = If(RECHNUNG.KdAuftragsNr, "") 'If rpt.lblKundenAuftragsnummer.Text = String.Empty Then rpt.lblKundenAuftragsnummerUeberschrift.Visible = False rpt.lblSachbearbeiter.Text = cFakturierung.getSBRgName(FIRMA.Firma_ID, VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME) ' Select Case FIRMA.Firma_ID Case 19 rpt.lblEmail.Text = IIf(FIRMA.Firma_E_Mail_Mahnungen <> "", FIRMA.Firma_E_Mail_Mahnungen, VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_email) rpt.lblEmail.Visible = True If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_telefonnr <> "" AndAlso VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_durchwahl <> "" Then rpt.lblTelefon.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_telefonnr + "-" + VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_durchwahl End If Case Else rpt.lblEmail.Text = IIf(FIRMA.Firma_E_Mail_Mahnungen <> "", FIRMA.Firma_E_Mail_Mahnungen, "buchhaltung@verag.ag") End Select Dim waehrungCode As String = KD.Währungscode If If(AD.Name_2, "") = "" Then rpt.lblRechnung_Name1.Text = "" rpt.lblRechnung_Name2.Text = If(AD.Name_1, "") Else rpt.lblRechnung_Name1.Text = If(AD.Name_1, "") rpt.lblRechnung_Name2.Text = If(AD.Name_2, "") End If If AD.Ansprechpartner <> "" Then rpt.lblAnrede.Text = (If(AD.Anrede, "") & " " & AD.Ansprechpartner).trim Else rpt.lblAnrede.Text = "Abt.: BUCHHALTUNG/GESCHÄFTSFÜHRUNG" End If rpt.lblRechnung_Strasse.Text = If(AD.Straße, "") rpt.lblRechnung_Ort.Text = (If(AD.PLZ, "") & " " & If(AD.Ort, "")).trim rpt.lblRechnung_Land.Text = cProgramFunctions.getLandBez_fromISO1Land(AD.LandKz, "", Sprache).ToString.ToUpper rpt.txtVermerk.Text = "" 'Dim cnt As Integer = 0 Dim ZWSBetrag As Double = 0 Dim ZWZahlung As Double = 0 Dim ZWSumme As Double = 0 Dim Mahngeb As Double = 5 Dim VerzugszinsenGes As Double = 0 Dim ZinssatzVerzugszinsen As Double = 0.095 If Not Firma_ID = 19 Then Select Case MAHNSTUFE Case -2 : Mahngeb = 0 : rpt.Label24.Visible = False : rpt.lblSteuersatz.Visible = False : rpt.Label23.Visible = False : rpt.lblZwText.Visible = False Case -1 : Mahngeb = 0 Case 0 : Mahngeb = 5 Case 1 : Mahngeb = 5 Case 2 : Mahngeb = 20 Case >= 3 : Mahngeb = 30 End Select Else 'ZinssatzVerzugszinsen pro Kunde und wenn nichts hingerlegt, dann defaultwert! If Not IsDBNull(KD_ERW.kde_zinssatz) AndAlso IsNumeric(KD_ERW.kde_zinssatz) Then ZinssatzVerzugszinsen = CDbl(KD_ERW.kde_zinssatz) / 100 rpt.lblSteuersatz.Text = rpt.lblSteuersatz.Text.ToString.Replace("9,5", KD_ERW.kde_zinssatz) End If Select Case MAHNSTUFE Case -2 : Mahngeb = 0 : rpt.Label24.Visible = False : rpt.lblSteuersatz.Visible = False : rpt.Label23.Visible = False : rpt.lblZwText.Visible = False Case -1 : Mahngeb = 0 Case 0 : Mahngeb = 0 Case 1 : Mahngeb = 0 '10 keine Mahngeb bei 1. Mahnstufe laut Brigitte 29.07.2025 Case 2 : Mahngeb = 20 Case 3 : Mahngeb = 30 Case 4 : Mahngeb = 40 Case 5 : Mahngeb = 50 Case 6 : Mahngeb = 60 Case 7 : Mahngeb = 70 Case 8 : Mahngeb = 80 Case 9 : Mahngeb = 90 Case >= 10 : Mahngeb = 100 End Select End If Dim MahnTEXT_VOR = "" Dim MahnTEXT_NACH = "" Dim MAHNTEXT As String = "Zahlungserinnerung" If Not Firma_ID = 19 Then 'über Übersetzung geregelt, alle anderen über getMahnstufe (sollte in Zukunft noch abgeändert werden!) getMahnstufetext(AD.LandKz, MAHNSTUFE, MahnTEXT_VOR, MahnTEXT_NACH, MAHNTEXT) rpt.lblUeberschriftRG_GS.Text = MAHNTEXT rpt.txtMahnungstextVOR.Text = MahnTEXT_VOR rpt.txtVermerk.Text = MahnTEXT_NACH Else getMahnstufetextMDM(MAHNSTUFE, MahnTEXT_VOR, MahnTEXT_NACH, MAHNTEXT, Sprache, dict) rpt.lblUeberschriftRG_GS.Text = MAHNTEXT rpt.txtMahnungstextVOR.Text = MahnTEXT_VOR rpt.txtVermerk.Text = MahnTEXT_NACH rpt.txtDisclaimer.Text = "Wir arbeiten ausschließlich auf Grund der Allgemeinen Spediteurbedingungen in der jeweils geltenden Fassung. Zahlungen werden zunächst auf Frachten, Spesen und Zinsen zuletzt auf Zölle angerechnet. Zahlbar und klagbar in Schärding. Steuer- Zoll- und Tarifauskünfte sind unverbindlich." End If AddHandler rpt.Detail.Format, Sub() rpt.txtLeistung.Text = cFakturierung.checkNull(rpt.Fields.Item("OP_Typ").Value) rpt.Label15.Text = cFakturierung.checkNull(rpt.Fields.Item("Rechnungsdatum").Value) 'If Not Firma_ID = 19 Then 'Fälligkeit immer andrucken!!! ' If (CDate(rpt.Fields.Item("Faelligkeit").Value) > CDate(Now.ToShortDateString) And cFakturierung.checkNull(rpt.Fields.Item("Ausstand").Value, 0) > 0) Or cFakturierung.checkNull(rpt.Fields.Item("Ausstand").Value, 0) <= 0 Then ' rpt.Label16.Text = "" ' rpt.Label15.ForeColor = Color.Black ' Else ' rpt.Label16.Text = cFakturierung.checkNull(rpt.Fields.Item("Faelligkeit").Value) ' rpt.Label15.ForeColor = Color.DarkRed ' End If 'Else rpt.Label16.Text = cFakturierung.checkNull(rpt.Fields.Item("Faelligkeit").Value) If (CDate(rpt.Fields.Item("Faelligkeit").Value) > CDate(Now.ToShortDateString) And cFakturierung.checkNull(rpt.Fields.Item("Ausstand").Value, 0) > 0) Or cFakturierung.checkNull(rpt.Fields.Item("Ausstand").Value, 0) <= 0 Then rpt.Label15.ForeColor = Color.Black rpt.Label16.ForeColor = Color.Black Else rpt.Label15.ForeColor = Color.DarkRed rpt.Label16.ForeColor = Color.DarkRed End If 'End If rpt.Label17.Text = IIf(IsNumeric(cFakturierung.checkNull(rpt.Fields.Item("Rechnungsbetrag").Value)), CDbl(rpt.Fields.Item("Rechnungsbetrag").Value).ToString("N2", Globalization.CultureInfo.CurrentCulture), "") rpt.TextBox1.Text = cFakturierung.checkNull(rpt.Fields.Item("Bemerkung").Value) rpt.Label19.Text = IIf(IsNumeric(cFakturierung.checkNull(rpt.Fields.Item("Zahlung").Value)), CDbl(rpt.Fields.Item("Zahlung").Value).ToString("N2", Globalization.CultureInfo.CurrentCulture), "") rpt.Label20.Text = IIf(IsNumeric(cFakturierung.checkNull(rpt.Fields.Item("Ausstand").Value)), CDbl(rpt.Fields.Item("Ausstand").Value).ToString("N2", Globalization.CultureInfo.CurrentCulture), "") rpt.Label21.Text = cFakturierung.checkNull(rpt.Fields.Item("Mahnstufe").Value) rpt.Label22.Text = cFakturierung.checkNull(rpt.Fields.Item("Währung").Value) Dim Rechnungsbetrag As Double = 0 If IsNumeric(cFakturierung.checkNull(rpt.Fields.Item("Rechnungsbetrag").Value)) Then Rechnungsbetrag = CDbl(rpt.Fields.Item("Rechnungsbetrag").Value()) Dim Zahlung As Double = 0 If IsNumeric(cFakturierung.checkNull(rpt.Fields.Item("Zahlung").Value)) Then Zahlung = CDbl(rpt.Fields.Item("Zahlung").Value()) Dim Ausstand As Double = 0 If IsNumeric(cFakturierung.checkNull(rpt.Fields.Item("Ausstand").Value)) Then Ausstand = CDbl(rpt.Fields.Item("Ausstand").Value()) rpt.Label20.Text = If(Ausstand <> 0, CDbl(Ausstand).ToString("N2", Globalization.CultureInfo.CurrentCulture), "") ZWSBetrag += Rechnungsbetrag ZWZahlung += Zahlung ZWSumme += Ausstand Dim Verzugszinsen As Double = 0 Dim Verzugtage = DateDiff(DateInterval.Day, CDate(rpt.Fields.Item("Faelligkeit").Value), Now) If Verzugtage > 0 And Ausstand > 0 Then If Firma_ID = 19 And MAHNSTUFE > 1 Then 'erst ab Mahnstufe 2 sollen bei MDM Verzugszinsen berechnet werden. Verzugszinsen = ZinssatzVerzugszinsen / 365 * Ausstand * Verzugtage VerzugszinsenGes += Verzugszinsen End If End If End Sub AddHandler rpt.ReportFooter1.Format, Sub() rpt.Label4.Text = ZWSBetrag.ToString("N2", CultureInfo.CurrentCulture) rpt.Label6.Text = ZWZahlung.ToString("N2", CultureInfo.CurrentCulture) rpt.lblZWSumme.Text = ZWSumme.ToString("N2", CultureInfo.CurrentCulture) rpt.Label23.Text = Mahngeb.ToString("N2", CultureInfo.CurrentCulture) rpt.Label24.Text = VerzugszinsenGes.ToString("N2", CultureInfo.CurrentCulture) Select Case MAHNSTUFE Case -2 : rpt.lblSumme.Text = (ZWSumme).ToString("N2", CultureInfo.CurrentCulture) Case Else : rpt.lblSumme.Text = (ZWSumme + Mahngeb + VerzugszinsenGes).ToString("N2", CultureInfo.CurrentCulture) End Select End Sub 'Immer Exportieren, da in Therefore speichern Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False) Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport rpt.Run(False) p.NeverEmbedFonts = "" p.Export(rpt.Document, tmpPath) Path = tmpPath 'wegen Übersetzung in Formular! MAHNTEXT = rpt.lblUeberschriftRG_GS.Text MahnTEXT_VOR = rpt.txtMahnungstextVOR.Text MahnTEXT_NACH = rpt.txtVermerk.Text 'THEREFORE IMPORT: '------------------------------------------------------------------------------- 'Try ' If Not Kopie And (Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM OrElse vbYes = MsgBox("TEST - in Therefore speichern?", vbYesNoCancel)) Then ' VERAG_PROG_ALLGEMEIN.cTherefore.saveFileTo_ImportFolder(tmpPath, RECHNUNG.FilialenNr & RECHNUNG.AbfertigungsNr, If(RECHNUNG.AvisoID, ""), RECHNUNG.Firma_ID, False) ' End If 'Catch ex As Exception ' MsgBox("Therefore-Import fehlgeschlagen!" & ex.Message & ex.StackTrace) 'End Try '------------------------------------------------------------------------------- ''ABRECHNUNGS API: ''------------------------------------------------------------------------------- 'If Not Kopie Then ' Try ' Dim KUNDE_ERW As New VERAG_PROG_ALLGEMEIN.cKundenErweitert(AD.AdressenNr) ' If KUNDE_ERW IsNot Nothing Then ' 'TRADESHIFT: ' Try ' If KUNDE_ERW.kde_API_Tradeshift Then ' Select Case RECHNUNG.Firma_ID ' Case 21, 22, 23 ' System.IO.File.Copy(tmpPath, "\\srv01.unisu.at\Unisped\___AR_PDF\" & RG_Bezeichnung, True) ' End Select ' End If ' Catch ex As Exception ' MsgBox("Tradeshift Export fehlgeschlagen! " & ex.Message & ex.StackTrace) ' End Try ' End If ' Catch ex As Exception ' MsgBox("API Fehler!" & ex.Message & ex.StackTrace) ' End Try 'End If ''----------------------------------------------------- Select Case Mahndruckart Case 0, 1 'DRUCKEN Dim ret = cProgramFunctions.printRpt(rpt, PrinterName, False) Return ret 'Case 1 'FAX Case 2, 5 'MAIL Path = tmpPath Try Dim Mail_Subject = "" Dim Mail_HTMLBody = "" Dim Mail_To = "" Dim Mail_CC = "" Dim Mail_BCC = "" '--------------- If Firma_ID = 19 Then 'dynMailvorlage aktuell nur Verag360, in zukunft für alle!! Dim emailMahnungen = IIf(FIRMA.Firma_E_Mail_Mahnungen <> "", FIRMA.Firma_E_Mail_Mahnungen, "buchhaltung@verag.ag") Dim spracheMahnung As String = "EN" 'Defaultsprache Select Case AD.LandKz Case "TR" : spracheMahnung = AD.LandKz Case "A", "AT", "D", "DE", "CH" : spracheMahnung = "DE" Case "RO" : spracheMahnung = "RO" End Select If listOfTextconserven.LIST.Any(Function(c) c.txt_sprache = spracheMahnung) Then Dim r As cTextkonserve = listOfTextconserven.LIST.Find(Function(c) c.txt_sprache = spracheMahnung) If r IsNot Nothing Then Mail_Subject = r.txt_betreff Dim TextHTML = "" TextHTML &= r.txt_text Mail_Subject = Mail_Subject.Replace("%KdNr%", KdNr) Mail_Subject = Mail_Subject.Replace("%Mahntext%", MAHNTEXT) Mail_Subject = Mail_Subject.Replace("%KdName%", AD.Ordnungsbegriff) Mail_Subject = Mail_Subject.Replace("%Mahnstufe%", MAHNSTUFE) TextHTML = TextHTML.Replace("%email_mahnung%", emailMahnungen) Mail_HTMLBody = "
" & TextHTML & "
" Mail_To = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Mahnung an") Mail_CC = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Mahnung an") Mail_BCC = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Mahnung an") Mail_HTMLBody &= "


" & cFakturierung.getSignature(AD.LandKz, FIRMA.Firma_ID) End If End If '--------------- Else Select Case AD.LandKz Case "TR" Mail_Subject = "PAYMENT REMINDER" & IIf(KdNr > 0, " - Cust.: " & KdNr, "") Mail_HTMLBody = "Sayin bayanlar ve baylar,

ekli dosyada sirketimize olan borcunuza dair acik kalem listemizi iletiyoruz.
Listeyi kontrol edip, eksik fatura varsa bildirmenizi rica ederiz." Mail_HTMLBody &= "

" 'Mail_HTMLBody &= "Vadesi dolmus olan faturalarin, en kisa sürede asagidaki hesabimiza havale yapilmasini önemle arz ederiz. " Mail_HTMLBody &= "
Gecikmiş faturaları mümkün olan en kısa sürede hesabımıza aktarmanızı rica ederiz." Mail_HTMLBody &= "
Yapilan ödemeden sonra lütfen dekont ve detay gönderiniz." 'Gecikmiş faturaları mümkün olan en kısa sürede hesabımıza aktarmanızı rica ederiz. Mail_HTMLBody &= "

" 'Mail_HTMLBody &= "Garanti Bank Hadimköy/TR TR 96 0006 2000 5440 0009 0672 28 Kto.: 544
Hesap Sahibi: Verag Spedition AG EURO Hesabi
" 'Mail_HTMLBody &= "Sizden geri dönüs beklemekteyiz." 'Mail_HTMLBody &= "

" Mail_HTMLBody &= "Iyi calismalar diler, saygilarimizi sunariz" Mail_HTMLBody &= "


" Mail_HTMLBody &= "If you are not responsible for this matter, please send us an e-mail address to buchhaltung@verag.ag, to which future reminders should be sent.
In the meantime, we ask you to forward them to the responsible persons in your company.
" Mail_HTMLBody &= "


" & cFakturierung.getSignature(AD.LandKz, FIRMA.Firma_ID) Case "A", "AT", "D", "DE", "CH" Mail_Subject = MAHNTEXT & IIf(KdNr > 0, " - KdNr.: " & KdNr, "") Mail_HTMLBody = "Sehr geehrte Damen und Herren,

im Anhang finden Sie ihre Mahnung, mit der Bitte um Bearbeitung. " Mail_HTMLBody &= "


" Mail_HTMLBody &= "Sollten Sie für diesen Sachverhalt nicht zuständig sein, teilen Sie uns bitte per Mail an buchhaltung@verag.ag eine Mailadresse mit, an welche zukünftig die Mahnungen versandt werden sollen.
Derweil bitten wir um Weiterleitung an die zuständigen Personen in ihrem Haus.
" Mail_HTMLBody &= "


Mit freundlichen Grüßen

" & cFakturierung.getSignature(AD.LandKz, FIRMA.Firma_ID) Case Else Mail_Subject = "PAYMENT REMINDER" & IIf(KdNr > 0, " - Cust.: " & KdNr, "") Mail_HTMLBody = "Dear Sir or Madam,

attached we send you the invoice reminder." Mail_HTMLBody &= "


" Mail_HTMLBody &= "If you are not responsible for this matter, please send us an e-mail address to buchhaltung@verag.ag, to which future reminders should be sent.
In the meantime, we ask you to forward them to the responsible persons in your company.
" Mail_HTMLBody &= "


Best regards

" & cFakturierung.getSignature(AD.LandKz, FIRMA.Firma_ID) End Select End If Mail_HTMLBody = "
" & Mail_HTMLBody & "
" Mail_To = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Mahnung an") Mail_CC = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Mahnung an") Mail_BCC = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Mahnung an") If Firma_ID = 19 Then Select Case AD.LandKz Case "RO" : Mail_BCC &= "alex@verag.ag;maut.ro@verag.ag;ma@verag.ag;" 'immer an alle bei RO! Case "AT", "BA", "BG", "CZ", "DE", "HU", "LU", "SRB", "BIH", "HR", "ME", "MKD", "SK", "SI", "RS" If KD_ERW IsNot Nothing AndAlso Not IsDBNull(KD_ERW.kde_betreuer) Then Select Case KD_ERW.kde_betreuer Case "Ljubas" : Mail_BCC &= "n.ljubas@verag.ag;" Case "Batinic" : Mail_BCC &= "z.batinic@verag.ag;" Case "Vidovic" : Mail_BCC &= "s.vidovic@verag.ag;" Case Else Mail_BCC &= "z.batinic@verag.ag;n.ljubas@verag.ag;s.vidovic@verag.ag;" End Select Else Mail_BCC &= "z.batinic@verag.ag;n.ljubas@verag.ag;s.vidovic@verag.ag;" End If End Select End If If Mail_To = "" Then Mahndruckart = 2 ' Wenn keine Mahn-Mail hinterlegt, sollte die Mail geöffenet werden Dim pdfBezeichnung As String = "" Select Case Mahndruckart Case 5 'MAIL_SEND Dim list As New List(Of String) list.Add(tmpPath) Mail_BCC = IIf(FIRMA.Firma_E_Mail_Mahnungen <> "", FIRMA.Firma_E_Mail_Mahnungen, "buchhaltung@verag.ag") & IIf(Mail_BCC <> "", ";" & Mail_BCC, "") VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(Mail_To, Mail_Subject, Mail_HTMLBody, IIf(FIRMA.Firma_E_Mail_Mahnungen <> "", FIRMA.Firma_E_Mail_Mahnungen, "buchhaltung@verag.ag"), False, False, Mail_CC, Mail_BCC, list) Case Else Dim outl As New Outlook.Application Dim Mail As Microsoft.Office.Interop.Outlook.MailItem Mail = outl.CreateItem(0) Mail.Subject = Mail_Subject Mail.HTMLBody = Mail_HTMLBody Mail.To = Mail_To Mail.CC = Mail_CC Mail.BCC = Mail_BCC Mail.Attachments.Add(tmpPath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , pdfBezeichnung) Try 'Mail.SentOnBehalfOfName = SDL.cFakturierung.getDefaultMail("AMBAR") ',"buchhaltung@verag.ag" Catch ex2 As Exception MsgBox(ex2.Message) End Try Mail.Display() End Select Catch ex As Exception MsgBox("Fehler bim Öffnen des Mail-Programmes. PDF wird geladen!") Process.Start(tmpPath) End Try rpt.Dispose() Return True Case 3 'PDF + öffnen Path = tmpPath Process.Start(tmpPath) rpt.Dispose() Return True Case 4 'PDF Path = tmpPath rpt.Dispose() Return True End Select Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try Return False End Function Shared Sub initRgFirma(ByRef rpt As rptMahnung, FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen, LandKz As String) rpt.lblFirmaOrt.Text = If(FIRMA.Firma_Ort, "") rpt.lblFirmaStrasse.Text = If(FIRMA.Firma_Straße, "") rpt.lblFirmaTel.Text = If(FIRMA.Firma_Telefon, "") rpt.lblFirmaFax.Text = If(FIRMA.Firma_Telefax, "") rpt.lblFirmaEmail.Text = If(FIRMA.Firma_E_Mail, "") rpt.lblFirmaWeb.Text = If(FIRMA.Firma_Webadresse, "") rpt.lblFirma.Text = If(FIRMA.Firma_Bez, "") & ", " & If(FIRMA.Firma_Ort, "") rpt.lblFirmenbuch.Text = If(FIRMA.Firma_Firmenbuch, "").ToString.Replace("Firmenbuch:", "").Trim rpt.lblUID.Text = If(FIRMA.Firma_UID, "").ToString.Replace("UID:", "").Trim Select Case FIRMA.Firma_ID'VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Case 19 '"VERAG360" rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.picVERAG.Size = New SizeF(2.712, 0.61) rpt.lblFirmaEmail.Text = IIf(FIRMA.Firma_E_Mail_Mahnungen <> "", FIRMA.Firma_E_Mail_Mahnungen, "fibu360@verag.ag") Case 21 '"UNISPED" rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.picVERAG.Size = New SizeF(2.712, 0.61) Case 22 '"UNISPED DE" rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.picVERAG.Size = New SizeF(2.712, 0.61) rpt.lblFirma.Text = If(FIRMA.Firma_Bez, "") ' Ohne Ort gewünscht! Case 23 '"UNISPED ZS" rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.picVERAG.Size = New SizeF(2.712, 0.61) Case 26 rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.picVERAG.Size = New SizeF(2.712, 0.61) Case 20 '"IMEX" If LandKz = "TR" Then 'rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR84 0006 2001 6040 0009 0987 13 " & vbNewLine & "BLZ Sube.: 1604 - Beykent Ticari - Hesap: 9098713" ' rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR21 0006 2000 5440 0009 0818 67" & vbNewLine & "BLZ Sube.: 544 - Beykent Ticari - Hesap: 9081867" rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR21 0006 2000 5440 0009 0818 67" & vbNewLine & "BLZ Sube.: 544 - Hadimköy Ticari - Hesap: 9081867" rpt.txtBank2.Text = "" Else rpt.txtBank1.Text = "Volksbank Schärding" & vbNewLine & "IBAN:AT89 4480 0365 7822 0000" & vbNewLine & "BIC: VBOEATWWOOE" rpt.txtBank2.Text = "" End If Case Else 'VERAG,ATILLA rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank1.Text = rpt.txtBank1.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "BRD:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) rpt.txtBank2.Text = rpt.txtBank2.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "BRD:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) 'TR Bankverbindung 'Dim RgBetrag = (Rechnung.SteuerfreierGesamtbetrag + Rechnung.SteuerpflichtigerGesamtbetrag) 'If AD.LandKz = "TR" And RgBetrag <= 500 And RgBetrag >= -500 Then ' rpt.txtBank2.Text = "Garanti Bank " & vbNewLine & "Eur Iban: TR 96 0006 2000 5440 0009 0672 28" & vbNewLine & "Kto: 544 Swift kodu: TGBATRISXXX" 'End If End Select End Sub Private Shared Sub getMahnstufetext(Sprache, MAHNSTUFE, ByRef MahnTEXT_VOR, ByRef MahnTEXT_NACH, ByRef MAHNTEXT) Select Case Sprache Case "TR" Select Case MAHNSTUFE Case -2 MahnTEXT_VOR = "Aşağıdaki faturalar henüz ödenmemiştir:" MahnTEXT_NACH = "" MAHNTEXT = "List - öğeleri aç" Case -1 MahnTEXT_VOR = "Aşağıdaki faturalar henüz tahsil edilmemiştir:" MahnTEXT_NACH = "Yukarıdaki tutarlar, SEPA otomatik ödeme talimatı yoluyla belirttiğiniz Benk bağlantınızdan tahsil edilecektir." MAHNTEXT = "List - öğeleri aç" Case 0 MahnTEXT_VOR = "WeLütfen asagida belirilen faturalarin ödemesini yapiniz:" MahnTEXT_NACH = "" MAHNTEXT = "Ödeme hatırlatıcısı" Case 1 MahnTEXT_VOR = "Lütfen asagida belirilen faturalarin ödemesini yapiniz:" MahnTEXT_NACH = "Bu gecikmenin organizasyon acisindan olusan bir hatadan kaynaklandigini düsünüyoruz. Ödemeniz tarafimiza yapildiysa ilgili ihtari gecersiz sayabilirsiniz." MAHNTEXT = "1. UYARI" Case 2 MahnTEXT_VOR = "Bir önceki ihtarimiza ragmen asagida belirtilen faturalarin ödemesi gerceklesmemistir:" MahnTEXT_NACH = "WirBu gecikmenin organizasyon acisindan olusan bir hatadan kaynaklandigini düsünüyoruz, fakat bütün sorumluluklarinizi hatirlatarak, daha fazla masrafin ve olumsuzluklarin olusmamasi adina yukarida belirtilen acik tutarin acil olarak ödenmesi gerektigini bildirmek durumundayiz." MAHNTEXT = MAHNSTUFE & ". UYARI" Case 3 MahnTEXT_VOR = "Iki kez iletilen hatirlatma ve ihtara ragmen asagida belirtilen faturalarin ödemesi gerceklesmemistir. Bu vesile ile sizleri son kez acik bakiyenin ödenmesi icin uyariyoruz. Lütfen yapilan ödemeye dair hesap dekontunu tarafimiza iletiniz." MahnTEXT_NACH = "Belirtilen sürenin yine olumsuz olarak gelismesi durumunda gerekli hukuki süreci, herhangi bir ön bildirim yapmaksizin baslatmamiz gerektigini bildirmek durumundayiz." MAHNTEXT = MAHNSTUFE & ". UYARI" Case >= 4 MahnTEXT_VOR = "Defalarca iletilen hatirlatma ve ihtara ragmen asagida belirtilen faturalarin ödemesi gerceklesmemistir. Bu vesile ile sizleri son kez acik bakiyenin ödenmesi icin uyariyoruz. Lütfen yapilan ödemeye dair hesap dekontunu tarafimiza iletiniz." MahnTEXT_NACH = "Belirtilen sürenin yine olumsuz olarak gelismesi durumunda gerekli hukuki süreci, herhangi bir ön bildirim yapmaksizin baslatmamiz gerektigini bildirmek durumundayiz." MAHNTEXT = MAHNSTUFE & ". UYARI" End Select Case "DE", "D", "AT", "A", "CH" Select Case MAHNSTUFE Case -2 MahnTEXT_VOR = "Nachfolgende Rechnungen wurden noch nicht beglichen:" MahnTEXT_NACH = "" MAHNTEXT = "Liste - Offene Posten" Case -1 MahnTEXT_VOR = "Nachfolgende Rechnungen wurden noch nicht eingezogen:" MahnTEXT_NACH = "Die oben genannten Beträge werden per SEPA-Lastschriftmandat von Ihrem angegebenen Benkverbindung eingezogen." MAHNTEXT = "Liste - Offene Posten" Case 0 MahnTEXT_VOR = "Wir ersuchen um Ausgleich der nachfolgenden Rechnungen:" MahnTEXT_NACH = "" MAHNTEXT = "Zahlungserinnerung" Case 1 MahnTEXT_VOR = "Wir ersuchen um Ausgleich der nachfolgenden Rechnungen:" MahnTEXT_NACH = "Wir gehen davon aus, dass dies auf einem organisatorischen Versehen beruht. " & vbNewLine & "Sollte Ihre Zahlung bereits an uns abgegangen sein, bitten wir Sie, die Mahnung als gegenstandslos zu betrachten." MAHNTEXT = "1. Mahnung" Case 2 MahnTEXT_VOR = "Trotz unserer vorhergehenden Mahnung wurden die aufgeführten Rechnungen immer noch nicht ausgeglichen:" MahnTEXT_NACH = "Wir gehen davon aus, dass dies auf einem organisatorischen Versehen beruht, müssen Sie aber nunmehr mit aller Bestimmtheit auffordern, den laut oben stehender Aufstellung fälligen Betrag zur Vermeidung weiterer Kosten und Unannehmlichkeiten unverzüglich an uns zu überweisen." MAHNTEXT = MAHNSTUFE & ". MAHNUNG" Case 3 MahnTEXT_VOR = "Trotz zweifacher Mahnung sind die unten aufgeführten Posten immer noch nicht beglichen. Wir fordern Sie hiermit letztmalig auf, den offenen Betrag unverzüglich zur Einzahlung zu bringen. Bitte senden Sie uns eine Kopie des Überweisungsbeleges." MahnTEXT_NACH = "Nach erfolglosem Ablauf dieser neuerlichen Frist wären wir dann gezwungen, entweder ein Inkassounternehmen mit der Einziehung der Forderung zu beauftragen oder aber ohne weitere vorherige Ankündigung gerichtliche Schritte einzuleiten." MAHNTEXT = MAHNSTUFE & ". MAHNUNG" Case >= 4 MahnTEXT_VOR = "Trotz mehrfacher Mahnung sind die unten aufgeführten Posten immer noch nicht beglichen. Wir fordern Sie hiermit letztmalig auf, den offenen Betrag unverzüglich zur Einzahlung zu bringen. Bitte senden Sie uns eine Kopie des Überweisungsbeleges." MahnTEXT_NACH = "Nach erfolglosem Ablauf dieser neuerlichen Frist wären wir dann gezwungen, entweder ein Inkassounternehmen mit der Einziehung der Forderung zu beauftragen oder aber ohne weitere vorherige Ankündigung gerichtliche Schritte einzuleiten." MAHNTEXT = MAHNSTUFE & ". MAHNUNG" End Select Case "RO" Select Case MAHNSTUFE Case -2 MahnTEXT_VOR = "Facturile ulterioare nu au fost încă plătite:" MahnTEXT_NACH = "" MAHNTEXT = "Listă - Articole deschise" Case -1 MahnTEXT_VOR = "Facturile ulterioare nu au fost încă încasate:" MahnTEXT_NACH = "Sumele menționate mai sus vor fi încasate din contul dumneavoastră bancar specificat prin mandat de debitare directă SEPA." MAHNTEXT = "Listă - Articole deschise" Case 0 MahnTEXT_VOR = "Solicităm ca următoarele facturi să fie decontate:" MahnTEXT_NACH = "" MAHNTEXT = "Reamintire de plată" Case 1 MahnTEXT_VOR = "Solicităm ca următoarele facturi să fie decontate:" MahnTEXT_NACH = "Considerand ca neefectuarea platii se bazeaza pe o mica problema organizatorica, va rugam sa efectuati platile restante in cel mai scurt timp. In cazul in care platile au fost efectuate, va rugam sa considerati acest inscris nefondat." MAHNTEXT = "1. Memento" Case 2 MahnTEXT_VOR = "În ciuda atenționărilor noastre anterioare, facturile enumerate nu au fost încă achitate:" MahnTEXT_NACH = "Presupunem că acest lucru se datorează unei inadvertențe organizaționale. " & vbNewLine & ”Dacă plata a fost deja trimisă către noi, vă rugăm să considerați că acest memento este irelevant." MAHNTEXT = MAHNSTUFE & ". MENȚIUNE" Case 3 MahnTEXT_VOR = "În ciuda a două atenționări, elementele enumerate mai jos nu au fost încă plătite. Prin prezenta, vă solicităm pentru ultima dată să achitați imediat sumele restante. Vă rugăm să ne trimiteți o copie a chitanței de plată." MahnTEXT_NACH = "În cazul în care acest nou termen expiră fără succes, vom fi nevoiți fie să însărcinăm o agenție de colectare a creanțelor să recupereze datoria, fie să acționăm în justiție fără altă notificare." MAHNTEXT = MAHNSTUFE & ". MENȚIUNE" Case >= 4 MahnTEXT_VOR = "În ciuda mai multor atenționări, elementele enumerate mai jos nu au fost încă plătite. Prin prezenta, vă solicităm pentru ultima dată să achitați imediat sumele restante. Vă rugăm să ne trimiteți o copie a chitanței de remitere." MahnTEXT_NACH = "În cazul în care acest nou termen expiră fără succes, vom fi nevoiți fie să instruim o agenție de colectare a creanțelor pentru a colecta datoria, fie să acționăm în justiție fără altă notificare.." MAHNTEXT = MAHNSTUFE & ". MENȚIUNE" End Select Case "BG" Select Case MAHNSTUFE Case -2 MahnTEXT_VOR = "Следните фактури все още не са платени:" MahnTEXT_NACH = "" MAHNTEXT = "Списък - Отворени елементи" Case -1 MahnTEXT_VOR = "Следните фактури все още не са събрани:" MahnTEXT_NACH = "Горепосочените суми ще бъдат събрани от посочената от вас банкова сметка чрез SEPA мандат за директен дебит." MAHNTEXT = "Списък - Отворени елементи" Case 0 MahnTEXT_VOR = "Искаме уреждане на следните фактури:" MahnTEXT_NACH = "" MAHNTEXT = "Напомняне за плащане" Case 1 MahnTEXT_VOR = "Искаме уреждане на следните фактури." MahnTEXT_NACH = "Предполагаме, че това се дължи на организационен пропуск. " & vbNewLine & “Ако плащането ви вече е изпратено до нас, моля, считайте напомнянето за неуместно." MAHNTEXT = "Първо напомняне" Case 2 MahnTEXT_VOR = "Въпреки предишното ни напомняне, изброените фактури все още не са уредени.:" MahnTEXT_NACH = "In cazul de fata trebuie sa insistam la efectuarea platilor facturilor sus mentionate, pentru a evita alte costuri si neplaceri. Va rugam sa efectuali platile restante pana le data de" & MAHNTEXT = MAHNSTUFE & ". напомняне" Case 3 MahnTEXT_VOR = "Въпреки двете напомняния изброените по-долу елементи все още не са платени. С настоящото ви молим за последен път да платите незабавно дължимата сума. Моля, изпратете ни копие от платежното нареждане." MahnTEXT_NACH = "Ако този нов срок изтече без успех, ще бъдем принудени или да възложим на агенция за събиране на вземания да събере дълга, или да предприемем правни действия без допълнително уведомление." MAHNTEXT = MAHNSTUFE & ". напомняне" Case >= 4 MahnTEXT_VOR = "Въпреки няколкото напомняния, изброените по-долу елементи все още не са платени. С настоящото ви молим за последен път да платите незабавно дължимата сума. Моля, изпратете ни копие от платежното нареждане." MahnTEXT_NACH = "Ако този нов срок изтече без успех, ще бъдем принудени или да възложим на агенция за събиране на вземания да събере дълга, или да предприемем правни действия без допълнително уведомление." MAHNTEXT = MAHNSTUFE & ". напомняне" End Select Case "HR", "SRB", "BIH", "MKD" Select Case MAHNSTUFE Case -2 MahnTEXT_VOR = "Naknadni računi još nisu plaćeni:" MahnTEXT_NACH = "" MAHNTEXT = "Popis - Otvorene stavken" Case -1 MahnTEXT_VOR = "Naknadni računi još nisu naplaćeni:" MahnTEXT_NACH = "Gore navedeni iznosi bit će prikupljeni putem SEPA naloga za izravno terećenje s vašeg navedenog bankovnog računa." MAHNTEXT = "Popis - Otvorene stavken" Case 0 MahnTEXT_VOR = "Molimo da se podmire sljedeći računi:" MahnTEXT_NACH = "" MAHNTEXT = "Podsjetnik za plaćanje" Case 1 MahnTEXT_VOR = "Molimo da se podmire sljedeći računi:" MahnTEXT_NACH = "Vjerujemo da je to zbog organizacijskog propusta. " & vbNewLine & "Ako nam je vaša uplata već poslana, molimo vas da podsjetnik smatrate nevažnim." MAHNTEXT = "1. upozorenje" Case 2 MahnTEXT_VOR = "Unatoč našem prethodnom podsjećanju, navedeni računi još uvijek nisu plaćeni:" MahnTEXT_NACH = "Pretpostavljamo da je to zbog organizacijskog propusta, ali sada vas moramo odlučno zamoliti da nam odmah prenesete iznos koji dugujete prema gornjem popisu kako bismo izbjegli daljnje troškove i neugodnosti." MAHNTEXT = MAHNSTUFE & ". UPOZORENJE" Case 3 MahnTEXT_VOR = "Unatoč dvama opomenama, stavke navedene u nastavku još uvijek nisu plaćene. Ovim vas posljednji put molimo da odmah položite preostali iznos. Pošaljite nam kopiju potvrde o prijenosu." MahnTEXT_NACH = "Ako ovaj novi rok istekne bez uspjeha, tada bismo bili prisiljeni angažirati tvrtku za naplatu duga da naplati dug ili poduzeti pravne radnje bez daljnje prethodne obavijesti." MAHNTEXT = MAHNSTUFE & ". UPOZORENJE" Case >= 4 MahnTEXT_VOR = "Unatoč opetovanim podsjetnicima, stavke navedene u nastavku još uvijek nisu plaćene. Ovim vas posljednji put molimo da odmah položite preostali iznos. Pošaljite nam kopiju potvrde o prijenosu." MahnTEXT_NACH = "Ako ovaj novi rok istekne bez uspjeha, tada bismo bili prisiljeni angažirati tvrtku za naplatu duga da naplati dug ili poduzeti pravne radnje bez daljnje prethodne obavijesti." MAHNTEXT = MAHNSTUFE & ". UPOZORENJE" End Select Case Else Select Case MAHNSTUFE Case -2 MahnTEXT_VOR = "Subsequent invoices have not yet been paid:" MahnTEXT_NACH = "" MAHNTEXT = "List - Open accounts" Case -1 MahnTEXT_VOR = "The following invoices have not yet been collected:" MahnTEXT_NACH = "The above amounts will be collected by SEPA direct debit mandate from your specified bank account." MAHNTEXT = "List - Open accounts" Case 0 MahnTEXT_VOR = "We request that the following invoices be settled:" MahnTEXT_NACH = "" MAHNTEXT = "REMINDER" Case 1 MahnTEXT_VOR = "We request that the following invoices be settled:" MahnTEXT_NACH = "We assume that this is due to an organisational oversight. " & vbNewLine & "If your payment has already been sent to us, please consider the reminder as irrelevant." MAHNTEXT = "1. REMINDER" Case 2 MahnTEXT_VOR = "Despite our previous reminder, the listed invoices have still not been settled:" MahnTEXT_NACH = "We assume that this is due to an organisational oversight, but we must now request you in all certainty to transfer the amount due according to the above list to us immediately in order to avoid further costs and inconvenience." MAHNTEXT = MAHNSTUFE & ". REMINDER" Case 3 MahnTEXT_VOR = "Despite two reminders, the items listed below have still not been paid. We hereby request you for the last time to pay the outstanding amount immediately. Please send us a copy of the remittance slip." MahnTEXT_NACH = "After the unsuccessful expiry of this new deadline, we would then be forced either to instruct a debt collection agency to collect the debt or to take legal action without further prior notice." MAHNTEXT = MAHNSTUFE & ". REMINDER" Case >= 4 MahnTEXT_VOR = "Despite several reminders, the items listed below have still not been paid. We hereby request you for the last time to pay the outstanding amount immediately. Please send us a copy of the transfer receipt." MahnTEXT_NACH = "After the unsuccessful expiry of this new deadline, we would then be forced either to instruct a debt collection agency to collect the debt or to take legal action without further prior notice." MAHNTEXT = MAHNSTUFE & ". REMINDER" End Select End Select End Sub Private Shared Sub getMahnstufetextMDM(MAHNSTUFE, ByRef MahnTEXT_VOR, ByRef MahnTEXT_NACH, ByRef MAHNTEXT, Sprache, dct) 'nur Deutsch, weil übersetzung über tblTranslate! Select Case MAHNSTUFE Case -2 MahnTEXT_VOR = "Nachstehend ersehen Sie die Übersicht Ihrer offenen Rechnungen:" MahnTEXT_NACH = "Sollten Sie Kopien der fehlenden Belege benötigen, lassen Sie es uns bitte wissen. Wir senden Sie Ihnen gerne nochmals zu." MAHNTEXT = "Liste - Offene Posten" Case -1 MahnTEXT_VOR = "Nachstehend ersehen Sie die Übersicht Ihrer offenen Rechnungen:" MahnTEXT_NACH = "Die oben genannten Beträge werden per SEPA-Lastschriftmandat von Ihrer angegebenen Bankverbindung eingezogen." MAHNTEXT = "Liste - Offene Posten" Case 0 MahnTEXT_VOR = "für nachstehende Rechnungen konnten wir bisher noch keinen Zahlungseingang verzeichnen:" MahnTEXT_NACH = "" MAHNTEXT = "Zahlungserinnerung" Case 1 MahnTEXT_VOR = "für nachstehende Rechnungen konnten wir bisher noch keinen Zahlungseingang verzeichnen:" MahnTEXT_NACH = "Sicherlich handelt es sich dabei um ein organisatorisches Versehen und wir ersuchen die Zahlung nachzuholen." & vbNewLine & "Sollten Sie zwischenzeitlich Zahlung geleistet haben, betrachten Sie dieses Schreiben als gegenstandslos." MAHNTEXT = "1. Mahnung" Case 2 MahnTEXT_VOR = "Trotz unserer 1. Mahnung wurden die nachstehenden Rechnungen immer noch nicht beglichen." MahnTEXT_NACH = "Zur Vermeidung weiterer Kosten und Unannehmlichkeiten fordern wir Sie nunmehr mit aller Bestimmtheit auf, den überfälligen Betrag bis %FREITAG% zu begleichen." & vbNewLine & "Sollten Sie zwischenzeitlich Zahlung geleistet haben, senden Sie uns bitte umgehend eine Kopie Ihres Überweisungsbelegs. " MAHNTEXT = MAHNSTUFE & ". MAHNUNG" Case 3 MahnTEXT_VOR = "Trotz zweifacher Mahnung sind nachstehende Rechnungen immer noch nicht beglichen." MahnTEXT_NACH = "Wir fordern Sie hiermit letztmalig auf, den überfälligen Betrag unverzüglich bis %DONNERSTAG% zu entrichten." & vbNewLine & "Sollten wir zum Ablauf der neuerlichen Frist keine Kopie Ihres Überweisungsbelegs erhalten, müssen wir Ihre Konten sperren!" MAHNTEXT = MAHNSTUFE & ". MAHNUNG" Case >= 4 And MAHNSTUFE <= 7 MahnTEXT_VOR = "Trotz mehrfacher Mahnung sind nachstehende Rechnungen immer noch nicht beglichen." & vbNewLine & "Wir fordern Sie hiermit letztmalig auf, den offenen Betrag unverzüglich bis %MITTWOCH% zur Einzahlung zu bringen. Bitte senden Sie uns eine Kopie des Überweisungsbelegs!" MahnTEXT_NACH = "Nach erfolglosem Ablauf dieser neuerlichen Frist sind wir gezwungen, ohne weitere vorherige Ankündigung rechtliche Schritte einzuleiten." MAHNTEXT = MAHNSTUFE & ". MAHNUNG" Case >= 8 MahnTEXT_VOR = "Trotz mehrfacher Mahnung sind nachstehende Rechnungen immer noch nicht beglichen." & vbNewLine & "Wir fordern Sie hiermit letztmalig auf, den offenen Betrag unverzüglich %HEUTE% zur Einzahlung zu bringen. Bitte senden Sie uns eine Kopie des Überweisungsbelegs!" MahnTEXT_NACH = "Nach erfolglosem Ablauf dieser neuerlichen Frist wären wir dann gezwungen, aber ohne weitere vorherige Ankündigung rechtliche Schritte einzuleiten." MAHNTEXT = MAHNSTUFE & ". MAHNUNG" End Select If Sprache = "DE" Then 'weil DE nicht übersetzt wird!!! For Each pair In dct MahnTEXT_VOR = MahnTEXT_VOR.ToString.Replace("%" & pair.Key & "%", pair.Value) MahnTEXT_NACH = MahnTEXT_NACH.ToString.Replace("%" & pair.Key & "%", pair.Value) MAHNTEXT = MAHNTEXT.ToString.Replace("%" & pair.Key & "%", pair.Value) Next End If End Sub Private Sub MyDatagridview1_SelectionChanged(sender As Object, e As EventArgs) Handles MyDatagridview1.SelectionChanged 'MyComboBox1.changeItem("") If MyDatagridview1.SelectedRows.Count > 0 Then btnKunde.Enabled = True End If End Sub Shared Function getAusgabe(MainForm As Control, allowMailSend As Boolean) As String Dim f As New frmBU_Mahnlauf_Ausgabe(allowMailSend) f.ShowDialog(MainForm) If f.DialogResult = DialogResult.OK Then Return f.AUSGABE End If Return "" End Function Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click, Button4.Click Me.Cursor = Cursors.WaitCursor If MyDatagridview1.SelectedRows.Count > 0 Then Dim KontoList As New List(Of String) Dim i As Integer = 0 For Each r As DataGridViewRow In MyDatagridview1.SelectedRows KontoList.Add(MyDatagridview1.SelectedRows(i).Cells("Konto").Value) i += 1 Next If sender Is Button5 Then doZahlungserinnerung(Me, "OP", KontoList, cboFirma._value, MyComboBox2._value) If sender Is Button4 Then doZahlungserinnerung(Me, "ZE", KontoList, cboFirma._value, MyComboBox2._value) End If Me.Cursor = Cursors.Default End Sub Shared Sub doZahlungserinnerung(MainForm As Control, art As String, KontoList As List(Of String), Firma As String, Mahnstufe As String) Dim fProgBar As New frmBU_Mahnlauf_Ausgabe_Ladebalken Try Dim oPS As New System.Drawing.Printing.PrinterSettings Dim srchPrinter = oPS.PrinterName Dim forceMahnstufe As String = -2 Dim hideMahnstopp As String = True Dim gesAnz As Integer = KontoList.Count Dim cnt = 0 If art = "OP" Then forceMahnstufe = -2 : hideMahnstopp = False If art = "ZE" Then forceMahnstufe = Mahnstufe : hideMahnstopp = True If KontoList.Count > 0 Then Select Case getAusgabe(MainForm, False) Case "PDF" If KontoList.Count = 1 Then doMahnung(3, KontoList(0), Firma, art,, srchPrinter, forceMahnstufe,, hideMahnstopp) Else Dim PDF_LIST As New List(Of String) fProgBar.Show(MainForm) fProgBar.Refresh() For Each konto In KontoList ' As DataGridViewRow In MyDatagridview1.SelectedRows Dim Path = "" If doMahnung(4, konto, Firma, art, Path, srchPrinter, forceMahnstufe, False, hideMahnstopp) Then PDF_LIST.Add(Path) End If cnt += 1 fProgBar.progBar.Value = cnt / gesAnz * 100 fProgBar.lblAnzahl.Text = cnt & "/" & gesAnz 'Pasuse?? fProgBar.Refresh() Next If PDF_LIST.Count > 0 Then Dim pathPDF = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("Mahnung_" & Now.ToShortDateString & ".pdf", ".pdf", False, False) If FormularManagerNEU.MergePdfFiles(PDF_LIST, pathPDF) Then Process.Start(pathPDF) End If End If End If Case "MAIL" Dim PDF_LIST As New List(Of String) fProgBar.Show(MainForm) fProgBar.Refresh() For Each konto In KontoList ' As DataGridViewRow In MyDatagridview1.SelectedRows Dim Path = "" doMahnung(2, konto, Firma, art, Path, srchPrinter, forceMahnstufe, False, hideMahnstopp) cnt += 1 fProgBar.progBar.Value = cnt / gesAnz * 100 fProgBar.lblAnzahl.Text = cnt & "/" & gesAnz fProgBar.Refresh() Next Case "PRINT" fProgBar.Show(MainForm) fProgBar.Refresh() For Each konto In KontoList ' As DataGridViewRow In MyDatagridview1.SelectedRows doMahnung(0, konto, Firma, art, , srchPrinter, forceMahnstufe,, hideMahnstopp) cnt += 1 fProgBar.progBar.Value = cnt / gesAnz * 100 fProgBar.lblAnzahl.Text = cnt & "/" & gesAnz fProgBar.Refresh() Next End Select End If Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name, , "WiedergestellungsDatum Fehler") Finally fProgBar.Close() End Try End Sub Private Sub Panel1_Paint(sender As Object, e As PaintEventArgs) Handles Panel1.Paint End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Dim fProgBar As New frmBU_Mahnlauf_Ausgabe_Ladebalken Dim bool_increaseMahnstufe = cbxMahnstufeErh.Checked Try Me.Cursor = Cursors.WaitCursor Dim oPS As New System.Drawing.Printing.PrinterSettings Dim srchPrinter = oPS.PrinterName If MyDatagridview1.SelectedRows.Count > 0 Then Dim AUSGABE = getAusgabe(Me, True) Dim forceMahnstufe As String = -2 Dim gesAnz As Integer = MyDatagridview1.SelectedRows.Count Dim cnt = 0 Dim PDF_LIST As New List(Of String) fProgBar.Show(Me) fProgBar.Refresh() For Each r As DataGridViewRow In MyDatagridview1.SelectedRows Dim mahnsperre As Boolean = r.Cells("mahnbar").Value If Not cbxMahnsperre.Checked Or (cbxMahnsperre.Checked And mahnsperre) Then Dim Konto = r.Cells("Konto").Value Dim FirmaId = cboFirma._value If isFaelligAndMahnlauf(Konto, FirmaId) And isMahnlauf_Betrag(Konto, FirmaId) Then Dim Path = "" Select Case AUSGABE Case "PDF" If bool_increaseMahnstufe Then increaseMahnstufe(Konto, FirmaId) If doMahnung(4, Konto, FirmaId, "ZE", Path, srchPrinter) Then PDF_LIST.Add(Path) End If Case "MAIL" If bool_increaseMahnstufe Then increaseMahnstufe(Konto, FirmaId) doMahnung(2, Konto, FirmaId, "ZE",, srchPrinter) Case "MAIL_SEND" If bool_increaseMahnstufe Then increaseMahnstufe(Konto, FirmaId) doMahnung(5, Konto, FirmaId, "ZE",, srchPrinter) Case "PRINT" If bool_increaseMahnstufe Then increaseMahnstufe(Konto, FirmaId) doMahnung(0, Konto, FirmaId, "ZE",, srchPrinter) End Select End If cnt += 1 fProgBar.progBar.Value = cnt / gesAnz * 100 fProgBar.lblAnzahl.Text = cnt & "/" & gesAnz 'Pasuse?? fProgBar.Refresh() End If Next If PDF_LIST.Count > 0 Then 'Nur bei PDF If PDF_LIST.Count > 1 Then 'Nur bei PDF Dim pathPDF = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("Mahnung_" & Now.ToShortDateString & ".pdf", ".pdf", False, False) If FormularManagerNEU.MergePdfFiles(PDF_LIST, pathPDF) Then Process.Start(pathPDF) End If Else Process.Start(PDF_LIST(0)) End If End If End If 'If MyDatagridview1.SelectedRows.Count > 0 Then ' For Each r In MyDatagridview1.SelectedRows ' Next 'Else ' MsgBox("Ein Element auswählen!") 'End If Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name, , "WiedergestellungsDatum Fehler") Finally fProgBar.Close() End Try Me.Cursor = Cursors.Default End Sub Private Sub cbxNurFaellig_CheckedChanged(sender As Object, e As EventArgs) Handles cbxNurFaellig.CheckedChanged Button2.Enabled = cbxNurFaellig.Checked CheckBox1.Enabled = cbxNurFaellig.Checked End Sub Private Sub btnExcel_Click(sender As Object, e As EventArgs) Handles btnExcel.Click Me.Cursor = Cursors.WaitCursor btnSuche.PerformClick() Dim dt = MyDatagridview1.DataSource If cbxZahlungseingaenge.Checked Then If dt.Columns.Contains("c_landid") Then dt.Columns.Remove("c_landid") cProgramFunctions.genExcelFromDT_NEW(dt, {"D1:D" & (dt.Rows.Count + 1)},,, "Zahlungseingänge vom " & txtZahlEingaenge._value,, True) Else If cboFirma._value = 19 Then cProgramFunctions.genExcelFromDT_NEW(dt, {"E1:E" & (dt.Rows.Count + 1), "F1:F" & (dt.Rows.Count + 1), "I1:I" & (dt.Rows.Count + 1), "J1:J" & (dt.Rows.Count + 1), "K1:K" & (dt.Rows.Count + 1), "L1:L" & (dt.Rows.Count + 1)}) Else cProgramFunctions.genExcelFromDT_NEW(dt, {"G1:G" & (dt.Rows.Count + 1), "J1:J" & (dt.Rows.Count + 1)}) End If End If Me.Cursor = Cursors.Default End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click MyDatagridview1.SelectAll() End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click MyDatagridview1.ClearSelection() End Sub Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click If MyTextBox2._value <> "" Then Dim mahndatum As Date = MyTextBox2._value Dim cntRedo As Integer = cntRedoMahnstufe(cboFirma._value, mahndatum) If vbYes = MsgBox("Möchten Sie wirklich den Mahnzähler zurücksetzen?" & vbNewLine & "Ab Mahndatum: " & mahndatum & vbNewLine & "Betrifft '" & cntRedo & "' Mahnungen/Einträge " & mahndatum, vbYesNoCancel) Then If redoMahnstufe(cboFirma._value, mahndatum) Then MsgBox("Der Mahnzähler wurde erfolgreich zurückgesetzt.") End If End If End If End Sub Private Sub btnKunde_Click(sender As Object, e As EventArgs) Handles btnKunde.Click If MyDatagridview1.SelectedRows.Count > 0 Then If MyDatagridview1.Columns("Konto") IsNot Nothing Then If IsNumeric(MyDatagridview1.SelectedRows(0).Cells("Konto").Value) AndAlso MyDatagridview1.SelectedRows(0).Cells("Konto").Value > 0 Then cProgramFunctions.openKundenblatt(MyDatagridview1.SelectedRows(0).Cells("Konto").Value, Me.FindForm) End If End If End If End Sub Private Sub cbxZahlungseingaenge_CheckedChanged(sender As Object, e As EventArgs) Handles cbxZahlungseingaenge.CheckedChanged If cbxZahlungseingaenge.Checked Then txtZahlEingaenge.Visible = True cbxKontotyp.Visible = True btnMail_Intern.Visible = True Select Case Now.DayOfWeek Case 1 : txtZahlEingaenge._value = Today().AddDays(-3) 'Am Montag Daten von Freitag Case Else : txtZahlEingaenge._value = Today().AddDays(-1) ' Sonst daten von gestern. End Select Else txtZahlEingaenge.Visible = False cbxKontotyp.Visible = False btnMail_Intern.Visible = False End If Button2.Enabled = Not cbxZahlungseingaenge.Checked Button4.Enabled = Not cbxZahlungseingaenge.Checked Button5.Enabled = Not cbxZahlungseingaenge.Checked Button6.Enabled = Not cbxZahlungseingaenge.Checked btnSuche.PerformClick() End Sub Private Sub cboFirma_SelectedValueChanged(sender As Object, e As EventArgs) Handles cboFirma.SelectedValueChanged If cboFirma._value <> "" AndAlso cboFirma._value = 19 Then cbxZahlungseingaenge.Visible = True cboBetreuer.Visible = True lblBetreuer.Visible = True Else cbxZahlungseingaenge.Visible = False cbxZahlungseingaenge.Checked = False cboBetreuer.Visible = False lblBetreuer.Visible = False End If End Sub Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click If cboFirma._value <> "" Then If vbYes = MsgBox("Sollen die OPs aus Syska für die Firma " & cboFirma.Text.Replace(cboFirma._value, "") & " aktualisiert werden?" & vbNewLine & "Dieser Vorgang dauert unter Umständen etwas!", vbYesNoCancel) Then If Not VERAG_PROG_ALLGEMEIN.cSyska_Interface.OP_Einlesen(cboFirma._value) Then MsgBox("Fehler beim aktualisieren der OPs aus Syska!") Else initDGV(cbxZahlungseingaenge.Checked) End If End If End If End Sub Private Sub btnMail_Intern_Click(sender As Object, e As EventArgs) Handles btnMail_Intern.Click Try Me.Cursor = Cursors.WaitCursor btnSuche.PerformClick() Dim dt = MyDatagridview1.DataSource Dim desc = "Zahlungseingänge vom " & txtZahlEingaenge._value If dt.Columns.Contains("c_landid") Then dt.Columns.Remove("c_landid") Dim attachment = cProgramFunctions.genExcelFromDT_NEW(dt, {"D1:D" & (dt.Rows.Count + 1)},,, desc,, True,,,, False, True) Dim outl As New Outlook.Application Dim Mail As Microsoft.Office.Interop.Outlook.MailItem Mail = outl.CreateItem(0) Mail.Subject = desc & " (" & cbxKontotyp.Text & ")" If cboFirma._value = 19 Then Dim accountToSent = "fibu360@verag.ag " If accountToSent <> "" Then If outl.Session.Accounts.Count > 0 Then For Each oAccount In outl.Session.Accounts If oAccount.SmtpAddress = accountToSent Then Mail.SendUsingAccount = oAccount Exit For End If Next End If End If End If 'noch keine Unterscheidung der Abteilungen bei MDM, daher hardcodiert. Dim MautVertrMail = "z.batinic@verag.ag;alex@verag.ag;maut.ro@verag.ag;ma@verag.ag;n.ljubas@verag.ag;s.vidovic@verag.ag;" Dim MautFaktMail = "s.kriegner@verag.ag;" Select Case cbxKontotyp._value Case "A" : Mail.To = MautVertrMail & MautFaktMail Case "DE" : Mail.To = MautVertrMail Case "KE" : Mail.To = MautFaktMail Case "KO" : Mail.To = "" End Select Mail.Attachments.Add(attachment) Mail.Display() Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Fehler beim Ermitteln des Mail-Accounts." & ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try Me.Cursor = Cursors.Default End Sub End Class