USTVA, Mailversand, etc.

This commit is contained in:
2026-08-07 09:40:57 +02:00
parent 7730dbd671
commit 4bc3ef71cb
7 changed files with 234 additions and 177 deletions

View File

@@ -610,7 +610,7 @@ Public Class cAutomailversand
TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br><br>" TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br><br>"
TextHTML &= cFakturierung.getSignature(AD.LandKz, FirmaID, True, True,,,,, , True) TextHTML &= cFakturierung.getSignature(AD.LandKz, FirmaID, True, True,,,,,, True)
Mail.HTMLBody = "<div style=""font-family:Calibri, Arial"">" & TextHTML & "</div>" Mail.HTMLBody = "<div style=""font-family:Calibri, Arial"">" & TextHTML & "</div>"
Mail.To = MailTo Mail.To = MailTo

View File

@@ -3829,7 +3829,7 @@ Public Class cFakturierung
Case 24 'AMBAR Case 24 'AMBAR
Dim defaultMail = getDefaultMail("AMBAR", departmentmailadress, fakturierung) Dim defaultMail = getDefaultMail("AMBAR", departmentmailadress, fakturierung)
getSignature &= imgTag getSignature &= imgTag
If displayFirmenmane Then getSignature &= "<br><b>AMBAR | IMPORT ZOLL</b><br>" If displayFirmenmane Then getSignature &= "<br><b>AMBAR Logistic Services GmbH | Spedition - Zollservice - Lagerung </b><br>"
getSignature &= "<div style=""font-size:12px"">D 83435 Bad Reichenhall, Reichenhallerstrasse 62<br><b>T</b> +49 8651 9962492 | <b>F</b> +49 8651 9962493 | <b>@</b> " & If(individuell, emailindividuell, defaultMail) & " | www.ambarlog.com | DE309105428</div>" getSignature &= "<div style=""font-size:12px"">D 83435 Bad Reichenhall, Reichenhallerstrasse 62<br><b>T</b> +49 8651 9962492 | <b>F</b> +49 8651 9962493 | <b>@</b> " & If(individuell, emailindividuell, defaultMail) & " | www.ambarlog.com | DE309105428</div>"
If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine
Case 21 'UNISPED Case 21 'UNISPED

View File

@@ -1,4 +1,5 @@
Imports System.Web.UI.WebControls.Expressions Imports System.Web.UI.WebControls.Expressions
Imports com.sun.xml.internal.rngom
Imports VERAG_PROG_ALLGEMEIN Imports VERAG_PROG_ALLGEMEIN
Public Class usrCntlFaktAbrechnung Public Class usrCntlFaktAbrechnung
@@ -1803,17 +1804,8 @@ Public Class usrCntlFaktAbrechnung
With dgvAnhaenge With dgvAnhaenge
.Rows.Clear() .Rows.Clear()
If SPEDBUCH IsNot Nothing AndAlso SPEDBUCH.AvisoID IsNot Nothing AndAlso SPEDBUCH.SendungID IsNot Nothing Then
Dim dt = SQL.loadDgvBySql("SELECT [anh_docId],[anh_id],[anh_Art],[anh_Name] FROM [tblAvisoAnhaenge] where (anh_SendungsId='" & SPEDBUCH.SendungID & "' OR (anh_AvisoId='" & SPEDBUCH.AvisoID & "' AND anh_SendungsId is null))", "AVISO")
If dt IsNot Nothing Then LoadAvisoAttachmentsFromSPEDBUCH(dgvAnhaenge)
For Each r In dt.Rows
.Rows.Add(0, r("anh_Art"), r("anh_Name"), r("anh_docId"), r("anh_id"))
Next
End If
End If
RECHNUNG.LOAD_ANHAENGE() RECHNUNG.LOAD_ANHAENGE()
@@ -1826,36 +1818,16 @@ Public Class usrCntlFaktAbrechnung
.Rows.Add(0, "", RG_AH.Bezeichnung, RG_AH.dsId, RG_AH.anhId) .Rows.Add(0, "", RG_AH.Bezeichnung, RG_AH.dsId, RG_AH.anhId)
End If End If
Next Next
'-----------------------------
'addCBamFlyer(dgvAnhaenge)
'----------------------------- '-----------------------------
'ANHÄNGE SELEKTIEREN 'ANHÄNGE SELEKTIEREN
'----------------------------- '-----------------------------
For Each RG_AH In RECHNUNG.ANHAENGE AutoSelectAttachments(dgvAnhaenge)
For Each r As DataGridViewRow In .Rows
If r.Cells("clmnDsId").Value = RG_AH.dsId Or r.Cells("clmnAnhId").Value = 0 Then 'anh_id = 0 --> Anhang ohne AVISO-Bezug
DirectCast(r.Cells("optAnhSel"), DataGridViewCheckBoxCell).Value = False
End If
If r.Cells("clmnBezeichnung").Value.ToString.ToLower.Contains("handelsrechnung") AndAlso kdFirmaRechnungAn.KdData_KUNDE_ERW IsNot Nothing AndAlso kdFirmaRechnungAn.KdData_KUNDE_ERW.kde_autoselect_handelsrechnung Then
DirectCast(r.Cells("optAnhSel"), DataGridViewCheckBoxCell).Value = True
End If
Next
Next
'-----------------------------
If RECHNUNG.ANHAENGE.Count = 0 Then
For Each rowTemp In .Rows
If rowTemp.Cells("clmnBezeichnung").Value.ToString.ToLower.Contains("handelsrechnung") AndAlso kdFirmaRechnungAn.KdData_KUNDE_ERW IsNot Nothing AndAlso kdFirmaRechnungAn.KdData_KUNDE_ERW.kde_autoselect_handelsrechnung Then
DirectCast(rowTemp.Cells("optAnhSel"), DataGridViewCheckBoxCell).Value = True
End If
Next
End If
End If End If
'Anhänge aus USTVA -> SPED-BUCH + Excel Pos-Liste
If SPEDBUCH IsNot Nothing AndAlso RECHNUNG IsNot Nothing AndAlso RECHNUNG.RK_ID > 0 Then If SPEDBUCH IsNot Nothing AndAlso RECHNUNG IsNot Nothing AndAlso RECHNUNG.RK_ID > 0 Then
If FIRMA IsNot Nothing Then If FIRMA IsNot Nothing Then
If FIRMA.Firma_ID = 19 AndAlso SPEDBUCH.ErfassungsNr <> "" AndAlso SPEDBUCH.ErfassungsNr > 0 AndAlso (SPEDBUCH.Abfertigungsart = 114 Or SPEDBUCH.Abfertigungsart = 115 Or SPEDBUCH.Abfertigungsart = 10) Then If FIRMA.Firma_ID = 19 AndAlso SPEDBUCH.ErfassungsNr <> "" AndAlso SPEDBUCH.ErfassungsNr > 0 AndAlso (SPEDBUCH.Abfertigungsart = 114 Or SPEDBUCH.Abfertigungsart = 115 Or SPEDBUCH.Abfertigungsart = 10) Then
@@ -1866,120 +1838,12 @@ Public Class usrCntlFaktAbrechnung
Dim Antrag_LandKz = "" Dim Antrag_LandKz = ""
If USTV.UStVAn_ID > 0 Then Antrag_LandKz = SQL.DLookup("LandKz", "[Länderverzeichnis für die Außenhandelsstatistik]", "Landnr='" & USTV.UStVAn_LandNr & "'", "FMZOLL") If USTV.UStVAn_ID > 0 Then Antrag_LandKz = SQL.DLookup("LandKz", "[Länderverzeichnis für die Außenhandelsstatistik]", "Landnr='" & USTV.UStVAn_LandNr & "'", "FMZOLL")
'soll immer alle POS bekommen! laut Lidya! 28.04.2025 - aber nicht im Excel-Format sondern als PDF-Batinic 15.05.2025 LoadPosList(dgvAnhaenge, func, USTV)
Dim dtPOSList As New DataTable
Dim prt As String = func.generatePosList(USTV, "", "", "", False, "prt", dtPOSList, isVZ, IIf(RECHNUNG IsNot Nothing, RECHNUNG.RK_ID, -1))
If prt <> "" Then
Try loadUSTVAttachments(dgvAnhaenge, dt, Antrag_LandKz, USTV, func)
Dim tmpPath = createPOSReport(dtPOSList, USTV)
Dim reportAktualisiert As Boolean = False
If Not String.IsNullOrWhiteSpace(tmpPath) Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "POS_LISTE", "", "", SPEDBUCH.AbfertigungsNr & ".pdf", USTV.UStVAn_KuNr, False)
If Not DS.hasITEMS OrElse (DS.hasITEMS AndAlso DS.da_date < USTV.UStVAn_Zeitstempel) Then
Dim DS_NEW As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "POS_LISTE", "", "", SPEDBUCH.AbfertigungsNr & "_" & RECHNUNG.RK_ID & ".pdf", USTV.UStVAn_KuNr, False) ' Wechsel auf neues Namensschema
If Not DS_NEW.hasITEMS Then
DS_NEW.uploadDataToDATENSERVER(tmpPath,,, False,, True, True)
reportAktualisiert = True
ElseIf DS_NEW.da_date <= USTV.UStVAn_Zeitstempel Then
DS_NEW.uploadDataToDATENSERVER(tmpPath,,, False,, True, True)
reportAktualisiert = True
End If
DS = DS_NEW
End If
If .Rows.Count > 0 Then
For Each r As DataGridViewRow In .Rows
If .Columns.Contains("clmnBezeichnung") AndAlso r.Cells("clmnBezeichnung").Value = DS.da_name AndAlso RECHNUNG.DruckDatumZeit Is Nothing Then
If reportAktualisiert Then
.Rows.Remove(r)
For Each ATT As cRechnungsausgangAnhaenge In RECHNUNG.ANHAENGE
If ATT.Bezeichnung = DS.da_name AndAlso RECHNUNG.DruckDatumZeit Is Nothing Then
Dim ANH_DEL As New VERAG_PROG_ALLGEMEIN.cRechnungsausgangAnhaenge()
ANH_DEL.DELETE(ATT.RK_ID, ATT.dsId)
End If
Next
End If
End If
Next
End If
If RECHNUNG.ANHAENGE.Count > 0 Then
If (RECHNUNG.DruckDatumZeit IsNot Nothing AndAlso Not RECHNUNG.ANHAENGE.Exists(Function(c) c.Bezeichnung = DS.da_name)) OrElse RECHNUNG.DruckDatumZeit Is Nothing Then
If reportAktualisiert Then .Rows.Add(-1, "POS-LIST", DS.da_name, DS.da_id, -1)
End If
Else
.Rows.Add(-1, "POS-LIST", DS.da_name, DS.da_id, -1)
End If
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End If
If dt IsNot Nothing Then
For Each r In dt.Rows
'WARUM NOCHMAL not null??? -> weil laut lydia erst ab 2025 (und ab diesem Datum wird die daid in der USTVA_POS befüllt) die Dokumente digital mitgeschickt werden, vorher noch alles per POST!!!!!!!!!!!!!!!!!!
If Not IsDBNull(r("UStVPo_daId")) Then
If RECHNUNG.ANHAENGE IsNot Nothing AndAlso Not RECHNUNG.ANHAENGE.Exists(Function(c) c.dsId = r("UStVPo_daId")) Then 'wenn der Anhang schon existiert!
Dim DAID As String = ""
DAID = func.getPDF(r("UStVPo_SchnittstellenNr"), r("UStVPo_ReNr"), r("UStVPo_ReDat"), r("UStVPo_daId"), False, True, Antrag_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) AndAlso r("UStVPo_SchnittstellenNr") <> 1 Then
Dim daidno As Integer = CInt(DAID)
Dim ds As New cDATENSERVER(daidno)
.Rows.Add(-1, nameLief, ds.da_name, ds.da_id, -1)
ElseIf DAID <> "" AndAlso r("UStVPo_SchnittstellenNr") = 1 Then
Dim DS_Eigenrechnungen As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "VERAG-RECHNUNGEN", "", "", USTV.UStVAn_KuNr & "_" & r("UStVPo_ReNr") & ".pdf", USTV.UStVAn_KuNr, False)
If Not DS_Eigenrechnungen.hasITEMS Then 'falls bereits vorhanden, nicht nochmals erstellen!
DS_Eigenrechnungen.uploadDataToDATENSERVER(DAID, USTV.UStVAn_KuNr & "_" & r("UStVPo_ReNr") & ".pdf",, False,, True, True)
End If
.Rows.Add(-1, nameLief, DS_Eigenrechnungen.da_name, DS_Eigenrechnungen.da_id, -1)
End If
End If
End If
Next
End If End If
End If End If
End If
End If End If
@@ -1989,6 +1853,168 @@ Public Class usrCntlFaktAbrechnung
dgvAnhaenge.ClearSelection() dgvAnhaenge.ClearSelection()
End Sub End Sub
Private Sub LoadAvisoAttachmentsFromSPEDBUCH(dgv As DataGridView)
If SPEDBUCH IsNot Nothing AndAlso SPEDBUCH.AvisoID IsNot Nothing AndAlso SPEDBUCH.SendungID IsNot Nothing Then
Dim dt = SQL.loadDgvBySql("SELECT [anh_docId],[anh_id],[anh_Art],[anh_Name] FROM [tblAvisoAnhaenge] where (anh_SendungsId='" & SPEDBUCH.SendungID & "' OR (anh_AvisoId='" & SPEDBUCH.AvisoID & "' AND anh_SendungsId is null))", "AVISO")
If dt IsNot Nothing Then
For Each r In dt.Rows
dgv.Rows.Add(0, r("anh_Art"), r("anh_Name"), r("anh_docId"), r("anh_id"))
Next
End If
End If
End Sub
Private Sub AutoSelectAttachments(dgv As DataGridView)
For Each RG_AH In RECHNUNG.ANHAENGE
For Each r As DataGridViewRow In dgv.Rows
If r.Cells("clmnDsId").Value = RG_AH.dsId Or r.Cells("clmnAnhId").Value = 0 Then 'anh_id = 0 --> Anhang ohne AVISO-Bezug
DirectCast(r.Cells("optAnhSel"), DataGridViewCheckBoxCell).Value = True
End If
If r.Cells("clmnBezeichnung").Value.ToString.ToLower.Contains("handelsrechnung") AndAlso kdFirmaRechnungAn.KdData_KUNDE_ERW IsNot Nothing AndAlso kdFirmaRechnungAn.KdData_KUNDE_ERW.kde_autoselect_handelsrechnung Then
DirectCast(r.Cells("optAnhSel"), DataGridViewCheckBoxCell).Value = True
End If
Next
Next
'-----------------------------
If RECHNUNG.ANHAENGE.Count = 0 Then
For Each rowTemp In dgv.Rows
If rowTemp.Cells("clmnBezeichnung").Value.ToString.ToLower.Contains("handelsrechnung") AndAlso kdFirmaRechnungAn.KdData_KUNDE_ERW IsNot Nothing AndAlso kdFirmaRechnungAn.KdData_KUNDE_ERW.kde_autoselect_handelsrechnung Then
DirectCast(rowTemp.Cells("optAnhSel"), DataGridViewCheckBoxCell).Value = True
End If
Next
End If
End Sub
Private Sub LoadPosList(dgv As DataGridView, FUNC As cMDMFunctionsAllgemein, USTV As cUSTVAntrag)
'soll immer alle POS bekommen! laut Lidya! 28.04.2025 - aber nicht im Excel-Format sondern als PDF-Batinic 15.05.2025
Dim dtPOSList As New DataTable
Dim prt As String = FUNC.generatePosList(USTV, "", "", "", False, "prt", dtPOSList, isVZ, IIf(RECHNUNG IsNot Nothing, RECHNUNG.RK_ID, -1))
If prt <> "" Then
Try
Dim tmpPath = createPOSReport(dtPOSList, USTV)
Dim reportAktualisiert As Boolean = False
If Not String.IsNullOrWhiteSpace(tmpPath) Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "POS_LISTE", "", "", SPEDBUCH.AbfertigungsNr & ".pdf", USTV.UStVAn_KuNr, False)
If Not DS.hasITEMS OrElse (DS.hasITEMS AndAlso DS.da_date < USTV.UStVAn_Zeitstempel) Then
Dim DS_NEW As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "POS_LISTE", "", "", SPEDBUCH.AbfertigungsNr & "_" & RECHNUNG.RK_ID & ".pdf", USTV.UStVAn_KuNr, False) ' Wechsel auf neues Namensschema
If Not DS_NEW.hasITEMS Then
DS_NEW.uploadDataToDATENSERVER(tmpPath,,, False,, True, True)
reportAktualisiert = True
ElseIf DS_NEW.da_date <= USTV.UStVAn_Zeitstempel Then
DS_NEW.uploadDataToDATENSERVER(tmpPath,,, False,, True, True)
reportAktualisiert = True
End If
DS = DS_NEW
End If
If dgv.Rows.Count > 0 Then
For Each r As DataGridViewRow In dgv.Rows
If dgv.Columns.Contains("clmnBezeichnung") AndAlso r.Cells("clmnBezeichnung").Value = DS.da_name AndAlso RECHNUNG.DruckDatumZeit Is Nothing Then
If reportAktualisiert Then
dgv.Rows.Remove(r)
For Each ATT As cRechnungsausgangAnhaenge In RECHNUNG.ANHAENGE
If ATT.Bezeichnung = DS.da_name AndAlso RECHNUNG.DruckDatumZeit Is Nothing Then
Dim ANH_DEL As New VERAG_PROG_ALLGEMEIN.cRechnungsausgangAnhaenge()
ANH_DEL.DELETE(ATT.RK_ID, ATT.dsId)
End If
Next
End If
End If
Next
End If
If RECHNUNG.ANHAENGE.Count > 0 Then
If (RECHNUNG.DruckDatumZeit IsNot Nothing AndAlso Not RECHNUNG.ANHAENGE.Exists(Function(c) c.Bezeichnung = DS.da_name)) OrElse RECHNUNG.DruckDatumZeit Is Nothing Then
If reportAktualisiert Then dgv.Rows.Add(-1, "POS-LIST", DS.da_name, DS.da_id, -1)
End If
Else
dgv.Rows.Add(-1, "POS-LIST", DS.da_name, DS.da_id, -1)
End If
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End If
End Sub
Private Sub loadUSTVAttachments(dgv As DataGridView, dt As DataTable, Antrag_LandKz As String, ustv As cUSTVAntrag, FUNC As cMDMFunctionsAllgemein)
If dt IsNot Nothing Then
For Each r In dt.Rows
'WARUM NOCHMAL not null??? -> weil laut lydia erst ab 2025 (und ab diesem Datum wird die daid in der USTVA_POS befüllt) die Dokumente digital mitgeschickt werden, vorher noch alles per POST!!!!!!!!!!!!!!!!!!
If Not IsDBNull(r("UStVPo_daId")) Then
If RECHNUNG.ANHAENGE IsNot Nothing AndAlso Not RECHNUNG.ANHAENGE.Exists(Function(c) c.dsId = r("UStVPo_daId")) Then 'wenn der Anhang schon existiert!
Dim DAID As String = ""
DAID = FUNC.getPDF(r("UStVPo_SchnittstellenNr"), r("UStVPo_ReNr"), r("UStVPo_ReDat"), r("UStVPo_daId"), False, True, Antrag_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) AndAlso r("UStVPo_SchnittstellenNr") <> 1 Then
Dim daidno As Integer = CInt(DAID)
Dim ds As New cDATENSERVER(daidno)
dgv.Rows.Add(-1, nameLief, ds.da_name, ds.da_id, -1)
ElseIf DAID <> "" AndAlso r("UStVPo_SchnittstellenNr") = 1 Then
Dim DS_Eigenrechnungen As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "VERAG-RECHNUNGEN", "", "", ustv.UStVAn_KuNr & "_" & r("UStVPo_ReNr") & ".pdf", ustv.UStVAn_KuNr, False)
If Not DS_Eigenrechnungen.hasITEMS Then 'falls bereits vorhanden, nicht nochmals erstellen!
DS_Eigenrechnungen.uploadDataToDATENSERVER(DAID, ustv.UStVAn_KuNr & "_" & r("UStVPo_ReNr") & ".pdf",, False,, True, True)
End If
dgv.Rows.Add(-1, nameLief, DS_Eigenrechnungen.da_name, DS_Eigenrechnungen.da_id, -1)
End If
End If
End If
Next
End If
End Sub
Private Function createPOSReport(dtPOSList As DataTable, USTV As cUSTVAntrag) As String Private Function createPOSReport(dtPOSList As DataTable, USTV As cUSTVAntrag) As String
@@ -3472,9 +3498,12 @@ Public Class usrCntlFaktAbrechnung
setAutomailversand(True) setAutomailversand(True)
If saveMe() Then If saveMe() Then
initRECHNUNG() If FIRMA IsNot Nothing AndAlso FIRMA.Firma_ID = 19 Then initRECHNUNG(RECHNUNG.RK_ID)
End If End If
'
End Sub End Sub
Private Sub setAutomailversand(showMessageBox As Boolean) Private Sub setAutomailversand(showMessageBox As Boolean)

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben: ' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.5.6.8")> <Assembly: AssemblyVersion("1.5.6.9")>
<Assembly: AssemblyFileVersion("1.5.6.8")> <Assembly: AssemblyFileVersion("1.5.6.9")>

View File

@@ -398,6 +398,10 @@ Public Class frmMDM_USTVAntrag
USTV_ANTRAG.UStVAn_AntragArt = cboAntragArt._value USTV_ANTRAG.UStVAn_AntragArt = cboAntragArt._value
USTV_ANTRAG.UStVAn_StatusText = rtbStatusText.Text USTV_ANTRAG.UStVAn_StatusText = rtbStatusText.Text
If USTV_ANTRAG.UStVAn_MWSTEingang_offen Is Nothing Then
USTV_ANTRAG.UStVAn_MWSTEingang_offen = False
End If
USTV_ANTRAG.UStVAn_RGRetour = cbxRGretour.Checked USTV_ANTRAG.UStVAn_RGRetour = cbxRGretour.Checked
USTV_ANTRAG.FilialenNr = cbxFiliale._value USTV_ANTRAG.FilialenNr = cbxFiliale._value

View File

@@ -1822,7 +1822,7 @@ Public Class usrCntlUSTV
Private Sub ExportToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExportToolStripMenuItem.Click Private Sub ExportToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExportToolStripMenuItem.Click
Dim sqlStr As String = "SELECT [UStVAn_ID] as ID,[UStVAn_KuNr] as KDNR,[UStVAn_Name] as Kundename,Adressen.LandKz as LKZ_KD, case when UstIdKz is not null and UstIdNr is not null THEN UstIdKz +'' + UstIdNr ELSE isnull(Steuernummer,'') END as SteuerUIDNr, LfdA.LandKz as LKZ,cast([UStVAn_ReDatVon] as Date) as ReDatVon,cast([UStVAn_ReDatBis] as Date) as ReDatBis , cast(UStVAn_AntragEingereichtAm as Date) as EingereichtAm,[UStVAn_3470] as An3470 ,[UStVAn_Währungscode] as WKZ,[UStVAn_USteuerbetrag] as Steuerbetrag,[UStVAn_Erstattungsbetrag] as Erstattungsbetrag,[UStVAn_USteuerbetragEUR] as SteuerbetragEUR,[UStVAn_ErstattungsbetragEUR] as ErstattungsbetragEUR,(cast([UStVAn_USteuerbetragEUR] as decimal(17,2)) - cast( [UStVAn_ErstattungsbetragEUR] as decimal(17,2))) as DifferenzbetragEUR, [UStVAn_Sachbearbeiter] as Sachbearbeiter, UStVAn_AntragArt as Art, stnr.[StNrFürRückerstattungUSt] as SteuerNr,'' as BANK, ''as Diff, '' as BelNr,(isnull(UStVAn_VZBetrag,0) - isnull(UStVAn_RZBetragVZ,0)) as VZ, '' as '3470', '' as GS, '' as RZVZ, '' as Info, '' as VZDIFF,'' as 'RG Retour' FROM [tblUStVAntrag] Dim sqlStr As String = "SELECT [UStVAn_ID] as ID,[UStVAn_KuNr] as KDNR,[UStVAn_Name] as Kundename,Adressen.LandKz as LKZ_KD, case when UstIdKz is not null and UstIdNr is not null THEN UstIdKz +'' + UstIdNr ELSE isnull(Steuernummer,'') END as SteuerUIDNr, LfdA.LandKz as LKZ,cast([UStVAn_ReDatVon] as Date) as ReDatVon,cast([UStVAn_ReDatBis] as Date) as ReDatBis , cast(UStVAn_AntragEingereichtAm as Date) as EingereichtAm,[UStVAn_3470] as An3470 ,[UStVAn_Währungscode] as WKZ,[UStVAn_USteuerbetrag] as Steuerbetrag,[UStVAn_Erstattungsbetrag] as Erstattungsbetrag,[UStVAn_USteuerbetragEUR] as SteuerbetragEUR,[UStVAn_ErstattungsbetragEUR] as ErstattungsbetragEUR,(cast([UStVAn_USteuerbetragEUR] as decimal(17,2)) - cast( [UStVAn_ErstattungsbetragEUR] as decimal(17,2))) as DifferenzbetragEUR, [UStVAn_Sachbearbeiter] as Sachbearbeiter, UStVAn_AntragArt as Art, stnr.[StNrFürRückerstattungUSt] as SteuerNr,'' as BANK, ''as Diff, '' as BelNr,(isnull(UStVAn_VZBetrag,0) - isnull(UStVAn_RZBetragVZ,0)) as VZ, '' as '3470', '' as GS, '' as RZVZ, '' as Info, '' as VZDIFF,isnull(UStVAn_RGRetour,0) as 'RG Retour' FROM [tblUStVAntrag]
inner join [Länderverzeichnis für die Außenhandelsstatistik] as LfdA on UStVAn_LandNr=Landnr inner join [Länderverzeichnis für die Außenhandelsstatistik] as LfdA on UStVAn_LandNr=Landnr
inner join Adressen on AdressenNr=UStVAn_KuNr inner join Adressen on AdressenNr=UStVAn_KuNr
left join [tblSteuernummern] as stnr on stnr.AdressenNr = UStVAn_KuNr and stnr.LandNr=UStVAn_LandNr left join [tblSteuernummern] as stnr on stnr.AdressenNr = UStVAn_KuNr and stnr.LandNr=UStVAn_LandNr
@@ -1839,7 +1839,7 @@ Public Class usrCntlUSTV
{"AB", "=W{0}-T{0}"} {"AB", "=W{0}-T{0}"}
} }
cProgramFunctions.genExcelFromDT_NEW(dt, ,, "MWST Eingänge " & Today.ToShortDateString,,, True,,,,,, {"L1:AB" & (dt.Rows.Count + 1)}, {"D", "E", "I", "J", "M", "O", "N", "Q", "R", "S"}, formeln) cProgramFunctions.genExcelFromDT_NEW(dt, ,, "MWST Eingänge " & Today.ToShortDateString,,, False,,,,,, {"L1:AB" & (dt.Rows.Count + 1)}, {"D", "E", "I", "J", "M", "O", "N", "Q", "R", "S"}, formeln, True)
Else Else
@@ -1886,6 +1886,7 @@ Public Class usrCntlUSTV
dt.Columns.Add("RZVZ", GetType(String)) dt.Columns.Add("RZVZ", GetType(String))
dt.Columns.Add("Info", GetType(String)) dt.Columns.Add("Info", GetType(String))
dt.Columns.Add("Diff", GetType(Double)) dt.Columns.Add("Diff", GetType(Double))
dt.Columns.Add("VZDiff", GetType(Double))
dt.Columns.Add("3470", GetType(String)) dt.Columns.Add("3470", GetType(String))
End If End If
@@ -1936,6 +1937,7 @@ Public Class usrCntlUSTV
"RZVZ", "RZVZ",
"3470", "3470",
"Diff", "Diff",
"VZDiff",
"INFO" "INFO"
} }
@@ -1992,6 +1994,9 @@ Public Class usrCntlUSTV
Dim _Diff As Double = Dim _Diff As Double =
Convert.ToDouble(Blatt.Cells(row, headerMap("Diff")).Value) Convert.ToDouble(Blatt.Cells(row, headerMap("Diff")).Value)
Dim _VZDiff As Double =
Convert.ToDouble(Blatt.Cells(row, headerMap("VZDiff")).Value)
If String.IsNullOrWhiteSpace(USTAV_ID) Then If String.IsNullOrWhiteSpace(USTAV_ID) Then
Continue For Continue For
End If End If
@@ -2009,6 +2014,7 @@ Public Class usrCntlUSTV
R("RZVZ") = RZVZ R("RZVZ") = RZVZ
R("Info") = INFO R("Info") = INFO
R("Diff") = _Diff R("Diff") = _Diff
R("VZDiff") = _VZDiff
R("3470") = _3470 R("3470") = _3470
dt.Rows.Add(R) dt.Rows.Add(R)
@@ -2064,7 +2070,7 @@ Public Class usrCntlUSTV
If USTV_ANTRAG.hasEntry Then If USTV_ANTRAG.hasEntry Then
If r.Item("3470").ToString.ToLower = "ja" Then If r.Item("3470").ToString.ToLower = "ja" Then
USTV_ANTRAG.UStVAn_3470 = True USTV_ANTRAG.UStVAn_Sicherheit = True
End If End If
@@ -2072,8 +2078,10 @@ Public Class usrCntlUSTV
Dim UStV_ERS = New VERAG_PROG_ALLGEMEIN.cUStVErstattungPositionen(Belegdatum, BelegNr, fd.FileName) Dim UStV_ERS = New VERAG_PROG_ALLGEMEIN.cUStVErstattungPositionen(Belegdatum, BelegNr, fd.FileName)
If Not UStV_ERS.hasEntry Then If Not UStV_ERS.hasEntry Then
UStV_ERS.UStVEr_ID = USTV_ANTRAG.getMaxPosNrErst() Dim isVZ As Boolean = False
UStV_ERS.UStVEr_interneNr = USTV_ANTRAG.getMaxinternePosNrErst()
UStV_ERS.UStVEr_ID = USTV_ANTRAG.getMaxPosNrErst()
UStV_ERS.UStVEr_interneNr = USTV_ANTRAG.getMaxinternePosNrErst()
UStV_ERS.UStVAn_ID = USTV_ANTRAG.UStVAn_ID UStV_ERS.UStVAn_ID = USTV_ANTRAG.UStVAn_ID
UStV_ERS.Belegnummer = BelegNr UStV_ERS.Belegnummer = BelegNr
UStV_ERS.UStVEr_USteuerbetragEUR = r.Item("BetragEUR") UStV_ERS.UStVEr_USteuerbetragEUR = r.Item("BetragEUR")
@@ -2092,9 +2100,10 @@ Public Class usrCntlUSTV
Dim Bemerkung As String = "" Dim Bemerkung As String = ""
If Not String.IsNullOrWhiteSpace(r.Item("VZ")) AndAlso IsNumeric(r.Item("VZ")) AndAlso Not IsDBNull(r.Item("VZ")) AndAlso CDbl(r.Item("VZ")) <> 0 Then If Not String.IsNullOrWhiteSpace(r.Item("VZ")) AndAlso IsNumeric(r.Item("VZ")) AndAlso Not IsDBNull(r.Item("VZ")) AndAlso CDbl(r.Item("VZ")) <> 0 Then
Bemerkung &= "VZ: " & CDbl(r.Item("VZ")).ToString("N2") & " " & USTV_ANTRAG.UStVAn_Währungscode Bemerkung &= "VZ: " & CDbl(r.Item("VZ")).ToString("N2") & " " & USTV_ANTRAG.UStVAn_Währungscode
UStV_ERS.UStVEr_VZ = CDbl(r.Item("VZ")) isVZ = True
UStV_ERS.UStVEr_VZ = CDbl(r.Item("VZ"))
If USTV_ANTRAG.UStVAn_VZBetrag Is Nothing OrElse IsNothing(USTV_ANTRAG.UStVAn_VZBetrag) Then If USTV_ANTRAG.UStVAn_VZBetrag Is Nothing OrElse IsNothing(USTV_ANTRAG.UStVAn_VZBetrag) Then
USTV_ANTRAG.UStVAn_VZBetrag = UStV_ERS.UStVEr_VZ USTV_ANTRAG.UStVAn_VZBetrag = UStV_ERS.UStVEr_VZ
@@ -2107,20 +2116,31 @@ Public Class usrCntlUSTV
UStV_ERS.UStVEr_Bank = CDbl(r.Item("Bank")) UStV_ERS.UStVEr_Bank = CDbl(r.Item("Bank"))
End If End If
If Not String.IsNullOrWhiteSpace(r.Item("Diff")) AndAlso IsNumeric(r.Item("Diff")) AndAlso Not IsDBNull(r.Item("Diff")) AndAlso CDbl(r.Item("Diff")) <> 0 Then If isVZ Then
Bemerkung &= ", Diff: " & CDbl(r.Item("Diff")).ToString("N2") If Not String.IsNullOrWhiteSpace(r.Item("VZDiff")) AndAlso IsNumeric(r.Item("VZDiff")) AndAlso Not IsDBNull(r.Item("VZDiff")) AndAlso CDbl(r.Item("VZDiff")) <> 0 Then
UStV_ERS.UStVEr_Differenz = CDbl(r.Item("Diff")) Bemerkung &= ", VZDiff: " & CDbl(r.Item("VZDiff")).ToString("N2")
UStV_ERS.UStVEr_Differenz = CDbl(r.Item("VZDiff"))
End If
If Not String.IsNullOrWhiteSpace(r.Item("RZVZ")) AndAlso IsNumeric(r.Item("RZVZ")) AndAlso Not IsDBNull(r.Item("RZVZ")) AndAlso CDbl(r.Item("RZVZ")) <> 0 Then
UStV_ERS.UStVEr_RZVZ = CDbl(r.Item("RZVZ")).ToString("N2")
If USTV_ANTRAG.UStVAn_RZBetragVZ Is Nothing OrElse IsDBNull(USTV_ANTRAG.UStVAn_RZBetragVZ) Then
USTV_ANTRAG.UStVAn_RZBetragVZ = UStV_ERS.UStVEr_RZVZ
End If
End If End If
If Bemerkung <> "" Then Else
If Not String.IsNullOrWhiteSpace(r.Item("Diff")) AndAlso IsNumeric(r.Item("Diff")) AndAlso Not IsDBNull(r.Item("Diff")) AndAlso CDbl(r.Item("Diff")) <> 0 Then
Bemerkung &= ", Diff: " & CDbl(r.Item("Diff")).ToString("N2")
UStV_ERS.UStVEr_Differenz = CDbl(r.Item("Diff"))
End If
End If
If Not String.IsNullOrWhiteSpace(r.Item("RZVZ")) AndAlso IsNumeric(r.Item("RZVZ")) AndAlso Not IsDBNull(r.Item("RZVZ")) AndAlso CDbl(r.Item("RZVZ")) <> 0 Then
UStV_ERS.UStVEr_RZVZ = CDbl(r.Item("RZVZ")).ToString("N2")
If USTV_ANTRAG.UStVAn_RZBetragVZ Is Nothing OrElse IsDBNull(USTV_ANTRAG.UStVAn_RZBetragVZ) Then
USTV_ANTRAG.UStVAn_RZBetragVZ = UStV_ERS.UStVEr_RZVZ
End If
End If
If Bemerkung <> "" Then
If Bemerkung.StartsWith(", ") Then If Bemerkung.StartsWith(", ") Then
Bemerkung = Bemerkung.Remove(0, 2) Bemerkung = Bemerkung.Remove(0, 2)
End If End If

View File

@@ -1232,7 +1232,7 @@ Public Class cProgramFunctions
Return "" Return ""
End Function 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, Optional fitWideToOnePage As Boolean = False, Optional rangeAsBuchhaltung() As String = Nothing, Optional hideRange() As String = Nothing, Optional formeln As Dictionary(Of String, String) = Nothing) As String 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, Optional fitWideToOnePage As Boolean = False, Optional rangeAsBuchhaltung() As String = Nothing, Optional hideRange() As String = Nothing, Optional formeln As Dictionary(Of String, String) = Nothing, Optional fitCellsToContentExtended As Boolean = False) As String
Try Try
Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SDL\tmp\" ' My.Computer.FileSystem.GetTempFileName Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SDL\tmp\" ' My.Computer.FileSystem.GetTempFileName
@@ -1277,24 +1277,24 @@ Public Class cProgramFunctions
Next Next
End If End If
If formeln.Count > 0 Then If formeln IsNot Nothing AndAlso formeln.Count > 0 Then
For row As Integer = 2 To dt.Rows.Count + 1 For row As Integer = 2 To dt.Rows.Count + 1
For Each formel In formeln For Each formel In formeln
Dim col = formel.Key Dim col = formel.Key
Dim expr = formel.Value.Replace("{0}", row.ToString()) Dim expr = formel.Value.Replace("{0}", row.ToString())
wb.Worksheets(0).Cell($"{col}{row}").FormulaA1 = expr wb.Worksheets(0).Cell($"{col}{row}").FormulaA1 = expr
Next
Next Next
End If
Next
End If
If HeaderTxt <> "" Then If HeaderTxt <> "" Then
wb.Worksheets(0).FirstRow.InsertRowsAbove(2) wb.Worksheets(0).FirstRow.InsertRowsAbove(2)
wb.Worksheets(0).Range("A1").Value = HeaderTxt wb.Worksheets(0).Range("A1").Value = HeaderTxt
wb.Worksheets(0).Range("A1").Style.Font.Bold = True wb.Worksheets(0).Range("A1").Style.Font.Bold = True
@@ -1342,6 +1342,10 @@ Public Class cProgramFunctions
Next Next
End If End If
If fitCellsToContentExtended Then
wb.Worksheet(1).Columns().AdjustToContents()
End If
'If fitCellsToContent Then 'If fitCellsToContent Then
' Dim ws = wb.Worksheets(0) ' Dim ws = wb.Worksheets(0)