fakt, etc.

This commit is contained in:
2025-10-30 12:00:22 +01:00
parent a1889578d8
commit 52e0041754
19 changed files with 1921 additions and 543 deletions

View File

@@ -1,6 +1,7 @@
Imports System.Data.SqlClient
Imports System.Globalization
Imports System.Web.UI.WebControls.Expressions
Imports com.sun.xml.internal.rngom
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
@@ -17,6 +18,7 @@ Public Class frmKundenblatt
' Dim KUNDE As cKunde = Nothing
Dim ADRESSE As VERAG_PROG_ALLGEMEIN.cAdressen = Nothing
Dim KUNDE_ERW As VERAG_PROG_ALLGEMEIN.cKundenErweitert = Nothing
Dim KUNDE_K As VERAG_PROG_ALLGEMEIN.cKundenKontakte = Nothing
' Public BERECHTIGUNEN As List(Of cBerechtigungen) = Nothing
@@ -637,11 +639,65 @@ Public Class frmKundenblatt
End Sub
Sub initStat()
lblStat_Lkws.Text = SQL.getSqlCount("SELECT Count(KfzKennzeichen) FROM LKW WHERE KundenNr=" & kdNr & " ") & " LKWs registriert"
lblStat_SdlLeistungen.Text = SQL.getSqlCount("SELECT Count(SDL.SDLNr) FROM SDL, Speditionsdienstleistungen WHERE KundenNr=" & kdNr & " AND SDL.SDLNr=Speditionsdienstleistungen.SDLNr ") & " SDL Leistungen"
lblStat_Lkws.Text = SQL.getSqlCount("SELECT Count(KfzKennzeichen) FROM LKW WHERE KundenNr=" & kdNr & " and isnull(Verkauft,0) <> 1 and isnull(Abgemeldet,0) <> 1 ") & " aktive LKWs registriert"
lblStat_SdlLeistungen.Text = SQL.getSqlCount("SELECT Count(SDL.SDLNr) FROM SDL, Speditionsdienstleistungen WHERE KundenNr=" & kdNr & " and ISNULL(Archiviert,0) <> 1 and ISNULL(LKWAbgemeldet,0) <> 1 and ISNULL(Gesperrt,0) <> 1 and ISNULL(Defekt,0) <> 1 and ISNULL(Verloren,0) <> 1 and ISNULL(Gestohlen,0) <> 1 AND SDL.SDLNr=Speditionsdienstleistungen.SDLNr ") & " aktive SDL Leistungen"
Dim SQL_Diesel As String = " FROM SDL, Speditionsdienstleistungen WHERE KundenNr=" & kdNr & " AND ISNULL(Archiviert,0) <> 1 and ISNULL(LKWAbgemeldet,0) <> 1 and ISNULL(Gesperrt,0) <> 1 and ISNULL(Defekt,0) <> 1 and ISNULL(Verloren,0) <> 1 and ISNULL(Gestohlen,0) <> 1 AND SDL.SDLNr=Speditionsdienstleistungen.SDLNr AND SDL.SDLNr IN (100,101)"
Dim dt_Diesel As DataTable = SQL.loadDgvBySql("SELECT SDL.SDLNr,Count(SDL.SDLNr) as Anzahl" & SQL_Diesel & " Group by SDL.SDLNr", "SDL")
lblStat_SdlLeistungen_Diesel.Text = SQL.getSqlCount("SELECT Count(SDL.SDLNr)" & SQL_Diesel) & " aktive Tankkarten"
If dt_Diesel.Rows.Count > 0 Then
lblStat_SdlLeistungen_Diesel.Text &= " ( "
For Each r In dt_Diesel.Rows
Dim Lieferant As String = ""
Select Case r.Item("SDLNr")
Case "100" : Lieferant = r.Item("Anzahl") & "x IDS "
Case "101" : Lieferant = r.Item("Anzahl") & "x RMC "
End Select
lblStat_SdlLeistungen_Diesel.Text &= Lieferant
Next
lblStat_SdlLeistungen_Diesel.Text &= ")"
End If
Dim SQL_Maut As String = " FROM SDL, Speditionsdienstleistungen WHERE KundenNr=" & kdNr & " AND ISNULL(Archiviert,0) <> 1 and ISNULL(LKWAbgemeldet,0) <> 1 and ISNULL(Gesperrt,0) <> 1 and ISNULL(Defekt,0) <> 1 and ISNULL(Verloren,0) <> 1 and ISNULL(Gestohlen,0) <> 1 AND SDL.SDLNr=Speditionsdienstleistungen.SDLNr AND SDL.SDLNr BETWEEN 200 AND 218"
Dim dt_Maut As DataTable = SQL.loadDgvBySql("SELECT SDL.SDLNr,Count(SDL.SDLNr) as Anzahl" & SQL_Maut & " Group by SDL.SDLNr", "SDL")
lblStat_SdlLeistungen_Maut.Text = SQL.getSqlCount("SELECT Count(SDL.SDLNr)" & SQL_Maut) & " aktive Mautboxen/-karten"
If dt_Maut.Rows.Count > 0 Then
lblStat_SdlLeistungen_Maut.Text &= " ( "
For Each r As DataRow In dt_Maut.Rows
Dim Lieferant As String = ""
Select Case r.Item("SDLNr")
Case "200" : Lieferant = r.Item("Anzahl") & "x AT "
Case "201" : Lieferant = r.Item("Anzahl") & "x DE "
Case "202" : Lieferant = r.Item("Anzahl") & "x TELEPASS "
Case "203" : Lieferant = r.Item("Anzahl") & "x CZ "
Case "205" : Lieferant = r.Item("Anzahl") & "x MotorWay "
Case "206" : Lieferant = r.Item("Anzahl") & "x DouBox "
Case "208" : Lieferant = r.Item("Anzahl") & "x MSE "
Case "209" : Lieferant = r.Item("Anzahl") & "x PL "
Case "210" : Lieferant = r.Item("Anzahl") & "x SI "
Case "211" : Lieferant = r.Item("Anzahl") & "x MSE-MP "
Case "212" : Lieferant = r.Item("Anzahl") & "x UTA "
Case "213" : Lieferant = r.Item("Anzahl") & "x HUGO "
Case "214" : Lieferant = r.Item("Anzahl") & "x PLOSE-RM "
Case "215" : Lieferant = r.Item("Anzahl") & "x PLOSE-IT "
Case "216" : Lieferant = r.Item("Anzahl") & "x PLOSE-CZ "
Case "217" : Lieferant = r.Item("Anzahl") & "x PLOSE-MP "
Case "218" : Lieferant = r.Item("Anzahl") & "x PLOSE-TM "
End Select
lblStat_SdlLeistungen_Maut.Text &= Lieferant
Next
lblStat_SdlLeistungen_Maut.Text &= ")"
End If
lblStat_SdlLeistungen_Diesel.Text = SQL.getSqlCount("SELECT Count(SDL.SDLNr) FROM SDL, Speditionsdienstleistungen WHERE KundenNr=" & kdNr & " AND SDL.SDLNr=Speditionsdienstleistungen.SDLNr AND SDL.SDLNr IN (100,101)") & " Tankkarten"
lblStat_SdlLeistungen_Maut.Text = SQL.getSqlCount("SELECT Count(SDL.SDLNr) FROM SDL, Speditionsdienstleistungen WHERE KundenNr=" & kdNr & " AND SDL.SDLNr=Speditionsdienstleistungen.SDLNr AND SDL.SDLNr BETWEEN 200 AND 212 ") & " Mautboxen/-karten"
End Sub
Function checkNullStr(o As Object) As String
@@ -682,6 +738,7 @@ Public Class frmKundenblatt
KUNDE = New VERAG_PROG_ALLGEMEIN.cKunde(kdNr) 'kundenSQL.getKundeByKdNr(kdNr)
ADRESSE = New VERAG_PROG_ALLGEMEIN.cAdressen(kdNr) 'kundenSQL.getKundeByKdNr(kdNr)
KUNDE_ERW = New VERAG_PROG_ALLGEMEIN.cKundenErweitert(kdNr)
KUNDE_K = New VERAG_PROG_ALLGEMEIN.cKundenKontakte(kdNr)
'Me.dataAdapterFirma = Nothing
' Me.dataFirma.Clear()
'SDL!
@@ -713,6 +770,13 @@ Public Class frmKundenblatt
lblEmail.Text = checkNullStr(ADRESSE.E_Mail)
lblEmail2.Text = checkNullStr(ADRESSE.E_Mail2)
txtEmailRE.Text = "-"
If KUNDE_K.kkd_kkaId = 8 Then 'Rechnung an
txtEmailRE.Text = KUNDE_K.kkd_Email & " " & KUNDE_K.kkd_EmailCC
End If
lblUid.Text = ""
If checkNullStr(ADRESSE.UstIdGeprüft) <> "" Then
lblUid.Text = "UId: " & checkNullStr(ADRESSE.UstIdKz) & checkNullStr(ADRESSE.UstIdNr)
@@ -2135,27 +2199,40 @@ Public Class frmKundenblatt
End Sub
Function dtUmsatzNachLeistungsNr() As DataTable
Dim datatable As New DataTable
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FirmenDatenAnzeige Is Nothing Then Return datatable
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FirmenDatenAnzeige = "" Then Return datatable
Dim where = ""
If cboFirmaFMZOLL._value <> "" Then
where = " AND [RechnungsKundenNr] = " & kdNr & " AND Firma_ID=" & cboFirmaFMZOLL._value
Else
where = If(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FirmenDatenAnzeige.contains("A"), "", " AND Firma_ID IN(" & VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FirmenDatenAnzeige & ")")
where &= " AND [RechnungsKundenNr] = " & kdNr
End If
Dim sqlstr = ""
sqlstr &= " SELECT * FROM ( SELECT Leistungen.LeistungsNr, Leistungen.LeistungsBez,YEAR(Abfertigungsdatum ) [Year] , (RechnungsausgangPositionen.SteuerpflichtigerBetrag+RechnungsausgangPositionen.SteuerfreierBetrag ) AS "
sqlstr &= " [Der Wert] FROM Rechnungsausgang INNER JOIN (RechnungsausgangPositionen LEFT JOIN Leistungen ON RechnungsausgangPositionen.LeistungsNr = Leistungen.LeistungsNr) ON (Rechnungsausgang.RK_ID = RechnungsausgangPositionen.RK_ID) "
sqlstr &= " WHERE 1 = 1 "
sqlstr &= where
sqlstr &= " ) AS Rg"
sqlstr &= " PIVOT( SUM([Der Wert]) FOR [Year] IN (" & getJahrString() & ")) AS MNamePivot"
sqlstr &= " order by LeistungsNr"
datatable = SQL.loadDgvBySql(sqlstr, "FMZOLL")
Return datatable
End Function
Sub initDGVUmsatzNachLeistungsNr()
With dgvUmsatzNachLeistngsNr
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FirmenDatenAnzeige Is Nothing Then Exit Sub
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FirmenDatenAnzeige = "" Then Exit Sub
Dim where = ""
If cboFirmaFMZOLL._value <> "" Then
where = " AND [RechnungsKundenNr] = " & kdNr & " AND Firma_ID=" & cboFirmaFMZOLL._value
Else
where = If(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FirmenDatenAnzeige.contains("A"), "", " AND Firma_ID IN(" & VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FirmenDatenAnzeige & ")")
where &= " AND [RechnungsKundenNr] = " & kdNr
End If
Dim sqlstr = ""
sqlstr &= " SELECT * FROM ( SELECT Leistungen.LeistungsNr, Leistungen.LeistungsBez,YEAR(Abfertigungsdatum ) [Year] , (RechnungsausgangPositionen.SteuerpflichtigerBetrag+RechnungsausgangPositionen.SteuerfreierBetrag ) AS "
sqlstr &= " [Der Wert] FROM Rechnungsausgang INNER JOIN (RechnungsausgangPositionen LEFT JOIN Leistungen ON RechnungsausgangPositionen.LeistungsNr = Leistungen.LeistungsNr) ON (Rechnungsausgang.RK_ID = RechnungsausgangPositionen.RK_ID) "
sqlstr &= " WHERE 1 = 1 "
sqlstr &= where
sqlstr &= " ) AS Rg"
sqlstr &= " PIVOT( SUM([Der Wert]) FOR [Year] IN (" & getJahrString() & ")) AS MNamePivot"
sqlstr &= " order by LeistungsNr"
.DataSource = SQL.loadDgvBySql(sqlstr, "FMZOLL")
.DataSource = dtUmsatzNachLeistungsNr()
If .DataSource Is Nothing Then Exit Sub
If .Columns.Count = 0 Then Exit Sub
@@ -2211,7 +2288,14 @@ Public Class frmKundenblatt
Private Sub PictureBox7_Click(sender As Object, e As EventArgs) Handles PictureBox7.Click
If dgvUmsatzNachLeistngsNr.Rows.Count > 0 Then
Me.Cursor = Cursors.WaitCursor
cProgramFunctions.genExcelFromDGV_NEW(dgvUmsatzNachLeistngsNr, True)
Dim dt As DataTable = dtUmsatzNachLeistungsNr()
If dt.Rows.Count > 0 Then
cProgramFunctions.genExcelFromDT_NEW(dt, {"C1:C" & (dt.Rows.Count + 1), "D1:D" & (dt.Rows.Count + 1), "E1:E" & (dt.Rows.Count + 1), "F1:F" & (dt.Rows.Count + 1), "G1:G" & (dt.Rows.Count + 1), "H1:H" & (dt.Rows.Count + 1), "I1:I" & (dt.Rows.Count + 1), "J1:J" & (dt.Rows.Count + 1), "K1:K" & (dt.Rows.Count + 1)}, False,,,)
End If
Me.Cursor = Cursors.Default
End If
@@ -2365,7 +2449,7 @@ Public Class frmKundenblatt
initBtns("Monat")
End Sub
Private Sub dgvRg_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvRg.DoubleClick, dgvRg.CellContentDoubleClick
Private Sub dgvRg_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvRg.CellContentDoubleClick
If dgvRg.SelectedRows.Count = 0 Then Exit Sub
@@ -2647,5 +2731,9 @@ Public Class frmKundenblatt
End If
End Sub
Private Sub lblEmail_TextChanged(sender As Object, e As MouseEventArgs) Handles lblEmail2.MouseUp, lblEmail.MouseUp
End Sub
End Class