diff --git a/SDL/Fakturierung/cFakturierung.vb b/SDL/Fakturierung/cFakturierung.vb index 200ffaf1..9157650f 100644 --- a/SDL/Fakturierung/cFakturierung.vb +++ b/SDL/Fakturierung/cFakturierung.vb @@ -2243,10 +2243,10 @@ Public Class cFakturierung ) If rpt IsNot Nothing Then desc.AddTradePaymentTerms(rpt.Label2.Text, zahlungszieldatum) - desc.SetPaymentMeans(PaymentMeansTypeCodes.PaymentToBankAccount, rpt.Label2.Text) + desc.SetPaymentMeans(PaymentMeansTypeCodes.SEPACreditTransfer, rpt.Label2.Text) ElseIf rptAnl IsNot Nothing Then desc.AddTradePaymentTerms(rptAnl.Label2.Text, zahlungszieldatum) - desc.SetPaymentMeans(PaymentMeansTypeCodes.PaymentToBankAccount, rptAnl.Label2.Text) + desc.SetPaymentMeans(PaymentMeansTypeCodes.SEPACreditTransfer, rptAnl.Label2.Text) End If 'If RECHNUNG.TextZZ.ToString.Contains("Abbuchungsauftrag") Then diff --git a/SDL/USTV/frmMDM_USTVAntrag.vb b/SDL/USTV/frmMDM_USTVAntrag.vb index b769d9f1..13536885 100644 --- a/SDL/USTV/frmMDM_USTVAntrag.vb +++ b/SDL/USTV/frmMDM_USTVAntrag.vb @@ -3,6 +3,7 @@ Imports System.IO Imports System.Reflection Imports System.Windows.Documents Imports com.sun.tools.corba.se.idl.constExpr +Imports IKVM.internal Imports itextsharp.text.pdf Imports itextsharp.text.pdf.parser Imports Microsoft.Office.Interop @@ -635,7 +636,11 @@ Public Class frmMDM_USTVAntrag USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME USTV_POS.UStVPo_Zeitstempel = Now() - If USTV_POS.UStVPo_daId > 0 Then USTV_POS.UStVPo_daId_loeschbar = False + If USTV_POS.UStVPo_daId <> "" AndAlso USTV_POS.UStVPo_daId > 0 Then + USTV_POS.UStVPo_daId_loeschbar = False + Else + USTV_POS.UStVPo_daId_loeschbar = True + End If ' USTV_POS.UStVPo_daId = ANTRAG.plose_daId ' Berechnungen @@ -842,7 +847,12 @@ Public Class frmMDM_USTVAntrag USTV_POS.UStVPo_ReNr = r.Item("rmc_reNr").ToString USTV_POS.UStVPo_SchnittstellenNr = bytSchnittstellenNr USTV_POS.UStVPo_daId = r.Item("rmc_daId") - If USTV_POS.UStVPo_daId > 0 Then USTV_POS.UStVPo_daId_loeschbar = False + If USTV_POS.UStVPo_daId <> "" AndAlso USTV_POS.UStVPo_daId > 0 Then + USTV_POS.UStVPo_daId_loeschbar = False + Else + USTV_POS.UStVPo_daId_loeschbar = True + + End If If Not alreadyExists(USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_LandNr, USTV_POS) Then @@ -909,7 +919,11 @@ Public Class frmMDM_USTVAntrag USTV_POS.UStVPo_ReNr = r.Item("invoice_number") & " - " & kdNr & IIf(Antrag_LandKz = "BE", "/Belgium", "") USTV_POS.UStVPo_SchnittstellenNr = bytSchnittstellenNr USTV_POS.UStVPo_daId = r.Item("daId") - If USTV_POS.UStVPo_daId > 0 Then USTV_POS.UStVPo_daId_loeschbar = False + If USTV_POS.UStVPo_daId > 0 Then + USTV_POS.UStVPo_daId_loeschbar = False + Else + USTV_POS.UStVPo_daId_loeschbar = True + End If If Not alreadyExistsMitLeistungsBez(USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_LandNr, USTV_POS) Then @@ -977,7 +991,11 @@ Public Class frmMDM_USTVAntrag USTV_POS.UStVPo_ReNr = r.Item("Rechnungsnummer").ToString USTV_POS.UStVPo_SchnittstellenNr = bytSchnittstellenNr USTV_POS.UStVPo_daId = r.Item("daId") - If USTV_POS.UStVPo_daId > 0 Then USTV_POS.UStVPo_daId_loeschbar = False + If USTV_POS.UStVPo_daId > 0 Then + USTV_POS.UStVPo_daId_loeschbar = False + Else + USTV_POS.UStVPo_daId_loeschbar = True + End If If Not alreadyExists(USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_LandNr, USTV_POS) Then @@ -1047,7 +1065,11 @@ Public Class frmMDM_USTVAntrag USTV_POS.UStVPo_SchnittstellenNr = bytSchnittstellenNr USTV_POS.UStVPo_daId = sql.getValueTxtBySql("SELECT TOP(1) tblIDSInvoicesNew.daId FROM [tblIDSTransactionsNew] INNER JOIN tbl_IDS_Länder ON tblIDSTransactionsNew.[OutletCountryCode] = tbl_IDS_Länder.OutletCountryCode LEFT JOIN tblIDSInvoicesNew on tblIDSInvoicesNew.CustomerCode = tblIDSTransactionsNew.CustomerCode and tblIDSInvoicesNew.Invoicenumber = Paymentsummarynumber where tblIDSTransactionsNew.[YearMonthDay] ='" & USTV_POS.UStVPo_ReDat & "' AND ISNULL(tblIDSTransactionsNew.[OBONumber], ISNULL(tblIDSTransactionsNew.[VRNumber], tblIDSTransactionsNew.[Paymentsummarynumber])) ='" & USTV_POS.UStVPo_ReNr & "' and tbl_IDS_Länder.Lieferland_ISO2='" & Antrag_LandKz & "' AND tblIDSInvoicesNew.daId is not null", "FMZOLL") - If USTV_POS.UStVPo_daId > 0 Then USTV_POS.UStVPo_daId_loeschbar = False + If USTV_POS.UStVPo_daId <> "" AndAlso USTV_POS.UStVPo_daId > 0 Then + USTV_POS.UStVPo_daId_loeschbar = False + Else + USTV_POS.UStVPo_daId_loeschbar = True + End If If Not alreadyExists(USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_LandNr, USTV_POS) Then USTV_POS.UStVPo_Schnittstelle = True @@ -1646,7 +1668,7 @@ Public Class frmMDM_USTVAntrag If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 Then Dim pdf As String = "" - pdf = getPDF(dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_SchnittstellenNr").Value, dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_ReNr").Value, dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_ReDat").Value, dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_daId").Value, False) + pdf = getPDF(dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_SchnittstellenNr").Value, dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_ReNr").Value, dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_ReDat").Value, dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_daId").Value, False, False) If IO.File.Exists(pdf) Then Process.Start(pdf) @@ -1702,7 +1724,7 @@ Public Class frmMDM_USTVAntrag For Each row As DataGridViewRow In dgvUSTVPositionen.SelectedRows.Cast(Of DataGridViewRow)().OrderBy(Function(dgvr) dgvr.Index) Dim pdf As String = "" - pdf = getPDF(row.Cells("UStVPo_SchnittstellenNr").Value, row.Cells("UStVPo_ReNr").Value, row.Cells("UStVPo_ReDat").Value, row.Cells("UStVPo_daId").Value, IIf(nummerierung, row.Cells("UStVPo_ID").Value, -1)) + pdf = getPDF(row.Cells("UStVPo_SchnittstellenNr").Value, row.Cells("UStVPo_ReNr").Value, row.Cells("UStVPo_ReDat").Value, row.Cells("UStVPo_daId").Value, IIf(nummerierung, row.Cells("UStVPo_ID").Value, -1), IIf(row.Cells("UStVPo_Leistender").Value.ToString.ToLower.Contains("wag"), True, False)) If pdf <> "" Then list.Add(pdf) @@ -1751,7 +1773,7 @@ Public Class frmMDM_USTVAntrag End Sub - Private Function getPDF(schnittstellenNr, ReNr, ReDat, daId, nummierung) As String + Private Function getPDF(schnittstellenNr, ReNr, ReDat, daId, nummierung, PDFisProtected) As String Dim schnnittstellenNr = schnittstellenNr @@ -1784,6 +1806,7 @@ Public Class frmMDM_USTVAntrag If nummierung > 0 Then Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(path) + PdfReader.unethicalreading = True Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues) @@ -1853,17 +1876,37 @@ Public Class frmMDM_USTVAntrag End If - If nummierung > 0 Then - Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues) - listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(nummierung, x, y, width, height, mFont, mSize, , itextsharp.text.Element.ALIGN_LEFT, page)) - End If + + Next srcDoc.Close() pdfReader.Close() - Return TMP_Path_New + If nummierung > 0 Then + + Dim pdfReadernNew As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(TMP_Path_New) + pdfReadernNew.unethicalreading = True + + Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager + Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues) + + For page As Integer = 1 To pdfReadernNew.NumberOfPages + listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(nummierung, x, y - 6, width, height, mFont, mSize, , itextsharp.text.Element.ALIGN_LEFT, page)) + Next + + pdfReader.Close() + + Dim PdfTmp = fm.fillPDFVorhandenesLokalesPDF_Path(TMP_Path_New, listTowrite, , , , ,) + Return PdfTmp + Else + + + Return TMP_Path_New + + End If + @@ -1876,23 +1919,55 @@ Public Class frmMDM_USTVAntrag Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dsID) If nummierung > 0 Then - Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(DS.GET_TOP1_PATH) + 'wenn PDF nicht beschreibbar, dann mittels Stamp! + If PDFisProtected Then - Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager - Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues) + Dim tempPathNew = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(DS.da_name & "_modified", ".pdf", True, False, "USTVA") - For page As Integer = 1 To pdfReader.NumberOfPages - listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(nummierung, x, y, width, height, mFont, mSize, , itextsharp.text.Element.ALIGN_LEFT, page)) - Next + Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(DS.GET_TOP1_PATH) + PdfReader.unethicalreading = True - pdfReader.Close() + Dim fs = New FileStream(tempPathNew, FileMode.Create, FileAccess.Write, FileShare.None) + Dim stamper = New PdfStamper(pdfReader, fs) + + For page As Integer = 1 To pdfReader.NumberOfPages + Dim canvas As PdfContentByte = stamper.GetOverContent(page) + Dim bf As BaseFont = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED) + canvas.SetFontAndSize(bf, 12) + canvas.BeginText() + 'The origin (0,0) is at the bottom-left corner of the page and represent coordinates in points!!!!!!! + canvas.ShowTextAligned(PdfContentByte.ALIGN_CENTER, nummierung, 350, 550, 0) + canvas.EndText() + 'listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(nummierung, x, y, width, height, mFont, mSize, , itextsharp.text.Element.ALIGN_LEFT, page)) + Next + stamper.Close() + pdfReader.Close() + + Return tempPathNew + + Else + + + Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(DS.GET_TOP1_PATH) + + Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager + Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues) + + For page As Integer = 1 To pdfReader.NumberOfPages + listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(nummierung, x, y, width, height, mFont, mSize, , itextsharp.text.Element.ALIGN_LEFT, page)) + Next + + pdfReader.Close() + + Dim PdfTmp = fm.fillPDFVorhandenesLokalesPDF_Path(DS.GET_TOP1_PATH, listTowrite, , , , ,) + Return PdfTmp + + End If - Dim PdfTmp = fm.fillPDFVorhandenesLokalesPDF_Path(DS.GET_TOP1_PATH, listTowrite, , , , ,) - Return PdfTmp Else - Return DS.GET_TOP1_PATH + Return DS.GET_TOP1_PATH End If diff --git a/SDL/seriendruck/usrCntlFakturierung.vb b/SDL/seriendruck/usrCntlFakturierung.vb index 41f842de..83d5fb5e 100644 --- a/SDL/seriendruck/usrCntlFakturierung.vb +++ b/SDL/seriendruck/usrCntlFakturierung.vb @@ -948,7 +948,7 @@ Public Class usrcntlFakturierung ' ORDER BY [Firma_ID], [Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr]" - Dim SQLString ="SELECT [Firma_ID], [Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], isnull([Steuersatz %],0) as [Steuersatz %], cast([Lastschrift] as bit) as Lastschrift, Sum([SteuerpflichtigerGesamtbetrag]+[SteuerfreierGesamtbetrag]) AS Sammelrechnungsbetrag + Dim SQLString = "SELECT [Firma_ID], [Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], isnull([Steuersatz %],0) as [Steuersatz %], cast([Lastschrift] as bit) as Lastschrift, Sum([SteuerpflichtigerGesamtbetrag]+[SteuerfreierGesamtbetrag]) AS Sammelrechnungsbetrag FROM Rechnungsausgang WHERE [Status] = 0 AND [Sammelrechnung] = 6 AND UPPER([Sachbearbeiter]) = '" & Sachbearbeiter & "' AND ([SteuerpflichtigerGesamtbetrag] <> 0 OR [SteuerfreierGesamtbetrag] <> 0) AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "' GROUP BY [Firma_ID], [Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], [Steuersatz %], [Lastschrift] @@ -1039,13 +1039,13 @@ Public Class usrcntlFakturierung If True Then 'cnt Mod 10 = 0 Then - txtPloseAnh_Einarbeitung.Text = cnt & " / " & dtSelectedSammelrechnungen.Rows.Count - Dim proz As Double = (cnt / dtSelectedSammelrechnungen.Rows.Count) * 100 - pbPloseAnh_Proz.Value = proz - lblPloseAnh_Proz.Text = proz.ToString("N2") & " %" - 'GroupBox12.Refresh() - My.Application.DoEvents() - End If + txtPloseAnh_Einarbeitung.Text = cnt & " / " & dtSelectedSammelrechnungen.Rows.Count + Dim proz As Double = (cnt / dtSelectedSammelrechnungen.Rows.Count) * 100 + pbPloseAnh_Proz.Value = proz + lblPloseAnh_Proz.Text = proz.ToString("N2") & " %" + 'GroupBox12.Refresh() + My.Application.DoEvents() + End If cnt += 1