Merge branch 'newMaster2024' of https://dev.azure.com/VeragAG/_git/SDL into newMaster2024

This commit is contained in:
2025-04-23 15:00:38 +02:00
5 changed files with 157 additions and 48 deletions

View File

@@ -8,9 +8,6 @@ Public Class cAutomailversand
Try
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
Dim rechnungenMailversand = "SELECT RechnungsNr,RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0) as keineMWST, max(Rechnungsausgang.[RechnungsLandKz]) as RechnungsLandKz, MitgliedslandEU, sum(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer FROM Rechnungsausgang
LEFT JOIN tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
INNER JOIN Währungstabelle on LandKz = Rechnungsausgang.RechnungsLandKz
@@ -103,7 +100,6 @@ Public Class cAutomailversand
End If
'TODO: nach TEST deaktivieren!
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
MailTo = ""
MailtoCC = ""

View File

@@ -1,6 +1,7 @@
Imports System.IO
Imports System.Reflection
Imports System.Windows.Documents
Imports com
Imports itextsharp.text.pdf
Imports itextsharp.text.pdf.parser
Imports Microsoft.Office.Interop
@@ -72,7 +73,7 @@ Public Class frmMDM_USTVAntrag
' left join [tblUStVLeistender] as leist on leist.UStV_Leistender = [tblUStVPositionen].[UStVPo_Leistender]
' where UStVAn_ID='" & UStVAn_ID & "' ORDER BY UStVPo_ID", "FMZOLL")
.SET_SQL("SELECT [UStVAn_ID] ,[UStVPo_ID] ,[UStVPo_ReDat],[UStVPo_ReNr],[UStVPo_Leistungsbezeichnung],[UStVPo_Leistender],leist.[UstV_Leistender_Strasse] + ' ' + leist.[UstV_Leistender_StrasseNr] as [UstV_Leistender_Strasse],leist.[UstV_Leistender_PLZ],leist.[UstV_Leistender_Stadt],leist.[UstV_Leistender_Land],leist.[UstV_Leistender_UstNr],[UStVPo_USteuerbetrag],[UStVPo_Schnittstelle],[UStVPo_SchnittstellenNr],[UStVPo_Umrechnungskurs],[UStVPo_USteuerbetragEUR],[UStVPo_Sachbearbeiter], [UStVPo_daId]
.SET_SQL("SELECT [UStVAn_ID] ,[UStVPo_ID] ,[UStVPo_ReDat],[UStVPo_ReNr],[UStVPo_Leistungsbezeichnung],[UStVPo_Leistender],leist.[UstV_Leistender_Strasse] + ' ' + leist.[UstV_Leistender_StrasseNr] as [UstV_Leistender_Strasse],leist.[UstV_Leistender_PLZ],leist.[UstV_Leistender_Stadt],leist.[UstV_Leistender_Land],leist.[UstV_Leistender_UstNr],[UStVPo_USteuerbetrag],[UStVPo_Schnittstelle],[UStVPo_SchnittstellenNr],[UStVPo_Umrechnungskurs],[UStVPo_USteuerbetragEUR],[UStVPo_Sachbearbeiter], [UStVPo_daId], [UStVPo_daId_loeschbar]
FROM [tblUStVPositionen]
LEFT JOIN [tblUStVLeistender] as leist
ON ([tblUStVPositionen].[UStVPo_LeistenderId] > 0
@@ -152,6 +153,8 @@ Public Class frmMDM_USTVAntrag
.Columns("UStVPo_daId").Visible = False
.Columns("UStVPo_daId_loeschbar").Visible = False
Dim c As New DataGridViewImageColumn
c.Name = "clmnPDF" : c.HeaderText = "RE"
@@ -272,10 +275,9 @@ Public Class frmMDM_USTVAntrag
Else
Button4.Text = "Sped.-Buch eintragen"
End If
End If
If posIndex > 0 Then
If posIndex > 0 Then
posIndex = posIndex - 1
If posIndex > 0 And dgvUSTVPositionen.Rows.Count > posIndex Then
dgvUSTVPositionen.ClearSelection()
@@ -1286,7 +1288,13 @@ Public Class frmMDM_USTVAntrag
Dim USTV_ANTRAG = New VERAG_PROG_ALLGEMEIN.cUSTVAntrag()
Dim ADR As New cAdressen(KundenNr)
Dim ERW As New cKundenErweitert(KundenNr)
Dim FIRMA As New cFirmen(1)
Dim FIRMA As New cFirmen(1) 'Nr 1 weil weil Kontodaten von Verag.....
If KundenNr < 0 Then
MsgBox("Kunde auswählen!")
Exit Sub
End If
If ERW.kde_keineMWSt Then
If Not vbYes = MsgBox("Der ausgewählte Kunde " & ADR.Name_1 & " ist als KEIN MWST-Kunde deklariert!" & vbNewLine & "Trotzdem Antrag speichern?", vbYesNoCancel) Then Exit Sub
@@ -1312,8 +1320,8 @@ Public Class frmMDM_USTVAntrag
'check if already existing
Dim anzUSTVA = CInt((New SQL).getValueTxtBySql("Select count(*) from tblUStVAntrag where UStvAN_KuNr = " & KundenNr & " and isnull(UStVAn_AntragArt,'MWST') = '" & cboAntragArt._value & "' and UStVAn_LandNr = " & USTV_ANTRAG.UStVAn_LandNr & "
AND (cast(UStVAn_ReDatvon as date) <= '" & CDate(txtVon._value).ToShortDateString & "' and cast(UStVAn_ReDatBis as date) >= '" & CDate(txtBis._value).ToShortDateString & "' or cast(UStVAn_ReDatvon as date) >= '" & CDate(txtBis._value).ToShortDateString & "' or cast(UStVAn_ReDatbis as date) >= '" & CDate(txtVon._value).ToShortDateString & "')", "FMZOLL"))
Dim anzUSTVA = CInt((New SQL).getValueTxtBySql("Select count(*) from tblUStVAntrag where UStvAN_KuNr = " & KundenNr & " and (isnull(UStVAn_AntragArt,'MWST') = '" & cboAntragArt._value & "' or UStVAn_AntragArt = '') and UStVAn_LandNr = " & USTV_ANTRAG.UStVAn_LandNr & "
AND not((cast(UStVAn_ReDatvon as date) > '" & CDate(txtVon._value).ToShortDateString & "' or cast(UStVAn_ReDatBis as date) < '" & CDate(txtBis._value).ToShortDateString & "'))", "FMZOLL"))
If anzUSTVA > 0 Then
If Not vbYes = MsgBox("Es existiert bereits mind. ein " & cboAntragArt._value & " -Eintrag in diesem Zeitbereich von " & ADR.Name_1 & " für " & cbxLand.SelectedItem.ToString & vbNewLine & "Trotzdem Antrag speichern?", vbYesNoCancel) Then Exit Sub
@@ -1321,15 +1329,15 @@ Public Class frmMDM_USTVAntrag
USTV_ANTRAG.UStVAn_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
USTV_ANTRAG.UStVAn_Zeitstempel = Now()
USTV_ANTRAG.UStVAn_Zeitstempel = Now()
getValue(USTV_ANTRAG, ADR, FIRMA)
getValue(USTV_ANTRAG, ADR, FIRMA)
Me.UStVAn_ID = USTV_ANTRAG.SAVEID()
Me.UStVAn_ID = USTV_ANTRAG.SAVEID()
init()
init()
End If
End If
End Sub
@@ -1616,16 +1624,39 @@ Public Class frmMDM_USTVAntrag
If UstCntlUSTV_AntragPosition1.cbxAPI IsNot Nothing AndAlso UstCntlUSTV_AntragPosition1.cboSchnittstellennr._value IsNot Nothing Then
If setArchiv(UstCntlUSTV_AntragPosition1.cboSchnittstellennr._value, UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReDat, UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReNr, UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_Leistungsbezeichnung) Then
If UstCntlUSTV_AntragPosition1.UStV_POS.DELETE(UstCntlUSTV_AntragPosition1.UStV_POS.UStVAn_ID, UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ID) Then
reorderUSTVAPositions(UstCntlUSTV_AntragPosition1.UStV_POS.UStVAn_ID)
If UstCntlUSTV_AntragPosition1.cboSchnittstellennr._value = -1 OrElse UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_daId_loeschbar Then 'nur Dokumente löschen, die nicht über Schnittstellen geladen wurden!
If UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_daId < 0 Then
Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "MDM", "MDM_DATEN", "USTVA_" & UstCntlUSTV_AntragPosition1.UStV_POS.UStVAn_ID & "_" & UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ID, "SONSTIGE", USTV_ANTRAG.UStVAn_KuNr)
If DS IsNot Nothing Then
DS.DELETE_COMPLETE()
End If
ElseIf UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_daId > 0 Then
Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER(UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_daId)
If DS IsNot Nothing AndAlso DS.da_id IsNot Nothing Then
DS.DELETE_COMPLETE()
End If
End If
init()
End If
End If
UstCntlUSTV_AntragPosition1.Enabled = False
If setArchiv(UstCntlUSTV_AntragPosition1.cboSchnittstellennr._value, UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReDat, UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReNr, UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_Leistungsbezeichnung) Then
If UstCntlUSTV_AntragPosition1.UStV_POS.DELETE(UstCntlUSTV_AntragPosition1.UStV_POS.UStVAn_ID, UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ID) Then
reorderUSTVAPositions(UstCntlUSTV_AntragPosition1.UStV_POS.UStVAn_ID)
End If
init()
End If
End If
UstCntlUSTV_AntragPosition1.Enabled = False
End If
End Sub
@@ -2533,26 +2564,48 @@ Public Class frmMDM_USTVAntrag
If r.Cells("UStVPo_Schnittstelle").Value IsNot Nothing AndAlso r.Cells("UStVPo_SchnittstellenNr").Value IsNot Nothing AndAlso IsNumeric(r.Cells("UStVPo_SchnittstellenNr").Value) Then
'UstCntlUSTV_AntragPosition1.Antrag_LandKz
If r.Cells("UStVPo_SchnittstellenNr").Value = -1 OrElse r.Cells("UStVPo_daId_loeschbar").Value Then 'nur Dokumente löschen, die nicht über Schnittstellen geladen wurden oder löschbar sind!
If Not IsDBNull(r.Cells("UStVPo_daId").Value) Then
If r.Cells("UStVPo_daId").Value Is Nothing Then
Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "MDM", "MDM_DATEN", "USTVA_" & UStVAn_ID & "_" & r.Cells("UStVPo_ID").Value, "SONSTIGE", USTV_ANTRAG.UStVAn_KuNr)
If DS IsNot Nothing AndAlso DS.da_id IsNot Nothing Then
DS.DELETE_COMPLETE()
End If
ElseIf r.Cells("UStVPo_daId").Value > 0 Then
Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER(r.Cells("UStVPo_daId").Value)
If DS IsNot Nothing AndAlso DS.da_id IsNot Nothing Then
DS.DELETE_COMPLETE()
End If
End If
End If
End If
If setArchiv(r.Cells("UStVPo_SchnittstellenNr").Value, r.Cells("UStVPo_ReDat").Value, r.Cells("UStVPo_ReNr").Value, r.Cells("UStVPo_Leistungsbezeichnung").Value) Then
Dim sqlstr = " DELETE FROM tblUStVPositionen WHERE UStVAn_ID=" & Me.UStVAn_ID & " AND UStVPo_ID=" & r.Cells("UStVPo_ID").Value
If Not SQL.doSQL(sqlstr, "FMZOLL") Then
Exit Sub
End If
Dim sqlstr = " DELETE FROM tblUStVPositionen WHERE UStVAn_ID=" & Me.UStVAn_ID & " AND UStVPo_ID=" & r.Cells("UStVPo_ID").Value
If Not SQL.doSQL(sqlstr, "FMZOLL") Then
Exit Sub
End If
End If
End If
Next
reorderUSTVAPositions(Me.UStVAn_ID)
init()
UstCntlUSTV_AntragPosition1.Enabled = False
End If
End If
e.Handled = True
Next
reorderUSTVAPositions(Me.UStVAn_ID)
init()
UstCntlUSTV_AntragPosition1.Enabled = False
End If
End If
e.Handled = True
End If

View File

@@ -519,6 +519,8 @@ Public Class frmUSTVoffeneAntraege
Dim SQLPLOSEUMSTELLUNG = ""
Dim year = CDate(dat_Sum_Von.Value).Year
If kdnr > 0 Then
sqlwherePLOSE &= " and AdressenNr = " & kdnr 'sqlwherePLOSE &= " and plose_POLSEKundennummer = " & kdnr
sqlwhereIDS &= " and AdressenNr = " & kdnr 'sqlwhereIDS &= " and tblIDSTransactionsNew.KdNrVERAG = " & kdnr
@@ -555,14 +557,12 @@ Public Class frmUSTVoffeneAntraege
If dtkeineMWST.Rows.Count > 0 AndAlso kundenLandISO2 <> "" Then
Dim isEU As Boolean = dTLANDEU.AsEnumerable().Where(Function(res) res.Field(Of String)("LandKz") = kundenLandISO2).Select(Function(res) res.Field(Of Boolean)("MitgliedslandEU")).FirstOrDefault()
'TODO: eig soll nur PLOSE Datensätze bei nicht EU-Kunden angeizeigt werden (also bei NICHT EU -> IDS weg (nur IDS-AT)!!!!!!!!!!
Dim selectString As String = "Land = '" & kundenLandISO2 & "'" & " AND Lieferant <> 'IDS'"
Dim dtkeineMWST_ohneContraint As DataTable = dtkeineMWST.Select(selectString).CopyToDataTable
Dim counter = 0
Dim landBez As String = ""
@@ -573,8 +573,26 @@ Public Class frmUSTVoffeneAntraege
Next
sqlwhereLand &= " AND Einreichland not in (" & landBez & ")"
End If
'eig soll nur PLOSE Datensätze bei nicht EU-Kunden angezeigt werden (also bei NICHT EU -> IDS weg (nur IDS-AT)!!!!!!!!!!
Dim isEU As Boolean = dTLANDEU.AsEnumerable().Where(Function(res) res.Field(Of String)("LandKz") = kundenLandISO2).Select(Function(res) res.Field(Of Boolean)("MitgliedslandEU")).FirstOrDefault()
If Not isEU Then
Dim selectStringIDS As String = "Land = '" & kundenLandISO2 & "'" & " AND Lieferant = 'IDS'"
Dim dtkeineMWST_ohneContraintIDS As DataTable = dtkeineMWST.Select(selectStringIDS).CopyToDataTable
Dim counterIDS = 0
Dim landBezIDS As String = ""
For Each row As DataRow In dtkeineMWST_ohneContraintIDS.Rows
landBezIDS &= "'" & row.Item("Erstattungsland") & "'"
counterIDS = counterIDS + 1
If (dtkeineMWST_ohneContraintIDS.Rows.Count <> 0 And counterIDS <> dtkeineMWST_ohneContraintIDS.Rows.Count) Then landBezIDS &= ","
Next
sqlwhereIDS &= " AND tbl_IDS_Länder.Lieferland_ISO2 not in (" & landBezIDS & ")"
End If
End If
@@ -610,9 +628,6 @@ Public Class frmUSTVoffeneAntraege
Dim year = CDate(dat_Sum_Von.Value).Year
If year >= 2025 Then
SQLPLOSEUMSTELLUNG = "

View File

@@ -814,14 +814,42 @@ Public Class usrCntlUSTV
Exit Sub
End If
'1. zuerst prüfen ob Pos aus Schnittstelle und ggf. unterbinden
For Each pos In del_antrag.POSITIONEN
If pos.UStVPo_SchnittstellenNr > 0 Then
MsgBox("Antrag enthält Positionen, die über die Schnittstelle geladen wurden." & vbNewLine & "Positionen manuell löschen.")
MsgBox("Antrag enthält Positionen, die über die Schnittstelle geladen wurden." & vbNewLine & "Positionen manuell löschen!")
Exit Sub
End If
Next
'2. nur Dokumente löschen, die nicht über Schnittstellen geladen wurden oder löschbar sind!
For Each pos In del_antrag.POSITIONEN
If pos.UStVPo_SchnittstellenNr < 0 OrElse pos.UStVPo_daId_loeschbar Then
If pos.UStVPo_daId < 0 Then
Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "MDM", "MDM_DATEN", "USTVA_" & pos.UStVAn_ID & "_" & pos.UStVPo_ID, "SONSTIGE", del_antrag.UStVAn_KuNr)
If DS IsNot Nothing Then DS.DELETE_COMPLETE()
ElseIf pos.UStVPo_daId > 0 Then
Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER(pos.UStVPo_daId)
If DS IsNot Nothing AndAlso DS.da_id IsNot Nothing Then
DS.DELETE_COMPLETE()
End If
End If
End If
Next
If del_antrag.DELETE() Then
init()
End If

View File

@@ -1,4 +1,5 @@
Imports VERAG_PROG_ALLGEMEIN
Imports GrapeCity.DataVisualization.Chart
Imports VERAG_PROG_ALLGEMEIN
Public Class frmLogin
Public ConnStrInfo As String
@@ -76,20 +77,36 @@ Public Class frmLogin
ElseIf PARAM = "SAMMELRECHNUNG_AUTOSENT" Then
Dim REDat
If Today().Day < 15 Then
'vor 15, letzer Monat Monatsletzter!
If Today().Month <> 1 Then
'Monatsletzter aus Vorjahr
REDat = New Date(Today.Year, Today.Month - 1, DateTime.DaysInMonth(Today().Year, Today.Month - 1))
Else
REDat = New Date(Today.Year - 1, 12, DateTime.DaysInMonth(Today().Year - 1, 12))
End If
ElseIf Today().Day >= 15 Then
REDat = New Date(Today.Year, Today.Month, 15)
End If
Dim SRT_ART As Integer = 6
Dim REDat As New Date(2025, 3, 15)
Dim FirmaID As Integer = 19
If (parameter.Count - 1) >= 4 Then 'Höher als 1 weil der index 0 der Pfad zum programm ist
If IsNumeric(parameter(2)) Then SRT_ART = parameter(2)
If IsDate(parameter(3)) Then REDat = CDate(parameter(3))
If IsNumeric(parameter(3)) Then FirmaID = parameter(3)
If IsNumeric(parameter(4)) Then VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = IIf(parameter(4) = 0, True, False)
End If
Dim func As New cAutomailversand
Dim func As New cAutomailversand
func.sendMailSammelrechnung(REDat, SRT_ART, FirmaID)