Imports System.Collections Imports System.Data Imports System.Diagnostics.Tracing Imports System.Drawing Imports System.Net Imports System.Windows.Forms Imports System.Windows.Forms.VisualStyles.VisualStyleElement.Button Imports Microsoft.Office.Tools.Ribbon Imports SDL Imports VERAG_PROG_ALLGEMEIN Public Class frmAvisoFormularAnfuegen Public KdNr As Integer = -1 Public AvisoId As Integer = -1 Dim vollmachtartId As Integer = -1 Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Public SendungsId = -1 Public Bezeichnung = "" Public PDF_MAIL = "" Public enableOverwritting As Boolean = False Public ATTTemp As List(Of String) Public ATT As List(Of String) Public hasAnhaenge As Boolean = False Public button As RibbonButton Dim UsrCntlKundenZollVollmachten1 As usrCntlKundenZollVollmachten Dim UsrCntlVertraege1 As usrcntlVertraege Dim UsrCntlGestellungsgarantien1 As usrcntlGestellungsgarantien Dim frmDefaultSize As Size = New Size(535, 750) Dim dgvAnhaengeSize As Size = New Size(495, 30) Dim avisoIdSet As Boolean = False Sub New() InitializeComponent() End Sub Sub New(Bezeichnung, sender) InitializeComponent() Me.Bezeichnung = Bezeichnung button = sender initForm() End Sub Sub initForm() Me.pnlDetails.AutoSizeMode = AutoSizeMode.GrowAndShrink Me.pnlDetails.AutoSize = True Select Case button.Name Case "btnVollmachten" UsrCntlKundenZollVollmachten1 = New usrCntlKundenZollVollmachten() UsrCntlKundenZollVollmachten1.AutoSize = False Me.pnlDetails.Controls.Add(UsrCntlKundenZollVollmachten1) Me.Text = "Vollmachten einfügen" Case "btnVertraege" UsrCntlVertraege1 = New usrcntlVertraege() AddHandler UsrCntlVertraege1.clickOK, AddressOf btnOK_Click Me.pnlDetails.Controls.Add(UsrCntlVertraege1) Me.Text = "Verträge einfügen" Case "btnGestellungsgarantien" UsrCntlGestellungsgarantien1 = New usrcntlGestellungsgarantien() AddHandler UsrCntlGestellungsgarantien1.clickOK, AddressOf btnOK_Click Me.Text = "Gestellungsgarantien einfügen" Me.pnlDetails.Controls.Add(UsrCntlGestellungsgarantien1) Case Else MsgBox("Funktion nicht unterstützt!") Me.DialogResult = DialogResult.Cancel Me.Close() End Select End Sub Private Sub frmAvisoFormularAnfuegen_Load(sender As Object, e As EventArgs) Handles MyBase.Load initAttachment() KdSearchBox.initKdBox(Me) If hasAnhaenge Then pbAnhaenge.Image = My.Resources.pdf End Sub Private Sub KdSearchBox_TextChanged(sender As Object, e As EventArgs) Handles KdSearchBox.TextChanged If KdSearchBox.KdNr_value > 0 AndAlso KdSearchBox.KdNr IsNot Nothing Then KdNr = KdSearchBox.KdNr_value Dim AD = KdSearchBox.KdData_ADRESSEN Dim KD = KdSearchBox.KdData_KUNDE init() End If End Sub Sub init() If KdNr > 0 Then Select Case button.Name Case "btnVollmachten" initVollmachtarten(KdNr) Case "btnVertraege" UsrCntlVertraege1.initDGVVertraege(KdNr) Case "btnGestellungsgarantien" UsrCntlGestellungsgarantien1.initDGVGestGarantie(KdNr) End Select Show() End If End Sub Sub initVollmachtarten(kdNr As Integer) cbVMTypen.fillWithSQL("SELECT DISTINCT(art.kdvma_Id), art.kdvma_Bezeichnung FROM [tblKundenVollmachtenArt] as art LEFT JOIN (select * from [tblKundenVollmachten] where [kdvm_KundenNr]='" & kdNr & "' ) as abf on art.[kdvma_Id]=abf.[kdvm_kdvmaId] WHERE art.kdvma_visible=1 AND art.kdvma_Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "'", False, "FMZOLL", True) End Sub Sub initUsrCntrlKundenvollmachten(vollmachtartId) UsrCntlKundenZollVollmachten1.init(KdNr, vollmachtartId) End Sub Private Sub KdSearchBox_PropertyChanged(sender As Object, e As System.ComponentModel.PropertyChangedEventArgs) Handles KdSearchBox.PropertyChanged If KdSearchBox.KdNr_value > 0 AndAlso KdSearchBox.KdData_KUNDE IsNot Nothing AndAlso KdSearchBox.KdData_ADRESSEN IsNot Nothing Then KdNr = KdSearchBox.KdNr Dim AD = KdSearchBox.KdData_ADRESSEN Dim KD = KdSearchBox.KdData_KUNDE init() End If End Sub Private Sub cbVMTypen_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbVMTypen.SelectedValueChanged If cbVMTypen._value <> "" Then vollmachtartId = cbVMTypen._value initUsrCntrlKundenvollmachten(vollmachtartId) End If End Sub Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click If Not checkMandatoryFields() Then DialogResult = DialogResult.None Exit Sub End If If avisoIdSet And Not button.Name = "btnVollmachten" Then DialogResult = DialogResult.OK Exit Sub End If Select Case button.Name Case "btnVertraege" UsrCntlVertraege1.initDGVVertraege(KdNr) If UsrCntlVertraege1.dgvVertraege.SelectedRows.Count < 1 Then MsgBox("Bitte einen Vertrag markieren") End If Case "btnGestellungsgarantien" UsrCntlGestellungsgarantien1.initDGVGestGarantie(KdNr) If UsrCntlGestellungsgarantien1.dgvGestGarantie.SelectedRows.Count < 1 Then MsgBox("Bitte eine Gestellung markieren") End If End Select If Not hasAnhaenge Then If Not vbYes = MsgBox("Diese Email besitzt keinen Anhang!" & vbCrLf & "Soll die Email als Anhang gespeichert werden?", vbYesNoCancel) Then Close() DialogResult = DialogResult.None Exit Sub End If End If If ATT IsNot Nothing Then If ATT.Count > 1 Then ATT = ATTTemp If dgvAnhaenge.SelectedCells.Count = 0 Then MsgBox("Bitte Anhang markieren!") DialogResult = DialogResult.None Exit Sub Else RemoveNotUsedAttachmentOnList(ATT, dgvAnhaenge.SelectedCells.Item(0).RowIndex) End If End If End If Select Case button.Name Case "btnVollmachten" UsrCntlKundenZollVollmachten1.btnNeu_Click(sender, e) AvisoId = UsrCntlKundenZollVollmachten1.vmId Close() Case "btnVertraege" If sender.Text = "Hinzufügen" Then setAvisoIdForVertrage() ElseIf UsrCntlVertraege1.dgvVertraege.SelectedRows.Count = 1 Then For Each row As DataGridViewRow In UsrCntlVertraege1.dgvVertraege.SelectedRows If row.Cells("kv_datenarchivId").Value Is DBNull.Value Or row.Cells("kv_datenarchivId").Value Is Nothing Then setAvisoIdForVertrage() Else Dim response = MsgBox("Der markierte Vertrag besitzt bereit einen Anhang!" & vbCrLf & "Soll der Anhang ersetzt werden?", vbYesNoCancel) If response = vbYes Then setAvisoIdForVertrage() enableOverwritting = True ElseIf response = vbCancel Then DialogResult = DialogResult.None Exit Sub Else Close() End If End If Next Me.DialogResult = DialogResult.OK Close() Else Close() End If Close() Case "btnGestellungsgarantien" If sender.Text = "Hinzufügen" Then setAvisoIdForGestellungen() Me.DialogResult = DialogResult.OK ElseIf UsrCntlGestellungsgarantien1.dgvGestGarantie.SelectedRows.Count = 1 Then For Each row As DataGridViewRow In UsrCntlGestellungsgarantien1.dgvGestGarantie.SelectedRows If row.Cells("kv_datenarchivId").Value Is DBNull.Value Or row.Cells("kv_datenarchivId").Value Is Nothing Then setAvisoIdForGestellungen() Else Dim response = MsgBox("Die markierte Gestellungsgarantie besitzt bereit einen Anhang!" & vbCrLf & "Soll der Anhang ersetzt werden?", vbYesNoCancel) If response = vbYes Then setAvisoIdForVertrage() enableOverwritting = True ElseIf response = vbCancel Then DialogResult = DialogResult.None Exit Sub Else Close() End If End If Next Me.DialogResult = DialogResult.OK Close() Else Close() End If End Select End Sub Private Sub setAvisoIdForGestellungen() If UsrCntlGestellungsgarantien1.Gid > 0 Then AvisoId = UsrCntlGestellungsgarantien1.Gid ElseIf UsrCntlGestellungsgarantien1.dgvGestGarantie.SelectedRows.Count = 1 Then AvisoId = UsrCntlGestellungsgarantien1.dgvGestGarantie.SelectedRows(0).Cells("gg_id").Value End If End Sub Private Sub setAvisoIdForVertrage() If UsrCntlVertraege1.Vid > 0 Then AvisoId = UsrCntlVertraege1.Vid ElseIf UsrCntlVertraege1.dgvVertraege.SelectedRows.Count = 1 Then AvisoId = UsrCntlVertraege1.dgvVertraege.SelectedRows(0).Cells("kv_id").Value End If If AvisoId > 0 Then avisoIdSet = True End If End Sub Private Sub RemoveNotUsedAttachmentOnList(ByRef a As List(Of String), tmpIndex As Integer) If (a IsNot Nothing) AndAlso (a.Count > 1) Then Dim list As New List(Of String) Dim selectedItem As Object = a.Item(tmpIndex) list.Add(selectedItem) a = list End If End Sub Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click Close() End Sub Sub initAttachment() dgvAnhaenge.Rows.Clear() If ATT Is Nothing Then Exit Sub End If If ATT.Count = 0 Then hasAnhaenge = False PDF_MAIL = "ONLYMAIL_DATENSERVER" Else hasAnhaenge = True If button.Name = "btnVollmachten" Then PDF_MAIL = "PDF_DATENSERVER" Else PDF_MAIL = "ONLYPDF_DATENSERVER" End If 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 ATTTemp = ATT End If Dim addHeightfrm = 180 Dim addHeightdgv = 50 If dgvAnhaenge.Rows.Count > 1 Then dgvAnhaenge.Visible = True lblMultiAttachements.Visible = True Select Case button.Name Case "btnVollmachten" Me.Size = New Size(frmDefaultSize.Width, frmDefaultSize.Height + addHeightdgv) pnlDetails.Size = New Size(pnlDetails.Width, pnlDetails.Height + addHeightdgv) dgvAnhaenge.Size = New Size(dgvAnhaengeSize.Width, dgvAnhaengeSize.Height + addHeightdgv) Case "btnVertraege" Me.Size = New Size(frmDefaultSize.Width, frmDefaultSize.Height - addHeightfrm) pnlDetails.Size = New Size(pnlDetails.Width, pnlDetails.Height - addHeightfrm) dgvAnhaenge.Size = New Size(dgvAnhaengeSize.Width, dgvAnhaengeSize.Height + addHeightdgv) Case "btnGestellungsgarantien" Me.Size = New Size(frmDefaultSize.Width, frmDefaultSize.Height - addHeightfrm) pnlDetails.Size = New Size(pnlDetails.Width, pnlDetails.Height - addHeightfrm) dgvAnhaenge.Size = New Size(dgvAnhaengeSize.Width, dgvAnhaengeSize.Height + addHeightdgv) End Select Else dgvAnhaenge.Visible = False lblMultiAttachements.Visible = False Select Case button.Name Case "btnVollmachten" Me.Size = frmDefaultSize dgvAnhaenge.Size = dgvAnhaengeSize Case "btnVertraege" pnlDetails.Size = New Size(pnlDetails.Width, pnlDetails.Height - addHeightfrm - addHeightdgv) Me.Size = New Size(frmDefaultSize.Width, frmDefaultSize.Height - addHeightfrm) dgvAnhaenge.Size = dgvAnhaengeSize Case "btnGestellungsgarantien" pnlDetails.Size = New Size(pnlDetails.Width, pnlDetails.Height - addHeightfrm - addHeightdgv) Me.Size = New Size(frmDefaultSize.Width, frmDefaultSize.Height - addHeightfrm) dgvAnhaenge.Size = dgvAnhaengeSize End Select End If dgvAnhaenge.ClearSelection() End Sub Private Function checkMandatoryFields() As Boolean Dim valid = False If KdSearchBox.KdNr_value = -1 Then lblWarning.Text = "Kunde auswählen!" Return valid End If Select Case button.Name Case "btnVollmachten" If cbVMTypen._value = "" Then lblWarning.Text = "Vollmachttyp auswählen" Return valid End If If UsrCntlKundenZollVollmachten1.txtGueltigVon.Text = "" Then lblWarning.Text = "Gültig von-Datum hinterlegen!" Return valid End If Case Else End Select lblWarning.Text = "" valid = True Return valid End Function Private Sub frmAvisoFormularAnfuegen_Shown(sender As Object, e As EventArgs) Handles Me.Shown KdSearchBox.Focus() Label1.Visible = cAllgemein.TESTSYSTEM If button.Name = "btnVollmachten" Then lblVMId.Visible = True cbVMTypen.Visible = True Else lblVMId.Visible = False cbVMTypen.Visible = False End If End Sub Private Sub pnlDetails_ControlAdded(sender As Object, e As ControlEventArgs) For Each control As Control In Controls pnlDetails.Size = control.Size Next End Sub End Class