automailversand, ustva, etc.

This commit is contained in:
2025-04-23 14:38:37 +02:00
parent 238440f9ae
commit d59971583e
4 changed files with 53 additions and 19 deletions

View File

@@ -8,9 +8,6 @@ Public Class cAutomailversand
Try Try
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL 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 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 LEFT JOIN tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
INNER JOIN Währungstabelle on LandKz = Rechnungsausgang.RechnungsLandKz INNER JOIN Währungstabelle on LandKz = Rechnungsausgang.RechnungsLandKz
@@ -103,7 +100,6 @@ Public Class cAutomailversand
End If End If
'TODO: nach TEST deaktivieren!
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
MailTo = "" MailTo = ""
MailtoCC = "" MailtoCC = ""

View File

@@ -1288,7 +1288,13 @@ Public Class frmMDM_USTVAntrag
Dim USTV_ANTRAG = New VERAG_PROG_ALLGEMEIN.cUSTVAntrag() Dim USTV_ANTRAG = New VERAG_PROG_ALLGEMEIN.cUSTVAntrag()
Dim ADR As New cAdressen(KundenNr) Dim ADR As New cAdressen(KundenNr)
Dim ERW As New cKundenErweitert(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 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 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
@@ -1314,8 +1320,8 @@ Public Class frmMDM_USTVAntrag
'check if already existing '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 & " 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 (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")) 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 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 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

View File

@@ -519,6 +519,8 @@ Public Class frmUSTVoffeneAntraege
Dim SQLPLOSEUMSTELLUNG = "" Dim SQLPLOSEUMSTELLUNG = ""
Dim year = CDate(dat_Sum_Von.Value).Year
If kdnr > 0 Then If kdnr > 0 Then
sqlwherePLOSE &= " and AdressenNr = " & kdnr 'sqlwherePLOSE &= " and plose_POLSEKundennummer = " & kdnr sqlwherePLOSE &= " and AdressenNr = " & kdnr 'sqlwherePLOSE &= " and plose_POLSEKundennummer = " & kdnr
sqlwhereIDS &= " and AdressenNr = " & kdnr 'sqlwhereIDS &= " and tblIDSTransactionsNew.KdNrVERAG = " & 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 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 selectString As String = "Land = '" & kundenLandISO2 & "'" & " AND Lieferant <> 'IDS'"
Dim dtkeineMWST_ohneContraint As DataTable = dtkeineMWST.Select(selectString).CopyToDataTable Dim dtkeineMWST_ohneContraint As DataTable = dtkeineMWST.Select(selectString).CopyToDataTable
Dim counter = 0 Dim counter = 0
Dim landBez As String = "" Dim landBez As String = ""
@@ -573,8 +573,26 @@ Public Class frmUSTVoffeneAntraege
Next Next
sqlwhereLand &= " AND Einreichland not in (" & landBez & ")" sqlwhereLand &= " AND Einreichland not in (" & landBez & ")"
'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
End If
@@ -610,9 +628,6 @@ Public Class frmUSTVoffeneAntraege
Dim year = CDate(dat_Sum_Von.Value).Year
If year >= 2025 Then If year >= 2025 Then
SQLPLOSEUMSTELLUNG = " SQLPLOSEUMSTELLUNG = "

View File

@@ -1,4 +1,5 @@
Imports VERAG_PROG_ALLGEMEIN Imports GrapeCity.DataVisualization.Chart
Imports VERAG_PROG_ALLGEMEIN
Public Class frmLogin Public Class frmLogin
Public ConnStrInfo As String Public ConnStrInfo As String
@@ -76,19 +77,35 @@ Public Class frmLogin
ElseIf PARAM = "SAMMELRECHNUNG_AUTOSENT" Then 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 SRT_ART As Integer = 6
Dim REDat As New Date(2025, 3, 15)
Dim FirmaID As Integer = 19 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 (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 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(3)) Then FirmaID = parameter(3)
If IsNumeric(parameter(4)) Then VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = IIf(parameter(4) = 0, True, False)
End If End If
Dim func As New cAutomailversand Dim func As New cAutomailversand
func.sendMailSammelrechnung(REDat, SRT_ART, FirmaID) func.sendMailSammelrechnung(REDat, SRT_ART, FirmaID)