diff --git a/SDL/Fakturierung/cAutomailversand.vb b/SDL/Fakturierung/cAutomailversand.vb index 82b085ff..219cb501 100644 --- a/SDL/Fakturierung/cAutomailversand.vb +++ b/SDL/Fakturierung/cAutomailversand.vb @@ -610,7 +610,7 @@ Public Class cAutomailversand TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "

" - TextHTML &= cFakturierung.getSignature(AD.LandKz, FirmaID, True, True,,,,, , True) + TextHTML &= cFakturierung.getSignature(AD.LandKz, FirmaID, True, True,,,,,, True) Mail.HTMLBody = "
" & TextHTML & "
" Mail.To = MailTo diff --git a/SDL/Fakturierung/cFakturierung.vb b/SDL/Fakturierung/cFakturierung.vb index 540d1ee1..a2a35469 100644 --- a/SDL/Fakturierung/cFakturierung.vb +++ b/SDL/Fakturierung/cFakturierung.vb @@ -3829,7 +3829,7 @@ Public Class cFakturierung Case 24 'AMBAR Dim defaultMail = getDefaultMail("AMBAR", departmentmailadress, fakturierung) getSignature &= imgTag - If displayFirmenmane Then getSignature &= "
AMBAR | IMPORT ZOLL
" + If displayFirmenmane Then getSignature &= "
AMBAR Logistic Services GmbH | Spedition - Zollservice - Lagerung
" getSignature &= "
D 83435 Bad Reichenhall, Reichenhallerstrasse 62
T +49 8651 9962492 | F +49 8651 9962493 | @ " & If(individuell, emailindividuell, defaultMail) & " | www.ambarlog.com | DE309105428
" If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine Case 21 'UNISPED diff --git a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb index 2672ea20..bbf46201 100644 --- a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb +++ b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb @@ -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) diff --git a/SDL/My Project/AssemblyInfo.vb b/SDL/My Project/AssemblyInfo.vb index 41868347..cf7e96af 100644 --- a/SDL/My Project/AssemblyInfo.vb +++ b/SDL/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + + diff --git a/SDL/USTV/frmMDM_USTVAntrag.vb b/SDL/USTV/frmMDM_USTVAntrag.vb index 4783c019..eb15378e 100644 --- a/SDL/USTV/frmMDM_USTVAntrag.vb +++ b/SDL/USTV/frmMDM_USTVAntrag.vb @@ -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 diff --git a/SDL/USTV/usrCntlUSTV.vb b/SDL/USTV/usrCntlUSTV.vb index adfce006..3f7e454f 100644 --- a/SDL/USTV/usrCntlUSTV.vb +++ b/SDL/USTV/usrCntlUSTV.vb @@ -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 diff --git a/SDL/cProgramFunctions.vb b/SDL/cProgramFunctions.vb index d5e544e7..8ef575df 100644 --- a/SDL/cProgramFunctions.vb +++ b/SDL/cProgramFunctions.vb @@ -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)