Merge branch 'newMaster2024' of https://dev.azure.com/VeragAG/_git/SDL into newMaster2024

This commit is contained in:
2025-04-28 12:01:39 +02:00
6 changed files with 633 additions and 211 deletions

View File

@@ -62,7 +62,6 @@ Public Class frmAbrechnungsMaske
cboSachbearbeiter.Items.Clear()
Select Case FirmaTmp
Case "VERAG"

View File

@@ -7,7 +7,7 @@
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
MsgBox(FilialenNr)
'MsgBox(FilialenNr)
If FilialenNr IsNot Nothing AndAlso IsNumeric(FilialenNr) Then Me.FilialenNr = FilialenNr
If AbfertigungsNr IsNot Nothing AndAlso IsNumeric(AbfertigungsNr) Then Me.AbfertigungsNr = AbfertigungsNr
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.

View File

@@ -1,7 +1,6 @@

Imports System.Web.Configuration
Imports System.IO
Imports System.Web.UI.WebControls.Expressions
Imports com.sun.imageio.plugins
Imports VERAG_PROG_ALLGEMEIN
Public Class usrCntlFaktAbrechnung
@@ -1734,6 +1733,56 @@ Public Class usrCntlFaktAbrechnung
'-----------------------------
End If
'Anhänge aus USTVA -> SPED-BUCH + Excel Pos-Liste
If SPEDBUCH IsNot Nothing Then
If FIRMA.Firma_ID = 19 And SPEDBUCH.Abfertigungsart = 10 AndAlso SPEDBUCH.ErfassungsNr > 0 Then
Dim func As New cMDMFunctionsAllgemein()
Dim dt = SQL.loadDgvBySql("SELECT UStVPo_daId, UStVPo_ID,UStVPo_SchnittstellenNr, UStVPo_ReNr, UStVPo_ReDat FROM tblUStVPositionen where UStVAn_ID='" & SPEDBUCH.ErfassungsNr & "' AND UStVPo_SchnittstellenNr <> 1 order by UStVPo_ID", "FMZOLL")
Dim USTV As New cUSTVAntrag(SPEDBUCH.ErfassungsNr)
If dt IsNot Nothing Then
For Each r In dt.Rows
Dim DAID As String = ""
DAID = func.getPDF(r("UStVPo_SchnittstellenNr"), r("UStVPo_ReNr"), r("UStVPo_ReDat"), r("UStVPo_daId"), False, True, USTV.UStVAn_LandKz, USTV, New cFakturierung, True)
Dim nameLief As String = ""
Select Case r("UStVPo_SchnittstellenNr")
Case 1 : nameLief = "VERAG-" 'Verag360
Case 2, 8, 12 : nameLief = "IDS-"
Case 3 : nameLief = "IT-"
Case 4, 9 : nameLief = "MSE-"
Case 5, 10 : nameLief = "UTA-"
Case 6, 11 : nameLief = "PLOSE-"
Case 7 : nameLief = "RMC-"
End Select
nameLief &= "RE"
If DAID <> "" AndAlso IsNumeric(DAID) Then
Dim daidno As Integer = CInt(DAID)
Dim ds As New cDATENSERVER(daidno)
.Rows.Add(0, nameLief, ds.da_name, ds.da_id, ds.da_id)
End If
Next
End If
Dim pfadExcel As String = func.generateExcelPosList(USTV, "", "", "", False) 'soll immer alle POS bekommen! laut Lidya! 28.04.2025
If pfadExcel <> "" Then
Dim FI As New FileInfo(pfadExcel)
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "POS_LISTE", "", "", FI.Name, USTV.UStVAn_KuNr, False)
DS.uploadDataToDATENSERVER(pfadExcel, FI.Name, FI.Extension,,,, True)
.Rows.Add(0, "POS-LIST", DS.da_name, DS.da_id, DS.da_id)
End If
End If
End If
End With
dgvAnhaenge.ClearSelection()
End Sub
@@ -1771,6 +1820,14 @@ Public Class usrCntlFaktAbrechnung
RECHNUNG.Anlage_3 = ""
RECHNUNG.Anlage_4 = ""
RECHNUNG.Anlage_5 = ""
Case 19 'MDM
RECHNUNG.Anlage_1 = "Rechnung"
RECHNUNG.Anlage_2 = "Lief.-Rechn."
RECHNUNG.Anlage_3 = "POS-Liste"
RECHNUNG.Anlage_4 = ""
RECHNUNG.Anlage_5 = ""
Case Else
If SPEDBUCH IsNot Nothing Then
Select Case SPEDBUCH.Abfertigungsart
@@ -1939,6 +1996,7 @@ Public Class usrCntlFaktAbrechnung
'Case "7002" : cboFirma.changeItem(26) : RECHNUNG.Firma_ID = 26 'UK oder AG
Case "5701" : cboFirma.changeItem(24) : If RECHNUNG IsNot Nothing Then RECHNUNG.Firma_ID = 24'AMBAR
Case "5801" : cboFirma.changeItem(17) : If RECHNUNG IsNot Nothing Then RECHNUNG.Firma_ID = 17 'FRONT-OFFICE
Case "4817", "4820", "4821", "4823", "4824", "4814", "4868" : cboFirma.changeItem(19) : If RECHNUNG IsNot Nothing Then RECHNUNG.Firma_ID = 19 'MDM
Case Else
If SPEDBUCH IsNot Nothing AndAlso SPEDBUCH.Abfertigungsart = 38 Then 'EV-VZ
@@ -2162,7 +2220,7 @@ Public Class usrCntlFaktAbrechnung
For Each POS In RECHNUNG.POSITIONEN
If POS.Preis IsNot Nothing AndAlso IsNumeric(POS.Preis) AndAlso POS.Preis <> 0 Then
If CBool(SQL.getValueTxtBySql("SELECT isnull([Abfertigungskosten],0) FROM [Leistungen] where LeistungsNr='" & POS.LeistungsNr & "'", "FMZOLL")) Then
If CBool(SQL.getValueTxtBySql("Select isnull([Abfertigungskosten],0) FROM [Leistungen] where LeistungsNr='" & POS.LeistungsNr & "'", "FMZOLL")) Then
Abfertigungskosten_Berechnen += POS.SteuerpflichtigerBetrag 'fktEuro(![SteuerpflichtigerBetrag], Me![Währungscode], "EUR")
Abfertigungskosten_Berechnen += POS.SteuerfreierBetrag
'Me![Abfertigungskosten] = Me![Abfertigungskosten] + fktEuro(![SteuerfreierBetrag], Me![Währungscode], "EUR")

View File

@@ -18,6 +18,7 @@ Public Class frmMDM_USTVAntrag
Dim atez_api = New cATEZ_NCTS_IN("ATEZ_VAT", False)
Dim abfNrisSetManually As Boolean = False
Dim von, bis As Date
Dim func As New cMDMFunctionsAllgemein
Sub New(UStVAn_ID)
@@ -174,7 +175,7 @@ Public Class frmMDM_USTVAntrag
If Not IsDBNull(r.Cells("UStVPo_daId").Value) Then
da_id = r.Cells("UStVPo_daId").Value
Else
da_id = getDaID_OLD(r.Cells("UStVPo_SchnittstellenNr").Value, r.Cells("UStVPo_ReDat").Value, r.Cells("UStVPo_ReNr").Value)
da_id = func.getDaID_OLD(r.Cells("UStVPo_SchnittstellenNr").Value, r.Cells("UStVPo_ReDat").Value, r.Cells("UStVPo_ReNr").Value, Antrag_LandKz, USTV_ANTRAG)
End If
@@ -1208,7 +1209,9 @@ Public Class frmMDM_USTVAntrag
Shared Function loadUSTVFrom_IDS(UStVAn_ID, Antrag_LandKz, ArchivierteEintracheNochmalsEinarbetien) As Boolean
Try
Dim bytSchnittstellenNr = 8 'damit von alter Schnittstelle und neue Schnittstelle keine Daten doppelt importiert werden
'Dim bytSchnittstellenNr = 8 'damit von alter Schnittstelle und neue Schnittstelle keine Daten doppelt importiert werden
Dim bytSchnittstellenNr = 12
Dim USTV_ANTRAG As New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
Dim dt As New DataTable
Dim GET_Antraege = cIDS.GET_Antraege_IDS(dt, USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, ArchivierteEintracheNochmalsEinarbetien)
@@ -1226,7 +1229,14 @@ Public Class frmMDM_USTVAntrag
USTV_POS.UStVPo_ReNr = r.Item("Rechnungsnummer").ToString
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")
'OLD - Gesammelte Rechnung
'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")
'NEW-Einzelrechnung
USTV_POS.UStVPo_daId = sql.getValueTxtBySql("SELECT TOP(1) tblIDSInvoicesNewSplittedByCountry.daId FROM [tblIDSInvoicesNewSplittedByCountry] where tblIDSInvoicesNewSplittedByCountry.[YearMonthDay] ='" & USTV_POS.UStVPo_ReDat & "' AND tblIDSInvoicesNewSplittedByCountry.Invoicenumber ='" & USTV_POS.UStVPo_ReNr.ToString.Replace("/", "") & "' and tblIDSInvoicesNewSplittedByCountry.Country='" & Antrag_LandKz & "' AND tblIDSInvoicesNewSplittedByCountry.daId is not null", "FMZOLL")
If IsNumeric(USTV_POS.UStVPo_daId) AndAlso USTV_POS.UStVPo_daId > 0 Then
USTV_POS.UStVPo_daId_loeschbar = False
Else
@@ -1819,7 +1829,7 @@ Public Class frmMDM_USTVAntrag
Case 7 'RMC - neue Schnittstelle - OK
sqlText = "Update [tblRMCImport] Set rmc_archiv=0, [rmc_archiviertDatum] = NULL, UStVAn_ID = NULL FROM [tblRMCImport] inner join adressen on adressen.WölflKundenNr = tblRMCImport.rmc_kdNr Where cast(rmc_reDatum as date) = '" & RechnungsDatum.ToShortDateString & "' And rmc_reNr = " & RechnungsNr & " AND adressen.AdressenNr=" & USTV_ANTRAG.UStVAn_KuNr
If Not test Then updated = SQL.doSQL(sqlText, "FMZOLL")
Case 8 'IDS neue Schnittstelle - OK
Case 8, 12 'IDS neue Schnittstelle - OK
sqlText = "update tblIDSTransactionsNew set UStVAn_ID = NULL
From tblIDSTransactionsNew
INNER Join tbl_IDS_Länder
@@ -1845,7 +1855,7 @@ Public Class frmMDM_USTVAntrag
End Select
If (SchnittstellenNr > 0 And SchnittstellenNr < 12) Then
If (SchnittstellenNr > 0 And SchnittstellenNr < 13) Then
If Not updated Then
If Not vbYes = MsgBox("Fehler beim zurücksetzen der USTVA-ID!" & vbNewLine & "Möchten Sie den Eintrag trotzdem löschen?", vbYesNoCancel) Then
Return updated
@@ -1934,7 +1944,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, False)
pdf = func.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, Antrag_LandKz, USTV_ANTRAG, New cFakturierung, False)
If IO.File.Exists(pdf) Then
Process.Start(pdf)
@@ -1948,22 +1958,22 @@ Public Class frmMDM_USTVAntrag
Me.Cursor = Cursors.Default
End Sub
Private Function getDaID_OLD(SchnittstellenNr, reDat, reNr)
Dim da_id = -1
'Private Function getDaID_OLD(SchnittstellenNr, reDat, reNr)
' Dim da_id = -1
Select Case If(SchnittstellenNr, -1)
Case 1 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) RK_ID FROM Rechnungsausgang where cast(Rechnungsausgang.RechnungsDatum as Date) ='" & reDat & "' and Rechnungsausgang.RechnungsNr='" & reNr & "' AND FilialenNr = 4814 AND RK_ID is not null", "FMZOLL",,, -1)
'Case 6, 0 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [plInv_daId] FROM [tblPLOSE_Inv_Data] where plInv_SupplierRechnungsDatum='" & reDat & "' and isnull(plose_RechnungsNr,plInv_SupplierRechnungsNr)='" & reNr & "' and plInv_SupplierCountry='" & Antrag_LandKz & "' AND [plInv_daId] is not null", "FMZOLL",,, -1)
Case 6, 0, 11 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [plInv_daId] FROM [tblPLOSE_Inv_Data] where plInv_SupplierRechnungsDatum='" & reDat & "' and plInv_SupplierRechnungsNr='" & reNr & "' and plInv_SupplierCountry='" & Antrag_LandKz & "' AND [plInv_daId] is not null", "FMZOLL",,, -1)
Case 4, 9 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [daId] FROM [tblMSEInvoices] as inv inner join tblMSECustomers on inv.customer_number = customer_id where invoice_date='" & reDat & "' and country='" & Antrag_LandKz & "' AND partner_customer_number = " & USTV_ANTRAG.UStVAn_KuNr & " AND daId is not null", "FMZOLL",,, -1)
Case 10 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [daId] FROM [tblUTAImportNew] where Rechnungsdatum='" & reDat & "' and Abrechnungsnummer='" & reNr & "' and Lieferland_ISO2='" & Antrag_LandKz & "' AND daId is not null", "FMZOLL",,, -1)
Case 7 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [rmc_daId] FROM [tblRMCImport] where rmc_reDatum='" & reDat & "' and rmc_reNr='" & reNr & "' and rmc_landKZ='" & Antrag_LandKz & "' AND [rmc_daId] is not null", "FMZOLL",,, -1)
Case 8 : da_id = 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] ='" & reDat & "' AND ISNULL(tblIDSTransactionsNew.[OBONumber], ISNULL(tblIDSTransactionsNew.[VRNumber], tblIDSTransactionsNew.[Paymentsummarynumber])) ='" & reNr & "' and tbl_IDS_Länder.Lieferland_ISO2='" & Antrag_LandKz & "' AND tblIDSInvoicesNew.daId is not null", "FMZOLL",,, -1)
End Select
' Select Case If(SchnittstellenNr, -1)
' Case 1 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) RK_ID FROM Rechnungsausgang where cast(Rechnungsausgang.RechnungsDatum as Date) ='" & reDat & "' and Rechnungsausgang.RechnungsNr='" & reNr & "' AND FilialenNr = 4814 AND RK_ID is not null", "FMZOLL",,, -1)
' 'Case 6, 0 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [plInv_daId] FROM [tblPLOSE_Inv_Data] where plInv_SupplierRechnungsDatum='" & reDat & "' and isnull(plose_RechnungsNr,plInv_SupplierRechnungsNr)='" & reNr & "' and plInv_SupplierCountry='" & Antrag_LandKz & "' AND [plInv_daId] is not null", "FMZOLL",,, -1)
' Case 6, 0, 11 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [plInv_daId] FROM [tblPLOSE_Inv_Data] where plInv_SupplierRechnungsDatum='" & reDat & "' and plInv_SupplierRechnungsNr='" & reNr & "' and plInv_SupplierCountry='" & Antrag_LandKz & "' AND [plInv_daId] is not null", "FMZOLL",,, -1)
' Case 4, 9 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [daId] FROM [tblMSEInvoices] as inv inner join tblMSECustomers on inv.customer_number = customer_id where invoice_date='" & reDat & "' and country='" & Antrag_LandKz & "' AND partner_customer_number = " & USTV_ANTRAG.UStVAn_KuNr & " AND daId is not null", "FMZOLL",,, -1)
' Case 10 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [daId] FROM [tblUTAImportNew] where Rechnungsdatum='" & reDat & "' and Abrechnungsnummer='" & reNr & "' and Lieferland_ISO2='" & Antrag_LandKz & "' AND daId is not null", "FMZOLL",,, -1)
' Case 7 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [rmc_daId] FROM [tblRMCImport] where rmc_reDatum='" & reDat & "' and rmc_reNr='" & reNr & "' and rmc_landKZ='" & Antrag_LandKz & "' AND [rmc_daId] is not null", "FMZOLL",,, -1)
' Case 8 : da_id = 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] ='" & reDat & "' AND ISNULL(tblIDSTransactionsNew.[OBONumber], ISNULL(tblIDSTransactionsNew.[VRNumber], tblIDSTransactionsNew.[Paymentsummarynumber])) ='" & reNr & "' and tbl_IDS_Länder.Lieferland_ISO2='" & Antrag_LandKz & "' AND tblIDSInvoicesNew.daId is not null", "FMZOLL",,, -1)
' End Select
Return da_id
' Return da_id
End Function
'End Function
Private Sub cbxLand_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbxLand.SelectedValueChanged
@@ -1994,7 +2004,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), True)
pdf = func.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), True, Antrag_LandKz, USTV_ANTRAG, New cFakturierung, False)
If pdf <> "" Then list.Add(pdf)
@@ -2035,7 +2045,7 @@ Public Class frmMDM_USTVAntrag
If Not IsDBNull(r.Cells("UStVPo_daId").Value) Then
da_id = r.Cells("UStVPo_daId").Value
Else
da_id = getDaID_OLD(r.Cells("UStVPo_SchnittstellenNr").Value, r.Cells("UStVPo_ReDat").Value, r.Cells("UStVPo_ReNr").Value)
da_id = func.getDaID_OLD(r.Cells("UStVPo_SchnittstellenNr").Value, r.Cells("UStVPo_ReDat").Value, r.Cells("UStVPo_ReNr").Value, Antrag_LandKz, USTV_ANTRAG)
End If
If da_id > 0 Then DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf
Next
@@ -2043,216 +2053,216 @@ Public Class frmMDM_USTVAntrag
End Sub
Private Function getPDF(schnittstellenNr, ReNr, ReDat, daId, nummierung, PDFisProtected) As String
'Private Function getPDF(schnittstellenNr, ReNr, ReDat, daId, nummierung, PDFisProtected, LandKZ, USTVA) As String
Dim schnnittstellenNr = schnittstellenNr
Dim dsID
' Dim schnnittstellenNr = schnittstellenNr
' Dim dsID
If Not IsDBNull(daId) AndAlso IsNumeric(daId) AndAlso daId > 0 Then
dsID = daId
Else
dsID = getDaID_OLD(schnnittstellenNr, ReDat, ReNr)
' If Not IsDBNull(daId) AndAlso IsNumeric(daId) AndAlso daId > 0 Then
' dsID = daId
' Else
' dsID = func.getDaID_OLD(schnnittstellenNr, ReDat, ReNr, LandKZ, USTVA)
End If
' End If
If dsID < 0 Then Return ""
' If dsID < 0 Then Return ""
'Anschrift Nummerierung:
Dim x = 100
Dim y = 10
Dim width = 300
Dim height = 10
Dim mSize = 10
Dim mFont = ""
' 'Anschrift Nummerierung:
' Dim x = 100
' Dim y = 10
' Dim width = 300
' Dim height = 10
' Dim mSize = 10
' Dim mFont = ""
Select Case schnnittstellenNr
Case 1
If dsID > 0 Then
Me.Cursor = Cursors.WaitCursor
Dim path As String
cFakturierung.doRechnungsDruck_SRorER(dsID,, False, 4, path)
' Select Case schnnittstellenNr
' Case 1
' If dsID > 0 Then
' Me.Cursor = Cursors.WaitCursor
' Dim path As String
' cFakturierung.doRechnungsDruck_SRorER(dsID,, False, 4, path)
If nummierung > 0 Then
' If nummierung > 0 Then
Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(path)
PdfReader.unethicalreading = True
' 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)
' 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(path, listTowrite, , , , ,)
Return PdfTmp
Else
Return path
End If
End If
Case 8
Me.Cursor = Cursors.WaitCursor
Dim ds As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dsID)
Dim path_src As String = ds.OPEN_SINGLE(False)
If path_src = "" Then Return ""
Try
Dim fi As New System.IO.DirectoryInfo(path_src)
Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(path_src)
Dim TMP_Path_New = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(fi.Name, fi.Extension,, False, "IDS-Rechnungen")
Dim srcDoc As New itextsharp.text.Document()
Dim PdfCopyProvider As New itextsharp.text.pdf.PdfCopy(srcDoc, New FileStream(TMP_Path_New, System.IO.FileMode.Create))
PdfCopyProvider.SetFullCompression()
srcDoc.Open()
PdfReader.unethicalreading = True
Dim pages As New List(Of Integer)()
For page As Integer = 1 To pdfReader.NumberOfPages
Dim strategy As ITextExtractionStrategy = New SimpleTextExtractionStrategy()
Dim currentpagetext As String = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy)
Dim searchtext As String = ReNr
Dim impPage As itextsharp.text.pdf.PdfImportedPage = Nothing
If (currentpagetext.Contains(searchtext)) Then
If page > pdfReader.NumberOfPages Then
MsgBox("Seitenanzahl überschritten!")
srcDoc.Close() : pdfReader.Close()
Return False
End If
Try
impPage = PdfCopyProvider.GetImportedPage(pdfReader, page)
' ----- Ermitteln der Seitenauflösung und setzen für die neue Seite
PdfCopyProvider.SetPageSize(New itextsharp.text.Rectangle(0.0F, 0.0F, impPage.Width, impPage.Height, pdfReader.GetPageRotation(page)))
' ----- PDF Seite in das neue Dokument einfügen
If impPage IsNot Nothing Then PdfCopyProvider.AddPage(impPage)
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End If
Next
srcDoc.Close()
pdfReader.Close()
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
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Case Else
If dsID > 0 Then
Me.Cursor = Cursors.WaitCursor
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dsID)
If nummierung > 0 Then
'wenn PDF nicht beschreibbar, dann mittels Stamp!
If PDFisProtected Then
Dim tempPathNew = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(DS.da_name & "_modified", ".pdf", True, False, "USTVA")
Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(DS.GET_TOP1_PATH)
PdfReader.unethicalreading = True
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!!!!!
Dim _height = pdfReader.GetPageSizeWithRotation(page).GetTop(25) 'oberer Rand
Dim _width = pdfReader.GetPageSizeWithRotation(page).GetRight(0) / 2 'Mitte
canvas.ShowTextAligned(PdfContentByte.ALIGN_CENTER, nummierung, _width, _height, 0)
'canvas.ShowTextAligned(PdfContentByte.ALIGN_CENTER, nummierung, 350, 550, 0)
canvas.EndText()
' 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
stamper.Close()
pdfReader.Close()
' Next
Return tempPathNew
' pdfReader.Close()
Else
' Dim PdfTmp = fm.fillPDFVorhandenesLokalesPDF_Path(path, listTowrite, , , , ,)
' Return PdfTmp
' Else
' Return path
' End If
Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(DS.GET_TOP1_PATH)
' End If
Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager
Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues)
' Case 8
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
' Me.Cursor = Cursors.WaitCursor
' Dim ds As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dsID)
pdfReader.Close()
' Dim path_src As String = ds.OPEN_SINGLE(False)
' If path_src = "" Then Return ""
Dim PdfTmp = fm.fillPDFVorhandenesLokalesPDF_Path(DS.GET_TOP1_PATH, listTowrite, , , , ,)
Return PdfTmp
' Try
End If
' Dim fi As New System.IO.DirectoryInfo(path_src)
' Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(path_src)
' Dim TMP_Path_New = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(fi.Name, fi.Extension,, False, "IDS-Rechnungen")
' Dim srcDoc As New itextsharp.text.Document()
' Dim PdfCopyProvider As New itextsharp.text.pdf.PdfCopy(srcDoc, New FileStream(TMP_Path_New, System.IO.FileMode.Create))
' PdfCopyProvider.SetFullCompression()
' srcDoc.Open()
' PdfReader.unethicalreading = True
' Dim pages As New List(Of Integer)()
' For page As Integer = 1 To pdfReader.NumberOfPages
' Dim strategy As ITextExtractionStrategy = New SimpleTextExtractionStrategy()
' Dim currentpagetext As String = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy)
' Dim searchtext As String = ReNr
' Dim impPage As itextsharp.text.pdf.PdfImportedPage = Nothing
' If (currentpagetext.Contains(searchtext)) Then
' If page > pdfReader.NumberOfPages Then
' MsgBox("Seitenanzahl überschritten!")
' srcDoc.Close() : pdfReader.Close()
' Return False
' End If
' Try
' impPage = PdfCopyProvider.GetImportedPage(pdfReader, page)
' ' ----- Ermitteln der Seitenauflösung und setzen für die neue Seite
' PdfCopyProvider.SetPageSize(New itextsharp.text.Rectangle(0.0F, 0.0F, impPage.Width, impPage.Height, pdfReader.GetPageRotation(page)))
' ' ----- PDF Seite in das neue Dokument einfügen
' If impPage IsNot Nothing Then PdfCopyProvider.AddPage(impPage)
' Catch ex As Exception
' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
' End Try
Else
Return DS.GET_TOP1_PATH
End If
' End If
End If
End Select
' Next
' srcDoc.Close()
' pdfReader.Close()
' 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
End Function
' Return TMP_Path_New
' End If
' Catch ex As Exception
' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
' End Try
' Case Else
' If dsID > 0 Then
' Me.Cursor = Cursors.WaitCursor
' Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dsID)
' If nummierung > 0 Then
' 'wenn PDF nicht beschreibbar, dann mittels Stamp!
' If PDFisProtected Then
' Dim tempPathNew = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(DS.da_name & "_modified", ".pdf", True, False, "USTVA")
' Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(DS.GET_TOP1_PATH)
' PdfReader.unethicalreading = True
' 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!!!!!
' Dim _height = pdfReader.GetPageSizeWithRotation(page).GetTop(25) 'oberer Rand
' Dim _width = pdfReader.GetPageSizeWithRotation(page).GetRight(0) / 2 'Mitte
' canvas.ShowTextAligned(PdfContentByte.ALIGN_CENTER, nummierung, _width, _height, 0)
' '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
' Else
' Return DS.GET_TOP1_PATH
' End If
' End If
' End Select
'End Function
Private Sub reorderUSTVAPositions(UStVAn_ID As Integer)
@@ -2481,51 +2491,9 @@ Public Class frmMDM_USTVAntrag
If (dgvUSTVPositionen.SelectedRows.Count <> 1 And counter <> dgvUSTVPositionen.SelectedRows.Count) Then posId &= ","
Next
Dim StringSQL = "SELECT [UStVPo_ID] as Number ,[UStVPo_ReDat] as 'Date of Invoice',[UStVPo_ReNr] as 'Number of invoice' ,[UStVPo_Leistungsbezeichnung] as 'Name of service',[UStVPo_Leistender] as 'Name of supplier',leist.[UstV_Leistender_Strasse] + ' ' + leist.[UstV_Leistender_StrasseNr] as Street,
leist.[UstV_Leistender_PLZ] as 'ZIP-Code',leist.[UstV_Leistender_Stadt] as City,leist.[UstV_Leistender_Land] as Country,leist.[UstV_Leistender_UstNr] as VAT,[UStVPo_USteuerbetrag] as 'Amount of tax refund'
FROM [tblUStVPositionen]
LEFT JOIN [tblUStVLeistender] as leist
ON ([tblUStVPositionen].[UStVPo_LeistenderId] > 0
AND leist.[UStV_LeistenderId] = [tblUStVPositionen].[UStVPo_LeistenderId])
OR ([tblUStVPositionen].[UStVPo_LeistenderId] <= 0
AND leist.[UStV_Leistender] = [tblUStVPositionen].[UStVPo_Leistender])
where UStVAn_ID=" & UStVAn_ID & " and UStVPo_ID in(" & posId & ") ORDER BY UStVPo_ID"
Dim dtNew As DataTable = SQL.loadDgvBySql(StringSQL, "FMZOLL")
If dtNew IsNot Nothing AndAlso dtNew.Rows.Count > 0 Then
func.generateExcelPosList(USTV_ANTRAG, posId, Antrag_LandKz, txtStNr.Text, True)
Dim sumVAT As Double = 0
For Each row In dtNew.Rows
If Not IsDBNull(row("Amount of tax refund")) AndAlso IsNumeric(row("Amount of tax refund")) Then sumVAT += CDbl(row("Amount of tax refund"))
If Not IsDBNull(row("Amount of tax refund")) AndAlso IsNumeric(row("Amount of tax refund")) Then row("Amount of tax refund") = CDbl(row("Amount of tax refund"))
If Not IsDBNull(row("Name of supplier")) AndAlso row("Name of supplier") <> "" AndAlso Not IsDBNull(row("VAT")) AndAlso row("VAT") <> "" Then
row("Name of supplier") = row("Name of supplier").ToString.Replace(" " & row("VAT").ToString.Substring(0, 2), "")
End If
Next
Dim drLast = dtNew.NewRow
If dtNew.Columns.Contains("Number") Then drLast.Item("Number") = dtNew.Rows.Count + 1
If dtNew.Columns.Contains("Date of Invoice") Then drLast.Item("Date of Invoice") = DBNull.Value
If dtNew.Columns.Contains("Number of invoice") Then drLast.Item("Number of invoice") = DBNull.Value
If dtNew.Columns.Contains("Amount of tax refund") Then drLast.Item("Amount of tax refund") = sumVAT
If dtNew.Columns.Contains("Name of supplier") Then drLast.Item("Name of supplier") = DBNull.Value
If dtNew.Columns.Contains("Street") Then drLast.Item("Street") = DBNull.Value
If dtNew.Columns.Contains("City") Then drLast.Item("City") = DBNull.Value
If dtNew.Columns.Contains("Country") Then drLast.Item("Country") = DBNull.Value
If dtNew.Columns.Contains("ZIP-Code") Then drLast.Item("ZIP-Code") = DBNull.Value
If dtNew.Columns.Contains("VAT") Then drLast.Item("VAT") = "SUM"
If dtNew.Columns.Contains("Name of service") Then drLast.Item("Name of service") = DBNull.Value
dtNew.Rows.InsertAt(drLast, dtNew.Rows.Count)
Dim AD As New cAdressen(USTV_ANTRAG.UStVAn_KuNr)
cProgramFunctions.genExcelFromDT_NEW(dtNew, {"K4:K" & (dtNew.Rows.Count + 1)},, "Statement itemising VAT amounts relating to the period covered by this application", "VAT NO.: " & USTV_ANTRAG.UStVAn_Steuernummer & " " & "Name/Company: " & AD.Name_1 & " " & AD.Name_2 & " " & "VAT in " & Antrag_LandKz & ": " & txtStNr.Text, IIf(USTV_ANTRAG.UStVAn_Währungscode = "EUR", "", ""), True, "J", True, True)
End If
End Sub
@@ -2692,7 +2660,7 @@ Public Class frmMDM_USTVAntrag
Else
If Not abfNrisSetManually Then
abfNrisSetManually = True
txtAbfNr.Text = CInt(CDate(USTV_ANTRAG.UStVAn_ReDatVon).Year.ToString.Substring(2, 2)) * 1000000 + CInt(txtAbfNr.Text)
txtAbfNr.Text = CInt(VERAG_PROG_ALLGEMEIN.cAllgemein.getMaxPosNrIncrement(cbxFiliale._value, Now.Year))
End If
@@ -2710,7 +2678,7 @@ Public Class frmMDM_USTVAntrag
If Not IsNumeric(cbxFiliale._value) OrElse CInt(cbxFiliale._value) <= 0 Then
MsgBox("Bitte Filiale auswählen!") : Exit Sub
End If
txtAbfNr.Text = CInt(CDate(USTV_ANTRAG.UStVAn_ReDatVon).Year.ToString.Substring(2, 2)) * 1000000 + CInt(VERAG_PROG_ALLGEMEIN.cAllgemein.getMaxPosNrIncrement(cbxFiliale._value, Now.Year))
txtAbfNr.Text = CInt(VERAG_PROG_ALLGEMEIN.cAllgemein.getMaxPosNrIncrement(cbxFiliale._value, Now.Year))
If txtBezugsNr.Text = "" AndAlso txtAbfNr.Text.ToString.Length >= 6 Then
txtBezugsNr.Text = txtAbfNr.Text.Substring(txtAbfNr.Text.ToString.Length - 6, 6)

View File

@@ -1,5 +1,10 @@

Imports iTextSharp.text.pdf
Imports iTextSharp.text.pdf.parser
Imports System.IO
Imports System.Windows.Forms
Public Class cMDMFunctionsAllgemein
Public Shared ploseAlteLogikSchnittstelle As Boolean = False
@@ -139,7 +144,7 @@ Public Class cMDMFunctionsAllgemein
Else
sqlWhere = "in (SELECT DISTINCT tblSteuernummern.AdressenNr AS UStVAn_KuNr
FROM tblSteuernummern
where AdressenNr is not null) "
where AdressenNr is not null) AND Adressen.Auswahl = 'A'"
End If
'alle Kunden, die eine SteuerNr hinterlegt haben inkl. deren hinterlegte Summen!
@@ -791,4 +796,311 @@ Public Class cMDMFunctionsAllgemein
End Function
Shared Function getDaID_OLD(SchnittstellenNr, reDat, reNr, Antrag_LandKz, USTV_ANTRAG)
Dim da_id = -1
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Select Case If(SchnittstellenNr, -1)
Case 1 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) RK_ID FROM Rechnungsausgang where cast(Rechnungsausgang.RechnungsDatum as Date) ='" & reDat & "' and Rechnungsausgang.RechnungsNr='" & reNr & "' AND FilialenNr = 4814 AND RK_ID is not null", "FMZOLL",,, -1)
'Case 6, 0 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [plInv_daId] FROM [tblPLOSE_Inv_Data] where plInv_SupplierRechnungsDatum='" & reDat & "' and isnull(plose_RechnungsNr,plInv_SupplierRechnungsNr)='" & reNr & "' and plInv_SupplierCountry='" & Antrag_LandKz & "' AND [plInv_daId] is not null", "FMZOLL",,, -1)
Case 6, 0, 11 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [plInv_daId] FROM [tblPLOSE_Inv_Data] where plInv_SupplierRechnungsDatum='" & reDat & "' and plInv_SupplierRechnungsNr='" & reNr & "' and plInv_SupplierCountry='" & Antrag_LandKz & "' AND [plInv_daId] is not null", "FMZOLL",,, -1)
Case 4, 9 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [daId] FROM [tblMSEInvoices] as inv inner join tblMSECustomers on inv.customer_number = customer_id where invoice_date='" & reDat & "' and country='" & Antrag_LandKz & "' AND partner_customer_number = " & USTV_ANTRAG.UStVAn_KuNr & " AND daId is not null", "FMZOLL",,, -1)
Case 10 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [daId] FROM [tblUTAImportNew] where Rechnungsdatum='" & reDat & "' and Abrechnungsnummer='" & reNr & "' and Lieferland_ISO2='" & Antrag_LandKz & "' AND daId is not null", "FMZOLL",,, -1)
Case 7 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [rmc_daId] FROM [tblRMCImport] where rmc_reDatum='" & reDat & "' and rmc_reNr='" & reNr & "' and rmc_landKZ='" & Antrag_LandKz & "' AND [rmc_daId] is not null", "FMZOLL",,, -1)
Case 8 : da_id = 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] ='" & reDat & "' AND ISNULL(tblIDSTransactionsNew.[OBONumber], ISNULL(tblIDSTransactionsNew.[VRNumber], tblIDSTransactionsNew.[Paymentsummarynumber])) ='" & reNr & "' and tbl_IDS_Länder.Lieferland_ISO2='" & Antrag_LandKz & "' AND tblIDSInvoicesNew.daId is not null", "FMZOLL",,, -1)
Case 12 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) tblIDSInvoicesNewSplittedByCountry.daId FROM [tblIDSInvoicesNewSplittedByCountry] where tblIDSInvoicesNewSplittedByCountry.[YearMonthDay] ='" & reDat & "' AND tblIDSInvoicesNewSplittedByCountry.Invoicenumber ='" & reNr.ToString.Replace("/", "") & "' andtblIDSInvoicesNewSplittedByCountry.Country='" & Antrag_LandKz & "' AND tblIDSInvoicesNewSplittedByCountry.daId is not null", "FMZOLL",,, -1)
End Select
Return da_id
End Function
Shared Function getPDF(schnittstellenNr, ReNr, ReDat, daId, nummierung, PDFisProtected, LandKZ, USTVA, cFakturierung, returnDSID) As String
Dim schnnittstellenNr = schnittstellenNr
Dim dsID
If Not IsDBNull(daId) AndAlso IsNumeric(daId) AndAlso daId > 0 Then
dsID = daId
Else
dsID = getDaID_OLD(schnnittstellenNr, ReDat, ReNr, LandKZ, USTVA)
End If
If dsID < 0 Then
Return ""
ElseIf returnDSID Then
If schnittstellenNr = 8 Then 'Nr enthätl alle IDS-Rechnungen, die nicht mitgeben!
Return -1
Else
Return dsID
End If
End If
'Anschrift Nummerierung:
Dim x = 100
Dim y = 10
Dim width = 300
Dim height = 10
Dim mSize = 10
Dim mFont = ""
Select Case schnnittstellenNr
Case 1
If dsID > 0 Then
'Me.Cursor = Cursors.WaitCursor
Dim path As String
cFakturierung.doRechnungsDruck_SRorER(dsID,, False, 4, path)
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)
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(path, listTowrite, , , , ,)
Return PdfTmp
Else
Return path
End If
End If
Case 8
'Me.Cursor = Cursors.WaitCursor
Dim ds As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dsID)
Dim path_src As String = ds.OPEN_SINGLE(False)
If path_src = "" Then Return ""
Try
Dim fi As New System.IO.DirectoryInfo(path_src)
Dim pdfReader As iTextSharp.text.pdf.PdfReader = New iTextSharp.text.pdf.PdfReader(path_src)
Dim TMP_Path_New = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(fi.Name, fi.Extension,, False, "IDS-Rechnungen")
Dim srcDoc As New iTextSharp.text.Document()
Dim PdfCopyProvider As New iTextSharp.text.pdf.PdfCopy(srcDoc, New FileStream(TMP_Path_New, System.IO.FileMode.Create))
PdfCopyProvider.SetFullCompression()
srcDoc.Open()
PdfReader.unethicalreading = True
Dim pages As New List(Of Integer)()
For page As Integer = 1 To pdfReader.NumberOfPages
Dim strategy As ITextExtractionStrategy = New SimpleTextExtractionStrategy()
Dim currentpagetext As String = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy)
Dim searchtext As String = ReNr
Dim impPage As iTextSharp.text.pdf.PdfImportedPage = Nothing
If (currentpagetext.Contains(searchtext)) Then
If page > pdfReader.NumberOfPages Then
MsgBox("Seitenanzahl überschritten!")
srcDoc.Close() : pdfReader.Close()
Return False
End If
Try
impPage = PdfCopyProvider.GetImportedPage(pdfReader, page)
' ----- Ermitteln der Seitenauflösung und setzen für die neue Seite
PdfCopyProvider.SetPageSize(New iTextSharp.text.Rectangle(0.0F, 0.0F, impPage.Width, impPage.Height, pdfReader.GetPageRotation(page)))
' ----- PDF Seite in das neue Dokument einfügen
If impPage IsNot Nothing Then PdfCopyProvider.AddPage(impPage)
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End If
Next
srcDoc.Close()
pdfReader.Close()
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
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Case Else
If dsID > 0 Then
'Me.Cursor = Cursors.WaitCursor
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dsID)
If nummierung > 0 Then
'wenn PDF nicht beschreibbar, dann mittels Stamp!
If PDFisProtected Then
Dim tempPathNew = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(DS.da_name & "_modified", ".pdf", True, False, "USTVA")
Dim pdfReader As iTextSharp.text.pdf.PdfReader = New iTextSharp.text.pdf.PdfReader(DS.GET_TOP1_PATH)
PdfReader.unethicalreading = True
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!!!!!
Dim _height = pdfReader.GetPageSizeWithRotation(page).GetTop(25) 'oberer Rand
Dim _width = pdfReader.GetPageSizeWithRotation(page).GetRight(0) / 2 'Mitte
canvas.ShowTextAligned(PdfContentByte.ALIGN_CENTER, nummierung, _width, _height, 0)
'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
Else
Return DS.GET_TOP1_PATH
End If
End If
End Select
End Function
Shared Function generateExcelPosList(USTV_ANTRAG As cUSTVAntrag, posId As String, Antrag_LandKz As String, SteuerNR As String, openFile As Boolean) As String
Dim sql As New SQL
Dim sqlWHere = ""
If posId <> "" Then
sqlWHere = " And UStVPo_ID in(" & posId & ")"
End If
Dim StringSQL = "SELECT [UStVPo_ID] as Number ,[UStVPo_ReDat] as 'Date of Invoice',[UStVPo_ReNr] as 'Number of invoice' ,[UStVPo_Leistungsbezeichnung] as 'Name of service',[UStVPo_Leistender] as 'Name of supplier',leist.[UstV_Leistender_Strasse] + ' ' + leist.[UstV_Leistender_StrasseNr] as Street,
leist.[UstV_Leistender_PLZ] as 'ZIP-Code',leist.[UstV_Leistender_Stadt] as City,leist.[UstV_Leistender_Land] as Country,leist.[UstV_Leistender_UstNr] as VAT,[UStVPo_USteuerbetrag] as 'Amount of tax refund'
FROM [tblUStVPositionen]
LEFT JOIN [tblUStVLeistender] as leist
ON ([tblUStVPositionen].[UStVPo_LeistenderId] > 0
AND leist.[UStV_LeistenderId] = [tblUStVPositionen].[UStVPo_LeistenderId])
OR ([tblUStVPositionen].[UStVPo_LeistenderId] <= 0
AND leist.[UStV_Leistender] = [tblUStVPositionen].[UStVPo_Leistender])
where UStVAn_ID=" & USTV_ANTRAG.UStVAn_ID & sqlWHere & " ORDER BY UStVPo_ID"
Dim dtNew As DataTable = sql.loadDgvBySql(StringSQL, "FMZOLL")
If dtNew IsNot Nothing AndAlso dtNew.Rows.Count > 0 Then
Dim sumVAT As Double = 0
For Each row In dtNew.Rows
If Not IsDBNull(row("Amount of tax refund")) AndAlso IsNumeric(row("Amount of tax refund")) Then sumVAT += CDbl(row("Amount of tax refund"))
If Not IsDBNull(row("Amount of tax refund")) AndAlso IsNumeric(row("Amount of tax refund")) Then row("Amount of tax refund") = CDbl(row("Amount of tax refund"))
If Not IsDBNull(row("Name of supplier")) AndAlso row("Name of supplier") <> "" AndAlso Not IsDBNull(row("VAT")) AndAlso row("VAT") <> "" Then
row("Name of supplier") = row("Name of supplier").ToString.Replace(" " & row("VAT").ToString.Substring(0, 2), "")
End If
Next
Dim drLast = dtNew.NewRow
If dtNew.Columns.Contains("Number") Then drLast.Item("Number") = dtNew.Rows.Count + 1
If dtNew.Columns.Contains("Date of Invoice") Then drLast.Item("Date of Invoice") = DBNull.Value
If dtNew.Columns.Contains("Number of invoice") Then drLast.Item("Number of invoice") = DBNull.Value
If dtNew.Columns.Contains("Amount of tax refund") Then drLast.Item("Amount of tax refund") = sumVAT
If dtNew.Columns.Contains("Name of supplier") Then drLast.Item("Name of supplier") = DBNull.Value
If dtNew.Columns.Contains("Street") Then drLast.Item("Street") = DBNull.Value
If dtNew.Columns.Contains("City") Then drLast.Item("City") = DBNull.Value
If dtNew.Columns.Contains("Country") Then drLast.Item("Country") = DBNull.Value
If dtNew.Columns.Contains("ZIP-Code") Then drLast.Item("ZIP-Code") = DBNull.Value
If dtNew.Columns.Contains("VAT") Then drLast.Item("VAT") = "SUM"
If dtNew.Columns.Contains("Name of service") Then drLast.Item("Name of service") = DBNull.Value
dtNew.Rows.InsertAt(drLast, dtNew.Rows.Count)
Dim header1 As String = ""
Dim header2 As String = ""
Dim AD As New cAdressen(USTV_ANTRAG.UStVAn_KuNr)
If Antrag_LandKz <> "" AndAlso SteuerNR <> "" Then
header1 = "Statement itemising VAT amounts relating to the period covered by this application"
header2 = "VAT NO.: " & USTV_ANTRAG.UStVAn_Steuernummer & " " & "Name/Company: " & AD.Name_1 & " " & AD.Name_2 & " " & "VAT in " & Antrag_LandKz & ": " & SteuerNR
End If
Return cProgramFunctions.genExcelFromDT_NEW_(dtNew, {"K4:K" & (dtNew.Rows.Count + 1)},, header1, header2, IIf(USTV_ANTRAG.UStVAn_Währungscode = "EUR", "", ""), True, "J", True,, openFile)
End If
End Function
End Class

View File

@@ -354,6 +354,91 @@ BindingFlags.Instance Or BindingFlags.NonPublic, Nothing, [Control], New Object(
End Try
End Function
Public Shared Function genExcelFromDT_NEW_(dt As DataTable, Optional rangeAsWaehrung() As String = Nothing, Optional ShowAutoFilter As Boolean = True, Optional HeaderTxt As String = "", Optional HeaderTxt2 As String = "", Optional waehrungsZeichen As String = "", Optional fitCellsToContent As Boolean = False, Optional mergeHeadersToCell As Char = "", Optional Landscape As Boolean = False, Optional fitToOnePage As Boolean = False, Optional openFile As Boolean = True) As String
Try
Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SDL\tmp\" ' My.Computer.FileSystem.GetTempFileName
If Not My.Computer.FileSystem.DirectoryExists(sPath) Then
My.Computer.FileSystem.CreateDirectory(sPath)
End If
Dim wb As New XLWorkbook
' Dim dt As DataTable = (dgv.DataSource)
' Dim dt As DataTable = TryCast(dgv., DataTable)
wb.Worksheets.Add(dt, "DATEN")
wb.Worksheets(0).Tables.FirstOrDefault().ShowAutoFilter = ShowAutoFilter
If rangeAsWaehrung IsNot Nothing Then
For Each r In rangeAsWaehrung
Try
wb.Worksheets(0).Range(r).Style.NumberFormat.SetFormat("###,###,##0.00 " & waehrungsZeichen)
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
Next
End If
If HeaderTxt <> "" Then
wb.Worksheets(0).FirstRow.InsertRowsAbove(2)
wb.Worksheets(0).Range("A1").Value = HeaderTxt
wb.Worksheets(0).Range("A1").Style.Font.Bold = True
If mergeHeadersToCell <> "" Then
wb.Worksheets(0).Range("A1:" & mergeHeadersToCell & "1").Merge()
wb.Worksheets(0).Range("A1:" & mergeHeadersToCell & "1").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center
wb.Worksheets(0).Range("A1:" & mergeHeadersToCell & "1").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center
wb.Worksheets(0).Range("A1:" & mergeHeadersToCell & "1").Style.Alignment.WrapText = True
End If
If HeaderTxt2 <> "" Then
wb.Worksheets(0).Range("A2").Value = HeaderTxt2
wb.Worksheets(0).Row(2).InsertRowsBelow(1)
If mergeHeadersToCell <> "" Then
wb.Worksheets(0).Range("A2:" & mergeHeadersToCell & "2").Merge()
wb.Worksheets(0).Range("A2:" & mergeHeadersToCell & "2").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center
wb.Worksheets(0).Range("A2:" & mergeHeadersToCell & "2").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center
wb.Worksheets(0).Range("A2:" & mergeHeadersToCell & "2").Style.Alignment.WrapText = True
End If
End If
End If
If fitCellsToContent Then
wb.Worksheets(0).Columns().AdjustToContents()
wb.Worksheets(0).Rows().AdjustToContents()
End If
If Landscape Then
wb.Worksheets(0).PageSetup.PageOrientation = XLPageOrientation.Landscape
Else
wb.Worksheets(0).PageSetup.PageOrientation = XLPageOrientation.Default
End If
If fitToOnePage Then
wb.Worksheets(0).PageSetup.PagesWide = 1 ' In die Breite auf eine Seite anpassen
wb.Worksheets(0).PageSetup.PagesTall = 1 ' In die Höhe auf eine Seite anpassen
End If
Dim filename As String = sPath & "tmp_" & Now.ToString("ddMMyyyyHHmmss") & ".xlsx"
wb.SaveAs(filename)
If openFile Then Process.Start(filename)
Return filename
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
Return Nothing
End Try
End Function
Public Shared Function sendMail(eMailTo, betreff, text, Optional eMailfrom = "support@verag.ag", Optional prio = False, Optional uhrzeitAngeben = True, Optional cc = "", Optional bcc = "", Optional anhaenge = Nothing, Optional art = 0)
Dim Msg As New MailMessage
Dim myCredentials As New System.Net.NetworkCredential