diff --git a/SDL/Fakturierung/cFakturierung.vb b/SDL/Fakturierung/cFakturierung.vb index e3027531..25f9fe5f 100644 --- a/SDL/Fakturierung/cFakturierung.vb +++ b/SDL/Fakturierung/cFakturierung.vb @@ -5,8 +5,7 @@ Imports Microsoft.Office.Interop Imports VERAG_PROG_ALLGEMEIN Imports s2industries.ZUGFeRD Imports System.IO -Imports GrapeCity.ActiveReports.Core.Rendering.Tools -Imports System.Windows.Converters + Public Class cFakturierung @@ -935,8 +934,12 @@ Public Class cFakturierung rpt.lblFirmaEmail.Text = If(FIRMA.Firma_E_Mail, "") rpt.lblFirmaWeb.Text = If(FIRMA.Firma_Webadresse, "") rpt.lblFirma.Text = (If(FIRMA.Firma_Bez, "") & ", " & If(FIRMA.Firma_Ort, "")).ToString.Replace(" (DE)", "") + If FIRMA.Firma_ID = 1 Then rpt.lblFirma.Text &= vbNewLine & "D-94152 Neuhaus/Inn, Hartham 6" + If FIRMA.Firma_ID = 19 Then rpt.lblFirma.Text &= vbNewLine & "VERAG Spedition GmbH, Hartham 6, D-94152 Neuhaus/Inn" + + rpt.lblFirmenbuch.Text = If(FIRMA.Firma_Firmenbuch, "").ToString.Replace("Firmenbuch:", "").Trim rpt.lblUID.Text = If(FIRMA.Firma_UID, "") rpt.lblEORI.Text = If(FIRMA.Firma_EORI, "") @@ -983,7 +986,7 @@ Public Class cFakturierung End If End If End If - Case Else 'VERAG,ATILLA + Case Else 'VERAG,ATILLA, VERAG360 rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim @@ -1869,69 +1872,69 @@ Public Class cFakturierung If RECHNUNG.SteuerfreierGesamtbetrag > 0 Then - desc.AddApplicableTradeTax(Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag), 0, TaxTypes.VAT, TaxCategoryCodes.Z) - End If + desc.AddApplicableTradeTax(Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag), 0, TaxTypes.VAT, TaxCategoryCodes.Z) + End If - If RECHNUNG.SteuerpflichtigerGesamtbetrag > 0 Then - desc.AddApplicableTradeTax(Convert.ToDecimal(taxBasisAmount - RECHNUNG.SteuerfreierGesamtbetrag), Convert.ToDecimal(steuerProzenFaktor), Convert.ToDecimal(taxTotalAmount), TaxTypes.VAT, IIf(isReverseCharge, TaxCategoryCodes.AE, TaxCategoryCodes.S)) - End If + If RECHNUNG.SteuerpflichtigerGesamtbetrag > 0 Then + desc.AddApplicableTradeTax(Convert.ToDecimal(taxBasisAmount - RECHNUNG.SteuerfreierGesamtbetrag), Convert.ToDecimal(steuerProzenFaktor), Convert.ToDecimal(taxTotalAmount), TaxTypes.VAT, IIf(isReverseCharge, TaxCategoryCodes.AE, TaxCategoryCodes.S)) + End If - Select Case FIRMA.Firma_ID - Case 21, 22, 23 '"UNISPED" - If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) - If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) + Select Case FIRMA.Firma_ID + Case 21, 22, 23 '"UNISPED" + If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) + If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) - Case 26 'VERAG-UNISPED" - If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) - If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) + Case 26 'VERAG-UNISPED" + If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) + If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) - Case 24 'AMBAR" - If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) - If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) - desc.AddCreditorFinancialAccount("TR90 0006 2001 6040 0009 0804 66", "TGBATRISXXX",,, "Garanti Bank Türkei – Euro Konto") + Case 24 'AMBAR" + If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) + If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) + desc.AddCreditorFinancialAccount("TR90 0006 2001 6040 0009 0804 66", "TGBATRISXXX",,, "Garanti Bank Türkei – Euro Konto") - Case 20 '"IMEX" - If RECHNUNG.RechnungsLandKz = "TR" Then - desc.AddCreditorFinancialAccount("TR84 0006 2001 6040 0009 0987 13", "",,, "Garanti Bank") + Case 20 '"IMEX" + If RECHNUNG.RechnungsLandKz = "TR" Then + desc.AddCreditorFinancialAccount("TR84 0006 2001 6040 0009 0987 13", "",,, "Garanti Bank") + Else + If hasVK(RECHNUNG) Then + desc.AddCreditorFinancialAccount("AT35 4480 0365 7822 0002", "VBOEATWWOOE",,, "Volksbank Oberösterreich AG") Else - If hasVK(RECHNUNG) Then - desc.AddCreditorFinancialAccount("AT35 4480 0365 7822 0002", "VBOEATWWOOE",,, "Volksbank Oberösterreich AG") + If hasEUSTZOLL(RECHNUNG.RechnungsNr) Then + desc.AddCreditorFinancialAccount("AT62 4480 0365 7822 0001", "VBOEATWWOOE", ) Else - If hasEUSTZOLL(RECHNUNG.RechnungsNr) Then - desc.AddCreditorFinancialAccount("AT62 4480 0365 7822 0001", "VBOEATWWOOE", ) - Else - desc.AddCreditorFinancialAccount("TR84 0006 2001 6040 0009 0987 13", "VBOEATWWOOE", ,, "Volksbank Oberösterreich AG") - End If + desc.AddCreditorFinancialAccount("TR84 0006 2001 6040 0009 0987 13", "VBOEATWWOOE", ,, "Volksbank Oberösterreich AG") End If End If + End If - Case 19 - If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) + Case 19 + If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) - Case Else 'VERAG,ATILLA - If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) - If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) + Case Else 'VERAG,ATILLA + If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) + If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) - End Select + End Select - Dim tmpPathZugpferd = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("ZUGFeRD_Invoice_" & RECHNUNG.RechnungsNr, ".xml", True, False) - Dim stream As FileStream = New FileStream(tmpPathZugpferd, FileMode.Create, FileAccess.Write) - desc.Save(stream, ZUGFeRDVersion.Version20, Profile.Comfort) + Dim tmpPathZugpferd = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("ZUGFeRD_Invoice_" & RECHNUNG.RechnungsNr, ".xml", True, False) + Dim stream As FileStream = New FileStream(tmpPathZugpferd, FileMode.Create, FileAccess.Write) + desc.Save(stream, ZUGFeRDVersion.Version20, Profile.Comfort) - stream.Flush() - stream.Close() - Return tmpPathZugpferd + stream.Flush() + stream.Close() + Return tmpPathZugpferd - ElseIf Not einzelrechnung AndAlso SR_DT IsNot Nothing Then + ElseIf Not einzelrechnung AndAlso SR_DT IsNot Nothing Then - '--------------------------------------------------------------------------------- - '--------------------------------SAMMELRECHNUNG----------------------------------- - '--------------------------------------------------------------------------------- + '--------------------------------------------------------------------------------- + '--------------------------------SAMMELRECHNUNG----------------------------------- + '--------------------------------------------------------------------------------- - Dim ROW As DataRow = SR_DT.Rows(0) + Dim ROW As DataRow = SR_DT.Rows(0) Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(ROW("Firma_ID")) Dim RECHNUNG_AD As New VERAG_PROG_ALLGEMEIN.cAdressen(ROW("RechnungsKundenNr")) @@ -2156,67 +2159,67 @@ Public Class cFakturierung Select Case FIRMA.Firma_ID - Case 21, 22, 23 '"UNISPED" - If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) - If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) + Case 21, 22, 23 '"UNISPED" + If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) + If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) - Case 26 'VERAG-UNISPED" - If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) - If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) + Case 26 'VERAG-UNISPED" + If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) + If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) - Case 24 'AMBAR" - If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) - If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) - desc.AddCreditorFinancialAccount("TR90 0006 2001 6040 0009 0804 66", "TGBATRISXXX",,, "Garanti Bank Türkei – Euro Konto") + Case 24 'AMBAR" + If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) + If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) + desc.AddCreditorFinancialAccount("TR90 0006 2001 6040 0009 0804 66", "TGBATRISXXX",,, "Garanti Bank Türkei – Euro Konto") - Case 20 '"IMEX" - If RechnungsLandKz = "TR" Then - desc.AddCreditorFinancialAccount("TR84 0006 2001 6040 0009 0987 13", "",,, "Garanti Bank") + Case 20 '"IMEX" + If RechnungsLandKz = "TR" Then + desc.AddCreditorFinancialAccount("TR84 0006 2001 6040 0009 0987 13", "",,, "Garanti Bank") + Else + If hasVK(RechnungsNr, ROW("Buchungsjahr")) Then + desc.AddCreditorFinancialAccount("AT35 4480 0365 7822 0002", "VBOEATWWOOE",,, "Volksbank Oberösterreich AG") Else - If hasVK(RechnungsNr, ROW("Buchungsjahr")) Then - desc.AddCreditorFinancialAccount("AT35 4480 0365 7822 0002", "VBOEATWWOOE",,, "Volksbank Oberösterreich AG") + If hasEUSTZOLL(RechnungsNr) Then + desc.AddCreditorFinancialAccount("AT62 4480 0365 7822 0001", "VBOEATWWOOE", ) Else - If hasEUSTZOLL(RechnungsNr) Then - desc.AddCreditorFinancialAccount("AT62 4480 0365 7822 0001", "VBOEATWWOOE", ) - Else - desc.AddCreditorFinancialAccount("TR84 0006 2001 6040 0009 0987 13", "VBOEATWWOOE", ,, "Volksbank Oberösterreich AG") - End If + desc.AddCreditorFinancialAccount("TR84 0006 2001 6040 0009 0987 13", "VBOEATWWOOE", ,, "Volksbank Oberösterreich AG") End If End If + End If - Case 19 - If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) + Case 19 + If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) - Case Else 'VERAG,ATILLA - If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) - If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) + Case Else 'VERAG,ATILLA + If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) + If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) - End Select + End Select - Dim isReverseCharge = IIf(getReverseChargeSumme(FIRMA, ROW("RechnungsLandKz"), ROW("RechnungsNr"), ROW("RechnungsDatum"), "") > 0, True, False) + Dim isReverseCharge = IIf(getReverseChargeSumme(FIRMA, ROW("RechnungsLandKz"), ROW("RechnungsNr"), ROW("RechnungsDatum"), "") > 0, True, False) - If Gesamt_RG_BetragSteuerfrei > 0 Then - desc.AddApplicableTradeTax(Convert.ToDecimal(Gesamt_RG_BetragSteuerfrei), 0, TaxTypes.VAT, TaxCategoryCodes.Z) - End If - - If Gesamt_RG_BetragSteuerpflichtig > 0 Then - desc.AddApplicableTradeTax(Convert.ToDecimal(taxBasisAmount - Gesamt_RG_BetragSteuerfrei), Convert.ToDecimal(steuerProzenFaktor), Convert.ToDecimal(taxTotalAmount), TaxTypes.VAT, IIf(isReverseCharge, TaxCategoryCodes.AE, TaxCategoryCodes.S)) - End If - - Dim tmpPathZugpferd = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("ZUGFeRD_Invoice_" & RechnungsNr, ".xml", True, False) - Dim stream As FileStream = New FileStream(tmpPathZugpferd, FileMode.Create, FileAccess.Write) - desc.Save(stream, ZUGFeRDVersion.Version20, Profile.Comfort) - - stream.Flush() - stream.Close() - Return tmpPathZugpferd - + If Gesamt_RG_BetragSteuerfrei > 0 Then + desc.AddApplicableTradeTax(Convert.ToDecimal(Gesamt_RG_BetragSteuerfrei), 0, TaxTypes.VAT, TaxCategoryCodes.Z) End If + If Gesamt_RG_BetragSteuerpflichtig > 0 Then + desc.AddApplicableTradeTax(Convert.ToDecimal(taxBasisAmount - Gesamt_RG_BetragSteuerfrei), Convert.ToDecimal(steuerProzenFaktor), Convert.ToDecimal(taxTotalAmount), TaxTypes.VAT, IIf(isReverseCharge, TaxCategoryCodes.AE, TaxCategoryCodes.S)) + End If + + Dim tmpPathZugpferd = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("ZUGFeRD_Invoice_" & RechnungsNr, ".xml", True, False) + Dim stream As FileStream = New FileStream(tmpPathZugpferd, FileMode.Create, FileAccess.Write) + desc.Save(stream, ZUGFeRDVersion.Version20, Profile.Comfort) + + stream.Flush() + stream.Close() + Return tmpPathZugpferd + + End If + @@ -2900,7 +2903,7 @@ Public Class cFakturierung End If - kdTmp = RG.RechnungsKundenNr + kdTmp = RG.RechnungsKundenNr FilialeTmp = RG.FilialenNr FIRMATmp = RG.Firma_ID Case Else @@ -2978,7 +2981,7 @@ Public Class cFakturierung End Function - Public Shared Function doSAMMELRechnungsDruck_Abschnitt(ByRef RechnungsNr As Integer, Firma_ID As Integer, Buchungsjahr As Integer, DruckdatumUhrzeit As DateTime, PrinterName As String, Optional AnlageEinzelRg As Boolean = True, Optional Sammelrechnungsbericht As Boolean = True, Optional RechnungsdruckArt As Integer = -1, Optional ByRef pathPDF As String = "", Optional SRDruckWiederholen As Boolean = False, Optional SB As String = "", Optional AnlageExcelEvolog As Boolean = False, Optional ByRef SonstAnlagen As List(Of String) = Nothing, Optional VorschauID As String = "", Optional AnlageExcelTransferry360 As Boolean = False, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional mergePDF As Boolean = False, Optional RechnungsmautanhangAsPDF As Boolean = False) As Boolean + Public Shared Function doSAMMELRechnungsDruck_Abschnitt(ByRef RechnungsNr As Integer, Firma_ID As Integer, Buchungsjahr As Integer, DruckdatumUhrzeit As DateTime, PrinterName As String, Optional AnlageEinzelRg As Boolean = True, Optional Sammelrechnungsbericht As Boolean = True, Optional RechnungsdruckArt As Integer = -1, Optional ByRef pathPDF As String = "", Optional SRDruckWiederholen As Boolean = False, Optional SB As String = "", Optional AnlageExcelEvolog As Boolean = False, Optional ByRef SonstAnlagen As List(Of String) = Nothing, Optional VorschauID As String = "", Optional AnlageExcelTransferry360 As Boolean = False, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional mergePDF As Boolean = False, Optional RechnungsanhangPDF As Boolean = False, Optional RechnugnskopieMDMSammelrechnung As Boolean = False, Optional AnhList As List(Of String) = Nothing, Optional RechnungsanhangCSV As Boolean = False) As Boolean 'SB Nicht mehr benötigt, da RG-Nr und DruckdatumUhrzeit Dim dt As DataTable @@ -3005,32 +3008,12 @@ Public Class cFakturierung '-------------- ENDE -------------- doSAMMELRechnungsDruck_Abschnitt = doSAMMELRechnungDruck_Rechnungsdruck(dt, RechnungsNr, DruckdatumUhrzeit, 3, RechnungsdruckArt, pathPDF_SammelRg, PrinterName, SRDruckWiederholen, VorschauID) 'Sammelrechnung drucken - If Sammelrechnungsbericht Then If Not doSAMMELRechnungDruck_Rechnungsdruck_Sammelrechnungsbericht(RechnungsNr, DruckdatumUhrzeit, RechnungsdruckArt, pathPDF_SammelBericht, PrinterName, VorschauID, dt) Then doSAMMELRechnungsDruck_Abschnitt = False 'Sammelrechnungsbericht drucken + If Sammelrechnungsbericht Then If Not doSAMMELRechnungDruck_Rechnungsdruck_Sammelrechnungsbericht(RechnungsNr, DruckdatumUhrzeit, RechnungsdruckArt, pathPDF_SammelBericht, PrinterName, VorschauID, dt, RechnugnskopieMDMSammelrechnung) Then doSAMMELRechnungsDruck_Abschnitt = False 'Sammelrechnungsbericht drucken If AnlageEinzelRg Then If Not doSAMMELRechnungDruck_Rechnungsdruck_Anlagen(RechnungsNr, DruckdatumUhrzeit, PrinterName, pathPDF_Anlage, RechnungsdruckArt, VorschauID) Then doSAMMELRechnungsDruck_Abschnitt = False 'Anlagen drucken - If RechnungsmautanhangAsPDF Then + If RechnungsanhangPDF Then getRechnungsanshang(dt, pathPDF_Anlage, "pdf") + If RechnungsanhangCSV Then getRechnungsanshang(dt, AnhList, "csv") - Dim displayView = New DataView(dt, "", "RK_ID", DataViewRowState.CurrentRows) - Dim distinctDT_RK As DataTable = displayView.ToTable(True, "RK_ID") - For Each r In distinctDT_RK.Rows - Dim RG As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(r("RK_ID")) - If RG IsNot Nothing Then - RG.LOAD_ANHAENGE() - For Each RG_AH In RG.ANHAENGE - If RG_AH.Bezeichnung.ToUpper.Contains("MAUT") Or RG_AH.Bezeichnung.ToUpper.Contains("DIESEL") Or RG_AH.Bezeichnung.ToUpper.Contains("INVOICE") Then - Dim Path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(RG_AH.dsId) - If Not pathPDF_Anlage.Contains(Path) Then - - If Not (pathPDF_Anlage.Any(Function(f) f.Contains("COPY_INVOICE")) And Path.ToUpper.Contains("COPY_INVOICE")) Then 'damit diesel IDS-Rechnung nicht doppelt hinzugefügt wird. - pathPDF_Anlage.Add(Path) - - End If - End If - End If - Next - End If - Next - End If 'SONSTIGE ANLAGEN: @@ -3362,7 +3345,7 @@ Public Class cFakturierung End Function - Shared Function doSAMMELRechnungDruck_Rechnungsdruck_Sammelrechnungsbericht(RechnungsNr As Integer, DruckdatumUhrzeit As Date, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional PrinterName As String = "", Optional VorschauID As String = "", Optional SammelrechnungsDT As DataTable = Nothing) 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 + Shared Function doSAMMELRechnungDruck_Rechnungsdruck_Sammelrechnungsbericht(RechnungsNr As Integer, DruckdatumUhrzeit As Date, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional PrinterName As String = "", Optional VorschauID As String = "", Optional SammelrechnungsDT As DataTable = Nothing, Optional Sammelrechnungskopie As Boolean = 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 Try @@ -3436,7 +3419,7 @@ Public Class cFakturierung Case Else Select Case BelegartenKz Case "AR" - rpt.lblUeberschriftRG_GS.Text = IIf(Not isMDMRechnungsdruck, "Anlage zur Sammelrechnung", "Sammelrechnung") + rpt.lblUeberschriftRG_GS.Text = IIf(Not isMDMRechnungsdruck, "Anlage zur Sammelrechnung", "Rechnung") Case "AG" rpt.lblUeberschriftRG_GS.Text = "GUTSCHRIFT" rpt.lblSummeUeberschrift.Text = "Gutschriftsbetrag:" @@ -3544,8 +3527,13 @@ Public Class cFakturierung If KD_RG IsNot Nothing AndAlso If(KD_RG.Steuernummer, "") <> String.Empty Then - rpt.lblRechnung_Steuernummer.Text = If(KD_RG.LandKz, "") & " " & If(KD_RG.Steuernummer, "").ToString.Trim - ' rpt.lblRechnung_UID.Text = If(KD_RG.UstIdKz, "") & " " & If(KD_RG.UstIdNr, "").ToString.Trim + If isMDMRechnungsdruck Then + rpt.lblRechnung_Steuernummer.Text = If(KD_RG.Steuernummer, "").ToString.Trim + Else + rpt.lblRechnung_Steuernummer.Text = If(KD_RG.LandKz, "") & " " & If(KD_RG.Steuernummer, "").ToString.Trim + ' rpt.lblRechnung_UID.Text = If(KD_RG.UstIdKz, "") & " " & If(KD_RG.UstIdNr, "").ToString.Trim + + End If Else rpt.lblRechnung_Steuernummer.Text = "" ' rpt.lblRechnung_UID.Text = "" @@ -3561,13 +3549,20 @@ Public Class cFakturierung rpt.lblSteuerpflichtigUeberschrift.Visible = Not isMDMRechnungsdruck rpt.lblDurchlaufposten.Visible = isMDMRechnungsdruck rpt.lblSteuerplichtUeberschriftMDM.Visible = isMDMRechnungsdruck - + rpt.lblEORI.Visible = Not isMDMRechnungsdruck + rpt.lblEORIUeberschrift.Visible = Not isMDMRechnungsdruck + rpt.txtAbfertigungsart.Visible = Not isMDMRechnungsdruck Dim sumSteuerpflichtig As Double = 0 Dim sumSteuerfrei As Double = 0 - + If Sammelrechnungskopie Then + Select Case ROW("RechnungSprache") + Case "EN" : rpt.lblUeberschriftRG_GS.Text &= " - COPY" + Case Else : rpt.lblUeberschriftRG_GS.Text &= " - KOPIE" + End Select + End If @@ -4200,11 +4195,14 @@ Public Class cFakturierung Select Case If(Rechnugnsdruck > 0, Rechnugnsdruck, If(AD.Rechnungsdruck, 0))'If(AD.Rechnungsdruck, 0) - Case 0, 1 'DRUCKEN - Path = tmpPath 'wird für Therefore benötigt - Return cProgramFunctions.printRpt(rpt, PrinterName, False) + Case 0, 1 'DRUCKEN + + If isMDMRechnungsdruck Then Return True 'MDM-Sammelrechnungen nicht mitgeben! + + Path = tmpPath 'wird für Therefore benötigt + Return cProgramFunctions.printRpt(rpt, PrinterName, False) 'Case 1 'FAX - Case 2 'MAIL + Case 2 'MAIL 'Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False) 'Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport @@ -4218,53 +4216,53 @@ Public Class cFakturierung Path = tmpPath - Try - Dim outl As New Outlook.Application - Dim Mail As Microsoft.Office.Interop.Outlook.MailItem - Mail = outl.CreateItem(0) - ' Mail.Subject = "Rechnung Nr. " & ROW("RechnungsNr") - ' Mail.HTMLBody = "Sehr geehrte Damen und Herren,

anbei erhalten Sie die Rechnung Nr. " & ROW("RechnungsNr") & "." + Try + Dim outl As New Outlook.Application + Dim Mail As Microsoft.Office.Interop.Outlook.MailItem + Mail = outl.CreateItem(0) + ' Mail.Subject = "Rechnung Nr. " & ROW("RechnungsNr") + ' Mail.HTMLBody = "Sehr geehrte Damen und Herren,

anbei erhalten Sie die Rechnung Nr. " & ROW("RechnungsNr") & "." - ' Mail.Subject = " Rechnung Nr. " & ROW("RechnungsNr") - ' Mail.Subject = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & " Rechnung Nr. " & ROW("RechnungsNr") - Select Case ROW("RechnungsLandKz") - Case "TR" - Mail.Subject = "Invoice NO. " & ROW("RechnungsNr") - Mail.HTMLBody = "Sayin Bayanlar ve Baylar,

ekte baslikta yazan faturayi bulabilirsinz." - Mail.HTMLBody &= "


Saygilarimizla

" & getSignature(ROW("RechnungsLandKz"), ROW("Firma_ID")) - Case "A", "AT", "D", "DE", "CH" - Mail.Subject = "Rechnung Nr. " & ROW("RechnungsNr") - Mail.HTMLBody = "Sehr geehrte Damen und Herren,

im Anhang senden wir Ihnen die o.g. Rechnung." - Mail.HTMLBody &= "


Mit freundlichen Grüßen

" & getSignature(ROW("RechnungsLandKz"), ROW("Firma_ID")) - Case Else - Mail.Subject = "Invoice No. " & ROW("RechnungsNr") - Mail.HTMLBody = "Dear Sir or Madam,

attached we send you the invoice mentioned above." - Mail.HTMLBody &= "


Best regards

" & getSignature(ROW("RechnungsLandKz"), ROW("Firma_ID")) - End Select - Mail.Attachments.Add(tmpPath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , "Formular.pdf") - Mail.Display() + ' Mail.Subject = " Rechnung Nr. " & ROW("RechnungsNr") + ' Mail.Subject = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & " Rechnung Nr. " & ROW("RechnungsNr") + Select Case ROW("RechnungsLandKz") + Case "TR" + Mail.Subject = "Invoice NO. " & ROW("RechnungsNr") + Mail.HTMLBody = "Sayin Bayanlar ve Baylar,

ekte baslikta yazan faturayi bulabilirsinz." + Mail.HTMLBody &= "


Saygilarimizla

" & getSignature(ROW("RechnungsLandKz"), ROW("Firma_ID")) + Case "A", "AT", "D", "DE", "CH" + Mail.Subject = "Rechnung Nr. " & ROW("RechnungsNr") + Mail.HTMLBody = "Sehr geehrte Damen und Herren,

im Anhang senden wir Ihnen die o.g. Rechnung." + Mail.HTMLBody &= "


Mit freundlichen Grüßen

" & getSignature(ROW("RechnungsLandKz"), ROW("Firma_ID")) + Case Else + Mail.Subject = "Invoice No. " & ROW("RechnungsNr") + Mail.HTMLBody = "Dear Sir or Madam,

attached we send you the invoice mentioned above." + Mail.HTMLBody &= "


Best regards

" & getSignature(ROW("RechnungsLandKz"), ROW("Firma_ID")) + End Select + Mail.Attachments.Add(tmpPath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , "Formular.pdf") + Mail.Display() - Catch ex As Exception - MsgBox("Fehler bim Öffnen des Mail-Programmes. PDF wird geladen!") - Process.Start(tmpPath) - End Try - rpt.Dispose() - Return True - - Case 3 'PDF + öffnen - - 'Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False) - 'Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport - 'rpt.Run(True) - 'p.NeverEmbedFonts = "" - 'p.Export(rpt.Document, tmpPath) - - 'rpt.Dispose() - Path = tmpPath + Catch ex As Exception + MsgBox("Fehler bim Öffnen des Mail-Programmes. PDF wird geladen!") Process.Start(tmpPath) - rpt.Dispose() - Return True - Case 4 'PDF + End Try + rpt.Dispose() + Return True + + Case 3 'PDF + öffnen + + 'Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False) + 'Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport + 'rpt.Run(True) + 'p.NeverEmbedFonts = "" + 'p.Export(rpt.Document, tmpPath) + + 'rpt.Dispose() + Path = tmpPath + Process.Start(tmpPath) + rpt.Dispose() + Return True + Case 4 'PDF 'Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False) 'Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport 'rpt.Run(True) @@ -4274,13 +4272,13 @@ Public Class cFakturierung If isMDMRechnungsdruck Then Return True 'MDM-Sammelrechnungen nicht mitgeben! - Path = tmpPath - rpt.Dispose() - Return True + Path = tmpPath + rpt.Dispose() + Return True - End Select - End If + End Select + End If @@ -4344,11 +4342,60 @@ Public Class cFakturierung 'If (Rechnungsdruck = 7 OrElse Rechnungsdruck = 4 AndAlso (Status = 2 Or Status = 4)) Then Return True - If (Rechnungsdruck = 7 OrElse Rechnungsdruck = 4 AndAlso (Status = 2 Or Status = 4) OrElse Rechnungsdruck = 3 AndAlso (Status = 2 Or Status = 4) OrElse Rechnungsdruck = 2 AndAlso (Status = 2 Or Status = 4)) Then Return True + If (Rechnungsdruck = 7 OrElse Rechnungsdruck = 8 OrElse Rechnungsdruck = 4 AndAlso (Status = 2 Or Status = 4) OrElse Rechnungsdruck = 3 AndAlso (Status = 2 Or Status = 4) OrElse Rechnungsdruck = 2 AndAlso (Status = 2 Or Status = 4)) Then Return True Return False + End Function + + Public Shared Function getRechnungsanshang(dt As DataTable, listAnh As List(Of String), extTyp As String) + + + + Dim displayView = New DataView(dt, "", "RK_ID", DataViewRowState.CurrentRows) + Dim distinctDT_RK As DataTable = displayView.ToTable(True, "RK_ID") + + For Each r In distinctDT_RK.Rows + Dim RG As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(r("RK_ID")) + If RG IsNot Nothing Then + RG.LOAD_ANHAENGE() + For Each RG_AH In RG.ANHAENGE.Where(Function(x) x.Bezeichnung.ToLower.EndsWith(extTyp)) + + Select Case extTyp + Case "pdf" + If RG_AH.Bezeichnung.ToUpper.Contains("MAUT") Or RG_AH.Bezeichnung.ToUpper.Contains("DIESEL") Or RG_AH.Bezeichnung.ToUpper.Contains("INVOICE") Then + Dim Path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(RG_AH.dsId) + If Not listAnh.Contains(Path) Then + + If Not (listAnh.Any(Function(f) f.Contains("COPY_INVOICE")) And Path.ToUpper.Contains("COPY_INVOICE")) Then 'damit diesel IDS-Rechnung nicht doppelt hinzugefügt wird. + listAnh.Add(Path) + + End If + End If + End If + + Case "csv" + + If RG_AH.Bezeichnung.ToUpper.Contains("MAUT") Then + Dim Path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(RG_AH.dsId) + If Not listAnh.Contains(Path) Then + + listAnh.Add(Path) + + End If + End If + + + End Select + + + Next + End If + Next + + + End Function End Class diff --git a/SDL/Fakturierung/frmAbrechnungsMaske.vb b/SDL/Fakturierung/frmAbrechnungsMaske.vb index 225b767c..43ac30af 100644 --- a/SDL/Fakturierung/frmAbrechnungsMaske.vb +++ b/SDL/Fakturierung/frmAbrechnungsMaske.vb @@ -1,4 +1,5 @@ -Imports DocumentFormat.OpenXml.Drawing.Diagrams +Imports System.IO +Imports DocumentFormat.OpenXml.Drawing.Diagrams Imports GrapeCity.DataVisualization.Chart Imports Microsoft.Office.Interop @@ -797,7 +798,7 @@ Public Class frmAbrechnungsMaske If Not ContextMenuStrip1.Items.ContainsKey("3") Then Dim pdf = New ToolStripMenuItem() With {.Text = "PDF", .Name = "3", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} AddHandler pdf.Click, AddressOf mnuItem_Clicked - If cboFirma._value <> 19 Then ContextMenuStrip1.Items.Add(pdf) + ContextMenuStrip1.Items.Add(pdf) End If ContextMenuStrip1.Show(Cursor.Position) @@ -816,9 +817,50 @@ Public Class frmAbrechnungsMaske Dim RK_ID = SQL.getValueTxtBySql("SELECT TOP 1 RK_ID FROM Rechnungsausgang WHERE RechnungsNr='" & SR_RechnungsNr & "' AND Firma_ID='" & cboFirma._value & "' ORDER BY DruckDatumZeit DESC", "FMZOLL") If IsNumeric(RK_ID) Then Dim RG_TMP As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(RK_ID) + Dim sammelrechnungskopieMDM As Boolean = False + Dim sammelrechnungMDMmitAnhang As Boolean = False If RG_TMP IsNot Nothing Then 'id mitübergeben (1_> drucken, 2 Email, 3 PDF) - cFakturierung.doSAMMELRechnungsDruck_Abschnitt(RG_TMP.RechnungsNr, -1, -1, RG_TMP.DruckDatumZeit, "", False, , id,, True) + If RG_TMP.Sammelrechnung = 6 Then + If RG_TMP.Status = 4 Then sammelrechnungskopieMDM = True + Dim tempPDF As String = "" + Dim listOfCSV As New List(Of String) + sammelrechnungMDMmitAnhang = MsgBox("Soll die MDM Sammelrechnung mit Anhang angezeigt werden?", vbYesNoCancel) + cFakturierung.doSAMMELRechnungsDruck_Abschnitt(RG_TMP.RechnungsNr, -1, -1, RG_TMP.DruckDatumZeit, "", False, True, 8, tempPDF, True,,,,,,,,, sammelrechnungMDMmitAnhang, sammelrechnungskopieMDM, listOfCSV, True) + + Select Case id + Case 1 + 'aktuell keine Funktion PDF direkt zu drucken! + Case 2 + Try + Dim outl As New Outlook.Application + Dim Mail As Microsoft.Office.Interop.Outlook.MailItem + Mail = outl.CreateItem(0) + Mail.Attachments.Add(tempPDF, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , "Rechnung _" & RG_TMP.RechnungsNr & ".pdf") + If listOfCSV.Count > 0 Then + For Each r In listOfCSV + Dim file As New FileInfo(r) + Mail.Attachments.Add(r, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , file.Name) + Next + End If + Mail.Display() + + Catch ex As Exception + MsgBox("Fehler bim Öffnen des Mail-Programmes. PDF wird geladen!") + Process.Start(tempPDF) + End Try + + Case 3 'PDF + öffnen + Process.Start(tempPDF) + + End Select + + + Else + cFakturierung.doSAMMELRechnungsDruck_Abschnitt(RG_TMP.RechnungsNr, -1, -1, RG_TMP.DruckDatumZeit, "", False, True, id,, True,,,,,,,,,) + End If + + End If End If End If diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb index a59d6f78..d72c5a98 100644 --- a/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb +++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb @@ -25,6 +25,7 @@ Partial Class frmFaktSammelRgDrucken Me.components = New System.ComponentModel.Container() Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmFaktSammelRgDrucken)) Me.pnl = New System.Windows.Forms.Panel() + Me.RadioButton5 = New System.Windows.Forms.RadioButton() Me.RadioButton6 = New System.Windows.Forms.RadioButton() Me.RadioButton4 = New System.Windows.Forms.RadioButton() Me.RadioButton3 = New System.Windows.Forms.RadioButton() @@ -58,7 +59,7 @@ Partial Class frmFaktSammelRgDrucken Me.Label6 = New System.Windows.Forms.Label() Me.cboAbfertigungsart = New VERAG_PROG_ALLGEMEIN.MyComboBox() Me.Button2 = New System.Windows.Forms.Button() - Me.RadioButton5 = New System.Windows.Forms.RadioButton() + Me.cbxMWST = New System.Windows.Forms.CheckBox() Me.pnl.SuspendLayout() CType(Me.MyDatagridview1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() @@ -79,6 +80,19 @@ Partial Class frmFaktSammelRgDrucken Me.pnl.Size = New System.Drawing.Size(113, 167) Me.pnl.TabIndex = 0 ' + 'RadioButton5 + ' + Me.RadioButton5.AutoSize = True + Me.RadioButton5.Enabled = False + Me.RadioButton5.Location = New System.Drawing.Point(8, 118) + Me.RadioButton5.Name = "RadioButton5" + Me.RadioButton5.Size = New System.Drawing.Size(92, 17) + Me.RadioButton5.TabIndex = 6 + Me.RadioButton5.TabStop = True + Me.RadioButton5.Tag = "6" + Me.RadioButton5.Text = "6 Maut/Diesel" + Me.RadioButton5.UseVisualStyleBackColor = True + ' 'RadioButton6 ' Me.RadioButton6.AutoSize = True @@ -500,18 +514,19 @@ Partial Class frmFaktSammelRgDrucken Me.Button2.TextAlign = System.Drawing.ContentAlignment.MiddleRight Me.Button2.UseVisualStyleBackColor = True ' - 'RadioButton5 + 'cbxMWST ' - Me.RadioButton5.AutoSize = True - Me.RadioButton5.Enabled = False - Me.RadioButton5.Location = New System.Drawing.Point(8, 118) - Me.RadioButton5.Name = "RadioButton5" - Me.RadioButton5.Size = New System.Drawing.Size(92, 17) - Me.RadioButton5.TabIndex = 6 - Me.RadioButton5.TabStop = True - Me.RadioButton5.Tag = "6" - Me.RadioButton5.Text = "6 Maut/Diesel" - Me.RadioButton5.UseVisualStyleBackColor = True + Me.cbxMWST.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.cbxMWST.AutoSize = True + Me.cbxMWST.Checked = True + Me.cbxMWST.CheckState = System.Windows.Forms.CheckState.Indeterminate + Me.cbxMWST.Location = New System.Drawing.Point(707, 46) + Me.cbxMWST.Name = "cbxMWST" + Me.cbxMWST.Size = New System.Drawing.Size(94, 17) + Me.cbxMWST.TabIndex = 28 + Me.cbxMWST.Text = "MWST-Kunde" + Me.cbxMWST.ThreeState = True + Me.cbxMWST.UseVisualStyleBackColor = True ' 'frmFaktSammelRgDrucken ' @@ -519,6 +534,7 @@ Partial Class frmFaktSammelRgDrucken Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.BackColor = System.Drawing.Color.White Me.ClientSize = New System.Drawing.Size(811, 393) + Me.Controls.Add(Me.cbxMWST) Me.Controls.Add(Me.Button2) Me.Controls.Add(Me.Label6) Me.Controls.Add(Me.cboAbfertigungsart) @@ -594,4 +610,5 @@ Partial Class frmFaktSammelRgDrucken Friend WithEvents cboAbfertigungsart As VERAG_PROG_ALLGEMEIN.MyComboBox Friend WithEvents Button2 As Button Friend WithEvents RadioButton5 As RadioButton + Friend WithEvents cbxMWST As CheckBox End Class diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb index 8ba91b75..bc6764c7 100644 --- a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb +++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb @@ -26,7 +26,7 @@ Public Class frmFaktSammelRgDrucken End Sub Private Sub RadioButton_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton.CheckedChanged, RadioButton1.CheckedChanged, RadioButton2.CheckedChanged, RadioButton3.CheckedChanged, RadioButton4.CheckedChanged, RadioButton6.CheckedChanged, RadioButton5.CheckedChanged - lblSB.Visible = False : cboSB.Visible = False : btn.Enabled = True : Button9.Enabled = True : Button8.Enabled = True + lblSB.Visible = False : cboSB.Visible = False : btn.Enabled = True : Button9.Enabled = True : Button8.Enabled = True : cbxMWST.Visible = False cboSB.changeItem("") If DirectCast(sender, RadioButton).Checked Then Sammelrechung = sender.tag @@ -49,7 +49,7 @@ Public Class frmFaktSammelRgDrucken End If Case 5 : txtZeitraumBis.Text = Now.AddDays((Now.DayOfWeek) * -1).ToShortDateString - Case 6 : txtZeitraumBis.Text = Now.AddDays(-1).ToShortDateString : lblSB.Visible = True : cboSB.Visible = True : cboSB.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME) : btn.Enabled = False : Button9.Enabled = False : Button2.Enabled = False + Case 6 : txtZeitraumBis.Text = Now.AddDays(-1).ToShortDateString : lblSB.Visible = True : cboSB.Visible = True : cboSB.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME) : btn.Enabled = False : Button9.Enabled = False : Button2.Enabled = False : cbxMWST.Visible = True Case 7 : txtZeitraumBis.Text = Now.ToShortDateString : lblSB.Visible = True : cboSB.Visible = True : cboSB.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME) End Select @@ -62,8 +62,9 @@ Public Class frmFaktSammelRgDrucken Sub initDGV() With MyDatagridview1 Dim whereAbfArt = "" + Dim whereMWST = "" If cboAbfertigungsart._value <> "" Then whereAbfArt = " AND (SELECT Abfertigungsart FROM Speditionsbuch WHERE Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr and Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr and Speditionsbuch.UnterNr=Rechnungsausgang.SpeditionsbuchUnterNr)='" & cboAbfertigungsart._value & "' " - + If Not cbxMWST.CheckState.Indeterminate Then whereMWST = "AND isnull(tblKundenErweitert.kde_keineMWSt,0) = " & IIf(cbxMWST.Checked, "1", "0") Dim sqlStr = "" Select Case Sammelrechung @@ -72,12 +73,12 @@ Public Class frmFaktSammelRgDrucken sqlStr = " SELECT Rechnungsausgang.RechnungsKundenNr, max(Rechnungsausgang.[RechnungsName 1]) as [RechnungsName 1],0 as AvisoId,max(Rechnungsausgang.[RechnungsLandKz]) as [RechnungsLandKz] , count(*) as Anzahl, SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe ,(SELECT CASE WHEN Rechnungsdruck =0 THEN 'POST' WHEN Rechnungsdruck=1 THEN 'FAX' WHEN Rechnungsdruck=2 THEN 'E-MAIL' ELSE '-' END FROM Adressen WHERE AdressenNr=Rechnungsausgang.RechnungsKundenNr ) as Rechnungsdruck - FROM Rechnungsausgang + FROM Rechnungsausgang left join tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & cboFirma._value & "' And Rechnungsausgang.Sammelrechnung = '6' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) = '" & txtZeitraumBis._value & "' " & If(cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "' ", "") & " " & whereAbfArt & " - /*AND Rechnungsausgang.FakturierungsGruppe='" & cboFaktGrp._value & "'*/ - GROUP BY RechnungsKundenNr + /*AND Rechnungsausgang.FakturierungsGruppe='" & cboFaktGrp._value & "' */ " & whereMWST & " + GROUP BY RechnungsKundenNr ORDER BY Rechnungsausgang.RechnungsKundenNr " Case Else @@ -111,7 +112,7 @@ Public Class frmFaktSammelRgDrucken .Columns("Rechnungsdruck").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns("Anzahl").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns(2).Visible = False - If .Columns.Count = 8 Then + If .Columns.Contains("LKW") And .Columns.Count = 8 Then .Columns("LKW").Width = 80 End If @@ -454,4 +455,8 @@ Public Class frmFaktSammelRgDrucken Private Sub cboAbfertigungsart_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboAbfertigungsart.SelectedIndexChanged initDGV() End Sub + + Private Sub cbxMWST_Click(sender As Object, e As EventArgs) Handles cbxMWST.Click + initDGV() + End Sub End Class \ No newline at end of file diff --git a/SDL/Fakturierung/frmRechnungenSuche.vb b/SDL/Fakturierung/frmRechnungenSuche.vb index c83f6942..47ffca31 100644 --- a/SDL/Fakturierung/frmRechnungenSuche.vb +++ b/SDL/Fakturierung/frmRechnungenSuche.vb @@ -88,7 +88,7 @@ Public Class frmRechnungenSuche .Columns("SteuerfreierGesamtbetrag").DefaultCellStyle.Format = "N2" lblErgebnis.Text = "Ergebnisse: " & .RowCount - lblunterschRe.Text = "Anz. untersch. Belege: " & .Rows.Cast(Of DataGridViewRow)().[Select](Function(r) CInt(r.Cells("RechnungsNr").Value)).Distinct().Count() + lblunterschRe.Text = "Anz. untersch. Belege: " & .Rows.Cast(Of DataGridViewRow)().[Select](Function(r) CInt(IIf(Not IsDBNull(r.Cells("RechnungsNr").Value), r.Cells("RechnungsNr").Value, 0))).Distinct().Count() End With brexitXLS = False diff --git a/SDL/Fakturierung/rptSammelRechnungAnlagenDruck.Designer.vb b/SDL/Fakturierung/rptSammelRechnungAnlagenDruck.Designer.vb index 11302bfb..8876eb74 100644 --- a/SDL/Fakturierung/rptSammelRechnungAnlagenDruck.Designer.vb +++ b/SDL/Fakturierung/rptSammelRechnungAnlagenDruck.Designer.vb @@ -1039,7 +1039,7 @@ Partial Public Class rptSammelRechnungAnlagenDruck 'GroupHeader4 ' Me.GroupHeader4.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.lblLeistungsdatumUeberschrift, Me.lblSteuerpflichtigUeberschrift, Me.lblPosNrUeberschrift, Me.lblSendungUeberschrift, Me.lblSteuerfreiUeberschrift, Me.Line4, Me.Line12, Me.Line16, Me.Line15, Me.Line17, Me.lblDurchlaufposten, Me.lblSteuerplichtUeberschriftMDM}) - Me.GroupHeader4.Height = 0.2361433! + Me.GroupHeader4.Height = 0.2673933! Me.GroupHeader4.KeepTogether = True Me.GroupHeader4.Name = "GroupHeader4" ' @@ -1173,21 +1173,21 @@ Partial Public Class rptSammelRechnungAnlagenDruck 'lblDurchlaufposten ' Me.lblDurchlaufposten.DataField = "" - Me.lblDurchlaufposten.Height = 0.1433071! + Me.lblDurchlaufposten.Height = 0.3610236! Me.lblDurchlaufposten.HyperLink = Nothing - Me.lblDurchlaufposten.Left = 5.86378! + Me.lblDurchlaufposten.Left = 6.270079! Me.lblDurchlaufposten.Name = "lblDurchlaufposten" Me.lblDurchlaufposten.Style = "color: Black; font-size: 6.75pt; font-weight: bold; text-align: right; ddo-char-s" & "et: 0" - Me.lblDurchlaufposten.Text = "Durchlaufposten /nicht steuerbar" + Me.lblDurchlaufposten.Text = "DURCHLAUFPOSTEN/" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "nicht steuerbar" Me.lblDurchlaufposten.Top = 0! Me.lblDurchlaufposten.Visible = False - Me.lblDurchlaufposten.Width = 1.616536! + Me.lblDurchlaufposten.Width = 1.210237! ' 'lblSteuerplichtUeberschriftMDM ' Me.lblSteuerplichtUeberschriftMDM.DataField = "" - Me.lblSteuerplichtUeberschriftMDM.Height = 0.1433071! + Me.lblSteuerplichtUeberschriftMDM.Height = 0.2362205! Me.lblSteuerplichtUeberschriftMDM.HyperLink = Nothing Me.lblSteuerplichtUeberschriftMDM.Left = 4.761418! Me.lblSteuerplichtUeberschriftMDM.Name = "lblSteuerplichtUeberschriftMDM" @@ -1318,7 +1318,7 @@ Partial Public Class rptSammelRechnungAnlagenDruck Private WithEvents lblUIDUeberschrift As GrapeCity.ActiveReports.SectionReportModel.Label Private WithEvents Line1 As GrapeCity.ActiveReports.SectionReportModel.Line Private WithEvents Line5 As GrapeCity.ActiveReports.SectionReportModel.Line - Private WithEvents lblEORIUeberschrift As GrapeCity.ActiveReports.SectionReportModel.Label + Public WithEvents lblEORIUeberschrift As GrapeCity.ActiveReports.SectionReportModel.Label Private WithEvents lblBankUeberschrift As GrapeCity.ActiveReports.SectionReportModel.Label Public WithEvents txtDisclaimer As GrapeCity.ActiveReports.SectionReportModel.TextBox Public WithEvents lblRgNr As GrapeCity.ActiveReports.SectionReportModel.Label diff --git a/SDL/USTV/frmMDM_USTVAntrag.vb b/SDL/USTV/frmMDM_USTVAntrag.vb index 87471572..3ab59408 100644 --- a/SDL/USTV/frmMDM_USTVAntrag.vb +++ b/SDL/USTV/frmMDM_USTVAntrag.vb @@ -622,7 +622,7 @@ Public Class frmMDM_USTVAntrag 'TODO - hier Umrechnungslogik von FRMDW und EUR und EUR/FRMDWR für Belegsebene Dim umrechKurs As Double = 1 - If USTV_ANTRAG.UStVAn_Währungscode = ANTRAG.plose_WaehrungAbbuchung Then + If USTV_ANTRAG.UStVAn_Währungscode = ANTRAG.plose_WaehrungAbbuchung And USTV_ANTRAG.UStVAn_Währungscode = "EUR" Then USTV_POS.UStVPo_USteuerbetragEUR = ANTRAG.plose_MWSTBetragWaehrungAbbuchung USTV_POS.UStVPo_Umrechnungskurs = ANTRAG.plose_MWSTBetrag / ANTRAG.plose_MWSTBetragWaehrungAbbuchung USTV_POS.UStVPo_USteuerbetrag = ANTRAG.plose_MWSTBetrag @@ -640,6 +640,10 @@ Public Class frmMDM_USTVAntrag UST_EUR = Math.Round(kurs.EXCHANGE_CURTOEUR(UST_org, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2) + ElseIf USTV_ANTRAG.UStVAn_Währungscode <> "EUR" AndAlso ANTRAG.plose_WaehrungAbbuchung <> "EUR" Then + + UST_EUR = Math.Round(kurs.EXCHANGE_CURTOEUR(UST_org, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2) + End If @@ -659,7 +663,12 @@ Public Class frmMDM_USTVAntrag End If If USTV_POS.INSERT() Then - MDM_Worker.cPLOSE.UPDATE_ARCHIV(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_ID, USTV_POS.UStVPo_ReNr, True) + If CDate(USTV_ANTRAG.UStVAn_ReDatVon).Year >= 2025 Then + MDM_Worker.cPLOSE.UPDATE_ARCHIV_NEULOGIK(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_ID, USTV_POS.UStVPo_ReNr, True) + Else + MDM_Worker.cPLOSE.UPDATE_ARCHIV(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_ID, USTV_POS.UStVPo_ReNr, True) + End If + End If End If @@ -1311,12 +1320,25 @@ Public Class frmMDM_USTVAntrag If Not test Then updated = SQL.doSQL(sqlText, "FMZOLL") Case 6 'PLOSE - sqlText = "Update [tblPLOSE_Details] + + If CDate(UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReDat).Year >= 2025 Then + + sqlText = "Update [tblPLOSE_Inv_Data] + set plInv_Archiv=0, [plInv_ArchiviertDatum]=NULL, plInv_UStVAn_ID = NULL + From [tblPLOSE_Inv_Data] INNER Join Adressen On PLOSEKundenNr=plInv_PLOSEKundennummer + WHERE cast(plInv_SupplierRechnungsDatum As Date) = '" & UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReDat & "' And AdressenNr=" & USTV_ANTRAG.UStVAn_KuNr & " AND [plInv_SupplierRechnungsNr] = '" & UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReNr & "'" + + + Else + sqlText = "Update [tblPLOSE_Details] set plose_Archiv=0, [plose_ArchiviertDatum]=NULL, UStVAn_ID = NULL From [tblPLOSE_Details] INNER Join Adressen On PLOSEKundenNr=plose_POLSEKundennummer INNER Join [tblPLOSE_Produktbeschreibung] ON [plp_ProductCode]=[plose_ProduktCode] WHERE cast(plose_RechnungsDatum As Date) = '" & UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReDat & "' And AdressenNr=" & USTV_ANTRAG.UStVAn_KuNr & " AND plose_RechnungsNr = '" & UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReNr & "' And plose_LieferantCode IN (0,1,7,9) " + End If + + If Not test Then updated = SQL.doSQL(sqlText, "FMZOLL") diff --git a/SDL/USTV/frmUSTVoffeneAntraege.vb b/SDL/USTV/frmUSTVoffeneAntraege.vb index 6032bace..e40621a3 100644 --- a/SDL/USTV/frmUSTVoffeneAntraege.vb +++ b/SDL/USTV/frmUSTVoffeneAntraege.vb @@ -1,4 +1,5 @@ Imports System.Windows.Documents +Imports com.sun.org.apache.xpath.internal.objects Imports DocumentFormat.OpenXml.Drawing.Spreadsheet Imports VERAG_PROG_ALLGEMEIN @@ -90,13 +91,29 @@ Public Class frmUSTVoffeneAntraege sqlwhere &= " and Adressen.AdressenNr = " & kdnr End If - .SET_SQL("select " & top & " Adressen.AdressenNr, Adressen.[Name 1] ,[plose_Lieferant],[plose_RechnungsDatum],[plose_RechnungsNr],plp_Land, sum([plose_MWSTBetrag])[plose_MWSTBetrag], [plInv_daId] as daId FROM [tblPLOSE_Details] - INNER JOIN Adressen on PLOSEKundenNr=plose_POLSEKundennummer - INNER JOIN [tblPLOSE_Produktbeschreibung] ON [plp_ProductCode]=[plose_ProduktCode] - LEFT JOIN [tblPLOSE_Inv_Data] on plInv_SupplierRechnungsDatum=plose_RechnungsDatum and plInv_SupplierRechnungsNr=plose_RechnungsNr and plInv_SupplierCountry=plp_Land AND [plInv_daId] is not null - WHERE plose_Archiv <> 1 /*AND plose_LieferantCode IN (0,1,7) */ AND cast(plose_RechnungsDatum as date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' and plose_RechnungsNr is not null " & sqlwhere & + Dim sqlString = "Select " & top & " Adressen.AdressenNr, Adressen.[Name 1] ,[plose_Lieferant],[plose_RechnungsDatum],[plose_RechnungsNr],plp_Land, sum([plose_MWSTBetrag])[plose_MWSTBetrag], [plInv_daId] As daId FROM [tblPLOSE_Details] + INNER Join Adressen on PLOSEKundenNr=plose_POLSEKundennummer + INNER Join [tblPLOSE_Produktbeschreibung] ON [plp_ProductCode]=[plose_ProduktCode] + INNER Join [tblPLOSE_Inv_Data] on tblPLOSE_Details .plose_plInvId = plInv_Id + WHERE UStVAn_ID Is null /* plose_Archiv <> 1 And plose_LieferantCode In (0, 1, 7) */ And cast(plose_RechnungsDatum as date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' and plose_RechnungsNr is not null " & sqlwhere & "group by Adressen.AdressenNr, Adressen.[Name 1] ,[plose_RechnungsDatum],[plose_RechnungsNr],[plose_Lieferant], plp_Land, [plInv_daId] - having sum(plose_MWSTBetrag) <>0", "FMZOLL") + having sum(plose_MWSTBetrag) <>0" + + Dim year = CDate(dat_Sum_Von.Value).Year + + If year >= 2025 Then + + sqlString = "Select " & top & " Adressen.AdressenNr, Adressen.[Name 1] ,[plInv_Lieferant] as plose_Lieferant,[plInv_SupplierRechnungsDatum] as plose_RechnungsDatum,[plInv_SupplierRechnungsNr] as plose_RechnungsNr,[plInv_SupplierCountry] as plp_Land, sum([plInv_MWSTBetrag]) as plose_MWSTBetrag , [plInv_daId] As daId FROM [tblPLOSE_Inv_Data] + INNER JOIN Adressen on PLOSEKundenNr=[plInv_PLOSEKundennummer] + WHERE plInv_UStVAn_ID Is null /* plose_Archiv <> 1 And plose_LieferantCode In (0, 1, 7) */ And cast([plInv_SupplierRechnungsDatum] as date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' and [plInv_SupplierRechnungsNr] is not null " & sqlwhere & + "group by Adressen.AdressenNr, Adressen.[Name 1] ,[plInv_SupplierRechnungsDatum],[plInv_SupplierRechnungsNr],[plInv_Lieferant], [plInv_SupplierCountry], [plInv_daId] + having sum([plInv_MWSTBetrag]) <>0" + + + End If + + + .SET_SQL(sqlString, "FMZOLL") .LOAD() If .Columns.Count > 0 Then @@ -492,6 +509,8 @@ Public Class frmUSTVoffeneAntraege Dim sqlwhereLand = "" Dim sqlwhereSteuerNr = "" + Dim SQLPLOSEUMSTELLUNG = "" + If kdnr > 0 Then sqlwherePLOSE &= " and AdressenNr = " & kdnr 'sqlwherePLOSE &= " and plose_POLSEKundennummer = " & kdnr sqlwhereIDS &= " and AdressenNr = " & kdnr 'sqlwhereIDS &= " and tblIDSTransactionsNew.KdNrVERAG = " & kdnr @@ -517,26 +536,55 @@ Public Class frmUSTVoffeneAntraege sqlwhereLand &= " and isnull(UStVAn_ID,0) = 0 " End If + Dim year = CDate(dat_Sum_Von.Value).Year - With MyDatagridview1 - .Columns.Clear() - 'Exit Sub - 'MsgBox(.sql) - Dim sqlstring = "select isnull(UStVAn_ID,0) as antragExisitiert,tblSteuernummern.UStV as SteuerNr,Lieferant , KdNr, Kundenname, Kundenland, Einreichland from ( select " & top & " + If year >= 2025 Then + + SQLPLOSEUMSTELLUNG = " + + select " & top & " 'PLOSE' as Lieferant, Adressen.AdressenNr as KdNr, Adressen.[Name 1] as Kundenname, Adressen.LandKz as Kundenland, - plp_Land as Einreichland, + [plInv_SupplierCountry] as Einreichland, + [plInv_SupplierRechnungsDatum] AS Rechnungsdatum, + sum([plInv_MWSTBetrag]) as MWST + FROM [tblPLOSE_Inv_Data] + INNER JOIN Adressen on PLOSEKundenNr=plInv_PLOSEKundennummer + WHERE plInv_Archiv <> 1 AND cast(plInv_SupplierRechnungsDatum as date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' and plInv_SupplierRechnungsNr is not null " & sqlwherePLOSE & " + group by Adressen.AdressenNr, Adressen.[Name 1],Adressen.LandKz ,[plInv_SupplierRechnungsDatum],[plInv_SupplierCountry] + having sum(plInv_MWSTBetrag)<>0" + Else + SQLPLOSEUMSTELLUNG = "select " & top & " + 'PLOSE' as Lieferant, + Adressen.AdressenNr as KdNr, + Adressen.[Name 1] as Kundenname, + Adressen.LandKz as Kundenland, + [plp_Land] as Einreichland, [plose_RechnungsDatum] AS Rechnungsdatum, sum([plose_MWSTBetrag]) as MWST FROM [tblPLOSE_Details] INNER JOIN Adressen on PLOSEKundenNr=plose_POLSEKundennummer INNER JOIN [tblPLOSE_Produktbeschreibung] ON [plp_ProductCode]=[plose_ProduktCode] + INNER JOIN [tblPLOSE_Inv_Data] on tblPLOSE_Details .plose_plInvId = plInv_Id WHERE plose_Archiv <> 1 /*AND plose_LieferantCode IN (0,1,7) */ AND cast(plose_RechnungsDatum as date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' and plose_RechnungsNr is not null " & sqlwherePLOSE & " - group by Adressen.AdressenNr, Adressen.[Name 1],Adressen.LandKz ,[plose_RechnungsDatum],plp_Land - having sum(plose_MWSTBetrag)<>0 + group by Adressen.AdressenNr, Adressen.[Name 1],Adressen.LandKz ,[plose_RechnungsDatum],[plp_Land] + having sum(plose_MWSTBetrag)<>0" + + + End If + + + With MyDatagridview1 + .Columns.Clear() + 'Exit Sub + 'MsgBox(.sql) + + + + Dim sqlstring = "select isnull(UStVAn_ID,0) as antragExisitiert,tblSteuernummern.UStV as SteuerNr,Lieferant , KdNr, Kundenname, Kundenland, Einreichland from (" & SQLPLOSEUMSTELLUNG & " UNION ALL @@ -817,7 +865,7 @@ Public Class frmUSTVoffeneAntraege Else - Dim frm = New frmMDM_USTVAntrag(MyDatagridview1.SelectedRows(0).Cells("KdNr").Value, MyDatagridview1.SelectedRows(0).Cells("Land").Value, dat_Sum_Von.Value, dat_Sum_Bis.Value) + Dim frm = New frmMDM_USTVAntrag(MyDatagridview1.SelectedRows(0).Cells("KdNr").Value, MyDatagridview1.SelectedRows(0).Cells("Einreichland").Value, dat_Sum_Von.Value, dat_Sum_Bis.Value) frm.ShowDialog() End If @@ -873,7 +921,7 @@ Public Class frmUSTVoffeneAntraege fehlendePDFs = CInt((New SQL).getValueTxtBySql(SQLQuery, "FMZOLL")) MsgBox("Anzahl fehlende PDFs: " & fehlendePDFs) Else - MsgBox("Funktion nicht implementiert!") + MsgBox("Funktion nur pro Lieferant möglich!") End If diff --git a/SDL/USTV/usrCntlUSTV.vb b/SDL/USTV/usrCntlUSTV.vb index 8e244ddd..d87462d2 100644 --- a/SDL/USTV/usrCntlUSTV.vb +++ b/SDL/USTV/usrCntlUSTV.vb @@ -342,7 +342,7 @@ Public Class usrCntlUSTV ' AND cast( [UStVAn_USteuerbetragEUR] as decimal(17,2))-cast( [UStVAn_ErstattungsbetragEUR] as decimal(17,2))<>0 ' AND UStVAn_AntragEingereichtAm is not null ' order by UStVAn_KuNr,UStVAn_Name,datepart(year,[UStVAn_ReDatVon] ) desc,LandKz,[UStVAn_ReDatVon] desc" - Dim sqlStr = "SELECT [UStVAn_ID] as ID,[UStVAn_KuNr] as KundenNr,[UStVAn_Name] as Kundename,Adressen.LandKz as Land_Kunde, case when UstIdKz is not null and UstIdNr is not null THEN UstIdKz +'' + UstIdNr ELSE isnull(Steuernummer,'') END as SteuerUIDNr, LfdA .LandKz Land_Antrag,cast([UStVAn_ReDatVon] as Date),cast([UStVAn_ReDatBis] as Date) , cast(UStVAn_AntragEingereichtAm as Date) as EingereichtAm,[UStVAn_3470] as An3470 ,[UStVAn_Währungscode] as Währung,[UStVAn_USteuerbetrag] as Steuerbetrag,[UStVAn_Erstattungsbetrag] as Erstattungsbetrag,[UStVAn_USteuerbetragEUR] as SteuerbetragEUR,[UStVAn_ErstattungsbetragEUR],(cast([UStVAn_USteuerbetragEUR] as decimal(17,2)) - cast( [UStVAn_ErstattungsbetragEUR] as decimal(17,2))) as DifferenzbetragEUR, [UStVAn_Sachbearbeiter] as Sachbearbeiter, UStVAn_AntragArt as Art, stnr.[StNrFürRückerstattungUSt] as SteuerNr + Dim sqlStr = "SELECT [UStVAn_ID] as ID,[UStVAn_KuNr] as KundenNr,[UStVAn_Name] as Kundename,Adressen.LandKz as Land_Kunde, case when UstIdKz is not null and UstIdNr is not null THEN UstIdKz +'' + UstIdNr ELSE isnull(Steuernummer,'') END as SteuerUIDNr, LfdA .LandKz Land_Antrag,cast([UStVAn_ReDatVon] as Date) as ReDatVon,cast([UStVAn_ReDatBis] as Date) as ReDatBis , cast(UStVAn_AntragEingereichtAm as Date) as EingereichtAm,[UStVAn_3470] as An3470 ,[UStVAn_Währungscode] as Währung,[UStVAn_USteuerbetrag] as Steuerbetrag,[UStVAn_Erstattungsbetrag] as Erstattungsbetrag,[UStVAn_USteuerbetragEUR] as SteuerbetragEUR,[UStVAn_ErstattungsbetragEUR] as ErstattungsbetragEUR,(cast([UStVAn_USteuerbetragEUR] as decimal(17,2)) - cast( [UStVAn_ErstattungsbetragEUR] as decimal(17,2))) as DifferenzbetragEUR, UStVAn_VZBetrag as Vorauszahlungsbetrag, [UStVAn_Sachbearbeiter] as Sachbearbeiter, UStVAn_AntragArt as Art, stnr.[StNrFürRückerstattungUSt] as SteuerNr FROM [tblUStVAntrag] inner join [Länderverzeichnis für die Außenhandelsstatistik] as LfdA on UStVAn_LandNr=Landnr inner join Adressen on AdressenNr=UStVAn_KuNr @@ -734,17 +734,17 @@ Public Class usrCntlUSTV Exit Sub End If - If del_antrag.UStVAn_3470 IsNot Nothing Then + If del_antrag.UStVAn_3470 IsNot Nothing AndAlso CDbl(del_antrag.UStVAn_3470) > 0 Then MsgBox("Dieser Antrag enthält einen 3470-Betrag. Der Antrag kann nicht gelöscht werden.",, "UStV-Antrag " & del_antrag.UStVAn_ID) Exit Sub End If - If del_antrag.UStVAn_VZBetrag IsNot Nothing Then + If del_antrag.UStVAn_VZBetrag IsNot Nothing AndAlso CDbl(del_antrag.UStVAn_VZBetrag) > 0 Then MsgBox("Dieser Antrag enthält einen VZ-Betrag. Der Antrag kann nicht gelöscht werden.",, "UStV-Antrag " & del_antrag.UStVAn_ID) Exit Sub End If - If del_antrag.UStVAn_Erstattungsbetrag IsNot Nothing Then + If del_antrag.UStVAn_Erstattungsbetrag IsNot Nothing AndAlso CDbl(del_antrag.UStVAn_Erstattungsbetrag) > 0 Then MsgBox("Dieser Antrag enthält einen Erstattungsbetrag. Der Antrag kann nicht gelöscht werden.",, "UStV-Antrag " & del_antrag.UStVAn_ID) Exit Sub End If diff --git a/SDL/seriendruck/usrCntlFakturierung.Designer.vb b/SDL/seriendruck/usrCntlFakturierung.Designer.vb index a3f28fac..89b7765f 100644 --- a/SDL/seriendruck/usrCntlFakturierung.Designer.vb +++ b/SDL/seriendruck/usrCntlFakturierung.Designer.vb @@ -45,6 +45,9 @@ Partial Class usrcntlFakturierung Me.Button18 = New System.Windows.Forms.Button() Me.Label44 = New System.Windows.Forms.Label() Me.GBSammelrechnung = New System.Windows.Forms.GroupBox() + Me.Button3 = New System.Windows.Forms.Button() + Me.Button2 = New System.Windows.Forms.Button() + Me.cbxMautanh = New System.Windows.Forms.CheckBox() Me.Button1 = New System.Windows.Forms.Button() Me.PictureBox6 = New System.Windows.Forms.PictureBox() Me.PictureBox5 = New System.Windows.Forms.PictureBox() @@ -76,7 +79,10 @@ Partial Class usrcntlFakturierung Me.Label63 = New System.Windows.Forms.Label() Me.Label45 = New System.Windows.Forms.Label() Me.Button14 = New System.Windows.Forms.Button() - Me.cbxMautanh = New System.Windows.Forms.CheckBox() + Me.PictureBox7 = New System.Windows.Forms.PictureBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.PictureBox8 = New System.Windows.Forms.PictureBox() + Me.Label2 = New System.Windows.Forms.Label() Me.GroupBox1.SuspendLayout() Me.GBMautberichte.SuspendLayout() CType(Me.MyDatagridview1, System.ComponentModel.ISupportInitialize).BeginInit() @@ -87,6 +93,8 @@ Partial Class usrcntlFakturierung CType(Me.PictureBox3, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.PictureBox7, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.PictureBox8, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'GroupBox1 @@ -304,6 +312,12 @@ Partial Class usrcntlFakturierung ' 'GBSammelrechnung ' + Me.GBSammelrechnung.Controls.Add(Me.PictureBox8) + Me.GBSammelrechnung.Controls.Add(Me.Label2) + Me.GBSammelrechnung.Controls.Add(Me.PictureBox7) + Me.GBSammelrechnung.Controls.Add(Me.Label1) + Me.GBSammelrechnung.Controls.Add(Me.Button3) + Me.GBSammelrechnung.Controls.Add(Me.Button2) Me.GBSammelrechnung.Controls.Add(Me.cbxMautanh) Me.GBSammelrechnung.Controls.Add(Me.Button1) Me.GBSammelrechnung.Controls.Add(Me.PictureBox6) @@ -343,6 +357,42 @@ Partial Class usrcntlFakturierung Me.GBSammelrechnung.TabIndex = 14 Me.GBSammelrechnung.TabStop = False ' + 'Button3 + ' + Me.Button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button3.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) + Me.Button3.Location = New System.Drawing.Point(123, 346) + Me.Button3.Name = "Button3" + Me.Button3.Size = New System.Drawing.Size(121, 32) + Me.Button3.TabIndex = 109 + Me.Button3.Text = "BS berechnen" + Me.Button3.UseVisualStyleBackColor = True + Me.Button3.Visible = False + ' + 'Button2 + ' + Me.Button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button2.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) + Me.Button2.Location = New System.Drawing.Point(4, 346) + Me.Button2.Name = "Button2" + Me.Button2.Size = New System.Drawing.Size(106, 32) + Me.Button2.TabIndex = 108 + Me.Button2.Text = "PP berechnen" + Me.Button2.UseVisualStyleBackColor = True + Me.Button2.Visible = False + ' + 'cbxMautanh + ' + Me.cbxMautanh.AutoSize = True + Me.cbxMautanh.Checked = True + Me.cbxMautanh.CheckState = System.Windows.Forms.CheckState.Checked + Me.cbxMautanh.Location = New System.Drawing.Point(450, 262) + Me.cbxMautanh.Name = "cbxMautanh" + Me.cbxMautanh.Size = New System.Drawing.Size(184, 17) + Me.cbxMautanh.TabIndex = 107 + Me.cbxMautanh.Text = "Mautanhänge im PDF hinzufügen" + Me.cbxMautanh.UseVisualStyleBackColor = True + ' 'Button1 ' Me.Button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat @@ -358,7 +408,7 @@ Partial Class usrcntlFakturierung ' Me.PictureBox6.BackgroundImage = CType(resources.GetObject("PictureBox6.BackgroundImage"), System.Drawing.Image) Me.PictureBox6.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.PictureBox6.Location = New System.Drawing.Point(151, 172) + Me.PictureBox6.Location = New System.Drawing.Point(148, 163) Me.PictureBox6.Name = "PictureBox6" Me.PictureBox6.Size = New System.Drawing.Size(14, 14) Me.PictureBox6.TabIndex = 105 @@ -369,7 +419,7 @@ Partial Class usrcntlFakturierung ' Me.PictureBox5.BackgroundImage = CType(resources.GetObject("PictureBox5.BackgroundImage"), System.Drawing.Image) Me.PictureBox5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.PictureBox5.Location = New System.Drawing.Point(151, 155) + Me.PictureBox5.Location = New System.Drawing.Point(148, 146) Me.PictureBox5.Name = "PictureBox5" Me.PictureBox5.Size = New System.Drawing.Size(14, 14) Me.PictureBox5.TabIndex = 104 @@ -380,7 +430,7 @@ Partial Class usrcntlFakturierung ' Me.PictureBox4.BackgroundImage = CType(resources.GetObject("PictureBox4.BackgroundImage"), System.Drawing.Image) Me.PictureBox4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.PictureBox4.Location = New System.Drawing.Point(151, 138) + Me.PictureBox4.Location = New System.Drawing.Point(148, 129) Me.PictureBox4.Name = "PictureBox4" Me.PictureBox4.Size = New System.Drawing.Size(14, 14) Me.PictureBox4.TabIndex = 103 @@ -391,7 +441,7 @@ Partial Class usrcntlFakturierung ' Me.PictureBox3.BackgroundImage = CType(resources.GetObject("PictureBox3.BackgroundImage"), System.Drawing.Image) Me.PictureBox3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.PictureBox3.Location = New System.Drawing.Point(151, 121) + Me.PictureBox3.Location = New System.Drawing.Point(148, 112) Me.PictureBox3.Name = "PictureBox3" Me.PictureBox3.Size = New System.Drawing.Size(14, 14) Me.PictureBox3.TabIndex = 102 @@ -402,7 +452,7 @@ Partial Class usrcntlFakturierung ' Me.PictureBox2.BackgroundImage = CType(resources.GetObject("PictureBox2.BackgroundImage"), System.Drawing.Image) Me.PictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.PictureBox2.Location = New System.Drawing.Point(151, 104) + Me.PictureBox2.Location = New System.Drawing.Point(148, 95) Me.PictureBox2.Name = "PictureBox2" Me.PictureBox2.Size = New System.Drawing.Size(14, 14) Me.PictureBox2.TabIndex = 101 @@ -413,7 +463,7 @@ Partial Class usrcntlFakturierung ' Me.PictureBox1.BackgroundImage = Global.SDL.My.Resources.Resources.ok Me.PictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.PictureBox1.Location = New System.Drawing.Point(151, 90) + Me.PictureBox1.Location = New System.Drawing.Point(148, 76) Me.PictureBox1.Name = "PictureBox1" Me.PictureBox1.Size = New System.Drawing.Size(14, 14) Me.PictureBox1.TabIndex = 95 @@ -422,7 +472,7 @@ Partial Class usrcntlFakturierung ' 'Label4 ' - Me.Label4.Location = New System.Drawing.Point(171, 155) + Me.Label4.Location = New System.Drawing.Point(168, 146) Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(440, 17) Me.Label4.TabIndex = 100 @@ -538,7 +588,7 @@ Partial Class usrcntlFakturierung ' Me.txtPloseAnh_Einarbeitung.BackColor = System.Drawing.Color.White Me.txtPloseAnh_Einarbeitung.BorderStyle = System.Windows.Forms.BorderStyle.None - Me.txtPloseAnh_Einarbeitung.Location = New System.Drawing.Point(209, 218) + Me.txtPloseAnh_Einarbeitung.Location = New System.Drawing.Point(510, 218) Me.txtPloseAnh_Einarbeitung.Name = "txtPloseAnh_Einarbeitung" Me.txtPloseAnh_Einarbeitung.Size = New System.Drawing.Size(106, 13) Me.txtPloseAnh_Einarbeitung.TabIndex = 38 @@ -546,7 +596,7 @@ Partial Class usrcntlFakturierung 'Label71 ' Me.Label71.AutoSize = True - Me.Label71.Location = New System.Drawing.Point(144, 218) + Me.Label71.Location = New System.Drawing.Point(443, 218) Me.Label71.Name = "Label71" Me.Label71.Size = New System.Drawing.Size(56, 13) Me.Label71.TabIndex = 35 @@ -554,14 +604,14 @@ Partial Class usrcntlFakturierung ' 'pbPloseAnh_Proz ' - Me.pbPloseAnh_Proz.Location = New System.Drawing.Point(147, 189) + Me.pbPloseAnh_Proz.Location = New System.Drawing.Point(446, 189) Me.pbPloseAnh_Proz.Name = "pbPloseAnh_Proz" - Me.pbPloseAnh_Proz.Size = New System.Drawing.Size(283, 23) + Me.pbPloseAnh_Proz.Size = New System.Drawing.Size(245, 23) Me.pbPloseAnh_Proz.TabIndex = 36 ' 'lblPloseAnh_Proz ' - Me.lblPloseAnh_Proz.Location = New System.Drawing.Point(361, 218) + Me.lblPloseAnh_Proz.Location = New System.Drawing.Point(622, 218) Me.lblPloseAnh_Proz.Name = "lblPloseAnh_Proz" Me.lblPloseAnh_Proz.Size = New System.Drawing.Size(69, 13) Me.lblPloseAnh_Proz.TabIndex = 37 @@ -572,7 +622,7 @@ Partial Class usrcntlFakturierung ' Me.Button19.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.Button19.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) - Me.Button19.Location = New System.Drawing.Point(10, 163) + Me.Button19.Location = New System.Drawing.Point(10, 182) Me.Button19.Name = "Button19" Me.Button19.Size = New System.Drawing.Size(121, 49) Me.Button19.TabIndex = 32 @@ -581,7 +631,7 @@ Partial Class usrcntlFakturierung ' 'Label70 ' - Me.Label70.Location = New System.Drawing.Point(171, 172) + Me.Label70.Location = New System.Drawing.Point(168, 163) Me.Label70.Name = "Label70" Me.Label70.Size = New System.Drawing.Size(429, 14) Me.Label70.TabIndex = 30 @@ -626,7 +676,7 @@ Partial Class usrcntlFakturierung ' 'Label65 ' - Me.Label65.Location = New System.Drawing.Point(171, 138) + Me.Label65.Location = New System.Drawing.Point(168, 129) Me.Label65.Name = "Label65" Me.Label65.Size = New System.Drawing.Size(440, 17) Me.Label65.TabIndex = 8 @@ -634,7 +684,7 @@ Partial Class usrcntlFakturierung ' 'Label64 ' - Me.Label64.Location = New System.Drawing.Point(171, 121) + Me.Label64.Location = New System.Drawing.Point(168, 112) Me.Label64.Name = "Label64" Me.Label64.Size = New System.Drawing.Size(440, 17) Me.Label64.TabIndex = 7 @@ -642,7 +692,7 @@ Partial Class usrcntlFakturierung ' 'Label63 ' - Me.Label63.Location = New System.Drawing.Point(171, 104) + Me.Label63.Location = New System.Drawing.Point(168, 95) Me.Label63.Name = "Label63" Me.Label63.Size = New System.Drawing.Size(440, 17) Me.Label63.TabIndex = 6 @@ -651,7 +701,7 @@ Partial Class usrcntlFakturierung ' 'Label45 ' - Me.Label45.Location = New System.Drawing.Point(171, 87) + Me.Label45.Location = New System.Drawing.Point(168, 78) Me.Label45.Name = "Label45" Me.Label45.Size = New System.Drawing.Size(224, 17) Me.Label45.TabIndex = 5 @@ -661,24 +711,50 @@ Partial Class usrcntlFakturierung ' Me.Button14.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.Button14.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) - Me.Button14.Location = New System.Drawing.Point(10, 90) + Me.Button14.Location = New System.Drawing.Point(10, 81) Me.Button14.Name = "Button14" Me.Button14.Size = New System.Drawing.Size(121, 49) Me.Button14.TabIndex = 4 Me.Button14.Text = "Rechnungspos. berechnen" Me.Button14.UseVisualStyleBackColor = True ' - 'cbxMautanh + 'PictureBox7 ' - Me.cbxMautanh.AutoSize = True - Me.cbxMautanh.Checked = True - Me.cbxMautanh.CheckState = System.Windows.Forms.CheckState.Checked - Me.cbxMautanh.Location = New System.Drawing.Point(450, 262) - Me.cbxMautanh.Name = "cbxMautanh" - Me.cbxMautanh.Size = New System.Drawing.Size(184, 17) - Me.cbxMautanh.TabIndex = 107 - Me.cbxMautanh.Text = "Mautanhänge im PDF hinzufügen" - Me.cbxMautanh.UseVisualStyleBackColor = True + Me.PictureBox7.BackgroundImage = Global.SDL.My.Resources.Resources.ok + Me.PictureBox7.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.PictureBox7.Location = New System.Drawing.Point(148, 195) + Me.PictureBox7.Name = "PictureBox7" + Me.PictureBox7.Size = New System.Drawing.Size(14, 14) + Me.PictureBox7.TabIndex = 111 + Me.PictureBox7.TabStop = False + Me.PictureBox7.Visible = False + ' + 'Label1 + ' + Me.Label1.Location = New System.Drawing.Point(168, 195) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(224, 17) + Me.Label1.TabIndex = 110 + Me.Label1.Text = "1. Rechnungsnummern gesetzt" + ' + 'PictureBox8 + ' + Me.PictureBox8.BackgroundImage = Global.SDL.My.Resources.Resources.ok + Me.PictureBox8.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.PictureBox8.Location = New System.Drawing.Point(148, 212) + Me.PictureBox8.Name = "PictureBox8" + Me.PictureBox8.Size = New System.Drawing.Size(14, 14) + Me.PictureBox8.TabIndex = 113 + Me.PictureBox8.TabStop = False + Me.PictureBox8.Visible = False + ' + 'Label2 + ' + Me.Label2.Location = New System.Drawing.Point(168, 212) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(224, 17) + Me.Label2.TabIndex = 112 + Me.Label2.Text = "2. PDFs erzeugt" ' 'usrcntlFakturierung ' @@ -705,6 +781,8 @@ Partial Class usrcntlFakturierung CType(Me.PictureBox3, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.PictureBox7, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.PictureBox8, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout() @@ -762,4 +840,10 @@ Partial Class usrcntlFakturierung Friend WithEvents PictureBox2 As PictureBox Friend WithEvents Button1 As Button Friend WithEvents cbxMautanh As CheckBox + Friend WithEvents Button3 As Button + Friend WithEvents Button2 As Button + Friend WithEvents PictureBox7 As PictureBox + Friend WithEvents Label1 As Label + Friend WithEvents PictureBox8 As PictureBox + Friend WithEvents Label2 As Label End Class diff --git a/SDL/seriendruck/usrCntlFakturierung.vb b/SDL/seriendruck/usrCntlFakturierung.vb index cb932963..457a0bce 100644 --- a/SDL/seriendruck/usrCntlFakturierung.vb +++ b/SDL/seriendruck/usrCntlFakturierung.vb @@ -65,6 +65,11 @@ Public Class usrcntlFakturierung End If + If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ADMINFUNCTIONS", "SDL") Then + Button2.Visible = True + Button3.Visible = True + End If + End Sub @@ -303,7 +308,7 @@ Public Class usrcntlFakturierung End Sub - Private Function PortoPapiere(Sachbearbeiter As String, rechnungsdatum As Date) As Boolean + Private Function PortoPapiere(Sachbearbeiter As String, rechnungsdatum As Date, Optional kdNr As Integer = -1) As Boolean ' Die Abfrage ermittelt aus den Rechnungspositonen, @@ -327,10 +332,10 @@ Public Class usrcntlFakturierung INNER JOIN RechnungsausgangPositionen ON Rechnungsausgang.RK_ID = RechnungsausgangPositionen.RK_ID WHERE - Rechnungsausgang.Status = 0 + Rechnungsausgang.Status in " & If(kdNr > 0, "(0,2)", "(0)") & " AND Rechnungsausgang.Sammelrechnung = 6 AND UPPER(Rechnungsausgang.Sachbearbeiter) = '" & Sachbearbeiter & "' - AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "' + AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "' " & IIf(kdNr > 0, " AND RechnungsKundenNr = " & kdNr, "") & " GROUP BY Rechnungsausgang.Firma_ID, @@ -584,16 +589,16 @@ Public Class usrcntlFakturierung End Function - Private Function Bankspesen(Sachbearbeiter As String, rechnungsdatum As Date) + Private Function Bankspesen(Sachbearbeiter As String, rechnungsdatum As Date, Optional kdNr As Integer = -1) Dim isSet As Boolean = False Dim sqlBB = " Select Firma_ID, Status, Sammelrechnung, Sachbearbeiter, RechnungsKundenNr, BelegartenNr, Währungscode, [Steuersatz %], Lastschrift From dbo.Rechnungsausgang - Where Status = 0 + Where Status IN " & If(kdNr > 0, "(0,2)", "(0)") & " And Sammelrechnung = 6 And UPPER([Sachbearbeiter]) ='" & Sachbearbeiter & "' - AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "' + AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "'" & If(kdNr > 0, " AND RechnungsKundenNr = " & kdNr, "") & " Group By Firma_ID, Status, Sammelrechnung, Sachbearbeiter, RechnungsKundenNr, BelegartenNr, Währungscode, [Steuersatz %], Lastschrift Order By Firma_ID, Status, Sammelrechnung, Sachbearbeiter, RechnungsKundenNr, BelegartenNr, Währungscode, [Steuersatz %], Lastschrift" @@ -712,9 +717,9 @@ Public Class usrcntlFakturierung If sumCurrenRow > 0 Then - preis = Math.Floor(sumCurrenRow * rowBS("Bankspesen %") + 0.5) + preis = Math.Round(sumCurrenRow * rowBS("Bankspesen %") + 0.5, 2) Else - preis = Math.Floor(0 - sumCurrenRow * rowBS("Bankspesen %") + 0.5) + preis = Math.Round(0 - sumCurrenRow * rowBS("Bankspesen %") + 0.5, 2) End If Else @@ -948,14 +953,14 @@ Public Class usrcntlFakturierung If dtSammelrechnungen.Rows.Count > 0 Then - For Each rowSARE In dtSammelrechnungen.Rows + Dim reNrisSet = setStatus2(Sachbearbeiter, rechnungsdatum, dtSammelrechnungen) - If Not setStatus2(Sachbearbeiter, rechnungsdatum, dtSammelrechnungen) Then - MsgBox("Fehler beim Setzen der Rechnungsnummer" & vbNewLine & "Vorgang wird abgebrochen!") - Exit Sub - End If + showPic(reNrisSet, PictureBox7) - Next + If Not reNrisSet Then + MsgBox("Fehler beim Setzen der Rechnungsnummer" & vbNewLine & "Vorgang wird abgebrochen!") + Exit Sub + End If End If @@ -977,7 +982,7 @@ Public Class usrcntlFakturierung nurNICHTEUKunden = MsgBox("Sollen nur die Rechnungen der NICHT-EU Kunden gedruckt werden?", vbYesNo) End If - Dim dTLANDEU As DataTable = (New SQL).loadDgvBySql("select LandKz, MitgliedslandEU from Währungstabelle where LandKz is not null", "FMZOLL") + Dim dTLANDEU As DataTable = (New SQL).loadDgvBySql("select LandKz, MitgliedslandEU from Währungstabelle where LandKz is not null", "FMZOLL") Dim R As DataRow = dTLANDEU.NewRow R("LandKz") = "MK" @@ -1024,11 +1029,14 @@ Public Class usrcntlFakturierung If Not FormularManagerNEU.MergePdfFiles(listPDFs, pathPDFMerge) Then Exit Sub MsgBox("Fehler beim Zusammenführen der PDFs.") + showPic(False, PictureBox8) Else + showPic(True, PictureBox8) Process.Start(pathPDFMerge) End If Else + showPic(True, PictureBox8) Process.Start(pathPDF) End If @@ -1138,7 +1146,8 @@ Public Class usrcntlFakturierung Else - MsgBox("Keine Sammelrechnung zum " & rechnungsdatum.ToShortDateString & " von " & Sachbearbeiter & " vorhanden!") + showPic(false, PictureBox8) + MsgBox("Keine Sammelrechnung zum " & rechnungsdatum.ToShortDateString & " von " & Sachbearbeiter & " vorhanden!") End If End Sub @@ -1644,7 +1653,7 @@ Public Class usrcntlFakturierung End Function - Private Sub cboSachbearbeiter_RightToLeftChanged(sender As Object, e As EventArgs) Handles cboSachbearbeiter.RightToLeftChanged + Private Sub cboSachbearbeiter_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboSachbearbeiter.SelectedIndexChanged Dim sammelrechnung0vorhanden As Boolean = True sammelrechnung0vorhanden = checkIfStatus0Sammelrechnugnenvorhanden(cboSachbearbeiter._value, CDate(dtRechnungsdatum.Text)) @@ -1652,6 +1661,53 @@ Public Class usrcntlFakturierung Button14.Enabled = sammelrechnung0vorhanden Button20.Enabled = sammelrechnung0vorhanden + End Sub + + Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click, Button3.Click + + Dim Sachbearbeiter = cboSachbearbeiter._value + Dim rechnungsdatum As Date = CDate(dtRechnungsdatum.Text) + Dim kdNr As Integer = -1 + + If rechnungsdatum > Today() Then + MsgBox("Rechnungsdatum liegt in der Zukunft, nicht möglich") + Exit Sub + + End If + + If Sachbearbeiter = "" Then + MsgBox("Sachbearbeiter auswählen!") + Exit Sub + End If + + If rbkunde.Checked Then + If KdSearchBox3.KdNr > 0 Then + kdnr = KdSearchBox3.KdNr + Else + MsgBox("Kunde auswählen!") + Exit Sub + End If + End If + + + + Select Case sender.Name + Case "Button2" + + ' Porto/Papiere berechnen. + showPic(PortoPapiere(Sachbearbeiter, rechnungsdatum, kdNr), PictureBox4) + + + Case "Button3" + + 'Berechnet Banküberweisung/Bankspesen. + showPic(Bankspesen(Sachbearbeiter, rechnungsdatum, kdNr), PictureBox5) + + End Select + + + End Sub + End Class