ustva, api, fakt.

This commit is contained in:
2025-02-13 11:23:50 +01:00
parent e7a10aacd8
commit e1d3f84bc2
11 changed files with 770 additions and 575 deletions

View File

@@ -1,6 +1,9 @@
Imports System.ComponentModel
Imports com.sun.javadoc
Imports com.sun.xml.internal.bind.v2.model.core
Imports itextsharp.text.factories
Imports Microsoft.Office.Interop
Imports sun.swing
Imports VERAG_PROG_ALLGEMEIN
@@ -541,6 +544,38 @@ Public Class usrCntlUSTV
Private Sub btn2_Click(sender As Object, e As EventArgs) Handles Button2.Click
If Not ContextMenuStrip3.Items.ContainsKey("dgv") Then
Dim dgv = New ToolStripMenuItem() With {.Text = "Übersicht anzeigen", .Name = "dgv", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler dgv.Click, AddressOf mnuItem3_Clicked
ContextMenuStrip3.Items.Add(dgv)
End If
If Not ContextMenuStrip3.Items.ContainsKey("excel") Then
Dim excel = New ToolStripMenuItem() With {.Text = "Excelauswertung starten", .Name = "excel", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
ContextMenuStrip3.Items.Add(excel)
AddHandler excel.Click, AddressOf mnuItem3_Clicked
End If
If Not ContextMenuStrip3.Items.ContainsKey("mail") Then
Dim mail = New ToolStripMenuItem() With {.Text = "Email generieren", .Name = "mail", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler mail.Click, AddressOf mnuItem3_Clicked
ContextMenuStrip3.Items.Add(mail)
End If
ContextMenuStrip3.Show(Cursor.Position)
End Sub
Private Sub btnMail_Click(sender As Object, e As EventArgs) Handles btnMail.Click
If Not ContextMenuStrip1.Items.ContainsKey("excel") Then
@@ -952,49 +987,197 @@ Public Class usrCntlUSTV
End Sub
Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click
Private Sub mnuItem3_Clicked(sender As Object, e As EventArgs)
Dim f As New frmDatumsabfrage("Bitte Prüfdatum eingeben", False)
f.ShowDialog()
If f.DialogResult = DialogResult.OK Then
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
Dim pruefdatum As Date = CDate(f.Datum)
Dim sqlKunde = ""
Dim sqlKundeadmin = ""
If KdSearchBox1.KdNr > 0 Then
sqlKunde = " And A.AdressenNr = " & KdSearchBox1.KdNr
sqlKundeadmin = " AND [api_KundenNr] = " & KdSearchBox1.KdNr
End If
Dim sqlKunde = ""
If KdSearchBox1.KdNr > 0 Then
sqlKunde = " AND A.AdressenNr = " & KdSearchBox1.KdNr
If item IsNot Nothing Then
If item.Name = "dgv" Then
Try
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim frm As New Form
Dim dgv As New DataGridView()
Dim dt As DataTable = SQL.loadDgvBySql(" select [api_datetime] as erstelltAm,[api_EMail] as An ,[api_EMailCC] as CC,[api_EMailBCC] as BCC,[api_EMailSubject] as Betreff,[api_EMailAttCnt] as Anzahl_Anhänge, [api_KundenNr] as KundenNr, [api_Username] as erstelltVon from [tblAPI] where [api_apiUArt] = 'FA-Bestaetigung' AND api_progName = 'SDL'" & sqlKundeadmin & " Order by api_datetime desc", "ADMIN")
dgv.DataSource = dt
If dgv IsNot Nothing Then
frm.Size = New Size(1000, 1000)
dgv.Size = New Size(frm.Size.Width - 10, frm.Size.Height - 10)
dgv.Dock = DockStyle.Fill
dgv.Anchor = AnchorStyles.Left
dgv.Anchor = AnchorStyles.Top
dgv.ReadOnly = True
frm.Controls.Add(dgv)
frm.StartPosition = FormStartPosition.CenterScreen
frm.ShowDialog()
End If
Catch ex As System.Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Else
Dim f As New frmDatumsabfrage("Bitte Prüfdatum eingeben", False)
f.ShowDialog()
If f.DialogResult = DialogResult.OK Then
Dim pruefdatum As Date = CDate(f.Datum)
Dim sqlQery = "Select A.AdressenNr, A.[E-Mail], A.[E-Mail2], A.LandKz, A.Ordnungsbegriff, L.LandKz, S.StNrFürRückerstattungUSt, S.StNrGültigkeitsdatum, CAST('" & pruefdatum & "' AS DATE) AS Prüfdatum,
CASE
WHEN S.StNrGültigkeitsdatum > CAST('" & pruefdatum & "' AS DATE) THEN 1 ELSE 0
END AS Gültig
FROM [Länderverzeichnis für die Außenhandelsstatistik] L INNER JOIN (Adressen A INNER JOIN Währungstabelle W ON A.LandKz = W.LandKz INNER JOIN tblSteuernummern S ON A.AdressenNr = S.AdressenNr) ON L.LandNr = S.LandNr
WHERE S.StNrGültigkeitsdatum IS NOT NULL AND W.MitgliedslandEU = 0 " & sqlKunde
Dim dtVorschau As DataTable = SQL.loadDgvBySql(sqlQery, "FMZOLL")
ContextMenuStrip3.Hide()
If dtVorschau.Rows.Count = 0 Then Exit Sub
If item.Name = "excel" Then
If dtVorschau.Columns.Contains("E-Mail") Then dtVorschau.Columns.Remove("E-Mail")
If dtVorschau.Columns.Contains("E-Mail2") Then dtVorschau.Columns.Remove("E-Mail2")
cProgramFunctions.genExcelFromDT_NEW(dtVorschau,,,,,, True)
ElseIf item.Name = "mail" Then
Dim displayView = New DataView(dtVorschau, "Gültig = 0", "AdressenNr", DataViewRowState.CurrentRows)
Dim distinctDT As DataTable = displayView.ToTable(True, "AdressenNr")
If distinctDT.Rows.Count = 0 Then
MsgBox("Zu diesem Datum sind alle FA-Bestätigung gültig!")
Exit Sub
End If
If Not vbYes = MsgBox("Es werden Emails für " & distinctDT.Rows.Count & " unterschiedliche/n Kunden erstellt." & vbNewLine & "Möchten Sie fortfahren?", vbYesNoCancel) Then Exit Sub
For Each row In distinctDT.Rows
Dim dt_Data_selected = dtVorschau.Select("AdressenNr ='" & row.Item(0) & "'").CopyToDataTable
Try
Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
Mail.Subject = "PDV UVERENJA"
Dim TextHTML = ""
TextHTML &= "Postovani,<br>"
TextHTML &= "<br>"
TextHTML &= "isteklo nam je staro porezno Uvjerenje i potrebno je da nam dostavite hitno nova za sljedece zemlje.<br><br>"
Dim attachmentSRB As Boolean = False
Dim attachmentBIH As Boolean = False
Dim attachmendSK As Boolean = False
For Each r In dt_Data_selected.Rows
If Not IsDBNull(r.item("LandKZ1")) Then
Select Case r.item("LandKZ1")
Case "HU" : TextHTML &= "<li><b>" & r.item("LandKZ1") & " (Na uverenju mora biti naveden datum kad ste registrovani kao PDV obaveznik, prevedite na Madarski, potpis sluzbene osobe ne smije biti faksimil mora bit vlastorucan)</li></b><br><br>"
Case "SI" : TextHTML &= "<li><b>" & r.item("LandKZ1") & " (Na uverenju mora biti naveden datum kad ste registrovani kao PDV obaveznik, prevedite na Slovenacki)</li></b><br><br>"
Case "LU" : TextHTML &= "<li><b>" & r.item("LandKZ1") & " (Na uverenju obavezno navedite sifru djelatnosti 4941, prevesti na Engleski)</li></b><br><br>"
Case "SK" : TextHTML &= "<li><b>" & r.item("LandKZ1") & " (Na uverenju mora biti naveden datum kad ste registrovani kao PDV obaveznik, prevedite na Engleski)</li></b><br><br>" : attachmendSK = True
Case "RO" : TextHTML &= "<li><b>" & r.item("LandKZ1") & " (Na uverenju mora biti naveden datum kad ste registrovani kao PDV obaveznik, prevedite na Rumonski)</li></b><br><br>"
Case "HR" : TextHTML &= "<li><b>" & r.item("LandKZ1") & " (Na uverenju mora biti naveden datum kad ste registrovani kao PDV obaveznik, prevedite na Hrvatski)</li></b><br><br>"
Case Else
TextHTML &= "<li><b>" & r.item("LandKZ1") & " (prevod na Engleski)</li></b><br><br>"
End Select
End If
If Not IsDBNull(r.item("LandKZ")) Then
Select Case r.item("LandKZ")
Case "SRB" : attachmentSRB = True
Case "BIH" : attachmentBIH = True
End Select
End If
Next
TextHTML &= "<br><br>Molim Vas da nam original uverenja + prijevod dostavite pojedinacno za svaku zemlju, znaci koliko zemalja toliko uverenja I prevoda.<br><br>"
TextHTML &= "U privitku se nalazi primjer uverenja (u smislu sadrzaja)<br><br>"
TextHTML &= "za pitanja stojim na raspolaganju!<br><br>"
TextHTML &= "Mit freundlichen Grüßen<br>"
TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br>"
TextHTML &= "<br>"
Mail.HTMLBody = "<div style=""font-family:Calibri, Arial;font-size:15px;"">" & TextHTML & SDL.cFakturierung.getSignature("DE") & "</div>"
If Not IsDBNull(dt_Data_selected.Rows(0).Item("E-Mail")) Then Mail.To &= dt_Data_selected.Rows(0).Item("E-Mail") & ";"
If Not IsDBNull(dt_Data_selected.Rows(0).Item("E-Mail2")) Then Mail.To &= dt_Data_selected.Rows(0).Item("E-Mail2") & ";"
If attachmentSRB Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VORLAGEN", "SONSTIGE", "MDM", "", "SRB_FA_BESTAETIGUNG")
Dim filepath = DS.GET_TOP1_PATH(False)
If filepath <> "" Then Mail.Attachments.Add(filepath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
End If
If attachmentBIH Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VORLAGEN", "SONSTIGE", "MDM", "", "BIH_FA_BESTAETIGUNG")
Dim filepath = DS.GET_TOP1_PATH(False)
If filepath <> "" Then Mail.Attachments.Add(filepath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
End If
If attachmentBIH And attachmendSK Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VORLAGEN", "SONSTIGE", "MDM", "", "SVK_FA_BESTAETIGUNG")
Dim filepath = DS.GET_TOP1_PATH(False)
If filepath <> "" Then Mail.Attachments.Add(filepath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
End If
Mail.Display()
Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, VERAG_PROG_ALLGEMEIN.cAPI_ART.SDL_OUT_FA, "FA-Bestaetigung",,, row.Item(0))
API.api_EMail = Mail.To
API.api_EMailSubject = Mail.Subject
API.api_EMailText = TextHTML
API.api_EMailAttCnt = Mail.Attachments.Count
API.SAVE()
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name,, "Fehler beim Öffnen der Mail!")
End Try
Next
End If
End If
End If
Dim sqlQery = "SELECT
A.LandKz,
A.AdressenNr,
A.Ordnungsbegriff,
L.LandKz,
S.StNrFürRückerstattungUSt,
S.StNrGültigkeitsdatum,
CAST('" & pruefdatum & "' AS DATE) AS Prüfdatum,
CASE
WHEN S.StNrGültigkeitsdatum > CAST('" & pruefdatum & "' AS DATE) THEN 1
ELSE 0
END AS Gültig
FROM
[Länderverzeichnis für die Außenhandelsstatistik] L
INNER JOIN
(Adressen A
INNER JOIN Währungstabelle W ON A.LandKz = W.LandKz
INNER JOIN tblSteuernummern S ON A.AdressenNr = S.AdressenNr)
ON L.LandNr = S.LandNr
WHERE
S.StNrGültigkeitsdatum IS NOT NULL
AND W.MitgliedslandEU = 0 " & sqlKunde
Dim dtVorschau As DataTable = SQL.loadDgvBySql(sqlQery, "FMZOLL")
cProgramFunctions.genExcelFromDT_NEW(dtVorschau,,,,,, True)
End If
End Sub
End Class