Imports System.Globalization Imports System.Windows Imports Microsoft.Office.Interop Imports VERAG_PROG_ALLGEMEIN Imports VERAG_PROG_ALLGEMEIN.TESTJSON 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() End Sub Sub initDGV() 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," & "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 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,/*KTO.c_plz + ' ' + KTO.c_ort Ort,isnull(KTO.c_email,'') Email, */ " & "isnull(( SELECT TOP 1 [Zahlungsinformationen] FROM [FMZOLL\SQLFMZOLL].[VERAG].[dbo].Kunden where KundenNr=i_personenkonto ) ,'') Zahlungsinfo, cast(min (OWNFIELD_Belegdatum)as date) as 'ältesteRg'," & "count(*) Anzahl, sum(eur_bruttobetrag+eur_zahlung) Ausstand ,min(op.d_netto) Faelligkeit,max(si_mahnstufe) Mahnstufe, cast(MAX(d_mahnung)as date) Mahndatum, max(replace(KTO.c_zahlziel,'0/0/','')) ZZ, case when max(si_mahnstufe) = 1 and max((replace(KTO.c_zahlziel,'0/0/',''))) = 20 Then 'telefonisch' when max(si_mahnstufe) = 1 and max((replace(KTO.c_zahlziel,'0/0/',''))) = 30 Then 'ZZ 30 Tage' when max(si_mahnstufe) = 1 and cast(MAX(d_mahnung)as date) < (GETDATE()- 60) Then 'Sperre Donnerstag' when max(si_mahnstufe) = 2 and max((replace(KTO.c_zahlziel,'0/0/',''))) = 20 Then 'Sperre Freitag' when max(si_mahnstufe) = 2 and max((replace(KTO.c_zahlziel,'0/0/',''))) = 30 Then 'ZZ 30 Tage' when max(si_mahnstufe) >= 3 Then 'Sperre Donnerstag' else '-' End as sperre" & 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 HAVING sum(eur_bruttobetrag+eur_zahlung)>'" & MyTextBox1._value & "' " & If(MyComboBox1._value > 0, " and max(si_mahnstufe)>='" & MyComboBox1._value & "'", "") & " ORDER BY KTO.c_name" 'MsgBox(sqlStr) Dim dt_OP As DataTable = SQL.loadDgvBySql(If(Firma_ID = 19, sqlStringVerag360, sqlStr), "FIBU") .DataSource = dt_OP If .Columns.Count = 0 Then Exit Sub .Columns("c_name").HeaderText = "Firma" .Columns("c_name").AutoSizeMode = DataGridViewAutoSizeColumnsMode.Fill .Columns("Land").Width = 40 .Columns("Anzahl").Width = 40 If Firma_ID = 19 Then .Columns("Zahlungsinfo").Width = 300 .Columns("ältesteRg").Width = 75 Else .Columns("Email").Width = 150 .Columns("Ort").Width = 150 End If .Columns("Faelligkeit").Width = 75 .Columns("Faelligkeit").HeaderText = "Fälligkeit" .Columns("Mahndatum").Width = 75 .Columns("Konto").Width = 75 .Columns("Konto").HeaderText = "KdNr/Konto" .Columns("Ausstand").Width = 75 .Columns("Ausstand").HeaderText = "Betrag" If Not cbxNurFaellig.Checked Then .Columns("Summe_Faellig").Width = 75 .Columns("Summe_Faellig").HeaderText = "Summe fällig" End If .Columns("Mahnstufe").Width = 50 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("") 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 rpt As New rptMahnung(Sprache, MAHNSTUFE, Firma_ID) 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.lblUeberschriftRG_GS.Text = "REMINDER" rpt.lblSummeUeberschrift.Text = "Total:" rpt.lblSteuersatz.Text = "Late payment interest of 9.5% p.a. from due date" rpt.lblZwText.Text = "Dunning fee" rpt.lblZwischensumme.Text = "Subtotal" 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_AT_imex 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.Picture1.Image = Nothing : rpt.lblFirmaFax.Visible = False : rpt.lblEmail.Visible = False : rpt.lblFaxNr.Visible = False 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) 'If(RECHNUNG.Sachbearbeiter, "") Select Case FIRMA.Firma_ID Case 19 If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_email <> "" Then rpt.lblEmail.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_email Else rpt.lblEmail.Text = IIf(FIRMA.Firma_E_Mail_Mahnungen <> "", FIRMA.Firma_E_Mail_Mahnungen, "buchhaltung@verag.ag") End If 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 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 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 'über Übersetzung geregelt, alle anderen über getMahnstufe (sollte in Zukunft noch abgeändert werden!) getMahnstufetext("DE", MAHNSTUFE, MahnTEXT_VOR, MahnTEXT_NACH, MAHNTEXT) rpt.lblUeberschriftRG_GS.Text = MAHNTEXT rpt.txtMahnungstextVOR.Text = MahnTEXT_VOR rpt.txtVermerk.Text = MahnTEXT_NACH 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 (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 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 Verzugszinsen = ZinssatzVerzugszinsen / 365 * Ausstand * Verzugtage VerzugszinsenGes += Verzugszinsen 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) 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") ' 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 [kkd_Email] FROM [FMZOLL\SQLFMZOLL].[VERAG].[dbo].[tblKundenKontakt] where kkd_kkaId=10 and kkd_KundenNr=i_personenkonto ) ,'') Email, 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") & 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" 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 Sub MyDatagridview1_SelectionChanged(sender As Object, e As EventArgs) Handles MyDatagridview1.SelectionChanged 'MyComboBox1.changeItem("") 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) For Each r As DataGridViewRow In MyDatagridview1.SelectedRows KontoList.Add(MyDatagridview1.SelectedRows(0).Cells("Konto").Value) 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 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() 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() ' cProgramFunctions.genExcelFromDGV_NEW(MyDatagridview1, False) 'cProgramFunctions.genExcelFromDGV_NEW(MyDatagridview1, False) Dim dt = MyDatagridview1.DataSource cProgramFunctions.genExcelFromDT_NEW(dt, {"G1:G" & (dt.Rows.Count + 1), "J1:J" & (dt.Rows.Count + 1)}) 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 End Class