From b6e7d634b71535bd5df45e7c4065f3cc6fdd8a1f Mon Sep 17 00:00:00 2001 From: ms Date: Wed, 21 Oct 2020 08:51:48 +0200 Subject: [PATCH 01/38] Aviso-Updates --- VERAGAddIn/VERAGAddIn.vbproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index 4b971f2..8da183a 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -36,7 +36,7 @@ \\ftps.verag.ag\g\ftp\programme\VERAGAddin\ http://ftps.verag.ag/VERAGAddin/ de - 1.0.1.89 + 1.0.1.93 true true 0 From 19aff8dd13a1a5774e94e3ebb56028d92e604845 Mon Sep 17 00:00:00 2001 From: ms Date: Wed, 3 Feb 2021 13:41:18 +0100 Subject: [PATCH 02/38] Aviso und SDL Update --- VERAGAddIn/VERAGAddIn.vbproj | 2 +- VERAGAddIn/rbnVERAG.vb | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index 8da183a..1a0e9a9 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -36,7 +36,7 @@ \\ftps.verag.ag\g\ftp\programme\VERAGAddin\ http://ftps.verag.ag/VERAGAddin/ de - 1.0.1.93 + 1.0.1.96 true true 0 diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index 59409d1..40b4d30 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -476,7 +476,7 @@ Public Class AVISO_Mail_Functions Shared Function isMail_EKOL(mailItem As Outlook.MailItem) As Boolean Try If mailItem IsNot Nothing Then - Dim srch As String = " 0 AndAlso l.Contains(""">") Then ' ENDE - Dim link = ("http://web01.ekol.com/documentservice/download/" & l.ToString.Substring(0, l.ToString.IndexOf(""">"))) + Dim link = ("https://web01.ekol.com/documentservice/download/" & l.ToString.Substring(0, l.ToString.IndexOf(""">"))) Dim TMP_PATH = GetTempFilePathWithExtension(".pdf") My.Computer.Network.DownloadFile(link, TMP_PATH) From 60cfcc2d052c51cf3fa26c166f0162b83e62a143 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Fri, 23 Sep 2022 16:01:26 +0200 Subject: [PATCH 03/38] =?UTF-8?q?Outlook=20AddIn:=20Formulare=20einf=C3=BC?= =?UTF-8?q?gen=20f=C3=BCr=20Vollmachten.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERAGAddIn/VERAGAddIn.vbproj | 54 +- VERAGAddIn/frmAvisoAnfügen.Designer.vb | 68 +- .../frmAvisoFormularAnfügen.Designer.vb | 233 +++ VERAGAddIn/frmAvisoFormularAnfügen.resx | 1253 +++++++++++++++++ VERAGAddIn/frmAvisoFormularAnfügen.vb | 175 +++ VERAGAddIn/rbnVERAG.Designer.vb | 19 + VERAGAddIn/rbnVERAG.vb | 44 +- 7 files changed, 1780 insertions(+), 66 deletions(-) create mode 100644 VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb create mode 100644 VERAGAddIn/frmAvisoFormularAnfügen.resx create mode 100644 VERAGAddIn/frmAvisoFormularAnfügen.vb diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index 1a0e9a9..4777910 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -158,6 +158,12 @@ --> + + ..\..\..\Aviso\AVISO\Aviso\bin\Debug\AVISO.exe + + + ..\..\..\Aviso\AVISO\Gemeinsames\bin\x64\Debug\Gemeinsames.dll + @@ -167,9 +173,6 @@ - - ..\..\SDL\SDL\VERAG_PROG_ALLGEMEIN\bin\Debug\VERAG_PROG_ALLGEMEIN.dll - @@ -226,6 +229,12 @@ Form + + frmAvisoFormularAnfügen.vb + + + Form + rbnMailItem.vb @@ -244,6 +253,9 @@ frmAvisoAnfügen.vb + + frmAvisoFormularAnfügen.vb + rbnMailItem.vb @@ -285,15 +297,6 @@ - - {AC2DE821-36A2-11CF-8053-00AA006009FA} - 2 - 0 - 0 - tlbimp - False - True - {00020430-0000-0000-C000-000000000046} 2 @@ -303,15 +306,6 @@ False True - - {00020430-0000-0000-C000-000000000046} - 2 - 0 - 0 - primary - False - True - {0002E157-0000-0000-C000-000000000046} 5 @@ -322,16 +316,6 @@ True - - - {7bdd8c2f-2c9e-49f1-a365-3b1da1c84991} - Aviso - - - {110c923b-cb02-4fd0-af24-95e0f0eeeff5} - Gemeinsames - - @@ -356,6 +340,12 @@ + + + {a3b497bd-842c-4a2b-b398-ed1976849df1} + VERAG_PROG_ALLGEMEIN + + 10.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) @@ -377,7 +367,7 @@ - 443CA3745EE904EED98572A89099259301BA06D1 + 34D75D5089806BE69485715D014CE0611D10E677 false diff --git a/VERAGAddIn/frmAvisoAnfügen.Designer.vb b/VERAGAddIn/frmAvisoAnfügen.Designer.vb index b0bc07b..02fe3ac 100644 --- a/VERAGAddIn/frmAvisoAnfügen.Designer.vb +++ b/VERAGAddIn/frmAvisoAnfügen.Designer.vb @@ -28,8 +28,6 @@ Partial Class frmAvisoAnfuegen Me.Label14 = New System.Windows.Forms.Label() Me.Label13 = New System.Windows.Forms.Label() Me.Button1 = New System.Windows.Forms.Button() - Me.bttnSaveMail = New System.Windows.Forms.Button() - Me.btnSaveAttachments = New System.Windows.Forms.Button() Me.Label2 = New System.Windows.Forms.Label() Me.lblErr_Bezeichnung = New System.Windows.Forms.Label() Me.lblErr_Aviso = New System.Windows.Forms.Label() @@ -47,6 +45,8 @@ Partial Class frmAvisoAnfuegen Me.cboFiliale = New VERAG_PROG_ALLGEMEIN.MyComboBox() Me.txtLKWNr = New VERAG_PROG_ALLGEMEIN.MyTextBox() Me.dgvAviso = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) + Me.bttnSaveMail = New System.Windows.Forms.Button() + Me.btnSaveAttachments = New System.Windows.Forms.Button() CType(Me.dgvAnhaenge, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.dgvSendungen, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.dgvAviso, System.ComponentModel.ISupportInitialize).BeginInit() @@ -93,34 +93,6 @@ Partial Class frmAvisoAnfuegen Me.Button1.Text = "Suche" Me.Button1.UseVisualStyleBackColor = True ' - 'bttnSaveMail - ' - Me.bttnSaveMail.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.bttnSaveMail.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.bttnSaveMail.Image = Global.VERAGAddIn.My.Resources.Resources.email_big1 - Me.bttnSaveMail.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.bttnSaveMail.Location = New System.Drawing.Point(451, 590) - Me.bttnSaveMail.Name = "bttnSaveMail" - Me.bttnSaveMail.Size = New System.Drawing.Size(179, 53) - Me.bttnSaveMail.TabIndex = 11 - Me.bttnSaveMail.Text = "E-Mail speichern" & Global.Microsoft.VisualBasic.ChrW(13) - Me.bttnSaveMail.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.bttnSaveMail.UseVisualStyleBackColor = True - ' - 'btnSaveAttachments - ' - Me.btnSaveAttachments.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.btnSaveAttachments.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.btnSaveAttachments.Image = Global.VERAGAddIn.My.Resources.Resources.pdf - Me.btnSaveAttachments.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnSaveAttachments.Location = New System.Drawing.Point(239, 591) - Me.btnSaveAttachments.Name = "btnSaveAttachments" - Me.btnSaveAttachments.Size = New System.Drawing.Size(206, 69) - Me.btnSaveAttachments.TabIndex = 9 - Me.btnSaveAttachments.Text = "Nur Anhänge speichern" - Me.btnSaveAttachments.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnSaveAttachments.UseVisualStyleBackColor = True - ' 'Label2 ' Me.Label2.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) @@ -252,10 +224,12 @@ Partial Class frmAvisoAnfuegen Me.txtSrchDat._DateTimeOnly = False Me.txtSrchDat._numbersOnly = False Me.txtSrchDat._numbersOnlyKommastellen = "" + Me.txtSrchDat._numbersOnlyTrennzeichen = True Me.txtSrchDat._Prozent = False Me.txtSrchDat._ShortDateNew = True Me.txtSrchDat._ShortDateOnly = False Me.txtSrchDat._TimeOnly = False + Me.txtSrchDat._TimeOnly_Seconds = False Me.txtSrchDat._value = "" Me.txtSrchDat._Waehrung = False Me.txtSrchDat._WaehrungZeichen = True @@ -295,10 +269,12 @@ Partial Class frmAvisoAnfuegen Me.txtBezeichnung._DateTimeOnly = False Me.txtBezeichnung._numbersOnly = False Me.txtBezeichnung._numbersOnlyKommastellen = "" + Me.txtBezeichnung._numbersOnlyTrennzeichen = True Me.txtBezeichnung._Prozent = False Me.txtBezeichnung._ShortDateNew = False Me.txtBezeichnung._ShortDateOnly = False Me.txtBezeichnung._TimeOnly = False + Me.txtBezeichnung._TimeOnly_Seconds = False Me.txtBezeichnung._value = "" Me.txtBezeichnung._Waehrung = False Me.txtBezeichnung._WaehrungZeichen = True @@ -318,10 +294,12 @@ Partial Class frmAvisoAnfuegen Me.txtAbfertigungsnummer._DateTimeOnly = False Me.txtAbfertigungsnummer._numbersOnly = False Me.txtAbfertigungsnummer._numbersOnlyKommastellen = "" + Me.txtAbfertigungsnummer._numbersOnlyTrennzeichen = True Me.txtAbfertigungsnummer._Prozent = False Me.txtAbfertigungsnummer._ShortDateNew = False Me.txtAbfertigungsnummer._ShortDateOnly = False Me.txtAbfertigungsnummer._TimeOnly = False + Me.txtAbfertigungsnummer._TimeOnly_Seconds = False Me.txtAbfertigungsnummer._value = Nothing Me.txtAbfertigungsnummer._Waehrung = False Me.txtAbfertigungsnummer._WaehrungZeichen = True @@ -352,10 +330,12 @@ Partial Class frmAvisoAnfuegen Me.txtLKWNr._DateTimeOnly = False Me.txtLKWNr._numbersOnly = False Me.txtLKWNr._numbersOnlyKommastellen = "" + Me.txtLKWNr._numbersOnlyTrennzeichen = True Me.txtLKWNr._Prozent = False Me.txtLKWNr._ShortDateNew = False Me.txtLKWNr._ShortDateOnly = False Me.txtLKWNr._TimeOnly = False + Me.txtLKWNr._TimeOnly_Seconds = False Me.txtLKWNr._value = "" Me.txtLKWNr._Waehrung = False Me.txtLKWNr._WaehrungZeichen = True @@ -389,6 +369,34 @@ Partial Class frmAvisoAnfuegen Me.dgvAviso.Size = New System.Drawing.Size(615, 369) Me.dgvAviso.TabIndex = 6 ' + 'bttnSaveMail + ' + Me.bttnSaveMail.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.bttnSaveMail.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.bttnSaveMail.Image = Global.VERAGAddIn.My.Resources.Resources.email_big1 + Me.bttnSaveMail.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.bttnSaveMail.Location = New System.Drawing.Point(451, 590) + Me.bttnSaveMail.Name = "bttnSaveMail" + Me.bttnSaveMail.Size = New System.Drawing.Size(179, 53) + Me.bttnSaveMail.TabIndex = 11 + Me.bttnSaveMail.Text = "E-Mail speichern" & Global.Microsoft.VisualBasic.ChrW(13) + Me.bttnSaveMail.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.bttnSaveMail.UseVisualStyleBackColor = True + ' + 'btnSaveAttachments + ' + Me.btnSaveAttachments.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.btnSaveAttachments.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnSaveAttachments.Image = Global.VERAGAddIn.My.Resources.Resources.pdf + Me.btnSaveAttachments.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnSaveAttachments.Location = New System.Drawing.Point(239, 591) + Me.btnSaveAttachments.Name = "btnSaveAttachments" + Me.btnSaveAttachments.Size = New System.Drawing.Size(206, 69) + Me.btnSaveAttachments.TabIndex = 9 + Me.btnSaveAttachments.Text = "Nur Anhänge speichern" + Me.btnSaveAttachments.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnSaveAttachments.UseVisualStyleBackColor = True + ' 'frmAvisoAnfuegen ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb b/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb new file mode 100644 index 0000000..211c0cb --- /dev/null +++ b/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb @@ -0,0 +1,233 @@ + +Partial Class frmAvisoFormularAnfuegen + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmAvisoFormularAnfuegen)) + Me.lblKunden = New System.Windows.Forms.Label() + Me.btnOK = New System.Windows.Forms.Button() + Me.KdSearchBox = New VERAG_PROG_ALLGEMEIN.KdSearchBox() + Me.btnCancel = New System.Windows.Forms.Button() + Me.dgvKundenvollmachten = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) + Me.btnSaveMail = New System.Windows.Forms.Button() + Me.btnSaveAttachments = New System.Windows.Forms.Button() + Me.cbVMTypen = New VERAG_PROG_ALLGEMEIN.MyComboBox() + Me.txtBezeichnung = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.Label2 = New System.Windows.Forms.Label() + CType(Me.dgvKundenvollmachten, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'lblKunden + ' + Me.lblKunden.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.lblKunden.AutoSize = True + Me.lblKunden.Location = New System.Drawing.Point(5, 33) + Me.lblKunden.Name = "lblKunden" + Me.lblKunden.Size = New System.Drawing.Size(44, 13) + Me.lblKunden.TabIndex = 2 + Me.lblKunden.Text = "Kunden" + ' + 'btnOK + ' + Me.btnOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK + Me.btnOK.Enabled = False + Me.btnOK.Location = New System.Drawing.Point(317, 387) + Me.btnOK.Name = "btnOK" + Me.btnOK.Size = New System.Drawing.Size(105, 40) + Me.btnOK.TabIndex = 3 + Me.btnOK.Text = "Ok" + Me.btnOK.UseVisualStyleBackColor = True + ' + 'KdSearchBox + ' + Me.KdSearchBox._AlleFirmenCLUSTER = False + Me.KdSearchBox._AllowSetValue = True + Me.KdSearchBox._autoSizeGross = False + Me.KdSearchBox._display_Name1 = False + Me.KdSearchBox._displayAVISO_Email = False + Me.KdSearchBox._displayFullName = False + Me.KdSearchBox._displayWoelflKd = False + Me.KdSearchBox._hideIfListEmpty = True + Me.KdSearchBox._loadKdData = True + Me.KdSearchBox._UseFIRMA = "" + Me.KdSearchBox._ValueKdAndName = True + Me.KdSearchBox.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.KdSearchBox.dgvpos = "LEFT" + Me.KdSearchBox.HideSelection = False + Me.KdSearchBox.KdName = "" + Me.KdSearchBox.KdNr = "-1" + Me.KdSearchBox.kdNrField = Nothing + Me.KdSearchBox.KdNrNullInt = Nothing + Me.KdSearchBox.Location = New System.Drawing.Point(8, 64) + Me.KdSearchBox.Name = "KdSearchBox" + Me.KdSearchBox.nurAktive = True + Me.KdSearchBox.searchActive = True + Me.KdSearchBox.Size = New System.Drawing.Size(412, 20) + Me.KdSearchBox.TabIndex = 4 + Me.KdSearchBox.TIMER_SEARCH = True + Me.KdSearchBox.usrcntl = Nothing + ' + 'btnCancel + ' + Me.btnCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.btnCancel.Location = New System.Drawing.Point(8, 387) + Me.btnCancel.Name = "btnCancel" + Me.btnCancel.Size = New System.Drawing.Size(116, 40) + Me.btnCancel.TabIndex = 31 + Me.btnCancel.Text = "Abbrechen" + Me.btnCancel.UseVisualStyleBackColor = True + ' + 'dgvKundenvollmachten + ' + Me.dgvKundenvollmachten.AKTUALISIERUNGS_INTERVALL = -1 + Me.dgvKundenvollmachten.AllowUserToAddRows = False + Me.dgvKundenvollmachten.AllowUserToDeleteRows = False + Me.dgvKundenvollmachten.AllowUserToResizeColumns = False + Me.dgvKundenvollmachten.AllowUserToResizeRows = False + Me.dgvKundenvollmachten.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.dgvKundenvollmachten.BackgroundColor = System.Drawing.Color.White + Me.dgvKundenvollmachten.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + Me.dgvKundenvollmachten.Location = New System.Drawing.Point(12, 116) + Me.dgvKundenvollmachten.MultiSelect = False + Me.dgvKundenvollmachten.Name = "dgvKundenvollmachten" + Me.dgvKundenvollmachten.ReadOnly = True + Me.dgvKundenvollmachten.RowHeadersVisible = False + Me.dgvKundenvollmachten.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect + Me.dgvKundenvollmachten.Size = New System.Drawing.Size(410, 116) + Me.dgvKundenvollmachten.TabIndex = 32 + ' + 'btnSaveMail + ' + Me.btnSaveMail.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.btnSaveMail.Enabled = False + Me.btnSaveMail.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnSaveMail.Image = Global.VERAGAddIn.My.Resources.Resources.email_big1 + Me.btnSaveMail.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnSaveMail.Location = New System.Drawing.Point(228, 313) + Me.btnSaveMail.Name = "btnSaveMail" + Me.btnSaveMail.Size = New System.Drawing.Size(197, 53) + Me.btnSaveMail.TabIndex = 34 + Me.btnSaveMail.Text = "E-Mail speichern" & Global.Microsoft.VisualBasic.ChrW(13) + Me.btnSaveMail.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnSaveMail.UseVisualStyleBackColor = True + ' + 'btnSaveAttachments + ' + Me.btnSaveAttachments.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.btnSaveAttachments.Enabled = False + Me.btnSaveAttachments.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnSaveAttachments.Image = Global.VERAGAddIn.My.Resources.Resources.pdf + Me.btnSaveAttachments.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnSaveAttachments.Location = New System.Drawing.Point(10, 308) + Me.btnSaveAttachments.Name = "btnSaveAttachments" + Me.btnSaveAttachments.Size = New System.Drawing.Size(197, 58) + Me.btnSaveAttachments.TabIndex = 33 + Me.btnSaveAttachments.Text = "Nur Anhänge speichern" + Me.btnSaveAttachments.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnSaveAttachments.UseVisualStyleBackColor = True + ' + 'cbVMTypen + ' + Me.cbVMTypen._allowedValuesFreiText = Nothing + Me.cbVMTypen._allowFreiText = False + Me.cbVMTypen._value = "" + Me.cbVMTypen.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.cbVMTypen.FormattingEnabled = True + Me.cbVMTypen.Location = New System.Drawing.Point(8, 89) + Me.cbVMTypen.Name = "cbVMTypen" + Me.cbVMTypen.Size = New System.Drawing.Size(406, 21) + Me.cbVMTypen.TabIndex = 35 + ' + 'txtBezeichnung + ' + Me.txtBezeichnung._DateTimeOnly = False + Me.txtBezeichnung._numbersOnly = False + Me.txtBezeichnung._numbersOnlyKommastellen = "" + Me.txtBezeichnung._numbersOnlyTrennzeichen = True + Me.txtBezeichnung._Prozent = False + Me.txtBezeichnung._ShortDateNew = False + Me.txtBezeichnung._ShortDateOnly = False + Me.txtBezeichnung._TimeOnly = False + Me.txtBezeichnung._TimeOnly_Seconds = False + Me.txtBezeichnung._value = "" + Me.txtBezeichnung._Waehrung = False + Me.txtBezeichnung._WaehrungZeichen = True + Me.txtBezeichnung.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.txtBezeichnung.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!) + Me.txtBezeichnung.ForeColor = System.Drawing.Color.Black + Me.txtBezeichnung.Location = New System.Drawing.Point(128, 279) + Me.txtBezeichnung.MaxLineLength = -1 + Me.txtBezeichnung.MaxLines_Warning = "" + Me.txtBezeichnung.MaxLines_Warning_Label = Nothing + Me.txtBezeichnung.Name = "txtBezeichnung" + Me.txtBezeichnung.Size = New System.Drawing.Size(297, 23) + Me.txtBezeichnung.TabIndex = 37 + ' + 'Label2 + ' + Me.Label2.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(7, 284) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(112, 13) + Me.Label2.TabIndex = 36 + Me.Label2.Text = "Anhang-Bezeichnung:" + ' + 'frmAvisoFormularAnfuegen + ' + 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(465, 444) + Me.Controls.Add(Me.cbVMTypen) + Me.Controls.Add(Me.txtBezeichnung) + Me.Controls.Add(Me.Label2) + Me.Controls.Add(Me.btnSaveMail) + Me.Controls.Add(Me.btnSaveAttachments) + Me.Controls.Add(Me.dgvKundenvollmachten) + Me.Controls.Add(Me.btnCancel) + Me.Controls.Add(Me.KdSearchBox) + Me.Controls.Add(Me.btnOK) + Me.Controls.Add(Me.lblKunden) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmAvisoFormularAnfuegen" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.Text = "Formular anfügen" + CType(Me.dgvKundenvollmachten, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents lblKunden As Windows.Forms.Label + Friend WithEvents btnOK As Windows.Forms.Button + Friend WithEvents KdSearchBox As VERAG_PROG_ALLGEMEIN.KdSearchBox + Friend WithEvents btnCancel As Windows.Forms.Button + Friend WithEvents dgvKundenvollmachten As VERAG_PROG_ALLGEMEIN.MyDatagridview + Friend WithEvents btnSaveMail As Windows.Forms.Button + Friend WithEvents btnSaveAttachments As Windows.Forms.Button + Friend WithEvents cbVMTypen As VERAG_PROG_ALLGEMEIN.MyComboBox + Friend WithEvents txtBezeichnung As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents Label2 As Windows.Forms.Label +End Class diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.resx b/VERAGAddIn/frmAvisoFormularAnfügen.resx new file mode 100644 index 0000000..f7f78d5 --- /dev/null +++ b/VERAGAddIn/frmAvisoFormularAnfügen.resx @@ -0,0 +1,1253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAgBABMLAAATCwAAAAAAAAAA + AABmMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/5uDd///////////////////////39fT/dEkm/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP+AXUL///////////////////////////////////////////////////////// + /////////////////////////////3RJJv9mMwD/ZjMA/2YzAP9mMwD/ZjMA/3RJJv/39fT///////// + /////////////2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+AXUL///////////////////////// + //+YfWv/ZjMA/2YzAP9mMwD/ZjMA/3RJJv/u6+n/////////////////9/X0/3RJJv9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/39fT//////////////////////8Gzqv9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/t6ec/9TLxf//////////////////////y7+4/62a + jf9mMwD/ZjMA/5h9a////////////3RJJv9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/3RJJv////////////////////////////// + ///Lv7j/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/u6+n///////// + ////////////////////////////////////////////////////////////////////////o4x9/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/+bg3f//////////////////////jG5Y/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/7ennP//////////////////////5uDd/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/5h9 + a///////////////////////wbOq/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/dEkm//// + ////////////////////////o4x9/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/rZqN//// + /////////////////////////////////////////////+bg3f+Mblj/t6ec////////////o4x9/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/jG5Y//////////////////////////////////////+Mblj/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/9TLxf////////////////////////////////////////////// + ///////////////////////////////////Lv7j/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/wbOq//// + //////////////////+3p5z/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/5uDd//////////////////// + //+3p5z/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/9TLxf//////////////////////gF1C/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+YfWv///////////////////////////90SSb/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/8u/uP////////////////////////////////////////////// + //////////////f19P/m4N3///////////+3p5z/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+3p5z///////////////////////// + /////////////93W0f9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/t6ec//// + ///////////////////39fT/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+jjH3//////////////////////8u/uP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/4BdQv///////////////////////////3RJJv9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/gF1C//f19P/////////////////Lv7j/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/7en + nP//////////////////////9/X0/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+3p5z///////// + ///////////////////Uy8X/gF1C/2YzAP9mMwD/t6ec//f19P///////////////////////////9TL + xf9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/8Gzqv//////////////////////7uvp/////////////////62ajf9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+Mblj///////////////////////////90SSb/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/4xu + WP//////////////////////5uDd/2YzAP9mMwD/ZjMA/2YzAP9mMwD/t6ec//////////////////// + ///Uy8X/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/t6ec//////////////////// + ///////////////////////////////////////////////////////////////////Uy8X/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA//f19P//////////////////////y7+4/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/gF1C/+7r6f//////////////////////9/X0/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/5uDd//////////////////// + //+jjH3/////////////////7uvp/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/3RJ + Jv///////////////////////////6OMff9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA//f19P//////////////////////dEkm/2Yz + AP9mMwD/ZjMA/2YzAP/m4N3//////////////////////6OMff9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/7uvp//////////////////////////////////////////////////// + /////////////////////////////7ennP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+jjH3///////// + //////////////////+Mblj/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/jG5Y//////////////////// + ////////dEkm/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP/39fT//////////////////////2YzAP/Lv7j/////////////////t6ec/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/+bg3f//////////////////////wbOq/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/1MvF//////////////////////+YfWv/ZjMA/2YzAP9mMwD/gF1C//////////////////// + ///39fT/dEkm/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+YfWv///////// + ////////////////////////////////////////////////////////////////////////o4x9/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/7ennP///////////////////////////2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/1MvF//////////////////////+jjH3/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/jG5Y//////////////////// + ///m4N3/ZjMA/4BdQv/39fT////////////39fT/gF1C/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/wbOq///////////////////////Uy8X/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+3p5z///////////////////////// + /////////////////////////////////////////////+7r6f9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/Uy8X/////////////////7uvp/2YzAP9mMwD/ZjMA/2Yz + AP+Mblj///////////////////////////90SSb/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/t6ec//// + ////////////////////////ZjMA/2YzAP9mMwD/dEkm//////////////////////////////////// + /////////////7ennP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP+jjH3//////////////////////9TLxf9mMwD/ZjMA/7ennP////////////// + ///Lv7j/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+3p5z///////////////////////// + /////////////////////////////////////////////+bg3f9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/6OMff////////////////////////////////////////////////////////////// + ///////////////////d1tH/jG5Y/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/4Bd + Qv//////////////////////rZqN/2YzAP9mMwD/ZjMA/62ajf//////////////////////5uDd/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+3p5z///////////////////////////90SSb/ZjMA/2Yz + AP9mMwD/5uDd////////////////////////////////////////////1MvF/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/7ennP////////////// + ////////t6ec/2YzAP9mMwD/dEkm//f19P////////////////+YfWv/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/4xuWP////////////////////////////////////////////////////////////// + /////////////2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/dEkm//////////////////// + ////////////////////////////////////////////////////////////////////////mH1r/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/7ennP/////////////////39fT/dEkm/2Yz + AP9mMwD/wbOq///////////////////////Uy8X/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/6OM + ff///////////////////////////6OMff9mMwD/ZjMA/2YzAP/Bs6r///////////////////////// + ///////////////////39fT/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/1MvF//////////////////////+tmo3/ZjMA/2YzAP9mMwD/rZqN//// + /////////////+bg3f9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA//f19P////////////// + ////////////////////////////////////////////////////////mH1r/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/7uvp//////////////////////90SSb/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP+jjH3/5uDd///////////////////////39fT/dEkm/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/+7r6f////////////////+3p5z/ZjMA/2YzAP/Uy8X//////////////////////7en + nP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/dEkm////////////////////////////wbOq/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/u6+n///////// + /////////////4xuWP9mMwD/ZjMA/2YzAP9mMwD/7uvp/////////////////62ajf9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/3dbR///////////////////////Bs6r/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/Uy8X///////// + /////////////5h9a/9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP90SSb/7uvp//////////////////// + //+3p5z/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/o4x9//////////////////f1 + 9P+AXUL/ZjMA//f19P//////////////////////jG5Y/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/1MvF///////////////////////39fT/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP/Bs6r//////9TLxf+3p5z/t6ec/5h9a/9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/dEkm////////////////////////////dEkm/2YzAP9mMwD/ZjMA/2Yz + AP+tmo3/////////////////7uvp/3RJJv9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/Bs6r///////// + /////////////+bg3f9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/7ennP//////////////////////t6ec/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP/Lv7j//////////////////////8Gzqv9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/1MvF/////////////////8u/uP90SSb///////////////////////// + //90SSb/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+YfWv///////////////////////// + //+3p5z/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/+7r6f//////////////////////o4x9/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+YfWv///////// + /////////////+7r6f9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/d1tH/////////////////t6ec/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/6OMff///////////////////////////3RJJv9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/mH1r//// + ///////////////////Uy8X/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/+bg3f////////////// + ////////t6ec/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+AXUL///////// + /////////////62ajf//////////////////////5uDd/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP/Bs6r///////////////////////////+YfWv/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP+tmo3//////////////////////+7r6f9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/7ennP//////////////////////1MvF/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/5h9a///////////////////////gF1C/2YzAP9mMwD/ZjMA/2YzAP9mMwD/gF1C//// + ////////////////////////jG5Y/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP90SSb//////////////////////+7r6f9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/4BdQv/Lv7j///////////////////////////+Mblj/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+3p5z///////////////////////////////////////// + ///Lv7j/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/d1tH///////// + //////////////////+3p5z/dEkm/2YzAP9mMwD/t6ec////////////////////////////rZqN/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/y7+4//// + ///////////////////Bs6r/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/93W0f////////////// + ///Uy8X/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/9/X0//////////////////////////////////// + /////////////////////////////////////////////3RJJv9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP/m4N3///////////////////////////////////////////////////////////////////////// + ////////wbOq/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP/u6+n//////////////////////////////////////7ennP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/Uy8X///////////////////////////////////////// + /////////////////////////////8u/uP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/m4N3//////////////////////62ajf9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/gF1C//////////////////////+YfWv/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP/Uy8X///////////////////////////////////////////////////////////////////////// + ////////mH1r/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/8u/uP////////////////////////////// + /////////////////////////////////////////////9TLxf9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/6OMff////////////////////////////// + ////////jG5Y/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP+tmo3/9/X0//////////////////////////////////////////////////////+tmo3/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/dEkm//// + ////////////////////////jG5Y/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/y7+4//// + /////////////+7r6f90SSb/ZjMA/2YzAP9mMwD/ZjMA/7ennP////////////////////////////// + //////////////////////////////////////////////////+3p5z/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/t6ec////////////////////////////////////////////////////////////5uDd/7en + nP+Mblj/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/93W0f////////////////////////////////9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/o4x9/7ennP/39fT///////// + /////////////9TLxf+3p5z/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAEAAAACAAAAAwAAAAMAAAAFAAAABwAAAAkBAQEMAQEBEAMDAxQFBQUYBwcHHQUFBSAGBgYkBQUFJwQE + BCsFBQUtBQUFLwUFBTEFBQUxBgYGLgYGBioFBQUkBQUFHgMDAxgEBAQSAQEBDQEBAQkAAAAGAAAABAAA + AAIAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAIAAAADAAAABAAAAAcAAAAJAgICDAICAhAEBAQVBAQEGgUF + BSAFBQUnBQUFLQUFBTQGBgY6BgYGPwUFBUQEBARIBQUFSgUFBU0GBgZPBgYGUAYGBk8GBgZMBQUFRwUF + BUAFBQU5BQUFMQYGBikGBgYhBgYGGQQEBBMBAQENAAAACQAAAAUAAAADAAAAAgAAAAEAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAACAAAAAwAAAAUAAAAHAAAACAIC + AgwCAgIPBQUFFAQEBBkGBgYgBQUFJgUFBS4FBQU2BQUFPgUFBUYGBgZPBQUFVwUFBV0FBQVhBAQEZgQE + BGgFBQVqBQUFawUFBWwFBQVsBQUFawUFBWkFBQVlBQUFYAYGBlkFBQVSBQUFSAUFBT8GBgY0BQUFKgUF + BSAEBAQXAgICEAAAAAoAAAAGAAAABAAAAAIAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAgAA + AAMAAAAEAAAABgAAAAgBAQELAgICDwMDAxMFBQUYBgYGHgUFBSUGBgYsBQUFNAUFBT0FBQVGBQUFTwUF + BVgGBgZgBQUFaQYGBm8FBQV2BgYGegUFBX4FBQV/BQUFgQUFBYEFBQWBBQUFgQUFBYAFBQWABAQEfQIC + AngCAgJ1AwMDcQMDA2wDAwNkAwMDWwQEBFIFBQVKBQUFPgUFBTEFBQUmBAQEHAICAhMBAQEMAAAACAAA + AAQAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAABAAAAAQAAAAIAAAADAAAABAAAAAYAAAAIAQEBCwICAg4DAwMTBQUFGAUFBR4GBgYkBQUFKwUF + BTMFBQU7BQUFRAYGBk4FBQVXBQUFXwUFBWgGBgZwBQUFdwYGBn0FBQWDBQUFhwUFBYsFBQWNBQUFjgUF + BY8FBQWPBQUFjwUFBY8EBASLAwMDiAQEBIkLCwuSFhYWpioqKsA3NzfeNzc34jMzM94lJSW7Dw8PhwQE + BGUFBQVeBgYGUgUFBUQFBQU2BQUFKQUFBR8DAwMVAQEBDgAAAAkAAAAFAAAAAwAAAAIAAAABAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAACAAAAAgAAAAQAAAAFAAAABwAAAAoCAgINAgICEQUF + BRcFBQUcBgYGIwUFBSsFBQUyBQUFOgYGBkQFBQVNBgYGVQUFBV8FBQVnBgYGbgUFBXYGBgZ9BQUFggUF + BYcFBQWLBQUFjwUFBZEFBQWUBQUFlQUFBZYFBQWWBQUFlgUFBZYFBQWVAwMDkA0NDaEdHR3ALCws2jc3 + N/FJSUn/Tk5O/0lJSf9FRUX/QUFB/z09Pf81NTX4HBwcuAUFBXkFBQVvBQUFZQUFBVcFBQVJBQUFOwUF + BS0EBAQiAgICGAICAhABAQEKAAAABgAAAAMAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAA + AAcAAAAKAQEBDQMDAxEFBQUWBQUFGwYGBiIFBQUpBgYGMQUFBTkGBgZCBQUFSwUFBVUFBQVdBQUFZgUF + BW4FBQV1BgYGfAUFBYEFBQWHBQUFiwUFBY4FBQWRBQUFkwQEBZUEBASVAgIClgAAAJQAAACSAAAAkgEB + ApUFBQWYBQUFmAQEBJQYGBjBMDAw+DY2Nv80NDT/Pz8//01NTf9ISEj/RERE/0BAQP87Ozv/ODg4/zU1 + Nf8zMzP/Hh4ezwUFBYYFBQV+BQUFdQYGBmkFBQVbBQUFTgUFBT8EBAQxBgYGJQQEBBsBAQESAAAADAAA + AAgAAAAEAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAACAAAABQAAAAkAAAAOAgICFAUFBRoFBQUgBgYGKAUFBS8FBQU4BQUFQQUF + BUoGBgZTBQUFXAYGBmUFBQVtBQUFdAUFBXsFBQWABQUFhgUFBYsFBQWOBQUFkQUFBZMEBASVAwMDlQAA + AJUAAACSAAAAkwQEBZcTExCgKyghsTYxKL80Lya+GxkUqAEBApQBAQKREhISvSgoKP8oKCj/JSUl/yoq + Kv9JSUn/SkpK/0VFRf9AQED/ODg4/zIyMv8vLy//MDAw/y4uLv8sLCz/GBgYzAQEBIoFBQWJBQUFggYG + BnkFBQVuBQUFYAUFBVIFBQVDBQUFNQUFBSkFBQUeBAQEFAEBAQ4AAAAJAAAABQAAAAMAAAABAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAYAAAANAQEBFQMD + AyEFBQUrBQUFNQUFBT8FBQVIBgYGUQUFBVsGBgZjBQUFawYGBnMFBQV6BgYGgAUFBYUFBQWKBQUFjgUF + BZAFBQWTBAQElQICApUAAACUAAAAkQAAAJQICAiZJSQhp0NBObtkYFPPgnxq542Eb/aNg2r+i35k/4l7 + Yf96bVX6SUAx0A4NDKcXFxjzGxsb/xoaGv8XFxf/Li4u/05OTv9HR0f/QEBA/0RERP9oaGj/dXV1/1VV + Vf8uLi7/Jycn/ygoKP8lJSX/Dg4OswMDA48FBQWRBgYGjAUFBYQFBQV8BQUFcQUFBWUFBQVXBQUFSAQE + BDoFBQUtBAQEIQMDAxcDAwMQAAAACgAAAAYAAAADAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAEAAAACgMDAxYFBQUlBQUFNgUFBUQFBQVSBQUFXgUFBWcFBQVxBQUFeAUF + BX8FBQWFBQUFiQUFBY0FBQWQBQUFkgQEBJQCAgKUAAAAkwAAAJEAAQGUDQwMmzAvK6tSUEfAfHlr1p2Z + h+ywq5b6uLKb/7Stlf+ooIj/m5J7/4yCav+Dd17/gXRc/35xWP9/cFT/SD8v9ggJCv8PDw//EBAQ/w4O + Dv81NTX/TExM/0RERP9GRkb/amlp/39/f//S0tP/3Nzd/5CQkP8xMTH/ICAg/yIiIv8aGhrtBgYGmgQE + BJUFBQWVBQUFkgUFBY0FBQWHBgYGfwYGBnUFBQVoBQUFWwYGBk0FBQU+BAQEMAUFBSQEBAQaAwMDEgAA + AAsAAAAHAAAABAAAAAIAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQCAgINBgYGGwQE + BC4FBQVCBQUFVQUFBWQFBQVwBQUFegYGBoMGBgaJBQUFjgUFBZEEBASTAQECkwAAAJMAAACRAQEBlRAQ + D5w4NzKuXFpQxIOBc9mqp5Xwvrum/MfErf/Fwav/v7mk/7iznP+xq5T/qqON/6Kag/+Yj3j/i4Fp/4N3 + Xv+BdFz/fG9X/3hqUP9fU0D/GRkZ/wEBAv8AAAH/BAQD/zk5Of9ISEj/Pj4+/2JiYv9paWn/SkpK/2ho + aP/e3t//+vr6/5ubm/8kJCT/HBwc/xsbG/8NDQ3ABAQEkgUFBZgFBQWXBQUFlQUFBZMFBQWPBQUFiQUF + BYIFBQV4BQUFbQYGBl8FBQVRBQUFQwUFBTUFBQUoBAQEHQMDAxQCAgINAAAACAAAAAUAAAADAAAAAQAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAABAICAgwHBwcaBQUFKwUFBT4FBQVQBgYGYAYGBm4FBQV5BAQEgQEB + AoYAAACJAAAAigAAAZAQEA6bNTQurGFfVMSMiXrapKGO8qShjv3Bvqn/zMmz/8XCrP/Bvqj/vbqk/7u3 + ov+5tJ//tbCa/7CqlP+qo43/o5uE/5mRev+Ng2v/hXpg/4N2Xv99cVj/c2VM/4ByXP+dj4T/bWRd/xkY + GP8FBQb/Pj4+/0ZGRv8+Pj7/cXFx/3x8fP92dnb/X19f/4SEhP/5+fn/7u7u/2JiYv8VFRX/GBgY/xER + EeUFBQWXBQUFmAUFBZkFBQWYBQUFmAUFBZYFBQWUBQUFkAUFBYsGBgaEBQUFfAUFBXAGBgZkBgYGVQUF + BUcEBAQ5BQUFLAUFBSADAwMWAQEBDwAAAAoAAAAGAAAAAwAAAAIAAAABAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAACAIC + AhEEBAQeBAQELAICAjoAAAFFAAAATgAAAFcEBARnFRUTgDs6NJ1jYle9iYd416imkvCoppL+paKS/5WT + iP+cm5X/qKem/6yqm//DwKr/wL2o/7+8pv+9uqT/u7ei/7q1oP+4s53/tK+Z/6+okv+hmYL/kYhw/35y + Wf9wYkf/cmRF/3RmS/9yZEr/gXJc/6majP+xoZP/dm1m/xMTFP85OTn/Q0ND/z09Pf98fHz/k5OU/5CQ + kf+Li4r/ampq/7e3t//j4+P/oKCg/yAgIP8TExP/EhIS/AcHB6gFBQWWBQUFmQUFBZkFBQWZBQUFmAUF + BZgFBQWXBQUFlAUFBZIFBQWNBQUFhwYGBn4GBgZ0BQUFaAUFBVkFBQVLBQUFPAUFBS8FBQUjAwMDGQEB + AREAAAALAAAABwAAAAQAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADAAAABAAAAAYAAAAKDAsLFxwcGThDQjtjcG5im5KQ + f8ixrprrsK2Z/q2rmf+fnZH/n56X/7KysP/Ozs7/8PDx//7+////////ubep/8G+p//Cv6r/w8Cq/8PA + qv/AvKf/tbCa/6agif+OhW3/fG9X/3NjTf9lUz7/a15N/2xmZP9NSFL/V0xB/1tONv93aVP/p5iL/6aX + iv+fkYX/NzY1/zg5Of9AQED/ODg4/4SEhP+DhIX/goKD/6Wlpv98fHz/gYGB/76+vv+srKz/Ojo6/w4O + Dv8SEhL/CQkJvgQEBJMFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZgFBQWYBQUFlwUFBZYFBQWSBQUFjwYG + BokGBgaBBgYGdwYGBmsGBgZeBQUFTwQEBEEEBAQzBAQEJgMDAxwBAQETAAAADQAAAAcAAAAFAAAAAwAA + AAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAgIBwNNjUvMXt5bHCem4qxwL2o3r+8pv+0sZ//p6aZ/6emn/+5ubb/zc3N/+7u7//8/P3///////// + ///////////////////Bv7H/x8Wt/7+7pf+wqpT/l494/4F4Y/90aVX/bGFQ/3Vyaf93f33/fpmf/3y0 + xv9twtP/R37e/woW6v8qNK7/e3Jj/31yY/+mlon/pJWI/6qajf9jXln/PT0+/0JCQv8yMjL/dHR0/4KD + hP9ZWlz/iYmK/4KCgv9ubm7/mpqa/5iYmP9KSkr/DAwM/w8PD/8JCQnNBAQEkgUFBZkFBQWZBQUFmQUF + BZkFBQWZBQUFmQUFBZkFBQWZBQUFmAUFBZcFBQWWBQUFlAUFBZAGBgaLBgYGgwUFBXoFBQVvBQUFYgUF + BVMFBQVFBAQENwQEBCkEBAQfAgICFQAAAA8AAAAJAAAABQAAAAMAAAACAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAzcmzCsjFryuWk4Nlioh5pMXCrdPGw67+zsu0/8nFsP/DwKn/xsS3/9DQ + 0P/v7/D//f3+/////////////////////////////////////f/t7Ob/0MzA/5mSff94b1r/YllH/0pB + NP8/OjL/nJSO/5uUjv+ls7n/xuXt/5Pp//9m4///eOr//03l//9opfj/U0zw/zg/vP+Ce3H/jYV7/6WW + iP+klYj/qJiL/4l/dv9DQ0P/SEhI/zExMf9NTU3/lZWV/1tcXf9paWr/eHh4/2FhYf97e3v/gICA/0hI + SP8LCwv/DQ0N/wgICNYFBQWUBQUFmQUFBZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUF + BZgFBQWYBQUFlgUFBZQFBQWRBQUFjAUFBYYFBQV9BQUFcgUFBWUFBQVXBAQESQUFBTsEBAQuAwMDIgMD + AxgBAQEQAAAACwAAAAYAAAAEAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMK/qpnCv6rSwr+q/crH + sf/MyLL/w8Cr/8PAq//Cv6r/wr+q/767o//f3tL///////////////////////////////3/7Ovk/83K + vv+mn4//e3Ri/1lRQP9COy7/OjUu/zc1Mv81NTX/NTU2/zM0Nf+wqqf/r6af/7TDyf/Z+///oOz//1Xg + //9j4///gOz//6G89P9GPuT/NDi1/4F7cP+Gfnb/oJKG/6WWiP+lloj/opSH/01LSf9KS0v/Nzc3/y0t + Lf93d3f/h4eH/3Jycv9hYWH/U1NT/2FhYf9ubm7/Pj4+/wkJCf8KCgr/BgYG2QUFBZQFBQWYBQUFmQUF + BZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZkFBQWYBQUFmAUFBZcFBQWVBQUFkgUF + BY4FBQWIBQUFgAUFBXUFBQVqBQUFXAUFBU4EBAQ/BAQEMgQEBCUDAwMbAQEBEgAAAAwAAAAIAAAABQAA + AAIAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAwr+q+8K/qv/Cv6r/wr+q/8K/qv/Cv6r/wr+q/8K/qv/Cv6r/v7yl/+Lh + 1v/////////+/+zr5P/NyL3/o5yN/3dvXv9WTj7/PTcr/zEtJv8uLCr/LS0t/y0uL/8tLi//MDEy/0A/ + P/9PTU3/ZGNi/7Wuqv+6sKj/wb26/8Xd5f/E6vT/uOXx/7/i6//j5+b/x8DL/2tli/9oZYT/gntz/4F7 + dP+ZjYL/ppaJ/6WWif+uoJP/dG1n/z09Pv9GRkb/KCgo/zo6Ov97e3v/YGBg/0lJSf9JSUn/UVFR/2xs + bP8fHx//CAgI/wgICP8FBQXUBQUFkQUFBZQFBQWXBAQEmQAAAZYAAAGVAgIDlwUFBZkFBQWZBQUFmQUF + BZkFBQWZBQUFmQUFBZkFBQWZBQUFmAUFBZgFBQWXBQUFlQUFBZMFBQWPBQUFiQUFBYIGBgZ5BQUFbQUF + BWAFBQVSBQUFRAQEBDUEBAQpBAQEHgICAhUAAAAOAAAACQAAAAUAAAADAAAAAQAAAAEAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCv6rvwr+q/8K/ + qv/Cv6r/wr+q/8PAq//GxK//yMWw/8jFsP++uqP/ubSj/6agkf93cF//Uks7/zYxJv8rJyH/JyYj/yUl + Jv8mJyj/KCkq/y8vMP9DQ0P/VlZW/29ubv9/fn7/hYSD/358e/9qamn/rqei/7atpP/Tzsr/2tTR/9rT + 0P/e1NH/3dXS/97Y1v/LxsD/hX5w/4R9cP+BenT/gHpz/4+FfP+nmIv/qZuQ/7Cil/+lmpH/Ozs6/0tL + TP80NDT/ICAg/zk5Of9oaGj/ZGRk/19fX/9sbGz/PDw8/wkJCf8JCQn/BQUF/wEBAfkBAQHhAwMDuwAA + AZ0EBQWXHx0ZqCQiHa0TEhCgAQEClQAAAJUEBASYBQUFmQUFBZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUF + BZgFBQWYBQUFlwUFBZcFBQWUBQUFkAYGBosGBgaFBQUFfAYGBnEFBQVkBQUFVgUFBUgEBAQ6BAQELAMD + AyEDAwMXAQEBEAAAAAoAAAAGAAAAAwAAAAIAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMK/qu/DwKv/xsSv/8jFsP/Fwqz/vbmj/66okv+UjXf/b2dV/1BJ + O/80LyX/JCEb/x8eHP8dHR7/HyAi/yQlJv8xMDD/RURD/1pYV/9ycG//gX9+/4B/f/91dHT/YGBg/1BP + T/9BQUH/OTo6/zY3N/+gmZX/tayj/9HMx//a1dL/2dTS/9nV0v/a1dP/3tnY/8rFwv+AenT/f3hy/4F6 + dP+AenT/hX12/6aZjv+uoZb/sqab/72xp/90b2r/Kyss/05OTv8nJyf/Ghoa/yMjI/86Ojr/Pj4+/ycn + J/8LCwv/CwsL/wcHB/8DAwP/AAAA/wAAAP8AAAD/FhUS73BpWOaLgWn5hnph/XNoUfJVTT3WLSslsQgI + CJgAAACUAgIDmAUFBZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZgFBQWXBQUFlQUF + BZIGBgaNBQUFhwUFBX4FBQV0BQUFZwUFBVoFBQVMBAQEPQUFBTAEBAQkBAQEGQEBAREAAAALAAAABwAA + AAQAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxsOv8MG9 + pv+qo4v/kIVu/39zXv9rYlP/UUpB/x4cF/8ZGBf/FRYX/xobHP8iIiL/MzIx/0dFQ/9eW1j/cW5r/3h1 + dP9ycG//ZWRj/1FQUP9CQkL/NTU1/zExMf8vLy//MjIy/zg4OP9HRkb/V1ZV/6efmv+xp57/0MrH/9nU + 0P/Z09D/2dTR/9rV0v/e2df/ycTB/4B6dP9+eHL/gHp0/4B3av+AeXH/nJKJ/7Sonv+1q6L/vLKp/7qx + qv9BPz3/Li4v/0lJSf8hISH/FhYW/xEREf8ODg7/DQ0N/w0NDf8JCQn/BAQE/wEBAf8AAAD/AAAA/wkJ + B/97dGD/lIhu/35yWP90ZUv/cWJI/3RlSf+FeWD/bWVS5j88M7wODw2cAAAAkwEBApcFBQWZBQUFmQUF + BZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZkFBQWYBQUFlwUFBZYFBQWTBQUFjgUFBYkFBQWBBQUFdwUF + BWwFBQVeBQUFUAUFBUEEBAQ0BAQEJgQEBBwCAgITAQEBDQAAAAgAAAAEAAAAAgAAAAEAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6b1nzV01C/1xfXf9ngIH/X5us/23F4f9Sg5b/HRgW/zYz + Mf9JRkP/X1tX/25pZf9uamf/ZWNg/1VUUv9CQkH/NTU1/ywsLf8qKir/Kikp/zAwMP85OTn/Tk1N/2Ri + Yv93d3b/hYSD/4SDgv96eHj/qaGa/66kmv/Qysb/2dPQ/9jSz//Z09D/2tTR/93Y1f/JxMH/gHl0/354 + cv+AenX/fnRi/393af+Jgnz/s6if/7uxqf++ta7/yL+4/7KqpP8vLy3/JCUl/0BAQP8lJSX/ExMT/xAQ + EP8ODg7/CwsL/wcHB/8CAgL/AAAA/wAAAP8AAAD/Ojct/5SIb/97bVX/bmBG/25gRv90Zkz/dmlQ/3hq + UP9uYkj/fnRc/4Z+au9NST3GGRgVoQAAAJMAAAGWBQUFmQUFBZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUF + BZkFBQWZBQUFmAUFBZcFBQWWBQUFlAUFBZAFBQWLBQUFgwUFBXoGBgZvBQUFYgYGBlQFBQVFBQUFNwUF + BSoFBQUfAgICFgICAg4AAAAJAAAABQAAAAMAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEw8 + G40rKWT/erT2/4L1//9n6f//j/D//6i7wP9hWFH/Yl1Z/1dUUf9EQkH/NDQz/ykpKv8kJSX/IyQk/yYm + Jv8tLS3/Ozo5/09OTf9lY2L/fHt6/4WDg/+Af3//c3Ny/15eXv9QUFD/RERE/z4+P/+akYv/rqSZ/9DK + xv/Y09D/19LP/9jT0P/Y09H/3dfV/8nDwP+AenT/f3hy/4F6df9/dmb/gHZk/4B4b/+elY7/wbix/8O6 + tP/Iv7r/1MvF/7q0r/9SUE7/JSUk/ycoKP8iIiP/GRkZ/xEREf8JCQn/BAQE/wAAAP8AAAD/AAAA/wAA + AP9OSTv/i31j/3BhR/9wYkf/e25U/4J3X/+IfWT/gnZd/2laQf9PRDL/g3Ze/4J2W/96cVv0XllNzh0d + GaYAAQGUAAABlgUFBZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZgFBQWXBQUFlgUF + BZQFBQWRBQUFjAUFBYUEBAR6AQEBbAEBAV0BAQFPAwMDRQUFBToFBQUtBQUFIgQEBBgBAQEQAAAACgAA + AAYAAAAEAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZFxEFD07kPZ+vP//eOz//4Lk+//L5ev/p5+a/yEg + IP8fHyD/HB0e/x0dHv8jIiP/LCsr/z08Ov9SUE3/aWZk/3l2c/96eHb/c3Fw/2VkY/9QT0//RERE/zg4 + OP81NTX/NDU1/zk5Of9AQED/U1JR/6Wdlv+topj/0MnF/9fSzv/X0c7/19LP/9jT0P/c19T/yMPA/4F7 + dP+AeXL/gXp1/392aP+BeW//gHZm/4R9dv+yqqP/zcO+/8zEv//Qy8b/2tTR/9zX1P+0sK7/cW9t/z07 + Ov8aGhr/BQYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0tFNv+Bc1j/bl9E/3lsUv+Ge2L/koly/5qR + ev+UinL/e25V/0Y7Kv9vYUr/a11D/1lOOP+Sh27/hXtj+VlTQ9YiIB2nAAAAlQUFBZkFBQWZBQUFmQUF + BZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZgEBASYBAQElgICApICAgKPBQUFkhAQEJofHx+vIiIitR8f + H6oRERF/BAQEVgQEBEsFBQU/BQUFMQQEBCUFBQUaAgICEgAAAAwAAAAHAAAABAAAAAIAAAABAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAB0c24UeXaY9a7D3P/N2Nb/zs3J/97Syf+emZL/FRUV/yopJ/9APTr/VVFO/2lkYf9ybWr/b2xp/2Vi + Yf9UU1L/QkJC/zc3N/8vMDD/LS4u/zExMf85ODj/R0ZG/19dXf9vbm7/gH5+/4eFhf+DgYD/sqmj/6+l + m//OyMT/19HO/9fQzf/X0c7/2NLP/9vX0//Iw7//g3t1/4B6c/+Ce3X/gHZo/4N8df+CeGz/gHZn/42E + fv/Fvrn/2tTQ/9XQzf/Y1NL/3dnY/+He3f/j3tv/0cvH/6+ppP+HgX3/YV1a/w0MDP8AAAD/AAAA/wAA + AP8AAAD/Lioh/3prUP9wYkn/f3Na/5CGbv+hmoP/rqiS/6ihi/+Jf2n/YVZE/4N3X/9zZkv/Sz8t/29i + TP93aU7/a19H/4mAa/YuKySxAAAAkwQEBJkFBQWZBQUFmQUFBZkFBQWZBQUFmQQEBJcCAgKVAgICkwYG + BpgMDAyhFxcXtiMjI80yMjLmRkZG+UxMTP9ISEj/QkJC/zk5OfojIyPBCAgIcQQEBFwGBgZRBAQEQwUF + BTUFBQUoBAQEHQMDAxQBAQENAAAACQAAAAUAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1rahaqo5n12czB/9PIwP/SycH/1c7H/7Ot + pv9sZmH/cmxo/2FcWf9UUU//QkFA/zU1Nf8sLC3/Jygo/ygoKP8wMDD/Ojk5/09OTf9lY2L/eXd2/4SD + gv+Hhob/fXx8/21tbf9ZWVn/S0tL/z4+P/+poZz/tqyi/87Iw//W0c3/1tDN/9bRzv/X0c//3NXT/8jC + v/+DfHX/gnpz/4N8dv+Ad2j/g3x0/4V9d/+CeWv/f3Vn/46Gf//Iw7//5+Tj/+Ti4f/i4OD/39zc/9rX + 1f/X0tD/1c/J/9fNx//FvLb/GxoY/wAAAP8AAAD/AAAA/wAAAP8HAQD/W043/3lqTv+Cdl3/lItz/6ii + jP+7t6L/wLym/4uBbf+KgG7/npV+/4qBaP9XTDn/dmpU/3BhRv9NQCv/cmZQ/3RoU+8cGhemAAAAlAAA + AJQDAwOYBQUFmQUFBZgEBASUCAgInRUVFbIkJCTMODg45DQ0NPgyMjL/MzMz/0NDQ/9NTU3/RUVF/z4+ + Pv85OTn/NjY2/zQ0NP8jIyPaCAgIgAUFBW4FBQVkBgYGVgUFBUcFBQU5BQUFLAQEBCECAgIXAQEBDwEB + AQoAAAAGAAAAAwAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAbmxrFqSdmPXTysP/0MrC/9HJwv/Uzcb/t7Ks/21sbP9nZ2f/S0xM/zAwMf8lJSX/LS0s/z48 + O/9WU1H/aGVj/3h2c/99enj/d3Z0/2xra/9ZWVj/SEhI/zw8PP81NTX/ODg5/0FAQf9PTk7/YmFh/7u0 + sP+4r6b/zcbC/9bQzP/W0Mz/1tHN/9fRzv/b1dL/yMK//4R9dv+Ce3T/g3x2/4F3aP+EfXX/hX52/4Z+ + d/+Eemz/gHVl/4Z+dP+vqaT/3NrY/+3t7f/v7e7/6Obl/9/c2//Z09D/zsbB/7auqP8aFBD/AAMF/wAO + F/8AJ0H/AD9r/wAcOP8OEBD/WEct/4NyU/+ViW7/oJiB/6Sdh/+Ph3H/jYJw/7y4pP+3spz/mJB6/29j + UP+TinP/hXlf/1FFMf9mWkX/dGVK/4t8bfltZFvYMCwosQUGBZgAAACSAgIClhsbG8UxMTHxNjY2/0ND + Q/8zMzP/ISEh/yAgIP8oKCj/SkpK/0hISP8/Pz//Q0ND/z4+Pv8xMTH/Kioq/ywsLP8bGxvYBQUFhAUF + BX4GBgZ0BQUFaAUFBVoFBQVMBQUFPgUFBTAFBQUkBgYGGgMDAxIBAQELAAAABwAAAAQAAAACAAAAAQAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABubmsWo52Y9dLJwv/QycH/0cnC/9XO + xv+wq6X/Xl1d/25sa/+Cf33/i4iF/4SBfv+EgH3/d3Nw/2JgX/9XVVT/RUVE/zk6Ov8wMTH/Ly8v/zo6 + Ov9HRkb/X11e/3Jxcf+Bf3//iYeH/4ODgv92dHT/wby5/7y0q//NxsH/19DM/9bPy//W0Mz/1tHN/9rV + 0f/Iwr7/hX53/4N8df+FfXf/gXho/4V+df+Gfnf/h393/4iAeP+GfXL/gndn/350ZP+If3P/oZqS/7Ot + pv+8trH/urWw/62moP+imJD/k4d9/xdhkv8Ac8P/AI7v/wCZ//8Amv//AG3X/wBXr/8BO3L/KDlF/1tQ + Pv9vXD7/aFg+/3JlUP+gmIP/tbCZ/7KumP+GfGj/pZ2K/6ymj/+ZkXn/ZFlG/4N3Yv94a1H/jn9v/6uc + jv+omIv/g3dt5kU/ObocGxrJICAh/yIiI/8rKyv/PDw8/xQUFP8TExP/EBAQ/ysrK/9NTU3/QUFB/1NT + U/+BgYH/urq7/5aWl/89PT3/ISEh/yIiIv8PDw+5BAQEigUFBYkEBAR+AgICcwEBAWUBAQFXAgICSgMD + Az8FBQU0BQUFKAUFBRwDAwMUAAAADQAAAAgAAAAFAAAAAwAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAG9uaxajnJf10cfB/9DIwf/QycH/08zE/722r/+NiYX/lJCN/4+Miv+GhIP/fn59/3R0 + dP9jZGT/T09Q/0JDQ/8+Pj3/TkxM/2JgX/92dHL/g4GA/4KCgf97enr/bm1t/1lZWf9KSkr/RERE/0FC + Qv+8uLb/wbqy/8zGwP/V0Mv/1c/L/9bQzP/X0M3/2tTR/8jCvv+Gfnf/hH11/4V+d/+CeGj/hn52/4d/ + d/+Hf3f/iH94/4mAef+JgXn/iH50/4V7bP+Bd2f/f3Rl/4F2Zv+Cd2f/gnZl/4Z6af+NgXf/F4fP/wCS + 9v8Amv//AJn//wCU/f8Abtf/AG/a/wBy4P8AadL/AFao/xVFb/88R0v/bmFI/4d0Vf97blT/bWJN/5SL + d/++u6X/wb2o/5OKdf+LgW7/o5uE/5CGb/+ThHX/pJWI/6WWif+rm43/rJyO/5SHfP9iWlT/KScl/ykq + K/8kJSX/AgIC/wUFBf8CAgL/LCws/0lJSf9ISEj/cnJy/1RUVf+FhYb/8vP0/7u7u/80NDT/Gxsb/xcX + F+4EBASVBAQEjwsLC5gaGhqpKioqwSoqKsUfHx+jCwsLbwMDA04FBQVGBQUFOQQEBCsEBAQgAwMDFgEB + AQ4AAAAJAAAABQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb25rFqKclvXRx8D/0MjA/9DI + wf/UzcX/ta+p/2RkZP9iYmP/X2Bg/2NjY/9vbm3/eXh3/4yJiP+cmpf/op+d/5+dnP+cmpr/iYiH/3Rz + c/9dXV3/VFRU/05PT/9TU1P/X15e/3BwcP9/fn//lJKS/9jV0//BurL/y8S//9XPy//Vz8v/1dDL/9bQ + zP/Z1ND/y8TB/4iAef+FfXb/hn54/4J4af+Hf3b/iH94/4iAeP+JgHj/iYB4/4qBef+Lgnr/jIN7/4yD + e/+Ng3r/jYN5/42Def+OhHr/h3xr/4+CeP8XebX/AIfi/wCX/v8AmP//AJT8/wBv1/8AbdX/AG7W/wBw + 2f8AdOH/AHPi/wBs0/8FWaP/I1B0/0VKSP90ZUz/mIhp/5mNc/+DemX/iX9s/8G9qP+8uKH/m5F//5uM + fv+llon/pJWI/6SViP+klYj/qJmL/6ycjv+cjYH/gndv/z47OP8HCAf/CgoK/wgICP8tLS3/Q0ND/1RU + VP+EhIT/e3t7/2FhYf+tra3//v7+/4aGhv8XFxf/FRUV/xwcHNgsLCzdPj4+9ExMTP9JSUn/RERE/z4+ + Pv8yMjLuFhYWngQEBGEFBQVZBQUFSgUFBTwFBQUuBAQEIQEBARYAAAAOAAAABwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABvb2wWopyW9dHHv//PyMD/z8jA/9TNxf+xrKb/ZmRj/316eP+Kh4T/lJCO/5uX + lf+YlZP/j42M/4iHh/99fX3/dnd3/3N0dP90dHT/d3h3/4GBgf+Lior/m5ub/6inp/+wr6//s7Ky/6ur + qv+gn5//29rY/9DKw//Lxb//1c/L/9XPy//Wz8v/1tDM/9jTz//RzMj/i4N7/4Z+dv+Hf3j/gnhp/4h/ + d/+IgHj/iYB4/4mBef+KgXn/ioF5/4uCev+Mg3r/jYN7/42Ee/+OhHv/j4V8/5CGfP+IfWz/j4N4/xd3 + rv8Ahd3/AJf+/wCY//8AlPz/AHDY/wBu1v8AcNj/AHDY/wBx2f8Actr/AHTd/wB55v8AduT/AGzO/wla + n/8nTmn/QEI9/2hZQf+Yi3D/n5eA/1ZUSv94bWP/q5uO/6SViP+klYj/pJWI/6SViP+klYj/pJWI/6aX + iv+vnpD/mIuA/yQkI/8bGxr/Gxsb/zQ0NP8+Pj7/WVlY/5SUlP+Ojo//kpGS/3Z2dv/IyMj/srKy/y0t + Lf8ODg7/Hx8f/zU1Nf9JSUn/SUlJ/0FBQf85OTn/NDQ0/zMzM/8vLy//FBQUrgQEBHAFBQVpBQUFWgUF + BUoFBQU5BAQEKQICAhoAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBvbBaim5b10Ma//8/I + wP/PyMD/0svD/7y2r/+JhYL/h4SC/358e/90c3P/ampr/2hoaP9mZ2f/a2tr/3Z1df+BgID/kI+O/6Cd + nP+opqX/qqqo/6inpv+cnJz/k5OT/4iHiP+FhYX/kJCQ/5+fn//m5eT/2NPO/8vEv//Vz8v/1c/K/9bP + y//W0Mz/2dLP/9HLx/+MhHz/h393/4iAef+DeWn/iYB3/4mAeP+JgXn/ioF5/4qCef+Lgnr/jIJ6/4yD + ev+NhHv/joR7/4+FfP+QhXz/kIZ9/4l9bP+Qg3j/F3as/wCE3P8Alv7/AJj//wCU/P8Acdn/AG/X/wBx + 2f8Actr/AHLa/wBz2/8AdNz/AHbe/wB33/8AeuP/AH3r/wB66P8Abcz/BVWW/xk7Vf8YHiH/IRYL/4Bt + XP+kk4T/pZaK/6aXiv+llon/pJWI/6SViP+klYj/pJWI/6majf+ajoP/ODc3/y4uL/8vLy//PT09/z4+ + Pv9NTU3/hoaH/2hqa/+UlZb/dnZ2/5GRkf+pqan/RUVF/wsLC/8PDw//MzMz/0xMTP9CQkL/RUVE/1tb + W/9NTU3/Li4u/ykpKf8mJib9DQ0NoQQEBHYFBQVvBQUFXwUFBU0FBQU4BQUFJgICAhYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAcG9sFqGblfXQxb7/z8fA/8/IwP/UzcT/sKqk/1ZXWP9cXFz/X19f/2pp + aP93dXT/hYOB/5SRj/+dmpj/oJ6c/5+dnP+Tk5P/jIyM/4OEhP+AgID/iYiH/5WTkv+op6X/wb+9/9nX + 1f/s6+r///7+///////Z1dD/y8O9/9XPy//Vzsr/1c/L/9bQy//Z087/0cvH/4yEfP+If3f/iYB5/4N5 + av+JgHj/ioF5/4qBef+Lgnn/i4J6/4yDev+Mg3r/jYN7/46Ee/+PhXz/j4V8/5CGfP+Rhn3/iX1s/46D + ev8Wdq3/AITb/wCW/v8AmP//AJT8/wBz2/8Acdn/AHLa/wBz2/8AdNz/AHTc/wB13f8Adt7/AHjg/wB5 + 4f8AeuL/AHvj/wCA6v8Ag/H/AH7q/wVzzf85fbD/XnSC/3tvYv+Od2L/nIh1/6SUhv+nmIv/pZaJ/6SV + iP+klYj/qZuO/5yQhv9DQkH/OTo6/zo6Ov9DQ0P/RERE/zU1Nf+EhIT/ZWVm/25vb/9ubm7/c3Nz/4iI + iP9JSUn/CgoK/woKCv86Ojr/SEhI/0hISP9qamr/lpaX/9DQ0f+Ki4v/LS0t/yAgIP8aGhrlBQUFfAUF + BW4GBgZgBQUFTwUFBTsFBQUoAwMDGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwb2wWoZqV9c/F + vf/PyL//z8i//9PLw/+1rqj/dHFv/4iDgP+RjYr/lJGN/5OQjf+HhoT/fn5+/3l5ef90dHX/e3p5/4WD + gP+VkY7/qqSf/721sP/Mxr//29XQ/+Te2v/q5eL/8Ozo//Lw7v/39vX//////+Dd2f/Kw7z/1c/K/9XO + yv/Vz8r/1tDM/9jSz//Ry8f/jYV9/4mAeP+KgXr/hHlq/4qBeP+Lgnn/i4J6/4yCev+Mg3r/jYN6/42D + e/+OhHv/joV8/4+FfP+Qhnz/kYZ9/5GHff+LfWz/h4R//xB2sf8Ag9r/AJb+/wCY//8AlPz/AHTc/wBy + 2v8Ac9v/AHTc/wB13f8Adt7/AHbe/wB33/8AeOD/AHri/wB74/8AfOT/AH3l/wB/5/8AgOn/AITv/wCE + 8/8AhO//FoDS/zl4pv9fb3b/f3Bf/5V+av+ijn3/p5eK/6eYi/+rnJD/mo+E/zo5Of8yMjP/NDQ0/zY2 + Nv9LS0v/Ly8v/1VVVf+Kior/ampq/1ZWVv9YWFj/cXFx/zo6Ov8GBgb/BgYG/zs7O/9CQkL/YmJi/29v + b/9TU1P/pKSl//7+/v+Hh4f/HBwc/xoaGv8MDAyWBAQEVAYGBk4FBQU+BQUFLgUFBR8BAQESAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFvbhagmpT1z8S8/8/Hv//PyMH/1MvD/7u1rv93dHP/b25t/2tr + av9naGj/c3Jy/4GAfv+RjYr/oZuW/6yjnP+vpZv/tamg/72yqP/CuLD/yr+3/87Gvv/TzMX/2tTQ/+Ld + 2f/l4d7/6OXi/+jl4v/g3dr/x8K7/83GwP/Vzsr/1c7K/9XPyv/W0Mv/2NLO/9HLx/+Ohn3/ioF4/4uC + ev+Eemr/i4J5/4yCev+Mg3r/jIN6/42De/+NhHv/joR7/46Ee/+PhXz/kIZ8/5CGff+Rh33/kod+/4t9 + bP+IhH//EHaw/wCD2v8Alv7/AJj//wCU/P8Adt7/AHPb/wB13f8Add3/AHbe/wB33/8AeOD/AHnh/wB5 + 4f8Ae+P/AHzk/wB95f8Afub/AH/n/wCB6f8Agur/AIPr/wCE7f8Ah/P/AIn3/wKI7v8YgdD/PXWc/2Vu + cf+GdGT/nYZy/6+cjP+ZjoT/LCws/ysrK/8sLCz/KSkp/0BAQP9CQkL/JiYm/2BgYP9qamr/UVFR/1pa + Wv9oaGj/FxcX/wcHB/8GBgb/Ozs7/0BAQP9ycnL/jo6O/4ODhP9tbW3/0dHR/9TU1P9AQED/ERER/xAQ + EMMEBAQ1BQUFMQUFBSYFBQUbAQEBEgAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcnBtFqGa + lfXQxb7/0cnC/9HLw//Wzsf/uLKs/3t6ev+WlZP/r6yq/8O/u//MxsH/0cnD/9DFvv/Iv7b/wbiv/7uw + p/+1qaD/tKmf/7qwp/++taz/wrix/8e+tv/Du7P/v7ev/762rv+5sqj/ubKo/8G4sP/Hv7j/1M3I/9TO + yf/Vzsn/1c/L/9bQy//Z087/0svH/4+Gfv+LgXn/jIN7/4V6av+Mgnn/jIN6/42De/+NhHv/jYR7/46E + e/+OhXz/j4V8/5CGfP+Qhn3/kYd9/5KHff+SiH7/i35s/4iFgP8QdrD/AIPa/wCW/v8AmP//AJX9/wB3 + 3/8Add3/AHbe/wB33/8Ad9//AHjg/wB54f8AeuL/AHvj/wB85P8AfeX/AH7m/wB/5/8AgOj/AIHp/wCD + 6/8AhOz/AIXt/wCG7v8AiPD/AInz/wCM+f8Ajv3/BIvv/xuAyf9Dc5L/cXd2/4V2aP85MSz/IR4c/yMi + Iv8iIiL/JCQk/0pKSv8wMDD/Hx8f/0ZGRv9dXV3/WFhY/yUlJf8ICAj/BAQE/w4ODv8/Pz//Ozs7/3R0 + dP+EhIb/lJSW/4aGhv+MjIz/wsLC/2pqav8PDw//EBAQ4QYGBiwDAwMUAgICEQEBAQwAAAAHAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxcG0XopyX9tLJwf/TzMb/083I/9LMxv/a1ND/8O3s//Lu + 6//r5+P/5N/b/97Z1P/X0cv/08vE/8/Gv//Ivrf/vLOr/7Wqof+rn5X/pZmO/6yil/+vppv/s6qg/722 + rP/CurH/ycG4/9HKw//TzcX/1M7H/9XPyf/Uzcj/1M7J/9XOyv/Vz8r/1tDL/9jSzv/Sy8f/j4d+/4uC + ef+NhHv/hXtr/42Cev+NhHv/joR7/46Ee/+OhHv/j4V8/4+FfP+QhXz/kYZ9/5GHff+Sh33/koh+/5OI + fv+Lfmz/iIWA/xB2sP8Ag9r/AJb+/wCY//8Alf3/AHjg/wB33/8Ad9//AHjg/wB44P8AeeH/AHri/wB7 + 4/8AfOT/AH3l/wB+5v8Afub/AIDo/wCB6f8Agur/AIPr/wCF7f8Ahu7/AIfv/wCI8P8AivL/AIvz/wCN + 9f8Ajvj/AJH//wCT//8Gje3/GHq9/zBjh/8cJi7/GhMP/xoTDv8YFhT/JSUk/0hJSf8oKCj/EhIS/xAQ + EP8MDAz/CgoK/wgICP8CAgL/Kioq/0hISP84ODj/YGBg/3t8ff9lZmf/hISF/3Fxcf+Wlpb/eHh4/xAQ + EP8NDQ31AwMDMgAAAAIAAAAGAAAABAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJy + bxOhm5bt1MvE/9XPyv/Vz8v/083I/+Db1//5+Pb/8u/t/+/s6v/q5+P/39rW/9XQyv/Jwrv/ubGn/7Sr + ov+zqZ//s6qg/721q//EvbP/ycK5/9DJwf/Sy8P/0svD/9PMxP/SzMT/0cvD/9HKw//Sy8T/08zG/9PM + xv/SzMf/08zH/9TNyP/Vz8r/2dPO/9HLx/+Qh3//jIN6/46EfP+MgHD/kod+/46Ee/+OhHv/j4V8/4+F + fP+QhXz/kIZ8/5CGff+Rh33/kod9/5KIfv+TiH7/lIl//4x+bP+JhoD/EHaw/wCD2v8Alv7/AJj//wCV + /f8AeuH/AHjg/wB54f8AeeH/AHri/wB64v8Ae+P/AHzk/wB95f8Afub/AH7m/wB/5/8Agen/AILq/wCD + 6/8AhOz/AIbu/wCH7/8AiPD/AInx/wCK8v8AjPT/AI31/wCO9v8AkPj/AJH5/wCU/v8Al///AJn//wOL + 6P8IZaL/DjpW/xIXG/8QCAP/IRoW/z49PP8qKir/FhYW/w8PD/8JCQn/AgIC/xcXF/85OTn/RERE/0FB + Qf88PDz/iYmJ/2xtbv9tbm7/W1tb/3Fxcf9paWn/Dw8P/woKCvkBAQEvAAAAAAAAAAIAAAABAAAAAQAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdnVyDJ6aldvVzcX/19HN/9fSzf/V0Mv/4t3a//b0 + 8//p5uL/0c3H/8XAuP+/uLD/urKp/7+3sP/IwLr/zca//9TOyP/X0cz/1s/J/9TNx//Sy8T/z8nB/8/H + vv/Oxr7/zsa+/8/Hv//RycH/08zE/9XOyP/X0cz/3djU/+Ld2v/k4N3/5ODd/+Hc2f/d19T/0szH/5GH + f/+Qhnz/hHtz/0tEO/9za2T/koh//4+FfP+QhXz/kIZ8/5CGff+Rhn3/kod9/5KHfv+SiH7/k4h+/5SJ + f/+UiX//jH5s/4qGgf8QdrD/AIPa/wCW/v8AmP//AJX9/wB74/8AeuL/AHri/wB74/8Ae+P/AHzk/wB9 + 5f8AfeX/AH7m/wB/5/8AgOj/AIHp/wCC6v8Ag+v/AITs/wCF7f8Ahu7/AIjw/wCJ8f8AivL/AIvz/wCM + 9f8Ajvb/AI/3/wCQ+P8Akvr/AJP7/wCV/f8Alv//AJr//wCg//8CnP//BYfe/whbkv8IK0H/DxAR/yIZ + E/8iHBj/FxYV/xISEv8ZGRn/Ly8v/zAwMP8zMzP/TExM/ysrK/9WVlb/fn5+/1RUVP9JSUn/ZmZm/0lJ + Sf8ICAj/BwcH+AEBASwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAB1dHEMn5uW3NbPyP/Z1M//2dTQ/9nU0P/c2NP/y8W+/8S8tf/MxL7/z8nC/9bPyv/b1dH/29TQ/9rT + z//Z0s3/1tDL/9TOyf/SzMf/0szG/9TNx//Vz8j/2dPN/9/a1f/k4dz/6+jl//Lv7f/39fT/+ff3//f3 + 9v/x7+3/6ufl/+Pf3P/d2NP/2tTQ/9nTzv/TzMj/lImB/4+Fe/+OhXz/b2ZZ/0VAO/+Adm7/k4l//5CG + ff+Rhn3/kod9/5KHff+SiH7/k4h+/5SJfv+UiX//lIl//5WKf/+Nf23/ioaB/xB2sP8Ag9r/AJb+/wCY + //8Alf3/AHzk/wB74/8AfOT/AHzk/wB95f8AfeX/AH7m/wB+5v8Af+f/AIDo/wCB6f8Agur/AIPr/wCE + 7P8Ahe3/AIbu/wCH7/8AiPD/AIry/wCL8/8AjPT/AI71/wCP9/8AkPj/AJL6/wCS+v8AlPz/AJX9/wCX + //8Bl///Apj//wOa//8Env//BKP//wad/v8Ff83/BE5+/xk2SP8tKyv/SkE7/zItK/8lJCP/JiYm/yQk + JP89PT3/QkJC/yEhIf9PT0//ampq/2hoaP9eXl7/FxcX/wcHB/8EBAThAQEBEwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJwbgyemZTc19DK/9rV0P/c19L/3NfT/9vW + 0v/d2NT/3tjU/93X1P/d19P/3NbR/9rU0P/Z0s7/2NLN/9rTz//b1dH/39vX/+bi4P/t6uj/8/Hv//n4 + +P/9/fz//f39//z8/P/49vX/7+3q/+fj3//e2dX/19DL/9TMx//RysT/083H/9jRzP/f2NP/3dfS/9TO + yv+bkYj/j4R6/5CGff+YjHv/ZF1V/25mXv+VioD/kod9/5KHfv+SiH7/koh+/5OIfv+UiH7/lIh+/5WJ + f/+VioD/loqA/41/bf+Kh4H/EHaw/wCD2v8Alv7/AJj//wCV/f8Afub/AH3l/wB95f8Afub/AH7m/wB/ + 5/8Af+f/AIDo/wCB6f8Agen/AILq/wCD6/8Ahe3/AIbu/wCH7/8AiPD/AInx/wCK8v8AivL/AIz0/wCN + 9f8Ajvf/AI/3/wCR+f8Akvr/AJT8/wCV/f8Alv7/AJf//wGY//8Cmf//A5r//wSa//8Fm///Bp7//wei + //8Jp///DJ/9/xKCyP8ucJv/N0pW/xwYF/8dFQ//HBkW/x0cHP9DRET/NDQ0/xcXF/8jIyP/Kioq/xMT + E/8JCQn/BgYG/wEBAa0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAbmxpDJuWkd3X0cr/3NfT/97Z1f/e2dX/3tnV/93Y1P/d2NT/3djU/9zX0//d2NT/39rX/+Tf + 3P/p5uP/7+zq//Xz8v/39/b/+Pj3//f29f/08vD/7ero/+fj3//f2db/2NHM/9HKw//QyL//0cnC/9fQ + yf/e19L/5uDb/+zn4//l4d//2NXU/8LBwP/Ev7v/2NLN/5uSif+PhXv/k4l+/3x3cP9ZVlX/fHZw/6GX + jv+TiH7/kYZ7/5KHff+UiH7/lIh+/5WJf/+fk4n/nJCF/5eLgP+Win//jX9t/4yIgf8RdrD/AIPa/wCW + /v8AmP//AJX9/wB/5/8Afub/AH/n/wB/5/8Af+f/AIDo/wCA6P8Agen/AILq/wCD6/8AhOz/AITs/wCG + 7v8Ah+//AIjw/wCJ8f8AivL/AIvz/wCM9P8AjfX/AI72/wCP9/8Akfn/AJL6/wCT+/8AlP3/AJb+/wCX + //8BmP//Apj//wOZ//8Emv//BZv//wab//8HnP//CJ3//wme//8KoP//CaX//wmm//8Qnvf/EXq6/xNM + bv8UIiv/Ew0J/xkRDP88OTf/MjIy/xUVFf8NDQ3/DAwM/wkJCf8DAwP/AAAA5AAAAI4AAAAvAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABta2gLmpWQ2tjSy//d2dX/3trX/9/a + 1v/f2tb/4NvY/+Ld2v/l4d7/6efk/+3r6f/x7+7/8fDu//Lw7v/v7Ov/6+jm/+bk4P/h3dr/3NfT/9jS + zf/W0Mr/2NDL/93W0f/j3Nj/6OPe/+vn4v/f3Nn/0M7M/7W0tP+UlJP/c3Ny/1pZWP9CQD7/IiEf/4F/ + e//h29f/nZOL/5CFfP+YjoP/SUVA/yUjIf9NTEr/iYWD/56Zlf+ooJn/n5SK/5SIff+Thnz/lIl//2xo + ZP9ybWn/lYyE/56SiP+PgG3/jIiB/xF2sP8Ag9r/AJb+/wCY//8Alf3/AIDo/wB/5/8AgOj/AIDo/wCB + 6f8Agen/AILq/wCC6v8Ag+v/AITs/wCF7f8Ahu7/AIbu/wCI8P8AifH/AIry/wCL8/8AjPT/AI31/wCO + 9v8Aj/f/AJD4/wCR+f8Ak/v/AJT8/wCV/f8Al///AZf//wGY//8Cmf//A5r//wSa//8Fm///Bpz//wed + //8Inv//Cp7//wqf//8LoP//DKH//wyj//8Oqf//D6n//xCZ7f8Rcav/Dj1Z/w4XHf8lHRj/KSIe/xwZ + GP8ODg7/BQUF/wAAAP8AAAD/AAAA/wAAAPcAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAHBubAOVkY3F2NLN/9/a1//i3tv/5eHe/+jk4v/q5+X/7Ono/+zq6P/s6ef/6ebk/+bi + 3//j39z/39vX/93X1P/d2NP/4NvX/+bh3f/q5uP/8e3q//Lv7P/g3dz/zs3M/62srP+KiYn/aWho/1RS + Uf9IRED/SEQ+/1BKQ/9VTkf/W1RO/19ZUv88ODP/fXl3/+Te2v+kmpL/kIV7/5SJf/9zamL/opOH/56P + gf+JfHH/Pjw6/1ZWV/+GhIT/qqWi/7CnoP+hloz/bGNb/zk0Mf9ZU07/fXZv/5WLf/+PioT/EXaw/wCD + 2v8Alv7/AJj//wCV/f8Agur/AIHp/wCC6v8Agur/AILq/wCD6/8Ag+v/AITs/wCF7f8Ahe3/AIbu/wCH + 7/8AiPD/AInx/wCK8v8Ai/P/AIz0/wCN9f8Ajvb/AI/3/wCQ+P8Akfn/AJL6/wCT+/8Alf3/AJb+/wCX + //8BmP//Apn//wOZ//8Emv//BZv//wab//8HnP//CJ3//wme//8Kn///C6D//wyg//8Nof//DqL//w+j + //8QpP//Eaf//xKt//8Tq///EZXh/wxlmf8LM0v/CQ8T/wIAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAamhlAZGOisDb1dH/5N/c/+fj + 4P/n4+L/5uPh/+Xi3//j393/4t7b/+Hd2f/j39v/6OTh/+7q5//y7+z/+PXz//Hv7f/b2tn/xsbF/6Sk + pP96enn/WVlY/z49PP87NzT/Lion/0hCPP9aUkv/aGBY/3RrYv98cmn/fHJq/3ZtZf9tZl7/amNc/zw3 + M/9taWf/5+Hc/6aclP+Rhnz/lYl//3tyav+0qJ7/saOY/6GUiP92bmT/XFRN/z46Nv8+PDz/ZWZm/5qZ + mP+7tbH/s6mi/5eMgv9+c2n/j4R4/4+LhP8Sd7D/AIPa/wCW/v8AmP//AJX9/wCE7P8Ag+v/AIPr/wCD + 6/8AhOz/AITs/wCF7f8Ahe3/AIbu/wCG7v8AiPD/AIjw/wCJ8f8AivL/AIvz/wCM9P8AjfX/AI72/wCP + 9/8AkPj/AJH5/wCS+v8Ak/v/AJX9/wCW/v8Al///AZj//wKY//8Dmf//BJr//wSb//8Fm///Bpz//wed + //8Inf//CZ7//wqf//8LoP//DKH//w2i//8Oov//D6P//xCk//8Rpf//EqX//xOm//8Tq///FLH//xSr + //8RjdD/DF6L/wUlN/8BAwX/AAAA/wAAAP8AAAD/AAAASgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAjYqGrdrU0f/i3tv/49/c/+Pf3f/n4+H/7+vp//Tx7v/39fP//fv5/+3s + 7P/X19b/vr6+/5WVlf9tbGz/T09O/zg3Nf8qJyT/Mi4q/zkzLv8WExH/KSYj/yglIv8yLir/Z19Y/2tj + W/9tZV3/cGhg/3RrYv92bWX/eG9n/3RsZP9waWH/Qjw3/2hlY//q5OD/raOb/5GGe/+ViX7/gXlz/8jA + uv/DubH/q6CW/3VtY/9tZV3/amJa/1pTTP8+OTT/LCkn/0FBQf93dnj/q6mo/8G7t/+bjn7/jIeB/xN4 + sP8AhNr/AJf+/wCY//8Alv7/AIXt/wCE7P8AhOz/AIXt/wCF7f8Ahe3/AIbu/wCH7/8Ah+//AIjw/wCI + 8P8AivL/AIry/wCL8/8AjPT/AI31/wCO9v8Aj/f/AJD4/wCR+f8Akvr/AJP7/wCU/P8Alf3/AJf//wGX + //8BmP//Apn//wOa//8Emv//BZv//wac//8HnP//CJ3//wme//8Kn///C6D//wyg//8Nof//DqL//w+j + //8QpP//EaT//xKl//8Tpv//E6f//xOn//8UqP//Far//xew//8YtP//GKz//xSLyv8NVHv/BR0r/wAA + AP8AAABGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABta2io3dnV/+Tg + 3v/18/H//fz7/+vq6f/Ozs3/tLS0/4WFhf9cXFv/Ozs7/ycmJv8JCAj/EQ8O/xMRD/8YFRP/Pzs2/0pE + QP9JRD//Ih8d/xIQEP8wLSr/S0VB/2FaU/9iW1T/ZV5X/2lhWf9sZV3/cGhg/3NrYv92bmX/eXBn/3Zu + Zf9RS0X/XlpZ/+fh3f+xqKH/kYZ7/5WJfv+Gf3r/2tbU/9TOyP+0qqL/aWJa/15XUP9ZU0z/VE5I/1JL + Rv9MRkH/OjUx/yQgHv8kIiL/Tk5Q/6qjnv+NiIH/EXeu/wCG2v8BmP7/AJj//wCW/v8Ahu7/AIXt/wCG + 7v8Ahu7/AIbu/wCH7/8Ah+//AIjw/wCI8P8AifH/AIry/wCK8v8AjPT/AIz0/wCN9f8Ajvb/AI/3/wCQ + +P8Akfn/AJL6/wCT+/8AlPz/AJX9/wCW/v8Al///AZj//wKZ//8Dmf//BJr//wWb//8Gm///B5z//wed + //8Inv//CZ7//wqf//8LoP//DaH//w2i//8Oov//D6P//xCk//8Rpf//EqX//xOm//8Tp///E6j//xSo + //8Wqv//F6r//xir//8Zrf//G7T//xy2//8bq/n/FoK9/xJqmnEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEJBQKbe2db/8e3r/7i4uP9GRkb/Ly8w/xMSEv8EBAT/CAcH/w4N + DP8aGBf/FhUT/wwLC/8XFhX/HRwa/zEuK/81MS7/KCYk/yIgHv8uKyn/SUM//1ZQSv9YUkz/WlNN/15X + UP9hWlP/Zl5X/2lhWv9tZV3/cGhg/3NrYv92bmX/e3Jp/1lSS/9VUlD/5eDc/7eup/+Shnv/lYl9/42H + gv/n5eX/3trX/7iwqf9dVlD/U0xH/09JRP9JRD//RD87/z87N/87NzT/ODQx/y8sKP8YFxb/lY+K/5GM + hf8SeK7/AYfa/wOZ/v8Bmf//AJb+/wCI8P8Ah+//AIfv/wCH7/8AiPD/AIjw/wCJ8f8AifH/AIry/wCK + 8v8Ai/P/AIz0/wCM9P8Ajvb/AI72/wCP9/8AkPj/AJH5/wCS+v8Ak/v/AJT8/wCV/f8Alv7/AJf//wGY + //8Cmf//A5n//wSa//8Em///BZv//wac//8Hnf//CJ3//wme//8Kn///C6D//wyg//8Nof//DqL//w+j + //8QpP//EaT//xKl//8Tpv//E6f//xOn//8UqP//Fan//xaq//8Xq///GKz//xms//8arf//G67//xyx + //8et///H7j/qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACmlohYg3t06M7K + x//28vD/jo2N/wAAAP8PDg7/EhER/xUUFP8UFBT/FxUV/xYWFv8PDw7/GhkY/yglI/8wLSv/HBoZ/xgX + Fv8rKSb/Pzo2/0hDP/9LRkH/TkhD/1JMRv9WUEr/WlNN/15XUP9iW1T/Zl5X/2piWv9tZV3/cGhf/3Nq + Yf92bWX/Zl1V/1BOTP/h3Nj/vrau/5WIff+ViX7/mZKL/+Xj4v/f29f/vbWv/19ZVP9FQDv/RD86/z87 + N/86NjP/NTIv/zEuK/8sKSf/KCYj/xkYGP+RioX/ko2H/xR4r/8CiNr/BZr+/wOa//8Bl/7/AInx/wCI + 8P8AifH/AInx/wCJ8f8AivL/AIry/wCL8/8Ai/P/AIz0/wCM9P8AjfX/AI72/wCP9/8AkPj/AJD4/wCR + +f8Akvr/AJP7/wCU/P8Alf3/AJb+/wCX//8BmP//AZn//wOZ//8Dmv//BJr//wWb//8GnP//B5z//wid + //8Jnv//Cp///wqf//8LoP//DaH//w6i//8Oov//D6P//xCk//8Rpf//EqX//xOm//8Tp///E6j//xSo + //8Wqf//Fqr//xer//8YrP//Ga3//xqt//8brv//HK///x2w//8esf+kAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKaWiaeakIb/xcK///Tw7v+srKv/DAwM/xgXF/8TEhL/Dg0N/wsL + C/8REBD/FRQU/xwbGv8iIB//JiMi/yonJf8nJCP/My8s/zo2M/89ODX/QTw4/0ZBPP9KRT//TkhD/1JM + Rv9WUEr/WVNN/15WUP9gWVL/Y1xU/2dfV/9rY1v/cmpi/4F5cf91bWb/REJA/93Y1P/EvLb/l4p+/5aJ + fv+elY3/4t7b/9/Z1f+8tK3/e3dz/1NPS/84NDD/NDAt/zEuK/8sKif/KCYk/yQiIf8iIB//CQkJ/4iB + fP+Uj4j/FHmv/wOJ2v8Gm/7/BJv//wKY/v8Ai/P/AIry/wCK8v8AivL/AIvz/wCL8/8Ai/P/AIz0/wCM + 9P8AjfX/AI72/wCO9v8Aj/f/AJD4/wCR+f8Akvr/AJL6/wCT+/8AlPz/AJX9/wCW/v8Al///AZj//wGY + //8Dmf//A5r//wSa//8Fm///Bpz//wec//8Hnf//CJ7//wme//8Kn///C6D//wyg//8Nov//DqL//w+j + //8QpP//EaT//xKl//8Tpv//E6f//xOn//8UqP//Fan//xaq//8Xq///GKz//xms//8arf//G67//xyv + //8dr///HrD//x+x/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqp2Rn6Oa + kv+8ubf/8/Du/8C/v/8cHBz/Ozo6/ywsLP8cHBz/GBgY/xQUFP8TEhL/FhUU/xoYF/8eHBv/IyEf/yon + Jf8tKij/Mi4r/zYyL/87NjP/Pzo2/0M+Of9HQTz/S0ZB/1BKRf9VT0n/XldR/2hhW/9zbWf/gXp0/5CK + hP+clpH/qqWf/5CKhP9EQT7/2NTQ/8vDvv+ZjIH/mIt//6SYjv/NxsD/z8a//6yimv9yb2z/cG1r/1ZT + Uf8zMC7/JSMg/yIgHv8gHh3/HRsa/xsZGf8FBQX/iYJ9/5WQif8Weq//BIra/wec/v8GnP//A5n+/wCM + 9P8Ai/P/AIvz/wCM9P8AjPT/AIz0/wCN9f8AjfX/AI72/wCO9v8Aj/f/AJD4/wCR+f8Akfn/AJL6/wCT + +/8AlPz/AJT8/wCV/f8Alv7/AJf//wGY//8BmP//A5n//wOa//8Emv//BZv//wab//8HnP//B53//wid + //8Jnv//Cp///wug//8MoP//DaH//w6i//8Po///EKP//xGk//8Rpf//Eqb//xOm//8Tp///E6j//xSo + //8Vqf//Fqr//xer//8YrP//Ga3//xqt//8brv//HK///x2w//8esP//H7H/pAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1qqCftKym/7Wyr//x7ez/zczM/yYmJv9BQUH/QUFB/0FB + Qf89PDz/ODc3/zIxMf8uLSz/LCsq/y0sK/8wLi3/Mi8t/zQxL/85NjT/PTo3/0M/Pf9LSET/Uk5K/1tX + U/9kYFz/b2tm/3p2cv+FgXz/jYiE/5WQjP+alZH/nJeT/5+alf+loJv/kIqE/zs4Nf/Szsv/083G/5uO + g/+fkof/gndu/yklI/9gXFj/b2pn/2RiYP9lYmD/Z2Vk/15cW/9BQD//JyUk/xkXFv8TERH/ERER/wME + BP+Kg33/lpCJ/xZ7r/8Gi9r/CZ3+/wed//8Fmv7/AI71/wCN9f8AjfX/AI31/wCN9f8Ajvb/AI72/wCP + 9/8Aj/f/AJD4/wCQ+P8Akfn/AJL6/wCS+v8Ak/v/AJT8/wCV/f8Alv7/AJb+/wCX//8BmP//Apj//wKZ + //8Dmf//BJr//wWb//8Gm///Bpz//wed//8Inf//CZ7//wqf//8Ln///C6D//wyh//8Oov//DqL//w+j + //8QpP//EaX//xKl//8Tpv//E6f//xOn//8UqP//Fan//xaq//8Xq///GKz//xms//8arf//G67//xyv + //8dr///HrD//x+x//8gsv+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALyy + qZ/Evbf/sK2q/+vo5v/Z2Nf/MTEx/zg4OP86OTn/Ojk5/zo5Of87Ojr/PDw8/z49Pf9BQED/RURE/0pJ + SP9NTEv/UlBP/1dVU/9cWVj/Yl9d/2lmY/9va2n/dXJv/3l1cv98eXX/gX15/4WAfP+JhID/jIeD/5CL + hv+Tj4r/mZSP/6Cblv+Vj4n/QT47/9DMyP/a1ND/nZCF/5+Rhf+QhHr/ExEQ/0RCQf9dW1n/WVdV/1lX + Vv9YV1b/W1lY/11cXP9XVlb/SEdH/zc2Nv8qKyr/EhIT/5aPiv+Uj4f/F3uv/weM2v8Knv7/CZ7//wab + /v8Aj/b/AI72/wCP9/8Aj/f/AI/3/wCP9/8AkPj/AJD4/wCR+f8Akfn/AJL6/wCS+v8Ak/v/AJT8/wCV + /f8Alf3/AJb+/wCX//8Al///AZj//wKY//8Cmf//A5n//wSb//8Em///Bpv//wac//8Hnf//CJ3//wme + //8Kn///Cp///wug//8Mof//DaH//w6i//8Po///EKT//xGk//8Spf//E6b//xOm//8Tp///E6j//xSp + //8Vqf//Fqr//xir//8YrP//Ga3//xqt//8brv//HK///x2w//8esP//H7H//yCy/6QAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvbOsn83Fwf+tqaf/5eLg/+bk4/89PT3/MTAw/zc1 + Nf81NTX/NTQ0/zU0NP81NDT/NTQ0/zc2Nv85ODj/Pj08/0RCQv9KSEf/T01M/1VSUf9aV1X/Xlxa/2Rh + Xv9pZWP/bmpn/3NvbP95dXH/f3t3/4SAfP+Ggn3/iYR//4qEf/+CfXj/e3Vw/2tlX/8kIh//y8fE/9/a + 1f+lmI7/mIt//4+Def8sKCT/GxoZ/z8+Pf9QTk3/UE9O/09NTf9PTk3/UE9P/1NTU/9YV1f/X15e/1tb + W/8cHB3/lo+K/5WQh/8YfK//CYza/wyf/v8Kn///B5z+/wCR+P8AkPj/AJD4/wCQ+P8Akfn/AJH5/wCR + +f8Akvr/AJL6/wCT+/8Ak/v/AJT8/wCV/f8Alf3/AJb+/wCW//8Al///AZj//wGY//8Cmf//A5n//wSa + //8Emv//BZv//wab//8GnP//CJ3//wid//8Jnv//Cp///wqf//8LoP//DKD//w2h//8Oov//D6L//xCj + //8RpP//EaX//xKm//8Tpv//E6f//xOo//8UqP//Fan//xaq//8Xqv//GKv//xms//8arf//G67//xyv + //8dr///HrD//x+x//8gsv//IbL/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAC5rqafyL+5/6mkoP/Z19b/9vX0/0lJSf8qKSn/NDMz/zExMf8wMDD/Ly4u/y8uLv8vLi7/MS8w/zEx + Mf80MzP/OTg4/z8+Pf9GREL/S0pI/1JQTv9YVVP/W1hV/15bWP9gXFn/XFhV/1ZSTv9OSkb/RUE9/0I/ + O/8+Ozj/Ozg1/0dDQf9UUk//ZmNh/4WCf//c1tT/4dzY/62hlv+Qg3j/W1NM/2phWf9sY1r/LCcl/x0c + HP8tLi7/QUFB/0lJSf9LSkr/Tk1N/1BQUP9WVVX/UlFR/x4eH/+ck43/lY6H/xp9rv8Kjdr/DaD+/wuh + //8Jnf//AJL5/wCR+f8Akfn/AJL6/wCS+v8Akvr/AJP7/wCT+/8Ak/v/AJT8/wCV/f8Alf3/AJb+/wCX + //8Al///AJf//wGY//8CmP//Apn//wOZ//8Dmv//BJr//wWb//8Gm///B5z//wid//8Inf//CZ7//wme + //8Kn///C6D//wyg//8Nof//DaL//w6i//8Qo///EKT//xGl//8Spf//E6b//xOn//8Tp///FKj//xWp + //8Vqv//Fqr//xir//8YrP//Gq3//xuu//8brv//HK///x6w//8esP//H7H//yCy//8hs/+kAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALGkmqjCtqz/qKCa/8vIx//+/Pz/XVxc/yUk + JP8xMTH/Li4u/y0sLP8rKir/Kyoq/ysqKv8rKir/LCsr/ywrK/8rKir/Li0s/y4sK/8sKSj/KCYl/yMi + IP8nJST/Kyoo/y4sKv88OTj/UlBO/2hmY/99e3j/lZKQ/62qp//JxcL/1dHN/9/b1//q5uL/7unl/+Hd + 2P/g29j/s6mf/5yMgP+klYj/pZeK/6aYi/+dj4T/cWde/zo1MP8aGRj/HBwd/zIyMv9ERET/T09P/1dX + V/9KSUn/JCUl/6uhmv+TjYT/Gn6u/wuP2v8Pov7/DaH//wqf//8AlPv/AJP7/wCT+/8Ak/v/AJT8/wCU + /P8AlPz/AJX9/wCV/f8Alf3/AJb+/wCW/v8Al///AJj//wGY//8Cmf//Apn//wOZ//8Emf//BJr//wWb + //8Fm///Bpz//wad//8Hnf//CJ7//wme//8Kn///C5///wug//8Mof//DaH//w6i//8Oov//D6P//xCk + //8RpP//EqX//xOm//8Tpv//E6f//xOo//8Vqf//Far//xaq//8Xq///GKz//xms//8arf//G67//xyv + //8dsP//HrD//x+x//8gsv//IbP//yKz/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAqpuOaHduZr6EfHVYuba18vz7+v91dXX/IyIi/zIyMv8sKyv/KCcn/yMjI/8dHBz/FhYW/xAP + D/8JCQn/Dw4P/xcXF/8gHx//MzIy/0xKSv9nZmX/g4KB/56bmv+4trX/1NLP/+Lf3f/o5uP/8e3q//Lu + 6v/r5+P/5uHc/9/Z1P/Y0s3/1M3H/9DJw//NxsD/zMW+/8vDvf/Hvrn/vLGq/62imf+ilIn/nY+C/5+Q + hP+nmIv/pZeK/4yAdf9bU0z/Lysn/xsaGf8eHh//LCwt/x8fIP84Ojz/uq2k/5CKgv8bf6//DJDa/xCj + /v8Oov//C5///wCV/P8AlPz/AJX9/wCV/f8Alf3/AJb+/wCW/v8Alv7/AJb//wCX//8Al///AJj//wGY + //8Cmf//Apn//wOZ//8Dmv//BJr//wSb//8Fm///Bpv//wac//8GnP//CJ3//wme//8Jnv//Cp///wuf + //8LoP//DKH//w2h//8Oov//DqL//w+j//8QpP//EaT//xKl//8Tpv//E6f//xOn//8UqP//FKn//xWp + //8Wqv//F6v//xir//8ZrP//Gq3//xuu//8cr///Ha///x6w//8fsf//ILL//yCy//8hs///IrT/pAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg0MYAIDAl6OjIrh/Pr4/42M + jP8RERH/Ghoa/xcXF/8eHh3/JCQk/zIxMf9PTk7/bW1s/4yLiv+npqb/w8LB/97d3P/u7Ov/8/Hw//j3 + 9f/59/T/8+7s/+rm4//i3Nj/2NPN/9HJxP/Kwrz/xr22/8K5sf+/ta7/vbSs/7+1rv+/tq//wLex/8K5 + s//GvLf/yL65/8vCvf/OxsH/zsjC/8nCu/+8sqr/raGW/6KTh/+fkIL/o5SH/6qajf+klYn/jYB1/2ph + WP9PSEH/OzUw/4R8d/+xoZT/koyE/x1/r/8Nkdr/EaT+/w+j//8Mof//AZb+/wCW/v8Alv7/AJb+/wCX + //8Al///AJf//wCX//8BmP//AZj//wGY//8CmP//Apn//wOZ//8Dmv//BJr//wSa//8Fm///BZv//wac + //8HnP//B53//wid//8Inv//CZ7//wqf//8LoP//C6D//wyh//8Nof//DqL//w6i//8Po///EKT//xGk + //8Spf//E6b//xOm//8Tp///E6j//xSo//8Vqf//Fqr//xeq//8Yq///GKz//xmt//8arf//G67//xyv + //8dsP//HrD//x+x//8gsv//IbP//yKz//8jtP+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAQAAAASmBfXaPt6+n/xsXF/2tqav+SkpL/r6+w/8bHx//h4eH/9fX1//v6 + +/////////z8//bz8f/t6uj/4t3Z/9fQyv/NxL3/xLuz/760q/+4raT/tKie/7Omnf+zqJ7/tKif/7Wq + oP+3rKP/ua+m/7uxqf+9tKz/v7av/8G4sf/CurP/xLu1/8e+uP/JwLr/y8K9/8zDv//OxsH/0MvF/9TO + yv/Tzcn/ysO+/7yyq/+sn5T/opSH/6CRg/+llYj/rJyO/6ucjv+pmYz/qJiL/6iWiP+Sj4n/G4Cx/w+R + 2v8Spf7/EKT//w2h//8BmP//AJf//wCX//8Bl///AZj//wGY//8BmP//AZj//wKY//8Cmf//Apn//wOZ + //8Dmv//BJr//wSa//8Fm///BZv//wac//8GnP//B5z//wed//8Inf//CZ7//wme//8Kn///C6D//wyg + //8Mof//DaH//w6i//8Oov//D6P//xCk//8RpP//EaX//xOm//8Tpv//E6f//xOo//8UqP//Fan//xaq + //8Wqv//F6v//xis//8ZrP//Gq3//xuu//8crv//HbD//x6w//8fsf//ILL//yGy//8is///I7T//yO1 + /6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcG5rMr+8 + u//49vb/+/r6//37+//39fP/7+zq/+Le2v/Vzsj/yL+3/76zqv+2qp//rqCV/6maj/+nmIz/qJqN/6ia + jv+pm4//q56S/66hlv+wpJr/s6ee/7SpoP+2q6L/uK2k/7mvpv+7san/vLKr/760rf+/tq//wbix/8K6 + s//EvLb/x724/8nAu//Lwr3/zMS//87Hwf/PycP/0cvG/9LNyv/W0c7/2NPS/9fS0P/MxsH/u7Gp/6yf + lP+jk4b/opKF/6SUh/+llon/q5mK/4uPjP8VgLT/EZPa/xOl/v8Rpf//DqL//wKY//8BmP//AZj//wKY + //8Cmf//Apn//wKZ//8Dmf//A5n//wOZ//8Dmv//BJr//wSb//8Fm///BZv//wac//8GnP//B5z//wed + //8Inf//CJ7//wme//8Kn///Cp///wug//8MoP//DKH//w2h//8Oov//DqL//w+j//8QpP//EaT//xGl + //8Tpf//E6b//xOn//8TqP//FKj//xWp//8Vqv//Fqr//xer//8YrP//Gaz//xqt//8brv//HK7//x2v + //8esP//H7H//x+x//8gsv//IbP//yK0//8jtP//JLX/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABta2gBgX98kLewqPa7r6X/tKec/62fkv+llon/opKF/6GS + hP+gkIP/oJCC/6GRhP+jlIf/ppeL/6iajv+qnJD/q56S/62flP+uoZf/sKOZ/7Glm/+zqJ7/tamg/7ar + ov+4raT/ua+n/7uxqf+8s6v/vrSt/7+2r//BuLH/wrqz/8W8tv/Ivrn/ycC7/8vCvf/MxL//zsjB/8/J + xP/Ry8j/0s3K/9TPzP/V0c7/19PR/9vX1f/d2tn/29fV/9LLx//EuLD/uKib/7Gdj/+0mYf/aoiS/wyC + u/8Tk9r/E6b+/xKm//8Po///A5n//wOZ//8Dmf//A5n//wOZ//8Dmf//A5r//wSa//8Emv//BJr//wSb + //8Fm///BZv//wac//8GnP//B5z//wed//8Inf//CJ3//wme//8Jnv//Cp///wqf//8LoP//DKD//w2h + //8Nov//DqL//w+j//8Po///EKT//xGk//8Rpf//EqX//xOm//8Tp///E6j//xSo//8Vqf//Fan//xaq + //8Xq///GKv//xms//8Zrf//Gq3//xuu//8cr///HbD//x6w//8fsf//ILL//yGz//8is///I7T//yS1 + //8ltf+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAeHJsLX52b3KRhnu5mIuA5qGShf+llon/ppaJ/6aWif+lloj/pJWI/6WWif+nmIz/qJqO/6qc + kP+rnpL/rZ+U/66hl/+wo5n/saWb/7Oonv+1qaD/tqui/7itpP+5r6f/u7Gp/7yzq/++tK3/v7av/8G4 + sf/CurP/xb22/8i+uf/JwLv/y8K9/83Ev//OyMH/0MrE/9HLyP/Uzsv/19LO/9zV0f/g2NP/4tnU/+Pa + 1//h2db/1tPR/8PMz/+pusD/gZ6p/1aGmv8fga3/EYe//xOW3f8Tp/7/E6b//xCk//8Emv//BJr//wSa + //8Emv//BJr//wSa//8Emv//BZv//wWb//8Fm///Bpv//wac//8GnP//B5z//wed//8Inf//CJ3//wme + //8Jnv//Cp///wqf//8LoP//C6D//wyg//8Nof//DaL//w6i//8Po///EKP//xCk//8RpP//EqX//xKm + //8Tpv//E6f//xOo//8TqP//FKn//xWp//8Wqv//F6v//xir//8YrP//Ga3//xqt//8brv//HK///x2v + //8esP//H7H//yCy//8hsv//IrP//yK0//8jtf//JLX//yW2/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB9dnEchX52SId/ + d4mUiX7Bm46C56GThv+llon/p5iK/6majf+pm4//qpyQ/6uekv+tn5T/rqGW/7Cjmf+xpZv/s6ie/7Wp + oP+2q6L/uK2k/7mvpv+7san/vLOr/760rf+/tq//wbix/8K6s//EvLb/yL65/8vCvf/Qxb//08jC/9bM + w//XzMX/2M7J/9LJxf/Fwr//tbu8/6Cwtf+Ho63/aZan/06Npf83h6b/In6j/xV+qf8Pg7T/D4a6/xKJ + v/8Ujsr/FJvl/xSo/v8Tp///EaT//wWb//8Fm///BZv//wWb//8Fm///BZv//wab//8Gm///Bpz//wac + //8HnP//B5z//wed//8Inf//CJ3//wme//8Jnv//Cp///wqf//8Ln///C6D//wyg//8Mof//DaH//w6i + //8Oov//D6P//xCj//8QpP//EaT//xKl//8Spv//E6b//xOn//8Tp///E6j//xSo//8Vqf//Fqr//xer + //8Yq///GKz//xms//8arf//G67//xyu//8cr///HrD//x+x//8fsf//ILL//yGz//8itP//I7T//yS1 + //8ltv//Jrb/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBenQbgnt0Q4Z+dnuPhnyzmY2D2aKW + iv+pnJD/rZ+T/7Cilv+wo5f/sKSZ/7Glm/+zp57/tKmg/7arov+4raT/ua+m/7yxqP++s6z/wrav/8W5 + sf/Ju7P/yby0/8q+tv/Jvbf/wriy/7Syr/+kra3/kKOm/3eXn/9ci5j/RYOW/zR9lP8kd5P/GHaX/xR6 + n/8UfaX/FIGq/xWEsf8Yi7z/Go/D/xqSyv8amdj/GJzh/xeg6v8Wpvf/Fan//xOo//8Spf//B5v//wab + //8GnP//Bpz//wac//8GnP//B5z//wec//8Hnf//B53//wid//8Inf//CJ7//wme//8Jnv//Cp///wqf + //8Ln///C6D//wug//8Mof//DaH//w2h//8Oov//D6P//w+j//8QpP//EaT//xGl//8Spf//E6b//xOm + //8Tp///E6f//xOo//8UqP//Fan//xaq//8Xq///GKv//xis//8ZrP//Gq3//xuu//8crv//HK///x2w + //8esP//H7H//yCy//8hs///IrP//yO0//8ktf//JbX//yW2//8mt/+kAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7dnAQioJ7L4B6dGOSiYGblo2FxaOYj/CsoZb/saWb/7Wo + n/+4raP/t6yj/7uroP+9rKH/vK6l/7aro/+qp6L/nKOh/4ydnv96lZn/Zo6X/0+Gkv8+gpL/MX2Q/yR4 + j/8ceJL/GnqV/xt7mP8bfZz/HYKj/yCJrv8ijrj/I5TB/yOcz/8joNj/IqPg/yGp7P8hrfX/H675/x6v + /v8cr///Gq7//xis//8Wqv//FKj//xKm//8InP//B5z//wec//8Hnf//B53//wed//8Inf//CJ3//wid + //8Inv//CZ7//wme//8Jnv//Cp///wqf//8Ln///C6D//wug//8Mof//DaH//w2h//8Oov//DqL//w+j + //8Qo///EKT//xGk//8Rpf//EqX//xOm//8Tpv//E6f//xOn//8TqP//FKj//xWp//8Wqv//F6v//xir + //8YrP//Gaz//xqt//8brv//G67//xyv//8dsP//HrD//x+x//8gsv//IbP//yKz//8jtP//I7X//yS1 + //8ltv//Jrf//ye3/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABta2gCi4R+Hnt2cUSSioN7mZGJrJSNhrmhkIaihKix0Gexxv9SlaX/QoeW/zaB + kf8sfY7/JX2Q/yJ/lP8jf5b/JIGZ/ySEnf8nh6L/KY2r/yqRs/8slrv/LJ/I/yyk0/8tqt7/LbHp/y22 + 8v8suPn/K7n9/ym5//8nuf//Jbf//yO1//8hs///H7H//x2v//8brf//Gaz//xeq//8Vqf//Eqb//wmd + //8Inf//CJ3//wid//8Inf//CJ7//wme//8Jnv//CZ7//wme//8Kn///Cp///wqf//8LoP//C6D//wyg + //8Mof//DaH//w2h//8Nov//DqL//w6i//8Po///EKP//xCk//8RpP//EqX//xKl//8Tpv//E6b//xOn + //8TqP//FKj//xSp//8Vqf//Fqr//xar//8Yq///GKz//xms//8arf//G67//xuu//8cr///Ha///x6w + //8fsf//H7H//yGy//8is///IrT//yO0//8ktf//Jbb//ya2//8nt///KLj/pAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABH1v17Pc77/zSmxv8ukqn/Lo2i/y+No/8xkqv/M5iz/zOcu/81pcf/N6zT/zey + 3P84uuj/OL/y/zjC+f83w/3/NsT//zTD//8ywv//MMD//y69//8su///Kbn//ye3//8ltv//I7T//yGz + //8fsf//HbD//xuu//8ZrP//Fqr//xOo//8PpP//CJ7//wme//8Jnv//CZ7//wme//8Kn///Cp///wqf + //8Kn///Cp///wug//8LoP//C6D//wyg//8Mof//DaH//w2h//8Nov//DqL//w6i//8Po///D6P//xCk + //8RpP//EaX//xKl//8Tpv//E6b//xOn//8Tp///E6j//xSo//8Uqf//Fan//xaq//8Wqv//GKv//xis + //8ZrP//Gq3//xuu//8brv//HK///x2v//8esP//HrH//x+x//8gsv//IbP//yK0//8jtP//JLX//yW2 + //8mtv//Jrf//ye4//8ouP+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEba/4RIz/n/Qbrf/z6y + 1P8+ttf/P7re/0HB6P9DyPL/Q8z5/0PO/v9Bzv//QM///z7O//88y///O8r//znH//83xP7/NcL+/zPA + /v8xv/7/L73+/yy7/v8quv7/KLj//yW2//8jtP//ILL//xyw//8Zrf//GKz//xmt//8arf//IrD//xKl + //8Hnf//BJv//wed//8Jnv//Cp///wuf//8LoP//C6D//wug//8MoP//DKD//wyg//8Nof//DaH//w2i + //8Oov//DqL//w+i//8Po///D6P//xCk//8QpP//EaT//xGl//8Tpf//E6b//xOm//8Tp///E6f//xOo + //8UqP//Fan//xWp//8Wqv//F6r//xes//8YrP//Gaz//xqt//8brv//G67//xyv//8dr///HrD//x6x + //8fsf//ILL//yGz//8is///I7T//yS1//8ltf//Jbb//ya3//8nt///KLj//ym5/6QAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAS9T+hErV/f9K1Pz/StT+/0vW//9K1///Sdb//0jU//9G0///RNH//0PP + /v9Bzv7/P8z+/z3K/v87yf7/Ocj+/zjF/v82w/7/M8H+/zG//v8uvf7/Krv+/ye4/v8mt///J7f//yi3 + //8tuv//N7///0HG//9MzP//WNT//2Xb//9v4f//Z9z//0/N//84vv//IK///xCj//8Jn///BZz//wie + //8Kn///DKD//w2h//8Nov//DaH//w6i//8Oov//DqL//w+j//8Po///EKT//xCk//8QpP//EaT//xGl + //8Spv//E6b//xOn//8Tp///E6f//xOo//8UqP//Faj//xWp//8Vqv//Fqr//xer//8Xq///Gaz//xqs + //8arf//G67//xuu//8cr///Ha///x6w//8esf//H7H//yCy//8hsv//IrP//yO0//8jtf//JLX//yW2 + //8mt///J7f//yi4//8puf//Kbn/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABN1v6ETdf+/03X + //9N1///Tdf+/0zW/v9L1f7/SNT+/0jT/v9G0f7/RND+/0LO/v8/zf7/Psv+/zvJ/v84x/7/NcT+/zXD + /v81wv7/NsL+/zrE/v9CyP7/Ssz+/1PS//9d1///Z93//23g//9y4///dub//3jm//935v//duX//3Xl + //925v//euj//3rp//9z5P//aN3//1LP//89wP//JrL//xWn//8Mof//B57//wmf//8Mof//DaL//w+j + //8QpP//EKP//xGk//8QpP//EaT//xKl//8Spv//E6b//xOm//8Tpv//E6f//xOn//8TqP//FKj//xSp + //8Vqv//Fqr//xeq//8Xq///GKv//xms//8ZrP//Gq3//xuu//8brv//HK///x2v//8esP//H7H//x+x + //8gsv//IbL//yGz//8jtP//I7X//yW2//8ltv//Jrf//ye3//8ouP//Kbn//ym5//8puf+kAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAE/Z/olP2f7/UNn+/0/Z/v9P2P7/Ttf+/0zW/v9K1f7/SNP+/0XS + /v9D0P7/Qs/+/0PO/v9Dzv7/R8/+/0zR//9S0///Wtb//2Da//9o3v//beD//2/i//9z5P//dOX//3Tk + //9z5P//cuP//3Pk//9y4///c+P//3Pk//9z5P//dOT//3Tk//905P//deX//3bm//945///e+n//3vp + //935v//buH//1nT//9Exv//Lbf//xqr//8Rpf//CqD//wuh//8Oo///D6P//xGl//8Spv//E6b//xOm + //8Tp///E6f//xOn//8UqP//FKj//xWo//8Vqf//Fqr//xaq//8Wq///GKv//xis//8YrP//Ga3//xqu + //8brv//HK///x2v//8dsP//HrD//x6x//8fsf//ILL//yGz//8hs///I7T//yO1//8ktf//Jbb//ya3 + //8nt///KLj//ym5//8puf//Kbn//ym5/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAStT/S1Hb + /vpS2/7/Utv+/1Lb/v9Q2f7/T9j+/0/X/v9R1v7/Vtj//1rZ//9e2v//Y9z//2ne//9s3///buH//3Di + //9w4v//cOL//2/i//9w4f//cOL//3Di//9x4v//ceL//3Lj//9y4///cuP//3Pj//9z4///dOT//3Tk + //915P//deX//3Xl//915f//duX//3bl//925f//duX//3fm//945///e+n//3zq//945///ceP//2DY + //9Ny///N73//yGv//8WqP//D6P//w2i//8PpP//Eab//xKn//8TqP//FKj//xSp//8Vqf//Fqr//xaq + //8Xqv//F6v//xir//8YrP//Gaz//xqt//8arf//G67//xyu//8dr///HbD//x6w//8fsf//ILL//yCy + //8hs///IrP//yO0//8jtf//JbX//yW2//8mt///J7f//yi4//8ouf//Kbn//ym5//8puf//Kbn/pAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU9z+OFLa/qdI0f/oSdD//03S//9T1P//Wtb//1/Z + //9j2v//Z93//2rf//9r3///bN///23g//9u4P//buH//2/h//9v4f//b+H//3Dh//9w4v//ceL//3Hj + //9y4///cuP//3Pj//9z4///dOT//3Tk//905P//deT//3Xk//915f//deX//3bl//925f//duX//3bl + //925f//duX//3bl//925f//duX//3fm//935v//euf//3zp//945///c+T//2Xb//9Tz///QMT//yq2 + //8brP//Eqf//w6k//8Qpv//Eqj//xSp//8Wqv//F6v//xir//8YrP//Gaz//xmt//8arf//G67//xuu + //8cr///Ha///x6w//8esP//H7H//yCy//8gsv//IbP//yKz//8jtP//I7X//yS1//8ltv//Jrf//ye3 + //8ouP//KLn//ym5//8puf//Kbn//ym5//8puf+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADjC/xk6wf9IO8P/dT7F/6dDyP/XRsv/8kzO//9T0v//V9X//13Y//9i2v//Zdz//2nd + //9q3///beD//27h//9w4f//ceL//3Hi//9y4///cuP//3Pj//9z4///dOP//3Tk//905P//dOT//3Xk + //915f//deX//3bl//925f//duX//3bl//925f//dub//3fm//935v//d+b//3fm//925v//duX//3bl + //925f//duX//3bl//925f//d+b//3nn//945///dOX//2ne//9Z1P//R8n//zK8//8isv//Gav//xKo + //8Uqf//Far//xer//8ZrP//Gq3//xuu//8brv//HK///x2v//8esP//HrH//x+x//8gsv//ILL//yGz + //8is///I7T//yO1//8ktf//Jbb//ya3//8mt///KLj//yi4//8puf//Kbn//ym5//8puf//Kbn//ym5 + /6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADnB + /wM3wP8qO8P/TDzD/35ByP+3RMr/2krM//tQ0f//VtT//1zX//9h2v//Zdz//2je//9r4P//buH//3Hi + //9x4///c+P//3Pk//905P//dOT//3Xk//915P//deT//3Xl//925f//duX//3fl//935f//d+X//3fl + //935v//d+X//3fm//935v//d+b//3fm//935v//dub//3bl//925f//duX//3Xl//905f//dOT//3Tl + //905P//deX//3fm//925v//dOX//23h//9e1///T87//zzC//8qt///H7H//xis//8XrP//GKz//xqu + //8cr///HrD//x+w//8fsf//ILL//yGy//8hs///IrP//yO0//8jtf//JLX//yW2//8mtv//Jrf//yi3 + //8ouP//Kbn//ym5//8puf//Kbn//ym5//8puf//Kbn/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3wP8KPMP/NDvE + /1k+xv+LQ8r/xEjM/+FNz///VNP//1nW//9f2f//Zdz//2nf//9t4P//b+H//3Li//9z5P//dOT//3Xl + //925f//duX//3fl//935f//d+X//3fm//935v//d+b//3fm//945f//d+b//3fm//935v//d+b//3fl + //935f//duX//3bl//925f//duX//3Xl//915P//deT//3Tk//9z5P//c+P//3Lj//9y4///cuP//3Pk + //905P//cuP//27h//9i2v//VNH//0TI//8yvf//J7b//x6w//8brv//HK///x2w//8gsv//IbP//yK0 + //8jtP//I7X//yS1//8ltv//Jrb//ya3//8ot///KLj//ym5//8puf//Kbn//ym5//8puf//Kbn//ym5 + //8puf+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO8P/Fj/H/zc+x/9nQcn/m0bM + /8dMz//sU9P//1nW//9e2f//ZNz//2je//9s4P//cOL//3Hi//9z5P//deX//3bl//935f//eOb//3jm + //945v//eOb//3jm//945v//eOb//3jm//945v//eOb//3fl//935f//d+X//3fl//925f//duX//3Xl + //915P//dOT//3Pk//9z4///cuP//3Lj//9x4v//cOL//3Di//9v4f//buH//2/i//9x4v//cOL//27h + //9l3P//WtX//0zM//87w///Lrv//yW1//8fsv//ILP//yGz//8jtP//Jbb//ya2//8mt///J7j//yi4 + //8puf//Kbn//ym5//8puf//Kbn//ym5//8puf//Kbn//ym5/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/I/yFCyf8+Qsr/cEfN/6hLz//NUNL/8lbV + //9c2P//Ydr//2bd//9q3///buH//3Hi//9z5P//deX//3fm//945v//eOb//3nm//955v//eOb//3jm + //945v//d+b//3fm//935f//d+X//3bl//925f//deX//3Xl//915P//dOT//3Tk//9z5P//cuP//3Lj + //9x4v//cOL//2/i//9v4f//buH//23g//9t4P//bN///2zg//9t4P//beD//2vf//9m3f//XNb//1HP + //9Cx///Nb///yy7//8ltv//JLb//yS2//8mt///KLj//ym5//8puf//Kbn//ym5//8puf//Kbn//ym5 + //8puf//Kbn/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDJ/wVEy/8kQ8v/SEbN/39Kz/+xTdH/01LT//pZ1///Xtn//2Tc + //9p3///beH//3Hi//9z4///deX//3fl//935v//eOb//3jm//945v//eOb//3fm//935f//d+X//3bl + //925f//deX//3Xk//905P//dOT//3Pj//9y4///cuP//3Hi//9x4v//cOL//2/h//9v4f//buD//23g + //9s4P//a9///2rf//9q3v//aN7//2jd//9p3v//ad7//2nd//9m3P//X9j//1bT//9JzP//PcX//zTA + //8ruv//J7j//ya3//8nuP//KLj//ym5//8puf//Kbn//ym5//8puf+kAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABDy/8LRsz/J0XM/1RHzv+ITND/tFDT/+BX1v/+XNj//2Hb//9m3f//at///27h + //9w4v//cuP//3Xl//925f//d+X//3fl//935f//d+X//3bl//925f//duT//3Xk//905P//dOT//3Pj + //9z4///cuP//3Hi//9x4v//cOL//2/h//9u4f//buH//23g//9s4P//a9///2vf//9p3v//ad3//2jd + //9n3P//Ztz//2bc//9n3f//aN3//2fd//9n3f//Ytr//1vV//9Pz///Qsf//zfB//8uvP//Kbn//yi4 + //8ouP//Kbn//ym5/6UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAR83/FEbO/yxHzv9eTND/kU3R/7xS0//oWNb//1zY//9i2///Zt7//2rf//9u4f//cOL//3Lk + //905P//dOX//3Xl//915f//deX//3Xk//905P//dOT//3Pj//9y4///cuP//3Hi//9w4v//cOL//2/h + //9u4f//beD//23g//9s3///a9///2ne//9o3v//Z93//2Xc//9k2///ZNv//2Pa//9h2v//X9n//17Y + //9d2P//XNf//1rW//9Z1f//VdP//07P//9Eyv//OML//y+9//8ruv//Kbn/owAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEnO + /xZGzf80SM7/Z0vQ/5dN0f/CUtP/7lfW//9b2P//Ydr//2Xc//9p3///bOD//27h//9w4v//cuL//3Lj + //9z4///c+P//3Hi//9w4v//b+L//27g//9t4P//a9///2vf//9p3v//Z93//2Xc//9j2///Ydr//1/Y + //9c1///WdX//1fU//9W1P//VNP//1HR//9Nz///Ss3//0jM//9Fyv/8Qcf/8j7G/9o+xf/FPcX/rj7F + /5g7w/9/NsD/YjG9/0Qsu/8cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAETM/wJIzf8WQ8z/PEfO + /25Jzv+bTND/xVDS/+9V1P//Wdf//1/Z//9j2///Zt3//2je//9o3v//Zt3//2Tc//9h2v//X9j//13Y + //9c1///Wtf//1nW//9V0///UNH//03P//9Lzf//Sc3/+0bL//VCyP/kP8b/zj7G/7k8xf+iPsT/jjrC + /3Y3wf9eNsD/RDW//ys4wP8YNsD/DTW//wQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDzP8DRcz/FkHL/z9GzP9vRsz/mEnO + /8NO0P/oUdL/71HS/+9R0v/vTdD/70jN/+NEy//UQ8r/x0PK/7lByP+lQsn/k0HJ/4M8xf9sOcL/WzjB + /0Y2wf8wOsT/GjrC/w83wP8HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////AAAAA////////////////wAAAAP///////////8AAAAAAAAAP///////////AAAAAAAAAD//// + ///8AAAAAAAAAAAAAP///////AAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAA + AD//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//AAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAA + AAAAAAAD/wAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAD8AAAAAAAAAAAAAAAAAAAA/AAAAAAA + AAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAA + AAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAA + AADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAA + AAAAAAAA8AAAAAAAAAAAAAAAAAAAAPwAAAAAAAAAAAAAAAAAAAD8AAAAAAAAAAAAAAAAAAAA/AAAAAAA + AAAAAAAAAAAAAPwAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP/A + AAAAAAAAAAAAAAAAAAD/wAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAA + AAD/+AAAAAAAAAAAAAAAAAAA//gAAAAAAAAAAAAAAAAAAP/4AAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAA + AAAAAAAA//gAAAAAAAAAAAAAAAAAAP/4AAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAAAAAAAAA//gAAAAA + AAAAAAAAAAAAAP/4AAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAAAAAAAAA//gAAAAAAAAAAAAAAAAAA//4 + AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAAAAAAAA///gAAAAAAAAAAAAAAAAAP//4AAAAAAAAAAAAAAAA + H///+AAAAAAAAAAAAAAAAB////gAAAAAAAAAAAAAAAAf///4AAAAAAAAAAAAAAAAH///+AAAAAAAAAAA + AAAAAB////gAAAAAAAAAAAAAAAAf///4AAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAB////AAAAAA + AAAAAAAAAAAf///wAAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAf///w + AAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAA + H///8AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAH///8AAAAAAAAAAA + AAAAAB////AAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAH///+AAAAAAAAAAAAAAAAB////gAAAAA + AAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////gAAAAAAAAAAAAAAAB////8AAAAAAAAAAAAAAAA///// + gAAAAAAAAAAAAAAAf////+AAAAAAAAAAAAAAAH/////wAAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAD + //////4AAAAAAAAAAAAP////////AAAAAAAAAAAA/////////4AAAAAAAAAAAH/////////gAAAAAAAA + AAA/////////8AAAAAAAAAAAH/////////4//AAAAAAAAA////////////wAAAAAAAAH///////////8 + AAAAAAAAA////////////AAAAAAAAAH///////////wAAAAAQAAA///////////8AAAAAOAAAH////// + /////AAAAAHwAAA///////////wAAAAD+AAAP//////////+AAAAB/4AAD///////////wAAAA//AAA/ + //////////+AAAAf/4AAH///////////wAAAP//AAD////////////AAAD//4AA////////////4AAB/ + //AAP////////////AAA///4AH////////////8AAf///gD/////////////gAP///+D//////////// + /8AH///////////////////wH/////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8= + + + \ No newline at end of file diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.vb b/VERAGAddIn/frmAvisoFormularAnfügen.vb new file mode 100644 index 0000000..576946f --- /dev/null +++ b/VERAGAddIn/frmAvisoFormularAnfügen.vb @@ -0,0 +1,175 @@ +Imports System.Data +Imports System.Drawing +Imports System.Windows.Forms +Imports System.Windows.Forms.VisualStyles.VisualStyleElement.Button +Imports SDL +Imports VERAG_PROG_ALLGEMEIN + + +Public Class frmAvisoFormularAnfuegen + + Public KdNr As Integer = -1 + Dim vollmachtartId As Integer = -1 + Dim vollmachtId As Integer = -1 + Dim SQL As New SQL + Dim KUNDE As VERAG_PROG_ALLGEMEIN.cKunde = Nothing + Public SendungsId = -1 + Public Bezeichnung = "" + Public PDF_MAIL = "" + + + Sub New(Bezeichnung) + + InitializeComponent() + Me.Bezeichnung = Bezeichnung + + End Sub + + + Private Sub frmAvisoFormularAnfuegen_Load(sender As Object, e As EventArgs) Handles MyBase.Load + + KdSearchBox.initKdBox(Me) + + 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 + + End If + + End Sub + + + Private Sub btnSaveAttachments_Click(sender As Object, e As EventArgs) Handles btnSaveAttachments.Click + MsgBox("Save Attachement " & KdNr) + + + If dgvKundenvollmachten.SelectedRows.Count <> 1 Then Exit Sub + Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & vollmachtartId, "", "", Bezeichnung, KdNr) + + 'Dim path = DS.uploadDataToDATENSERVERFileDialog() 'Überarbeitung, damit das ausgewählte EMail angefügt wird. + 'Dim path = DS.uploadDataToDATENSERVER("") + If txtBezeichnung.Text.Trim = "" Then + Me.DialogResult = Windows.Forms.DialogResult.None : Exit Sub + End If + + If sender Is btnSaveAttachments Then PDF_MAIL = "PDF" + If sender Is btnSaveMail Then PDF_MAIL = "PDFMAIL" + Bezeichnung = txtBezeichnung.Text + Me.DialogResult = Windows.Forms.DialogResult.OK + + End Sub + + Private Sub btnSaveMail_Click(sender As Object, e As EventArgs) Handles btnSaveMail.Click + MsgBox("Save EMail " & KdNr) + End Sub + + Sub init() + If KdNr > 0 Then + + initVollmachtarten(KdNr) + + 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 abf.kdvm_erhalten = 1 AND ISNULL(abf.[kdvm_geloescht],0) != 1 AND art.kdvma_Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "'", False, "FMZOLL", False) + + End Sub + + + Sub initDGVKundenvollmachten(vollmachtartId) + + + With dgvKundenvollmachten + .Columns.Clear() + Dim where = " And art.kdvma_Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' " + + If VERAG_PROG_ALLGEMEIN.cAllgemein.isCLUSTER Then + where = " AND art.kdvma_Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(KUNDE.FilialenNr) & "' " + End If + + .DataSource = SQL.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 + + + End With + + 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.SelectedIndexChanged + + vollmachtartId = cbVMTypen._value + + initDGVKundenvollmachten(vollmachtartId) + + End Sub + + Private Sub dgvKundenvollmachten_RowValidated(sender As Object, e As DataGridViewCellEventArgs) Handles dgvKundenvollmachten.RowValidated + + End Sub + + Private Sub dgvKundenvollmachten_SelectionChanged(sender As Object, e As EventArgs) Handles dgvKundenvollmachten.SelectionChanged + If KdNr > 0 And vollmachtartId > 0 AndAlso dgvKundenvollmachten.SelectedRows.Count > 0 Then + btnSaveAttachments.Enabled = True + btnSaveMail.Enabled = True + btnOK.Enabled = True + End If + End Sub + + Private Sub dgvKundenvollmachten_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvKundenvollmachten.CellContentClick + dgvKundenvollmachten_SelectionChanged(sender, e) + End Sub +End Class \ No newline at end of file diff --git a/VERAGAddIn/rbnVERAG.Designer.vb b/VERAGAddIn/rbnVERAG.Designer.vb index 89636aa..a6ada52 100644 --- a/VERAGAddIn/rbnVERAG.Designer.vb +++ b/VERAGAddIn/rbnVERAG.Designer.vb @@ -46,6 +46,8 @@ Me.Button2 = Me.Factory.CreateRibbonButton Me.btnPdfPrint = Me.Factory.CreateRibbonButton Me.Button3 = Me.Factory.CreateRibbonButton + Me.btnAttachFormular = Me.Factory.CreateRibbonSplitButton + Me.btnVM = Me.Factory.CreateRibbonButton Me.SplitButton1 = Me.Factory.CreateRibbonSplitButton Me.Button1 = Me.Factory.CreateRibbonButton Me.Button4 = Me.Factory.CreateRibbonButton @@ -65,6 +67,7 @@ Me.VERAG.Items.Add(Me.Button2) Me.VERAG.Items.Add(Me.btnPdfPrint) Me.VERAG.Items.Add(Me.Button3) + Me.VERAG.Items.Add(Me.btnAttachFormular) Me.VERAG.Items.Add(Me.SplitButton1) Me.VERAG.Label = "AVISO" Me.VERAG.Name = "VERAG" @@ -93,6 +96,20 @@ Me.Button3.Name = "Button3" Me.Button3.ShowImage = True ' + 'btnAttachFormular + ' + Me.btnAttachFormular.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge + Me.btnAttachFormular.Image = Global.VERAGAddIn.My.Resources.Resources.pdf + Me.btnAttachFormular.Items.Add(Me.btnVM) + Me.btnAttachFormular.Label = "Formulare anhängen" + Me.btnAttachFormular.Name = "btnAttachFormular" + ' + 'btnVM + ' + Me.btnVM.Label = "Vollmacht anhängen" + Me.btnVM.Name = "btnVM" + Me.btnVM.ShowImage = True + ' 'SplitButton1 ' Me.SplitButton1.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge @@ -136,6 +153,8 @@ Friend WithEvents Button1 As Microsoft.Office.Tools.Ribbon.RibbonButton Friend WithEvents Button3 As Microsoft.Office.Tools.Ribbon.RibbonButton Friend WithEvents Button4 As Microsoft.Office.Tools.Ribbon.RibbonButton + Friend WithEvents btnAttachFormular As Microsoft.Office.Tools.Ribbon.RibbonSplitButton + Friend WithEvents btnVM As Microsoft.Office.Tools.Ribbon.RibbonButton End Class Partial Class ThisRibbonCollection diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index 40b4d30..41b43f9 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -32,7 +32,8 @@ Public Class VERAGRibbon Private Sub Ribbon1_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load - VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False + 'VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False + VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True LOGIN_OK = AVISO_Mail_Functions.initFirmaUser() End Sub @@ -74,7 +75,12 @@ Public Class VERAGRibbon If LOGIN_OK Then AVISO_Mail_Functions.addMailToAviso_Hauptfenster() End Sub + Private Sub btnVM_Click(sender As Object, e As RibbonControlEventArgs) Handles btnVM.Click + ' ToDo -> Logif für das Einfügen eines PDFs aus einer Mail in eine Vollmacht im Aviso. + If LOGIN_OK Then AVISO_Mail_Functions.addMailToAviso_Vollmachten() + + End Sub End Class Public Class AVISO_Mail_Functions @@ -105,7 +111,7 @@ Public Class AVISO_Mail_Functions Return att End Function - Shared Sub addMailToAviso(mailItem As Outlook.MailItem) + Shared Sub addMailToAviso(mailItem As Outlook.MailItem, Optional isFormular As Boolean = False) Try If mailItem IsNot Nothing Then ' Remove special characters from the file name and make sure it is not longer than 100 characters @@ -127,7 +133,7 @@ Public Class AVISO_Mail_Functions End If End If Dim Bezeichnung = strFileName - Dim AvisoId = getAvisoId(Bezeichnung, pdf_mail, SendungsId, Art, ATTACHMENTS_LIST) ')getAttachmentStringList(mailItem)) + Dim AvisoId = getAvisoId(Bezeichnung, pdf_mail, SendungsId, Art, ATTACHMENTS_LIST, isFormular) ')getAttachmentStringList(mailItem)) If AvisoId < 0 Then Exit Sub Dim BezAnhang = If(Bezeichnung <> strFileName, Bezeichnung, "") 'Wenn die Bezeichnung geändert wurde --> und wenn nur 1 Anhang, dann wird die Bezeichnung für den Anhang verwendet. @@ -572,7 +578,19 @@ Public Class AVISO_Mail_Functions End Sub - Shared Function getAvisoId(ByRef Bezeichnung, ByRef pdf_mail, ByRef SendungsId, ByRef Art, ByRef Att) As Integer + Shared Function getAvisoId(ByRef Bezeichnung, ByRef pdf_mail, ByRef SendungsId, ByRef Art, ByRef Att, ByVal isFormular) As Integer + + If (isFormular = True) Then + Dim frmAvisoFormularAnfuegen As New frmAvisoFormularAnfuegen(Bezeichnung) + If frmAvisoFormularAnfuegen.ShowDialog = DialogResult.OK Then + SendungsId = frmAvisoFormularAnfuegen.SendungsId + Bezeichnung = frmAvisoFormularAnfuegen.Bezeichnung + pdf_mail = frmAvisoFormularAnfuegen.PDF_MAIL + + Return 1 + End If + End If + Dim frmAvisoAnfügen As New frmAvisoAnfuegen(Bezeichnung) frmAvisoAnfügen.ATT = Att If frmAvisoAnfügen.ShowDialog = DialogResult.OK Then @@ -583,11 +601,29 @@ Public Class AVISO_Mail_Functions Art = frmAvisoAnfügen.cboArt._value Att = frmAvisoAnfügen.ATT + Return AvisoId End If Return -1 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 From 76518d49cf2c62934549a3db7643635c998bc025 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 27 Sep 2022 16:57:39 +0200 Subject: [PATCH 04/38] =?UTF-8?q?Erstellung=20UserCntrl=20KundenVollmachte?= =?UTF-8?q?n,=20Implementierung=20des=20Ribbon=20Addin=20f=C3=BCr=20Formul?= =?UTF-8?q?aranh=C3=A4nge=20(Vollmachten).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERAGAddIn.sln | 76 ++++++- VERAGAddIn/VERAGAddIn.vbproj | 8 + .../frmAvisoFormularAnfügen.Designer.vb | 203 ++++++++---------- VERAGAddIn/frmAvisoFormularAnfügen.vb | 127 +++-------- VERAGAddIn/rbnVERAG.vb | 4 +- 5 files changed, 210 insertions(+), 208 deletions(-) diff --git a/VERAGAddIn.sln b/VERAGAddIn.sln index 45d224a..390d788 100644 --- a/VERAGAddIn.sln +++ b/VERAGAddIn.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30406.217 +# Visual Studio Version 17 +VisualStudioVersion = 17.3.32825.248 MinimumVisualStudioVersion = 10.0.40219.1 Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VERAGAddIn", "VERAGAddIn\VERAGAddIn.vbproj", "{D579F7A6-7D29-4295-B382-DA5F7EFB4528}" EndProject @@ -11,13 +11,21 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Gemeinsames", "..\AVISO\Avi EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Aviso", "..\AVISO\Aviso\Aviso\Aviso.vbproj", "{7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}" EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "TELOTEC_Worker_lib", "..\..\ADMIN\ADMIN\TELOTEK_Worker_lib\TELOTEC_Worker_lib.vbproj", "{5B947A66-009A-4BB6-B925-F84A01045095}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Parkzeit", "..\..\Parkzeit\Parkzeit\Parkzeit\Parkzeit.vbproj", "{E4190547-B222-4AE3-A0BE-A44EAEE70335}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SDL", "..\..\SDL\SDL\SDL\SDL.vbproj", "{289BCD77-BC00-4BA1-95ED-A79176D99525}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU Release|Mixed Platforms = Release|Mixed Platforms + Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution @@ -25,42 +33,106 @@ Global {D579F7A6-7D29-4295-B382-DA5F7EFB4528}.Debug|Any CPU.Build.0 = Debug|Any CPU {D579F7A6-7D29-4295-B382-DA5F7EFB4528}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {D579F7A6-7D29-4295-B382-DA5F7EFB4528}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {D579F7A6-7D29-4295-B382-DA5F7EFB4528}.Debug|x64.ActiveCfg = Debug|Any CPU + {D579F7A6-7D29-4295-B382-DA5F7EFB4528}.Debug|x64.Build.0 = Debug|Any CPU {D579F7A6-7D29-4295-B382-DA5F7EFB4528}.Debug|x86.ActiveCfg = Debug|Any CPU {D579F7A6-7D29-4295-B382-DA5F7EFB4528}.Release|Any CPU.ActiveCfg = Release|Any CPU {D579F7A6-7D29-4295-B382-DA5F7EFB4528}.Release|Any CPU.Build.0 = Release|Any CPU {D579F7A6-7D29-4295-B382-DA5F7EFB4528}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {D579F7A6-7D29-4295-B382-DA5F7EFB4528}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {D579F7A6-7D29-4295-B382-DA5F7EFB4528}.Release|x64.ActiveCfg = Release|Any CPU + {D579F7A6-7D29-4295-B382-DA5F7EFB4528}.Release|x64.Build.0 = Release|Any CPU {D579F7A6-7D29-4295-B382-DA5F7EFB4528}.Release|x86.ActiveCfg = Release|Any CPU {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|Any CPU.Build.0 = Debug|Any CPU {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|x64.ActiveCfg = Debug|x64 + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|x64.Build.0 = Debug|x64 {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|x86.ActiveCfg = Debug|Any CPU {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|Any CPU.ActiveCfg = Release|Any CPU {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|Any CPU.Build.0 = Release|Any CPU {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|x64.ActiveCfg = Release|x64 + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|x64.Build.0 = Release|x64 {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|x86.ActiveCfg = Release|Any CPU {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|Any CPU.ActiveCfg = Debug|x86 {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|x64.ActiveCfg = Debug|x64 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|x64.Build.0 = Debug|x64 {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|x86.ActiveCfg = Debug|x86 {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|x86.Build.0 = Debug|x86 {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|Any CPU.ActiveCfg = Release|x86 {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|Mixed Platforms.ActiveCfg = Release|x86 {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|Mixed Platforms.Build.0 = Release|x86 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|x64.ActiveCfg = Release|x64 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|x64.Build.0 = Release|x64 {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|x86.ActiveCfg = Release|x86 {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|x86.Build.0 = Release|x86 {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|Any CPU.ActiveCfg = Debug|x86 {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|x64.ActiveCfg = Debug|x64 + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|x64.Build.0 = Debug|x64 {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|x86.ActiveCfg = Debug|x86 {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|x86.Build.0 = Debug|x86 {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|Any CPU.ActiveCfg = Release|x86 {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|Mixed Platforms.ActiveCfg = Release|x86 {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|Mixed Platforms.Build.0 = Release|x86 + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|x64.ActiveCfg = Release|x64 + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|x64.Build.0 = Release|x64 {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|x86.ActiveCfg = Release|x86 {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|x86.Build.0 = Release|x86 + {5B947A66-009A-4BB6-B925-F84A01045095}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B947A66-009A-4BB6-B925-F84A01045095}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B947A66-009A-4BB6-B925-F84A01045095}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {5B947A66-009A-4BB6-B925-F84A01045095}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {5B947A66-009A-4BB6-B925-F84A01045095}.Debug|x64.ActiveCfg = Debug|Any CPU + {5B947A66-009A-4BB6-B925-F84A01045095}.Debug|x64.Build.0 = Debug|Any CPU + {5B947A66-009A-4BB6-B925-F84A01045095}.Debug|x86.ActiveCfg = Debug|Any CPU + {5B947A66-009A-4BB6-B925-F84A01045095}.Debug|x86.Build.0 = Debug|Any CPU + {5B947A66-009A-4BB6-B925-F84A01045095}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B947A66-009A-4BB6-B925-F84A01045095}.Release|Any CPU.Build.0 = Release|Any CPU + {5B947A66-009A-4BB6-B925-F84A01045095}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {5B947A66-009A-4BB6-B925-F84A01045095}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {5B947A66-009A-4BB6-B925-F84A01045095}.Release|x64.ActiveCfg = Release|Any CPU + {5B947A66-009A-4BB6-B925-F84A01045095}.Release|x64.Build.0 = Release|Any CPU + {5B947A66-009A-4BB6-B925-F84A01045095}.Release|x86.ActiveCfg = Release|Any CPU + {5B947A66-009A-4BB6-B925-F84A01045095}.Release|x86.Build.0 = Release|Any CPU + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|Any CPU.ActiveCfg = Debug|x64 + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|Any CPU.Build.0 = Debug|x64 + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|Mixed Platforms.ActiveCfg = Debug|x64 + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|Mixed Platforms.Build.0 = Debug|x64 + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|x64.ActiveCfg = Debug|x64 + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|x64.Build.0 = Debug|x64 + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|x86.ActiveCfg = Debug|x86 + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|x86.Build.0 = Debug|x86 + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Release|Any CPU.ActiveCfg = Release|x64 + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Release|Any CPU.Build.0 = Release|x64 + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Release|Mixed Platforms.ActiveCfg = Release|x64 + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Release|Mixed Platforms.Build.0 = Release|x64 + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Release|x64.ActiveCfg = Release|x64 + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Release|x64.Build.0 = Release|x64 + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Release|x86.ActiveCfg = Release|x86 + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Release|x86.Build.0 = Release|x86 + {289BCD77-BC00-4BA1-95ED-A79176D99525}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {289BCD77-BC00-4BA1-95ED-A79176D99525}.Debug|Any CPU.Build.0 = Debug|Any CPU + {289BCD77-BC00-4BA1-95ED-A79176D99525}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {289BCD77-BC00-4BA1-95ED-A79176D99525}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {289BCD77-BC00-4BA1-95ED-A79176D99525}.Debug|x64.ActiveCfg = Debug|Any CPU + {289BCD77-BC00-4BA1-95ED-A79176D99525}.Debug|x64.Build.0 = Debug|Any CPU + {289BCD77-BC00-4BA1-95ED-A79176D99525}.Debug|x86.ActiveCfg = Debug|Any CPU + {289BCD77-BC00-4BA1-95ED-A79176D99525}.Debug|x86.Build.0 = Debug|Any CPU + {289BCD77-BC00-4BA1-95ED-A79176D99525}.Release|Any CPU.ActiveCfg = Release|Any CPU + {289BCD77-BC00-4BA1-95ED-A79176D99525}.Release|Any CPU.Build.0 = Release|Any CPU + {289BCD77-BC00-4BA1-95ED-A79176D99525}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {289BCD77-BC00-4BA1-95ED-A79176D99525}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {289BCD77-BC00-4BA1-95ED-A79176D99525}.Release|x64.ActiveCfg = Release|Any CPU + {289BCD77-BC00-4BA1-95ED-A79176D99525}.Release|x64.Build.0 = Release|Any CPU + {289BCD77-BC00-4BA1-95ED-A79176D99525}.Release|x86.ActiveCfg = Release|Any CPU + {289BCD77-BC00-4BA1-95ED-A79176D99525}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index 4777910..892be78 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -161,6 +161,10 @@ ..\..\..\Aviso\AVISO\Aviso\bin\Debug\AVISO.exe + + False + ..\..\..\ADMIN\ADMIN\DAKOSY_Worker\bin\Debug\DAKOSY_Worker.dll + ..\..\..\Aviso\AVISO\Gemeinsames\bin\x64\Debug\Gemeinsames.dll @@ -341,6 +345,10 @@ + + {289bcd77-bc00-4ba1-95ed-a79176d99525} + SDL + {a3b497bd-842c-4a2b-b398-ed1976849df1} VERAG_PROG_ALLGEMEIN diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb b/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb index 211c0cb..85d0969 100644 --- a/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb +++ b/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb @@ -28,20 +28,24 @@ Partial Class frmAvisoFormularAnfuegen Me.btnOK = New System.Windows.Forms.Button() Me.KdSearchBox = New VERAG_PROG_ALLGEMEIN.KdSearchBox() Me.btnCancel = New System.Windows.Forms.Button() - Me.dgvKundenvollmachten = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) - Me.btnSaveMail = New System.Windows.Forms.Button() - Me.btnSaveAttachments = New System.Windows.Forms.Button() Me.cbVMTypen = New VERAG_PROG_ALLGEMEIN.MyComboBox() - Me.txtBezeichnung = New VERAG_PROG_ALLGEMEIN.MyTextBox() - Me.Label2 = New System.Windows.Forms.Label() - CType(Me.dgvKundenvollmachten, System.ComponentModel.ISupportInitialize).BeginInit() + Me.MyPanel1 = New VERAG_PROG_ALLGEMEIN.MyPanel(Me.components) + Me.pbMail = New System.Windows.Forms.PictureBox() + Me.pbAnhaenge = New System.Windows.Forms.PictureBox() + Me.MyPanel2 = New VERAG_PROG_ALLGEMEIN.MyPanel(Me.components) + Me.lblVMId = New System.Windows.Forms.Label() + Me.UsrCntlKundenZollVollmachten1 = New SDL.usrCntlKundenZollVollmachten() + Me.MyPanel1.SuspendLayout() + CType(Me.pbMail, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbAnhaenge, System.ComponentModel.ISupportInitialize).BeginInit() + Me.MyPanel2.SuspendLayout() Me.SuspendLayout() ' 'lblKunden ' Me.lblKunden.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.lblKunden.AutoSize = True - Me.lblKunden.Location = New System.Drawing.Point(5, 33) + Me.lblKunden.Location = New System.Drawing.Point(3, 9) Me.lblKunden.Name = "lblKunden" Me.lblKunden.Size = New System.Drawing.Size(44, 13) Me.lblKunden.TabIndex = 2 @@ -51,8 +55,7 @@ Partial Class frmAvisoFormularAnfuegen ' Me.btnOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK - Me.btnOK.Enabled = False - Me.btnOK.Location = New System.Drawing.Point(317, 387) + Me.btnOK.Location = New System.Drawing.Point(402, 65) Me.btnOK.Name = "btnOK" Me.btnOK.Size = New System.Drawing.Size(105, 40) Me.btnOK.TabIndex = 3 @@ -79,11 +82,11 @@ Partial Class frmAvisoFormularAnfuegen Me.KdSearchBox.KdNr = "-1" Me.KdSearchBox.kdNrField = Nothing Me.KdSearchBox.KdNrNullInt = Nothing - Me.KdSearchBox.Location = New System.Drawing.Point(8, 64) + Me.KdSearchBox.Location = New System.Drawing.Point(6, 31) Me.KdSearchBox.Name = "KdSearchBox" Me.KdSearchBox.nurAktive = True Me.KdSearchBox.searchActive = True - Me.KdSearchBox.Size = New System.Drawing.Size(412, 20) + Me.KdSearchBox.Size = New System.Drawing.Size(501, 20) Me.KdSearchBox.TabIndex = 4 Me.KdSearchBox.TIMER_SEARCH = True Me.KdSearchBox.usrcntl = Nothing @@ -92,62 +95,13 @@ Partial Class frmAvisoFormularAnfuegen ' Me.btnCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.btnCancel.Location = New System.Drawing.Point(8, 387) + Me.btnCancel.Location = New System.Drawing.Point(3, 67) Me.btnCancel.Name = "btnCancel" Me.btnCancel.Size = New System.Drawing.Size(116, 40) Me.btnCancel.TabIndex = 31 Me.btnCancel.Text = "Abbrechen" Me.btnCancel.UseVisualStyleBackColor = True ' - 'dgvKundenvollmachten - ' - Me.dgvKundenvollmachten.AKTUALISIERUNGS_INTERVALL = -1 - Me.dgvKundenvollmachten.AllowUserToAddRows = False - Me.dgvKundenvollmachten.AllowUserToDeleteRows = False - Me.dgvKundenvollmachten.AllowUserToResizeColumns = False - Me.dgvKundenvollmachten.AllowUserToResizeRows = False - Me.dgvKundenvollmachten.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.dgvKundenvollmachten.BackgroundColor = System.Drawing.Color.White - Me.dgvKundenvollmachten.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize - Me.dgvKundenvollmachten.Location = New System.Drawing.Point(12, 116) - Me.dgvKundenvollmachten.MultiSelect = False - Me.dgvKundenvollmachten.Name = "dgvKundenvollmachten" - Me.dgvKundenvollmachten.ReadOnly = True - Me.dgvKundenvollmachten.RowHeadersVisible = False - Me.dgvKundenvollmachten.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect - Me.dgvKundenvollmachten.Size = New System.Drawing.Size(410, 116) - Me.dgvKundenvollmachten.TabIndex = 32 - ' - 'btnSaveMail - ' - Me.btnSaveMail.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.btnSaveMail.Enabled = False - Me.btnSaveMail.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.btnSaveMail.Image = Global.VERAGAddIn.My.Resources.Resources.email_big1 - Me.btnSaveMail.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnSaveMail.Location = New System.Drawing.Point(228, 313) - Me.btnSaveMail.Name = "btnSaveMail" - Me.btnSaveMail.Size = New System.Drawing.Size(197, 53) - Me.btnSaveMail.TabIndex = 34 - Me.btnSaveMail.Text = "E-Mail speichern" & Global.Microsoft.VisualBasic.ChrW(13) - Me.btnSaveMail.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnSaveMail.UseVisualStyleBackColor = True - ' - 'btnSaveAttachments - ' - Me.btnSaveAttachments.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.btnSaveAttachments.Enabled = False - Me.btnSaveAttachments.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.btnSaveAttachments.Image = Global.VERAGAddIn.My.Resources.Resources.pdf - Me.btnSaveAttachments.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnSaveAttachments.Location = New System.Drawing.Point(10, 308) - Me.btnSaveAttachments.Name = "btnSaveAttachments" - Me.btnSaveAttachments.Size = New System.Drawing.Size(197, 58) - Me.btnSaveAttachments.TabIndex = 33 - Me.btnSaveAttachments.Text = "Nur Anhänge speichern" - Me.btnSaveAttachments.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnSaveAttachments.UseVisualStyleBackColor = True - ' 'cbVMTypen ' Me.cbVMTypen._allowedValuesFreiText = Nothing @@ -155,79 +109,104 @@ Partial Class frmAvisoFormularAnfuegen Me.cbVMTypen._value = "" Me.cbVMTypen.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.cbVMTypen.FormattingEnabled = True - Me.cbVMTypen.Location = New System.Drawing.Point(8, 89) + Me.cbVMTypen.Location = New System.Drawing.Point(3, 80) Me.cbVMTypen.Name = "cbVMTypen" - Me.cbVMTypen.Size = New System.Drawing.Size(406, 21) + Me.cbVMTypen.Size = New System.Drawing.Size(501, 21) Me.cbVMTypen.TabIndex = 35 ' - 'txtBezeichnung + 'MyPanel1 ' - Me.txtBezeichnung._DateTimeOnly = False - Me.txtBezeichnung._numbersOnly = False - Me.txtBezeichnung._numbersOnlyKommastellen = "" - Me.txtBezeichnung._numbersOnlyTrennzeichen = True - Me.txtBezeichnung._Prozent = False - Me.txtBezeichnung._ShortDateNew = False - Me.txtBezeichnung._ShortDateOnly = False - Me.txtBezeichnung._TimeOnly = False - Me.txtBezeichnung._TimeOnly_Seconds = False - Me.txtBezeichnung._value = "" - Me.txtBezeichnung._Waehrung = False - Me.txtBezeichnung._WaehrungZeichen = True - Me.txtBezeichnung.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.txtBezeichnung.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!) - Me.txtBezeichnung.ForeColor = System.Drawing.Color.Black - Me.txtBezeichnung.Location = New System.Drawing.Point(128, 279) - Me.txtBezeichnung.MaxLineLength = -1 - Me.txtBezeichnung.MaxLines_Warning = "" - Me.txtBezeichnung.MaxLines_Warning_Label = Nothing - Me.txtBezeichnung.Name = "txtBezeichnung" - Me.txtBezeichnung.Size = New System.Drawing.Size(297, 23) - Me.txtBezeichnung.TabIndex = 37 + Me.MyPanel1.Controls.Add(Me.pbMail) + Me.MyPanel1.Controls.Add(Me.pbAnhaenge) + Me.MyPanel1.Controls.Add(Me.btnOK) + Me.MyPanel1.Controls.Add(Me.btnCancel) + Me.MyPanel1.Dock = System.Windows.Forms.DockStyle.Bottom + Me.MyPanel1.Location = New System.Drawing.Point(0, 513) + Me.MyPanel1.Name = "MyPanel1" + Me.MyPanel1.Size = New System.Drawing.Size(514, 108) + Me.MyPanel1.TabIndex = 36 ' - 'Label2 + 'pbMail ' - Me.Label2.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.Label2.AutoSize = True - Me.Label2.Location = New System.Drawing.Point(7, 284) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(112, 13) - Me.Label2.TabIndex = 36 - Me.Label2.Text = "Anhang-Bezeichnung:" + Me.pbMail.Enabled = False + Me.pbMail.Image = Global.VERAGAddIn.My.Resources.Resources.email_big1 + Me.pbMail.Location = New System.Drawing.Point(98, 12) + Me.pbMail.Name = "pbMail" + Me.pbMail.Size = New System.Drawing.Size(55, 50) + Me.pbMail.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.pbMail.TabIndex = 33 + Me.pbMail.TabStop = False + ' + 'pbAnhaenge + ' + Me.pbAnhaenge.Enabled = False + Me.pbAnhaenge.Image = Global.VERAGAddIn.My.Resources.Resources.pdf + Me.pbAnhaenge.Location = New System.Drawing.Point(12, 12) + Me.pbAnhaenge.Name = "pbAnhaenge" + Me.pbAnhaenge.Size = New System.Drawing.Size(65, 50) + Me.pbAnhaenge.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.pbAnhaenge.TabIndex = 32 + Me.pbAnhaenge.TabStop = False + ' + 'MyPanel2 + ' + Me.MyPanel2.Controls.Add(Me.lblVMId) + Me.MyPanel2.Controls.Add(Me.lblKunden) + Me.MyPanel2.Controls.Add(Me.KdSearchBox) + Me.MyPanel2.Controls.Add(Me.cbVMTypen) + Me.MyPanel2.Dock = System.Windows.Forms.DockStyle.Top + Me.MyPanel2.Location = New System.Drawing.Point(0, 0) + Me.MyPanel2.Name = "MyPanel2" + Me.MyPanel2.Size = New System.Drawing.Size(514, 114) + Me.MyPanel2.TabIndex = 37 + ' + 'lblVMId + ' + Me.lblVMId.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.lblVMId.AutoSize = True + Me.lblVMId.Location = New System.Drawing.Point(3, 63) + Me.lblVMId.Name = "lblVMId" + Me.lblVMId.Size = New System.Drawing.Size(69, 13) + Me.lblVMId.TabIndex = 36 + Me.lblVMId.Text = "Vollmacht-Art" + ' + 'UsrCntlKundenZollVollmachten1 + ' + Me.UsrCntlKundenZollVollmachten1.Location = New System.Drawing.Point(0, 120) + Me.UsrCntlKundenZollVollmachten1.Name = "UsrCntlKundenZollVollmachten1" + Me.UsrCntlKundenZollVollmachten1.Size = New System.Drawing.Size(514, 387) + Me.UsrCntlKundenZollVollmachten1.TabIndex = 38 ' 'frmAvisoFormularAnfuegen ' 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(465, 444) - Me.Controls.Add(Me.cbVMTypen) - Me.Controls.Add(Me.txtBezeichnung) - Me.Controls.Add(Me.Label2) - Me.Controls.Add(Me.btnSaveMail) - Me.Controls.Add(Me.btnSaveAttachments) - Me.Controls.Add(Me.dgvKundenvollmachten) - Me.Controls.Add(Me.btnCancel) - Me.Controls.Add(Me.KdSearchBox) - Me.Controls.Add(Me.btnOK) - Me.Controls.Add(Me.lblKunden) + Me.ClientSize = New System.Drawing.Size(514, 621) + Me.Controls.Add(Me.UsrCntlKundenZollVollmachten1) + Me.Controls.Add(Me.MyPanel2) + Me.Controls.Add(Me.MyPanel1) Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.Name = "frmAvisoFormularAnfuegen" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.Text = "Formular anfügen" - CType(Me.dgvKundenvollmachten, System.ComponentModel.ISupportInitialize).EndInit() + Me.MyPanel1.ResumeLayout(False) + CType(Me.pbMail, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbAnhaenge, System.ComponentModel.ISupportInitialize).EndInit() + Me.MyPanel2.ResumeLayout(False) + Me.MyPanel2.PerformLayout() Me.ResumeLayout(False) - Me.PerformLayout() End Sub Friend WithEvents lblKunden As Windows.Forms.Label Friend WithEvents btnOK As Windows.Forms.Button Friend WithEvents KdSearchBox As VERAG_PROG_ALLGEMEIN.KdSearchBox Friend WithEvents btnCancel As Windows.Forms.Button - Friend WithEvents dgvKundenvollmachten As VERAG_PROG_ALLGEMEIN.MyDatagridview - Friend WithEvents btnSaveMail As Windows.Forms.Button - Friend WithEvents btnSaveAttachments As Windows.Forms.Button Friend WithEvents cbVMTypen As VERAG_PROG_ALLGEMEIN.MyComboBox - Friend WithEvents txtBezeichnung As VERAG_PROG_ALLGEMEIN.MyTextBox - Friend WithEvents Label2 As Windows.Forms.Label + Friend WithEvents MyPanel1 As VERAG_PROG_ALLGEMEIN.MyPanel + Friend WithEvents pbMail As Windows.Forms.PictureBox + Friend WithEvents pbAnhaenge As Windows.Forms.PictureBox + Friend WithEvents MyPanel2 As VERAG_PROG_ALLGEMEIN.MyPanel + Friend WithEvents lblVMId As Windows.Forms.Label + Friend WithEvents UsrCntlKundenZollVollmachten1 As SDL.usrCntlKundenZollVollmachten End Class diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.vb b/VERAGAddIn/frmAvisoFormularAnfügen.vb index 576946f..9164618 100644 --- a/VERAGAddIn/frmAvisoFormularAnfügen.vb +++ b/VERAGAddIn/frmAvisoFormularAnfügen.vb @@ -11,13 +11,20 @@ Public Class frmAvisoFormularAnfuegen Public KdNr As Integer = -1 Dim vollmachtartId As Integer = -1 Dim vollmachtId As Integer = -1 - Dim SQL As New SQL + Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim KUNDE As VERAG_PROG_ALLGEMEIN.cKunde = Nothing Public SendungsId = -1 Public Bezeichnung = "" - Public PDF_MAIL = "" + Public PDF_MAIL As Boolean = False + Public ATT As List(Of String) + Sub New() + + InitializeComponent() + + End Sub + Sub New(Bezeichnung) InitializeComponent() @@ -30,6 +37,14 @@ Public Class frmAvisoFormularAnfuegen KdSearchBox.initKdBox(Me) + If PDF_MAIL Then + pbAnhaenge.Visible = True + Else + pbAnhaenge.Visible = False + End If + + + End Sub @@ -44,98 +59,21 @@ Public Class frmAvisoFormularAnfuegen End Sub - - Private Sub btnSaveAttachments_Click(sender As Object, e As EventArgs) Handles btnSaveAttachments.Click - MsgBox("Save Attachement " & KdNr) - - - If dgvKundenvollmachten.SelectedRows.Count <> 1 Then Exit Sub - Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & vollmachtartId, "", "", Bezeichnung, KdNr) - - 'Dim path = DS.uploadDataToDATENSERVERFileDialog() 'Überarbeitung, damit das ausgewählte EMail angefügt wird. - 'Dim path = DS.uploadDataToDATENSERVER("") - If txtBezeichnung.Text.Trim = "" Then - Me.DialogResult = Windows.Forms.DialogResult.None : Exit Sub - End If - - If sender Is btnSaveAttachments Then PDF_MAIL = "PDF" - If sender Is btnSaveMail Then PDF_MAIL = "PDFMAIL" - Bezeichnung = txtBezeichnung.Text - Me.DialogResult = Windows.Forms.DialogResult.OK - - End Sub - - Private Sub btnSaveMail_Click(sender As Object, e As EventArgs) Handles btnSaveMail.Click - MsgBox("Save EMail " & KdNr) - End Sub - Sub init() If KdNr > 0 Then - initVollmachtarten(KdNr) - 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 abf.kdvm_erhalten = 1 AND ISNULL(abf.[kdvm_geloescht],0) != 1 AND art.kdvma_Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "'", False, "FMZOLL", False) - + 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", False) End Sub - Sub initDGVKundenvollmachten(vollmachtartId) + Sub initUsrCntrlKundenvollmachten(vollmachtartId) + UsrCntlKundenZollVollmachten1.init(KdNr, vollmachtartId) - With dgvKundenvollmachten - .Columns.Clear() - Dim where = " And art.kdvma_Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' " - - If VERAG_PROG_ALLGEMEIN.cAllgemein.isCLUSTER Then - where = " AND art.kdvma_Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(KUNDE.FilialenNr) & "' " - End If - - .DataSource = SQL.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 - - - End With End Sub @@ -152,24 +90,27 @@ Public Class frmAvisoFormularAnfuegen Private Sub cbVMTypen_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbVMTypen.SelectedIndexChanged vollmachtartId = cbVMTypen._value - - initDGVKundenvollmachten(vollmachtartId) + initUsrCntrlKundenvollmachten(vollmachtartId) End Sub - Private Sub dgvKundenvollmachten_RowValidated(sender As Object, e As DataGridViewCellEventArgs) Handles dgvKundenvollmachten.RowValidated - End Sub + Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click - Private Sub dgvKundenvollmachten_SelectionChanged(sender As Object, e As EventArgs) Handles dgvKundenvollmachten.SelectionChanged - If KdNr > 0 And vollmachtartId > 0 AndAlso dgvKundenvollmachten.SelectedRows.Count > 0 Then - btnSaveAttachments.Enabled = True - btnSaveMail.Enabled = True - btnOK.Enabled = True + If Not PDF_MAIL Then + 'Sicherheitsabfrage: Mail besitzt keinen Anhang, soll VM gespeichert werden? End If + + + UsrCntlKundenZollVollmachten1.btnNeu_Click(sender, e) + + Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & UsrCntlKundenZollVollmachten1.vollmachtartId, "", "", Bezeichnung, KdNr) + Dim path = DS.uploadDataToDATENSERVER("") + + Close() End Sub - Private Sub dgvKundenvollmachten_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvKundenvollmachten.CellContentClick - dgvKundenvollmachten_SelectionChanged(sender, e) + Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click + Close() End Sub End Class \ No newline at end of file diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index 41b43f9..efd5cba 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -76,7 +76,7 @@ Public Class VERAGRibbon End Sub Private Sub btnVM_Click(sender As Object, e As RibbonControlEventArgs) Handles btnVM.Click - ' ToDo -> Logif 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() @@ -586,8 +586,10 @@ Public Class AVISO_Mail_Functions SendungsId = frmAvisoFormularAnfuegen.SendungsId Bezeichnung = frmAvisoFormularAnfuegen.Bezeichnung pdf_mail = frmAvisoFormularAnfuegen.PDF_MAIL + Att = frmAvisoFormularAnfuegen.ATT Return 1 + Exit Function End If End If From 95f0a62c8908ea08785b486c04783b0186b00bbd Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 28 Sep 2022 13:15:48 +0200 Subject: [PATCH 05/38] =?UTF-8?q?Logik=20f=C3=BCr=20AddIn=20Vollmachten=20?= =?UTF-8?q?eingebaut.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../frmAvisoFormularAnfügen.Designer.vb | 49 ++++++++-- VERAGAddIn/frmAvisoFormularAnfügen.resx | 3 + VERAGAddIn/frmAvisoFormularAnfügen.vb | 52 ++++++++--- VERAGAddIn/rbnVERAG.vb | 93 ++++++++++++++----- 4 files changed, 154 insertions(+), 43 deletions(-) diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb b/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb index 85d0969..5f233f7 100644 --- a/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb +++ b/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb @@ -35,10 +35,13 @@ Partial Class frmAvisoFormularAnfuegen Me.MyPanel2 = New VERAG_PROG_ALLGEMEIN.MyPanel(Me.components) Me.lblVMId = New System.Windows.Forms.Label() Me.UsrCntlKundenZollVollmachten1 = New SDL.usrCntlKundenZollVollmachten() + Me.dgvAnhaenge = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) + Me.columnName = New System.Windows.Forms.DataGridViewTextBoxColumn() Me.MyPanel1.SuspendLayout() CType(Me.pbMail, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.pbAnhaenge, System.ComponentModel.ISupportInitialize).BeginInit() Me.MyPanel2.SuspendLayout() + CType(Me.dgvAnhaenge, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'lblKunden @@ -121,16 +124,16 @@ Partial Class frmAvisoFormularAnfuegen Me.MyPanel1.Controls.Add(Me.btnOK) Me.MyPanel1.Controls.Add(Me.btnCancel) 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.Size = New System.Drawing.Size(514, 108) + Me.MyPanel1.Size = New System.Drawing.Size(526, 108) Me.MyPanel1.TabIndex = 36 ' 'pbMail ' Me.pbMail.Enabled = False 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.Size = New System.Drawing.Size(55, 50) Me.pbMail.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom @@ -141,12 +144,13 @@ Partial Class frmAvisoFormularAnfuegen ' Me.pbAnhaenge.Enabled = False 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.Size = New System.Drawing.Size(65, 50) Me.pbAnhaenge.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom Me.pbAnhaenge.TabIndex = 32 Me.pbAnhaenge.TabStop = False + Me.pbAnhaenge.Visible = False ' 'MyPanel2 ' @@ -157,7 +161,7 @@ Partial Class frmAvisoFormularAnfuegen Me.MyPanel2.Dock = System.Windows.Forms.DockStyle.Top Me.MyPanel2.Location = New System.Drawing.Point(0, 0) 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 ' 'lblVMId @@ -177,12 +181,42 @@ Partial Class frmAvisoFormularAnfuegen Me.UsrCntlKundenZollVollmachten1.Size = New System.Drawing.Size(514, 387) 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 ' 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(514, 621) + Me.ClientSize = New System.Drawing.Size(526, 631) + Me.Controls.Add(Me.dgvAnhaenge) Me.Controls.Add(Me.UsrCntlKundenZollVollmachten1) Me.Controls.Add(Me.MyPanel2) Me.Controls.Add(Me.MyPanel1) @@ -195,6 +229,7 @@ Partial Class frmAvisoFormularAnfuegen CType(Me.pbAnhaenge, System.ComponentModel.ISupportInitialize).EndInit() Me.MyPanel2.ResumeLayout(False) Me.MyPanel2.PerformLayout() + CType(Me.dgvAnhaenge, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub @@ -209,4 +244,6 @@ Partial Class frmAvisoFormularAnfuegen Friend WithEvents MyPanel2 As VERAG_PROG_ALLGEMEIN.MyPanel Friend WithEvents lblVMId As Windows.Forms.Label Friend WithEvents UsrCntlKundenZollVollmachten1 As SDL.usrCntlKundenZollVollmachten + Friend WithEvents dgvAnhaenge As VERAG_PROG_ALLGEMEIN.MyDatagridview + Friend WithEvents columnName As Windows.Forms.DataGridViewTextBoxColumn End Class diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.resx b/VERAGAddIn/frmAvisoFormularAnfügen.resx index f7f78d5..6ec366f 100644 --- a/VERAGAddIn/frmAvisoFormularAnfügen.resx +++ b/VERAGAddIn/frmAvisoFormularAnfügen.resx @@ -117,6 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True + diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.vb b/VERAGAddIn/frmAvisoFormularAnfügen.vb index 9164618..15ff663 100644 --- a/VERAGAddIn/frmAvisoFormularAnfügen.vb +++ b/VERAGAddIn/frmAvisoFormularAnfügen.vb @@ -9,14 +9,15 @@ Imports VERAG_PROG_ALLGEMEIN Public Class frmAvisoFormularAnfuegen Public KdNr As Integer = -1 + Public vollmachtId As Integer = -1 Dim vollmachtartId As Integer = -1 - Dim vollmachtId As Integer = -1 Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim KUNDE As VERAG_PROG_ALLGEMEIN.cKunde = Nothing Public SendungsId = -1 Public Bezeichnung = "" - Public PDF_MAIL As Boolean = False + Public PDF_MAIL = "" Public ATT As List(Of String) + Public hasAnhaenge As Boolean = False Sub New() @@ -36,15 +37,12 @@ Public Class frmAvisoFormularAnfuegen Private Sub frmAvisoFormularAnfuegen_Load(sender As Object, e As EventArgs) Handles MyBase.Load KdSearchBox.initKdBox(Me) - - If PDF_MAIL Then + initAttachment() + If hasAnhaenge Then pbAnhaenge.Visible = True - Else - pbAnhaenge.Visible = False End If - End Sub @@ -97,20 +95,46 @@ Public Class frmAvisoFormularAnfuegen Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click - If Not PDF_MAIL Then - 'Sicherheitsabfrage: Mail besitzt keinen Anhang, soll VM gespeichert werden? + If Not hasAnhaenge Then + + If Not vbYes = MsgBox("Die Email besitzt keinen Anhang! Soll die Email denoch gespeichert werden?", vbYesNoCancel) Then Exit Sub + End If - - UsrCntlKundenZollVollmachten1.btnNeu_Click(sender, e) + vollmachtId = UsrCntlKundenZollVollmachten1.vmId - Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & UsrCntlKundenZollVollmachten1.vollmachtartId, "", "", Bezeichnung, KdNr) - Dim path = DS.uploadDataToDATENSERVER("") - + 'MsgBox("Dokument wurde gespeichert!") + 'Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & UsrCntlKundenZollVollmachten1.vollmachtartId, "", "", Bezeichnung, KdNr) + 'Dim path = DS.uploadDataToDATENSERVER("") Close() + + + 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.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 \ No newline at end of file diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index efd5cba..62a6ea9 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -77,7 +77,7 @@ Public Class VERAGRibbon 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. - If LOGIN_OK Then AVISO_Mail_Functions.addMailToAviso_Vollmachten() + If LOGIN_OK Then AVISO_Mail_Functions.addMailToAviso_Hauptfenster(True) End Sub @@ -85,7 +85,7 @@ End Class Public Class AVISO_Mail_Functions - Shared Sub addMailToAviso_Hauptfenster() + Shared Sub addMailToAviso_Hauptfenster(Optional isFormular As Boolean = False) Try Dim explorer As Outlook.Explorer = Globals.ThisAddIn.Application.ActiveExplorer Dim selection As Outlook.Selection = explorer.Selection @@ -94,7 +94,7 @@ Public Class AVISO_Mail_Functions Dim mailItem As Outlook.MailItem = selectedItem mailItem = DirectCast(mailItem, Outlook.MailItem) - addMailToAviso(mailItem) + addMailToAviso(mailItem, isFormular) End If Catch ex As Exception MsgBox(ex.Message & ex.StackTrace) @@ -143,6 +143,10 @@ Public Class AVISO_Mail_Functions ElseIf pdf_mail = "PDFMAIL" Then saveMail(mailItem, AvisoId, Bezeichnung,, SendungsId, Art) 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 saveMail(mailItem, AvisoId, Bezeichnung,, SendungsId, Art) End If @@ -386,6 +390,32 @@ Public Class AVISO_Mail_Functions Catch ex As Exception MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ex.Message & ex.StackTrace) 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 @@ -577,20 +607,55 @@ Public Class AVISO_Mail_Functions End Try 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 If (isFormular = True) Then Dim frmAvisoFormularAnfuegen As New frmAvisoFormularAnfuegen(Bezeichnung) + frmAvisoFormularAnfuegen.ATT = Att If frmAvisoFormularAnfuegen.ShowDialog = DialogResult.OK Then + Dim AvisoId = frmAvisoFormularAnfuegen.vollmachtId SendungsId = frmAvisoFormularAnfuegen.SendungsId Bezeichnung = frmAvisoFormularAnfuegen.Bezeichnung pdf_mail = frmAvisoFormularAnfuegen.PDF_MAIL Att = frmAvisoFormularAnfuegen.ATT - Return 1 - Exit Function + Return AvisoId + End If + + Return -1 + Exit Function + End If Dim frmAvisoAnfügen As New frmAvisoAnfuegen(Bezeichnung) @@ -610,22 +675,4 @@ Public Class AVISO_Mail_Functions 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 From 26a8cf78f514ed3ea2c7b82591b29e1db5c3766c Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 28 Sep 2022 13:59:06 +0200 Subject: [PATCH 06/38] =?UTF-8?q?VM=20anf=C3=BCgen:=20wenn=20EMail=20Anhan?= =?UTF-8?q?g=20enth=C3=A4lt,=20werden=20nun=20Mail=20und=20Anhang=20ges?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERAGAddIn/frmAvisoFormularAnfügen.vb | 3 --- VERAGAddIn/rbnVERAG.vb | 3 +-- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.vb b/VERAGAddIn/frmAvisoFormularAnfügen.vb index 15ff663..e6e1192 100644 --- a/VERAGAddIn/frmAvisoFormularAnfügen.vb +++ b/VERAGAddIn/frmAvisoFormularAnfügen.vb @@ -103,9 +103,6 @@ Public Class frmAvisoFormularAnfuegen UsrCntlKundenZollVollmachten1.btnNeu_Click(sender, e) vollmachtId = UsrCntlKundenZollVollmachten1.vmId - 'MsgBox("Dokument wurde gespeichert!") - 'Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & UsrCntlKundenZollVollmachten1.vollmachtartId, "", "", Bezeichnung, KdNr) - 'Dim path = DS.uploadDataToDATENSERVER("") Close() diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index 62a6ea9..8145c2c 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -144,6 +144,7 @@ Public Class AVISO_Mail_Functions saveMail(mailItem, AvisoId, Bezeichnung,, SendungsId, Art) saveAttachment(ATTACHMENTS_LIST, AvisoId, SendungsId, Art, BezAnhang) ElseIf pdf_mail = "PDF_DATENSERVER" Then + saveMailOnDatenserver(mailItem, AvisoId, Bezeichnung,, Art) saveAttachmentOnDatenserver(ATTACHMENTS_LIST, AvisoId, Art, BezAnhang) ElseIf pdf_mail = "ONLYMAIL_DATENSERVER" Then saveMailOnDatenserver(mailItem, AvisoId, Bezeichnung,, Art) @@ -404,8 +405,6 @@ Public Class AVISO_Mail_Functions 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 From 14c549f5bf0084abd257ea2043884b0abd76f672 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 28 Sep 2022 14:19:22 +0200 Subject: [PATCH 07/38] GUI-Verbesserungen --- .../frmAvisoFormularAnfügen.Designer.vb | 26 +++++++++---------- VERAGAddIn/frmAvisoFormularAnfügen.vb | 2 -- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb b/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb index 5f233f7..405f5e4 100644 --- a/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb +++ b/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb @@ -48,7 +48,7 @@ Partial Class frmAvisoFormularAnfuegen ' Me.lblKunden.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.lblKunden.AutoSize = True - Me.lblKunden.Location = New System.Drawing.Point(3, 9) + Me.lblKunden.Location = New System.Drawing.Point(12, 15) Me.lblKunden.Name = "lblKunden" Me.lblKunden.Size = New System.Drawing.Size(44, 13) Me.lblKunden.TabIndex = 2 @@ -58,7 +58,7 @@ Partial Class frmAvisoFormularAnfuegen ' Me.btnOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK - Me.btnOK.Location = New System.Drawing.Point(402, 65) + Me.btnOK.Location = New System.Drawing.Point(409, 65) Me.btnOK.Name = "btnOK" Me.btnOK.Size = New System.Drawing.Size(105, 40) Me.btnOK.TabIndex = 3 @@ -85,11 +85,11 @@ Partial Class frmAvisoFormularAnfuegen Me.KdSearchBox.KdNr = "-1" Me.KdSearchBox.kdNrField = Nothing Me.KdSearchBox.KdNrNullInt = Nothing - Me.KdSearchBox.Location = New System.Drawing.Point(6, 31) + Me.KdSearchBox.Location = New System.Drawing.Point(12, 32) Me.KdSearchBox.Name = "KdSearchBox" Me.KdSearchBox.nurAktive = True Me.KdSearchBox.searchActive = True - Me.KdSearchBox.Size = New System.Drawing.Size(501, 20) + Me.KdSearchBox.Size = New System.Drawing.Size(495, 20) Me.KdSearchBox.TabIndex = 4 Me.KdSearchBox.TIMER_SEARCH = True Me.KdSearchBox.usrcntl = Nothing @@ -112,9 +112,9 @@ Partial Class frmAvisoFormularAnfuegen Me.cbVMTypen._value = "" Me.cbVMTypen.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.cbVMTypen.FormattingEnabled = True - Me.cbVMTypen.Location = New System.Drawing.Point(3, 80) + Me.cbVMTypen.Location = New System.Drawing.Point(12, 81) Me.cbVMTypen.Name = "cbVMTypen" - Me.cbVMTypen.Size = New System.Drawing.Size(501, 21) + Me.cbVMTypen.Size = New System.Drawing.Size(492, 21) Me.cbVMTypen.TabIndex = 35 ' 'MyPanel1 @@ -126,7 +126,7 @@ Partial Class frmAvisoFormularAnfuegen Me.MyPanel1.Dock = System.Windows.Forms.DockStyle.Bottom Me.MyPanel1.Location = New System.Drawing.Point(0, 523) Me.MyPanel1.Name = "MyPanel1" - Me.MyPanel1.Size = New System.Drawing.Size(526, 108) + Me.MyPanel1.Size = New System.Drawing.Size(521, 108) Me.MyPanel1.TabIndex = 36 ' 'pbMail @@ -161,14 +161,14 @@ Partial Class frmAvisoFormularAnfuegen Me.MyPanel2.Dock = System.Windows.Forms.DockStyle.Top Me.MyPanel2.Location = New System.Drawing.Point(0, 0) Me.MyPanel2.Name = "MyPanel2" - Me.MyPanel2.Size = New System.Drawing.Size(526, 114) + Me.MyPanel2.Size = New System.Drawing.Size(521, 114) Me.MyPanel2.TabIndex = 37 ' 'lblVMId ' Me.lblVMId.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.lblVMId.AutoSize = True - Me.lblVMId.Location = New System.Drawing.Point(3, 63) + Me.lblVMId.Location = New System.Drawing.Point(9, 64) Me.lblVMId.Name = "lblVMId" Me.lblVMId.Size = New System.Drawing.Size(69, 13) Me.lblVMId.TabIndex = 36 @@ -178,7 +178,7 @@ Partial Class frmAvisoFormularAnfuegen ' Me.UsrCntlKundenZollVollmachten1.Location = New System.Drawing.Point(0, 120) Me.UsrCntlKundenZollVollmachten1.Name = "UsrCntlKundenZollVollmachten1" - Me.UsrCntlKundenZollVollmachten1.Size = New System.Drawing.Size(514, 387) + Me.UsrCntlKundenZollVollmachten1.Size = New System.Drawing.Size(514, 355) Me.UsrCntlKundenZollVollmachten1.TabIndex = 38 ' 'dgvAnhaenge @@ -194,12 +194,12 @@ Partial Class frmAvisoFormularAnfuegen 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.Location = New System.Drawing.Point(0, 483) 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.Size = New System.Drawing.Size(514, 36) Me.dgvAnhaenge.TabIndex = 39 Me.dgvAnhaenge.Visible = False ' @@ -215,7 +215,7 @@ Partial Class frmAvisoFormularAnfuegen 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(526, 631) + Me.ClientSize = New System.Drawing.Size(521, 631) Me.Controls.Add(Me.dgvAnhaenge) Me.Controls.Add(Me.UsrCntlKundenZollVollmachten1) Me.Controls.Add(Me.MyPanel2) diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.vb b/VERAGAddIn/frmAvisoFormularAnfügen.vb index e6e1192..8fec83a 100644 --- a/VERAGAddIn/frmAvisoFormularAnfügen.vb +++ b/VERAGAddIn/frmAvisoFormularAnfügen.vb @@ -105,8 +105,6 @@ Public Class frmAvisoFormularAnfuegen Close() - - End Sub Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click From 02f1fa1c68a303ef2ffd8826d70724310f24c5dc Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 28 Sep 2022 17:27:49 +0200 Subject: [PATCH 08/38] =?UTF-8?q?kleiner=20=C3=84nderungen=20bei=20AddIn-V?= =?UTF-8?q?ollmachten?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERAGAddIn/My Project/Resources.Designer.vb | 12 +++- VERAGAddIn/My Project/Resources.resx | 17 +++--- VERAGAddIn/Resources/pdf_gray.png | Bin 0 -> 3711 bytes VERAGAddIn/VERAGAddIn.vbproj | 1 + .../frmAvisoFormularAnfügen.Designer.vb | 57 +++++++----------- VERAGAddIn/frmAvisoFormularAnfügen.vb | 14 +++-- VERAGAddIn/rbnVERAG.vb | 47 +++++++++++---- 7 files changed, 87 insertions(+), 61 deletions(-) create mode 100644 VERAGAddIn/Resources/pdf_gray.png diff --git a/VERAGAddIn/My Project/Resources.Designer.vb b/VERAGAddIn/My Project/Resources.Designer.vb index 45f055f..362b1fa 100644 --- a/VERAGAddIn/My Project/Resources.Designer.vb +++ b/VERAGAddIn/My Project/Resources.Designer.vb @@ -22,7 +22,7 @@ Namespace My.Resources ''' ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. ''' - _ @@ -110,6 +110,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property pdf_gray() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("pdf_gray", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. ''' diff --git a/VERAGAddIn/My Project/Resources.resx b/VERAGAddIn/My Project/Resources.resx index 62b09cf..a944688 100644 --- a/VERAGAddIn/My Project/Resources.resx +++ b/VERAGAddIn/My Project/Resources.resx @@ -118,25 +118,28 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\pdfprint.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\wheel.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\pdf.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\email_big1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\Aviso.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\665209_email_512x512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\Aviso1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\pdfprint.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\665209_email_512x512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\email_big1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\pdf_gray.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/VERAGAddIn/Resources/pdf_gray.png b/VERAGAddIn/Resources/pdf_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..30b8686e55738bb6faa6c8e7ffbd7a71a2a928aa GIT binary patch literal 3711 zcmaJ^c|26@-yR{#QYeg)F{Bj6Y}80u##UzX*q4$qGiC;}m>Elwz3d^Wu~d@X6S9{q zNtPl-WQvqsPskE7;T_NK>G{2XyuIgh&bjY%f4q+9CxR@fI1+#VM4{<}=js~4APPYr?102*V;IIn zGQ~WQNwf*X+TsJf@W%<@QzthmgmhD9b5n@eb(S4bC{=|8xY`J2fjG06no6fYQ)4hLH(TYrG(^+IX z17vKY13K(Lp%Li*EcL(bF&LBujm5^%@I(u=KA6v-MWGN-2xCJyLdRGa0Xq(ZLQQmx zw2^SMp`o^+2@GvwYHa!oi>Bj!sYDw47nbl}?6Kcsx1>O2@I9l6Oo|_oV9KOZL4T)= zqWnG<$zp~{&{40DSjjwhlU)BJCoDTr7 zbI}5AXdCdpGo3`Xdnwy?=(#Jt^x-X1+tqRPfs&5Cs4UYto9u-<^~wcGs-Rd+u;)?) zSncNFfEi@>vQXXjI`FdAvTI5KmmbWjkR0{9+rql0^fCPNSJ)*FdtNEh3(MIVx-i*& zA=@$y)>U3n(TGa7{kA7BLuOgdq~S7exj+Bx-2>a;jk294xTpss&@}=PMj~M4-5Am*~Bd$+sohv-L8ol0?tk)c8P5jg+HH03v z&N!1&a=wlxwrf}7TS1a&lqEs83tc_yQWUbeaqj4Yy}e`g=RS0gxwcl6&X59WNJ9JW z)TE@>SomeP<*(e^f*$A)M-!XxK|dDOv$T>`#que7_V4d>vDD16oA<r?0?=$1qEDF=>SL)gSXW^H=ViIR$=xKyV z>arj_>VX6Y9|X0DWG+qpk$U6CTa1|ZN|9Z$yWpE>JlqX#gwIw$dKU2U#gpB4i?1o_ z6=|J+TrfY{R=m0zQ1PiPQK|UVZM}?@`oQnj<1bQe;G|ben1!|PUcNK$kyhPp(W`qD z;I9;bg|U0oNATW!6KEinw={Q_q9(0{?rV;$Q??NGn5w|HN#2jyx%Wr`@#Rf*&Et0Y zSjE)z^dfgWzAsJ=V!7G>z~v}at;is3Tand0qY0M}LDb!Dl50)!;_%kky+KP9*%$bgnFDZlryDQpk@r|FQpE$xc}f@<)k%I+mDp zM2B{K4l7Q8qukkk4&@4z@cP{12^!$RPmaLVAqfNVo+5}w=bPuhxj>?F=xCJS7uJX)9u-D`%!wvNU!e5mZr46}x2Up0ECpja1#SRii+4tO^ z#{$bNu-I#bjt@s@GnXE21hv$-Whj4m8<|`|>Q+#5lus#h%dE34wDxQY70B!6rzesA z2-7Z^=}Hlv%g)Yzd*3WEzKJ&6K;=BM#0df3Ks8JSp`%)U%gRK(wz)GbB0M*AxxXB0|rV6D*J+8$Ux%URwTo7AT_BfgTBpE*$V6@?xps zI_X?7w#se2)i<1H{S8lylbRrLV=fDjd1R$peAE7iXGDfWa&mLmrx&F(lUcmwnZHU! zj%GYVSDP)EwelXZr+c9MI&26Q4p6Qt%6Ox%KQA}voLT$+SF88ZF%QFSs;NipUV@28eeU<;hj2F7<$X8LENA5A+IxR_TNpA}=ihxuv*uYjBhB#+ zrBXS{nlCV`t_)pWCjeP(4rhxHRA`Py2i3SunGN==HxI^(GDs6ZHdqDD5!!J&c+8_2 zqj9~-G=!7vwnLh$P}L>NJoIpOerBcNm^8p-fLlhz&U&TU%6D*gMk6ji?frQ7+wC0V z4I!09&}*enx}igk90?&>zOV5y2@If6BUAzy9Bw}-FyLAs(YLMFZ}I(~!Z}hufN98EG!!Y`H0+E48bT9fEs zH(*!wudR1(k4QpZ&zM<*3v5&LXtn1K`}=i%Q+Qbq6cerrR&er$e_G#I=V1`Tb^fJi zdwR@DhDKNGb~&lgE`3jL_pmG{MmGxy$4Bi_N>7k|lzJ=VB65Y71oWBv_ER}_NNK=C zj8My(=!9P4<>aV#PkHC7&Mv8zT2rh}x}SOZ(Pb4bwyfzLpEcc^pD{EX4}^=W*8TD7 z@*MKcZS$)HXV->LMB12*L&-U)|I%TBH?JNH z#v8FFUm;y^)s5DdRf$SS&l}E<*@fynK547LpAKa=vW`6BLVWx(q#!nB$VhHkTgbv# zO!|q7<&g8qwLNwI^eRG!wC`BE)HBhT-1w)#QRl$|H|TEGh{^H0hF&e2zBPiUUptq% zg>_Vkk;rAkhR42t72PwA3cdyWDQ)`1 z+V6u@VIJs@PLaoq&*AEzEM>nqb2&;1(8j3wYk~T3t&j2fh9ItYQ$Z(4v|iUiL~_5j z?`PW3<14c&)!PT_4Cr&spB{W$FRm7m=g%hg0-YFzdx#iDo z)w%7-BM9#S?UmE`vfbVpDP8i?S3@1Y*lO(V;OSAzuY^sz8SQQeR}1rk3375m4=e<$ z*08Twgt=tiY}dy%3oRa?#NHRVUfmmYU864~I^38haO~U_bMb(mt3Fkv?gRK0nL}8_ zHT7x@Jp)4>UB_B{M7`rBIj7vyd+n+`?dlG!&)m`mi-A1pAD^T#^J0JncdzFUoy8Vc z(}!tpeOIUX`!}bF3^xS`&*vPT8c%d~F^Ra@;MbFU&19c0jlErRKe?nzLQntFGU8CB zYYskE{pdke)u5Fp{C7+qmp%1b*(@URewyFU7v2TlZ(akVD3lh)5ZU7T5%M zwk7PFlp9snB(ltfVhz{VzQeEhoJJE`_KV`O`QI-(;z`%7L?_XITBN9%T9IC5LXqxk zWY)_yVqWTi&egvpfZS;%&&p`}Uebyj^n ze+Fz(mV4@cGy9~58H2FRTd>RkOdmRX6e? z8GCwqh73OmYcU9TBQ_rNIMR14$?J=9$o8ZN1>W3#YrouitfVD{d9F<_DIu$%D + diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb b/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb index 405f5e4..2c647bd 100644 --- a/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb +++ b/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb @@ -30,25 +30,24 @@ Partial Class frmAvisoFormularAnfuegen Me.btnCancel = New System.Windows.Forms.Button() Me.cbVMTypen = New VERAG_PROG_ALLGEMEIN.MyComboBox() Me.MyPanel1 = New VERAG_PROG_ALLGEMEIN.MyPanel(Me.components) - Me.pbMail = New System.Windows.Forms.PictureBox() - Me.pbAnhaenge = New System.Windows.Forms.PictureBox() Me.MyPanel2 = New VERAG_PROG_ALLGEMEIN.MyPanel(Me.components) Me.lblVMId = New System.Windows.Forms.Label() Me.UsrCntlKundenZollVollmachten1 = New SDL.usrCntlKundenZollVollmachten() Me.dgvAnhaenge = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) Me.columnName = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.pbAnhaenge = New System.Windows.Forms.PictureBox() Me.MyPanel1.SuspendLayout() - CType(Me.pbMail, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbAnhaenge, System.ComponentModel.ISupportInitialize).BeginInit() Me.MyPanel2.SuspendLayout() CType(Me.dgvAnhaenge, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbAnhaenge, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'lblKunden ' Me.lblKunden.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.lblKunden.AutoSize = True - Me.lblKunden.Location = New System.Drawing.Point(12, 15) + Me.lblKunden.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblKunden.Location = New System.Drawing.Point(12, 9) Me.lblKunden.Name = "lblKunden" Me.lblKunden.Size = New System.Drawing.Size(44, 13) Me.lblKunden.TabIndex = 2 @@ -80,6 +79,7 @@ Partial Class frmAvisoFormularAnfuegen Me.KdSearchBox._ValueKdAndName = True Me.KdSearchBox.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.KdSearchBox.dgvpos = "LEFT" + Me.KdSearchBox.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.KdSearchBox.HideSelection = False Me.KdSearchBox.KdName = "" Me.KdSearchBox.KdNr = "-1" @@ -89,7 +89,7 @@ Partial Class frmAvisoFormularAnfuegen Me.KdSearchBox.Name = "KdSearchBox" Me.KdSearchBox.nurAktive = True Me.KdSearchBox.searchActive = True - Me.KdSearchBox.Size = New System.Drawing.Size(495, 20) + Me.KdSearchBox.Size = New System.Drawing.Size(495, 23) Me.KdSearchBox.TabIndex = 4 Me.KdSearchBox.TIMER_SEARCH = True Me.KdSearchBox.usrcntl = Nothing @@ -111,15 +111,15 @@ Partial Class frmAvisoFormularAnfuegen Me.cbVMTypen._allowFreiText = False Me.cbVMTypen._value = "" Me.cbVMTypen.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.cbVMTypen.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.cbVMTypen.FormattingEnabled = True Me.cbVMTypen.Location = New System.Drawing.Point(12, 81) Me.cbVMTypen.Name = "cbVMTypen" - Me.cbVMTypen.Size = New System.Drawing.Size(492, 21) + Me.cbVMTypen.Size = New System.Drawing.Size(492, 24) Me.cbVMTypen.TabIndex = 35 ' 'MyPanel1 ' - Me.MyPanel1.Controls.Add(Me.pbMail) Me.MyPanel1.Controls.Add(Me.pbAnhaenge) Me.MyPanel1.Controls.Add(Me.btnOK) Me.MyPanel1.Controls.Add(Me.btnCancel) @@ -129,29 +129,6 @@ Partial Class frmAvisoFormularAnfuegen Me.MyPanel1.Size = New System.Drawing.Size(521, 108) Me.MyPanel1.TabIndex = 36 ' - 'pbMail - ' - Me.pbMail.Enabled = False - Me.pbMail.Image = Global.VERAGAddIn.My.Resources.Resources.email_big1 - Me.pbMail.Location = New System.Drawing.Point(12, 11) - Me.pbMail.Name = "pbMail" - Me.pbMail.Size = New System.Drawing.Size(55, 50) - Me.pbMail.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom - Me.pbMail.TabIndex = 33 - Me.pbMail.TabStop = False - ' - 'pbAnhaenge - ' - Me.pbAnhaenge.Enabled = False - Me.pbAnhaenge.Image = Global.VERAGAddIn.My.Resources.Resources.pdf - Me.pbAnhaenge.Location = New System.Drawing.Point(73, 12) - Me.pbAnhaenge.Name = "pbAnhaenge" - Me.pbAnhaenge.Size = New System.Drawing.Size(65, 50) - Me.pbAnhaenge.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom - Me.pbAnhaenge.TabIndex = 32 - Me.pbAnhaenge.TabStop = False - Me.pbAnhaenge.Visible = False - ' 'MyPanel2 ' Me.MyPanel2.Controls.Add(Me.lblVMId) @@ -168,7 +145,8 @@ Partial Class frmAvisoFormularAnfuegen ' Me.lblVMId.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.lblVMId.AutoSize = True - Me.lblVMId.Location = New System.Drawing.Point(9, 64) + Me.lblVMId.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblVMId.Location = New System.Drawing.Point(12, 61) Me.lblVMId.Name = "lblVMId" Me.lblVMId.Size = New System.Drawing.Size(69, 13) Me.lblVMId.TabIndex = 36 @@ -210,6 +188,17 @@ Partial Class frmAvisoFormularAnfuegen Me.columnName.Name = "columnName" Me.columnName.ReadOnly = True ' + 'pbAnhaenge + ' + Me.pbAnhaenge.Enabled = False + Me.pbAnhaenge.Image = Global.VERAGAddIn.My.Resources.Resources.pdf_gray + Me.pbAnhaenge.Location = New System.Drawing.Point(15, 11) + Me.pbAnhaenge.Name = "pbAnhaenge" + Me.pbAnhaenge.Size = New System.Drawing.Size(65, 50) + Me.pbAnhaenge.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.pbAnhaenge.TabIndex = 32 + Me.pbAnhaenge.TabStop = False + ' 'frmAvisoFormularAnfuegen ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -225,11 +214,10 @@ Partial Class frmAvisoFormularAnfuegen Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.Text = "Formular anfügen" Me.MyPanel1.ResumeLayout(False) - CType(Me.pbMail, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbAnhaenge, System.ComponentModel.ISupportInitialize).EndInit() Me.MyPanel2.ResumeLayout(False) Me.MyPanel2.PerformLayout() CType(Me.dgvAnhaenge, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbAnhaenge, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub @@ -239,7 +227,6 @@ Partial Class frmAvisoFormularAnfuegen Friend WithEvents btnCancel As Windows.Forms.Button Friend WithEvents cbVMTypen As VERAG_PROG_ALLGEMEIN.MyComboBox Friend WithEvents MyPanel1 As VERAG_PROG_ALLGEMEIN.MyPanel - Friend WithEvents pbMail As Windows.Forms.PictureBox Friend WithEvents pbAnhaenge As Windows.Forms.PictureBox Friend WithEvents MyPanel2 As VERAG_PROG_ALLGEMEIN.MyPanel Friend WithEvents lblVMId As Windows.Forms.Label diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.vb b/VERAGAddIn/frmAvisoFormularAnfügen.vb index 8fec83a..61e4fb9 100644 --- a/VERAGAddIn/frmAvisoFormularAnfügen.vb +++ b/VERAGAddIn/frmAvisoFormularAnfügen.vb @@ -12,7 +12,6 @@ Public Class frmAvisoFormularAnfuegen Public vollmachtId As Integer = -1 Dim vollmachtartId As Integer = -1 Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL - Dim KUNDE As VERAG_PROG_ALLGEMEIN.cKunde = Nothing Public SendungsId = -1 Public Bezeichnung = "" Public PDF_MAIL = "" @@ -38,9 +37,7 @@ Public Class frmAvisoFormularAnfuegen KdSearchBox.initKdBox(Me) initAttachment() - If hasAnhaenge Then - pbAnhaenge.Visible = True - End If + If hasAnhaenge Then pbAnhaenge.Image = My.Resources.pdf End Sub @@ -97,8 +94,11 @@ Public Class frmAvisoFormularAnfuegen If Not hasAnhaenge Then - If Not vbYes = MsgBox("Die Email besitzt keinen Anhang! Soll die Email denoch gespeichert werden?", vbYesNoCancel) Then Exit Sub - + If Not vbYes = MsgBox("Diese Email besitzt keinen Anhang!" & vbCrLf & "Soll die Email denoch gespeichert werden?", vbYesNoCancel) Then + Close() + DialogResult = DialogResult.None + Exit Sub + End If End If UsrCntlKundenZollVollmachten1.btnNeu_Click(sender, e) vollmachtId = UsrCntlKundenZollVollmachten1.vmId @@ -131,5 +131,7 @@ Public Class frmAvisoFormularAnfuegen dgvAnhaenge.ClearSelection() End Sub + Private Sub pbMail_Click(sender As Object, e As EventArgs) + End Sub End Class \ No newline at end of file diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index 8145c2c..c9a71aa 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -8,6 +8,7 @@ Imports VERAGAddIn.ThisAddIn Imports System.Runtime.InteropServices Imports System.Text.RegularExpressions Imports System.IO +Imports SDL Public Class VERAGRibbon Dim LOGIN_OK = False @@ -124,6 +125,7 @@ Public Class AVISO_Mail_Functions Dim pdf_mail = "" Dim SendungsId = -1 Dim Art = "" + Dim kdNr = -1 Dim ATTACHMENTS_LIST As New List(Of String) loadAttachment(mailItem, ATTACHMENTS_LIST) @@ -133,7 +135,7 @@ Public Class AVISO_Mail_Functions End If End If Dim Bezeichnung = strFileName - Dim AvisoId = getAvisoId(Bezeichnung, pdf_mail, SendungsId, Art, ATTACHMENTS_LIST, isFormular) ')getAttachmentStringList(mailItem)) + Dim AvisoId = getAvisoId(Bezeichnung, pdf_mail, SendungsId, Art, ATTACHMENTS_LIST, kdNr, isFormular) ')getAttachmentStringList(mailItem)) If AvisoId < 0 Then Exit Sub Dim BezAnhang = If(Bezeichnung <> strFileName, Bezeichnung, "") 'Wenn die Bezeichnung geändert wurde --> und wenn nur 1 Anhang, dann wird die Bezeichnung für den Anhang verwendet. @@ -144,10 +146,10 @@ Public Class AVISO_Mail_Functions saveMail(mailItem, AvisoId, Bezeichnung,, SendungsId, Art) saveAttachment(ATTACHMENTS_LIST, AvisoId, SendungsId, Art, BezAnhang) ElseIf pdf_mail = "PDF_DATENSERVER" Then - saveMailOnDatenserver(mailItem, AvisoId, Bezeichnung,, Art) - saveAttachmentOnDatenserver(ATTACHMENTS_LIST, AvisoId, Art, BezAnhang) + saveMailOnDatenserver(mailItem, AvisoId, Bezeichnung,, Art, kdNr, True) + saveAttachmentOnDatenserver(ATTACHMENTS_LIST, AvisoId, Art, BezAnhang, kdNr, True) ElseIf pdf_mail = "ONLYMAIL_DATENSERVER" Then - saveMailOnDatenserver(mailItem, AvisoId, Bezeichnung,, Art) + saveMailOnDatenserver(mailItem, AvisoId, Bezeichnung,, Art, kdNr) Else 'ONLYMAIL saveMail(mailItem, AvisoId, Bezeichnung,, SendungsId, Art) End If @@ -393,7 +395,7 @@ Public Class AVISO_Mail_Functions End Try End Sub - Shared Sub saveAttachmentOnDatenserver(ByRef ATTACHMENTS_LIST As List(Of String), AvisoId As Integer, Art As String, BezeichnungAnh As String) + Shared Sub saveAttachmentOnDatenserver(ByRef ATTACHMENTS_LIST As List(Of String), AvisoId As Integer, Art As String, BezeichnungAnh As String, Optional kdNr As Integer = -1, Optional multifiles As Boolean = False) Try If AvisoId > 0 Then If ATTACHMENTS_LIST.Count > 1 Then BezeichnungAnh = "" ' nur wenn 1 Anhang wird die Bezeichnung übernommen. @@ -402,8 +404,20 @@ Public Class AVISO_Mail_Functions Dim Bezeichnung = BezeichnungAnh If Bezeichnung = "" Then Bezeichnung = fi.Name - Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & AvisoId, "", "", Bezeichnung) + Dim DS As Object = Nothing + If multifiles Then + DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & AvisoId, "", "", Bezeichnung, kdNr, multifiles) + Else + DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & AvisoId, "", "", Bezeichnung) + End If Dim path = DS.uploadDataToDATENSERVER(fi.FullName) + If path Then + Dim c As New cKundenVollmachten(AvisoId) + c.kdvm_datenarchivId = DS.da_id + c.SAVE() + End If + + Next End If @@ -606,7 +620,7 @@ Public Class AVISO_Mail_Functions End Try 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 = "") + Shared Sub saveMailOnDatenserver(mailItem As Outlook.MailItem, AvisoId As Integer, Optional bezeichnung As String = "", Optional saveAttachments As Boolean = True, Optional Art As String = "", Optional kdNr As Integer = -1, Optional multifiles As Boolean = False) Try If AvisoId > 0 Then @@ -616,11 +630,18 @@ Public Class AVISO_Mail_Functions 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 DS As Object = Nothing + If multifiles Then + DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & AvisoId, "", "", bezeichnung, kdNr, multifiles) + Else + DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & AvisoId, "", "", bezeichnung) + End If Dim path = DS.uploadDataToDATENSERVER(strTmpPath) + If path Then + Dim c As New cKundenVollmachten(AvisoId) + c.kdvm_datenarchivId = DS.da_id + c.SAVE() + End If ' Clean up the temporary .MSG file from the user's temporary folder @@ -636,18 +657,20 @@ Public Class AVISO_Mail_Functions 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, ByRef kdNr) As Integer If (isFormular = True) Then Dim frmAvisoFormularAnfuegen As New frmAvisoFormularAnfuegen(Bezeichnung) frmAvisoFormularAnfuegen.ATT = Att If frmAvisoFormularAnfuegen.ShowDialog = DialogResult.OK Then Dim AvisoId = frmAvisoFormularAnfuegen.vollmachtId + kdNr = frmAvisoFormularAnfuegen.KdNr SendungsId = frmAvisoFormularAnfuegen.SendungsId Bezeichnung = frmAvisoFormularAnfuegen.Bezeichnung pdf_mail = frmAvisoFormularAnfuegen.PDF_MAIL Att = frmAvisoFormularAnfuegen.ATT + Return AvisoId End If From 5c8d8e4eb76185821695583024fb2ee0c81b0712 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Mon, 7 Nov 2022 15:38:31 +0100 Subject: [PATCH 09/38] =?UTF-8?q?Pr=C3=BCfung=20auf=20DB-Verbindung=20bei?= =?UTF-8?q?=20starten=20des=20Addins=20->=20bei=20Fehler=20entsprechende?= =?UTF-8?q?=20Fehlermeldung=20inkl.=20Beendigung=20des=20Programmes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERAGAddIn.sln | 102 ++++++++-------- VERAGAddIn/My Project/Settings.Designer.vb | 2 +- VERAGAddIn/ThisAddIn.Designer.vb | 28 ++--- VERAGAddIn/VERAGAddIn.vbproj | 8 +- VERAGAddIn/app.config | 20 ++-- .../frmAvisoFormularAnfügen.Designer.vb | 4 +- VERAGAddIn/rbnVERAG.vb | 109 ++++++++++-------- 7 files changed, 149 insertions(+), 124 deletions(-) diff --git a/VERAGAddIn.sln b/VERAGAddIn.sln index 390d788..9643e1b 100644 --- a/VERAGAddIn.sln +++ b/VERAGAddIn.sln @@ -5,18 +5,18 @@ VisualStudioVersion = 17.3.32825.248 MinimumVisualStudioVersion = 10.0.40219.1 Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VERAGAddIn", "VERAGAddIn\VERAGAddIn.vbproj", "{D579F7A6-7D29-4295-B382-DA5F7EFB4528}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VERAG_PROG_ALLGEMEIN", "..\SDL\SDL\VERAG_PROG_ALLGEMEIN\VERAG_PROG_ALLGEMEIN.vbproj", "{A3B497BD-842C-4A2B-B398-ED1976849DF1}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Gemeinsames", "..\AVISO\Aviso\Gemeinsames\Gemeinsames.vbproj", "{110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Aviso", "..\AVISO\Aviso\Aviso\Aviso.vbproj", "{7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}" -EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "TELOTEC_Worker_lib", "..\..\ADMIN\ADMIN\TELOTEK_Worker_lib\TELOTEC_Worker_lib.vbproj", "{5B947A66-009A-4BB6-B925-F84A01045095}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Parkzeit", "..\..\Parkzeit\Parkzeit\Parkzeit\Parkzeit.vbproj", "{E4190547-B222-4AE3-A0BE-A44EAEE70335}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SDL", "..\..\SDL\SDL\SDL\SDL.vbproj", "{289BCD77-BC00-4BA1-95ED-A79176D99525}" EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Aviso", "..\..\Aviso\AVISO\Aviso\Aviso.vbproj", "{7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Gemeinsames", "..\..\Aviso\AVISO\Gemeinsames\Gemeinsames.vbproj", "{110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VERAG_PROG_ALLGEMEIN", "..\..\SDL\SDL\VERAG_PROG_ALLGEMEIN\VERAG_PROG_ALLGEMEIN.vbproj", "{A3B497BD-842C-4A2B-B398-ED1976849DF1}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -43,48 +43,6 @@ Global {D579F7A6-7D29-4295-B382-DA5F7EFB4528}.Release|x64.ActiveCfg = Release|Any CPU {D579F7A6-7D29-4295-B382-DA5F7EFB4528}.Release|x64.Build.0 = Release|Any CPU {D579F7A6-7D29-4295-B382-DA5F7EFB4528}.Release|x86.ActiveCfg = Release|Any CPU - {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|x64.ActiveCfg = Debug|x64 - {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|x64.Build.0 = Debug|x64 - {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|x86.ActiveCfg = Debug|Any CPU - {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|Any CPU.Build.0 = Release|Any CPU - {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|x64.ActiveCfg = Release|x64 - {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|x64.Build.0 = Release|x64 - {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|x86.ActiveCfg = Release|Any CPU - {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|Any CPU.ActiveCfg = Debug|x86 - {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|x64.ActiveCfg = Debug|x64 - {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|x64.Build.0 = Debug|x64 - {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|x86.ActiveCfg = Debug|x86 - {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|x86.Build.0 = Debug|x86 - {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|Any CPU.ActiveCfg = Release|x86 - {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|Mixed Platforms.Build.0 = Release|x86 - {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|x64.ActiveCfg = Release|x64 - {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|x64.Build.0 = Release|x64 - {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|x86.ActiveCfg = Release|x86 - {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|x86.Build.0 = Release|x86 - {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|Any CPU.ActiveCfg = Debug|x86 - {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|x64.ActiveCfg = Debug|x64 - {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|x64.Build.0 = Debug|x64 - {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|x86.ActiveCfg = Debug|x86 - {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|x86.Build.0 = Debug|x86 - {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|Any CPU.ActiveCfg = Release|x86 - {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|Mixed Platforms.Build.0 = Release|x86 - {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|x64.ActiveCfg = Release|x64 - {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|x64.Build.0 = Release|x64 - {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|x86.ActiveCfg = Release|x86 - {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|x86.Build.0 = Release|x86 {5B947A66-009A-4BB6-B925-F84A01045095}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5B947A66-009A-4BB6-B925-F84A01045095}.Debug|Any CPU.Build.0 = Debug|Any CPU {5B947A66-009A-4BB6-B925-F84A01045095}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -133,6 +91,54 @@ Global {289BCD77-BC00-4BA1-95ED-A79176D99525}.Release|x64.Build.0 = Release|Any CPU {289BCD77-BC00-4BA1-95ED-A79176D99525}.Release|x86.ActiveCfg = Release|Any CPU {289BCD77-BC00-4BA1-95ED-A79176D99525}.Release|x86.Build.0 = Release|Any CPU + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|Mixed Platforms.ActiveCfg = Debug|x64 + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|Mixed Platforms.Build.0 = Debug|x64 + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|x64.ActiveCfg = Debug|x64 + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|x64.Build.0 = Debug|x64 + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|x86.ActiveCfg = Debug|x86 + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Debug|x86.Build.0 = Debug|x86 + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|Any CPU.Build.0 = Release|Any CPU + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|Mixed Platforms.ActiveCfg = Release|x64 + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|Mixed Platforms.Build.0 = Release|x64 + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|x64.ActiveCfg = Release|x64 + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|x64.Build.0 = Release|x64 + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|x86.ActiveCfg = Release|x86 + {7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}.Release|x86.Build.0 = Release|x86 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|Any CPU.ActiveCfg = Debug|x64 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|Any CPU.Build.0 = Debug|x64 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|Mixed Platforms.ActiveCfg = Debug|x64 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|Mixed Platforms.Build.0 = Debug|x64 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|x64.ActiveCfg = Debug|x64 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|x64.Build.0 = Debug|x64 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|x86.ActiveCfg = Debug|x86 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Debug|x86.Build.0 = Debug|x86 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|Any CPU.ActiveCfg = Release|x64 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|Any CPU.Build.0 = Release|x64 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|Mixed Platforms.ActiveCfg = Release|x64 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|Mixed Platforms.Build.0 = Release|x64 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|x64.ActiveCfg = Release|x64 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|x64.Build.0 = Release|x64 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|x86.ActiveCfg = Release|x86 + {110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}.Release|x86.Build.0 = Release|x86 + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|Mixed Platforms.ActiveCfg = Debug|x64 + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|Mixed Platforms.Build.0 = Debug|x64 + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|x64.ActiveCfg = Debug|x64 + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|x64.Build.0 = Debug|x64 + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|x86.ActiveCfg = Debug|Any CPU + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Debug|x86.Build.0 = Debug|Any CPU + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|Any CPU.Build.0 = Release|Any CPU + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|Mixed Platforms.ActiveCfg = Release|x64 + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|Mixed Platforms.Build.0 = Release|x64 + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|x64.ActiveCfg = Release|x64 + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|x64.Build.0 = Release|x64 + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|x86.ActiveCfg = Release|Any CPU + {A3B497BD-842C-4A2B-B398-ED1976849DF1}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VERAGAddIn/My Project/Settings.Designer.vb b/VERAGAddIn/My Project/Settings.Designer.vb index f12d62b..49ec1e1 100644 --- a/VERAGAddIn/My Project/Settings.Designer.vb +++ b/VERAGAddIn/My Project/Settings.Designer.vb @@ -14,7 +14,7 @@ Option Explicit On _ Partial Friend NotInheritable Class MySettings Inherits Global.System.Configuration.ApplicationSettingsBase diff --git a/VERAGAddIn/ThisAddIn.Designer.vb b/VERAGAddIn/ThisAddIn.Designer.vb index d7f71a5..a14b111 100644 --- a/VERAGAddIn/ThisAddIn.Designer.vb +++ b/VERAGAddIn/ThisAddIn.Designer.vb @@ -21,7 +21,7 @@ Partial Public NotInheritable Class ThisAddIn Friend WithEvents CustomTaskPanes As Microsoft.Office.Tools.CustomTaskPaneCollection - _ + _ Friend WithEvents Application As Microsoft.Office.Interop.Outlook.Application ''' @@ -34,7 +34,7 @@ Partial Public NotInheritable Class ThisAddIn ''' _ Protected Overrides Sub Initialize() MyBase.Initialize @@ -49,7 +49,7 @@ Partial Public NotInheritable Class ThisAddIn ''' _ Protected Overrides Sub FinishInitialization() Me.OnStartup @@ -57,7 +57,7 @@ Partial Public NotInheritable Class ThisAddIn ''' _ Protected Overrides Sub InitializeDataBindings() Me.BeginInitialization @@ -67,7 +67,7 @@ Partial Public NotInheritable Class ThisAddIn ''' _ Private Sub InitializeCachedData() If (Me.DataHost Is Nothing) Then @@ -80,14 +80,14 @@ Partial Public NotInheritable Class ThisAddIn ''' _ Private Sub InitializeData() End Sub ''' _ Private Sub BindToData() End Sub @@ -115,7 +115,7 @@ Partial Public NotInheritable Class ThisAddIn ''' _ Private Sub BeginInitialization() Me.BeginInit @@ -124,7 +124,7 @@ Partial Public NotInheritable Class ThisAddIn ''' _ Private Sub EndInitialization() Me.CustomTaskPanes.EndInit @@ -133,7 +133,7 @@ Partial Public NotInheritable Class ThisAddIn ''' _ Private Sub InitializeControls() Me.CustomTaskPanes = Globals.Factory.CreateCustomTaskPaneCollection(Nothing, Nothing, "CustomTaskPanes", "CustomTaskPanes", Me) @@ -141,7 +141,7 @@ Partial Public NotInheritable Class ThisAddIn ''' _ Private Sub InitializeComponents() End Sub @@ -155,7 +155,7 @@ Partial Public NotInheritable Class ThisAddIn ''' _ Protected Overrides Sub OnShutdown() Me.CustomTaskPanes.Dispose @@ -165,7 +165,7 @@ End Class ''' _ + Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "17.0.0.0")> _ Partial Friend NotInheritable Class Globals ''' @@ -228,7 +228,7 @@ End Class ''' _ + Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "17.0.0.0")> _ Partial Friend NotInheritable Class ThisRibbonCollection Inherits Microsoft.Office.Tools.Ribbon.RibbonCollectionBase diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index b0b5c05..b548232 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -177,6 +177,10 @@ + + False + ..\..\..\SDL\SDL\VERAG_PROG_ALLGEMEIN\bin\Debug\VERAG_PROG_ALLGEMEIN.dll + @@ -350,10 +354,6 @@ {289bcd77-bc00-4ba1-95ed-a79176d99525} SDL - - {a3b497bd-842c-4a2b-b398-ed1976849df1} - VERAG_PROG_ALLGEMEIN - 10.0 diff --git a/VERAGAddIn/app.config b/VERAGAddIn/app.config index 008ded4..b430818 100644 --- a/VERAGAddIn/app.config +++ b/VERAGAddIn/app.config @@ -1,23 +1,23 @@ - + - - + + - - + + - - + + - - + + - + diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb b/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb index 2c647bd..9a01e0c 100644 --- a/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb +++ b/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb @@ -1,4 +1,6 @@ - +Imports VERAG_PROG_ALLGEMEIN + + Partial Class frmAvisoFormularAnfuegen Inherits System.Windows.Forms.Form diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index c9a71aa..75e881a 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -9,13 +9,15 @@ Imports System.Runtime.InteropServices Imports System.Text.RegularExpressions Imports System.IO Imports SDL +Imports System.Net +Imports System.Security.Policy +Imports System.Diagnostics.Eventing.Reader Public Class VERAGRibbon Dim LOGIN_OK = False Public Shared Event bla() Private Sub CustomerRibbon_Load(ByVal sender As System.Object, ByVal e As Microsoft.Office.Tools.Ribbon.RibbonUIEventArgs) Handles MyBase.Load - End Sub Private Function CreateRibbonDropDownItem() As RibbonDropDownItem Return Me.Factory.CreateRibbonDropDownItem() @@ -36,6 +38,9 @@ Public Class VERAGRibbon 'VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True LOGIN_OK = AVISO_Mail_Functions.initFirmaUser() + If testConnection() = False Then + Windows.Forms.Application.Exit() + End If End Sub @@ -77,11 +82,24 @@ Public Class VERAGRibbon End Sub 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. If LOGIN_OK Then AVISO_Mail_Functions.addMailToAviso_Hauptfenster(True) End Sub + + Public Function testConnection() As Boolean + + Dim connection = New VERAG_PROG_ALLGEMEIN.SQL + If connection.getValueTxtBySql("SELECT 1", "FMZOLL") = 1 Then + Return True + Else + MsgBox("ACHTUNG: Server nicht erreichbar!" & vbCrLf & "VERAG ADD In wird beendet") + Return False + End If + + + End Function + End Class Public Class AVISO_Mail_Functions @@ -135,7 +153,13 @@ Public Class AVISO_Mail_Functions End If End If Dim Bezeichnung = strFileName - Dim AvisoId = getAvisoId(Bezeichnung, pdf_mail, SendungsId, Art, ATTACHMENTS_LIST, kdNr, isFormular) ')getAttachmentStringList(mailItem)) + Dim AvisoId = Nothing + If isFormular Then + AvisoId = getAvisoFormularId(Bezeichnung, pdf_mail, Art, ATTACHMENTS_LIST, kdNr) ')getAttachmentStringList(mailItem)) + Else + AvisoId = getAvisoId(Bezeichnung, pdf_mail, SendungsId, Art, ATTACHMENTS_LIST) ')getAttachmentStringList(mailItem)) + End If + If AvisoId < 0 Then Exit Sub Dim BezAnhang = If(Bezeichnung <> strFileName, Bezeichnung, "") 'Wenn die Bezeichnung geändert wurde --> und wenn nur 1 Anhang, dann wird die Bezeichnung für den Anhang verwendet. @@ -146,10 +170,10 @@ Public Class AVISO_Mail_Functions saveMail(mailItem, AvisoId, Bezeichnung,, SendungsId, Art) saveAttachment(ATTACHMENTS_LIST, AvisoId, SendungsId, Art, BezAnhang) ElseIf pdf_mail = "PDF_DATENSERVER" Then - saveMailOnDatenserver(mailItem, AvisoId, Bezeichnung,, Art, kdNr, True) - saveAttachmentOnDatenserver(ATTACHMENTS_LIST, AvisoId, Art, BezAnhang, kdNr, True) + saveMailOnDatenserver(mailItem, AvisoId, Bezeichnung,, kdNr) + saveAttachmentOnDatenserver(ATTACHMENTS_LIST, AvisoId, BezAnhang, kdNr) ElseIf pdf_mail = "ONLYMAIL_DATENSERVER" Then - saveMailOnDatenserver(mailItem, AvisoId, Bezeichnung,, Art, kdNr) + saveMailOnDatenserver(mailItem, AvisoId, Bezeichnung,, kdNr) Else 'ONLYMAIL saveMail(mailItem, AvisoId, Bezeichnung,, SendungsId, Art) End If @@ -395,7 +419,7 @@ Public Class AVISO_Mail_Functions End Try End Sub - Shared Sub saveAttachmentOnDatenserver(ByRef ATTACHMENTS_LIST As List(Of String), AvisoId As Integer, Art As String, BezeichnungAnh As String, Optional kdNr As Integer = -1, Optional multifiles As Boolean = False) + Shared Sub saveAttachmentOnDatenserver(ByRef ATTACHMENTS_LIST As List(Of String), AvisoId As Integer, BezeichnungAnh As String, Optional kdNr As Integer = -1) Try If AvisoId > 0 Then If ATTACHMENTS_LIST.Count > 1 Then BezeichnungAnh = "" ' nur wenn 1 Anhang wird die Bezeichnung übernommen. @@ -404,12 +428,8 @@ Public Class AVISO_Mail_Functions Dim Bezeichnung = BezeichnungAnh If Bezeichnung = "" Then Bezeichnung = fi.Name - Dim DS As Object = Nothing - If multifiles Then - DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & AvisoId, "", "", Bezeichnung, kdNr, multifiles) - Else - DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & AvisoId, "", "", Bezeichnung) - End If + + Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & AvisoId, "", "", Bezeichnung, kdNr) Dim path = DS.uploadDataToDATENSERVER(fi.FullName) If path Then Dim c As New cKundenVollmachten(AvisoId) @@ -425,10 +445,6 @@ Public Class AVISO_Mail_Functions MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ex.Message & ex.StackTrace) End Try - - - - End Sub @@ -553,9 +569,14 @@ Public Class AVISO_Mail_Functions If cnt > 0 AndAlso l.Contains(""">") Then ' ENDE Dim link = ("https://web01.ekol.com/documentservice/download/" & l.ToString.Substring(0, l.ToString.IndexOf(""">"))) + 'Ansonten stüzt der Webservice-Aufruf ab! ABER -> For .NET 4.7 or later, the System.Net.ServicePointManager.SecurityProtocol should not be set manualy! + System.Net.ServicePointManager.SecurityProtocol = System.Net.ServicePointManager.SecurityProtocol Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12 + Dim TMP_PATH = GetTempFilePathWithExtension(".pdf") + My.Computer.Network.DownloadFile(link, TMP_PATH) + If IO.File.Exists(TMP_PATH) Then ATT.Add(TMP_PATH) End If @@ -620,7 +641,7 @@ Public Class AVISO_Mail_Functions End Try 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 = "", Optional kdNr As Integer = -1, Optional multifiles As Boolean = False) + Shared Sub saveMailOnDatenserver(mailItem As Outlook.MailItem, AvisoId As Integer, Optional bezeichnung As String = "", Optional saveAttachments As Boolean = True, Optional kdNr As Integer = -1) Try If AvisoId > 0 Then @@ -630,16 +651,11 @@ Public Class AVISO_Mail_Functions mailItem.SaveAs(strTmpPath, Outlook.OlSaveAsType.olMSG) - Dim DS As Object = Nothing - If multifiles Then - DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & AvisoId, "", "", bezeichnung, kdNr, multifiles) - Else - DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & AvisoId, "", "", bezeichnung) - End If + Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & AvisoId, "", "", bezeichnung, kdNr) Dim path = DS.uploadDataToDATENSERVER(strTmpPath) If path Then Dim c As New cKundenVollmachten(AvisoId) - c.kdvm_datenarchivId = DS.da_id + c.kdvm_emailId = DS.da_id c.SAVE() End If @@ -657,28 +673,8 @@ Public Class AVISO_Mail_Functions End Sub - Shared Function getAvisoId(ByRef Bezeichnung, ByRef pdf_mail, ByRef SendungsId, ByRef Art, ByRef Att, ByVal isFormular, ByRef kdNr) As Integer + Shared Function getAvisoId(ByRef Bezeichnung, ByRef pdf_mail, ByRef SendungsId, ByRef Art, ByRef Att) As Integer - If (isFormular = True) Then - Dim frmAvisoFormularAnfuegen As New frmAvisoFormularAnfuegen(Bezeichnung) - frmAvisoFormularAnfuegen.ATT = Att - If frmAvisoFormularAnfuegen.ShowDialog = DialogResult.OK Then - Dim AvisoId = frmAvisoFormularAnfuegen.vollmachtId - kdNr = frmAvisoFormularAnfuegen.KdNr - SendungsId = frmAvisoFormularAnfuegen.SendungsId - Bezeichnung = frmAvisoFormularAnfuegen.Bezeichnung - pdf_mail = frmAvisoFormularAnfuegen.PDF_MAIL - Att = frmAvisoFormularAnfuegen.ATT - - - Return AvisoId - - End If - - Return -1 - Exit Function - - End If Dim frmAvisoAnfügen As New frmAvisoAnfuegen(Bezeichnung) frmAvisoAnfügen.ATT = Att @@ -697,4 +693,25 @@ Public Class AVISO_Mail_Functions End Function + + Shared Function getAvisoFormularId(ByRef Bezeichnung, ByRef pdf_mail, ByRef Art, ByRef Att, ByRef kdNr) As Integer + + Dim frmAvisoFormularAnfuegen As New frmAvisoFormularAnfuegen(Bezeichnung) + frmAvisoFormularAnfuegen.ATT = Att + If frmAvisoFormularAnfuegen.ShowDialog = DialogResult.OK Then + Dim AvisoId = frmAvisoFormularAnfuegen.vollmachtId + kdNr = frmAvisoFormularAnfuegen.KdNr + Bezeichnung = frmAvisoFormularAnfuegen.Bezeichnung + pdf_mail = frmAvisoFormularAnfuegen.PDF_MAIL + Att = frmAvisoFormularAnfuegen.ATT + + Return AvisoId + + End If + + Return -1 + + End Function + + End Class From 566de3a883d4efcb4e93fec1e6ba39a7a2f249ae Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Mon, 7 Nov 2022 16:19:27 +0100 Subject: [PATCH 10/38] Beendigung des AddIns bei fehlerhafter Verbindung --- VERAGAddIn/ThisAddIn.vb | 19 +++++++++++++++++++ VERAGAddIn/rbnVERAG.vb | 4 +--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/VERAGAddIn/ThisAddIn.vb b/VERAGAddIn/ThisAddIn.vb index 0791be4..4341c14 100644 --- a/VERAGAddIn/ThisAddIn.vb +++ b/VERAGAddIn/ThisAddIn.vb @@ -5,6 +5,7 @@ Imports System.Reflection Imports System.Windows.Forms Imports Microsoft.Office.Core Imports System.Dynamic +Imports SDL 'Option Private Module 'Imports Microsoft.Office.Core @@ -27,6 +28,7 @@ Public Class ThisAddIn inspectors = Me.Application.Inspectors currentExplorer = Me.Application.ActiveExplorer SharedExplorer = currentExplorer + checkConnection() AddHandler VERAGRibbon.bla, Sub() ' MsgBox("JOAS") @@ -173,6 +175,23 @@ Public Class ThisAddIn ' wdDoc.Close(False) ' wdApp.Quit() End Sub + + + Public Sub checkConnection() + + + Dim con = New VERAG_PROG_ALLGEMEIN.SQL + + If con.getValueTxtBySql("SELECT 1", "FMZOLL") <> 1 Then + MsgBox("ACHTUNG: Server nicht erreichbar!" & vbCrLf & "VERAG ADD In wird beendet") + Application.Quit() + End If + + + + + End Sub + End Class diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index 75e881a..9d862cc 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -38,9 +38,7 @@ Public Class VERAGRibbon 'VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True LOGIN_OK = AVISO_Mail_Functions.initFirmaUser() - If testConnection() = False Then - Windows.Forms.Application.Exit() - End If + End Sub From 4ec29d0288484706f74d34ede28d6545f537898d Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Mon, 7 Nov 2022 16:26:27 +0100 Subject: [PATCH 11/38] test --- VERAGAddIn/ThisAddIn.vb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/VERAGAddIn/ThisAddIn.vb b/VERAGAddIn/ThisAddIn.vb index 4341c14..6667cd7 100644 --- a/VERAGAddIn/ThisAddIn.vb +++ b/VERAGAddIn/ThisAddIn.vb @@ -177,16 +177,23 @@ Public Class ThisAddIn End Sub - Public Sub checkConnection() + Private Sub checkConnection() Dim con = New VERAG_PROG_ALLGEMEIN.SQL If con.getValueTxtBySql("SELECT 1", "FMZOLL") <> 1 Then MsgBox("ACHTUNG: Server nicht erreichbar!" & vbCrLf & "VERAG ADD In wird beendet") - Application.Quit() End If + 'For Each COMAddIn As COMAddIn In Me.Application.COMAddIns + + ' If (COMAddIn.ProgId.Contains("< ADDIN_PROG_ID >")) Then + + ' COMAddIn.Connect = False + ' Exit + Next + From cae73e29323efdde8305443df4760bbc09a54338 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Mon, 7 Nov 2022 16:26:51 +0100 Subject: [PATCH 12/38] Test --- VERAGAddIn/ThisAddIn.vb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/VERAGAddIn/ThisAddIn.vb b/VERAGAddIn/ThisAddIn.vb index 6667cd7..2fae08c 100644 --- a/VERAGAddIn/ThisAddIn.vb +++ b/VERAGAddIn/ThisAddIn.vb @@ -186,12 +186,12 @@ Public Class ThisAddIn MsgBox("ACHTUNG: Server nicht erreichbar!" & vbCrLf & "VERAG ADD In wird beendet") End If - 'For Each COMAddIn As COMAddIn In Me.Application.COMAddIns + For Each COMAddIn As COMAddIn In Me.Application.COMAddIns - ' If (COMAddIn.ProgId.Contains("< ADDIN_PROG_ID >")) Then + ' If (COMAddIn.ProgId.Contains("< ADDIN_PROG_ID >")) Then - ' COMAddIn.Connect = False - ' Exit + ' COMAddIn.Connect = False + ' Exit Next From aec0f2a4b74c1936ef229ff4e7cdec99dccdfd3d Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Mon, 7 Nov 2022 16:34:50 +0100 Subject: [PATCH 13/38] VeragAddIn: bei Verbindungsfehler wird AddIn beendet (nur AddIn!) --- VERAGAddIn/ThisAddIn.vb | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/VERAGAddIn/ThisAddIn.vb b/VERAGAddIn/ThisAddIn.vb index 2fae08c..2ce294e 100644 --- a/VERAGAddIn/ThisAddIn.vb +++ b/VERAGAddIn/ThisAddIn.vb @@ -179,19 +179,16 @@ Public Class ThisAddIn Private Sub checkConnection() - Dim con = New VERAG_PROG_ALLGEMEIN.SQL - If con.getValueTxtBySql("SELECT 1", "FMZOLL") <> 1 Then - MsgBox("ACHTUNG: Server nicht erreichbar!" & vbCrLf & "VERAG ADD In wird beendet") - End If - For Each COMAddIn As COMAddIn In Me.Application.COMAddIns - ' If (COMAddIn.ProgId.Contains("< ADDIN_PROG_ID >")) Then - - ' COMAddIn.Connect = False - ' Exit + If COMAddIn.ProgId.Contains("VERAGAddIn") Then + If con.getValueTxtBySql("SELECT 1", "FMZOLL") <> 1 Then + MsgBox("ACHTUNG: Server nicht erreichbar!" & vbCrLf & "VERAG ADD In wird beendet") + COMAddIn.Connect = False + End If + End If Next From 9da4779b7e7d0f29911225404a589525acc757de Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Thu, 16 Mar 2023 20:44:32 +0100 Subject: [PATCH 14/38] =?UTF-8?q?Pr=C3=BCfung=20ob=20Server=20erreichbar.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERAGAddIn/ThisAddIn.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERAGAddIn/ThisAddIn.vb b/VERAGAddIn/ThisAddIn.vb index 2ce294e..be25520 100644 --- a/VERAGAddIn/ThisAddIn.vb +++ b/VERAGAddIn/ThisAddIn.vb @@ -184,7 +184,7 @@ Public Class ThisAddIn For Each COMAddIn As COMAddIn In Me.Application.COMAddIns If COMAddIn.ProgId.Contains("VERAGAddIn") Then - If con.getValueTxtBySql("SELECT 1", "FMZOLL") <> 1 Then + If con.getValueTxtBySql("SELECT 1", "AVISO") <> 1 Then MsgBox("ACHTUNG: Server nicht erreichbar!" & vbCrLf & "VERAG ADD In wird beendet") COMAddIn.Connect = False End If From 748d4918e552d1ec096e7f01f071cf5c41db935b Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Thu, 16 Mar 2023 21:14:28 +0100 Subject: [PATCH 15/38] ok --- VERAGAddIn/VERAGAddIn.vbproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index b548232..6f2c7d6 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -36,7 +36,7 @@ \\ftps.verag.ag\g\ftp\programme\VERAGAddin\ http://ftps.verag.ag/VERAGAddin/ de - 1.0.1.96 + 1.0.1.97 true true 0 From 834ef647d045143956f31ee3ed8cbf6b1efcacf1 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Mon, 3 Apr 2023 14:36:37 +0200 Subject: [PATCH 16/38] =?UTF-8?q?Bei=20mehreren=20Anh=C3=A4ngen=20in=20VM?= =?UTF-8?q?=20kann=20nun=20derjenige,=20die=20"direkt"=20verkn=C3=BCpft=20?= =?UTF-8?q?werden=20soll,=20markiert=20werden.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERAGAddIn/VERAGAddIn.vbproj | 6 +- VERAGAddIn/app.config | 24 +- .../frmAvisoFormularAnfügen.Designer.vb | 233 +++++++++++------- VERAGAddIn/frmAvisoFormularAnfügen.vb | 91 ++++++- VERAGAddIn/rbnVERAG.vb | 3 +- 5 files changed, 241 insertions(+), 116 deletions(-) diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index 6f2c7d6..76f1e9c 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -36,7 +36,7 @@ \\ftps.verag.ag\g\ftp\programme\VERAGAddin\ http://ftps.verag.ag/VERAGAddin/ de - 1.0.1.97 + 1.0.1.98 true true 0 @@ -271,6 +271,7 @@ rbnVERAG.vb + Always @@ -387,6 +388,9 @@ false + + Ich habe keine Ahnung, was ich hier mache.pfx + diff --git a/VERAGAddIn/app.config b/VERAGAddIn/app.config index b430818..6321ee1 100644 --- a/VERAGAddIn/app.config +++ b/VERAGAddIn/app.config @@ -1,23 +1,27 @@ - + - - + + - - + + - - + + - - + + + + + + - + diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb b/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb index 9a01e0c..1c3aa0b 100644 --- a/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb +++ b/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb @@ -26,24 +26,109 @@ Partial Class frmAvisoFormularAnfuegen Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmAvisoFormularAnfuegen)) - Me.lblKunden = New System.Windows.Forms.Label() - Me.btnOK = New System.Windows.Forms.Button() - Me.KdSearchBox = New VERAG_PROG_ALLGEMEIN.KdSearchBox() - Me.btnCancel = New System.Windows.Forms.Button() - Me.cbVMTypen = New VERAG_PROG_ALLGEMEIN.MyComboBox() - Me.MyPanel1 = New VERAG_PROG_ALLGEMEIN.MyPanel(Me.components) - Me.MyPanel2 = New VERAG_PROG_ALLGEMEIN.MyPanel(Me.components) - Me.lblVMId = New System.Windows.Forms.Label() - Me.UsrCntlKundenZollVollmachten1 = New SDL.usrCntlKundenZollVollmachten() + Me.lblMultiAttachements = New System.Windows.Forms.Label() Me.dgvAnhaenge = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) Me.columnName = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.UsrCntlKundenZollVollmachten1 = New SDL.usrCntlKundenZollVollmachten() + Me.MyPanel2 = New VERAG_PROG_ALLGEMEIN.MyPanel(Me.components) + Me.lblWarning = New System.Windows.Forms.Label() + Me.lblVMId = New System.Windows.Forms.Label() + Me.lblKunden = New System.Windows.Forms.Label() + Me.KdSearchBox = New VERAG_PROG_ALLGEMEIN.KdSearchBox() + Me.cbVMTypen = New VERAG_PROG_ALLGEMEIN.MyComboBox() + Me.MyPanel1 = New VERAG_PROG_ALLGEMEIN.MyPanel(Me.components) Me.pbAnhaenge = New System.Windows.Forms.PictureBox() - Me.MyPanel1.SuspendLayout() - Me.MyPanel2.SuspendLayout() + Me.btnOK = New System.Windows.Forms.Button() + Me.btnCancel = New System.Windows.Forms.Button() + Me.Label1 = New System.Windows.Forms.Label() CType(Me.dgvAnhaenge, System.ComponentModel.ISupportInitialize).BeginInit() + Me.MyPanel2.SuspendLayout() + Me.MyPanel1.SuspendLayout() CType(Me.pbAnhaenge, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' + 'lblMultiAttachements + ' + Me.lblMultiAttachements.AutoSize = True + Me.lblMultiAttachements.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblMultiAttachements.ForeColor = System.Drawing.Color.Red + Me.lblMultiAttachements.Location = New System.Drawing.Point(9, 465) + Me.lblMultiAttachements.Name = "lblMultiAttachements" + Me.lblMultiAttachements.Size = New System.Drawing.Size(342, 13) + Me.lblMultiAttachements.TabIndex = 38 + Me.lblMultiAttachements.Text = "Anhang markieren, der explizit als PDF-Anhang gespeichert werden soll" + ' + '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.Top Or 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, 483) + 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(514, 36) + 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 + ' + 'UsrCntlKundenZollVollmachten1 + ' + Me.UsrCntlKundenZollVollmachten1.Location = New System.Drawing.Point(0, 120) + Me.UsrCntlKundenZollVollmachten1.Name = "UsrCntlKundenZollVollmachten1" + Me.UsrCntlKundenZollVollmachten1.Size = New System.Drawing.Size(514, 342) + Me.UsrCntlKundenZollVollmachten1.TabIndex = 38 + ' + 'MyPanel2 + ' + Me.MyPanel2.Controls.Add(Me.Label1) + Me.MyPanel2.Controls.Add(Me.lblWarning) + Me.MyPanel2.Controls.Add(Me.lblVMId) + Me.MyPanel2.Controls.Add(Me.lblKunden) + Me.MyPanel2.Controls.Add(Me.KdSearchBox) + Me.MyPanel2.Controls.Add(Me.cbVMTypen) + Me.MyPanel2.Dock = System.Windows.Forms.DockStyle.Top + Me.MyPanel2.Location = New System.Drawing.Point(0, 0) + Me.MyPanel2.Name = "MyPanel2" + Me.MyPanel2.Size = New System.Drawing.Size(521, 114) + Me.MyPanel2.TabIndex = 37 + ' + 'lblWarning + ' + Me.lblWarning.AutoSize = True + Me.lblWarning.ForeColor = System.Drawing.Color.Red + Me.lblWarning.Location = New System.Drawing.Point(80, 9) + Me.lblWarning.Name = "lblWarning" + Me.lblWarning.Size = New System.Drawing.Size(0, 13) + Me.lblWarning.TabIndex = 37 + ' + 'lblVMId + ' + Me.lblVMId.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.lblVMId.AutoSize = True + Me.lblVMId.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblVMId.Location = New System.Drawing.Point(12, 61) + Me.lblVMId.Name = "lblVMId" + Me.lblVMId.Size = New System.Drawing.Size(69, 13) + Me.lblVMId.TabIndex = 36 + Me.lblVMId.Text = "Vollmacht-Art" + ' 'lblKunden ' Me.lblKunden.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) @@ -55,17 +140,6 @@ Partial Class frmAvisoFormularAnfuegen Me.lblKunden.TabIndex = 2 Me.lblKunden.Text = "Kunden" ' - 'btnOK - ' - Me.btnOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK - Me.btnOK.Location = New System.Drawing.Point(409, 65) - Me.btnOK.Name = "btnOK" - Me.btnOK.Size = New System.Drawing.Size(105, 40) - Me.btnOK.TabIndex = 3 - Me.btnOK.Text = "Ok" - Me.btnOK.UseVisualStyleBackColor = True - ' 'KdSearchBox ' Me.KdSearchBox._AlleFirmenCLUSTER = False @@ -77,6 +151,7 @@ Partial Class frmAvisoFormularAnfuegen Me.KdSearchBox._displayWoelflKd = False Me.KdSearchBox._hideIfListEmpty = True Me.KdSearchBox._loadKdData = True + Me.KdSearchBox._searchName1 = True Me.KdSearchBox._UseFIRMA = "" Me.KdSearchBox._ValueKdAndName = True Me.KdSearchBox.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) @@ -96,17 +171,6 @@ Partial Class frmAvisoFormularAnfuegen Me.KdSearchBox.TIMER_SEARCH = True Me.KdSearchBox.usrcntl = Nothing ' - 'btnCancel - ' - Me.btnCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.btnCancel.Location = New System.Drawing.Point(3, 67) - Me.btnCancel.Name = "btnCancel" - Me.btnCancel.Size = New System.Drawing.Size(116, 40) - Me.btnCancel.TabIndex = 31 - Me.btnCancel.Text = "Abbrechen" - Me.btnCancel.UseVisualStyleBackColor = True - ' 'cbVMTypen ' Me.cbVMTypen._allowedValuesFreiText = Nothing @@ -131,65 +195,6 @@ Partial Class frmAvisoFormularAnfuegen Me.MyPanel1.Size = New System.Drawing.Size(521, 108) Me.MyPanel1.TabIndex = 36 ' - 'MyPanel2 - ' - Me.MyPanel2.Controls.Add(Me.lblVMId) - Me.MyPanel2.Controls.Add(Me.lblKunden) - Me.MyPanel2.Controls.Add(Me.KdSearchBox) - Me.MyPanel2.Controls.Add(Me.cbVMTypen) - Me.MyPanel2.Dock = System.Windows.Forms.DockStyle.Top - Me.MyPanel2.Location = New System.Drawing.Point(0, 0) - Me.MyPanel2.Name = "MyPanel2" - Me.MyPanel2.Size = New System.Drawing.Size(521, 114) - Me.MyPanel2.TabIndex = 37 - ' - 'lblVMId - ' - Me.lblVMId.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.lblVMId.AutoSize = True - Me.lblVMId.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblVMId.Location = New System.Drawing.Point(12, 61) - Me.lblVMId.Name = "lblVMId" - Me.lblVMId.Size = New System.Drawing.Size(69, 13) - Me.lblVMId.TabIndex = 36 - Me.lblVMId.Text = "Vollmacht-Art" - ' - 'UsrCntlKundenZollVollmachten1 - ' - Me.UsrCntlKundenZollVollmachten1.Location = New System.Drawing.Point(0, 120) - Me.UsrCntlKundenZollVollmachten1.Name = "UsrCntlKundenZollVollmachten1" - Me.UsrCntlKundenZollVollmachten1.Size = New System.Drawing.Size(514, 355) - 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, 483) - 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(514, 36) - 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 - ' 'pbAnhaenge ' Me.pbAnhaenge.Enabled = False @@ -201,12 +206,46 @@ Partial Class frmAvisoFormularAnfuegen Me.pbAnhaenge.TabIndex = 32 Me.pbAnhaenge.TabStop = False ' + 'btnOK + ' + Me.btnOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK + Me.btnOK.Location = New System.Drawing.Point(409, 65) + Me.btnOK.Name = "btnOK" + Me.btnOK.Size = New System.Drawing.Size(105, 40) + Me.btnOK.TabIndex = 3 + Me.btnOK.Text = "Ok" + Me.btnOK.UseVisualStyleBackColor = True + ' + 'btnCancel + ' + Me.btnCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.btnCancel.Location = New System.Drawing.Point(3, 67) + Me.btnCancel.Name = "btnCancel" + Me.btnCancel.Size = New System.Drawing.Size(116, 40) + Me.btnCancel.TabIndex = 31 + Me.btnCancel.Text = "Abbrechen" + Me.btnCancel.UseVisualStyleBackColor = True + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label1.ForeColor = System.Drawing.Color.Red + Me.Label1.Location = New System.Drawing.Point(407, 4) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(100, 20) + Me.Label1.TabIndex = 38 + Me.Label1.Text = "Testsystem" + ' 'frmAvisoFormularAnfuegen ' 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(521, 631) + Me.Controls.Add(Me.lblMultiAttachements) Me.Controls.Add(Me.dgvAnhaenge) Me.Controls.Add(Me.UsrCntlKundenZollVollmachten1) Me.Controls.Add(Me.MyPanel2) @@ -214,13 +253,14 @@ Partial Class frmAvisoFormularAnfuegen Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.Name = "frmAvisoFormularAnfuegen" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "Formular anfügen" - Me.MyPanel1.ResumeLayout(False) + Me.Text = "Vollmacht anfügen" + CType(Me.dgvAnhaenge, System.ComponentModel.ISupportInitialize).EndInit() Me.MyPanel2.ResumeLayout(False) Me.MyPanel2.PerformLayout() - CType(Me.dgvAnhaenge, System.ComponentModel.ISupportInitialize).EndInit() + Me.MyPanel1.ResumeLayout(False) CType(Me.pbAnhaenge, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) + Me.PerformLayout() End Sub Friend WithEvents lblKunden As Windows.Forms.Label @@ -235,4 +275,7 @@ Partial Class frmAvisoFormularAnfuegen Friend WithEvents UsrCntlKundenZollVollmachten1 As SDL.usrCntlKundenZollVollmachten Friend WithEvents dgvAnhaenge As VERAG_PROG_ALLGEMEIN.MyDatagridview Friend WithEvents columnName As Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents lblWarning As Windows.Forms.Label + Friend WithEvents lblMultiAttachements As Windows.Forms.Label + Friend WithEvents Label1 As Windows.Forms.Label End Class diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.vb b/VERAGAddIn/frmAvisoFormularAnfügen.vb index 61e4fb9..1c971d5 100644 --- a/VERAGAddIn/frmAvisoFormularAnfügen.vb +++ b/VERAGAddIn/frmAvisoFormularAnfügen.vb @@ -1,4 +1,5 @@ -Imports System.Data +Imports System.Collections +Imports System.Data Imports System.Drawing Imports System.Windows.Forms Imports System.Windows.Forms.VisualStyles.VisualStyleElement.Button @@ -30,11 +31,13 @@ Public Class frmAvisoFormularAnfuegen InitializeComponent() Me.Bezeichnung = Bezeichnung + End Sub Private Sub frmAvisoFormularAnfuegen_Load(sender As Object, e As EventArgs) Handles MyBase.Load + KdSearchBox.initKdBox(Me) initAttachment() If hasAnhaenge Then pbAnhaenge.Image = My.Resources.pdf @@ -61,7 +64,7 @@ Public Class frmAvisoFormularAnfuegen 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", False) + 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 @@ -82,16 +85,21 @@ Public Class frmAvisoFormularAnfuegen End If End Sub - Private Sub cbVMTypen_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbVMTypen.SelectedIndexChanged - - vollmachtartId = cbVMTypen._value - initUsrCntrlKundenvollmachten(vollmachtartId) - + 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 Not hasAnhaenge Then If Not vbYes = MsgBox("Diese Email besitzt keinen Anhang!" & vbCrLf & "Soll die Email denoch gespeichert werden?", vbYesNoCancel) Then @@ -100,6 +108,16 @@ Public Class frmAvisoFormularAnfuegen Exit Sub End If End If + + + Dim i = dgvAnhaenge.SelectedCells.Item(0).RowIndex + If i > 0 Then + + AddAttachmentOnLastIndex(ATT, i) + + End If + + UsrCntlKundenZollVollmachten1.btnNeu_Click(sender, e) vollmachtId = UsrCntlKundenZollVollmachten1.vmId @@ -107,6 +125,19 @@ Public Class frmAvisoFormularAnfuegen End Sub + + Private Sub AddAttachmentOnLastIndex(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) + list = a + Dim selectedItem As Object = list.Item(tmpIndex) + list.Add(selectedItem) + list.RemoveAt(tmpIndex) 'immer die letzte PDF-DatenarchivID wird als PDF-Verknüpfung angezeigt!!!!! + + a = list + End If + End Sub + Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click Close() End Sub @@ -119,6 +150,7 @@ Public Class frmAvisoFormularAnfuegen Else hasAnhaenge = True PDF_MAIL = "PDF_DATENSERVER" + For Each a In ATT Dim display = a If a.Contains("\") Then @@ -128,10 +160,53 @@ Public Class frmAvisoFormularAnfuegen dgvAnhaenge.Rows.Add({display}) Next End If + + If dgvAnhaenge.Rows.Count >= 2 Then + + dgvAnhaenge.Visible = True + lblMultiAttachements.Visible = True + Me.Size = New Size(537, 720) + dgvAnhaenge.Size = New Size(514, 86) + Else + dgvAnhaenge.Visible = False + lblMultiAttachements.Visible = False + dgvAnhaenge.Size = New Size(514, 36) + Me.Size = New Size(537, 670) + End If + dgvAnhaenge.ClearSelection() End Sub - Private Sub pbMail_Click(sender As Object, e As EventArgs) + Private Function checkMandatoryFields() As Boolean + + + Dim valid = False + + If KdSearchBox.KdNr_value = -1 Then + lblWarning.Text = "Kunde auswählen!" + Return valid + End If + + 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 + + + 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 End Sub End Class \ No newline at end of file diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index 9d862cc..88cba67 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -35,8 +35,7 @@ Public Class VERAGRibbon Private Sub Ribbon1_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load - 'VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False - VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True + cAllgemein.TESTSYSTEM = False LOGIN_OK = AVISO_Mail_Functions.initFirmaUser() End Sub From 2dab8149c38c4c79b9f2f7704a061b8522539af2 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 4 Apr 2023 17:10:27 +0200 Subject: [PATCH 17/38] =?UTF-8?q?Pr=C3=BCfung=20beim=20MailItem=20mittels?= =?UTF-8?q?=20TryCast,=20ob=20Mailobjekt=20nicht=20besch=C3=A4digt=20ist.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERAGAddIn/VERAGAddIn.vbproj | 2 +- VERAGAddIn/rbnVERAG.vb | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index 76f1e9c..134007d 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -36,7 +36,7 @@ \\ftps.verag.ag\g\ftp\programme\VERAGAddin\ http://ftps.verag.ag/VERAGAddin/ de - 1.0.1.98 + 1.0.1.99 true true 0 diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index 88cba67..db6cb07 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -106,12 +106,21 @@ Public Class AVISO_Mail_Functions 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) + Dim selectedItem As Object = selection(1) - addMailToAviso(mailItem, isFormular) + Dim result = TryCast(selectedItem, Outlook.MailItem) + + If result IsNot Nothing Then + + Dim mailItem As Outlook.MailItem = selectedItem + mailItem = DirectCast(mailItem, Outlook.MailItem) + + addMailToAviso(mailItem, isFormular) + Else + MsgBox("Die markierte Email kann nicht verarbeitet werden!" & vbNewLine & "Bitte andere Mail verwenden.") + End If End If + Catch ex As Exception MsgBox(ex.Message & ex.StackTrace) End Try From 79c4e4e37c5e84cc66303737bdf1bed1be253a7b Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 12 Apr 2023 16:58:16 +0200 Subject: [PATCH 18/38] AddIn --- .../frmAvisoFormularAnfügen.Designer.vb | 279 +++++++++-------- VERAGAddIn/frmAvisoFormularAnfügen.vb | 291 +++++++++++++++--- VERAGAddIn/rbnMailItem.Designer.vb | 30 +- VERAGAddIn/rbnMailItem.vb | 4 +- VERAGAddIn/rbnVERAG.Designer.vb | 50 ++- VERAGAddIn/rbnVERAG.vb | 165 ++++++---- 6 files changed, 547 insertions(+), 272 deletions(-) diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb b/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb index 1c3aa0b..72da95d 100644 --- a/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb +++ b/VERAGAddIn/frmAvisoFormularAnfügen.Designer.vb @@ -26,88 +26,77 @@ Partial Class frmAvisoFormularAnfuegen Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmAvisoFormularAnfuegen)) + Me.lblVMId = New System.Windows.Forms.Label() + Me.cbVMTypen = New VERAG_PROG_ALLGEMEIN.MyComboBox() + Me.panelKunden = New VERAG_PROG_ALLGEMEIN.MyPanel(Me.components) + Me.Label1 = New System.Windows.Forms.Label() + Me.lblWarning = New System.Windows.Forms.Label() + Me.lblKunden = New System.Windows.Forms.Label() + Me.KdSearchBox = New VERAG_PROG_ALLGEMEIN.KdSearchBox() + Me.pnlDetails = New VERAG_PROG_ALLGEMEIN.MyPanel(Me.components) + Me.pnlBottom = New VERAG_PROG_ALLGEMEIN.MyPanel(Me.components) + Me.pbAnhaenge = New System.Windows.Forms.PictureBox() Me.lblMultiAttachements = New System.Windows.Forms.Label() Me.dgvAnhaenge = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) Me.columnName = New System.Windows.Forms.DataGridViewTextBoxColumn() - Me.UsrCntlKundenZollVollmachten1 = New SDL.usrCntlKundenZollVollmachten() - Me.MyPanel2 = New VERAG_PROG_ALLGEMEIN.MyPanel(Me.components) - Me.lblWarning = New System.Windows.Forms.Label() - Me.lblVMId = New System.Windows.Forms.Label() - Me.lblKunden = New System.Windows.Forms.Label() - Me.KdSearchBox = New VERAG_PROG_ALLGEMEIN.KdSearchBox() - Me.cbVMTypen = New VERAG_PROG_ALLGEMEIN.MyComboBox() Me.MyPanel1 = New VERAG_PROG_ALLGEMEIN.MyPanel(Me.components) - Me.pbAnhaenge = New System.Windows.Forms.PictureBox() Me.btnOK = New System.Windows.Forms.Button() Me.btnCancel = New System.Windows.Forms.Button() - Me.Label1 = New System.Windows.Forms.Label() - CType(Me.dgvAnhaenge, System.ComponentModel.ISupportInitialize).BeginInit() - Me.MyPanel2.SuspendLayout() - Me.MyPanel1.SuspendLayout() + Me.panelKunden.SuspendLayout() + Me.pnlBottom.SuspendLayout() CType(Me.pbAnhaenge, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.dgvAnhaenge, System.ComponentModel.ISupportInitialize).BeginInit() + Me.MyPanel1.SuspendLayout() Me.SuspendLayout() ' - 'lblMultiAttachements + 'lblVMId ' - Me.lblMultiAttachements.AutoSize = True - Me.lblMultiAttachements.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblMultiAttachements.ForeColor = System.Drawing.Color.Red - Me.lblMultiAttachements.Location = New System.Drawing.Point(9, 465) - Me.lblMultiAttachements.Name = "lblMultiAttachements" - Me.lblMultiAttachements.Size = New System.Drawing.Size(342, 13) - Me.lblMultiAttachements.TabIndex = 38 - Me.lblMultiAttachements.Text = "Anhang markieren, der explizit als PDF-Anhang gespeichert werden soll" + Me.lblVMId.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.lblVMId.AutoSize = True + Me.lblVMId.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblVMId.Location = New System.Drawing.Point(12, 53) + Me.lblVMId.Name = "lblVMId" + Me.lblVMId.Size = New System.Drawing.Size(69, 13) + Me.lblVMId.TabIndex = 36 + Me.lblVMId.Text = "Vollmacht-Art" ' - 'dgvAnhaenge + 'cbVMTypen ' - 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.Top Or 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, 483) - 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(514, 36) - Me.dgvAnhaenge.TabIndex = 39 - Me.dgvAnhaenge.Visible = False + Me.cbVMTypen._allowedValuesFreiText = Nothing + Me.cbVMTypen._allowFreiText = False + Me.cbVMTypen._value = "" + Me.cbVMTypen.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.cbVMTypen.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.cbVMTypen.FormattingEnabled = True + Me.cbVMTypen.Location = New System.Drawing.Point(12, 73) + Me.cbVMTypen.Name = "cbVMTypen" + Me.cbVMTypen.Size = New System.Drawing.Size(492, 24) + Me.cbVMTypen.TabIndex = 35 ' - 'columnName + 'panelKunden ' - Me.columnName.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill - Me.columnName.HeaderText = "Name" - Me.columnName.Name = "columnName" - Me.columnName.ReadOnly = True + Me.panelKunden.Controls.Add(Me.lblVMId) + Me.panelKunden.Controls.Add(Me.cbVMTypen) + Me.panelKunden.Controls.Add(Me.Label1) + Me.panelKunden.Controls.Add(Me.lblWarning) + Me.panelKunden.Controls.Add(Me.lblKunden) + Me.panelKunden.Controls.Add(Me.KdSearchBox) + Me.panelKunden.Dock = System.Windows.Forms.DockStyle.Top + Me.panelKunden.Location = New System.Drawing.Point(0, 0) + Me.panelKunden.Name = "panelKunden" + Me.panelKunden.Size = New System.Drawing.Size(519, 105) + Me.panelKunden.TabIndex = 37 ' - 'UsrCntlKundenZollVollmachten1 + 'Label1 ' - Me.UsrCntlKundenZollVollmachten1.Location = New System.Drawing.Point(0, 120) - Me.UsrCntlKundenZollVollmachten1.Name = "UsrCntlKundenZollVollmachten1" - Me.UsrCntlKundenZollVollmachten1.Size = New System.Drawing.Size(514, 342) - Me.UsrCntlKundenZollVollmachten1.TabIndex = 38 - ' - 'MyPanel2 - ' - Me.MyPanel2.Controls.Add(Me.Label1) - Me.MyPanel2.Controls.Add(Me.lblWarning) - Me.MyPanel2.Controls.Add(Me.lblVMId) - Me.MyPanel2.Controls.Add(Me.lblKunden) - Me.MyPanel2.Controls.Add(Me.KdSearchBox) - Me.MyPanel2.Controls.Add(Me.cbVMTypen) - Me.MyPanel2.Dock = System.Windows.Forms.DockStyle.Top - Me.MyPanel2.Location = New System.Drawing.Point(0, 0) - Me.MyPanel2.Name = "MyPanel2" - Me.MyPanel2.Size = New System.Drawing.Size(521, 114) - Me.MyPanel2.TabIndex = 37 + Me.Label1.AutoSize = True + Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label1.ForeColor = System.Drawing.Color.Red + Me.Label1.Location = New System.Drawing.Point(407, 4) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(100, 20) + Me.Label1.TabIndex = 38 + Me.Label1.Text = "Testsystem" ' 'lblWarning ' @@ -118,23 +107,12 @@ Partial Class frmAvisoFormularAnfuegen Me.lblWarning.Size = New System.Drawing.Size(0, 13) Me.lblWarning.TabIndex = 37 ' - 'lblVMId - ' - Me.lblVMId.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.lblVMId.AutoSize = True - Me.lblVMId.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblVMId.Location = New System.Drawing.Point(12, 61) - Me.lblVMId.Name = "lblVMId" - Me.lblVMId.Size = New System.Drawing.Size(69, 13) - Me.lblVMId.TabIndex = 36 - Me.lblVMId.Text = "Vollmacht-Art" - ' 'lblKunden ' Me.lblKunden.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.lblKunden.AutoSize = True Me.lblKunden.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblKunden.Location = New System.Drawing.Point(12, 9) + Me.lblKunden.Location = New System.Drawing.Point(12, 4) Me.lblKunden.Name = "lblKunden" Me.lblKunden.Size = New System.Drawing.Size(44, 13) Me.lblKunden.TabIndex = 2 @@ -162,7 +140,7 @@ Partial Class frmAvisoFormularAnfuegen Me.KdSearchBox.KdNr = "-1" Me.KdSearchBox.kdNrField = Nothing Me.KdSearchBox.KdNrNullInt = Nothing - Me.KdSearchBox.Location = New System.Drawing.Point(12, 32) + Me.KdSearchBox.Location = New System.Drawing.Point(12, 27) Me.KdSearchBox.Name = "KdSearchBox" Me.KdSearchBox.nurAktive = True Me.KdSearchBox.searchActive = True @@ -171,46 +149,91 @@ Partial Class frmAvisoFormularAnfuegen Me.KdSearchBox.TIMER_SEARCH = True Me.KdSearchBox.usrcntl = Nothing ' - 'cbVMTypen + 'pnlDetails ' - Me.cbVMTypen._allowedValuesFreiText = Nothing - Me.cbVMTypen._allowFreiText = False - Me.cbVMTypen._value = "" - Me.cbVMTypen.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.cbVMTypen.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.cbVMTypen.FormattingEnabled = True - Me.cbVMTypen.Location = New System.Drawing.Point(12, 81) - Me.cbVMTypen.Name = "cbVMTypen" - Me.cbVMTypen.Size = New System.Drawing.Size(492, 24) - Me.cbVMTypen.TabIndex = 35 + Me.pnlDetails.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.pnlDetails.Location = New System.Drawing.Point(0, 103) + Me.pnlDetails.Name = "pnlDetails" + Me.pnlDetails.Size = New System.Drawing.Size(518, 426) + Me.pnlDetails.TabIndex = 38 ' - 'MyPanel1 + 'pnlBottom ' - Me.MyPanel1.Controls.Add(Me.pbAnhaenge) - Me.MyPanel1.Controls.Add(Me.btnOK) - Me.MyPanel1.Controls.Add(Me.btnCancel) - Me.MyPanel1.Dock = System.Windows.Forms.DockStyle.Bottom - Me.MyPanel1.Location = New System.Drawing.Point(0, 523) - Me.MyPanel1.Name = "MyPanel1" - Me.MyPanel1.Size = New System.Drawing.Size(521, 108) - Me.MyPanel1.TabIndex = 36 + Me.pnlBottom.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.pnlBottom.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.pnlBottom.Controls.Add(Me.pbAnhaenge) + Me.pnlBottom.Controls.Add(Me.lblMultiAttachements) + Me.pnlBottom.Controls.Add(Me.dgvAnhaenge) + Me.pnlBottom.Location = New System.Drawing.Point(0, 530) + Me.pnlBottom.Name = "pnlBottom" + Me.pnlBottom.Size = New System.Drawing.Size(519, 158) + Me.pnlBottom.TabIndex = 39 ' 'pbAnhaenge ' + Me.pbAnhaenge.Anchor = System.Windows.Forms.AnchorStyles.Bottom Me.pbAnhaenge.Enabled = False Me.pbAnhaenge.Image = Global.VERAGAddIn.My.Resources.Resources.pdf_gray - Me.pbAnhaenge.Location = New System.Drawing.Point(15, 11) + Me.pbAnhaenge.Location = New System.Drawing.Point(12, 106) Me.pbAnhaenge.Name = "pbAnhaenge" - Me.pbAnhaenge.Size = New System.Drawing.Size(65, 50) + Me.pbAnhaenge.Size = New System.Drawing.Size(63, 52) Me.pbAnhaenge.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom Me.pbAnhaenge.TabIndex = 32 Me.pbAnhaenge.TabStop = False ' + 'lblMultiAttachements + ' + Me.lblMultiAttachements.AutoSize = True + Me.lblMultiAttachements.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblMultiAttachements.ForeColor = System.Drawing.Color.Red + Me.lblMultiAttachements.Location = New System.Drawing.Point(15, 2) + Me.lblMultiAttachements.Name = "lblMultiAttachements" + Me.lblMultiAttachements.Size = New System.Drawing.Size(342, 13) + Me.lblMultiAttachements.TabIndex = 38 + Me.lblMultiAttachements.Text = "Anhang markieren, der explizit als PDF-Anhang gespeichert werden soll" + ' + 'dgvAnhaenge + ' + Me.dgvAnhaenge.AKTUALISIERUNGS_INTERVALL = -1 + Me.dgvAnhaenge.AllowUserToAddRows = False + Me.dgvAnhaenge.AllowUserToDeleteRows = False + Me.dgvAnhaenge.AllowUserToResizeColumns = False + Me.dgvAnhaenge.AllowUserToResizeRows = False + 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(12, 19) + 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(492, 30) + 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 + ' + 'MyPanel1 + ' + Me.MyPanel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.MyPanel1.Controls.Add(Me.btnOK) + Me.MyPanel1.Controls.Add(Me.btnCancel) + Me.MyPanel1.Location = New System.Drawing.Point(0, 689) + Me.MyPanel1.Name = "MyPanel1" + Me.MyPanel1.Size = New System.Drawing.Size(518, 50) + Me.MyPanel1.TabIndex = 40 + ' 'btnOK ' Me.btnOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK - Me.btnOK.Location = New System.Drawing.Point(409, 65) + Me.btnOK.Location = New System.Drawing.Point(409, 7) Me.btnOK.Name = "btnOK" Me.btnOK.Size = New System.Drawing.Size(105, 40) Me.btnOK.TabIndex = 3 @@ -221,61 +244,51 @@ Partial Class frmAvisoFormularAnfuegen ' Me.btnCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.btnCancel.Location = New System.Drawing.Point(3, 67) + Me.btnCancel.Location = New System.Drawing.Point(3, 9) Me.btnCancel.Name = "btnCancel" Me.btnCancel.Size = New System.Drawing.Size(116, 40) Me.btnCancel.TabIndex = 31 Me.btnCancel.Text = "Abbrechen" Me.btnCancel.UseVisualStyleBackColor = True ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label1.ForeColor = System.Drawing.Color.Red - Me.Label1.Location = New System.Drawing.Point(407, 4) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(100, 20) - Me.Label1.TabIndex = 38 - Me.Label1.Text = "Testsystem" - ' 'frmAvisoFormularAnfuegen ' 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(521, 631) - Me.Controls.Add(Me.lblMultiAttachements) - Me.Controls.Add(Me.dgvAnhaenge) - Me.Controls.Add(Me.UsrCntlKundenZollVollmachten1) - Me.Controls.Add(Me.MyPanel2) + Me.ClientSize = New System.Drawing.Size(519, 741) Me.Controls.Add(Me.MyPanel1) + Me.Controls.Add(Me.pnlBottom) + Me.Controls.Add(Me.pnlDetails) + Me.Controls.Add(Me.panelKunden) Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.Name = "frmAvisoFormularAnfuegen" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.Text = "Vollmacht anfügen" - CType(Me.dgvAnhaenge, System.ComponentModel.ISupportInitialize).EndInit() - Me.MyPanel2.ResumeLayout(False) - Me.MyPanel2.PerformLayout() - Me.MyPanel1.ResumeLayout(False) + Me.panelKunden.ResumeLayout(False) + Me.panelKunden.PerformLayout() + Me.pnlBottom.ResumeLayout(False) + Me.pnlBottom.PerformLayout() CType(Me.pbAnhaenge, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.dgvAnhaenge, System.ComponentModel.ISupportInitialize).EndInit() + Me.MyPanel1.ResumeLayout(False) Me.ResumeLayout(False) - Me.PerformLayout() End Sub Friend WithEvents lblKunden As Windows.Forms.Label - Friend WithEvents btnOK As Windows.Forms.Button Friend WithEvents KdSearchBox As VERAG_PROG_ALLGEMEIN.KdSearchBox - Friend WithEvents btnCancel As Windows.Forms.Button Friend WithEvents cbVMTypen As VERAG_PROG_ALLGEMEIN.MyComboBox - Friend WithEvents MyPanel1 As VERAG_PROG_ALLGEMEIN.MyPanel - Friend WithEvents pbAnhaenge As Windows.Forms.PictureBox - Friend WithEvents MyPanel2 As VERAG_PROG_ALLGEMEIN.MyPanel + Friend WithEvents panelKunden As VERAG_PROG_ALLGEMEIN.MyPanel Friend WithEvents lblVMId As Windows.Forms.Label - Friend WithEvents UsrCntlKundenZollVollmachten1 As SDL.usrCntlKundenZollVollmachten - Friend WithEvents dgvAnhaenge As VERAG_PROG_ALLGEMEIN.MyDatagridview - Friend WithEvents columnName As Windows.Forms.DataGridViewTextBoxColumn Friend WithEvents lblWarning As Windows.Forms.Label - Friend WithEvents lblMultiAttachements As Windows.Forms.Label Friend WithEvents Label1 As Windows.Forms.Label + Friend WithEvents pnlDetails As MyPanel + Friend WithEvents pnlBottom As MyPanel + Friend WithEvents pbAnhaenge As Windows.Forms.PictureBox + Friend WithEvents lblMultiAttachements As Windows.Forms.Label + Friend WithEvents dgvAnhaenge As MyDatagridview + Friend WithEvents columnName As Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents MyPanel1 As MyPanel + Friend WithEvents btnOK As Windows.Forms.Button + Friend WithEvents btnCancel As Windows.Forms.Button End Class diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.vb b/VERAGAddIn/frmAvisoFormularAnfügen.vb index 1c971d5..f8ff9df 100644 --- a/VERAGAddIn/frmAvisoFormularAnfügen.vb +++ b/VERAGAddIn/frmAvisoFormularAnfügen.vb @@ -1,8 +1,11 @@ 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 @@ -10,7 +13,7 @@ Imports VERAG_PROG_ALLGEMEIN Public Class frmAvisoFormularAnfuegen Public KdNr As Integer = -1 - Public vollmachtId As Integer = -1 + Public AvisoId As Integer = -1 Dim vollmachtartId As Integer = -1 Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Public SendungsId = -1 @@ -18,6 +21,13 @@ Public Class frmAvisoFormularAnfuegen Public PDF_MAIL = "" 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) + Sub New() @@ -26,23 +36,62 @@ Public Class frmAvisoFormularAnfuegen End Sub - Sub New(Bezeichnung) + 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" + 'UsrCntlGestellungsgarantien1.AutoSize = False + 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 - - - KdSearchBox.initKdBox(Me) initAttachment() + KdSearchBox.initKdBox(Me) If hasAnhaenge Then pbAnhaenge.Image = My.Resources.pdf - End Sub @@ -59,7 +108,22 @@ Public Class frmAvisoFormularAnfuegen Sub init() If KdNr > 0 Then - initVollmachtarten(KdNr) + Select Case button.Name + + Case "btnVollmachten" + + initVollmachtarten(KdNr) + + Case "btnVertraege" + + UsrCntlVertraege1.initDGVVertraege(KdNr) + + Case "btnGestellungsgarantien" + + UsrCntlGestellungsgarantien1.initDGVGestGarantie(KdNr) + + End Select + End If End Sub @@ -92,17 +156,15 @@ Public Class frmAvisoFormularAnfuegen End If End Sub + Dim test As usrcntlGestellungsgarantien.clickOKEventHandler() 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 Not hasAnhaenge Then - If Not vbYes = MsgBox("Diese Email besitzt keinen Anhang!" & vbCrLf & "Soll die Email denoch gespeichert werden?", vbYesNoCancel) Then + If Not vbYes = MsgBox("Diese Email besitzt keinen Anhang!" & vbCrLf & "Soll die Email denoch als Anhang gespeichert werden?", vbYesNoCancel) Then Close() DialogResult = DialogResult.None Exit Sub @@ -110,22 +172,101 @@ Public Class frmAvisoFormularAnfuegen End If - Dim i = dgvAnhaenge.SelectedCells.Item(0).RowIndex + Dim i = 0 + If dgvAnhaenge.SelectedCells.Count > 0 Then i = dgvAnhaenge.SelectedCells.Item(0).RowIndex If i > 0 Then AddAttachmentOnLastIndex(ATT, i) End If + If Not checkMandatoryFields() Then + DialogResult = DialogResult.None + Exit Sub + End If - UsrCntlKundenZollVollmachten1.btnNeu_Click(sender, e) - vollmachtId = UsrCntlKundenZollVollmachten1.vmId + Select Case button.Name - Close() + Case "btnVollmachten" + + UsrCntlKundenZollVollmachten1.btnNeu_Click(sender, e) + AvisoId = UsrCntlKundenZollVollmachten1.vmId + + Close() + + Case "btnVertraege" + + If sender.Text = "Hinzufügen" Then + + setAvisoIdForVertrage() + Me.DialogResult = DialogResult.OK + + ElseIf UsrCntlVertraege1.dgvVertraege.SelectedRows.Count = 1 Then + + For Each row As DataGridViewRow In UsrCntlVertraege1.dgvVertraege.SelectedRows + If row.Cells("kv_datenarchivId").Value IsNot DBNull.Value Then + setAvisoIdForVertrage() + 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("gg_datenarchivId").Value Is DBNull.Value Then + 'Or CInt(row.Cells("gg_datenarchivId").Value) < 0 + setAvisoIdForGestellungen() + 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 + + End Sub + Private Sub AddAttachmentOnLastIndex(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) @@ -144,37 +285,85 @@ Public Class frmAvisoFormularAnfuegen 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 - PDF_MAIL = "PDF_DATENSERVER" + 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 - End If + 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 - If dgvAnhaenge.Rows.Count >= 2 Then + Dim addHeightfrm = 180 + Dim addHeightdgv = 50 + If dgvAnhaenge.Rows.Count > 1 Then dgvAnhaenge.Visible = True lblMultiAttachements.Visible = True - Me.Size = New Size(537, 720) - dgvAnhaenge.Size = New Size(514, 86) + + + 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 - dgvAnhaenge.Size = New Size(514, 36) - Me.Size = New Size(537, 670) + 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() + dgvAnhaenge.ClearSelection() End Sub Private Function checkMandatoryFields() As Boolean @@ -188,15 +377,24 @@ Public Class frmAvisoFormularAnfuegen Return valid End If - 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 + 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 = "" @@ -208,5 +406,20 @@ Public Class frmAvisoFormularAnfuegen 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 \ No newline at end of file diff --git a/VERAGAddIn/rbnMailItem.Designer.vb b/VERAGAddIn/rbnMailItem.Designer.vb index 72c2f65..06d8465 100644 --- a/VERAGAddIn/rbnMailItem.Designer.vb +++ b/VERAGAddIn/rbnMailItem.Designer.vb @@ -44,11 +44,11 @@ Me.components = New System.ComponentModel.Container() Me.Tab1 = Me.Factory.CreateRibbonTab Me.Group1 = Me.Factory.CreateRibbonGroup + Me.NotifyIcon1 = New System.Windows.Forms.NotifyIcon(Me.components) Me.Button1 = Me.Factory.CreateRibbonButton - Me.Button2 = Me.Factory.CreateRibbonButton + Me.btnAvisoMail2 = Me.Factory.CreateRibbonButton Me.btnInfo = Me.Factory.CreateRibbonButton Me.btnUnsichtbar = Me.Factory.CreateRibbonButton - Me.NotifyIcon1 = New System.Windows.Forms.NotifyIcon(Me.components) Me.Tab1.SuspendLayout() Me.Group1.SuspendLayout() Me.SuspendLayout() @@ -63,12 +63,17 @@ 'Group1 ' Me.Group1.Items.Add(Me.Button1) - Me.Group1.Items.Add(Me.Button2) + Me.Group1.Items.Add(Me.btnAvisoMail2) Me.Group1.Items.Add(Me.btnInfo) Me.Group1.Items.Add(Me.btnUnsichtbar) Me.Group1.Label = "AVISO" Me.Group1.Name = "Group1" ' + 'NotifyIcon1 + ' + Me.NotifyIcon1.Text = "NotifyIcon1" + Me.NotifyIcon1.Visible = True + ' 'Button1 ' Me.Button1.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge @@ -77,13 +82,13 @@ Me.Button1.Name = "Button1" Me.Button1.ShowImage = True ' - 'Button2 + 'btnAvisoMail2 ' - Me.Button2.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge - Me.Button2.Image = Global.VERAGAddIn.My.Resources.Resources._665209_email_512x512 - Me.Button2.Label = "Mail an Aviso anfügen" - Me.Button2.Name = "Button2" - Me.Button2.ShowImage = True + Me.btnAvisoMail2.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge + Me.btnAvisoMail2.Image = Global.VERAGAddIn.My.Resources.Resources._665209_email_512x512 + Me.btnAvisoMail2.Label = "Mail an Aviso anfügen" + Me.btnAvisoMail2.Name = "btnAvisoMail2" + Me.btnAvisoMail2.ShowImage = True ' 'btnInfo ' @@ -96,11 +101,6 @@ Me.btnUnsichtbar.Name = "btnUnsichtbar" Me.btnUnsichtbar.Visible = False ' - 'NotifyIcon1 - ' - Me.NotifyIcon1.Text = "NotifyIcon1" - Me.NotifyIcon1.Visible = True - ' 'rbnMailItem ' Me.Name = "rbnMailItem" @@ -119,7 +119,7 @@ Friend WithEvents Tab1 As Microsoft.Office.Tools.Ribbon.RibbonTab Friend WithEvents Group1 As Microsoft.Office.Tools.Ribbon.RibbonGroup Friend WithEvents Button1 As Microsoft.Office.Tools.Ribbon.RibbonButton - Friend WithEvents Button2 As Microsoft.Office.Tools.Ribbon.RibbonButton + Friend WithEvents btnAvisoMail2 As Microsoft.Office.Tools.Ribbon.RibbonButton Friend WithEvents btnInfo As Microsoft.Office.Tools.Ribbon.RibbonButton Friend WithEvents NotifyIcon1 As Windows.Forms.NotifyIcon Friend WithEvents btnUnsichtbar As Microsoft.Office.Tools.Ribbon.RibbonButton diff --git a/VERAGAddIn/rbnMailItem.vb b/VERAGAddIn/rbnMailItem.vb index 9848fd1..3eb0567 100644 --- a/VERAGAddIn/rbnMailItem.vb +++ b/VERAGAddIn/rbnMailItem.vb @@ -41,11 +41,11 @@ Public Class rbnMailItem End If End Sub - Private Sub Button2_Click(sender As Object, e As RibbonControlEventArgs) Handles Button2.Click + Private Sub Button2_Click(sender As Object, e As RibbonControlEventArgs) Handles btnAvisoMail2.Click If LOGIN_OK Then Try Dim INSPECTOR As Outlook.Inspector = e.Control.Context - AVISO_Mail_Functions.addMailToAviso(INSPECTOR.CurrentItem) + AVISO_Mail_Functions.addMailToAviso(INSPECTOR.CurrentItem, sender) 'Me.Context Catch ex As Exception MsgBox(ex.Message & ex.StackTrace) diff --git a/VERAGAddIn/rbnVERAG.Designer.vb b/VERAGAddIn/rbnVERAG.Designer.vb index a6ada52..3d8b3cb 100644 --- a/VERAGAddIn/rbnVERAG.Designer.vb +++ b/VERAGAddIn/rbnVERAG.Designer.vb @@ -45,9 +45,11 @@ Me.VERAG = Me.Factory.CreateRibbonGroup Me.Button2 = Me.Factory.CreateRibbonButton Me.btnPdfPrint = Me.Factory.CreateRibbonButton - Me.Button3 = Me.Factory.CreateRibbonButton + Me.btnAvisoMail = Me.Factory.CreateRibbonButton Me.btnAttachFormular = Me.Factory.CreateRibbonSplitButton - Me.btnVM = Me.Factory.CreateRibbonButton + Me.btnVollmachten = Me.Factory.CreateRibbonButton + Me.btnVertraege = Me.Factory.CreateRibbonButton + Me.btnGestellungsgarantien = Me.Factory.CreateRibbonButton Me.SplitButton1 = Me.Factory.CreateRibbonSplitButton Me.Button1 = Me.Factory.CreateRibbonButton Me.Button4 = Me.Factory.CreateRibbonButton @@ -66,7 +68,7 @@ ' Me.VERAG.Items.Add(Me.Button2) Me.VERAG.Items.Add(Me.btnPdfPrint) - Me.VERAG.Items.Add(Me.Button3) + Me.VERAG.Items.Add(Me.btnAvisoMail) Me.VERAG.Items.Add(Me.btnAttachFormular) Me.VERAG.Items.Add(Me.SplitButton1) Me.VERAG.Label = "AVISO" @@ -88,27 +90,41 @@ Me.btnPdfPrint.Name = "btnPdfPrint" Me.btnPdfPrint.ShowImage = True ' - 'Button3 + 'btnAvisoMail ' - Me.Button3.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge - Me.Button3.Image = Global.VERAGAddIn.My.Resources.Resources._665209_email_512x512 - Me.Button3.Label = "Mail an Aviso anfügen" - Me.Button3.Name = "Button3" - Me.Button3.ShowImage = True + Me.btnAvisoMail.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge + Me.btnAvisoMail.Image = Global.VERAGAddIn.My.Resources.Resources._665209_email_512x512 + Me.btnAvisoMail.Label = "Mail an Aviso anfügen" + Me.btnAvisoMail.Name = "btnAvisoMail" + Me.btnAvisoMail.ShowImage = True ' 'btnAttachFormular ' Me.btnAttachFormular.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge Me.btnAttachFormular.Image = Global.VERAGAddIn.My.Resources.Resources.pdf - Me.btnAttachFormular.Items.Add(Me.btnVM) + Me.btnAttachFormular.Items.Add(Me.btnVollmachten) + Me.btnAttachFormular.Items.Add(Me.btnVertraege) + Me.btnAttachFormular.Items.Add(Me.btnGestellungsgarantien) Me.btnAttachFormular.Label = "Formulare anhängen" Me.btnAttachFormular.Name = "btnAttachFormular" ' - 'btnVM + 'btnVollmachten ' - Me.btnVM.Label = "Vollmacht anhängen" - Me.btnVM.Name = "btnVM" - Me.btnVM.ShowImage = True + Me.btnVollmachten.Label = "Vollmachten" + Me.btnVollmachten.Name = "btnVollmachten" + Me.btnVollmachten.ShowImage = True + ' + 'btnVertraege + ' + Me.btnVertraege.Label = "Verträge/Unterlagen" + Me.btnVertraege.Name = "btnVertraege" + Me.btnVertraege.ShowImage = True + ' + 'btnGestellungsgarantien + ' + Me.btnGestellungsgarantien.Label = "Gestellungsgarantien" + Me.btnGestellungsgarantien.Name = "btnGestellungsgarantien" + Me.btnGestellungsgarantien.ShowImage = True ' 'SplitButton1 ' @@ -151,10 +167,12 @@ Friend WithEvents btnPdfPrint As Microsoft.Office.Tools.Ribbon.RibbonButton Friend WithEvents SplitButton1 As Microsoft.Office.Tools.Ribbon.RibbonSplitButton Friend WithEvents Button1 As Microsoft.Office.Tools.Ribbon.RibbonButton - Friend WithEvents Button3 As Microsoft.Office.Tools.Ribbon.RibbonButton + Friend WithEvents btnAvisoMail As Microsoft.Office.Tools.Ribbon.RibbonButton Friend WithEvents Button4 As Microsoft.Office.Tools.Ribbon.RibbonButton Friend WithEvents btnAttachFormular As Microsoft.Office.Tools.Ribbon.RibbonSplitButton - Friend WithEvents btnVM As Microsoft.Office.Tools.Ribbon.RibbonButton + Friend WithEvents btnVollmachten As Microsoft.Office.Tools.Ribbon.RibbonButton + Friend WithEvents btnVertraege As Microsoft.Office.Tools.Ribbon.RibbonButton + Friend WithEvents btnGestellungsgarantien As Microsoft.Office.Tools.Ribbon.RibbonButton End Class Partial Class ThisRibbonCollection diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index db6cb07..00914f3 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -35,7 +35,7 @@ Public Class VERAGRibbon Private Sub Ribbon1_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load - cAllgemein.TESTSYSTEM = False + cAllgemein.TESTSYSTEM = True LOGIN_OK = AVISO_Mail_Functions.initFirmaUser() End Sub @@ -74,14 +74,8 @@ Public Class VERAGRibbon End Sub - Sub Button3_Click(sender As Object, e As RibbonControlEventArgs) Handles Button3.Click - If LOGIN_OK Then AVISO_Mail_Functions.addMailToAviso_Hauptfenster() - End Sub - - Private Sub btnVM_Click(sender As Object, e As RibbonControlEventArgs) Handles btnVM.Click - If LOGIN_OK Then AVISO_Mail_Functions.addMailToAviso_Hauptfenster(True) - - + Sub Button3_Click(sender As Object, e As RibbonControlEventArgs) Handles btnAvisoMail.Click, btnVollmachten.Click, btnGestellungsgarantien.Click, btnVertraege.Click + If LOGIN_OK Then AVISO_Mail_Functions.addMailToAviso_Hauptfenster(sender) End Sub Public Function testConnection() As Boolean @@ -101,7 +95,7 @@ End Class Public Class AVISO_Mail_Functions - Shared Sub addMailToAviso_Hauptfenster(Optional isFormular As Boolean = False) + Shared Sub addMailToAviso_Hauptfenster(sender As Object) Try Dim explorer As Outlook.Explorer = Globals.ThisAddIn.Application.ActiveExplorer Dim selection As Outlook.Selection = explorer.Selection @@ -115,9 +109,9 @@ Public Class AVISO_Mail_Functions Dim mailItem As Outlook.MailItem = selectedItem mailItem = DirectCast(mailItem, Outlook.MailItem) - addMailToAviso(mailItem, isFormular) + addMailToAviso(mailItem, sender) Else - MsgBox("Die markierte Email kann nicht verarbeitet werden!" & vbNewLine & "Bitte andere Mail verwenden.") + MsgBox("Die markierte Email kann nicht verarbeitet werden!" & vbNewLine & "Bitte andere Email verwenden.") End If End If @@ -136,7 +130,7 @@ Public Class AVISO_Mail_Functions Return att End Function - Shared Sub addMailToAviso(mailItem As Outlook.MailItem, Optional isFormular As Boolean = False) + Shared Sub addMailToAviso(mailItem As Outlook.MailItem, sender As Object) Try If mailItem IsNot Nothing Then ' Remove special characters from the file name and make sure it is not longer than 100 characters @@ -160,11 +154,8 @@ Public Class AVISO_Mail_Functions End If Dim Bezeichnung = strFileName Dim AvisoId = Nothing - If isFormular Then - AvisoId = getAvisoFormularId(Bezeichnung, pdf_mail, Art, ATTACHMENTS_LIST, kdNr) ')getAttachmentStringList(mailItem)) - Else - AvisoId = getAvisoId(Bezeichnung, pdf_mail, SendungsId, Art, ATTACHMENTS_LIST) ')getAttachmentStringList(mailItem)) - End If + + AvisoId = getAvisoId(Bezeichnung, pdf_mail, SendungsId, Art, ATTACHMENTS_LIST, kdNr, sender) ' If AvisoId < 0 Then Exit Sub @@ -176,10 +167,12 @@ Public Class AVISO_Mail_Functions saveMail(mailItem, AvisoId, Bezeichnung,, SendungsId, Art) saveAttachment(ATTACHMENTS_LIST, AvisoId, SendungsId, Art, BezAnhang) ElseIf pdf_mail = "PDF_DATENSERVER" Then - saveMailOnDatenserver(mailItem, AvisoId, Bezeichnung,, kdNr) - saveAttachmentOnDatenserver(ATTACHMENTS_LIST, AvisoId, BezAnhang, kdNr) + saveMailOnDatenserver(mailItem, AvisoId, Bezeichnung, sender,, kdNr) + saveAttachmentOnDatenserver(ATTACHMENTS_LIST, AvisoId, BezAnhang, sender, kdNr) + ElseIf pdf_mail = "ONLYPDF_DATENSERVER" Then + saveAttachmentOnDatenserver(ATTACHMENTS_LIST, AvisoId, BezAnhang, sender, kdNr) ElseIf pdf_mail = "ONLYMAIL_DATENSERVER" Then - saveMailOnDatenserver(mailItem, AvisoId, Bezeichnung,, kdNr) + saveMailOnDatenserver(mailItem, AvisoId, Bezeichnung, sender, , kdNr) Else 'ONLYMAIL saveMail(mailItem, AvisoId, Bezeichnung,, SendungsId, Art) End If @@ -425,7 +418,7 @@ Public Class AVISO_Mail_Functions End Try End Sub - Shared Sub saveAttachmentOnDatenserver(ByRef ATTACHMENTS_LIST As List(Of String), AvisoId As Integer, BezeichnungAnh As String, Optional kdNr As Integer = -1) + Shared Sub saveAttachmentOnDatenserver(ByRef ATTACHMENTS_LIST As List(Of String), AvisoId As Integer, BezeichnungAnh As String, Optional sender As Object = Nothing, Optional kdNr As Integer = -1) Try If AvisoId > 0 Then If ATTACHMENTS_LIST.Count > 1 Then BezeichnungAnh = "" ' nur wenn 1 Anhang wird die Bezeichnung übernommen. @@ -434,16 +427,7 @@ Public Class AVISO_Mail_Functions Dim Bezeichnung = BezeichnungAnh If Bezeichnung = "" Then Bezeichnung = fi.Name - - Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & AvisoId, "", "", Bezeichnung, kdNr) - Dim path = DS.uploadDataToDATENSERVER(fi.FullName) - If path Then - Dim c As New cKundenVollmachten(AvisoId) - c.kdvm_datenarchivId = DS.da_id - c.SAVE() - End If - - + uploadAttachments(sender, AvisoId, fi.FullName, Bezeichnung, kdNr) Next End If @@ -647,7 +631,7 @@ Public Class AVISO_Mail_Functions End Try End Sub - Shared Sub saveMailOnDatenserver(mailItem As Outlook.MailItem, AvisoId As Integer, Optional bezeichnung As String = "", Optional saveAttachments As Boolean = True, Optional kdNr As Integer = -1) + Shared Sub saveMailOnDatenserver(mailItem As Outlook.MailItem, AvisoId As Integer, Optional bezeichnung As String = "", Optional sender As Object = Nothing, Optional saveAttachments As Boolean = True, Optional kdNr As Integer = -1) Try If AvisoId > 0 Then @@ -657,14 +641,8 @@ Public Class AVISO_Mail_Functions mailItem.SaveAs(strTmpPath, Outlook.OlSaveAsType.olMSG) - Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & AvisoId, "", "", bezeichnung, kdNr) - Dim path = DS.uploadDataToDATENSERVER(strTmpPath) - If path Then - Dim c As New cKundenVollmachten(AvisoId) - c.kdvm_emailId = DS.da_id - c.SAVE() - End If + uploadAttachments(sender, AvisoId, strTmpPath, bezeichnung, kdNr) ' Clean up the temporary .MSG file from the user's temporary folder System.IO.File.Delete(strTmpPath) @@ -679,45 +657,98 @@ Public Class AVISO_Mail_Functions End Sub - Shared Function getAvisoId(ByRef Bezeichnung, ByRef pdf_mail, ByRef SendungsId, ByRef Art, ByRef Att) As Integer + Shared Function getAvisoId(ByRef Bezeichnung, ByRef pdf_mail, ByRef SendungsId, ByRef Art, ByRef Att, ByRef kdNr, ByVal sender) As Integer - Dim frmAvisoAnfügen As New frmAvisoAnfuegen(Bezeichnung) - frmAvisoAnfügen.ATT = Att - If frmAvisoAnfügen.ShowDialog = DialogResult.OK Then - Dim AvisoId = frmAvisoAnfügen.AvisoId - SendungsId = frmAvisoAnfügen.SendungsId - Bezeichnung = frmAvisoAnfügen.Bezeichnung - pdf_mail = frmAvisoAnfügen.PDF_MAIL - Art = frmAvisoAnfügen.cboArt._value - Att = frmAvisoAnfügen.ATT + Select Case sender.name + Case "btnAvisoMail", "btnAvisoMail2" + Dim frmAvisoAnfügen As New frmAvisoAnfuegen(Bezeichnung) + frmAvisoAnfügen.ATT = Att + If frmAvisoAnfügen.ShowDialog = DialogResult.OK Then + Dim AvisoId = frmAvisoAnfügen.AvisoId + SendungsId = frmAvisoAnfügen.SendungsId + Bezeichnung = frmAvisoAnfügen.Bezeichnung + pdf_mail = frmAvisoAnfügen.PDF_MAIL + Art = frmAvisoAnfügen.cboArt._value + Att = frmAvisoAnfügen.ATT + + + Return AvisoId + End If + Return -1 + + Case Else + Dim frmAvisoFormularAnfuegen As New frmAvisoFormularAnfuegen(Bezeichnung, sender) + frmAvisoFormularAnfuegen.ATT = Att + If frmAvisoFormularAnfuegen.ShowDialog = DialogResult.OK Then + Dim AvisoId = frmAvisoFormularAnfuegen.AvisoId + kdNr = frmAvisoFormularAnfuegen.KdNr + Bezeichnung = frmAvisoFormularAnfuegen.Bezeichnung + pdf_mail = frmAvisoFormularAnfuegen.PDF_MAIL + Att = frmAvisoFormularAnfuegen.ATT + + Return AvisoId + + End If + + Return -1 + + End Select - Return AvisoId - End If - Return -1 End Function - Shared Function getAvisoFormularId(ByRef Bezeichnung, ByRef pdf_mail, ByRef Art, ByRef Att, ByRef kdNr) As Integer - - Dim frmAvisoFormularAnfuegen As New frmAvisoFormularAnfuegen(Bezeichnung) - frmAvisoFormularAnfuegen.ATT = Att - If frmAvisoFormularAnfuegen.ShowDialog = DialogResult.OK Then - Dim AvisoId = frmAvisoFormularAnfuegen.vollmachtId - kdNr = frmAvisoFormularAnfuegen.KdNr - Bezeichnung = frmAvisoFormularAnfuegen.Bezeichnung - pdf_mail = frmAvisoFormularAnfuegen.PDF_MAIL - Att = frmAvisoFormularAnfuegen.ATT - - Return AvisoId + Shared Sub uploadAttachments(sender As Object, AvisoId As Integer, strTmpPath As String, Optional bezeichnung As String = "", Optional kdNr As Integer = -1) + If sender Is Nothing Then + Exit Sub End If - Return -1 - End Function + Dim button = sender + + Select Case button.Name + + Case "btnVollmachten" + Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & AvisoId, "", "", bezeichnung, kdNr) + Dim path = DS.uploadDataToDATENSERVER(strTmpPath) + If path Then + Dim c As New cKundenVollmachten(AvisoId) + If bezeichnung.EndsWith(".pdf") Then + c.kdvm_datenarchivId = DS.da_id + Else + c.kdvm_emailId = DS.da_id + End If + + c.SAVE() + End If + + Case "btnVertraege" + + Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "KD_VERTRÄGE", "", "", "", "KV_" & AvisoId, kdNr) + Dim path = DS.uploadDataToDATENSERVER(strTmpPath) + If path Then + Dim KV As New VERAG_PROG_ALLGEMEIN.cKundenVertraege(AvisoId) + KV.kv_datenarchivId = DS.da_id + KV.SAVE() + End If + + + Case "btnGestellungsgarantien" + + Dim gg As New VERAG_PROG_ALLGEMEIN.cGestellungsgarantien(AvisoId) + Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "GESTELLUNGS_GARANTIEN", "", "", "", "GG_" & gg.gg_Zollamt, kdNr) + Dim path = DS.uploadDataToDATENSERVER(strTmpPath) + If path Then + gg.gg_datenarchivId = DS.da_id + gg.SAVE() + End If + + End Select + + End Sub End Class From baa0bedea65c520a94c84c952415b4fab41042ab Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 12 Apr 2023 17:08:25 +0200 Subject: [PATCH 19/38] Produktivversion --- VERAGAddIn/rbnVERAG.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index 00914f3..931e04b 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -35,7 +35,7 @@ Public Class VERAGRibbon Private Sub Ribbon1_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load - cAllgemein.TESTSYSTEM = True + cAllgemein.TESTSYSTEM = False LOGIN_OK = AVISO_Mail_Functions.initFirmaUser() End Sub From c9d0ff470dc4337791a200429f71ceba98379293 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 12 Apr 2023 17:30:07 +0200 Subject: [PATCH 20/38] Meldung, wenn Datensatz bereits einen Anhang besitzt --- VERAGAddIn/frmAvisoFormularAnfügen.vb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.vb b/VERAGAddIn/frmAvisoFormularAnfügen.vb index f8ff9df..c741b6b 100644 --- a/VERAGAddIn/frmAvisoFormularAnfügen.vb +++ b/VERAGAddIn/frmAvisoFormularAnfügen.vb @@ -206,7 +206,12 @@ Public Class frmAvisoFormularAnfuegen For Each row As DataGridViewRow In UsrCntlVertraege1.dgvVertraege.SelectedRows If row.Cells("kv_datenarchivId").Value IsNot DBNull.Value Then setAvisoIdForVertrage() + Else + If vbYes = MsgBox("Der markierte Vertrag besitzt bereit einen Anhang!" & vbCrLf & "Soll der Anhang ersetzt werden?", vbYesNoCancel) Then + setAvisoIdForVertrage() + End If End If + Next Me.DialogResult = DialogResult.OK Close() @@ -232,6 +237,10 @@ Public Class frmAvisoFormularAnfuegen If row.Cells("gg_datenarchivId").Value Is DBNull.Value Then 'Or CInt(row.Cells("gg_datenarchivId").Value) < 0 setAvisoIdForGestellungen() + Else + If vbYes = MsgBox("Die markierte Gestellungsgarantie besitzt bereit einen Anhang!" & vbCrLf & "Soll der Anhang ersetzt werden?", vbYesNoCancel) Then + setAvisoIdForVertrage() + End If End If Next From 0b6e7f513be8b2b91e042aeed43968dc922a539f Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 18 Apr 2023 15:54:58 +0200 Subject: [PATCH 21/38] =?UTF-8?q?AddInn=20erweitert=20(Hibzuf=C3=BCgeb=20v?= =?UTF-8?q?on=20Vertr=C3=A4ge=20und=20Gestellungsgarantien).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERAGAddIn/frmAvisoFormularAnfügen.vb | 99 +++++++++++++++++++-------- VERAGAddIn/rbnMailItem.Designer.vb | 12 ++-- VERAGAddIn/rbnVERAG.vb | 25 +++---- 3 files changed, 88 insertions(+), 48 deletions(-) diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.vb b/VERAGAddIn/frmAvisoFormularAnfügen.vb index c741b6b..5ad5727 100644 --- a/VERAGAddIn/frmAvisoFormularAnfügen.vb +++ b/VERAGAddIn/frmAvisoFormularAnfügen.vb @@ -19,6 +19,8 @@ Public Class frmAvisoFormularAnfuegen 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 @@ -27,6 +29,7 @@ Public Class frmAvisoFormularAnfuegen 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 @@ -72,7 +75,6 @@ Public Class frmAvisoFormularAnfuegen UsrCntlGestellungsgarantien1 = New usrcntlGestellungsgarantien() AddHandler UsrCntlGestellungsgarantien1.clickOK, AddressOf btnOK_Click Me.Text = "Gestellungsgarantien einfügen" - 'UsrCntlGestellungsgarantien1.AutoSize = False Me.pnlDetails.Controls.Add(UsrCntlGestellungsgarantien1) @@ -101,7 +103,7 @@ Public Class frmAvisoFormularAnfuegen KdNr = KdSearchBox.KdNr_value Dim AD = KdSearchBox.KdData_ADRESSEN Dim KD = KdSearchBox.KdData_KUNDE - + init() End If End Sub @@ -123,7 +125,7 @@ Public Class frmAvisoFormularAnfuegen UsrCntlGestellungsgarantien1.initDGVGestGarantie(KdNr) End Select - + Show() End If End Sub @@ -156,30 +158,54 @@ Public Class frmAvisoFormularAnfuegen End If End Sub - Dim test As usrcntlGestellungsgarantien.clickOKEventHandler() - Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click + 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 denoch als Anhang gespeichert werden?", vbYesNoCancel) 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) - Dim i = 0 - If dgvAnhaenge.SelectedCells.Count > 0 Then i = dgvAnhaenge.SelectedCells.Item(0).RowIndex - If i > 0 Then - - AddAttachmentOnLastIndex(ATT, i) - + End If + End If End If + + If Not checkMandatoryFields() Then DialogResult = DialogResult.None Exit Sub @@ -199,7 +225,6 @@ Public Class frmAvisoFormularAnfuegen If sender.Text = "Hinzufügen" Then setAvisoIdForVertrage() - Me.DialogResult = DialogResult.OK ElseIf UsrCntlVertraege1.dgvVertraege.SelectedRows.Count = 1 Then @@ -207,8 +232,15 @@ Public Class frmAvisoFormularAnfuegen If row.Cells("kv_datenarchivId").Value IsNot DBNull.Value Then setAvisoIdForVertrage() Else - If vbYes = MsgBox("Der markierte Vertrag besitzt bereit einen Anhang!" & vbCrLf & "Soll der Anhang ersetzt werden?", vbYesNoCancel) Then + 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 @@ -234,12 +266,18 @@ Public Class frmAvisoFormularAnfuegen For Each row As DataGridViewRow In UsrCntlGestellungsgarantien1.dgvGestGarantie.SelectedRows - If row.Cells("gg_datenarchivId").Value Is DBNull.Value Then - 'Or CInt(row.Cells("gg_datenarchivId").Value) < 0 + If row.Cells("gg_datenarchivId").Value IsNot DBNull.Value Then setAvisoIdForGestellungen() Else - If vbYes = MsgBox("Die markierte Gestellungsgarantie besitzt bereit einen Anhang!" & vbCrLf & "Soll der Anhang ersetzt werden?", vbYesNoCancel) Then + 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 @@ -273,17 +311,17 @@ Public Class frmAvisoFormularAnfuegen 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 AddAttachmentOnLastIndex(ByRef a As List(Of String), tmpIndex As Integer) + 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) - list = a - Dim selectedItem As Object = list.Item(tmpIndex) + Dim selectedItem As Object = a.Item(tmpIndex) list.Add(selectedItem) - list.RemoveAt(tmpIndex) 'immer die letzte PDF-DatenarchivID wird als PDF-Verknüpfung angezeigt!!!!! - a = list End If End Sub @@ -312,14 +350,15 @@ Public Class frmAvisoFormularAnfuegen 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 + 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 diff --git a/VERAGAddIn/rbnMailItem.Designer.vb b/VERAGAddIn/rbnMailItem.Designer.vb index 06d8465..fc0836f 100644 --- a/VERAGAddIn/rbnMailItem.Designer.vb +++ b/VERAGAddIn/rbnMailItem.Designer.vb @@ -44,11 +44,11 @@ Me.components = New System.ComponentModel.Container() Me.Tab1 = Me.Factory.CreateRibbonTab Me.Group1 = Me.Factory.CreateRibbonGroup - Me.NotifyIcon1 = New System.Windows.Forms.NotifyIcon(Me.components) Me.Button1 = Me.Factory.CreateRibbonButton Me.btnAvisoMail2 = Me.Factory.CreateRibbonButton Me.btnInfo = Me.Factory.CreateRibbonButton Me.btnUnsichtbar = Me.Factory.CreateRibbonButton + Me.NotifyIcon1 = New System.Windows.Forms.NotifyIcon(Me.components) Me.Tab1.SuspendLayout() Me.Group1.SuspendLayout() Me.SuspendLayout() @@ -69,11 +69,6 @@ Me.Group1.Label = "AVISO" Me.Group1.Name = "Group1" ' - 'NotifyIcon1 - ' - Me.NotifyIcon1.Text = "NotifyIcon1" - Me.NotifyIcon1.Visible = True - ' 'Button1 ' Me.Button1.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge @@ -101,6 +96,11 @@ Me.btnUnsichtbar.Name = "btnUnsichtbar" Me.btnUnsichtbar.Visible = False ' + 'NotifyIcon1 + ' + Me.NotifyIcon1.Text = "NotifyIcon1" + Me.NotifyIcon1.Visible = True + ' 'rbnMailItem ' Me.Name = "rbnMailItem" diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index 931e04b..4b40ca9 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -35,7 +35,7 @@ Public Class VERAGRibbon Private Sub Ribbon1_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load - cAllgemein.TESTSYSTEM = False + cAllgemein.TESTSYSTEM = True LOGIN_OK = AVISO_Mail_Functions.initFirmaUser() End Sub @@ -144,6 +144,7 @@ Public Class AVISO_Mail_Functions Dim SendungsId = -1 Dim Art = "" Dim kdNr = -1 + Dim enableOverwritting = False Dim ATTACHMENTS_LIST As New List(Of String) loadAttachment(mailItem, ATTACHMENTS_LIST) @@ -155,7 +156,7 @@ Public Class AVISO_Mail_Functions Dim Bezeichnung = strFileName Dim AvisoId = Nothing - AvisoId = getAvisoId(Bezeichnung, pdf_mail, SendungsId, Art, ATTACHMENTS_LIST, kdNr, sender) ' + AvisoId = getAvisoId(Bezeichnung, pdf_mail, SendungsId, Art, ATTACHMENTS_LIST, kdNr, sender, enableOverwritting) ' If AvisoId < 0 Then Exit Sub @@ -170,7 +171,7 @@ Public Class AVISO_Mail_Functions saveMailOnDatenserver(mailItem, AvisoId, Bezeichnung, sender,, kdNr) saveAttachmentOnDatenserver(ATTACHMENTS_LIST, AvisoId, BezAnhang, sender, kdNr) ElseIf pdf_mail = "ONLYPDF_DATENSERVER" Then - saveAttachmentOnDatenserver(ATTACHMENTS_LIST, AvisoId, BezAnhang, sender, kdNr) + saveAttachmentOnDatenserver(ATTACHMENTS_LIST, AvisoId, BezAnhang, sender, kdNr, enableOverwritting) ElseIf pdf_mail = "ONLYMAIL_DATENSERVER" Then saveMailOnDatenserver(mailItem, AvisoId, Bezeichnung, sender, , kdNr) Else 'ONLYMAIL @@ -418,7 +419,7 @@ Public Class AVISO_Mail_Functions End Try End Sub - Shared Sub saveAttachmentOnDatenserver(ByRef ATTACHMENTS_LIST As List(Of String), AvisoId As Integer, BezeichnungAnh As String, Optional sender As Object = Nothing, Optional kdNr As Integer = -1) + Shared Sub saveAttachmentOnDatenserver(ByRef ATTACHMENTS_LIST As List(Of String), AvisoId As Integer, BezeichnungAnh As String, Optional sender As Object = Nothing, Optional kdNr As Integer = -1, Optional enableOverwritting As Boolean = False) Try If AvisoId > 0 Then If ATTACHMENTS_LIST.Count > 1 Then BezeichnungAnh = "" ' nur wenn 1 Anhang wird die Bezeichnung übernommen. @@ -427,7 +428,7 @@ Public Class AVISO_Mail_Functions Dim Bezeichnung = BezeichnungAnh If Bezeichnung = "" Then Bezeichnung = fi.Name - uploadAttachments(sender, AvisoId, fi.FullName, Bezeichnung, kdNr) + uploadAttachments(sender, AvisoId, fi.FullName, Bezeichnung, kdNr, enableOverwritting) Next End If @@ -631,7 +632,7 @@ Public Class AVISO_Mail_Functions End Try End Sub - Shared Sub saveMailOnDatenserver(mailItem As Outlook.MailItem, AvisoId As Integer, Optional bezeichnung As String = "", Optional sender As Object = Nothing, Optional saveAttachments As Boolean = True, Optional kdNr As Integer = -1) + Shared Sub saveMailOnDatenserver(mailItem As Outlook.MailItem, AvisoId As Integer, Optional bezeichnung As String = "", Optional sender As Object = Nothing, Optional saveAttachments As Boolean = True, Optional kdNr As Integer = -1, Optional enableOverwritting As Boolean = False) Try If AvisoId > 0 Then @@ -642,7 +643,7 @@ Public Class AVISO_Mail_Functions mailItem.SaveAs(strTmpPath, Outlook.OlSaveAsType.olMSG) - uploadAttachments(sender, AvisoId, strTmpPath, bezeichnung, kdNr) + uploadAttachments(sender, AvisoId, strTmpPath, bezeichnung, kdNr, enableOverwritting) ' Clean up the temporary .MSG file from the user's temporary folder System.IO.File.Delete(strTmpPath) @@ -657,7 +658,7 @@ Public Class AVISO_Mail_Functions End Sub - Shared Function getAvisoId(ByRef Bezeichnung, ByRef pdf_mail, ByRef SendungsId, ByRef Art, ByRef Att, ByRef kdNr, ByVal sender) As Integer + Shared Function getAvisoId(ByRef Bezeichnung, ByRef pdf_mail, ByRef SendungsId, ByRef Art, ByRef Att, ByRef kdNr, ByVal sender, ByRef enableOverwritting) As Integer Select Case sender.name @@ -686,6 +687,7 @@ Public Class AVISO_Mail_Functions Bezeichnung = frmAvisoFormularAnfuegen.Bezeichnung pdf_mail = frmAvisoFormularAnfuegen.PDF_MAIL Att = frmAvisoFormularAnfuegen.ATT + enableOverwritting = frmAvisoFormularAnfuegen.enableOverwritting Return AvisoId @@ -700,7 +702,7 @@ Public Class AVISO_Mail_Functions - Shared Sub uploadAttachments(sender As Object, AvisoId As Integer, strTmpPath As String, Optional bezeichnung As String = "", Optional kdNr As Integer = -1) + Shared Sub uploadAttachments(sender As Object, AvisoId As Integer, strTmpPath As String, Optional bezeichnung As String = "", Optional kdNr As Integer = -1, Optional enableOverweriting As Boolean = False) If sender Is Nothing Then Exit Sub @@ -721,14 +723,13 @@ Public Class AVISO_Mail_Functions Else c.kdvm_emailId = DS.da_id End If - c.SAVE() End If Case "btnVertraege" Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "KD_VERTRÄGE", "", "", "", "KV_" & AvisoId, kdNr) - Dim path = DS.uploadDataToDATENSERVER(strTmpPath) + Dim path = DS.uploadDataToDATENSERVER(strTmpPath,,,,,, enableOverweriting) If path Then Dim KV As New VERAG_PROG_ALLGEMEIN.cKundenVertraege(AvisoId) KV.kv_datenarchivId = DS.da_id @@ -740,7 +741,7 @@ Public Class AVISO_Mail_Functions Dim gg As New VERAG_PROG_ALLGEMEIN.cGestellungsgarantien(AvisoId) Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "GESTELLUNGS_GARANTIEN", "", "", "", "GG_" & gg.gg_Zollamt, kdNr) - Dim path = DS.uploadDataToDATENSERVER(strTmpPath) + Dim path = DS.uploadDataToDATENSERVER(strTmpPath,,,,,, enableOverweriting) If path Then gg.gg_datenarchivId = DS.da_id gg.SAVE() From 4aa4d3e72def9c7ec911c1711183cd2bbc9a529b Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 18 Apr 2023 15:58:55 +0200 Subject: [PATCH 22/38] testsystem = false! --- VERAGAddIn/rbnVERAG.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index 4b40ca9..f743ce8 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -35,7 +35,7 @@ Public Class VERAGRibbon Private Sub Ribbon1_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load - cAllgemein.TESTSYSTEM = True + cAllgemein.TESTSYSTEM = False LOGIN_OK = AVISO_Mail_Functions.initFirmaUser() End Sub From 1464f51e928eb9154eca81b28a01433e34e528a2 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 18 Apr 2023 16:13:33 +0200 Subject: [PATCH 23/38] Bugfix --- VERAGAddIn/VERAGAddIn.vbproj | 2 +- VERAGAddIn/frmAvisoFormularAnfügen.vb | 15 +++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index 134007d..852f951 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -36,7 +36,7 @@ \\ftps.verag.ag\g\ftp\programme\VERAGAddin\ http://ftps.verag.ag/VERAGAddin/ de - 1.0.1.99 + 1.0.1.100 true true 0 diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.vb b/VERAGAddIn/frmAvisoFormularAnfügen.vb index 5ad5727..db82df0 100644 --- a/VERAGAddIn/frmAvisoFormularAnfügen.vb +++ b/VERAGAddIn/frmAvisoFormularAnfügen.vb @@ -160,6 +160,11 @@ Public Class frmAvisoFormularAnfuegen 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 @@ -205,12 +210,6 @@ Public Class frmAvisoFormularAnfuegen End If - - If Not checkMandatoryFields() Then - DialogResult = DialogResult.None - Exit Sub - End If - Select Case button.Name Case "btnVollmachten" @@ -229,7 +228,7 @@ Public Class frmAvisoFormularAnfuegen ElseIf UsrCntlVertraege1.dgvVertraege.SelectedRows.Count = 1 Then For Each row As DataGridViewRow In UsrCntlVertraege1.dgvVertraege.SelectedRows - If row.Cells("kv_datenarchivId").Value IsNot DBNull.Value Then + 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) @@ -266,7 +265,7 @@ Public Class frmAvisoFormularAnfuegen For Each row As DataGridViewRow In UsrCntlGestellungsgarantien1.dgvGestGarantie.SelectedRows - If row.Cells("gg_datenarchivId").Value IsNot DBNull.Value Then + 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) From 9252a2adc80be5ee747edb2efbab74f9f78db48e Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 20 Jun 2023 15:00:40 +0200 Subject: [PATCH 24/38] =?UTF-8?q?Formular=20einf=C3=BCgen=20nun=20auch=20b?= =?UTF-8?q?ei=20ge=C3=B6ffneter=20Mail=20m=C3=B6glich.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERAGAddIn/VERAGAddIn.vbproj | 2 +- VERAGAddIn/rbnMailItem.Designer.vb | 49 ++++++++++++++++++++++++++---- VERAGAddIn/rbnMailItem.vb | 13 ++++++++ VERAGAddIn/rbnVERAG.vb | 2 +- 4 files changed, 58 insertions(+), 8 deletions(-) diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index 852f951..7c15e41 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -36,7 +36,7 @@ \\ftps.verag.ag\g\ftp\programme\VERAGAddin\ http://ftps.verag.ag/VERAGAddin/ de - 1.0.1.100 + 1.0.1.102 true true 0 diff --git a/VERAGAddIn/rbnMailItem.Designer.vb b/VERAGAddIn/rbnMailItem.Designer.vb index fc0836f..65c2238 100644 --- a/VERAGAddIn/rbnMailItem.Designer.vb +++ b/VERAGAddIn/rbnMailItem.Designer.vb @@ -44,11 +44,15 @@ Me.components = New System.ComponentModel.Container() Me.Tab1 = Me.Factory.CreateRibbonTab Me.Group1 = Me.Factory.CreateRibbonGroup + Me.NotifyIcon1 = New System.Windows.Forms.NotifyIcon(Me.components) Me.Button1 = Me.Factory.CreateRibbonButton Me.btnAvisoMail2 = Me.Factory.CreateRibbonButton + Me.SplitButton1 = Me.Factory.CreateRibbonSplitButton + Me.btnVollmachten = Me.Factory.CreateRibbonButton + Me.btnVertraege = Me.Factory.CreateRibbonButton + Me.btnGestellungsgarantien = Me.Factory.CreateRibbonButton Me.btnInfo = Me.Factory.CreateRibbonButton Me.btnUnsichtbar = Me.Factory.CreateRibbonButton - Me.NotifyIcon1 = New System.Windows.Forms.NotifyIcon(Me.components) Me.Tab1.SuspendLayout() Me.Group1.SuspendLayout() Me.SuspendLayout() @@ -64,11 +68,17 @@ ' Me.Group1.Items.Add(Me.Button1) Me.Group1.Items.Add(Me.btnAvisoMail2) + Me.Group1.Items.Add(Me.SplitButton1) Me.Group1.Items.Add(Me.btnInfo) Me.Group1.Items.Add(Me.btnUnsichtbar) Me.Group1.Label = "AVISO" Me.Group1.Name = "Group1" ' + 'NotifyIcon1 + ' + Me.NotifyIcon1.Text = "NotifyIcon1" + Me.NotifyIcon1.Visible = True + ' 'Button1 ' Me.Button1.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge @@ -85,6 +95,34 @@ Me.btnAvisoMail2.Name = "btnAvisoMail2" Me.btnAvisoMail2.ShowImage = True ' + 'SplitButton1 + ' + Me.SplitButton1.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge + Me.SplitButton1.Image = Global.VERAGAddIn.My.Resources.Resources.pdf + Me.SplitButton1.Items.Add(Me.btnVollmachten) + Me.SplitButton1.Items.Add(Me.btnVertraege) + Me.SplitButton1.Items.Add(Me.btnGestellungsgarantien) + Me.SplitButton1.Label = "Formulare anhängen" + Me.SplitButton1.Name = "SplitButton1" + ' + 'btnVollmachten + ' + Me.btnVollmachten.Label = "Vollmachten" + Me.btnVollmachten.Name = "btnVollmachten" + Me.btnVollmachten.ShowImage = True + ' + 'btnVertraege + ' + Me.btnVertraege.Label = "Verträge/Unterlagen" + Me.btnVertraege.Name = "btnVertraege" + Me.btnVertraege.ShowImage = True + ' + 'btnGestellungsgarantien + ' + Me.btnGestellungsgarantien.Label = "Gestellungsgarantien" + Me.btnGestellungsgarantien.Name = "btnGestellungsgarantien" + Me.btnGestellungsgarantien.ShowImage = True + ' 'btnInfo ' Me.btnInfo.Label = "?" @@ -96,11 +134,6 @@ Me.btnUnsichtbar.Name = "btnUnsichtbar" Me.btnUnsichtbar.Visible = False ' - 'NotifyIcon1 - ' - Me.NotifyIcon1.Text = "NotifyIcon1" - Me.NotifyIcon1.Visible = True - ' 'rbnMailItem ' Me.Name = "rbnMailItem" @@ -123,6 +156,10 @@ Friend WithEvents btnInfo As Microsoft.Office.Tools.Ribbon.RibbonButton Friend WithEvents NotifyIcon1 As Windows.Forms.NotifyIcon Friend WithEvents btnUnsichtbar As Microsoft.Office.Tools.Ribbon.RibbonButton + Friend WithEvents SplitButton1 As Microsoft.Office.Tools.Ribbon.RibbonSplitButton + Friend WithEvents btnVollmachten As Microsoft.Office.Tools.Ribbon.RibbonButton + Friend WithEvents btnVertraege As Microsoft.Office.Tools.Ribbon.RibbonButton + Friend WithEvents btnGestellungsgarantien As Microsoft.Office.Tools.Ribbon.RibbonButton End Class Partial Class ThisRibbonCollection diff --git a/VERAGAddIn/rbnMailItem.vb b/VERAGAddIn/rbnMailItem.vb index 3eb0567..369cd0b 100644 --- a/VERAGAddIn/rbnMailItem.vb +++ b/VERAGAddIn/rbnMailItem.vb @@ -76,4 +76,17 @@ Public Class rbnMailItem ThisAddIn.MailChanged(sender, ThisMail) End If End Sub + + Private Sub Button3_Click(sender As Object, e As RibbonControlEventArgs) Handles btnVollmachten.Click, btnGestellungsgarantien.Click, btnVertraege.Click + If LOGIN_OK Then + Try + Dim INSPECTOR As Outlook.Inspector = e.Control.Context + AVISO_Mail_Functions.addMailToAviso(INSPECTOR.CurrentItem, sender) + 'Me.Context + Catch ex As Exception + MsgBox(ex.Message & ex.StackTrace) + End Try + End If + + End Sub End Class diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index f743ce8..e7ff14e 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -84,7 +84,7 @@ Public Class VERAGRibbon If connection.getValueTxtBySql("SELECT 1", "FMZOLL") = 1 Then Return True Else - MsgBox("ACHTUNG: Server nicht erreichbar!" & vbCrLf & "VERAG ADD In wird beendet") + MsgBox("ACHTUNG: Server nicht erreichbar!" & vbCrLf & "VERAG Addin wird beendet") Return False End If From 03e5c95cc7ab6e0d7799524d8ab289d6c369108d Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Mon, 26 Jun 2023 10:53:26 +0200 Subject: [PATCH 25/38] Sonderzeichen bei Datenserverupload werden nun entfernt. --- VERAGAddIn/frmAvisoAnfügen.Designer.vb | 14 ++++++++++++++ VERAGAddIn/frmAvisoAnfügen.vb | 1 + VERAGAddIn/rbnMailItem.Designer.vb | 8 ++++---- VERAGAddIn/rbnMailItem.vb | 3 ++- VERAGAddIn/rbnVERAG.vb | 18 ++++++++++++++---- 5 files changed, 35 insertions(+), 9 deletions(-) diff --git a/VERAGAddIn/frmAvisoAnfügen.Designer.vb b/VERAGAddIn/frmAvisoAnfügen.Designer.vb index 02fe3ac..0fcd84d 100644 --- a/VERAGAddIn/frmAvisoAnfügen.Designer.vb +++ b/VERAGAddIn/frmAvisoAnfügen.Designer.vb @@ -47,6 +47,7 @@ Partial Class frmAvisoAnfuegen Me.dgvAviso = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) Me.bttnSaveMail = New System.Windows.Forms.Button() Me.btnSaveAttachments = New System.Windows.Forms.Button() + Me.Label4 = New System.Windows.Forms.Label() CType(Me.dgvAnhaenge, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.dgvSendungen, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.dgvAviso, System.ComponentModel.ISupportInitialize).BeginInit() @@ -397,12 +398,24 @@ Partial Class frmAvisoAnfuegen Me.btnSaveAttachments.TextAlign = System.Drawing.ContentAlignment.MiddleRight Me.btnSaveAttachments.UseVisualStyleBackColor = True ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label4.ForeColor = System.Drawing.Color.Red + Me.Label4.Location = New System.Drawing.Point(530, 4) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(100, 20) + Me.Label4.TabIndex = 39 + Me.Label4.Text = "Testsystem" + ' 'frmAvisoAnfuegen ' 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(642, 797) + Me.Controls.Add(Me.Label4) Me.Controls.Add(Me.dgvAnhaenge) Me.Controls.Add(Me.cboArt) Me.Controls.Add(Me.Label3) @@ -461,4 +474,5 @@ Partial Class frmAvisoAnfuegen Friend WithEvents columnName As Windows.Forms.DataGridViewTextBoxColumn Friend WithEvents cbx As Windows.Forms.CheckBox Friend WithEvents CheckBox1 As Windows.Forms.CheckBox + Friend WithEvents Label4 As Windows.Forms.Label End Class diff --git a/VERAGAddIn/frmAvisoAnfügen.vb b/VERAGAddIn/frmAvisoAnfügen.vb index ff37789..d989c0f 100644 --- a/VERAGAddIn/frmAvisoAnfügen.vb +++ b/VERAGAddIn/frmAvisoAnfügen.vb @@ -20,6 +20,7 @@ Public Class frmAvisoAnfuegen Private Sub frmAvisoAnfügen_Load(sender As Object, e As EventArgs) Handles Me.Load txtBezeichnung.Text = Bezeichnung txtSrchDat.Text = Now.AddMonths(-1).ToShortDateString + Label4.Visible = VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM cboFiliale.fillWithSQL("SELECT FilialenNr, Grenzstelle FROM Filialen WHERE Fil_Status='A' ORDER BY FilialenNr ", True, "FMZOLL", True) txtLKWNr.Focus() diff --git a/VERAGAddIn/rbnMailItem.Designer.vb b/VERAGAddIn/rbnMailItem.Designer.vb index 65c2238..a5e9684 100644 --- a/VERAGAddIn/rbnMailItem.Designer.vb +++ b/VERAGAddIn/rbnMailItem.Designer.vb @@ -1,7 +1,7 @@ Partial Class rbnMailItem Inherits Microsoft.Office.Tools.Ribbon.RibbonBase - _ + Public Sub New(ByVal container As System.ComponentModel.IContainer) MyClass.New() @@ -12,7 +12,7 @@ End Sub - _ + Public Sub New() MyBase.New(Globals.Factory.GetRibbonFactory()) @@ -22,7 +22,7 @@ End Sub 'Die Komponente überschreibt den Löschvorgang zum Bereinigen der Komponentenliste. - _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) Try If disposing AndAlso components IsNot Nothing Then @@ -39,7 +39,7 @@ 'Hinweis: Die folgende Prozedur ist für den Komponenten-Designer erforderlich. 'Das Bearbeiten ist mit dem Komponenten-Designer möglich. 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. - _ + Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() Me.Tab1 = Me.Factory.CreateRibbonTab diff --git a/VERAGAddIn/rbnMailItem.vb b/VERAGAddIn/rbnMailItem.vb index 369cd0b..45d0e61 100644 --- a/VERAGAddIn/rbnMailItem.vb +++ b/VERAGAddIn/rbnMailItem.vb @@ -13,7 +13,8 @@ Public Class rbnMailItem Dim currentexplorer As Outlook.Explorer Private Sub rbnMailItem_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load - VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False + ' VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False + VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True LOGIN_OK = AVISO_Mail_Functions.initFirmaUser() currentexplorer = ThisAddIn.SharedExplorer diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index e7ff14e..b740f7d 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -12,6 +12,7 @@ Imports SDL Imports System.Net Imports System.Security.Policy Imports System.Diagnostics.Eventing.Reader +Imports System.Runtime.InteropServices.ComTypes Public Class VERAGRibbon Dim LOGIN_OK = False @@ -35,7 +36,8 @@ Public Class VERAGRibbon Private Sub Ribbon1_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load - cAllgemein.TESTSYSTEM = False + 'cAllgemein.TESTSYSTEM = False + cAllgemein.TESTSYSTEM = True LOGIN_OK = AVISO_Mail_Functions.initFirmaUser() End Sub @@ -138,6 +140,7 @@ Public Class AVISO_Mail_Functions Dim strFileName As String = "E-Mail" If mailItem.Subject IsNot Nothing AndAlso mailItem.Subject <> "" Then strFileName = Left(Regex.Replace(mailItem.Subject, "[\/\\\:\?!€,&'\*\<\>\|""]", ""), 100).Replace("""", "").Replace(vbTab, " ") & ".msg" + strFileName = VERAG_PROG_ALLGEMEIN.cDATENSERVER.replaceInvalidCahr(strFileName) End If 'Dim strFileName As String = "Mail.msg" Dim pdf_mail = "" @@ -602,8 +605,10 @@ Public Class AVISO_Mail_Functions Try If AvisoId > 0 Then ' The full path will place the email in the user's temporary folder - If bezeichnung = "" Then bezeichnung = Left(Regex.Replace(mailItem.Subject, "[\/\\\:\?\*\<\>\|""]", ""), 100).Replace("""", "").Replace(vbTab, " ") & ".msg" + + bezeichnung = VERAG_PROG_ALLGEMEIN.cDATENSERVER.replaceInvalidCahr(bezeichnung) + Dim strTmpPath As String = System.IO.Path.GetTempPath() & bezeichnung & If(bezeichnung.EndsWith(".msg"), "", ".msg") ' Save the email to the user's temp folder and convert it to a .MSG 'Dim cnt = 0 @@ -623,6 +628,7 @@ Public Class AVISO_Mail_Functions ' 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 @@ -636,9 +642,13 @@ Public Class AVISO_Mail_Functions 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") + If bezeichnung = "" Then + bezeichnung = Left(Regex.Replace(mailItem.Subject, "[\/\\\:\?\*\<\>\|""]", ""), 100).Replace("""", "").Replace(vbTab, " ") & ".msg" + End If + bezeichnung = VERAG_PROG_ALLGEMEIN.cDATENSERVER.replaceInvalidCahr(bezeichnung) + + Dim strTmpPath As String = System.IO.Path.GetTempPath() & bezeichnung & If(bezeichnung.EndsWith(".msg"), "", ".msg") mailItem.SaveAs(strTmpPath, Outlook.OlSaveAsType.olMSG) From 94260b0656cb550b538a33b5f0ecd8abfff4b7db Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 26 Sep 2023 08:51:48 +0200 Subject: [PATCH 26/38] Barsan-Implementation --- VERAGAddIn/VERAGAddIn.vbproj | 1 + VERAGAddIn/rbnVERAG.Designer.vb | 10 +++ VERAGAddIn/rbnVERAG.vb | 133 +++++++++++++++++++++++++++++++- 3 files changed, 143 insertions(+), 1 deletion(-) diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index 7c15e41..00b3356 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -172,6 +172,7 @@ + diff --git a/VERAGAddIn/rbnVERAG.Designer.vb b/VERAGAddIn/rbnVERAG.Designer.vb index 3d8b3cb..5662ff0 100644 --- a/VERAGAddIn/rbnVERAG.Designer.vb +++ b/VERAGAddIn/rbnVERAG.Designer.vb @@ -52,6 +52,7 @@ Me.btnGestellungsgarantien = Me.Factory.CreateRibbonButton Me.SplitButton1 = Me.Factory.CreateRibbonSplitButton Me.Button1 = Me.Factory.CreateRibbonButton + Me.Button3 = Me.Factory.CreateRibbonButton Me.Button4 = Me.Factory.CreateRibbonButton Me.Tab1.SuspendLayout() Me.VERAG.SuspendLayout() @@ -131,6 +132,7 @@ Me.SplitButton1.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge Me.SplitButton1.Image = Global.VERAGAddIn.My.Resources.Resources.wheel Me.SplitButton1.Items.Add(Me.Button1) + Me.SplitButton1.Items.Add(Me.Button3) Me.SplitButton1.Items.Add(Me.Button4) Me.SplitButton1.Label = "Spezielle Optionen" Me.SplitButton1.Name = "SplitButton1" @@ -142,6 +144,13 @@ Me.Button1.Name = "Button1" Me.Button1.ShowImage = True ' + 'Button3 + ' + Me.Button3.Image = Global.VERAGAddIn.My.Resources.Resources.pdf + Me.Button3.Label = "Barsan PDFs auslesen" + Me.Button3.Name = "Button3" + Me.Button3.ShowImage = True + ' 'Button4 ' Me.Button4.Label = "Info" @@ -173,6 +182,7 @@ Friend WithEvents btnVollmachten As Microsoft.Office.Tools.Ribbon.RibbonButton Friend WithEvents btnVertraege As Microsoft.Office.Tools.Ribbon.RibbonButton Friend WithEvents btnGestellungsgarantien As Microsoft.Office.Tools.Ribbon.RibbonButton + Friend WithEvents Button3 As Microsoft.Office.Tools.Ribbon.RibbonButton End Class Partial Class ThisRibbonCollection diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index b740f7d..430db2c 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -13,6 +13,11 @@ Imports System.Net Imports System.Security.Policy Imports System.Diagnostics.Eventing.Reader Imports System.Runtime.InteropServices.ComTypes +Imports System.Drawing +Imports System.Threading.Tasks +Imports System.Net.Http +Imports System.Diagnostics +Imports VERAG_PROG_ALLGEMEIN.Kleinma.Controls Public Class VERAGRibbon Dim LOGIN_OK = False @@ -93,6 +98,9 @@ Public Class VERAGRibbon End Function + Private Sub Button3_Click_1(sender As Object, e As RibbonControlEventArgs) Handles Button3.Click + If LOGIN_OK Then AVISO_Mail_Functions.newBarsanMAIL() + End Sub End Class Public Class AVISO_Mail_Functions @@ -156,6 +164,13 @@ Public Class AVISO_Mail_Functions getATT_EKOL(mailItem, ATTACHMENTS_LIST) End If End If + + If isMail_Barsan(mailItem) Then + If vbYes = MsgBox("Barsan-Anhänge laden?", vbYesNoCancel) Then + getATT_Barsan(mailItem, ATTACHMENTS_LIST) + End If + End If + Dim Bezeichnung = strFileName Dim AvisoId = Nothing @@ -240,6 +255,29 @@ Public Class AVISO_Mail_Functions MsgBox(ex.Message & ex.StackTrace) End Try End Sub + + Shared Sub newBarsanMAIL() + 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 + If mailItem IsNot Nothing Then + If AVISO_Mail_Functions.isMail_Barsan(mailItem) Then + Dim att = getATT_Barsan(mailItem) + 'Dim result As MsgBoxResult = MsgBox("Wollen Sie die " & att.Count & " Barsan - PDF's ausdrucken?", vbYesNoCancel) + 'If result = vbYes Then + ' VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaSpirePDF(att) + 'End If + End If + End If + + End If + Catch ex As Exception + MsgBox(ex.Message & ex.StackTrace) + End Try + End Sub Shared Function initFirmaUser() As Boolean Dim LOGIN_OK = False VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERAG" 'DEFAULT @@ -353,6 +391,12 @@ Public Class AVISO_Mail_Functions End If 'End If + If isMail_Barsan(mailItem) Then + If vbYes = MsgBox("Barsan-Anhänge laden?", vbYesNoCancel) Then + getATT_Barsan(mailItem, ATTACHMENTS_LIST) + End If + End If + loadAttachment(mailItem, ATTACHMENTS_LIST) @@ -544,6 +588,18 @@ Public Class AVISO_Mail_Functions Return False End Function + Shared Function isMail_Barsan(mailItem As Outlook.MailItem) As Boolean + Try + If mailItem IsNot Nothing Then + Dim srch As String = " 0 AndAlso l.Contains(""">") Then ' ENDE - Dim link = ("https://web01.ekol.com/documentservice/download/" & l.ToString.Substring(0, l.ToString.IndexOf(""">"))) + Dim link = ("https://web01.ekol.com/documentservice/download/" & l.ToString.Substring(0, l.ToString.IndexOf(""">") - 1)) 'Ansonten stüzt der Webservice-Aufruf ab! ABER -> For .NET 4.7 or later, the System.Net.ServicePointManager.SecurityProtocol should not be set manualy! System.Net.ServicePointManager.SecurityProtocol = System.Net.ServicePointManager.SecurityProtocol Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12 @@ -589,6 +645,81 @@ Public Class AVISO_Mail_Functions Return ATT End Function + + + Shared Function getATT_Barsan(mailItem As Outlook.MailItem, Optional ByRef ATT As List(Of String) = Nothing, Optional ByRef LKW_Nr As String = "", Optional ByRef RefNr As String = "", Optional ByRef INFO As String = "") As List(Of String) + If ATT Is Nothing Then ATT = New List(Of String) + Try + + If mailItem Is Nothing Then Return ATT + + Dim html = mailItem.HTMLBody + + Dim srch As String = " 0 AndAlso l.Contains(""">") Then ' ENDE + Dim link = ("https://portal.barsan.com/Dokuman/DokumanGoster.aspx" & l.ToString.Substring(0, l.ToString.IndexOf(""">"))) + + + 'Ansonten stüzt der Webservice-Aufruf ab! ABER -> For .NET 4.7 or later, the System.Net.ServicePointManager.SecurityProtocol should not be set manualy! + System.Net.ServicePointManager.SecurityProtocol = System.Net.ServicePointManager.SecurityProtocol Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12 + If l.ToString.ToLower().Contains(".pdf") Then + + Dim pdf = VERAG_PROG_ALLGEMEIN.cFormularManager.getPDFViaSpirePDF_FromURL(link) + 'Process.Start(pdf) + + + 'Dim client As New HttpClient() + + 'Try + + ' Dim response As HttpResponseMessage = Await client.GetAsync(link) + + ' response.EnsureSuccessStatusCode() + ' Dim responseBody As String = Await response.Content.ReadAsStringAsync() + ' Console.WriteLine(responseBody) + + ' Dim PDF = responseBody + 'Catch e As HttpRequestException + ' Console.WriteLine(vbLf & "Exception Caught!") + ' Console.WriteLine("Message :{0} ", e.Message) + 'End Try + + + + 'Dim TMP_PATH = GetTempFilePathWithExtension(".pdf") + + 'Dim TMP_PATH = VERAG_PROG_ALLGEMEIN.cFormularManager.getPDFViaSpirePDF_FromURL(res.ResponseUri.ToString) + + ''My.Computer.Network.DownloadFile(res.ResponseUri.ToString, TMP_PATH) + + If IO.File.Exists(pdf) Then + ATT.Add(pdf) + End If + End If + + End If + cnt += 1 + Next + End If + 'LKW_Nr = getEKOL_Var(html, "Position :") + 'RefNr = getEKOL_Var(html, "Truck :") + 'INFO = getEKOL_Var(html, "Route :") + + Catch ex As Exception + MsgBox(ex.Message & ex.StackTrace) + End Try + Return ATT + End Function + + Shared Function getEKOL_Var(html, varName, Optional splitTo = "
") If html.contains(varName) Then Dim split = html.split(varName) From 1b9023e3c3246cc2a9e8a30defb2a1c62edbe830 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 26 Sep 2023 11:40:02 +0200 Subject: [PATCH 27/38] Barsan PDF einlesen --- VERAGAddIn/rbnVERAG.Designer.vb | 1 + VERAGAddIn/rbnVERAG.vb | 30 ++---------------------------- 2 files changed, 3 insertions(+), 28 deletions(-) diff --git a/VERAGAddIn/rbnVERAG.Designer.vb b/VERAGAddIn/rbnVERAG.Designer.vb index 5662ff0..a9d18a4 100644 --- a/VERAGAddIn/rbnVERAG.Designer.vb +++ b/VERAGAddIn/rbnVERAG.Designer.vb @@ -150,6 +150,7 @@ Me.Button3.Label = "Barsan PDFs auslesen" Me.Button3.Name = "Button3" Me.Button3.ShowImage = True + Me.Button3.Visible = False ' 'Button4 ' diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index 430db2c..03390e7 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -664,7 +664,7 @@ Public Class AVISO_Mail_Functions ' Dim sp = html.ToString.Split(srch.ToString) Dim cnt = 0 For Each l In sp - If cnt > 0 AndAlso l.Contains(""">") Then ' ENDE + If cnt > 0 AndAlso l.Contains(""">") AndAlso cnt < 5 Then ' ENDE Dim link = ("https://portal.barsan.com/Dokuman/DokumanGoster.aspx" & l.ToString.Substring(0, l.ToString.IndexOf(""">"))) @@ -672,33 +672,7 @@ Public Class AVISO_Mail_Functions System.Net.ServicePointManager.SecurityProtocol = System.Net.ServicePointManager.SecurityProtocol Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12 If l.ToString.ToLower().Contains(".pdf") Then - Dim pdf = VERAG_PROG_ALLGEMEIN.cFormularManager.getPDFViaSpirePDF_FromURL(link) - 'Process.Start(pdf) - - - 'Dim client As New HttpClient() - - 'Try - - ' Dim response As HttpResponseMessage = Await client.GetAsync(link) - - ' response.EnsureSuccessStatusCode() - ' Dim responseBody As String = Await response.Content.ReadAsStringAsync() - ' Console.WriteLine(responseBody) - - ' Dim PDF = responseBody - 'Catch e As HttpRequestException - ' Console.WriteLine(vbLf & "Exception Caught!") - ' Console.WriteLine("Message :{0} ", e.Message) - 'End Try - - - - 'Dim TMP_PATH = GetTempFilePathWithExtension(".pdf") - - 'Dim TMP_PATH = VERAG_PROG_ALLGEMEIN.cFormularManager.getPDFViaSpirePDF_FromURL(res.ResponseUri.ToString) - - ''My.Computer.Network.DownloadFile(res.ResponseUri.ToString, TMP_PATH) + Dim pdf = VERAG_PROG_ALLGEMEIN.cFormularManager.getPDFViaSpirePDF_FromURLStream(link,, False) If IO.File.Exists(pdf) Then ATT.Add(pdf) From ff95183c4311496e24b3691045c0a3ddc3937972 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 26 Sep 2023 13:11:07 +0200 Subject: [PATCH 28/38] =?UTF-8?q?Anh=C3=A4nge=20=C3=B6ffnen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERAGAddIn/frmAvisoAnfügen.vb | 20 +++++++++++++++++++- VERAGAddIn/frmAvisoFormularAnfügen.vb | 19 ++++++++++++++++--- VERAGAddIn/rbnVERAG.vb | 6 +++++- 3 files changed, 40 insertions(+), 5 deletions(-) diff --git a/VERAGAddIn/frmAvisoAnfügen.vb b/VERAGAddIn/frmAvisoAnfügen.vb index d989c0f..3189c75 100644 --- a/VERAGAddIn/frmAvisoAnfügen.vb +++ b/VERAGAddIn/frmAvisoAnfügen.vb @@ -1,4 +1,5 @@ -Imports System.Windows.Forms +Imports System.Diagnostics +Imports System.Windows.Forms Public Class frmAvisoAnfuegen @@ -232,4 +233,21 @@ Public Class frmAvisoAnfuegen btnSaveAttachments.Enabled = False End If End Sub + + Private Sub dgvAnhaenge_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvAnhaenge.CellContentDoubleClick, dgvAnhaenge.CellDoubleClick + + Try + If dgvAnhaenge.SelectedRows.Count > 0 Then + If dgvAnhaenge.SelectedRows(0).Cells(0).Value <> "" Then + + Dim strTmpPath As String = System.IO.Path.GetTempPath() + Process.Start(strTmpPath & dgvAnhaenge.SelectedRows(0).Cells(0).Value) + + End If + End If + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + + End Sub End Class \ No newline at end of file diff --git a/VERAGAddIn/frmAvisoFormularAnfügen.vb b/VERAGAddIn/frmAvisoFormularAnfügen.vb index db82df0..feef333 100644 --- a/VERAGAddIn/frmAvisoFormularAnfügen.vb +++ b/VERAGAddIn/frmAvisoFormularAnfügen.vb @@ -1,5 +1,6 @@ Imports System.Collections Imports System.Data +Imports System.Diagnostics Imports System.Diagnostics.Tracing Imports System.Drawing Imports System.Net @@ -406,11 +407,9 @@ Public Class frmAvisoFormularAnfuegen Me.Size = New Size(frmDefaultSize.Width, frmDefaultSize.Height - addHeightfrm) dgvAnhaenge.Size = dgvAnhaengeSize End Select - - End If - dgvAnhaenge.ClearSelection() + dgvAnhaenge.ClearSelection() End Sub Private Function checkMandatoryFields() As Boolean @@ -469,4 +468,18 @@ Public Class frmAvisoFormularAnfuegen Next End Sub + Private Sub dgvAnhaenge_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvAnhaenge.CellDoubleClick, dgvAnhaenge.CellContentDoubleClick + Try + If dgvAnhaenge.SelectedRows.Count > 0 Then + If dgvAnhaenge.SelectedRows(0).Cells(0).Value <> "" Then + + Dim strTmpPath As String = System.IO.Path.GetTempPath() + Process.Start(strTmpPath & dgvAnhaenge.SelectedRows(0).Cells(0).Value) + + End If + End If + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + End Sub End Class \ No newline at end of file diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index 03390e7..916148d 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -167,7 +167,9 @@ Public Class AVISO_Mail_Functions If isMail_Barsan(mailItem) Then If vbYes = MsgBox("Barsan-Anhänge laden?", vbYesNoCancel) Then + getATT_Barsan(mailItem, ATTACHMENTS_LIST) + End If End If @@ -648,6 +650,7 @@ Public Class AVISO_Mail_Functions Shared Function getATT_Barsan(mailItem As Outlook.MailItem, Optional ByRef ATT As List(Of String) = Nothing, Optional ByRef LKW_Nr As String = "", Optional ByRef RefNr As String = "", Optional ByRef INFO As String = "") As List(Of String) + If ATT Is Nothing Then ATT = New List(Of String) Try @@ -664,7 +667,7 @@ Public Class AVISO_Mail_Functions ' Dim sp = html.ToString.Split(srch.ToString) Dim cnt = 0 For Each l In sp - If cnt > 0 AndAlso l.Contains(""">") AndAlso cnt < 5 Then ' ENDE + If cnt > 0 AndAlso l.Contains(""">") Then ' ENDE Dim link = ("https://portal.barsan.com/Dokuman/DokumanGoster.aspx" & l.ToString.Substring(0, l.ToString.IndexOf(""">"))) @@ -676,6 +679,7 @@ Public Class AVISO_Mail_Functions If IO.File.Exists(pdf) Then ATT.Add(pdf) + Return ATT End If End If From c603b3a90dbcab36ac14f35602c8e794084bfb93 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 27 Sep 2023 13:16:15 +0200 Subject: [PATCH 29/38] AddIn --- VERAGAddIn.sln | 4 ++-- VERAGAddIn/rbnVERAG.vb | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/VERAGAddIn.sln b/VERAGAddIn.sln index 9643e1b..96171cd 100644 --- a/VERAGAddIn.sln +++ b/VERAGAddIn.sln @@ -61,8 +61,8 @@ Global {5B947A66-009A-4BB6-B925-F84A01045095}.Release|x86.Build.0 = Release|Any CPU {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|Any CPU.ActiveCfg = Debug|x64 {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|Any CPU.Build.0 = Debug|x64 - {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|Mixed Platforms.ActiveCfg = Debug|x64 - {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|Mixed Platforms.Build.0 = Debug|x64 + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|Mixed Platforms.Build.0 = Debug|x86 {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|x64.ActiveCfg = Debug|x64 {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|x64.Build.0 = Debug|x64 {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|x86.ActiveCfg = Debug|x86 diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index 916148d..bf5fef2 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -679,7 +679,6 @@ Public Class AVISO_Mail_Functions If IO.File.Exists(pdf) Then ATT.Add(pdf) - Return ATT End If End If From e77f69d07bc2866037bc4c7bacb015c0f7433b27 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 27 Sep 2023 15:13:16 +0200 Subject: [PATCH 30/38] veragAddIn --- VERAGAddIn/VERAGAddIn.vbproj | 2 +- VERAGAddIn/rbnVERAG.vb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index 00b3356..0b6b042 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -36,7 +36,7 @@ \\ftps.verag.ag\g\ftp\programme\VERAGAddin\ http://ftps.verag.ag/VERAGAddin/ de - 1.0.1.102 + 1.0.1.103 true true 0 diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index bf5fef2..c2fad50 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -41,8 +41,8 @@ Public Class VERAGRibbon Private Sub Ribbon1_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load - 'cAllgemein.TESTSYSTEM = False - cAllgemein.TESTSYSTEM = True + cAllgemein.TESTSYSTEM = False + 'cAllgemein.TESTSYSTEM = True LOGIN_OK = AVISO_Mail_Functions.initFirmaUser() End Sub From f8cf06a444030ea7d30c026f94189d6a54e39eba Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Thu, 28 Sep 2023 08:44:59 +0200 Subject: [PATCH 31/38] update versionnr --- VERAGAddIn/VERAGAddIn.vbproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index 0b6b042..d87eaf1 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -36,7 +36,7 @@ \\ftps.verag.ag\g\ftp\programme\VERAGAddin\ http://ftps.verag.ag/VERAGAddin/ de - 1.0.1.103 + 1.0.1.104 true true 0 From 106a4e2e35ce2ad6a8175ac589b5d6bce311517e Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Thu, 28 Sep 2023 09:16:23 +0200 Subject: [PATCH 32/38] testsystem = false --- VERAGAddIn/rbnMailItem.Designer.vb | 12 ++++++------ VERAGAddIn/rbnMailItem.vb | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/VERAGAddIn/rbnMailItem.Designer.vb b/VERAGAddIn/rbnMailItem.Designer.vb index a5e9684..7e2ad2d 100644 --- a/VERAGAddIn/rbnMailItem.Designer.vb +++ b/VERAGAddIn/rbnMailItem.Designer.vb @@ -44,7 +44,6 @@ Me.components = New System.ComponentModel.Container() Me.Tab1 = Me.Factory.CreateRibbonTab Me.Group1 = Me.Factory.CreateRibbonGroup - Me.NotifyIcon1 = New System.Windows.Forms.NotifyIcon(Me.components) Me.Button1 = Me.Factory.CreateRibbonButton Me.btnAvisoMail2 = Me.Factory.CreateRibbonButton Me.SplitButton1 = Me.Factory.CreateRibbonSplitButton @@ -53,6 +52,7 @@ Me.btnGestellungsgarantien = Me.Factory.CreateRibbonButton Me.btnInfo = Me.Factory.CreateRibbonButton Me.btnUnsichtbar = Me.Factory.CreateRibbonButton + Me.NotifyIcon1 = New System.Windows.Forms.NotifyIcon(Me.components) Me.Tab1.SuspendLayout() Me.Group1.SuspendLayout() Me.SuspendLayout() @@ -74,11 +74,6 @@ Me.Group1.Label = "AVISO" Me.Group1.Name = "Group1" ' - 'NotifyIcon1 - ' - Me.NotifyIcon1.Text = "NotifyIcon1" - Me.NotifyIcon1.Visible = True - ' 'Button1 ' Me.Button1.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge @@ -134,6 +129,11 @@ Me.btnUnsichtbar.Name = "btnUnsichtbar" Me.btnUnsichtbar.Visible = False ' + 'NotifyIcon1 + ' + Me.NotifyIcon1.Text = "NotifyIcon1" + Me.NotifyIcon1.Visible = True + ' 'rbnMailItem ' Me.Name = "rbnMailItem" diff --git a/VERAGAddIn/rbnMailItem.vb b/VERAGAddIn/rbnMailItem.vb index 45d0e61..1e963c3 100644 --- a/VERAGAddIn/rbnMailItem.vb +++ b/VERAGAddIn/rbnMailItem.vb @@ -13,8 +13,8 @@ Public Class rbnMailItem Dim currentexplorer As Outlook.Explorer Private Sub rbnMailItem_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load - ' VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False - VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True + VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False + 'VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True LOGIN_OK = AVISO_Mail_Functions.initFirmaUser() currentexplorer = ThisAddIn.SharedExplorer From 89a5cf2cdeaec32c5656d999968ed04ac2ae064f Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Fri, 20 Oct 2023 09:26:57 +0200 Subject: [PATCH 33/38] Barsan-Mails --- VERAGAddIn/VERAGAddIn.vbproj | 2 +- VERAGAddIn/frmAvisoAnfügen.vb | 6 ++- VERAGAddIn/rbnVERAG.vb | 69 +++++++++++++++++++++++++---------- 3 files changed, 55 insertions(+), 22 deletions(-) diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index d87eaf1..8f5c219 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -36,7 +36,7 @@ \\ftps.verag.ag\g\ftp\programme\VERAGAddin\ http://ftps.verag.ag/VERAGAddin/ de - 1.0.1.104 + 1.0.1.105 true true 0 diff --git a/VERAGAddIn/frmAvisoAnfügen.vb b/VERAGAddIn/frmAvisoAnfügen.vb index 3189c75..1153803 100644 --- a/VERAGAddIn/frmAvisoAnfügen.vb +++ b/VERAGAddIn/frmAvisoAnfügen.vb @@ -7,14 +7,16 @@ Public Class frmAvisoAnfuegen Public SendungsId = -1 Public Bezeichnung = "" Public PDF_MAIL = "" + Public Art = "" Public ATT As List(Of String) - Sub New(Bezeichnung) + Sub New(Bezeichnung, Art) ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() Me.Bezeichnung = Bezeichnung + Me.Art = Art ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. End Sub @@ -42,7 +44,9 @@ Public Class frmAvisoAnfuegen cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ATB-Nr", "ATB")) cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ATA-Nr", "ATA")) cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Sonstiges", "Sonstiges")) + cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Bordro", "Bordro")) + If Art <> "" Then cboArt.changeItem(Art) initAttachment() End Sub diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index c2fad50..31e3081 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -18,6 +18,7 @@ Imports System.Threading.Tasks Imports System.Net.Http Imports System.Diagnostics Imports VERAG_PROG_ALLGEMEIN.Kleinma.Controls +Imports System.Data.Odbc Public Class VERAGRibbon Dim LOGIN_OK = False @@ -160,17 +161,11 @@ Public Class AVISO_Mail_Functions loadAttachment(mailItem, ATTACHMENTS_LIST) If isMail_EKOL(mailItem) Then - If vbYes = MsgBox("EKOL-Anhänge laden?", vbYesNoCancel) Then - getATT_EKOL(mailItem, ATTACHMENTS_LIST) - End If + If vbYes = MsgBox("EKOL-Anhänge laden?", vbYesNoCancel) Then getATT_EKOL(mailItem, ATTACHMENTS_LIST) End If If isMail_Barsan(mailItem) Then - If vbYes = MsgBox("Barsan-Anhänge laden?", vbYesNoCancel) Then - - getATT_Barsan(mailItem, ATTACHMENTS_LIST) - - End If + If vbYes = MsgBox("Barsan-Anhänge laden?", vbYesNoCancel) Then getATT_Barsan(mailItem, ATTACHMENTS_LIST, Art) End If Dim Bezeichnung = strFileName @@ -374,6 +369,7 @@ Public Class AVISO_Mail_Functions 'MsgBox(mailItem.To) 'MsgBox(mailItem.) 'MsgBox(getFirmaFromToMail(mailItem.To)) + Dim art = "" EingangsDatum = mailItem.ReceivedTime Dim senderMail = "" @@ -387,16 +383,12 @@ Public Class AVISO_Mail_Functions KundenNr = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getKdNrFromMailAdress(senderMail, False) ' false, wenn mehrere Niederlassungen von Frimen im KdStamm vorhanden... falsche KdNr... If isMail_EKOL(mailItem) Then - If vbYes = MsgBox("EKOL-Anhänge laden?", vbYesNoCancel) Then - getATT_EKOL(mailItem, ATTACHMENTS_LIST) - End If + If vbYes = MsgBox("EKOL-Anhänge laden?", vbYesNoCancel) Then getATT_EKOL(mailItem, ATTACHMENTS_LIST) End If 'End If If isMail_Barsan(mailItem) Then - If vbYes = MsgBox("Barsan-Anhänge laden?", vbYesNoCancel) Then - getATT_Barsan(mailItem, ATTACHMENTS_LIST) - End If + If vbYes = MsgBox("Barsan-Anhänge laden?", vbYesNoCancel) Then getATT_Barsan(mailItem, ATTACHMENTS_LIST, art) End If @@ -421,7 +413,7 @@ Public Class AVISO_Mail_Functions If VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID > 0 Then - saveAttachment(ATTACHMENTS_LIST, VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID, -1, "", "") + saveAttachment(ATTACHMENTS_LIST, VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID, -1, art, "") saveMail(mailItem, VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID,, False) End If @@ -649,7 +641,7 @@ Public Class AVISO_Mail_Functions - Shared Function getATT_Barsan(mailItem As Outlook.MailItem, Optional ByRef ATT As List(Of String) = Nothing, Optional ByRef LKW_Nr As String = "", Optional ByRef RefNr As String = "", Optional ByRef INFO As String = "") As List(Of String) + Shared Function getATT_Barsan(mailItem As Outlook.MailItem, Optional ByRef ATT As List(Of String) = Nothing, Optional ByRef art As String = "") As List(Of String) If ATT Is Nothing Then ATT = New List(Of String) Try @@ -657,8 +649,11 @@ Public Class AVISO_Mail_Functions If mailItem Is Nothing Then Return ATT Dim html = mailItem.HTMLBody + html = html.Replace("", "") + html = html.Replace("", "") + html = html.Replace("", "") - Dim srch As String = "
0 AndAlso l.Contains(""">") Then ' ENDE - Dim link = ("https://portal.barsan.com/Dokuman/DokumanGoster.aspx" & l.ToString.Substring(0, l.ToString.IndexOf(""">"))) + + Dim lastIndexLink = l.ToString.IndexOf(linkinHTML) + linkinHTML.Length + Dim link = ("https://portal.barsan.com/Dokuman/DokumanGoster.aspx" & l.ToString.Substring(lastIndexLink, l.ToString.IndexOf(""">") - lastIndexLink)) 'Ansonten stüzt der Webservice-Aufruf ab! ABER -> For .NET 4.7 or later, the System.Net.ServicePointManager.SecurityProtocol should not be set manualy! System.Net.ServicePointManager.SecurityProtocol = System.Net.ServicePointManager.SecurityProtocol Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12 If l.ToString.ToLower().Contains(".pdf") Then - Dim pdf = VERAG_PROG_ALLGEMEIN.cFormularManager.getPDFViaSpirePDF_FromURLStream(link,, False) + Dim pdfNameOrigin As String = "" + Dim pdfStringName = l.ToString.ToLower().Substring(0, l.ToString.IndexOf(linkinHTML) - 1).Trim() + Dim pdfNamefromFile = l.ToString.ToLower().Substring(l.ToString.IndexOf(""">") + 2, l.ToString.IndexOf(".pdf") - l.ToString.IndexOf(""">") + 2).Trim() + pdfNamefromFile = pdfNamefromFile.Replace(".pdf", "") + Dim numName As Boolean = False + + + For Each x As Char In pdfStringName + If Char.IsDigit(x) Then + pdfNameOrigin &= x + numName = True + Else + Exit For + End If + Next + If lastPdfName <> "" AndAlso lastPdfName = pdfNameOrigin Then + pdfNameWithCounter = pdfNameOrigin & "_" & counter + counter = counter + 1 + Else + If pdfNameWithCounter <> "" Then + counter = 1 + pdfNameWithCounter = "" + End If + End If + + Dim pdf = VERAG_PROG_ALLGEMEIN.cFormularManager.getPDFViaSpirePDF_FromURLStream(link, IIf(pdfNameWithCounter <> "", pdfNameWithCounter, IIf(numName = False, pdfNamefromFile, pdfNameOrigin)),, False) + If pdfNameOrigin <> "" Then lastPdfName = pdfNameOrigin If IO.File.Exists(pdf) Then ATT.Add(pdf) End If + If pdfNamefromFile.ToLower.Contains("bordro") Then art = "Bordro" End If End If @@ -781,7 +810,7 @@ Public Class AVISO_Mail_Functions Select Case sender.name Case "btnAvisoMail", "btnAvisoMail2" - Dim frmAvisoAnfügen As New frmAvisoAnfuegen(Bezeichnung) + Dim frmAvisoAnfügen As New frmAvisoAnfuegen(Bezeichnung, Art) frmAvisoAnfügen.ATT = Att If frmAvisoAnfügen.ShowDialog = DialogResult.OK Then Dim AvisoId = frmAvisoAnfügen.AvisoId From e7b76a1a2b3353b3ce59b53b9d075e1a340eaebf Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Fri, 20 Oct 2023 10:34:50 +0200 Subject: [PATCH 34/38] commit --- VERAGAddIn/VERAGAddIn.vbproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index 8f5c219..ef23ce4 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -36,7 +36,7 @@ \\ftps.verag.ag\g\ftp\programme\VERAGAddin\ http://ftps.verag.ag/VERAGAddin/ de - 1.0.1.105 + 1.0.1.106 true true 0 From 377ce0fc9e2f98490e01e00d621732af4953f064 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Fri, 20 Oct 2023 10:48:22 +0200 Subject: [PATCH 35/38] AddIn Commit --- VERAGAddIn.sln | 4 ++-- VERAGAddIn/VERAGAddIn.vbproj | 9 +++------ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/VERAGAddIn.sln b/VERAGAddIn.sln index 96171cd..9643e1b 100644 --- a/VERAGAddIn.sln +++ b/VERAGAddIn.sln @@ -61,8 +61,8 @@ Global {5B947A66-009A-4BB6-B925-F84A01045095}.Release|x86.Build.0 = Release|Any CPU {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|Any CPU.ActiveCfg = Debug|x64 {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|Any CPU.Build.0 = Debug|x64 - {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|Mixed Platforms.ActiveCfg = Debug|x64 + {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|Mixed Platforms.Build.0 = Debug|x64 {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|x64.ActiveCfg = Debug|x64 {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|x64.Build.0 = Debug|x64 {E4190547-B222-4AE3-A0BE-A44EAEE70335}.Debug|x86.ActiveCfg = Debug|x86 diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index ef23ce4..194fc8f 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -158,9 +158,6 @@ --> - - ..\..\..\Aviso\AVISO\Aviso\bin\Debug\AVISO.exe - False ..\..\..\ADMIN\ADMIN\DAKOSY_Worker\bin\Debug\DAKOSY_Worker.dll @@ -352,9 +349,9 @@ - - {289bcd77-bc00-4ba1-95ed-a79176d99525} - SDL + + {7bdd8c2f-2c9e-49f1-a365-3b1da1c84991} + Aviso From 4ec1b3f811b5a2d7e847b02fbb0bebc492f9ea37 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Mon, 23 Oct 2023 08:51:47 +0200 Subject: [PATCH 36/38] commit addIn --- VERAGAddIn.sln | 12 ++--- VERAGAddIn/My Project/app.manifest | 79 ++++++++++++++++++++++++++++++ VERAGAddIn/VERAGAddIn.vbproj | 29 ++++++----- 3 files changed, 102 insertions(+), 18 deletions(-) create mode 100644 VERAGAddIn/My Project/app.manifest diff --git a/VERAGAddIn.sln b/VERAGAddIn.sln index 9643e1b..fcc56e6 100644 --- a/VERAGAddIn.sln +++ b/VERAGAddIn.sln @@ -5,17 +5,17 @@ VisualStudioVersion = 17.3.32825.248 MinimumVisualStudioVersion = 10.0.40219.1 Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VERAGAddIn", "VERAGAddIn\VERAGAddIn.vbproj", "{D579F7A6-7D29-4295-B382-DA5F7EFB4528}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "TELOTEC_Worker_lib", "..\..\ADMIN\ADMIN\TELOTEK_Worker_lib\TELOTEC_Worker_lib.vbproj", "{5B947A66-009A-4BB6-B925-F84A01045095}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "TELOTEC_Worker_lib", "..\ADMIN\ADMIN\TELOTEK_Worker_lib\TELOTEC_Worker_lib.vbproj", "{5B947A66-009A-4BB6-B925-F84A01045095}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Parkzeit", "..\..\Parkzeit\Parkzeit\Parkzeit\Parkzeit.vbproj", "{E4190547-B222-4AE3-A0BE-A44EAEE70335}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Parkzeit", "..\Parkzeit\Parkzeit\Parkzeit\Parkzeit.vbproj", "{E4190547-B222-4AE3-A0BE-A44EAEE70335}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SDL", "..\..\SDL\SDL\SDL\SDL.vbproj", "{289BCD77-BC00-4BA1-95ED-A79176D99525}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SDL", "..\SDL\SDL\SDL\SDL.vbproj", "{289BCD77-BC00-4BA1-95ED-A79176D99525}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Aviso", "..\..\Aviso\AVISO\Aviso\Aviso.vbproj", "{7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Aviso", "..\Aviso\AVISO\Aviso\Aviso.vbproj", "{7BDD8C2F-2C9E-49F1-A365-3B1DA1C84991}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Gemeinsames", "..\..\Aviso\AVISO\Gemeinsames\Gemeinsames.vbproj", "{110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Gemeinsames", "..\Aviso\AVISO\Gemeinsames\Gemeinsames.vbproj", "{110C923B-CB02-4FD0-AF24-95E0F0EEEFF5}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VERAG_PROG_ALLGEMEIN", "..\..\SDL\SDL\VERAG_PROG_ALLGEMEIN\VERAG_PROG_ALLGEMEIN.vbproj", "{A3B497BD-842C-4A2B-B398-ED1976849DF1}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VERAG_PROG_ALLGEMEIN", "..\SDL\SDL\VERAG_PROG_ALLGEMEIN\VERAG_PROG_ALLGEMEIN.vbproj", "{A3B497BD-842C-4A2B-B398-ED1976849DF1}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/VERAGAddIn/My Project/app.manifest b/VERAGAddIn/My Project/app.manifest new file mode 100644 index 0000000..0a605c3 --- /dev/null +++ b/VERAGAddIn/My Project/app.manifest @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index 194fc8f..c9290ac 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -158,13 +158,6 @@ --> - - False - ..\..\..\ADMIN\ADMIN\DAKOSY_Worker\bin\Debug\DAKOSY_Worker.dll - - - ..\..\..\Aviso\AVISO\Gemeinsames\bin\x64\Debug\Gemeinsames.dll - @@ -175,9 +168,8 @@ - - False - ..\..\..\SDL\SDL\VERAG_PROG_ALLGEMEIN\bin\Debug\VERAG_PROG_ALLGEMEIN.dll + + ..\..\SDL\SDL\SDL\bin\Debug\VERAG_PROG_ALLGEMEIN.dll @@ -301,6 +293,7 @@ True + @@ -349,10 +342,22 @@ - + + {5b947a66-009a-4bb6-b925-f84a01045095} + TELOTEC_Worker_lib + + {7bdd8c2f-2c9e-49f1-a365-3b1da1c84991} Aviso + + {110c923b-cb02-4fd0-af24-95e0f0eeeff5} + Gemeinsames + + + {289BCD77-BC00-4BA1-95ED-A79176D99525} + SDL + 10.0 @@ -387,7 +392,7 @@ false - Ich habe keine Ahnung, was ich hier mache.pfx + VeragAddIn_tempKey.pfx From c0222e4c0fd71959f893d9f1762c14d92fa6fdf9 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Mon, 23 Oct 2023 09:13:00 +0200 Subject: [PATCH 37/38] Release x64 delete --- VERAGAddIn/VERAGAddIn.vbproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index c9290ac..2f0a9e8 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -36,7 +36,7 @@ \\ftps.verag.ag\g\ftp\programme\VERAGAddin\ http://ftps.verag.ag/VERAGAddin/ de - 1.0.1.106 + 1.0.1.107 true true 0 From cb395acdec2fa6288005747539beeb6efee17757 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 24 Oct 2023 16:18:04 +0200 Subject: [PATCH 38/38] currentVersionNr bei Info wird angegeben. --- VERAGAddIn/VERAGAddIn.vbproj | 2 +- VERAGAddIn/rbnVERAG.vb | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index 2f0a9e8..f2046e0 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -36,7 +36,7 @@ \\ftps.verag.ag\g\ftp\programme\VERAGAddin\ http://ftps.verag.ag/VERAGAddin/ de - 1.0.1.107 + 1.0.1.108 true true 0 diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index 31e3081..2399fb3 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -19,6 +19,7 @@ Imports System.Net.Http Imports System.Diagnostics Imports VERAG_PROG_ALLGEMEIN.Kleinma.Controls Imports System.Data.Odbc +Imports System.Reflection Public Class VERAGRibbon Dim LOGIN_OK = False @@ -57,7 +58,7 @@ Public Class VERAGRibbon Private Sub Button4_Click(sender As Object, e As RibbonControlEventArgs) Handles Button4.Click Try - MsgBox(System.Security.Principal.WindowsIdentity.GetCurrent().Name) + MsgBox("User: " & System.Security.Principal.WindowsIdentity.GetCurrent().Name & vbNewLine & "Version: " & Assembly.GetExecutingAssembly().GetName().Version.ToString) Catch ex As Exception End Try End Sub