diff --git a/SDL/Fakturierung/cAutomailversand.vb b/SDL/Fakturierung/cAutomailversand.vb
index 4e88c395..0a638ea8 100644
--- a/SDL/Fakturierung/cAutomailversand.vb
+++ b/SDL/Fakturierung/cAutomailversand.vb
@@ -1,10 +1,11 @@
Imports System.IO
+Imports com.sun.org.apache.xpath.internal.operations
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
Public Class cAutomailversand
- Sub sendMailSammelrechnung(_Rechnungsdatum As Date, SammelrechungArt As Integer, FirmaID As Integer, Optional KundenNr As Integer = -1, Optional mailoeffnen As Boolean = False, Optional faktGruppe As String = "")
+ Sub sendMailSammelrechnung(_Rechnungsdatum As Date, SammelrechungArt As Integer, FirmaID As Integer, Optional KundenNr As Integer = -1, Optional mailoeffnen As Boolean = False, Optional faktGruppe As String = "", Optional datumBis As Date = Nothing)
Try
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
@@ -37,7 +38,7 @@ Public Class cAutomailversand
LEFT JOIN tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
INNER JOIN Währungstabelle on LandKz = Rechnungsausgang.RechnungsLandKz
WHERE Rechnungsausgang.Status IN (2) and Rechnungsausgang.Automailversand_sent is null And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & SammelrechungArt & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & _Rechnungsdatum.ToShortDateString & "'
- and isnull(Rechnungsausgang.Automailversand,0) = 1 and RechnungsNr > 0 and FakturierungsGruppe = '" & faktGruppe & "'" & IIf(KundenNr > 0, " AND RechnungsKundenNr = " & KundenNr, "") & "
+ and isnull(Rechnungsausgang.Automailversand,0) = 1 and RechnungsNr > 0 and FakturierungsGruppe = '" & faktGruppe & "'" & IIf(KundenNr > 0, " AND RechnungsKundenNr = " & KundenNr, "") & IIf(IsDate(datumBis), " AND CONVERT(DATE, Rechnungsausgang.Abfertigungsdatum, 104) <= '" & datumBis.ToShortDateString & "'", "") & "
GROUP BY RechnungsNr, RechnungsKundenNr,tblKundenErweitert.kde_SR_IM_EX
ORDER BY RechnungsLandKz, RechnungsKundenNr"
@@ -158,7 +159,7 @@ Public Class cAutomailversand
showError = mailoeffnen 'bei MailÖffnen fehler anzeigen!
setEmailText(row, FirmaID, RechnungsNr, Mailsubject, HTMLMail, SammelrechungArt, dt, BelegartenNr)
- If do_SR(row.Item("RechnungsKundenNr"), FirmaID, SammelrechungArt, Rechnungsdatum, RechnungsNr, DruckDatumZeit, MDMKopiedrucken, listPDFs,,,, showError, AbfertigungsNr, faktGruppe) Then
+ If do_SR(row.Item("RechnungsKundenNr"), FirmaID, SammelrechungArt, datumBis, Rechnungsdatum, RechnungsNr, DruckDatumZeit, MDMKopiedrucken, listPDFs,,,, showError, AbfertigungsNr, faktGruppe) Then
loadAndSetAnhaenge_new(SR_DT, ATTACHMENTS, listPDFs,,, KDE_ERW.kde_merge_pdf)
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Mailsubject &= " TEST"
@@ -475,10 +476,15 @@ Public Class cAutomailversand
End Sub
- Private Function do_SR(kdNr As Integer, FirmaID As Integer, Sammelrechnungsart As Integer, Rechnungsdatum As Date, lastAktuelle_RgNr As Integer, DruckDatumZeit As Date, Kopie As Boolean, listPDFs As List(Of String), Optional EinzelAnlagen As Boolean = False, Optional Sammelbericht As Boolean = True, Optional saveInThereFore As Boolean = False, Optional showError As Boolean = True, Optional AbfertigungsArt As String = "", Optional faktGruppe As String = "")
+ Private Function do_SR(kdNr As Integer, FirmaID As Integer, Sammelrechnungsart As Integer, DatumBis As Date, Rechnungsdatum As Date, lastAktuelle_RgNr As Integer, DruckDatumZeit As Date, Kopie As Boolean, listPDFs As List(Of String), Optional EinzelAnlagen As Boolean = False, Optional Sammelbericht As Boolean = True, Optional saveInThereFore As Boolean = False, Optional showError As Boolean = True, Optional AbfertigungsArt As String = "", Optional faktGruppe As String = "")
Dim RechnungsNrisSet As Boolean = False
- RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(FirmaID, Sammelrechnungsart, Rechnungsdatum, Rechnungsdatum, "", EinzelAnlagen, Sammelbericht, kdNr, 4, listPDFs, "", lastAktuelle_RgNr, DruckDatumZeit,,,,,, faktGruppe, AbfertigungsArt, True, Kopie, True, saveInThereFore, showError)
+
+ If DatumBis = Nothing Then
+ DatumBis = Rechnungsdatum
+ End If
+
+ RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(FirmaID, Sammelrechnungsart, DatumBis, Rechnungsdatum, "", EinzelAnlagen, Sammelbericht, kdNr, 4, listPDFs, "", lastAktuelle_RgNr, DruckDatumZeit,,,,,, faktGruppe, AbfertigungsArt, True, Kopie, True, saveInThereFore, showError)
Return RechnungsNrisSet
End Function
diff --git a/SDL/Fakturierung/frmAbrechnungsMaske.vb b/SDL/Fakturierung/frmAbrechnungsMaske.vb
index 5d09ace0..e439ad09 100644
--- a/SDL/Fakturierung/frmAbrechnungsMaske.vb
+++ b/SDL/Fakturierung/frmAbrechnungsMaske.vb
@@ -999,7 +999,14 @@ Public Class frmAbrechnungsMaske
Select Case cboSort._value
Case "EZ"
- selectedRows = selectedRows.OrderBy(Function(r) CDate(r.Cells("ReErfZeitstempel").Value))
+ selectedRows = selectedRows.OrderBy(
+ Function(r)
+ Dim value = r.Cells("ReErfZeitstempel").Value
+ Return If(value Is Nothing OrElse IsDBNull(value),
+ DateTime.MinValue,
+ Convert.ToDateTime(value))
+ End Function
+ )
Case Else
selectedRows = selectedRows _
diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb
index 6017197e..c0245d52 100644
--- a/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb
+++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb
@@ -462,6 +462,7 @@ Partial Class frmFaktSammelRgDrucken
'Button6
'
Me.Button6.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.Button6.Enabled = False
Me.Button6.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.Button6.Image = Global.SDL.My.Resources.Resources.rechnung1
Me.Button6.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb
index a4daa1e8..efb47e24 100644
--- a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb
+++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb
@@ -140,7 +140,7 @@ Public Class frmFaktSammelRgDrucken
Dim SQLAUTOMAIL_RECHNUNGSDATuM = ""
If cbxAUTOMail.Checked Then
- SQLAUTOMAIL_RECHNUNGSDATuM = "AND Rechnungsausgang.Status IN (2) AND CONVERT(DATE, Rechnungsausgang.Rechnungsdatum, 104) = '" & txtRechnungsdatum._value & "'"
+ SQLAUTOMAIL_RECHNUNGSDATuM = "AND Rechnungsausgang.Status IN (2) AND CONVERT(DATE, Rechnungsausgang.Rechnungsdatum, 104) = '" & txtRechnungsdatum._value & "' AND CONVERT(DATE, Rechnungsausgang.Abfertigungsdatum, 104) <= '" & txtZeitraumBis._value & "'"
Else
SQLAUTOMAIL_RECHNUNGSDATuM = " AND Rechnungsausgang.Status IN (0,2) AND CONVERT(DATE, Rechnungsausgang.Abfertigungsdatum, 104) <= '" & txtZeitraumBis._value & "'"
End If
@@ -979,7 +979,7 @@ Public Class frmFaktSammelRgDrucken
For Each r In MyDatagridview1.SelectedRows
Dim fun As New cAutomailversand
- fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, Firma, r.Cells("RechnungsKundenNr").Value, cbxMailoeffnen.Checked)
+ fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, Firma, r.Cells("RechnungsKundenNr").Value, cbxMailoeffnen.Checked,, CDate(txtZeitraumBis.Text))
Next
initDGV()
diff --git a/SDL/Formulare/KDFormulare/frmFormulare.vb b/SDL/Formulare/KDFormulare/frmFormulare.vb
index bd4764a4..573396c6 100644
--- a/SDL/Formulare/KDFormulare/frmFormulare.vb
+++ b/SDL/Formulare/KDFormulare/frmFormulare.vb
@@ -1,12 +1,13 @@
-Imports iTextSharp.text.pdf
-Imports System.IO
-Imports Microsoft.Office.Interop
+Imports System.IO
Imports System.Net
-Imports GrapeCity.ActiveReports
Imports System.Net.Mail
Imports System.Reflection
Imports System.Text.RegularExpressions
Imports System.Windows.Documents
+Imports com.sun.tools.internal.ws.wsdl.document.mime
+Imports GrapeCity.ActiveReports
+Imports itextsharp.text.pdf
+Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
@@ -238,7 +239,7 @@ Public Class frmFormulare
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DE Vollmacht (indirekt)", FormularManagerArten.DE_Vollmacht_indirekt))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DE Fiskal-Vollmacht", FormularManagerArten.DE_Fiskal))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AT Vollmacht", FormularManagerArten.AT_Vollmacht))
- MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AT Vollmacht 4200 EV", FormularManagerArten.AT_Vollmacht_EV))
+ MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AT Vollmacht EV", FormularManagerArten.AT_Vollmacht_EV))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AT Fiskal-Vollmacht", FormularManagerArten.AT_Fiskal))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Export Vollmacht", FormularManagerArten.VERAG_EXPORT))
@@ -309,7 +310,7 @@ Public Class frmFormulare
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DE Vollmacht (indirekt)", FormularManagerArten.DE_Vollmacht_indirekt))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DE Fiskal-Vollmacht", FormularManagerArten.DE_Fiskal))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AT Vollmacht", FormularManagerArten.AT_Vollmacht))
- MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AT Vollmacht 4200 EV", FormularManagerArten.AT_Vollmacht_EV))
+ MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AT Vollmacht EV", FormularManagerArten.AT_Vollmacht_EV))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AT Fiskal-Vollmacht", FormularManagerArten.AT_Fiskal))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("GB Vollmacht Import/Export", FormularManagerArten.GB_Vollmacht_IE))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("GB Vollmacht indirekt", FormularManagerArten.GB_Vollmacht_indirekt))
@@ -359,7 +360,7 @@ Public Class frmFormulare
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DE Fiskal-Vollmacht", FormularManagerArten.DE_Fiskal))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DE/AT Vollmacht (indirekt)", FormularManagerArten.DE_Vollmacht_indirekt))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AT Vollmacht", FormularManagerArten.AT_Vollmacht))
- MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AT Vollmacht 4200 EV", FormularManagerArten.AT_Vollmacht_EV))
+ MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AT Vollmacht EV", FormularManagerArten.AT_Vollmacht_EV))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AT Fiskal-Vollmacht", FormularManagerArten.AT_Fiskal))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("GB Vollmacht Import/Export", FormularManagerArten.GB_Vollmacht_IE))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("GB Vollmacht indirekt", FormularManagerArten.GB_Vollmacht_indirekt))
@@ -7152,7 +7153,8 @@ Public Class FormularManagerNEU
If reader.NumberOfPages > 0 Then
document.Open()
- addAttachmentToCurrentPDF(reader, pdf)
+
+ addOnlyFirstAttachmentToCurrentPDF(reader, pdf)
pdf.AddDocument(reader)
reader.Close()
@@ -7200,6 +7202,7 @@ Public Class FormularManagerNEU
For i As Integer = 0 To filespecs.Size - 1 Step 2
' Get the attachment's file specification
+
Dim fileArray As PdfDictionary = filespecs.GetAsDict(i + 1)
Dim file As PdfDictionary = fileArray.GetAsDict(PdfName.EF)
@@ -7213,12 +7216,77 @@ Public Class FormularManagerNEU
' Add the attachment to the new PDF
Dim fileSpec As PdfFileSpecification = PdfFileSpecification.FileEmbedded(copy, Nothing, fileName, fileContent)
copy.AddFileAttachment(fileName, fileSpec)
+ Exit For
+
Next
Next
End If
End If
+ End Function
+
+ Public Shared Function addOnlyFirstAttachmentToCurrentPDF(reader As PdfReader, copy As PdfCopy) As Boolean
+
+ Dim catalog As PdfDictionary = reader.Catalog
+ Dim names As PdfDictionary = CType(PdfReader.GetPdfObject(catalog.Get(PdfName.NAMES)), PdfDictionary)
+
+ If names IsNot Nothing Then
+ Dim embeddedFiles As PdfDictionary = CType(PdfReader.GetPdfObject(names.Get(PdfName.EMBEDDEDFILES)), PdfDictionary)
+
+ If embeddedFiles IsNot Nothing Then
+ Dim filespecs As PdfArray = embeddedFiles.GetAsArray(PdfName.NAMES)
+
+ If filespecs Is Nothing Then Return False
+
+ For i As Integer = 0 To filespecs.Size - 1 Step 2
+
+ Dim fileArray As PdfDictionary = filespecs.GetAsDict(i + 1)
+ Dim file As PdfDictionary = fileArray.GetAsDict(PdfName.EF)
+
+ For Each key As PdfName In file.Keys
+
+ Dim stream As PRStream =
+ CType(PdfReader.GetPdfObject(file.GetAsIndirectObject(key)), PRStream)
+
+ Dim fileName As String = fileArray.GetAsString(key).ToString()
+ Dim fileContent As Byte() = PdfReader.GetStreamBytes(stream)
+
+ Dim fileSpec As PdfFileSpecification =
+ PdfFileSpecification.FileEmbedded(copy, Nothing, fileName, fileContent)
+
+ copy.AddFileAttachment(fileName, fileSpec)
+
+ Return True ' only one attachment ever gets copied
+
+ Next
+ Next
+ End If
+ End If
+
+ Return False
+
+ End Function
+
+
+
+ Private Shared Function HasAnyAttachment(reader As PdfReader) As Boolean
+
+ Dim catalog As PdfDictionary = reader.Catalog
+
+ Dim names As PdfDictionary =
+ TryCast(PdfReader.GetPdfObject(catalog.Get(PdfName.NAMES)), PdfDictionary)
+
+ If names Is Nothing Then Return True
+
+ Dim embeddedFiles As PdfDictionary =
+ TryCast(PdfReader.GetPdfObject(names.Get(PdfName.EMBEDDEDFILES)), PdfDictionary)
+
+ If embeddedFiles Is Nothing Then Return False
+
+ Dim filespecs As PdfArray = embeddedFiles.GetAsArray(PdfName.NAMES)
+
+ Return filespecs IsNot Nothing AndAlso filespecs.Size > 2
End Function
diff --git a/SDL/My Project/Resources.Designer.vb b/SDL/My Project/Resources.Designer.vb
index 33ece2bb..067d6a67 100644
--- a/SDL/My Project/Resources.Designer.vb
+++ b/SDL/My Project/Resources.Designer.vb
@@ -2591,6 +2591,16 @@ Namespace My.Resources
End Get
End Property
+ '''
+ ''' Sucht eine lokalisierte Ressource vom Typ System.Byte[].
+ '''
+ Friend ReadOnly Property Ustveu_Rechnungsanlagen_BE() As Byte()
+ Get
+ Dim obj As Object = ResourceManager.GetObject("Ustveu_Rechnungsanlagen_BE", resourceCulture)
+ Return CType(obj,Byte())
+ End Get
+ End Property
+
'''
''' Sucht eine lokalisierte Ressource vom Typ System.Byte[].
'''
diff --git a/SDL/My Project/Resources.resx b/SDL/My Project/Resources.resx
index 1e835a90..acabd60d 100644
--- a/SDL/My Project/Resources.resx
+++ b/SDL/My Project/Resources.resx
@@ -994,4 +994,7 @@
..\Resources\Ustveu-Rechnungsanlagen-DE.xls;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ ..\Resources\Ustveu_Rechnungsanlagen_BE.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
\ No newline at end of file
diff --git a/SDL/Resources/Ustveu_Rechnungsanlagen_BE.xlsx b/SDL/Resources/Ustveu_Rechnungsanlagen_BE.xlsx
new file mode 100644
index 00000000..4638ee60
Binary files /dev/null and b/SDL/Resources/Ustveu_Rechnungsanlagen_BE.xlsx differ
diff --git a/SDL/SDL.vbproj b/SDL/SDL.vbproj
index cfc0d814..33db9b92 100644
--- a/SDL/SDL.vbproj
+++ b/SDL/SDL.vbproj
@@ -5065,6 +5065,7 @@
+
Always
diff --git a/SDL/USTV/frmMDM_USTVAntrag.vb b/SDL/USTV/frmMDM_USTVAntrag.vb
index e7a4629f..2c4f98b2 100644
--- a/SDL/USTV/frmMDM_USTVAntrag.vb
+++ b/SDL/USTV/frmMDM_USTVAntrag.vb
@@ -4,6 +4,7 @@ Imports System.Reflection
Imports System.Windows.Documents
Imports com.sun.xml.internal.ws.api.pipe
Imports itextsharp.text.pdf
+Imports java.rmi.server
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
@@ -80,7 +81,7 @@ Public Class frmMDM_USTVAntrag
' left join [tblUStVLeistender] as leist on leist.UStV_Leistender = [tblUStVPositionen].[UStVPo_Leistender]
' where UStVAn_ID='" & UStVAn_ID & "' ORDER BY UStVPo_ID", "FMZOLL")
- .SET_SQL("SELECT [UStVAn_ID] ,[UStVPo_ID] " & IIf(cbxInterneNr.Checked, ",[UStVPo_interneNr] as intNr", "") & " ,[UStVPo_ReDat],[UStVPo_ReNr],[UStVPo_Leistungsbezeichnung],[UStVPo_Nettobetrag],[UStVPo_NettobetragEUR],[UStVPo_Leistender],leist.[UstV_Leistender_Strasse] + ' ' + leist.[UstV_Leistender_StrasseNr] as [UstV_Leistender_Strasse],leist.[UstV_Leistender_PLZ],leist.[UstV_Leistender_Stadt],leist.[UstV_Leistender_Land],leist.[UstV_Leistender_UstNr],[UStVPo_USteuerbetrag],[UStVPo_Schnittstelle],[UStVPo_SchnittstellenNr],[UStVPo_Umrechnungskurs],[UStVPo_USteuerbetragEUR],[UStVPo_Sachbearbeiter], [UStVPo_daId], [UStVPo_daId_loeschbar] ,[UStVPo_VZ],[UStVPo_VZ_RKID] ,cast(case when isnull([UStVPo_VZ_RKID],0) = 0 then 0 else 1 end as bit) as VZabrechnet
+ .SET_SQL("SELECT [UStVAn_ID] ,[UStVPo_ID] " & IIf(cbxInterneNr.Checked, ",[UStVPo_interneNr] as intNr", "") & " ,[UStVPo_ReDat],[UStVPo_ReNr],[UStVPo_Leistungsbezeichnung],[UStVPo_Nettobetrag],[UStVPo_NettobetragEUR],[UStVPo_Leistender],leist.[UstV_Leistender_Strasse] + ' ' + leist.[UstV_Leistender_StrasseNr] as [UstV_Leistender_Strasse],leist.[UstV_Leistender_Strasse] as StrasseOnly,leist.[UstV_Leistender_StrasseNr] as StrassenNrOnly,leist.[UstV_Leistender_PLZ],leist.[UstV_Leistender_Stadt],leist.[UstV_Leistender_Land],leist.[UstV_Leistender_UstNr],[UStVPo_USteuerbetrag],[UStVPo_Schnittstelle],[UStVPo_SchnittstellenNr],[UStVPo_Umrechnungskurs],[UStVPo_USteuerbetragEUR],[UStVPo_Sachbearbeiter], [UStVPo_daId], [UStVPo_daId_loeschbar] ,[UStVPo_VZ],[UStVPo_VZ_RKID] ,cast(case when isnull([UStVPo_VZ_RKID],0) = 0 then 0 else 1 end as bit) as VZabrechnet
FROM [tblUStVPositionen]
LEFT JOIN [tblUStVLeistender] as leist
ON ([tblUStVPositionen].[UStVPo_LeistenderId] > 0
@@ -99,6 +100,10 @@ Public Class frmMDM_USTVAntrag
If .Columns.Count > 0 Then
.Columns("UStVAn_ID").Visible = False
+
+ .Columns("StrassenNrOnly").Visible = False
+ .Columns("StrasseOnly").Visible = False
+
.Columns("UStVPo_ID").HeaderText = "Pos"
.Columns("UStVPo_ID").Width = 40
@@ -4149,21 +4154,43 @@ Public Class frmMDM_USTVAntrag
Dim BANK_IBAN As String = ""
Dim BANK_BIC As String = ""
- If IsDBNull(ADR.UstIdNr) OrElse ADR.UstIdNr Is Nothing Then
- MsgBox("UID-Nr ist nicht im Kunden hinterlegt!")
- End If
-
Dim filePath As String = ""
Dim fileName As String = USTV_ANTRAG.UStVAn_KuNr & "_" & Antrag_LandKz & "_" & CDate(USTV_ANTRAG.UStVAn_ReDatVon).Month & "_" & CDate(USTV_ANTRAG.UStVAn_ReDatBis).Month & "_" & CDate(USTV_ANTRAG.UStVAn_ReDatBis).Year & "_VATRefund"
+ dTLANDEU = (New SQL).loadDgvBySql("select LandKz, MitgliedslandEU from Währungstabelle where LandKz is not null", "FMZOLL")
+ Dim isEU As Boolean = dTLANDEU.AsEnumerable().Where(Function(res) res.Field(Of String)("LandKz") = USTV_ANTRAG.UStVAn_LandKz).Select(Function(res) res.Field(Of Boolean)("MitgliedslandEU")).FirstOrDefault()
+
+ If isEU Then
+ Dim UIDNr As Boolean = True
+ If IsDBNull(ADR.UstIdNr) OrElse ADR.UstIdNr Is Nothing Then
+
+ Select Case MsgBox("UID-Nr ist nicht im Kunden hinterlegt!" & vbNewLine & "Fortfahren?", vbYesNo)
+ Case vbYes : UIDNr = False
+ Case vbNo : Exit Sub
+ End Select
+
+
+ MsgBox("UID-Nr ist nicht im Kunden hinterlegt!")
+ End If
+
+
+ Select Case ADR.LandKz
+ Case "RO", "R" : fileName = fileName & ".xml" : createXMLforRO(ADR, KUNDE, KUNDE_ERW, FIRMA, BANK_OWNER, BANK_IBAN, BANK_BIC, fileName, filePath)
+ Case "DE", "D" : fileName = fileName & ".csv" : createCSVforDE(ADR, KUNDE, KUNDE_ERW, FIRMA, BANK_OWNER, BANK_IBAN, BANK_BIC, fileName, filePath) 'ALTERNATIVE: ELMA5-Massendatenschnittstelle allerdings um einiges aufwendiger!
+ Case "HR" : fileName = fileName & ".xml" : createXMLforHR(ADR, KUNDE, KUNDE_ERW, FIRMA, BANK_OWNER, BANK_IBAN, BANK_BIC, fileName, filePath)
+ Case Else
+ MsgBox("Für das Kundenland " & ADR.LandKz & " wurde kein Export definiert")
+ End Select
+
+ Else
+ Select Case Antrag_LandKz
+ Case "BE" : fileName = fileName & ".xlsx" : createCSVforBE(ADR, KUNDE, KUNDE_ERW, FIRMA, BANK_OWNER, BANK_IBAN, BANK_BIC, fileName, filePath)
+ Case Else
+ MsgBox("Für das Antragsland " & Antrag_LandKz & " wurde kein Export definiert")
+ End Select
+
+ End If
- Select Case ADR.LandKz
- Case "RO", "R" : fileName = fileName & ".xml" : createXMLforRO(ADR, KUNDE, KUNDE_ERW, FIRMA, BANK_OWNER, BANK_IBAN, BANK_BIC, fileName, filePath)
- Case "DE", "D" : fileName = fileName & ".csv" : createCSVforDE(ADR, KUNDE, KUNDE_ERW, FIRMA, BANK_OWNER, BANK_IBAN, BANK_BIC, fileName, filePath) 'ALTERNATIVE: ELMA5-Massendatenschnittstelle allerdings um einiges aufwendiger!
- Case "HR" : fileName = fileName & ".xml" : createXMLforHR(ADR, KUNDE, KUNDE_ERW, FIRMA, BANK_OWNER, BANK_IBAN, BANK_BIC, fileName, filePath)
- Case Else
- MsgBox("Für das Land " & ADR.LandKz & " wurde kein Export definiert")
- End Select
Me.Cursor = Cursors.Default
@@ -4726,7 +4753,7 @@ Public Class frmMDM_USTVAntrag
list.Add("parkplatz")
End If
If LeistungsBez.Contains("zubeh") Then
- list.Add("zubehzubehör")
+ list.Add("zubehör")
End If
If LeistungsBez.Contains("übern") Then
list.Add("übernachtung")
@@ -4827,7 +4854,7 @@ Public Class frmMDM_USTVAntrag
End If
If typ = "maut" Then
Code = 4
- SubCode = "4"
+ SubCode = ""
End If
Case "SI"
@@ -4857,7 +4884,7 @@ Public Class frmMDM_USTVAntrag
End If
If typ = "maut" Then
Code = 4
- SubCode = "4"
+ SubCode = ""
End If
Case "HU"
@@ -4877,7 +4904,7 @@ Public Class frmMDM_USTVAntrag
End If
If typ = "maut" Then
Code = 4
- SubCode = "4"
+ SubCode = ""
End If
Case "SE"
@@ -5054,7 +5081,7 @@ Public Class frmMDM_USTVAntrag
End If
- Datei.Save
+ Datei.Save
Blatt = Datei.Worksheets(1)
@@ -5078,6 +5105,156 @@ Public Class frmMDM_USTVAntrag
Me.Cursor = Cursors.Default
+ End Function
+
+
+ Private Function createCSVforBE(ADR As cAdressen, KUNDE As cKunde, KUNDE_ERW As cKundenErweitert, FIRMA As cFirmen, BANK_OWNER As String, BANK_IBAN As String, BANK_BIC As String, filename As String, filePath As String)
+
+ Try
+
+
+ Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SDL\tmp\"
+ If Not My.Computer.FileSystem.DirectoryExists(sPath) Then
+ My.Computer.FileSystem.CreateDirectory(sPath)
+ End If
+
+
+ Dim exclApp As Object 'as Application
+ Dim Datei As Object 'as WorkBook
+ Dim Blatt As Object 'Microsoft.Office.Interop.Excel.Worksheet 'As Object 'as Worksheet
+ exclApp = CreateObject("Excel.Application")
+
+ With exclApp
+ .Visible = False
+
+ Try
+ filePath = sPath & filename
+
+ 'If File.Exists(filePath) Then
+ ' File.Delete(filePath)
+ 'End If
+
+ My.Computer.FileSystem.WriteAllBytes(filePath, My.Resources.Ustveu_Rechnungsanlagen_BE, False)
+
+ Catch ex As System.Exception
+ VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
+ Me.Cursor = Cursors.Default
+ Return False
+
+ End Try
+
+ Datei = .Workbooks.Open(filePath) 'Anpassen
+ Blatt = Datei.Worksheets(1) 'Anpassen
+
+
+ Dim counter As Integer = 1
+ Dim zeile As Integer = 3
+ Dim counterLeistungen As Integer = 1
+
+ For Each row As DataGridViewRow In dgvUSTVPositionen.SelectedRows.Cast(Of DataGridViewRow)().OrderBy(Function(dgvr) dgvr.Index)
+
+ Dim UIDNrLeistender = ""
+ Dim LeistenderName As String = ""
+ Dim listOfLeistungstyp As New List(Of String)
+
+ Dim Strasse As String = ""
+ If Not IsDBNull(row.Cells("StrasseOnly").Value) AndAlso row.Cells("StrasseOnly").Value IsNot Nothing AndAlso row.Cells("StrasseOnly").Value <> "" Then Strasse = row.Cells("StrasseOnly").Value
+
+ Dim StrasseNR As String = ""
+ If Not IsDBNull(row.Cells("StrassenNrOnly").Value) AndAlso row.Cells("StrassenNrOnly").Value IsNot Nothing AndAlso row.Cells("StrassenNrOnly").Value <> "" Then StrasseNR = row.Cells("StrassenNrOnly").Value
+
+ Dim Ort As String = ""
+ If Not IsDBNull(row.Cells("UstV_Leistender_Stadt").Value) AndAlso row.Cells("UstV_Leistender_Stadt").Value IsNot Nothing AndAlso row.Cells("UstV_Leistender_Stadt").Value <> "" Then Ort = row.Cells("UstV_Leistender_Stadt").Value
+
+ Dim PLZ As String = ""
+ If Not IsDBNull(row.Cells("UstV_Leistender_PLZ").Value) AndAlso row.Cells("UstV_Leistender_PLZ").Value IsNot Nothing AndAlso row.Cells("UstV_Leistender_PLZ").Value <> "" Then PLZ = row.Cells("UstV_Leistender_PLZ").Value
+
+ If Not IsDBNull(row.Cells("UstV_Leistender_UstNr").Value) AndAlso row.Cells("UstV_Leistender_UstNr").Value IsNot Nothing AndAlso row.Cells("UstV_Leistender_UstNr").Value <> "" Then
+ UIDNrLeistender = row.Cells("UstV_Leistender_UstNr").Value
+ 'UIDNrLeistender = UIDNrLeistender.ToString.Replace(Antrag_LandKz, "") DEU wollen das Land dabei!
+ End If
+
+ LeistenderName = row.Cells("UStVPo_Leistender").Value
+ LeistenderName = LeistenderName.ToString.Replace(Antrag_LandKz, "")
+
+ Dim Nettobetrag As Double = 0
+ If Not IsDBNull(row.Cells("UStVPo_Nettobetrag").Value) AndAlso IsNumeric(row.Cells("UStVPo_Nettobetrag").Value) Then Nettobetrag = CDbl(row.Cells("UStVPo_Nettobetrag").Value)
+
+ Dim Steuerbetrag As Double = 0
+ If Not IsDBNull(row.Cells("UStVPo_USteuerbetrag").Value) AndAlso IsNumeric(row.Cells("UStVPo_USteuerbetrag").Value) Then Steuerbetrag = CDbl(row.Cells("UStVPo_USteuerbetrag").Value)
+
+ Dim land = ""
+ Dim iso2Land = ""
+ If Not IsDBNull(row.Cells("UstV_Leistender_Land").Value) AndAlso row.Cells("UstV_Leistender_Land").Value IsNot Nothing AndAlso row.Cells("UstV_Leistender_Land").Value <> "" Then land = row.Cells("UstV_Leistender_Land").Value
+
+ If land.Length = 2 Then
+ iso2Land = land
+ ElseIf land.Length = 3 Then
+ iso2Land = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO3Land(land)
+ ElseIf land.Length = 1 Then
+ iso2Land = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO1Land(land)
+ End If
+
+
+ Blatt.Range("A" & zeile).Value = counter
+ Blatt.Range("C" & zeile).Value = VERAG_PROG_ALLGEMEIN.cDATENSERVER.replaceInvalidCahr(LeistenderName)
+ Blatt.Range("D" & zeile).Value = UIDNrLeistender
+ Blatt.Range("E" & zeile).Value = VERAG_PROG_ALLGEMEIN.cDATENSERVER.replaceInvalidCahr(Strasse)
+ Blatt.Range("F" & zeile).Value = VERAG_PROG_ALLGEMEIN.cDATENSERVER.replaceInvalidCahr(StrasseNR)
+ Blatt.Range("G" & zeile).Value = PLZ
+ Blatt.Range("H" & zeile).Value = Ort
+ Blatt.Range("I" & zeile).Value = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getLandEnglFromISO2Land(iso2Land) 'Funktion der das Land auf englisch zurückgibt
+ Blatt.Range("J" & zeile).Value = "Purchase"
+ Blatt.Range("K" & zeile).Value = "Normal"
+ Blatt.Range("L" & zeile).Value = CDate(row.Cells("UStVPo_ReDat").Value).ToString("dd.MM.yyyy")
+ Blatt.Range("M" & zeile).Value = row.Cells("UStVPo_ReNr").Value
+ Blatt.Range("N" & zeile).Value = Nettobetrag.ToString("0.00", CultureInfo.InvariantCulture)
+ Blatt.Range("O" & zeile).Value = Steuerbetrag.ToString("0.00", CultureInfo.InvariantCulture)
+ Blatt.Range("P" & zeile).Value = Steuerbetrag.ToString("0.00", CultureInfo.InvariantCulture)
+
+ If Not IsDBNull(row.Cells("UStVPo_Leistungsbezeichnung").Value) AndAlso row.Cells("UStVPo_Leistungsbezeichnung").Value IsNot Nothing Then
+
+ listOfLeistungstyp = getLeistungsTyp(row.Cells("UStVPo_Leistungsbezeichnung").Value, row.Cells("UStVPo_SchnittstellenNr").Value)
+
+ Dim typeOfGoodsAndService As String = ""
+ If listOfLeistungstyp.Count > 0 Then
+ Select Case listOfLeistungstyp(0)
+ Case "maut" : typeOfGoodsAndService = "Road tolls and road user charge"
+ Case "diesel" : typeOfGoodsAndService = "Fuel"
+ Case "rest" : typeOfGoodsAndService = "Other"
+ Case "übernachtung" : typeOfGoodsAndService = "Accommodation"
+ Case "zubehör" : typeOfGoodsAndService = "Other"
+ Case "parkplatz" : typeOfGoodsAndService = "Travel expenses, such as taxi fares, public transport fares"
+ End Select
+ End If
+
+
+ Blatt.Range("B" & zeile).Value = typeOfGoodsAndService
+
+ End If
+
+ Datei.Save
+
+
+ counter += 1
+ zeile += 1
+
+ Next
+
+ Datei.Save
+
+ .Visible = True
+
+
+ End With
+
+ Catch ex As Exception
+ VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
+ End Try
+
+ Me.Cursor = Cursors.Default
+
+
End Function
Private Function PDFInvoicesPath(ByRef posId As String) As String
diff --git a/SDL/cProgramFunctions.vb b/SDL/cProgramFunctions.vb
index cf69d2da..53243ab7 100644
--- a/SDL/cProgramFunctions.vb
+++ b/SDL/cProgramFunctions.vb
@@ -1,4 +1,5 @@
Imports System.ComponentModel
+Imports System.Data.SqlClient
Imports System.Reflection
Imports System.Text.RegularExpressions
Imports System.Threading
@@ -317,7 +318,7 @@ Public Class cProgramFunctions
Case 1, 7 : Return openThereforeNavigatorZollvollmachten_DE(KundenNr)
Case 2, 8 : Return openThereforeNavigatorFiskalVM_DE(KundenNr)
Case 4, 9 : Return openThereforeNavigatorFiskalVM_AT(KundenNr)
- Case 12, 13 : Return openThereforeNavigatorVM_AT(KundenNr)
+ ' Case 12, 13 : Return openThereforeNavigatorVM_AT(KundenNr)
End Select
Return False
End Function
@@ -395,28 +396,74 @@ Public Class cProgramFunctions
End Function
- Shared Function openThereforeNavigatorVM_AT(KundenNr As String)
- Try
- Dim srch = KundenNr & "%"
- Dim docid As String = ""
- docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat76] WHERE [String] LIKE '" & srch & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
+ Public Shared Function ValidateSQLFieldLengths(parameters As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable), tableName As String, Info As String, Optional conn_art As String = "FMZOLL", Optional showError As Boolean = True) As Boolean
+
+ Try
+
+ Dim sql As String =
+ "SELECT COLUMN_NAME, CHARACTER_MAXIMUM_LENGTH FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '" & tableName & "' AND DATA_TYPE IN ('varchar','nvarchar','char','nchar')"
+
+ Dim dt As DataTable =
+ (New SQL).loadDgvBySql(sql, conn_art)
+
+ If dt Is Nothing Then Return False
+
+ Dim fieldLengths As New Dictionary(Of String, Integer)(StringComparer.OrdinalIgnoreCase)
+
+ For Each r As DataRow In dt.Rows
+
+ fieldLengths(r!COLUMN_NAME.ToString) =
+ CInt(r!CHARACTER_MAXIMUM_LENGTH)
+
+ Next
+
+ Dim errors As New List(Of String)
+
+ For Each p As SQLVariable In parameters
+
+ If p Is Nothing Then Continue For
+ If p.Value() Is Nothing Then Continue For
+ If p.Text() Is Nothing Then Continue For
+
+ Dim fieldName As String = p.Text().TrimStart("@"c)
+
+ If Not fieldLengths.ContainsKey(fieldName) Then Continue For
+
+ Dim maxLen As Integer = fieldLengths(fieldName)
+
+ ' varchar(max) / nvarchar(max)
+ If maxLen = -1 Then Continue For
+
+ Dim value As String = p.Value().ToString
+
+ If value.Length > maxLen Then
+
+ errors.Add(fieldName & " -> " & value.Length & "/" & maxLen)
+
+ End If
+
+ Next
+
+ If errors.Count > 0 Then
+ Info = "Folgende SQL-Felder sind zu lang:" & vbCrLf & vbCrLf & String.Join(vbCrLf, errors)
+ If showError Then
+ MsgBox(Info, MsgBoxStyle.Exclamation)
+ End If
+
+ Return False
+
+ End If
+
+ Return True
- If IsNumeric(docid) AndAlso docid > 0 Then
- ' Process.Start("theviewer.exe -" & docid)
- ' Process.Start("C:\Program Files (x86)\Therefore\theviewer.exe -" & docid)
- Try
- Shell("C:\Program Files (x86)\Therefore\theviewer.exe -d" & docid)
- Catch ex As Exception
- Shell("C:\Program Files\Therefore\theviewer.exe -d" & docid)
- End Try
- Else
- MsgBox("Das Dokument konnte nicht gefunden werden.")
- End If
- Return True
Catch ex As Exception
- MsgBox("Fehler beim Öffnen!" & vbNewLine & ex.Message & ex.StackTrace)
+
+ MsgBox("ValidateSQLFieldLengths:" & vbCrLf & ex.Message)
+
+ Return False
+
End Try
- Return False
+
End Function
Shared Function openThereforeNavigatorFiskalVM_AT(KundenNr As String)
diff --git a/VERAG_PROG_ALLGEMEIN/Classes/USTV/cUSTVAntrag.vb b/VERAG_PROG_ALLGEMEIN/Classes/USTV/cUSTVAntrag.vb
index 817809ed..e8fc63a3 100644
--- a/VERAG_PROG_ALLGEMEIN/Classes/USTV/cUSTVAntrag.vb
+++ b/VERAG_PROG_ALLGEMEIN/Classes/USTV/cUSTVAntrag.vb
@@ -449,6 +449,12 @@ Public Class cUStVPositionen
Public Function SAVE() As Boolean
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
+
+ If VERAG_PROG_ALLGEMEIN.cProgramFunctions.ValidateSQLFieldLengths(list, "tblUStVPositionen", "", "FMZOLL") Then
+ Return False
+ End If
+
+
Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM tblUStVPositionen WHERE UStVAn_ID=@UStVAn_ID AND UStVPo_ID=@UStVPo_ID) " &
" BEGIN " & getUpdateCmd() & " END " &
" Else " &
diff --git a/VERAG_PROG_ALLGEMEIN/DATENSERVER/cDATENSERVER.vb b/VERAG_PROG_ALLGEMEIN/DATENSERVER/cDATENSERVER.vb
index 3fb34d41..39c8dfb3 100644
--- a/VERAG_PROG_ALLGEMEIN/DATENSERVER/cDATENSERVER.vb
+++ b/VERAG_PROG_ALLGEMEIN/DATENSERVER/cDATENSERVER.vb
@@ -2458,9 +2458,15 @@ Public Class DATENVERVER_OPTIONS
Using pdf As New iText.Kernel.Pdf.PdfDocument(New iText.Kernel.Pdf.PdfReader(pdfPath), New iText.Kernel.Pdf.PdfWriter(tempFile))
+
+
Dim xmlBytes = File.ReadAllBytes(xmlPath)
Dim fileName As String = "factur-x.xml"
+ If HasAttachment(pdf, fileName) Then
+ Return pdfPath
+ End If
+
Dim fs = PdfFileSpec.CreateEmbeddedFileSpec(
pdf,
xmlBytes,
@@ -2490,6 +2496,32 @@ Public Class DATENVERVER_OPTIONS
End Function
+ Private Shared Function HasAttachment(pdf As iText.Kernel.Pdf.PdfDocument, fileName As String) As Boolean
+
+ Dim catalog = pdf.GetCatalog().GetPdfObject()
+ Dim afObj = catalog.Get(iText.Kernel.Pdf.PdfName.AF)
+
+ If afObj Is Nothing Then Return False
+
+ Dim afArray = TryCast(afObj, iText.Kernel.Pdf.PdfArray)
+ If afArray Is Nothing Then Return False
+
+ For i As Integer = 0 To afArray.Size() - 1
+ Dim fsObj = afArray.Get(i)
+ Dim fsDict = TryCast(fsObj, iText.Kernel.Pdf.PdfDictionary)
+
+ If fsDict Is Nothing Then Continue For
+
+ Dim fName = fsDict.GetAsString(iText.Kernel.Pdf.PdfName.F)
+
+ If fName IsNot Nothing AndAlso fName.ToString().Equals(fileName, StringComparison.OrdinalIgnoreCase) Then
+ Return True
+ End If
+ Next
+
+ Return False
+ End Function
+
Public Shared Function ConvertToPdfA3(inputPdf As String) As String
diff --git a/VERAG_PROG_ALLGEMEIN/cProgramFunktions.vb b/VERAG_PROG_ALLGEMEIN/cProgramFunktions.vb
index 76000e23..98c17f2b 100644
--- a/VERAG_PROG_ALLGEMEIN/cProgramFunktions.vb
+++ b/VERAG_PROG_ALLGEMEIN/cProgramFunktions.vb
@@ -366,6 +366,76 @@ Public Class cProgramFunctions
End If
End Sub
+ Public Shared Function ValidateSQLFieldLengths(parameters As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable), tableName As String, Info As String, Optional conn_art As String = "FMZOLL", Optional showError As Boolean = True) As Boolean
+
+ Try
+
+ Dim sql As String =
+ "SELECT COLUMN_NAME, CHARACTER_MAXIMUM_LENGTH FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '" & tableName & "' AND DATA_TYPE IN ('varchar','nvarchar','char','nchar')"
+
+ Dim dt As DataTable =
+ (New SQL).loadDgvBySql(sql, conn_art)
+
+ If dt Is Nothing Then Return False
+
+ Dim fieldLengths As New Dictionary(Of String, Integer)(StringComparer.OrdinalIgnoreCase)
+
+ For Each r As DataRow In dt.Rows
+
+ fieldLengths(r!COLUMN_NAME.ToString) =
+ CInt(r!CHARACTER_MAXIMUM_LENGTH)
+
+ Next
+
+ Dim errors As New List(Of String)
+
+ For Each p As SQLVariable In parameters
+
+ If p Is Nothing Then Continue For
+ If p.Value() Is Nothing Then Continue For
+ If p.Text() Is Nothing Then Continue For
+
+ Dim fieldName As String = p.Text().TrimStart("@"c)
+
+ If Not fieldLengths.ContainsKey(fieldName) Then Continue For
+
+ Dim maxLen As Integer = fieldLengths(fieldName)
+
+ ' varchar(max) / nvarchar(max)
+ If maxLen = -1 Then Continue For
+
+ Dim value As String = p.Value().ToString
+
+ If value.Length > maxLen Then
+
+ errors.Add(fieldName & " -> " & value.Length & "/" & maxLen)
+
+ End If
+
+ Next
+
+ If errors.Count > 0 Then
+ Info = "Folgende SQL-Felder sind zu lang:" & vbCrLf & vbCrLf & String.Join(vbCrLf, errors)
+ If showError Then
+ MsgBox(Info, MsgBoxStyle.Exclamation)
+ End If
+
+ Return False
+
+ End If
+
+ Return True
+
+ Catch ex As Exception
+
+ MsgBox("ValidateSQLFieldLengths:" & vbCrLf & ex.Message)
+
+ Return False
+
+ End Try
+
+ End Function
+
Public Shared Function fktEuro(varBetrag As Object, varVonWährung As Object, varNachWährung As Object) As Object
'(FixeTaxe, "ATS", RECHNUNG.Währungscode)
'Dim varVonWährung As Object
@@ -948,11 +1018,19 @@ BindingFlags.Instance Or BindingFlags.NonPublic, Nothing, [Control], New Object(
Return SQL.getValueTxtBySql(sqlstr, "FMZOLL")
End Function
- Shared Function getISO1Land(LandKz As String)
- Dim sqlstr = "SELECT TOP 1 isnull(Währungstabelle.LandKz,'') AS LandKzISO1 FROM [Länderverzeichnis für die Außenhandelsstatistik] LEFT JOIN Währungstabelle ON [Länderverzeichnis für die Außenhandelsstatistik].LandNr = Währungstabelle.Währungsschlüssel WHERE [Länderverzeichnis für die Außenhandelsstatistik].LandKz='" & LandKz & "' "
+ Shared Function getLandEnglFromISO2Land(Iso2Land As String)
+ Dim sqlstr = "SELECT TOP 1 isnull(Land_EN,'') AS LandBez FROM [Währungstabelle] LEFT JOIN [Länderverzeichnis für die Außenhandelsstatistik] ON [Länderverzeichnis für die Außenhandelsstatistik].LandNr = Währungstabelle.Währungsschlüssel WHERE [Länderverzeichnis für die Außenhandelsstatistik].LandKz='" & Iso2Land & "' "
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Return SQL.getValueTxtBySql(sqlstr, "FMZOLL")
End Function
+
+ Shared Function getISO1Land(LandKz As String)
+ Dim sqlstr = "SELECT TOP 1 isnull(Währungstabelle.Land_EN,'') AS LandBez FROM [Länderverzeichnis für die Außenhandelsstatistik] LEFT JOIN Währungstabelle ON [Länderverzeichnis für die Außenhandelsstatistik].LandNr = Währungstabelle.Währungsschlüssel WHERE [Länderverzeichnis für die Außenhandelsstatistik].LandKz='" & LandKz & "' "
+ Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
+ Return SQL.getValueTxtBySql(sqlstr, "FMZOLL")
+ End Function
+
+
Shared Function convertToIso(s) As String
Return s