From 4c92ab97471f730375802ef853cb258934e26620 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 11 Mar 2025 13:18:48 +0100 Subject: [PATCH] MDM -> EU, NICHT EU Kunde MWST Kopie --- SDL/Fakturierung/frmAbrechnungsMaske.vb | 5 +- SDL/Fakturierung/frmFaktSammelRgDrucken.vb | 38 +++++++------- SDL/kunden/usrCntlOfferte.vb | 14 ++--- SDL/seriendruck/usrCntlFakturierung.vb | 61 +++++----------------- 4 files changed, 40 insertions(+), 78 deletions(-) diff --git a/SDL/Fakturierung/frmAbrechnungsMaske.vb b/SDL/Fakturierung/frmAbrechnungsMaske.vb index a2a1100a..427b3590 100644 --- a/SDL/Fakturierung/frmAbrechnungsMaske.vb +++ b/SDL/Fakturierung/frmAbrechnungsMaske.vb @@ -1,6 +1,4 @@ Imports System.IO -Imports DocumentFormat.OpenXml.Drawing.Diagrams -Imports GrapeCity.DataVisualization.Chart Imports Microsoft.Office.Interop Public Class frmAbrechnungsMaske @@ -78,7 +76,8 @@ Public Class frmAbrechnungsMaske cboFirma.changeItem("1") cboSachbearbeiter.fillWithSQL("SELECT [mit_username] FROM [tblMitarbeiter] where mit_firma IN ('VERAG'" & If(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME = "ADMIN", ",'ALL'", "") & ") and mit_gekuendigt=0 AND (mit_abteilung IN ('VRR','BH') OR [mit_id] IN (SELECT [beroz_bergrId] FROM [tblBerechtigungsObjekteZuordnung] where [beroz_beroId]=90 AND beroz_art='B')) order by mit_username", False, "ADMIN", True) cboSachbearbeiter.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("*BAUBÖCK", "BAUBOECK")) - If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then cboSachbearbeiter.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DANIEL", "DANIEL")) + cboSachbearbeiter.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DANIEL", "DANIEL")) + Else Dim whereFirma = " AND FIRMENGRUPPE IN ('VERAG','VERAGUNISPED','FRONTOFFICE','ATILLA') " diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb index 446ad6a1..20d7a4c6 100644 --- a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb +++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb @@ -121,7 +121,7 @@ Public Class frmFaktSammelRgDrucken .Columns("LKW").Width = 80 End If - If .Columns.Contains("RechnungsLandKz") AndAlso Sammelrechung Then + If .Columns.Contains("RechnungsLandKz") AndAlso Sammelrechung = 6 Then .Columns("RechnungsLandKz").Visible = True End If @@ -306,30 +306,32 @@ Public Class frmFaktSammelRgDrucken RG_DRUCK = 5 End If - 'AKTUELL IMMER MIT KOPIE - Dim MDMKopiedrucken As Boolean = True + Dim MDMKopiedrucken As Boolean = False - 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 - 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 + If Sammelrechung = 6 Then 'MDMSammelrechnung + 'AKTUELL IMMER MIT KOPIE + MDMKopiedrucken = True + 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 isEU Then + If MyDatagridview1.Columns.Contains("keineMWST") Then + If MyDatagridview1.SelectedRows.Count = 1 Then + '1. Schritt: kein MWST Kunde -> 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 + Else + 'NICHT EU IST SCHON IM CntlFakt geregelt, d.b. NICHT EU IMMER MIT KOPIE!!!! 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 - - 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() diff --git a/SDL/kunden/usrCntlOfferte.vb b/SDL/kunden/usrCntlOfferte.vb index 46a507fd..44784183 100644 --- a/SDL/kunden/usrCntlOfferte.vb +++ b/SDL/kunden/usrCntlOfferte.vb @@ -823,8 +823,9 @@ Public Class usrCntlOfferte Dim dtKostenkalk As DataTable = (New SQL).loadDgvBySql(sqlKostenkalk, "FMZOLL") - If dtKostenkalk.Rows.Count <= 0 Then + If dtKostenkalk.Rows.Count < 1 Then MsgBox("keine Daten!") + Me.Cursor = Cursors.Default Exit Sub End If @@ -849,7 +850,6 @@ Public Class usrCntlOfferte End While My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.Kostenkalkulation, False) Catch ex As System.Exception - ' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) Me.Cursor = Cursors.Default @@ -876,6 +876,7 @@ Public Class usrCntlOfferte If IsDate(row("Datum")) Then Select Case CDate(row("Datum")).Year + 'Berechnungssätze laut Johanna Luxbauer Case 2018 : Blatt.Range("D" & currentRow).Value = 0.3387 Case 2019 : Blatt.Range("D" & currentRow).Value = 0.3048 Case 2020 : Blatt.Range("D" & currentRow).Value = 0.2792 @@ -895,16 +896,9 @@ Public Class usrCntlOfferte Next - Datei.Save + .Visible = True - If False Then - Blatt.PrintOutEx() - Else - 'Process.Start(Path) - .Visible = True - - End If End With End If diff --git a/SDL/seriendruck/usrCntlFakturierung.vb b/SDL/seriendruck/usrCntlFakturierung.vb index 1b4b9c07..0d628b71 100644 --- a/SDL/seriendruck/usrCntlFakturierung.vb +++ b/SDL/seriendruck/usrCntlFakturierung.vb @@ -188,60 +188,18 @@ Public Class usrcntlFakturierung group by [Firma_ID], RechnungsNr,Buchungsjahr,DruckDatumZeit,[Status], RechnungsausgangAnhaenge.Bezeichnung ", "FMZOLL",, 0) If rechnungenMitGesamtmautanhantPDF <> "" Then - MsgBox("Bei " & rechnungenMitGesamtmautanhantPDF & " Rechnungen befindet sich noch eine PDF-Gesamtmaut" & vbNewLine & "Diesen bitte vorher entfernen über MAUTBERICHTE ENTFERNEN " & vbNewLine & "Vorang wird abgebrochen!") + MsgBox("Bei " & rechnungenMitGesamtmautanhantPDF & " Rechnungen befindet sich noch eine PDF-Gesamtmaut" & vbNewLine & "Diesen bitte vorher entfernen über MAUTBERICHTE ENTFERNEN, weil erst im Zuge der RE-Pos-Berechnung die Gesamtmaut angehängt wird." & vbNewLine & "Vorang wird abgebrochen!") Exit Sub End If If rechnungenMitGesamtmautanhantCSV <> "" Then - MsgBox("Bei " & rechnungenMitGesamtmautanhantCSV & " Rechnungen befindet sich noch eine CSV-Gesamtmaut" & vbNewLine & "Diesen bitte vorher entfernen über MAUTBERICHTE ENTFERNEN " & vbNewLine & "Vorang wird abgebrochen!") + MsgBox("Bei " & rechnungenMitGesamtmautanhantCSV & " Rechnungen befindet sich noch eine CSV-Gesamtmaut" & vbNewLine & "Diesen bitte vorher entfernen über MAUTBERICHTE ENTFERNEN, weil erst im Zuge der RE-Pos-Berechnung die Gesamtmaut angehängt wird." & vbNewLine & "Vorang wird abgebrochen!") Exit Sub End If - '---------------DONE - ' ' Sachbearbeiter im RK eintragen. - '140 Call SysCmd(acSysCmdSetStatus, "Sachbearbeiter im RK eintragen...") - '150 Call ReDruSchnSachbearbeiter - 'Update [Rechnungsausgang] SET [Sachbearbeiter] = @Sachbearbeiter WHERE([Firma_ID] = 1 Or [Firma_ID] = 15) And [Status] = 0 And [Sammelrechnung] = 6 And [Sachbearbeiter] <> @Sachbearbeiter And (SteuerpflichtigerGesamtbetrag <> 0 Or SteuerfreierGesamtbetrag <> 0); - - - '---------------DONE - ' ' Firma_ID im RK eintragen. - '180 Call SysCmd(acSysCmdSetStatus, "Firma_ID im RK eintragen...") - '190 Call ReDruSchnFirma_ID - 'Update [Rechnungsausgang] SET [Firma_ID] = @Firma_ID WHERE [Firma_ID] <> @Firma_ID And [Status] = 0 And [Sammelrechnung] = 6 And [Sachbearbeiter] = @Sachbearbeiter And (SteuerpflichtigerGesamtbetrag <> 0 Or SteuerfreierGesamtbetrag <> 0); - - - ' ' Rechnung oder Gutschrift im RK eintragen. - '220 Call SysCmd(acSysCmdSetStatus, "Re/Gu im RK eintragen...") - '230 Call ReDruSumReGu - - '---------------DONE - ' ' Rechnungstext im RK eintragen. - '260 Call SysCmd(acSysCmdSetStatus, "Text im RK eintragen...") - '270 Call Rechnungstext - - '---------------DONE - ' ' Porto/Papiere berechnen. - '300 Call SysCmd(acSysCmdSetStatus, "Porto/Papiere berechnen...") - '310 Call ReDruSchnPP - - '---------------DONE - ' ' Banküberweisung/Bankspesen berechnen - '340 Call SysCmd(acSysCmdSetStatus, "Banküberweisung/Bankspesen berechnen...") - '350 Call ReDruSchnBB - - - ' ' Druckinformationen im RK eintragen----- ALTER.......... - '380 Call SysCmd(acSysCmdSetStatus, "Druckinformationen im RK eintragen...") - '390 varDatumZeit = Now 'Druckdatum/Uhrzeit merken. - ' ' Parameter übergeben: Firma_ID, Status, Sammelrechnung, Sachbearbeiter, Buchungsjahr, Rechnungsdatum, DruckDatumZeit. - '400 strParameter = ParameterBereitstellen(Me![Firma_ID], 0, 6, Me![fldSachbearbeiter], Year(Me!fldRechnungsDatum), Me![fldRechnungsDatum], varDatumZeit) - '410 Set qdf = dbs.CreateQueryDef("") - - 'es sollen alle RE der letzen 3 Monate gesetzt werden (warum, weil das schon immer so war....) 'ok = SQL.doSQL("update [Rechnungsausgang] set Sachbearbeiter='" & Sachbearbeiter & "' where Sammelrechnung=6 and Firma_ID=19 and Abfertigungsdatum = '" & dtRechnungsdatum.Value & "'", "FMZOLL") @@ -252,6 +210,15 @@ Public Class usrcntlFakturierung If Not ok Then Exit Sub + + Dim rechnungenMitAbwAbfDat As Integer = CInt((New SQL).getValueTxtBySqlVarList("SELECT COUNT(*) FROM Rechnungsausgang + WHERE [Status] = 0 AND [Sammelrechnung] = 6 AND UPPER([Sachbearbeiter]) = '" & Sachbearbeiter & "' AND ([SteuerpflichtigerGesamtbetrag] <> 0 OR [SteuerfreierGesamtbetrag] <> 0) AND cast(Abfertigungsdatum as Date) <> '" & rechnungsdatum & "'", "FMZOLL",, 0)) + + If rechnungenMitAbwAbfDat > 0 Then + If Not vbYes = MsgBox("Es gibt noch " & rechnungenMitAbwAbfDat & " Rechnungen mit abweichenden Abfertigungsdatum (Abfertigungsdatum ist nicht " & rechnungsdatum & ")" & vbNewLine & "Möchten Sie trotzdem fortfahren?", vbYesNoCancel) Then Exit Sub + End If + + Dim dtREGU As DataTable = SQL.loadDgvBySql("SELECT [Firma_ID], [Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], isnull([Steuersatz %],0) as [Steuersatz %], cast([Lastschrift] as bit) as Lastschrift, Sum([SteuerpflichtigerGesamtbetrag]+[SteuerfreierGesamtbetrag]) AS Sammelrechnungsbetrag FROM Rechnungsausgang WHERE [Status] = 0 AND [Sammelrechnung] = 6 AND UPPER([Sachbearbeiter]) = '" & Sachbearbeiter & "' AND ([SteuerpflichtigerGesamtbetrag] <> 0 OR [SteuerfreierGesamtbetrag] <> 0) AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "' @@ -1033,7 +1000,7 @@ Public Class usrcntlFakturierung Else If rowRE("keinMWSTKunde") Then - 'kein MWST Kunde -> OROGINAL-RE + 'kein MWST Kunde -> ORIGINAL-RE cFakturierung.doSAMMELRechnungsDruck_Abschnitt(rowRE("RechnungsNr"), rowRE("Firma_ID"), rowRE("Buchungsjahr"), rowRE("DruckDatumZeit"), "", True, True, 7, path,, , , , , , ,,, cbxMautanh.Checked, False) Else 'MWST Kunde -> wenn ohne MWST-BEtrag ->Original sonst Kopie! @@ -1522,7 +1489,7 @@ Public Class usrcntlFakturierung .Columns.Clear() - .SET_SQL("SELECT [Datenquelle] as Lieferant,format(sum([Net Amount]),'#,#.00', 'de-de') as Netto,format(sum([VAT Amount]), '#,#.00', 'de-de') as VAT,format(sum([Total Amount]), '#,#.00', 'de-de') as Brutto + .SET_SQL("SELECT [Datenquelle] as Lieferant,sum([Net Amount]) as Netto,sum([VAT Amount]) as VAT,sum([Total Amount]) as Brutto FROM [VERAG].[dbo].[tblMautbericht] where cast([Billingdate] as date) = '" & cbxDateMautbericht._value & "' group by [Datenquelle]", "FMZOLL") @@ -1689,7 +1656,7 @@ Public Class usrcntlFakturierung sammelrechnung0vorhanden = checkIfStatus0Sammelrechnugnenvorhanden(cboSachbearbeiter._value, CDate(dtRechnungsdatum.Text)) 'Button19.Enabled = sammelrechnung0vorhanden wenn RE bereits Status 2 wird sie nur gedruckt!!!! - Button14.Enabled = sammelrechnung0vorhanden + Button14.Enabled = True 'sammelrechnung0vorhanden Button20.Enabled = sammelrechnung0vorhanden End Sub