From c785d1eb4745a96f554beefa02ce7f7e3e718900 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Mon, 10 Mar 2025 11:43:21 +0100 Subject: [PATCH] Fakt, MDM, ustva --- SDL/Fakturierung/cFakturierung.vb | 5 ++- SDL/Fakturierung/frmFaktEmail.vb | 30 ++++++++++----- .../frmFaktSammelRgDrucken.Designer.vb | 2 +- SDL/Fakturierung/frmFaktSammelRgDrucken.vb | 38 ++++++++++++------- SDL/USTV/frmMDM_USTVAntrag.vb | 4 +- SDL/USTV/usrCntlUSTV.vb | 12 +++--- SDL/seriendruck/usrCntlFakturierung.vb | 2 +- 7 files changed, 58 insertions(+), 35 deletions(-) diff --git a/SDL/Fakturierung/cFakturierung.vb b/SDL/Fakturierung/cFakturierung.vb index 2bbc800e..63d9deb5 100644 --- a/SDL/Fakturierung/cFakturierung.vb +++ b/SDL/Fakturierung/cFakturierung.vb @@ -2917,6 +2917,7 @@ Public Class cFakturierung Public Shared Function doSAMMELRechnungsDruck(Firma_ID As Integer, SammelrechungArt As Integer, DatumBis As Date, Rechnungsdatum As Date, PrinterName As String, Optional AnlageEinzelRg As Boolean = True, Optional Sammelrechnungsbericht As Boolean = True, Optional whereKdNr As String = "", Optional RechnungsdruckArt As Integer = -1, Optional ByRef listPDFs As List(Of String) = Nothing, Optional SB As String = "", ByRef Optional lastAktuelle_RgNr As Integer = -1, ByRef Optional DruckdatumUhrzeit As DateTime = Nothing, Optional AvisoIds As List(Of Integer) = Nothing, Optional AnlageExcelEvolog As Boolean = False, Optional ByRef SonstAnlagen As List(Of String) = Nothing, Optional vorschau As Boolean = False, Optional AnlageExcelTransferry360 As Boolean = False, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional MDMRENrvoarhanden As Boolean = False, Optional MDMREkopie As Integer = False) As Boolean 'RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "") As Boolean 'If RECHNUNG Is Nothing Then MsgBox("Fehler beim Laden der Rechnungsdaten!") : Return False Try + 'If whereKdNr <> "" Then whereKdNr = " AND RechnungsKundenNr IN(" & whereKdNr & ") " 'Dim sqlStr = " SELECT Rechnungsausgang.RK_ID, Rechnungsausgang.Firma_ID, Rechnungsausgang.FilialenNr, Rechnungsausgang.RechnungsKundenNr, Rechnungsausgang.BelegartenNr, Rechnungsausgang.[Steuersatz %], Rechnungsausgang.Lastschrift, Rechnungsausgang.Währungscode, Rechnungsausgang.AvisoID, Rechnungsausgang.RechnungsNr, Rechnungsausgang.RechnungsDatum, Rechnungsausgang.DruckDatumZeit, Rechnungsausgang.Status, Rechnungsausgang.Sammelrechnung, Rechnungsausgang.Abfertigungsdatum, Rechnungsausgang.Buchungsjahr ' From Rechnungsausgang @@ -2928,6 +2929,7 @@ Public Class cFakturierung 'Else ' sqlStr &= " ORDER BY Rechnungsausgang.Firma_ID, Rechnungsausgang.RechnungsKundenNr,Rechnungsausgang.FilialenNr,Rechnungsausgang.AbfertigungsNr, Rechnungsausgang.BelegartenNr, Rechnungsausgang.[Steuersatz %], Rechnungsausgang.Lastschrift, Rechnungsausgang.Währungscode, Rechnungsausgang.AvisoID " 'End If + Dim VorschauID = "" If vorschau Then VorschauID = Now.ToString("dd.MM.yyyy HH:mm:ss.fff") & "_" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & "_" & Firma_ID @@ -3015,9 +3017,10 @@ Public Class cFakturierung RG.[Status] = 2 'Bei MDM Abrechnung; Druck später!! Else RG.[Status] = 4 ' Beim finalen Versenden der Sammelrechnung + If RG.RechnungsNr >= 0 Then Aktuelle_RgNr = RG.RechnungsNr End If - Else + Else RG.[Status] = 3 End If diff --git a/SDL/Fakturierung/frmFaktEmail.vb b/SDL/Fakturierung/frmFaktEmail.vb index 26b7e51f..04f2f0e5 100644 --- a/SDL/Fakturierung/frmFaktEmail.vb +++ b/SDL/Fakturierung/frmFaktEmail.vb @@ -385,12 +385,13 @@ Public Class frmFaktEmail '----------------------------------------------------------------- Dim RechnungsNrisSet As Boolean = False Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(KdNr) - If RechnungsNr <= 0 Then 'Bei Sammelrechnung 6 ist immer bereits eine RE-Nr vergeben! + If RechnungsNr <= 0 Then RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(Firma_ID, SammelrechungArt, DatumBis, Rechnungsdatum, "", EinzelAnlagen, Sammelbericht, KdNr, 4, listPDFs, SB, lastAktuelle_RgNr, DruckDatumZeit, AvisoIds, cbxExcelEvolog.Checked, SonstAnlagen,, cbxTransFerry.Checked, FakturierungsGruppe, Abfertigungsart) RechnungsNr = lastAktuelle_RgNr Else Dim path = "" + 'Bei Sammelrechnung 6 ist immer bereits eine RE-Nr vergeben! If SammelrechungArt = 6 Then RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(19, SammelrechungArt, DatumBis, Rechnungsdatum, "", EinzelAnlagen, Sammelbericht, KdNr, 4, listPDFs, SB, lastAktuelle_RgNr, DruckDatumZeit, AvisoIds, cbxExcelEvolog.Checked, SonstAnlagen,, cbxTransFerry.Checked, FakturierungsGruppe, Abfertigungsart, True, cbxMDMReKopie.Checked) Else @@ -421,20 +422,29 @@ Public Class frmFaktEmail Mail = outl.CreateItem(0) Mail.Subject = txtSubject.Text - If Firma_ID = 24 Then + If Firma_ID = 24 OrElse Firma_ID = 19 Then Try Dim oAccount As Outlook.Account - Dim accountToSent = SDL.cFakturierung.getDefaultMail("AMBAR",, True) + Dim accountToSent = "" + Select Case Firma_ID + Case 24 + accountToSent = SDL.cFakturierung.getDefaultMail("AMBAR",, True) + Case Else + accountToSent = "mmdabrechnung@verag.ag" 'bewusst falsch geschrieben!!!! + End Select - If outl.Session.Accounts.Count > 0 Then - For Each oAccount In outl.Session.Accounts - If oAccount.SmtpAddress = accountToSent Then - Mail.SendUsingAccount = oAccount - Exit For - End If - Next + If accountToSent <> "" Then + If outl.Session.Accounts.Count > 0 Then + For Each oAccount In outl.Session.Accounts + If oAccount.SmtpAddress = accountToSent Then + Mail.SendUsingAccount = oAccount + Exit For + End If + Next + End If End If + Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Fehler beim Ermitteln des Mail-Accounts." & ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb index d72c5a98..934530ca 100644 --- a/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb +++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb @@ -516,7 +516,7 @@ Partial Class frmFaktSammelRgDrucken ' 'cbxMWST ' - Me.cbxMWST.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.cbxMWST.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.cbxMWST.AutoSize = True Me.cbxMWST.Checked = True Me.cbxMWST.CheckState = System.Windows.Forms.CheckState.Indeterminate diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb index 2cb68569..446ad6a1 100644 --- a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb +++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb @@ -83,7 +83,7 @@ Public Class frmFaktSammelRgDrucken " & If(cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "' ", "") & " " & whereAbfArt & " " & whereMWST & " GROUP BY RechnungsKundenNr, isnull(tblKundenErweitert.kde_keineMWSt,0) - ORDER BY Rechnungsausgang.RechnungsKundenNr " + ORDER BY RechnungsLandKz, RechnungsKundenNr " Case Else @@ -110,6 +110,7 @@ Public Class frmFaktSammelRgDrucken .Columns("Summe").DefaultCellStyle.Format = "#,##0.00 €" .Columns("Summe").Width = 80 .Columns("RechnungsLandKz").Visible = False + .Columns("RechnungsLandKz").HeaderText = "Land" .Columns("Anzahl").Width = 42 .Columns("Rechnungsdruck").Width = 80 .Columns("Rechnungsdruck").HeaderText = "Rg.Art" @@ -120,6 +121,10 @@ Public Class frmFaktSammelRgDrucken .Columns("LKW").Width = 80 End If + If .Columns.Contains("RechnungsLandKz") AndAlso Sammelrechung Then + .Columns("RechnungsLandKz").Visible = True + End If + If .Columns.Contains("keineMWST") Then .Columns("keineMWST").Visible = False End If @@ -304,27 +309,32 @@ Public Class frmFaktSammelRgDrucken 'AKTUELL IMMER MIT KOPIE Dim MDMKopiedrucken As Boolean = True - 'wenn das senden der Originale per POST wegfällt, dann untere Logik aktivieren! - + Dim reLandKZ As String = MyDatagridview1.Rows(0).Cells("RechnungsLandKz").Value + Dim isEU As Boolean = dTLANDEU.AsEnumerable().Where(Function(res) res.Field(Of String)("LandKz") = reLandKZ).Select(Function(res) res.Field(Of Boolean)("MitgliedslandEU")).FirstOrDefault() '1. Schritt KOPIE generell außer ORIGINALE AN NICHT MWST-Kunden - 'Dim reLandKZ As String = MyDatagridview1.Rows(0).Cells("RechnungsLandKz").Value - 'Dim isEU As Boolean = dTLANDEU.AsEnumerable().Where(Function(res) res.Field(Of String)("LandKz") = reLandKZ).Select(Function(res) res.Field(Of Boolean)("MitgliedslandEU")).FirstOrDefault() - 'If Not isEU Then - ' If MyDatagridview1.Columns.Contains("keineMWST") Then - ' If MyDatagridview1.SelectedRows.Count = 1 Then MDMKopiedrucken = Not MyDatagridview1.SelectedRows(0).Cells("keineMWST").Value - ' End If - '2. Schritt MWST Kunde -> wenn ohne MWST-BEtrag ->Original sonst Kopie! - ' If MDMKopiedrucken Then - ' MDMKopiedrucken = CDbl(MyDatagridview1.SelectedRows(0).Cells("Steuer").Value) <> 0 - ' End If + If isEU Then + If MyDatagridview1.Columns.Contains("keineMWST") Then + If MyDatagridview1.SelectedRows.Count = 1 Then + 'wenn kein MWST-Kunde, bekommt er Original-RE! + MDMKopiedrucken = Not MyDatagridview1.SelectedRows(0).Cells("keineMWST").Value + End If + End If + '2. Schritt MWST Kunde -> wenn ohne MWST-BEtrag ->Original sonst Kopie! + If MDMKopiedrucken Then + MDMKopiedrucken = CDbl(MyDatagridview1.SelectedRows(0).Cells("Steuer").Value) <> 0 + End If - 'End If + Else + + End If Dim f As New frmFaktEmail(cboFirma._value, Sammelrechung, CDate(txtZeitraumBis.Text), CDate(txtRechnungsdatum.Text), cboPrinter.Text, RG_DRUCK, cbxEinzelAnlagen.Checked, cbxSammelbericht.Checked, getSelectionKdNr_Simple, -1, Nothing, cboSB._value,, getAvisoIds, cbxEVOLOG.Checked, cbxTransFerry.Checked, cboFaktGrp._value, cboAbfertigungsart._value, MDMKopiedrucken) f.ShowDialog(Me) + MyDatagridview1.GetOrder() initDGV() + MyDatagridview1.SetOrder() 'Else ' doSammelrechnung(2) 'End If diff --git a/SDL/USTV/frmMDM_USTVAntrag.vb b/SDL/USTV/frmMDM_USTVAntrag.vb index 72fb963f..f950d965 100644 --- a/SDL/USTV/frmMDM_USTVAntrag.vb +++ b/SDL/USTV/frmMDM_USTVAntrag.vb @@ -305,9 +305,9 @@ Public Class frmMDM_USTVAntrag End If If txtVZ.Text <> "" AndAlso IsNumeric(txtVZ.Text) Then - USTV_ANTRAG.UStVAn_RZBetragVZ = CDbl(txtVZ.Text) + USTV_ANTRAG.UStVAn_VZBetrag = CDbl(txtVZ.Text) Else - USTV_ANTRAG.UStVAn_RZBetragVZ = Nothing + USTV_ANTRAG.UStVAn_VZBetrag = Nothing End If USTV_ANTRAG.UStVAn_BezugsNr = txtBezugsNr.Text diff --git a/SDL/USTV/usrCntlUSTV.vb b/SDL/USTV/usrCntlUSTV.vb index ce3ea858..2752b80c 100644 --- a/SDL/USTV/usrCntlUSTV.vb +++ b/SDL/USTV/usrCntlUSTV.vb @@ -405,9 +405,9 @@ Public Class usrCntlUSTV End If If Not ContextMenuStrip2.Items.ContainsKey("mse") Then - Dim rmc = New ToolStripMenuItem() With {.Text = "MSE", .Name = "mse", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} - AddHandler rmc.Click, AddressOf mnuItemAuftrauege_Clicked - ContextMenuStrip2.Items.Add(rmc) + Dim mse = New ToolStripMenuItem() With {.Text = "MSE", .Name = "mse", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} + AddHandler mse.Click, AddressOf mnuItemAuftrauege_Clicked + ContextMenuStrip2.Items.Add(mse) End If If Not ContextMenuStrip2.Items.ContainsKey("uta") Then @@ -423,9 +423,9 @@ Public Class usrCntlUSTV End If If Not ContextMenuStrip2.Items.ContainsKey("verag") Then - Dim ids = New ToolStripMenuItem() With {.Text = "VERAG", .Name = "verag", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} - AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked - ContextMenuStrip2.Items.Add(ids) + Dim verag = New ToolStripMenuItem() With {.Text = "VERAG", .Name = "verag", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} + AddHandler verag.Click, AddressOf mnuItemAuftrauege_Clicked + ContextMenuStrip2.Items.Add(verag) End If ContextMenuStrip2.Show(Cursor.Position) diff --git a/SDL/seriendruck/usrCntlFakturierung.vb b/SDL/seriendruck/usrCntlFakturierung.vb index 4260b852..1b4b9c07 100644 --- a/SDL/seriendruck/usrCntlFakturierung.vb +++ b/SDL/seriendruck/usrCntlFakturierung.vb @@ -1846,7 +1846,7 @@ Public Class usrcntlFakturierung If dtRechnungsjournal.Rows.Count > 0 Then - cProgramFunctions.genExcelFromDT_NEW(dtRechnungsjournal, {"J1:J" & (dtRechnungsjournal.Rows.Count + 1), "K1:K" & (dtRechnungsjournal.Rows.Count + 1), "L1:L" & (dtRechnungsjournal.Rows.Count + 1)},, "RECHNUNGSJOURNAL VOM" & rechnungsdatum.ToShortDateString,,, True) + cProgramFunctions.genExcelFromDT_NEW(dtRechnungsjournal, {"J1:J" & (dtRechnungsjournal.Rows.Count + 1), "K1:K" & (dtRechnungsjournal.Rows.Count + 1), "L1:L" & (dtRechnungsjournal.Rows.Count + 1)},, "RECHNUNGSJOURNAL VOM " & rechnungsdatum.ToShortDateString,,, True) Else MsgBox("Keine Daten für Rechnungsjournal")