This commit is contained in:
2025-05-28 16:56:45 +02:00
parent ba4883ee14
commit ae65c46fdd
7 changed files with 80 additions and 21 deletions

View File

@@ -1534,7 +1534,7 @@ Public Class cFakturierung
Dim MonthEnd As String = IIf(CDate(MWSTAntrag.UStVAn_ReDatBis).Month < 10, "0", "") & CDate(MWSTAntrag.UStVAn_ReDatBis).Month
If rpt.txtLeistung.Text.Contains("-00") Then
rpt.txtLeistung.Text = rpt.txtLeistung.Text.Replace("-00", MonthStart & MonthEnd)
rpt.txtLeistung.Text = rpt.txtLeistung.Text.Replace("-00", "-" & MonthStart & MonthEnd)
ElseIf rpt.txtLeistung.Text.Contains("00") Then
rpt.txtLeistung.Text = rpt.txtLeistung.Text.Replace("00", MonthStart & MonthEnd)
End If

View File

@@ -654,7 +654,7 @@ Public Class frmFaktEmail
Dim USTV_ANTRAG As New cUSTVAntrag(RECHNUNG.ErfassungsNr)
'aktuell noch deaktivieren, muss erst getestet werden und soll aktiviert werden, wenn alles passt.
'aktuell noch deaktivieren, muss erst getestet werden und soll aktiviert werden, wenn alles passt/Rechnungsbetrag - Bearbeitungsbebühr!!!.
'Dim ANTR_ERSTATTUNG As New VERAG_PROG_ALLGEMEIN.cUStVErstattungPositionen(USTV_ANTRAG.UStVAn_ID, RECHNUNG.UnterNr)
'If Not ANTR_ERSTATTUNG.hasEntry Then
@@ -921,27 +921,41 @@ Public Class frmFaktEmail
If RECHNUNG.Firma_ID = 19 Then
Dim zielPfadZusammenfassung_Lieferantenrechnungen = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(IIf(SammelrechungArt <> 6, "LF-Rechnungs_Anhänge_", "LF-Rechnung_") & RgNr & extension, extension,, False, "Zusammenfassung")
Dim zielPfadZusammenfassung_POSListe = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(IIf(SammelrechungArt <> 6, "LF-Rechnungs_Anhänge_", "LF-Rechnung_") & RgNr & extension, extension,, False, "Zusammenfassung")
Dim myList As New List(Of String)
Dim myList2 As New List(Of String)
Dim myListLiefereranten As New List(Of String)
Dim myListPOSLIST As New List(Of String)
For Each a In ATTACHMENTS
If a.Pfad.ToString.Contains("VERAG") Or a.Pfad.ToString.Contains("IDS") Or a.Pfad.ToString.Contains("MSE") Or a.Pfad.ToString.Contains("UTA") Or a.Pfad.ToString.Contains("PLOSE") Or a.Pfad.ToString.Contains("RMC") Then
myList2.Add(a.Pfad)
myListLiefereranten.Add(a.Pfad)
ElseIf a.Pfad.ToString.Contains("POS-LISTE") Then
myListPOSLIST.Add(a.Pfad)
Else
myList.Add(a.Pfad)
End If
Next
ATTACHMENTS.Clear()
Dim list2megered As Boolean = True
If myList2.Count > 0 Then
If myListLiefereranten.Count > 0 Then
list2megered = False
list2megered = FormularManagerNEU.MergePdfFiles(myList2, zielPfadZusammenfassung_Lieferantenrechnungen)
list2megered = FormularManagerNEU.MergePdfFiles(myListLiefereranten, zielPfadZusammenfassung_Lieferantenrechnungen)
End If
Dim list3megered As Boolean = True
If myListPOSLIST.Count > 0 Then
list3megered = False
list3megered = FormularManagerNEU.MergePdfFiles(myListPOSLIST, zielPfadZusammenfassung_POSListe)
End If
If FormularManagerNEU.MergePdfFiles(myList, zielPfadZusammenfassung) AndAlso list2megered Then
ATTACHMENTS.Add(New cFakt_MailATTach(zielPfadZusammenfassung, ""))
If myList2.Count > 0 Then ATTACHMENTS.Add(New cFakt_MailATTach(zielPfadZusammenfassung_Lieferantenrechnungen, ""))
If myListLiefereranten.Count > 0 Then ATTACHMENTS.Add(New cFakt_MailATTach(zielPfadZusammenfassung_Lieferantenrechnungen, ""))
If zielPfadZusammenfassung_POSListe.Count > 0 Then ATTACHMENTS.Add(New cFakt_MailATTach(zielPfadZusammenfassung_POSListe, ""))
End If

View File

@@ -610,7 +610,6 @@ Public Class usrCntlFaktAbrechnung
cboFirma.fillWithSQL("SELECT [Firma_ID],[Firma_Bez] FROM [tblFirma] WHERE Firma_ID NOT IN(3) " & whereFirma & " ORDER BY Firma_ID ", True, "FMZOLL", firstEmpty)
cboFirma.SelectedIndex = 0
@@ -1448,6 +1447,7 @@ Public Class usrCntlFaktAbrechnung
Dim landNr As String = ""
Dim landBez As String = ""
Dim antrag As cUSTVAntrag = Nothing
Dim summeRMC As Double = 0
If FIRMA IsNot Nothing AndAlso FIRMA.Firma_ID = 19 AndAlso SPEDBUCH IsNot Nothing AndAlso SPEDBUCH.FilialenNr = 4817 Then landBez = CheckLandNr_getLandBezFromAntrag(landNr, antrag)
For Each r As DataGridViewRow In dgvOfferteDetailsUebersicht.Rows
@@ -1469,7 +1469,7 @@ Public Class usrCntlFaktAbrechnung
'-----------------------MWST-Abrechnung! + Kompat. zu FM-Zoll
If FIRMA IsNot Nothing AndAlso FIRMA.Firma_ID = 19 AndAlso RECHNUNG.DruckDatumZeit Is Nothing Then
Dim isRC As Boolean = If(r.Cells("ReverseCharge").Value IsNot DBNull.Value, r.Cells("ReverseCharge").Value, False)
setMWSTABRfromSPEDinPOS(r, POS, landNr, landBez, antrag, isVZ)
setMWSTABRfromSPEDinPOS(r, POS, landNr, landBez, summeRMC, antrag, isVZ)
End If
'-----------------------MWST-Abrechnung! + Kompat. zu FM-Zoll
@@ -2672,13 +2672,18 @@ Public Class usrCntlFaktAbrechnung
End Sub
Private Sub prBearbGeb_NEW(POS_ As cRechnungsausgangPositionen, OFFERTE As cOfferte, RE As cRechnungsausgang, BGebLeistungsNr As Integer, BGebProzent As Double, BGebMinBetrag As Double, BGebBgl As Integer)
Private Sub prBearbGeb_NEW(POS_ As cRechnungsausgangPositionen, OFFERTE As cOfferte, RE As cRechnungsausgang, BGebLeistungsNr As Integer, BGebProzent As Double, BGebMinBetrag As Double, BGebBgl As Integer, ByRef summeRMCBearb As Double)
If POS_.Anzahl <> 0 Then
If (BGebLeistungsNr > 0 AndAlso BGebProzent > 0 AndAlso BGebBgl <> 0) Then
Dim minBetragRMCUsed As Boolean = False
Dim RMCUsed = IIf(POS_.LeistungsBez.Contains("Fremd-RG") OrElse POS_.LeistungsBez.Contains("RMC-RG"), True, False)
Dim curBGebErrBetrag As Double = Math.Round(BGebBgl * BGebProzent, 1)
Dim curBGebMinBetrag = BGebMinBetrag
Dim curBGebBetrag As Double = 0
@@ -2693,8 +2698,11 @@ Public Class usrCntlFaktAbrechnung
'Größeren Betrag bereitstellen.
If curBGebErrBetrag > curBGebMinBetrag Then
curBGebBetrag = curBGebErrBetrag 'Errechneten Betrag verwenden
summeRMCBearb += If(POS_.LeistungsBez.Contains("Fremd-RG") OrElse POS_.LeistungsBez.Contains("RMC-RG"), curBGebErrBetrag, 0)
Else
curBGebBetrag = curBGebMinBetrag 'Mindestbetrag verwenden
summeRMCBearb += If(POS_.LeistungsBez.Contains("Fremd-RG") OrElse POS_.LeistungsBez.Contains("RMC-RG"), curBGebErrBetrag, 0)
minBetragRMCUsed = IIf(POS_.LeistungsBez.Contains("Fremd-RG") OrElse POS_.LeistungsBez.Contains("RMC-RG"), True, False)
End If
'Vorzeichen einstellen.
If POS_.Preis < 0 Then
@@ -2733,12 +2741,33 @@ Public Class usrCntlFaktAbrechnung
POS.Preis += curBGebBetrag
'End If
If POS.Preis = curBGebBetrag * 2 AndAlso minBetragRMCUsed Then 'wenn RMCPOS und MIND-BERTAG 2x verrechnet -> nur 1x berechnen
POS.Preis = POS.Preis / 2
ElseIf POS.Preis <> curBGebBetrag * 2 AndAlso summeRMCBearb <> POS.Preis AndAlso (minBetragRMCUsed OrElse RMCUsed) AndAlso summeRMCBearb > curBGebMinBetrag Then 'wenn RMCPOS und Summe der berechneten Bearb > Mindestbetrag --> berechnetBearb verrechnet!
POS.Preis = summeRMCBearb
End If
If POS.Steuerpflichtig Then
POS.SteuerpflichtigerBetrag += curBGebBetrag
If POS.SteuerpflichtigerBetrag = curBGebBetrag * 2 AndAlso minBetragRMCUsed Then 'wenn RMCPOS und MIND-BERTAG 2x verrechnet -> nur 1x berechnen
POS.SteuerpflichtigerBetrag = POS.SteuerpflichtigerBetrag / 2
ElseIf POS.SteuerpflichtigerBetrag <> curBGebBetrag * 2 AndAlso summeRMCBearb <> POS.SteuerpflichtigerBetrag AndAlso (minBetragRMCUsed OrElse RMCUsed) AndAlso summeRMCBearb > curBGebMinBetrag Then 'wenn RMCPOS und Summe der berechneten Bearb > Mindestbetrag --> berechnetBearb verrechnet!
POS.SteuerpflichtigerBetrag = summeRMCBearb
End If
Else
POS.SteuerfreierBetrag += curBGebBetrag
If POS.SteuerfreierBetrag = curBGebBetrag * 2 AndAlso minBetragRMCUsed Then 'wenn RMCPOS und MIND-BERTAG 2x verrechnet -> nur 1x berechnen
POS.SteuerfreierBetrag = POS.SteuerfreierBetrag / 2
ElseIf POS.SteuerpflichtigerBetrag <> curBGebBetrag * 2 AndAlso summeRMCBearb <> POS.SteuerpflichtigerBetrag AndAlso (minBetragRMCUsed OrElse RMCUsed) AndAlso summeRMCBearb > curBGebMinBetrag Then 'wenn RMCPOS und Summe der berechneten Bearb > Mindestbetrag --> berechnetBearb verrechnet!
POS.SteuerpflichtigerBetrag = summeRMCBearb
End If
End If
End If
@@ -3774,7 +3803,7 @@ Nächste_Textzeile_lesen:
If RECHNUNG.DELETE() Then
If FIRMA IsNot Nothing AndAlso FIRMA.Firma_ID = 19 AndAlso SPEDBUCH IsNot Nothing AndAlso SPEDBUCH.FilialenNr = 4817 Then
Dim UST_ID As Integer = -1
UST_ID = CInt(SQL.getValueTxtBySql("SELECT [UStVAn_ID] FROM [tblUStVPositionen] WHERE [UStVPo_VZ] = 1 and isnull(UStVPo_VZ_RKID,0) =" & RECHNUNG.RK_ID, "FMZOLL"))
UST_ID = CInt(SQL.getValueTxtBySql("SELECT [UStVAn_ID] FROM [tblUStVPositionen] WHERE [UStVPo_VZ] = 1 and isnull(UStVPo_VZ_RKID,0) =" & RECHNUNG.RK_ID, "FMZOLL",,, 0))
If UST_ID > 0 Then
SQL.doSQL("UPDATE [tblUStVPositionen] SET UStVPo_VZ_RKID = NULL WHERE [UStVPo_VZ] = 1 and isnull(UStVPo_VZ_RKID,0) =" & RECHNUNG.RK_ID, "FMZOLL")
SQL.doSQL("UPDATE [tblUStVAntrag] SET UStVAn_VZoffen = 0 WHERE [UStVAn_ID] IN (SELECT [UStVAn_ID] FROM [tblUStVPositionen] WHERE isnull([UStVPo_VZ],0) = 1 and isnull([UStVPo_VZ_RKID],0) = 0 AND [UStVAn_ID] = " & UST_ID & " )", "FMZOLL")
@@ -4660,7 +4689,7 @@ Nächste_Textzeile_lesen:
End Function
Private Sub setMWSTABRfromSPEDinPOS(r As DataGridViewRow, POS As cRechnungsausgangPositionen, LandNr As String, LandBez As String, Optional antrag As cUSTVAntrag = Nothing, Optional isVZ As Boolean = False)
Private Sub setMWSTABRfromSPEDinPOS(r As DataGridViewRow, POS As cRechnungsausgangPositionen, LandNr As String, LandBez As String, ByRef summeRMC As Double, Optional antrag As cUSTVAntrag = Nothing, Optional isVZ As Boolean = False)
If SPEDBUCH IsNot Nothing AndAlso (SPEDBUCH.Abfertigungsart = 114 Or SPEDBUCH.Abfertigungsart = 115 Or SPEDBUCH.Abfertigungsart = 10) Then
@@ -4830,7 +4859,7 @@ mwst:
minBetag = IIf(Not IsDBNull(r.Cells("BGebMinBetrag").Value), r.Cells("BGebMinBetrag").Value, 0)
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(IIf(RECHNUNG.RechnungsKundenNr > 0, RECHNUNG.RechnungsKundenNr, kdFirmaRechnungAn.KdNr), OffertNr, True)
Call prBearbGeb_NEW(POS, OFFERTE, RECHNUNG, r.Cells("BGebLeistungsNr").Value, r.Cells("BGebProzent").Value, minBetag, POS.Preis * If(RECHNUNG.Vorzeichen = "-", -1, 1))
Call prBearbGeb_NEW(POS, OFFERTE, RECHNUNG, r.Cells("BGebLeistungsNr").Value, r.Cells("BGebProzent").Value, minBetag, POS.Preis * If(RECHNUNG.Vorzeichen = "-", -1, 1), summeRMC)
End If

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.4.1.0")>
<Assembly: AssemblyFileVersion("1.4.1.0")>
<Assembly: AssemblyVersion("1.4.1.1")>
<Assembly: AssemblyFileVersion("1.4.1.1")>

View File

@@ -100,7 +100,17 @@ Public Class frmNacherfassungNEU
cboSachbearbeiter.Items.Clear()
cboSachbearbeiter.fillWithSQL("SELECT ID,/*cast(ID as nvarchar(3)) +' ' + Name as*/ Name FROM Personal WHERE [Status]<>'L' " & sbWhere & " and [SBSichtbar]=1 ORDER BY Name ", False, "FMZOLL", True)
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA_ID = 19 Then
pnlZOll.Enabled = False
cboSachbearbeiter.fillWithSQL("SELECT [mit_id], [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 ('MDM')) order by mit_username", False, "ADMIN", True)
Else
pnlZOll.Enabled = True
cboSachbearbeiter.fillWithSQL("SELECT ID, Name FROM Personal WHERE [Status]<>'L' " & sbWhere & " and [SBSichtbar]=1 ORDER BY Name ", False, "FMZOLL", True)
End If
If SQL.getValueTxtBySql("SELECT count(*) FROM tblAbfertigungsartenFiliale WHERE Filialennr='" & cboFiliale._value & "'", "FMZOLL") > 0 Then
' cboAbfertigungsart.fillWithSQL("SELECT Abfertigungsarten.Abfertigungsart,[Abfertigungsbezeichnung] FROM [Abfertigungsarten] INNER JOIN tblAbfertigungsartenFiliale ON tblAbfertigungsartenFiliale.Abfertigungsart=Abfertigungsarten.Abfertigungsart where Filialennr=" & cboFiliale._value & "", True, "FMZOLL", True)
@@ -821,7 +831,7 @@ Public Class frmNacherfassungNEU
If Not IsNumeric(txtAnzahl.Text) OrElse txtAnzahl.Text = "0" Then txtAnzahl.Text = "1"
If Not IsNumeric(cboAbfertigungsart._value) Then lblErrAbfertigungsart.Visible = True : Return False
If (cboAbfertigungsLand._value) = String.Empty Then lblErrAbfertigungsart.Visible = True : Return False
If (cboAbfertigungsLand._value) = String.Empty AndAlso Not (cboAbfertigungsart._value = 115 OrElse cboAbfertigungsart._value = 114) Then lblErrAbfertigungsart.Visible = True : Return False
If (IsNumeric(txtRechnungsbetrag._value) AndAlso txtRechnungsbetrag._value <> 0) Then
If (Not IsNumeric(cbxWaehrung._value) OrElse cbxWaehrung._value <= 0) Then lblErrWaehrung.Visible = True : Return False
End If

View File

@@ -3337,19 +3337,23 @@ Public Class frmMDM_USTVAntrag
Next
Dim f As New SDL.frmAbrechnungsMaskeEinzeln(item.Name, hasVZ)
f.Show(Me)
If f.ShowDialog(Me) = DialogResult.Cancel Then
init()
End If
Else
Dim hasVZ = IIf(item.Name.Contains("_VZ"), True, False)
Dim f As New SDL.frmAbrechnungsMaskeEinzeln(USTV_ANTRAG.FilialenNr, USTV_ANTRAG.AbfertigungsNr, IIf(USTV_ANTRAG.UStVAn_ErstattungsbetragEUR >= 0, "AG", "AR"), hasVZ)
f.Show(Me)
If f.ShowDialog(Me) = DialogResult.Cancel Then
init()
End If
End If
End If
End If
End Sub

View File

@@ -245,6 +245,8 @@ Public Class cAllgemein
Dim isEU As Boolean = False
Dim sql As New SQL
If landKz Is Nothing OrElse landKz = "" Then Return -1
Select Case FIRMA_TMP.Firma_LandKz