Files
SDL/SDL/kunden/frmKundenZOLLVollmachten.vb

599 lines
22 KiB
VB.net

Imports System.Web.UI.WebControls.Expressions
Imports System.Windows
Imports System.Windows.Interop
Imports com.sun.org.apache.xpath.internal.functions
Imports DAKOSY_Worker.TR100
Imports DocumentFormat.OpenXml.Drawing
Imports DocumentFormat.OpenXml.Drawing.Charts
'Imports DocumentFormat.OpenXml.Wordprocessing
Imports GrapeCity.ActiveReports
Imports GrapeCity.ActiveReports.Design.DdrDesigner.Services
Imports GrapeCity.ActiveReports.Design.QueryDesignerImpl.SqlParser.Irony.Parsing
Imports javax.validation.constraints
Imports sun.misc
Imports TAlex.WPF.Helpers
Imports SDL.EORI
Imports System.Drawing
Imports System.Runtime.DesignerServices
Public Class frmKundenZOLLVollmachten
Public kdnr As Integer = -1
Public filePath As String
Public erhalten As Boolean = False
Public archiviert As Boolean = False
Public geloescht As Boolean = False
Dim id As Integer = -1
'Dim cDATENSERVER As New VERAG_PROG_ALLGEMEIN.cDATENSERVER
Dim ksql As New kundenSQL
Dim vollmachtartId As Integer
Dim emailId As Integer
Dim vermerk As String = ""
Dim vmId As Integer = -1
Dim currentVM As New VERAG_PROG_ALLGEMEIN.cKundenVollmachten
Sub New(kdnr, vollmachtartId)
Me.InitializeComponent()
Me.kdnr = kdnr
Me.vollmachtartId = vollmachtartId
End Sub
Sub New(kdnr, vmaNr, filePath)
Me.InitializeComponent()
Me.erhalten = True
Me.kdnr = kdnr
Me.filePath = filePath
Me.vollmachtartId = vollmachtartId
'UI-Elements
MyComboBox1.Visible = True
Me.txtGueltigVon.Text = Now.ToShortDateString
Me.txtGueltigBis.Text = Nothing
End Sub
Private Sub frmKundenZOLLVollmachten_Load(sender As Object, e As EventArgs) Handles Me.Load
MyComboBox1.fillWithSQL("SELECT [kdvma_Id],[kdvma_Bezeichnung] FROM [tblKundenVollmachtenArt]", False, "FMZOLL", False)
Me.MyComboBox1._value = vollmachtartId
initDGVVollmachtenEmbedded(False)
Dim FirmaTmp = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_FREMD_VERAGIMEX", "SDL") Or VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("FAKTURIERUNG_VERAGIMEX", "SDL") Then
FirmaTmp = "VERAGIMEX"
End If
Select Case FirmaTmp
Case "UNISPED", "IMEX", "VERAGIMEX", "FRONTOFFICE"
Panel1.Visible = True
Case Else
Panel1.Visible = True
'Me.Height = Me.Height - Panel1.Height
End Select
End Sub
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
End Sub
Sub saveVM(VM As VERAG_PROG_ALLGEMEIN.cKundenVollmachten)
lblWarning.Visible = False
If MyComboBox1._value = "" Then Me.DialogResult = Windows.Forms.DialogResult.None : Exit Sub
VM.kdvm_vermerk = txtVermerk.Text
VM.kdvm_kdvmaId = vollmachtartId
VM.kdvm_KundenNr = kdnr
VM.kdvm_archiviert = cbxArchiviert.Checked
If txtGueltigVon.Text = "" Or Not IsDate(txtGueltigVon.Text) Then
txtGueltigVon.ForeColor = Color.Red
lblWarning.Visible = True
Me.DialogResult = Windows.Forms.DialogResult.None
Exit Sub
Else
VM.kdvm_erhalten_Datum = txtGueltigVon.Text
VM.kdvm_gueltig_ab = txtGueltigVon.Text
VM.kdvm_erhalten = True
End If
If txtGueltigBis.Text IsNot "" And Not IsDate(txtGueltigBis.Text) Then
txtGueltigBis.ForeColor = Color.Red
Me.DialogResult = Windows.Forms.DialogResult.None
Exit Sub
ElseIf txtGueltigBis.Text = "" Then
VM.kdvm_gueltig_bis = Nothing
Else
VM.kdvm_gueltig_bis = txtGueltigBis.Text
End If
vollmachtenArchivieren()
If Not VM.SAVE() Then
Me.DialogResult = Windows.Forms.DialogResult.None
End If
If dgvVollmachtenEmbedded.Enabled = False Then
dgvVollmachtenEmbedded.Enabled = True
End If
dgvVollmachtenEmbedded.GetOrder()
initDGVVollmachtenEmbedded(True)
dgvVollmachtenEmbedded.SetOrder()
End Sub
Private Sub lblNoPDFavailable_Click(sender As Object, e As EventArgs) Handles lblPDFavailable.Click
If currentVM.kdvm_datenarchivId > 0 Then
' cDATENSERVER.openDataTMPByDatenarchivId(id)
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(currentVM.kdvm_datenarchivId)
DS.OPEN_SINGLE()
End If
End Sub
'Private Sub cbxErhaltenAm_CheckedChanged(sender As Object, e As EventArgs) Handles cbxErhaltenAm.CheckedChanged
' ' MyTextBox1.Enabled = sender.checked
'End Sub
'Private Sub cbxErhaltenAm_CheckedChanged(sender As Object, e As EventArgs) Handles cbxErhaltenAm.Click
' 'wird nicht mehr verwendet
' If Not sender.checked Then
' txtGueltigVon.Text = ""
' Else
' txtGueltigVon.Text = Now.ToShortDateString
' End If
'End Sub
Private Sub MyTextBox1_TextChanged(sender As Object, e As EventArgs) Handles txtGueltigVon.TextChanged
txtGueltigVon.ForeColor = Color.Black
cbxErhaltenAm.Checked = (txtGueltigVon.Text <> "")
End Sub
Private Sub MyTextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles txtGueltigVon.KeyDown
If e.KeyCode = Keys.Return Then
btnOK.PerformClick()
End If
If e.KeyCode = Keys.Escape Then
Button1.PerformClick()
End If
End Sub
Private Sub MyComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles MyComboBox1.SelectedIndexChanged
lbl.Text = MyComboBox1.Text
End Sub
Private Sub frmKundenZOLLVollmachten_Shown(sender As Object, e As EventArgs) Handles Me.Shown
txtGueltigVon.Focus()
If txtGueltigVon.Text <> "" Then
cbxErhaltenAm.Checked = True
txtGueltigVon.SelectAll()
End If
End Sub
Sub initDGVVollmachtenEmbedded(enalblePanel As Boolean)
Dim where = " And art.kdvma_Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "'"
If dgvVollmachtenEmbedded.Enabled = False Then
dgvVollmachtenEmbedded.Enabled = True
End If
pnlDetails.Enabled = enalblePanel
With dgvVollmachtenEmbedded
.Columns.Clear()
.DataSource = ksql.loadDgvBySql("SELECT abf.kdvm_Id,art.kdvma_Id, art.kdvma_Bezeichnung, abf.[kdvm_KundenNr], abf.[kdvm_erhalten],abf.[kdvm_erhalten_Datum], abf.kdvm_datenarchivId,abf.kdvm_Info, abf.[kdvm_archiviert], abf.[kdvm_gueltig_bis], abf.[kdvm_vermerk], abf.[kdvm_geloescht]" &
" FROM [tblKundenVollmachtenArt] as art " &
" INNER JOIN (select * from [tblKundenVollmachten]) as abf on art.[kdvma_Id]=abf.[kdvm_kdvmaId]" &
" WHERE art.kdvma_visible=1 AND abf.kdvm_erhalten = 1 AND ISNULL(abf.[kdvm_geloescht],0) != 1 AND [kdvm_KundenNr]='" & kdnr & "' AND [kdvm_kdvmaId]='" & vollmachtartId & "'" & where &
" ORDER BY kdvm_archiviert asc, abf.kdvm_gueltig_bis asc, abf.kdvm_erhalten_Datum desc ", "FMZOLL")
' .RowTemplate.Height = 30
.Columns("kdvm_Id").Visible = False
.Columns("kdvma_Id").Visible = False
.Columns("kdvm_KundenNr").Visible = False
.Columns("kdvm_datenarchivId").Visible = False
.Columns("kdvma_Bezeichnung").Visible = False
.Columns("kdvma_Bezeichnung").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("kdvma_Bezeichnung").HeaderText = "Bezeichnung"
.Columns("kdvm_erhalten").Width = 50
.Columns("kdvm_erhalten").HeaderText = "Erhalten"
.Columns("kdvm_erhalten").Visible = False
.Columns("kdvm_erhalten").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
.Columns("kdvm_erhalten_Datum").Width = 100
.Columns("kdvm_erhalten_Datum").HeaderText = "Gültig von"
.Columns("kdvm_erhalten_Datum").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
.Columns("kdvm_Info").Width = 200
.Columns("kdvm_Info").HeaderText = "Info"
.Columns("kdvm_Info").Visible = False
.Columns("kdvm_gueltig_bis").Visible = True
.Columns("kdvm_gueltig_bis").Width = 100
.Columns("kdvm_gueltig_bis").HeaderText = "Gültig bis"
.Columns("kdvm_gueltig_bis").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
.Columns("kdvm_archiviert").Visible = True
.Columns("kdvm_archiviert").Width = 60
.Columns("kdvm_archiviert").HeaderText = "Archiviert"
.Columns("kdvm_archiviert").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
.Columns("kdvm_vermerk").MinimumWidth = 100
.Columns("kdvm_vermerk").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("kdvm_vermerk").HeaderText = "Vermerk"
.Columns("kdvm_vermerk").Visible = True
.Columns("kdvm_geloescht").Visible = False
If True Then
Dim c As New DataGridViewImageColumn
c.Name = "clmnPDF" : c.HeaderText = "PDF"
c.Image = My.Resources.pdf_gray : c.ImageLayout = DataGridViewImageCellLayout.Zoom
c.Width = 40 : c.DefaultCellStyle.Padding = New Padding(2) : c.DefaultCellStyle.BackColor = Color.White
c.DefaultCellStyle.Tag = "PDF anzeigen"
.Columns.Add(c)
End If
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "UNISPED", "IMEX"
'.Columns("clmnTherefore").Visible = False
.Columns("clmnPDF").Visible = True
Case "FRONTOFFICE"
'.Columns("clmnTherefore").Visible = True
.Columns("clmnPDF").Visible = True
Case Else
'.Columns("clmnTherefore").Visible = True
.Columns("clmnPDF").Visible = True
End Select
For Each r As DataGridViewRow In .Rows
If r.Cells("kdvm_erhalten").Value Is DBNull.Value Then
r.DefaultCellStyle.ForeColor = Color.Gray
ElseIf CBool(r.Cells("kdvm_erhalten").Value) = False Then
r.DefaultCellStyle.ForeColor = Color.Gray
ElseIf IsDate(r.Cells("kdvm_erhalten_Datum").Value) AndAlso CDate(r.Cells("kdvm_erhalten_Datum").Value) < Now.AddYears(-2) Then
r.DefaultCellStyle.ForeColor = Color.Red
End If
If True Then
If r.Cells("kdvm_datenarchivId").Value IsNot DBNull.Value AndAlso CInt(r.Cells("kdvm_datenarchivId").Value) > 0 Then
DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf
End If
End If
Next
End With
End Sub
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles cbxVMarchivieren.CheckedChanged
'If vbYes = MsgBox("Sollen die bestehenden Vollmachten archiviert werden?", vbYesNoCancel) Then
' Dim succeeded = ksql.setVollmachtarchivieren(kdnr, MyComboBox1._value)
' If succeeded = True Then
' MsgBox("Bestehende Vollmachten wurden archiviert.")
' cbxVMarchivieren.Enabled = False
' End If
'End If
End Sub
Private Sub dgvvollmachtenembedded_cellmouseclick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles dgvVollmachtenEmbedded.CellMouseClick
'für die Ermittlung des Contextmenüs -> VM löschen
If e.Button = Windows.Forms.MouseButtons.Right Then
If dgvVollmachtenEmbedded.SelectedRows.Count > 0 Then
ContextMenuStrip1.Show(Cursor.Position)
End If
End If
End Sub
Private Sub ToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem1.Click
'Contextmenü -> Datensatz ändern -> wird nicht verwendet
If dgvVollmachtenEmbedded.SelectedRows.Count = 1 Then
Dim VM As New VERAG_PROG_ALLGEMEIN.cKundenVollmachten(dgvVollmachtenEmbedded.SelectedRows(0).Cells("kdvm_Id").Value)
loadChangedVMToPanel(True, VM)
setSaveButton()
End If
End Sub
Private Sub loadChangedVMToPanel(enablePanel As Boolean, VM As VERAG_PROG_ALLGEMEIN.cKundenVollmachten)
pnlDetails.Enabled = enablePanel
cbxArchiviert.Checked = VM.kdvm_archiviert
txtVermerk.Text = VM.kdvm_vermerk
txtGueltigVon.Text = VM.kdvm_erhalten_Datum
txtGueltigBis.Text = VM.kdvm_gueltig_bis
checkEmailIsPresent()
checkPDFisPresent()
setOKButton()
'Listener für Änderungen im Detail-Panel
For Each c As Control In pnlDetails.Controls
If TypeOf (c) Is CheckBox Then
AddHandler CType(c, CheckBox).CheckedChanged, AddressOf SomethingChanged
ElseIf TypeOf (c) Is TextBox Then
AddHandler CType(c, TextBox).TextChanged, AddressOf SomethingChanged
End If
Next
End Sub
Private Sub SomethingChanged(sender As Object, e As EventArgs)
setSaveButton()
End Sub
Sub checkPDFisPresent()
If currentVM.kdvm_datenarchivId > 0 Then
picDeletePDF.Visible = True
picPDF.Visible = True
picPDF.Image = My.Resources.pdf
picPDF.Cursor = Cursors.Default
Else
picDeletePDF.Visible = False
picPDF.Visible = True
picPDF.Image = My.Resources.pdf_gray
picPDF.Cursor = Cursors.Hand
End If
End Sub
Sub checkEmailIsPresent()
If currentVM.kdvm_emailId > 0 Then
picDeleteEmail.Visible = True
picEmail.Visible = True
picEmail.Image = My.Resources.email_big1
picEmail.Cursor = Cursors.Default
Else
picDeleteEmail.Visible = False
picEmail.Visible = True
picEmail.Image = My.Resources.email_big_gray
picEmail.Cursor = Cursors.Hand
End If
End Sub
Private Sub dgvVollmachtenEmbedded_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvVollmachtenEmbedded.CellDoubleClick
If dgvVollmachtenEmbedded.Columns(e.ColumnIndex).Name = "clmnPDF" Then
If dgvVollmachtenEmbedded.Rows(e.RowIndex).Cells("kdvm_datenarchivId").Value IsNot DBNull.Value AndAlso CInt(dgvVollmachtenEmbedded.Rows(e.RowIndex).Cells("kdvm_datenarchivId").Value) > 0 Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dgvVollmachtenEmbedded.Rows(e.RowIndex).Cells("kdvm_datenarchivId").Value)
DS.OPEN_SINGLE(True)
End If
End If
End Sub
Private Sub LöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles LöschenToolStripMenuItem.Click
'Contextmenü -> Löschen der VM
If dgvVollmachtenEmbedded.SelectedRows.Count = 1 Then
If vbYes = MsgBox("Soll diese Vollmacht gelöscht werden?", vbYesNoCancel) Then
Dim vollmacht = New VERAG_PROG_ALLGEMEIN.cKundenVollmachten(dgvVollmachtenEmbedded.SelectedRows(0).Cells("kdvm_Id").Value)
vollmacht.kdvm_geloescht = True
If vollmacht.SAVE = True Then
MsgBox("Bestehende Vollmacht wurde gelöscht.")
initDGVVollmachtenEmbedded(False)
End If
End If
End If
End Sub
Private Sub btnNeu_Click(sender As Object, e As EventArgs) Handles btnNeu.Click
'Neuanlage einer VM
dgvVollmachtenEmbedded.ClearSelection()
If dgvVollmachtenEmbedded.Rows.Count > 0 Then
cbxVMarchivieren.Visible = True
cbxVMarchivieren.Checked = True
End If
dgvVollmachtenEmbedded.Enabled = False
currentVM = New VERAG_PROG_ALLGEMEIN.cKundenVollmachten With {
.kdvm_KundenNr = kdnr,
.kdvm_kdvmaId = vollmachtartId,
.kdvm_Info = "",
.kdvm_erhalten = False,
.kdvm_archiviert = False,
.kdvm_datenarchivId = -1,
.kdvm_erhalten_Datum = Now.ToShortDateString,
.kdvm_emailId = -1
}
loadChangedVMToPanel(True, currentVM)
hideAttachementControl()
setSaveButton()
End Sub
Private Sub vollmachtenArchivieren()
If cbxVMarchivieren.Checked = False Then Exit Sub
Dim count As Integer = 0
With dgvVollmachtenEmbedded
For Each r As DataGridViewRow In .Rows
Dim VMindex = r.Cells("kdvm_Id").Value
If r.Cells("kdvm_archiviert").Value <> True Then
count += 1
Dim currentVollmacht = New VERAG_PROG_ALLGEMEIN.cKundenVollmachten(VMindex)
currentVollmacht.kdvm_archiviert = True
currentVollmacht.SAVE()
End If
Next
If count > 0 Then
MsgBox("Bestehende Vollmachten wurden archiviert.")
End If
End With
cbxVMarchivieren.Visible = False
cbxVMarchivieren.Checked = False
End Sub
Private Sub setSaveButton()
btnOK.Visible = False
btnSave.Visible = True
End Sub
Private Sub dgvVollmachtenEmbedded_SelectionChanged(sender As Object, e As EventArgs) Handles dgvVollmachtenEmbedded.SelectionChanged
If dgvVollmachtenEmbedded.SelectedRows.Count > 0 Then
Dim rowindex = dgvVollmachtenEmbedded.SelectedRows(0).Index
currentVM = New VERAG_PROG_ALLGEMEIN.cKundenVollmachten(dgvVollmachtenEmbedded.SelectedRows(0).Cells("kdvm_id").Value)
loadChangedVMToPanel(True, currentVM)
If dgvVollmachtenEmbedded.Enabled = False Then Exit Sub
vmId = dgvVollmachtenEmbedded.SelectedRows(0).Cells("kdvm_id").Value
End If
End Sub
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
saveVM(currentVM)
setOKButton()
End Sub
Private Sub setOKButton()
btnOK.Visible = True
btnSave.Visible = False
End Sub
Private Sub picPDF_Click(sender As Object, e As EventArgs) Handles picPDF.Click
If Me.MyComboBox1._value < 0 Then Exit Sub
Dim DS As Object
If currentVM.kdvm_datenarchivId > 0 Then
DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER(currentVM.kdvm_datenarchivId)
DS.OPEN_SINGLE()
'MsgBox("Open PDF")
Else
DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & vmId, "", "", "PDF_" & MyComboBox1.Text, kdnr)
Dim path = DS.uploadDataToDATENSERVERFileDialog()
If path <> "" Then
currentVM.kdvm_datenarchivId = DS.da_id
End If
picDeletePDF.Visible = True = (currentVM.kdvm_datenarchivId > 0)
saveVM(currentVM)
End If
dgvVollmachtenEmbedded.GetOrder()
initDGVVollmachtenEmbedded(True)
dgvVollmachtenEmbedded.SetOrder()
End Sub
Private Sub picDeletePDF_Click(sender As Object, e As EventArgs) Handles picDeletePDF.Click
lblPDFavailable.Cursor = Cursors.WaitCursor
If (currentVM.kdvm_datenarchivId > 0) Then
If vbYes = MsgBox("Möchten Sie das PDF wirklich löschen?", vbYesNoCancel) Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(currentVM.kdvm_datenarchivId)
DS.DELETE_COMPLETE()
currentVM.kdvm_datenarchivId = -1
If currentVM.SAVE Then
currentVM.kdvm_datenarchivId = -1 : picDeletePDF.Visible = False
picPDF.Image = My.Resources.pdf_gray
End If
End If
End If
lblPDFavailable.Cursor = Cursors.Default
dgvVollmachtenEmbedded.GetOrder()
initDGVVollmachtenEmbedded(True)
dgvVollmachtenEmbedded.SetOrder()
End Sub
Private Sub picEmail_Click(sender As Object, e As EventArgs) Handles picEmail.Click
If Me.MyComboBox1._value < 0 Then Exit Sub
Dim DS As Object
If currentVM.kdvm_emailId > 0 Then
DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER(currentVM.kdvm_emailId)
DS.OPEN_SINGLE()
'MsgBox("Open EMail")
Else
DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & vmId, "", "", "Email_" & MyComboBox1.Text, kdnr)
Dim path = DS.uploadDataToDATENSERVERFileDialog()
If path <> "" Then
currentVM.kdvm_emailId = DS.da_id
End If
picDeleteEmail.Visible = True = (currentVM.kdvm_emailId > 0)
saveVM(currentVM)
End If
dgvVollmachtenEmbedded.GetOrder()
initDGVVollmachtenEmbedded(True)
dgvVollmachtenEmbedded.SetOrder()
End Sub
Private Sub picDeleteEmail_Click(sender As Object, e As EventArgs) Handles picDeleteEmail.Click
lblPDFavailable.Cursor = Cursors.WaitCursor
If (currentVM.kdvm_emailId > 0) Then
If vbYes = MsgBox("Möchten Sie die Email wirklich löschen?", vbYesNoCancel) Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(currentVM.kdvm_emailId)
DS.DELETE_COMPLETE()
currentVM.kdvm_emailId = -1
If currentVM.SAVE Then
currentVM.kdvm_emailId = -1 : picDeleteEmail.Visible = False
picEmail.Image = My.Resources.email_big_gray
End If
End If
End If
lblPDFavailable.Cursor = Cursors.Default
dgvVollmachtenEmbedded.GetOrder()
initDGVVollmachtenEmbedded(True)
dgvVollmachtenEmbedded.SetOrder()
End Sub
Sub hideAttachementControl()
picDeletePDF.Visible = False
picPDF.Visible = False
picDeleteEmail.Visible = False
picEmail.Visible = False
End Sub
End Class