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 &= 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.To = MailTo

View File

@@ -3829,7 +3829,7 @@ Public Class cFakturierung
Case 24 'AMBAR
Dim defaultMail = getDefaultMail("AMBAR", departmentmailadress, fakturierung)
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>"
If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine
Case 21 'UNISPED

View File

@@ -1,4 +1,5 @@
Imports System.Web.UI.WebControls.Expressions
Imports com.sun.xml.internal.rngom
Imports VERAG_PROG_ALLGEMEIN
Public Class usrCntlFaktAbrechnung
@@ -1803,17 +1804,8 @@ Public Class usrCntlFaktAbrechnung
With dgvAnhaenge
.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
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
LoadAvisoAttachmentsFromSPEDBUCH(dgvAnhaenge)
RECHNUNG.LOAD_ANHAENGE()
@@ -1826,36 +1818,16 @@ Public Class usrCntlFaktAbrechnung
.Rows.Add(0, "", RG_AH.Bezeichnung, RG_AH.dsId, RG_AH.anhId)
End If
Next
'-----------------------------
'addCBamFlyer(dgvAnhaenge)
'-----------------------------
'ANHÄNGE SELEKTIEREN
'-----------------------------
For Each RG_AH In RECHNUNG.ANHAENGE
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
AutoSelectAttachments(dgvAnhaenge)
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
'Anhänge aus USTVA -> SPED-BUCH + Excel Pos-Liste
If SPEDBUCH IsNot Nothing AndAlso RECHNUNG IsNot Nothing AndAlso RECHNUNG.RK_ID > 0 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
@@ -1866,120 +1838,12 @@ Public Class usrCntlFaktAbrechnung
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")
'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
LoadPosList(dgvAnhaenge, func, USTV)
Try
Dim tmpPath = createPOSReport(dtPOSList, USTV)
Dim reportAktualisiert As Boolean = False
loadUSTVAttachments(dgvAnhaenge, dt, Antrag_LandKz, USTV, func)
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
@@ -1989,6 +1853,168 @@ Public Class usrCntlFaktAbrechnung
dgvAnhaenge.ClearSelection()
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
@@ -3472,9 +3498,12 @@ Public Class usrCntlFaktAbrechnung
setAutomailversand(True)
If saveMe() Then
initRECHNUNG()
If FIRMA IsNot Nothing AndAlso FIRMA.Firma_ID = 19 Then initRECHNUNG(RECHNUNG.RK_ID)
End If
'
End Sub
Private Sub setAutomailversand(showMessageBox As Boolean)

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.5.6.8")>
<Assembly: AssemblyFileVersion("1.5.6.8")>
<Assembly: AssemblyVersion("1.5.6.9")>
<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_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.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
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 Adressen on AdressenNr=UStVAn_KuNr
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}"}
}
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
@@ -1886,6 +1886,7 @@ Public Class usrCntlUSTV
dt.Columns.Add("RZVZ", GetType(String))
dt.Columns.Add("Info", GetType(String))
dt.Columns.Add("Diff", GetType(Double))
dt.Columns.Add("VZDiff", GetType(Double))
dt.Columns.Add("3470", GetType(String))
End If
@@ -1936,6 +1937,7 @@ Public Class usrCntlUSTV
"RZVZ",
"3470",
"Diff",
"VZDiff",
"INFO"
}
@@ -1992,6 +1994,9 @@ Public Class usrCntlUSTV
Dim _Diff As Double =
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
Continue For
End If
@@ -2009,6 +2014,7 @@ Public Class usrCntlUSTV
R("RZVZ") = RZVZ
R("Info") = INFO
R("Diff") = _Diff
R("VZDiff") = _VZDiff
R("3470") = _3470
dt.Rows.Add(R)
@@ -2064,7 +2070,7 @@ Public Class usrCntlUSTV
If USTV_ANTRAG.hasEntry Then
If r.Item("3470").ToString.ToLower = "ja" Then
USTV_ANTRAG.UStVAn_3470 = True
USTV_ANTRAG.UStVAn_Sicherheit = True
End If
@@ -2072,8 +2078,10 @@ Public Class usrCntlUSTV
Dim UStV_ERS = New VERAG_PROG_ALLGEMEIN.cUStVErstattungPositionen(Belegdatum, BelegNr, fd.FileName)
If Not UStV_ERS.hasEntry Then
UStV_ERS.UStVEr_ID = USTV_ANTRAG.getMaxPosNrErst()
UStV_ERS.UStVEr_interneNr = USTV_ANTRAG.getMaxinternePosNrErst()
Dim isVZ As Boolean = False
UStV_ERS.UStVEr_ID = USTV_ANTRAG.getMaxPosNrErst()
UStV_ERS.UStVEr_interneNr = USTV_ANTRAG.getMaxinternePosNrErst()
UStV_ERS.UStVAn_ID = USTV_ANTRAG.UStVAn_ID
UStV_ERS.Belegnummer = BelegNr
UStV_ERS.UStVEr_USteuerbetragEUR = r.Item("BetragEUR")
@@ -2092,9 +2100,10 @@ Public Class usrCntlUSTV
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
Bemerkung &= "VZ: " & CDbl(r.Item("VZ")).ToString("N2") & " " & USTV_ANTRAG.UStVAn_Währungscode
UStV_ERS.UStVEr_VZ = CDbl(r.Item("VZ"))
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
isVZ = True
UStV_ERS.UStVEr_VZ = CDbl(r.Item("VZ"))
If USTV_ANTRAG.UStVAn_VZBetrag Is Nothing OrElse IsNothing(USTV_ANTRAG.UStVAn_VZBetrag) Then
USTV_ANTRAG.UStVAn_VZBetrag = UStV_ERS.UStVEr_VZ
@@ -2107,20 +2116,31 @@ Public Class usrCntlUSTV
UStV_ERS.UStVEr_Bank = CDbl(r.Item("Bank"))
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
Bemerkung &= ", Diff: " & CDbl(r.Item("Diff")).ToString("N2")
UStV_ERS.UStVEr_Differenz = CDbl(r.Item("Diff"))
If isVZ Then
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
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
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
Bemerkung = Bemerkung.Remove(0, 2)
End If

View File

@@ -1232,7 +1232,7 @@ Public Class cProgramFunctions
Return ""
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
Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SDL\tmp\" ' My.Computer.FileSystem.GetTempFileName
@@ -1277,24 +1277,24 @@ Public Class cProgramFunctions
Next
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 expr = formel.Value.Replace("{0}", row.ToString())
Dim col = formel.Key
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
End If
If HeaderTxt <> "" Then
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
@@ -1342,6 +1342,10 @@ Public Class cProgramFunctions
Next
End If
If fitCellsToContentExtended Then
wb.Worksheet(1).Columns().AdjustToContents()
End If
'If fitCellsToContent Then
' Dim ws = wb.Worksheets(0)