diff --git a/SDL/Fakturierung/cAutomailversand.vb b/SDL/Fakturierung/cAutomailversand.vb index 62d456cc..1705ed91 100644 --- a/SDL/Fakturierung/cAutomailversand.vb +++ b/SDL/Fakturierung/cAutomailversand.vb @@ -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 = "" diff --git a/SDL/USTV/frmMDM_USTVAntrag.vb b/SDL/USTV/frmMDM_USTVAntrag.vb index 08a8d09c..b86ab828 100644 --- a/SDL/USTV/frmMDM_USTVAntrag.vb +++ b/SDL/USTV/frmMDM_USTVAntrag.vb @@ -1288,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 @@ -1314,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 diff --git a/SDL/USTV/frmUSTVoffeneAntraege.vb b/SDL/USTV/frmUSTVoffeneAntraege.vb index 47aef502..90134b07 100644 --- a/SDL/USTV/frmUSTVoffeneAntraege.vb +++ b/SDL/USTV/frmUSTVoffeneAntraege.vb @@ -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 = " diff --git a/SDL/frmLogin.vb b/SDL/frmLogin.vb index e9d21c22..3df3afc7 100644 --- a/SDL/frmLogin.vb +++ b/SDL/frmLogin.vb @@ -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)