Logik für AddIn Vollmachten eingebaut.

This commit is contained in:
2022-09-28 13:15:48 +02:00
parent 76518d49cf
commit 95f0a62c89
4 changed files with 154 additions and 43 deletions

View File

@@ -35,10 +35,13 @@ Partial Class frmAvisoFormularAnfuegen
Me.MyPanel2 = New VERAG_PROG_ALLGEMEIN.MyPanel(Me.components) Me.MyPanel2 = New VERAG_PROG_ALLGEMEIN.MyPanel(Me.components)
Me.lblVMId = New System.Windows.Forms.Label() Me.lblVMId = New System.Windows.Forms.Label()
Me.UsrCntlKundenZollVollmachten1 = New SDL.usrCntlKundenZollVollmachten() Me.UsrCntlKundenZollVollmachten1 = New SDL.usrCntlKundenZollVollmachten()
Me.dgvAnhaenge = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
Me.columnName = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.MyPanel1.SuspendLayout() Me.MyPanel1.SuspendLayout()
CType(Me.pbMail, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.pbMail, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.pbAnhaenge, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.pbAnhaenge, System.ComponentModel.ISupportInitialize).BeginInit()
Me.MyPanel2.SuspendLayout() Me.MyPanel2.SuspendLayout()
CType(Me.dgvAnhaenge, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout() Me.SuspendLayout()
' '
'lblKunden 'lblKunden
@@ -121,16 +124,16 @@ Partial Class frmAvisoFormularAnfuegen
Me.MyPanel1.Controls.Add(Me.btnOK) Me.MyPanel1.Controls.Add(Me.btnOK)
Me.MyPanel1.Controls.Add(Me.btnCancel) Me.MyPanel1.Controls.Add(Me.btnCancel)
Me.MyPanel1.Dock = System.Windows.Forms.DockStyle.Bottom Me.MyPanel1.Dock = System.Windows.Forms.DockStyle.Bottom
Me.MyPanel1.Location = New System.Drawing.Point(0, 513) Me.MyPanel1.Location = New System.Drawing.Point(0, 523)
Me.MyPanel1.Name = "MyPanel1" Me.MyPanel1.Name = "MyPanel1"
Me.MyPanel1.Size = New System.Drawing.Size(514, 108) Me.MyPanel1.Size = New System.Drawing.Size(526, 108)
Me.MyPanel1.TabIndex = 36 Me.MyPanel1.TabIndex = 36
' '
'pbMail 'pbMail
' '
Me.pbMail.Enabled = False Me.pbMail.Enabled = False
Me.pbMail.Image = Global.VERAGAddIn.My.Resources.Resources.email_big1 Me.pbMail.Image = Global.VERAGAddIn.My.Resources.Resources.email_big1
Me.pbMail.Location = New System.Drawing.Point(98, 12) Me.pbMail.Location = New System.Drawing.Point(12, 11)
Me.pbMail.Name = "pbMail" Me.pbMail.Name = "pbMail"
Me.pbMail.Size = New System.Drawing.Size(55, 50) Me.pbMail.Size = New System.Drawing.Size(55, 50)
Me.pbMail.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom Me.pbMail.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom
@@ -141,12 +144,13 @@ Partial Class frmAvisoFormularAnfuegen
' '
Me.pbAnhaenge.Enabled = False Me.pbAnhaenge.Enabled = False
Me.pbAnhaenge.Image = Global.VERAGAddIn.My.Resources.Resources.pdf Me.pbAnhaenge.Image = Global.VERAGAddIn.My.Resources.Resources.pdf
Me.pbAnhaenge.Location = New System.Drawing.Point(12, 12) Me.pbAnhaenge.Location = New System.Drawing.Point(73, 12)
Me.pbAnhaenge.Name = "pbAnhaenge" Me.pbAnhaenge.Name = "pbAnhaenge"
Me.pbAnhaenge.Size = New System.Drawing.Size(65, 50) Me.pbAnhaenge.Size = New System.Drawing.Size(65, 50)
Me.pbAnhaenge.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom Me.pbAnhaenge.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom
Me.pbAnhaenge.TabIndex = 32 Me.pbAnhaenge.TabIndex = 32
Me.pbAnhaenge.TabStop = False Me.pbAnhaenge.TabStop = False
Me.pbAnhaenge.Visible = False
' '
'MyPanel2 'MyPanel2
' '
@@ -157,7 +161,7 @@ Partial Class frmAvisoFormularAnfuegen
Me.MyPanel2.Dock = System.Windows.Forms.DockStyle.Top Me.MyPanel2.Dock = System.Windows.Forms.DockStyle.Top
Me.MyPanel2.Location = New System.Drawing.Point(0, 0) Me.MyPanel2.Location = New System.Drawing.Point(0, 0)
Me.MyPanel2.Name = "MyPanel2" Me.MyPanel2.Name = "MyPanel2"
Me.MyPanel2.Size = New System.Drawing.Size(514, 114) Me.MyPanel2.Size = New System.Drawing.Size(526, 114)
Me.MyPanel2.TabIndex = 37 Me.MyPanel2.TabIndex = 37
' '
'lblVMId 'lblVMId
@@ -177,12 +181,42 @@ Partial Class frmAvisoFormularAnfuegen
Me.UsrCntlKundenZollVollmachten1.Size = New System.Drawing.Size(514, 387) Me.UsrCntlKundenZollVollmachten1.Size = New System.Drawing.Size(514, 387)
Me.UsrCntlKundenZollVollmachten1.TabIndex = 38 Me.UsrCntlKundenZollVollmachten1.TabIndex = 38
' '
'dgvAnhaenge
'
Me.dgvAnhaenge.AKTUALISIERUNGS_INTERVALL = -1
Me.dgvAnhaenge.AllowUserToAddRows = False
Me.dgvAnhaenge.AllowUserToDeleteRows = False
Me.dgvAnhaenge.AllowUserToResizeColumns = False
Me.dgvAnhaenge.AllowUserToResizeRows = False
Me.dgvAnhaenge.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.dgvAnhaenge.BackgroundColor = System.Drawing.Color.White
Me.dgvAnhaenge.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
Me.dgvAnhaenge.ColumnHeadersVisible = False
Me.dgvAnhaenge.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.columnName})
Me.dgvAnhaenge.Location = New System.Drawing.Point(0, 481)
Me.dgvAnhaenge.Name = "dgvAnhaenge"
Me.dgvAnhaenge.ReadOnly = True
Me.dgvAnhaenge.RowHeadersVisible = False
Me.dgvAnhaenge.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect
Me.dgvAnhaenge.Size = New System.Drawing.Size(523, 48)
Me.dgvAnhaenge.TabIndex = 39
Me.dgvAnhaenge.Visible = False
'
'columnName
'
Me.columnName.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill
Me.columnName.HeaderText = "Name"
Me.columnName.Name = "columnName"
Me.columnName.ReadOnly = True
'
'frmAvisoFormularAnfuegen 'frmAvisoFormularAnfuegen
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.BackColor = System.Drawing.Color.White Me.BackColor = System.Drawing.Color.White
Me.ClientSize = New System.Drawing.Size(514, 621) Me.ClientSize = New System.Drawing.Size(526, 631)
Me.Controls.Add(Me.dgvAnhaenge)
Me.Controls.Add(Me.UsrCntlKundenZollVollmachten1) Me.Controls.Add(Me.UsrCntlKundenZollVollmachten1)
Me.Controls.Add(Me.MyPanel2) Me.Controls.Add(Me.MyPanel2)
Me.Controls.Add(Me.MyPanel1) Me.Controls.Add(Me.MyPanel1)
@@ -195,6 +229,7 @@ Partial Class frmAvisoFormularAnfuegen
CType(Me.pbAnhaenge, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.pbAnhaenge, System.ComponentModel.ISupportInitialize).EndInit()
Me.MyPanel2.ResumeLayout(False) Me.MyPanel2.ResumeLayout(False)
Me.MyPanel2.PerformLayout() Me.MyPanel2.PerformLayout()
CType(Me.dgvAnhaenge, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False) Me.ResumeLayout(False)
End Sub End Sub
@@ -209,4 +244,6 @@ Partial Class frmAvisoFormularAnfuegen
Friend WithEvents MyPanel2 As VERAG_PROG_ALLGEMEIN.MyPanel Friend WithEvents MyPanel2 As VERAG_PROG_ALLGEMEIN.MyPanel
Friend WithEvents lblVMId As Windows.Forms.Label Friend WithEvents lblVMId As Windows.Forms.Label
Friend WithEvents UsrCntlKundenZollVollmachten1 As SDL.usrCntlKundenZollVollmachten Friend WithEvents UsrCntlKundenZollVollmachten1 As SDL.usrCntlKundenZollVollmachten
Friend WithEvents dgvAnhaenge As VERAG_PROG_ALLGEMEIN.MyDatagridview
Friend WithEvents columnName As Windows.Forms.DataGridViewTextBoxColumn
End Class End Class

View File

@@ -117,6 +117,9 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<metadata name="columnName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>

View File

@@ -9,14 +9,15 @@ Imports VERAG_PROG_ALLGEMEIN
Public Class frmAvisoFormularAnfuegen Public Class frmAvisoFormularAnfuegen
Public KdNr As Integer = -1 Public KdNr As Integer = -1
Public vollmachtId As Integer = -1
Dim vollmachtartId As Integer = -1 Dim vollmachtartId As Integer = -1
Dim vollmachtId As Integer = -1
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim KUNDE As VERAG_PROG_ALLGEMEIN.cKunde = Nothing Dim KUNDE As VERAG_PROG_ALLGEMEIN.cKunde = Nothing
Public SendungsId = -1 Public SendungsId = -1
Public Bezeichnung = "" Public Bezeichnung = ""
Public PDF_MAIL As Boolean = False Public PDF_MAIL = ""
Public ATT As List(Of String) Public ATT As List(Of String)
Public hasAnhaenge As Boolean = False
Sub New() Sub New()
@@ -36,15 +37,12 @@ Public Class frmAvisoFormularAnfuegen
Private Sub frmAvisoFormularAnfuegen_Load(sender As Object, e As EventArgs) Handles MyBase.Load Private Sub frmAvisoFormularAnfuegen_Load(sender As Object, e As EventArgs) Handles MyBase.Load
KdSearchBox.initKdBox(Me) KdSearchBox.initKdBox(Me)
initAttachment()
If PDF_MAIL Then If hasAnhaenge Then
pbAnhaenge.Visible = True pbAnhaenge.Visible = True
Else
pbAnhaenge.Visible = False
End If End If
End Sub End Sub
@@ -97,20 +95,46 @@ Public Class frmAvisoFormularAnfuegen
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
If Not PDF_MAIL Then If Not hasAnhaenge Then
'Sicherheitsabfrage: Mail besitzt keinen Anhang, soll VM gespeichert werden?
If Not vbYes = MsgBox("Die Email besitzt keinen Anhang! Soll die Email denoch gespeichert werden?", vbYesNoCancel) Then Exit Sub
End If End If
UsrCntlKundenZollVollmachten1.btnNeu_Click(sender, e) UsrCntlKundenZollVollmachten1.btnNeu_Click(sender, e)
vollmachtId = UsrCntlKundenZollVollmachten1.vmId
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & UsrCntlKundenZollVollmachten1.vollmachtartId, "", "", Bezeichnung, KdNr) 'MsgBox("Dokument wurde gespeichert!")
Dim path = DS.uploadDataToDATENSERVER("") 'Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & UsrCntlKundenZollVollmachten1.vollmachtartId, "", "", Bezeichnung, KdNr)
'Dim path = DS.uploadDataToDATENSERVER("")
Close() Close()
End Sub End Sub
Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
Close() Close()
End Sub End Sub
Sub initAttachment()
dgvAnhaenge.Rows.Clear()
If ATT.Count = 0 Then
hasAnhaenge = False
PDF_MAIL = "ONLYMAIL_DATENSERVER"
Else
hasAnhaenge = True
PDF_MAIL = "PDF_DATENSERVER"
For Each a In ATT
Dim display = a
If a.Contains("\") Then
Dim sp = a.Split("\")
display = sp(sp.Count - 1)
End If
dgvAnhaenge.Rows.Add({display})
Next
End If
dgvAnhaenge.ClearSelection()
End Sub
End Class End Class

View File

@@ -77,7 +77,7 @@ Public Class VERAGRibbon
Private Sub btnVM_Click(sender As Object, e As RibbonControlEventArgs) Handles btnVM.Click Private Sub btnVM_Click(sender As Object, e As RibbonControlEventArgs) Handles btnVM.Click
' ToDo -> Logik für das Einfügen eines PDFs aus einer Mail in eine Vollmacht im Aviso. ' ToDo -> Logik für das Einfügen eines PDFs aus einer Mail in eine Vollmacht im Aviso.
If LOGIN_OK Then AVISO_Mail_Functions.addMailToAviso_Vollmachten() If LOGIN_OK Then AVISO_Mail_Functions.addMailToAviso_Hauptfenster(True)
End Sub End Sub
@@ -85,7 +85,7 @@ End Class
Public Class AVISO_Mail_Functions Public Class AVISO_Mail_Functions
Shared Sub addMailToAviso_Hauptfenster() Shared Sub addMailToAviso_Hauptfenster(Optional isFormular As Boolean = False)
Try Try
Dim explorer As Outlook.Explorer = Globals.ThisAddIn.Application.ActiveExplorer Dim explorer As Outlook.Explorer = Globals.ThisAddIn.Application.ActiveExplorer
Dim selection As Outlook.Selection = explorer.Selection Dim selection As Outlook.Selection = explorer.Selection
@@ -94,7 +94,7 @@ Public Class AVISO_Mail_Functions
Dim mailItem As Outlook.MailItem = selectedItem Dim mailItem As Outlook.MailItem = selectedItem
mailItem = DirectCast(mailItem, Outlook.MailItem) mailItem = DirectCast(mailItem, Outlook.MailItem)
addMailToAviso(mailItem) addMailToAviso(mailItem, isFormular)
End If End If
Catch ex As Exception Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace) MsgBox(ex.Message & ex.StackTrace)
@@ -143,6 +143,10 @@ Public Class AVISO_Mail_Functions
ElseIf pdf_mail = "PDFMAIL" Then ElseIf pdf_mail = "PDFMAIL" Then
saveMail(mailItem, AvisoId, Bezeichnung,, SendungsId, Art) saveMail(mailItem, AvisoId, Bezeichnung,, SendungsId, Art)
saveAttachment(ATTACHMENTS_LIST, AvisoId, SendungsId, Art, BezAnhang) saveAttachment(ATTACHMENTS_LIST, AvisoId, SendungsId, Art, BezAnhang)
ElseIf pdf_mail = "PDF_DATENSERVER" Then
saveAttachmentOnDatenserver(ATTACHMENTS_LIST, AvisoId, Art, BezAnhang)
ElseIf pdf_mail = "ONLYMAIL_DATENSERVER" Then
saveMailOnDatenserver(mailItem, AvisoId, Bezeichnung,, Art)
Else 'ONLYMAIL Else 'ONLYMAIL
saveMail(mailItem, AvisoId, Bezeichnung,, SendungsId, Art) saveMail(mailItem, AvisoId, Bezeichnung,, SendungsId, Art)
End If End If
@@ -386,6 +390,32 @@ Public Class AVISO_Mail_Functions
Catch ex As Exception Catch ex As Exception
MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ex.Message & ex.StackTrace) MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ex.Message & ex.StackTrace)
End Try End Try
End Sub
Shared Sub saveAttachmentOnDatenserver(ByRef ATTACHMENTS_LIST As List(Of String), AvisoId As Integer, Art As String, BezeichnungAnh As String)
Try
If AvisoId > 0 Then
If ATTACHMENTS_LIST.Count > 1 Then BezeichnungAnh = "" ' nur wenn 1 Anhang wird die Bezeichnung übernommen.
For Each ATT In ATTACHMENTS_LIST
Dim fi As New IO.FileInfo(ATT)
Dim Bezeichnung = BezeichnungAnh
If Bezeichnung = "" Then Bezeichnung = fi.Name
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & AvisoId, "", "", Bezeichnung)
Dim path = DS.uploadDataToDATENSERVER(fi.FullName)
'If AVISO.frmSendungAnhangImport.getFileTypeValid(fi.Extension, typ) Then
' AVISO.frmSendungAnhangImport.saveToDS(AvisoId, Bezeichnung, ATT, Art, typ, ,,, If(SendungsId > 0, SendungsId, Nothing))
Next
End If
Catch ex As Exception
MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ex.Message & ex.StackTrace)
End Try
End Sub End Sub
@@ -577,20 +607,55 @@ Public Class AVISO_Mail_Functions
End Try End Try
End Sub End Sub
Shared Sub saveMailOnDatenserver(mailItem As Outlook.MailItem, AvisoId As Integer, Optional bezeichnung As String = "", Optional saveAttachments As Boolean = True, Optional Art As String = "")
Try
If AvisoId > 0 Then
If bezeichnung = "" Then bezeichnung = Left(Regex.Replace(mailItem.Subject, "[\/\\\:\?\*\<\>\|""]", ""), 100).Replace("""", "").Replace(vbTab, " ") & ".msg"
Dim strTmpPath As String = System.IO.Path.GetTempPath() & bezeichnung & If(bezeichnung.EndsWith(".msg"), "", ".msg")
mailItem.SaveAs(strTmpPath, Outlook.OlSaveAsType.olMSG)
'If AVISO.frmSendungAnhangImport.saveToDS(AvisoId, bezeichnung, strTmpPath, Art, "MSG",,,, If(SendungsId, SendungsId, Nothing)) Then
' End If
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & AvisoId, "", "", bezeichnung)
Dim path = DS.uploadDataToDATENSERVER(strTmpPath)
' Clean up the temporary .MSG file from the user's temporary folder
System.IO.File.Delete(strTmpPath)
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
Finally
If mailItem IsNot Nothing Then
Marshal.ReleaseComObject(mailItem)
End If
End Try
End Sub
Shared Function getAvisoId(ByRef Bezeichnung, ByRef pdf_mail, ByRef SendungsId, ByRef Art, ByRef Att, ByVal isFormular) As Integer Shared Function getAvisoId(ByRef Bezeichnung, ByRef pdf_mail, ByRef SendungsId, ByRef Art, ByRef Att, ByVal isFormular) As Integer
If (isFormular = True) Then If (isFormular = True) Then
Dim frmAvisoFormularAnfuegen As New frmAvisoFormularAnfuegen(Bezeichnung) Dim frmAvisoFormularAnfuegen As New frmAvisoFormularAnfuegen(Bezeichnung)
frmAvisoFormularAnfuegen.ATT = Att
If frmAvisoFormularAnfuegen.ShowDialog = DialogResult.OK Then If frmAvisoFormularAnfuegen.ShowDialog = DialogResult.OK Then
Dim AvisoId = frmAvisoFormularAnfuegen.vollmachtId
SendungsId = frmAvisoFormularAnfuegen.SendungsId SendungsId = frmAvisoFormularAnfuegen.SendungsId
Bezeichnung = frmAvisoFormularAnfuegen.Bezeichnung Bezeichnung = frmAvisoFormularAnfuegen.Bezeichnung
pdf_mail = frmAvisoFormularAnfuegen.PDF_MAIL pdf_mail = frmAvisoFormularAnfuegen.PDF_MAIL
Att = frmAvisoFormularAnfuegen.ATT Att = frmAvisoFormularAnfuegen.ATT
Return 1 Return AvisoId
Exit Function
End If End If
Return -1
Exit Function
End If End If
Dim frmAvisoAnfügen As New frmAvisoAnfuegen(Bezeichnung) Dim frmAvisoAnfügen As New frmAvisoAnfuegen(Bezeichnung)
@@ -610,22 +675,4 @@ Public Class AVISO_Mail_Functions
End Function End Function
Shared Sub addMailToAviso_Vollmachten()
Try
Dim explorer As Outlook.Explorer = Globals.ThisAddIn.Application.ActiveExplorer
Dim selection As Outlook.Selection = explorer.Selection
If selection.Count > 0 Then
Dim selectedItem = selection(1)
Dim mailItem As Outlook.MailItem = selectedItem
mailItem = DirectCast(mailItem, Outlook.MailItem)
addMailToAviso(mailItem, True)
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End Sub
End Class End Class