diff --git a/GUIs.Common/Common.vbproj b/GUIs.Common/Common.vbproj
index e2a874b6..8ee7a874 100644
--- a/GUIs.Common/Common.vbproj
+++ b/GUIs.Common/Common.vbproj
@@ -118,6 +118,7 @@
Form
+
diff --git a/GUIs.Common/DocumentResultList/CheckInOut.vb b/GUIs.Common/DocumentResultList/CheckInOut.vb
new file mode 100644
index 00000000..08ebf524
--- /dev/null
+++ b/GUIs.Common/DocumentResultList/CheckInOut.vb
@@ -0,0 +1,49 @@
+Imports DigitalData.Modules.Base
+Imports DigitalData.Modules.EDMI.API
+Imports DigitalData.Modules.Logging
+
+Namespace DocumentResultList
+ Public Class CheckInOut
+ Inherits BaseClass
+ Private Client As Client
+
+ Public Sub New(pLogConfig As LogConfig, pClient As Client)
+ MyBase.New(pLogConfig)
+ Client = pClient
+ End Sub
+
+ Public Async Function GetCheckoutState(pObjectId As Long) As Task(Of CheckoutState)
+ Try
+ Dim oSQL = $"SELECT * FROM VWOBJECT_CHECKED_OUT WHERE IDB_OBJ_ID = {pObjectId}"
+ Dim oResponse = Await Client.GetDatatableFromIDBAsync(oSQL)
+
+ If oResponse.ok = False Then
+ Return Nothing
+ End If
+
+ If oResponse.Table.Rows.Count = 0 Then
+ Return New CheckoutState()
+ End If
+
+ Dim oRow = oResponse.Table.Rows.Item(0)
+ Dim oState As New CheckoutState With {
+ .IsCheckedOut = True,
+ .CheckedOutWhen = oRow.Item("CHECKED_OUT_WHEN"),
+ .CheckedOutWho = oRow.Item("EMAIL")
+ }
+
+ Return oState
+
+ Catch ex As Exception
+ Logger.Error(ex)
+ Return Nothing
+ End Try
+ End Function
+
+ Public Class CheckoutState
+ Public Property IsCheckedOut As Boolean = False
+ Public Property CheckedOutWhen As Date = Nothing
+ Public Property CheckedOutWho As String = Nothing
+ End Class
+ End Class
+End Namespace
diff --git a/GUIs.Common/My Project/licenses.licx b/GUIs.Common/My Project/licenses.licx
index a411537a..d7156af2 100644
--- a/GUIs.Common/My Project/licenses.licx
+++ b/GUIs.Common/My Project/licenses.licx
@@ -1,10 +1,11 @@
-DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-DevExpress.XtraBars.Docking.DockManager, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemDateEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraBars.Docking.DockManager, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.DateEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
diff --git a/GUIs.Common/ObjectPropertyDialog/ctrlObjectPropertyDialog.Designer.vb b/GUIs.Common/ObjectPropertyDialog/ctrlObjectPropertyDialog.Designer.vb
index 788532c8..6bacebd3 100644
--- a/GUIs.Common/ObjectPropertyDialog/ctrlObjectPropertyDialog.Designer.vb
+++ b/GUIs.Common/ObjectPropertyDialog/ctrlObjectPropertyDialog.Designer.vb
@@ -122,7 +122,6 @@ Partial Class ctrlObjectPropertyDialog
'XtraTabControl1
'
Me.XtraTabControl1.Dock = System.Windows.Forms.DockStyle.Fill
- Me.XtraTabControl1.HeaderLocation = DevExpress.XtraTab.TabHeaderLocation.Bottom
Me.XtraTabControl1.Location = New System.Drawing.Point(0, 30)
Me.XtraTabControl1.Name = "XtraTabControl1"
Me.XtraTabControl1.SelectedTabPage = Me.XtraTabPageObject
diff --git a/GUIs.Common/frmDocumentResultList.Designer.vb b/GUIs.Common/frmDocumentResultList.Designer.vb
index d08b87ca..49456117 100644
--- a/GUIs.Common/frmDocumentResultList.Designer.vb
+++ b/GUIs.Common/frmDocumentResultList.Designer.vb
@@ -21,7 +21,7 @@ Partial Class frmDocumentResultList
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmDocumentResultList))
- Dim PushTransition1 As DevExpress.Utils.Animation.PushTransition = New DevExpress.Utils.Animation.PushTransition()
+ Dim FadeTransition1 As DevExpress.Utils.Animation.FadeTransition = New DevExpress.Utils.Animation.FadeTransition()
Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl()
Me.GridControl1 = New DevExpress.XtraGrid.GridControl()
Me.GridView1 = New DevExpress.XtraGrid.Views.BandedGrid.BandedGridView()
@@ -96,6 +96,17 @@ Partial Class frmDocumentResultList
Me.DockManager1 = New DevExpress.XtraBars.Docking.DockManager(Me.components)
Me.DockPanelFileList = New DevExpress.XtraBars.Docking.DockPanel()
Me.DockPanel2_Container = New DevExpress.XtraBars.Docking.ControlContainer()
+ Me.panelContainer1 = New DevExpress.XtraBars.Docking.DockPanel()
+ Me.DockPanelStatus = New DevExpress.XtraBars.Docking.DockPanel()
+ Me.ControlContainer1 = New DevExpress.XtraBars.Docking.ControlContainer()
+ Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl()
+ Me.txtCheckedOutWho = New DevExpress.XtraEditors.TextEdit()
+ Me.dateCheckedOutWhen = New DevExpress.XtraEditors.DateEdit()
+ Me.Root = New DevExpress.XtraLayout.LayoutControlGroup()
+ Me.LayoutControlGroup1 = New DevExpress.XtraLayout.LayoutControlGroup()
+ Me.LayoutControlItem1 = New DevExpress.XtraLayout.LayoutControlItem()
+ Me.LayoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem()
+ Me.EmptySpaceItem1 = New DevExpress.XtraLayout.EmptySpaceItem()
Me.DockPanelMetadata = New DevExpress.XtraBars.Docking.DockPanel()
Me.DockPanel3_Container = New DevExpress.XtraBars.Docking.ControlContainer()
Me.CtrlObjectPropertyDialog = New DigitalData.GUIs.Common.ctrlObjectPropertyDialog()
@@ -126,6 +137,19 @@ Partial Class frmDocumentResultList
CType(Me.DockManager1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.DockPanelFileList.SuspendLayout()
Me.DockPanel2_Container.SuspendLayout()
+ Me.panelContainer1.SuspendLayout()
+ Me.DockPanelStatus.SuspendLayout()
+ Me.ControlContainer1.SuspendLayout()
+ CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.LayoutControl1.SuspendLayout()
+ CType(Me.txtCheckedOutWho.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.dateCheckedOutWhen.Properties.CalendarTimeProperties, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.dateCheckedOutWhen.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.Root, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.DockPanelMetadata.SuspendLayout()
Me.DockPanel3_Container.SuspendLayout()
Me.DockPanelDocViewer.SuspendLayout()
@@ -192,7 +216,7 @@ Partial Class frmDocumentResultList
Me.RibbonControl.ExpandCollapseItem.Id = 0
Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.SwitchMainContainerHorizontal, Me.SwitchDetailContainerHorizontal, Me.BarButtonItemExportGrid1, Me.BarStaticItem1, Me.labelResultCount, Me.BarButtonBack, Me.BarButtonResetLayout, Me.labelCriticalError, Me.labelWarning, Me.MenuItemFileOpen, Me.MenuItemPropertiesIDB, Me.MenuItemFolderOpen, Me.MenuItemFilepathCopy, Me.MenuItemFolderpathCopy, Me.MenuItemProperties, Me.MenuItemsOpenFileZooFlow, Me.MenuItemPropertiesZooFlow, Me.ButtonRefresh, Me.BarButtonItem1, Me.BarButtonItem2, Me.BarButtonItem3, Me.BarButtonItem4, Me.BarButtonItem5, Me.BarButtonItem6, Me.MenuItemStartAdhocWorkflow, Me.MenuItemCheckInFile, Me.MenuItemCheckOutFile, Me.MenuItemVersionFile, Me.chkGridShowQuickfilter, Me.chkGridShowGrouping, Me.chkGridShowTitle, Me.MenuItemSaveProperties, Me.BarButtonItem11, Me.BarWorkspaceMenuItem1})
resources.ApplyResources(Me.RibbonControl, "RibbonControl")
- Me.RibbonControl.MaxItemId = 46
+ Me.RibbonControl.MaxItemId = 48
Me.RibbonControl.Name = "RibbonControl"
Me.RibbonControl.PageCategories.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageCategory() {Me.RibbonPageCategoryFile, Me.RibbonPageCategoryAttribute})
Me.RibbonControl.PageHeaderItemLinks.Add(Me.BarWorkspaceMenuItem1)
@@ -321,7 +345,7 @@ Partial Class frmDocumentResultList
'
resources.ApplyResources(Me.MenuItemProperties, "MenuItemProperties")
Me.MenuItemProperties.Id = 26
- Me.MenuItemProperties.ImageOptions.SvgImage = CType(resources.GetObject("MenuItemPropertiesECM.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
+ Me.MenuItemProperties.ImageOptions.SvgImage = CType(resources.GetObject("MenuItemProperties.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.MenuItemProperties.Name = "MenuItemProperties"
'
'MenuItemsOpenFileZooFlow
@@ -455,7 +479,7 @@ Partial Class frmDocumentResultList
'WorkspaceManager1
'
Me.WorkspaceManager1.TargetControl = Me
- Me.WorkspaceManager1.TransitionType = PushTransition1
+ Me.WorkspaceManager1.TransitionType = FadeTransition1
'
'RibbonPageCategoryFile
'
@@ -695,7 +719,7 @@ Partial Class frmDocumentResultList
'DockManager1
'
Me.DockManager1.Form = Me
- Me.DockManager1.RootPanels.AddRange(New DevExpress.XtraBars.Docking.DockPanel() {Me.DockPanelFileList, Me.DockPanelMetadata, Me.DockPanelDocViewer})
+ Me.DockManager1.RootPanels.AddRange(New DevExpress.XtraBars.Docking.DockPanel() {Me.DockPanelFileList, Me.panelContainer1, Me.DockPanelDocViewer})
Me.DockManager1.TopZIndexControls.AddRange(New String() {"DevExpress.XtraBars.BarDockControl", "DevExpress.XtraBars.StandaloneBarDockControl", "System.Windows.Forms.MenuStrip", "System.Windows.Forms.StatusStrip", "System.Windows.Forms.StatusBar", "DevExpress.XtraBars.Ribbon.RibbonStatusBar", "DevExpress.XtraBars.Ribbon.RibbonControl", "DevExpress.XtraBars.Navigation.OfficeNavigationBar", "DevExpress.XtraBars.Navigation.TileNavPane", "DevExpress.XtraBars.TabFormControl", "DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormControl", "DevExpress.XtraBars.ToolbarForm.ToolbarFormControl"})
'
'DockPanelFileList
@@ -714,10 +738,109 @@ Partial Class frmDocumentResultList
resources.ApplyResources(Me.DockPanel2_Container, "DockPanel2_Container")
Me.DockPanel2_Container.Name = "DockPanel2_Container"
'
+ 'panelContainer1
+ '
+ Me.panelContainer1.ActiveChild = Me.DockPanelStatus
+ Me.panelContainer1.Controls.Add(Me.DockPanelStatus)
+ Me.panelContainer1.Controls.Add(Me.DockPanelMetadata)
+ Me.panelContainer1.Dock = DevExpress.XtraBars.Docking.DockingStyle.Right
+ Me.panelContainer1.ID = New System.Guid("3d77391e-21ef-4574-8521-d9f3b7468ebe")
+ resources.ApplyResources(Me.panelContainer1, "panelContainer1")
+ Me.panelContainer1.Name = "panelContainer1"
+ Me.panelContainer1.OriginalSize = New System.Drawing.Size(275, 200)
+ Me.panelContainer1.Tabbed = True
+ '
+ 'DockPanelStatus
+ '
+ Me.DockPanelStatus.Controls.Add(Me.ControlContainer1)
+ Me.DockPanelStatus.Dock = DevExpress.XtraBars.Docking.DockingStyle.Fill
+ Me.DockPanelStatus.FloatVertical = True
+ Me.DockPanelStatus.ID = New System.Guid("ef61c6cb-3dbd-4dd5-9df0-9d331a859d3d")
+ resources.ApplyResources(Me.DockPanelStatus, "DockPanelStatus")
+ Me.DockPanelStatus.Name = "DockPanelStatus"
+ Me.DockPanelStatus.Options.ShowCloseButton = False
+ Me.DockPanelStatus.OriginalSize = New System.Drawing.Size(273, 97)
+ '
+ 'ControlContainer1
+ '
+ Me.ControlContainer1.Controls.Add(Me.LayoutControl1)
+ resources.ApplyResources(Me.ControlContainer1, "ControlContainer1")
+ Me.ControlContainer1.Name = "ControlContainer1"
+ '
+ 'LayoutControl1
+ '
+ Me.LayoutControl1.Controls.Add(Me.txtCheckedOutWho)
+ Me.LayoutControl1.Controls.Add(Me.dateCheckedOutWhen)
+ resources.ApplyResources(Me.LayoutControl1, "LayoutControl1")
+ Me.LayoutControl1.Name = "LayoutControl1"
+ Me.LayoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = New System.Drawing.Rectangle(1068, 325, 650, 400)
+ Me.LayoutControl1.Root = Me.Root
+ '
+ 'txtCheckedOutWho
+ '
+ resources.ApplyResources(Me.txtCheckedOutWho, "txtCheckedOutWho")
+ Me.txtCheckedOutWho.MenuManager = Me.RibbonControl
+ Me.txtCheckedOutWho.Name = "txtCheckedOutWho"
+ Me.txtCheckedOutWho.Properties.ReadOnly = True
+ Me.txtCheckedOutWho.StyleController = Me.LayoutControl1
+ '
+ 'dateCheckedOutWhen
+ '
+ resources.ApplyResources(Me.dateCheckedOutWhen, "dateCheckedOutWhen")
+ Me.dateCheckedOutWhen.MenuManager = Me.RibbonControl
+ Me.dateCheckedOutWhen.Name = "dateCheckedOutWhen"
+ Me.dateCheckedOutWhen.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(CType(resources.GetObject("DateEdit1.Properties.Buttons"), DevExpress.XtraEditors.Controls.ButtonPredefines))})
+ Me.dateCheckedOutWhen.Properties.CalendarTimeProperties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(CType(resources.GetObject("DateEdit1.Properties.CalendarTimeProperties.Buttons"), DevExpress.XtraEditors.Controls.ButtonPredefines))})
+ Me.dateCheckedOutWhen.Properties.ReadOnly = True
+ Me.dateCheckedOutWhen.StyleController = Me.LayoutControl1
+ '
+ 'Root
+ '
+ Me.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True]
+ Me.Root.GroupBordersVisible = False
+ Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlGroup1, Me.EmptySpaceItem1})
+ Me.Root.Name = "Root"
+ Me.Root.Size = New System.Drawing.Size(268, 434)
+ Me.Root.TextVisible = False
+ '
+ 'LayoutControlGroup1
+ '
+ Me.LayoutControlGroup1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1, Me.LayoutControlItem2})
+ Me.LayoutControlGroup1.Location = New System.Drawing.Point(0, 0)
+ Me.LayoutControlGroup1.Name = "LayoutControlGroup1"
+ Me.LayoutControlGroup1.Size = New System.Drawing.Size(248, 93)
+ resources.ApplyResources(Me.LayoutControlGroup1, "LayoutControlGroup1")
+ '
+ 'LayoutControlItem1
+ '
+ Me.LayoutControlItem1.Control = Me.txtCheckedOutWho
+ Me.LayoutControlItem1.Location = New System.Drawing.Point(0, 0)
+ Me.LayoutControlItem1.Name = "LayoutControlItem1"
+ Me.LayoutControlItem1.Size = New System.Drawing.Size(224, 24)
+ resources.ApplyResources(Me.LayoutControlItem1, "LayoutControlItem1")
+ Me.LayoutControlItem1.TextSize = New System.Drawing.Size(126, 13)
+ '
+ 'LayoutControlItem2
+ '
+ Me.LayoutControlItem2.Control = Me.dateCheckedOutWhen
+ Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 24)
+ Me.LayoutControlItem2.Name = "LayoutControlItem2"
+ Me.LayoutControlItem2.Size = New System.Drawing.Size(224, 24)
+ resources.ApplyResources(Me.LayoutControlItem2, "LayoutControlItem2")
+ Me.LayoutControlItem2.TextSize = New System.Drawing.Size(126, 13)
+ '
+ 'EmptySpaceItem1
+ '
+ Me.EmptySpaceItem1.AllowHotTrack = False
+ Me.EmptySpaceItem1.Location = New System.Drawing.Point(0, 93)
+ Me.EmptySpaceItem1.Name = "EmptySpaceItem1"
+ Me.EmptySpaceItem1.Size = New System.Drawing.Size(248, 321)
+ Me.EmptySpaceItem1.TextSize = New System.Drawing.Size(0, 0)
+ '
'DockPanelMetadata
'
Me.DockPanelMetadata.Controls.Add(Me.DockPanel3_Container)
- Me.DockPanelMetadata.Dock = DevExpress.XtraBars.Docking.DockingStyle.Right
+ Me.DockPanelMetadata.Dock = DevExpress.XtraBars.Docking.DockingStyle.Fill
Me.DockPanelMetadata.ID = New System.Guid("a7688cec-f13e-448b-82cf-a6bb020fb3f7")
resources.ApplyResources(Me.DockPanelMetadata, "DockPanelMetadata")
Me.DockPanelMetadata.Name = "DockPanelMetadata"
@@ -743,7 +866,7 @@ Partial Class frmDocumentResultList
resources.ApplyResources(Me.DockPanelDocViewer, "DockPanelDocViewer")
Me.DockPanelDocViewer.Name = "DockPanelDocViewer"
Me.DockPanelDocViewer.Options.ShowCloseButton = False
- Me.DockPanelDocViewer.OriginalSize = New System.Drawing.Size(324, 200)
+ Me.DockPanelDocViewer.OriginalSize = New System.Drawing.Size(329, 200)
'
'DockPanel1_Container
'
@@ -761,7 +884,7 @@ Partial Class frmDocumentResultList
resources.ApplyResources(Me, "$this")
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.Controls.Add(Me.DockPanelDocViewer)
- Me.Controls.Add(Me.DockPanelMetadata)
+ Me.Controls.Add(Me.panelContainer1)
Me.Controls.Add(Me.DockPanelFileList)
Me.Controls.Add(Me.RibbonStatusBar)
Me.Controls.Add(Me.RibbonControl)
@@ -794,6 +917,19 @@ Partial Class frmDocumentResultList
CType(Me.DockManager1, System.ComponentModel.ISupportInitialize).EndInit()
Me.DockPanelFileList.ResumeLayout(False)
Me.DockPanel2_Container.ResumeLayout(False)
+ Me.panelContainer1.ResumeLayout(False)
+ Me.DockPanelStatus.ResumeLayout(False)
+ Me.ControlContainer1.ResumeLayout(False)
+ CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.LayoutControl1.ResumeLayout(False)
+ CType(Me.txtCheckedOutWho.Properties, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.dateCheckedOutWhen.Properties.CalendarTimeProperties, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.dateCheckedOutWhen.Properties, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.Root, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).EndInit()
Me.DockPanelMetadata.ResumeLayout(False)
Me.DockPanel3_Container.ResumeLayout(False)
Me.DockPanelDocViewer.ResumeLayout(False)
@@ -884,4 +1020,15 @@ Partial Class frmDocumentResultList
Friend WithEvents RibbonPageCategoryAttribute As DevExpress.XtraBars.Ribbon.RibbonPageCategory
Friend WithEvents RibbonPageAttribute As DevExpress.XtraBars.Ribbon.RibbonPage
Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
+ Friend WithEvents DockPanelStatus As DevExpress.XtraBars.Docking.DockPanel
+ Friend WithEvents ControlContainer1 As DevExpress.XtraBars.Docking.ControlContainer
+ Friend WithEvents panelContainer1 As DevExpress.XtraBars.Docking.DockPanel
+ Friend WithEvents LayoutControl1 As DevExpress.XtraLayout.LayoutControl
+ Friend WithEvents txtCheckedOutWho As DevExpress.XtraEditors.TextEdit
+ Friend WithEvents dateCheckedOutWhen As DevExpress.XtraEditors.DateEdit
+ Friend WithEvents Root As DevExpress.XtraLayout.LayoutControlGroup
+ Friend WithEvents LayoutControlGroup1 As DevExpress.XtraLayout.LayoutControlGroup
+ Friend WithEvents LayoutControlItem1 As DevExpress.XtraLayout.LayoutControlItem
+ Friend WithEvents LayoutControlItem2 As DevExpress.XtraLayout.LayoutControlItem
+ Friend WithEvents EmptySpaceItem1 As DevExpress.XtraLayout.EmptySpaceItem
End Class
diff --git a/GUIs.Common/frmDocumentResultList.resx b/GUIs.Common/frmDocumentResultList.resx
index b73617c4..fa4484e5 100644
--- a/GUIs.Common/frmDocumentResultList.resx
+++ b/GUIs.Common/frmDocumentResultList.resx
@@ -391,7 +391,7 @@
Eigenschaften
-
+
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
@@ -496,7 +496,7 @@
0, 0
- 318, 459
+ 323, 459
@@ -518,7 +518,7 @@
3, 26
- 318, 459
+ 323, 459
0
@@ -539,7 +539,7 @@
585, 158
- 324, 489
+ 329, 489
Vorschau
@@ -556,6 +556,136 @@
0
+
+ 162, 45
+
+
+ 82, 20
+
+
+ 4
+
+
+ txtCheckedOutWho
+
+
+ DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+
+ LayoutControl1
+
+
+ 4
+
+
+
+
+
+ 162, 69
+
+
+
+ Combo
+
+
+ Combo
+
+
+ 82, 20
+
+
+ 5
+
+
+ dateCheckedOutWhen
+
+
+ DevExpress.XtraEditors.DateEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+
+ LayoutControl1
+
+
+ 5
+
+
+ Fill
+
+
+ 0, 0
+
+
+ Bearbeitet von
+
+
+ In Bearbeitung genommen
+
+
+ In Bearbeitung
+
+
+ 268, 434
+
+
+ 0
+
+
+ LayoutControl1
+
+
+ LayoutControl1
+
+
+ DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+
+ ControlContainer1
+
+
+ 0
+
+
+ 0, 0
+
+
+ 268, 434
+
+
+ 0
+
+
+ ControlContainer1
+
+
+ DevExpress.XtraBars.Docking.ControlContainer, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+
+ DockPanelStatus
+
+
+ 0
+
+
+ 4, 26
+
+
+ 268, 434
+
+
+ Status
+
+
+ DockPanelStatus
+
+
+ DevExpress.XtraBars.Docking.DockPanel, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+
+ panelContainer1
+
+
+ 0
+
Fill
@@ -563,7 +693,7 @@
0, 0
- 273, 460
+ 268, 434
0
@@ -581,10 +711,10 @@
0
- 4, 26
+ 0, 0
- 273, 460
+ 268, 434
0
@@ -602,10 +732,10 @@
0
- 909, 158
+ 4, 26
- 280, 489
+ 268, 434
Eigenschaften
@@ -617,11 +747,32 @@
DevExpress.XtraBars.Docking.DockPanel, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
- $this
+ panelContainer1
1
+
+ 914, 158
+
+
+ 275, 489
+
+
+ panelContainer1
+
+
+ panelContainer1
+
+
+ DevExpress.XtraBars.Docking.DockPanel, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+
+ $this
+
+
+ 1
+
3, 26
@@ -1149,6 +1300,36 @@
DevExpress.XtraBars.Docking.DockManager, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+ Root
+
+
+ DevExpress.XtraLayout.LayoutControlGroup, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+
+ LayoutControlGroup1
+
+
+ DevExpress.XtraLayout.LayoutControlGroup, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+
+ LayoutControlItem1
+
+
+ DevExpress.XtraLayout.LayoutControlItem, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+
+ LayoutControlItem2
+
+
+ DevExpress.XtraLayout.LayoutControlItem, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+
+ EmptySpaceItem1
+
+
+ DevExpress.XtraLayout.EmptySpaceItem, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
SvgImageCollection1
diff --git a/GUIs.Common/frmDocumentResultList.vb b/GUIs.Common/frmDocumentResultList.vb
index bc5f9cf1..5f4c7e71 100644
--- a/GUIs.Common/frmDocumentResultList.vb
+++ b/GUIs.Common/frmDocumentResultList.vb
@@ -6,7 +6,6 @@ Imports DevExpress.Utils
Imports DevExpress.XtraBars
Imports DevExpress.XtraEditors
Imports DevExpress.XtraGrid
-Imports DevExpress.XtraGrid.Columns
Imports DevExpress.XtraGrid.Views.BandedGrid
Imports DevExpress.XtraGrid.Views.Base
Imports DevExpress.XtraGrid.Views.Grid
@@ -21,6 +20,7 @@ Imports DigitalData.Modules.ZooFlow.Constants
Imports DigitalData.Modules.Base.IDB.FileStore
Imports DigitalData.Controls.MessageBoxEx
Imports DigitalData.GUIs.Common.Base
+Imports DigitalData.GUIs.Common.DocumentResultList
Public Class frmDocumentResultList
Implements IResultForm, IBaseForm
@@ -39,6 +39,7 @@ Public Class frmDocumentResultList
Private Client As Client
Private Documentloader As DocumentResultList.Loader
Private ControlManager As AttributeControls
+ Private CheckoutManager As CheckInOut
Private ReadOnly Config As ConfigManager(Of DocumentResultList.Config)
Private ReadOnly Environment As Environment
@@ -63,6 +64,7 @@ Public Class frmDocumentResultList
Private ReadOnly ColumnFilename As String = "Filename"
Private ReadOnly ColumnDocumentId As String = "DocID"
Private ReadOnly ColumnIcon As String = "ICON"
+ Private ReadOnly ColumnCheckedOut As String = "CHECKED_OUT"
Private Property _ActiveGrid As GridControl = Nothing
Private Property _ActiveGridBand As GridBand = Nothing
@@ -98,15 +100,15 @@ Public Class frmDocumentResultList
Params = pParams
ResultLists = pParams.Results
- Config = New ConfigManager(Of DocumentResultList.Config)(pLogConfig, oConfigPath, oConfigPath)
+ Config = New ConfigManager(Of Config)(pLogConfig, oConfigPath, oConfigPath)
Helpers = New DocumentResultList.Helpers(pLogConfig)
Filesystem = New Modules.Filesystem.File(pLogConfig)
GridBuilder = New GridBuilder(New List(Of GridView) From {GridView1, GridView2, GridView3})
FileEx = New Modules.Windows.File(pLogConfig)
- Watcher = New DocumentResultList.Watcher(pLogConfig)
- LayoutManager = New DocumentResultList.Layout(pLogConfig, Config, New List(Of GridView) From {GridView1, GridView2, GridView3})
+ Watcher = New Watcher(pLogConfig)
+ LayoutManager = New Layout(pLogConfig, Config, New List(Of GridView) From {GridView1, GridView2, GridView3})
- UserLanguage = Utils.NotNull(Me.Environment.User.Language, State.UserState.LANG_EN_US)
+ UserLanguage = Utils.NotNull(Environment.User.Language, State.UserState.LANG_EN_US)
End Sub
Private Function GetOperationMode() As OperationMode
@@ -254,6 +256,15 @@ Public Class frmDocumentResultList
'End If
Await CtrlObjectPropertyDialog.LoadObject(oObjectId)
+
+ Dim oCheckoutState = Await CheckOutManager.GetCheckoutState(oObjectId)
+ If oCheckoutState IsNot Nothing Then
+ txtCheckedOutWho.EditValue = oCheckoutState.CheckedOutWho
+ dateCheckedOutWhen.EditValue = oCheckoutState.CheckedOutWhen
+ Else
+ txtCheckedOutWho.EditValue = Nothing
+ dateCheckedOutWhen.EditValue = Nothing
+ End If
End If
Else
RibbonPageCategoryFile.Visible = False
@@ -381,6 +392,7 @@ Public Class frmDocumentResultList
Client = New Client(LogConfig, oAddress, oPort)
ControlManager = New AttributeControls(LogConfig, Environment, Client)
+ CheckoutManager = New CheckInOut(LogConfig, Client)
If Not Client.Connect() Then
Logger.Warn("Client could not connect to Service at [{0}]", Environment.Service.Address)
@@ -540,7 +552,7 @@ Public Class frmDocumentResultList
Private Sub CreateDocumentGrid(GridView As BandedGridView, Result As DocumentResultList.DocumentResult)
Try
- If IsNothing(GridView.Columns(ColumnIcon)) Then
+ If GridView.Columns.Item(ColumnIcon) Is Nothing Then
Dim oIconColumn = GridView.Columns.AddVisible(ColumnIcon, ColumnIcon)
With oIconColumn
.OptionsColumn.AllowSort = False
@@ -557,7 +569,6 @@ Public Class frmDocumentResultList
oFirstBand.Columns.MoveTo(0, oIconColumn)
End If
-
Dim oColumnsToHide As New List(Of String) From {
ColumnDocumentId,
ColumnFilepath,
@@ -632,40 +643,43 @@ Public Class frmDocumentResultList
- 'Private Sub GridView1_CustomDrawCell(sender As Object, e As RowCellCustomDrawEventArgs) Handles GridView1.CustomDrawCell
- ' If e.RowHandle <> GridControl.NewItemRowHandle AndAlso e.Column.FieldName = COLUMN_ICON Then
- ' Dim oRow As DataRow = TryCast(sender, GridView)?.GetDataRow(e.RowHandle)
- ' Dim oValue = oRow.Item(COLUMN_FILENAME)
+ Private Sub GridView1_CustomDrawCell(sender As Object, e As RowCellCustomDrawEventArgs) Handles GridView1.CustomDrawCell
- ' If oValue.ToString.EndsWith(".pdf") Then
- ' Dim oIcon = My.Resources.pdf
- ' e.Cache.DrawImage(oIcon, e.Bounds.X + 0, e.Bounds.Y + 0, 18, 18)
- ' End If
- ' End If
- ' 'Try
- ' ' If e.RowHandle < 0 Then
- ' ' Exit Sub
- ' ' End If
- ' ' e.DefaultDraw()
+ 'If e.RowHandle <> GridControl.NewItemRowHandle AndAlso e.Column.FieldName = ColumnIcon Then
+ ' Dim oRow As DataRow = TryCast(sender, GridView)?.GetDataRow(e.RowHandle)
+ ' Dim oValue = oRow.Item(COLUMN_FILENAME)
- ' ' Dim oView As GridView = TryCast(sender, GridView)
- ' ' Dim oCellInfo As GridCellInfo = TryCast(e.Cell, GridCellInfo)
- ' ' Dim oRow As DataRow = oView.GetDataRow(e.RowHandle)
- ' ' Dim oValue = oRow.Item(COLUMN_FILENAME)
+ ' If oValue.ToString.EndsWith(".pdf") Then
+ ' Dim oIcon = My.Resources.pdf
+ ' e.Cache.DrawImage(oIcon, e.Bounds.X + 0, e.Bounds.Y + 0, 18, 18)
+ ' End If
+ 'End If
- ' ' If e.Column.FieldName = COLUMN_ICON Then
- ' ' Dim oIcon = Helpers.GetIconByExtension(oValue)
- ' ' Dim offsetX = 0
- ' ' Dim offsetY = 0
+ 'Try
+ ' If e.RowHandle < 0 Then
+ ' Exit Sub
+ ' End If
- ' ' e.Cache.DrawImage(oIcon, e.Bounds.X + offsetX, e.Bounds.Y + offsetY, 18, 18)
- ' ' End If
- ' 'Catch ex As Exception
- ' ' Logger.Error(ex)
- ' 'End Try
- 'End Sub
+ ' e.DefaultDraw()
+
+ ' Dim oView As GridView = TryCast(sender, GridView)
+ ' Dim oCellInfo As GridCellInfo = TryCast(e.Cell, GridCellInfo)
+ ' Dim oRow As DataRow = oView.GetDataRow(e.RowHandle)
+ ' Dim oValue = oRow.Item(COLUMN_FILENAME)
+
+ ' If e.Column.FieldName = COLUMN_ICON Then
+ ' Dim oIcon = Helpers.GetIconByExtension(oValue)
+ ' Dim offsetX = 0
+ ' Dim offsetY = 0
+
+ ' e.Cache.DrawImage(oIcon, e.Bounds.X + offsetX, e.Bounds.Y + offsetY, 18, 18)
+ ' End If
+ 'Catch ex As Exception
+ ' Logger.Error(ex)
+ 'End Try
+ End Sub
Private Sub BarButtonItemExportGrid1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItemExportGrid1.ItemClick
Dim oActiveGrid = GetActiveGridControl()
@@ -856,6 +870,43 @@ Public Class frmDocumentResultList
Process.Start(oInfo)
End Sub
+ Private Async Sub MenuItemCheckOutFile_ItemClick(sender As Object, e As ItemClickEventArgs) Handles MenuItemCheckOutFile.ItemClick
+ Dim oObjectId = _CurrentDocument?.Id
+ Dim oResultComment As String = ShowCheckInOutCommentForm()
+ If IsNothing(oResultComment) Then
+ Exit Sub
+ End If
+
+ Await Client.CheckOutFile(oObjectId, oResultComment)
+
+ End Sub
+
+ Private Sub MenuItemCheckInFile_ItemClick(sender As Object, e As ItemClickEventArgs) Handles MenuItemCheckInFile.ItemClick
+ Dim oObjectId = _CurrentDocument?.Id
+ Client.CheckInFile(oObjectId)
+ End Sub
+
+ Private Function ShowCheckInOutCommentForm()
+ Dim editor As New MemoEdit()
+ Dim args As New XtraInputBoxArgs With {
+ .Caption = "Checkout/in Kommentar",
+ .Prompt = "Kommentar",
+ .DefaultButtonIndex = 0,
+ .Editor = editor,
+ .DefaultResponse = ""
+ }
+ args.ContentPadding = args.ButtonPadding
+
+ AddHandler args.Showing, AddressOf Args_Showing
+
+ Dim result = XtraInputBox.Show(args).ToString()
+ Return result
+ End Function
+
+ Private Sub Args_Showing(ByVal sender As Object, ByVal e As XtraMessageShowingArgs)
+ e.Form.Icon = Me.Icon
+ End Sub
+
#End Region
#Region "Drag to Export"
@@ -974,4 +1025,13 @@ Public Class frmDocumentResultList
Private Sub CtrlObjectPropertyDialog_Leave(sender As Object, e As EventArgs) Handles CtrlObjectPropertyDialog.Leave
RibbonPageCategoryAttribute.Visible = False
End Sub
+
+ Private Sub GridView1_RowStyle(sender As Object, e As RowStyleEventArgs) Handles GridView1.RowStyle
+ Dim oGridView As BandedGridView = sender
+ Dim oRow As DataRowView = oGridView.GetRow(e.RowHandle)
+
+ If oRow IsNot Nothing AndAlso oRow.Row.Item(ColumnCheckedOut) IsNot Nothing AndAlso oRow.Row.Item(ColumnCheckedOut) = True Then
+ e.Appearance.BackColor = Color.LightSalmon
+ End If
+ End Sub
End Class
\ No newline at end of file
diff --git a/GUIs.Test.ZUGFeRDTest/Form1.vb b/GUIs.Test.ZUGFeRDTest/Form1.vb
index 7cfdb15e..91cb7341 100644
--- a/GUIs.Test.ZUGFeRDTest/Form1.vb
+++ b/GUIs.Test.ZUGFeRDTest/Form1.vb
@@ -105,10 +105,13 @@ Public Class Form1
Dim oArgs As New WorkerArgs()
If oResult = DialogResult.OK Then
- Dim oDoc = _zugferd.ValidateZUGFeRDFileWithGDPicture(OpenFileDialog1.FileName)
- Dim oZUGFERD = _zugferd.SerializeZUGFeRDDocument(oDoc)
- Console.WriteLine()
-
+ Try
+ Dim oDoc = _zugferd.ValidateZUGFeRDFileWithGDPicture(OpenFileDialog1.FileName)
+ Dim oZUGFERD = _zugferd.SerializeZUGFeRDDocument(oDoc)
+ Console.WriteLine()
+ Catch ex As Exception
+ MsgBox(ex.Message)
+ End Try
End If
End Sub
diff --git a/Modules.EDMIAPI/Client.vb b/Modules.EDMIAPI/Client.vb
index 4ab2ba5b..811203cb 100644
--- a/Modules.EDMIAPI/Client.vb
+++ b/Modules.EDMIAPI/Client.vb
@@ -236,6 +236,42 @@ Public Class Client
End Try
End Function
+ Public Async Function CheckOutFile(pObjectId As Long, pComment As String, Optional pOptions As Options.CheckOutInOptions = Nothing) As Task(Of Long)
+ Try
+ Dim oCheckOutFile As New Modules.IDB.CheckOutFile(LogConfig, Channel)
+ Return Await oCheckOutFile.RunAsync(pObjectId, pComment, pOptions)
+
+ Catch ex As Exception
+ Logger.Error(ex)
+ Return Nothing
+
+ End Try
+ End Function
+
+ Public Async Function CheckOutFile(pObjectId As Long, Optional pOptions As Options.CheckOutInOptions = Nothing) As Task(Of Long)
+ Try
+ Dim oCheckOutFile As New Modules.IDB.CheckOutFile(LogConfig, Channel)
+ Return Await oCheckOutFile.RunAsync(pObjectId, String.Empty, pOptions)
+
+ Catch ex As Exception
+ Logger.Error(ex)
+ Return Nothing
+
+ End Try
+ End Function
+
+ Public Async Function CheckInFile(pObjectId As Long, Optional pOptions As Options.CheckOutInOptions = Nothing) As Task(Of Long)
+ Try
+ Dim oCheckInFile As New Modules.IDB.CheckInFile(LogConfig, Channel)
+ Return Await oCheckInFile.RunAsync(pObjectId, pOptions)
+
+ Catch ex As Exception
+ Logger.Error(ex)
+ Return Nothing
+
+ End Try
+ End Function
+
Public Async Function Globix_ImportFileAsync(
pFilePath As String,
pProfileId As Integer,
diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.CheckInOutFile.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.CheckInOutFile.xsd
index a5fef09c..5464821b 100644
--- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.CheckInOutFile.xsd
+++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.CheckInOutFile.xsd
@@ -5,7 +5,7 @@
-
+
diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb
index ba0a54dc..ca2bcac0 100644
--- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb
+++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb
@@ -2371,47 +2371,47 @@ Namespace EDMIServiceReference
_
Private ActionField As EDMIServiceReference.CheckInOutFileAction
-
- _
- Private CommentField As Long
-
- _
+
+
+ Private CommentField As String
+
+
Private ObjectIdField As Long
-
- _
+
+
Private UserField As EDMIServiceReference.UserState
-
- _
+
+
Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData
Get
Return Me.extensionDataField
End Get
Set
- Me.extensionDataField = value
+ Me.extensionDataField = Value
End Set
End Property
-
- _
+
+
Public Property Action() As EDMIServiceReference.CheckInOutFileAction
Get
Return Me.ActionField
End Get
Set
- If (Me.ActionField.Equals(value) <> true) Then
- Me.ActionField = value
+ If (Me.ActionField.Equals(Value) <> True) Then
+ Me.ActionField = Value
Me.RaisePropertyChanged("Action")
End If
End Set
End Property
-
- _
- Public Property Comment() As Long
+
+
+ Public Property Comment() As String
Get
Return Me.CommentField
End Get
Set
- If (Me.CommentField.Equals(value) <> true) Then
- Me.CommentField = value
+ If (Object.ReferenceEquals(Me.CommentField, Value) <> True) Then
+ Me.CommentField = Value
Me.RaisePropertyChanged("Comment")
End If
End Set
diff --git a/Modules.EDMIAPI/Modules/IDB/CheckInFile.vb b/Modules.EDMIAPI/Modules/IDB/CheckInFile.vb
index af853037..4fe96ac2 100644
--- a/Modules.EDMIAPI/Modules/IDB/CheckInFile.vb
+++ b/Modules.EDMIAPI/Modules/IDB/CheckInFile.vb
@@ -20,12 +20,12 @@ Namespace Modules.IDB
.Language = pOptions.Language,
.UserName = pOptions.Username
},
- .Action = CheckInOutFileAction.CheckOut,
+ .Action = CheckInOutFileAction.CheckIn,
.ObjectId = pObjectId
})
If oCheckInFileResponse.OK = False Then
- Throw New ApplicationException("Could not Import File Contents!")
+ Throw New ApplicationException(oCheckInFileResponse.ErrorMessage)
End If
Return oCheckInFileResponse.ObjectId
diff --git a/Modules.EDMIAPI/Modules/IDB/CheckOutFile.vb b/Modules.EDMIAPI/Modules/IDB/CheckOutFile.vb
index 8707752d..1980cd73 100644
--- a/Modules.EDMIAPI/Modules/IDB/CheckOutFile.vb
+++ b/Modules.EDMIAPI/Modules/IDB/CheckOutFile.vb
@@ -15,7 +15,7 @@ Namespace Modules.IDB
pOptions = New Options.CheckOutInOptions()
End If
- Dim oCheckOutFileResponse = Await Channel.CheckInOutFileAsync(New CheckInOutFileRequest With {
+ Dim oArgs = New CheckInOutFileRequest With {
.User = New UserState With {
.Language = pOptions.Language,
.UserName = pOptions.Username
@@ -23,10 +23,11 @@ Namespace Modules.IDB
.Action = CheckInOutFileAction.CheckOut,
.Comment = pComment,
.ObjectId = pObjectId
- })
+ }
+ Dim oCheckOutFileResponse = Await Channel.CheckInOutFileAsync(oArgs)
If oCheckOutFileResponse.OK = False Then
- Throw New ApplicationException("Could not Import File Contents!")
+ Throw New ApplicationException(oCheckOutFileResponse.ErrorMessage)
End If
Return oCheckOutFileResponse.ObjectId
diff --git a/Modules.Interfaces/GdPicture.NET.14.Imaging.Rendering.Skia.dll b/Modules.Interfaces/GdPicture.NET.14.Imaging.Rendering.Skia.dll
index a1de3ab7..c469e776 100644
Binary files a/Modules.Interfaces/GdPicture.NET.14.Imaging.Rendering.Skia.dll and b/Modules.Interfaces/GdPicture.NET.14.Imaging.Rendering.Skia.dll differ
diff --git a/Modules.Interfaces/GdPicture.NET.14.filters.dll b/Modules.Interfaces/GdPicture.NET.14.filters.dll
index 8602ea57..62cdd939 100644
Binary files a/Modules.Interfaces/GdPicture.NET.14.filters.dll and b/Modules.Interfaces/GdPicture.NET.14.filters.dll differ
diff --git a/Modules.Interfaces/GdPicture.NET.14.image.gdimgplug.dll b/Modules.Interfaces/GdPicture.NET.14.image.gdimgplug.dll
index 78edb600..b45db24a 100644
Binary files a/Modules.Interfaces/GdPicture.NET.14.image.gdimgplug.dll and b/Modules.Interfaces/GdPicture.NET.14.image.gdimgplug.dll differ
diff --git a/Modules.Interfaces/Interfaces.vbproj b/Modules.Interfaces/Interfaces.vbproj
index 995732ff..999be9ee 100644
--- a/Modules.Interfaces/Interfaces.vbproj
+++ b/Modules.Interfaces/Interfaces.vbproj
@@ -116,6 +116,7 @@
+
@@ -154,15 +155,15 @@
-
+
PreserveNewest
-
-
+
+
PreserveNewest
-
-
+
+
PreserveNewest
-
+
\ No newline at end of file
diff --git a/Modules.Interfaces/ZUGFeRDInterface.vb b/Modules.Interfaces/ZUGFeRDInterface.vb
index d86d104c..1b24c0f2 100644
--- a/Modules.Interfaces/ZUGFeRDInterface.vb
+++ b/Modules.Interfaces/ZUGFeRDInterface.vb
@@ -123,25 +123,26 @@ Public Class ZUGFeRDInterface
Dim oXmlDocument As XPathDocument
If Results Is Nothing Then
- Throw New ZUGFeRDExecption(ErrorType.NoZugferd, "Datei ist keine ZUGFeRD Datei.")
+ Throw New ZUGFeRDExecption(ErrorType.NoZugferd, "Datei ist keine ZUGFeRD Datei, weil die Attachments nicht gelesen werden konnten.")
End If
If Results.Count = 0 Then
- Throw New ZUGFeRDExecption(ErrorType.NoZugferd, "Datei ist keine ZUGFeRD Datei.")
+ Throw New ZUGFeRDExecption(ErrorType.NoZugferd, "Datei ist keine ZUGFeRD Datei, weil sie keine Attachments enthält.")
End If
- Dim oFound As Boolean = False
- Dim oFoundResult As PDFEmbeds.EmbeddedFile = Nothing
+ Dim oValidFilenames As New List(Of String) From {
+ PDFEmbeds.ZUGFERD_XML_FILENAME.ToUpper,
+ PDFEmbeds.FACTUR_X_XML_FILENAME_DE.ToUpper,
+ PDFEmbeds.FACTUR_X_XML_FILENAME_FR.ToUpper
+ }
- For Each oResult In Results
- If oResult.FileName.ToUpper() = PDFEmbeds.ZUGFERD_XML_FILENAME.ToUpper() Then
- oFound = True
- oFoundResult = oResult
- End If
- Next
+ ' Find the first file which filename matches the valid filenames for embedded invoice files
+ Dim oFoundResult As PDFEmbeds.EmbeddedFile = Results.
+ Where(Function(result) oValidFilenames.Contains(result.FileName.ToUpper)).
+ FirstOrDefault()
- If Not oFound Then
- Throw New ZUGFeRDExecption(ErrorType.NoZugferd, "Datei ist keine ZUGFeRD Datei.")
+ If oFoundResult Is Nothing Then
+ Throw New ZUGFeRDExecption(ErrorType.NoZugferd, "Datei ist keine ZUGFeRD Datei, weil die zugferd-invoice.xml nicht gefunden wurde.")
End If
Try
@@ -170,7 +171,8 @@ Public Class ZUGFeRDInterface
Dim oTypes As New List(Of Type) From {
GetType(ZUGFeRD.Version1_0.CrossIndustryDocumentType),
GetType(ZUGFeRD.Version2_0.CrossIndustryInvoiceType),
- GetType(ZUGFeRD.Version2_1_1.CrossIndustryInvoiceType)
+ GetType(ZUGFeRD.Version2_1_1.CrossIndustryInvoiceType),
+ GetType(ZUGFeRD.Version2_2_FacturX.CrossIndustryInvoiceType)
}
For Each oType In oTypes
diff --git a/Modules.Interfaces/ZUGFeRDInterface/PDFEmbeds.vb b/Modules.Interfaces/ZUGFeRDInterface/PDFEmbeds.vb
index 215b7198..b9143772 100644
--- a/Modules.Interfaces/ZUGFeRDInterface/PDFEmbeds.vb
+++ b/Modules.Interfaces/ZUGFeRDInterface/PDFEmbeds.vb
@@ -7,6 +7,8 @@ Public Class PDFEmbeds
Private ReadOnly Logger As Logger
Public Const ZUGFERD_XML_FILENAME = "ZUGFeRD-invoice.xml"
+ Public Const FACTUR_X_XML_FILENAME_FR = "factur-x.xml"
+ Public Const FACTUR_X_XML_FILENAME_DE = "xrechnung.xml"
Public Class EmbeddedFile
Public FileName As String
diff --git a/Modules.Interfaces/ZUGFeRDInterface/Version2.2_FacturX/CrossIndustryInvoiceType.vb b/Modules.Interfaces/ZUGFeRDInterface/Version2.2_FacturX/CrossIndustryInvoiceType.vb
new file mode 100644
index 00000000..61d654b2
--- /dev/null
+++ b/Modules.Interfaces/ZUGFeRDInterface/Version2.2_FacturX/CrossIndustryInvoiceType.vb
@@ -0,0 +1,4427 @@
+'------------------------------------------------------------------------------
+'
+' Dieser Code wurde von einem Tool generiert.
+' Laufzeitversion:4.0.30319.42000
+'
+' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
+' der Code erneut generiert wird.
+'
+'------------------------------------------------------------------------------
+
+Option Strict Off
+Option Explicit On
+
+'
+'This source code was auto-generated by xsd, Version=4.6.1055.0.
+'Source: Factur-X_1.0.06_BASIC_XSD
+
+Namespace ZUGFeRD.Version2_2_FacturX
+ '''
+
+ Partial Public Class CrossIndustryInvoiceType
+
+ Private exchangedDocumentContextField As ExchangedDocumentContextType
+
+ Private exchangedDocumentField As ExchangedDocumentType
+
+ Private supplyChainTradeTransactionField As SupplyChainTradeTransactionType
+
+ '''
+ Public Property ExchangedDocumentContext() As ExchangedDocumentContextType
+ Get
+ Return Me.exchangedDocumentContextField
+ End Get
+ Set
+ Me.exchangedDocumentContextField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property ExchangedDocument() As ExchangedDocumentType
+ Get
+ Return Me.exchangedDocumentField
+ End Get
+ Set
+ Me.exchangedDocumentField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property SupplyChainTradeTransaction() As SupplyChainTradeTransactionType
+ Get
+ Return Me.supplyChainTradeTransactionField
+ End Get
+ Set
+ Me.supplyChainTradeTransactionField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class ExchangedDocumentContextType
+
+ Private businessProcessSpecifiedDocumentContextParameterField As DocumentContextParameterType
+
+ Private guidelineSpecifiedDocumentContextParameterField As DocumentContextParameterType
+
+ '''
+ Public Property BusinessProcessSpecifiedDocumentContextParameter() As DocumentContextParameterType
+ Get
+ Return Me.businessProcessSpecifiedDocumentContextParameterField
+ End Get
+ Set
+ Me.businessProcessSpecifiedDocumentContextParameterField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property GuidelineSpecifiedDocumentContextParameter() As DocumentContextParameterType
+ Get
+ Return Me.guidelineSpecifiedDocumentContextParameterField
+ End Get
+ Set
+ Me.guidelineSpecifiedDocumentContextParameterField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class DocumentContextParameterType
+
+ Private idField As IDType
+
+ '''
+ Public Property ID() As IDType
+ Get
+ Return Me.idField
+ End Get
+ Set
+ Me.idField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class IDType
+
+ Private schemeIDField As String
+
+ Private valueField As String
+
+ '''
+
+ Public Property schemeID() As String
+ Get
+ Return Me.schemeIDField
+ End Get
+ Set
+ Me.schemeIDField = Value
+ End Set
+ End Property
+
+ '''
+
+ Public Property Value() As String
+ Get
+ Return Me.valueField
+ End Get
+ Set
+ Me.valueField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class TradeAccountingAccountType
+
+ Private idField As IDType
+
+ '''
+ Public Property ID() As IDType
+ Get
+ Return Me.idField
+ End Get
+ Set
+ Me.idField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class TradeSettlementHeaderMonetarySummationType
+
+ Private lineTotalAmountField As AmountType
+
+ Private chargeTotalAmountField As AmountType
+
+ Private allowanceTotalAmountField As AmountType
+
+ Private taxBasisTotalAmountField As AmountType
+
+ Private taxTotalAmountField() As AmountType
+
+ Private grandTotalAmountField As AmountType
+
+ Private totalPrepaidAmountField As AmountType
+
+ Private duePayableAmountField As AmountType
+
+ '''
+ Public Property LineTotalAmount() As AmountType
+ Get
+ Return Me.lineTotalAmountField
+ End Get
+ Set
+ Me.lineTotalAmountField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property ChargeTotalAmount() As AmountType
+ Get
+ Return Me.chargeTotalAmountField
+ End Get
+ Set
+ Me.chargeTotalAmountField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property AllowanceTotalAmount() As AmountType
+ Get
+ Return Me.allowanceTotalAmountField
+ End Get
+ Set
+ Me.allowanceTotalAmountField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property TaxBasisTotalAmount() As AmountType
+ Get
+ Return Me.taxBasisTotalAmountField
+ End Get
+ Set
+ Me.taxBasisTotalAmountField = Value
+ End Set
+ End Property
+
+ '''
+
+ Public Property TaxTotalAmount() As AmountType()
+ Get
+ Return Me.taxTotalAmountField
+ End Get
+ Set
+ Me.taxTotalAmountField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property GrandTotalAmount() As AmountType
+ Get
+ Return Me.grandTotalAmountField
+ End Get
+ Set
+ Me.grandTotalAmountField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property TotalPrepaidAmount() As AmountType
+ Get
+ Return Me.totalPrepaidAmountField
+ End Get
+ Set
+ Me.totalPrepaidAmountField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property DuePayableAmount() As AmountType
+ Get
+ Return Me.duePayableAmountField
+ End Get
+ Set
+ Me.duePayableAmountField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class AmountType
+
+ Private currencyIDField As String
+
+ Private valueField As Decimal
+
+ '''
+
+ Public Property currencyID() As String
+ Get
+ Return Me.currencyIDField
+ End Get
+ Set
+ Me.currencyIDField = Value
+ End Set
+ End Property
+
+ '''
+
+ Public Property Value() As Decimal
+ Get
+ Return Me.valueField
+ End Get
+ Set
+ Me.valueField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class TradePaymentTermsType
+
+ Private descriptionField As TextType
+
+ Private dueDateDateTimeField As DateTimeType
+
+ Private directDebitMandateIDField As IDType
+
+ '''
+ Public Property Description() As TextType
+ Get
+ Return Me.descriptionField
+ End Get
+ Set
+ Me.descriptionField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property DueDateDateTime() As DateTimeType
+ Get
+ Return Me.dueDateDateTimeField
+ End Get
+ Set
+ Me.dueDateDateTimeField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property DirectDebitMandateID() As IDType
+ Get
+ Return Me.directDebitMandateIDField
+ End Get
+ Set
+ Me.directDebitMandateIDField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class TextType
+
+ Private valueField As String
+
+ '''
+
+ Public Property Value() As String
+ Get
+ Return Me.valueField
+ End Get
+ Set
+ Me.valueField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class DateTimeType
+
+ Private itemField As DateTimeTypeDateTimeString
+
+ '''
+
+ Public Property Item() As DateTimeTypeDateTimeString
+ Get
+ Return Me.itemField
+ End Get
+ Set
+ Me.itemField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class DateTimeTypeDateTimeString
+
+ Private formatField As String
+
+ Private valueField As String
+
+ '''
+
+ Public Property format() As String
+ Get
+ Return Me.formatField
+ End Get
+ Set
+ Me.formatField = Value
+ End Set
+ End Property
+
+ '''
+
+ Public Property Value() As String
+ Get
+ Return Me.valueField
+ End Get
+ Set
+ Me.valueField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class CreditorFinancialAccountType
+
+ Private iBANIDField As IDType
+
+ Private proprietaryIDField As IDType
+
+ '''
+ Public Property IBANID() As IDType
+ Get
+ Return Me.iBANIDField
+ End Get
+ Set
+ Me.iBANIDField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property ProprietaryID() As IDType
+ Get
+ Return Me.proprietaryIDField
+ End Get
+ Set
+ Me.proprietaryIDField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class DebtorFinancialAccountType
+
+ Private iBANIDField As IDType
+
+ '''
+ Public Property IBANID() As IDType
+ Get
+ Return Me.iBANIDField
+ End Get
+ Set
+ Me.iBANIDField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class PaymentMeansCodeType
+
+ Private valueField As PaymentMeansCodeContentType
+
+ '''
+
+ Public Property Value() As PaymentMeansCodeContentType
+ Get
+ Return Me.valueField
+ End Get
+ Set
+ Me.valueField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Public Enum PaymentMeansCodeContentType
+
+ '''
+
+ Item10
+
+ '''
+
+ Item20
+
+ '''
+
+ Item30
+
+ '''
+
+ Item42
+
+ '''
+
+ Item48
+
+ '''
+
+ Item49
+
+ '''
+
+ Item57
+
+ '''
+
+ Item58
+
+ '''
+
+ Item59
+
+ '''
+
+ Item97
+
+ '''
+ ZZZ
+ End Enum
+
+ '''
+
+ Partial Public Class TradeSettlementPaymentMeansType
+
+ Private typeCodeField As PaymentMeansCodeType
+
+ Private payerPartyDebtorFinancialAccountField As DebtorFinancialAccountType
+
+ Private payeePartyCreditorFinancialAccountField As CreditorFinancialAccountType
+
+ '''
+ Public Property TypeCode() As PaymentMeansCodeType
+ Get
+ Return Me.typeCodeField
+ End Get
+ Set
+ Me.typeCodeField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property PayerPartyDebtorFinancialAccount() As DebtorFinancialAccountType
+ Get
+ Return Me.payerPartyDebtorFinancialAccountField
+ End Get
+ Set
+ Me.payerPartyDebtorFinancialAccountField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property PayeePartyCreditorFinancialAccount() As CreditorFinancialAccountType
+ Get
+ Return Me.payeePartyCreditorFinancialAccountField
+ End Get
+ Set
+ Me.payeePartyCreditorFinancialAccountField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class CurrencyCodeType
+
+ Private valueField As CurrencyCodeContentType
+
+ '''
+
+ Public Property Value() As CurrencyCodeContentType
+ Get
+ Return Me.valueField
+ End Get
+ Set
+ Me.valueField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Public Enum CurrencyCodeContentType
+
+ '''
+ AED
+
+ '''
+ AFN
+
+ '''
+ ALL
+
+ '''
+ AMD
+
+ '''
+ ANG
+
+ '''
+ AOA
+
+ '''
+ ARS
+
+ '''
+ AUD
+
+ '''
+ AWG
+
+ '''
+ AZN
+
+ '''
+ BAM
+
+ '''
+ BBD
+
+ '''
+ BDT
+
+ '''
+ BGN
+
+ '''
+ BHD
+
+ '''
+ BIF
+
+ '''
+ BMD
+
+ '''
+ BND
+
+ '''
+ BOB
+
+ '''
+ BOV
+
+ '''
+ BRL
+
+ '''
+ BSD
+
+ '''
+ BTN
+
+ '''
+ BWP
+
+ '''
+ BYN
+
+ '''
+ BZD
+
+ '''
+ CAD
+
+ '''
+ CDF
+
+ '''
+ CHE
+
+ '''
+ CHF
+
+ '''
+ CHW
+
+ '''
+ CLF
+
+ '''
+ CLP
+
+ '''
+ CNY
+
+ '''
+ COP
+
+ '''
+ COU
+
+ '''
+ CRC
+
+ '''
+ CUC
+
+ '''
+ CUP
+
+ '''
+ CVE
+
+ '''
+ CZK
+
+ '''
+ DJF
+
+ '''
+ DKK
+
+ '''
+ DOP
+
+ '''
+ DZD
+
+ '''
+ EGP
+
+ '''
+ ERN
+
+ '''
+ ETB
+
+ '''
+ EUR
+
+ '''
+ FJD
+
+ '''
+ FKP
+
+ '''
+ GBP
+
+ '''
+ GEL
+
+ '''
+ GHS
+
+ '''
+ GIP
+
+ '''
+ GMD
+
+ '''
+ GNF
+
+ '''
+ GTQ
+
+ '''
+ GYD
+
+ '''
+ HKD
+
+ '''
+ HNL
+
+ '''
+ HRK
+
+ '''
+ HTG
+
+ '''
+ HUF
+
+ '''
+ IDR
+
+ '''
+ ILS
+
+ '''
+ INR
+
+ '''
+ IQD
+
+ '''
+ IRR
+
+ '''
+ ISK
+
+ '''
+ JMD
+
+ '''
+ JOD
+
+ '''
+ JPY
+
+ '''
+ KES
+
+ '''
+ KGS
+
+ '''
+ KHR
+
+ '''
+ KMF
+
+ '''
+ KPW
+
+ '''
+ KRW
+
+ '''
+ KWD
+
+ '''
+ KYD
+
+ '''
+ KZT
+
+ '''
+ LAK
+
+ '''
+ LBP
+
+ '''
+ LKR
+
+ '''
+ LRD
+
+ '''
+ LSL
+
+ '''
+ LYD
+
+ '''
+ MAD
+
+ '''
+ MDL
+
+ '''
+ MGA
+
+ '''
+ MKD
+
+ '''
+ MMK
+
+ '''
+ MNT
+
+ '''
+ MOP
+
+ '''
+ MRU
+
+ '''
+ MUR
+
+ '''
+ MVR
+
+ '''
+ MWK
+
+ '''
+ MXN
+
+ '''
+ MXV
+
+ '''
+ MYR
+
+ '''
+ MZN
+
+ '''
+ NAD
+
+ '''
+ NGN
+
+ '''
+ NIO
+
+ '''
+ NOK
+
+ '''
+ NPR
+
+ '''
+ NZD
+
+ '''
+ OMR
+
+ '''
+ PAB
+
+ '''
+ PEN
+
+ '''
+ PGK
+
+ '''
+ PHP
+
+ '''
+ PKR
+
+ '''
+ PLN
+
+ '''
+ PYG
+
+ '''
+ QAR
+
+ '''
+ RON
+
+ '''
+ RSD
+
+ '''
+ RUB
+
+ '''
+ RWF
+
+ '''
+ SAR
+
+ '''
+ SBD
+
+ '''
+ SCR
+
+ '''
+ SDG
+
+ '''
+ SEK
+
+ '''
+ SGD
+
+ '''
+ SHP
+
+ '''
+ SLL
+
+ '''
+ SOS
+
+ '''
+ SRD
+
+ '''
+ SSP
+
+ '''
+ STN
+
+ '''
+ SVC
+
+ '''
+ SYP
+
+ '''
+ SZL
+
+ '''
+ THB
+
+ '''
+ TJS
+
+ '''
+ TMT
+
+ '''
+ TND
+
+ '''
+ TOP
+
+ '''
+ [TRY]
+
+ '''
+ TTD
+
+ '''
+ TWD
+
+ '''
+ TZS
+
+ '''
+ UAH
+
+ '''
+ UGX
+
+ '''
+ USD
+
+ '''
+ USN
+
+ '''
+ UYI
+
+ '''
+ UYU
+
+ '''
+ UYW
+
+ '''
+ UZS
+
+ '''
+ VES
+
+ '''
+ VND
+
+ '''
+ VUV
+
+ '''
+ WST
+
+ '''
+ XAF
+
+ '''
+ XAG
+
+ '''
+ XAU
+
+ '''
+ XBA
+
+ '''
+ XBB
+
+ '''
+ XBC
+
+ '''
+ XBD
+
+ '''
+ XCD
+
+ '''
+ XDR
+
+ '''
+ XOF
+
+ '''
+ XPD
+
+ '''
+ XPF
+
+ '''
+ XPT
+
+ '''
+ XSU
+
+ '''
+ XTS
+
+ '''
+ XUA
+
+ '''
+ XXX
+
+ '''
+ YER
+
+ '''
+ ZAR
+
+ '''
+ ZMW
+
+ '''
+ ZWL
+ End Enum
+
+ '''
+
+ Partial Public Class HeaderTradeSettlementType
+
+ Private creditorReferenceIDField As IDType
+
+ Private paymentReferenceField As TextType
+
+ Private taxCurrencyCodeField As CurrencyCodeType
+
+ Private invoiceCurrencyCodeField As CurrencyCodeType
+
+ Private payeeTradePartyField As TradePartyType
+
+ Private specifiedTradeSettlementPaymentMeansField As TradeSettlementPaymentMeansType
+
+ Private applicableTradeTaxField() As TradeTaxType
+
+ Private billingSpecifiedPeriodField As SpecifiedPeriodType
+
+ Private specifiedTradeAllowanceChargeField() As TradeAllowanceChargeType
+
+ Private specifiedTradePaymentTermsField As TradePaymentTermsType
+
+ Private specifiedTradeSettlementHeaderMonetarySummationField As TradeSettlementHeaderMonetarySummationType
+
+ Private invoiceReferencedDocumentField As ReferencedDocumentType
+
+ Private receivableSpecifiedTradeAccountingAccountField As TradeAccountingAccountType
+
+ '''
+ Public Property CreditorReferenceID() As IDType
+ Get
+ Return Me.creditorReferenceIDField
+ End Get
+ Set
+ Me.creditorReferenceIDField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property PaymentReference() As TextType
+ Get
+ Return Me.paymentReferenceField
+ End Get
+ Set
+ Me.paymentReferenceField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property TaxCurrencyCode() As CurrencyCodeType
+ Get
+ Return Me.taxCurrencyCodeField
+ End Get
+ Set
+ Me.taxCurrencyCodeField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property InvoiceCurrencyCode() As CurrencyCodeType
+ Get
+ Return Me.invoiceCurrencyCodeField
+ End Get
+ Set
+ Me.invoiceCurrencyCodeField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property PayeeTradeParty() As TradePartyType
+ Get
+ Return Me.payeeTradePartyField
+ End Get
+ Set
+ Me.payeeTradePartyField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property SpecifiedTradeSettlementPaymentMeans() As TradeSettlementPaymentMeansType
+ Get
+ Return Me.specifiedTradeSettlementPaymentMeansField
+ End Get
+ Set
+ Me.specifiedTradeSettlementPaymentMeansField = Value
+ End Set
+ End Property
+
+ '''
+
+ Public Property ApplicableTradeTax() As TradeTaxType()
+ Get
+ Return Me.applicableTradeTaxField
+ End Get
+ Set
+ Me.applicableTradeTaxField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property BillingSpecifiedPeriod() As SpecifiedPeriodType
+ Get
+ Return Me.billingSpecifiedPeriodField
+ End Get
+ Set
+ Me.billingSpecifiedPeriodField = Value
+ End Set
+ End Property
+
+ '''
+
+ Public Property SpecifiedTradeAllowanceCharge() As TradeAllowanceChargeType()
+ Get
+ Return Me.specifiedTradeAllowanceChargeField
+ End Get
+ Set
+ Me.specifiedTradeAllowanceChargeField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property SpecifiedTradePaymentTerms() As TradePaymentTermsType
+ Get
+ Return Me.specifiedTradePaymentTermsField
+ End Get
+ Set
+ Me.specifiedTradePaymentTermsField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property SpecifiedTradeSettlementHeaderMonetarySummation() As TradeSettlementHeaderMonetarySummationType
+ Get
+ Return Me.specifiedTradeSettlementHeaderMonetarySummationField
+ End Get
+ Set
+ Me.specifiedTradeSettlementHeaderMonetarySummationField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property InvoiceReferencedDocument() As ReferencedDocumentType
+ Get
+ Return Me.invoiceReferencedDocumentField
+ End Get
+ Set
+ Me.invoiceReferencedDocumentField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property ReceivableSpecifiedTradeAccountingAccount() As TradeAccountingAccountType
+ Get
+ Return Me.receivableSpecifiedTradeAccountingAccountField
+ End Get
+ Set
+ Me.receivableSpecifiedTradeAccountingAccountField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class TradePartyType
+
+ Private idField() As IDType
+
+ Private globalIDField() As IDType
+
+ Private nameField As TextType
+
+ Private specifiedLegalOrganizationField As LegalOrganizationType
+
+ Private postalTradeAddressField As TradeAddressType
+
+ Private uRIUniversalCommunicationField As UniversalCommunicationType
+
+ Private specifiedTaxRegistrationField() As TaxRegistrationType
+
+ '''
+
+ Public Property ID() As IDType()
+ Get
+ Return Me.idField
+ End Get
+ Set
+ Me.idField = Value
+ End Set
+ End Property
+
+ '''
+
+ Public Property GlobalID() As IDType()
+ Get
+ Return Me.globalIDField
+ End Get
+ Set
+ Me.globalIDField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property Name() As TextType
+ Get
+ Return Me.nameField
+ End Get
+ Set
+ Me.nameField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property SpecifiedLegalOrganization() As LegalOrganizationType
+ Get
+ Return Me.specifiedLegalOrganizationField
+ End Get
+ Set
+ Me.specifiedLegalOrganizationField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property PostalTradeAddress() As TradeAddressType
+ Get
+ Return Me.postalTradeAddressField
+ End Get
+ Set
+ Me.postalTradeAddressField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property URIUniversalCommunication() As UniversalCommunicationType
+ Get
+ Return Me.uRIUniversalCommunicationField
+ End Get
+ Set
+ Me.uRIUniversalCommunicationField = Value
+ End Set
+ End Property
+
+ '''
+
+ Public Property SpecifiedTaxRegistration() As TaxRegistrationType()
+ Get
+ Return Me.specifiedTaxRegistrationField
+ End Get
+ Set
+ Me.specifiedTaxRegistrationField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class LegalOrganizationType
+
+ Private idField As IDType
+
+ Private tradingBusinessNameField As TextType
+
+ '''
+ Public Property ID() As IDType
+ Get
+ Return Me.idField
+ End Get
+ Set
+ Me.idField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property TradingBusinessName() As TextType
+ Get
+ Return Me.tradingBusinessNameField
+ End Get
+ Set
+ Me.tradingBusinessNameField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class TradeAddressType
+
+ Private postcodeCodeField As CodeType
+
+ Private lineOneField As TextType
+
+ Private lineTwoField As TextType
+
+ Private lineThreeField As TextType
+
+ Private cityNameField As TextType
+
+ Private countryIDField As CountryIDType
+
+ Private countrySubDivisionNameField As TextType
+
+ '''
+ Public Property PostcodeCode() As CodeType
+ Get
+ Return Me.postcodeCodeField
+ End Get
+ Set
+ Me.postcodeCodeField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property LineOne() As TextType
+ Get
+ Return Me.lineOneField
+ End Get
+ Set
+ Me.lineOneField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property LineTwo() As TextType
+ Get
+ Return Me.lineTwoField
+ End Get
+ Set
+ Me.lineTwoField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property LineThree() As TextType
+ Get
+ Return Me.lineThreeField
+ End Get
+ Set
+ Me.lineThreeField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property CityName() As TextType
+ Get
+ Return Me.cityNameField
+ End Get
+ Set
+ Me.cityNameField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property CountryID() As CountryIDType
+ Get
+ Return Me.countryIDField
+ End Get
+ Set
+ Me.countryIDField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property CountrySubDivisionName() As TextType
+ Get
+ Return Me.countrySubDivisionNameField
+ End Get
+ Set
+ Me.countrySubDivisionNameField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class CodeType
+
+ Private valueField As String
+
+ '''
+
+ Public Property Value() As String
+ Get
+ Return Me.valueField
+ End Get
+ Set
+ Me.valueField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class CountryIDType
+
+ Private valueField As CountryIDContentType
+
+ '''
+
+ Public Property Value() As CountryIDContentType
+ Get
+ Return Me.valueField
+ End Get
+ Set
+ Me.valueField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Public Enum CountryIDContentType
+
+ '''
+
+ Item1A
+
+ '''
+ AD
+
+ '''
+ AE
+
+ '''
+ AF
+
+ '''
+ AG
+
+ '''
+ AI
+
+ '''
+ AL
+
+ '''
+ AM
+
+ '''
+ AO
+
+ '''
+ AQ
+
+ '''
+ AR
+
+ '''
+ [AS]
+
+ '''
+ AT
+
+ '''
+ AU
+
+ '''
+ AW
+
+ '''
+ AX
+
+ '''
+ AZ
+
+ '''
+ BA
+
+ '''
+ BB
+
+ '''
+ BD
+
+ '''
+ BE
+
+ '''
+ BF
+
+ '''
+ BG
+
+ '''
+ BH
+
+ '''
+ BI
+
+ '''
+ BJ
+
+ '''
+ BL
+
+ '''
+ BM
+
+ '''
+ BN
+
+ '''
+ BO
+
+ '''
+ BQ
+
+ '''
+ BR
+
+ '''
+ BS
+
+ '''
+ BT
+
+ '''
+ BV
+
+ '''
+ BW
+
+ '''
+ BY
+
+ '''
+ BZ
+
+ '''
+ CA
+
+ '''
+ CC
+
+ '''
+ CD
+
+ '''
+ CF
+
+ '''
+ CG
+
+ '''
+ CH
+
+ '''
+ CI
+
+ '''
+ CK
+
+ '''
+ CL
+
+ '''
+ CM
+
+ '''
+ CN
+
+ '''
+ CO
+
+ '''
+ CR
+
+ '''
+ CU
+
+ '''
+ CV
+
+ '''
+ CW
+
+ '''
+ CX
+
+ '''
+ CY
+
+ '''
+ CZ
+
+ '''
+ DE
+
+ '''
+ DJ
+
+ '''
+ DK
+
+ '''
+ DM
+
+ '''
+ [DO]
+
+ '''
+ DZ
+
+ '''
+ EC
+
+ '''
+ EE
+
+ '''
+ EG
+
+ '''
+ EH
+
+ '''
+ ER
+
+ '''
+ ES
+
+ '''
+ ET
+
+ '''
+ FI
+
+ '''
+ FJ
+
+ '''
+ FK
+
+ '''
+ FM
+
+ '''
+ FO
+
+ '''
+ FR
+
+ '''
+ GA
+
+ '''
+ GB
+
+ '''
+ GD
+
+ '''
+ GE
+
+ '''
+ GF
+
+ '''
+ GG
+
+ '''
+ GH
+
+ '''
+ GI
+
+ '''
+ GL
+
+ '''
+ GM
+
+ '''
+ GN
+
+ '''
+ GP
+
+ '''
+ GQ
+
+ '''
+ GR
+
+ '''
+ GS
+
+ '''
+ GT
+
+ '''
+ GU
+
+ '''
+ GW
+
+ '''
+ GY
+
+ '''
+ HK
+
+ '''
+ HM
+
+ '''
+ HN
+
+ '''
+ HR
+
+ '''
+ HT
+
+ '''
+ HU
+
+ '''
+ ID
+
+ '''
+ IE
+
+ '''
+ IL
+
+ '''
+ IM
+
+ '''
+ [IN]
+
+ '''
+ IO
+
+ '''
+ IQ
+
+ '''
+ IR
+
+ '''
+ [IS]
+
+ '''
+ IT
+
+ '''
+ JE
+
+ '''
+ JM
+
+ '''
+ JO
+
+ '''
+ JP
+
+ '''
+ KE
+
+ '''
+ KG
+
+ '''
+ KH
+
+ '''
+ KI
+
+ '''
+ KM
+
+ '''
+ KN
+
+ '''
+ KP
+
+ '''
+ KR
+
+ '''
+ KW
+
+ '''
+ KY
+
+ '''
+ KZ
+
+ '''
+ LA
+
+ '''
+ LB
+
+ '''
+ LC
+
+ '''
+ LI
+
+ '''
+ LK
+
+ '''
+ LR
+
+ '''
+ LS
+
+ '''
+ LT
+
+ '''
+ LU
+
+ '''
+ LV
+
+ '''
+ LY
+
+ '''
+ MA
+
+ '''
+ MC
+
+ '''
+ MD
+
+ '''
+ [ME]
+
+ '''
+ MF
+
+ '''
+ MG
+
+ '''
+ MH
+
+ '''
+ MK
+
+ '''
+ ML
+
+ '''
+ MM
+
+ '''
+ MN
+
+ '''
+ MO
+
+ '''
+ MP
+
+ '''
+ MQ
+
+ '''
+ MR
+
+ '''
+ MS
+
+ '''
+ MT
+
+ '''
+ MU
+
+ '''
+ MV
+
+ '''
+ MW
+
+ '''
+ MX
+
+ '''
+ MY
+
+ '''
+ MZ
+
+ '''
+ NA
+
+ '''
+ NC
+
+ '''
+ NE
+
+ '''
+ NF
+
+ '''
+ NG
+
+ '''
+ NI
+
+ '''
+ NL
+
+ '''
+ NO
+
+ '''
+ NP
+
+ '''
+ NR
+
+ '''
+ NU
+
+ '''
+ NZ
+
+ '''
+ OM
+
+ '''
+ PA
+
+ '''
+ PE
+
+ '''
+ PF
+
+ '''
+ PG
+
+ '''
+ PH
+
+ '''
+ PK
+
+ '''
+ PL
+
+ '''
+ PM
+
+ '''
+ PN
+
+ '''
+ PR
+
+ '''
+ PS
+
+ '''
+ PT
+
+ '''
+ PW
+
+ '''
+ PY
+
+ '''
+ QA
+
+ '''
+ RE
+
+ '''
+ RO
+
+ '''
+ RS
+
+ '''
+ RU
+
+ '''
+ RW
+
+ '''
+ SA
+
+ '''
+ SB
+
+ '''
+ SC
+
+ '''
+ SD
+
+ '''
+ SE
+
+ '''
+ SG
+
+ '''
+ SH
+
+ '''
+ SI
+
+ '''
+ SJ
+
+ '''
+ SK
+
+ '''
+ SL
+
+ '''
+ SM
+
+ '''
+ SN
+
+ '''
+ SO
+
+ '''
+ SR
+
+ '''
+ SS
+
+ '''
+ ST
+
+ '''
+ SV
+
+ '''
+ SX
+
+ '''
+ SY
+
+ '''
+ SZ
+
+ '''
+ TC
+
+ '''
+ TD
+
+ '''
+ TF
+
+ '''
+ TG
+
+ '''
+ TH
+
+ '''
+ TJ
+
+ '''
+ TK
+
+ '''
+ TL
+
+ '''
+ TM
+
+ '''
+ TN
+
+ '''
+ [TO]
+
+ '''
+ TR
+
+ '''
+ TT
+
+ '''
+ TV
+
+ '''
+ TW
+
+ '''
+ TZ
+
+ '''
+ UA
+
+ '''
+ UG
+
+ '''
+ UM
+
+ '''
+ US
+
+ '''
+ UY
+
+ '''
+ UZ
+
+ '''
+ VA
+
+ '''
+ VC
+
+ '''
+ VE
+
+ '''
+ VG
+
+ '''
+ VI
+
+ '''
+ VN
+
+ '''
+ VU
+
+ '''
+ WF
+
+ '''
+ WS
+
+ '''
+ XI
+
+ '''
+ YE
+
+ '''
+ YT
+
+ '''
+ ZA
+
+ '''
+ ZM
+
+ '''
+ ZW
+ End Enum
+
+ '''
+
+ Partial Public Class UniversalCommunicationType
+
+ Private uRIIDField As IDType
+
+ '''
+ Public Property URIID() As IDType
+ Get
+ Return Me.uRIIDField
+ End Get
+ Set
+ Me.uRIIDField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class TaxRegistrationType
+
+ Private idField As IDType
+
+ '''
+ Public Property ID() As IDType
+ Get
+ Return Me.idField
+ End Get
+ Set
+ Me.idField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class TradeTaxType
+
+ Private calculatedAmountField As AmountType
+
+ Private typeCodeField As TaxTypeCodeType
+
+ Private exemptionReasonField As TextType
+
+ Private basisAmountField As AmountType
+
+ Private categoryCodeField As TaxCategoryCodeType
+
+ Private exemptionReasonCodeField As CodeType
+
+ Private dueDateTypeCodeField As TimeReferenceCodeType
+
+ Private rateApplicablePercentField As PercentType
+
+ '''
+ Public Property CalculatedAmount() As AmountType
+ Get
+ Return Me.calculatedAmountField
+ End Get
+ Set
+ Me.calculatedAmountField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property TypeCode() As TaxTypeCodeType
+ Get
+ Return Me.typeCodeField
+ End Get
+ Set
+ Me.typeCodeField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property ExemptionReason() As TextType
+ Get
+ Return Me.exemptionReasonField
+ End Get
+ Set
+ Me.exemptionReasonField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property BasisAmount() As AmountType
+ Get
+ Return Me.basisAmountField
+ End Get
+ Set
+ Me.basisAmountField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property CategoryCode() As TaxCategoryCodeType
+ Get
+ Return Me.categoryCodeField
+ End Get
+ Set
+ Me.categoryCodeField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property ExemptionReasonCode() As CodeType
+ Get
+ Return Me.exemptionReasonCodeField
+ End Get
+ Set
+ Me.exemptionReasonCodeField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property DueDateTypeCode() As TimeReferenceCodeType
+ Get
+ Return Me.dueDateTypeCodeField
+ End Get
+ Set
+ Me.dueDateTypeCodeField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property RateApplicablePercent() As PercentType
+ Get
+ Return Me.rateApplicablePercentField
+ End Get
+ Set
+ Me.rateApplicablePercentField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class TaxTypeCodeType
+
+ Private valueField As TaxTypeCodeContentType
+
+ '''
+
+ Public Property Value() As TaxTypeCodeContentType
+ Get
+ Return Me.valueField
+ End Get
+ Set
+ Me.valueField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Public Enum TaxTypeCodeContentType
+
+ '''
+ VAT
+ End Enum
+
+ '''
+
+ Partial Public Class TaxCategoryCodeType
+
+ Private valueField As TaxCategoryCodeContentType
+
+ '''
+
+ Public Property Value() As TaxCategoryCodeContentType
+ Get
+ Return Me.valueField
+ End Get
+ Set
+ Me.valueField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Public Enum TaxCategoryCodeContentType
+
+ '''
+ AE
+
+ '''
+ E
+
+ '''
+ G
+
+ '''
+ K
+
+ '''
+ L
+
+ '''
+ M
+
+ '''
+ O
+
+ '''
+ S
+
+ '''
+ Z
+ End Enum
+
+ '''
+
+ Partial Public Class TimeReferenceCodeType
+
+ Private valueField As TimeReferenceCodeContentType
+
+ '''
+
+ Public Property Value() As TimeReferenceCodeContentType
+ Get
+ Return Me.valueField
+ End Get
+ Set
+ Me.valueField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Public Enum TimeReferenceCodeContentType
+
+ '''
+
+ Item5
+
+ '''
+
+ Item29
+
+ '''
+
+ Item72
+ End Enum
+
+ '''
+
+ Partial Public Class PercentType
+
+ Private valueField As Decimal
+
+ '''
+
+ Public Property Value() As Decimal
+ Get
+ Return Me.valueField
+ End Get
+ Set
+ Me.valueField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class SpecifiedPeriodType
+
+ Private startDateTimeField As DateTimeType
+
+ Private endDateTimeField As DateTimeType
+
+ '''
+ Public Property StartDateTime() As DateTimeType
+ Get
+ Return Me.startDateTimeField
+ End Get
+ Set
+ Me.startDateTimeField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property EndDateTime() As DateTimeType
+ Get
+ Return Me.endDateTimeField
+ End Get
+ Set
+ Me.endDateTimeField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class TradeAllowanceChargeType
+
+ Private chargeIndicatorField As IndicatorType
+
+ Private calculationPercentField As PercentType
+
+ Private basisAmountField As AmountType
+
+ Private actualAmountField As AmountType
+
+ Private reasonCodeField As AllowanceChargeReasonCodeType
+
+ Private reasonField As TextType
+
+ Private categoryTradeTaxField As TradeTaxType
+
+ '''
+ Public Property ChargeIndicator() As IndicatorType
+ Get
+ Return Me.chargeIndicatorField
+ End Get
+ Set
+ Me.chargeIndicatorField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property CalculationPercent() As PercentType
+ Get
+ Return Me.calculationPercentField
+ End Get
+ Set
+ Me.calculationPercentField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property BasisAmount() As AmountType
+ Get
+ Return Me.basisAmountField
+ End Get
+ Set
+ Me.basisAmountField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property ActualAmount() As AmountType
+ Get
+ Return Me.actualAmountField
+ End Get
+ Set
+ Me.actualAmountField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property ReasonCode() As AllowanceChargeReasonCodeType
+ Get
+ Return Me.reasonCodeField
+ End Get
+ Set
+ Me.reasonCodeField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property Reason() As TextType
+ Get
+ Return Me.reasonField
+ End Get
+ Set
+ Me.reasonField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property CategoryTradeTax() As TradeTaxType
+ Get
+ Return Me.categoryTradeTaxField
+ End Get
+ Set
+ Me.categoryTradeTaxField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class IndicatorType
+
+ Private itemField As Boolean
+
+ '''
+
+ Public Property Item() As Boolean
+ Get
+ Return Me.itemField
+ End Get
+ Set
+ Me.itemField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class AllowanceChargeReasonCodeType
+
+ Private valueField As AllowanceChargeReasonCodeContentType
+
+ '''
+
+ Public Property Value() As AllowanceChargeReasonCodeContentType
+ Get
+ Return Me.valueField
+ End Get
+ Set
+ Me.valueField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Public Enum AllowanceChargeReasonCodeContentType
+
+ '''
+ AA
+
+ '''
+ AAA
+
+ '''
+ AAC
+
+ '''
+ AAD
+
+ '''
+ AAE
+
+ '''
+ AAF
+
+ '''
+ AAH
+
+ '''
+ AAI
+
+ '''
+ AAS
+
+ '''
+ AAT
+
+ '''
+ AAV
+
+ '''
+ AAY
+
+ '''
+ AAZ
+
+ '''
+ ABA
+
+ '''
+ ABB
+
+ '''
+ ABC
+
+ '''
+ ABD
+
+ '''
+ ABF
+
+ '''
+ ABK
+
+ '''
+ ABL
+
+ '''
+ ABN
+
+ '''
+ ABR
+
+ '''
+ ABS
+
+ '''
+ ABT
+
+ '''
+ ABU
+
+ '''
+ ACF
+
+ '''
+ ACG
+
+ '''
+ ACH
+
+ '''
+ ACI
+
+ '''
+ ACJ
+
+ '''
+ ACK
+
+ '''
+ ACL
+
+ '''
+ ACM
+
+ '''
+ ACS
+
+ '''
+ ADC
+
+ '''
+ ADE
+
+ '''
+ ADJ
+
+ '''
+ ADK
+
+ '''
+ ADL
+
+ '''
+ ADM
+
+ '''
+ ADN
+
+ '''
+ ADO
+
+ '''
+ ADP
+
+ '''
+ ADQ
+
+ '''
+ ADR
+
+ '''
+ ADT
+
+ '''
+ ADW
+
+ '''
+ ADY
+
+ '''
+ ADZ
+
+ '''
+ AEA
+
+ '''
+ AEB
+
+ '''
+ AEC
+
+ '''
+ AED
+
+ '''
+ AEF
+
+ '''
+ AEH
+
+ '''
+ AEI
+
+ '''
+ AEJ
+
+ '''
+ AEK
+
+ '''
+ AEL
+
+ '''
+ AEM
+
+ '''
+ AEN
+
+ '''
+ AEO
+
+ '''
+ AEP
+
+ '''
+ AES
+
+ '''
+ AET
+
+ '''
+ AEU
+
+ '''
+ AEV
+
+ '''
+ AEW
+
+ '''
+ AEX
+
+ '''
+ AEY
+
+ '''
+ AEZ
+
+ '''
+ AJ
+
+ '''
+ AU
+
+ '''
+ CA
+
+ '''
+ CAB
+
+ '''
+ CAD
+
+ '''
+ CAE
+
+ '''
+ CAF
+
+ '''
+ CAI
+
+ '''
+ CAJ
+
+ '''
+ CAK
+
+ '''
+ CAL
+
+ '''
+ CAM
+
+ '''
+ CAN
+
+ '''
+ CAO
+
+ '''
+ CAP
+
+ '''
+ CAQ
+
+ '''
+ CAR
+
+ '''
+ CAS
+
+ '''
+ CAT
+
+ '''
+ CAU
+
+ '''
+ CAV
+
+ '''
+ CAW
+
+ '''
+ CAX
+
+ '''
+ CAY
+
+ '''
+ CAZ
+
+ '''
+ CD
+
+ '''
+ CG
+
+ '''
+ CS
+
+ '''
+ CT
+
+ '''
+ DAB
+
+ '''
+ DAC
+
+ '''
+ DAD
+
+ '''
+ DAF
+
+ '''
+ DAG
+
+ '''
+ DAH
+
+ '''
+ DAI
+
+ '''
+ DAJ
+
+ '''
+ DAK
+
+ '''
+ DAL
+
+ '''
+ DAM
+
+ '''
+ DAN
+
+ '''
+ DAO
+
+ '''
+ DAP
+
+ '''
+ DAQ
+
+ '''
+ DL
+
+ '''
+ EG
+
+ '''
+ EP
+
+ '''
+ ER
+
+ '''
+ FAA
+
+ '''
+ FAB
+
+ '''
+ FAC
+
+ '''
+ FC
+
+ '''
+ FH
+
+ '''
+ FI
+
+ '''
+ GAA
+
+ '''
+ HAA
+
+ '''
+ HD
+
+ '''
+ HH
+
+ '''
+ IAA
+
+ '''
+ IAB
+
+ '''
+ ID
+
+ '''
+ [IF]
+
+ '''
+ IR
+
+ '''
+ [IS]
+
+ '''
+ KO
+
+ '''
+ L1
+
+ '''
+ LA
+
+ '''
+ LAA
+
+ '''
+ LAB
+
+ '''
+ LF
+
+ '''
+ MAE
+
+ '''
+ MI
+
+ '''
+ ML
+
+ '''
+ NAA
+
+ '''
+ OA
+
+ '''
+ PA
+
+ '''
+ PAA
+
+ '''
+ PC
+
+ '''
+ PL
+
+ '''
+ RAB
+
+ '''
+ RAC
+
+ '''
+ RAD
+
+ '''
+ RAF
+
+ '''
+ RE
+
+ '''
+ RF
+
+ '''
+ RH
+
+ '''
+ RV
+
+ '''
+ SA
+
+ '''
+ SAA
+
+ '''
+ SAD
+
+ '''
+ SAE
+
+ '''
+ SAI
+
+ '''
+ SG
+
+ '''
+ SH
+
+ '''
+ SM
+
+ '''
+ SU
+
+ '''
+ TAB
+
+ '''
+ TAC
+
+ '''
+ TT
+
+ '''
+ TV
+
+ '''
+ V1
+
+ '''
+ V2
+
+ '''
+ WH
+
+ '''
+ XAA
+
+ '''
+ YY
+
+ '''
+ ZZZ
+
+ '''
+
+ Item41
+
+ '''
+
+ Item42
+
+ '''
+
+ Item60
+
+ '''
+
+ Item62
+
+ '''
+
+ Item63
+
+ '''
+
+ Item64
+
+ '''
+
+ Item65
+
+ '''
+
+ Item66
+
+ '''
+
+ Item67
+
+ '''
+
+ Item68
+
+ '''
+
+ Item70
+
+ '''
+
+ Item71
+
+ '''
+
+ Item88
+
+ '''
+
+ Item95
+
+ '''
+
+ Item100
+
+ '''
+
+ Item102
+
+ '''
+
+ Item103
+
+ '''
+
+ Item104
+
+ '''
+
+ Item105
+ End Enum
+
+ '''
+
+ Partial Public Class ReferencedDocumentType
+
+ Private issuerAssignedIDField As IDType
+
+ Private formattedIssueDateTimeField As FormattedDateTimeType
+
+ '''
+ Public Property IssuerAssignedID() As IDType
+ Get
+ Return Me.issuerAssignedIDField
+ End Get
+ Set
+ Me.issuerAssignedIDField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property FormattedIssueDateTime() As FormattedDateTimeType
+ Get
+ Return Me.formattedIssueDateTimeField
+ End Get
+ Set
+ Me.formattedIssueDateTimeField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class FormattedDateTimeType
+
+ Private dateTimeStringField As FormattedDateTimeTypeDateTimeString
+
+ '''
+ Public Property DateTimeString() As FormattedDateTimeTypeDateTimeString
+ Get
+ Return Me.dateTimeStringField
+ End Get
+ Set
+ Me.dateTimeStringField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class FormattedDateTimeTypeDateTimeString
+
+ Private formatField As String
+
+ Private valueField As String
+
+ '''
+
+ Public Property format() As String
+ Get
+ Return Me.formatField
+ End Get
+ Set
+ Me.formatField = Value
+ End Set
+ End Property
+
+ '''
+
+ Public Property Value() As String
+ Get
+ Return Me.valueField
+ End Get
+ Set
+ Me.valueField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class SupplyChainEventType
+
+ Private occurrenceDateTimeField As DateTimeType
+
+ '''
+ Public Property OccurrenceDateTime() As DateTimeType
+ Get
+ Return Me.occurrenceDateTimeField
+ End Get
+ Set
+ Me.occurrenceDateTimeField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class HeaderTradeDeliveryType
+
+ Private shipToTradePartyField As TradePartyType
+
+ Private actualDeliverySupplyChainEventField As SupplyChainEventType
+
+ Private despatchAdviceReferencedDocumentField As ReferencedDocumentType
+
+ '''
+ Public Property ShipToTradeParty() As TradePartyType
+ Get
+ Return Me.shipToTradePartyField
+ End Get
+ Set
+ Me.shipToTradePartyField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property ActualDeliverySupplyChainEvent() As SupplyChainEventType
+ Get
+ Return Me.actualDeliverySupplyChainEventField
+ End Get
+ Set
+ Me.actualDeliverySupplyChainEventField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property DespatchAdviceReferencedDocument() As ReferencedDocumentType
+ Get
+ Return Me.despatchAdviceReferencedDocumentField
+ End Get
+ Set
+ Me.despatchAdviceReferencedDocumentField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class HeaderTradeAgreementType
+
+ Private buyerReferenceField As TextType
+
+ Private sellerTradePartyField As TradePartyType
+
+ Private buyerTradePartyField As TradePartyType
+
+ Private sellerTaxRepresentativeTradePartyField As TradePartyType
+
+ Private buyerOrderReferencedDocumentField As ReferencedDocumentType
+
+ Private contractReferencedDocumentField As ReferencedDocumentType
+
+ '''
+ Public Property BuyerReference() As TextType
+ Get
+ Return Me.buyerReferenceField
+ End Get
+ Set
+ Me.buyerReferenceField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property SellerTradeParty() As TradePartyType
+ Get
+ Return Me.sellerTradePartyField
+ End Get
+ Set
+ Me.sellerTradePartyField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property BuyerTradeParty() As TradePartyType
+ Get
+ Return Me.buyerTradePartyField
+ End Get
+ Set
+ Me.buyerTradePartyField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property SellerTaxRepresentativeTradeParty() As TradePartyType
+ Get
+ Return Me.sellerTaxRepresentativeTradePartyField
+ End Get
+ Set
+ Me.sellerTaxRepresentativeTradePartyField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property BuyerOrderReferencedDocument() As ReferencedDocumentType
+ Get
+ Return Me.buyerOrderReferencedDocumentField
+ End Get
+ Set
+ Me.buyerOrderReferencedDocumentField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property ContractReferencedDocument() As ReferencedDocumentType
+ Get
+ Return Me.contractReferencedDocumentField
+ End Get
+ Set
+ Me.contractReferencedDocumentField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class TradeSettlementLineMonetarySummationType
+
+ Private lineTotalAmountField As AmountType
+
+ '''
+ Public Property LineTotalAmount() As AmountType
+ Get
+ Return Me.lineTotalAmountField
+ End Get
+ Set
+ Me.lineTotalAmountField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class LineTradeSettlementType
+
+ Private applicableTradeTaxField As TradeTaxType
+
+ Private billingSpecifiedPeriodField As SpecifiedPeriodType
+
+ Private specifiedTradeAllowanceChargeField() As TradeAllowanceChargeType
+
+ Private specifiedTradeSettlementLineMonetarySummationField As TradeSettlementLineMonetarySummationType
+
+ '''
+ Public Property ApplicableTradeTax() As TradeTaxType
+ Get
+ Return Me.applicableTradeTaxField
+ End Get
+ Set
+ Me.applicableTradeTaxField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property BillingSpecifiedPeriod() As SpecifiedPeriodType
+ Get
+ Return Me.billingSpecifiedPeriodField
+ End Get
+ Set
+ Me.billingSpecifiedPeriodField = Value
+ End Set
+ End Property
+
+ '''
+
+ Public Property SpecifiedTradeAllowanceCharge() As TradeAllowanceChargeType()
+ Get
+ Return Me.specifiedTradeAllowanceChargeField
+ End Get
+ Set
+ Me.specifiedTradeAllowanceChargeField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property SpecifiedTradeSettlementLineMonetarySummation() As TradeSettlementLineMonetarySummationType
+ Get
+ Return Me.specifiedTradeSettlementLineMonetarySummationField
+ End Get
+ Set
+ Me.specifiedTradeSettlementLineMonetarySummationField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class LineTradeDeliveryType
+
+ Private billedQuantityField As QuantityType
+
+ '''
+ Public Property BilledQuantity() As QuantityType
+ Get
+ Return Me.billedQuantityField
+ End Get
+ Set
+ Me.billedQuantityField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class QuantityType
+
+ Private unitCodeField As String
+
+ Private valueField As Decimal
+
+ '''
+
+ Public Property unitCode() As String
+ Get
+ Return Me.unitCodeField
+ End Get
+ Set
+ Me.unitCodeField = Value
+ End Set
+ End Property
+
+ '''
+
+ Public Property Value() As Decimal
+ Get
+ Return Me.valueField
+ End Get
+ Set
+ Me.valueField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class TradePriceType
+
+ Private chargeAmountField As AmountType
+
+ Private basisQuantityField As QuantityType
+
+ Private appliedTradeAllowanceChargeField As TradeAllowanceChargeType
+
+ '''
+ Public Property ChargeAmount() As AmountType
+ Get
+ Return Me.chargeAmountField
+ End Get
+ Set
+ Me.chargeAmountField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property BasisQuantity() As QuantityType
+ Get
+ Return Me.basisQuantityField
+ End Get
+ Set
+ Me.basisQuantityField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property AppliedTradeAllowanceCharge() As TradeAllowanceChargeType
+ Get
+ Return Me.appliedTradeAllowanceChargeField
+ End Get
+ Set
+ Me.appliedTradeAllowanceChargeField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class LineTradeAgreementType
+
+ Private grossPriceProductTradePriceField As TradePriceType
+
+ Private netPriceProductTradePriceField As TradePriceType
+
+ '''
+ Public Property GrossPriceProductTradePrice() As TradePriceType
+ Get
+ Return Me.grossPriceProductTradePriceField
+ End Get
+ Set
+ Me.grossPriceProductTradePriceField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property NetPriceProductTradePrice() As TradePriceType
+ Get
+ Return Me.netPriceProductTradePriceField
+ End Get
+ Set
+ Me.netPriceProductTradePriceField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class TradeProductType
+
+ Private globalIDField As IDType
+
+ Private nameField As TextType
+
+ '''
+ Public Property GlobalID() As IDType
+ Get
+ Return Me.globalIDField
+ End Get
+ Set
+ Me.globalIDField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property Name() As TextType
+ Get
+ Return Me.nameField
+ End Get
+ Set
+ Me.nameField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class DocumentLineDocumentType
+
+ Private lineIDField As IDType
+
+ Private includedNoteField As NoteType
+
+ '''
+ Public Property LineID() As IDType
+ Get
+ Return Me.lineIDField
+ End Get
+ Set
+ Me.lineIDField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property IncludedNote() As NoteType
+ Get
+ Return Me.includedNoteField
+ End Get
+ Set
+ Me.includedNoteField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class NoteType
+
+ Private contentField As TextType
+
+ Private subjectCodeField As CodeType
+
+ '''
+ Public Property Content() As TextType
+ Get
+ Return Me.contentField
+ End Get
+ Set
+ Me.contentField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property SubjectCode() As CodeType
+ Get
+ Return Me.subjectCodeField
+ End Get
+ Set
+ Me.subjectCodeField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class SupplyChainTradeLineItemType
+
+ Private associatedDocumentLineDocumentField As DocumentLineDocumentType
+
+ Private specifiedTradeProductField As TradeProductType
+
+ Private specifiedLineTradeAgreementField As LineTradeAgreementType
+
+ Private specifiedLineTradeDeliveryField As LineTradeDeliveryType
+
+ Private specifiedLineTradeSettlementField As LineTradeSettlementType
+
+ '''
+ Public Property AssociatedDocumentLineDocument() As DocumentLineDocumentType
+ Get
+ Return Me.associatedDocumentLineDocumentField
+ End Get
+ Set
+ Me.associatedDocumentLineDocumentField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property SpecifiedTradeProduct() As TradeProductType
+ Get
+ Return Me.specifiedTradeProductField
+ End Get
+ Set
+ Me.specifiedTradeProductField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property SpecifiedLineTradeAgreement() As LineTradeAgreementType
+ Get
+ Return Me.specifiedLineTradeAgreementField
+ End Get
+ Set
+ Me.specifiedLineTradeAgreementField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property SpecifiedLineTradeDelivery() As LineTradeDeliveryType
+ Get
+ Return Me.specifiedLineTradeDeliveryField
+ End Get
+ Set
+ Me.specifiedLineTradeDeliveryField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property SpecifiedLineTradeSettlement() As LineTradeSettlementType
+ Get
+ Return Me.specifiedLineTradeSettlementField
+ End Get
+ Set
+ Me.specifiedLineTradeSettlementField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class SupplyChainTradeTransactionType
+
+ Private includedSupplyChainTradeLineItemField() As SupplyChainTradeLineItemType
+
+ Private applicableHeaderTradeAgreementField As HeaderTradeAgreementType
+
+ Private applicableHeaderTradeDeliveryField As HeaderTradeDeliveryType
+
+ Private applicableHeaderTradeSettlementField As HeaderTradeSettlementType
+
+ '''
+
+ Public Property IncludedSupplyChainTradeLineItem() As SupplyChainTradeLineItemType()
+ Get
+ Return Me.includedSupplyChainTradeLineItemField
+ End Get
+ Set
+ Me.includedSupplyChainTradeLineItemField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property ApplicableHeaderTradeAgreement() As HeaderTradeAgreementType
+ Get
+ Return Me.applicableHeaderTradeAgreementField
+ End Get
+ Set
+ Me.applicableHeaderTradeAgreementField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property ApplicableHeaderTradeDelivery() As HeaderTradeDeliveryType
+ Get
+ Return Me.applicableHeaderTradeDeliveryField
+ End Get
+ Set
+ Me.applicableHeaderTradeDeliveryField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property ApplicableHeaderTradeSettlement() As HeaderTradeSettlementType
+ Get
+ Return Me.applicableHeaderTradeSettlementField
+ End Get
+ Set
+ Me.applicableHeaderTradeSettlementField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Partial Public Class DocumentCodeType
+
+ Private valueField As DocumentCodeContentType
+
+ '''
+
+ Public Property Value() As DocumentCodeContentType
+ Get
+ Return Me.valueField
+ End Get
+ Set
+ Me.valueField = Value
+ End Set
+ End Property
+ End Class
+
+ '''
+
+ Public Enum DocumentCodeContentType
+
+ '''
+
+ Item80
+
+ '''
+
+ Item81
+
+ '''
+
+ Item82
+
+ '''
+
+ Item83
+
+ '''
+
+ Item84
+
+ '''
+
+ Item130
+
+ '''
+
+ Item202
+
+ '''
+
+ Item203
+
+ '''
+
+ Item204
+
+ '''
+
+ Item211
+
+ '''
+
+ Item261
+
+ '''
+
+ Item262
+
+ '''
+
+ Item295
+
+ '''
+
+ Item296
+
+ '''
+
+ Item308
+
+ '''
+
+ Item325
+
+ '''
+
+ Item326
+
+ '''
+
+ Item380
+
+ '''
+
+ Item381
+
+ '''
+
+ Item383
+
+ '''
+
+ Item384
+
+ '''
+
+ Item385
+
+ '''
+
+ Item386
+
+ '''
+
+ Item387
+
+ '''
+
+ Item388
+
+ '''
+
+ Item389
+
+ '''
+
+ Item390
+
+ '''
+
+ Item393
+
+ '''
+
+ Item394
+
+ '''
+
+ Item395
+
+ '''
+
+ Item396
+
+ '''
+
+ Item420
+
+ '''
+
+ Item456
+
+ '''
+
+ Item457
+
+ '''
+
+ Item458
+
+ '''
+
+ Item527
+
+ '''
+
+ Item575
+
+ '''
+
+ Item623
+
+ '''
+
+ Item633
+
+ '''
+
+ Item751
+
+ '''
+
+ Item780
+
+ '''
+
+ Item875
+
+ '''
+
+ Item876
+
+ '''
+
+ Item877
+
+ '''
+
+ Item935
+ End Enum
+
+ '''
+
+ Partial Public Class ExchangedDocumentType
+
+ Private idField As IDType
+
+ Private typeCodeField As DocumentCodeType
+
+ Private issueDateTimeField As DateTimeType
+
+ Private includedNoteField() As NoteType
+
+ '''
+ Public Property ID() As IDType
+ Get
+ Return Me.idField
+ End Get
+ Set
+ Me.idField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property TypeCode() As DocumentCodeType
+ Get
+ Return Me.typeCodeField
+ End Get
+ Set
+ Me.typeCodeField = Value
+ End Set
+ End Property
+
+ '''
+ Public Property IssueDateTime() As DateTimeType
+ Get
+ Return Me.issueDateTimeField
+ End Get
+ Set
+ Me.issueDateTimeField = Value
+ End Set
+ End Property
+
+ '''
+
+ Public Property IncludedNote() As NoteType()
+ Get
+ Return Me.includedNoteField
+ End Get
+ Set
+ Me.includedNoteField = Value
+ End Set
+ End Property
+ End Class
+
+End Namespace
\ No newline at end of file
diff --git a/Service.EDMIService/EDMIService.vbproj b/Service.EDMIService/EDMIService.vbproj
index 3e7928b7..07993a73 100644
--- a/Service.EDMIService/EDMIService.vbproj
+++ b/Service.EDMIService/EDMIService.vbproj
@@ -155,6 +155,10 @@
+
+
+
+
diff --git a/Service.EDMIService/Methods/IDB/CheckInOutFile/CheckInOutFileMethod.vb b/Service.EDMIService/Methods/IDB/CheckInOutFile/CheckInOutFileMethod.vb
index 5bd479d5..5e784a18 100644
--- a/Service.EDMIService/Methods/IDB/CheckInOutFile/CheckInOutFileMethod.vb
+++ b/Service.EDMIService/Methods/IDB/CheckInOutFile/CheckInOutFileMethod.vb
@@ -8,6 +8,18 @@ Namespace Methods.IDB.CheckInOutFile
Public Class CheckInOutFileMethod
Inherits BaseMethod
+ Private Enum CheckOutResult
+ CheckoutSuccessful
+ AlreadyCheckedOut
+ InternalError
+ End Enum
+
+ Private Enum CheckInResult
+ CheckinSuccessful
+ NotCheckedOut
+ InternalError
+ End Enum
+
Private ReadOnly Connection As SqlConnection
Private ReadOnly Transaction As SqlTransaction
@@ -23,10 +35,30 @@ Namespace Methods.IDB.CheckInOutFile
Dim oResult = False
If pData.Action = CheckInOutFileAction.CheckOut Then
- oResult = CheckOutFile(pData.ObjectId, pData.User.UserName, pData.Comment)
+ Select Case CheckOutFile(pData.ObjectId, pData.User.UserName, pData.Comment)
+ Case CheckOutResult.CheckoutSuccessful
+ oResult = True
+
+ Case CheckOutResult.AlreadyCheckedOut
+ LogAndThrow($"File '{pData.ObjectId}' is already checked out.")
+
+ Case CheckOutResult.InternalError
+ LogAndThrow($"Internal Error occurred while checking out file [{pData.ObjectId}].")
+
+ End Select
ElseIf pData.Action = CheckInOutFileAction.CheckIn Then
- oResult = CheckInFile(pData.ObjectId, pData.User.UserName)
+ Select Case CheckInFile(pData.ObjectId, pData.User.UserName)
+ Case CheckInResult.CheckinSuccessful
+ oResult = True
+
+ Case CheckInResult.NotCheckedOut
+ LogAndThrow($"File '{pData.ObjectId}' is not checked out.")
+
+ Case CheckInResult.InternalError
+ LogAndThrow($"Internal Error occurred while checking in file [{pData.ObjectId}].")
+
+ End Select
Else
LogAndThrow("Invalid action supplied!")
@@ -50,22 +82,31 @@ Namespace Methods.IDB.CheckInOutFile
End Try
End Function
- Private Function CheckOutFile(pObjectId As Long, pUsername As String, pComment As String) As Boolean
+ Private Function CheckOutFile(pObjectId As Long, pUsername As String, pComment As String) As CheckOutResult
Try
Dim oTable = TestFileIsCheckedOut(pObjectId)
If oTable Is Nothing Then
- Return False
+ Logger.Warn("File [{0}] could not be checked out because of an internal error!", pObjectId)
+ Return CheckOutResult.InternalError
End If
' If there are rows, the file is already checked out (either by the calling user or somebody else)
If oTable.Rows.Count > 0 Then
' TODO: Return the person who has this file checked out
- Return False
+ Logger.Warn("File [{0}] is already checked out!", pObjectId)
+ Return CheckOutResult.AlreadyCheckedOut
End If
Dim oSQL = $"INSERT INTO TBIDB_OBJECT_CHECK_IN_OUT (IDB_OBJ_ID, CHECKED_OUT_WHEN, COMMENT, ADDED_WHO)
VALUES ({pObjectId}, GETDATE(), '{pComment}', '{pUsername}')"
- Return DatabaseIDB.ExecuteNonQuery(oSQL)
+
+ If DatabaseIDB.ExecuteNonQuery(oSQL) = True Then
+ Logger.Info("File [{0}] checked out successfully!", pObjectId)
+ Return CheckOutResult.CheckoutSuccessful
+ Else
+ Logger.Warn("File [{0}] could not be checked out because of an internal error!", pObjectId)
+ Return CheckOutResult.InternalError
+ End If
Catch ex As Exception
Logger.Error(ex)
@@ -78,18 +119,27 @@ Namespace Methods.IDB.CheckInOutFile
Try
Dim oTable = TestFileIsCheckedOut(pObjectId)
If oTable Is Nothing Then
- Return False
+ Logger.Warn("File [{0}] could not be checked in because of an internal error!", pObjectId)
+ Return CheckOutResult.InternalError
End If
' If there are no rows, the file is not checked out
- If oTable.Rows.Count > 0 Then
- Return True
+ If oTable.Rows.Count = 0 Then
+ Logger.Warn("File [{0}] is not checked out!", pObjectId)
+ Return CheckInResult.NotCheckedOut
End If
Dim oSQL = $"UPDATE TBIDB_OBJECT_CHECK_IN_OUT
SET CHECKED_IN_WHEN = GETDATE(), CHANGED_WHO = '{pUsername}'
WHERE IDB_OBJ_ID = {pObjectId} AND ADDED_WHO = '{pUsername}' AND CHECKED_IN_WHEN IS NULL"
- Return DatabaseIDB.ExecuteNonQuery(oSQL)
+
+ If DatabaseIDB.ExecuteNonQuery(oSQL) = True Then
+ Logger.Info("File [{0}] checked in successfully!", pObjectId)
+ Return CheckInResult.CheckinSuccessful
+ Else
+ Logger.Warn("File [{0}] could not be checked in because of an internal error!", pObjectId)
+ Return CheckInResult.InternalError
+ End If
Catch ex As Exception
Logger.Error(ex)
@@ -100,6 +150,7 @@ Namespace Methods.IDB.CheckInOutFile
Private Function TestFileIsCheckedOut(pObjectId As Long) As DataTable
Try
+ Logger.Debug("Checking if file [{0}] is checked out.", pObjectId)
Dim oSqlCheck = $"SELECT * FROM TBIDB_OBJECT_CHECK_IN_OUT WHERE IDB_OBJ_ID = {pObjectId} AND CHECKED_IN_WHEN IS NULL"
Dim oTable As DataTable = DatabaseIDB.GetDatatable(oSqlCheck)
diff --git a/Service.EDMIService/Methods/IDB/CheckInOutFile/CheckInOutFileRequest.vb b/Service.EDMIService/Methods/IDB/CheckInOutFile/CheckInOutFileRequest.vb
index e6e1cb2e..0af74e7f 100644
--- a/Service.EDMIService/Methods/IDB/CheckInOutFile/CheckInOutFileRequest.vb
+++ b/Service.EDMIService/Methods/IDB/CheckInOutFile/CheckInOutFileRequest.vb
@@ -9,7 +9,7 @@ Namespace Methods.IDB.CheckInOutFile
Public Property ObjectId As Long
- Public Property Comment As Long
+ Public Property Comment As String
Public Property Action As CheckInOutFileAction
diff --git a/Service.EDMIService/Methods/IDB/GetFileInfo/FileInfo.vb b/Service.EDMIService/Methods/IDB/GetFileInfo/FileInfo.vb
new file mode 100644
index 00000000..4c4af604
--- /dev/null
+++ b/Service.EDMIService/Methods/IDB/GetFileInfo/FileInfo.vb
@@ -0,0 +1,13 @@
+Imports System.Runtime.Serialization
+
+Namespace Methods.IDB.GetFileInfo
+
+ Public Class FileInfo
+
+ Public Property IsCheckedOut As Boolean
+
+
+ Public Property CheckoutUser As String
+ End Class
+
+End Namespace
\ No newline at end of file
diff --git a/Service.EDMIService/Methods/IDB/GetFileInfo/GetFileInfoMethod.vb b/Service.EDMIService/Methods/IDB/GetFileInfo/GetFileInfoMethod.vb
new file mode 100644
index 00000000..74bce373
--- /dev/null
+++ b/Service.EDMIService/Methods/IDB/GetFileInfo/GetFileInfoMethod.vb
@@ -0,0 +1,21 @@
+Imports DigitalData.Modules.Database
+Imports DigitalData.Modules.Logging
+
+Namespace Methods.IDB.GetFileInfo
+ Public Class GetFileInfoMethod
+ Inherits BaseMethod
+
+ Public Sub New(pLogConfig As LogConfig, pDatabaseIDB As MSSQLServer, pDatabaseECM As MSSQLServer, pGlobalState As GlobalState)
+ MyBase.New(pLogConfig, pDatabaseIDB, pDatabaseECM, pGlobalState)
+ End Sub
+
+ Public Function Run(pData As GetFileInfoRequest) As GetFileInfoResponse
+ Dim oFileInfo = New FileInfo() With {
+ .CheckoutUser = Nothing,
+ .IsCheckedOut = False
+ }
+ Return New GetFileInfoResponse(oFileInfo)
+
+ End Function
+ End Class
+End Namespace
\ No newline at end of file
diff --git a/Service.EDMIService/Methods/IDB/GetFileInfo/GetFileInfoRequest.vb b/Service.EDMIService/Methods/IDB/GetFileInfo/GetFileInfoRequest.vb
new file mode 100644
index 00000000..54ebe2b6
--- /dev/null
+++ b/Service.EDMIService/Methods/IDB/GetFileInfo/GetFileInfoRequest.vb
@@ -0,0 +1,10 @@
+Imports System.Runtime.Serialization
+
+Namespace Methods.IDB.GetFileInfo
+
+
+ Public Class GetFileInfoRequest
+
+ Public Property ObjectId As Long
+ End Class
+End Namespace
diff --git a/Service.EDMIService/Methods/IDB/GetFileInfo/GetFileInfoResponse.vb b/Service.EDMIService/Methods/IDB/GetFileInfo/GetFileInfoResponse.vb
new file mode 100644
index 00000000..60841f8d
--- /dev/null
+++ b/Service.EDMIService/Methods/IDB/GetFileInfo/GetFileInfoResponse.vb
@@ -0,0 +1,24 @@
+Imports System.Runtime.Serialization
+
+Namespace Methods.IDB.GetFileInfo
+
+
+ Public Class GetFileInfoResponse
+ Inherits Messages.BaseResponse
+
+
+ Public Property ObjectId As Long
+
+
+ Public Property FileInfo As FileInfo
+
+ Public Sub New(pFileInfo As FileInfo)
+ MyBase.New()
+ FileInfo = pFileInfo
+ End Sub
+
+ Public Sub New(pException As Exception, Optional pDetails As String = "")
+ MyBase.New(pException, pDetails)
+ End Sub
+ End Class
+End Namespace
diff --git a/Service.EDMIService/Scheduler/JobListener.vb b/Service.EDMIService/Scheduler/JobListener.vb
index 995c2d55..84a664f0 100644
--- a/Service.EDMIService/Scheduler/JobListener.vb
+++ b/Service.EDMIService/Scheduler/JobListener.vb
@@ -75,7 +75,7 @@ Public Class JobListener
' Remove the temp table if it exists
If DataSet.Tables.Contains(oDatatableNameTemp) Then
- _Logger.Debug("Removing Table [{0}]", oDatatableNameTemp)
+ _Logger.Debug("Removing Temp-Table [{0}]", oDatatableNameTemp)
DataSet.Tables.Item(oDatatableNameTemp).ChildRelations.Clear()
DataSet.Tables.Item(oDatatableNameTemp).Constraints.Clear()