Files
SDL/SDL/buchhaltung/frmBU_Mahnlauf.vb
2024-08-22 15:08:31 +02:00

1125 lines
69 KiB
VB.net
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Imports System.Globalization
Imports Microsoft.Office.Interop
Public Class frmBU_Mahnlauf
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
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<getDATE() THEN (eur_bruttobetrag+eur_zahlung) ELSE 0 END) Summe_Faellig") & "
FROM op_debitor OP
RIGHT join fibu_konto KTO on i_personenkonto=i_konto AND KTO.i_firm_refid=OP.i_firm_refid
WHERE (OP.i_firm_refid = '" & Firma_ID & "') AND (dt_geloescht IS NULL)
" & If(cbxNurFaellig.Checked, " and op.d_netto<=getdate() and isnull(si_mahnflags,0) <>(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<getDATE() THEN (eur_bruttobetrag+eur_zahlung) ELSE 0 END) Summe_Faellig") & "
FROM op_debitor OP
RIGHT join fibu_konto KTO on i_personenkonto=i_konto AND KTO.i_firm_refid=OP.i_firm_refid
WHERE (OP.i_firm_refid = '" & Firma_ID & "') AND (dt_geloescht IS NULL)
" & If(cbxNurFaellig.Checked, " and op.d_netto<=getdate() and isnull(si_mahnflags,0) <>(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, 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, Path, PrinterName, forceMahnstufe)
End Function
Public Shared Function doMahnDruck(dtDataSource As DataTable, Mahndruckart As Integer, KdNr As Integer, Firma_ID As Integer, 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
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
Dim rpt As New rptMahnung(Sprache)
rpt.Document.Printer.PrinterName = ""
Dim RG_Bezeichnung = "Mahnung.pdf"
Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(Firma_ID)
Dim KD_RG As New VERAG_PROG_ALLGEMEIN.cAdressen(AD.AdressenNr)
If FIRMA Is Nothing Then MsgBox("Keine Firma gewählt!") : Return False
If dtDataSource Is Nothing Then MsgBox("Keine Daten vorhanden!") : Return False
If dtDataSource.Rows.Count = 0 Then MsgBox("Keine Daten vorhanden!") : 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.Label2.Text = "Subtotal"
End Select
initRgFirma(rpt, FIRMA, AD.LandKz)
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
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, "")
rpt.lblEmail.Text = IIf(FIRMA.Firma_E_Mail_Mahnungen <> "", FIRMA.Firma_E_Mail_Mahnungen, "buchhaltung@verag.ag")
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.Label25.Text = (If(AD.Anrede, "") & " " & AD.Ansprechpartner).trim
Else
Select Case Sprache
Case "EN" : rpt.Label25.Text = "Abt.: BUCHHALTUNG/GESCHÄFTSFÜHRUNG"
Case Else : rpt.Label25.Text = "Dept.: ACCOUNTING/MANAGEMENT"
End Select
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 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 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"
getMahnstufetext(AD.LandKz, MAHNSTUFE, MahnTEXT_VOR, MahnTEXT_NACH, MAHNTEXT)
rpt.lblUeberschriftRG_GS.Text = MAHNTEXT
rpt.TextBox2.Text = MahnTEXT_VOR
rpt.txtVermerk.Text = MahnTEXT_NACH
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 = cFakturierung.checkNull(rpt.Fields.Item("Rechnungsbetrag").Value)
rpt.TextBox1.Text = cFakturierung.checkNull(rpt.Fields.Item("Bemerkung").Value)
rpt.Label19.Text = cFakturierung.checkNull(rpt.Fields.Item("Zahlung").Value)
rpt.Label20.Text = cFakturierung.checkNull(rpt.Fields.Item("Ausstand").Value)
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
'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 = ""
Select Case AD.LandKz
Case "TR"
Mail_Subject = "PAYMENT REMINDER" & IIf(KdNr > 0, " - Cust.: " & KdNr, "")
Mail_HTMLBody = "Sayin bayanlar ve baylar,<br><br>ekli dosyada sirketimize olan borcunuza dair acik kalem listemizi iletiyoruz.<br>Listeyi kontrol edip, eksik fatura varsa bildirmenizi rica ederiz."
Mail_HTMLBody &= "<br><br>"
'Mail_HTMLBody &= "Vadesi dolmus olan faturalarin, en kisa sürede asagidaki hesabimiza havale yapilmasini önemle arz ederiz. "
Mail_HTMLBody &= "<br>Gecikmiş faturaları mümkün olan en kısa sürede hesabımıza aktarmanızı rica ederiz."
Mail_HTMLBody &= "<br>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 &= "<br><br>"
'Mail_HTMLBody &= "Garanti Bank Hadimköy/TR TR 96 0006 2000 5440 0009 0672 28 Kto.: 544<br>Hesap Sahibi: Verag Spedition AG EURO Hesabi<br>"
'Mail_HTMLBody &= "Sizden geri dönüs beklemekteyiz."
'Mail_HTMLBody &= "<br><br>"
Mail_HTMLBody &= "Iyi calismalar diler, saygilarimizi sunariz"
Mail_HTMLBody &= "<br><br><br>"
Mail_HTMLBody &= "<i>If you are not responsible for this matter, please send us an e-mail address to <b>buchhaltung@verag.ag</b>,
to which future reminders should be sent.<br>
In the meantime, we ask you to forward them to the responsible persons in your company.</i>"
Mail_HTMLBody &= "<br><br><br>" & 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,<br><br>im Anhang finden Sie ihre Mahnung, mit der Bitte um Bearbeitung. "
Mail_HTMLBody &= "<br><br><br>"
Mail_HTMLBody &= "<i>Sollten Sie für diesen Sachverhalt nicht zuständig sein, teilen Sie uns bitte per Mail an <b>buchhaltung@verag.ag</b> eine Mailadresse mit,
an welche zukünftig die Mahnungen versandt werden sollen.<br>
Derweil bitten wir um Weiterleitung an die zuständigen Personen in ihrem Haus.</i>"
Mail_HTMLBody &= "<br><br><br>Mit freundlichen Grüßen<br><br>" & cFakturierung.getSignature(AD.LandKz, FIRMA.Firma_ID)
Case Else
Mail_Subject = "PAYMENT REMINDER" & IIf(KdNr > 0, " - Cust.: " & KdNr, "")
Mail_HTMLBody = "Dear Sear or Madam,<br><br>attached we send you the invoice reminder."
Mail_HTMLBody &= "<br><br><br>"
Mail_HTMLBody &= "<i>If you are not responsible for this matter, please send us an e-mail address to <b>buchhaltung@verag.ag</b>,
to which future reminders should be sent.<br>
In the meantime, we ask you to forward them to the responsible persons in your company.</i>"
Mail_HTMLBody &= "<br><br><br>Best regards<br><br>" & cFakturierung.getSignature(AD.LandKz, FIRMA.Firma_ID)
End Select
Mail_HTMLBody = "<div style=""font-family:Calibri, Arial"">" & Mail_HTMLBody & "</div>"
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
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, , "Mahnung.pdf")
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
MsgBox(ex.Message & ex.StackTrace)
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)
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, rugăm considerați 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, solicităm pentru ultima dată achitați imediat sumele restante. rugăm 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 însărcinăm o agenție de colectare a creanțelor recupereze datoria, fie 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, solicităm pentru ultima dată achitați imediat sumele restante. rugăm 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 instruim o agenție de colectare a creanțelor pentru a colecta datoria, fie 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, , 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, 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, 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, , 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, Path, srchPrinter) Then
PDF_LIST.Add(Path)
End If
Case "MAIL"
If bool_increaseMahnstufe Then increaseMahnstufe(Konto, FirmaId)
doMahnung(2, Konto, FirmaId, , srchPrinter)
Case "MAIL_SEND"
If bool_increaseMahnstufe Then increaseMahnstufe(Konto, FirmaId)
doMahnung(5, Konto, FirmaId, , srchPrinter)
Case "PRINT"
If bool_increaseMahnstufe Then increaseMahnstufe(Konto, FirmaId)
doMahnung(0, Konto, FirmaId, , 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