1598 lines
86 KiB
VB.net
1598 lines
86 KiB
VB.net
Imports System.Globalization
|
|
Imports System.Text
|
|
Imports VERAG_PROG_ALLGEMEIN
|
|
|
|
Public Class usrCntlBH
|
|
Dim GrenzeVersicherung = 50000
|
|
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
Dim culture As CultureInfo = New CultureInfo("de-DE")
|
|
Private Sub btnWord_Click(sender As Object, e As EventArgs) Handles btnWord.Click
|
|
If frmMDM_BH_SollHaben.Visible Then frmMDM_BH_SollHaben.Close()
|
|
|
|
frmMDM_BH_SollHaben.MdmSollHaben = cbxMdmSollHaben.Checked
|
|
frmMDM_BH_SollHaben.MdmSollSoll = cbxMdmSollSoll.Checked
|
|
frmMDM_BH_SollHaben.MdmHabenHaben = cbxMdmHabenHaben.Checked
|
|
frmMDM_BH_SollHaben.MdmSollHabenOhneKdNr = cbxMdmSollHabenOhneKdNr.Checked
|
|
|
|
frmMDM_BH_SollHaben.Show()
|
|
End Sub
|
|
|
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
|
If frmBH_SollHaben.Visible Then frmBH_SollHaben.Close()
|
|
frmBH_SollHaben.Show()
|
|
End Sub
|
|
|
|
|
|
Private Sub usrCntlBH_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
'MyComboBox1.fillWithSQL(" SELECT tblUStVAntrag.UStVAn_LandKz,tblUStVAntrag.UStVAn_LandKz FROM tblUStVAntrag GROUP BY tblUStVAntrag.UStVAn_LandKz HAVING (((tblUStVAntrag.UStVAn_LandKz) Is Not Null)) ", False, "FMZOLL", True)
|
|
|
|
cboAbfVerbFirma.fillWithSQL("SELECT distinct([Firma]) FROM [VERAG].[dbo].[Filialen] order by [Firma]", False, "FMZOLL", True)
|
|
cboAbfVerbFirma.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA)
|
|
|
|
cbxFirma_RE.fillWithSQL("SELECT Firma_ID, Firma_Bez FROM [VERAG].[dbo].[tblFirma] where Firma_ID in (1,4,7,11,19,20,21,22,23,24,26)", False, "FMZOLL", True)
|
|
|
|
txtRE_Jahr.Text = Now().Year
|
|
txtRE_Monat.Text = Now().Month
|
|
|
|
cbxFirmaUID.Items.Add(New MyListItem("AMBAR", "AMBAR"))
|
|
cbxFirmaUID.Items.Add(New MyListItem("IMEX", "IMEX"))
|
|
cbxFirmaUID.Items.Add(New MyListItem("ATILLA", "ATILLA"))
|
|
cbxFirmaUID.Items.Add(New MyListItem("UNISPED", "UNISPED"))
|
|
cbxFirmaUID.Items.Add(New MyListItem("VERAG", "VERAG"))
|
|
cbxFirmaUID.Items.Add(New MyListItem("", ""))
|
|
cbxFirmaUID.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA)
|
|
|
|
txtUID_Jahr.Text = Now().Year
|
|
txtUID_Monat.Text = Now().Month
|
|
|
|
MyComboBox1.fillWithSQL(" SELECT Währungstabelle.LandKz, [Länderverzeichnis für die Außenhandelsstatistik].LandKz + ' - ' + [Länderverzeichnis für die Außenhandelsstatistik].LandBez AS LandKzISO2 " &
|
|
" FROM [Länderverzeichnis für die Außenhandelsstatistik] LEFT JOIN Währungstabelle ON [Länderverzeichnis für die Außenhandelsstatistik].LandNr = Währungstabelle.Währungsschlüssel " &
|
|
" where [Länderverzeichnis für die Außenhandelsstatistik].LandKz IN ('DE','AT','BA','BE','BG','FR','HR','MK','MD','ME','NL','RO','CH','SK','SI','RS','TR','HU') " &
|
|
" ORDER BY [Länderverzeichnis für die Außenhandelsstatistik].LandKz;", False, "FMZOLL", True)
|
|
|
|
cboSort.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Firmenname", "Ordnungsbegriff"))
|
|
cboSort.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Umsatz", "UmsatzRg DESC"))
|
|
cboSort.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Laufender Saldo", "LfdSaldo DESC"))
|
|
cboSort.SelectedIndex = 0
|
|
|
|
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
|
|
Case "IMEX" : MyListBox1.fillWithSQL("SELECT [Firma_ID],[Firma_Bez] FROM [VERAG].[dbo].[tblFirma] where Firma_ID IN (20) order by [Firma_ID] ", False, "FMZOLL")
|
|
Case Else
|
|
|
|
Dim isMDM As Boolean = False
|
|
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_abteilung = "MDM" OrElse VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_nname = "Breimaier" Then isMDM = True
|
|
If isMDM Then
|
|
txtnichtabrechneteKunden.Text = SQL.getValueTxtBySql("SELECT count(distinct(kundenNr)) FROM [VERAG].[dbo].[tblMDM_Zinsberechnung] where verrechnet is null", "FMZOLL",,, "0")
|
|
If IsNumeric(txtnichtabrechneteKunden.Text) AndAlso CInt(txtnichtabrechneteKunden.Text) > 0 Then
|
|
btnDel_.Visible = True
|
|
Else
|
|
btnDel_.Visible = False
|
|
End If
|
|
|
|
Else
|
|
|
|
End If
|
|
|
|
MyListBox1.fillWithSQL("SELECT [Firma_ID],[Firma_Bez] FROM [VERAG].[dbo].[tblFirma] where Firma_ID NOT IN (20) order by [Firma_ID] ", False, "FMZOLL")
|
|
|
|
For i = 0 To MyListBox1.Items.Count - 1
|
|
If isMDM Then
|
|
If DirectCast(MyListBox1.Items(i), VERAG_PROG_ALLGEMEIN.MyListItem).Value = 1 Or DirectCast(MyListBox1.Items(i), VERAG_PROG_ALLGEMEIN.MyListItem).Value = 15 Then MyListBox1.SetSelected(i, True)
|
|
Else
|
|
If DirectCast(MyListBox1.Items(i), VERAG_PROG_ALLGEMEIN.MyListItem).Value <> 7 Then MyListBox1.SetSelected(i, True)
|
|
End If
|
|
Next
|
|
End Select
|
|
|
|
btnfortlRENr.Enabled = VERAG_PROG_ALLGEMEIN.cAllgemein.SQLGUIDE01_USED
|
|
|
|
txtOPUmsatzVon.Text = "01.01." & (Now.Year - 1)
|
|
txtOPUmsatzBis.Text = "31.12." & (Now.Year - 1)
|
|
txtBagatellgrenzeBei._value = 800
|
|
End Sub
|
|
|
|
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
|
|
'MyComboBox1.Enabled = sender.checked
|
|
End Sub
|
|
|
|
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
|
|
Try
|
|
|
|
Me.Cursor = Cursors.WaitCursor
|
|
If Not checkOPValid() Then Me.Cursor = Cursors.Default : Exit Sub
|
|
|
|
Dim dt = SQL.loadDgvBySql(getOPSql(), "FMZOLL")
|
|
dt.Columns.Add("VersicherungsBetrag", Type.GetType("System.Double"))
|
|
For Each r In dt.Rows
|
|
r("VersicherungsBetrag") = getVersBetrag(r("Risiko"), r("Versicherungssumme"), r("GemeldeterBetrag"), r("nichtVersicherbar"))
|
|
Next
|
|
dt.Columns("VersicherungsBetrag").ColumnName = "V-Betrag"
|
|
dt.Columns("Versicherungssumme").ColumnName = "V-Summe"
|
|
dt.Columns("Vorauszahlung").ColumnName = "VZ"
|
|
'dt.Columns("GemeldeterBetrag")
|
|
dt.Columns.Remove("GemeldeterBetrag")
|
|
|
|
If cbxFormatNumbers.Checked Then
|
|
cProgramFunctions.genExcelFromDT_NEW(dt, {"E1:E" & (dt.Rows.Count + 1), "H1:M" & (dt.Rows.Count + 1), "O1:P" & (dt.Rows.Count + 1)})
|
|
Else
|
|
cProgramFunctions.genExcelCSVFromDT(dt)
|
|
End If
|
|
|
|
|
|
'cProgramFunctions.genExcelFromDT_NEW(dt)
|
|
'cProgramFunctions.genExcelFromDT_NEW(dt, , False)
|
|
Me.Cursor = Cursors.Default
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
Me.Cursor = Cursors.Default
|
|
End Try
|
|
End Sub
|
|
|
|
'MyListBox1
|
|
Function getOPSql() As String
|
|
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
|
|
Case "IMEX" : Return getOPSqlIMEX()
|
|
Case Else : Return getOPSqlVERAG()
|
|
End Select
|
|
End Function
|
|
|
|
Function getOPSqlVERAG() As String
|
|
Dim Firmen_ID = If(MyListBox1.SelectedItems.Count > 0, "and Firma_ID IN (" & getValuesFirma() & ") ", "")
|
|
Dim sqlStr = ""
|
|
sqlStr &= "SELECT * FROM ("
|
|
sqlStr &= " SELECT Ordnungsbegriff, AdressenNr as KdNr, Adressen.LandKz, "
|
|
If cbxDeckungsstoppAnzeigen.Checked Then sqlStr &= " (SELECT TOP 1 ISNULL([kde_Versicherung_DeckungsstoppDatum],'') FROM [tblKundenErweitert] where kde_Versicherung_Deckungsstopp=1 and kde_KundenNr=AdressenNr) AS DS, "
|
|
sqlStr &= " (SELECT TOP 1 ISNULL(kde_txtVersicherungNichtVersicherbar,'') FROM [tblKundenErweitert] where kde_KundenNr=AdressenNr) AS nichtVersicherbar, "
|
|
If True Then sqlStr &= " isnull((SELECT TOP 1 [kde_Versicherung_GemeldeterBetrag] FROM [tblKundenErweitert] where kde_KundenNr=AdressenNr),0) AS GemeldeterBetrag, "
|
|
sqlStr &= " (SELECT SUM(Gesamtausstand) FROM dbo.[Offene Posten] WHERE (Kontonummer = AdressenNr " & Firmen_ID & ")) AS LfdSaldo, "
|
|
sqlStr &= " (SELECT MIN(Belegdatum) AS Expr1"
|
|
sqlStr &= " FROM dbo.[Offene Posten]"
|
|
sqlStr &= " WHERE (Kontonummer = AdressenNr " & Firmen_ID & ")) AS Datum, "
|
|
sqlStr &= " /* (SELECT MAX(Belegdatum) AS Expr1"
|
|
sqlStr &= " FROM dbo.[Offene Posten]"
|
|
sqlStr &= " WHERE (Kontonummer = AdressenNr " & Firmen_ID & ")) AS OPDatumMax, */"
|
|
sqlStr &= " CASE WHEN UStV_SummeUmsatzsteuerbetragEUR > UStV_SummeErstattungsbetragEUR THEN UStV_SummeUmsatzsteuerbetragEUR - UStV_SummeErstattungsbetragEUR ELSE 0 END AS UStDiff,"
|
|
sqlStr &= " UStV_Summe3470BetragEUR AS Kto3470, UStV_SummeVZBetragEUR AS Vorauszahlung, UStV_SummeVorschaubetragEUR AS Vorschau, "
|
|
sqlStr &= " isnull((SELECT SUM(Gesamtausstand) FROM dbo.[Offene Posten] WHERE (Kontonummer = AdressenNr " & Firmen_ID & ")),0) - isnull(CASE WHEN UStV_SummeUmsatzsteuerbetragEUR > UStV_SummeErstattungsbetragEUR THEN UStV_SummeUmsatzsteuerbetragEUR - UStV_SummeErstattungsbetragEUR "
|
|
sqlStr &= " ELSE 0 END ,0) - isnull(UStV_Summe3470BetragEUR,0) + isnull(UStV_SummeVZBetragEUR,0) - isnull(UStV_SummeVorschaubetragEUR,0) - isnull(CASE WHEN ISNULL(BankgarantieGültigBis, "
|
|
sqlStr &= " GETDATE()) < GETDATE() THEN 0 ELSE ISNULL(BankgarantieBetrag, 0) END,0) AS Risiko , "
|
|
sqlStr &= IIf(cbxBankgarantieInfo.Checked, "BankgarantieBetrag, BankgarantieGültigBis,", "")
|
|
sqlStr &= " Versicherungssumme "
|
|
|
|
' sqlStr &= " CASE WHEN LfdSaldo>" & GrenzeVersicherung & " THEN CASE WHEN ISNUMERIC(Versicherungssumme )=1 THEN cast(Versicherungssumme as decimal(16,2)) ELSE null END ELSE null END as Versicherungssumme "
|
|
|
|
' If cbxOPUmsatz.Checked Then sqlStr &= " ,(SELECT SUM(SteuerfreierGesamtbetrag + SteuerpflichtigerGesamtbetrag) as UmsatzRg FROM [Rechnungsausgang] WHERE Kunden.KundenNrZentrale=[Rechnungsausgang].KundenNrZentrale AND RechnungsDatum between '01.06.2016' and '01.06.2017') as UmsatzRg "
|
|
If cbxOPUmsatz.Checked Then sqlStr &= " ,(SELECT sum([SteuerpflichtigerBetragLokal]+[SteuerfreierBetragLokal]) as UmsatzRg/*,sum([RechnungsbetragLokal])as BruttoUmsatzRg*/ FROM [tblTrdinInvoice] WHERE Kunden.KundenNrZentrale=[tblTrdinInvoice].KundenNrZentrale AND Rechnungsdatum between '" & CDate(txtOPUmsatzVon._value).ToShortDateString & "' and '" & CDate(txtOPUmsatzBis._value).ToShortDateString & "') as UmsatzRg "
|
|
|
|
sqlStr &= " FROM Adressen INNER JOIN Kunden ON AdressenNr = KundenNr "
|
|
|
|
'ANerkennung Versicherungsfall muss false sein:
|
|
' sqlStr &= " AND isnull((SELECT kde_Versicherung_AnerkennungVersicherungsfall FROM tblKundenErweitert WHERE kde_KundenNr=Adressen.AdressenNr),0)=0 "
|
|
|
|
'sqlStr &= " and LfdSaldo > " & GrenzeVersicherung & " "
|
|
If txtOPKdName.Text <> "" Then sqlStr &= " and Ordnungsbegriff LIKE '" & txtOPKdName.Text.Replace("*", "%") & "'"
|
|
If txtOPKdNrVon.Text <> "" Then sqlStr &= " and AdressenNr >= '" & txtOPKdNrVon.Text & "'"
|
|
If txtOPKdNrBis.Text <> "" Then sqlStr &= " and AdressenNr <= '" & txtOPKdNrBis.Text & "'"
|
|
' If CheckBox1.Checked And MyComboBox1._value <> "" Then sqlStr &= " and Adressen.LandKz = '" & MyComboBox1._value & "'"
|
|
If MyComboBox1._value <> "" Then sqlStr &= " and Adressen.LandKz = '" & MyComboBox1._value & "'"
|
|
|
|
If cbxNurVersicherteLänder.Checked Then
|
|
sqlStr &= " AND (select TOP 1 [Länderverzeichnis für die Außenhandelsstatistik].LandKz from [Länderverzeichnis für die Außenhandelsstatistik] "
|
|
sqlStr &= " LEFT JOIN Währungstabelle ON Währungstabelle.Währungsschlüssel=[Länderverzeichnis für die Außenhandelsstatistik].LandNr"
|
|
sqlStr &= " where Währungstabelle.LandKz = Adressen.LandKz) IN ('DE','AT','BE','BA','BG','FR','HR','MK','MD','ME','NL','RO','CH','SK','SI','RS','XS','TR','HU')"
|
|
End If
|
|
|
|
|
|
|
|
|
|
If cbxKundeBeiRechtsanwaltausblenden.Checked Then sqlStr &= " and Rechtsanwalt= 0 "
|
|
'If cbxKundeBeiRechtsanwaltausblenden.Checked Then sqlStr &= " and Rechtsanwalt= 0 "
|
|
|
|
If cbx2JahreUmsatz.Checked Then sqlStr &= " and (SELECT COUNT(*) FROM [tblKundenumsatz] where KundenNr=AdressenNr AND Firma_ID IN (" & getValuesFirma() & ") AND Jahr in(DATEPART(YEAR, getdate()),DATEPART(YEAR, getdate())-1 ))>0 "
|
|
|
|
|
|
'Kunden mit gesperrten Liestungen ausblenden:
|
|
' - Abfertigungsverbot=1
|
|
' - SDL Leistungen, außer Maut (sdltyp 2) -> alle gesperrt
|
|
If cbxSDLLeistungenSperre.Checked Then
|
|
sqlStr &= " AND NOT ( "
|
|
sqlStr &= " Abfertigungsverbot=1 AND "
|
|
sqlStr &= " (SELECT COUNT(*) FROM [SDL].[dbo].[KundenSDL] AS SDL INNER JOIN [SDL].[dbo].[Speditionsdienstleistungen] ON [Speditionsdienstleistungen].SDLNr=SDL.SDLNr WHERE SDL.Sperre=0 AND SDL.KundenNr=Adressen.AdressenNr AND [Speditionsdienstleistungen].SDLTypNr IN (1,2) )=0 "
|
|
sqlStr &= " ) "
|
|
End If
|
|
|
|
|
|
|
|
|
|
'sqlStr &= " and AdressenNr LIKE '7%'"
|
|
'sqlStr &= " and (select COUNT(*) from Offerten where Offerten.KundenNr=AdressenNr and OffertenNr IN(1,26,27))>0 "
|
|
sqlStr &= ") as T "
|
|
sqlStr &= " WHERE 1=1 "
|
|
|
|
If cbxNichtVersicherbarAusblenden.Checked Then sqlStr &= " AND isnull(nichtVersicherbar,0) = 0 "
|
|
|
|
If txtOPRisikoBetragVon._value <> "" Or txtOPRisikoBetragBis._value <> "" Then
|
|
If txtOPRisikoBetragVon._value <> "" Then sqlStr &= " AND Risiko >= '" & txtOPRisikoBetragVon._value & "'"
|
|
If txtOPRisikoBetragBis._value <> "" Then sqlStr &= " AND Risiko <= '" & txtOPRisikoBetragBis._value & "'"
|
|
End If
|
|
|
|
If CheckBox1.Checked Then
|
|
sqlStr &= " AND EXISTS"
|
|
sqlStr &= " (SELECT AdressenNr"
|
|
sqlStr &= " FROM tblSteuernummern "
|
|
sqlStr &= " WHERE (AdressenNr =T.AdressenNr))"
|
|
End If
|
|
|
|
If cbxHideZeroValues.Checked Then
|
|
'sqlStr &= " AND NOT((Risiko=0 OR Risiko='') AND LfdSaldo =0 AND Vorauszahlung =0 AND Vorschau =0 AND Kto3470 =0 AND UStDiff =0) "
|
|
sqlStr &= " AND NOT((Risiko=0 OR Risiko='') AND (LfdSaldo=0 OR LfdSaldo='') AND (Vorauszahlung=0 OR Vorauszahlung='') AND (Vorschau=0 OR Vorschau='') AND (Kto3470=0 OR Kto3470='') AND (UStDiff=0 OR UStDiff='')) "
|
|
End If
|
|
If cbxOPUmsatz.Checked Then
|
|
If txtOPUmsatzBetragVon._value <> "" Then
|
|
sqlStr &= " AND UmsatzRg >= '" & CDbl(txtOPUmsatzBetragVon._value) & "' "
|
|
End If
|
|
If txtOPUmsatzBetragBis._value <> "" Then
|
|
sqlStr &= " AND UmsatzRg <= '" & CDbl(txtOPUmsatzBetragBis._value) & "' "
|
|
End If
|
|
End If
|
|
|
|
If Not cbxOPUmsatz.Checked And cboSort._value = "UmsatzRg DESC" Then
|
|
sqlStr &= " ORDER BY Ordnungsbegriff"
|
|
Else
|
|
sqlStr &= " ORDER BY " & cboSort._value
|
|
End If
|
|
|
|
Return sqlStr
|
|
End Function
|
|
|
|
|
|
Function getOPSqlIMEX() As String
|
|
|
|
' Dim Firmen_ID = If(MyListBox1.SelectedItems.Count > 0, "and Firma_ID IN (" & getValuesFirma() & ") ", "")
|
|
Dim sqlStr = ""
|
|
sqlStr &= "SELECT * FROM ("
|
|
sqlStr &= " SELECT Ordnungsbegriff, AdressenNr as KdNr, Adressen.LandKz, "
|
|
If cbxDeckungsstoppAnzeigen.Checked Then sqlStr &= " (SELECT TOP 1 ISNULL([kde_Versicherung_DeckungsstoppDatum],'') FROM [tblKundenErweitert] where kde_Versicherung_Deckungsstopp=1 and kde_KundenNr=AdressenNr) AS DS, "
|
|
sqlStr &= " (SELECT TOP 1 ISNULL(kde_txtVersicherungNichtVersicherbar,'') FROM [tblKundenErweitert] where kde_KundenNr=AdressenNr) AS nichtVersicherbar, "
|
|
If True Then sqlStr &= " isnull((SELECT TOP 1 [kde_Versicherung_GemeldeterBetrag] FROM [tblKundenErweitert] where kde_KundenNr=AdressenNr),0) AS GemeldeterBetrag, "
|
|
sqlStr &= " (SELECT SUM(Saldo) FROM dbo.[Offene_Posten_DVO] WHERE (KundenNr = AdressenNr )) AS LfdSaldo, "
|
|
sqlStr &= " (SELECT MIN(Datum) AS Expr1"
|
|
sqlStr &= " FROM dbo.Offene_Posten_DVO"
|
|
sqlStr &= " WHERE (KundenNr = AdressenNr )) AS Datum, "
|
|
sqlStr &= " /* (SELECT MAX(Datum) AS Expr1"
|
|
sqlStr &= " FROM dbo.Offene_Posten_DVO"
|
|
sqlStr &= " WHERE (KundenNr = AdressenNr )) AS OPDatumMax, */"
|
|
sqlStr &= " CASE WHEN UStV_SummeUmsatzsteuerbetragEUR > UStV_SummeErstattungsbetragEUR THEN UStV_SummeUmsatzsteuerbetragEUR - UStV_SummeErstattungsbetragEUR ELSE 0 END AS UStDiff,"
|
|
sqlStr &= " UStV_Summe3470BetragEUR AS Kto3470, UStV_SummeVZBetragEUR AS Vorauszahlung, UStV_SummeVorschaubetragEUR AS Vorschau, "
|
|
sqlStr &= " isnull((SELECT SUM(Saldo) FROM dbo.Offene_Posten_DVO WHERE (KundenNr = AdressenNr )),0) - isnull(CASE WHEN UStV_SummeUmsatzsteuerbetragEUR > UStV_SummeErstattungsbetragEUR THEN UStV_SummeUmsatzsteuerbetragEUR - UStV_SummeErstattungsbetragEUR "
|
|
sqlStr &= " ELSE 0 END ,0) - isnull(UStV_Summe3470BetragEUR,0) + isnull(UStV_SummeVZBetragEUR,0) - isnull(UStV_SummeVorschaubetragEUR,0) - isnull(CASE WHEN ISNULL(BankgarantieGültigBis, "
|
|
sqlStr &= " GETDATE()) < GETDATE() THEN 0 ELSE ISNULL(BankgarantieBetrag, 0) END,0) AS Risiko , /*BankgarantieBetrag, BankgarantieGültigBis, */"
|
|
sqlStr &= " Versicherungssumme "
|
|
|
|
|
|
|
|
' sqlStr &= " CASE WHEN LfdSaldo>" & GrenzeVersicherung & " THEN CASE WHEN ISNUMERIC(Versicherungssumme )=1 THEN cast(Versicherungssumme as decimal(16,2)) ELSE null END ELSE null END as Versicherungssumme "
|
|
|
|
' If cbxOPUmsatz.Checked Then sqlStr &= " ,(SELECT SUM(SteuerfreierGesamtbetrag + SteuerpflichtigerGesamtbetrag) as UmsatzRg FROM [Rechnungsausgang] WHERE Kunden.KundenNrZentrale=[Rechnungsausgang].KundenNrZentrale AND RechnungsDatum between '01.06.2016' and '01.06.2017') as UmsatzRg "
|
|
If cbxOPUmsatz.Checked Then sqlStr &= " ,(SELECT sum([SteuerpflichtigerBetragLokal]+[SteuerfreierBetragLokal]) as UmsatzRg/*,sum([RechnungsbetragLokal])as BruttoUmsatzRg*/ FROM [tblTrdinInvoice] WHERE Kunden.KundenNrZentrale=[tblTrdinInvoice].KundenNrZentrale AND Rechnungsdatum between '" & CDate(txtOPUmsatzVon._value).ToShortDateString & "' and '" & CDate(txtOPUmsatzBis._value).ToShortDateString & "') as UmsatzRg "
|
|
|
|
sqlStr &= " FROM Adressen INNER JOIN Kunden ON AdressenNr = KundenNr "
|
|
'IMEX:
|
|
sqlStr &= " AND isnull(FilialenNr,'')='5501' "
|
|
|
|
'ANerkennung Versicherungsfall muss false sein:
|
|
sqlStr &= " AND isnull((SELECT kde_Versicherung_AnerkennungVersicherungsfall FROM tblKundenErweitert WHERE kde_KundenNr=Adressen.AdressenNr),0)=0 "
|
|
|
|
'sqlStr &= " and LfdSaldo > " & GrenzeVersicherung & " "
|
|
If txtOPKdName.Text <> "" Then sqlStr &= " and Ordnungsbegriff LIKE '" & txtOPKdName.Text.Replace("*", "%") & "'"
|
|
If txtOPKdNrVon.Text <> "" Then sqlStr &= " and AdressenNr >= '" & txtOPKdNrVon.Text & "'"
|
|
If txtOPKdNrBis.Text <> "" Then sqlStr &= " and AdressenNr <= '" & txtOPKdNrBis.Text & "'"
|
|
' If CheckBox1.Checked And MyComboBox1._value <> "" Then sqlStr &= " and Adressen.LandKz = '" & MyComboBox1._value & "'"
|
|
If MyComboBox1._value <> "" Then sqlStr &= " and Adressen.LandKz = '" & MyComboBox1._value & "'"
|
|
|
|
If cbxNurVersicherteLänder.Checked Then
|
|
sqlStr &= " AND (select TOP 1 [Länderverzeichnis für die Außenhandelsstatistik].LandKz from [Länderverzeichnis für die Außenhandelsstatistik] "
|
|
sqlStr &= " LEFT JOIN Währungstabelle ON Währungstabelle.Währungsschlüssel=[Länderverzeichnis für die Außenhandelsstatistik].LandNr"
|
|
sqlStr &= " where Währungstabelle.LandKz = Adressen.LandKz) IN ('DE','AT','BA','BE','BG','FR','HR','MK','MD','ME','NL','RO','CH','SK','SI','RS','XS','TR','HU')"
|
|
End If
|
|
|
|
|
|
If cbxNichtVersicherbarAusblenden.Checked Then sqlStr &= " AND isnull((SELECT kde_txtVersicherungNichtVersicherbar FROM tblKundenErweitert WHERE kde_KundenNr=Adressen.AdressenNr),0)=0 "
|
|
|
|
If cbxKundeBeiRechtsanwaltausblenden.Checked Then sqlStr &= " and Rechtsanwalt= 0 "
|
|
'If cbxKundeBeiRechtsanwaltausblenden.Checked Then sqlStr &= " and Rechtsanwalt= 0 "
|
|
|
|
If cbx2JahreUmsatz.Checked Then sqlStr &= " and (SELECT COUNT(*) FROM [tblKundenumsatz] where KundenNr=AdressenNr AND Jahr in(DATEPART(YEAR, getdate()),DATEPART(YEAR, getdate())-1 ))>0 "
|
|
|
|
|
|
'Kunden mit gesperrten Liestungen ausblenden:
|
|
' - Abfertigungsverbot=1
|
|
' - SDL Leistungen, außer Maut (sdltyp 2) -> alle gesperrt
|
|
If cbxSDLLeistungenSperre.Checked Then
|
|
sqlStr &= " AND NOT ( "
|
|
sqlStr &= " Abfertigungsverbot=1 AND "
|
|
sqlStr &= " (SELECT COUNT(*) FROM [SDL].[dbo].[KundenSDL] AS SDL INNER JOIN [SDL].[dbo].[Speditionsdienstleistungen] ON [Speditionsdienstleistungen].SDLNr=SDL.SDLNr WHERE SDL.Sperre=0 AND SDL.KundenNr=Adressen.AdressenNr AND [Speditionsdienstleistungen].SDLTypNr IN (1,2) )=0 "
|
|
sqlStr &= " ) "
|
|
End If
|
|
|
|
|
|
|
|
|
|
'sqlStr &= " and AdressenNr LIKE '7%'"
|
|
'sqlStr &= " and (select COUNT(*) from Offerten where Offerten.KundenNr=AdressenNr and OffertenNr IN(1,26,27))>0 "
|
|
sqlStr &= ") as T "
|
|
sqlStr &= " WHERE 1=1 "
|
|
|
|
If txtOPRisikoBetragVon._value <> "" Or txtOPRisikoBetragBis._value <> "" Then
|
|
If txtOPRisikoBetragVon._value <> "" Then sqlStr &= " AND Risiko >= '" & txtOPRisikoBetragVon._value & "'"
|
|
If txtOPRisikoBetragBis._value <> "" Then sqlStr &= " AND Risiko <= '" & txtOPRisikoBetragBis._value & "'"
|
|
End If
|
|
|
|
If CheckBox1.Checked Then
|
|
sqlStr &= " AND EXISTS"
|
|
sqlStr &= " (SELECT AdressenNr"
|
|
sqlStr &= " FROM tblSteuernummern "
|
|
sqlStr &= " WHERE (AdressenNr =T.AdressenNr))"
|
|
End If
|
|
|
|
If cbxHideZeroValues.Checked Then
|
|
|
|
sqlStr &= " AND NOT((Risiko=0) AND (LfdSaldo=0) AND (Vorauszahlung=0) AND (Vorschau=0) AND (Kto3470=0) AND (UStDiff=0)) "
|
|
|
|
End If
|
|
If cbxOPUmsatz.Checked Then
|
|
If txtOPUmsatzBetragVon._value <> "" Then
|
|
sqlStr &= " AND UmsatzRg >= '" & CDbl(txtOPUmsatzBetragVon._value) & "' "
|
|
End If
|
|
If txtOPUmsatzBetragBis._value <> "" Then
|
|
sqlStr &= " AND UmsatzRg <= '" & CDbl(txtOPUmsatzBetragBis._value) & "' "
|
|
End If
|
|
End If
|
|
|
|
If Not cbxOPUmsatz.Checked And cboSort._value = "UmsatzRg DESC" Then
|
|
sqlStr &= " ORDER BY Ordnungsbegriff"
|
|
Else
|
|
sqlStr &= " ORDER BY " & cboSort._value
|
|
End If
|
|
|
|
Return sqlStr
|
|
End Function
|
|
|
|
Function getValuesFirma() As String
|
|
Dim s As String = ""
|
|
For Each i In MyListBox1.SelectedItems
|
|
s += DirectCast(i, VERAG_PROG_ALLGEMEIN.MyListItem).Value & ", "
|
|
Next
|
|
If s.EndsWith(", ") Then
|
|
s = s.Substring(0, s.Length - 2)
|
|
End If
|
|
Return s
|
|
End Function
|
|
|
|
Function checkOPValid() As Boolean
|
|
If txtOPRisikoBetragVon._value <> "" AndAlso Not IsNumeric(txtOPRisikoBetragVon._value) Then MsgBox("Risikobetrag-Von nicht korrekt!") : Return False
|
|
If txtOPRisikoBetragBis._value <> "" AndAlso Not IsNumeric(txtOPRisikoBetragBis._value) Then MsgBox("Risikobetrag-Bis nicht korrekt!") : Return False
|
|
If txtOPKdNrVon.Text <> "" AndAlso Not IsNumeric(txtOPKdNrVon.Text) Then MsgBox("KdNr-Von nicht korrekt!") : Return False
|
|
If txtOPKdNrBis.Text <> "" AndAlso Not IsNumeric(txtOPKdNrBis.Text) Then MsgBox("KdNr-Bis nicht korrekt!") : Return False
|
|
If cbxOPUmsatz.Checked Then
|
|
Try : DateTime.ParseExact(txtOPUmsatzVon._value, "dd.MM.yyyy", culture)
|
|
Catch ex As Exception : MsgBox("Umsatz-Von nicht korrekt!") : Return False : End Try
|
|
Try : DateTime.ParseExact(txtOPUmsatzBis._value, "dd.MM.yyyy", culture)
|
|
Catch ex As Exception : MsgBox("Umsatz-Bis nicht korrekt!") : Return False : End Try
|
|
End If
|
|
If cbxBagatellgrenze.Checked Then
|
|
If txtBagatellgrenzeBei._value <> "" AndAlso Not IsNumeric(txtBagatellgrenzeBei._value) Then MsgBox("txtBagatellgrenze nicht korrekt!") : Return False
|
|
End If
|
|
' If txtOPRisikoBetrag.Text <> "" AndAlso Not IsNumeric(txtOPRisikoBetrag.Text) Then MsgBox("Risikobetrag nicht korrekt!") : Return False
|
|
Return True
|
|
End Function
|
|
|
|
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
|
|
Me.Cursor = Cursors.WaitCursor
|
|
If Not checkOPValid() Then Me.Cursor = Cursors.Default : Exit Sub
|
|
Try
|
|
|
|
Dim dt As DataTable = SQL.loadDgvBySql_Param(getOPSql, "FMZOLL")
|
|
'DataGridView.DataSource = dt
|
|
|
|
|
|
Dim print As New frmPrintLayout
|
|
print.Text = "Speditionsbericht"
|
|
Dim rpt As New rptOP_Risikobericht
|
|
rpt.DataSource = dt
|
|
|
|
If rpt.DataSource.rows.count = 0 Then
|
|
rpt.Dispose() : print.Dispose()
|
|
MsgBox("Keine Daten vorhanden!")
|
|
Exit Sub
|
|
End If
|
|
If cbxOPUmsatz.Checked Then
|
|
rpt.lblUmsatzText.Visible = True
|
|
rpt.lblUmsatzText.Text = "Umsatz (" & txtOPUmsatzVon.Text & " - " & txtOPUmsatzBis.Text & ")"
|
|
Else
|
|
rpt.lblUmsatzText.Visible = False
|
|
End If
|
|
|
|
Dim sum = 0
|
|
rpt.lblSachbearbeiter.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
|
|
|
|
rpt.lblDat.Text = Now.ToLongDateString
|
|
' Dim sumAnz As Double = 0
|
|
' Dim sumBar As Double = 0
|
|
Dim dummycount As Integer = 0
|
|
AddHandler rpt.Detail.Format, Sub()
|
|
rpt.lblKdNr.Text = If(rpt.Fields.Item("KdNr").Value IsNot DBNull.Value, rpt.Fields.Item("KdNr").Value, "")
|
|
rpt.lblKunde.Text = If(rpt.Fields.Item("Ordnungsbegriff").Value IsNot DBNull.Value, rpt.Fields.Item("Ordnungsbegriff").Value, "")
|
|
rpt.lblAV.Text = If(rpt.Fields.Contains("Abfertigungsverbot") AndAlso rpt.Fields.Item("Abfertigungsverbot").Value IsNot Nothing, "Ja", "")
|
|
rpt.lblLand.Text = If(rpt.Fields.Item("LandKz").Value IsNot DBNull.Value, rpt.Fields.Item("LandKz").Value, "")
|
|
|
|
rpt.lblBankgarantie.Text = If(rpt.Fields.Contains("BankgarantieBetrag") AndAlso rpt.Fields.Item("BankgarantieBetrag").Value IsNot DBNull.Value, CDbl(rpt.Fields.Item("BankgarantieBetrag").Value).ToString("C"), "")
|
|
rpt.lblOPSaldo.Text = If(rpt.Fields.Item("LfdSaldo").Value IsNot DBNull.Value, CDbl(rpt.Fields.Item("LfdSaldo").Value).ToString("C"), "")
|
|
rpt.lblUStDiff.Text = If(rpt.Fields.Item("UStDiff").Value IsNot DBNull.Value, CDbl(rpt.Fields.Item("UStDiff").Value).ToString("C"), "")
|
|
rpt.lblKto3470.Text = If(rpt.Fields.Item("Kto3470").Value IsNot DBNull.Value, CDbl(rpt.Fields.Item("Kto3470").Value).ToString("C"), "")
|
|
rpt.lblVorauszahlung.Text = If(rpt.Fields.Item("Vorauszahlung").Value IsNot DBNull.Value, CDbl(rpt.Fields.Item("Vorauszahlung").Value).ToString("C"), "")
|
|
rpt.lblVorschau.Text = If(rpt.Fields.Item("Vorschau").Value IsNot DBNull.Value, CDbl(rpt.Fields.Item("Vorschau").Value).ToString("C"), "")
|
|
|
|
If cbxOPUmsatz.Checked Then
|
|
rpt.lblUmsatz.Text = If(rpt.Fields.Item("UmsatzRg").Value IsNot DBNull.Value, CDbl(rpt.Fields.Item("UmsatzRg").Value).ToString("C"), "")
|
|
rpt.lblUmsatz.Visible = True
|
|
End If
|
|
|
|
Dim risiko As Double = 0
|
|
If (rpt.Fields.Item("Risiko").Value IsNot DBNull.Value) Then
|
|
risiko = CDbl(rpt.Fields.Item("Risiko").Value)
|
|
rpt.lblRisiko.Text = risiko.ToString("C")
|
|
If risiko > 0 Then
|
|
rpt.lblRisiko.ForeColor = Color.Red
|
|
Else
|
|
rpt.lblRisiko.ForeColor = Color.Black
|
|
End If
|
|
|
|
Else
|
|
rpt.lblRisiko.Text = ""
|
|
End If
|
|
|
|
|
|
rpt.lblVersicherungssumme.Text = If(rpt.Fields.Item("Versicherungssumme").Value IsNot DBNull.Value, CDbl(rpt.Fields.Item("Versicherungssumme").Value).ToString("C"), "")
|
|
|
|
|
|
|
|
rpt.lblVersBetrag.Text = getVersBetrag(risiko, rpt.Fields.Item("Versicherungssumme").Value, rpt.Fields.Item("GemeldeterBetrag").Value, IIf(rpt.Fields.Item("nichtVersicherbar").Value IsNot DBNull.Value, rpt.Fields.Item("nichtVersicherbar").Value, False)).ToString("C")
|
|
|
|
|
|
|
|
' rpt.lblVersicherungssumme.Text = If(rpt.Fields.Item("Versicherungssumme").Value IsNot DBNull.Value, CDbl(rpt.Fields.Item("Versicherungssumme").Value).ToString("C"), "")
|
|
|
|
' rpt.lblVorschau.Text = If(rpt.Fields.Item("Vorschau").Value IsNot DBNull.Value, CDbl(rpt.Fields.Item("Vorschau").Value).ToString("C"), "")
|
|
|
|
rpt.lblBankgarantieGueltigBis.Text = If(rpt.Fields.Contains("BankgarantieBetrag") AndAlso rpt.Fields.Item("BankgarantieGültigBis").Value IsNot DBNull.Value, CDate(rpt.Fields.Item("BankgarantieGültigBis").Value).ToShortDateString, "")
|
|
rpt.lblOPDat.Text = If(rpt.Fields.Contains("OPDatumMin") AndAlso rpt.Fields.Item("OPDatumMin").Value IsNot DBNull.Value, CDate(rpt.Fields.Item("OPDatumMin").Value).ToShortDateString, "")
|
|
'Abwechselnd grauen und weißen Hintergrund
|
|
dummycount += 1
|
|
If (dummycount Mod 2) = 0 Then
|
|
rpt.Detail.BackColor = Color.FromArgb(240, 240, 240)
|
|
Else
|
|
rpt.Detail.BackColor = Drawing.Color.White
|
|
End If
|
|
End Sub
|
|
|
|
print.Viewer.LoadDocument(rpt)
|
|
print.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
|
|
print.Show()
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
Me.Cursor = Cursors.Default
|
|
End Sub
|
|
|
|
Function getVersBetrag(risiko, Versicherungssumme, GemeldeterBetrag, versicherungGekündigt) As Double
|
|
If risiko Is DBNull.Value Then Return 0
|
|
|
|
If Not versicherungGekündigt Is DBNull.Value AndAlso versicherungGekündigt Then Return 0
|
|
|
|
Dim versBetrag As Double = 0
|
|
If risiko <= 0 Then
|
|
versBetrag = 0
|
|
ElseIf cbxBagatellgrenze.Checked And risiko <= txtBagatellgrenzeBei._value Then
|
|
versBetrag = 0 ' kleiner Bagatellgrenze
|
|
ElseIf risiko <= GrenzeVersicherung Then
|
|
If Versicherungssumme IsNot DBNull.Value Then
|
|
If risiko > CDbl(Versicherungssumme) Then
|
|
versBetrag = Versicherungssumme
|
|
Else
|
|
versBetrag = risiko
|
|
End If
|
|
Else
|
|
versBetrag = risiko
|
|
End If
|
|
Else
|
|
If Versicherungssumme IsNot DBNull.Value Then
|
|
If risiko > CDbl(Versicherungssumme) Then
|
|
versBetrag = Versicherungssumme
|
|
Else
|
|
versBetrag = risiko
|
|
End If
|
|
Else
|
|
versBetrag = GrenzeVersicherung
|
|
End If
|
|
End If
|
|
|
|
Return If(GemeldeterBetrag > 0, GemeldeterBetrag, versBetrag)
|
|
End Function
|
|
|
|
Private Sub cbxOPUmsatz_CheckedChanged(sender As Object, e As EventArgs) Handles cbxOPUmsatz.CheckedChanged
|
|
txtOPUmsatzVon.Enabled = sender.checked
|
|
txtOPUmsatzBis.Enabled = sender.checked
|
|
txtOPUmsatzBetragVon.Enabled = sender.checked
|
|
txtOPUmsatzBetragBis.Enabled = sender.checked
|
|
End Sub
|
|
|
|
Private Sub cbxBagatellgrenze_CheckedChanged(sender As Object, e As EventArgs) Handles cbxBagatellgrenze.CheckedChanged
|
|
txtBagatellgrenzeBei.Enabled = sender.checked
|
|
End Sub
|
|
|
|
|
|
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
|
|
Dim sqlStr = " SELECT TOP (1000) [KundenNr] as KdNr,Ordnungsbegriff as Kunde"
|
|
sqlStr &= " ,(Versicherungssumme ) as [Vers.summe]"
|
|
' sqlStr &= " ,isnull(cast(Versicherungssumme as varchar(50)),'') as [Vers.summe]"
|
|
sqlStr &= " ,case when kde_Versicherung_Deckungsstopp=1 then 'WAHR' ELSE '' END as [DS]"
|
|
sqlStr &= " ,isnull(cast(cast(kde_Versicherung_DeckungsstoppDatum as date) as varchar(10)),'') as [DS Datum]"
|
|
sqlStr &= " ,case when kde_txtVersicherungNichtVersicherbar=1 then 'WAHR' ELSE '' END as [nicht versicherbar]"
|
|
sqlStr &= " ,case when kde_Versicherung_Uebergeben=1 then 'WAHR' ELSE '' END as [Vers. übergeben]"
|
|
sqlStr &= " ,isnull(cast(cast(kde_Versicherung_UebergebenAm as date) as varchar(10)),'') as [Vers. übergeben Dat] "
|
|
sqlStr &= " ,case when kde_Versicherung_AnerkennungVersicherungsfall=1 then 'WAHR' ELSE '' END as [Vers.fall]"
|
|
sqlStr &= " ,isnull(cast(kde_txtVersicherungDeckungsquote as varchar(20)),'') as [Quote]"
|
|
sqlStr &= " ,isnull(cast(cast(kde_Versicherung_AnerkennungVersicherungsfallAb as date) as varchar(10)),'') as [Anerk. Vers. Fall] "
|
|
sqlStr &= " FROM [VERAG].[dbo].[Kunden] inner join Adressen on AdressenNr=KundenNr left join tblKundenErweitert on kde_KundenNr =KundenNr"
|
|
sqlStr &= " where (Versicherungssumme is not null or kde_txtVersicherungNichtVersicherbar=1 or kde_Versicherung_Deckungsstopp=1 or kde_Versicherung_Uebergeben=1 or kde_Versicherung_AnerkennungVersicherungsfall=1)"
|
|
sqlStr &= " order by Ordnungsbegriff "
|
|
|
|
Me.Cursor = Cursors.WaitCursor
|
|
If Not checkOPValid() Then Me.Cursor = Cursors.Default : Exit Sub
|
|
|
|
Dim dt = SQL.loadDgvBySql(sqlStr, "FMZOLL")
|
|
' dt.Columns.Add("VersicherungsBetrag", Type.GetType("System.Double"))
|
|
' For Each r In dt.Rows
|
|
'r("VersicherungsBetrag") = getVersBetrag(r("Risiko"), r("Versicherungssumme"))
|
|
' Next
|
|
' dt.Columns("VersicherungsBetrag").ColumnName = "V-Betrag"
|
|
' dt.Columns("Versicherungssumme").ColumnName = "V-Summe"
|
|
' dt.Columns("Vorauszahlung").ColumnName = "VZ"
|
|
|
|
' If cbxFormatNumbers.Checked Then
|
|
cProgramFunctions.genExcelFromDT_NEW(dt, {"C1:C" & (dt.Rows.Count + 1), "C1:C" & (dt.Rows.Count + 1)})
|
|
' Else
|
|
' cProgramFunctions.genExcelCSVFromDT(dt)
|
|
' End If
|
|
|
|
|
|
'cProgramFunctions.genExcelFromDT_NEW(dt)
|
|
'cProgramFunctions.genExcelFromDT_NEW(dt, , False)
|
|
|
|
|
|
Me.Cursor = Cursors.Default
|
|
End Sub
|
|
|
|
|
|
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
|
|
Dim f As New frmVorauskasse
|
|
f.Show(Me)
|
|
End Sub
|
|
|
|
|
|
|
|
Private Sub GroupBox4_Enter(sender As Object, e As EventArgs) Handles GroupBox4.Enter
|
|
|
|
End Sub
|
|
|
|
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
|
|
Dim StartZeit As Date = DateTime.Now
|
|
Dim StopZeit As Date = DateTime.Now
|
|
Label31.Visible = False
|
|
Dim cnt = 0
|
|
'dim listAVISO = New List(Of cAviso)
|
|
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
|
|
Dim kdnr_tmp = ""
|
|
Try
|
|
|
|
Dim fd As New OpenFileDialog
|
|
fd.Filter = "CSV Files (*.csv)|*.csv"
|
|
If fd.ShowDialog = DialogResult.OK Then
|
|
If fd.FileName.ToUpper.EndsWith(".CSV") Then
|
|
|
|
Dim Lines As String() = My.Computer.FileSystem.ReadAllText(fd.FileName, System.Text.Encoding.Default).Split(vbCr)
|
|
Dim LineCount As Integer = Lines.Length
|
|
|
|
' fd.FileName.EndsWith(".csv")
|
|
Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser(fd.FileName, Encoding.Default)
|
|
MyReader.TextFieldType = FileIO.FieldType.Delimited
|
|
MyReader.SetDelimiters(";")
|
|
Dim currentRow As String()
|
|
|
|
|
|
If VERAG_PROG_ALLGEMEIN.cOffene_Posten_DVO.DELETE_ALL Then
|
|
|
|
|
|
|
|
While Not MyReader.EndOfData
|
|
Try
|
|
' If cnt > 100 Then Exit Sub
|
|
currentRow = MyReader.ReadFields()
|
|
' Dim currentField As String
|
|
Dim kdnr As Integer = 1000000
|
|
|
|
If currentRow.Length > 24 Then
|
|
If IsNumeric(currentRow(0).Trim()) AndAlso currentRow(0) > 99999 Then
|
|
|
|
If CInt(currentRow(0)) <> 200001 Then ' DUBIOSE FORDERUNGEN
|
|
|
|
|
|
Try
|
|
|
|
kdnr += currentRow(0).Substring(1) 'erste Stelle weg --> 2 oder 5
|
|
kdnr_tmp = kdnr
|
|
|
|
Dim OP As New VERAG_PROG_ALLGEMEIN.cOffene_Posten_DVO()
|
|
' VERAG_PROG_ALLGEMEIN.SQL.isleernothing(getTrimedString(currentRow(11), 20))
|
|
'220404
|
|
' Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
OP.Konto = CInt(sql.isleernothing(currentRow(0)))
|
|
OP.KontoBez = sql.isleernothing(currentRow(1))
|
|
OP.KundenNr = kdnr
|
|
OP.Rechnung = sql.isleernothing(currentRow(2))
|
|
OP.Datum = sql.isleernothing(currentRow(3))
|
|
OP.Buchungsbetrag_SOLL = CDbl(sql.isleernothing(currentRow(4)))
|
|
OP.Buchungsbetrag_HABEN = CDbl(sql.isleernothing(currentRow(5)))
|
|
OP.Saldo = CDbl(sql.isleernothing(currentRow(6)))
|
|
OP.Steuercode = sql.isleernothing(currentRow(7))
|
|
OP.Ländercode = sql.isleernothing(currentRow(8))
|
|
OP.Steuerbetrag = CDbl(sql.isleernothing(currentRow(9)))
|
|
OP.Buchungstext = sql.isleernothing(currentRow(10) & currentRow(11))
|
|
OP.Faell_Tage1 = sql.isleernothing(currentRow(12))
|
|
If IsNumeric(currentRow(13)) Then OP.Faell_Prozent1 = CDbl(sql.isleernothing(currentRow(13)))
|
|
OP.Faell_Tage2 = sql.isleernothing(currentRow(14))
|
|
If IsNumeric(currentRow(15)) Then OP.Faell_Prozent2 = CDbl(sql.isleernothing(currentRow(15)))
|
|
OP.Faell_Tage3 = sql.isleernothing(currentRow(16))
|
|
If IsNumeric(currentRow(17)) Then OP.Faell_Prozent3 = CDbl(sql.isleernothing(currentRow(17)))
|
|
OP.Mahnstufe = sql.isleernothing(currentRow(18))
|
|
' OP.Rechnung_Gutschrift = sql.isleernothing(currentRow(21))?
|
|
' OP.Storno = sql.isleernothing(currentRow(XXXX))
|
|
OP.Jahr = sql.isleernothing(currentRow(20))
|
|
OP.Faelligkeit = CDate(sql.isleernothing(currentRow(25)))
|
|
|
|
OP.SAVE()
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
|
|
End If
|
|
End If
|
|
|
|
End If
|
|
|
|
cnt += 1
|
|
|
|
If cnt Mod 10 = 0 Then
|
|
Application.DoEvents()
|
|
|
|
Label30.Text = (cnt) & " / " & LineCount
|
|
End If
|
|
'For Each currentField In currentRow
|
|
'Next
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End While
|
|
Label30.Text = (cnt + 1) & " / " & LineCount
|
|
Label31.Visible = True
|
|
Else
|
|
MsgBox("FEHLER beim Löschen der vorhandenen OP-Liste.")
|
|
End If
|
|
End Using
|
|
End If
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
Finally
|
|
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
|
|
Dim f As New frmBU_Mahnlauf
|
|
f.Show()
|
|
End Sub
|
|
|
|
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
|
|
Dim sqlStr = "SELECT KundenNr,[Adressen].[Name 1] + ' ' + isnull([Adressen].[Name 2],'') Name,[Adressen].[Straße],[Adressen].[LandKz],[Adressen].[PLZ],[Adressen].[Ort],[Adressen].[Telefon],[Adressen].[E-Mail],[Adressen].[UstIdKz],[Adressen].[UstIdNr],[Abfertigungsverbot seit],[Abfertigungsverbot Grund]
|
|
FROM [Adressen] inner join Kunden on AdressenNr=KundenNr
|
|
inner join Filialen on kunden.FilialenNr=Filialen.FilialenNr
|
|
where Filialen.Firma='" & cboAbfVerbFirma._value & "' and Abfertigungsverbot=1 and Auswahl='A' ORDER BY KundenNr "
|
|
|
|
Me.Cursor = Cursors.WaitCursor
|
|
If Not checkOPValid() Then Me.Cursor = Cursors.Default : Exit Sub
|
|
|
|
Dim dt = SQL.loadDgvBySql(sqlStr, "FMZOLL")
|
|
|
|
|
|
cProgramFunctions.genExcelFromDT_NEW(dt)
|
|
|
|
|
|
Me.Cursor = Cursors.Default
|
|
End Sub
|
|
|
|
Private Sub Button9_Click(sender As Object, e As EventArgs)
|
|
|
|
|
|
If txtStichtag.Text <> "" AndAlso Not IsNumeric(txtStichtag.Text) Then MsgBox("Stichtag nicht korrekt!") : Exit Sub
|
|
|
|
Dim SQLStichtag = ""
|
|
If txtStichtag.Text <> "" Then
|
|
Try : DateTime.ParseExact(txtStichtag._value, "dd.MM.yyyy", culture)
|
|
Catch ex As Exception : MsgBox("Stichtag nicht korrekt!") : Exit Sub : End Try
|
|
SQLStichtag = " And (UStVAn_ReDatVon <='" & txtStichtag._value & "' and tblUStVAntrag.UStVAn_ReDatBis <= '" & txtStichtag._value & "')"
|
|
End If
|
|
|
|
Dim sqlStr = "SELECT tblUStVAntrag.UStVAn_KuNr as Kunde, Adressen.Ordnungsbegriff as Bezeichnung, sum(tblUStVAntrag.UStVAn_3470) as Betrag
|
|
FROM tblUStVAntrag
|
|
INNER JOIN Adressen ON tblUStVAntrag.UStVAn_KuNr = Adressen.AdressenNr
|
|
WHERE tblUStVAntrag.UStVAn_3470 Is Not Null" & SQLStichtag & " Group by tblUStVAntrag.UStVAn_KuNr, Adressen.Ordnungsbegriff"
|
|
|
|
|
|
Dim dt = SQL.loadDgvBySql(sqlStr, "FMZOLL")
|
|
|
|
cProgramFunctions.genExcelFromDT_NEW(dt, {"C1:C" & (dt.Rows.Count + 1)})
|
|
|
|
Me.Cursor = Cursors.Default
|
|
End Sub
|
|
|
|
Private Sub Button10_Click(sender As Object, e As EventArgs)
|
|
|
|
If txtStichtag.Text <> "" AndAlso Not IsNumeric(txtStichtag.Text) Then MsgBox("Stichtag nicht korrekt!") : Exit Sub
|
|
|
|
Dim SQLStichtag = ""
|
|
Dim SQLKdNr = ""
|
|
If sender Is Button10 Then
|
|
SQLKdNr = " and [UStVAn_KuNr] Not Between 150000 And 155999"
|
|
Else
|
|
SQLKdNr = " and [UStVAn_KuNr] Between 150000 And 155999"
|
|
End If
|
|
|
|
If txtStichtag.Text <> "" Then
|
|
Try : DateTime.ParseExact(txtStichtag._value, "dd.MM.yyyy", culture)
|
|
Catch ex As Exception : MsgBox("Stichtag nicht korrekt!") : Exit Sub : End Try
|
|
SQLStichtag = " And (UStVAn_ReDatVon <='" & txtStichtag._value & "' and tblUStVAntrag.UStVAn_ReDatBis <= '" & txtStichtag._value & "')"
|
|
End If
|
|
|
|
Dim sqlStr = "SELECT
|
|
tblUStVAntrag.UStVAn_KuNr as Kunde, Adressen.Ordnungsbegriff as Kundenbezeichnung,
|
|
sum(tblUStVAntrag.UStVAn_VZBetrag) as VZges,
|
|
sum(isnull([UStVEr_USteuerbetragEUR],0)) AS Erstattungsbetrag,
|
|
case when (sum([UStVAn_VZBetrag])-sum(isnull([UStVAn_RZBetragVZ],0))-sum(isnull([UStVEr_USteuerbetragEUR],0)))>0
|
|
then sum((([UStVAn_VZBetrag]-isnull([UStVAn_RZBetragVZ],0))-isnull([UStVEr_USteuerbetragEUR],0)))
|
|
else 0 End AS VZBetragAktuell
|
|
FROM tblUStVAntrag
|
|
INNER JOIN [tblUStVErstattung] ON [tblUStVErstattung].[UStVAn_ID] = tblUStVAntrag .[UStVAn_ID]
|
|
INNER JOIN Adressen ON tblUStVAntrag.UStVAn_KuNr = Adressen.AdressenNr
|
|
WHERE tblUStVAntrag.UStVAn_VZBetrag Is Not Null" & SQLStichtag & SQLKdNr & " Group by tblUStVAntrag.UStVAn_KuNr, Adressen.Ordnungsbegriff"
|
|
|
|
|
|
Dim dt = SQL.loadDgvBySql(sqlStr, "FMZOLL")
|
|
|
|
cProgramFunctions.genExcelFromDT_NEW(dt, {"C1:C" & (dt.Rows.Count + 1), "D1:D" & (dt.Rows.Count + 1), "E1:E" & (dt.Rows.Count + 1)})
|
|
|
|
Me.Cursor = Cursors.Default
|
|
|
|
End Sub
|
|
|
|
Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
|
|
Dim f As New SDL.frmLeistundenFIBUKonten(VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ADMIN", "SDL") Or VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("Leistungen_FIBU", "SDL"))
|
|
f.ShowDialog(Me)
|
|
End Sub
|
|
|
|
Private Sub btnZinsbelastung_Click(sender As Object, e As EventArgs) Handles btnZinsbelastung.Click
|
|
|
|
If txtKdNrvon.Text = "" OrElse Not IsNumeric(txtKdNrvon.Text) Then
|
|
txtKdNrvon.Focus()
|
|
Exit Sub
|
|
End If
|
|
|
|
If txtKdNrbis.Text = "" OrElse Not IsNumeric(txtKdNrbis.Text) Then
|
|
txtKdNrbis.Focus()
|
|
Exit Sub
|
|
End If
|
|
|
|
If txtZRvon.Text = "" OrElse Not IsDate(txtZRvon.Text) Then
|
|
txtZRvon.Focus()
|
|
Exit Sub
|
|
End If
|
|
|
|
If txtZRbis.Text = "" OrElse Not IsDate(txtZRbis.Text) Then
|
|
txtZRbis.Focus()
|
|
Exit Sub
|
|
End If
|
|
|
|
|
|
If txtTolInTagen.Text = "" OrElse Not IsNumeric(txtTolInTagen.Text) Then
|
|
txtTolInTagen.Focus()
|
|
Exit Sub
|
|
End If
|
|
|
|
If txtZinssatz.Text = "" OrElse Not IsNumeric(txtZinssatz.Text) Then
|
|
txtZinssatz.Focus()
|
|
Exit Sub
|
|
End If
|
|
|
|
If vbYes = MsgBox("Möchten Sie die Zinsbelastung starten?", vbYesNoCancel) Then
|
|
|
|
'Defaultwerte
|
|
Dim zinssatz As Double = CDbl(txtZinssatz.Text.Replace(".", ","))
|
|
Dim toleranztage As Integer = CInt(txtTolInTagen.Text)
|
|
|
|
|
|
Dim sqlStr_FIBU =
|
|
"declare @KundeVon as Integer = " & txtKdNrvon.Text & "
|
|
declare @KundeBis as Integer = " & txtKdNrbis.Text & "
|
|
declare @ZahlungVon as Date = '" & CDate(txtZRvon.Text).ToString("yyyy-MM-dd") & "'
|
|
declare @ZahlungBis as Date = '" & CDate(txtZRbis.Text).ToString("yyyy-MM-dd") & "'
|
|
declare @MandantNr as Integer = 19
|
|
|
|
|
|
SELECT
|
|
op_debitor.i_personenkonto AS KDNR,
|
|
[Adressen].Ordnungsbegriff as Name,
|
|
op_debitor.c_urbelegid AS BelegNr,
|
|
op_debitor.c_bemerkung AS Buchungstext,
|
|
op_debitor.d_rechnung AS Belegdatum,
|
|
op_debitor.d_netto AS Fällig,
|
|
op_debitor.d_zahlung AS Zahlungsdatum,
|
|
--ISNULL(op_debitor.OWNFIELD_Belegdatum, '01.01.2000') AS origbelegdatum,
|
|
DATEDIFF(DAY, DATEADD(DAY, (isnull(dbo.fibu_zahlziel.si_ntage,0) + 0 ), op_debitor.d_rechnung), op_debitor.d_zahlung) as ÜberschreitungInTagen,
|
|
op_debitor.eur_zahlung AS Zahlungsbetrag,
|
|
isnull(kde_zinssatz," & zinssatz.ToString.Replace(",", ".") & ") AS Zinssatz_Kunde,
|
|
case when DATEDIFF(DAY, DATEADD(DAY, (isnull(dbo.fibu_zahlziel.si_ntage,0) + ISNULL(tblKundenErweitert.kde_abwToleranzTage," & toleranztage & ") ), op_debitor.d_rechnung), op_debitor.d_zahlung) > 0 then
|
|
|
|
Round(op_debitor.eur_bruttobetrag * isnull(kde_zinssatz,9.5) / 100 * DATEDIFF(DAY, DATEADD(DAY, (isnull(dbo.fibu_zahlziel.si_ntage,0) ), op_debitor.d_rechnung), op_debitor.d_zahlung) / 360,2)
|
|
|
|
else 0 end as Zinsbetrag,
|
|
cast(0 as bit) as abgerechnet,
|
|
|
|
op_debitor.eur_bruttobetrag AS Bruttobetrag,
|
|
ISNULL(tblKundenErweitert.kde_abwToleranzTage," & toleranztage & ") as TolInTagen,
|
|
ISNULL(op_debitor.c_zahlziel, '0/0/20') AS ZZ_in_OP,
|
|
ISNULL(fibu_konto.c_zahlziel, '0/0/20') AS ZZ_in_Debitor,
|
|
ISNULL(dbo.fibu_zahlziel.si_ntage,20) as ZZinTage,
|
|
DATEADD(DAY, (isnull(dbo.fibu_zahlziel.si_ntage,0) + ISNULL(tblKundenErweitert.kde_abwToleranzTage," & toleranztage & ")), op_debitor.d_rechnung) as ReZielZahlungsdatum
|
|
|
|
|
|
FROM op_debitor INNER JOIN fibu_konto ON (op_debitor.i_personenkonto = fibu_konto.i_konto)
|
|
inner join " & VERAG_PROG_ALLGEMEIN.cAllgemein.FMZOLL_SERVER & ".[VERAG].[dbo].[Adressen] on [Adressen].AdressenNr = op_debitor.i_personenkonto
|
|
inner join " & VERAG_PROG_ALLGEMEIN.cAllgemein.FMZOLL_SERVER & ".[VERAG].[dbo].[tblKundenErweitert] on kde_KundenNr = op_debitor.i_personenkonto
|
|
left join fibu_zahlziel on dbo.fibu_zahlziel.i_firm_refid = dbo.op_debitor.i_firm_refid and dbo.fibu_zahlziel.c_zahlziel = ISNULL(fibu_konto.c_zahlziel, '0/0/20')
|
|
|
|
WHERE op_debitor.i_firm_refid = @MandantNr and fibu_konto.i_firm_refid = @MandantNr
|
|
|
|
AND (op_debitor.eur_bruttobetrag + op_debitor.eur_zahlung <= 1)
|
|
AND (op_debitor.eur_bruttobetrag + op_debitor.eur_zahlung >= (-1))
|
|
AND op_debitor.i_personenkonto >= @KundeVon AND op_debitor.i_personenkonto <= @KundeBis
|
|
AND op_debitor.d_zahlung >= @ZahlungVon AND op_debitor.d_zahlung <= @ZahlungBis
|
|
AND DATEDIFF(DAY, DATEADD(DAY, (isnull(dbo.fibu_zahlziel.si_ntage,0) + ISNULL(tblKundenErweitert.kde_abwToleranzTage," & toleranztage & ")), op_debitor.d_rechnung), op_debitor.d_zahlung) > 0
|
|
AND LEFT(op_debitor.c_bemerkung, 4) IN (SELECT CAST(FilialenNr AS VARCHAR(4)) FROM " & VERAG_PROG_ALLGEMEIN.cAllgemein.FMZOLL_SERVER & ".[VERAG].[dbo].Filialen WHERE FilialenNr between 1000 and 9999)
|
|
|
|
ORDER BY op_debitor.i_personenkonto, op_debitor.c_urbelegid desc, op_debitor.d_rechnung, ISNULL(op_debitor.OWNFIELD_Belegdatum, '01.01.2000')"
|
|
|
|
|
|
Dim dt = SQL.loadDgvBySql(sqlStr_FIBU, "FIBU")
|
|
|
|
If dt.Rows.Count = 0 Then
|
|
MsgBox("keine Daten")
|
|
Else
|
|
|
|
Dim counter As Integer = 0
|
|
|
|
For Each r As DataRow In dt.Rows
|
|
|
|
If r.Item("Zinsbetrag") > 0 Then
|
|
|
|
Dim zins As New cMDMZinsberechnung(r.Item("KDNR"), r.Item("BelegNr"))
|
|
|
|
If zins.hasEntry AndAlso zins.verrechnet IsNot Nothing Then
|
|
counter += 1
|
|
|
|
dt.Columns("abgerechnet").ReadOnly = False
|
|
r.Item("abgerechnet") = True
|
|
dt.Columns("abgerechnet").ReadOnly = True
|
|
|
|
Else
|
|
|
|
zins.buchungstext = r.Item("Buchungstext").ToString.Replace("'", "")
|
|
zins.kundeZahlungsziel = r.Item("ZZ_in_Debitor")
|
|
zins.zinssatz = r.Item("Zinssatz_Kunde")
|
|
zins.belegZahlungsziel = r.Item("ZZinTage")
|
|
zins.ueberschreitungInTagen = r.Item("ÜberschreitungInTagen")
|
|
zins.zinsbetrag = CDbl(r.Item("Zinsbetrag"))
|
|
zins.timestamp = Now()
|
|
zins.belegDatum = r.Item("Belegdatum")
|
|
zins.zahlungsBetrag = r.Item("Zahlungsbetrag")
|
|
zins.zahlungDatum = r.Item("Zahlungsdatum")
|
|
zins.faelligkeitsDatum = CDate(r.Item("Belegdatum")).AddDays(CInt(r.Item("ZZinTage")))
|
|
zins.zahlungsperiode_start = CDate(txtZRvon.Text).ToShortDateString
|
|
zins.zahlungsperiode_ende = CDate(txtZRbis.Text).ToShortDateString
|
|
|
|
zins.SAVE()
|
|
|
|
End If
|
|
End If
|
|
|
|
|
|
Next
|
|
|
|
If counter > 0 Then
|
|
MsgBox("In der Zinsberechnung befinden sich " & counter & " Positionen, die bereits abgerechnet wurden!" & vbNewLine & "Diese werden übersprungen bzw. nicht nochmals verrechnet!")
|
|
End If
|
|
|
|
Dim dtTemp As New DataTable
|
|
|
|
dtTemp = dt.Select("Zinsbetrag > 0").CopyToDataTable
|
|
|
|
If dtTemp.Columns.Contains("Bruttobetrag") Then dtTemp.Columns.Remove("Bruttobetrag")
|
|
If dtTemp.Columns.Contains("ZZ_in_OP") Then dtTemp.Columns.Remove("ZZ_in_OP")
|
|
If dtTemp.Columns.Contains("ZZ_in_Debitor") Then dtTemp.Columns.Remove("ZZ_in_Debitor")
|
|
If dtTemp.Columns.Contains("ZZinTage") Then dtTemp.Columns.Remove("ZZinTage")
|
|
If dtTemp.Columns.Contains("ReZielZahlungsdatum") Then dtTemp.Columns.Remove("ReZielZahlungsdatum")
|
|
|
|
Dim dtTemp2 As New DataTable
|
|
dtTemp2.Columns.Add("KDNR", GetType(Int32))
|
|
dtTemp2.Columns.Add("Name", GetType(String))
|
|
dtTemp2.Columns.Add("Zinsbetrag", GetType(Decimal))
|
|
|
|
Dim query = From row In dtTemp.AsEnumerable()
|
|
Group row By key = row.Field(Of Int32)("KDNR") Into grp = Group
|
|
Select New With {
|
|
.GroupValue = key,
|
|
.KDName = grp.First().Field(Of String)("Name"),
|
|
.SumValue = grp.Sum(Function(r) Convert.ToDecimal(r("Zinsbetrag")))
|
|
}
|
|
|
|
' Fill the new DataTable
|
|
For Each item In query
|
|
dtTemp2.Rows.Add(item.GroupValue, item.KDName, item.SumValue)
|
|
Next
|
|
|
|
|
|
If dtTemp.Rows.Count > 0 AndAlso dtTemp2.Rows.Count > 0 Then
|
|
cProgramFunctions.genExcelFromMultibleDT_NEW(New List(Of DataTable) From {dtTemp, dtTemp2}, {"H1:H" & (dt.Rows.Count + 1), "J1:J" & (dt.Rows.Count + 1)})
|
|
txtnichtabrechneteKunden.Text = SQL.getValueTxtBySql("SELECT count(distinct(kundenNr)) FROM [VERAG].[dbo].[tblMDM_Zinsberechnung] where verrechnet is null", "FMZOLL",,, "0")
|
|
|
|
If IsNumeric(txtnichtabrechneteKunden.Text) AndAlso CInt(txtnichtabrechneteKunden.Text) > 0 Then
|
|
btnDel_.Visible = True
|
|
Else
|
|
btnDel_.Visible = False
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
End If
|
|
End Sub
|
|
|
|
Function gen_SPEDBUCH_ByKdNr(KdNr As String, ByRef SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, Optional abrechnugsdatum As Date = Nothing, Optional Vermerk As String = "")
|
|
Try
|
|
If KdNr = "" Then Return False
|
|
|
|
Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(KdNr)
|
|
SPEDBUCH = New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch
|
|
|
|
Dim OffertenNr As Integer
|
|
Dim Abfertigungsart As Integer
|
|
|
|
'todo setzen!!
|
|
OffertenNr = 95 : Abfertigungsart = 10 : SPEDBUCH.FilialenNr = 8001
|
|
|
|
|
|
Dim GJ = Now.Year
|
|
If IsDate(abrechnugsdatum) AndAlso abrechnugsdatum > Now.AddYears(-5) Then GJ = cRKSV.getGJ(abrechnugsdatum, 19)
|
|
|
|
SPEDBUCH.AbfertigungsNr = VERAG_PROG_ALLGEMEIN.cAllgemein.getMaxPosNrIncrement(SPEDBUCH.FilialenNr, GJ)
|
|
SPEDBUCH.NewUNTER_NR()
|
|
|
|
SPEDBUCH.Vermittler = AD.Ordnungsbegriff
|
|
SPEDBUCH.VermittlerKundenNr = KdNr
|
|
SPEDBUCH.VermittlerOffertenNr = OffertenNr
|
|
SPEDBUCH.Abfertigungsdatum = abrechnugsdatum.ToShortDateString
|
|
|
|
SPEDBUCH.Abfertigungsart = Abfertigungsart
|
|
SPEDBUCH.Bar = 0
|
|
SPEDBUCH.Fakturiert = 1
|
|
SPEDBUCH.AnzahlSonstiges = 1
|
|
SPEDBUCH.Abfertigungsanzahl = 1
|
|
|
|
SPEDBUCH.AvisUhrzeit = Nothing
|
|
SPEDBUCH.Umrechnungskurs = Nothing
|
|
SPEDBUCH.veoerz_basbtg = Nothing
|
|
SPEDBUCH.Sicherheitsbetrag = Nothing
|
|
|
|
SPEDBUCH.Vermerk = Vermerk
|
|
|
|
SPEDBUCH.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
|
|
|
|
Return SPEDBUCH.SAVE
|
|
|
|
Catch ex As System.Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
Return False
|
|
|
|
End Function
|
|
|
|
Function gen_RECHNUNG_BySPEDBUCH(KdNr As String, SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, ByRef RK_ID As Integer, ByRef Fusstext As String, ZahlungszielAusDebitor As Integer)
|
|
Try
|
|
|
|
If KdNr = "" Then Return False
|
|
|
|
Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(SPEDBUCH.VermittlerKundenNr)
|
|
Dim KD As New VERAG_PROG_ALLGEMEIN.cKunde(SPEDBUCH.VermittlerKundenNr)
|
|
Dim RG As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang
|
|
|
|
Dim OffertenNr As Integer
|
|
Dim Abfertigungsart As Integer
|
|
|
|
'TODO. Setzen!
|
|
OffertenNr = 95 : Abfertigungsart = 10 : RG.Anlage_1 = ""
|
|
|
|
RG.Firma_ID = 19
|
|
|
|
RG.FilialenNr = SPEDBUCH.FilialenNr
|
|
RG.AbfertigungsNr = SPEDBUCH.AbfertigungsNr
|
|
RG.SpeditionsbuchUnterNr = SPEDBUCH.UnterNr
|
|
RG.UnterNr = RG.getMaxRGUnterNr()
|
|
|
|
RG.Buchungsjahr = cRKSV.getGJ(SPEDBUCH.Abfertigungsdatum, RG.Firma_ID) 'If(Now.Month = 1, Now.Year - 1, Now.Year)
|
|
RG.FilialenNr = SPEDBUCH.FilialenNr
|
|
RG.Abfertigungsdatum = SPEDBUCH.Abfertigungsdatum
|
|
RG.Sammelrechnung = 0
|
|
RG.BelegartenKz = "AR"
|
|
RG.BelegartenNr = 70
|
|
RG.BelegartenBez = "Rechnung"
|
|
RG.Vorzeichen = "+"
|
|
|
|
RG.VermittlerKundenNr = AD.AdressenNr
|
|
RG.VermittlerLandKz = AD.LandKz
|
|
RG.VermittlerName_1 = AD.Name_1
|
|
RG.VermittlerName_2 = AD.Name_2
|
|
RG.VermittlerOffertenNr = OffertenNr
|
|
RG.VermittlerOrt = (If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, ""))
|
|
RG.VermittlerStraße = AD.Straße
|
|
RG.Rechnung_an = 3
|
|
RG.OffertenNr = OffertenNr
|
|
|
|
RG.KundenNrZentrale = KD.KundenNrZentrale
|
|
RG.RechnungsKundenNr = AD.AdressenNr
|
|
RG.RechnungsLandKz = AD.LandKz
|
|
RG.RechnungsName_1 = AD.Name_1
|
|
RG.RechnungsName_2 = AD.Name_2
|
|
RG.RechnungsOrt = (If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, ""))
|
|
RG.RechnungsStraße = AD.Straße
|
|
|
|
RG.RechnungsUstIdKz = AD.UstIdKz
|
|
RG.RechnungsUstIdNr = AD.UstIdNr
|
|
RG.RechnungsUstIdGeprüft = AD.UstIdGeprüft
|
|
|
|
RG.Lastschrift = KD.Lastschrift
|
|
RG.Kunden_SVS = KD.SVS
|
|
RG.Steuerschlüssel = KD.Steuerschlüssel
|
|
RG.Vorkasse = KD.Vorkasse
|
|
RG.Vorlageprovision_Proz = KD.Vorlageprovision
|
|
RG.Kreditaufwendungen_Proz = KD.Kreditaufwendungen
|
|
RG.RechnungSprache = "DE"
|
|
|
|
RG.Anlage_2 = ""
|
|
RG.Anlage_3 = ""
|
|
RG.Anlage_4 = ""
|
|
RG.Anlage_5 = ""
|
|
RG.Anlage_6 = ""
|
|
|
|
RG.Packstücke_und_Warenbezeichnung = "NACHBERECHNUNG VON VERZUGSZINSEN" & vbNewLine & SPEDBUCH.Vermerk
|
|
'RG.EMailRechnungstext = Fusstext
|
|
|
|
'IN DIESEM FALL IMMER AUS DEBITOR NEHMEN!!!
|
|
|
|
'If Not IsDBNull(KD.Zahlungsziel) AndAlso IsNumeric(KD.Zahlungsziel) Then
|
|
' Dim Zahlungsziel As Integer = CInt(KD.Zahlungsziel)
|
|
' RG.Nettozahlungsziel = IIf(Zahlungsziel > 14, 14, KD.Zahlungsziel)
|
|
'End If
|
|
|
|
RG.Nettozahlungsziel = ZahlungszielAusDebitor
|
|
|
|
RG.SteuerpflichtigerGesamtbetrag = 0
|
|
RG.SteuerfreierGesamtbetrag = 0
|
|
RG.Status = 0
|
|
|
|
RG.[Vorkosten] = 0
|
|
RG.[Erlös] = 0
|
|
'RG.[Buchungsjahr] = 0
|
|
RG.[Währungscode] = "EUR"
|
|
RG.ReErfZeitstempel = Now
|
|
|
|
RG.Vermerk = SPEDBUCH.Vermerk
|
|
|
|
RG.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
|
|
Dim sqlstr As String = ""
|
|
Dim useNettogesamtbetrag As Boolean = False
|
|
|
|
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
|
|
RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
|
|
|
|
Dim dt As New DataTable
|
|
cMDMZinsberechnung.GET_NICHTABGERECHNETE_ZB(dt, KdNr)
|
|
|
|
For Each r In dt.Rows
|
|
|
|
'If r(0) AndAlso Not IsDBNull(r("zahlungsperiode_start")) AndAlso Not IsDBNull(r("zahlungsperiode_ende")) AndAlso IsDate(r("zahlungsperiode_start")) AndAlso IsDate(r("zahlungsperiode_ende")) Then
|
|
' zahlungsperiodeStart = CDate(r("zahlungsperiode_start"))
|
|
' zahlungsperiodeEnde = CDate(r("zahlungsperiode_ende"))
|
|
'End If
|
|
|
|
'If CDate(zahlungsperiodeStart) < CDate(r("zahlungsperiode_start")) Then zahlungsperiodeStart = CDate(r("zahlungsperiode_start"))
|
|
'If CDate(zahlungsperiodeEnde) > CDate(r("zahlungsperiode_ende")) Then zahlungsperiodeEnde = CDate(r("zahlungsperiode_ende"))
|
|
|
|
Dim NettoBetrag As Double = r("zinsbetrag")
|
|
Dim BruttoBetrag As Double = r("zinsbetrag")
|
|
Dim id As Integer = r("id")
|
|
Dim UstBetrag As Double = BruttoBetrag = NettoBetrag
|
|
Dim LeistungsNr As Integer = 950
|
|
Dim LeistungsBezAdd As String = ""
|
|
If r("buchungstext") <> "" Then
|
|
LeistungsBezAdd &= id.ToString("D5") & "-" & r("buchungstext")
|
|
If LeistungsBezAdd.Length > 30 Then
|
|
LeistungsBezAdd = LeistungsBezAdd.ToString.Substring(0, 30)
|
|
End If
|
|
End If
|
|
|
|
allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag, UstBetrag, LeistungsBezAdd, id)
|
|
|
|
Next
|
|
|
|
Dim dtSt As DataTable = SQL.loadDgvBySql("SELECT TOP 1 isnull([Steuersatz %],0),isnull([Steuerbezeichnung],'') FROM [Steuertabelle] WHERE [Steuerschlüssel]='" & RG.Steuerschlüssel & "'", "FMZOLL")
|
|
If dtSt IsNot Nothing AndAlso dtSt.Rows.Count > 0 Then
|
|
RG.Steuersatz_Proz = dtSt.Rows(0)(0)
|
|
End If
|
|
|
|
cFakturierung.setGesamtBetraege(RG,, useNettogesamtbetrag)
|
|
|
|
RG.Text = (cFakturierung.przRechnungstextTXT(RG, SPEDBUCH) & vbNewLine & cFakturierung.przRechnungstextZZ(RG)).Trim
|
|
|
|
If RG.SAVE Then
|
|
RK_ID = RG.RK_ID
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
|
|
Catch ex As System.Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
Return ""
|
|
|
|
End Function
|
|
|
|
|
|
|
|
Function allPos(ByRef RG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, OFFERTE As VERAG_PROG_ALLGEMEIN.cOfferte, LeistungsNr As Integer, NettoBetrag As Double, BruttoBetrag As Double, Optional UstBetrag As Double = 0, Optional leistungsBez As String = "", Optional nachzahlungsID As Integer = -1)
|
|
Try
|
|
|
|
For Each o In OFFERTE.POSITIONEN
|
|
If o.LeistungsNr = LeistungsNr Then
|
|
|
|
Dim POS As New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen()
|
|
Dim LEISTUNG As New VERAG_PROG_ALLGEMEIN.cLeistungen(o.LeistungsNr)
|
|
POS.LeistungsNr = o.LeistungsNr
|
|
POS.LeistungsBez = IIf(leistungsBez <> "", leistungsBez, o.LeistungsBez)
|
|
|
|
POS.BerechnungsartNr = o.BerechnungsartNr
|
|
'POS.Preis = BruttoBetrag
|
|
POS.Anzahl = 1
|
|
POS.Steuerpflichtig = LEISTUNG.Steuerpflichtig
|
|
'Berrechnunggebühr wird immer vom übergebenen Betrag abzüglich UST berechnet (Nettobetrag), außer bei UTA!
|
|
POS.BGebBgl = NettoBetrag - UstBetrag
|
|
|
|
|
|
If POS.Steuerpflichtig Then
|
|
POS.SteuerpflichtigerBetrag = NettoBetrag
|
|
POS.Preis = NettoBetrag
|
|
Else
|
|
POS.SteuerfreierBetrag = BruttoBetrag
|
|
POS.Preis = BruttoBetrag
|
|
End If
|
|
'POS.NachzahlungsID = nachzahlungsID 'nix gut
|
|
POS.BGebLeistungsNr = o.BGebLeistungsNr
|
|
POS.BGebProzent = o.BGebProzent
|
|
POS.BGebMinBetrag = o.BGebMinBetrag
|
|
|
|
RG.POSITIONEN.Add(POS)
|
|
|
|
Return True
|
|
End If
|
|
Next
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
Return False
|
|
End Function
|
|
|
|
Private Sub Button13_Click_1(sender As Object, e As EventArgs) Handles Button13.Click
|
|
Dim frm As New frmZinsnachberechnung("tblMDM_Zinsberechnung", "FMZOLL")
|
|
frm.ShowDialog(Me)
|
|
End Sub
|
|
|
|
Private Sub txtnichtabrechneteKunden_TextChanged(sender As Object, e As EventArgs) Handles txtnichtabrechneteKunden.TextChanged
|
|
If txtnichtabrechneteKunden.Text <> "" AndAlso IsNumeric(txtnichtabrechneteKunden.Text) AndAlso txtnichtabrechneteKunden.Text > 0 Then
|
|
btnZNBverrechnen.Enabled = True
|
|
Else
|
|
btnZNBverrechnen.Enabled = False
|
|
End If
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub btnZNBverrechnen_Click(sender As Object, e As EventArgs) Handles btnZNBverrechnen.Click
|
|
|
|
If txtZRbis.Text = "" OrElse Not IsDate(txtZRbis.Text) Then
|
|
MsgBox("Abrechnungdatum (Zahlungen bis) setzen!")
|
|
txtZRbis.Focus()
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim LimitBEtrag As Integer = -1
|
|
If txtAbBetragAbrechnen.Text <> "" AndAlso IsNumeric(txtAbBetragAbrechnen.Text) Then
|
|
LimitBEtrag = CInt(txtAbBetragAbrechnen.Text)
|
|
End If
|
|
|
|
Dim dt_Main As DataTable = SQL.loadDgvBySql_Param("Select [kundenNr],SUM([zinsbetrag]) as Zinsbetrag,max(belegZahlungsziel) as belegZahlungsziel , zahlungsperiode_start,zahlungsperiode_ende FROM [VERAG].[dbo].[tblMDM_Zinsberechnung] where [verrechnet] Is null group by [kundenNr], zahlungsperiode_start, zahlungsperiode_ende" & IIf(LimitBEtrag > 0, " having SUM([zinsbetrag]) >= " & LimitBEtrag, ""), "FMZOLL")
|
|
|
|
If dt_Main.Rows.Count > 0 Then
|
|
Dim kundenNr As String = ""
|
|
If dt_Main.Columns.Contains("kundenNr") Then
|
|
Dim dtNew As DataTable = dt_Main.Rows.Cast(Of DataRow)().Where(Function(row) Not row.ItemArray.All(Function(field) field Is DBNull.Value Or field.Equals(""))).CopyToDataTable()
|
|
If dtNew.Rows.Count > 0 Then
|
|
Dim counter = 0
|
|
For Each r As DataRow In dtNew.Rows
|
|
kundenNr &= r.Item(0)
|
|
counter = counter + 1
|
|
If (dtNew.Rows.Count <> 0 And counter <> dtNew.Rows.Count) Then
|
|
kundenNr &= ","
|
|
End If
|
|
Next
|
|
End If
|
|
End If
|
|
|
|
|
|
Dim sqlStringFehlendeOffertenNr = "select KundenNr from Offertenpositionen where KundenNr in (" & kundenNr & ")
|
|
GROUP by KundenNr
|
|
EXCEPT
|
|
select KundenNr from Offertenpositionen where LeistungsNr = 950 and OffertenNr = 95 and KundenNr in (" & kundenNr & ")
|
|
GROUP by KundenNr"
|
|
|
|
Dim dtfehlendeOfferten As DataTable = SQL.loadDgvBySql(sqlStringFehlendeOffertenNr, "FMZOLL")
|
|
If dtfehlendeOfferten.Rows.Count > 0 Then
|
|
|
|
|
|
'nicht mehr fragen, sondern einfach anlegen!
|
|
|
|
'If Not vbYes = MsgBox("Es fehlen bei " & dtfehlendeOfferten.Rows.Count & " Kunden das Offert 95, bitte hinterlegen ansonsten wird die Position nicht verrechnet!" & vbNewLine & "Möchten Sie trotzdem fortfahren!", vbYesNoCancel) Then
|
|
' cProgramFunctions.genExcelCSVFromDT(dtfehlendeOfferten, True)
|
|
' Exit Sub
|
|
'End If
|
|
|
|
|
|
|
|
|
|
For Each R As DataRow In dtfehlendeOfferten.Rows
|
|
If Not IsDBNull(R.Item("KundenNr")) AndAlso R.Item("KundenNr") IsNot Nothing AndAlso IsNumeric(R.Item("KundenNr")) Then
|
|
|
|
Dim o As New VERAG_PROG_ALLGEMEIN.cOfferte(R.Item("KundenNr"), 95, False)
|
|
o.Art = "Neuanlage"
|
|
o.SAVE() 'speichern
|
|
o.LOAD_POSITIONEN() 'positionen Laden
|
|
If o.POSITIONEN.Count = 0 Then 'wenn keine POS --> neues Offert
|
|
o.RESET_STANDARTOFFERTEN_FIRMA(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME, "", "DE") '--> Standartofferten laden
|
|
End If
|
|
End If
|
|
|
|
Next
|
|
|
|
|
|
End If
|
|
|
|
If dt_Main.Rows.Count = 0 Then
|
|
MsgBox("keine zu verrechnenden Datensätze!")
|
|
Exit Sub
|
|
End If
|
|
|
|
|
|
If vbYes = MsgBox("Möchten Sie für " & dt_Main.Rows.Count & " Kunden die Zinsbelastung mit Abrechnungsdatum " & CDate(txtZRbis.Text).ToShortDateString & " verrechnen?" & vbNewLine & "Es werden nur Rechnungen erstellt, deren Gesamtbelastung über " & LimitBEtrag & " EUR liegt!", vbYesNoCancel) Then
|
|
|
|
|
|
|
|
For Each R In dt_Main.Rows
|
|
|
|
Dim startDate As String = CDate(R("zahlungsperiode_start")).ToShortDateString
|
|
Dim EndDate As String = CDate(R("zahlungsperiode_ende")).ToShortDateString
|
|
|
|
Dim vermerk As String = "Zahlungen " & startDate & " - " & EndDate 'max 50 Zeichen!!!
|
|
Dim Fußtext As String = ""
|
|
|
|
'Fußtext = "Sehr geehrte Damen und Herren," & vbNewLine & "
|
|
' Sie erhalten unten eine Aufstellung jener Rechnungen, deren Zahlungseingänge nach der gesetzten Zahlungsfrist von 14 Tagen gelegen ist." & vbNewLine & "
|
|
' Bitte haben Sie Verständnis dafür, dass wir Ihnen die dadurch entstehenden Verzugszinsen nachberechnen müssen." & vbNewLine & "
|
|
' Wir erwarten Ihre Zahlung über den untenstehenden Endbetrag wieder innerhalb von 14 Tagen."
|
|
|
|
|
|
|
|
|
|
|
|
Dim verarbOK As Boolean = True
|
|
Dim SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch = Nothing
|
|
Dim RK_ID As Integer = -1
|
|
If Not gen_SPEDBUCH_ByKdNr(R("kundenNr"), SPEDBUCH, CDate(txtZRbis.Text).ToShortDateString, vermerk) Then verarbOK = False
|
|
If Not gen_RECHNUNG_BySPEDBUCH(R("kundenNr"), SPEDBUCH, RK_ID, Fußtext, R("belegZahlungsziel")) Then verarbOK = False
|
|
|
|
If verarbOK Then
|
|
SQL.doSQL("UPDATE [tblMDM_Zinsberechnung] SET [verrechnet]=GETDATE(), RK_ID = " & RK_ID & " WHERE [verrechnet] Is null And kundenNr='" & R("kundenNr") & "' ", "FMZOLL")
|
|
End If
|
|
|
|
Next
|
|
|
|
txtnichtabrechneteKunden.Text = SQL.getValueTxtBySql("SELECT count(distinct(kundenNr)) FROM [VERAG].[dbo].[tblMDM_Zinsberechnung] where verrechnet is null", "FMZOLL",,, "0")
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.Click
|
|
|
|
Try
|
|
|
|
If txtUID_Jahr.Text <> "" AndAlso IsNumeric(txtUID_Jahr.Text) AndAlso txtUID_Jahr.Text.Length = 4 Then
|
|
|
|
If txtUID_Monat.Text = "" OrElse txtUID_Monat.Text <> "" AndAlso IsNumeric(txtUID_Monat.Text) AndAlso CInt(txtUID_Monat.Text) > 0 AndAlso CInt(txtUID_Monat.Text) < 13 Then
|
|
|
|
Dim SQL_UID As String = "SELECT [uid_KundenNr] as KdNr , Adressen.[Name 1],[uid_UstIdKz] as UstIdKz,[uid_UstIdNr] as UstIdnr, case when [uid_valid] = 1 then 'GUELTIG' else 'UNGUELTIG' end as Ergebnis, cast([uid_Datum] as date) as Pruefdatum,Convert(varchar(8), [uid_Datum], 108) As Pruefzeit, [tblUIDPruefung].[firma] as Firma, cast(Adressen.UstIdGeprüft as date) as [letzte Prüfung], uid_pruefungstool as Quelle, uid_Sachbearbeiter as Sachbearbeiter, Filialen.FilialenNr, isnull(uid_typ,'UID') as Typ
|
|
FROM [VERAG].[dbo].[tblUIDPruefung] inner join Adressen on Adressen.AdressenNr = [uid_KundenNr] inner Join kunden On KundenNr=AdressenNr inner join Filialen On Filialen.FilialenNr=Kunden.FilialenNr
|
|
where YEAR(uid_Datum) = " & txtUID_Jahr.Text & IIf(txtUID_Monat.Text <> "", " AND MONTH(uid_Datum) = " & txtUID_Monat.Text, "") & IIf(cbxFirmaUID._value <> "", " And Filialen.Firma = '" & cbxFirmaUID._value & "'", "") & IIf(cbx_nur_ungueltige.Checked, " AND [uid_valid] = 0 ", "") & " ORDER BY Filialen.FilialenNr "
|
|
|
|
Me.Cursor = Cursors.WaitCursor
|
|
Dim dt_UID As DataTable = SQL.loadDgvBySql(SQL_UID, "FMZOLL")
|
|
If dt_UID.Rows.Count > 0 Then
|
|
cProgramFunctions.genExcelFromDT_NEW(dt_UID)
|
|
Me.Cursor = Cursors.Default
|
|
Else
|
|
MsgBox("keine Daten für den ausgewählten Zeitraum!")
|
|
Me.Cursor = Cursors.Default
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
Me.Cursor = Cursors.Default
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub txtUID_Monat_TextChanged(sender As Object, e As EventArgs) Handles txtUID_Monat.TextChanged
|
|
countIDPruefungen()
|
|
End Sub
|
|
|
|
Private Sub cbxFirmaUID_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbxFirmaUID.SelectedIndexChanged
|
|
countIDPruefungen()
|
|
End Sub
|
|
|
|
Private Sub countIDPruefungen()
|
|
|
|
btn_fehlendeUID.Tag = ""
|
|
|
|
If txtUID_Jahr.Text <> "" AndAlso IsNumeric(txtUID_Jahr.Text) AndAlso txtUID_Jahr.Text.Length = 4 Then
|
|
|
|
If txtUID_Monat.Text = "" OrElse txtUID_Monat.Text <> "" AndAlso IsNumeric(txtUID_Monat.Text) AndAlso CInt(txtUID_Monat.Text) > 0 AndAlso CInt(txtUID_Monat.Text) < 13 Then
|
|
|
|
Dim dt As New DataTable
|
|
|
|
Dim Month As Integer = CInt(txtUID_Monat.Text).ToString("D2")
|
|
Dim Year As Integer = CInt(txtUID_Jahr.Text)
|
|
|
|
Dim datum = CDate("15." & Month & "." & Year).AddMonths(-1)
|
|
|
|
dt = VERAG_PROG_ALLGEMEIN.cUIDPruefung.get_zupruefendeKunden(-1, datum, cbxFirmaUID._value)
|
|
|
|
lblUID_zupruefen.Text = "nicht geprüft: " & dt.Rows.Count
|
|
|
|
If dt.Rows.Count > 0 Then
|
|
Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt,,,,, False, "fehlende UID-Prüfungen_" & IIf(cbxFirmaUID._value <> "", cbxFirmaUID._value, "ALLE") & "_" & datum.ToShortDateString)
|
|
btn_fehlendeUID.Tag = path
|
|
btn_fehlendeUID.Visible = True
|
|
Else
|
|
btn_fehlendeUID.Visible = False
|
|
End If
|
|
|
|
|
|
End If
|
|
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btnWikiStatusmails_Click(sender As Object, e As EventArgs) Handles btnWikiStatusmails.Click
|
|
|
|
Dim webAddress As String = "https://wiki.verag.ag/software/sdl/zinsnachberechnung"
|
|
Process.Start(webAddress)
|
|
|
|
End Sub
|
|
|
|
Private Sub btnDel__Click(sender As Object, e As EventArgs) Handles btnDel_.Click
|
|
|
|
If vbYes = MsgBox("Möchten Sie die alle nicht verrechneten Zinsbelastungen löschen?", vbYesNoCancel) Then
|
|
If SQL.doSQL("delete from [tblMDM_Zinsberechnung] WHERE [verrechnet] Is null", "FMZOLL") Then
|
|
txtnichtabrechneteKunden.Text = SQL.getValueTxtBySql("SELECT count(distinct(kundenNr)) FROM [VERAG].[dbo].[tblMDM_Zinsberechnung] where verrechnet is null", "FMZOLL",,, "0")
|
|
End If
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub btn_fehlendeUID_Click(sender As Object, e As EventArgs) Handles btn_fehlendeUID.Click
|
|
If sender.tag <> "" Then
|
|
Try : Process.Start(sender.tag) : Catch : End Try
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub Button15_Click(sender As Object, e As EventArgs) Handles btnBelegeOhnePOS.Click, btnfehlendeBelege.Click, btnfortlRENr.Click
|
|
|
|
Try
|
|
|
|
If txtRE_Jahr.Text <> "" AndAlso IsNumeric(txtRE_Jahr.Text) AndAlso txtRE_Jahr.Text.Length = 4 Then
|
|
|
|
If txtRE_Monat.Text = "" OrElse txtRE_Monat.Text <> "" AndAlso IsNumeric(txtRE_Monat.Text) AndAlso CInt(txtRE_Monat.Text) > 0 AndAlso CInt(txtRE_Monat.Text) < 13 Then
|
|
Dim Bezeichnung As String = ""
|
|
Dim SQL_RE As String = ""
|
|
|
|
Select Case sender.Name
|
|
|
|
|
|
Case "btnfehlendeBelege"
|
|
|
|
If cbxFirma_RE._value = "" Then MsgBox("Es muss eine Firma angegeben werden!") : Exit Sub
|
|
If CInt(txtRE_Jahr.Text) < 2026 Then MsgBox("Erst ab Jahr 2026 möglich!") : Exit Sub
|
|
|
|
Bezeichnung = "fehlende BELEGE von " & cbxFirma_RE.SelectedItem.Text & " Zeitraum: " & txtRE_Monat.Text & "/" & txtRE_Jahr.Text
|
|
|
|
SQL_RE = "DECLARE @Month INT = " & txtRE_Monat.Text & ";
|
|
DECLARE @Year INT = " & txtRE_Jahr.Text & ";
|
|
DECLARE @FirmaID INT = " & cbxFirma_RE._value & ";
|
|
|
|
SELECT DISTINCT
|
|
REPLACE(
|
|
REPLACE(
|
|
REPLACE(da.da_name, 'Rechnung_', ''),
|
|
'.pdf', ''),
|
|
'Gutschrift_', '') AS RechnungsNr, da_name as Bezeichnung
|
|
FROM tblDatenarchiv da
|
|
WHERE da.da_kategorie = 'Rechnungen'
|
|
AND da.da_ordner = 'Firma_' + CAST(@FirmaID AS VARCHAR)
|
|
AND da.da_uOrdner1 = CAST(@Year AS VARCHAR) + '_' + CAST(@Month AS VARCHAR)
|
|
AND LEFT(da.da_name, 6) <> 'Sammel'
|
|
AND NOT EXISTS (
|
|
SELECT 1
|
|
FROM Rechnungsausgang ra
|
|
WHERE ra.RechnungsNr =
|
|
REPLACE(
|
|
REPLACE(
|
|
REPLACE(da.da_name, 'Rechnung_', ''),
|
|
'.pdf', ''),
|
|
'Gutschrift_', '')
|
|
AND MONTH(ra.RechnungsDatum) = @Month
|
|
AND YEAR(ra.RechnungsDatum) = @Year
|
|
AND ra.Firma_ID = @FirmaID
|
|
AND ra.Sammelrechnung = 0
|
|
) UNION
|
|
|
|
|
|
|
|
SELECT DISTINCT
|
|
REPLACE(
|
|
REPLACE(da.da_name, 'Sammelrechnung_', ''),
|
|
'.pdf', '') AS RechnungsNr, da_name as Bezeichnung
|
|
FROM tblDatenarchiv da
|
|
WHERE da.da_kategorie = 'Rechnungen'
|
|
AND da.da_ordner = 'Firma_' + CAST(@FirmaID AS VARCHAR)
|
|
AND da.da_uOrdner1 = CAST(@Year AS VARCHAR) + '_' + CAST(@Month AS VARCHAR)
|
|
AND LEFT(da.da_name, 6) = 'Sammel'
|
|
AND NOT EXISTS (
|
|
SELECT 1
|
|
FROM Rechnungsausgang ra
|
|
WHERE ra.RechnungsNr =
|
|
REPLACE(
|
|
REPLACE(da.da_name, 'Sammelrechnung_', ''),
|
|
'.pdf', '')
|
|
AND MONTH(ra.RechnungsDatum) = @Month
|
|
AND YEAR(ra.RechnungsDatum) = @Year
|
|
AND ra.Firma_ID = @FirmaID
|
|
AND ra.Sammelrechnung <> 0
|
|
);"
|
|
|
|
|
|
Case "btnBelegeOhnePOS"
|
|
Bezeichnung = "BELEGE ohne Positionen" & IIf(cbxFirma_RE._value <> "", " von " & cbxFirma_RE.SelectedItem.Text, "") & " Zeitraum: " & txtRE_Monat.Text & "/" & txtRE_Jahr.Text
|
|
SQL_RE = "Select * From Rechnungsausgang r Where YEAR(r.RechnungsDatum) = " & txtRE_Jahr.Text & " AND MONTH(r.RechnungsDatum) = " & txtRE_Monat.Text & " AND Not EXISTS( SELECT 1 From RechnungsausgangPositionen p Where p.RK_ID = r.RK_ID) " & IIf(cbxFirma_RE._value <> "", " AND r.[Firma_ID] = " & cbxFirma_RE._value, "")
|
|
|
|
Case "btnfortlRENr"
|
|
If cbxFirma_RE._value = "" Then MsgBox("Es muss eine Firma angegeben werden!") : Exit Sub
|
|
|
|
Dim ignoreMonth As Boolean = False
|
|
|
|
If vbYes = MsgBox("Möchten Sie die fortlaufende Re-Nr für das Gesamtjahr " & txtRE_Jahr.Text & " prüfen?", vbYesNoCancel) Then ignoreMonth = True
|
|
|
|
|
|
Bezeichnung = "Lücken in der fortl. Belegnummerierung von " & cbxFirma_RE.SelectedItem.Text & " Zeitraum: " & IIf(Not ignoreMonth, txtRE_Monat.Text & "/" & txtRE_Jahr.Text, txtRE_Jahr.Text)
|
|
SQL_RE = "WITH Nummern AS (
|
|
SELECT
|
|
RechnungsNr,
|
|
LEAD(RechnungsNr) OVER (ORDER BY RechnungsNr) AS NextRechnungsNr
|
|
FROM Rechnungsausgang
|
|
WHERE Firma_ID = " & cbxFirma_RE._value & "
|
|
AND YEAR(RechnungsDatum) = " & txtRE_Jahr.Text & IIf(Not ignoreMonth, " and Month(RechnungsDatum) = " & txtRE_Monat.Text, "") &
|
|
" GROUP BY RechnungsNr
|
|
)
|
|
SELECT
|
|
RechnungsNr + 1 AS FehlendeVon,
|
|
NextRechnungsNr - 1 AS FehlendeBis
|
|
FROM Nummern
|
|
WHERE NextRechnungsNr IS NOT NULL
|
|
AND NextRechnungsNr > RechnungsNr + 1
|
|
ORDER BY FehlendeVon;"
|
|
|
|
End Select
|
|
|
|
Me.Cursor = Cursors.WaitCursor
|
|
Dim dt_RE As DataTable = SQL.loadDgvBySql(SQL_RE, "FMZOLL")
|
|
|
|
If dt_RE.Rows.Count > 0 Then
|
|
cProgramFunctions.genExcelFromDT_NEW(dt_RE,,, Bezeichnung,,, True)
|
|
Me.Cursor = Cursors.Default
|
|
Else
|
|
MsgBox("keine Daten für den ausgewählten Zeitraum!")
|
|
Me.Cursor = Cursors.Default
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
Me.Cursor = Cursors.Default
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
|
|
End Class
|