OP in MDM-KdStamm

This commit is contained in:
2024-08-08 15:57:26 +02:00
parent 0a5414ad33
commit 32c9faf509
5 changed files with 606 additions and 253 deletions

View File

@@ -1,6 +1,7 @@
Imports System.Data.SqlClient
Imports System.ComponentModel
Imports System.Reflection
Imports javax.xml.bind.annotation
Public Class frmKundenblatt
@@ -102,6 +103,12 @@ Public Class frmKundenblatt
tbcntrMain.ItemSize = New Size(0, 1)
tbcntrMain.SizeMode = TabSizeMode.Fixed
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FirmenDatenAnzeige IsNot Nothing AndAlso VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FirmenDatenAnzeige <> "" Then
Dim where = If(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FirmenDatenAnzeige.contains("A"), "", " AND Firma_ID IN (" & VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FirmenDatenAnzeige & ") ")
cboFirmaFMZOLL.fillWithSQL("SELECT cast([Firma_ID] as varchar(3)) as Firma_ID,[Firma_Bez] FROM [tblFirma] WHERE 1=1 " & where, True, "FMZOLL", True)
End If
If FilialeNr > 0 Then
UsrcntlKundeBearbeitenFull1.Filiale = FilialeNr
End If
@@ -142,6 +149,7 @@ Public Class frmKundenblatt
changeTab(0, AllgemeinToolStripMenuItem)
tbcntrMDM.TabPages.Remove(tbVERAGCard) 'Jetzt in SDL LEintstungen
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_Leistungen_bearbeiten", "SDL") Then
@@ -155,7 +163,10 @@ Public Class frmKundenblatt
End If
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OP_LADEN", "SDL") Then
btnReloadOP.Visible = True
btnOP.Visible = True
End If
loaded = True
@@ -169,7 +180,7 @@ Public Class frmKundenblatt
End Sub
Sub initKUNDE()
If IsNumeric(kdNr) AndAlso kdNr >= 0 Then
Try
@@ -221,7 +232,6 @@ Public Class frmKundenblatt
End If
Else
UsrcntlKundeBearbeitenFull1.Enabled = False
tbcntrMain.TabPages(2).Enabled = True
@@ -282,6 +292,7 @@ Public Class frmKundenblatt
initDgvOfferte()
showDgvOfferte()
initDgvSperrliste()
initDGVOffenePosten()
' initDgvSDLLeistungen()
'showDgvSDLLeistungen()
@@ -433,7 +444,7 @@ Public Class frmKundenblatt
'Dim d As New SqlDataAdapter()
Try
Dim connectionString As String = cSqlDb.GetSDLConnectionString
Dim sqlstr As String = " SELECT KundenSDL.SDLNr, Speditionsdienstleistungen.SDLBez,[Sperre], [Sperrdatum], [Vertretungsvollmacht], [Auszahlungsvollmacht], [Finanzamtbestätigung], [Antragsdatum],[Vermerk], KundenSDL.[Erfassungsdatum], KundenSDL.[Änderungsdatum],KundenSDL.[Sachbearbeiter] " & _
Dim sqlstr As String = " SELECT KundenSDL.SDLNr, Speditionsdienstleistungen.SDLBez,[Sperre], [Sperrdatum], [Vertretungsvollmacht], [Auszahlungsvollmacht], [Finanzamtbestätigung], [Antragsdatum],[Vermerk], KundenSDL.[Erfassungsdatum], KundenSDL.[Änderungsdatum],KundenSDL.[Sachbearbeiter] " &
" FROM KundenSDL INNER JOIN Speditionsdienstleistungen ON Speditionsdienstleistungen.SDLNr=KundenSDL.SDLNr WHERE KundenSDL.KundenNr='" & kdNr & "' AND [SDLTypNr] <=2 ORDER BY Sperre,Speditionsdienstleistungen.SDLBez "
Me.dataAdapterSDL = New SqlDataAdapter(sqlstr, connectionString)
Catch ex As SqlException
@@ -898,7 +909,7 @@ Public Class frmKundenblatt
Sub initDgvSperrliste()
With dgvSperrliste
' .DataSource = SQL.loadDgvBySql("SELECT Speditionsdienstleistungen.SDLNr,Speditionsdienstleistungen.SDLBez,Sperrnummernverzeichnis.SperrNr,Sperrnummernverzeichnis.SperrBez,KundenSDL.Sperrdatum FROM Speditionsdienstleistungen,KundenSDL,Sperrnummernverzeichnis WHERE KundenSDL.KundenNr=" & kdNr & " AND Speditionsdienstleistungen.SDLNr=KundenSDL.SDLNr AND Sperrnummernverzeichnis.SperrNr=KundenSDL.Sperre /*AND KundenSDL.Sperrdatum IS NOT NULL*/ ORDER BY SperrNr")
.DataSource = SQL.loadDgvBySql(" SELECT KundenSDL.SDLNr, Speditionsdienstleistungen.SDLBez,Sperrnummernverzeichnis.SperrNr,Sperrnummernverzeichnis.SperrBez, [Sperrdatum] " & _
.DataSource = SQL.loadDgvBySql(" SELECT KundenSDL.SDLNr, Speditionsdienstleistungen.SDLBez,Sperrnummernverzeichnis.SperrNr,Sperrnummernverzeichnis.SperrBez, [Sperrdatum] " &
" FROM KundenSDL INNER JOIN Speditionsdienstleistungen ON Speditionsdienstleistungen.SDLNr=KundenSDL.SDLNr INNER JOIN Sperrnummernverzeichnis ON Sperrnummernverzeichnis.SperrNr=KundenSDL.Sperre " &
" WHERE KundenSDL.KundenNr='" & kdNr & "' /*AND [SDLTypNr] <=2 */ ORDER BY Sperre,Speditionsdienstleistungen.SDLBez")
.RowTemplate.Height = 20
@@ -1570,7 +1581,7 @@ Public Class frmKundenblatt
Dim kdTMP = r.Cells("KundenNr").Value
Dim kfzKzTMP = r.Cells("KfzKennzeichen").Value
SQL.doSQL("DELETE TOP (1) FROM LKW WHERE KundenNr='" & kdTMP & "' AND KfzKennzeichen='" & kfzKzTMP & "'", "SDL", True)
SQL.doSQL("DELETE FROM SDL WHERE KundenNr='" & kdTMP & "' AND KfzKennzeichen='" & kfzKzTMP & "' and SDLNr <> '501' ", "SDL", True)
SQL.doSQL("DELETE FROM SDL WHERE KundenNr='" & kdTMP & "' AND KfzKennzeichen='" & kfzKzTMP & "' and SDLNr <> '501' ", "SDL", True)
usrCntlSDLLeistungVERAGCard.clearAllVeragCard(kdTMP, kfzKzTMP)
'SQL.doSQL("UPDATE [Kartenpool] SET [KundenNr]=NULL, [KfzKennzeichen]=NULL, [Fahrer]=NULL, [Datum]=NULL, [Kaution]=NULL, [BelegNr]=NULL, [Ersatzkarte]=NULL, [Gesperrt]=0, [Defekt]=0, [Verloren]=0, [Gestohlen]=0, [Vermerk]='', [Änderungsdatum]='" & Now & "', [Sachbearbeiter]='" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME & "' WHERE KundenNr='" & kdTMP & "' AND KfzKennzeichen='" & kfzKzTMP & "'", "SDL", True)
Next
@@ -1578,15 +1589,15 @@ Public Class frmKundenblatt
End If 'DEL
End Sub
Private Sub dgvLKW_KeyDown(sender As Object, e As KeyEventArgs) Handles dgvLKW.KeyUp
If e.KeyCode = Keys.Up Or e.KeyCode = Keys.Down Or e.KeyCode = Keys.End Or e.KeyCode = Keys.PageDown Or e.KeyCode = Keys.PageUp Then
dgvLKW_SelectionChanged(Me, New EventArgs)
End If
End Sub
Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click
Me.Cursor = Cursors.WaitCursor
'cProgramFunctions.genExcelFromDGV_NEW(dgvLKW, True)
@@ -1684,7 +1695,8 @@ Public Class frmKundenblatt
Me.Top = (My.Computer.Screen.WorkingArea.Height - Me.Height) / 2
End If
Me.StartPosition = FormStartPosition.CenterScreen
cboFirmaFMZOLL.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA_ID)
Button4.PerformClick()
End Sub
Private Sub ToolStripMenuItem7_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem7.Click
@@ -1692,7 +1704,7 @@ Public Class frmKundenblatt
changeTab(4, sender)
End Sub
Private Sub ToolStripMenuItem8_Click(sender As Object, e As EventArgs)
changeTab(5, sender)
@@ -1737,5 +1749,235 @@ Public Class frmKundenblatt
changeTab(5, sender, 1)
End Sub
Private Sub btnOP_Click(sender As Object, e As EventArgs) Handles btnOP.Click
If cboFirmaFMZOLL._value = "" Then
MsgBox("Bitte Firma auswählen!")
Else
Dim KontoList As New List(Of String)
KontoList.Add(KUNDE.KundenNrZentrale)
frmBU_Mahnlauf.doZahlungserinnerung(Me.FindForm, "OP", KontoList, cboFirmaFMZOLL._value, "")
End If
End Sub
Private Sub btnReloadOP_Click(sender As Object, e As EventArgs) Handles btnReloadOP.Click
Me.Cursor = Cursors.WaitCursor
Try
If KUNDE Is Nothing Then Exit Sub
If cboFirmaFMZOLL._value <> "" Then
If VERAG_PROG_ALLGEMEIN.cSyska_Interface.OP_Einlesen(cboFirmaFMZOLL._value, KUNDE.KundenNrZentrale) Then
MsgBox("Die OP-Liste wurde erfolgreich aktualisiert!")
End If
Else
If VERAG_PROG_ALLGEMEIN.cSyska_Interface.OP_Einlesen_ALL(KUNDE.KundenNrZentrale) Then
MsgBox("Die OP-Liste wurde erfolgreich aktualisiert!")
End If
End If
'initDGVUmsatz()
initDGVOffenePosten()
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
Sub initDGVOffenePosten()
If KUNDE IsNot Nothing AndAlso KUNDE.FilialenNr IsNot Nothing Then
If KUNDE.FilialenNr.ToString <> "" Then
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(KUNDE.FilialenNr)
Case "IMEX" : initDGVOffenePostenIMEX()
Case Else : initDGVOffenePostenVERAG()
End Select
End If
End If
End Sub
Sub initDGVOffenePostenIMEX()
With dgvOffenePosten
.Columns.Clear()
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 = ""
.DataSource = SQL.loadDgvBySql("SELECT [KundenNr] as KdNr,[Datum] as Datum,[Rechnung] as Nummer,[Saldo] as Betrag,'-' as [OP-Saldo],'EUR' as Währung ,'-' as [KumSaldoEUR],[Buchungstext] " &
" FROM [Offene_Posten_DVO] " &
" WHERE KundenNr='" & KUNDE.KundenNrZentrale & "' " & where & " order BY datum DESC, [OP_ID] DESC", "FMZOLL")
If .Columns.Count > 0 Then
.Columns("KdNr").Visible = False
.Columns("Datum").Width = 70
.Columns("Datum").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns("Betrag").Width = 75
.Columns("Betrag").DefaultCellStyle.Format = "N2"
.Columns("Betrag").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
'.Columns("OP-Saldo").Width = 75
'.Columns("OP-Saldo").DefaultCellStyle.Format = "N2"
'.Columns("OP-Saldo").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns("OP-Saldo").Visible = False
.Columns("Währung").Width = 60
.Columns("Währung").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
'.Columns("KumSaldoEUR").Width = 80
'.Columns("KumSaldoEUR").DefaultCellStyle.Format = "N2"
'.Columns("KumSaldoEUR").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns("KumSaldoEUR").Visible = False
.Columns("Buchungstext").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
End If
Dim zahlungsziel = 10
Dim sumZZ As Double = 0
Dim sumNOTZZ As Double = 0
Dim sumCredit As Double = 0
Dim sumVK As Double
If VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("KUNDE_VK_OP") Then
sumVK = getOffeneVK(KUNDE.KundenNrZentrale)
End If
Dim sumGes As Double = 0
If IsNumeric(KUNDE.Zahlungsziel) Then zahlungsziel = KUNDE.Zahlungsziel
Try
For Each r As DataGridViewRow In .Rows
If DateDiff(DateInterval.Day, CDate(r.Cells("Datum").Value), Now) > zahlungsziel Then
If CDbl(r.Cells("Betrag").Value) > 0 Then sumZZ += CDbl(r.Cells("Betrag").Value)
Else
If CDbl(r.Cells("Betrag").Value) > 0 Then sumNOTZZ += CDbl(r.Cells("Betrag").Value)
End If
If CDbl(r.Cells("Betrag").Value) < 0 Then sumCredit += CDbl(r.Cells("Betrag").Value)
sumGes += CDbl(r.Cells("Betrag").Value)
Next
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End With
pnl.Visible = True
End Sub
Function getOffeneVK(KundenNrZentrale)
Return SQL.getValueTxtBySql("SELECT isnull(sum([vk_Betrag]),0)FROM [tblVorauskassen] where vk_KdNr = '" & KundenNrZentrale & "' and vk_GeldEingetroffen=0 and vk_Datum > DATEADD(year,-1, GETDATE())
and vk_storno=0 and (SELECT count(*) FROM Rechnungsausgang RG WHERE RG.FilialenNr = vk_FilialeNr and RG.AbfertigungsNr= vk_AbfertigungsNr and vk_KdNr=rg.RechnungsKundenNr) =0", "FMZOLL")
End Function
Sub initDGVOffenePostenVERAG()
With dgvOffenePosten
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 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 & ")")
End If
.DataSource = SQL.loadDgvBySql("SELECT [Kontonummer] as KdNr,[Belegdatum] as Datum,[Belegnummer] as Nummer,[Bruttobetrag] as Betrag,[Gesamtausstand] as [OP-Saldo],[Waehrung] as 'Währ.',[KumSaldoEUR],[Mahnstufe] as M, [Fälligkeitsdatum] as 'fällig am' ,[Buchungstext] as Referenz " &
" FROM [Offene Posten] " &
" WHERE [Kontonummer]='" & KUNDE.KundenNrZentrale & "' " & where & " ORDER BY OP_ID DESC /*, Belegdatum DESC*/", "FMZOLL")
If .DataSource Is Nothing Then Exit Sub
If .Columns.Count = 0 Then Exit Sub
.Columns(0).Visible = False
.Columns(1).Width = 70
.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns(2).Width = 80
.Columns(3).Width = 75
.Columns(3).DefaultCellStyle.Format = "N2"
.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns(4).Width = 75
.Columns(4).DefaultCellStyle.Format = "N2"
.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns(5).Width = 40
.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns(6).Width = 80
.Columns(6).DefaultCellStyle.Format = "N2"
.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns(7).Width = 20
.Columns(6).DefaultCellStyle.Format = "N0"
.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns(8).Width = 70
.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns(9).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
Dim OP_tmp As Double = 0
If cboFirmaFMZOLL._value <> "" Then
If .RowCount > 0 Then OP_tmp = If(.Rows(0).Cells("KumSaldoEUR").Value, 0)
Else
Dim where2 = If(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FirmenDatenAnzeige.contains("A"), "", " AND Firma_ID IN(" & VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FirmenDatenAnzeige & ")")
Dim dt_OP As DataTable = SQL.loadDgvBySql("select isnull((select TOP 1 isnull(KumSaldoEUR,0) as abc FROM [Offene Posten] WHERE [Kontonummer]='" & KUNDE.KundenNrZentrale & "' and [Offene Posten].Firma_ID=tblFirma.Firma_ID ORDER BY Belegdatum DESC),0) From tblFirma WHERE 1=1 " & where2, "FMZOLL")
If dt_OP IsNot Nothing Then
For Each r In dt_OP.Rows
OP_tmp += r(0)
Next
End If
End If
Dim sumVK As Double
If VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("KUNDE_VK_OP") Then
sumVK = getOffeneVK(KUNDE.KundenNrZentrale)
' OP_tmp += sumVK
End If
Dim zahlungsziel = 10
Dim sumZZ As Double = 0
Dim sumNOTZZ As Double = 0
Dim sumCredit As Double = 0
If IsNumeric(KUNDE.Zahlungsziel) Then zahlungsziel = KUNDE.Zahlungsziel
Try
For Each r As DataGridViewRow In .Rows
If DateDiff(DateInterval.Day, CDate(r.Cells("Datum").Value), Now) > zahlungsziel Then
If CDbl(r.Cells("OP-Saldo").Value) > 0 Then sumZZ += CDbl(r.Cells("OP-Saldo").Value)
Else
If CDbl(r.Cells("OP-Saldo").Value) > 0 Then sumNOTZZ += CDbl(r.Cells("OP-Saldo").Value)
End If
If CDbl(r.Cells("OP-Saldo").Value) < 0 Then sumCredit += CDbl(r.Cells("OP-Saldo").Value)
Next
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End With
End Sub
Private Sub cboFirmaFMZOLL_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboFirmaFMZOLL.SelectedIndexChanged
If loaded Then
initDGVOffenePosten()
End If
End Sub
End Class