Files
SDL/SDL/buchhaltung/usrCntlBH.vb
2025-04-03 15:37:12 +02:00

770 lines
46 KiB
VB.net

Imports System.Globalization
Imports System.Text
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)
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
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 VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_abteilung = "MDM" 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
' If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_abteilung = "MDM" Then CheckBox1.Checked = True : cbxSDLLeistungenSperre.Checked = True 'VERALTET
'txtOPRisikoBetragVon._value = ""
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) Handles Button9.Click
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) Handles Button10.Click, Button11.Click
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
End Class