diff --git a/MailSender/MAILSender.vb b/MailSender/MAILSender.vb index 02c70c5..eb79683 100644 --- a/MailSender/MAILSender.vb +++ b/MailSender/MAILSender.vb @@ -50,7 +50,7 @@ Module Mail 'Exit Sub - 'PARAM = "THYSSENKRUPP_AUSWERTUNG" + 'PARAM = "UID_OPS_SYSKA_ABGLEICH" 'PARAM = "JAHRESABRECHNUNG AG-ZS" diff --git a/initATLASAufschubkonten/frmNachrichtenVerarbeitung_MDM_divers.vb b/initATLASAufschubkonten/frmNachrichtenVerarbeitung_MDM_divers.vb index fa221a9..bd3ebca 100644 --- a/initATLASAufschubkonten/frmNachrichtenVerarbeitung_MDM_divers.vb +++ b/initATLASAufschubkonten/frmNachrichtenVerarbeitung_MDM_divers.vb @@ -302,7 +302,7 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers End Function - Private Function createIDSInvoice(Dateiname As String, Type As String, Optional isMail As Boolean = False) + Private Function createIDSInvoice(Dateiname As String, Type As String, Optional isMail As Boolean = False, Optional isNewFormat As Boolean = False) Dim Zielpfad = ids.VERARBEITUNG_PFAD Dim customerNo = "" @@ -371,18 +371,23 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers End Select End If - - If Dateiname.Contains(dateString) Then - dateNo = Dateiname.Substring(Dateiname.IndexOf(dateString) + dateString.Length, 8) - Dim parsedDate As DateTime = DateTime.ParseExact(dateNo, "dd/MM/yy", System.Globalization.CultureInfo.InvariantCulture) - outputDate = parsedDate.ToString("dd.MM.yyyy") + If Not isNewFormat Then + If Dateiname.Contains(dateString) Then + dateNo = Dateiname.Substring(Dateiname.IndexOf(dateString) + dateString.Length, 8) + Dim parsedDate As DateTime = DateTime.ParseExact(dateNo, "dd/MM/yy", System.Globalization.CultureInfo.InvariantCulture) + outputDate = parsedDate.ToString("dd.MM.yyyy") + Else + dateNo = Dateiname.Substring(Dateiname.IndexOf("_") + 1, 8) + Dim parsedDate As DateTime = DateTime.ParseExact(dateNo, "ddMMyyyy", System.Globalization.CultureInfo.InvariantCulture) + outputDate = parsedDate.ToString("dd.MM.yyyy") + End If Else - dateNo = Dateiname.Substring(Dateiname.IndexOf("_") + 1, 8) - Dim parsedDate As DateTime = DateTime.ParseExact(dateNo, "ddMMyyyy", System.Globalization.CultureInfo.InvariantCulture) - outputDate = parsedDate.ToString("dd.MM.yyyy") + 'wenns in der Bezeichnung fehlt (bei New Format), heutiges Datum annehmen! + outputDate = Today.ToString("dd.MM.yyyy") End If + If outputDate IsNot Nothing AndAlso customerNo <> "" AndAlso invoiceNo <> "" Then Select Case Type @@ -604,7 +609,7 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers If True Then 'Not System.IO.Directory.Exists(zielpfad & "Invoice_PDF\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\") Then System.IO.Directory.CreateDirectory(zielpfad & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\") - If fi.Name.ToString.StartsWith("AP") AndAlso fi.Name.ToLower.Contains("zugferd") Then + If (fi.Name.ToString.StartsWith("AP") AndAlso fi.Name.ToLower.Contains("zugferd")) OrElse (fi.Name.ToString.Contains("(") AndAlso fi.Name.ToString.Contains(")") AndAlso fi.Name.ToString.Contains("_RE_")) Then 'Rechnungen per Mail oder manuelle RE! Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "UTA", Now.Year, Now.ToString("yyyyMMdd"), frmStartOptions.getFileName(d)) @@ -626,63 +631,93 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers Dim invoiceDate As String = "" Dim Kundenummer As Integer Dim Abrechnungsnummer As Integer + Dim Rechnungsland As String = "" Dim doc = New Spire.Pdf.PdfDocument() doc.LoadFromFile(fi.FullName) - Dim pdfAtt = doc.Attachments(0) - If pdfAtt.FileName = "ZUGFeRD-invoice.xml" Then + If doc.Attachments.Count > 0 Then - Dim xmlFile = doc.Attachments(0) - Dim pathTempXMLFile = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(xmlFile.FileName, ".xml", False, False) - File.WriteAllBytes(pathTempXMLFile, pdfAtt.Data) + Dim pdfAtt = doc.Attachments(0) + If pdfAtt.FileName = "ZUGFeRD-invoice.xml" OrElse pdfAtt.FileName = "factur-x.xml" Then - Dim docxml As New XmlDocument() - docxml.Load(New XmlTextReader(pathTempXMLFile)) - If docxml.HasChildNodes Then + Dim xmlFile = doc.Attachments(0) + Dim pathTempXMLFile = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(xmlFile.FileName, ".xml", False, False) + File.WriteAllBytes(pathTempXMLFile, pdfAtt.Data) - If docxml.GetElementsByTagName("rsm:ExchangedDocument").Count > 0 Then - Dim count As Integer = 1 - For Each node As XmlElement In docxml.GetElementsByTagName("rsm:ExchangedDocument") - If node.HasChildNodes Then - For Each element As XmlElement In node.ChildNodes - If element.Name = "ram:ID" AndAlso element.InnerText <> "" Then invoiceNr = element.InnerText 'Rechnungsnummer - If element.Name = "ram:IssueDateTime" AndAlso element.InnerText <> "" Then invoiceDate = element.InnerText 'Rechnungsdatum + Dim docxml As New XmlDocument() + docxml.Load(New XmlTextReader(pathTempXMLFile)) + If docxml.HasChildNodes Then - Next + If docxml.GetElementsByTagName("rsm:ExchangedDocument").Count > 0 Then + Dim count As Integer = 1 + For Each node As XmlElement In docxml.GetElementsByTagName("rsm:ExchangedDocument") + If node.HasChildNodes Then + For Each element As XmlElement In node.ChildNodes + If element.Name = "ram:ID" AndAlso element.InnerText <> "" Then invoiceNr = element.InnerText 'Rechnungsnummer + If element.Name = "ram:IssueDateTime" AndAlso element.InnerText <> "" Then invoiceDate = element.InnerText 'Rechnungsdatum - count = count + 1 + Next - End If - Next + count = count + 1 + + End If + Next + + End If + + If docxml.GetElementsByTagName("ram:ApplicableHeaderTradeAgreement").Count > 0 Then + Dim count As Integer = 1 + For Each node As XmlElement In docxml.GetElementsByTagName("ram:ApplicableHeaderTradeAgreement") + If node.HasChildNodes Then + For Each element As XmlElement In node.ChildNodes + + If element.Name = "ram:BuyerReference" Then + Kundenummer = CInt(element.InnerText) 'Kundennummer + Exit For + End If + + Next + + count = count + 1 + + End If + Next + + End If + + If docxml.GetElementsByTagName("ram:SpecifiedTradeProduct").Count > 0 Then + Dim count As Integer = 1 + For Each node As XmlElement In docxml.GetElementsByTagName("ram:OriginTradeCountry") + If node.HasChildNodes Then + For Each element As XmlElement In node.ChildNodes + + If element.Name = "ram:ID" AndAlso element.InnerText <> "" Then + Rechnungsland = element.InnerText 'Rechnungsnummer'Kundennummer + + Exit For + End If + + Next + + count = count + 1 + + End If + Next + + End If End If - - If docxml.GetElementsByTagName("ram:ApplicableHeaderTradeAgreement").Count > 0 Then - Dim count As Integer = 1 - For Each node As XmlElement In docxml.GetElementsByTagName("ram:ApplicableHeaderTradeAgreement") - If node.HasChildNodes Then - For Each element As XmlElement In node.ChildNodes - - If element.Name = "ram:BuyerReference" Then - Kundenummer = CInt(element.InnerText) 'Kundennummer - Exit For - End If - - Next - - count = count + 1 - - End If - Next - - End If - End If - End If - found = True - If invoiceNr <> "" AndAlso invoiceDate <> "" AndAlso Kundenummer > 0 Then - 'SQL.doSQL("Update [tblUTAImportNew] SET [daId]='" & DS.da_id & "', daIdgesetztDatum = getdate() where [Rechnungsnummer_pro_Lieferland] = '" & r.Item("Rechnungsnummer_pro_Lieferland") & "' AND cast(Rechnungsdatum as Date) = '" & utaDate & "' AND Kundennummer =" & r.Item("Kundennummer") & " and Abrechnungsnummer =" & r.Item("Abrechnungsnummer") & " and daId is null", "FMZOLL") + End If + + found = True + If invoiceNr <> "" AndAlso invoiceDate <> "" AndAlso Kundenummer > 0 AndAlso Rechnungsland <> "" Then + + Dim parsedDate As DateTime = DateTime.ParseExact(invoiceDate, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture) + invoiceDate = parsedDate.ToString("dd.MM.yyyy") + + SQL.doSQL("Update [tblUTAImportNew] SET [daId]='" & DS.da_id & "', daIdgesetztDatum = getdate() where [Rechnungsnummer_pro_Lieferland] = '" & invoiceNr & "' AND cast(Rechnungsdatum as Date) = '" & invoiceDate & "' AND Kundennummer =" & Kundenummer & " and Lieferland_ISO2 ='" & Rechnungsland & "' and daId is null", "FMZOLL") ' If SQL.doSQL("Update [tblUTAImportNew] SET [daId]='" & DS.da_id & "' where [Rechnungsnummer_pro_Lieferland] = '" & invoiceNr & "' AND cast(Rechnungsdatum as Date) = '" & invoiceDate & "' AND Kundennummer =" & Kundenummer & " and Abrechnungsnummer =" & r.Item("Abrechnungsnummer") & " and daId is null ", "FMZOLL") Then @@ -773,14 +808,45 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers If fi.Extension.ToLower = ".pdf" Then - If fi.Name.ToString.StartsWith("COPY_INVOICE_") Then + Dim dateiname As String = fi.Name.ToString + Dim cutLenght As Integer = 20 + Dim newFormat As Boolean = False - createIDSInvoice(fi.Name.ToString.Replace("COPY_INVOICE_", ""), "INVOICE") + 'im alten Format! + 'PS = Zusammenfassung + 'SP = Tankungen pro Karte + 'OBO = Rechnungen pro Land + 'VATR = Rechnungen pro Land + 'COPY_INVOICE = alles zusammen pro Kunde! + + If dateiname.Contains("IV_") AndAlso dateiname.Length > cutLenght Then 'dann ist es das neue Format von IDS!!!! + + newFormat = True + + 'im neuen Format! + 'PS = Zusammenfassung + 'SPEC = Tankungen pro Karte + 'OBO = Rechnungen pro Land + 'VATR = Rechnungen pro Land + + 'COPY_INVOICE = gibt es im neuen Format nicht mehr!!!!!!!!!!!! -> sehr schlecht, muss manuell zusammengebaut werden -> per BATCH-JOB + 'AUFBAU der COPY_INVOICE: PS + SPEC + OBO + VATR + + dateiname = dateiname.Substring(cutLenght, dateiname.Length - cutLenght) + + If dateiname.Contains("_WP") Then dateiname = dateiname.Replace("_WP", "") + If dateiname.Contains("-") Then dateiname = dateiname.Replace("-", "") + + End If + + If dateiname.StartsWith("COPY_INVOICE_") Then + + createIDSInvoice(dateiname.Replace("COPY_INVOICE_", ""), "INVOICE",, newFormat) Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "IDS", Now.Year, Now.ToString("yyyyMMdd"), frmStartOptions.getFileName(d)) If DS.uploadDataToDATENSERVER(d,,,,,, True) Then - If SQL.doSQL("Update [tblIDSInvoicesNew] SET [daId]='" & DS.da_id & "' where [DocumentName] = '" & DS.da_name.ToString.Replace("COPY_INVOICE_", "") & "' ", "FMZOLL") Then + If SQL.doSQL("Update [tblIDSInvoicesNew] SET [daId]='" & DS.da_id & "' where [DocumentName] = '" & dateiname.ToString.Replace("COPY_INVOICE_", "") & "' ", "FMZOLL") Then frmStartOptions.moveFile_DateBack(d, zielpfad & "Invoice_PDF\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\") cntDatenEingelesen += 1 End If @@ -791,28 +857,28 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers Catch ex As System.Exception End Try - ElseIf fi.Name.ToString.StartsWith("OBO_") Then + ElseIf dateiname.StartsWith("OBO_") Then - createIDSInvoice(fi.Name.ToString.Replace("OBO_", ""), "INVOICEBYCOUNTRY") + createIDSInvoice(dateiname.Replace("OBO_", ""), "INVOICEBYCOUNTRY",, newFormat) Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "IDS_COUNTRY", Now.Year, Now.ToString("yyyyMMdd"), frmStartOptions.getFileName(d)) If DS.uploadDataToDATENSERVER(d,,,,,, True) Then - If SQL.doSQL("Update [tblIDSInvoicesNewSplittedByCountry] SET [daId]='" & DS.da_id & "' where [DocumentName] = '" & DS.da_name.ToString.Replace("OBO_", "") & "' ", "FMZOLL") Then + If SQL.doSQL("Update [tblIDSInvoicesNewSplittedByCountry] SET [daId]='" & DS.da_id & "' where [DocumentName] = '" & dateiname.ToString.Replace("OBO_", "") & "' ", "FMZOLL") Then frmStartOptions.moveFile_DateBack(d, zielpfad & "Invoice_PDF_Country\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\") cntDatenEingelesen += 1 End If End If - ElseIf fi.Name.ToString.StartsWith("VATR_") Then + ElseIf dateiname.StartsWith("VATR_") Then - createIDSInvoice(fi.Name.ToString.Replace("VATR_", ""), "INVOICEBYCOUNTRY") + createIDSInvoice(dateiname.Replace("VATR_", ""), "INVOICEBYCOUNTRY",, newFormat) Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "IDS_COUNTRY", Now.Year, Now.ToString("yyyyMMdd"), frmStartOptions.getFileName(d)) If DS.uploadDataToDATENSERVER(d,,,,,, True) Then - If SQL.doSQL("Update [tblIDSInvoicesNewSplittedByCountry] SET [daId]='" & DS.da_id & "' where [DocumentName] = '" & DS.da_name.ToString.Replace("VATR_", "") & "' ", "FMZOLL") Then + If SQL.doSQL("Update [tblIDSInvoicesNewSplittedByCountry] SET [daId]='" & DS.da_id & "' where [DocumentName] = '" & dateiname.ToString.Replace("VATR_", "") & "' ", "FMZOLL") Then frmStartOptions.moveFile_DateBack(d, zielpfad & "Invoice_PDF_Country\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\") cntDatenEingelesen += 1 End If diff --git a/initATLASAufschubkonten/frmStartOptions.Designer.vb b/initATLASAufschubkonten/frmStartOptions.Designer.vb index 27d6f7e..b8c8fe2 100644 --- a/initATLASAufschubkonten/frmStartOptions.Designer.vb +++ b/initATLASAufschubkonten/frmStartOptions.Designer.vb @@ -326,6 +326,7 @@ Partial Class frmStartOptions Me.txtGJ_UNISPED = New VERAG_PROG_ALLGEMEIN.MyTextBox() Me.Button21 = New System.Windows.Forms.Button() Me.DataGridViewTextBoxColumn1 = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.LinkLabel53 = New System.Windows.Forms.LinkLabel() Me.pnl.SuspendLayout() CType(Me.PictureBox24, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.PictureBox23, System.ComponentModel.ISupportInitialize).BeginInit() @@ -455,7 +456,7 @@ Partial Class frmStartOptions Me.pnl.Dock = System.Windows.Forms.DockStyle.Fill Me.pnl.Location = New System.Drawing.Point(0, 0) Me.pnl.Name = "pnl" - Me.pnl.Size = New System.Drawing.Size(1229, 970) + Me.pnl.Size = New System.Drawing.Size(1229, 920) Me.pnl.TabIndex = 0 ' 'txtMRNPrefix @@ -1084,7 +1085,7 @@ Partial Class frmStartOptions Me.tbcntr.Controls.Add(Me.TabPage3) Me.tbcntr.Controls.Add(Me.TabPage4) Me.tbcntr.Dock = System.Windows.Forms.DockStyle.Bottom - Me.tbcntr.Location = New System.Drawing.Point(0, 429) + Me.tbcntr.Location = New System.Drawing.Point(0, 379) Me.tbcntr.Name = "tbcntr" Me.tbcntr.SelectedIndex = 0 Me.tbcntr.Size = New System.Drawing.Size(1227, 539) @@ -2834,6 +2835,7 @@ Partial Class frmStartOptions ' 'IDS ' + Me.IDS.Controls.Add(Me.LinkLabel53) Me.IDS.Controls.Add(Me.IDSUpdateDAID) Me.IDS.Controls.Add(Me.Label32) Me.IDS.Controls.Add(Me.Label35) @@ -4341,12 +4343,23 @@ Partial Class frmStartOptions Me.DataGridViewTextBoxColumn1.MinimumWidth = 8 Me.DataGridViewTextBoxColumn1.Name = "DataGridViewTextBoxColumn1" ' + 'LinkLabel53 + ' + Me.LinkLabel53.AutoSize = True + Me.LinkLabel53.LinkColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) + Me.LinkLabel53.Location = New System.Drawing.Point(9, 203) + Me.LinkLabel53.Name = "LinkLabel53" + Me.LinkLabel53.Size = New System.Drawing.Size(154, 13) + Me.LinkLabel53.TabIndex = 170 + Me.LinkLabel53.TabStop = True + Me.LinkLabel53.Text = "PDF mit RE-Details verknüpfen" + ' 'frmStartOptions ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.BackColor = System.Drawing.Color.White - Me.ClientSize = New System.Drawing.Size(1229, 970) + Me.ClientSize = New System.Drawing.Size(1229, 920) Me.Controls.Add(Me.pnl) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) @@ -4715,4 +4728,5 @@ Partial Class frmStartOptions Friend WithEvents cboTCAPI_Files As Button Friend WithEvents cboTCAPI_Call As Button Friend WithEvents cboTCAPI_Firma As VERAG_PROG_ALLGEMEIN.MyComboBox + Friend WithEvents LinkLabel53 As LinkLabel End Class diff --git a/initATLASAufschubkonten/frmStartOptions.resx b/initATLASAufschubkonten/frmStartOptions.resx index 5d9bc21..8da457c 100644 --- a/initATLASAufschubkonten/frmStartOptions.resx +++ b/initATLASAufschubkonten/frmStartOptions.resx @@ -212,102 +212,6 @@ +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 @@ -721,9 +625,6 @@ True - - True - iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAABGdBTUEAALGPC/xhBQAABGdJREFUSEtj @@ -818,6 +719,102 @@ +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 diff --git a/initATLASAufschubkonten/frmStartOptions.vb b/initATLASAufschubkonten/frmStartOptions.vb index 8dbaa09..879c6e5 100644 --- a/initATLASAufschubkonten/frmStartOptions.vb +++ b/initATLASAufschubkonten/frmStartOptions.vb @@ -1425,7 +1425,7 @@ Public Class frmStartOptions API.api_EMailText = body API.api_EMailAttCnt = pfadList.Count - betreff = betreff.Replace("%Zollbeleg%", "Versandbegleitdokument " & BezugsNr) + betreff = betreff.Replace("%Zollbeleg%", "c " & BezugsNr) If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(EMails, betreff, body, getAbsenderEmail(FirmaTmp), False, False, EMails_CC, EMails_BCC, pfadList) Then API.UPDTAE_OK() insertSendungsVermerk(SND.tblSnd_SendungID, SND.tblSnd_AvisoID, "Zollbeleg '" & art & "' gesendet an: " & EMails, 46) @@ -5623,11 +5623,11 @@ weiter: If txtUTADate.Text = "" AndAlso txtUTAYear.Text <> "" Then datumString = txtUTAYear.Text - fehlendeRechnungen = (New SQL).loadDgvBySql("select Adressen.AdressenNr, Adressen.[Name 1],Lieferland,[Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId] from tblUTAImportNew inner join adressen on Kundennummer = UTAKundenNr where daId is null and Year(cast([Rechnungsdatum] as Date)) = '" & txtUTAYear.Text & "' and (Lieferland <> 'ROM' and Steuerliches_Lieferland <> 'ROM' or Kundennummer = 868070) Group by Adressen.AdressenNr, Adressen.[Name 1],[Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId],Lieferland", "FMZOLL") + fehlendeRechnungen = (New SQL).loadDgvBySql("select Adressen.AdressenNr, Adressen.[Name 1],Lieferland,[Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId] from tblUTAImportNew inner join adressen on Kundennummer = UTAKundenNr where daId is null and Year(cast([Rechnungsdatum] as Date)) = '" & datumString & "' and (Lieferland <> 'ROM' and Steuerliches_Lieferland <> 'ROM' or Kundennummer = 868070) Group by Adressen.AdressenNr, Adressen.[Name 1],[Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId],Lieferland", "FMZOLL") ElseIf txtUTADate.Text <> "" AndAlso IsDate(txtUTADate.Text) Then datumString = txtUTADate.Text - fehlendeRechnungen = (New SQL).loadDgvBySql("select Adressen.AdressenNr, Adressen.[Name 1],Lieferland,[Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId] from tblUTAImportNew inner join adressen on Kundennummer = UTAKundenNr where daId is null and cast([Rechnungsdatum] as Date) = '" & txtUTADate.Text & "' and (Lieferland <> 'ROM' and Steuerliches_Lieferland <> 'ROM' or Kundennummer = 868070 ) Group by Adressen.AdressenNr, Adressen.[Name 1],[Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId],Lieferland", "FMZOLL") + fehlendeRechnungen = (New SQL).loadDgvBySql("select Adressen.AdressenNr, Adressen.[Name 1],Lieferland,[Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId] from tblUTAImportNew inner join adressen on Kundennummer = UTAKundenNr where daId is null and cast([Rechnungsdatum] as Date) = '" & datumString & "' and (Lieferland <> 'ROM' and Steuerliches_Lieferland <> 'ROM' or Kundennummer = 868070 ) Group by Adressen.AdressenNr, Adressen.[Name 1],[Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId],Lieferland", "FMZOLL") End If @@ -5972,6 +5972,57 @@ weiter: Next + End Sub + + Private Sub LinkLabel53_LinkClicked_1(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel53.LinkClicked + + Dim fehlendePDFzuRE As String = "select * FROM tblIDSInvoicesNewSplittedByCountry where daId is null " + + Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL + Dim dtRechnnungsdaten As DataTable = SQL.loadDgvBySql(fehlendePDFzuRE, "FMZOLL") + + If dtRechnnungsdaten.Rows.Count > 0 Then + + For Each r As DataRow In dtRechnnungsdaten.Rows + + Dim dateiname As String = r.Item("DocumentName") + Dim invoicenumber As String = r.Item("Invoicenumber") + Dim invoicenumber2 As String = "" + + If invoicenumber.Contains("DE") Then + invoicenumber2 = invoicenumber.Replace("DE", "-DE") + ElseIf invoicenumber.Contains("PL") Then + invoicenumber2 = invoicenumber.Replace("PL", "-PL") + ElseIf invoicenumber.Contains("SP") Then + invoicenumber2 = invoicenumber.Replace("SP", "-SP") + ElseIf invoicenumber.Contains("RO") Then + invoicenumber2 = invoicenumber.Replace("RO", "-RO") + ElseIf invoicenumber.Contains("DA") Then + invoicenumber2 = invoicenumber.Replace("DA", "-DA") + ElseIf invoicenumber.Contains("FT") Then + invoicenumber2 = invoicenumber.Replace("FT", "FT-") + invoicenumber2 = invoicenumber2.Replace("I10", "I10-") + ElseIf invoicenumber.Contains("GE") Then + invoicenumber2 = invoicenumber.Replace("GE", "-GE") + End If + + Dim daId As Integer = 0 + daId = CInt(SQL.getValueTxtBySql("Select top(1) isnull(da_id,0) FROM tblDatenarchiv WHERE da_KundenNr = 0 And da_kategorie = 'MDM' AND da_ordner='MDM_DATEN' AND da_uOrdner1= 'IDS_COUNTRY' AND da_uOrdner2= '" & Now.Year & "' AND da_name like '%" & r.Item("CustomerCode") & "%'" & IIf(invoicenumber2 <> "", "AND da_name like '%" & invoicenumber2 & "%'", " AND da_name like '%" & r.Item("Invoicenumber") & "%'"), "FMZOLL",,, 0)) + If daId > 0 Then + Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId) + Dim Path As String = DS.GET_TOP1_PATH() + If Path <> "" And System.IO.File.Exists(Path) Then + SQL.doSQL("Update [tblIDSInvoicesNewSplittedByCountry] SET [daId]='" & DS.da_id & "' where [DocumentName] = '" & dateiname.ToString & "' ", "FMZOLL") + + End If + End If + + + Next + + End If + + End Sub Private Sub Button29_Click(sender As Object, e As EventArgs) Handles cboTCAPI_Files.Click @@ -6009,4 +6060,6 @@ weiter: Next Next End Sub + + End Class \ No newline at end of file