diff --git a/SDL/Fakturierung/cFakturierung.vb b/SDL/Fakturierung/cFakturierung.vb index a3a069cb..21cd649c 100644 --- a/SDL/Fakturierung/cFakturierung.vb +++ b/SDL/Fakturierung/cFakturierung.vb @@ -940,7 +940,7 @@ Public Class cFakturierung If FIRMA.Firma_ID = 1 Then rpt.lblFirma.Text &= vbNewLine & "D-94152 Neuhaus/Inn, Hartham 6" - If FIRMA.Firma_ID = 19 Then rpt.lblFirma.Text &= vbNewLine & "VERAG Spedition GmbH, Hartham 6, D-94152 Neuhaus/Inn" + 'If FIRMA.Firma_ID = 19 Then rpt.lblFirma.Text &= vbNewLine & "VERAG Spedition GmbH, Hartham 6, D-94152 Neuhaus/Inn" rpt.lblFirmenbuch.Text = If(FIRMA.Firma_Firmenbuch, "").ToString.Replace("Firmenbuch:", "").Trim @@ -3573,10 +3573,14 @@ Public Class cFakturierung Case Else : rpt.lblUeberschriftRG_GS.Text &= " - KOPIE" : imageForWatermark = My.Resources.ungueltig_de End Select - If Rechnugnsdruck = 7 Then 'nur bei "Vorschaudruck" - rpt.Watermark = imageForWatermark - rpt.WatermarkSizeMode = GrapeCity.ActiveReports.SectionReportModel.SizeModes.Zoom + If False Then 'deaktiviert weil nun doch nicht benötigt + If Rechnugnsdruck = 7 Then 'nur bei "Vorschaudruck" + rpt.Watermark = imageForWatermark + rpt.WatermarkSizeMode = GrapeCity.ActiveReports.SectionReportModel.SizeModes.Zoom + End If + End If + End If diff --git a/SDL/My Project/AssemblyInfo.vb b/SDL/My Project/AssemblyInfo.vb index e33bba71..0db2941f 100644 --- a/SDL/My Project/AssemblyInfo.vb +++ b/SDL/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + + diff --git a/SDL/SDL.vbproj b/SDL/SDL.vbproj index 09374203..6fff7feb 100644 --- a/SDL/SDL.vbproj +++ b/SDL/SDL.vbproj @@ -868,6 +868,12 @@ Form + + frmMDMLieferantenrechnungen.vb + + + Form + rptIDS_Anhang.vb @@ -1066,6 +1072,12 @@ Form + + ustCntlUSTV_ErstattungPosition .vb + + + UserControl + ustCntlUSTV_AntragPosition.vb @@ -3373,6 +3385,9 @@ frmDatumsabfrage.vb + + frmMDMLieferantenrechnungen.vb + frmPLOSE_ProductCodes.vb @@ -3470,6 +3485,9 @@ frmNacherfassungEndEmpfaenger.vb + + ustCntlUSTV_ErstattungPosition .vb + ustCntlUSTV_AntragPosition.vb @@ -4007,6 +4025,7 @@ usrCntlKundenuebersicht.vb + Designer frmVorauskasse.vb diff --git a/SDL/USTV/frmMDM_USTVAntrag.Designer.vb b/SDL/USTV/frmMDM_USTVAntrag.Designer.vb index 07440f1d..db99017e 100644 --- a/SDL/USTV/frmMDM_USTVAntrag.Designer.vb +++ b/SDL/USTV/frmMDM_USTVAntrag.Designer.vb @@ -24,16 +24,19 @@ Partial Class frmMDM_USTVAntrag Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMDM_USTVAntrag)) - Me.Panel3 = New System.Windows.Forms.Panel() + Me.pnlBottom = New System.Windows.Forms.Panel() Me.picPDF = New System.Windows.Forms.PictureBox() Me.btnMail = New System.Windows.Forms.Button() Me.btnAntrageeinarbeiten = New System.Windows.Forms.Button() Me.cbxArchivierteEintracheNochmalsEinarbetien = New System.Windows.Forms.CheckBox() Me.Button1 = New System.Windows.Forms.Button() Me.lbl_EintrageVerarbetiet = New System.Windows.Forms.Label() - Me.Panel1 = New System.Windows.Forms.Panel() - Me.lblWarnung = New System.Windows.Forms.Label() + Me.pnlHeader = New System.Windows.Forms.Panel() + Me.lblGesamtUSteuer = New System.Windows.Forms.Label() + Me.lblDiffernezbetrag = New System.Windows.Forms.Label() + Me.lblGesamtErstattung = New System.Windows.Forms.Label() Me.KdSearchBox1 = New VERAG_PROG_ALLGEMEIN.KdSearchBox() Me.cboAntragArt = New VERAG_PROG_ALLGEMEIN.MyComboBox() Me.lblKdNr = New System.Windows.Forms.Label() @@ -41,7 +44,7 @@ Partial Class frmMDM_USTVAntrag Me.cbxLand = New VERAG_PROG_ALLGEMEIN.MyComboBox() Me.lblLand = New System.Windows.Forms.Label() Me.Panel8 = New System.Windows.Forms.Panel() - Me.lblMWSTAbrechnung = New System.Windows.Forms.Label() + Me.lblMWSTAntrag = New System.Windows.Forms.Label() Me.Label13 = New System.Windows.Forms.Label() Me.txtGueltig = New VERAG_PROG_ALLGEMEIN.MyTextBox() Me.Label11 = New System.Windows.Forms.Label() @@ -63,11 +66,11 @@ Partial Class frmMDM_USTVAntrag Me.txtVon = New VERAG_PROG_ALLGEMEIN.MyTextBox() Me.txtBis = New VERAG_PROG_ALLGEMEIN.MyTextBox() Me.Panel6 = New System.Windows.Forms.Panel() - Me.lblGesamtUSteuer = New System.Windows.Forms.Label() + Me.lblGesamtUSteuerFW = New System.Windows.Forms.Label() Me.Label12 = New System.Windows.Forms.Label() - Me.lblDiffernezbetrag = New System.Windows.Forms.Label() + Me.lblDiffernezbetragFW = New System.Windows.Forms.Label() Me.Label10 = New System.Windows.Forms.Label() - Me.lblGesamtErstattung = New System.Windows.Forms.Label() + Me.lblGesamtErstattungFW = New System.Windows.Forms.Label() Me.Label7 = New System.Windows.Forms.Label() Me.Panel5 = New System.Windows.Forms.Panel() Me.Panel7 = New System.Windows.Forms.Panel() @@ -86,51 +89,71 @@ Partial Class frmMDM_USTVAntrag Me.Label5 = New System.Windows.Forms.Label() Me.cboStatus = New VERAG_PROG_ALLGEMEIN.MyComboBox() Me.lblFirma = New System.Windows.Forms.Label() - Me.pnlFilter = New System.Windows.Forms.Panel() + Me.lblWarnung = New System.Windows.Forms.Label() + Me.pnlBody = New System.Windows.Forms.Panel() + Me.TabControl1 = New System.Windows.Forms.TabControl() + Me.TabPage1 = New System.Windows.Forms.TabPage() Me.dgvUSTVPositionen = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) - Me.pnl = New System.Windows.Forms.Panel() + Me.pnlAntragsPosDetails = New System.Windows.Forms.Panel() Me.Panel2 = New System.Windows.Forms.Panel() + Me.UstCntlUSTV_AntragPosition1 = New SDL.ustCntlUSTV_AntragPosition() Me.Panel4 = New System.Windows.Forms.Panel() Me.btnEintragloeschen = New System.Windows.Forms.Button() Me.btnNeuerEintrag = New System.Windows.Forms.Button() + Me.TabPage2 = New System.Windows.Forms.TabPage() + Me.Panel3 = New System.Windows.Forms.Panel() + Me.dgvErstattungspositionen = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) + Me.pnlErstattungsdetails = New System.Windows.Forms.Panel() + Me.UstCntlUSTV_AntragErstattungen1 = New SDL.ustCntlUSTV_ErstattungPosition() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.Button2 = New System.Windows.Forms.Button() + Me.Button3 = New System.Windows.Forms.Button() Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.ContextMenuStrip2 = New System.Windows.Forms.ContextMenuStrip(Me.components) - Me.UstCntlUSTV_AntragPosition1 = New SDL.ustCntlUSTV_AntragPosition() - Me.Panel3.SuspendLayout() + Me.Button4 = New System.Windows.Forms.Button() + Me.pnlBottom.SuspendLayout() CType(Me.picPDF, System.ComponentModel.ISupportInitialize).BeginInit() - Me.Panel1.SuspendLayout() + Me.pnlHeader.SuspendLayout() Me.Panel9.SuspendLayout() Me.Panel8.SuspendLayout() Me.Panel5.SuspendLayout() Me.Panel7.SuspendLayout() Me.FlowLayoutPanel.SuspendLayout() - Me.pnlFilter.SuspendLayout() + Me.pnlBody.SuspendLayout() + Me.TabControl1.SuspendLayout() + Me.TabPage1.SuspendLayout() CType(Me.dgvUSTVPositionen, System.ComponentModel.ISupportInitialize).BeginInit() - Me.pnl.SuspendLayout() + Me.pnlAntragsPosDetails.SuspendLayout() Me.Panel2.SuspendLayout() Me.Panel4.SuspendLayout() + Me.TabPage2.SuspendLayout() + Me.Panel3.SuspendLayout() + CType(Me.dgvErstattungspositionen, System.ComponentModel.ISupportInitialize).BeginInit() + Me.pnlErstattungsdetails.SuspendLayout() + Me.Panel1.SuspendLayout() Me.SuspendLayout() ' - 'Panel3 + 'pnlBottom ' - Me.Panel3.BackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer)) - Me.Panel3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.Panel3.Controls.Add(Me.picPDF) - Me.Panel3.Controls.Add(Me.btnMail) - Me.Panel3.Controls.Add(Me.btnAntrageeinarbeiten) - Me.Panel3.Controls.Add(Me.cbxArchivierteEintracheNochmalsEinarbetien) - Me.Panel3.Controls.Add(Me.Button1) - Me.Panel3.Controls.Add(Me.lbl_EintrageVerarbetiet) - Me.Panel3.Dock = System.Windows.Forms.DockStyle.Bottom - Me.Panel3.Location = New System.Drawing.Point(0, 649) - Me.Panel3.Name = "Panel3" - Me.Panel3.Size = New System.Drawing.Size(1454, 100) - Me.Panel3.TabIndex = 3 + Me.pnlBottom.BackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer)) + Me.pnlBottom.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlBottom.Controls.Add(Me.Button4) + Me.pnlBottom.Controls.Add(Me.picPDF) + Me.pnlBottom.Controls.Add(Me.btnMail) + Me.pnlBottom.Controls.Add(Me.btnAntrageeinarbeiten) + Me.pnlBottom.Controls.Add(Me.cbxArchivierteEintracheNochmalsEinarbetien) + Me.pnlBottom.Controls.Add(Me.Button1) + Me.pnlBottom.Controls.Add(Me.lbl_EintrageVerarbetiet) + Me.pnlBottom.Dock = System.Windows.Forms.DockStyle.Bottom + Me.pnlBottom.Location = New System.Drawing.Point(0, 649) + Me.pnlBottom.Name = "pnlBottom" + Me.pnlBottom.Size = New System.Drawing.Size(1454, 100) + Me.pnlBottom.TabIndex = 3 ' 'picPDF ' Me.picPDF.Image = Global.SDL.My.Resources.Resources.pdf - Me.picPDF.Location = New System.Drawing.Point(972, 29) + Me.picPDF.Location = New System.Drawing.Point(865, 30) Me.picPDF.Name = "picPDF" Me.picPDF.Size = New System.Drawing.Size(50, 50) Me.picPDF.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize @@ -142,7 +165,7 @@ Partial Class frmMDM_USTVAntrag Me.btnMail.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnMail.ForeColor = System.Drawing.Color.Black Me.btnMail.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnMail.Location = New System.Drawing.Point(1067, 30) + Me.btnMail.Location = New System.Drawing.Point(1109, 30) Me.btnMail.Name = "btnMail" Me.btnMail.Size = New System.Drawing.Size(103, 39) Me.btnMail.TabIndex = 26 @@ -199,42 +222,74 @@ Partial Class frmMDM_USTVAntrag Me.lbl_EintrageVerarbetiet.TextAlign = System.Drawing.ContentAlignment.TopRight Me.lbl_EintrageVerarbetiet.Visible = False ' - 'Panel1 + 'pnlHeader ' - Me.Panel1.BackColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) - Me.Panel1.Controls.Add(Me.lblWarnung) - Me.Panel1.Controls.Add(Me.KdSearchBox1) - Me.Panel1.Controls.Add(Me.cboAntragArt) - Me.Panel1.Controls.Add(Me.lblKdNr) - Me.Panel1.Controls.Add(Me.Panel9) - Me.Panel1.Controls.Add(Me.Panel8) - Me.Panel1.Controls.Add(Me.Panel6) - Me.Panel1.Controls.Add(Me.lblGesamtUSteuer) - Me.Panel1.Controls.Add(Me.Label12) - Me.Panel1.Controls.Add(Me.lblDiffernezbetrag) - Me.Panel1.Controls.Add(Me.Label10) - Me.Panel1.Controls.Add(Me.lblGesamtErstattung) - Me.Panel1.Controls.Add(Me.Label7) - Me.Panel1.Controls.Add(Me.Panel5) - Me.Panel1.Controls.Add(Me.lblFirma) - Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top - Me.Panel1.Location = New System.Drawing.Point(0, 0) - Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(1454, 177) - Me.Panel1.TabIndex = 0 + Me.pnlHeader.BackColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) + Me.pnlHeader.Controls.Add(Me.lblGesamtUSteuer) + Me.pnlHeader.Controls.Add(Me.lblDiffernezbetrag) + Me.pnlHeader.Controls.Add(Me.lblGesamtErstattung) + Me.pnlHeader.Controls.Add(Me.KdSearchBox1) + Me.pnlHeader.Controls.Add(Me.cboAntragArt) + Me.pnlHeader.Controls.Add(Me.lblKdNr) + Me.pnlHeader.Controls.Add(Me.Panel9) + Me.pnlHeader.Controls.Add(Me.Panel8) + Me.pnlHeader.Controls.Add(Me.Panel6) + Me.pnlHeader.Controls.Add(Me.lblGesamtUSteuerFW) + Me.pnlHeader.Controls.Add(Me.Label12) + Me.pnlHeader.Controls.Add(Me.lblDiffernezbetragFW) + Me.pnlHeader.Controls.Add(Me.Label10) + Me.pnlHeader.Controls.Add(Me.lblGesamtErstattungFW) + Me.pnlHeader.Controls.Add(Me.Label7) + Me.pnlHeader.Controls.Add(Me.Panel5) + Me.pnlHeader.Controls.Add(Me.lblFirma) + Me.pnlHeader.Controls.Add(Me.lblWarnung) + Me.pnlHeader.Dock = System.Windows.Forms.DockStyle.Top + Me.pnlHeader.Location = New System.Drawing.Point(0, 0) + Me.pnlHeader.Name = "pnlHeader" + Me.pnlHeader.Size = New System.Drawing.Size(1454, 177) + Me.pnlHeader.TabIndex = 0 ' - 'lblWarnung + 'lblGesamtUSteuer ' - Me.lblWarnung.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.lblWarnung.BackColor = System.Drawing.Color.Transparent - Me.lblWarnung.Cursor = System.Windows.Forms.Cursors.Default - Me.lblWarnung.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold) - Me.lblWarnung.ForeColor = System.Drawing.Color.Red - Me.lblWarnung.Location = New System.Drawing.Point(475, 10) - Me.lblWarnung.Name = "lblWarnung" - Me.lblWarnung.Size = New System.Drawing.Size(183, 18) - Me.lblWarnung.TabIndex = 23 + Me.lblGesamtUSteuer.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblGesamtUSteuer.BackColor = System.Drawing.Color.Transparent + Me.lblGesamtUSteuer.Cursor = System.Windows.Forms.Cursors.Default + Me.lblGesamtUSteuer.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Bold) + Me.lblGesamtUSteuer.ForeColor = System.Drawing.Color.White + Me.lblGesamtUSteuer.Location = New System.Drawing.Point(840, 16) + Me.lblGesamtUSteuer.Name = "lblGesamtUSteuer" + Me.lblGesamtUSteuer.Size = New System.Drawing.Size(133, 17) + Me.lblGesamtUSteuer.TabIndex = 26 + Me.lblGesamtUSteuer.Text = "000.000,00" + Me.lblGesamtUSteuer.TextAlign = System.Drawing.ContentAlignment.TopRight + ' + 'lblDiffernezbetrag + ' + Me.lblDiffernezbetrag.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblDiffernezbetrag.BackColor = System.Drawing.Color.Transparent + Me.lblDiffernezbetrag.Cursor = System.Windows.Forms.Cursors.Default + Me.lblDiffernezbetrag.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Bold) + Me.lblDiffernezbetrag.ForeColor = System.Drawing.Color.White + Me.lblDiffernezbetrag.Location = New System.Drawing.Point(840, 59) + Me.lblDiffernezbetrag.Name = "lblDiffernezbetrag" + Me.lblDiffernezbetrag.Size = New System.Drawing.Size(133, 17) + Me.lblDiffernezbetrag.TabIndex = 25 + Me.lblDiffernezbetrag.Text = "000.000,00" + Me.lblDiffernezbetrag.TextAlign = System.Drawing.ContentAlignment.TopRight + ' + 'lblGesamtErstattung + ' + Me.lblGesamtErstattung.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblGesamtErstattung.BackColor = System.Drawing.Color.Transparent + Me.lblGesamtErstattung.Cursor = System.Windows.Forms.Cursors.Default + Me.lblGesamtErstattung.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Bold) + Me.lblGesamtErstattung.ForeColor = System.Drawing.Color.White + Me.lblGesamtErstattung.Location = New System.Drawing.Point(840, 36) + Me.lblGesamtErstattung.Name = "lblGesamtErstattung" + Me.lblGesamtErstattung.Size = New System.Drawing.Size(133, 17) + Me.lblGesamtErstattung.TabIndex = 24 + Me.lblGesamtErstattung.Text = "000.000,00" + Me.lblGesamtErstattung.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'KdSearchBox1 ' @@ -335,7 +390,7 @@ Partial Class frmMDM_USTVAntrag ' Me.Panel8.BackColor = System.Drawing.Color.WhiteSmoke Me.Panel8.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.Panel8.Controls.Add(Me.lblMWSTAbrechnung) + Me.Panel8.Controls.Add(Me.lblMWSTAntrag) Me.Panel8.Controls.Add(Me.Label13) Me.Panel8.Controls.Add(Me.txtGueltig) Me.Panel8.Controls.Add(Me.Label11) @@ -362,17 +417,17 @@ Partial Class frmMDM_USTVAntrag Me.Panel8.Size = New System.Drawing.Size(973, 87) Me.Panel8.TabIndex = 19 ' - 'lblMWSTAbrechnung + 'lblMWSTAntrag ' - Me.lblMWSTAbrechnung.AutoSize = True - Me.lblMWSTAbrechnung.BackColor = System.Drawing.Color.Transparent - Me.lblMWSTAbrechnung.Cursor = System.Windows.Forms.Cursors.Hand - Me.lblMWSTAbrechnung.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblMWSTAbrechnung.ForeColor = System.Drawing.Color.Black - Me.lblMWSTAbrechnung.Location = New System.Drawing.Point(224, 41) - Me.lblMWSTAbrechnung.Name = "lblMWSTAbrechnung" - Me.lblMWSTAbrechnung.Size = New System.Drawing.Size(0, 17) - Me.lblMWSTAbrechnung.TabIndex = 25 + Me.lblMWSTAntrag.AutoSize = True + Me.lblMWSTAntrag.BackColor = System.Drawing.Color.Transparent + Me.lblMWSTAntrag.Cursor = System.Windows.Forms.Cursors.Hand + Me.lblMWSTAntrag.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblMWSTAntrag.ForeColor = System.Drawing.Color.Black + Me.lblMWSTAntrag.Location = New System.Drawing.Point(224, 41) + Me.lblMWSTAntrag.Name = "lblMWSTAntrag" + Me.lblMWSTAntrag.Size = New System.Drawing.Size(0, 17) + Me.lblMWSTAntrag.TabIndex = 25 ' 'Label13 ' @@ -734,24 +789,24 @@ Partial Class frmMDM_USTVAntrag Me.Panel6.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.Panel6.BackColor = System.Drawing.Color.White Me.Panel6.ForeColor = System.Drawing.Color.White - Me.Panel6.Location = New System.Drawing.Point(676, 56) + Me.Panel6.Location = New System.Drawing.Point(571, 56) Me.Panel6.Name = "Panel6" - Me.Panel6.Size = New System.Drawing.Size(290, 1) + Me.Panel6.Size = New System.Drawing.Size(390, 1) Me.Panel6.TabIndex = 18 ' - 'lblGesamtUSteuer + 'lblGesamtUSteuerFW ' - Me.lblGesamtUSteuer.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.lblGesamtUSteuer.BackColor = System.Drawing.Color.Transparent - Me.lblGesamtUSteuer.Cursor = System.Windows.Forms.Cursors.Default - Me.lblGesamtUSteuer.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Bold) - Me.lblGesamtUSteuer.ForeColor = System.Drawing.Color.White - Me.lblGesamtUSteuer.Location = New System.Drawing.Point(826, 16) - Me.lblGesamtUSteuer.Name = "lblGesamtUSteuer" - Me.lblGesamtUSteuer.Size = New System.Drawing.Size(133, 17) - Me.lblGesamtUSteuer.TabIndex = 17 - Me.lblGesamtUSteuer.Text = "000.000,00 €" - Me.lblGesamtUSteuer.TextAlign = System.Drawing.ContentAlignment.TopRight + Me.lblGesamtUSteuerFW.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblGesamtUSteuerFW.BackColor = System.Drawing.Color.Transparent + Me.lblGesamtUSteuerFW.Cursor = System.Windows.Forms.Cursors.Default + Me.lblGesamtUSteuerFW.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Bold) + Me.lblGesamtUSteuerFW.ForeColor = System.Drawing.Color.White + Me.lblGesamtUSteuerFW.Location = New System.Drawing.Point(721, 16) + Me.lblGesamtUSteuerFW.Name = "lblGesamtUSteuerFW" + Me.lblGesamtUSteuerFW.Size = New System.Drawing.Size(133, 17) + Me.lblGesamtUSteuerFW.TabIndex = 17 + Me.lblGesamtUSteuerFW.Text = "000.000,00 €" + Me.lblGesamtUSteuerFW.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label12 ' @@ -761,25 +816,25 @@ Partial Class frmMDM_USTVAntrag Me.Label12.Cursor = System.Windows.Forms.Cursors.Default Me.Label12.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!) Me.Label12.ForeColor = System.Drawing.Color.White - Me.Label12.Location = New System.Drawing.Point(684, 16) + Me.Label12.Location = New System.Drawing.Point(579, 16) Me.Label12.Name = "Label12" Me.Label12.Size = New System.Drawing.Size(136, 15) Me.Label12.TabIndex = 16 Me.Label12.Text = "Gesamtbetrag USteuer:" ' - 'lblDiffernezbetrag + 'lblDiffernezbetragFW ' - Me.lblDiffernezbetrag.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.lblDiffernezbetrag.BackColor = System.Drawing.Color.Transparent - Me.lblDiffernezbetrag.Cursor = System.Windows.Forms.Cursors.Default - Me.lblDiffernezbetrag.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Bold) - Me.lblDiffernezbetrag.ForeColor = System.Drawing.Color.White - Me.lblDiffernezbetrag.Location = New System.Drawing.Point(826, 59) - Me.lblDiffernezbetrag.Name = "lblDiffernezbetrag" - Me.lblDiffernezbetrag.Size = New System.Drawing.Size(133, 17) - Me.lblDiffernezbetrag.TabIndex = 15 - Me.lblDiffernezbetrag.Text = "000.000,00 €" - Me.lblDiffernezbetrag.TextAlign = System.Drawing.ContentAlignment.TopRight + Me.lblDiffernezbetragFW.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblDiffernezbetragFW.BackColor = System.Drawing.Color.Transparent + Me.lblDiffernezbetragFW.Cursor = System.Windows.Forms.Cursors.Default + Me.lblDiffernezbetragFW.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Bold) + Me.lblDiffernezbetragFW.ForeColor = System.Drawing.Color.White + Me.lblDiffernezbetragFW.Location = New System.Drawing.Point(721, 59) + Me.lblDiffernezbetragFW.Name = "lblDiffernezbetragFW" + Me.lblDiffernezbetragFW.Size = New System.Drawing.Size(133, 17) + Me.lblDiffernezbetragFW.TabIndex = 15 + Me.lblDiffernezbetragFW.Text = "000.000,00 €" + Me.lblDiffernezbetragFW.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label10 ' @@ -789,25 +844,25 @@ Partial Class frmMDM_USTVAntrag Me.Label10.Cursor = System.Windows.Forms.Cursors.Default Me.Label10.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!) Me.Label10.ForeColor = System.Drawing.Color.White - Me.Label10.Location = New System.Drawing.Point(684, 59) + Me.Label10.Location = New System.Drawing.Point(579, 59) Me.Label10.Name = "Label10" Me.Label10.Size = New System.Drawing.Size(94, 15) Me.Label10.TabIndex = 14 Me.Label10.Text = "Differenzbetrag:" ' - 'lblGesamtErstattung + 'lblGesamtErstattungFW ' - Me.lblGesamtErstattung.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.lblGesamtErstattung.BackColor = System.Drawing.Color.Transparent - Me.lblGesamtErstattung.Cursor = System.Windows.Forms.Cursors.Default - Me.lblGesamtErstattung.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Bold) - Me.lblGesamtErstattung.ForeColor = System.Drawing.Color.White - Me.lblGesamtErstattung.Location = New System.Drawing.Point(826, 36) - Me.lblGesamtErstattung.Name = "lblGesamtErstattung" - Me.lblGesamtErstattung.Size = New System.Drawing.Size(133, 17) - Me.lblGesamtErstattung.TabIndex = 13 - Me.lblGesamtErstattung.Text = "000.000,00 €" - Me.lblGesamtErstattung.TextAlign = System.Drawing.ContentAlignment.TopRight + Me.lblGesamtErstattungFW.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblGesamtErstattungFW.BackColor = System.Drawing.Color.Transparent + Me.lblGesamtErstattungFW.Cursor = System.Windows.Forms.Cursors.Default + Me.lblGesamtErstattungFW.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Bold) + Me.lblGesamtErstattungFW.ForeColor = System.Drawing.Color.White + Me.lblGesamtErstattungFW.Location = New System.Drawing.Point(721, 36) + Me.lblGesamtErstattungFW.Name = "lblGesamtErstattungFW" + Me.lblGesamtErstattungFW.Size = New System.Drawing.Size(133, 17) + Me.lblGesamtErstattungFW.TabIndex = 13 + Me.lblGesamtErstattungFW.Text = "000.000,00 €" + Me.lblGesamtErstattungFW.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label7 ' @@ -817,7 +872,7 @@ Partial Class frmMDM_USTVAntrag Me.Label7.Cursor = System.Windows.Forms.Cursors.Default Me.Label7.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!) Me.Label7.ForeColor = System.Drawing.Color.White - Me.Label7.Location = New System.Drawing.Point(684, 36) + Me.Label7.Location = New System.Drawing.Point(579, 36) Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(146, 15) Me.Label7.TabIndex = 12 @@ -1051,16 +1106,54 @@ Partial Class frmMDM_USTVAntrag Me.lblFirma.TabIndex = 3 Me.lblFirma.Text = "VERAG Spedition AG" ' - 'pnlFilter + 'lblWarnung ' - Me.pnlFilter.BackColor = System.Drawing.Color.White - Me.pnlFilter.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlFilter.Controls.Add(Me.dgvUSTVPositionen) - Me.pnlFilter.Dock = System.Windows.Forms.DockStyle.Fill - Me.pnlFilter.Location = New System.Drawing.Point(0, 177) - Me.pnlFilter.Name = "pnlFilter" - Me.pnlFilter.Size = New System.Drawing.Size(1454, 203) - Me.pnlFilter.TabIndex = 1 + Me.lblWarnung.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblWarnung.BackColor = System.Drawing.Color.Transparent + Me.lblWarnung.Cursor = System.Windows.Forms.Cursors.Default + Me.lblWarnung.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold) + Me.lblWarnung.ForeColor = System.Drawing.Color.Red + Me.lblWarnung.Location = New System.Drawing.Point(475, 10) + Me.lblWarnung.Name = "lblWarnung" + Me.lblWarnung.Size = New System.Drawing.Size(183, 18) + Me.lblWarnung.TabIndex = 23 + ' + 'pnlBody + ' + Me.pnlBody.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.pnlBody.BackColor = System.Drawing.Color.White + Me.pnlBody.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlBody.Controls.Add(Me.TabControl1) + Me.pnlBody.Location = New System.Drawing.Point(0, 177) + Me.pnlBody.Name = "pnlBody" + Me.pnlBody.Size = New System.Drawing.Size(1454, 472) + Me.pnlBody.TabIndex = 1 + ' + 'TabControl1 + ' + Me.TabControl1.Controls.Add(Me.TabPage1) + Me.TabControl1.Controls.Add(Me.TabPage2) + Me.TabControl1.Dock = System.Windows.Forms.DockStyle.Fill + Me.TabControl1.Location = New System.Drawing.Point(0, 0) + Me.TabControl1.Name = "TabControl1" + Me.TabControl1.SelectedIndex = 0 + Me.TabControl1.Size = New System.Drawing.Size(1452, 470) + Me.TabControl1.TabIndex = 1 + ' + 'TabPage1 + ' + Me.TabPage1.Controls.Add(Me.dgvUSTVPositionen) + Me.TabPage1.Controls.Add(Me.pnlAntragsPosDetails) + Me.TabPage1.Location = New System.Drawing.Point(4, 22) + Me.TabPage1.Name = "TabPage1" + Me.TabPage1.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage1.Size = New System.Drawing.Size(1444, 444) + Me.TabPage1.TabIndex = 0 + Me.TabPage1.Text = "Antragspositionen" + Me.TabPage1.UseVisualStyleBackColor = True ' 'dgvUSTVPositionen ' @@ -1069,39 +1162,49 @@ Partial Class frmMDM_USTVAntrag Me.dgvUSTVPositionen.AllowUserToDeleteRows = False DataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer)) Me.dgvUSTVPositionen.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle1 + Me.dgvUSTVPositionen.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.dgvUSTVPositionen.BackgroundColor = System.Drawing.Color.White Me.dgvUSTVPositionen.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize - Me.dgvUSTVPositionen.Dock = System.Windows.Forms.DockStyle.Fill - Me.dgvUSTVPositionen.Location = New System.Drawing.Point(0, 0) + Me.dgvUSTVPositionen.Location = New System.Drawing.Point(3, 3) Me.dgvUSTVPositionen.Name = "dgvUSTVPositionen" Me.dgvUSTVPositionen.ReadOnly = True Me.dgvUSTVPositionen.RowHeadersVisible = False Me.dgvUSTVPositionen.RowHeadersWidth = 62 Me.dgvUSTVPositionen.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect - Me.dgvUSTVPositionen.Size = New System.Drawing.Size(1452, 201) + Me.dgvUSTVPositionen.Size = New System.Drawing.Size(1438, 169) Me.dgvUSTVPositionen.TabIndex = 0 ' - 'pnl + 'pnlAntragsPosDetails ' - Me.pnl.Controls.Add(Me.Panel2) - Me.pnl.Controls.Add(Me.Panel4) - Me.pnl.Dock = System.Windows.Forms.DockStyle.Bottom - Me.pnl.Location = New System.Drawing.Point(0, 380) - Me.pnl.Name = "pnl" - Me.pnl.Size = New System.Drawing.Size(1454, 269) - Me.pnl.TabIndex = 2 + Me.pnlAntragsPosDetails.Controls.Add(Me.Panel2) + Me.pnlAntragsPosDetails.Dock = System.Windows.Forms.DockStyle.Bottom + Me.pnlAntragsPosDetails.Location = New System.Drawing.Point(3, 178) + Me.pnlAntragsPosDetails.Name = "pnlAntragsPosDetails" + Me.pnlAntragsPosDetails.Size = New System.Drawing.Size(1438, 263) + Me.pnlAntragsPosDetails.TabIndex = 2 ' 'Panel2 ' Me.Panel2.BackColor = System.Drawing.Color.White Me.Panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.Panel2.Controls.Add(Me.UstCntlUSTV_AntragPosition1) + Me.Panel2.Controls.Add(Me.Panel4) Me.Panel2.Dock = System.Windows.Forms.DockStyle.Fill - Me.Panel2.Location = New System.Drawing.Point(154, 0) + Me.Panel2.Location = New System.Drawing.Point(0, 0) Me.Panel2.Name = "Panel2" - Me.Panel2.Size = New System.Drawing.Size(1300, 269) + Me.Panel2.Size = New System.Drawing.Size(1438, 263) Me.Panel2.TabIndex = 1 ' + 'UstCntlUSTV_AntragPosition1 + ' + Me.UstCntlUSTV_AntragPosition1.Dock = System.Windows.Forms.DockStyle.Fill + Me.UstCntlUSTV_AntragPosition1.Location = New System.Drawing.Point(154, 0) + Me.UstCntlUSTV_AntragPosition1.Name = "UstCntlUSTV_AntragPosition1" + Me.UstCntlUSTV_AntragPosition1.Size = New System.Drawing.Size(1282, 261) + Me.UstCntlUSTV_AntragPosition1.TabIndex = 0 + ' 'Panel4 ' Me.Panel4.BackColor = System.Drawing.Color.WhiteSmoke @@ -1111,7 +1214,7 @@ Partial Class frmMDM_USTVAntrag Me.Panel4.Dock = System.Windows.Forms.DockStyle.Left Me.Panel4.Location = New System.Drawing.Point(0, 0) Me.Panel4.Name = "Panel4" - Me.Panel4.Size = New System.Drawing.Size(154, 269) + Me.Panel4.Size = New System.Drawing.Size(154, 261) Me.Panel4.TabIndex = 0 ' 'btnEintragloeschen @@ -1142,6 +1245,110 @@ Partial Class frmMDM_USTVAntrag Me.btnNeuerEintrag.TextAlign = System.Drawing.ContentAlignment.MiddleRight Me.btnNeuerEintrag.UseVisualStyleBackColor = True ' + 'TabPage2 + ' + Me.TabPage2.Controls.Add(Me.Panel3) + Me.TabPage2.Location = New System.Drawing.Point(4, 22) + Me.TabPage2.Name = "TabPage2" + Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage2.Size = New System.Drawing.Size(1444, 444) + Me.TabPage2.TabIndex = 1 + Me.TabPage2.Text = "Erstattungspositionen" + Me.TabPage2.UseVisualStyleBackColor = True + ' + 'Panel3 + ' + Me.Panel3.BackColor = System.Drawing.Color.White + Me.Panel3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.Panel3.Controls.Add(Me.dgvErstattungspositionen) + Me.Panel3.Controls.Add(Me.pnlErstattungsdetails) + Me.Panel3.Dock = System.Windows.Forms.DockStyle.Fill + Me.Panel3.Location = New System.Drawing.Point(3, 3) + Me.Panel3.Name = "Panel3" + Me.Panel3.Size = New System.Drawing.Size(1438, 438) + Me.Panel3.TabIndex = 3 + ' + 'dgvErstattungspositionen + ' + Me.dgvErstattungspositionen.AKTUALISIERUNGS_INTERVALL = 500 + Me.dgvErstattungspositionen.AllowUserToAddRows = False + Me.dgvErstattungspositionen.AllowUserToDeleteRows = False + DataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer)) + Me.dgvErstattungspositionen.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle2 + Me.dgvErstattungspositionen.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.dgvErstattungspositionen.BackgroundColor = System.Drawing.Color.White + Me.dgvErstattungspositionen.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + Me.dgvErstattungspositionen.Location = New System.Drawing.Point(3, 3) + Me.dgvErstattungspositionen.Name = "dgvErstattungspositionen" + Me.dgvErstattungspositionen.ReadOnly = True + Me.dgvErstattungspositionen.RowHeadersVisible = False + Me.dgvErstattungspositionen.RowHeadersWidth = 62 + Me.dgvErstattungspositionen.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect + Me.dgvErstattungspositionen.Size = New System.Drawing.Size(1438, 172) + Me.dgvErstattungspositionen.TabIndex = 1 + ' + 'pnlErstattungsdetails + ' + Me.pnlErstattungsdetails.BackColor = System.Drawing.Color.WhiteSmoke + Me.pnlErstattungsdetails.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlErstattungsdetails.Controls.Add(Me.UstCntlUSTV_AntragErstattungen1) + Me.pnlErstattungsdetails.Controls.Add(Me.Panel1) + Me.pnlErstattungsdetails.Dock = System.Windows.Forms.DockStyle.Bottom + Me.pnlErstattungsdetails.Location = New System.Drawing.Point(0, 175) + Me.pnlErstattungsdetails.Name = "pnlErstattungsdetails" + Me.pnlErstattungsdetails.Size = New System.Drawing.Size(1436, 261) + Me.pnlErstattungsdetails.TabIndex = 0 + ' + 'UstCntlUSTV_AntragErstattungen1 + ' + Me.UstCntlUSTV_AntragErstattungen1.Dock = System.Windows.Forms.DockStyle.Fill + Me.UstCntlUSTV_AntragErstattungen1.Location = New System.Drawing.Point(154, 0) + Me.UstCntlUSTV_AntragErstattungen1.Name = "UstCntlUSTV_AntragErstattungen1" + Me.UstCntlUSTV_AntragErstattungen1.Size = New System.Drawing.Size(1280, 259) + Me.UstCntlUSTV_AntragErstattungen1.TabIndex = 2 + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.Color.WhiteSmoke + Me.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.Panel1.Controls.Add(Me.Button2) + Me.Panel1.Controls.Add(Me.Button3) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Left + Me.Panel1.Location = New System.Drawing.Point(0, 0) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(154, 259) + Me.Panel1.TabIndex = 3 + ' + 'Button2 + ' + Me.Button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button2.ForeColor = System.Drawing.Color.Black + Me.Button2.Image = Global.SDL.My.Resources.Resources.del + Me.Button2.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.Button2.Location = New System.Drawing.Point(6, 50) + Me.Button2.Name = "Button2" + Me.Button2.Size = New System.Drawing.Size(135, 39) + Me.Button2.TabIndex = 1 + Me.Button2.Text = "Eintrag löschen" + Me.Button2.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.Button2.UseVisualStyleBackColor = True + ' + 'Button3 + ' + Me.Button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button3.ForeColor = System.Drawing.Color.Black + Me.Button3.Image = Global.SDL.My.Resources.Resources.plus + Me.Button3.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.Button3.Location = New System.Drawing.Point(6, 5) + Me.Button3.Name = "Button3" + Me.Button3.Size = New System.Drawing.Size(135, 39) + Me.Button3.TabIndex = 0 + Me.Button3.Text = "Neuer Eintrag" + Me.Button3.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.Button3.UseVisualStyleBackColor = True + ' 'ContextMenuStrip1 ' Me.ContextMenuStrip1.Name = "ContextMenuStrip1" @@ -1152,33 +1359,36 @@ Partial Class frmMDM_USTVAntrag Me.ContextMenuStrip2.Name = "ContextMenuStrip1" Me.ContextMenuStrip2.Size = New System.Drawing.Size(61, 4) ' - 'UstCntlUSTV_AntragPosition1 + 'Button4 ' - Me.UstCntlUSTV_AntragPosition1.Dock = System.Windows.Forms.DockStyle.Fill - Me.UstCntlUSTV_AntragPosition1.Location = New System.Drawing.Point(0, 0) - Me.UstCntlUSTV_AntragPosition1.Name = "UstCntlUSTV_AntragPosition1" - Me.UstCntlUSTV_AntragPosition1.Size = New System.Drawing.Size(1298, 267) - Me.UstCntlUSTV_AntragPosition1.TabIndex = 0 + Me.Button4.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button4.ForeColor = System.Drawing.Color.Black + Me.Button4.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.Button4.Location = New System.Drawing.Point(979, 30) + Me.Button4.Name = "Button4" + Me.Button4.Size = New System.Drawing.Size(103, 39) + Me.Button4.TabIndex = 28 + Me.Button4.Text = "Sped.-Buch eintragen" + Me.Button4.UseVisualStyleBackColor = True ' 'frmMDM_USTVAntrag ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(1454, 749) - Me.Controls.Add(Me.pnlFilter) - Me.Controls.Add(Me.pnl) - Me.Controls.Add(Me.Panel3) - Me.Controls.Add(Me.Panel1) + Me.Controls.Add(Me.pnlHeader) + Me.Controls.Add(Me.pnlBody) + Me.Controls.Add(Me.pnlBottom) Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.KeyPreview = True Me.Name = "frmMDM_USTVAntrag" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.Text = "USTV Antrag" - Me.Panel3.ResumeLayout(False) - Me.Panel3.PerformLayout() + Me.pnlBottom.ResumeLayout(False) + Me.pnlBottom.PerformLayout() CType(Me.picPDF, System.ComponentModel.ISupportInitialize).EndInit() - Me.Panel1.ResumeLayout(False) - Me.Panel1.PerformLayout() + Me.pnlHeader.ResumeLayout(False) + Me.pnlHeader.PerformLayout() Me.Panel9.ResumeLayout(False) Me.Panel8.ResumeLayout(False) Me.Panel8.PerformLayout() @@ -1188,20 +1398,27 @@ Partial Class frmMDM_USTVAntrag Me.Panel7.PerformLayout() Me.FlowLayoutPanel.ResumeLayout(False) Me.FlowLayoutPanel.PerformLayout() - Me.pnlFilter.ResumeLayout(False) + Me.pnlBody.ResumeLayout(False) + Me.TabControl1.ResumeLayout(False) + Me.TabPage1.ResumeLayout(False) CType(Me.dgvUSTVPositionen, System.ComponentModel.ISupportInitialize).EndInit() - Me.pnl.ResumeLayout(False) + Me.pnlAntragsPosDetails.ResumeLayout(False) Me.Panel2.ResumeLayout(False) Me.Panel4.ResumeLayout(False) + Me.TabPage2.ResumeLayout(False) + Me.Panel3.ResumeLayout(False) + CType(Me.dgvErstattungspositionen, System.ComponentModel.ISupportInitialize).EndInit() + Me.pnlErstattungsdetails.ResumeLayout(False) + Me.Panel1.ResumeLayout(False) Me.ResumeLayout(False) End Sub - Friend WithEvents Panel3 As Panel + Friend WithEvents pnlBottom As Panel Friend WithEvents btnAntrageeinarbeiten As Button - Friend WithEvents Panel1 As Panel + Friend WithEvents pnlHeader As Panel Friend WithEvents lblFirma As Label - Friend WithEvents pnlFilter As Panel + Friend WithEvents pnlBody As Panel Friend WithEvents dgvUSTVPositionen As VERAG_PROG_ALLGEMEIN.MyDatagridview Friend WithEvents lbl_EintrageVerarbetiet As Label Friend WithEvents cbxArchivierteEintracheNochmalsEinarbetien As CheckBox @@ -1211,7 +1428,7 @@ Partial Class frmMDM_USTVAntrag Friend WithEvents Label5 As Label Friend WithEvents rtbStatusText As RichTextBox Friend WithEvents Button1 As Button - Friend WithEvents pnl As Panel + Friend WithEvents pnlAntragsPosDetails As Panel Friend WithEvents Panel2 As Panel Friend WithEvents btnNeuerEintrag As Button Friend WithEvents Panel4 As Panel @@ -1231,11 +1448,11 @@ Partial Class frmMDM_USTVAntrag Friend WithEvents btnStorno As Button Friend WithEvents btnTeilerstattung As Button Friend WithEvents lblAntragAbgeschlossen As Label - Friend WithEvents lblGesamtUSteuer As Label + Friend WithEvents lblGesamtUSteuerFW As Label Friend WithEvents Label12 As Label - Friend WithEvents lblDiffernezbetrag As Label + Friend WithEvents lblDiffernezbetragFW As Label Friend WithEvents Label10 As Label - Friend WithEvents lblGesamtErstattung As Label + Friend WithEvents lblGesamtErstattungFW As Label Friend WithEvents Label7 As Label Friend WithEvents Panel6 As Panel Friend WithEvents Panel7 As Panel @@ -1267,5 +1484,19 @@ Partial Class frmMDM_USTVAntrag Friend WithEvents picPDF As PictureBox Friend WithEvents txtGueltig As VERAG_PROG_ALLGEMEIN.MyTextBox Friend WithEvents Label13 As Label - Friend WithEvents lblMWSTAbrechnung As Label + Friend WithEvents lblMWSTAntrag As Label + Friend WithEvents lblGesamtUSteuer As Label + Friend WithEvents lblDiffernezbetrag As Label + Friend WithEvents lblGesamtErstattung As Label + Friend WithEvents TabControl1 As TabControl + Friend WithEvents TabPage1 As TabPage + Friend WithEvents TabPage2 As TabPage + Friend WithEvents dgvErstattungspositionen As VERAG_PROG_ALLGEMEIN.MyDatagridview + Friend WithEvents Panel3 As Panel + Friend WithEvents pnlErstattungsdetails As Panel + Friend WithEvents UstCntlUSTV_AntragErstattungen1 As ustCntlUSTV_ErstattungPosition + Friend WithEvents Panel1 As Panel + Friend WithEvents Button2 As Button + Friend WithEvents Button3 As Button + Friend WithEvents Button4 As Button End Class diff --git a/SDL/USTV/frmMDM_USTVAntrag.vb b/SDL/USTV/frmMDM_USTVAntrag.vb index fc9949da..a8e0fa39 100644 --- a/SDL/USTV/frmMDM_USTVAntrag.vb +++ b/SDL/USTV/frmMDM_USTVAntrag.vb @@ -14,6 +14,7 @@ Public Class frmMDM_USTVAntrag Dim USTV_ANTRAG As VERAG_PROG_ALLGEMEIN.cUSTVAntrag = Nothing Dim Antrag_LandKz As String = "" Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL + Dim posTabisSelected As Boolean = True Dim von, bis As Date @@ -43,7 +44,12 @@ Public Class frmMDM_USTVAntrag End Sub Sub init(Optional Lieferant As String = "") - pnlFilter.AutoScroll = False + pnlBody.AutoScroll = False + + lblGesamtUSteuerFW.Text = "-" + lblGesamtErstattungFW.Text = "-" + lblDiffernezbetragFW.Text = "-" + lblGesamtUSteuer.Text = "-" lblGesamtErstattung.Text = "-" @@ -171,13 +177,21 @@ Public Class frmMDM_USTVAntrag End With - Dim GesamtUSteuer As Double = SQL.DLookup("isnull(sum(UStVPo_USteuerbetragEUR),0)", "tblUStVPositionen", "UStVAn_ID='" & UStVAn_ID & "'", "FMZOLL", "0") - Dim GesamtErstattung As Double = SQL.DLookup("isnull(sum(UStVEr_USteuerbetragEUR),0)", "tblUStVErstattung", "UStVAn_ID='" & UStVAn_ID & "'", "FMZOLL", "0") + Dim GesamtUSteuerEUR As Double = SQL.DLookup("isnull(sum(UStVPo_USteuerbetragEUR),0)", "tblUStVPositionen", "UStVAn_ID='" & UStVAn_ID & "'", "FMZOLL", "0") + Dim GesamtErstattungEUR As Double = SQL.DLookup("isnull(sum(UStVEr_USteuerbetragEUR),0)", "tblUStVErstattung", "UStVAn_ID='" & UStVAn_ID & "'", "FMZOLL", "0") + Dim DiffernezbetragEUR As Double = GesamtUSteuerEUR - GesamtErstattungEUR + + Dim GesamtUSteuer As Double = SQL.DLookup("isnull(sum(UStVPo_USteuerbetrag),0)", "tblUStVPositionen", "UStVAn_ID='" & UStVAn_ID & "'", "FMZOLL", "0") + Dim GesamtErstattung As Double = SQL.DLookup("isnull(sum(UStVEr_USteuerbetrag),0)", "tblUStVErstattung", "UStVAn_ID='" & UStVAn_ID & "'", "FMZOLL", "0") Dim Differnezbetrag As Double = GesamtUSteuer - GesamtErstattung - lblGesamtUSteuer.Text = GesamtUSteuer.ToString("C2") - lblGesamtErstattung.Text = GesamtErstattung.ToString("C2") - lblDiffernezbetrag.Text = Differnezbetrag.ToString("C2") + lblGesamtUSteuerFW.Text = GesamtUSteuer.ToString("C2") + lblGesamtErstattungFW.Text = GesamtErstattung.ToString("C2") + lblDiffernezbetragFW.Text = Differnezbetrag.ToString("C2") + + lblGesamtUSteuer.Text = GesamtUSteuerEUR.ToString("C2") + lblGesamtErstattung.Text = GesamtErstattungEUR.ToString("C2") + lblDiffernezbetrag.Text = DiffernezbetragEUR.ToString("C2") Dim GET_Antraege Dim antraegeVearbeitet = False @@ -222,20 +236,21 @@ Public Class frmMDM_USTVAntrag Dim KUNDE As New cKunde(USTV_ANTRAG.UStVAn_KuNr) Dim KUNDE_ERW As New cKundenErweitert(USTV_ANTRAG.UStVAn_KuNr) If KUNDE IsNot Nothing Then - Panel1.BackColor = Color.FromArgb(0, 54, 128) - If KUNDE.Abfertigungsverbot Then Panel1.BackColor = Color.IndianRed + pnlHeader.BackColor = Color.FromArgb(0, 54, 128) + If KUNDE.Abfertigungsverbot Then pnlHeader.BackColor = Color.IndianRed Else - Panel1.BackColor = Color.FromArgb(0, 54, 128) + pnlHeader.BackColor = Color.FromArgb(0, 54, 128) End If If KUNDE_ERW IsNot Nothing Then - If KUNDE_ERW.kde_MWStAbrechnung IsNot Nothing Then - lblMWSTAbrechnung.Text = KUNDE_ERW.kde_MWStAbrechnung + If KUNDE_ERW.kde_MWStAbrechnung <> "" Then + lblMWSTAntrag.Text = KUNDE_ERW.kde_MWStAbrechnung Else - lblMWSTAbrechnung.Text = "" + lblMWSTAntrag.Text = "" End If + If KUNDE_ERW.kde_AnmerkungAntrag IsNot Nothing AndAlso KUNDE_ERW.kde_AnmerkungAntrag <> "" Then lblMWSTAntrag.Text &= " - " & KUNDE_ERW.kde_AnmerkungAntrag End If End If @@ -1127,14 +1142,34 @@ Public Class frmMDM_USTVAntrag End Sub - Private Sub dgvUSTVPositionen_SelectionChanged(sender As Object, e As EventArgs) Handles dgvUSTVPositionen.SelectionChanged - If dgvUSTVPositionen.SelectedRows.Count > 0 Then - initPosition(dgvUSTVPositionen.SelectedRows(0).Cells("UStVPo_ID").Value) - + Sub initErstsattungsPosition(UStVEr_ID) + If UStVEr_ID > 0 Then + Dim ANTR_ERSTATTUNG As New VERAG_PROG_ALLGEMEIN.cUStVErstattungPositionen(USTV_ANTRAG.UStVAn_ID, UStVEr_ID) + UstCntlUSTV_AntragErstattungen1.Enabled = True + UstCntlUSTV_AntragErstattungen1.setValues(USTV_ANTRAG, ANTR_ERSTATTUNG, USTV_ANTRAG.UStVAn_KuNr) + Else + UstCntlUSTV_AntragErstattungen1.reset() + UstCntlUSTV_AntragErstattungen1.Enabled = False + UstCntlUSTV_AntragErstattungen1.setValues(USTV_ANTRAG) End If End Sub + Private Sub dgvUSTVPositionen_SelectionChanged(sender As Object, e As EventArgs) Handles dgvUSTVPositionen.SelectionChanged + + + If dgvUSTVPositionen.SelectedRows.Count > 0 Then + initPosition(dgvUSTVPositionen.SelectedRows(0).Cells("UStVPo_ID").Value) + End If + + End Sub + + Private Sub dgvErstattungspositionen_SelectionChanged(sender As Object, e As EventArgs) Handles dgvErstattungspositionen.SelectionChanged + If dgvErstattungspositionen.SelectedRows.Count > 0 Then + initErstsattungsPosition(dgvErstattungspositionen.SelectedRows(0).Cells("UStVEr_ID").Value) + End If + End Sub + Private Sub UstCntlUSTV_AntragPosition1_EV_NEXT() Handles UstCntlUSTV_AntragPosition1.EV_NEXT If dgvUSTVPositionen.SelectedRows.Count > 0 Then @@ -1147,6 +1182,21 @@ Public Class frmMDM_USTVAntrag End If End If + End Sub + + Private Sub UstCntlUSTV_AntragErstattungen1_EV_NEXT() Handles UstCntlUSTV_AntragErstattungen1.EV_NEXT + + + If dgvErstattungspositionen.SelectedRows.Count > 0 Then + If dgvErstattungspositionen.RowCount > dgvErstattungspositionen.SelectedRows(0).Index + 1 Then + UstCntlUSTV_AntragErstattungen1.Enabled = True + Dim selIndex = dgvErstattungspositionen.SelectedRows(0).Index + 1 + dgvErstattungspositionen.ClearSelection() + dgvErstattungspositionen.Rows(selIndex).Selected = True + dgvErstattungspositionen.CurrentCell = dgvErstattungspositionen.SelectedRows(0).Cells("UStVEr_ID") + End If + End If + End Sub Private Sub UstCntlUSTV_AntragPosition1_EV_PREV() Handles UstCntlUSTV_AntragPosition1.EV_PREV If dgvUSTVPositionen.SelectedRows.Count > 0 Then @@ -1161,14 +1211,38 @@ Public Class frmMDM_USTVAntrag End Sub + Private Sub UstCntlUSTV_AntragErstattungen1_EV_PREV() Handles UstCntlUSTV_AntragErstattungen1.EV_PREV + If dgvErstattungspositionen.SelectedRows.Count > 0 Then + If dgvErstattungspositionen.SelectedRows(0).Index > 0 Then + UstCntlUSTV_AntragErstattungen1.Enabled = True + Dim selIndex = dgvErstattungspositionen.SelectedRows(0).Index - 1 + dgvErstattungspositionen.ClearSelection() + dgvErstattungspositionen.Rows(selIndex).Selected = True + dgvErstattungspositionen.CurrentCell = dgvErstattungspositionen.SelectedRows(0).Cells("UStVEr_ID") + End If + End If + + End Sub + Private Sub ustCntlUSTV_AntragPosition_KeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles Me.PreviewKeyDown - If e.KeyValue = Keys.PageDown Then - UstCntlUSTV_AntragPosition1_EV_NEXT() - End If - If e.KeyValue = Keys.PageUp Then - UstCntlUSTV_AntragPosition1_EV_PREV() + If posTabisSelected = True Then + If e.KeyValue = Keys.PageDown Then + UstCntlUSTV_AntragPosition1_EV_NEXT() + End If + If e.KeyValue = Keys.PageUp Then + UstCntlUSTV_AntragPosition1_EV_PREV() + End If + Else + If e.KeyValue = Keys.PageDown Then + UstCntlUSTV_AntragErstattungen1_EV_NEXT() + End If + If e.KeyValue = Keys.PageUp Then + UstCntlUSTV_AntragErstattungen1_EV_PREV() + End If + End If + End Sub Private Sub frmMDM_USTVAntrag_Shown(sender As Object, e As EventArgs) Handles Me.Shown @@ -1394,7 +1468,7 @@ Public Class frmMDM_USTVAntrag End If If UstCntlUSTV_AntragPosition1.UStV_POS.DELETE(UstCntlUSTV_AntragPosition1.UStV_POS.UStVAn_ID, UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ID) Then - reorderPositions(UstCntlUSTV_AntragPosition1.UStV_POS.UStVAn_ID) + reorderUSTVAPositions(UstCntlUSTV_AntragPosition1.UStV_POS.UStVAn_ID) End If init() @@ -1674,7 +1748,8 @@ Public Class frmMDM_USTVAntrag Dim list As New List(Of String) If dgvUSTVPositionen.SelectedRows.Count > 0 Then - For Each row As DataGridViewRow In dgvUSTVPositionen.SelectedRows + + For Each row As DataGridViewRow In dgvUSTVPositionen.SelectedRows.Cast(Of DataGridViewRow)().OrderBy(Function(dgvr) dgvr.Index) Dim pdf As String = "" pdf = getPDF(row.Cells("UStVPo_SchnittstellenNr").Value, row.Cells("UStVPo_ReNr").Value, row.Cells("UStVPo_ReDat").Value, row.Cells("UStVPo_daId").Value) @@ -1823,7 +1898,7 @@ Public Class frmMDM_USTVAntrag End Function - Private Sub reorderPositions(UStVAn_ID As Integer) + Private Sub reorderUSTVAPositions(UStVAn_ID As Integer) If UStVAn_ID < 0 Then Exit Sub @@ -1847,6 +1922,64 @@ Public Class frmMDM_USTVAntrag End Sub + Private Sub dgvUSTVPositionen_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles dgvUSTVPositionen.PreviewKeyDown + + If dgvUSTVPositionen.SelectedRows.Count <> 1 Then Exit Sub + + If (e.KeyCode) = Keys.Add AndAlso e.Control Then + + Dim id As Integer = dgvUSTVPositionen.SelectedRows(0).Cells("UStVPo_ID").Value + + initPosition(id) + + dgvUSTVPositionen.GetOrder() + + Dim USTV_POS_temp As New cUStVPositionen(UStVAn_ID, id) + + Dim USTV_POS As New VERAG_PROG_ALLGEMEIN.cUStVPositionen + USTV_POS.UStVAn_ID = USTV_POS_temp.UStVAn_ID + USTV_POS.UStVPo_ID = USTV_ANTRAG.getMaxPosNr + USTV_POS.UStVPo_ReDat = USTV_POS_temp.UStVPo_ReDat + USTV_POS.UStVPo_ReNr = USTV_POS_temp.UStVPo_ReNr + USTV_POS.UStVPo_SchnittstellenNr = -1 + USTV_POS.UStVPo_Schnittstelle = False + USTV_POS.UStVPo_Leistungsbezeichnung = USTV_POS_temp.UStVPo_Leistungsbezeichnung + USTV_POS.UStVPo_Leistender = USTV_POS_temp.UStVPo_Leistender + USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME + USTV_POS.UStVPo_USteuerbetragEUR = 0 + USTV_POS.UStVPo_USteuerbetrag = 0 + USTV_POS.UStVPo_Umrechnungskurs = 1 + USTV_POS.UStVPo_Zeitstempel = Now() + If USTV_POS.SAVE() Then init() + + dgvUSTVPositionen.SetOrder() + + End If + + + + End Sub + + + + Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControl1.SelectedIndexChanged + + If TabControl1.SelectedTab Is TabPage1 Then + init() + posTabisSelected = True + + ElseIf TabControl1.SelectedTab Is TabPage2 Then + initdgvErstattungen() + posTabisSelected = False + End If + + + picPDF.Visible = posTabisSelected + btnAntrageeinarbeiten.Enabled = posTabisSelected + cbxArchivierteEintracheNochmalsEinarbetien.Enabled = posTabisSelected + + End Sub + Private Sub setinfofields() @@ -1904,4 +2037,120 @@ Public Class frmMDM_USTVAntrag End Sub + + Private Sub Button3_Click_1(sender As Object, e As EventArgs) Handles Button3.Click + UstCntlUSTV_AntragErstattungen1.reset() + UstCntlUSTV_AntragErstattungen1.UStV_ERS = Nothing + UstCntlUSTV_AntragErstattungen1.Enabled = True + End Sub + + Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click + + If dgvErstattungspositionen.Rows.Count = 0 Then Exit Sub + If vbYes = MsgBox("Möchten Sie den Erstattungseintrag wirklich löschen?", vbYesNoCancel) Then + + If UstCntlUSTV_AntragErstattungen1.UStV_ERS.DELETE(UstCntlUSTV_AntragPosition1.UStV_POS.UStVAn_ID, UstCntlUSTV_AntragErstattungen1.UStV_ERS) Then + initdgvErstattungen() + End If + End If + End Sub + + Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click + USTV_ANTRAG.SAVE() + If IsDBNull(USTV_ANTRAG.FilialenNr) Then MsgBox("Für das Speditionsbuch muss die Filiale eingegeben werden.") : Exit Sub + If IsDBNull(USTV_ANTRAG.AbfertigungsNr) Then MsgBox("Für das Speditionsbuch muss die Abfertigungs-Nr eingegeben werden.") : Exit Sub + + Dim spedBuch As New cSpeditionsbuch(USTV_ANTRAG.FilialenNr, USTV_ANTRAG.AbfertigungsNr) + + If spedBuch.hasEntry Then MsgBox("Es existiert bereits ein Speditionsbucheintrag!" & vbNewLine & "Vorgang wird abgebrochen ") : Exit Sub + + With spedBuch + .UnterNr = 0 + .Abfertigungsdatum = Today() + .AvisUhrzeit = Now() + .Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME + .ErfassungsNr = USTV_ANTRAG.UStVAn_ID + .AnzahlSonstiges = 1 + .Abfertigungsart = 10 + .Abfertigungsanzahl = 1 + .Packstücke = "Mehrwertsteuerrückerstattung " & USTV_ANTRAG.UStVAn_LandKz & " / " & USTV_ANTRAG.UStVAn_ReDatVon & " - " & USTV_ANTRAG.UStVAn_ReDatBis + .VermittlerKundenNr = KundenNr + If .SAVE() Then MsgBox("Sped-Eintrag wurde angelegt") + + End With + End Sub + + Private Sub initdgvErstattungen() + + + With dgvErstattungspositionen + .ClearSelection() + + If UStVAn_ID <= 0 Then Exit Sub + + .SET_SQL("SELECT [UStVAn_ID] ,[UStVEr_ID],[UStVEr_USteuerbetrag],[Belegdatum],[Belegnummer],[GutschriftsDatum],[GutschriftsNr],[Berufungsdatum],[Berufungshöhe],[Berufungsgrund],[Bemerkung],[UStVEr_Umrechnungskurs],[UStVEr_USteuerbetragEUR],[UStVEr_Sachbearbeiter],[UStVEr_Zeitstempel] + FROM [tblUStVErstattung] + where UStVAn_ID=" & UStVAn_ID & " ORDER BY UStVEr_ID", "FMZOLL") + .LOAD() + .RowTemplate.Height = 20 + .AllowUserToOrderColumns = False + .AllowUserToResizeRows = False + + If .Columns.Count > 0 Then + + .Columns("UStVAn_ID").Visible = False + .Columns("UStVEr_ID").HeaderText = "Pos" + .Columns("UStVEr_ID").Width = 40 + + .Columns("Belegdatum").Width = 80 + .Columns("Belegnummer").Width = 130 + + .Columns("UStVEr_USteuerbetrag").HeaderText = "USt-Betrag" + .Columns("UStVEr_USteuerbetrag").Width = 110 + .Columns("UStVEr_USteuerbetrag").DefaultCellStyle.Format = "N2" + .Columns("UStVEr_USteuerbetrag").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight + + .Columns("GutschriftsDatum").HeaderText = "GS-Datum" + .Columns("GutschriftsNr").HeaderText = "GS-Nr" + + .Columns("GutschriftsDatum").Width = 80 + .Columns("GutschriftsNr").Width = 130 + + + .Columns("Berufungsdatum").HeaderText = "BE-Datum" + .Columns("Berufungshöhe").HeaderText = "BE-Höhe" + .Columns("Berufungsgrund").HeaderText = "BE-Grund" + + .Columns("Berufungsdatum").Width = 80 + .Columns("Berufungshöhe").Width = 100 + .Columns("Berufungsgrund").Width = 150 + .Columns("Bemerkung").Width = 200 + + .Columns("UStVEr_Umrechnungskurs").HeaderText = "Umrechnungskurs" + .Columns("UStVEr_Umrechnungskurs").Width = 60 + .Columns("UStVEr_Umrechnungskurs").DefaultCellStyle.Format = "N2" + .Columns("UStVEr_Umrechnungskurs").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight + + .Columns("UStVEr_USteuerbetragEUR").HeaderText = "USt-Betrag EUR" + .Columns("UStVEr_USteuerbetragEUR").Width = 110 + .Columns("UStVEr_USteuerbetragEUR").DefaultCellStyle.Format = "N2" + .Columns("UStVEr_USteuerbetragEUR").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight + + .Columns("UStVEr_Sachbearbeiter").HeaderText = "Sachbearbeiter" + .Columns("UStVEr_Sachbearbeiter").MinimumWidth = 100 + .Columns("UStVEr_Sachbearbeiter").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill + + .Columns("UStVEr_Zeitstempel").Visible = False + + End If + + If .RowCount < 1 Then initErstsattungsPosition(-1) + + End With + + + End Sub + + + End Class \ No newline at end of file diff --git a/SDL/USTV/usrCntlUSTV.vb b/SDL/USTV/usrCntlUSTV.vb index c9a267d6..a4f63f39 100644 --- a/SDL/USTV/usrCntlUSTV.vb +++ b/SDL/USTV/usrCntlUSTV.vb @@ -1006,6 +1006,7 @@ Public Class usrCntlUSTV Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim frm As New Form + frm.Text = "Finanzamt-Bestätigung E-Mails" Dim dgv As New DataGridView() Dim dt As DataTable = SQL.loadDgvBySql(" select [api_datetime] as erstelltAm,[api_EMail] as An ,[api_EMailCC] as CC,[api_EMailBCC] as BCC,[api_EMailSubject] as Betreff,[api_EMailAttCnt] as Anzahl_Anhänge, [api_KundenNr] as KundenNr, [api_Username] as erstelltVon from [tblAPI] where [api_apiUArt] = 'FA-Bestaetigung' AND api_progName = 'SDL'" & sqlKundeadmin & " Order by api_datetime desc", "ADMIN") @@ -1020,6 +1021,7 @@ Public Class usrCntlUSTV frm.Controls.Add(dgv) frm.StartPosition = FormStartPosition.CenterScreen frm.ShowDialog() + If dgv.ColumnCount > 0 AndAlso dgv.Columns.Contains("An") Then dgv.Columns("An").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill End If @@ -1134,7 +1136,7 @@ Public Class usrCntlUSTV Mail.HTMLBody = "
" & TextHTML & SDL.cFakturierung.getSignature("DE") & "
" If Not IsDBNull(dt_Data_selected.Rows(0).Item("E-Mail")) Then Mail.To &= dt_Data_selected.Rows(0).Item("E-Mail") & ";" - If Not IsDBNull(dt_Data_selected.Rows(0).Item("E-Mail2")) Then Mail.To &= dt_Data_selected.Rows(0).Item("E-Mail2") & ";" + 'If Not IsDBNull(dt_Data_selected.Rows(0).Item("E-Mail2")) Then Mail.To &= dt_Data_selected.Rows(0).Item("E-Mail2") & ";" If attachmentSRB Then Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VORLAGEN", "SONSTIGE", "MDM", "", "SRB_FA_BESTAETIGUNG") diff --git a/SDL/USTV/ustCntlUSTV_AntragPosition.Designer.vb b/SDL/USTV/ustCntlUSTV_AntragPosition.Designer.vb index 2db6cd7a..2a4227ce 100644 --- a/SDL/USTV/ustCntlUSTV_AntragPosition.Designer.vb +++ b/SDL/USTV/ustCntlUSTV_AntragPosition.Designer.vb @@ -1,9 +1,9 @@ - _ + Partial Class ustCntlUSTV_AntragPosition Inherits System.Windows.Forms.UserControl 'UserControl ü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 @@ -20,7 +20,7 @@ Partial Class ustCntlUSTV_AntragPosition '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() Me.tabDok = New System.Windows.Forms.TabPage() @@ -49,6 +49,7 @@ Partial Class ustCntlUSTV_AntragPosition Me.lblAenderungsdatum = New System.Windows.Forms.Label() Me.lblSachbearbeiter = New System.Windows.Forms.Label() Me.pnl = New System.Windows.Forms.Panel() + Me.lblWarning = New System.Windows.Forms.Label() Me.btnLeistenderSave = New System.Windows.Forms.Button() Me.sbLeistender = New VERAG_PROG_ALLGEMEIN.MySearchBox() Me.pnlAdresse = New System.Windows.Forms.Panel() @@ -387,6 +388,7 @@ Partial Class ustCntlUSTV_AntragPosition 'pnl ' Me.pnl.BackColor = System.Drawing.Color.White + Me.pnl.Controls.Add(Me.lblWarning) Me.pnl.Controls.Add(Me.btnLeistenderSave) Me.pnl.Controls.Add(Me.sbLeistender) Me.pnl.Controls.Add(Me.pnlAdresse) @@ -419,6 +421,16 @@ Partial Class ustCntlUSTV_AntragPosition Me.pnl.Size = New System.Drawing.Size(1300, 239) Me.pnl.TabIndex = 1 ' + 'lblWarning + ' + Me.lblWarning.AutoSize = True + Me.lblWarning.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblWarning.ForeColor = System.Drawing.Color.Red + Me.lblWarning.Location = New System.Drawing.Point(14, 167) + Me.lblWarning.Name = "lblWarning" + Me.lblWarning.Size = New System.Drawing.Size(0, 16) + Me.lblWarning.TabIndex = 23 + ' 'btnLeistenderSave ' Me.btnLeistenderSave.BackgroundImage = Global.SDL.My.Resources.Resources.save @@ -699,7 +711,7 @@ Partial Class ustCntlUSTV_AntragPosition Me.txtRgDatum._DateTimeOnly = False Me.txtRgDatum._numbersOnly = False Me.txtRgDatum._numbersOnlyKommastellen = "" - Me.txtRgDatum._numbersOnlyTrennzeichen = True + Me.txtRgDatum._numbersOnlyTrennzeichen = False Me.txtRgDatum._Prozent = False Me.txtRgDatum._ShortDateNew = False Me.txtRgDatum._ShortDateOnly = False @@ -707,7 +719,7 @@ Partial Class ustCntlUSTV_AntragPosition Me.txtRgDatum._TimeOnly_Seconds = False Me.txtRgDatum._value = "" Me.txtRgDatum._Waehrung = False - Me.txtRgDatum._WaehrungZeichen = True + Me.txtRgDatum._WaehrungZeichen = False Me.txtRgDatum.ForeColor = System.Drawing.Color.Red Me.txtRgDatum.Location = New System.Drawing.Point(17, 49) Me.txtRgDatum.MaxLength = 10 @@ -784,8 +796,8 @@ Partial Class ustCntlUSTV_AntragPosition Me.txtUSTBetragEUR._TimeOnly = False Me.txtUSTBetragEUR._TimeOnly_Seconds = False Me.txtUSTBetragEUR._value = "" - Me.txtUSTBetragEUR._Waehrung = False - Me.txtUSTBetragEUR._WaehrungZeichen = True + Me.txtUSTBetragEUR._Waehrung = True + Me.txtUSTBetragEUR._WaehrungZeichen = False Me.txtUSTBetragEUR.ForeColor = System.Drawing.Color.Red Me.txtUSTBetragEUR.Location = New System.Drawing.Point(294, 130) Me.txtUSTBetragEUR.MaxLength = 10 @@ -799,7 +811,7 @@ Partial Class ustCntlUSTV_AntragPosition 'txtUmrechnungskurs ' Me.txtUmrechnungskurs._DateTimeOnly = False - Me.txtUmrechnungskurs._numbersOnly = True + Me.txtUmrechnungskurs._numbersOnly = False Me.txtUmrechnungskurs._numbersOnlyKommastellen = "" Me.txtUmrechnungskurs._numbersOnlyTrennzeichen = True Me.txtUmrechnungskurs._Prozent = False @@ -809,7 +821,7 @@ Partial Class ustCntlUSTV_AntragPosition Me.txtUmrechnungskurs._TimeOnly_Seconds = False Me.txtUmrechnungskurs._value = "" Me.txtUmrechnungskurs._Waehrung = False - Me.txtUmrechnungskurs._WaehrungZeichen = True + Me.txtUmrechnungskurs._WaehrungZeichen = False Me.txtUmrechnungskurs.ForeColor = System.Drawing.Color.Red Me.txtUmrechnungskurs.Location = New System.Drawing.Point(177, 130) Me.txtUmrechnungskurs.MaxLength = 10 @@ -833,7 +845,7 @@ Partial Class ustCntlUSTV_AntragPosition Me.txtUSTBetrag._TimeOnly_Seconds = False Me.txtUSTBetrag._value = "" Me.txtUSTBetrag._Waehrung = False - Me.txtUSTBetrag._WaehrungZeichen = True + Me.txtUSTBetrag._WaehrungZeichen = False Me.txtUSTBetrag.ForeColor = System.Drawing.Color.Red Me.txtUSTBetrag.Location = New System.Drawing.Point(17, 130) Me.txtUSTBetrag.MaxLength = 10 @@ -1017,4 +1029,5 @@ Partial Class ustCntlUSTV_AntragPosition Friend WithEvents pnlAdresse As Panel Friend WithEvents sbLeistender As VERAG_PROG_ALLGEMEIN.MySearchBox Friend WithEvents btnLeistenderSave As Button + Friend WithEvents lblWarning As Label End Class diff --git a/SDL/USTV/ustCntlUSTV_AntragPosition.vb b/SDL/USTV/ustCntlUSTV_AntragPosition.vb index 43ead722..fa91b51a 100644 --- a/SDL/USTV/ustCntlUSTV_AntragPosition.vb +++ b/SDL/USTV/ustCntlUSTV_AntragPosition.vb @@ -85,38 +85,36 @@ Public Class ustCntlUSTV_AntragPosition UStV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME UStV_POS.UStVPo_Zeitstempel = Now - If txtRgNr._value <> "" Then - UStV_POS.UStVPo_ReNr = txtRgNr._value + If txtRgNr.Text <> "" Then + UStV_POS.UStVPo_ReNr = txtRgNr.Text Else save = False End If - If txtRgDatum._value <> "" AndAlso IsDate(txtRgDatum._value) Then + If txtRgDatum.Text <> "" AndAlso IsDate(txtRgDatum.Text) Then UStV_POS.UStVPo_ReDat = txtRgDatum._value Else save = False End If - If txtUSTBetrag._value <> "" Then - UStV_POS.UStVPo_USteuerbetrag = txtUSTBetrag._value.Replace(",", ".") + If txtUSTBetrag.Text <> "" Then + UStV_POS.UStVPo_USteuerbetrag = txtUSTBetrag.Text.Replace(",", ".") Else save = False End If - If txtUSTBetragEUR._value <> "" Then - UStV_POS.UStVPo_USteuerbetragEUR = txtUSTBetragEUR._value.Replace(",", ".") + If txtUSTBetragEUR.Text <> "" Then + UStV_POS.UStVPo_USteuerbetragEUR = txtUSTBetragEUR.Text.Replace(",", ".") Else save = False End If - If txtLeistungsbezeichnung._value <> "" Then - UStV_POS.UStVPo_Leistungsbezeichnung = txtLeistungsbezeichnung._value + If txtLeistungsbezeichnung.Text <> "" Then + UStV_POS.UStVPo_Leistungsbezeichnung = txtLeistungsbezeichnung.Text Else save = False End If - If Not (txtUmrechnungskurs.Text = "" And txtUmrechnungskurs._value = "") Then + If Not txtUmrechnungskurs.Text = "" Then If txtUmrechnungskurs.Text <> "" Then UStV_POS.UStVPo_Umrechnungskurs = txtUmrechnungskurs.Text.Replace(",", ".") - ElseIf txtUmrechnungskurs._value <> "" Then - UStV_POS.UStVPo_Umrechnungskurs = txtUmrechnungskurs._value.Replace(",", ".") End If Else save = False @@ -137,17 +135,6 @@ Public Class ustCntlUSTV_AntragPosition End If End Sub - Private Sub txtUmrechnungskurs_TextChanged(sender As Object, e As EventArgs) Handles txtUmrechnungskurs.TextChanged - Dim gridAktivTMP = gridAktiv - gridAktiv = False - txtUSTBetragEUR._value = "" - If IsNumeric(txtUSTBetrag._value) AndAlso IsNumeric(txtUmrechnungskurs._value) Then - txtUSTBetragEUR.Text = Math.Floor((txtUSTBetrag._value / txtUmrechnungskurs._value) * 100 + 0.5) / 100 - 'txtUSTBetragEUR._value = txtUSTBetrag._value * txtUmrechnungskurs._value - End If - gridAktiv = gridAktivTMP - End Sub - Function save() Dim setSave As Boolean = True getValues(UStV_POS, setSave) @@ -161,6 +148,7 @@ Public Class ustCntlUSTV_AntragPosition If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_USTVA_bearbeiten", Me.FindForm) Then Exit Sub If gridAktiv And Me.FindForm IsNot Nothing Then + 'If sender Is txtLieferung Then ' If Not PROG.checkSDLNrPartnerKdNr(kdNr, SDLNr) Then MsgBox("Bitte geben Sie die Partner-Kundennummer im Kundenblatt oder im FM-ZOLL ein!") 'End If @@ -170,7 +158,7 @@ Public Class ustCntlUSTV_AntragPosition 'values_changed() Else - txtChanged = True + 'txtChanged = True End If End If @@ -179,58 +167,6 @@ Public Class ustCntlUSTV_AntragPosition End Sub - Private Sub txtRgDatum_KeyUp(sender As Object, e As KeyEventArgs) Handles txtRgDatum.KeyUp, txtRgNr.KeyUp, txtUSTBetrag.KeyUp, txtUmrechnungskurs.KeyUp, txtUSTBetragEUR.KeyUp, sbLeistender.KeyUp - - If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_USTVA_bearbeiten", Me.FindForm) Then Exit Sub - - If gridAktiv And Me.FindForm IsNot Nothing Then - - If sender Is txtUSTBetrag Then - - If IsNumeric(txtUSTBetrag._value) AndAlso IsNumeric(txtUmrechnungskurs._value) Then - txtUSTBetragEUR.Text = Math.Floor((txtUSTBetrag._value / txtUmrechnungskurs._value) * 100 + 0.5) / 100 - 'values_changed() - End If - - ElseIf sender Is txtUSTBetragEUR Then - - 'so herum nicht umrechnen!!!! - 'If IsNumeric(txtUSTBetragEUR._value) AndAlso IsNumeric(txtUmrechnungskurs._value) Then - ' txtUSTBetrag.Text = Math.Floor((txtUSTBetragEUR._value * txtUmrechnungskurs._value) * 100 + 0.5) / 100 - ' 'values_changed() - 'End If - - ElseIf sender Is sbLeistender Then - If e.KeyValue = 9 Then - e.SuppressKeyPress = True - If UStV_Leist.hasEntry Then - UStV_POS.UStVPo_Leistender = UStV_Leist.UStV_Leistender - values_changed() - 'UStV_POS.SAVE() - 'RaiseEvent CHANGED(UStV_POS.UStVPo_ID) - End If - - End If - - - End If - If e.KeyValue = 9 Then 'SHIFT - e.SuppressKeyPress = True - If txtChanged Then - values_changed() - txtChanged = False - End If - - - End If - - End If - - - - End Sub - - Sub values_changed() lblSachbearbeiter.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME lblAenderungsdatum.Text = Now.ToString("dd.MM.yyyy HH:mm") @@ -393,4 +329,87 @@ Public Class ustCntlUSTV_AntragPosition End Sub + Private Sub txtUSTBetrag_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles txtUSTBetrag.PreviewKeyDown, txtUSTBetragEUR.PreviewKeyDown, txtRgDatum.PreviewKeyDown, txtRgNr.PreviewKeyDown, txtUmrechnungskurs.PreviewKeyDown + If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_USTVA_bearbeiten", Me.FindForm) Then Exit Sub + + If gridAktiv And Me.FindForm IsNot Nothing Then + + ' Eingabeprüfung + If e.KeyValue = 9 Then + + lblWarning.Text = "" + If sender Is txtUSTBetrag Or sender Is txtUSTBetragEUR Or sender Is txtUmrechnungskurs Then + + If txtUSTBetrag.Text = "" Then + lblWarning.Text = "Bitte Umsatzsteuerbetrag eingeben." + Exit Sub + End If + + End If + + + If sender Is txtUSTBetrag Then + If IsNumeric(txtUSTBetrag.Text) AndAlso IsNumeric(txtUmrechnungskurs.Text) Then + txtUSTBetragEUR.Text = Math.Floor((txtUSTBetrag.Text / txtUmrechnungskurs.Text) * 100 + 0.5) / 100 + txtChanged = True + End If + + ElseIf sender Is txtUSTBetragEUR Then + + 'so herum nicht umrechnen!!!! + 'If IsNumeric(txtUSTBetragEUR._value) AndAlso IsNumeric(txtUmrechnungskurs._value) Then + ' txtUSTBetrag.Text = Math.Floor((txtUSTBetragEUR._value * txtUmrechnungskurs._value) * 100 + 0.5) / 100 + ' 'values_changed() + 'End If + + + If IsNumeric(txtUSTBetragEUR.Text) AndAlso IsNumeric(txtUSTBetrag.Text) Then + + Dim zahl1 = txtUSTBetragEUR.Text / txtUSTBetrag.Text + + txtUmrechnungskurs.Text = zahl1 + txtChanged = True + End If + + ElseIf sender Is txtUmrechnungskurs Then + + + If IsNumeric(txtUSTBetrag.Text) AndAlso IsNumeric(txtUmrechnungskurs._value) Then + txtUSTBetragEUR.Text = Math.Floor((txtUSTBetrag.Text / txtUmrechnungskurs.Text) * 100 + 0.5) / 100 + txtChanged = True + End If + + + + ElseIf sender Is sbLeistender Then + + + + If UStV_Leist.hasEntry Then + UStV_POS.UStVPo_Leistender = UStV_Leist.UStV_Leistender + txtChanged = True + 'UStV_POS.SAVE() + 'RaiseEvent CHANGED(UStV_POS.UStVPo_ID) + End If + + + + + End If + + + + + End If + + If txtChanged Then + values_changed() + txtChanged = False + End If + + + End If + + End Sub + End Class diff --git a/SDL/USTV/ustCntlUSTV_ErstattungPosition .Designer.vb b/SDL/USTV/ustCntlUSTV_ErstattungPosition .Designer.vb new file mode 100644 index 00000000..2efe8331 --- /dev/null +++ b/SDL/USTV/ustCntlUSTV_ErstattungPosition .Designer.vb @@ -0,0 +1,679 @@ + +Partial Class ustCntlUSTV_ErstattungPosition + Inherits System.Windows.Forms.UserControl + + 'UserControl ü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.Label8 = New System.Windows.Forms.Label() + Me.Label7 = New System.Windows.Forms.Label() + Me.Panel2 = New System.Windows.Forms.Panel() + Me.Label9 = New System.Windows.Forms.Label() + Me.Label1 = New System.Windows.Forms.Label() + Me.btnBildAuf = New System.Windows.Forms.Button() + Me.Button1 = New System.Windows.Forms.Button() + Me.Label2 = New System.Windows.Forms.Label() + Me.Label3 = New System.Windows.Forms.Label() + Me.Label6 = New System.Windows.Forms.Label() + Me.Label10 = New System.Windows.Forms.Label() + Me.Label11 = New System.Windows.Forms.Label() + Me.Label12 = New System.Windows.Forms.Label() + Me.Label13 = New System.Windows.Forms.Label() + Me.Label4 = New System.Windows.Forms.Label() + Me.Label5 = New System.Windows.Forms.Label() + Me.lblAenderungsdatum = New System.Windows.Forms.Label() + Me.lblSachbearbeiter = New System.Windows.Forms.Label() + Me.pnl = New System.Windows.Forms.Panel() + Me.Label19 = New System.Windows.Forms.Label() + Me.Label18 = New System.Windows.Forms.Label() + Me.txtGuNr = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.txtBerufungsdatum = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.lblWarning = New System.Windows.Forms.Label() + Me.txtBemerkung = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.Label14 = New System.Windows.Forms.Label() + Me.Label15 = New System.Windows.Forms.Label() + Me.txtBerufungshoehe = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.txtBelegNr = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.Label16 = New System.Windows.Forms.Label() + Me.txtBerurunfgrund = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.txtBelegDatum = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.txtGuDatum = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.txtUSTBetragEUR = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.txtUmrechnungskurs = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.txtUSTBetrag = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.Panel2.SuspendLayout() + Me.pnl.SuspendLayout() + Me.Panel1.SuspendLayout() + Me.SuspendLayout() + ' + 'Label8 + ' + Me.Label8.AutoSize = True + Me.Label8.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label8.ForeColor = System.Drawing.Color.White + Me.Label8.Location = New System.Drawing.Point(6, 9) + Me.Label8.Name = "Label8" + Me.Label8.Size = New System.Drawing.Size(46, 13) + Me.Label8.TabIndex = 0 + Me.Label8.Text = "Details" + ' + 'Label7 + ' + Me.Label7.AutoSize = True + Me.Label7.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.5!) + Me.Label7.Location = New System.Drawing.Point(14, 31) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(83, 15) + Me.Label7.TabIndex = 2 + Me.Label7.Text = "Beleg-Datum:" + ' + 'Panel2 + ' + Me.Panel2.BackColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) + Me.Panel2.Controls.Add(Me.Label8) + Me.Panel2.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel2.Location = New System.Drawing.Point(0, 0) + Me.Panel2.Name = "Panel2" + Me.Panel2.Size = New System.Drawing.Size(1300, 30) + Me.Panel2.TabIndex = 0 + ' + 'Label9 + ' + Me.Label9.AutoSize = True + Me.Label9.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label9.Location = New System.Drawing.Point(174, 33) + Me.Label9.Name = "Label9" + Me.Label9.Size = New System.Drawing.Size(54, 13) + Me.Label9.TabIndex = 3 + Me.Label9.Text = "Beleg-Nr.:" + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label1.Location = New System.Drawing.Point(504, 14) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(62, 13) + Me.Label1.TabIndex = 1 + Me.Label1.Text = "Gutschrift" + ' + 'btnBildAuf + ' + Me.btnBildAuf.BackgroundImage = Global.SDL.My.Resources.Resources.pfeil_oben + Me.btnBildAuf.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center + Me.btnBildAuf.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnBildAuf.Location = New System.Drawing.Point(16, 7) + Me.btnBildAuf.Name = "btnBildAuf" + Me.btnBildAuf.Size = New System.Drawing.Size(71, 77) + Me.btnBildAuf.TabIndex = 12 + Me.btnBildAuf.Text = "Bild auf" + Me.btnBildAuf.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnBildAuf.UseVisualStyleBackColor = True + ' + 'Button1 + ' + Me.Button1.BackgroundImage = Global.SDL.My.Resources.Resources.pfeil_unten + Me.Button1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center + Me.Button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button1.Location = New System.Drawing.Point(16, 90) + Me.Button1.Name = "Button1" + Me.Button1.Size = New System.Drawing.Size(71, 77) + Me.Button1.TabIndex = 13 + Me.Button1.Text = "Bild ab" + Me.Button1.TextAlign = System.Drawing.ContentAlignment.TopCenter + Me.Button1.UseVisualStyleBackColor = True + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.5!) + Me.Label2.Location = New System.Drawing.Point(504, 31) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(108, 15) + Me.Label2.TabIndex = 4 + Me.Label2.Text = "Gutschrifts-Datum:" + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.5!) + Me.Label3.Location = New System.Drawing.Point(692, 31) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(87, 15) + Me.Label3.TabIndex = 5 + Me.Label3.Text = "Gutschrifts-Nr.:" + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label6.Location = New System.Drawing.Point(14, 14) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(65, 13) + Me.Label6.TabIndex = 0 + Me.Label6.Text = "Rechnung" + ' + 'Label10 + ' + Me.Label10.AutoSize = True + Me.Label10.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label10.Location = New System.Drawing.Point(14, 92) + Me.Label10.Name = "Label10" + Me.Label10.Size = New System.Drawing.Size(65, 13) + Me.Label10.TabIndex = 10 + Me.Label10.Text = "Rechnung" + ' + 'Label11 + ' + Me.Label11.AutoSize = True + Me.Label11.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.5!) + Me.Label11.Location = New System.Drawing.Point(14, 112) + Me.Label11.Name = "Label11" + Me.Label11.Size = New System.Drawing.Size(70, 15) + Me.Label11.TabIndex = 11 + Me.Label11.Text = "USt-Betrag:" + ' + 'Label12 + ' + Me.Label12.AutoSize = True + Me.Label12.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.5!) + Me.Label12.Location = New System.Drawing.Point(174, 112) + Me.Label12.Name = "Label12" + Me.Label12.Size = New System.Drawing.Size(111, 15) + Me.Label12.TabIndex = 12 + Me.Label12.Text = "Umrechnungskurs:" + ' + 'Label13 + ' + Me.Label13.AutoSize = True + Me.Label13.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.5!) + Me.Label13.Location = New System.Drawing.Point(291, 112) + Me.Label13.Name = "Label13" + Me.Label13.Size = New System.Drawing.Size(96, 15) + Me.Label13.TabIndex = 13 + Me.Label13.Text = "USt-Betrag EUR" + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.5!) + Me.Label4.Location = New System.Drawing.Point(14, 191) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(94, 15) + Me.Label4.TabIndex = 19 + Me.Label4.Text = "Sachbearbeiter:" + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.5!) + Me.Label5.Location = New System.Drawing.Point(14, 207) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(104, 15) + Me.Label5.TabIndex = 21 + Me.Label5.Text = "Änderungsdatum:" + ' + 'lblAenderungsdatum + ' + Me.lblAenderungsdatum.AutoSize = True + Me.lblAenderungsdatum.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.5!) + Me.lblAenderungsdatum.Location = New System.Drawing.Point(127, 207) + Me.lblAenderungsdatum.Name = "lblAenderungsdatum" + Me.lblAenderungsdatum.Size = New System.Drawing.Size(11, 15) + Me.lblAenderungsdatum.TabIndex = 22 + Me.lblAenderungsdatum.Text = "-" + ' + 'lblSachbearbeiter + ' + Me.lblSachbearbeiter.AutoSize = True + Me.lblSachbearbeiter.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.5!) + Me.lblSachbearbeiter.Location = New System.Drawing.Point(127, 191) + Me.lblSachbearbeiter.Name = "lblSachbearbeiter" + Me.lblSachbearbeiter.Size = New System.Drawing.Size(11, 15) + Me.lblSachbearbeiter.TabIndex = 20 + Me.lblSachbearbeiter.Text = "-" + ' + 'pnl + ' + Me.pnl.BackColor = System.Drawing.Color.White + Me.pnl.Controls.Add(Me.Label19) + Me.pnl.Controls.Add(Me.Label18) + Me.pnl.Controls.Add(Me.txtGuNr) + Me.pnl.Controls.Add(Me.txtBerufungsdatum) + Me.pnl.Controls.Add(Me.lblWarning) + Me.pnl.Controls.Add(Me.txtBemerkung) + Me.pnl.Controls.Add(Me.Label14) + Me.pnl.Controls.Add(Me.Label15) + Me.pnl.Controls.Add(Me.Label6) + Me.pnl.Controls.Add(Me.Label9) + Me.pnl.Controls.Add(Me.lblAenderungsdatum) + Me.pnl.Controls.Add(Me.txtBerufungshoehe) + Me.pnl.Controls.Add(Me.txtBelegNr) + Me.pnl.Controls.Add(Me.Label16) + Me.pnl.Controls.Add(Me.lblSachbearbeiter) + Me.pnl.Controls.Add(Me.txtBerurunfgrund) + Me.pnl.Controls.Add(Me.Label7) + Me.pnl.Controls.Add(Me.Label5) + Me.pnl.Controls.Add(Me.txtBelegDatum) + Me.pnl.Controls.Add(Me.Label4) + Me.pnl.Controls.Add(Me.Label1) + Me.pnl.Controls.Add(Me.txtGuDatum) + Me.pnl.Controls.Add(Me.txtUSTBetragEUR) + Me.pnl.Controls.Add(Me.Label2) + Me.pnl.Controls.Add(Me.Label13) + Me.pnl.Controls.Add(Me.Label3) + Me.pnl.Controls.Add(Me.txtUmrechnungskurs) + Me.pnl.Controls.Add(Me.Label11) + Me.pnl.Controls.Add(Me.Label12) + Me.pnl.Controls.Add(Me.txtUSTBetrag) + Me.pnl.Controls.Add(Me.Label10) + Me.pnl.Dock = System.Windows.Forms.DockStyle.Fill + Me.pnl.Location = New System.Drawing.Point(0, 30) + Me.pnl.Name = "pnl" + Me.pnl.Size = New System.Drawing.Size(1300, 235) + Me.pnl.TabIndex = 1 + ' + 'Label19 + ' + Me.Label19.AutoSize = True + Me.Label19.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.5!) + Me.Label19.Location = New System.Drawing.Point(504, 112) + Me.Label19.Name = "Label19" + Me.Label19.Size = New System.Drawing.Size(107, 15) + Me.Label19.TabIndex = 34 + Me.Label19.Text = "Berufungs-Datum:" + ' + 'Label18 + ' + Me.Label18.AutoSize = True + Me.Label18.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label18.Location = New System.Drawing.Point(504, 92) + Me.Label18.Name = "Label18" + Me.Label18.Size = New System.Drawing.Size(58, 13) + Me.Label18.TabIndex = 33 + Me.Label18.Text = "Berufung" + ' + 'txtGuNr + ' + Me.txtGuNr._DateTimeOnly = False + Me.txtGuNr._numbersOnly = False + Me.txtGuNr._numbersOnlyKommastellen = "" + Me.txtGuNr._numbersOnlyTrennzeichen = True + Me.txtGuNr._Prozent = False + Me.txtGuNr._ShortDateNew = False + Me.txtGuNr._ShortDateOnly = False + Me.txtGuNr._TimeOnly = False + Me.txtGuNr._TimeOnly_Seconds = False + Me.txtGuNr._value = Nothing + Me.txtGuNr._Waehrung = False + Me.txtGuNr._WaehrungZeichen = False + Me.txtGuNr.Location = New System.Drawing.Point(695, 49) + Me.txtGuNr.MaxLength = 22 + Me.txtGuNr.MaxLineLength = -1 + Me.txtGuNr.MaxLines_Warning = "" + Me.txtGuNr.MaxLines_Warning_Label = Nothing + Me.txtGuNr.Name = "txtGuNr" + Me.txtGuNr.Size = New System.Drawing.Size(182, 20) + Me.txtGuNr.TabIndex = 4 + ' + 'txtBerufungsdatum + ' + Me.txtBerufungsdatum._DateTimeOnly = False + Me.txtBerufungsdatum._numbersOnly = False + Me.txtBerufungsdatum._numbersOnlyKommastellen = "" + Me.txtBerufungsdatum._numbersOnlyTrennzeichen = True + Me.txtBerufungsdatum._Prozent = False + Me.txtBerufungsdatum._ShortDateNew = False + Me.txtBerufungsdatum._ShortDateOnly = False + Me.txtBerufungsdatum._TimeOnly = False + Me.txtBerufungsdatum._TimeOnly_Seconds = False + Me.txtBerufungsdatum._value = "" + Me.txtBerufungsdatum._Waehrung = False + Me.txtBerufungsdatum._WaehrungZeichen = True + Me.txtBerufungsdatum.ForeColor = System.Drawing.Color.Red + Me.txtBerufungsdatum.Location = New System.Drawing.Point(507, 130) + Me.txtBerufungsdatum.MaxLength = 50 + Me.txtBerufungsdatum.MaxLineLength = -1 + Me.txtBerufungsdatum.MaxLines_Warning = "" + Me.txtBerufungsdatum.MaxLines_Warning_Label = Nothing + Me.txtBerufungsdatum.Name = "txtBerufungsdatum" + Me.txtBerufungsdatum.Size = New System.Drawing.Size(169, 20) + Me.txtBerufungsdatum.TabIndex = 8 + ' + 'lblWarning + ' + Me.lblWarning.AutoSize = True + Me.lblWarning.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblWarning.ForeColor = System.Drawing.Color.Red + Me.lblWarning.Location = New System.Drawing.Point(14, 167) + Me.lblWarning.Name = "lblWarning" + Me.lblWarning.Size = New System.Drawing.Size(0, 16) + Me.lblWarning.TabIndex = 23 + ' + 'txtBemerkung + ' + Me.txtBemerkung._DateTimeOnly = False + Me.txtBemerkung._numbersOnly = False + Me.txtBemerkung._numbersOnlyKommastellen = "" + Me.txtBemerkung._numbersOnlyTrennzeichen = True + Me.txtBemerkung._Prozent = False + Me.txtBemerkung._ShortDateNew = False + Me.txtBemerkung._ShortDateOnly = False + Me.txtBemerkung._TimeOnly = False + Me.txtBemerkung._TimeOnly_Seconds = False + Me.txtBemerkung._value = "" + Me.txtBemerkung._Waehrung = False + Me.txtBemerkung._WaehrungZeichen = True + Me.txtBemerkung.ForeColor = System.Drawing.Color.Red + Me.txtBemerkung.Location = New System.Drawing.Point(507, 179) + Me.txtBemerkung.MaxLength = 50 + Me.txtBemerkung.MaxLineLength = -1 + Me.txtBemerkung.MaxLines_Warning = "" + Me.txtBemerkung.MaxLines_Warning_Label = Nothing + Me.txtBemerkung.Name = "txtBemerkung" + Me.txtBemerkung.Size = New System.Drawing.Size(458, 20) + Me.txtBemerkung.TabIndex = 11 + ' + 'Label14 + ' + Me.Label14.AutoSize = True + Me.Label14.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.5!) + Me.Label14.Location = New System.Drawing.Point(692, 112) + Me.Label14.Name = "Label14" + Me.Label14.Size = New System.Drawing.Size(95, 15) + Me.Label14.TabIndex = 23 + Me.Label14.Text = "Berufungsgrund" + ' + 'Label15 + ' + Me.Label15.AutoSize = True + Me.Label15.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.5!) + Me.Label15.Location = New System.Drawing.Point(863, 112) + Me.Label15.Name = "Label15" + Me.Label15.Size = New System.Drawing.Size(91, 15) + Me.Label15.TabIndex = 25 + Me.Label15.Text = "Berufungshöhe" + ' + 'txtBerufungshoehe + ' + Me.txtBerufungshoehe._DateTimeOnly = False + Me.txtBerufungshoehe._numbersOnly = False + Me.txtBerufungshoehe._numbersOnlyKommastellen = "" + Me.txtBerufungshoehe._numbersOnlyTrennzeichen = True + Me.txtBerufungshoehe._Prozent = False + Me.txtBerufungshoehe._ShortDateNew = False + Me.txtBerufungshoehe._ShortDateOnly = False + Me.txtBerufungshoehe._TimeOnly = False + Me.txtBerufungshoehe._TimeOnly_Seconds = False + Me.txtBerufungshoehe._value = "" + Me.txtBerufungshoehe._Waehrung = False + Me.txtBerufungshoehe._WaehrungZeichen = True + Me.txtBerufungshoehe.ForeColor = System.Drawing.Color.Red + Me.txtBerufungshoehe.Location = New System.Drawing.Point(866, 130) + Me.txtBerufungshoehe.MaxLength = 10 + Me.txtBerufungshoehe.MaxLineLength = -1 + Me.txtBerufungshoehe.MaxLines_Warning = "" + Me.txtBerufungshoehe.MaxLines_Warning_Label = Nothing + Me.txtBerufungshoehe.Name = "txtBerufungshoehe" + Me.txtBerufungshoehe.Size = New System.Drawing.Size(99, 20) + Me.txtBerufungshoehe.TabIndex = 10 + ' + 'txtBelegNr + ' + Me.txtBelegNr._DateTimeOnly = False + Me.txtBelegNr._numbersOnly = False + Me.txtBelegNr._numbersOnlyKommastellen = "" + Me.txtBelegNr._numbersOnlyTrennzeichen = True + Me.txtBelegNr._Prozent = False + Me.txtBelegNr._ShortDateNew = False + Me.txtBelegNr._ShortDateOnly = False + Me.txtBelegNr._TimeOnly = False + Me.txtBelegNr._TimeOnly_Seconds = False + Me.txtBelegNr._value = Nothing + Me.txtBelegNr._Waehrung = False + Me.txtBelegNr._WaehrungZeichen = False + Me.txtBelegNr.Location = New System.Drawing.Point(177, 49) + Me.txtBelegNr.MaxLength = 250 + Me.txtBelegNr.MaxLineLength = -1 + Me.txtBelegNr.MaxLines_Warning = "" + Me.txtBelegNr.MaxLines_Warning_Label = Nothing + Me.txtBelegNr.Name = "txtBelegNr" + Me.txtBelegNr.Size = New System.Drawing.Size(183, 20) + Me.txtBelegNr.TabIndex = 2 + ' + 'Label16 + ' + Me.Label16.AutoSize = True + Me.Label16.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.5!) + Me.Label16.Location = New System.Drawing.Point(504, 161) + Me.Label16.Name = "Label16" + Me.Label16.Size = New System.Drawing.Size(71, 15) + Me.Label16.TabIndex = 27 + Me.Label16.Text = "Bemerkung" + ' + 'txtBerurunfgrund + ' + Me.txtBerurunfgrund._DateTimeOnly = False + Me.txtBerurunfgrund._numbersOnly = False + Me.txtBerurunfgrund._numbersOnlyKommastellen = "" + Me.txtBerurunfgrund._numbersOnlyTrennzeichen = True + Me.txtBerurunfgrund._Prozent = False + Me.txtBerurunfgrund._ShortDateNew = False + Me.txtBerurunfgrund._ShortDateOnly = False + Me.txtBerurunfgrund._TimeOnly = False + Me.txtBerurunfgrund._TimeOnly_Seconds = False + Me.txtBerurunfgrund._value = "" + Me.txtBerurunfgrund._Waehrung = False + Me.txtBerurunfgrund._WaehrungZeichen = True + Me.txtBerurunfgrund.ForeColor = System.Drawing.Color.Red + Me.txtBerurunfgrund.Location = New System.Drawing.Point(695, 130) + Me.txtBerurunfgrund.MaxLength = 50 + Me.txtBerurunfgrund.MaxLineLength = -1 + Me.txtBerurunfgrund.MaxLines_Warning = "" + Me.txtBerurunfgrund.MaxLines_Warning_Label = Nothing + Me.txtBerurunfgrund.Name = "txtBerurunfgrund" + Me.txtBerurunfgrund.Size = New System.Drawing.Size(154, 20) + Me.txtBerurunfgrund.TabIndex = 9 + ' + 'txtBelegDatum + ' + Me.txtBelegDatum._DateTimeOnly = False + Me.txtBelegDatum._numbersOnly = False + Me.txtBelegDatum._numbersOnlyKommastellen = "" + Me.txtBelegDatum._numbersOnlyTrennzeichen = False + Me.txtBelegDatum._Prozent = False + Me.txtBelegDatum._ShortDateNew = False + Me.txtBelegDatum._ShortDateOnly = False + Me.txtBelegDatum._TimeOnly = False + Me.txtBelegDatum._TimeOnly_Seconds = False + Me.txtBelegDatum._value = "" + Me.txtBelegDatum._Waehrung = False + Me.txtBelegDatum._WaehrungZeichen = False + Me.txtBelegDatum.ForeColor = System.Drawing.Color.Red + Me.txtBelegDatum.Location = New System.Drawing.Point(17, 49) + Me.txtBelegDatum.MaxLength = 10 + Me.txtBelegDatum.MaxLineLength = -1 + Me.txtBelegDatum.MaxLines_Warning = "" + Me.txtBelegDatum.MaxLines_Warning_Label = Nothing + Me.txtBelegDatum.Name = "txtBelegDatum" + Me.txtBelegDatum.Size = New System.Drawing.Size(154, 20) + Me.txtBelegDatum.TabIndex = 1 + ' + 'txtGuDatum + ' + Me.txtGuDatum._DateTimeOnly = False + Me.txtGuDatum._numbersOnly = False + Me.txtGuDatum._numbersOnlyKommastellen = "" + Me.txtGuDatum._numbersOnlyTrennzeichen = True + Me.txtGuDatum._Prozent = False + Me.txtGuDatum._ShortDateNew = False + Me.txtGuDatum._ShortDateOnly = False + Me.txtGuDatum._TimeOnly = False + Me.txtGuDatum._TimeOnly_Seconds = False + Me.txtGuDatum._value = Nothing + Me.txtGuDatum._Waehrung = False + Me.txtGuDatum._WaehrungZeichen = False + Me.txtGuDatum.Location = New System.Drawing.Point(507, 49) + Me.txtGuDatum.MaxLength = 22 + Me.txtGuDatum.MaxLineLength = -1 + Me.txtGuDatum.MaxLines_Warning = "" + Me.txtGuDatum.MaxLines_Warning_Label = Nothing + Me.txtGuDatum.Name = "txtGuDatum" + Me.txtGuDatum.Size = New System.Drawing.Size(182, 20) + Me.txtGuDatum.TabIndex = 3 + ' + 'txtUSTBetragEUR + ' + Me.txtUSTBetragEUR._DateTimeOnly = False + Me.txtUSTBetragEUR._numbersOnly = False + Me.txtUSTBetragEUR._numbersOnlyKommastellen = "" + Me.txtUSTBetragEUR._numbersOnlyTrennzeichen = False + Me.txtUSTBetragEUR._Prozent = False + Me.txtUSTBetragEUR._ShortDateNew = False + Me.txtUSTBetragEUR._ShortDateOnly = False + Me.txtUSTBetragEUR._TimeOnly = False + Me.txtUSTBetragEUR._TimeOnly_Seconds = False + Me.txtUSTBetragEUR._value = "" + Me.txtUSTBetragEUR._Waehrung = True + Me.txtUSTBetragEUR._WaehrungZeichen = False + Me.txtUSTBetragEUR.ForeColor = System.Drawing.Color.Red + Me.txtUSTBetragEUR.Location = New System.Drawing.Point(294, 130) + Me.txtUSTBetragEUR.MaxLength = 10 + Me.txtUSTBetragEUR.MaxLineLength = -1 + Me.txtUSTBetragEUR.MaxLines_Warning = "" + Me.txtUSTBetragEUR.MaxLines_Warning_Label = Nothing + Me.txtUSTBetragEUR.Name = "txtUSTBetragEUR" + Me.txtUSTBetragEUR.Size = New System.Drawing.Size(154, 20) + Me.txtUSTBetragEUR.TabIndex = 7 + ' + 'txtUmrechnungskurs + ' + Me.txtUmrechnungskurs._DateTimeOnly = False + Me.txtUmrechnungskurs._numbersOnly = False + Me.txtUmrechnungskurs._numbersOnlyKommastellen = "" + Me.txtUmrechnungskurs._numbersOnlyTrennzeichen = True + Me.txtUmrechnungskurs._Prozent = False + Me.txtUmrechnungskurs._ShortDateNew = False + Me.txtUmrechnungskurs._ShortDateOnly = False + Me.txtUmrechnungskurs._TimeOnly = False + Me.txtUmrechnungskurs._TimeOnly_Seconds = False + Me.txtUmrechnungskurs._value = "" + Me.txtUmrechnungskurs._Waehrung = False + Me.txtUmrechnungskurs._WaehrungZeichen = False + Me.txtUmrechnungskurs.ForeColor = System.Drawing.Color.Red + Me.txtUmrechnungskurs.Location = New System.Drawing.Point(177, 130) + Me.txtUmrechnungskurs.MaxLength = 10 + Me.txtUmrechnungskurs.MaxLineLength = -1 + Me.txtUmrechnungskurs.MaxLines_Warning = "" + Me.txtUmrechnungskurs.MaxLines_Warning_Label = Nothing + Me.txtUmrechnungskurs.Name = "txtUmrechnungskurs" + Me.txtUmrechnungskurs.Size = New System.Drawing.Size(108, 20) + Me.txtUmrechnungskurs.TabIndex = 6 + ' + 'txtUSTBetrag + ' + Me.txtUSTBetrag._DateTimeOnly = False + Me.txtUSTBetrag._numbersOnly = False + Me.txtUSTBetrag._numbersOnlyKommastellen = "" + Me.txtUSTBetrag._numbersOnlyTrennzeichen = False + Me.txtUSTBetrag._Prozent = False + Me.txtUSTBetrag._ShortDateNew = False + Me.txtUSTBetrag._ShortDateOnly = False + Me.txtUSTBetrag._TimeOnly = False + Me.txtUSTBetrag._TimeOnly_Seconds = False + Me.txtUSTBetrag._value = "" + Me.txtUSTBetrag._Waehrung = False + Me.txtUSTBetrag._WaehrungZeichen = False + Me.txtUSTBetrag.ForeColor = System.Drawing.Color.Red + Me.txtUSTBetrag.Location = New System.Drawing.Point(17, 130) + Me.txtUSTBetrag.MaxLength = 10 + Me.txtUSTBetrag.MaxLineLength = -1 + Me.txtUSTBetrag.MaxLines_Warning = "" + Me.txtUSTBetrag.MaxLines_Warning_Label = Nothing + Me.txtUSTBetrag.Name = "txtUSTBetrag" + Me.txtUSTBetrag.Size = New System.Drawing.Size(154, 20) + Me.txtUSTBetrag.TabIndex = 5 + ' + 'Panel1 + ' + Me.Panel1.Controls.Add(Me.btnBildAuf) + Me.Panel1.Controls.Add(Me.Button1) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Right + Me.Panel1.Location = New System.Drawing.Point(1201, 30) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(99, 235) + Me.Panel1.TabIndex = 2 + ' + 'ustCntlUSTV_ErstattungPosition + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.Controls.Add(Me.Panel1) + Me.Controls.Add(Me.pnl) + Me.Controls.Add(Me.Panel2) + Me.Name = "ustCntlUSTV_ErstattungPosition" + Me.Size = New System.Drawing.Size(1300, 265) + Me.Panel2.ResumeLayout(False) + Me.Panel2.PerformLayout() + Me.pnl.ResumeLayout(False) + Me.pnl.PerformLayout() + Me.Panel1.ResumeLayout(False) + Me.ResumeLayout(False) + + End Sub + Friend WithEvents Label8 As Label + Friend WithEvents txtBelegDatum As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents Label7 As Label + Friend WithEvents Panel2 As Panel + Friend WithEvents txtBelegNr As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents Label9 As Label + Friend WithEvents Label1 As Label + Friend WithEvents btnBildAuf As Button + Friend WithEvents Button1 As Button + Friend WithEvents txtGuDatum As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents Label2 As Label + Friend WithEvents Label3 As Label + Friend WithEvents Label6 As Label + Friend WithEvents Label10 As Label + Friend WithEvents txtUSTBetrag As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents Label11 As Label + Friend WithEvents txtUmrechnungskurs As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents Label12 As Label + Friend WithEvents txtUSTBetragEUR As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents Label13 As Label + Friend WithEvents Label4 As Label + Friend WithEvents Label5 As Label + Friend WithEvents lblAenderungsdatum As Label + Friend WithEvents lblSachbearbeiter As Label + Friend WithEvents pnl As Panel + Friend WithEvents Panel1 As Panel + Friend WithEvents txtBerufungshoehe As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents txtBerurunfgrund As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents Label16 As Label + Friend WithEvents Label15 As Label + Friend WithEvents txtBerufungsdatum As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents Label14 As Label + Friend WithEvents txtBemerkung As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents lblWarning As Label + Friend WithEvents Label18 As Label + Friend WithEvents txtGuNr As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents Label19 As Label +End Class diff --git a/SDL/USTV/ustCntlUSTV_ErstattungPosition .resx b/SDL/USTV/ustCntlUSTV_ErstattungPosition .resx new file mode 100644 index 00000000..1af7de15 --- /dev/null +++ b/SDL/USTV/ustCntlUSTV_ErstattungPosition .resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/SDL/USTV/ustCntlUSTV_ErstattungPosition .vb b/SDL/USTV/ustCntlUSTV_ErstattungPosition .vb new file mode 100644 index 00000000..f4746a4d --- /dev/null +++ b/SDL/USTV/ustCntlUSTV_ErstattungPosition .vb @@ -0,0 +1,257 @@ +Imports VERAG_PROG_ALLGEMEIN + +Public Class ustCntlUSTV_ErstattungPosition + Public UStV_ERS As VERAG_PROG_ALLGEMEIN.cUStVErstattungPositionen = Nothing + Public UstV_AN As cUSTVAntrag + + Dim sql As New VERAG_PROG_ALLGEMEIN.SQL + Dim kdnr = "" + + Public Event EV_PREV() + Public Event EV_NEXT() + Public Event CHANGED(UStV_ERS) + Dim gridAktiv = False + Dim txtChanged As Boolean = False + Private Sub btnBildAuf_Click(sender As Object, e As EventArgs) Handles btnBildAuf.Click + RaiseEvent EV_PREV() + End Sub + + Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click + RaiseEvent EV_NEXT() + End Sub + + Sub reset() + txtBelegDatum._value = "" + txtBelegNr._value = "" + + txtGuDatum._value = "" + txtGuNr._value = "" + + txtBerufungsdatum._value = "" + txtBerufungshoehe._value = "" + txtBerurunfgrund._value = "" + + txtUmrechnungskurs._value = 1 + txtUSTBetrag._value = 0 + txtUSTBetragEUR._value = 0 + txtBemerkung.Text = "" + + + + End Sub + + Sub setValues(UstV_AN_ As cUSTVAntrag, Optional UStV_ERS As VERAG_PROG_ALLGEMEIN.cUStVErstattungPositionen = Nothing, Optional kdNr As Integer = -1) + + UstV_AN = UstV_AN_ + + If UStV_ERS Is Nothing Then Exit Sub + + Me.UStV_ERS = UStV_ERS + Me.kdnr = kdNr + + + txtBelegDatum._value = If(UStV_ERS.Belegdatum, "") + txtBelegNr._value = If(UStV_ERS.Belegnummer, "") + + txtGuDatum._value = If(UStV_ERS.GutschriftsDatum, "") + txtGuNr._value = If(UStV_ERS.GutschriftsNr, "") + + txtBerufungsdatum._value = If(UStV_ERS.Berufungsdatum, "") + txtBerurunfgrund._value = If(UStV_ERS.Berufungsgrund, "") + txtBerufungshoehe._value = If(UStV_ERS.Berufungshöhe, "") + + + lblSachbearbeiter.Text = If(UStV_ERS.UStVEr_Sachbearbeiter, "") + If UStV_ERS.UStVEr_Zeitstempel IsNot Nothing Then lblAenderungsdatum.Text = CDate(UStV_ERS.UStVEr_Zeitstempel).ToString("dd.MM.yyyy HH:mm") + + txtUSTBetrag.Text = If(UStV_ERS.UStVEr_USteuerbetrag, "") + txtUmrechnungskurs.Text = If(UStV_ERS.UStVEr_Umrechnungskurs, "") + txtUSTBetragEUR.Text = If(UStV_ERS.UStVEr_USteuerbetragEUR, "") + txtBemerkung.Text = If(UStV_ERS.Bemerkung, "") + + End Sub + + Sub getValues(ByRef UStV_ERS As cUStVErstattungPositionen, ByRef save As Boolean) + + If UStV_ERS Is Nothing Then + UStV_ERS = New VERAG_PROG_ALLGEMEIN.cUStVErstattungPositionen() + UStV_ERS.UStVEr_ID = UStV_ERS.getMaxPosNr() + End If + + UStV_ERS.UStVEr_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME + UStV_ERS.UStVEr_Zeitstempel = Now + UStV_ERS.UStVAn_ID = UstV_AN.UStVAn_ID + + + If txtBelegNr.Text <> "" Then + UStV_ERS.Belegnummer = txtBelegNr.Text + Else + save = False + End If + + If txtBelegDatum.Text <> "" AndAlso IsDate(txtBelegDatum.Text) Then + UStV_ERS.Belegdatum = txtBelegDatum._value + Else + save = False + End If + + If txtUSTBetrag.Text <> "" Then + UStV_ERS.UStVEr_USteuerbetrag = txtUSTBetrag.Text.Replace(",", ".") + Else + save = False + End If + + If txtUSTBetragEUR.Text <> "" Then + UStV_ERS.UStVEr_USteuerbetragEUR = txtUSTBetragEUR.Text.Replace(",", ".") + Else + save = False + End If + + If txtGuDatum.Text <> "" Then + UStV_ERS.GutschriftsDatum = txtGuDatum.Text + End If + + If Not txtUmrechnungskurs.Text = "" Then + If txtUmrechnungskurs.Text <> "" Then + UStV_ERS.UStVEr_Umrechnungskurs = txtUmrechnungskurs.Text.Replace(",", ".") + End If + Else + save = False + End If + + If txtGuDatum.Text <> "" Then + UStV_ERS.GutschriftsDatum = txtGuDatum.Text + End If + + If txtGuNr.Text <> "" Then + UStV_ERS.GutschriftsNr = txtGuNr.Text + End If + + + + If txtBemerkung.Text <> "" Then + UStV_ERS.Bemerkung = txtBemerkung.Text + End If + + If txtBerufungsdatum.Text <> "" Then + UStV_ERS.Berufungsdatum = txtBerufungsdatum.Text + End If + + + If txtBerufungshoehe.Text <> "" Then + UStV_ERS.Berufungshöhe = txtBerufungshoehe.Text + End If + + If txtBerurunfgrund.Text <> "" Then + UStV_ERS.Berufungsgrund = txtBerurunfgrund.Text + End If + + + + + End Sub + + Private Sub ustCntlUSTV_AntragPosition_KeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles Me.PreviewKeyDown + If e.KeyValue = Keys.PageDown Then + RaiseEvent EV_NEXT() + End If + If e.KeyValue = Keys.PageUp Then + RaiseEvent EV_PREV() + End If + End Sub + + Function save() + Dim setSave As Boolean = True + getValues(UStV_ERS, setSave) + 'MsgBox("TEST") + If setSave Then Return UStV_ERS.SAVE + Return False + End Function + + Private Sub txtBestellung_TextChanged(sender As Object, e As EventArgs) Handles txtGuDatum.TextChanged, txtBelegDatum.TextChanged, txtBelegNr.TextChanged, txtUSTBetrag.TextChanged, txtUmrechnungskurs.TextChanged, txtUSTBetragEUR.TextChanged + + If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_USTVA_bearbeiten", Me.FindForm) Then Exit Sub + + End Sub + + Sub values_changed() + lblSachbearbeiter.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME + lblAenderungsdatum.Text = Now.ToString("dd.MM.yyyy HH:mm") + ' If e.Column.ColumnName = "Sachbearbeiter" Or e.Column.ColumnName = "Änderungsdatum" Then Exit Sub + If save() Then RaiseEvent CHANGED(UStV_ERS.UStVEr_ID) + End Sub + + + + + + Private Sub txtUSTBetrag_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles txtUSTBetrag.PreviewKeyDown, txtUSTBetragEUR.PreviewKeyDown, txtBelegDatum.PreviewKeyDown, txtBelegNr.PreviewKeyDown, txtUmrechnungskurs.PreviewKeyDown + If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_USTVA_bearbeiten", Me.FindForm) Then Exit Sub + + If Me.FindForm IsNot Nothing Then + + ' Eingabeprüfung + If e.KeyValue = 9 Then + + lblWarning.Text = "" + If sender Is txtUSTBetrag Or sender Is txtUSTBetragEUR Or sender Is txtUmrechnungskurs Then + + If txtUSTBetrag.Text = "" Then + lblWarning.Text = "Bitte Umsatzsteuerbetrag eingeben." + Exit Sub + End If + + End If + + + If sender Is txtUSTBetrag Then + If IsNumeric(txtUSTBetrag.Text) AndAlso IsNumeric(txtUmrechnungskurs.Text) Then + txtUSTBetragEUR.Text = Math.Floor((txtUSTBetrag.Text / txtUmrechnungskurs.Text) * 100 + 0.5) / 100 + txtChanged = True + End If + + ElseIf sender Is txtUSTBetragEUR Then + + 'so herum nicht umrechnen!!!! + 'If IsNumeric(txtUSTBetragEUR._value) AndAlso IsNumeric(txtUmrechnungskurs._value) Then + ' txtUSTBetrag.Text = Math.Floor((txtUSTBetragEUR._value * txtUmrechnungskurs._value) * 100 + 0.5) / 100 + ' 'values_changed() + 'End If + + + If IsNumeric(txtUSTBetragEUR.Text) AndAlso IsNumeric(txtUSTBetrag.Text) Then + + Dim zahl1 = txtUSTBetragEUR.Text / txtUSTBetrag.Text + + txtUmrechnungskurs.Text = zahl1 + txtChanged = True + End If + + ElseIf sender Is txtUmrechnungskurs Then + + + If IsNumeric(txtUSTBetrag.Text) AndAlso IsNumeric(txtUmrechnungskurs._value) Then + txtUSTBetragEUR.Text = Math.Floor((txtUSTBetrag.Text / txtUmrechnungskurs.Text) * 100 + 0.5) / 100 + txtChanged = True + End If + + + End If + + + + + End If + + If txtChanged Then + values_changed() + txtChanged = False + End If + + + End If + + End Sub + + +End Class diff --git a/SDL/kassenbuch/frmBelegNeu.vb b/SDL/kassenbuch/frmBelegNeu.vb index 0849607d..9ff28fd0 100644 --- a/SDL/kassenbuch/frmBelegNeu.vb +++ b/SDL/kassenbuch/frmBelegNeu.vb @@ -369,8 +369,8 @@ Public Class frmBelegNeu lblFrachtf_Fahrer.Text = BELEG.Fahrer lblFrachtf_LKWNr.Text = BELEG.LKW_Kennzeichen Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA - Case "ATILLA" : cbxSplittung.Enabled = False - Case Else : cbxSplittung.Checked = Not If(BELEG.LKW_Beleg, False) + Case "ATILLA" : cbxSplittung.Checked = True : cbxSplittung.Enabled = True 'false + Case Else : cbxSplittung.Checked = Not If(BELEG.LKW_Beleg, True) End Select diff --git a/SDL/kunden/usrCntlKundenuebersicht.resx b/SDL/kunden/usrCntlKundenuebersicht.resx index 99bb42bd..411f6c1c 100644 --- a/SDL/kunden/usrCntlKundenuebersicht.resx +++ b/SDL/kunden/usrCntlKundenuebersicht.resx @@ -123,90 +123,90 @@ - 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 + ZKu8wIj8cOK/xAMdlNTj9YkAAAAASUVORK5CYII= - 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 + ZKu8wIj8cOK/xAMdlNTj9YkAAAAASUVORK5CYII= diff --git a/SDL/kunden/usrCntlKundenuebersicht.vb b/SDL/kunden/usrCntlKundenuebersicht.vb index 4f2c10b0..2848d1ab 100644 --- a/SDL/kunden/usrCntlKundenuebersicht.vb +++ b/SDL/kunden/usrCntlKundenuebersicht.vb @@ -411,9 +411,9 @@ Public Class usrCntlKundenuebersicht Dim zusatz As String = checkNullStr(KUNDE_ERW.kde_AdressZusatz) Dim strasse As String = checkNullStr(ADRESSE.Straße) - lblStrasse.Text = checkNullStr(KUNDE_ERW.kde_AdressZusatz) & checkNullStr(ADRESSE.Straße) + 'lblStrasse.Text = checkNullStr(KUNDE_ERW.kde_AdressZusatz) & " " & checkNullStr(ADRESSE.Straße) If zusatz <> "" Then - lblStrasse.Text = zusatz & vbCrLf & strasse + lblStrasse.Text = strasse & vbCrLf & zusatz Else lblStrasse.Text = vbCrLf & strasse End If diff --git a/SDL/kunden/usrcntlKundeBearbeitenFull.Designer.vb b/SDL/kunden/usrcntlKundeBearbeitenFull.Designer.vb index daab3510..a7ca107f 100644 --- a/SDL/kunden/usrcntlKundeBearbeitenFull.Designer.vb +++ b/SDL/kunden/usrcntlKundeBearbeitenFull.Designer.vb @@ -98,6 +98,7 @@ Partial Class usrcntlKundeBearbeitenFull Me.UsrCntlKundeFiskaldaten1 = New SDL.usrCntlKundeFiskaldaten() Me.tbVerrechnung = New System.Windows.Forms.TabPage() Me.pnlverag360 = New System.Windows.Forms.Panel() + Me.txtAnmerkungAntraege = New VERAG_PROG_ALLGEMEIN.MyTextBox() Me.gbMWSTAntraege = New System.Windows.Forms.GroupBox() Me.rbJ = New System.Windows.Forms.RadioButton() Me.rbHJ = New System.Windows.Forms.RadioButton() @@ -1174,14 +1175,39 @@ Partial Class usrcntlKundeBearbeitenFull ' 'pnlverag360 ' + Me.pnlverag360.Controls.Add(Me.txtAnmerkungAntraege) Me.pnlverag360.Controls.Add(Me.gbMWSTAntraege) Me.pnlverag360.Controls.Add(Me.txtVorauszahlung) Me.pnlverag360.Controls.Add(Me.cbxVorauszahlung) Me.pnlverag360.Location = New System.Drawing.Point(417, 247) Me.pnlverag360.Name = "pnlverag360" - Me.pnlverag360.Size = New System.Drawing.Size(252, 117) + Me.pnlverag360.Size = New System.Drawing.Size(252, 143) Me.pnlverag360.TabIndex = 49 ' + 'txtAnmerkungAntraege + ' + Me.txtAnmerkungAntraege._DateTimeOnly = False + Me.txtAnmerkungAntraege._numbersOnly = False + Me.txtAnmerkungAntraege._numbersOnlyKommastellen = "" + Me.txtAnmerkungAntraege._numbersOnlyTrennzeichen = False + Me.txtAnmerkungAntraege._Prozent = False + Me.txtAnmerkungAntraege._ShortDateNew = False + Me.txtAnmerkungAntraege._ShortDateOnly = False + Me.txtAnmerkungAntraege._TimeOnly = False + Me.txtAnmerkungAntraege._TimeOnly_Seconds = False + Me.txtAnmerkungAntraege._value = "" + Me.txtAnmerkungAntraege._Waehrung = False + Me.txtAnmerkungAntraege._WaehrungZeichen = False + Me.txtAnmerkungAntraege.ForeColor = System.Drawing.Color.Red + Me.txtAnmerkungAntraege.Location = New System.Drawing.Point(8, 89) + Me.txtAnmerkungAntraege.MaxLength = 10 + Me.txtAnmerkungAntraege.MaxLineLength = -1 + Me.txtAnmerkungAntraege.MaxLines_Warning = "" + Me.txtAnmerkungAntraege.MaxLines_Warning_Label = Nothing + Me.txtAnmerkungAntraege.Name = "txtAnmerkungAntraege" + Me.txtAnmerkungAntraege.Size = New System.Drawing.Size(195, 20) + Me.txtAnmerkungAntraege.TabIndex = 49 + ' 'gbMWSTAntraege ' Me.gbMWSTAntraege.Controls.Add(Me.rbJ) @@ -1245,7 +1271,7 @@ Partial Class usrcntlKundeBearbeitenFull Me.txtVorauszahlung._Waehrung = False Me.txtVorauszahlung._WaehrungZeichen = False Me.txtVorauszahlung.ForeColor = System.Drawing.Color.Red - Me.txtVorauszahlung.Location = New System.Drawing.Point(106, 92) + Me.txtVorauszahlung.Location = New System.Drawing.Point(110, 120) Me.txtVorauszahlung.MaxLength = 10 Me.txtVorauszahlung.MaxLineLength = -1 Me.txtVorauszahlung.MaxLines_Warning = "" @@ -1253,13 +1279,12 @@ Partial Class usrcntlKundeBearbeitenFull Me.txtVorauszahlung.Name = "txtVorauszahlung" Me.txtVorauszahlung.Size = New System.Drawing.Size(123, 20) Me.txtVorauszahlung.TabIndex = 48 - Me.txtVorauszahlung.TextAlign = System.Windows.Forms.HorizontalAlignment.Right ' 'cbxVorauszahlung ' Me.cbxVorauszahlung.AutoSize = True Me.cbxVorauszahlung.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.cbxVorauszahlung.Location = New System.Drawing.Point(4, 92) + Me.cbxVorauszahlung.Location = New System.Drawing.Point(8, 120) Me.cbxVorauszahlung.Name = "cbxVorauszahlung" Me.cbxVorauszahlung.Size = New System.Drawing.Size(96, 17) Me.cbxVorauszahlung.TabIndex = 47 @@ -5732,4 +5757,5 @@ Partial Class usrcntlKundeBearbeitenFull Friend WithEvents pnlverag360 As Panel Friend WithEvents txtVorauszahlung As VERAG_PROG_ALLGEMEIN.MyTextBox Friend WithEvents cbxVorauszahlung As CheckBox + Friend WithEvents txtAnmerkungAntraege As VERAG_PROG_ALLGEMEIN.MyTextBox End Class diff --git a/SDL/kunden/usrcntlKundeBearbeitenFull.vb b/SDL/kunden/usrcntlKundeBearbeitenFull.vb index a9f2bff5..83c7b0d1 100644 --- a/SDL/kunden/usrcntlKundeBearbeitenFull.vb +++ b/SDL/kunden/usrcntlKundeBearbeitenFull.vb @@ -203,6 +203,7 @@ txtHandelsregisterNr.Text = loadValue(KUNDE_ERW.kde_HRNr, "") cbxVorauszahlung.Checked = loadValue(KUNDE_ERW.kde_VZ, False) txtVorauszahlung.Text = loadValue(KUNDE_ERW.kde_AnmerkungVZ, "") + txtAnmerkungAntraege.Text = loadValue(KUNDE_ERW.kde_AnmerkungAntrag, "") txtEORI.Text = If(KUNDE.EORITIN, "") txtEORINL.Text = If(KUNDE.EORITIN_NL, "") @@ -619,6 +620,7 @@ KUNDE_ERW.kde_HRNr = isLeerNothing(txtHandelsregisterNr.Text) KUNDE_ERW.kde_VZ = cbxVorauszahlung.Checked KUNDE_ERW.kde_AnmerkungVZ = txtVorauszahlung.Text + KUNDE_ERW.kde_AnmerkungAntrag = txtAnmerkungAntraege.Text If isLeerNothing(txtGruendungsDatum.Text) IsNot Nothing AndAlso IsDate(txtGruendungsDatum.Text) Then KUNDE_ERW.kde_GruendungsDatum = CDate(txtGruendungsDatum.Text) @@ -2234,4 +2236,9 @@ End If End Sub + + Private Sub cbxVorauszahlung_CheckedChanged(sender As Object, e As EventArgs) Handles cbxVorauszahlung.CheckedChanged + txtVorauszahlung.Enabled = cbxVorauszahlung.Checked + If Not cbxVorauszahlung.Checked Then txtVorauszahlung.Text = "" + End Sub End Class diff --git a/SDL/mdm/PLOSE/rptPLOSE_Anhang.Designer.vb b/SDL/mdm/PLOSE/rptPLOSE_Anhang.Designer.vb index d6afed6a..121b5225 100644 --- a/SDL/mdm/PLOSE/rptPLOSE_Anhang.Designer.vb +++ b/SDL/mdm/PLOSE/rptPLOSE_Anhang.Designer.vb @@ -316,8 +316,8 @@ Partial Public Class rptPLOSE_Anhang Me.txtKunde.HyperLink = Nothing Me.txtKunde.Left = 5.111811! Me.txtKunde.Name = "txtKunde" - Me.txtKunde.Style = "font-size: 8pt; font-weight: bold; text-align: left; vertical-align: middle; ddo-" & - "char-set: 1" + Me.txtKunde.Style = "font-size: 8pt; font-weight: bold; text-align: right; vertical-align: middle; ddo" & + "-char-set: 1" Me.txtKunde.Text = "1000000 TEST" Me.txtKunde.Top = 0.8291339! Me.txtKunde.Width = 2.354331! diff --git a/SDL/mdm/PLOSE/rptPLOSE_Anhang.resx b/SDL/mdm/PLOSE/rptPLOSE_Anhang.resx index ace71b79..d44ec9f5 100644 --- a/SDL/mdm/PLOSE/rptPLOSE_Anhang.resx +++ b/SDL/mdm/PLOSE/rptPLOSE_Anhang.resx @@ -118,7 +118,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 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 diff --git a/SDL/mdm/frmMDMDatenverarbetiung.vb b/SDL/mdm/frmMDMDatenverarbetiung.vb index 5331bdb5..71a947ef 100644 --- a/SDL/mdm/frmMDMDatenverarbetiung.vb +++ b/SDL/mdm/frmMDMDatenverarbetiung.vb @@ -871,7 +871,7 @@ Public Class frmMDMDatenverarbetiung left join tbl_IDS_Kunden as Kunde on Kunde.CustomerCode = trans.CustomerCode And Kunde.KdNrAlt = 0 left join tbl_IDS_Kunden_ohne_Rabatt as KundeOhneR on KundeOhneR.CustomerCode = trans.CustomerCode left join tbl_IDS_Produkte as prod on prod.ProductTypeCode = trans.ProductTypeCode - where cast(trans.YearMonthDay as Date) = '" & DateTimePicker2.Text & "' and isnull(trans.charged,0) = 0 AND trans.[UStVAn_ID] is null and temp.KdNrVERAG not in (756150, 711104) ", "FMZOLL") + where cast(trans.YearMonthDay as Date) = '" & DateTimePicker2.Text & "' and isnull(trans.charged,0) = 0 AND trans.[UStVAn_ID] is null and Kunde.KdNrVERAG not in (756150, 711104) ", "FMZOLL") .LOAD() @@ -4057,7 +4057,7 @@ Public Class frmMDMDatenverarbetiung pruefData_IDS = True Try - Dim RechnenWertNichtEingetragen As Integer = CInt((New SQL).getValueTxtBySql("select count(*) from [tblIDSTransactionsNew] WHERE cast(YearMonthDay as Date) = '" & DateTimePicker2.Text & "' AND tblIDSTransactionsNew.[UStVAn_ID] is null AND [Rechenwert] is null ", "FMZOLL")) + Dim RechnenWertNichtEingetragen As Integer = CInt((New SQL).getValueTxtBySql("select count(*) from [tblIDSTransactionsNew] WHERE cast(YearMonthDay as Date) = '" & DateTimePicker2.Text & "' AND tblIDSTransactionsNew.[UStVAn_ID] is null AND [Rechenwert] is null and CustomerCode not in (60004479,60025994) ", "FMZOLL")) 'Verag360 und VeragAG If RechnenWertNichtEingetragen > 0 Then pruefData_IDS = False diff --git a/SDL/mdm/frmMDMLieferantenrechnungen.Designer.vb b/SDL/mdm/frmMDMLieferantenrechnungen.Designer.vb new file mode 100644 index 00000000..80d939fc --- /dev/null +++ b/SDL/mdm/frmMDMLieferantenrechnungen.Designer.vb @@ -0,0 +1,52 @@ + _ +Partial Class frmMDMLieferantenrechnungen + 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() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMDMLieferantenrechnungen)) + Me.UsrcntlFremdrechnungen1 = New SDL.usrcntlFremdrechnungen() + Me.SuspendLayout() + ' + 'UsrcntlFremdrechnungen1 + ' + Me.UsrcntlFremdrechnungen1.Dock = System.Windows.Forms.DockStyle.Fill + Me.UsrcntlFremdrechnungen1.Location = New System.Drawing.Point(0, 0) + Me.UsrcntlFremdrechnungen1.Name = "UsrcntlFremdrechnungen1" + Me.UsrcntlFremdrechnungen1.Size = New System.Drawing.Size(1499, 790) + Me.UsrcntlFremdrechnungen1.TabIndex = 0 + ' + 'frmMDMLieferantenrechnungen + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1499, 790) + Me.Controls.Add(Me.UsrcntlFremdrechnungen1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmMDMLieferantenrechnungen" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.Text = "MDM Lieferantenrechnungen" + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents UsrcntlFremdrechnungen1 As usrcntlFremdrechnungen +End Class diff --git a/SDL/mdm/frmMDMLieferantenrechnungen.resx b/SDL/mdm/frmMDMLieferantenrechnungen.resx new file mode 100644 index 00000000..d584bd9e --- /dev/null +++ b/SDL/mdm/frmMDMLieferantenrechnungen.resx @@ -0,0 +1,980 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAEAgIAAAAEAGAAoyAAAFgAAACgAAACAAAAAAAEAAAEAGAAAAAAAAMgAAMQOAADEDgAAAAAAAAAA + AACRbEd5TB+CWC59USZ8USV9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9 + USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9 + USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9 + USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9 + USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9 + USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9 + USZ9USZ9USZ9USZ8USV9USaCWC55TB+RbEd4Sx5mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB4Sx5/VClmMwBuPg5r + OglrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr + OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr + OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr + OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr + OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr + OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr + OQhrOgluPg5mMwB/VCl0RhhmMwBmMwBnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn + NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn + NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn + NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn + NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn + NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn + NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFmMwBmMwB0RhhzRBVmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBz + RBV3Sh1mMwBnNQJmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBnNQJmMwB3Sh18UCRmMwBqOQdnNAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFqOQdmMwB8UCR9USZmMwBrOQhn + NAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9 + USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBmMwDm4N3///////// + ///////39fR0SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL///////////////// + //////////////////////////////////////////////90SSZmMwBmMwBmMwBmMwBmMwB0SSb39fT/ + //////////////9mMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL///////////////////+YfWtmMwBmMwBm + MwBmMwB0SSbu6+n////////////39fR0SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwD39fT///// + ///////////Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5zUy8X////////////////L + v7itmo1mMwBmMwCYfWv///////90SSZmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhn + NAFmMwBmMwBmMwB0SSb////////////////////////Lv7hmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwDu6+n///////////////////////////////////////////////////////////+j + jH1mMwBmMwBmMwBmMwBmMwBmMwDm4N3///////////////+MblhmMwBmMwBmMwBmMwBmMwBmMwC3p5z/ + ///////////////m4N1mMwBmMwBmMwBmMwBmMwBmMwCYfWv////////////////Bs6pmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwB0SSb///////////////////+jjH1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCt + mo3////////////////////////////////////m4N2Mbli3p5z///////+jjH1mMwBmMwBmMwBmMwBm + MwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwCMblj///////////////////////////+M + blhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////////////////////////// + ///////////////////////////////Lv7hmMwBmMwBmMwBmMwBmMwBmMwDBs6r///////////////+3 + p5xmMwBmMwBmMwBmMwBmMwBmMwDm4N3///////////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwDU + y8X///////////////+AXUJmMwBmMwBmMwBmMwBmMwBmMwBmMwCYfWv///////////////////90SSZm + MwBmMwBmMwBmMwBmMwBmMwBmMwDLv7j////////////////////////////////////////////39fTm + 4N3///////+3p5xmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwC3 + p5z////////////////////////////d1tFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3 + p5z////////////////39fRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwCjjH3////////////////Lv7hmMwBmMwBmMwBmMwBmMwCAXUL///////////////////90 + SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL39fT////////////Lv7hmMwBmMwBmMwBmMwBmMwBmMwBm + MwC3p5z////////////////39fRmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z////////////////////U + y8WAXUJmMwBmMwC3p5z39fT////////////////////Uy8VmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9 + USZ9USZmMwBrOQhnNAFmMwBmMwBmMwDBs6r////////////////u6+n///////////+tmo1mMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCMblj///////////////////90SSZmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCMblj////////////////m4N1mMwBmMwBmMwBm + MwBmMwC3p5z////////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z///////// + ///////////////////////////////////////////////////////Uy8VmMwBmMwBmMwBmMwBmMwBm + MwBmMwD39fT////////////////Lv7hmMwBmMwBmMwBmMwBmMwCAXULu6+n////////////////39fRm + MwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwDm4N3///////////// + //+jjH3////////////u6+lmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSb///////////// + //////+jjH1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwD3 + 9fT///////////////90SSZmMwBmMwBmMwBmMwDm4N3///////////////+jjH1mMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwDu6+n///////////////////////////////////////////////////// + //////+3p5xmMwBmMwBmMwBmMwBmMwBmMwCjjH3///////////////////+MblhmMwBmMwBmMwBmMwBm + MwBmMwCMblj///////////////////90SSZmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhn + NAFmMwBmMwBmMwD39fT///////////////9mMwDLv7j///////////+3p5xmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwDm4N3////////////////Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////////////+YfWtmMwBmMwBmMwCAXUL///////// + ///////39fR0SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCYfWv///////////////////// + //////////////////////////////////////+jjH1mMwBmMwBmMwBmMwBmMwBmMwC3p5z///////// + //////////9mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////////////+jjH1mMwBmMwBmMwBm + MwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwCMblj////////////////m4N1mMwCAXUL39fT/ + ///////39fSAXUJmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r////////////////Uy8VmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z///////////// + ///////////////////////////////////////u6+lmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwDUy8X////////////u6+lmMwBmMwBmMwBmMwCMblj///////////////////90SSZmMwBm + MwBmMwBmMwBmMwBmMwC3p5z///////////////////9mMwBmMwBmMwB0SSb///////////////////// + //////////////+3p5xmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwCjjH3/ + ///////////////Uy8VmMwBmMwC3p5z////////////Lv7hmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwC3p5z////////////////////////////////////////////////////m4N1mMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwCjjH3////////////////////////////////////////////////////////////d + 1tGMblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL///////////////+tmo1mMwBmMwBmMwCt + mo3////////////////m4N1mMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z///////////////////90SSZm + MwBmMwBmMwDm4N3////////////////////////////////Uy8VmMwBmMwBmMwBmMwBnNAFrOQhmMwB9 + USZ9USZmMwBrOQhnNAFmMwBmMwC3p5z///////////////+3p5xmMwBmMwB0SSb39fT///////////+Y + fWtmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCMblj///////////////////////////////////////// + //////////////9mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSb///////////////////////////// + //////////////////////////////////////+YfWtmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3 + p5z////////////39fR0SSZmMwBmMwDBs6r////////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBm + MwCjjH3///////////////////+jjH1mMwBmMwBmMwDBs6r////////////////////////////////3 + 9fRmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwDUy8X///////////////+t + mo1mMwBmMwBmMwCtmo3////////////m4N1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwD39fT///// + //////////////////////////////////////////////+YfWtmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwDu6+n///////////////90SSZmMwBmMwBmMwBmMwBmMwCjjH3m4N3////////////////39fR0SSZm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDu6+n///////////+3p5xmMwBmMwDUy8X///////////// + //+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSb////////////////////Bs6pmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhn + NAFmMwBmMwDu6+n///////////////+MblhmMwBmMwBmMwBmMwDu6+n///////////+tmo1mMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwDd1tH////////////////Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////////////+YfWtmMwBmMwBmMwBmMwBmMwBm + MwB0SSbu6+n///////////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCjjH3///////// + ///39fSAXUJmMwD39fT///////////////+MblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///// + ///////////39fRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r////Uy8W3p5y3p5yYfWtmMwBmMwBm + MwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwB0SSb///////////////////90SSZmMwBmMwBmMwBm + MwCtmo3////////////u6+l0SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r////////////////m4N1m + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z///////// + //////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwDLv7j////////////////Bs6pmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwDUy8X////////////Lv7h0SSb///////////////////90SSZmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwCYfWv///////////////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwDu + 6+n///////////////+jjH1mMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwCYfWv///// + ///////////u6+lmMwBmMwBmMwBmMwBmMwBmMwDd1tH///////////+3p5xmMwBmMwBmMwBmMwBmMwBm + MwBmMwCjjH3///////////////////90SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwCYfWv////////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBmMwDm4N3///// + //////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL///////////////+tmo3/ + ///////////////m4N1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r///////////////// + //+YfWtmMwBmMwBmMwBmMwBmMwCtmo3////////////////u6+lmMwBmMwBmMwBmMwBnNAFrOQhmMwB9 + USZ9USZmMwBrOQhnNAFmMwC3p5z////////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwCYfWv///// + //////////+AXUJmMwBmMwBmMwBmMwBmMwBmMwCAXUL///////////////////+MblhmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSb////////////////u6+lmMwBm + MwBmMwBmMwBmMwCAXULLv7j///////////////////+MblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwC3p5z////////////////////////////////Lv7hmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwDd1tH///////////////////+3p5x0SSZmMwBmMwC3p5z///////////////////+t + mo1mMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwDLv7j////////////////Bs6pm + MwBmMwBmMwBmMwBmMwBmMwBmMwDd1tH////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBmMwD39fT/ + //////////////////////////////////////////////////////////90SSZmMwBmMwBmMwBmMwBm + MwBmMwDm4N3////////////////////////////////////////////////////////////Bs6pmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDu6+n///////////////////////////+3 + p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////////////////////// + ///////////////////////////Lv7hmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhn + NAFmMwDm4N3///////////////+tmo1mMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL///////////////+Y + fWtmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////////////////////////////////////////////// + //////////+YfWtmMwBmMwBmMwBmMwBmMwBmMwDLv7j///////////////////////////////////// + ///////////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCj + jH3///////////////////////////+MblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwCtmo339fT///////////////////////////////////////+tmo1mMwBmMwBmMwBmMwBmMwBm + MwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAF0SSb///////////////////+MblhmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwDLv7j////////////u6+l0SSZmMwBmMwBmMwBmMwBmMwC3p5z///////////////// + //////////////////////////////////////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwC3p5z///// + ///////////////////////////////////////m4N23p5yMblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDd1tH///////////////////////9mMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCjjH23p5z39fT////////////////Uy8W3 + p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9 + USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhn + NAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9 + USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ8UCRmMwBqOQdn + NAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBnNAFqOQdmMwB8UCR3Sh1mMwBnNQJmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNQJmMwB3Sh1zRBVmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBz + RBV0RhhmMwBmMwBnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn + NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn + NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn + NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn + NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn + NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn + NAFnNAFnNAFnNAFnNAFnNAFmMwBmMwB0Rhh/VClmMwBuPg5rOglrOQhrOQhrOQhrOQhrOQhrOQhrOQhr + OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr + OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr + OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr + OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr + OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr + OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOgluPg5mMwB/VCl4Sx5mMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwB4Sx6RbEd5TB+CWC59USZ8USV9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9 + USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9 + USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9 + USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9 + USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9 + USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9 + USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ8USV9USaCWC55TB+RbEf///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////Bs6rBs6qYfWtmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCYfWvBs6rBs6r///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////Uy8WYfWtmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCYfWvUy8X////////////////////////////////////////B + s6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwCjjH3Bs6rBs6r39fT///////////////////////////////////////////////////////// + ///Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDm4N3///////////////////////////////////////////// + ///////////////////////////////////////////////////////////////d1tGMblhmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCYfWvm4N3/ + ///////////////////////////////Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCMbljLv7j///////////////// + ///////////////////////////////////Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X////////////////////////////d1tFmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwCMbljm4N3////////////////////////////////////////////m4N1mMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwC3p5z///////////////////////////////////////////////////////////// + //////////////////////////////////////+tmo1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDLv7j///////// + ///////////////39fRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r///////////////////// + ///////////////////39fRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCjjH3///////////////////////////// + ///////////////////////////////////////////////////////////////////Bs6pmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwDm4N3///////////////////////90SSZmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwCtmo3///////////////////////////////////////+MblhmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCA + XUL///////////////////////////////////////////////////////////////////////////// + ///////////////m4N1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL39fT///////////////// + //+jjH1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCtmo3///////////////////////////// + //////+jjH1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwD39fT///////////////////////////////////////// + //////////////////////////////////////////////+YfWtmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwDBs6r///////////////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwDBs6r////////////////////////////////Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////// + ///////////////////////////////////////////////////////////////////////////d1tFm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6rd1tH////////39fTBs6qAXUJm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSb////////////////////Lv7hmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDd1tH////////////////////////////Uy8VmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwDLv7j///////////////////////////////////////////////////////// + //////////////////////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCjjH3/ + //////////////////////////////+jjH1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDd + 1tH////////////////m4N1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r///////////// + ///////Uy8XBs6qMblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL///// + ///////////////////////m4N1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCMblj///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////+AXUJmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwCtmo3///////////////////////////////////////+AXUJmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r////////////////39fRmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwC3p5z////////////////////////////////d1tGMblhmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r///////////////////////////9mMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwB0SSb///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////39fRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL39fT///////////////////// + ///////////////////Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCtmo3///////////// + //////+AXUJmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCMblj///////////////////////////// + //////////+YfWtmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSb39fT///////////// + //////////+MblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDm4N3///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////u6+lmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwDBs6r////////////////////////////////////////////d1tFmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwCYfWv///////////////////+jjH1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB0 + SSb///////////////////////////////////////////+MblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwDBs6r///////////////////////+jjH1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwDUy8X///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///u6+nBs6rBs6rBs6qYfWtmMwBmMwBmMwDu6+n///////////////////////////////////////// + ///Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCYfWv///////////////////+3p5xmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDu6+n////////////////////////////////////////u + 6+lmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCMblj////////////////////////Bs6pm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////u6+l0SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCY + fWv////////////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////// + //////////////////////////////////+jjH1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwDm4N3////////////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCjjH3///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////u6+m3p5xmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCjjH3////////////////////m4N1mMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwDBs6r////////////////////////////////////////////d1tFmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r////////////////////u6+lmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwCMblj///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////Uy8XB + s6p0SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z///////////// + //////////9mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCtmo3///////////////////////// + //////////////////////+AXUJmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCjjH3///////// + //////////////90SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwD///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////m4N3Bs6qMblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwDUy8X///////////////////////+MblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwCMblj///////////////////////////////////////////////+3p5xmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwB0SSb///////////////////////+MblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwDm4N3///////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////Bs6qAXUJmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSb39fT///////////////////////+jjH1m + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSb///////////////////////////////////////// + ///////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwD39fT///////////////////+t + mo1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////Lv7hmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r/ + ///////////////////////////Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDm4N3///// + ///////////////////////////////////////39fRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwDm4N3////////////////////Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r/ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////+jjH1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwCAXUL39fT////////////////////////////Uy8VmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwDUy8X///////////////////////////////////////////////90SSZm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDd1tH////////////////////Uy8VmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwCjjH3///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////+jjH1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSbm4N3///////////////////// + ///////////m4N1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r///////////////////// + //////////////////////////+MblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///// + ///////////////u6+lmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCMblj///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////Bs6pmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCM + bljm4N3///////////////////////////////////////90SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwCjjH3///////////////////////////////////////////////+YfWtmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwDLv7j///////////////////////90SSZmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwD39fT///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////39fR0SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r///////////////////////////////////////////////+M + blhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCMblj///////////////////////////////////// + //////////+YfWtmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDLv7j///////////////////// + //+MblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDm4N3///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCYfWvBs6r///////////////////////// + //////////////////////////////+tmo1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwD///// + //////////////////////////////////////////+YfWtmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwDd1tH///////////////////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDL + v7j///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////+Mblhm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCtmo3Bs6r///// + ///////////////////////////////////////////////////////////////Bs6pmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwDm4N3///////////////////////////////////////////+AXUJm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDd1tH////////////////////////Bs6pmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////9mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwCtmo3Bs6r39fT///////////////////////////////////////////////////////////////// + ///////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////////////// + ///////////////////////39fRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDu6+n///// + ///////////////////d1tFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCjjH3///////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////u6+lmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwB0SSbLv7j///////////////////////////////////////////////// + ///////////////////////////////////////////////u6+lmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwC3p5z////////////////////////////////////////Uy8VmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwB0SSb////////////////////////////39fRmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwCAXUL///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////u6+lmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSbu6+n///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //90SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCjjH3///////////////////////////////// + //////+tmo1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCjjH3///////////////////////// + //////90SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwD39fT///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////u6+lmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwC3p5z////////////////////////////////////39fRmMwBmMwB0SSbBs6rBs6r39fT///////// + //////////////////////////////////+MblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL/ + ///////////////////////////////////u6+lmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwDBs6r///////////////////////////////+YfWtmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwDm4N3///////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////39fRmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z////////////////////////////////////Bs6pm + MwBmMwBmMwBmMwBmMwBmMwBmMwCtmo3Bs6rBs6r///////////////////////////+3p5xmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwD39fT////////////////////////////39fSMblhmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDu6+n///////////////////////////////+3p5xmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDLv7j///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////90SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL///////// + ///////////////////////u6+l0SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwD///////// + ///////////////////Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDm4N3///////////// + ///////////u6+mMblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCYfWv///////////// + ///////////////////////Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////+jjH1mMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwCjjH3////////////////////////u6+mAXUJmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwCYfWv////////////////////////////d1tFmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwDLv7j////////////////Uy8W3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwDd1tH////////////////////////////////////d1tFmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwCYfWv///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////Lv7hmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCMbljBs6r////////d1tG3 + p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDd1tH///////////////////////// + ///39fRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCYfWv///////////////////////////////// + ///////39fRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSb///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////39fR0SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCM + blj///////////////////////////////////90SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSbu6+n/ + //////////////////////////////////////////+AXUJmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwD39fT///////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////L + v7hmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDd1tH///////////////////////////////////+YfWtmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwDLv7j///////////////////////////////////////////////+jjH1m + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDd1tH///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////+jjH1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z///////////////// + //////////////////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r///////////////////////// + //////////////////////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r///// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////39fSAXUJmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwCYfWv////////////////////////////////////////////Bs6pmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDB + s6r////////////////////////////////////////////////////////Lv7hmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwC3p5z///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////u6+mMblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCYfWv///////////////////////////////////////// + ///////m4N1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwB0SSbUy8X///////////////////////////////////////////////// + ///////////m4N1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCYfWv///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////+jjH1mMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDLv7j///////////// + ///////////////////////////////////////39fRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSbBs6r///////////////////////// + ///////////////////////////////////////////39fRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwB0SSb///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////d1tGYfWtmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwDBs6r39fT///////////////////////////////////////////////////////////+AXUJm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCAXULBs6rBs6rm4N3/ + //////////////////////////////////////////////////////////////////////////////+A + XUJmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwD///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////39fTBs6rBs6pmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwCjjH3Bs6rUy8X///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/SDL/mdm/frmMDMLieferantenrechnungen.vb b/SDL/mdm/frmMDMLieferantenrechnungen.vb new file mode 100644 index 00000000..b82429c4 --- /dev/null +++ b/SDL/mdm/frmMDMLieferantenrechnungen.vb @@ -0,0 +1,3 @@ +Public Class frmMDMLieferantenrechnungen + +End Class \ No newline at end of file diff --git a/SDL/mdm/usrcntlFremdrechnungen.Designer.vb b/SDL/mdm/usrcntlFremdrechnungen.Designer.vb index 063eba07..f5216b91 100644 --- a/SDL/mdm/usrcntlFremdrechnungen.Designer.vb +++ b/SDL/mdm/usrcntlFremdrechnungen.Designer.vb @@ -38,6 +38,7 @@ Partial Class usrcntlFremdrechnungen Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.KundenblattAnzeigenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.Panel1 = New System.Windows.Forms.Panel() + Me.Button2 = New System.Windows.Forms.Button() Me.cbx = New System.Windows.Forms.CheckBox() Me.Label4 = New System.Windows.Forms.Label() Me.Label2 = New System.Windows.Forms.Label() @@ -45,7 +46,7 @@ Partial Class usrcntlFremdrechnungen Me.dat_Sum_Bis = New System.Windows.Forms.DateTimePicker() Me.dat_Sum_Von = New System.Windows.Forms.DateTimePicker() Me.Button1 = New System.Windows.Forms.Button() - Me.cbxMax200Eintrage = New System.Windows.Forms.CheckBox() + Me.cbxMax1000Eintrage = New System.Windows.Forms.CheckBox() Me.lblEinträge = New System.Windows.Forms.Label() Me.Button4 = New System.Windows.Forms.Button() Me.Button5 = New System.Windows.Forms.Button() @@ -53,7 +54,7 @@ Partial Class usrcntlFremdrechnungen Me.Button8 = New System.Windows.Forms.Button() Me.Panel3 = New System.Windows.Forms.Panel() Me.SplitContainer1 = New System.Windows.Forms.SplitContainer() - Me.dgvSDL = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) + Me.dgvLFRechnung = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) Me.Panel4 = New System.Windows.Forms.Panel() Me.cntxtExcel = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.ToolStripMenuItem3 = New System.Windows.Forms.ToolStripMenuItem() @@ -65,7 +66,7 @@ Partial Class usrcntlFremdrechnungen CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainer1.Panel1.SuspendLayout() Me.SplitContainer1.SuspendLayout() - CType(Me.dgvSDL, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.dgvLFRechnung, System.ComponentModel.ISupportInitialize).BeginInit() Me.Panel4.SuspendLayout() Me.cntxtExcel.SuspendLayout() Me.SuspendLayout() @@ -269,6 +270,7 @@ Partial Class usrcntlFremdrechnungen Me.Panel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink Me.Panel1.BackColor = System.Drawing.SystemColors.ControlLightLight Me.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.Panel1.Controls.Add(Me.Button2) Me.Panel1.Controls.Add(Me.cbx) Me.Panel1.Controls.Add(Me.Label4) Me.Panel1.Controls.Add(Me.Label2) @@ -276,7 +278,7 @@ Partial Class usrcntlFremdrechnungen Me.Panel1.Controls.Add(Me.dat_Sum_Bis) Me.Panel1.Controls.Add(Me.dat_Sum_Von) Me.Panel1.Controls.Add(Me.Button1) - Me.Panel1.Controls.Add(Me.cbxMax200Eintrage) + Me.Panel1.Controls.Add(Me.cbxMax1000Eintrage) Me.Panel1.Controls.Add(Me.lblEinträge) Me.Panel1.Controls.Add(Me.Button4) Me.Panel1.Controls.Add(Me.Button5) @@ -288,6 +290,18 @@ Partial Class usrcntlFremdrechnungen Me.Panel1.Size = New System.Drawing.Size(260, 907) Me.Panel1.TabIndex = 23 ' + 'Button2 + ' + Me.Button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button2.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.Button2.Location = New System.Drawing.Point(132, 203) + Me.Button2.Name = "Button2" + Me.Button2.Size = New System.Drawing.Size(47, 44) + Me.Button2.TabIndex = 53 + Me.Button2.Text = "Test" + Me.Button2.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.Button2.UseVisualStyleBackColor = True + ' 'cbx ' Me.cbx.AutoSize = True @@ -354,17 +368,17 @@ Partial Class usrcntlFremdrechnungen Me.Button1.TextAlign = System.Drawing.ContentAlignment.MiddleRight Me.Button1.UseVisualStyleBackColor = True ' - 'cbxMax200Eintrage + 'cbxMax1000Eintrage ' - Me.cbxMax200Eintrage.AutoSize = True - Me.cbxMax200Eintrage.Checked = True - Me.cbxMax200Eintrage.CheckState = System.Windows.Forms.CheckState.Checked - Me.cbxMax200Eintrage.Location = New System.Drawing.Point(8, 130) - Me.cbxMax200Eintrage.Name = "cbxMax200Eintrage" - Me.cbxMax200Eintrage.Size = New System.Drawing.Size(111, 17) - Me.cbxMax200Eintrage.TabIndex = 41 - Me.cbxMax200Eintrage.Text = "max. 200 Einträge" - Me.cbxMax200Eintrage.UseVisualStyleBackColor = True + Me.cbxMax1000Eintrage.AutoSize = True + Me.cbxMax1000Eintrage.Checked = True + Me.cbxMax1000Eintrage.CheckState = System.Windows.Forms.CheckState.Checked + Me.cbxMax1000Eintrage.Location = New System.Drawing.Point(8, 130) + Me.cbxMax1000Eintrage.Name = "cbxMax1000Eintrage" + Me.cbxMax1000Eintrage.Size = New System.Drawing.Size(111, 17) + Me.cbxMax1000Eintrage.TabIndex = 41 + Me.cbxMax1000Eintrage.Text = "max. 200 Einträge" + Me.cbxMax1000Eintrage.UseVisualStyleBackColor = True ' 'lblEinträge ' @@ -448,25 +462,28 @@ Partial Class usrcntlFremdrechnungen 'SplitContainer1.Panel1 ' Me.SplitContainer1.Panel1.AutoScroll = True - Me.SplitContainer1.Panel1.Controls.Add(Me.dgvSDL) + Me.SplitContainer1.Panel1.Controls.Add(Me.dgvLFRechnung) Me.SplitContainer1.Panel2MinSize = 0 Me.SplitContainer1.Size = New System.Drawing.Size(1356, 799) Me.SplitContainer1.SplitterDistance = 559 Me.SplitContainer1.TabIndex = 13 ' - 'dgvSDL + 'dgvLFRechnung ' - Me.dgvSDL.AKTUALISIERUNGS_INTERVALL = 1000 - Me.dgvSDL.AllowUserToAddRows = False - Me.dgvSDL.AllowUserToDeleteRows = False - Me.dgvSDL.AllowUserToResizeColumns = False + Me.dgvLFRechnung.AKTUALISIERUNGS_INTERVALL = 1000 + Me.dgvLFRechnung.AllowUserToAddRows = False + Me.dgvLFRechnung.AllowUserToDeleteRows = False + Me.dgvLFRechnung.AllowUserToResizeColumns = False + Me.dgvLFRechnung.AllowUserToResizeRows = False DataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer)) - Me.dgvSDL.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle1 - Me.dgvSDL.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize - Me.dgvSDL.Location = New System.Drawing.Point(4, 3) - Me.dgvSDL.Name = "dgvSDL" - Me.dgvSDL.Size = New System.Drawing.Size(1354, 770) - Me.dgvSDL.TabIndex = 29 + Me.dgvLFRechnung.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle1 + Me.dgvLFRechnung.BackgroundColor = System.Drawing.Color.White + Me.dgvLFRechnung.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + Me.dgvLFRechnung.Location = New System.Drawing.Point(4, 3) + Me.dgvLFRechnung.Name = "dgvLFRechnung" + Me.dgvLFRechnung.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect + Me.dgvLFRechnung.Size = New System.Drawing.Size(1354, 770) + Me.dgvLFRechnung.TabIndex = 29 ' 'Panel4 ' @@ -514,7 +531,7 @@ Partial Class usrcntlFremdrechnungen Me.SplitContainer1.Panel1.ResumeLayout(False) CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit() Me.SplitContainer1.ResumeLayout(False) - CType(Me.dgvSDL, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.dgvLFRechnung, System.ComponentModel.ISupportInitialize).EndInit() Me.Panel4.ResumeLayout(False) Me.cntxtExcel.ResumeLayout(False) Me.ResumeLayout(False) @@ -541,17 +558,18 @@ Partial Class usrcntlFremdrechnungen Friend WithEvents ToolStripMenuItem3 As System.Windows.Forms.ToolStripMenuItem Friend WithEvents ToolStripMenuItem6 As System.Windows.Forms.ToolStripMenuItem Friend WithEvents lblEinträge As System.Windows.Forms.Label - Friend WithEvents cbxMax200Eintrage As System.Windows.Forms.CheckBox + Friend WithEvents cbxMax1000Eintrage As System.Windows.Forms.CheckBox Friend WithEvents Button1 As System.Windows.Forms.Button Friend WithEvents Panel4 As System.Windows.Forms.Panel Friend WithEvents btnSDL_PLOSE As Button Friend WithEvents btnVERAGCardNew As Button Friend WithEvents btnSDL_RMC As Button - Friend WithEvents dgvSDL As VERAG_PROG_ALLGEMEIN.MyDatagridview + Friend WithEvents dgvLFRechnung As VERAG_PROG_ALLGEMEIN.MyDatagridview Friend WithEvents Label4 As Label Friend WithEvents Label2 As Label Friend WithEvents Label1 As Label Friend WithEvents cbx As CheckBox Friend WithEvents dat_Sum_Bis As DateTimePicker Friend WithEvents dat_Sum_Von As DateTimePicker + Friend WithEvents Button2 As Button End Class diff --git a/SDL/mdm/usrcntlFremdrechnungen.vb b/SDL/mdm/usrcntlFremdrechnungen.vb index 1fa7a690..3ffe48ed 100644 --- a/SDL/mdm/usrcntlFremdrechnungen.vb +++ b/SDL/mdm/usrcntlFremdrechnungen.vb @@ -14,21 +14,24 @@ Public Class usrcntlFremdrechnungen Dim fullyPainted = False - ' Dim show200 = True Private Sub usrCntlDaten_Load(sender As Object, e As EventArgs) Handles Me.Load - EnableDoubleBuffered(dgvSDL) + + dat_Sum_Von.Value = New Date(Today.Year, 1, 1) + dat_Sum_Bis.Value = New Date(Today.Year, 12, 31) + + + EnableDoubleBuffered(dgvLFRechnung) init() - AddHandler cbxMax200Eintrage.Click, Sub() - reClick() - End Sub + AddHandler cbxMax1000Eintrage.Click, Sub() + reClick() + End Sub SplitContainer1.Panel2Collapsed = True - dat_Sum_Von.Value = New Date(Today.AddYears(-1).Year, 1, 1) - dat_Sum_Bis.Value = New Date(Today.Year, 12, 31) + 'setPDFImages() End Sub @@ -64,7 +67,7 @@ Public Class usrcntlFremdrechnungen 'End If SplitContainer1.Panel2Collapsed = False - dgvSDL_SelectionChanged(dgvSDL, New System.EventArgs) + dgvSDL_SelectionChanged(dgvLFRechnung, New System.EventArgs) End If @@ -90,10 +93,10 @@ Public Class usrcntlFremdrechnungen initAllg() - dgvSDL.RELOAD() + dgvLFRechnung.RELOAD() txtchanged = False - dgvSDL.ClearSelection() - If dgvSDL.RowCount > 0 Then dgvSDL.Rows(0).Cells(0).Selected = True + dgvLFRechnung.ClearSelection() + If dgvLFRechnung.RowCount > 0 Then dgvLFRechnung.Rows(0).Cells(0).Selected = True 'dgvSDL_SelectionChanged(dgvSDL, New EventArgs) End Sub @@ -112,7 +115,7 @@ Public Class usrcntlFremdrechnungen If Not fullyPainted Then Exit Sub ' nur wenn die usrcntl komplett gelden wurde... Try - With dgvSDL + With dgvLFRechnung .RowTemplate.Height = 20 .AllowUserToOrderColumns = False .AllowUserToResizeRows = False @@ -121,10 +124,9 @@ Public Class usrcntlFremdrechnungen .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells - 'redRows() - End With + Catch ex As Exception MsgBox(ex.Message) End Try @@ -134,28 +136,30 @@ Public Class usrcntlFremdrechnungen Sub initDGVWidth() Dim DGVwidth = 0 Dim reduceWidth = 0 - For Each c As DataGridViewColumn In dgvSDL.Columns + For Each c As DataGridViewColumn In dgvLFRechnung.Columns DGVwidth += c.Width Next Dim DGVheight = 0 - For Each r As DataGridViewRow In dgvSDL.Rows + For Each r As DataGridViewRow In dgvLFRechnung.Rows DGVheight += r.Height Next DGVheight += 50 ' If DGVheight > (SplitContainer1.Panel1.Height) Then - dgvSDL.Height = DGVheight + dgvLFRechnung.Height = DGVheight reduceWidth = 25 ' Scrollbar Else - dgvSDL.Height = SplitContainer1.Panel1.Height - 25 + dgvLFRechnung.Height = SplitContainer1.Panel1.Height - 25 End If If DGVwidth > SplitContainer1.Panel1.Width Then - dgvSDL.Width = DGVwidth - reduceWidth + dgvLFRechnung.Width = DGVwidth - reduceWidth Else - dgvSDL.Width = SplitContainer1.Panel1.Width - reduceWidth + dgvLFRechnung.Width = SplitContainer1.Panel1.Width - reduceWidth End If + + End Sub Sub ifContainsAndTrueRed(r As DataGridViewRow, t As String) @@ -181,12 +185,12 @@ Public Class usrcntlFremdrechnungen b.ForeColor = Color.Black aktbtn = b.Name - If dgvSDL.Columns("SDLNr") IsNot Nothing Then + If dgvLFRechnung.Columns("SDLNr") IsNot Nothing Then If aktbtn = "btnSDL_Alle" Then - dgvSDL.Columns("SDLNr").Visible = True + dgvLFRechnung.Columns("SDLNr").Visible = True Else - dgvSDL.Columns("SDLNr").Visible = False + dgvLFRechnung.Columns("SDLNr").Visible = False End If End If @@ -197,67 +201,67 @@ Public Class usrcntlFremdrechnungen aktSDLNr = SDLNrTmp - + Dim anzahlTop = 1000 Dim SQL_STR = "" Select Case SDLNrTmp 'IDS - Case 100 : SQL_STR = "SELECT " & IIf(cbxMax200Eintrage.Checked, " top 200 ", "") & - " [YearMonthDay] as Rechnungsdatum,[Invoicenumber] as Rechnungsnummer,[daId],[TransactionVolume] as Transaktionsmenge,[AmminclVAT] as Bruttobetrag,[TotalNetAmount] as Nettobetrag,[VATAmount] as MWSt, cast(case when [daId] is not null then 1 else 0 end as bit) as PDF FROM tblIDSInvoicesNew WHERE [CustomerCode] = (SELECT TOP 1 [CustomerCode] FROM [VERAG].[dbo].[tbl_IDS_Kunden] WHERE [KdNrVERAG]=" & kdNr & " ORDER BY Zeitstempel DESC) and [YearMonthDay] " & setSQLWhere(SDLNrTmp, "") & " order by [YearMonthDay] desc, [Invoicenumber]" + Case 100 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") & + " [YearMonthDay] as Rechnungsdatum,[Invoicenumber] as Rechnungsnummer, CustomerCode as Kundennummer,[daId],[TransactionVolume] as Transaktionsmenge,[AmminclVAT] as Bruttobetrag,[TotalNetAmount] as Nettobetrag,[VATAmount] as MWSt, cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblIDSInvoicesNew WHERE [CustomerCode] in (SELECT distinct([CustomerCode]) FROM [VERAG].[dbo].[tbl_IDS_Kunden] WHERE 1 = 1 " & IIf(kdNr > 0, " AND [KdNrVERAG]=" & kdNr, "") & ") and [YearMonthDay] " & setSQLWhere(SDLNrTmp, "") & " order by [YearMonthDay] desc, [Invoicenumber]" 'UTA - Case 212 : SQL_STR = "SELECT " & IIf(cbxMax200Eintrage.Checked, " top 200 ", "") & - " [Rechnungsdatum],[Rechnungsnummer_pro_Lieferland] as Rechnungsnummer,Kundennummer,SUM(Gesamtbetrag_Brutto_in_Darstellwährung) as Bruttobetrag,SUM(Gesamtbetrag_Netto_in_Darstellwährung) as Nettobetrag, SUM(Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) as MWSt,[daId],[Lieferland_ISO2] as Land, 'RE' as Art, cast(case when [daId] is not null then 1 else 0 end as bit) as PDF FROM [VERAG].[dbo].[tblUTAImportNew] inner join adressen on Kundennummer = UTAKundenNr where AdressenNr = " & kdNr & " AND [Rechnungsdatum] " & setSQLWhere(SDLNrTmp, "Land") & " group by [Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId],[Lieferland_ISO2]" + Case 212 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") & + " [Rechnungsdatum],[Rechnungsnummer_pro_Lieferland] as Rechnungsnummer,Kundennummer,SUM(Gesamtbetrag_Brutto_in_Darstellwährung) as Bruttobetrag,SUM(Gesamtbetrag_Netto_in_Darstellwährung) as Nettobetrag, SUM(Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) as MWSt,[daId],[Lieferland_ISO2] as Land, 'RE' as Art, cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblUTAImportNew] inner join adressen on Kundennummer = UTAKundenNr where 1 = 1 " & IIf(kdNr > 0, " AND [AdressenNr]=" & kdNr, "") & " AND [Rechnungsdatum] " & setSQLWhere(SDLNrTmp, "Land") & " group by [Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId],[Lieferland_ISO2]" - SQL_STR &= " UNION ALL SELECT " & IIf(cbxMax200Eintrage.Checked, " top 200 ", "") & " [Datum], [RechnungsNr],[KundenNr],0,0,0,[daId],'',[DocumentTyp], cast(case when [daId] is not null then 1 else 0 end as bit) as PDF FROM [VERAG].[dbo].[tblUTADocuments]inner join adressen on KundenNr = UTAKundenNr where AdressenNr = " & kdNr & " and [Datum] " & setSQLWhere(SDLNrTmp, "") & " order by Rechnungsdatum desc" + SQL_STR &= " UNION ALL SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") & " [Datum], [RechnungsNr],[KundenNr],0,0,0,[daId],'',[DocumentTyp], cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblUTADocuments] inner join adressen on KundenNr = UTAKundenNr where 1 = 1 " & IIf(kdNr > 0, " AND [AdressenNr]=" & kdNr, "") & " and [Datum] " & setSQLWhere(SDLNrTmp, "") & " order by Rechnungsdatum desc" 'PLOSE - Case 214 : SQL_STR = "SELECT " & IIf(cbxMax200Eintrage.Checked, " top 200 ", "") & - " [plInv_SupplierRechnungsDatum] as Rechnungsdatum, [plInv_SupplierRechnungsNr] as Rechnungsnummer,[plInv_Nettobetrag] as Nettobetrag,[plInv_MWSTBetrag] as MWST,[plInv_Bruttobetrag] as Bruttobetrag,[plInv_daId] as daId, [plInv_SupplierCountry] as Land, cast(case when [plInv_daId] is not null then 1 else 0 end as bit) as PDF FROM tblPLOSE_Inv_Data inner join Adressen on Adressen.PLOSEKundenNr = plInv_PLOSEKundennummer where Adressen.AdressenNr = " & kdNr & " and [plInv_SupplierRechnungsDatum] " & setSQLWhere(SDLNrTmp, "plInv_SupplierCountry") & " Order by plInv_SupplierRechnungsDatum desc, [plInv_SupplierRechnungsNr]" + Case 214 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") & + " [plInv_SupplierRechnungsDatum] as Rechnungsdatum, [plInv_SupplierRechnungsNr] as Rechnungsnummer,[plInv_PLOSEKundennummer] as Kundennummer,[plInv_Nettobetrag] as Nettobetrag,[plInv_MWSTBetrag] as MWST,[plInv_Bruttobetrag] as Bruttobetrag,[plInv_daId] as daId, [plInv_SupplierCountry] as Land, cast(case when [plInv_daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblPLOSE_Inv_Data inner join Adressen on Adressen.PLOSEKundenNr = plInv_PLOSEKundennummer where 1 = 1 " & IIf(kdNr > 0, " AND Adressen.AdressenNr=" & kdNr, "") & " and [plInv_SupplierRechnungsDatum] " & setSQLWhere(SDLNrTmp, "plInv_SupplierCountry") & " Order by plInv_SupplierRechnungsDatum desc, [plInv_SupplierRechnungsNr]" 'MSE - Case 208 : SQL_STR = "SELECT " & IIf(cbxMax200Eintrage.Checked, " top 200 ", "") & - " [invoice_date] as Rechnungsdatum, [invoice_id] as Rechnungsnummer/*,[invoice_nr]*/,[customer_number] as Kundennummer, daId, [total_amount_euro] as Brutto_EUR ,[total_vat_amount_euro] as MWST,[country] as Land, cast(case when [daId] is not null then 1 else 0 end as bit) as PDF FROM tblMSEInvoices where customer_number = (select top 1 customer_id from tblMSECustomers where partner_customer_number = " & kdNr & " and [invoice_date] " & setSQLWhere(SDLNrTmp, "country") & " ) order by invoice_date desc, invoice_id" + Case 208 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") & + " [invoice_date] as Rechnungsdatum, [invoice_id] as Rechnungsnummer/*,[invoice_nr]*/,[customer_number] as Kundennummer, daId, [total_amount_euro] as Brutto_EUR ,[total_vat_amount_euro] as MWST,[country] as Land, cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblMSEInvoices where customer_number in (select customer_id from tblMSECustomers where 1 = 1 " & IIf(kdNr > 0, " AND [partner_customer_number]=" & kdNr, "") & " and [invoice_date] " & setSQLWhere(SDLNrTmp, "country") & " ) order by invoice_date desc, invoice_id" 'VERAG - Case 502 : SQL_STR = "SELECT " & IIf(cbxMax200Eintrage.Checked, " top 200 ", "") & - " tblTrdinInvoice.Rechnungsdatum, tblTrdinInvoice.Rechnungsnummer , tblTrdinInvoice.SteuerbetragLokal, cast( 1 as bit) as PDF FROM tblTrdinInvoice WHERE tblTrdinInvoice.RechnungsKundenNr=" & kdNr & " AND tblTrdinInvoice.FilialenNr = 4814 and tblTrdinInvoice.Rechnungsdatum " & setSQLWhere(SDLNrTmp, "'AT'") & " ORDER BY tblTrdinInvoice.Rechnungsdatum desc, tblTrdinInvoice.Rechnungsnummer" + Case 502 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") & + " tblTrdinInvoice.Rechnungsdatum, tblTrdinInvoice.Rechnungsnummer , tblTrdinInvoice.SteuerbetragLokal, 1 as daId, cast(1 as bit) as PDFvorhanden FROM tblTrdinInvoice WHERE 1 = 1 " & IIf(kdNr > 0, " AND tblTrdinInvoice.RechnungsKundenNr=" & kdNr, "") & " AND tblTrdinInvoice.FilialenNr = 4814 and tblTrdinInvoice.Rechnungsdatum " & setSQLWhere(SDLNrTmp, "'AT'") & " ORDER BY tblTrdinInvoice.Rechnungsdatum desc, tblTrdinInvoice.Rechnungsnummer" 'RMC - Case 999 : SQL_STR = "SELECT " & IIf(cbxMax200Eintrage.Checked, " top 200 ", "") & - "[rmc_reDatum] as Rechnungsdatum,[rmc_reNr] as Rechnungsnummer,[rmc_betragNetto] as Nettobetrag,[rmc_betragBrutto] as Bruttobetrag,[rmc_waehrung] as Währung ,[rmc_euroBrutto] as Brutto_EUR,[rmc_daId] as daId,[rmc_betragMWST] as MWST,rmc_landKZ as Land, cast(case when [rmc_daId] is not null then 1 else 0 end as bit) as PDF FROM [VERAG].[dbo].[tblRMCImport] inner join Adressen on Adressen.WölflKundenNr = rmc_kdNr where AdressenNr = " & kdNr & " and [rmc_reDatum] " & setSQLWhere(SDLNrTmp, "rmc_landKZ") & " order by rmc_reDatum desc, rmc_reNr" + Case 999 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") & + "[rmc_reDatum] as Rechnungsdatum,[rmc_reNr] as Rechnungsnummer,rmc_kdNr as Kundennummer,[rmc_betragNetto] as Nettobetrag,[rmc_betragBrutto] as Bruttobetrag,[rmc_waehrung] as Währung ,[rmc_euroBrutto] as Brutto_EUR,[rmc_daId] as daId,[rmc_betragMWST] as MWST,rmc_landKZ as Land, cast(case when [rmc_daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblRMCImport] inner join Adressen on Adressen.WölflKundenNr = rmc_kdNr where 1 = 1 " & IIf(kdNr > 0, " AND AdressenNr=" & kdNr, "") & " and [rmc_reDatum] " & setSQLWhere(SDLNrTmp, "rmc_landKZ") & " order by rmc_reDatum desc, rmc_reNr" - Case -1 : SQL_STR = "SELECT " & IIf(cbxMax200Eintrage.Checked, " top 200 ", "") & + Case -1 : Dim anzahl As Integer = anzahlTop / 6 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " --IDS - 'IDS' as Lieferant, [YearMonthDay] as Rechnungsdatum,[Invoicenumber] as Rechnungsnummer,CustomerCode as Kundennummer,[AmminclVAT] as Bruttobetrag,[TotalNetAmount] as Nettobetrag,[VATAmount] as MWSt,'' as Land, 'RE' as Art,[daId], cast(case when [daId] is not null then 1 else 0 end as bit) as PDF FROM tblIDSInvoicesNew WHERE [CustomerCode] = (SELECT TOP 1 [CustomerCode] FROM [VERAG].[dbo].[tbl_IDS_Kunden] WHERE [KdNrVERAG]=" & kdNr & " ORDER BY Zeitstempel DESC) and [YearMonthDay] " & setSQLWhere(SDLNrTmp, "") & " --order by [YearMonthDay], [Invoicenumber] + 'IDS' as Lieferant, [YearMonthDay] as Rechnungsdatum,[Invoicenumber] as Rechnungsnummer,CustomerCode as Kundennummer,[AmminclVAT] as Bruttobetrag,[TotalNetAmount] as Nettobetrag,[VATAmount] as MWSt,'' as Land, 'RE' as Art,[daId], cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblIDSInvoicesNew WHERE [CustomerCode] = (SELECT TOP 1 [CustomerCode] FROM [VERAG].[dbo].[tbl_IDS_Kunden] WHERE 1 = 1 " & IIf(kdNr > 0, " AND [KdNrVERAG]=" & kdNr, "") & " ORDER BY Zeitstempel DESC) and [YearMonthDay] " & setSQLWhere(SDLNrTmp, "") & " --order by [YearMonthDay], [Invoicenumber] UNION ALL --MSE - SELECT 'MSE' as Lieferant, [invoice_date] as Rechnungsdatum, cast([invoice_id] as nvarchar) as Rechnungsnummer,[customer_number] as Kundennummer, [total_amount_euro] as Bruttobetrag ,(total_amount_euro - [total_vat_amount_euro]) as Nettobetrag ,[total_vat_amount_euro] as MWST,[country] as Land,'RE' as Art,daId, cast(case when [daId] is not null then 1 else 0 end as bit) as PDF FROM tblMSEInvoices where customer_number = (select top 1 customer_id from tblMSECustomers where partner_customer_number = " & kdNr & " and [invoice_date] " & setSQLWhere(SDLNrTmp, "country") & " ) --order by invoice_date, invoice_id + SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'MSE' as Lieferant, [invoice_date] as Rechnungsdatum, cast([invoice_id] as nvarchar) as Rechnungsnummer,[customer_number] as Kundennummer, [total_amount_euro] as Bruttobetrag ,(total_amount_euro - [total_vat_amount_euro]) as Nettobetrag ,[total_vat_amount_euro] as MWST,[country] as Land,'RE' as Art,daId, cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblMSEInvoices where customer_number = (select top 1 customer_id from tblMSECustomers where 1 = 1 " & IIf(kdNr > 0, " AND [partner_customer_number]=" & kdNr, "") & " and [invoice_date] " & setSQLWhere(SDLNrTmp, "country") & " ) --order by invoice_date, invoice_id UNION ALL --UTA - SELECT 'UTA' as Lieferant, [Rechnungsdatum],STR([Rechnungsnummer_pro_Lieferland]) as Rechnungsnummer,Kundennummer,SUM(Gesamtbetrag_Brutto_in_Darstellwährung) as Bruttobetrag,SUM(Gesamtbetrag_Netto_in_Darstellwährung) as Nettobetrag, SUM(Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) as MWSt,[Lieferland_ISO2] as Land, 'RE' as Art,[daId], cast(case when [daId] is not null then 1 else 0 end as bit) as PDF FROM [VERAG].[dbo].[tblUTAImportNew] inner join adressen on Kundennummer = UTAKundenNr where AdressenNr = " & kdNr & " and [Rechnungsdatum] " & setSQLWhere(SDLNrTmp, "Lieferland_ISO2") & " group by [Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId],[Lieferland_ISO2] UNION ALL SELECT 'UTA', [Datum], cast([RechnungsNr] as nvarchar) ,[KundenNr],0,0,0,'',[DocumentTyp],[daId], cast(case when [daId] is not null then 1 else 0 end as bit) as PDF FROM [VERAG].[dbo].[tblUTADocuments] inner join adressen on KundenNr = UTAKundenNr where AdressenNr = " & kdNr & " AND Datum " & setSQLWhere(SDLNrTmp, "") & " + SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'UTA' as Lieferant, [Rechnungsdatum],STR([Rechnungsnummer_pro_Lieferland]) as Rechnungsnummer,Kundennummer,SUM(Gesamtbetrag_Brutto_in_Darstellwährung) as Bruttobetrag,SUM(Gesamtbetrag_Netto_in_Darstellwährung) as Nettobetrag, SUM(Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) as MWSt,[Lieferland_ISO2] as Land, 'RE' as Art,[daId], cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblUTAImportNew] inner join adressen on Kundennummer = UTAKundenNr where 1 = 1 " & IIf(kdNr > 0, " AND [AdressenNr]=" & kdNr, "") & " and [Rechnungsdatum] " & setSQLWhere(SDLNrTmp, "Lieferland_ISO2") & " group by [Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId],[Lieferland_ISO2] UNION ALL SELECT 'UTA', [Datum], cast([RechnungsNr] as nvarchar) ,[KundenNr],0,0,0,'',[DocumentTyp],[daId], cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblUTADocuments] inner join adressen on KundenNr = UTAKundenNr where AdressenNr = " & kdNr & " AND Datum " & setSQLWhere(SDLNrTmp, "") & " UNION ALL --VERAG - SELECT 'VERAG' as Lieferant, tblTrdinInvoice.Rechnungsdatum, cast(tblTrdinInvoice.Rechnungsnummer as nvarchar) as Rechnungsnummer ,tblTrdinInvoice.KundenNrZentrale as Kundennummer, tblTrdinInvoice.SteuerpflichtigerBetragLokal + tblTrdinInvoice.SteuerfreierBetragLokal as Bruttobetrag ,tblTrdinInvoice.SteuerpflichtigerBetragLokal + tblTrdinInvoice.SteuerfreierBetragLokal - tblTrdinInvoice.SteuerbetragLokal as Nettobetrag ,tblTrdinInvoice.SteuerbetragLokal as MWST, 'AT' as Land, 'RE' as Art, -1 as daId, cast( 1 as bit) as PDF FROM tblTrdinInvoice WHERE tblTrdinInvoice.RechnungsKundenNr=" & kdNr & " and tblTrdinInvoice.Rechnungsdatum " & setSQLWhere(SDLNrTmp, "'AT'") & " AND tblTrdinInvoice.FilialenNr = 4814 -- ORDER BY tblTrdinInvoice.Rechnungsdatum, tblTrdinInvoice.Rechnungsnummer + SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'VERAG' as Lieferant, tblTrdinInvoice.Rechnungsdatum, cast(tblTrdinInvoice.Rechnungsnummer as nvarchar) as Rechnungsnummer ,tblTrdinInvoice.KundenNrZentrale as Kundennummer, tblTrdinInvoice.SteuerpflichtigerBetragLokal + tblTrdinInvoice.SteuerfreierBetragLokal as Bruttobetrag ,tblTrdinInvoice.SteuerpflichtigerBetragLokal + tblTrdinInvoice.SteuerfreierBetragLokal - tblTrdinInvoice.SteuerbetragLokal as Nettobetrag ,tblTrdinInvoice.SteuerbetragLokal as MWST, 'AT' as Land, 'RE' as Art, 1 as daId, cast(1 as bit) PDFvorhanden FROM tblTrdinInvoice WHERE 1 = 1 " & IIf(kdNr > 0, " AND tblTrdinInvoice.RechnungsKundenNr=" & kdNr, "") & " and tblTrdinInvoice.Rechnungsdatum " & setSQLWhere(SDLNrTmp, "'AT'") & " AND tblTrdinInvoice.FilialenNr = 4814 -- ORDER BY tblTrdinInvoice.Rechnungsdatum, tblTrdinInvoice.Rechnungsnummer UNION ALL --PLOSE - SELECT 'PLOSE' as Lieferant, [plInv_SupplierRechnungsDatum] as Rechnungsdatum, cast([plInv_SupplierRechnungsNr] as nvarchar) as Rechnungsnummer,[plInv_PLOSEKundennummer] as Kundennummer,[plInv_Bruttobetrag] as Bruttobetrag,[plInv_Nettobetrag] as Nettobetrag,[plInv_MWSTBetrag] as MWST, [plInv_SupplierCountry] as Land, 'RE' as Art,[plInv_daId] as daId, cast(case when [plInv_daId] is not null then 1 else 0 end as bit) as PDF FROM tblPLOSE_Inv_Data inner join Adressen on Adressen.PLOSEKundenNr = plInv_PLOSEKundennummer where Adressen.AdressenNr = " & kdNr & " and [plInv_SupplierRechnungsDatum] " & setSQLWhere(SDLNrTmp, "plInv_SupplierCountry") & " + SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'PLOSE' as Lieferant, [plInv_SupplierRechnungsDatum] as Rechnungsdatum, cast([plInv_SupplierRechnungsNr] as nvarchar) as Rechnungsnummer,[plInv_PLOSEKundennummer] as Kundennummer,[plInv_Bruttobetrag] as Bruttobetrag,[plInv_Nettobetrag] as Nettobetrag,[plInv_MWSTBetrag] as MWST, [plInv_SupplierCountry] as Land, 'RE' as Art,[plInv_daId] as daId, cast(case when [plInv_daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblPLOSE_Inv_Data inner join Adressen on Adressen.PLOSEKundenNr = plInv_PLOSEKundennummer where 1 = 1 " & IIf(kdNr > 0, " AND Adressen.AdressenNr=" & kdNr, "") & " and [plInv_SupplierRechnungsDatum] " & setSQLWhere(SDLNrTmp, "plInv_SupplierCountry") & " UNION ALL --RMC - SELECT 'RMC' as Lieferant, [rmc_reDatum] as Rechnungsdatum,cast([rmc_reNr] as nvarchar) as Rechnungsnummer,rmc_kdNr as Kundennummer ,[rmc_betragBrutto] as Bruttobetrag,[rmc_betragNetto] as Nettobetrag,[rmc_betragMWST] as MWST, rmc_landKZ as Land, 'RE' as Art, [rmc_daId] as daId, cast(case when [rmc_daId] is not null then 1 else 0 end as bit) as PDF FROM [VERAG].[dbo].[tblRMCImport] inner join Adressen on Adressen.WölflKundenNr = rmc_kdNr where AdressenNr = " & kdNr & " and [rmc_reDatum] " & setSQLWhere(SDLNrTmp, "rmc_landKZ") & " --order by rmc_reDatum, rmc_reNr + SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'RMC' as Lieferant, [rmc_reDatum] as Rechnungsdatum,cast([rmc_reNr] as nvarchar) as Rechnungsnummer,rmc_kdNr as Kundennummer ,[rmc_betragBrutto] as Bruttobetrag,[rmc_betragNetto] as Nettobetrag,[rmc_betragMWST] as MWST, rmc_landKZ as Land, 'RE' as Art, [rmc_daId] as daId, cast(case when [rmc_daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblRMCImport] inner join Adressen on Adressen.WölflKundenNr = rmc_kdNr where 1 = 1 " & IIf(kdNr > 0, " AND AdressenNr=" & kdNr, "") & " and [rmc_reDatum] " & setSQLWhere(SDLNrTmp, "rmc_landKZ") & " --order by rmc_reDatum, rmc_reNr order by Rechnungsdatum desc" @@ -271,27 +275,43 @@ Public Class usrcntlFremdrechnungen newBinding(SDLNrTmp, SQL_STR) initBtnClick(getSDLNrButton(SDLNrTmp)) - With dgvSDL + + With dgvLFRechnung + + + Dim c As New DataGridViewImageColumn + c.Name = "PDF" : c.HeaderText = "PDF" + c.DefaultCellStyle.NullValue = Nothing + c.ImageLayout = DataGridViewImageCellLayout.Zoom + c.Width = 40 + c.DefaultCellStyle.Padding = New Padding(2) + c.DefaultCellStyle.BackColor = Color.White + c.Image = My.Resources.pdf_gray + + + If Not .Columns.Contains("PDF") Then .Columns.Add(c) + If .Columns.Count > 0 Then + If .Columns.Contains("daId") Then If .Columns("daId") IsNot Nothing Then .Columns("daId").Visible = False End If - - End If End With + initAllg() - dgvSDL.Width = 100 - dgvSDL.Height = 100 - dgvSDL.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells + dgvLFRechnung.Width = 100 + dgvLFRechnung.Height = 100 + dgvLFRechnung.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells initDGVWidth() 'vor Filter, damit richtige Größe + setPDFImages() End Sub Private Function setSQLWhere(SDLNrTmp As Integer, land As String) As String @@ -299,7 +319,7 @@ Public Class usrcntlFremdrechnungen Dim SQLWhere = " between '" & dat_Sum_Von.Value.ToShortDateString & "' and '" & dat_Sum_Bis.Value.ToShortDateString & "'" - If cbx.Checked AndAlso SDLNrTmp <> 100 Then + If cbx.Checked AndAlso SDLNrTmp <> 100 AndAlso KUNDE IsNot Nothing Then Select Case KUNDE.LandKz Case "SRB", "BIH", "MK", "MNE", "TR" If land <> "" Then SQLWhere &= " AND " & land & " not in('AT','CH', 'CZ', 'DE', 'EE', 'ES', 'IE', 'LT', 'LV', 'NRW', 'NO', 'OT', 'RS', 'UA', " & IIf(KUNDE.LandKz = "SRB", "'BG', 'HU', 'RO', 'SI', 'SK'", "") & IIf(KUNDE.LandKz = "BIH", "'SK'", "") & IIf(KUNDE.LandKz = "TR", "'HU', 'SI', 'SK'", "") & IIf(KUNDE.LandKz = "MNE", "'PL', 'SI'", "") & IIf(KUNDE.LandKz = "MK", "'BG', 'PL','SI'", "") & ")" @@ -374,28 +394,28 @@ Public Class usrcntlFremdrechnungen Sub newBinding(sdlNr As Integer, ByVal sql As String) dgvInitWait = True ' bindingSDL = Nothing - dgvSDL.Columns.Clear() - dgvSDL.VirtualMode = True + dgvLFRechnung.Columns.Clear() + dgvLFRechnung.VirtualMode = True txtchanged = True dgvInitWait = True - dgvSDL.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells + dgvLFRechnung.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells - dgvSDL.SET_SQL(sql, "FMZOLL") - dgvSDL.LOAD() + dgvLFRechnung.SET_SQL(sql, "FMZOLL") + dgvLFRechnung.LOAD() - lblEinträge.Text = dgvSDL.RowCount & " Einträge" - If dgvSDL.RowCount >= 200 Then lblEinträge.Text = dgvSDL.RowCount & " Einträge " & IIf(cbxMax200Eintrage.Checked, "(Anzeige auf 200 beschränkt)", "") + lblEinträge.Text = dgvLFRechnung.RowCount & " Einträge" + If dgvLFRechnung.RowCount >= 200 Then lblEinträge.Text = dgvLFRechnung.RowCount & " Einträge " & IIf(cbxMax1000Eintrage.Checked, "(Anzeige auf 200 beschränkt)", "") dgvInitWait = False txtchanged = False dgvInitWait = False - dgvSDL.ClearSelection() + dgvLFRechnung.ClearSelection() - If dgvSDL.RowCount > 0 Then - dgvSDL.Rows(0).Cells(0).Selected = True + If dgvLFRechnung.RowCount > 0 Then + dgvLFRechnung.Rows(0).Cells(0).Selected = True Else End If @@ -409,7 +429,7 @@ Public Class usrcntlFremdrechnungen Private Sub Button4_Click_1(sender As Object, e As EventArgs) Handles Button4.Click If SplitContainer1.Panel2Collapsed Then SplitContainer1.Panel2Collapsed = False - dgvSDL_SelectionChanged(dgvSDL, New System.EventArgs) + dgvSDL_SelectionChanged(dgvLFRechnung, New System.EventArgs) Else SplitContainer1.Panel2Collapsed = True End If @@ -423,9 +443,9 @@ Public Class usrcntlFremdrechnungen Sub refreshDgv(kdNr, SDLNr, Optional Kfz = "", Optional History = "") SET_SDL(aktSDLNr) - dgvSDL.ClearSelection() + dgvLFRechnung.ClearSelection() If Kfz <> "" And History <> "" Then - For Each r As DataGridViewRow In dgvSDL.Rows + For Each r As DataGridViewRow In dgvLFRechnung.Rows If r.Cells("KundenNr").Value = kdNr And r.Cells("SDLNr").Value = SDLNr And r.Cells("KfzKennzeichen").Value = Kfz And @@ -442,26 +462,26 @@ Public Class usrcntlFremdrechnungen Private Sub UsrCntlDatenDetails1_Changed(kdNr, Kfz, SDLNr, History) 'refreshDgv(kdNr, SDLNr, Kfz, History)'?????????????? ausgebelndet,was das ein VErsuch? 31.07.2017 - dgvSDL.VALUE_CHANGED = True + dgvLFRechnung.VALUE_CHANGED = True End Sub Private Sub datadgvSDL_SelectionChanged(kdNr, Kfz, SDLNr, History) ' refreshDgv(kdNr, SDLNr, Kfz, History) - dgvSDL.VALUE_CHANGED = True + dgvLFRechnung.VALUE_CHANGED = True Exit Sub dgvInitWait = True - dgvSDL.RELOAD() + dgvLFRechnung.RELOAD() dgvInitWait = False End Sub ' Private Sub dgvSDL_SelectionChanged(sender As Object, e As EventArgs) Handles dgvSDL.SelectionChanged - Private Sub dgvSDL_KeyDown(sender As Object, e As KeyEventArgs) Handles dgvSDL.KeyUp + Private Sub dgvSDL_KeyDown(sender As Object, e As KeyEventArgs) Handles dgvLFRechnung.KeyUp If e.KeyCode = Keys.Up Or e.KeyCode = Keys.Down Or e.KeyCode = Keys.End Or e.KeyCode = Keys.Home Then '?POS1 ' ReloadLeistung() End If End Sub - Private Sub dgvSDL_SelectionChanged(sender As Object, e As EventArgs) Handles dgvSDL.Click + Private Sub dgvSDL_SelectionChanged(sender As Object, e As EventArgs) Handles dgvLFRechnung.Click 'ReloadLeistung() End Sub @@ -469,7 +489,7 @@ Public Class usrcntlFremdrechnungen Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click - If dgvSDL.SelectedRows.Count > 0 Then + If dgvLFRechnung.SelectedRows.Count > 0 Then Dim TextHTMLtable = "" @@ -477,10 +497,24 @@ Public Class usrcntlFremdrechnungen TextHTMLtable &= "LieferantLandDatum" Dim pdflist As New List(Of String) - For Each row In dgvSDL.SelectedRows + For Each row In dgvLFRechnung.SelectedRows - Dim Lieferant = row.Cells("Lieferant").Value + Dim Lieferant = "" + + If dgvLFRechnung.Columns.Contains("Lieferant") Then + Lieferant = row.Cells("Lieferant").Value + Else + Select Case aktSDLNr + Case 100 : Lieferant = "IDS" + Case 212 : Lieferant = "UTA" + Case 214 : Lieferant = "PLOSE" + Case 208 : Lieferant = "MSE" + Case 502 : Lieferant = "VERAG" + Case 999 : Lieferant = "RMC" + End Select + + End If If Lieferant = "VERAG" Then 'VERAG IGNORIEREN @@ -496,7 +530,7 @@ Public Class usrcntlFremdrechnungen Else TextHTMLtable &= "" - TextHTMLtable &= "" & row.Cells("Lieferant").Value & "" + TextHTMLtable &= "" & IIf(dgvLFRechnung.Columns.Contains("Lieferant"), row.Cells("Lieferant").Value, Lieferant) & "" TextHTMLtable &= "" & row.Cells("Land").Value & "" TextHTMLtable &= "" & row.Cells("Rechnungsdatum").Value & "" TextHTMLtable &= "" @@ -613,20 +647,20 @@ Public Class usrcntlFremdrechnungen Private Sub ToolStripMenuItem3_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem3.Click Me.Cursor = Cursors.WaitCursor - cProgramFunctions.genExcelFromDGV(dgvSDL, True) + cProgramFunctions.genExcelFromDGV(dgvLFRechnung, True) Me.Cursor = Cursors.Default End Sub Private Sub ToolStripMenuItem6_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem6.Click Me.Cursor = Cursors.WaitCursor - cProgramFunctions.genExcelFromDGV_NEW(dgvSDL, True) + cProgramFunctions.genExcelFromDGV_NEW(dgvLFRechnung, True) Me.Cursor = Cursors.Default End Sub Private Sub Button8_Click_1(sender As Object, e As EventArgs) Handles Button8.Click Me.Cursor = Cursors.WaitCursor - cProgramFunctions.genExcelFromDGV_NEW(dgvSDL, True, True) + cProgramFunctions.genExcelFromDGV_NEW(dgvLFRechnung, True, True) Me.Cursor = Cursors.Default End Sub @@ -636,7 +670,7 @@ Public Class usrcntlFremdrechnungen End Sub - Private Sub dgvSDL_RELOADED() Handles dgvSDL.RELOADED + Private Sub dgvSDL_RELOADED() Handles dgvLFRechnung.RELOADED ' redRows() End Sub @@ -646,24 +680,24 @@ Public Class usrcntlFremdrechnungen Dim vval As Integer - Private Sub dgvSDL_GotFocus(sender As Object, e As EventArgs) Handles dgvSDL.GotFocus + Private Sub dgvSDL_GotFocus(sender As Object, e As EventArgs) Handles dgvLFRechnung.GotFocus 'dgvSDL.VerticalScrollingOffset = vval SplitContainer1.Panel1.VerticalScroll.Value = vval End Sub - Private Sub dgvSDL_Enter(sender As Object, e As EventArgs) Handles dgvSDL.Enter + Private Sub dgvSDL_Enter(sender As Object, e As EventArgs) Handles dgvLFRechnung.Enter vval = SplitContainer1.Panel1.VerticalScroll.Value End Sub - Private Sub dgvSDL_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvSDL.CellContentDoubleClick + Private Sub dgvSDL_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvLFRechnung.CellContentDoubleClick Try If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 Then Select Case aktSDLNr Case 502 'VERAG - Dim ReDat = dgvSDL.Rows(e.RowIndex).Cells("Rechnungsdatum").Value - Dim ReNr = dgvSDL.Rows(e.RowIndex).Cells("Rechnungsnummer").Value + Dim ReDat = dgvLFRechnung.Rows(e.RowIndex).Cells("Rechnungsdatum").Value + Dim ReNr = dgvLFRechnung.Rows(e.RowIndex).Cells("Rechnungsnummer").Value If ReDat IsNot Nothing AndAlso ReNr > 0 Then Me.Cursor = Cursors.WaitCursor @@ -672,11 +706,11 @@ Public Class usrcntlFremdrechnungen End If Case -1 'ALLE - Dim Lieferant = dgvSDL.Rows(e.RowIndex).Cells("Lieferant").Value + Dim Lieferant = dgvLFRechnung.Rows(e.RowIndex).Cells("Lieferant").Value If Lieferant = "VERAG" Then - Dim ReDat = dgvSDL.Rows(e.RowIndex).Cells("Rechnungsdatum").Value - Dim ReNr = dgvSDL.Rows(e.RowIndex).Cells("Rechnungsnummer").Value + Dim ReDat = dgvLFRechnung.Rows(e.RowIndex).Cells("Rechnungsdatum").Value + Dim ReNr = dgvLFRechnung.Rows(e.RowIndex).Cells("Rechnungsnummer").Value If ReDat IsNot Nothing AndAlso ReNr > 0 Then Me.Cursor = Cursors.WaitCursor @@ -687,7 +721,7 @@ Public Class usrcntlFremdrechnungen End If - Dim daId = dgvSDL.Rows(e.RowIndex).Cells("daId").Value + Dim daId = dgvLFRechnung.Rows(e.RowIndex).Cells("daId").Value If daId > 0 Then Me.Cursor = Cursors.WaitCursor Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId) @@ -698,7 +732,7 @@ Public Class usrcntlFremdrechnungen Case Else - Dim daId = dgvSDL.Rows(e.RowIndex).Cells("daId").Value + Dim daId = dgvLFRechnung.Rows(e.RowIndex).Cells("daId").Value If daId > 0 Then Me.Cursor = Cursors.WaitCursor Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId) @@ -729,4 +763,75 @@ Public Class usrcntlFremdrechnungen Private Sub cbx_CheckedChanged(sender As Object, e As EventArgs) Handles cbx.CheckedChanged SET_SDL(aktSDLNr) End Sub + + Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click + + With dgvLFRechnung + + + Dim c As New DataGridViewImageColumn + c.Name = "PDF" : c.HeaderText = "PDF" + c.DefaultCellStyle.NullValue = Nothing + c.ImageLayout = DataGridViewImageCellLayout.Zoom + c.Width = 40 : c.DefaultCellStyle.Padding = New Padding(2) : c.DefaultCellStyle.BackColor = Color.White + + + If Not .Columns.Contains("PDF") Then .Columns.Add(c) + + For Each r As DataGridViewRow In .Rows + + If IsDBNull(r.Cells("daId").Value) OrElse r.Cells("daId").Value = 0 Then + DirectCast(r.Cells("PDF"), DataGridViewImageCell).Value = My.Resources.pdf_gray + + End If + + + Next + + + If .Columns.Count > 0 Then + + If .Columns.Contains("daId") Then + If .Columns("daId") IsNot Nothing Then .Columns("daId").Visible = False + End If + + End If + + End With + + + + + End Sub + + Private Sub setPDFImages() + + Exit Sub 'langsam!!!! + + With dgvLFRechnung + + If Not .Columns.Contains("PDF") Then Exit Sub + + For Each r As DataGridViewRow In .Rows + + If r.Cells("pdfVorhanden").Value Then + Try + 'DirectCast(r.Cells("PDF"), DataGridViewImageCell).Value = Nothing + DirectCast(r.Cells("PDF"), DataGridViewImageCell).Value = My.Resources.pdf + + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + + + End If + + + Next + + + + End With + + End Sub End Class diff --git a/SDL/seriendruck/usrCntlFakturierung.Designer.vb b/SDL/seriendruck/usrCntlFakturierung.Designer.vb index b1918ebd..523989ad 100644 --- a/SDL/seriendruck/usrCntlFakturierung.Designer.vb +++ b/SDL/seriendruck/usrCntlFakturierung.Designer.vb @@ -85,6 +85,7 @@ Partial Class usrcntlFakturierung Me.Label63 = New System.Windows.Forms.Label() Me.Label45 = New System.Windows.Forms.Label() Me.Button14 = New System.Windows.Forms.Button() + Me.Button4 = New System.Windows.Forms.Button() Me.GroupBox1.SuspendLayout() Me.GBMautberichte.SuspendLayout() CType(Me.MyDatagridview1, System.ComponentModel.ISupportInitialize).BeginInit() @@ -101,6 +102,7 @@ Partial Class usrcntlFakturierung ' 'GroupBox1 ' + Me.GroupBox1.Controls.Add(Me.Button4) Me.GroupBox1.Controls.Add(Me.btnMDMSammelrechnung) Me.GroupBox1.Controls.Add(Me.btnFakturierung) Me.GroupBox1.Controls.Add(Me.btnRechnugnsdaten) @@ -115,9 +117,9 @@ Partial Class usrcntlFakturierung Me.btnMDMSammelrechnung.Enabled = False Me.btnMDMSammelrechnung.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnMDMSammelrechnung.ForeColor = System.Drawing.Color.Black - Me.btnMDMSammelrechnung.Location = New System.Drawing.Point(414, 19) + Me.btnMDMSammelrechnung.Location = New System.Drawing.Point(350, 19) Me.btnMDMSammelrechnung.Name = "btnMDMSammelrechnung" - Me.btnMDMSammelrechnung.Size = New System.Drawing.Size(147, 44) + Me.btnMDMSammelrechnung.Size = New System.Drawing.Size(121, 44) Me.btnMDMSammelrechnung.TabIndex = 51 Me.btnMDMSammelrechnung.Text = "MDM Sammelrechnung" Me.btnMDMSammelrechnung.UseVisualStyleBackColor = True @@ -129,7 +131,7 @@ Partial Class usrcntlFakturierung Me.btnFakturierung.ForeColor = System.Drawing.Color.Black Me.btnFakturierung.Location = New System.Drawing.Point(6, 19) Me.btnFakturierung.Name = "btnFakturierung" - Me.btnFakturierung.Size = New System.Drawing.Size(147, 43) + Me.btnFakturierung.Size = New System.Drawing.Size(121, 43) Me.btnFakturierung.TabIndex = 6 Me.btnFakturierung.Text = "Fakturierung" Me.btnFakturierung.UseVisualStyleBackColor = True @@ -139,9 +141,9 @@ Partial Class usrcntlFakturierung Me.btnRechnugnsdaten.Enabled = False Me.btnRechnugnsdaten.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnRechnugnsdaten.ForeColor = System.Drawing.Color.Black - Me.btnRechnugnsdaten.Location = New System.Drawing.Point(201, 18) + Me.btnRechnugnsdaten.Location = New System.Drawing.Point(186, 19) Me.btnRechnugnsdaten.Name = "btnRechnugnsdaten" - Me.btnRechnugnsdaten.Size = New System.Drawing.Size(147, 44) + Me.btnRechnugnsdaten.Size = New System.Drawing.Size(121, 44) Me.btnRechnugnsdaten.TabIndex = 4 Me.btnRechnugnsdaten.Text = "Rechnungsdaten" Me.btnRechnugnsdaten.UseVisualStyleBackColor = True @@ -782,6 +784,17 @@ Partial Class usrcntlFakturierung Me.Button14.Text = "Rechnungspos. berechnen" Me.Button14.UseVisualStyleBackColor = True ' + 'Button4 + ' + Me.Button4.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button4.ForeColor = System.Drawing.Color.Black + Me.Button4.Location = New System.Drawing.Point(525, 18) + Me.Button4.Name = "Button4" + Me.Button4.Size = New System.Drawing.Size(139, 44) + Me.Button4.TabIndex = 52 + Me.Button4.Text = "MDM Lieferantenrechnungen" + Me.Button4.UseVisualStyleBackColor = True + ' 'usrcntlFakturierung ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -874,4 +887,5 @@ Partial Class usrcntlFakturierung Friend WithEvents Label2 As Label Friend WithEvents btnREJdruck As Button Friend WithEvents btnAbfdruck As Button + Friend WithEvents Button4 As Button End Class diff --git a/SDL/seriendruck/usrCntlFakturierung.resx b/SDL/seriendruck/usrCntlFakturierung.resx index 1fda1b15..ed50a967 100644 --- a/SDL/seriendruck/usrCntlFakturierung.resx +++ b/SDL/seriendruck/usrCntlFakturierung.resx @@ -120,122 +120,122 @@ - iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAABGdBTUEAALGPC/xhBQAABEhJREFUSEtj - oDZg4WThlrSSdLPOtc53zHaMl5SUZGBnZ4fKUhMwMjCK6IloGhUYZdn32a/wX+Z/0Ge2z0L9eH0rQVVB - QSZ2JqhCKgEBNQFFoyKjnPAj4cdjz8d+jb8U/z/iaMR9z2WeE3XSdByEdYWFGVkYGaHKKQdWTVYF4YfC - j8VdjPsHwiALYezo89HTzWrNHNj42VigyikHDv0OC2POxrwDWYSOgZY+DNoRNMV5urMdVDn5gFOUU0rJ - VynOd7XvBSwW/QHiHx4LPPYDQ6DUpMzEEKqNPMDKw8on5ywXBHT9w+hT0d/QLPsefTr6Rei+0Iuqwaox - XGJcElBt5AMFT4UIYDBtjzkT8zPuQtxfNAuv+G/wn6CdoG3Bp8AnysjMSH78MXMyc0tZSbnZtNksDtsf - 9hJoODiRgC26EPcD6IDbPit9Oo3yjWz4Ffm5gXmTGaqVPMAuwC6il6ZXgx5vsedif4YfDH/kNsdtIlDe - VlRflDo5HpeFkUcj33jM89gqbigux8bNBlVNIeCR4pFX9ldO8F7qfTLyWORHmGUx52N+2/XYrRTRFTFh - 42PjAMYZVAcOwMzBzA2MXHUFDwVLGXsZDS4JLjZ0TeyC7CLghDLVeWvU8ahPyL7z3+u/STNdMwSqFD8A - pSBeOV41rTitYr/1ftNd57jmKnorygKDjpUBqQgU1BA0NKsym4JsESifAfFzyxmWXhKeEqxQpfgBpxin - lEqgSnLI3pBn0Wei30aeiNzlucQzWdxEXBKY1+DJGYeF12IuxBTJe8srsfAQkfKBQckFzJgp7vPdD4KS - d9ylOJAhL4AF73aHCQ5RwKpGjomViZWVl1VAP0u/wXeN70WYZbEXYi/7b/Lv0c3Q1eGR5eGBGokfKLgp - hALjZBuyq0EYaOkHoIErzWvN/cWMxSSAcSoLTO57oXK/gPhp4PbAqUAfO7MLsbMBHUVcTQD2FVLGRbIQ - LA5MfdNdZrnYolkIcswSs0ozL2Aw80KNIg5I20h7ApN5lGWdZQfQoPtAA8F1GZLFD4HVznGQZUD6NUgs - 8kjka5t2m25pW2kzFm4yShFgvuGVMJEwNq0wrXSd6bopeGfwA2RLkTHIUrfZbnvkXOWCQYkNagT5QNZZ - NsCu225Z9MnoD8By8TfQEkQ5eTHuJzDRHAMmnkJ2EXYhqBbKADCIeIGZ29t9nvvSqJNRL4AW/UKy8L7P - ap8Juum6BsBCgHotI25JbgkZBxkHtVC1JGDc7Qa2UX4CE8n3oJ1B64GpMlpYR5ifmZ2Zyq0iKFANUk3x - WOhxEFgYvLZus64EJhQtqBTtALDEsQ/aHnRf3FTcASpEWwBsbQkBLQW1uqiTUJABFxcXg7y8PJupqSm/ - nZ2diL29vSgyBooJm5ub88nKyrIC1VLezgQ2zRk9PT0F6urqVCdNmmQwbdo0Y2Q8efJk3ebmZkVXV1de - CQkJEjM9AwMAOTMC2xlgxuQAAAAASUVORK5CYII= + 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 - CQkJEjM9AwMAOTMC2xlgxuQAAAAASUVORK5CYII= + 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 - CQkJEjM9AwMAOTMC2xlgxuQAAAAASUVORK5CYII= + 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 - CQkJEjM9AwMAOTMC2xlgxuQAAAAASUVORK5CYII= + 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 - CQkJEjM9AwMAOTMC2xlgxuQAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAABGdBTUEAALGPC/xhBQAABGdJREFUSEtj + YKAyYOFk4Za0knSzzrXOd8x2jJeUlGRgZ2dHV0YFwMjAKKInomlUYJRl32e/wn+Z/0Gf2T4L9eP1rQRV + BQWZ2JnQdVAGBNQEFI2KjHLCj4Qfjz0f+zX+Uvz/iKMR9z2XeU7USdNxENYVFmZkYWRE10c2sGqyKgg/ + FH4s7mLcPxAGWQhjR5+Pnm5Wa+bAxs/Ggq6PbODQ77Aw5mzMO5BF6DjuYtzDoB1BU5ynO9uh6yMZcIpy + Sin5KsX5rva9gMWiP3EX4354LPDYb9VkVWpSZmKIrp8kwMrDyifnLBcUtCPoYfSp6G9oln2PPh39InRf + 6EXVYNUYLjEuCXT9JAMFT4UI5+nO22POxPyMuxD3F83CK/4b/CdoJ2hb8CnwiTIyM5Iff8yczNxSVlJu + Nm02i8P2h72EJRKwRRfifsScibnts9Kn0yjfyIZfkZ+bhZOFGd0MkgC7ALuIXppeDXq8xZ6L/Rl+MPyR + 2xy3iXpperai+qLUyfG4LIw8GvnGY57HVnFDcTk2bjZ0beQBHikeeWV/5QTvpd4nI49FfoRZFnM+5rdd + j91KEV0REzY+Ng5GZgJ5nJmDmZtPgU9dwUPBUsZeRoNLgosNXRO7ILsIOKFMdd4adTzqE7Lv/Pf6b9JM + 1wxB0YALgFIQrxyvmlacVrHfer/prnNccxW9FWXZBdhZGZCKQEENQUOzKrMpaKnxR9zFuOeWMyy9JDwl + WJHNxQk4xTilVAJVkkP2hjyLPhP9NvJE5C7PJZ7J4ibikqw8rPDkjMPCazEXYorkveWVWHiISPnMHMxc + qsGqKe7z3Q+Cy75LcSBDXkQcjdjuMMEhStJKUo6JlYmVlZdVQD9Lv8F3je9FeKq8EHvZf5N/j26Grg6P + LA8PutlYgYKbQqjzVOdtyK6GuvxD7IXYlea15v5ixmISXBJcsm5z3PZC5X7FXYx7Grg9cKpZlZkzuxA7 + GxMrE4FUAgXIpTuahWDxmPMx011mudiiWQhyzBKzSjMvQQ1BXnQz8QJpG2lPZX/lKMs6y464i3H34y/F + g+syJIsfhh8KPw6yLPxQ+GuQWOSRyNc27Tbd0rbSZizcZJQibHxsvBImEsamFaaVrjNdNwXvDH6A7mMY + BlnqNtttj5yrXDAosaGbRTKQdZYNsOu2WxZ9MvpD3IW43/GX4hHl5MW4n75rfI/pZ+kXsouwC6HrJQuw + cLPwKngqeLvPc18adTLqRfyl+F9IFt73We0zQTdd14BdkIotI25JbgkZBxkHtVC1JLc5brtjz8f+jL0Q + +z1oZ9B6syqzaGEdYX5mdmYqt4qgQDVINcVjocfByBORr63brCulbaW10NVQHYibiNsHbQ+6L24q7oAu + RxPAxs8mJG4iDmp1USehIAMuLi4GeXl5NlNTU347OzsRe3t7UWRsZ2cnbG5uzicrK8vKxcVFXOmCD0hK + SjJ6enoK1NXVqU6aNMlg2rRpxsh48uTJus3NzYqurq68EhISJGd6ADkzAttxL7feAAAAAElFTkSuQmCC \ No newline at end of file diff --git a/SDL/seriendruck/usrCntlFakturierung.vb b/SDL/seriendruck/usrCntlFakturierung.vb index 1d5ef869..48aea54f 100644 --- a/SDL/seriendruck/usrCntlFakturierung.vb +++ b/SDL/seriendruck/usrCntlFakturierung.vb @@ -1,5 +1,4 @@ Imports System.IO -Imports Microsoft.Office.Interop Imports VERAG_PROG_ALLGEMEIN Public Class usrcntlFakturierung @@ -229,7 +228,11 @@ Public Class usrcntlFakturierung '410 Set qdf = dbs.CreateQueryDef("") - ok = SQL.doSQL("update [Rechnungsausgang] set Sachbearbeiter='" & Sachbearbeiter & "' where Sammelrechnung=6 and Firma_ID=19 and (UPPER([Sachbearbeiter])<>'" & Sachbearbeiter & "' or [Sachbearbeiter]<>'" & Sachbearbeiter & "') and Abfertigungsdatum = '" & dtRechnungsdatum.Value & "'", "FMZOLL") + + 'es sollen alle RE der letzen 3 Monate gesetzt werden (warum, weil das schon immer so war....) + 'ok = SQL.doSQL("update [Rechnungsausgang] set Sachbearbeiter='" & Sachbearbeiter & "' where Sammelrechnung=6 and Firma_ID=19 and Abfertigungsdatum = '" & dtRechnungsdatum.Value & "'", "FMZOLL") + + ok = SQL.doSQL("update [Rechnungsausgang] set Sachbearbeiter='" & Sachbearbeiter & "' where Firma_ID = 19 And Sammelrechnung = 6 And Abfertigungsdatum > DateAdd(Month, -3, GETDATE())", "FMZOLL") showPic(ok, PictureBox1) 'If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Exit Sub @@ -1772,5 +1775,17 @@ Public Class usrcntlFakturierung End If + End Sub + + Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click + + If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG("MDM_Fakturierung", "SDL") = 0 Then + + Dim frm As New frmMDMLieferantenrechnungen + frm.Show(Me) + + End If + + End Sub End Class diff --git a/VERAG_PROG_ALLGEMEIN/Classes/SQL.vb b/VERAG_PROG_ALLGEMEIN/Classes/SQL.vb index ecd25ee8..e7f4adf6 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/SQL.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/SQL.vb @@ -928,8 +928,13 @@ Public Class SQL cmd.ExecuteNonQuery() If id <= 0 Then - Dim newcmd As New SqlCommand("SELECT @@IDENTITY", conn) + Dim newcmd As New SqlCommand("SELECT CONVERT(int,isnull(@@IDENTITY,0))", conn) id = CInt(newcmd.ExecuteScalar) + If id = 0 Then + Dim newcmd2 As New SqlCommand("SELECT CONVERT(int,isnull(SCOPE_IDENTITY(),0))", conn) + id = CInt(newcmd2.ExecuteScalar) + + End If End If End If diff --git a/VERAG_PROG_ALLGEMEIN/Classes/USTV/cUSTVAntrag.vb b/VERAG_PROG_ALLGEMEIN/Classes/USTV/cUSTVAntrag.vb index 8cb95c7b..ccb9f506 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/USTV/cUSTVAntrag.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/USTV/cUSTVAntrag.vb @@ -430,3 +430,168 @@ Public Class cUStVPositionen End Function End Class + + + +Public Class cUStVErstattungPositionen + + Property UStVAn_ID As Integer + Property UStVEr_ID As Integer + Property UStVEr_USteuerbetrag As Object = Nothing + Property Belegdatum As Object = Nothing + Property Belegnummer As Object = Nothing + Property GutschriftsDatum As Object = Nothing + Property GutschriftsNr As Object = Nothing + Property Berufungsdatum As Object = Nothing + Property Berufungshöhe As Object = Nothing + Property Berufungsgrund As Object = Nothing + Property Bemerkung As Object = Nothing ' + Property UStVEr_Umrechnungskurs As Object = Nothing + Property UStVEr_USteuerbetragEUR As Object = Nothing + Property UStVEr_Sachbearbeiter As Object = Nothing + Property UStVEr_Zeitstempel As Object = Nothing + + Dim SQL As New SQL + + + + Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UStVAn_ID", UStVAn_ID)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UStVEr_ID", UStVEr_ID)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UStVEr_USteuerbetrag", UStVEr_USteuerbetrag)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Belegdatum", Belegdatum)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Belegnummer", Belegnummer)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("GutschriftsDatum", GutschriftsDatum)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("GutschriftsNr", GutschriftsNr)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Berufungsdatum", Berufungsdatum)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Berufungshöhe", Berufungshöhe)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Berufungsgrund", Berufungsgrund)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Bemerkung", Bemerkung)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UStVEr_Umrechnungskurs", UStVEr_Umrechnungskurs)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UStVEr_USteuerbetragEUR", UStVEr_USteuerbetragEUR)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UStVEr_Sachbearbeiter", UStVEr_Sachbearbeiter)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UStVEr_Zeitstempel", UStVEr_Zeitstempel)) + Return list + End Function + + Sub New(UStVAn_ID, UStVEr_ID) + Me.UStVAn_ID = UStVAn_ID + Me.UStVEr_ID = UStVEr_ID + + LOAD(UStVAn_ID, UStVEr_ID) + End Sub + Sub New() + + End Sub + + + Public Sub LOAD(UStVAn_ID, UStVEr_ID) + Try + + Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL() + Using cmd As New SqlCommand("SELECT * FROM tblUStVErstattung WHERE UStVAn_ID=@UStVAn_ID AND UStVEr_ID=@UStVEr_ID ", conn) + cmd.Parameters.AddWithValue("@UStVAn_ID", UStVAn_ID) + cmd.Parameters.AddWithValue("@UStVEr_ID", UStVEr_ID) + Dim dr = cmd.ExecuteReader() + If dr.Read Then + 'Dim l As New cOfferte + For Each i In getParameterList() + Dim propInfo As PropertyInfo = Me.GetType.GetProperty(i.Scalarvariable) + If dr.Item(i.Text) Is DBNull.Value Then + propInfo.SetValue(Me, Nothing) + Else + propInfo.SetValue(Me, dr.Item(i.Text)) + End If + Next + + End If + dr.Close() + End Using + End Using + Catch ex As Exception + MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) + End Try + End Sub + + + Public Function SAVE() As Boolean + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() + + Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM tblUStVErstattung WHERE UStVAn_ID=@UStVAn_ID AND UStVEr_ID=@UStVEr_ID) " & + " BEGIN " & getUpdateCmd() & " END " & + " Else " & + " BEGIN " & getInsertCmd() & " END " & + " commit tran " + + Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list) + End Function + + + Public Function getUpdateCmd() As String + Try + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() + + Dim str As String = "" + For Each i In list + If Not i.isPrimaryParam Then + str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," + End If + Next + str = str.Substring(0, str.Length - 1) 'wg. ',' + Return (" UPDATE [tblUStVErstattung] SET " & str & " WHERE UStVAn_ID=@UStVAn_ID AND UStVEr_ID=@UStVEr_ID") + + Catch ex As Exception + MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) + End Try + Return "" + End Function + + + + + Public Function INSERT() As Boolean + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() + Return SQL.doSQLVarList(getInsertCmd, "FMZOLL", , list) + End Function + + Public Function getInsertCmd() As String + Try + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() + Dim str As String = "" + Dim values As String = "" + For Each i In list + If Not i.isPrimaryParam Then + str &= "[" & i.Text & "]," + values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," + End If + Next + str = str.Substring(0, str.Length - 1) 'wg. ',' + values = values.Substring(0, values.Length - 1) 'wg. ',' + Return (" INSERT INTO tblUStVErstattung (" & str & ") VALUES(" & values & ") ") + Catch ex As Exception + MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) + End Try + Return "" + End Function + + + Public Function DELETE(UStVAn_ID, UStVEr_ID) As Boolean + + Dim sqlstr = " DELETE FROM tblUStVErstattung WHERE UStVAn_ID=" & Me.UStVAn_ID & " AND UStVEr_ID=" & Me.UStVEr_ID + Return SQL.doSQL(sqlstr, "FMZOLL") + + End Function + + Public Function getMaxPosNr() As Integer + Try + Dim maxPosNr = -1 + + Return SQL.getValueTxtBySql("SELECT isnull(max([UStVEr_ID]),0)+1 FROM [tblUStVErstattung] where UStVAn_ID='" & UStVAn_ID & "'", "FMZOLL",,, "1") + + Catch ex As Exception + MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) + End Try + Return -1 + End Function +End Class diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cKundenErweitert.vb b/VERAG_PROG_ALLGEMEIN/Classes/cKundenErweitert.vb index 7165fd79..c52dbc23 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cKundenErweitert.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cKundenErweitert.vb @@ -88,9 +88,10 @@ Public Class cKundenErweitert Property kde_WechselBlanko As Boolean = False Property kde_UStV_SummeVorschaubetragEUR_PLOSE As Object = Nothing Property kde_keineMWSt As Boolean = False - Property kde_MWStAbrechnung As Object = Nothing + Property kde_MWStAbrechnung As String = "Q" Property kde_AnmerkungVZ As Object = Nothing Property kde_VZ As Boolean = False + Property kde_AnmerkungAntrag As Object = Nothing Dim SQL As New SQL @@ -184,6 +185,7 @@ Public Class cKundenErweitert list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_MWStAbrechnung", kde_MWStAbrechnung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_AnmerkungVZ", kde_AnmerkungVZ)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_VZ", kde_VZ)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_AnmerkungAntrag", kde_AnmerkungAntrag)) Return list End Function diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/CHMRC.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/CHMRC.vb new file mode 100644 index 00000000..0ae6ff74 --- /dev/null +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/CHMRC.vb @@ -0,0 +1,1699 @@ +Imports System.Net.Http +Imports System.Web +Imports System +Imports Microsoft.AspNetCore.Authentication.Cookies +Imports Microsoft.AspNetCore.Builder +Imports Microsoft.AspNetCore.Hosting +Imports Microsoft.AspNetCore.Http +Imports Microsoft.Extensions.Configuration +Imports Microsoft.Extensions.DependencyInjection +Imports Microsoft.Extensions.Hosting +Imports System.Collections.Specialized +Imports System.Text +Imports System.IO +Imports VERAG_PROG_ALLGEMEIN +Imports System.Windows.Forms +Imports System.Drawing + + +Public Class cHMRC + + 'TEST + 'Shared API_STRING As String = "https://test-api.service.hmrc.gov.uk" + 'Shared CLIENT_ID As String = "xybTOMaQWcuifeW5xnGggojlACWC" + 'Shared CLIENT_SECRET As String = "bf1cfb6e-1bcb-4282-b7a0-3d3ccb2b1dc1" + + 'PROD + Shared API_STRING As String = "https://api.service.hmrc.gov.uk" + Shared CLIENT_ID As String = "qO1kqyMtFnvHi9XpRVJBGTCrNpno" + Shared CLIENT_SECRET As String = "3169852a-afa5-4adb-837c-fbd4d0cd4c7e" + + + Public Class cHMRCCredentials + Public CLIENT_ID As String = "" + Public CLIENT_SECRET As String = "" + Public API_STRING As String = "" + End Class + + Shared Function getCredentials(HMRC_APPLICATION) As cHMRCCredentials + Dim cHMRCCredentials = New cHMRCCredentials + Select Case HMRC_APPLICATION + Case "AVISO" + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then + cHMRCCredentials.API_STRING = "https://test-api.service.hmrc.gov.uk" + cHMRCCredentials.CLIENT_ID = "xybTOMaQWcuifeW5xnGggojlACWC" + cHMRCCredentials.CLIENT_SECRET = "bf1cfb6e-1bcb-4282-b7a0-3d3ccb2b1dc1" + Else + cHMRCCredentials.API_STRING = "https://api.service.hmrc.gov.uk" + cHMRCCredentials.CLIENT_ID = "qO1kqyMtFnvHi9XpRVJBGTCrNpno" + cHMRCCredentials.CLIENT_SECRET = "3169852a-afa5-4adb-837c-fbd4d0cd4c7e" + End If + Case "AVISO_ENS" + + If cHMRC_ENS.TEST Or VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then + cHMRCCredentials.API_STRING = "https://test-api.service.hmrc.gov.uk" + cHMRCCredentials.CLIENT_ID = cHMRC_ENS.Client_ID + cHMRCCredentials.CLIENT_SECRET = cHMRC_ENS.Client_Secret + + Else + cHMRCCredentials.API_STRING = "https://api.service.hmrc.gov.uk" + cHMRCCredentials.CLIENT_ID = cHMRC_ENS.Client_ID + cHMRCCredentials.CLIENT_SECRET = cHMRC_ENS.Client_Secret + End If + End Select + Return cHMRCCredentials + End Function + + Shared Function SEND_GVMS(GVMS As VERAG_PROG_ALLGEMEIN.cGVMS, Optional updateGMR As String = "") + + VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat() + + Dim TOKEN = cHMRC.getTOKEN("GVMS") + + If TOKEN.hasEntry Then + + ' Dim AccessToken = "" + 'grantAccess(AccessToken, "write:goods-movement-system+read:pull-notifications", "AVISO") + + If TOKEN.token_BEARER_TOKEN <> "" Then + Dim Notification_Box_Id = "" + Dim Notification_Message_Id = "" + If genGVMS_GMR(GVMS, TOKEN.token_BEARER_TOKEN, Notification_Box_Id, Notification_Message_Id, updateGMR) Then + GVMS.SAVE() + End If + End If + End If + + + End Function + + Shared Function GET_GVMS_LIST() + + VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat() + + Dim TOKEN = cHMRC.getTOKEN("GVMS") + + If TOKEN.hasEntry Then + + + 'Dim AccessToken = "" + 'grantAccess(AccessToken, "write:goods-movement-system", "AVISO") + + If TOKEN.token_BEARER_TOKEN <> "" Then + If getGVMS_LIST(TOKEN.token_BEARER_TOKEN) Then + MsgBox("LISTE: " & Now.ToShortDateString & " " & Now.ToShortTimeString) + End If + End If + End If + End Function + + Shared Function GET_GVMS_GMR(GMR As String) + + VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat() + Dim TOKEN = cHMRC.getTOKEN("GVMS") + + If TOKEN.hasEntry Then + + 'Dim AccessToken = "" + 'grantAccess(AccessToken, "write:goods-movement-system", "AVISO") + + If TOKEN.token_BEARER_TOKEN <> "" Then + If getGVMS_GMR(GMR, TOKEN.token_BEARER_TOKEN) Then + MsgBox("GMR: " & Now.ToShortDateString & " " & Now.ToShortTimeString) + End If + End If + End If + + End Function + + + Shared Function DELETE_GMR(GVMS As VERAG_PROG_ALLGEMEIN.cGVMS) + + VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat() + Dim TOKEN = cHMRC.getTOKEN("GVMS") + + If TOKEN.hasEntry Then + 'Dim AccessToken = "" + 'grantAccess(TOKEN.token_BEARER_TOKEN, "write:goods-movement-system+read:pull-notifications", "AVISO") + + If TOKEN.token_BEARER_TOKEN <> "" Then + Dim Notification_Box_Id = "" + Dim Notification_Message_Id = "" + If delGVMS_GMR(GVMS, TOKEN.token_BEARER_TOKEN, Notification_Box_Id, Notification_Message_Id) Then + 'GVMS.delete() + MsgBox("GELÖSCHT: " & Now.ToShortDateString & " " & Now.ToShortTimeString) + End If + End If + End If + + End Function + + Shared Function GET_NOTIFICATIONS(Notification_Box_Id As String) As Boolean + VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat() + Dim TOKEN = cHMRC.getTOKEN("GVMS") + + If TOKEN.hasEntry Then + ' Dim AccessTokenNotTEST1 = grantAccessApplication("", "read:pull-notifications") + ' If AccessTokenNotTEST1 <> "" Then + getGVMS_Notifications(TOKEN.token_BEARER_TOKEN, Notification_Box_Id) 'Notification_Box_Id) '"877b619c-33c1-4ab6-a34f-8bd7542e0596" + End If + End Function + Shared Function Acknowledge_NOTIFICATIONS(Notification_Box_Id As String, Notification_Message_Id As String) As Boolean + VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat() + Dim TOKEN = cHMRC.getTOKEN("GVMS") + + If TOKEN.hasEntry Then + 'Dim AccessTokenNotTEST1 = grantAccessApplication("", "write:notifications") + ' If AccessTokenNotTEST1 <> "" Then + ' MsgBox("4") + getGVMS_AcknolageNotifications(TOKEN.token_BEARER_TOKEN, Notification_Box_Id, Notification_Message_Id) '"877b619c-33c1-4ab6-a34f-8bd7542e0596" + End If + End Function + + Shared Sub hmrcTEST2() + 'Dim rClient As RestClient = New RestClient() + 'rClient.endPoint = "https://test-api.service.hmrc.gov.uk/hello/user" + 'Dim strResponse As String = String.Empty + 'strResponse = rClient.makeRequest(_accessToken) + + Dim rest As New Chilkat.Rest + + ' Connect to the REST server. + Dim bTls As Boolean = True + Dim port As Integer = 443 + Dim bAutoReconnect As Boolean = True + Dim success As Boolean = rest.Connect("https://test-api.service.hmrc.gov.uk", port, bTls, bAutoReconnect) + '389356931 -> VERAG-UNISPED + 'Dim responseJson As String = rest.FullRequestNoBody("GET", "/organisations/vat/check-vat-number/lookup/553557881") + 'Dim responseJson As String = rest.FullRequestNoBody("GET", "/organisations/vat/check-vat-number/lookup/553552881") 'falsch + Dim responseJson As String = rest.FullRequestNoBody("GET", "/organisations/vat/check-vat-number/lookup/5535532881") 'falsch + If (rest.LastMethodSuccess <> True) Then + Console.WriteLine(rest.LastErrorText) + Exit Sub + End If + + Try + + Dim read = Newtonsoft.Json.Linq.JObject.Parse(responseJson) + + If read.Item("code") IsNot Nothing Then + Dim VAT_Message = read.Item("message").ToString + Dim VAT_code = read.Item("code").ToString + MsgBox("ERROR: " & VAT_Message, MsgBoxStyle.OkOnly, VAT_code) + Else + ' Dim json As String = "{""name"":""Rap God"",""statistics"":{""likeCount"":""122255"",""dislikeCount"":""4472""}}" + Dim VAT_Name = read.Item("target")("name").ToString + Dim VAT_processingDate = read.Item("processingDate").ToString + Dim VAT_Strasse = read.Item("target")("address")("line1").ToString + Dim VAT_PLZ = read.Item("target")("address")("postcode").ToString + Dim VAT_countryCode = read.Item("target")("address")("countryCode").ToString + + MsgBox(VAT_Name) + MsgBox(VAT_processingDate) + End If + Catch ex As Exception + MsgBox(ex.Message & ex.StackTrace) + End Try + + + 'Console.WriteLine(responseJson) + 'Console.WriteLine("----") + + '' We can alternatively do this: + 'rest.ClearAllQueryParams() + '' rest.AddQueryParam("consumer_key", "YOUR_CONSUMER_KEY") + '' rest.AddQueryParam("consumer_secret", "YOUR_CONSUMER_SECRET") + 'responseJson = rest.FullRequestNoBody("GET", "/wp-json/wc/v1/products") + 'If (rest.LastMethodSuccess <> True) Then + ' Console.WriteLine(rest.LastErrorText) + ' Exit Sub + 'End If + + + Console.WriteLine(responseJson) + + End Sub + + + Shared Sub hmrcTEST() + VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat() + + '---------------------------REF DATA--------------------------- + + getGVMS_RefData() + + '-------------------------------------------------------------- + + + Exit Sub + + + '---------------------------NOTIFICATIONS--------------------------- + + Dim TOKEN = cHMRC.getTOKEN("GVMS") + + If TOKEN.hasEntry Then + ' Dim AccessTokenNotTEST1 = grantAccessApplication("", "read:pull-notifications") + ' If AccessTokenNotTEST1 <> "" Then + getGVMS_Notifications(TOKEN.token_BEARER_TOKEN, "877b619c-33c1-4ab6-a34f-8bd7542e0596") + End If + + '------------------------------------------------------------------- + Exit Sub + + + ' Dim AccessToken = "" + 'grantAccess(AccessToken, "write:goods-movement-system") + ' grantAccess(AccessToken, "write:goods-movement-system+read:pull-notifications", "AVISO") + 'getHMRC_Token(AccessToken, "write:goods-movement-system") + + ' MsgBox(AccessToken) + 'If AccessToken <> "" Then + + ' Dim Notification_Box_Id = "" + ' Dim Notification_Message_Id = "" + ' If genGVMS_GMR(AccessToken, Notification_Box_Id, Notification_Message_Id) Then + + ' Dim AccessTokenNotTEST = grantAccessApplication("", "read:pull-notifications") + + ' ' getHMRC_Token(AccessTokenNotTEST, "read:pull-notifications") + ' ' grantAccess(AccessTokenNotTEST, "read:pull-notifications") + ' If AccessTokenNotTEST <> "" Then + ' getGVMS_Notifications(AccessTokenNotTEST, Notification_Box_Id) + ' End If + ' 'If AccessToken <> "" Then + ' ' getGVMS_Notifications(AccessToken, Notification_Box_Id) + ' 'End If + ' End If + 'End If + + Exit Sub + 'UnlockCilkat() + + 'Dim AccessTokenNotTEST = "" + 'grantAccess(AccessTokenNotTEST, "read:pull-notifications") + 'If AccessTokenNotTEST <> "" Then + ' getGVMS_Notifications(AccessTokenNotTEST, "877b619c-33c1-4ab6-a34f-8bd7542e0596") + + 'End If + Exit Sub + + 'Dim AccessToken = "" + 'grantAccess(AccessToken, "write:goods-movement-system") + 'If AccessToken <> "" Then + + ' Dim Notification_Box_Id = "" + ' Dim Notification_Message_Id = "" + ' genGVMS_GMR(AccessToken, Notification_Box_Id, Notification_Message_Id) + + ' Dim AccessTokenNot = "" + ' grantAccess(AccessTokenNot, "read:pull-notifications") + ' If AccessTokenNot <> "" Then + ' getGVMS_Notifications(AccessTokenNot, Notification_Box_Id) + + ' End If + 'End If + + + + Exit Sub + getGVMS_RefData() + + Exit Sub + + + + Exit Sub + 'genGVMS_GMR("TEST") + + 'Exit Sub + 'Dim AccessToken = "" + 'grantAccess(AccessToken) + 'If AccessToken <> "" Then + ' genGVMS_GMR(AccessToken) + 'End If + End Sub + Shared Sub grantAccess(ByRef AccessToken, scope, HMRC_APPLICATION) + Try + VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat() + + Dim CREDENTIALS = getCredentials(HMRC_APPLICATION) + + Debug.WriteLine("HMRC Start") + Dim oauth2 As Chilkat.OAuth2 = New Chilkat.OAuth2() + Dim success As Boolean + + oauth2.ListenPort = 3017 + oauth2.AuthorizationEndpoint = CREDENTIALS.API_STRING & "/oauth/authorize" + oauth2.TokenEndpoint = CREDENTIALS.API_STRING & "/oauth/token" + oauth2.ClientId = CREDENTIALS.CLIENT_ID '"xybTOMaQWcuifeW5xnGggojlACWC" + oauth2.ClientSecret = CREDENTIALS.CLIENT_SECRET '"bf1cfb6e-1bcb-4282-b7a0-3d3ccb2b1dc1" + oauth2.Scope = scope '"write:goods-movement-system" + + 'oauth2.RedirectAllowHtml = "http://www.verag.ag/AVISO/Success.html" + 'oauth2.RedirectDenyHtml = "http://www.verag.ag/AVISO/Sussess.html" + + + Dim url As String = oauth2.StartAuth() + MsgBox(url) + + + + 'oauth2.AuthorizationEndpoint = "https://test-api.service.hmrc.gov.uk/oauth/authorize" + 'oauth2.TokenEndpoint = "https://test-api.service.hmrc.gov.uk/oauth/token" + + + + If oauth2.LastMethodSuccess <> True Then + Debug.WriteLine(oauth2.LastErrorText) + Exit Sub + End If + + Dim http As Chilkat.Http = New Chilkat.Http() + + Dim useBrowser = False + If Not useBrowser Then + System.Diagnostics.Process.Start(url) + Dim numMsWaited As Integer = 0 + + + While (numMsWaited < 120000) AndAlso (oauth2.AuthFlowState < 3) + oauth2.SleepMs(100) + numMsWaited = numMsWaited + 100 + End While + ' If there was no response from the browser within 30 seconds, then + ' the AuthFlowState will be equal to 1 Or 2. + ' 1: Waiting for Redirect. The OAuth2 background thread Is waiting to receive the redirect HTTP request from the browser. + ' 2: Waiting for Final Response. The OAuth2 background thread Is waiting for the final access token response. + ' In that case, cancel the background task started in the call to StartAuth. + + Else + + ' System.Diagnostics.Process.Start(url) + + Dim f As New Form + f.Size = New Size(800, 1400) + Dim wb As New WebBrowser + f.Controls.Add(wb) + f.StartPosition = FormStartPosition.CenterScreen + wb.Dock = DockStyle.Fill + wb.Navigate(url) + Dim done = False + + + 'AddHandler wb.DocumentCompleted, Sub() + ' If Not done Then + + ' If wb.Url.AbsolutePath = "/api-test-login/sign-in" Then + ' Try + ' Dim txtInput As HtmlElement = wb.Document.Forms(0).GetElementsByTagName("input").GetElementsByName("userId")(0) + ' txtInput.InnerText = "224015321897" + ' Dim txtInputPwd As HtmlElement = wb.Document.Forms(0).GetElementsByTagName("input").GetElementsByName("password")(0) + ' txtInputPwd.InnerText = "ry1cspz0nsvj" + ' done = True + ' Catch + ' End Try + ' End If + ' End If + ' MsgBox(wb.Url.AbsolutePath) + ' End Sub + + f.ShowDialog() + End If + + + + If oauth2.AuthFlowState < 3 Then + oauth2.Cancel() + Debug.WriteLine("No response from the browser!") + Exit Sub + End If + + Debug.WriteLine("HMRC here") + + + ' Check the AuthFlowState to see if authorization was granted, denied, Or if some error occurred + ' The possible AuthFlowState values are: + ' 3 Completed with Success. The OAuth2 flow has completed, the background thread exited, And the successful JSON response Is available in AccessTokenResponse property. + ' 4: Completed with Access Denied. The OAuth2 flow has completed, the background thread exited, And the error JSON Is available in AccessTokenResponse property. + ' 5: Failed Prior To Completion. The OAuth2 flow failed To complete, the background thread exited, And the error information Is available in the FailureInfo property. + + If oauth2.AuthFlowState = 5 Then + Debug.WriteLine("OAuth2 failed to complete.") + Debug.WriteLine(oauth2.FailureInfo) + Exit Sub + End If + + If oauth2.AuthFlowState = 4 Then + Debug.WriteLine("OAuth2 authorization was denied.") + Debug.WriteLine(oauth2.AccessTokenResponse) + Exit Sub + End If + + If oauth2.AuthFlowState <> 3 Then + Debug.WriteLine("Unexpected AuthFlowState:" & Convert.ToString(oauth2.AuthFlowState)) + Exit Sub + End If + + ' MsgBox("OAuth2 authorization granted!") + Debug.WriteLine("OAuth2 authorization granted!") + Debug.WriteLine("Access Token = " & oauth2.AccessToken) + Dim json As Chilkat.JsonObject = New Chilkat.JsonObject() + json.Load(oauth2.AccessTokenResponse) + json.EmitCompact = False + Debug.WriteLine(json.Emit()) + ' MsgBox(json.Emit()) + + ' The JSON response looks Like this + + ' { + ' "token_type": "Bearer", + ' "scope": "user_impersonation", + ' "expires_in": "3599", + ' "ext_expires_in": "0", + ' "expires_on": "1524783438", + ' "not_before": "1524779538", + ' "resource": "https://mydomain.api.crm.dynamics.com", + ' "access_token": "...", + ' "refresh_token": "...", + ' "id_token": "..." + ' } + + ' If an "expires_on" member does Not exist, then add the JSON member by + ' getting the current system date/time And adding the "expires_in" seconds. + ' This way we'll know when the token expires. + + If json.HasMember("expires_on") <> True Then + Dim dtExpire As Chilkat.CkDateTime = New Chilkat.CkDateTime() + dtExpire.SetFromCurrentSystemTime() + dtExpire.AddSeconds(json.IntOf("expires_in")) + json.AppendString("expires_on", dtExpire.GetAsUnixTimeStr(False)) + End If + + Debug.WriteLine(json.Emit()) + Dim fac As Chilkat.FileAccess = New Chilkat.FileAccess() + 'fac.WriteEntireTextFile("qa_data/tokens/hmrc.json", json.Emit(), "utf-8", False) + ' fac.WriteEntireTextFile("C:\Users\DEVELOPER1\Desktop\hmrc.json", json.Emit(), "utf-8", False) + AccessToken = oauth2.AccessToken + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + End Sub + + + Shared Sub HMRC_RefreshToken(ByRef TOKEN As cHMRCToken, HMRC_APPLICATION As String) + + If DateDiff(DateInterval.Minute, TOKEN.token_refresh_datetime, Now) < 230 Then 'bis 240 MIN / 4hr + 'Token ist noch frisch + Exit Sub + End If + + ' Chilkat Lizenz aktivieren (falls benötigt) + VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat() + + ' HTTP-Objekt für API-Request erstellen + Dim http As New Chilkat.Http() + + ' URL für HMRC Token Refresh + ' Dim url As String = "/oauth/token" + + ' HTTP-Request-Objekt für POST-Anfrage + Dim req As New Chilkat.HttpRequest() + req.HttpVerb = "POST" + req.Path = "/oauth/token" + req.ContentType = "application/x-www-form-urlencoded" + + ' OAuth2 Credentials einfügen + Dim CREDENTIALS = getCredentials(HMRC_APPLICATION) + + + Dim TOKEN_NEW = "" + req.AddParam("client_secret", CREDENTIALS.CLIENT_SECRET) + req.AddParam("client_id", CREDENTIALS.CLIENT_ID) + req.AddParam("grant_type", "client_credentials") + req.AddParam("refresh_token", TOKEN_NEW) + + + + ' rest.AddQueryParam("scope", scope) + + MsgBox(CREDENTIALS.API_STRING) + ' Anfrage senden + Dim resp As Chilkat.HttpResponse = http.PostUrlEncoded(CREDENTIALS.API_STRING & "/oauth/token", req) + + ' Fehlerprüfung + If resp Is Nothing Then + Console.WriteLine("Fehler: " & http.LastErrorText) + Exit Sub + End If + + ' API-Antwort ausgeben + Dim json As New Chilkat.JsonObject() + json.Load(resp.BodyStr) + + ' Neuer Access Token + Dim accessToken As String = json.StringOf("access_token") + Dim newRefreshToken As String = json.StringOf("refresh_token") + Dim expiresIn As String = json.StringOf("expires_in") + + Console.WriteLine("Neuer Access Token: " & accessToken) + Console.WriteLine("Neuer Refresh Token: " & newRefreshToken) + Console.WriteLine("Gültigkeit (Sekunden): " & expiresIn) + + ' Optional: Tokens in einer Datei speichern + 'Dim tokenFile As String = "token.json" + 'json.EmitCompact = False + 'json.WriteFile(tokenFile) + + TOKEN.token_BEARER_TOKEN = If(accessToken <> "", accessToken, newRefreshToken) + TOKEN.token_refresh_datetime = Now + TOKEN.SAVE() + + Console.WriteLine("Tokens wurden in TokenDB gespeichert.") + + End Sub + + + Shared Function grantAccessApplication(ByRef AccessToken, scope) As String + Try + VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat() + + Dim rest As New Chilkat.Rest + Dim success As Boolean + + + Dim bTls As Boolean = True + Dim port As Integer = 443 + Dim bAutoReconnect As Boolean = True + success = rest.Connect(API_STRING, port, bTls, bAutoReconnect) + If (success <> True) Then + Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason) + Debug.WriteLine(rest.LastErrorText) + MsgBox(rest.LastErrorText) + Return "" + End If + + + rest.AddHeader("Content-Type", "application/x-www-form-urlencoded") + + rest.AddQueryParam("client_secret", CLIENT_SECRET) + rest.AddQueryParam("client_id", CLIENT_ID) + rest.AddQueryParam("grant_type", "client_credentials") + rest.AddQueryParam("scope", scope) + + + Dim ResponseStr = rest.FullRequestFormUrlEncoded("POST", "/oauth/token") + + Dim respStatusCode As Integer = rest.ResponseStatusCode + + + If (respStatusCode <> 200) Then + Debug.WriteLine(rest.LastErrorText) + Return "" + End If + + Dim jsonResp = New Chilkat.JsonObject() + jsonResp.Load(ResponseStr) + + AccessToken = jsonResp.StringOf("access_token") + ' MsgBox("AccessToken: " & AccessToken) + 'jsonResp.StringOf("expires_in") + + Return AccessToken + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + Return "" + + End Function + + + Shared Sub VATTEST(hmrc_app_server_token) + + Dim rest As New Chilkat.Rest + Dim success As Boolean + + + Dim bTls As Boolean = True + Dim port As Integer = 443 + Dim bAutoReconnect As Boolean = True + success = rest.Connect(API_STRING, port, bTls, bAutoReconnect) + If (success <> True) Then + Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason) + Debug.WriteLine(rest.LastErrorText) + Exit Sub + End If + + + ' See the Online Tool for Generating JSON Creation Code + Dim json As New Chilkat.JsonObject + json.UpdateString("periodKey", "#001") + json.UpdateNumber("vatDueSales", "100.00") + json.UpdateNumber("vatDueAcquisitions", "100.00") + json.UpdateNumber("totalVatDue", "200") + json.UpdateNumber("vatReclaimedCurrPeriod", "100.00") + json.UpdateNumber("netVatDue", "100") + json.UpdateNumber("totalValueSalesExVAT", "500") + json.UpdateNumber("totalValuePurchasesExVAT", "500") + json.UpdateNumber("totalValueGoodsSuppliedExVAT", "500") + json.UpdateNumber("totalAcquisitionsExVAT", "500") + json.UpdateBool("finalised", True) + + + rest.AddHeader("Content-Type", "application/json") + rest.AddHeader("Authorization", "Bearer " & hmrc_app_server_token) + rest.AddHeader("Accept", "application/vnd.hmrc.1.0+json") + + Dim sbRequestBody As New Chilkat.StringBuilder + json.EmitSb(sbRequestBody) + Dim sbResponseBody As New Chilkat.StringBuilder + success = rest.FullRequestSb("POST", "/organisations/vat/123456789/returns", sbRequestBody, sbResponseBody) + If (success <> True) Then + Debug.WriteLine(rest.LastErrorText) + Exit Sub + End If + + Dim respStatusCode As Integer = rest.ResponseStatusCode + If (respStatusCode >= 400) Then + Debug.WriteLine("Response Status Code = " & respStatusCode) + Debug.WriteLine("Response Header:") + Debug.WriteLine(rest.ResponseHeader) + Debug.WriteLine("Response Body:") + Debug.WriteLine(sbResponseBody.GetAsString()) + Exit Sub + End If + + + End Sub + + Shared Sub getGVMS_RefData() + + Dim rest As New Chilkat.Rest + Dim success As Boolean + + Dim bTls As Boolean = True + Dim portSSL As Integer = 443 + Dim bAutoReconnect As Boolean = True + + success = rest.Connect(API_STRING, portSSL, bTls, bAutoReconnect) + If (success <> True) Then + Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason) + Debug.WriteLine(rest.LastErrorText) + + Exit Sub + End If + + rest.AddHeader("Accept", "application/vnd.hmrc.1.0+json") + + Dim sbRequestBody As New Chilkat.StringBuilder + + Dim sbResponseBody As New Chilkat.StringBuilder + success = rest.FullRequestSb("GET", "/customs/goods-movement-system/reference-data", sbRequestBody, sbResponseBody) + + If (success <> True) Then + Debug.WriteLine(rest.LastErrorText) + MsgBox(rest.LastErrorText) + Exit Sub + End If + + Dim respStatusCode As Integer = rest.ResponseStatusCode + If (respStatusCode <> 200) Then + MsgBox("respStatusCode: " & respStatusCode) + Debug.WriteLine("Response Status Code = " & respStatusCode) + Debug.WriteLine("Response Header:") + Debug.WriteLine(rest.ResponseHeader) + Debug.WriteLine("Response Body:") + Debug.WriteLine(sbResponseBody.GetAsString()) + + Exit Sub + End If + + MsgBox("OK " & respStatusCode) + + Dim jsonResp = New Chilkat.JsonObject() + jsonResp.LoadSb(sbResponseBody) + + VERAG_PROG_ALLGEMEIN.cGVMS_Routes.DELETE_ALL() + For i = 0 To jsonResp.SizeOfArray("routes") - 1 + + Dim ROUTE As New VERAG_PROG_ALLGEMEIN.cGVMS_Routes + + ROUTE.routeId = jsonResp.StringOf("routes[" & i & "].routeId") + ROUTE.routeDirection = jsonResp.StringOf("routes[" & i & "].routeDirection") + + ROUTE.routeEffectiveFrom = jsonResp.StringOf("routes[" & i & "].routeEffectiveFrom") + ROUTE.departurePortId = jsonResp.StringOf("routes[" & i & "].departurePortId") + ROUTE.arrivalPortId = jsonResp.StringOf("routes[" & i & "].arrivalPortId") + ROUTE.carrierId = jsonResp.StringOf("routes[" & i & "].carrierId") + ROUTE.routeEffectiveTo = jsonResp.StringOf("routes[" & i & "].routeEffectiveTo") + ROUTE.SAVE() + + Next + + + VERAG_PROG_ALLGEMEIN.cGVMS_Ports.DELETE_ALL() + For i = 0 To jsonResp.SizeOfArray("ports") - 1 + + Dim PORT As New VERAG_PROG_ALLGEMEIN.cGVMS_Ports + PORT.portId = jsonResp.StringOf("ports[" & i & "].portId") + PORT.portDescription = jsonResp.StringOf("ports[" & i & "].portDescription") + PORT.portRegion = jsonResp.StringOf("ports[" & i & "].portRegion") + PORT.portEffectiveFrom = jsonResp.StringOf("ports[" & i & "].portEffectiveFrom") + PORT.portDescription = jsonResp.StringOf("ports[" & i & "].portDescription") + PORT.chiefPortCode = jsonResp.StringOf("ports[" & i & "].chiefPortCode") + PORT.cdsPortCode = jsonResp.StringOf("ports[" & i & "].cdsPortCode") + PORT.officeOfTransitCustomsOfficeCode = jsonResp.StringOf("ports[" & i & "].officeOfTransitCustomsOfficeCode") + PORT.portEffectiveTo = jsonResp.StringOf("ports[" & i & "].portEffectiveTo") + PORT.portCountryCode = jsonResp.StringOf("ports[" & i & "].portCountryCode") + PORT.isOperatingArrivedExportsProcess = jsonResp.StringOf("ports[" & i & "].isOperatingArrivedExportsProcess") + PORT.SAVE() + Next + + VERAG_PROG_ALLGEMEIN.cGVMS_Carriers.DELETE_ALL() + For i = 0 To jsonResp.SizeOfArray("carriers") - 1 + + Dim CARRIER As New VERAG_PROG_ALLGEMEIN.cGVMS_Carriers + CARRIER.carrierId = jsonResp.StringOf("carriers[" & i & "].carrierId") + CARRIER.carrierName = jsonResp.StringOf("carriers[" & i & "].carrierName") + CARRIER.countryCode = jsonResp.StringOf("carriers[" & i & "].countryCode") + CARRIER.SAVE() + Next + + 'For i = 0 To jsonResp.SizeOfArray("locations") - 1 + + ' MsgBox(jsonResp.StringOf("locations[" & i & "].locationId")) + ' MsgBox(jsonResp.StringOf("locations[" & i & "].locationDescription")) + ' MsgBox(jsonResp.StringOf("locations[" & i & "].locationType")) + + 'Next + 'For i = 0 To jsonResp.SizeOfArray("inspectionTypes") - 1 + + ' MsgBox(jsonResp.StringOf("inspectionTypes[" & i & "].inspectionTypeId")) + ' MsgBox(jsonResp.StringOf("inspectionTypes[" & i & "].description")) + + 'Next + 'For i = 0 To jsonResp.SizeOfArray("ruleFailures") - 1 + + ' MsgBox(jsonResp.StringOf("ruleFailures[" & i & "].ruleId")) + ' MsgBox(jsonResp.StringOf("ruleFailures[" & i & "].ruleDescription")) + + 'Next + + MsgBox("FERTIG: " & Now.ToShortDateString & " " & Now.ToShortTimeString) + + End Sub + Private Shared Function genGVMS_GMR(ByRef GVMS As VERAG_PROG_ALLGEMEIN.cGVMS, hmrc_app_server_token As String, ByRef Notification_Box_Id As String, ByRef Notification_Message_Id As String, Optional updateGMR As String = "") As Boolean + Try + Dim rest As New Chilkat.Rest + Dim success As Boolean + + + Dim bTls As Boolean = True + Dim port As Integer = 443 + Dim bAutoReconnect As Boolean = True + success = rest.Connect(API_STRING, port, bTls, bAutoReconnect) + If (success <> True) Then + Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason) + Debug.WriteLine(rest.LastErrorText) + MsgBox(rest.LastErrorText) + Return False + End If + + ' See the Online Tool for Generating JSON Creation Code + Dim json As New Chilkat.JsonObject + json.UpdateString("direction", GVMS.gvms_direction) + json.UpdateBool("isUnaccompanied", GVMS.gvms_isUnaccompanied) + json.UpdateString("vehicleRegNum", GVMS.gvms_vehicleRegNum) 'LKW + If If(GVMS.gvms_trailorRegNum, "") <> "" Then json.UpdateString("trailerRegistrationNums", GVMS.gvms_trailorRegNum) 'Anhänger + + + json.UpdateString("plannedCrossing.routeId", GVMS.gvms_routeId) '--> Calais - Dover - DFDS + json.UpdateString("plannedCrossing.localDateTimeOfDeparture", Format(CDate(GVMS.gvms_locateDateTimeOfDeparture), "yyyy-MM-ddTHH:mm")) '"2021-08-11T10:58") + + + + If GVMS.gvms_empty Then + json.UpdateBool("emptyVehicle.isOwnVehicle", GVMS.gvms_emptyisOwn) + ' json.UpdateBool("emptyVehicle.sAndSMasterRefNum", GVMS.gvms_emptyisOwn) + Else + Dim cnt = 0 + '---------customsDeclarations---------------- + cnt = 0 + For Each POS In GVMS.GVMS_POSITIONEN + If POS.gvms_art = VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.IMPORT Or POS.gvms_art = VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.EXPORT Then + json.UpdateString("customsDeclarations[" & cnt & "].customsDeclarationId", POS.gvms_RefNum) + ' json.UpdateString("customsDeclarations[" & cnt & "].customsDeclarationPartId", "20GB01I0XLM976S001") + If If(POS.gvms_SS, "") <> "" Then json.UpdateString("customsDeclarations[" & cnt & "].sAndSMasterRefNum", POS.gvms_SS) + End If + cnt += 1 + Next + + '---------transitDeclarations TSAD---------------- + cnt = 0 + For Each POS In GVMS.GVMS_POSITIONEN + If POS.gvms_art = VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.TSAD Then + json.UpdateString("transitDeclarations[" & cnt & "].transitDeclarationId", POS.gvms_RefNum) + json.UpdateBool("transitDeclarations[" & cnt & "].isTSAD", True) + If If(POS.gvms_SS, "") <> "" Then json.UpdateString("transitDeclarations[" & cnt & "].sAndSMasterRefNum", POS.gvms_SS) + End If + cnt += 1 + Next + + '---------transitDeclarations TAD---------------- + cnt = 0 + For Each POS In GVMS.GVMS_POSITIONEN + If POS.gvms_art = VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.TAD Then + json.UpdateString("transitDeclarations[" & cnt & "].transitDeclarationId", POS.gvms_RefNum) + json.UpdateBool("transitDeclarations[" & cnt & "].isTSAD", False) + If If(POS.gvms_SS, "") <> "" Then json.UpdateString("transitDeclarations[" & cnt & "].sAndSMasterRefNum", POS.gvms_SS) + End If + cnt += 1 + Next + + '---------tirDeclarations---------------- + cnt = 0 + For Each POS In GVMS.GVMS_POSITIONEN + If POS.gvms_art = VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.TIR Then + json.UpdateString("tirDeclarations[" & cnt & "].tirCarnetId", POS.gvms_RefNum) + If If(POS.gvms_SS, "") <> "" Then json.UpdateString("tirDeclarations[" & cnt & "].sAndSMasterRefNum", POS.gvms_SS) + End If + cnt += 1 + Next + + '---------ataDeclarations---------------- + cnt = 0 + For Each POS In GVMS.GVMS_POSITIONEN + If POS.gvms_art = VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.ATA Then + json.UpdateString("ataDeclarations[" & cnt & "].ataCarnetId", POS.gvms_RefNum) + If If(POS.gvms_SS, "") <> "" Then json.UpdateString("ataDeclarations[" & cnt & "].sAndSMasterRefNum", POS.gvms_SS) + End If + cnt += 1 + Next + + + '---------eidrDeclarations---------------- + cnt = 0 + For Each POS In GVMS.GVMS_POSITIONEN + If POS.gvms_art = VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.EIDR Then + json.UpdateString("eidrDeclarations[" & cnt & "].traderEORI", POS.gvms_RefNum) + If If(POS.gvms_SS, "") <> "" Then json.UpdateString("eidrDeclarations[" & cnt & "].sAndSMasterRefNum", POS.gvms_SS) + End If + cnt += 1 + Next + + + '---------indirectExportDeclarations---------------- + cnt = 0 + For Each POS In GVMS.GVMS_POSITIONEN + If POS.gvms_art = VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.INDIRECT Then + json.UpdateString("indirectExportDeclarations[" & cnt & "].eadMasterRefNum", POS.gvms_RefNum) + End If + cnt += 1 + Next + + End If + + + rest.AddHeader("Content-Type", "application/json") + rest.AddHeader("Authorization", "Bearer " & hmrc_app_server_token) + rest.AddHeader("Accept", "application/vnd.hmrc.1.0+json") + + Dim sbRequestBody As New Chilkat.StringBuilder + json.EmitSb(sbRequestBody) + + + Dim sbResponseBody As New Chilkat.StringBuilder + + If updateGMR <> "" Then 'UPDATE! + success = rest.FullRequestSb("PUT", "/customs/goods-movement-system/movements/" & updateGMR, sbRequestBody, sbResponseBody) + Dim respStatusCode As Integer = rest.ResponseStatusCode + + If (respStatusCode = 404) Then 'update + MsgBox("GMR wurde nicht gefunden.") + Return False + End If + '403 + If (respStatusCode = 202) Then + MsgBox("UPDATE: " & Now.ToShortDateString & " " & Now.ToShortTimeString) + + Return True 'OK + Else + MsgBox("HMRC ERROR: " & respStatusCode & rest.ResponseHeader.ToString) + MsgBox("HMRC ERROR: " & sbResponseBody.ToString) + Return False + End If + + Else + success = rest.FullRequestSb("POST", "/customs/goods-movement-system/movements", sbRequestBody, sbResponseBody) + + + If (success <> True) Then + Debug.WriteLine(rest.LastErrorText) + Return False + End If + Dim respStatusCode As Integer = rest.ResponseStatusCode + + If (respStatusCode = 404) Then 'update + MsgBox("GMR wurde nicht gefunden.") + Return False + End If + + If (respStatusCode <> 202) Then + MsgBox("HMRC ERROR: " & respStatusCode & rest.ResponseHeader.ToString) + MsgBox("HMRC ERROR: " & sbResponseBody.ToString) + Return False + End If + + + + 'Dim jsonResp = New Chilkat.JsonObject() + 'jsonResp.Load(rest.ResponseHeader) + + + 'MsgBox(rest.ResponseHeader) + + 'MsgBox(jsonResp.StringOf("Notification-Box-Id")) + 'MsgBox(jsonResp.StringOf("Notification-Message-Id")) + + 'Notification_Box_Id = (jsonResp.StringOf("Notification-Box-Id")) + 'Notification_Message_Id = (jsonResp.StringOf("Notification-Message-Id")) + + For Each rh In rest.ResponseHeader.Split(vbNewLine) + If (rh.Contains("Notification-Box-Id: ")) Then + Notification_Box_Id = rh.Replace("Notification-Box-Id: ", "").Replace(vbNewLine, "").Replace(" ", "").Trim + ' MsgBox(Notification_Box_Id) + End If + If (rh.Contains("Notification-Message-Id: ")) Then + Notification_Message_Id = rh.Replace("Notification-Message-Id: ", "").Replace(vbNewLine, "").Replace(" ", "").Trim + ' MsgBox(Notification_Message_Id) + End If + Next + + GVMS.gvms_notification_id = Notification_Message_Id + GVMS.gvms_notification_boxid = Notification_Box_Id + + Return True + End If + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + Return False + End Function + + + Private Shared Function delGVMS_GMR(ByRef GVMS As VERAG_PROG_ALLGEMEIN.cGVMS, hmrc_app_server_token As String, ByRef Notification_Box_Id As String, ByRef Notification_Message_Id As String) As Boolean + Try + Dim rest As New Chilkat.Rest + Dim success As Boolean + + Dim bTls As Boolean = True + Dim port As Integer = 443 + Dim bAutoReconnect As Boolean = True + success = rest.Connect(API_STRING, port, bTls, bAutoReconnect) + If (success <> True) Then + Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason) + Debug.WriteLine(rest.LastErrorText) + MsgBox(rest.LastErrorText) + Return False + End If + + ' See the Online Tool for Generating JSON Creation Code + Dim json As New Chilkat.JsonObject + + ' rest.AddHeader("Content-Type", "application/json") + rest.AddHeader("Authorization", "Bearer " & hmrc_app_server_token) + rest.AddHeader("Accept", "application/vnd.hmrc.1.0+json") + + Dim sbRequestBody As New Chilkat.StringBuilder + json.EmitSb(sbRequestBody) + + + Dim sbResponseBody As New Chilkat.StringBuilder + success = rest.FullRequestSb("DELETE", "/customs/goods-movement-system/movements/" & GVMS.gvms_GMR, sbRequestBody, sbResponseBody) + If (success <> True) Then + Debug.WriteLine(rest.LastErrorText) + Return False + End If + Dim respStatusCode As Integer = rest.ResponseStatusCode + + If (respStatusCode = 404) Then + MsgBox("GMR wurde nicht gefunden.") + Return False + End If + If (respStatusCode <> 202) Then + MsgBox("HMRC ERROR: " & respStatusCode & rest.ResponseHeader.ToString) + Return False + End If + + + For Each rh In rest.ResponseHeader.Split(vbNewLine) + If (rh.Contains("Notification-Box-Id: ")) Then + Notification_Box_Id = rh.Replace("Notification-Box-Id: ", "").Replace(vbNewLine, "").Replace(" ", "").Trim + ' MsgBox(Notification_Box_Id) + End If + If (rh.Contains("Notification-Message-Id: ")) Then + Notification_Message_Id = rh.Replace("Notification-Message-Id: ", "").Replace(vbNewLine, "").Replace(" ", "").Trim + ' MsgBox(Notification_Message_Id) + End If + Next + + GVMS.gvms_notification_id = Notification_Message_Id + GVMS.gvms_notification_boxid = Notification_Box_Id + + Return True + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + Return False + End Function + + + Private Shared Function getGVMS_LIST(hmrc_app_server_token As String) As Boolean + Try + Dim rest As New Chilkat.Rest + Dim success As Boolean + + Dim bTls As Boolean = True + Dim port As Integer = 443 + Dim bAutoReconnect As Boolean = True + success = rest.Connect(API_STRING, port, bTls, bAutoReconnect) + If (success <> True) Then + Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason) + Debug.WriteLine(rest.LastErrorText) + MsgBox(rest.LastErrorText) + Return False + End If + + ' See the Online Tool for Generating JSON Creation Code + Dim json As New Chilkat.JsonObject + + ' rest.AddHeader("Content-Type", "application/json") + rest.AddHeader("Authorization", "Bearer " & hmrc_app_server_token) + rest.AddHeader("Accept", "application/vnd.hmrc.1.0+json") + + Dim sbRequestBody As New Chilkat.StringBuilder + 'json.EmitSb(sbRequestBody) + + + Dim sbResponseBody As New Chilkat.StringBuilder + success = rest.FullRequestSb("GET", "/customs/goods-movement-system/movements", sbRequestBody, sbResponseBody) + + MsgBox("GO " & success) + + If (success <> True) Then + Debug.WriteLine(rest.LastErrorText) + Return False + End If + Dim respStatusCode As Integer = rest.ResponseStatusCode + + + If (respStatusCode = 200) Then + MsgBox(sbResponseBody.ToString) + Return True + Else + MsgBox(sbResponseBody.ToString) + MsgBox(rest.ResponseHeader.ToString) + MsgBox("HMRC ERROR: " & respStatusCode & rest.ResponseHeader.ToString) + Return False + End If + + + Return True + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + Return False + End Function + + + Private Shared Function getGVMS_GMR(GMR As String, hmrc_app_server_token As String) As Boolean + Try + Dim rest As New Chilkat.Rest + Dim success As Boolean + + Dim bTls As Boolean = True + Dim port As Integer = 443 + Dim bAutoReconnect As Boolean = True + success = rest.Connect(API_STRING, port, bTls, bAutoReconnect) + If (success <> True) Then + Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason) + Debug.WriteLine(rest.LastErrorText) + MsgBox(rest.LastErrorText) + Return False + End If + + ' See the Online Tool for Generating JSON Creation Code + Dim json As New Chilkat.JsonObject + + ' rest.AddHeader("Content-Type", "application/json") + rest.AddHeader("Authorization", "Bearer " & hmrc_app_server_token) + rest.AddHeader("Accept", "application/vnd.hmrc.1.0+json") + + Dim sbRequestBody As New Chilkat.StringBuilder + + + Dim sbResponseBody As New Chilkat.StringBuilder + success = rest.FullRequestSb("GET", "/customs/goods-movement-system/movements/" & GMR, sbRequestBody, sbResponseBody) + If (success <> True) Then + Debug.WriteLine(rest.LastErrorText) + Return False + End If + Dim respStatusCode As Integer = rest.ResponseStatusCode + + + If (respStatusCode = 200) Then + MsgBox(sbResponseBody.ToString) + Return True + Else + MsgBox("HMRC ERROR: " & respStatusCode & rest.ResponseHeader.ToString) + Return False + End If + + + Return True + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + Return False + End Function + + + Private Shared Sub getGVMS_Notifications(hmrc_app_server_token As String, Notification_Box_Id As String) + Try + + + Dim rest As New Chilkat.Rest + Dim success As Boolean + + Dim bTls As Boolean = True + Dim port As Integer = 443 + Dim bAutoReconnect As Boolean = True + success = rest.Connect(API_STRING, port, bTls, bAutoReconnect) + If (success <> True) Then + Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason) + Debug.WriteLine(rest.LastErrorText) + + Exit Sub + End If + '37d1feab8776c006f7fb7c9cc2f93172 + + + '"UK_INBOUND", + ' "UK_OUTBOUND", + ' "GB_TO_NI", + ' "NI_TO_GB" + + ' See the Online Tool for Generating JSON Creation Code + 'Dim json As New Chilkat.JsonObject + 'json.UpdateString("boxId", Notification_Box_Id) + ' json.UpdateString("status", "PENDING") + 'json.UpdateString("fromDate", "2020-06-03T14:20:54.987") + 'json.UpdateString("toDate", "2020-06-03T14:20:54.987") + + + ' rest.AddHeader("Content-Type", "application/json") + rest.AddHeader("Authorization", "Bearer " & hmrc_app_server_token) + rest.AddHeader("Accept", "application/vnd.hmrc.1.0+json") + + + Dim sbRequestBody As New Chilkat.StringBuilder + ' json.EmitSb(sbRequestBody) + + + Dim sbResponseBody As New Chilkat.StringBuilder + success = rest.FullRequestSb("GET", "/misc/push-pull-notification/box/" & Notification_Box_Id & "/notifications", sbRequestBody, sbResponseBody) + + Dim respStatusCode As Integer = rest.ResponseStatusCode + + + If (success <> True) Then + Debug.WriteLine(rest.LastErrorText) + Exit Sub + End If + If (respStatusCode <> 200) Then + System.IO.File.WriteAllText("C:\Users\DEVELOPER1\Desktop\hmrc3.json", rest.ResponseHeader.ToString()) + + Debug.WriteLine("Response Status Code = " & respStatusCode) + Debug.WriteLine("Response Header:") + Debug.WriteLine(rest.ResponseHeader) + Debug.WriteLine("Response Body:") + Debug.WriteLine(sbResponseBody.GetAsString()) + Exit Sub + End If + + Dim strJson = sbResponseBody.ToString + + If strJson.StartsWith("[") Then + strJson = "{""arrNotification"":" & strJson & "}" + End If + + Dim jsonResp = New Chilkat.JsonObject() + jsonResp.Load(strJson) + + + + For i = 0 To jsonResp.SizeOfArray("arrNotification") - 1 + + 'MsgBox(jsonResp.StringOf("arrNotification[" & i & "].status")) + 'Dim notificationId = jsonResp.StringOf("arrNotification[" & i & "].notificationId") + 'If notificationId = "notificationId" Then + ' MsgBox("OOOO") + 'End If + + Dim jsonRespMsg = New Chilkat.JsonObject() + If jsonRespMsg.Load(jsonResp.StringOf("arrNotification[" & i & "].message")) Then + If jsonRespMsg.StringOf("gmrId") <> "" Then + Dim notificationId = jsonRespMsg.StringOf("messageId") + Dim GVMS = VERAG_PROG_ALLGEMEIN.cGVMS.LOAD_ByNotification(Notification_Box_Id, notificationId) + If GVMS IsNot Nothing Then + If jsonRespMsg.StringOf("gmrId") <> "" Then GVMS.gvms_GMR = jsonRespMsg.StringOf("gmrId") + If jsonRespMsg.StringOf("gmrState") <> "" Then GVMS.gvms_status = jsonRespMsg.StringOf("gmrState") + GVMS.SAVE() + End If + End If + End If + + ' MsgBox(jsonRespMsg.StringOf("messageId") & " / " & jsonRespMsg.StringOf("gmrId") & " / " & jsonRespMsg.StringOf("gmrState")) + + + Next + + 'i = 0; + 'count_i = json.SizeOfArray("product.variants"); + 'while (i < count_i) { + ' json.I = i; + ' id = json.IntOf("product.variants[i].id"); + ' product_id = json.IntOf("product.variants[i].product_id"); + ' title = json.StringOf("product.variants[i].title"); + ' price = json.StringOf("product.variants[i].price"); + ' sku = json.StringOf("product.variants[i].sku"); + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + End Sub + + Private Shared Sub getGVMS_AcknolageNotifications(hmrc_app_server_token As String, Notification_Box_Id As String, Notification_Message_Id As String) + Try + + + Dim rest As New Chilkat.Rest + Dim success As Boolean + + Dim bTls As Boolean = True + Dim port As Integer = 443 + Dim bAutoReconnect As Boolean = True + success = rest.Connect(API_STRING, port, bTls, bAutoReconnect) + If (success <> True) Then + Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason) + Debug.WriteLine(rest.LastErrorText) + + Exit Sub + End If + + ' rest.AddHeader("Content-Type", "application/json") + rest.AddHeader("Authorization", "Bearer " & hmrc_app_server_token) + rest.AddHeader("Accept", "application/vnd.hmrc.1.0+json") + + + + Dim json As New Chilkat.JsonObject + json.Load("{ + ""notificationIds"": [ + """ & Notification_Message_Id & """ + ] + }") + + Dim sbRequestBody As New Chilkat.StringBuilder + json.EmitSb(sbRequestBody) + + + Dim sbResponseBody As New Chilkat.StringBuilder + success = rest.FullRequestSb("PUT", "/misc/push-pull-notification/box/" & Notification_Box_Id & "/notifications/acknowledge", sbRequestBody, sbResponseBody) + + Dim respStatusCode As Integer = rest.ResponseStatusCode + + MsgBox("OK: " & success) + If (success <> True) Then + Debug.WriteLine(rest.LastErrorText) + Exit Sub + End If + If (respStatusCode = 204) Then + MsgBox("ACKNOLAGED " & Now.ToShortDateString & " " & Now.ToShortTimeString) + Exit Sub + Else + System.IO.File.WriteAllText("C:\Users\DEVELOPER1\Desktop\hmrc3.json", rest.ResponseHeader.ToString()) + + Debug.WriteLine("Response Status Code = " & respStatusCode) + Debug.WriteLine("Response Header:") + Debug.WriteLine(rest.ResponseHeader) + Debug.WriteLine("Response Body:") + Debug.WriteLine(sbResponseBody.GetAsString()) + Exit Sub + End If + + + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + End Sub + + + '''''''''''''''''''''''''''''''''''''''''''''''''''''''' + ''' + 'Shared Sub testToken2() + ' Dim refresh_token As String + ' Dim token As String + + ' ' construct the request for access token + ' Dim client = New RestClient(API_STRING & "/oauth/token") + ' Dim request = New RestRequest("dfe/application-info", Method.POST) + ' request.AddHeader("content-type", "application/x-www-form-urlencoded") + ' request.AddParameter("grant_type", "client_credentials") + ' request.AddParameter("client_id", "") + ' request.AddParameter("client_secret", "") + + ' ' make call to get token + ' Dim response As IRestResponse = client.Execute(request) + + ' ' Extract token + ' token = JObject.Parse(response.Content).SelectToken("$..access_token").ToString() + ' refresh_token = JObject.Parse(response.Content).SelectToken("$..refresh_token").ToString() + 'End Sub + Shared Sub getHMRC_Token(ByRef AccessToken, scope) + 'oauth2.ListenPort = 3017 + ''oauth2.AuthorizationEndpoint = "https://test-api.service.hmrc.gov.uk/oauth/authorize" + ''oauth2.TokenEndpoint = "https://test-api.service.hmrc.gov.uk/oauth/token" + 'oauth2.AuthorizationEndpoint = API_STRING & "/oauth/authorize" + 'oauth2.TokenEndpoint = API_STRING & "/oauth/token" + 'oauth2.ClientId = "xybTOMaQWcuifeW5xnGggojlACWC" + 'oauth2.ClientSecret = "bf1cfb6e-1bcb-4282-b7a0-3d3ccb2b1dc1" + ''oauth2.Scope = "read:vat write:vat" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + 'oauth2.Scope = scope '"write:goods-movement-system" + 'Dim url As String = oauth2.StartAuth() + + + ' Refer to the documentation for more information on how to get the client id/secret + 'Dim clientId As String = "xybTOMaQWcuifeW5xnGggojlACWC" + ' Dim clientSecret As String = "bf1cfb6e-1bcb-4282-b7a0-3d3ccb2b1dc1" + ' Refer to the documentation for more information on how to get the tokens + 'Dim accessToken As String = "" '"OaOXXXXTaSucp8XXcgXXH" + ' Dim refreshToken As String = "kE4HXXXXXXXhxvtUHlboSF" + + ' -- Refresh the access token + Dim request As System.Net.WebRequest = System.Net.HttpWebRequest.Create(API_STRING & "/oauth/token") + 'oauth2.AuthorizationEndpoint = API_STRING & "/oauth/authorize" + ' oauth2.TokenEndpoint = API_STRING & "/oauth/token" + request.Method = "POST" + request.ContentType = "application/x-www-form-urlencoded" + 'request.ContentType = "application/json" + + Dim outgoingQueryString As NameValueCollection = HttpUtility.ParseQueryString(String.Empty) + outgoingQueryString.Add("grant_type", "client_credentials") + ' outgoingQueryString.Add("refresh_token", refreshToken) + outgoingQueryString.Add("client_id", CLIENT_ID) + outgoingQueryString.Add("client_secret", CLIENT_SECRET) + outgoingQueryString.Add("scope", scope) '"write:goods-movement-system") + Dim postBytes As Byte() = New ASCIIEncoding().GetBytes(outgoingQueryString.ToString()) + + Dim postStream As Stream = request.GetRequestStream() + postStream.Write(postBytes, 0, postBytes.Length) + postStream.Flush() + postStream.Close() + Try + + Using response As System.Net.WebResponse = request.GetResponse() + Using streamReader As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream()) + ' Parse the JSON the way you prefer + 'FFFFFFFFFFFFFFFFFFALSE:::::::::::::::::::::::: Dim jsonResult As RefreshTokenResultJSON = New System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(streamReader.ReadToEnd(), GetType(RefreshTokenResultJSON)) + 'FFFFFFFFFFFFFFFFFFALSE:::::::::::::::::::::::: AccessToken = jsonResult.access_token + + + ' For more information, refer to the documentation + End Using + End Using + + Catch ex As Exception + MsgBox(ex.Message & ex.StackTrace) + End Try + '' -- Get current user profile + 'request = System.Net.HttpWebRequest.Create("https://api.clicdata.com/profile/user") + 'request.Method = "GET" + 'request.Headers.Add("Authorization", "Bearer " & accessToken) + 'Using response As System.Net.WebResponse = request.GetResponse() + ' Using streamReader As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream()) + ' Dim jsonResponseText = streamReader.ReadToEnd() + ' ' Parse the JSON the way you prefer + ' ' In this example the JSON will be something Like: + ' ' {"email_address" "john.smith@clicdata.com", "first_name": "John", "last_login_date": "2016−04−26T14:24:58+00:00", "last_name": "Smith", ... + ' ' For more information, refer to the documentation + ' End Using + 'End Using + + '' -- List the current data + 'request = System.Net.HttpWebRequest.Create("https://api.clicdata.com/data/") + 'request.Method = "GET" + 'request.Headers.Add("Authorization", "Bearer " & accessToken) + 'Using response As System.Net.WebResponse = request.GetResponse() + ' Using streamReader As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream()) + ' Dim jsonResponseText = streamReader.ReadToEnd() + ' ' Parse the JSON the way you prefer + ' ' In this example the JSON will be something Like: + ' ' { "count" 265, "data": [{ "description": "","source": "merge", "creation_date": "2015−06−10T12:47:32+02:00", "last_data_update_date": "2015−06−10T12:47:49+02:00", ... + ' ' For more information, refer to the documentation + ' End Using + 'End Using + + '' -- Create some new data + 'Dim dataId As Integer = 0 + 'request = System.Net.HttpWebRequest.Create("https://api.clicdata.com/data/") + 'request.Method = "POST" + 'request.ContentType = "application/json" + 'request.Headers.Add("Authorization", "Bearer " & accessToken) + 'Using tStreamWriter As System.IO.StreamWriter = New System.IO.StreamWriter(request.GetRequestStream()) + ' tStreamWriter.Write(New System.Web.Script.Serialization.JavaScriptSerializer().Serialize(New With {Key .name = "my test data " & Guid.NewGuid().ToString(), Key .description = "some description for my test data", Key .columns = {New With {Key .name = "column 1", Key .data_type = "text"}, New With {Key .name = "column 2", Key .data_type = "number"}}})) + 'End Using + + 'Using response As System.Net.WebResponse = request.GetResponse() + ' Using streamReader As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream()) + ' Dim jsonResponseText = streamReader.ReadToEnd() + ' ' The JSON returned in this example is the ID of our newly created data + ' dataId = Integer.Parse(jsonResponseText) + ' ' For more information, refer to the documentation + ' End Using + 'End Using + + '' -- Add a few rows of data + 'request = System.Net.HttpWebRequest.Create("https://api.clicdata.com/data/" & dataId & "/rows") + 'request.Method = "POST" + 'request.ContentType = "application/json" + 'request.Headers.Add("Authorization", "Bearer " & accessToken) + 'Using tStreamWriter As System.IO.StreamWriter = New System.IO.StreamWriter(request.GetRequestStream()) + ' tStreamWriter.Write(New System.Web.Script.Serialization.JavaScriptSerializer().Serialize(New With {Key .data = New Object() {New Object() {"one", 1}, New Object() {"two", 2}}})) + 'End Using + + 'Using response As System.Net.WebResponse = request.GetResponse() + ' Using streamReader As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream()) + ' Dim jsonResponseText = streamReader.ReadToEnd() + ' ' The JSON returned in this example tells us if the rows were inserted successfully: + ' ' { "success" true } + ' ' For more information, refer to the documentation + ' End Using + 'End Using + + + + + + End Sub + + + + Shared Function getTOKEN(APPLICATION, Optional forceNewToken = False) As cHMRCToken + Dim TOKEN = New cHMRCToken(VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA, APPLICATION) + Dim appl = "" + Dim HMRC_APPLICATION = "AVISO" + Select Case APPLICATION + Case "HELLOWORLD" '"EORI_CHECK" + 'appl = "write:import-control-system+read:import-control-system" + appl = "applicationRestricted" + HMRC_APPLICATION = "AVISO" + Case "GVMS" + appl = "write:goods-movement-system+read:pull-notifications" + HMRC_APPLICATION = "AVISO" + Case "VAT_CHECK" '"EORI_CHECK" + appl = "read:vat write:vat" + HMRC_APPLICATION = "AVISO" + Case "ENS" '"EORI_CHECK" + 'appl = "write:import-control-system+read:import-control-system" + appl = "write:import-control-system" + HMRC_APPLICATION = "AVISO_ENS" + Case "ENS_HELLOWORLD" '"EORI_CHECK" + 'appl = "write:import-control-system+read:import-control-system" + appl = "hello" + HMRC_APPLICATION = "AVISO_ENS" + End Select + + + + If forceNewToken OrElse TOKEN.hasEntry = False OrElse TOKEN.token_BEARER_TOKEN Is Nothing OrElse TOKEN.token_BEARER_TOKEN = "" Then + Dim AccessToken = "" + grantAccess(AccessToken, appl, HMRC_APPLICATION) + TOKEN.token_Application = APPLICATION + TOKEN.token_BEARER_TOKEN = AccessToken + TOKEN.token_refresh_datetime = Now + TOKEN.SAVE() + Else + HMRC_RefreshToken(TOKEN, HMRC_APPLICATION) + End If + Return TOKEN + End Function + + + Shared Function checkEORI_UK(eoriNumber As String, ByVal response As String) As Boolean + ' Chilkat-Objekt initialisieren + Dim http As New Chilkat.Http + + http.SetRequestHeader("Accept", "application/x-www-form-urlencoded") + + ' EORI-Nummer für die Überprüfung + 'Dim eoriNumber As String = "GB123456789000" + Dim url As String = "https://api.service.hmrc.gov.uk/customs/eori/lookup/check-multiple-eori" + + + Dim requestBody As New Chilkat.JsonObject + requestBody.AppendArray("eoris").AddStringAt(-1, eoriNumber) + requestBody.AppendArray("eoris").AddStringAt(-1, "GB8392848394939") + + + + ' HTTP GET-Anfrage senden + Dim responseHttp = http.PostJson2(url, "application/json", requestBody.Emit()) + + ' Fehlerprüfung + If http.LastMethodSuccess <> True Then + Console.WriteLine("Fehler: " & http.LastErrorText) + Return False + End If + response = responseHttp.BodyStr + ' Antwort ausgeben + Console.WriteLine("API Antwort: " & responseHttp.BodyStr) + Return True + End Function + + Shared Function checkVAT_UK(VATNumber As String, ByVal response As String) As Boolean + ' Chilkat-Objekt initialisieren + Dim http As New Chilkat.Http + + ' Falls API-Schlüssel oder Authentifizierung erforderlich ist, hinzufügen + ' Beispiel: http.SetRequestHeader("Authorization", "Bearer YOUR_ACCESS_TOKEN") + + VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat() + + Dim TOKEN = getTOKEN("VAT_CHECK") + + If TOKEN.hasEntry Then + http.SetRequestHeader("Authorization", "Bearer " & TOKEN.token_BEARER_TOKEN) + http.SetRequestHeader("Accept", "application/x-www-form-urlencoded") + + ' EORI-Nummer für die Überprüfung + Dim url As String = "https://api.service.hmrc.gov.uk/organisations/vat/check-vat-number/lookup/" & VATNumber + + response = http.QuickGetStr(url) + + If http.LastMethodSuccess <> True Then + Console.WriteLine("Fehler: " & http.LastErrorText) + Return False + End If + + ' Antwort ausgeben + Console.WriteLine("API Antwort: " & response) + Return True + End If + Return False + End Function + + Public Class RefreshTokenResultJSON + Public Property access_token As String + End Class +End Class + +'Public Class Startup +' Public Sub New(ByVal configuration As IConfiguration) +' configuration = configuration +' End Sub + +' Public ReadOnly Property Configuration As IConfiguration + +' Public Sub ConfigureServices(ByVal services As IServiceCollection) +' services.Configure(Configuration) + +' services.Configure(Of CookiePolicyOptions)(Function(options) +' options.CheckConsentNeeded = Function(context) True +' options.MinimumSameSitePolicy = SameSiteMode.None +' End Function) +' services.AddSession(Function(options) +' options.IdleTimeout = TimeSpan.FromSeconds(10) +' options.Cookie.HttpOnly = True +' options.Cookie.IsEssential = True +' End Function) +' services.AddAuthentication(Function(options) +' options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme +' options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme +' options.DefaultChallengeScheme = "HMRC" +' End Function).AddCookie().AddOAuth("HMRC", Function(options) +' options.ClientId = Configuration("clientId") +' options.ClientSecret = Configuration("clientSecret") +' options.CallbackPath = New PathString(Configuration("oauthCallbackUri")) +' options.Scope.Add("hello") +' options.SaveTokens = True +' options.AuthorizationEndpoint = Configuration("uri") & "/oauth/authorize" +' options.TokenEndpoint = Configuration("uri") & "/oauth/token" +' End Function) +' services.AddRazorPages(Function(options) +' options.Conventions.AddPageRoute("/HelloWorld/Index", "") +' End Function) +' End Sub + +' Public Sub Configure(ByVal app As IApplicationBuilder, ByVal env As IWebHostEnvironment) +' If env.IsDevelopment() Then +' app.UseDeveloperExceptionPage() +' Else +' app.UseExceptionHandler("/Error") +' app.UseHsts() +' End If + +' app.UseHttpsRedirection() +' app.UseStaticFiles() +' app.UseRouting() +' app.UseAuthorization() +' app.UseAuthentication() +' app.UseSession() +' app.UseCookiePolicy() +' app.UseEndpoints(Function(endpoints) +' endpoints.MapRazorPages() +' endpoints.MapControllerRoute(name:="default", pattern:="{controller=HelloWorld}/{action=Index}") +' End Function) +' End Sub +'End Class + + + +Public Class VATResponse + Public Class Address + Public Property line1 As String + Public Property postcode As String + Public Property countryCode As String + End Class + + Public Class Target + Public Property name As String + Public Property vatNumber As String + Public Property address As Address + End Class + + Public Class Root + Public Property target As Target + Public Property processingDate As DateTime + End Class + +End Class diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/ENS/CC315A-v11-2.Designer.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/ENS/CC315A-v11-2.Designer.vb new file mode 100644 index 00000000..d55ca5f5 --- /dev/null +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/ENS/CC315A-v11-2.Designer.vb @@ -0,0 +1,5665 @@ +'' ------------------------------------------------------------------------------ +'' +'' Generated by Xsd2Code++. Version 6.0.0.0. www.xsd2code.com +'' {"TargetFramework":"Net48","NameSpace":"ENS_CC315A","Language":"VisualBasic","Properties":{},"XmlAttribute":{"Enabled":true},"ClassParams":{},"Serialization":{"ShouldSerialize":{},"AdditionalSerializers":{},"XmlSerializerEvent":{},"XmlOutput":{"Formating":true},"JsonOutput":{},"Enabled":true},"Miscellaneous":{}} +'' +'' ------------------------------------------------------------------------------ +#Disable Warning +Imports System +Imports System.Diagnostics +Imports System.Xml.Serialization +Imports System.Runtime.Serialization +Imports System.Collections +Imports System.Xml.Schema +Imports System.ComponentModel +Imports System.Xml +Imports System.IO +Imports System.Text +Imports System.Collections.Generic + +Namespace ENS_CC315A + + + Partial Public Class CC315AType + +#Region "Private fields" + Private _mesSenMES3 As String + + Private _mesRecMES6 As String + + Private _datOfPreMES9 As String + + Private _timOfPreMES10 As String + + Private _priMES15 As String + + Private _mesIdeMES19 As String + + Private _mesTypMES20 As MessageTypes + + Private _corIdeMES25 As String + + Private _hEAHEA As HEAHEAType + + Private _tRACONCO1 As TRACONCO1Type + + Private _tRACONCE1 As TRACONCE1Type + + Private _nOTPAR670 As NOTPAR670Type + + Private _gOOITEGDS As List(Of GOOITEGDSType) + + Private _iTI As List(Of ITIType) + + Private _cUSOFFLON As CUSOFFLONType + + Private _tRAREP As TRAREPType + + Private _pERLODSUMDEC As PERLODSUMDECType + + Private _sEAID529 As List(Of SEAID529Type) + + Private _cUSOFFFENT730 As CUSOFFFENT730Type + + Private _cUSOFFSENT740 As List(Of CUSOFFSENT740Type) + + Private _tRACARENT601 As TRACARENT601Type + + Private Shared _serializerXml As XmlSerializer +#End Region + + Public Sub New() + MyBase.New + Me._tRACARENT601 = New TRACARENT601Type() + Me._cUSOFFSENT740 = New List(Of CUSOFFSENT740Type)() + Me._cUSOFFFENT730 = New CUSOFFFENT730Type() + Me._sEAID529 = New List(Of SEAID529Type)() + Me._pERLODSUMDEC = New PERLODSUMDECType() + Me._tRAREP = New TRAREPType() + Me._cUSOFFLON = New CUSOFFLONType() + Me._iTI = New List(Of ITIType)() + Me._gOOITEGDS = New List(Of GOOITEGDSType)() + Me._nOTPAR670 = New NOTPAR670Type() + Me._tRACONCE1 = New TRACONCE1Type() + Me._tRACONCO1 = New TRACONCO1Type() + Me._hEAHEA = New HEAHEAType() + End Sub + + + Public Property MesSenMES3() As String + Get + Return Me._mesSenMES3 + End Get + Set + Me._mesSenMES3 = Value + End Set + End Property + + + Public Property MesRecMES6() As String + Get + Return Me._mesRecMES6 + End Get + Set + Me._mesRecMES6 = Value + End Set + End Property + + + Public Property DatOfPreMES9() As String + Get + Return Me._datOfPreMES9 + End Get + Set + Me._datOfPreMES9 = Value + End Set + End Property + + + Public Property TimOfPreMES10() As String + Get + Return Me._timOfPreMES10 + End Get + Set + Me._timOfPreMES10 = Value + End Set + End Property + + + Public Property PriMES15() As String + Get + Return Me._priMES15 + End Get + Set + Me._priMES15 = Value + End Set + End Property + + + Public Property MesIdeMES19() As String + Get + Return Me._mesIdeMES19 + End Get + Set + Me._mesIdeMES19 = Value + End Set + End Property + + + Public Property MesTypMES20() As MessageTypes + Get + Return Me._mesTypMES20 + End Get + Set + Me._mesTypMES20 = Value + End Set + End Property + + + Public Property CorIdeMES25() As String + Get + Return Me._corIdeMES25 + End Get + Set + Me._corIdeMES25 = Value + End Set + End Property + + + Public Property HEAHEA() As HEAHEAType + Get + Return Me._hEAHEA + End Get + Set + Me._hEAHEA = Value + End Set + End Property + + + Public Property TRACONCO1() As TRACONCO1Type + Get + Return Me._tRACONCO1 + End Get + Set + Me._tRACONCO1 = Value + End Set + End Property + + + Public Property TRACONCE1() As TRACONCE1Type + Get + Return Me._tRACONCE1 + End Get + Set + Me._tRACONCE1 = Value + End Set + End Property + + + Public Property NOTPAR670() As NOTPAR670Type + Get + Return Me._nOTPAR670 + End Get + Set + Me._nOTPAR670 = Value + End Set + End Property + + + Public Property GOOITEGDS() As List(Of GOOITEGDSType) + Get + Return Me._gOOITEGDS + End Get + Set + Me._gOOITEGDS = Value + End Set + End Property + + + Public Property ITI() As List(Of ITIType) + Get + Return Me._iTI + End Get + Set + Me._iTI = Value + End Set + End Property + + + Public Property CUSOFFLON() As CUSOFFLONType + Get + Return Me._cUSOFFLON + End Get + Set + Me._cUSOFFLON = Value + End Set + End Property + + + Public Property TRAREP() As TRAREPType + Get + Return Me._tRAREP + End Get + Set + Me._tRAREP = Value + End Set + End Property + + + Public Property PERLODSUMDEC() As PERLODSUMDECType + Get + Return Me._pERLODSUMDEC + End Get + Set + Me._pERLODSUMDEC = Value + End Set + End Property + + + Public Property SEAID529() As List(Of SEAID529Type) + Get + Return Me._sEAID529 + End Get + Set + Me._sEAID529 = Value + End Set + End Property + + + Public Property CUSOFFFENT730() As CUSOFFFENT730Type + Get + Return Me._cUSOFFFENT730 + End Get + Set + Me._cUSOFFFENT730 = Value + End Set + End Property + + + Public Property CUSOFFSENT740() As List(Of CUSOFFSENT740Type) + Get + Return Me._cUSOFFSENT740 + End Get + Set + Me._cUSOFFSENT740 = Value + End Set + End Property + + + Public Property TRACARENT601() As TRACARENT601Type + Get + Return Me._tRACARENT601 + End Get + Set + Me._tRACARENT601 = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(CC315AType)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize CC315AType object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes CC315AType object + ''' + ''' string to deserialize + ''' Output CC315AType object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As CC315AType, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, CC315AType) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As CC315AType) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As CC315AType + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), CC315AType) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As CC315AType + Return CType(SerializerXml.Deserialize(s), CC315AType) + End Function +#End Region + + ''' + ''' Serializes current CC315AType object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an CC315AType object + ''' + ''' File to load and deserialize + ''' Output CC315AType object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As CC315AType, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, CC315AType) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As CC315AType) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As CC315AType + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Public Enum MessageTypes + + CC304A + + CC305A + + CC313A + + CC315A + + CC316A + + CC323A + + CC324A + + CC325A + + CC328A + + CC351A + + CD030C + + CD031C + + CD032C + + CD070B + + CD071B + + CD301A + + CD302A + + CD303A + + CD319A + + CD411C + + CD412C + + CD906B + + CD912B + + CD913B + + CD914B + + CD916B + + CD917B + + CD931C + + CD932C + + CD971B + End Enum + + + Partial Public Class HEAHEAType + +#Region "Private fields" + Private _refNumHEA4 As String + + Private _traModAtBorHEA76 As String + + Private _ideOfMeaOfTraCroHEA85 As String + + Private _ideOfMeaOfTraCroHEA85LNG As String + + Private _natOfMeaOfTraCroHEA87 As String + + Private _totNumOfIteHEA305 As String + + Private _totNumOfPacHEA306 As String + + Private _totGroMasHEA307 As Decimal + + Private _decPlaHEA394 As String + + Private _decPlaHEA394LNG As String + + Private _speCirIndHEA1 As String + + Private _traChaMetOfPayHEA1 As String + + Private _comRefNumHEA As String + + Private _conRefNumHEA As String + + Private _plaLoaGOOITE334 As String + + Private _plaLoaGOOITE334LNG As String + + Private _plaUnlGOOITE334 As String + + Private _codPlUnHEA357LNG As String + + Private _decDatTimHEA114 As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property RefNumHEA4() As String + Get + Return Me._refNumHEA4 + End Get + Set + Me._refNumHEA4 = Value + End Set + End Property + + + Public Property TraModAtBorHEA76() As String + Get + Return Me._traModAtBorHEA76 + End Get + Set + Me._traModAtBorHEA76 = Value + End Set + End Property + + + Public Property IdeOfMeaOfTraCroHEA85() As String + Get + Return Me._ideOfMeaOfTraCroHEA85 + End Get + Set + Me._ideOfMeaOfTraCroHEA85 = Value + End Set + End Property + + + Public Property IdeOfMeaOfTraCroHEA85LNG() As String + Get + Return Me._ideOfMeaOfTraCroHEA85LNG + End Get + Set + Me._ideOfMeaOfTraCroHEA85LNG = Value + End Set + End Property + + + Public Property NatOfMeaOfTraCroHEA87() As String + Get + Return Me._natOfMeaOfTraCroHEA87 + End Get + Set + Me._natOfMeaOfTraCroHEA87 = Value + End Set + End Property + + + Public Property TotNumOfIteHEA305() As String + Get + Return Me._totNumOfIteHEA305 + End Get + Set + Me._totNumOfIteHEA305 = Value + End Set + End Property + + + Public Property TotNumOfPacHEA306() As String + Get + Return Me._totNumOfPacHEA306 + End Get + Set + Me._totNumOfPacHEA306 = Value + End Set + End Property + + + Public Property TotGroMasHEA307() As Decimal + Get + Return Me._totGroMasHEA307 + End Get + Set + Me._totGroMasHEA307 = Value + End Set + End Property + + + Public Property DecPlaHEA394() As String + Get + Return Me._decPlaHEA394 + End Get + Set + Me._decPlaHEA394 = Value + End Set + End Property + + + Public Property DecPlaHEA394LNG() As String + Get + Return Me._decPlaHEA394LNG + End Get + Set + Me._decPlaHEA394LNG = Value + End Set + End Property + + + Public Property SpeCirIndHEA1() As String + Get + Return Me._speCirIndHEA1 + End Get + Set + Me._speCirIndHEA1 = Value + End Set + End Property + + + Public Property TraChaMetOfPayHEA1() As String + Get + Return Me._traChaMetOfPayHEA1 + End Get + Set + Me._traChaMetOfPayHEA1 = Value + End Set + End Property + + + Public Property ComRefNumHEA() As String + Get + Return Me._comRefNumHEA + End Get + Set + Me._comRefNumHEA = Value + End Set + End Property + + + Public Property ConRefNumHEA() As String + Get + Return Me._conRefNumHEA + End Get + Set + Me._conRefNumHEA = Value + End Set + End Property + + + Public Property PlaLoaGOOITE334() As String + Get + Return Me._plaLoaGOOITE334 + End Get + Set + Me._plaLoaGOOITE334 = Value + End Set + End Property + + + Public Property PlaLoaGOOITE334LNG() As String + Get + Return Me._plaLoaGOOITE334LNG + End Get + Set + Me._plaLoaGOOITE334LNG = Value + End Set + End Property + + + Public Property PlaUnlGOOITE334() As String + Get + Return Me._plaUnlGOOITE334 + End Get + Set + Me._plaUnlGOOITE334 = Value + End Set + End Property + + + Public Property CodPlUnHEA357LNG() As String + Get + Return Me._codPlUnHEA357LNG + End Get + Set + Me._codPlUnHEA357LNG = Value + End Set + End Property + + + Public Property DecDatTimHEA114() As String + Get + Return Me._decDatTimHEA114 + End Get + Set + Me._decDatTimHEA114 = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(HEAHEAType)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize HEAHEAType object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes HEAHEAType object + ''' + ''' string to deserialize + ''' Output HEAHEAType object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As HEAHEAType, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, HEAHEAType) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As HEAHEAType) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As HEAHEAType + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), HEAHEAType) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As HEAHEAType + Return CType(SerializerXml.Deserialize(s), HEAHEAType) + End Function +#End Region + + ''' + ''' Serializes current HEAHEAType object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an HEAHEAType object + ''' + ''' File to load and deserialize + ''' Output HEAHEAType object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As HEAHEAType, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, HEAHEAType) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As HEAHEAType) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As HEAHEAType + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class TRACARENT601Type + +#Region "Private fields" + Private _namTRACARENT604 As String + + Private _strNumTRACARENT607 As String + + Private _pstCodTRACARENT606 As String + + Private _ctyTRACARENT603 As String + + Private _couCodTRACARENT605 As String + + Private _tRACARENT601LNG As String + + Private _tINTRACARENT602 As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property NamTRACARENT604() As String + Get + Return Me._namTRACARENT604 + End Get + Set + Me._namTRACARENT604 = Value + End Set + End Property + + + Public Property StrNumTRACARENT607() As String + Get + Return Me._strNumTRACARENT607 + End Get + Set + Me._strNumTRACARENT607 = Value + End Set + End Property + + + Public Property PstCodTRACARENT606() As String + Get + Return Me._pstCodTRACARENT606 + End Get + Set + Me._pstCodTRACARENT606 = Value + End Set + End Property + + + Public Property CtyTRACARENT603() As String + Get + Return Me._ctyTRACARENT603 + End Get + Set + Me._ctyTRACARENT603 = Value + End Set + End Property + + + Public Property CouCodTRACARENT605() As String + Get + Return Me._couCodTRACARENT605 + End Get + Set + Me._couCodTRACARENT605 = Value + End Set + End Property + + + Public Property TRACARENT601LNG() As String + Get + Return Me._tRACARENT601LNG + End Get + Set + Me._tRACARENT601LNG = Value + End Set + End Property + + + Public Property TINTRACARENT602() As String + Get + Return Me._tINTRACARENT602 + End Get + Set + Me._tINTRACARENT602 = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(TRACARENT601Type)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize TRACARENT601Type object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes TRACARENT601Type object + ''' + ''' string to deserialize + ''' Output TRACARENT601Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As TRACARENT601Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, TRACARENT601Type) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As TRACARENT601Type) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As TRACARENT601Type + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), TRACARENT601Type) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As TRACARENT601Type + Return CType(SerializerXml.Deserialize(s), TRACARENT601Type) + End Function +#End Region + + ''' + ''' Serializes current TRACARENT601Type object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an TRACARENT601Type object + ''' + ''' File to load and deserialize + ''' Output TRACARENT601Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As TRACARENT601Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, TRACARENT601Type) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As TRACARENT601Type) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As TRACARENT601Type + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class CUSOFFSENT740Type + +#Region "Private fields" + Private _refNumSUBENR909 As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property RefNumSUBENR909() As String + Get + Return Me._refNumSUBENR909 + End Get + Set + Me._refNumSUBENR909 = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(CUSOFFSENT740Type)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize CUSOFFSENT740Type object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes CUSOFFSENT740Type object + ''' + ''' string to deserialize + ''' Output CUSOFFSENT740Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As CUSOFFSENT740Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, CUSOFFSENT740Type) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As CUSOFFSENT740Type) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As CUSOFFSENT740Type + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), CUSOFFSENT740Type) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As CUSOFFSENT740Type + Return CType(SerializerXml.Deserialize(s), CUSOFFSENT740Type) + End Function +#End Region + + ''' + ''' Serializes current CUSOFFSENT740Type object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an CUSOFFSENT740Type object + ''' + ''' File to load and deserialize + ''' Output CUSOFFSENT740Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As CUSOFFSENT740Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, CUSOFFSENT740Type) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As CUSOFFSENT740Type) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As CUSOFFSENT740Type + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class CUSOFFFENT730Type + +#Region "Private fields" + Private _refNumCUSOFFFENT731 As String + + Private _expDatOfArrFIRENT733 As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property RefNumCUSOFFFENT731() As String + Get + Return Me._refNumCUSOFFFENT731 + End Get + Set + Me._refNumCUSOFFFENT731 = Value + End Set + End Property + + + Public Property ExpDatOfArrFIRENT733() As String + Get + Return Me._expDatOfArrFIRENT733 + End Get + Set + Me._expDatOfArrFIRENT733 = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(CUSOFFFENT730Type)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize CUSOFFFENT730Type object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes CUSOFFFENT730Type object + ''' + ''' string to deserialize + ''' Output CUSOFFFENT730Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As CUSOFFFENT730Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, CUSOFFFENT730Type) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As CUSOFFFENT730Type) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As CUSOFFFENT730Type + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), CUSOFFFENT730Type) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As CUSOFFFENT730Type + Return CType(SerializerXml.Deserialize(s), CUSOFFFENT730Type) + End Function +#End Region + + ''' + ''' Serializes current CUSOFFFENT730Type object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an CUSOFFFENT730Type object + ''' + ''' File to load and deserialize + ''' Output CUSOFFFENT730Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As CUSOFFFENT730Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, CUSOFFFENT730Type) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As CUSOFFFENT730Type) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As CUSOFFFENT730Type + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class SEAID529Type + +#Region "Private fields" + Private _seaIdSEAID530 As String + + Private _seaIdSEAID530LNG As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property SeaIdSEAID530() As String + Get + Return Me._seaIdSEAID530 + End Get + Set + Me._seaIdSEAID530 = Value + End Set + End Property + + + Public Property SeaIdSEAID530LNG() As String + Get + Return Me._seaIdSEAID530LNG + End Get + Set + Me._seaIdSEAID530LNG = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(SEAID529Type)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize SEAID529Type object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes SEAID529Type object + ''' + ''' string to deserialize + ''' Output SEAID529Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As SEAID529Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, SEAID529Type) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As SEAID529Type) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As SEAID529Type + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), SEAID529Type) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As SEAID529Type + Return CType(SerializerXml.Deserialize(s), SEAID529Type) + End Function +#End Region + + ''' + ''' Serializes current SEAID529Type object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an SEAID529Type object + ''' + ''' File to load and deserialize + ''' Output SEAID529Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As SEAID529Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, SEAID529Type) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As SEAID529Type) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As SEAID529Type + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class PERLODSUMDECType + +#Region "Private fields" + Private _namPLD1 As String + + Private _strAndNumPLD1 As String + + Private _posCodPLD1 As String + + Private _citPLD1 As String + + Private _couCodPLD1 As String + + Private _pERLODSUMDECLNG As String + + Private _tINPLD1 As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property NamPLD1() As String + Get + Return Me._namPLD1 + End Get + Set + Me._namPLD1 = Value + End Set + End Property + + + Public Property StrAndNumPLD1() As String + Get + Return Me._strAndNumPLD1 + End Get + Set + Me._strAndNumPLD1 = Value + End Set + End Property + + + Public Property PosCodPLD1() As String + Get + Return Me._posCodPLD1 + End Get + Set + Me._posCodPLD1 = Value + End Set + End Property + + + Public Property CitPLD1() As String + Get + Return Me._citPLD1 + End Get + Set + Me._citPLD1 = Value + End Set + End Property + + + Public Property CouCodPLD1() As String + Get + Return Me._couCodPLD1 + End Get + Set + Me._couCodPLD1 = Value + End Set + End Property + + + Public Property PERLODSUMDECLNG() As String + Get + Return Me._pERLODSUMDECLNG + End Get + Set + Me._pERLODSUMDECLNG = Value + End Set + End Property + + + Public Property TINPLD1() As String + Get + Return Me._tINPLD1 + End Get + Set + Me._tINPLD1 = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(PERLODSUMDECType)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize PERLODSUMDECType object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes PERLODSUMDECType object + ''' + ''' string to deserialize + ''' Output PERLODSUMDECType object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As PERLODSUMDECType, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, PERLODSUMDECType) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As PERLODSUMDECType) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As PERLODSUMDECType + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), PERLODSUMDECType) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As PERLODSUMDECType + Return CType(SerializerXml.Deserialize(s), PERLODSUMDECType) + End Function +#End Region + + ''' + ''' Serializes current PERLODSUMDECType object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an PERLODSUMDECType object + ''' + ''' File to load and deserialize + ''' Output PERLODSUMDECType object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As PERLODSUMDECType, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, PERLODSUMDECType) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As PERLODSUMDECType) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As PERLODSUMDECType + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class TRAREPType + +#Region "Private fields" + Private _namTRE1 As String + + Private _strAndNumTRE1 As String + + Private _posCodTRE1 As String + + Private _citTRE1 As String + + Private _couCodTRE1 As String + + Private _tRAREPLNG As String + + Private _tINTRE1 As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property NamTRE1() As String + Get + Return Me._namTRE1 + End Get + Set + Me._namTRE1 = Value + End Set + End Property + + + Public Property StrAndNumTRE1() As String + Get + Return Me._strAndNumTRE1 + End Get + Set + Me._strAndNumTRE1 = Value + End Set + End Property + + + Public Property PosCodTRE1() As String + Get + Return Me._posCodTRE1 + End Get + Set + Me._posCodTRE1 = Value + End Set + End Property + + + Public Property CitTRE1() As String + Get + Return Me._citTRE1 + End Get + Set + Me._citTRE1 = Value + End Set + End Property + + + Public Property CouCodTRE1() As String + Get + Return Me._couCodTRE1 + End Get + Set + Me._couCodTRE1 = Value + End Set + End Property + + + Public Property TRAREPLNG() As String + Get + Return Me._tRAREPLNG + End Get + Set + Me._tRAREPLNG = Value + End Set + End Property + + + Public Property TINTRE1() As String + Get + Return Me._tINTRE1 + End Get + Set + Me._tINTRE1 = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(TRAREPType)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize TRAREPType object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes TRAREPType object + ''' + ''' string to deserialize + ''' Output TRAREPType object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As TRAREPType, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, TRAREPType) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As TRAREPType) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As TRAREPType + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), TRAREPType) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As TRAREPType + Return CType(SerializerXml.Deserialize(s), TRAREPType) + End Function +#End Region + + ''' + ''' Serializes current TRAREPType object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an TRAREPType object + ''' + ''' File to load and deserialize + ''' Output TRAREPType object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As TRAREPType, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, TRAREPType) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As TRAREPType) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As TRAREPType + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class CUSOFFLONType + +#Region "Private fields" + Private _refNumCOL1 As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property RefNumCOL1() As String + Get + Return Me._refNumCOL1 + End Get + Set + Me._refNumCOL1 = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(CUSOFFLONType)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize CUSOFFLONType object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes CUSOFFLONType object + ''' + ''' string to deserialize + ''' Output CUSOFFLONType object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As CUSOFFLONType, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, CUSOFFLONType) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As CUSOFFLONType) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As CUSOFFLONType + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), CUSOFFLONType) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As CUSOFFLONType + Return CType(SerializerXml.Deserialize(s), CUSOFFLONType) + End Function +#End Region + + ''' + ''' Serializes current CUSOFFLONType object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an CUSOFFLONType object + ''' + ''' File to load and deserialize + ''' Output CUSOFFLONType object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As CUSOFFLONType, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, CUSOFFLONType) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As CUSOFFLONType) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As CUSOFFLONType + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class ITIType + +#Region "Private fields" + Private _couOfRouCodITI1 As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property CouOfRouCodITI1() As String + Get + Return Me._couOfRouCodITI1 + End Get + Set + Me._couOfRouCodITI1 = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(ITIType)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize ITIType object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes ITIType object + ''' + ''' string to deserialize + ''' Output ITIType object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As ITIType, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, ITIType) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As ITIType) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As ITIType + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), ITIType) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As ITIType + Return CType(SerializerXml.Deserialize(s), ITIType) + End Function +#End Region + + ''' + ''' Serializes current ITIType object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an ITIType object + ''' + ''' File to load and deserialize + ''' Output ITIType object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As ITIType, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, ITIType) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As ITIType) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As ITIType + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class PRTNOT640Type + +#Region "Private fields" + Private _namPRTNOT642 As String + + Private _strNumPRTNOT646 As String + + Private _pstCodPRTNOT644 As String + + Private _ctyPRTNOT643 As String + + Private _couCodGINOT647 As String + + Private _pRTNOT640LNG As String + + Private _tINPRTNOT641 As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property NamPRTNOT642() As String + Get + Return Me._namPRTNOT642 + End Get + Set + Me._namPRTNOT642 = Value + End Set + End Property + + + Public Property StrNumPRTNOT646() As String + Get + Return Me._strNumPRTNOT646 + End Get + Set + Me._strNumPRTNOT646 = Value + End Set + End Property + + + Public Property PstCodPRTNOT644() As String + Get + Return Me._pstCodPRTNOT644 + End Get + Set + Me._pstCodPRTNOT644 = Value + End Set + End Property + + + Public Property CtyPRTNOT643() As String + Get + Return Me._ctyPRTNOT643 + End Get + Set + Me._ctyPRTNOT643 = Value + End Set + End Property + + + Public Property CouCodGINOT647() As String + Get + Return Me._couCodGINOT647 + End Get + Set + Me._couCodGINOT647 = Value + End Set + End Property + + + Public Property PRTNOT640LNG() As String + Get + Return Me._pRTNOT640LNG + End Get + Set + Me._pRTNOT640LNG = Value + End Set + End Property + + + Public Property TINPRTNOT641() As String + Get + Return Me._tINPRTNOT641 + End Get + Set + Me._tINPRTNOT641 = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(PRTNOT640Type)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize PRTNOT640Type object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes PRTNOT640Type object + ''' + ''' string to deserialize + ''' Output PRTNOT640Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As PRTNOT640Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, PRTNOT640Type) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As PRTNOT640Type) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As PRTNOT640Type + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), PRTNOT640Type) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As PRTNOT640Type + Return CType(SerializerXml.Deserialize(s), PRTNOT640Type) + End Function +#End Region + + ''' + ''' Serializes current PRTNOT640Type object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an PRTNOT640Type object + ''' + ''' File to load and deserialize + ''' Output PRTNOT640Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As PRTNOT640Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, PRTNOT640Type) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As PRTNOT640Type) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As PRTNOT640Type + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class PACGS2Type + +#Region "Private fields" + Private _kinOfPacGS23 As String + + Private _numOfPacGS24 As String + + Private _numOfPieGS25 As String + + Private _marNumOfPacGSL21 As String + + Private _marNumOfPacGSL21LNG As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property KinOfPacGS23() As String + Get + Return Me._kinOfPacGS23 + End Get + Set + Me._kinOfPacGS23 = Value + End Set + End Property + + + Public Property NumOfPacGS24() As String + Get + Return Me._numOfPacGS24 + End Get + Set + Me._numOfPacGS24 = Value + End Set + End Property + + + Public Property NumOfPieGS25() As String + Get + Return Me._numOfPieGS25 + End Get + Set + Me._numOfPieGS25 = Value + End Set + End Property + + + Public Property MarNumOfPacGSL21() As String + Get + Return Me._marNumOfPacGSL21 + End Get + Set + Me._marNumOfPacGSL21 = Value + End Set + End Property + + + Public Property MarNumOfPacGSL21LNG() As String + Get + Return Me._marNumOfPacGSL21LNG + End Get + Set + Me._marNumOfPacGSL21LNG = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(PACGS2Type)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize PACGS2Type object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes PACGS2Type object + ''' + ''' string to deserialize + ''' Output PACGS2Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As PACGS2Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, PACGS2Type) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As PACGS2Type) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As PACGS2Type + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), PACGS2Type) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As PACGS2Type + Return CType(SerializerXml.Deserialize(s), PACGS2Type) + End Function +#End Region + + ''' + ''' Serializes current PACGS2Type object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an PACGS2Type object + ''' + ''' File to load and deserialize + ''' Output PACGS2Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As PACGS2Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, PACGS2Type) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As PACGS2Type) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As PACGS2Type + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class IDEMEATRAGI970Type + +#Region "Private fields" + Private _natIDEMEATRAGI973 As String + + Private _ideMeaTraGIMEATRA971 As String + + Private _ideMeaTraGIMEATRA972LNG As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property NatIDEMEATRAGI973() As String + Get + Return Me._natIDEMEATRAGI973 + End Get + Set + Me._natIDEMEATRAGI973 = Value + End Set + End Property + + + Public Property IdeMeaTraGIMEATRA971() As String + Get + Return Me._ideMeaTraGIMEATRA971 + End Get + Set + Me._ideMeaTraGIMEATRA971 = Value + End Set + End Property + + + Public Property IdeMeaTraGIMEATRA972LNG() As String + Get + Return Me._ideMeaTraGIMEATRA972LNG + End Get + Set + Me._ideMeaTraGIMEATRA972LNG = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(IDEMEATRAGI970Type)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize IDEMEATRAGI970Type object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes IDEMEATRAGI970Type object + ''' + ''' string to deserialize + ''' Output IDEMEATRAGI970Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As IDEMEATRAGI970Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, IDEMEATRAGI970Type) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As IDEMEATRAGI970Type) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As IDEMEATRAGI970Type + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), IDEMEATRAGI970Type) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As IDEMEATRAGI970Type + Return CType(SerializerXml.Deserialize(s), IDEMEATRAGI970Type) + End Function +#End Region + + ''' + ''' Serializes current IDEMEATRAGI970Type object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an IDEMEATRAGI970Type object + ''' + ''' File to load and deserialize + ''' Output IDEMEATRAGI970Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As IDEMEATRAGI970Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, IDEMEATRAGI970Type) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As IDEMEATRAGI970Type) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As IDEMEATRAGI970Type + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class CONNR2Type + +#Region "Private fields" + Private _conNumNR21 As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property ConNumNR21() As String + Get + Return Me._conNumNR21 + End Get + Set + Me._conNumNR21 = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(CONNR2Type)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize CONNR2Type object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes CONNR2Type object + ''' + ''' string to deserialize + ''' Output CONNR2Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As CONNR2Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, CONNR2Type) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As CONNR2Type) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As CONNR2Type + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), CONNR2Type) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As CONNR2Type + Return CType(SerializerXml.Deserialize(s), CONNR2Type) + End Function +#End Region + + ''' + ''' Serializes current CONNR2Type object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an CONNR2Type object + ''' + ''' File to load and deserialize + ''' Output CONNR2Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As CONNR2Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, CONNR2Type) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As CONNR2Type) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As CONNR2Type + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class TRACONCE2Type + +#Region "Private fields" + Private _namCE27 As String + + Private _strAndNumCE222 As String + + Private _posCodCE223 As String + + Private _citCE224 As String + + Private _couCE225 As String + + Private _nADLNGGICE As String + + Private _tINCE259 As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property NamCE27() As String + Get + Return Me._namCE27 + End Get + Set + Me._namCE27 = Value + End Set + End Property + + + Public Property StrAndNumCE222() As String + Get + Return Me._strAndNumCE222 + End Get + Set + Me._strAndNumCE222 = Value + End Set + End Property + + + Public Property PosCodCE223() As String + Get + Return Me._posCodCE223 + End Get + Set + Me._posCodCE223 = Value + End Set + End Property + + + Public Property CitCE224() As String + Get + Return Me._citCE224 + End Get + Set + Me._citCE224 = Value + End Set + End Property + + + Public Property CouCE225() As String + Get + Return Me._couCE225 + End Get + Set + Me._couCE225 = Value + End Set + End Property + + + Public Property NADLNGGICE() As String + Get + Return Me._nADLNGGICE + End Get + Set + Me._nADLNGGICE = Value + End Set + End Property + + + Public Property TINCE259() As String + Get + Return Me._tINCE259 + End Get + Set + Me._tINCE259 = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(TRACONCE2Type)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize TRACONCE2Type object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes TRACONCE2Type object + ''' + ''' string to deserialize + ''' Output TRACONCE2Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As TRACONCE2Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, TRACONCE2Type) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As TRACONCE2Type) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As TRACONCE2Type + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), TRACONCE2Type) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As TRACONCE2Type + Return CType(SerializerXml.Deserialize(s), TRACONCE2Type) + End Function +#End Region + + ''' + ''' Serializes current TRACONCE2Type object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an TRACONCE2Type object + ''' + ''' File to load and deserialize + ''' Output TRACONCE2Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As TRACONCE2Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, TRACONCE2Type) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As TRACONCE2Type) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As TRACONCE2Type + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class COMCODGODITMType + +#Region "Private fields" + Private _comNomCMD1 As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property ComNomCMD1() As String + Get + Return Me._comNomCMD1 + End Get + Set + Me._comNomCMD1 = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(COMCODGODITMType)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize COMCODGODITMType object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes COMCODGODITMType object + ''' + ''' string to deserialize + ''' Output COMCODGODITMType object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As COMCODGODITMType, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, COMCODGODITMType) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As COMCODGODITMType) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As COMCODGODITMType + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), COMCODGODITMType) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As COMCODGODITMType + Return CType(SerializerXml.Deserialize(s), COMCODGODITMType) + End Function +#End Region + + ''' + ''' Serializes current COMCODGODITMType object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an COMCODGODITMType object + ''' + ''' File to load and deserialize + ''' Output COMCODGODITMType object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As COMCODGODITMType, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, COMCODGODITMType) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As COMCODGODITMType) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As COMCODGODITMType + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class TRACONCO2Type + +#Region "Private fields" + Private _namCO27 As String + + Private _strAndNumCO222 As String + + Private _posCodCO223 As String + + Private _citCO224 As String + + Private _couCO225 As String + + Private _nADLNGGTCO As String + + Private _tINCO259 As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property NamCO27() As String + Get + Return Me._namCO27 + End Get + Set + Me._namCO27 = Value + End Set + End Property + + + Public Property StrAndNumCO222() As String + Get + Return Me._strAndNumCO222 + End Get + Set + Me._strAndNumCO222 = Value + End Set + End Property + + + Public Property PosCodCO223() As String + Get + Return Me._posCodCO223 + End Get + Set + Me._posCodCO223 = Value + End Set + End Property + + + Public Property CitCO224() As String + Get + Return Me._citCO224 + End Get + Set + Me._citCO224 = Value + End Set + End Property + + + Public Property CouCO225() As String + Get + Return Me._couCO225 + End Get + Set + Me._couCO225 = Value + End Set + End Property + + + Public Property NADLNGGTCO() As String + Get + Return Me._nADLNGGTCO + End Get + Set + Me._nADLNGGTCO = Value + End Set + End Property + + + Public Property TINCO259() As String + Get + Return Me._tINCO259 + End Get + Set + Me._tINCO259 = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(TRACONCO2Type)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize TRACONCO2Type object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes TRACONCO2Type object + ''' + ''' string to deserialize + ''' Output TRACONCO2Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As TRACONCO2Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, TRACONCO2Type) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As TRACONCO2Type) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As TRACONCO2Type + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), TRACONCO2Type) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As TRACONCO2Type + Return CType(SerializerXml.Deserialize(s), TRACONCO2Type) + End Function +#End Region + + ''' + ''' Serializes current TRACONCO2Type object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an TRACONCO2Type object + ''' + ''' File to load and deserialize + ''' Output TRACONCO2Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As TRACONCO2Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, TRACONCO2Type) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As TRACONCO2Type) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As TRACONCO2Type + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class SPEMENMT2Type + +#Region "Private fields" + Private _addInfCodMT23 As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property AddInfCodMT23() As String + Get + Return Me._addInfCodMT23 + End Get + Set + Me._addInfCodMT23 = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(SPEMENMT2Type)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize SPEMENMT2Type object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes SPEMENMT2Type object + ''' + ''' string to deserialize + ''' Output SPEMENMT2Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As SPEMENMT2Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, SPEMENMT2Type) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As SPEMENMT2Type) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As SPEMENMT2Type + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), SPEMENMT2Type) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As SPEMENMT2Type + Return CType(SerializerXml.Deserialize(s), SPEMENMT2Type) + End Function +#End Region + + ''' + ''' Serializes current SPEMENMT2Type object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an SPEMENMT2Type object + ''' + ''' File to load and deserialize + ''' Output SPEMENMT2Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As SPEMENMT2Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, SPEMENMT2Type) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As SPEMENMT2Type) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As SPEMENMT2Type + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class PRODOCDC2Type + +#Region "Private fields" + Private _docTypDC21 As String + + Private _docRefDC23 As String + + Private _docRefDCLNG As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property DocTypDC21() As String + Get + Return Me._docTypDC21 + End Get + Set + Me._docTypDC21 = Value + End Set + End Property + + + Public Property DocRefDC23() As String + Get + Return Me._docRefDC23 + End Get + Set + Me._docRefDC23 = Value + End Set + End Property + + + Public Property DocRefDCLNG() As String + Get + Return Me._docRefDCLNG + End Get + Set + Me._docRefDCLNG = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(PRODOCDC2Type)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize PRODOCDC2Type object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes PRODOCDC2Type object + ''' + ''' string to deserialize + ''' Output PRODOCDC2Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As PRODOCDC2Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, PRODOCDC2Type) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As PRODOCDC2Type) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As PRODOCDC2Type + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), PRODOCDC2Type) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As PRODOCDC2Type + Return CType(SerializerXml.Deserialize(s), PRODOCDC2Type) + End Function +#End Region + + ''' + ''' Serializes current PRODOCDC2Type object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an PRODOCDC2Type object + ''' + ''' File to load and deserialize + ''' Output PRODOCDC2Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As PRODOCDC2Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, PRODOCDC2Type) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As PRODOCDC2Type) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As PRODOCDC2Type + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class GOOITEGDSType + +#Region "Private fields" + Private _iteNumGDS7 As String + + Private _gooDesGDS23 As String + + Private _gooDesGDS23LNG As String + + Private _groMasGDS46 As Decimal + + Private _metOfPayGDI12 As String + + Private _comRefNumGIM1 As String + + Private _uNDanGooCodGDI1 As String + + Private _plaLoaGOOITE333 As String + + Private _plaLoaGOOITE333LNG As String + + Private _plaUnlGOOITE333 As String + + Private _plaUnlGOOITE333LNG As String + + Private _pRODOCDC2 As List(Of PRODOCDC2Type) + + Private _sPEMENMT2 As List(Of SPEMENMT2Type) + + Private _tRACONCO2 As TRACONCO2Type + + Private _cOMCODGODITM As COMCODGODITMType + + Private _tRACONCE2 As TRACONCE2Type + + Private _cONNR2 As List(Of CONNR2Type) + + Private _iDEMEATRAGI970 As List(Of IDEMEATRAGI970Type) + + Private _pACGS2 As List(Of PACGS2Type) + + Private _pRTNOT640 As PRTNOT640Type + + Private Shared _serializerXml As XmlSerializer +#End Region + + Public Sub New() + MyBase.New + Me._pRTNOT640 = New PRTNOT640Type() + Me._pACGS2 = New List(Of PACGS2Type)() + Me._iDEMEATRAGI970 = New List(Of IDEMEATRAGI970Type)() + Me._cONNR2 = New List(Of CONNR2Type)() + Me._tRACONCE2 = New TRACONCE2Type() + Me._cOMCODGODITM = New COMCODGODITMType() + Me._tRACONCO2 = New TRACONCO2Type() + Me._sPEMENMT2 = New List(Of SPEMENMT2Type)() + Me._pRODOCDC2 = New List(Of PRODOCDC2Type)() + End Sub + + + Public Property IteNumGDS7() As String + Get + Return Me._iteNumGDS7 + End Get + Set + Me._iteNumGDS7 = Value + End Set + End Property + + + Public Property GooDesGDS23() As String + Get + Return Me._gooDesGDS23 + End Get + Set + Me._gooDesGDS23 = Value + End Set + End Property + + + Public Property GooDesGDS23LNG() As String + Get + Return Me._gooDesGDS23LNG + End Get + Set + Me._gooDesGDS23LNG = Value + End Set + End Property + + + Public Property GroMasGDS46() As Decimal + Get + Return Me._groMasGDS46 + End Get + Set + Me._groMasGDS46 = Value + End Set + End Property + + + Public Property MetOfPayGDI12() As String + Get + Return Me._metOfPayGDI12 + End Get + Set + Me._metOfPayGDI12 = Value + End Set + End Property + + + Public Property ComRefNumGIM1() As String + Get + Return Me._comRefNumGIM1 + End Get + Set + Me._comRefNumGIM1 = Value + End Set + End Property + + + Public Property UNDanGooCodGDI1() As String + Get + Return Me._uNDanGooCodGDI1 + End Get + Set + Me._uNDanGooCodGDI1 = Value + End Set + End Property + + + Public Property PlaLoaGOOITE333() As String + Get + Return Me._plaLoaGOOITE333 + End Get + Set + Me._plaLoaGOOITE333 = Value + End Set + End Property + + + Public Property PlaLoaGOOITE333LNG() As String + Get + Return Me._plaLoaGOOITE333LNG + End Get + Set + Me._plaLoaGOOITE333LNG = Value + End Set + End Property + + + Public Property PlaUnlGOOITE333() As String + Get + Return Me._plaUnlGOOITE333 + End Get + Set + Me._plaUnlGOOITE333 = Value + End Set + End Property + + + Public Property PlaUnlGOOITE333LNG() As String + Get + Return Me._plaUnlGOOITE333LNG + End Get + Set + Me._plaUnlGOOITE333LNG = Value + End Set + End Property + + + Public Property PRODOCDC2() As List(Of PRODOCDC2Type) + Get + Return Me._pRODOCDC2 + End Get + Set + Me._pRODOCDC2 = Value + End Set + End Property + + + Public Property SPEMENMT2() As List(Of SPEMENMT2Type) + Get + Return Me._sPEMENMT2 + End Get + Set + Me._sPEMENMT2 = Value + End Set + End Property + + + Public Property TRACONCO2() As TRACONCO2Type + Get + Return Me._tRACONCO2 + End Get + Set + Me._tRACONCO2 = Value + End Set + End Property + + + Public Property COMCODGODITM() As COMCODGODITMType + Get + Return Me._cOMCODGODITM + End Get + Set + Me._cOMCODGODITM = Value + End Set + End Property + + + Public Property TRACONCE2() As TRACONCE2Type + Get + Return Me._tRACONCE2 + End Get + Set + Me._tRACONCE2 = Value + End Set + End Property + + + Public Property CONNR2() As List(Of CONNR2Type) + Get + Return Me._cONNR2 + End Get + Set + Me._cONNR2 = Value + End Set + End Property + + + Public Property IDEMEATRAGI970() As List(Of IDEMEATRAGI970Type) + Get + Return Me._iDEMEATRAGI970 + End Get + Set + Me._iDEMEATRAGI970 = Value + End Set + End Property + + + Public Property PACGS2() As List(Of PACGS2Type) + Get + Return Me._pACGS2 + End Get + Set + Me._pACGS2 = Value + End Set + End Property + + + Public Property PRTNOT640() As PRTNOT640Type + Get + Return Me._pRTNOT640 + End Get + Set + Me._pRTNOT640 = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(GOOITEGDSType)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize GOOITEGDSType object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes GOOITEGDSType object + ''' + ''' string to deserialize + ''' Output GOOITEGDSType object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As GOOITEGDSType, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, GOOITEGDSType) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As GOOITEGDSType) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As GOOITEGDSType + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), GOOITEGDSType) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As GOOITEGDSType + Return CType(SerializerXml.Deserialize(s), GOOITEGDSType) + End Function +#End Region + + ''' + ''' Serializes current GOOITEGDSType object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an GOOITEGDSType object + ''' + ''' File to load and deserialize + ''' Output GOOITEGDSType object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As GOOITEGDSType, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, GOOITEGDSType) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As GOOITEGDSType) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As GOOITEGDSType + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class NOTPAR670Type + +#Region "Private fields" + Private _namNOTPAR672 As String + + Private _strNumNOTPAR673 As String + + Private _posCodNOTPAR676 As String + + Private _citNOTPAR674 As String + + Private _couCodNOTPAR675 As String + + Private _nOTPAR670LNG As String + + Private _tINNOTPAR671 As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property NamNOTPAR672() As String + Get + Return Me._namNOTPAR672 + End Get + Set + Me._namNOTPAR672 = Value + End Set + End Property + + + Public Property StrNumNOTPAR673() As String + Get + Return Me._strNumNOTPAR673 + End Get + Set + Me._strNumNOTPAR673 = Value + End Set + End Property + + + Public Property PosCodNOTPAR676() As String + Get + Return Me._posCodNOTPAR676 + End Get + Set + Me._posCodNOTPAR676 = Value + End Set + End Property + + + Public Property CitNOTPAR674() As String + Get + Return Me._citNOTPAR674 + End Get + Set + Me._citNOTPAR674 = Value + End Set + End Property + + + Public Property CouCodNOTPAR675() As String + Get + Return Me._couCodNOTPAR675 + End Get + Set + Me._couCodNOTPAR675 = Value + End Set + End Property + + + Public Property NOTPAR670LNG() As String + Get + Return Me._nOTPAR670LNG + End Get + Set + Me._nOTPAR670LNG = Value + End Set + End Property + + + Public Property TINNOTPAR671() As String + Get + Return Me._tINNOTPAR671 + End Get + Set + Me._tINNOTPAR671 = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(NOTPAR670Type)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize NOTPAR670Type object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes NOTPAR670Type object + ''' + ''' string to deserialize + ''' Output NOTPAR670Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As NOTPAR670Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, NOTPAR670Type) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As NOTPAR670Type) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As NOTPAR670Type + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), NOTPAR670Type) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As NOTPAR670Type + Return CType(SerializerXml.Deserialize(s), NOTPAR670Type) + End Function +#End Region + + ''' + ''' Serializes current NOTPAR670Type object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an NOTPAR670Type object + ''' + ''' File to load and deserialize + ''' Output NOTPAR670Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As NOTPAR670Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, NOTPAR670Type) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As NOTPAR670Type) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As NOTPAR670Type + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class TRACONCE1Type + +#Region "Private fields" + Private _namCE17 As String + + Private _strAndNumCE122 As String + + Private _posCodCE123 As String + + Private _citCE124 As String + + Private _couCE125 As String + + Private _nADLNGCE As String + + Private _tINCE159 As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property NamCE17() As String + Get + Return Me._namCE17 + End Get + Set + Me._namCE17 = Value + End Set + End Property + + + Public Property StrAndNumCE122() As String + Get + Return Me._strAndNumCE122 + End Get + Set + Me._strAndNumCE122 = Value + End Set + End Property + + + Public Property PosCodCE123() As String + Get + Return Me._posCodCE123 + End Get + Set + Me._posCodCE123 = Value + End Set + End Property + + + Public Property CitCE124() As String + Get + Return Me._citCE124 + End Get + Set + Me._citCE124 = Value + End Set + End Property + + + Public Property CouCE125() As String + Get + Return Me._couCE125 + End Get + Set + Me._couCE125 = Value + End Set + End Property + + + Public Property NADLNGCE() As String + Get + Return Me._nADLNGCE + End Get + Set + Me._nADLNGCE = Value + End Set + End Property + + + Public Property TINCE159() As String + Get + Return Me._tINCE159 + End Get + Set + Me._tINCE159 = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(TRACONCE1Type)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize TRACONCE1Type object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes TRACONCE1Type object + ''' + ''' string to deserialize + ''' Output TRACONCE1Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As TRACONCE1Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, TRACONCE1Type) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As TRACONCE1Type) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As TRACONCE1Type + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), TRACONCE1Type) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As TRACONCE1Type + Return CType(SerializerXml.Deserialize(s), TRACONCE1Type) + End Function +#End Region + + ''' + ''' Serializes current TRACONCE1Type object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an TRACONCE1Type object + ''' + ''' File to load and deserialize + ''' Output TRACONCE1Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As TRACONCE1Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, TRACONCE1Type) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As TRACONCE1Type) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As TRACONCE1Type + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class + + + Partial Public Class TRACONCO1Type + +#Region "Private fields" + Private _namCO17 As String + + Private _strAndNumCO122 As String + + Private _posCodCO123 As String + + Private _citCO124 As String + + Private _couCO125 As String + + Private _nADLNGCO As String + + Private _tINCO159 As String + + Private Shared _serializerXml As XmlSerializer +#End Region + + + Public Property NamCO17() As String + Get + Return Me._namCO17 + End Get + Set + Me._namCO17 = Value + End Set + End Property + + + Public Property StrAndNumCO122() As String + Get + Return Me._strAndNumCO122 + End Get + Set + Me._strAndNumCO122 = Value + End Set + End Property + + + Public Property PosCodCO123() As String + Get + Return Me._posCodCO123 + End Get + Set + Me._posCodCO123 = Value + End Set + End Property + + + Public Property CitCO124() As String + Get + Return Me._citCO124 + End Get + Set + Me._citCO124 = Value + End Set + End Property + + + Public Property CouCO125() As String + Get + Return Me._couCO125 + End Get + Set + Me._couCO125 = Value + End Set + End Property + + + Public Property NADLNGCO() As String + Get + Return Me._nADLNGCO + End Get + Set + Me._nADLNGCO = Value + End Set + End Property + + + Public Property TINCO159() As String + Get + Return Me._tINCO159 + End Get + Set + Me._tINCO159 = Value + End Set + End Property + + Private Shared ReadOnly Property SerializerXml() As XmlSerializer + Get + If (_serializerXml Is Nothing) Then + _serializerXml = New XmlSerializerFactory().CreateSerializer(GetType(TRACONCO1Type)) + End If + Return _serializerXml + End Get + End Property + +#Region "Serialize/Deserialize" + ''' + ''' Serialize TRACONCO1Type object + ''' + ''' XML value + Public Overridable Function Serialize() As String + Dim streamReader As StreamReader = Nothing + Dim memoryStream As MemoryStream = Nothing + Try + memoryStream = New MemoryStream() + Dim xmlWriterSettings As System.Xml.XmlWriterSettings = New System.Xml.XmlWriterSettings() + xmlWriterSettings.Indent = True + xmlWriterSettings.IndentChars = " " + Dim xmlWriter As System.Xml.XmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings) + SerializerXml.Serialize(xmlWriter, Me) + memoryStream.Seek(0, SeekOrigin.Begin) + streamReader = New StreamReader(memoryStream) + Return streamReader.ReadToEnd + Finally + If (Not (streamReader) Is Nothing) Then + streamReader.Dispose() + End If + If (Not (memoryStream) Is Nothing) Then + memoryStream.Dispose() + End If + End Try + End Function + + ''' + ''' Deserializes TRACONCO1Type object + ''' + ''' string to deserialize + ''' Output TRACONCO1Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As TRACONCO1Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, TRACONCO1Type) + Try + obj = Deserialize(input) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String, ByRef obj As TRACONCO1Type) As Boolean + Dim exception As System.Exception = Nothing + Return Deserialize(input, obj, exception) + End Function + + Public Overloads Shared Function Deserialize(ByVal input As String) As TRACONCO1Type + Dim stringReader As StringReader = Nothing + Try + stringReader = New StringReader(input) + Return CType(SerializerXml.Deserialize(XmlReader.Create(stringReader)), TRACONCO1Type) + Finally + If (Not (stringReader) Is Nothing) Then + stringReader.Dispose() + End If + End Try + End Function + + Public Overloads Shared Function Deserialize(ByVal s As Stream) As TRACONCO1Type + Return CType(SerializerXml.Deserialize(s), TRACONCO1Type) + End Function +#End Region + + ''' + ''' Serializes current TRACONCO1Type object into file + ''' + ''' full path of outupt xml file + ''' output Exception value if failed + ''' true if can serialize and save into file; otherwise, false + Public Overridable Overloads Function SaveToFile(ByVal fileName As String, ByRef exception As System.Exception) As Boolean + exception = Nothing + Try + SaveToFile(fileName) + Return True + Catch e As System.Exception + exception = e + Return False + End Try + End Function + + Public Overridable Overloads Sub SaveToFile(ByVal fileName As String) + Dim streamWriter As StreamWriter = Nothing + Try + Dim dataString As String = Serialize() + Dim outputFile As FileInfo = New FileInfo(fileName) + streamWriter = outputFile.CreateText + streamWriter.WriteLine(dataString) + streamWriter.Close() + Finally + If (Not (streamWriter) Is Nothing) Then + streamWriter.Dispose() + End If + End Try + End Sub + + ''' + ''' Deserializes xml markup from file into an TRACONCO1Type object + ''' + ''' File to load and deserialize + ''' Output TRACONCO1Type object + ''' output Exception value if deserialize failed + ''' true if this Serializer can deserialize the object; otherwise, false + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As TRACONCO1Type, ByRef exception As System.Exception) As Boolean + exception = Nothing + obj = CType(Nothing, TRACONCO1Type) + Try + obj = LoadFromFile(fileName) + Return True + Catch ex As System.Exception + exception = ex + Return False + End Try + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String, ByRef obj As TRACONCO1Type) As Boolean + Dim exception As System.Exception = Nothing + Return LoadFromFile(fileName, obj, exception) + End Function + + Public Overloads Shared Function LoadFromFile(ByVal fileName As String) As TRACONCO1Type + Dim file As FileStream = Nothing + Dim sr As StreamReader = Nothing + Try + file = New FileStream(fileName, FileMode.Open, FileAccess.Read) + sr = New StreamReader(file) + Dim dataString As String = sr.ReadToEnd + sr.Close() + file.Close() + Return Deserialize(dataString) + Finally + If (Not (file) Is Nothing) Then + file.Dispose() + End If + If (Not (sr) Is Nothing) Then + sr.Dispose() + End If + End Try + End Function + End Class +End Namespace +#Enable Warning diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/ENS/CC315A-v11-2.xsd b/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/ENS/CC315A-v11-2.xsd new file mode 100644 index 00000000..3efd4ede --- /dev/null +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/ENS/CC315A-v11-2.xsd @@ -0,0 +1,1257 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/ENS/complex_types_ics-v11-2.xsd b/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/ENS/complex_types_ics-v11-2.xsd new file mode 100644 index 00000000..010ba08e --- /dev/null +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/ENS/complex_types_ics-v11-2.xsd @@ -0,0 +1,1754 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/ENS/doc-v11-2.xsd b/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/ENS/doc-v11-2.xsd new file mode 100644 index 00000000..a9e7b973 --- /dev/null +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/ENS/doc-v11-2.xsd @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/ENS/simple_types-v11-2.xsd b/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/ENS/simple_types-v11-2.xsd new file mode 100644 index 00000000..3ab81f0c --- /dev/null +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/ENS/simple_types-v11-2.xsd @@ -0,0 +1,662 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Base class for all anN and an..N types + + + + + + Base class for all aN and a..N + types + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Customs Office Reference Number + (format:an8) + + + + + + + + + Trader City (format: + an..35) + + + + + + + + + + + + + + Country Code (format:a2) + + + + + + + + + Date type (format + YYMMDD) + + + + + + + + + Date and Time with precision of minute + (format + YYYYMMDDHHMM) + + + + + + + + + Date type (format + YYYYMMDD) + + + + + + + + + Date type (format + YYYYMMDDHHMNSS) + + + + + + + + + Day in the Month (format: + DD) + + + + + + + + + Base class for all n..N,M + types + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Declaration request number (format: + an..22) + + + + + + + + + GRN (format: an..24), (alias:GuaRefNumGRNREF21) + + + + + + + + Language Code (format: a2) + + + + + + + + + MRN (format: an..21), (alias: DocNumHEA5Type) + + + + + + + + Base class for all nN and n..N + types + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Trader Postal Code (format: + n..9) + + + + + + + + + Trader Street and Number (format: + an..35) + + + + + + + + + + + + + + Trader Identification Number (format: + an..17) + + + + + + + + + + Taric Code (format: + an..6) + + + + + + + + Time with precision of minute (format + HHMM) + + + + + + + + + Trader Name (format: + an..35) + + + + + + + + + + + + + diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/ENS/tcl-v11-2.xsd b/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/ENS/tcl-v11-2.xsd new file mode 100644 index 00000000..1b705b11 --- /dev/null +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/ENS/tcl-v11-2.xsd @@ -0,0 +1,769 @@ + + + + + [Format: a1] + + + + + Reference Data + + + + + Entry Processing + + + + + Lodgement + + + + + ALL FUNCTIONALITY + + + + + + + All the countries included in code list 9 excluding AX, GF, GP, LI, MC, MQ, RE, SJ and YT. The same codelist values are used for all Domains (ECS/NCTS/ICS) in order to support the COL. Values are shown for illustration only. [Format: a2] + + + + + Andorra + + + + + Austria + + + + + Belgium + + + + + Bulgaria + + + + + Switzerland + + + + + Cyprus + + + + + Czech Republic + + + + + Germany + + + + + Denmark + + + + + Estonia + + + + + Spain + + + + + Finland + + + + + France + + + + + United Kingdom + + + + + Greece + + + + + Croatia + + + + + Hungary + + + + + Ireland + + + + + Iceland + + + + + Italy + + + + + Lithuania + + + + + Luxembourg + + + + + Latvia + + + + + Malta + + + + + Netherlands + + + + + Norway + + + + + Poland + + + + + Portugal + + + + + Romania + + + + + Sweden + + + + + Slovenia + + + + + Slovakia + + + + + San Marino + + + + + Turkey + + + + + + + [Format: n1] + + + + + Monday + + + + + Tuesday + + + + + Wednesday + + + + + Thursday + + + + + Friday + + + + + Saturday + + + + + Sunday + + + + + + + It is an alphanumerical up to 50 characters string (i.e. an..50) that is used to define in an acknowledgement notification message the error code(s). [Format: an..50] + + + + + Non XML message received + + + + + Invalid byte sequence: a byte sequence does not represent a valid character in the character encoding scheme (UTF-8). + + + + + Envelope Id and/or Originator Reference are missing + + + + + + + - Subset of the UN/EDIFACT generic error table. - For remarks on the codes : see DDNTA Sec. VII. [Format: n2] + + + + + Incorrect (code) value + + + + + Missing + + + + + Value not supported in this position (code value constraint) + + + + + Not supported in this position + + + + + Invalid decimal notation + + + + + Duplicate detected + + + + + Too many repetitions + + + + + Invalid type characters + + + + + Missing digit in front of decimal sign + + + + + Element too long (length constraint) + + + + + Element too short (length constraint) + + + + + Unknown MRN + + + + + Duplicate MRN + + + + + Message out of sequence + + + + + Invalid MRN + + + + + + + Defines the codes to be used for reporting errors on XML messages. [Format: n2] + + + + + Incorrect enumeration + + + + + Missing + + + + + Not supported in this position + + + + + Unspecified Error / Other + + + + + Invalid decimal notation + + + + + Too many repetitions + + + + + Element too long (length constraint) + + + + + Element too short (length constraint) + + + + + Invalid Value for the specific type + + + + + Invalid value according to the pattern + + + + + Invalid XML format + + + + + Invalid character(s) + + + + + Value is lower than the allowed lowest limit (Minimum Inclusive) + + + + + Value is greater than the allowed upper limit (Maximum Inclusive) + + + + + Value is lower than or equal to the allowed lowest limit (Minimum Exlcusive) + + + + + Value is greater than or equal to the allowed upper limit (Maximum Exclusive) + + + + + + + Used for CUSTOMS OFFICE LSD. [Format: an1] + + + + + Simple office (see box A in Customs Office List) + + + + + Higher authority (see box E in Customs Office List) + + + + + + + Used for the attribute SYSTEM UNAVAILABILITY.System Unavailability Type. [Format: a1] + + + + + Business service not implemented + + + + + Scheduled Unavailability + + + + + Unscheduled Unavailability + + + + + + + Used for attributes that can have a positive or a negative value. [Format: n1] + + + + + NO + + + + + YES + + + + + + + [Format: an2] + + + + + January + + + + + February + + + + + March + + + + + April + + + + + May + + + + + June + + + + + July + + + + + August + + + + + September + + + + + October + + + + + November + + + + + December + + + + + + + Used for attribute MESSAGE ERRORS.Association assigned code and MESSAGE.Message Type. The usage of each code in one of the UNSM templates is defined in the Remarks column. CC should in all cases be instantiated to the value of the particular domain in which the message is created. [Format: an..6] [Format: an..6] + + + + + Entry Summary Declaration Amendment Accepted + + + + + Entry Summary Declaration Amendment Rejection + + + + + Entry Summary Declaration Amendment + + + + + Entry Summary Declaration + + + + + Entry Summary Declaration Rejected + + + + + Diversion Request Import + + + + + Diversion Request Rejected + + + + + Diversion Request Acknowledgement + + + + + Entry Summary Request Acknowledgement + + + + + Advanced Intervention Notification + + + + + Notification of customs offices modification to common domain + + + + + Notification of customs offices modification to national domain + + + + + Notification of common reference data modification to ND + + + + + Notification of System Unavailability to CD + + + + + Notification of System Unavailability to ND + + + + + ENS + + + + + Declaration Request Import + + + + + Entry Summary Declaration Response + + + + + Transmission to subsequent Office of Entry + + + + + Sending of statistics data + + + + + Statistics generated sent to national domain + + + + + Functional NACK + + + + + Availability Matrix + + + + + Upload parsing response + + + + + COL request + + + + + Common RD Request + + + + + XML NACK + + + + + COL DATA + + + + + Common RD Data + + + + + Full Unavailability Schedule + + + + + + + Used for (multiple) attribute Operation. [Format: a1] + + + + + Create + + + + + Delete + + + + + Update + + + + + + + Custom System applicable domain [Format: n..2] + + + + + NCTS + + + + + ECS + + + + + ICS + + + + + EOS + + + + + diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cHMRCToken.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/cHMRCToken.vb similarity index 100% rename from VERAG_PROG_ALLGEMEIN/Classes/cHMRCToken.vb rename to VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/cHMRCToken.vb diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/cHMRC_ENS.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/cHMRC_ENS.vb new file mode 100644 index 00000000..aa08235d --- /dev/null +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/HMRC/cHMRC_ENS.vb @@ -0,0 +1,148 @@ +Imports Org.BouncyCastle.Ocsp +Imports VERAG_PROG_ALLGEMEIN.CC015B_TR_EXT_V4_3 +Imports VERAG_PROG_ALLGEMEIN.ENS_CC315A + +Public Class cHMRC_ENS + + + '---> VERAG AG!!! GVMS use 26 86 22 45 50 78? + Public Shared ApplicationName = "AVISO_ENS" + Public Shared ApplicationID = "af3dc225-6726-4cba-98e6-9b8df39b4c20" + Public Shared Client_ID = "Qbwx6C1YYdc6q4XM0aWOKZGH0zyO" + Public Shared Client_Secret = "143a33cc-33c8-43bb-bcca-51186ac52855" + Public Shared TEST As Boolean = True + + + + + Shared Function helloWorldENS(ByVal response As String) As Boolean + + + + VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat() + + + + + Dim TOKEN = cHMRC.getTOKEN("ENS_HELLOWORLD") + + If TOKEN.hasEntry Then + + ' HTTP-Client initialisieren + Dim http As New Chilkat.Http + + ' Falls das Token fehlt, Hinweis ausgeben + If String.IsNullOrEmpty(TOKEN.token_BEARER_TOKEN) Then + Console.WriteLine("Fehler: Kein OAuth2-Token gefunden!") + Return False + End If + + ' Setze die benötigten Header + http.SetRequestHeader("Accept", "application/vnd.hmrc.1.0+xml") + http.SetRequestHeader("Content-Type", "application/xml; charset=UTF-8") + http.SetRequestHeader("Authorization", "Bearer " & TOKEN.token_BEARER_TOKEN) + + ' API-Endpunkt für User-Restricted Hello API + Dim url As String = "https://test-api.service.hmrc.gov.uk/hello/application" + 'Dim url As String = "https://test-api.service.hmrc.gov.uk/hello/user" + + ' API-Anfrage senden + response = http.QuickGetStr(url) + + ' Fehlerbehandlung + If (http.LastMethodSuccess <> True) Then + Console.WriteLine("Fehler: " & http.LastErrorText) + MsgBox("Fehler: " & http.LastErrorText) + Else + Console.WriteLine("Antwort von HMRC API: " & response) + MsgBox("Antwort von HMRC API: " & response) + End If + Return True + End If + Return False + End Function + Shared Function insertENS(ENS_CC315A As CC315AType, ByVal response As String) As Boolean + ' Chilkat-Objekt initialisieren + Dim http As New Chilkat.Http() + + + ' EORI-Nummer für die Überprüfung + 'Dim eoriNumber As String = "GB123456789000" + + Dim url As String = "" + If TEST Then + url = "test-api.service.hmrc.gov.uk" + Else + url = "api.service.hmrc.gov.uk" + End If + MsgBox(url) + VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat() + + '------------------------------------------------------- + + ENS_CC315A = New CC315AType + + ENS_CC315A.MesSenMES3 = "GB123" + ENS_CC315A.DatOfPreMES9 = Now.ToString("yyMMdd") + ENS_CC315A.TimOfPreMES10 = Now.ToString("HHmm") + ENS_CC315A.MesIdeMES19 = "ABCD1234" + 'ENS_CC315A.MesTypMES20 = "CC315A" + + ENS_CC315A.HEAHEA.RefNumHEA4 = "ABCD1234" + ENS_CC315A.HEAHEA.TraModAtBorHEA76 = "4" + ENS_CC315A.HEAHEA.TotNumOfIteHEA305 = "1" + + + '------------------------------------------------------- + + + + + Dim TOKEN = cHMRC.getTOKEN("ENS", True) + + If TOKEN.hasEntry Then + + Dim req As New Chilkat.HttpRequest() + + ' Setze deine HMRC API-Credentials + http.AuthToken = TOKEN.token_BEARER_TOKEN + + req.HttpVerb = "POST" + req.Path = "/customs/imports/declarations" + req.ContentType = "application/xml" + req.Charset = "utf-8" + req.SendCharset = True + + + + MsgBox(ENS_CC315A.Serialize) + ' Füge das XML als Body hinzu + req.LoadBodyFromString(ENS_CC315A.Serialize, "utf-8") + + ' Füge benötigte Header hinzu + req.AddHeader("Accept", "application/vnd.hmrc.1.0+xml") '"application/vnd.hmrc.1.0+xml") + req.AddHeader("Content-Type", "application/xml; charset=UTF-8") '"application/xml") + req.AddHeader("Authorization", "Bearer " & TOKEN.token_BEARER_TOKEN) + ' req.AddHeader("Gov-Client-Connection-Method", "WEB_APP_VIA_SERVER") + ' req.AddHeader("Gov-Client-Public-IP", "192.168.1.1") + ' req.AddHeader("Gov-Client-Timezone", "UTC+00:00") + + MsgBox(TOKEN.token_BEARER_TOKEN) + ' Sende die Anfrage + Dim resp As Chilkat.HttpResponse = http.SynchronousRequest(url, 443, True, req) + + If resp Is Nothing Then + Console.WriteLine("Fehler: " & http.LastErrorText) + Else + Console.WriteLine("Status Code: " & resp.StatusCode) + Console.WriteLine("Antwort: " & resp.BodyStr) + End If + + Return True + End If + Return False + End Function + + + +End Class diff --git a/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj b/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj index 38817568..84b9ecf8 100644 --- a/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj +++ b/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj @@ -362,7 +362,8 @@ - + + @@ -425,6 +426,8 @@ + + @@ -868,6 +871,21 @@ Designer + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + Designer