diff --git a/SDL/Fakturierung/cFakturierung.vb b/SDL/Fakturierung/cFakturierung.vb index dcc03264..b162c047 100644 --- a/SDL/Fakturierung/cFakturierung.vb +++ b/SDL/Fakturierung/cFakturierung.vb @@ -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 diff --git a/SDL/Fakturierung/frmFaktEmail.vb b/SDL/Fakturierung/frmFaktEmail.vb index 0ce6e6c6..06314457 100644 --- a/SDL/Fakturierung/frmFaktEmail.vb +++ b/SDL/Fakturierung/frmFaktEmail.vb @@ -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 diff --git a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb index adb009eb..ec167436 100644 --- a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb +++ b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb @@ -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 diff --git a/SDL/My Project/AssemblyInfo.vb b/SDL/My Project/AssemblyInfo.vb index 65040646..6fcce940 100644 --- a/SDL/My Project/AssemblyInfo.vb +++ b/SDL/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + + diff --git a/SDL/Speditionsbuch/Nacherfassung/frmNacherfassungNEU.vb b/SDL/Speditionsbuch/Nacherfassung/frmNacherfassungNEU.vb index ac0582c7..9a901995 100644 --- a/SDL/Speditionsbuch/Nacherfassung/frmNacherfassungNEU.vb +++ b/SDL/Speditionsbuch/Nacherfassung/frmNacherfassungNEU.vb @@ -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 diff --git a/SDL/USTV/frmMDM_USTVAntrag.vb b/SDL/USTV/frmMDM_USTVAntrag.vb index da16dea3..cc9f954a 100644 --- a/SDL/USTV/frmMDM_USTVAntrag.vb +++ b/SDL/USTV/frmMDM_USTVAntrag.vb @@ -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 diff --git a/VERAG_PROG_ALLGEMEIN/cAllgemein.vb b/VERAG_PROG_ALLGEMEIN/cAllgemein.vb index 9a4c3737..7d21c251 100644 --- a/VERAG_PROG_ALLGEMEIN/cAllgemein.vb +++ b/VERAG_PROG_ALLGEMEIN/cAllgemein.vb @@ -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