First pass of new mandator selection
This commit is contained in:
@@ -4,6 +4,7 @@ Namespace My
|
||||
<HideModuleName()>
|
||||
Module MyExtensions
|
||||
Friend Property TemplateConfiguration As TemplateConfig
|
||||
Friend Property MappingConfiguration As New List(Of MappingConfig)
|
||||
Friend Property MappingConfiguration As MappingConfig
|
||||
Friend Property MandatorConfiguration As MandatorConfig
|
||||
End Module
|
||||
End Namespace
|
||||
|
||||
64
MultiTool.Form/frmImportMain.Designer.vb
generated
64
MultiTool.Form/frmImportMain.Designer.vb
generated
@@ -29,13 +29,12 @@ Partial Class frmImportMain
|
||||
Me.SplitContainerMain = New DevExpress.XtraEditors.SplitContainerControl()
|
||||
Me.GridControlFiles = New DevExpress.XtraGrid.GridControl()
|
||||
Me.GridViewFiles = New DevExpress.XtraGrid.Views.BandedGrid.AdvBandedGridView()
|
||||
Me.gridBand1 = New DevExpress.XtraGrid.Views.BandedGrid.GridBand()
|
||||
Me.colSelected = New DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn()
|
||||
Me.gridBand3 = New DevExpress.XtraGrid.Views.BandedGrid.GridBand()
|
||||
Me.colFilename = New DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn()
|
||||
Me.colCreatedAt = New DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn()
|
||||
Me.colMandator = New DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn()
|
||||
Me.cmbMandators = New DevExpress.XtraEditors.Repository.RepositoryItemComboBox()
|
||||
Me.BandedGridColumn1 = New DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn()
|
||||
Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl()
|
||||
Me.txtVersion = New DevExpress.XtraBars.BarStaticItem()
|
||||
Me.txtFilesLoaded = New DevExpress.XtraBars.BarStaticItem()
|
||||
@@ -86,6 +85,9 @@ Partial Class frmImportMain
|
||||
Me.GridView4 = New DevExpress.XtraGrid.Views.Grid.GridView()
|
||||
Me.BehaviorManager = New DevExpress.Utils.Behaviors.BehaviorManager(Me.components)
|
||||
Me.SplashScreenManager = New DevExpress.XtraSplashScreen.SplashScreenManager(Me, GetType(Global.MultiTool.Form.frmWaitForm), True, True)
|
||||
Me.gridBand1 = New DevExpress.XtraGrid.Views.BandedGrid.GridBand()
|
||||
Me.GridBand2 = New DevExpress.XtraGrid.Views.BandedGrid.GridBand()
|
||||
Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
|
||||
CType(Me.SplitContainerMain, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SplitContainerMain.SuspendLayout()
|
||||
CType(Me.GridControlFiles, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
@@ -137,8 +139,8 @@ Partial Class frmImportMain
|
||||
'
|
||||
'GridViewFiles
|
||||
'
|
||||
Me.GridViewFiles.Bands.AddRange(New DevExpress.XtraGrid.Views.BandedGrid.GridBand() {Me.gridBand1, Me.gridBand3})
|
||||
Me.GridViewFiles.Columns.AddRange(New DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn() {Me.colSelected, Me.colFilename, Me.colMandator, Me.colCreatedAt})
|
||||
Me.GridViewFiles.Bands.AddRange(New DevExpress.XtraGrid.Views.BandedGrid.GridBand() {Me.gridBand1, Me.GridBand2})
|
||||
Me.GridViewFiles.Columns.AddRange(New DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn() {Me.colSelected, Me.colFilename, Me.colMandator, Me.colCreatedAt, Me.BandedGridColumn1})
|
||||
Me.GridViewFiles.GridControl = Me.GridControlFiles
|
||||
Me.GridViewFiles.Name = "GridViewFiles"
|
||||
Me.GridViewFiles.OptionsView.ShowBands = False
|
||||
@@ -146,12 +148,6 @@ Partial Class frmImportMain
|
||||
Me.GridViewFiles.OptionsView.ShowGroupPanel = False
|
||||
Me.GridViewFiles.OptionsView.ShowIndicator = False
|
||||
'
|
||||
'gridBand1
|
||||
'
|
||||
resources.ApplyResources(Me.gridBand1, "gridBand1")
|
||||
Me.gridBand1.Columns.Add(Me.colSelected)
|
||||
Me.gridBand1.VisibleIndex = 0
|
||||
'
|
||||
'colSelected
|
||||
'
|
||||
Me.colSelected.AutoFillDown = True
|
||||
@@ -164,18 +160,10 @@ Partial Class frmImportMain
|
||||
Me.colSelected.OptionsColumn.FixedWidth = True
|
||||
Me.colSelected.UnboundType = DevExpress.Data.UnboundColumnType.[Boolean]
|
||||
'
|
||||
'gridBand3
|
||||
'
|
||||
resources.ApplyResources(Me.gridBand3, "gridBand3")
|
||||
Me.gridBand3.Columns.Add(Me.colFilename)
|
||||
Me.gridBand3.Columns.Add(Me.colCreatedAt)
|
||||
Me.gridBand3.Columns.Add(Me.colMandator)
|
||||
Me.gridBand3.VisibleIndex = 1
|
||||
'
|
||||
'colFilename
|
||||
'
|
||||
resources.ApplyResources(Me.colFilename, "colFilename")
|
||||
Me.colFilename.FieldName = "Name"
|
||||
Me.colFilename.FieldName = "FileName"
|
||||
Me.colFilename.Name = "colFilename"
|
||||
Me.colFilename.OptionsColumn.AllowEdit = False
|
||||
Me.colFilename.OptionsColumn.ReadOnly = True
|
||||
@@ -195,7 +183,7 @@ Partial Class frmImportMain
|
||||
Me.colMandator.ColumnEdit = Me.cmbMandators
|
||||
Me.colMandator.FieldName = "MandatorId"
|
||||
Me.colMandator.Name = "colMandator"
|
||||
Me.colMandator.RowIndex = 2
|
||||
Me.colMandator.RowIndex = 1
|
||||
'
|
||||
'cmbMandators
|
||||
'
|
||||
@@ -204,12 +192,18 @@ Partial Class frmImportMain
|
||||
Me.cmbMandators.Items.AddRange(New Object() {resources.GetString("cmbMandators.Items")})
|
||||
Me.cmbMandators.Name = "cmbMandators"
|
||||
'
|
||||
'BandedGridColumn1
|
||||
'
|
||||
resources.ApplyResources(Me.BandedGridColumn1, "BandedGridColumn1")
|
||||
Me.BandedGridColumn1.FieldName = "Mandator"
|
||||
Me.BandedGridColumn1.Name = "BandedGridColumn1"
|
||||
'
|
||||
'RibbonControl
|
||||
'
|
||||
Me.RibbonControl.ExpandCollapseItem.Id = 0
|
||||
Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.txtVersion, Me.txtFilesLoaded, Me.btnLoadFiles, Me.btnTransferFile, Me.btnOpenInputDirectory, Me.btnOpenOutputDirectory, Me.btnOpenSchemaDirectory, Me.btnReloadFile, Me.btnTransferAllFiles, Me.btnOpenReport, Me.btnShowXml, Me.btnOpenLogDirectory, Me.btnOpenConfigDirectory, Me.txtCurrentFile, Me.btnConfig, Me.txtCulture, Me.btnRemoveRow, Me.BarWorkspaceMenuItem1, Me.btnTestTransferFile})
|
||||
Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.txtVersion, Me.txtFilesLoaded, Me.btnLoadFiles, Me.btnTransferFile, Me.btnOpenInputDirectory, Me.btnOpenOutputDirectory, Me.btnOpenSchemaDirectory, Me.btnReloadFile, Me.btnTransferAllFiles, Me.btnOpenReport, Me.btnShowXml, Me.btnOpenLogDirectory, Me.btnOpenConfigDirectory, Me.txtCurrentFile, Me.btnConfig, Me.txtCulture, Me.btnRemoveRow, Me.BarWorkspaceMenuItem1, Me.btnTestTransferFile, Me.BarButtonItem1})
|
||||
resources.ApplyResources(Me.RibbonControl, "RibbonControl")
|
||||
Me.RibbonControl.MaxItemId = 30
|
||||
Me.RibbonControl.MaxItemId = 31
|
||||
Me.RibbonControl.Name = "RibbonControl"
|
||||
Me.RibbonControl.PageHeaderItemLinks.Add(Me.BarWorkspaceMenuItem1)
|
||||
Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1, Me.RibbonPage2})
|
||||
@@ -571,6 +565,26 @@ Partial Class frmImportMain
|
||||
'
|
||||
Me.SplashScreenManager.ClosingDelay = 500
|
||||
'
|
||||
'gridBand1
|
||||
'
|
||||
resources.ApplyResources(Me.gridBand1, "gridBand1")
|
||||
Me.gridBand1.Columns.Add(Me.colSelected)
|
||||
Me.gridBand1.VisibleIndex = 0
|
||||
'
|
||||
'GridBand2
|
||||
'
|
||||
resources.ApplyResources(Me.GridBand2, "GridBand2")
|
||||
Me.GridBand2.Columns.Add(Me.colFilename)
|
||||
Me.GridBand2.Columns.Add(Me.colCreatedAt)
|
||||
Me.GridBand2.Columns.Add(Me.colMandator)
|
||||
Me.GridBand2.VisibleIndex = 1
|
||||
'
|
||||
'BarButtonItem1
|
||||
'
|
||||
resources.ApplyResources(Me.BarButtonItem1, "BarButtonItem1")
|
||||
Me.BarButtonItem1.Id = 30
|
||||
Me.BarButtonItem1.Name = "BarButtonItem1"
|
||||
'
|
||||
'frmImportMain
|
||||
'
|
||||
resources.ApplyResources(Me, "$this")
|
||||
@@ -671,9 +685,11 @@ Partial Class frmImportMain
|
||||
Friend WithEvents GridView3 As GridView
|
||||
Friend WithEvents GridControl4 As DevExpress.XtraGrid.GridControl
|
||||
Friend WithEvents GridView4 As GridView
|
||||
Friend WithEvents gridBand1 As DevExpress.XtraGrid.Views.BandedGrid.GridBand
|
||||
Friend WithEvents gridBand3 As DevExpress.XtraGrid.Views.BandedGrid.GridBand
|
||||
Friend WithEvents BarWorkspaceMenuItem1 As DevExpress.XtraBars.BarWorkspaceMenuItem
|
||||
Friend WithEvents WorkspaceManager1 As DevExpress.Utils.WorkspaceManager
|
||||
Friend WithEvents btnTestTransferFile As DevExpress.XtraBars.BarButtonItem
|
||||
Friend WithEvents BandedGridColumn1 As DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn
|
||||
Friend WithEvents gridBand1 As DevExpress.XtraGrid.Views.BandedGrid.GridBand
|
||||
Friend WithEvents GridBand2 As DevExpress.XtraGrid.Views.BandedGrid.GridBand
|
||||
Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem
|
||||
End Class
|
||||
|
||||
@@ -150,7 +150,7 @@
|
||||
<data name="gridBand1.Width" type="System.Int32, mscorlib">
|
||||
<value>27</value>
|
||||
</data>
|
||||
<data name="gridBand3.Caption" xml:space="preserve">
|
||||
<data name="GridBand2.Caption" xml:space="preserve">
|
||||
<value>gridBand3</value>
|
||||
</data>
|
||||
<data name="colFilename.Caption" xml:space="preserve">
|
||||
@@ -160,7 +160,7 @@
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="colFilename.Width" type="System.Int32, mscorlib">
|
||||
<value>303</value>
|
||||
<value>683</value>
|
||||
</data>
|
||||
<data name="colCreatedAt.Caption" xml:space="preserve">
|
||||
<value>Eingegangen</value>
|
||||
@@ -169,7 +169,7 @@
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="colCreatedAt.Width" type="System.Int32, mscorlib">
|
||||
<value>303</value>
|
||||
<value>299</value>
|
||||
</data>
|
||||
<data name="colMandator.Caption" xml:space="preserve">
|
||||
<value>Mandant</value>
|
||||
@@ -184,14 +184,23 @@
|
||||
<data name="cmbMandators.Items" xml:space="preserve">
|
||||
<value>SIVT</value>
|
||||
</data>
|
||||
<data name="colMandator.Visible" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="colMandator.Width" type="System.Int32, mscorlib">
|
||||
<value>144</value>
|
||||
<value>384</value>
|
||||
</data>
|
||||
<data name="gridBand3.Name" xml:space="preserve">
|
||||
<value>gridBand3</value>
|
||||
<data name="GridBand2.Name" xml:space="preserve">
|
||||
<value>GridBand2</value>
|
||||
</data>
|
||||
<data name="gridBand3.Width" type="System.Int32, mscorlib">
|
||||
<value>303</value>
|
||||
<data name="GridBand2.Width" type="System.Int32, mscorlib">
|
||||
<value>683</value>
|
||||
</data>
|
||||
<data name="BandedGridColumn1.Caption" xml:space="preserve">
|
||||
<value>BandedGridColumn1</value>
|
||||
</data>
|
||||
<data name="BandedGridColumn1.Visible" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="txtVersion.Caption" xml:space="preserve">
|
||||
<value>Version 1.0.0.0</value>
|
||||
@@ -262,6 +271,9 @@
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>1215, 746</value>
|
||||
</data>
|
||||
<data name="BarButtonItem1.Caption" xml:space="preserve">
|
||||
<value>BarButtonItem1</value>
|
||||
</data>
|
||||
<data name="RibbonStatusBar.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 722</value>
|
||||
</data>
|
||||
@@ -311,24 +323,12 @@
|
||||
<data name=">>GridViewFiles.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraGrid.Views.BandedGrid.AdvBandedGridView, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>gridBand1.Name" xml:space="preserve">
|
||||
<value>gridBand1</value>
|
||||
</data>
|
||||
<data name=">>gridBand1.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraGrid.Views.BandedGrid.GridBand, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>colSelected.Name" xml:space="preserve">
|
||||
<value>colSelected</value>
|
||||
</data>
|
||||
<data name=">>colSelected.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>gridBand3.Name" xml:space="preserve">
|
||||
<value>gridBand3</value>
|
||||
</data>
|
||||
<data name=">>gridBand3.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraGrid.Views.BandedGrid.GridBand, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>colFilename.Name" xml:space="preserve">
|
||||
<value>colFilename</value>
|
||||
</data>
|
||||
@@ -353,6 +353,12 @@
|
||||
<data name=">>cmbMandators.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>BandedGridColumn1.Name" xml:space="preserve">
|
||||
<value>BandedGridColumn1</value>
|
||||
</data>
|
||||
<data name=">>BandedGridColumn1.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>txtVersion.Name" xml:space="preserve">
|
||||
<value>txtVersion</value>
|
||||
</data>
|
||||
@@ -581,6 +587,24 @@
|
||||
<data name=">>SplashScreenManager.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraSplashScreen.SplashScreenManager, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>gridBand1.Name" xml:space="preserve">
|
||||
<value>gridBand1</value>
|
||||
</data>
|
||||
<data name=">>gridBand1.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraGrid.Views.BandedGrid.GridBand, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>GridBand2.Name" xml:space="preserve">
|
||||
<value>GridBand2</value>
|
||||
</data>
|
||||
<data name=">>GridBand2.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraGrid.Views.BandedGrid.GridBand, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>BarButtonItem1.Name" xml:space="preserve">
|
||||
<value>BarButtonItem1</value>
|
||||
</data>
|
||||
<data name=">>BarButtonItem1.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>frmImportMain</value>
|
||||
</data>
|
||||
|
||||
@@ -76,7 +76,7 @@ Public Class frmImportMain
|
||||
GridViewFiles.OptionsView.ShowAutoFilterRow = False
|
||||
|
||||
FileEx = New DigitalData.Modules.Filesystem.File(LogConfig)
|
||||
Winline = New WinlineData(LogConfig, Database, ConfigManager.Config)
|
||||
Winline = New WinlineData(LogConfig, Database, ConfigManager.Config, My.MappingConfiguration, My.MandatorConfiguration)
|
||||
WebService = New WebServiceData(LogConfig, ConfigManager.Config, Application.UserAppDataPath)
|
||||
AddHandler WebService.WebServiceProgress, AddressOf WebService_Progress
|
||||
|
||||
@@ -238,7 +238,11 @@ Public Class frmImportMain
|
||||
SplashScreenManager.SetWaitFormDescription(oMessage)
|
||||
End Sub
|
||||
|
||||
If DocumentLoader.LoadFiles(ConfigManager.Config.InputDirectory, CurrentTemplate, lookupMandator.EditValue) Then
|
||||
If DocumentLoader.LoadFiles(
|
||||
ConfigManager.Config.InputDirectory,
|
||||
CurrentTemplate,
|
||||
lookupMandator.EditValue
|
||||
) Then
|
||||
GridControlFiles.DataSource = Nothing
|
||||
GridControlFiles.DataSource = DocumentLoader.Files
|
||||
|
||||
@@ -272,7 +276,6 @@ Public Class frmImportMain
|
||||
Try
|
||||
If oResult = DialogResult.Yes Then
|
||||
Dim oDocument As Document = GridViewFiles.GetRow(GridViewFiles.FocusedRowHandle)
|
||||
|
||||
Dim oNewDocument = DocumentLoader.LoadFile(oDocument.File, CurrentTemplate, lookupMandator.EditValue)
|
||||
Dim oIndex = DocumentLoader.Files.IndexOf(oDocument)
|
||||
DocumentLoader.Files.Item(oIndex) = oNewDocument
|
||||
|
||||
@@ -56,10 +56,12 @@ Public Class frmMain
|
||||
Await TemplateLoader.LoadTemplates()
|
||||
Await TemplateLoader.LoadTemplateConfiguration()
|
||||
Await TemplateLoader.LoadMappingConfiguration()
|
||||
Await TemplateLoader.LoadMandatorConfiguration()
|
||||
|
||||
' Save Schema data in 'My' Namespace
|
||||
My.MappingConfiguration = TemplateLoader.MappingConfiguration
|
||||
My.TemplateConfiguration = TemplateLoader.TemplateConfiguration
|
||||
My.MandatorConfiguration = TemplateLoader.MandatorConfiguration
|
||||
|
||||
Dim oBindingSource = New BindingList(Of Template)
|
||||
For Each oTemplate As Template In TemplateLoader.TemplateList
|
||||
|
||||
@@ -14,6 +14,35 @@
|
||||
Public Const DB_TYPE_DECIMAL = "DECIMAL"
|
||||
Public Const DB_TYPE_BOOLEAN = "BOOLEAN"
|
||||
|
||||
Public Const ALL_MESOCOMP = "mesocomp"
|
||||
|
||||
Public Const V21_ARTICLENUMBER = "c002"
|
||||
Public Const V21_ARTICLEDESCRIPTION = "c003"
|
||||
Public Const V21_MAINARTICLENUMBER = "c011"
|
||||
Public Const V21_REPLACEMENTARTICLENUMBER = "c123"
|
||||
Public Const V21_EAN = "c075"
|
||||
|
||||
Public Const V50_ACCOUNTNUMBER = "c002"
|
||||
Public Const V50_ACCOUNTNAME = "c003"
|
||||
Public Const V50_STREETNAME = "c050"
|
||||
Public Const V50_ZIPCODE = "c051"
|
||||
Public Const V50_CITYNAME = "c052"
|
||||
Public Const V50_GLN = "c260"
|
||||
|
||||
Public Const T45_KEY = "c000"
|
||||
Public Const T45_NAME = "c001"
|
||||
Public Const T45_CONTACTNUMBER = "c063"
|
||||
|
||||
Public Const V05_ACCOUNTID = "c002"
|
||||
Public Const V05_ACCOUNTNAME = "c003"
|
||||
|
||||
Public Const T357_KINDID = "c030"
|
||||
Public Const T357_KINDNAME = "c001"
|
||||
|
||||
Public Const T01_DATABASEINFO = "c004"
|
||||
Public Const T01_MANDATORID = "c000"
|
||||
Public Const T01_MANDATORNAME = "c003"
|
||||
|
||||
Public Enum ColumnType As Integer
|
||||
[String]
|
||||
[Integer]
|
||||
|
||||
@@ -23,7 +23,7 @@ Namespace Documents
|
||||
|
||||
Public ReadOnly Property HasErrors As Boolean
|
||||
Get
|
||||
Return Rows.Any(Function(r As DocumentRow) r.HasErrors)
|
||||
Return Mandator Is Nothing Or Rows.Any(Function(r As DocumentRow) r.HasErrors)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
|
||||
@@ -49,6 +49,7 @@ Namespace Documents
|
||||
oInfo.FilesTotal = oFiles.Count
|
||||
|
||||
RaiseEvent FileLoadComplete(Me, oInfo)
|
||||
|
||||
Catch ex As MissingAttributeException
|
||||
Logger.Error(ex)
|
||||
Throw New DocumentLoaderException($"Missing Attribute '{ex.Message}' in File '{oFile.Name}'")
|
||||
@@ -270,12 +271,11 @@ Namespace Documents
|
||||
|
||||
If oMandator Is Nothing Then
|
||||
Logger.Warn("Mandator not found for File [{0}]", pDocument.File.Name)
|
||||
Throw New Exceptions.NoMandatorException($"Mandator not found for file [{pDocument.File.Name}]")
|
||||
Else
|
||||
pDocument = MatchDocumentData(pDocument, oMandator, pTemplate)
|
||||
End If
|
||||
|
||||
pDocument = MatchDocumentData(pDocument, oMandator, pTemplate)
|
||||
pDocument.Mandator = oMandator
|
||||
|
||||
Return pDocument
|
||||
End Function
|
||||
|
||||
|
||||
2
MultiTool.Shared/Helpers.vb
Normal file
2
MultiTool.Shared/Helpers.vb
Normal file
@@ -0,0 +1,2 @@
|
||||
Friend Class Helpers
|
||||
End Class
|
||||
@@ -104,6 +104,7 @@
|
||||
<Compile Include="Documents\DocumentType.vb" />
|
||||
<Compile Include="Documents\DocumentLoader.vb" />
|
||||
<Compile Include="Exceptions.vb" />
|
||||
<Compile Include="Helpers.vb" />
|
||||
<Compile Include="IDictionaryEx.vb" />
|
||||
<Compile Include="IEnumerableEx.vb" />
|
||||
<Compile Include="Mapper.vb" />
|
||||
@@ -123,7 +124,10 @@
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<Compile Include="Templates\MandatorConfig.vb" />
|
||||
<Compile Include="Templates\MandatorConfigItem.vb" />
|
||||
<Compile Include="Templates\MappingConfig.vb" />
|
||||
<Compile Include="Templates\MappingConfigItem.vb" />
|
||||
<Compile Include="Report\ReportHead.vb" />
|
||||
<Compile Include="Report\ReportPosition.vb" />
|
||||
<Compile Include="Report\ReportSource.vb" />
|
||||
@@ -138,7 +142,7 @@
|
||||
<Compile Include="Winline\Entities\Contact.vb" />
|
||||
<Compile Include="Winline\Entities\DocumentKind.vb" />
|
||||
<Compile Include="Winline\Entities\Mandator.vb" />
|
||||
<Compile Include="Templates\ColumnConfig.vb" />
|
||||
<Compile Include="Templates\TemplateConfigItem.vb" />
|
||||
<Compile Include="Winline\WebServiceData.vb" />
|
||||
<Compile Include="XmlData.vb" />
|
||||
</ItemGroup>
|
||||
|
||||
5
MultiTool.Shared/Templates/MandatorConfig.vb
Normal file
5
MultiTool.Shared/Templates/MandatorConfig.vb
Normal file
@@ -0,0 +1,5 @@
|
||||
Namespace Templates
|
||||
Public Class MandatorConfig
|
||||
Public Property Items As New List(Of MandatorConfigItem)
|
||||
End Class
|
||||
End Namespace
|
||||
7
MultiTool.Shared/Templates/MandatorConfigItem.vb
Normal file
7
MultiTool.Shared/Templates/MandatorConfigItem.vb
Normal file
@@ -0,0 +1,7 @@
|
||||
Namespace Templates
|
||||
Public Class MandatorConfigItem
|
||||
Public Property Name As String
|
||||
Public Property OrderKey As Integer
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@@ -1,12 +1,6 @@
|
||||
Namespace Templates
|
||||
Public Class MappingConfig
|
||||
Public Property OrderKey As Integer
|
||||
Public Property SourceName As String
|
||||
Public Property SourceItem As String
|
||||
Public Property SourceRegex As String
|
||||
Public Property DestinationName As String
|
||||
Public Property DestinationItem As String
|
||||
Public Property DestinationValue As String
|
||||
Public Property Items As New List(Of MappingConfigItem)
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
12
MultiTool.Shared/Templates/MappingConfigItem.vb
Normal file
12
MultiTool.Shared/Templates/MappingConfigItem.vb
Normal file
@@ -0,0 +1,12 @@
|
||||
Namespace Templates
|
||||
Public Class MappingConfigItem
|
||||
Public Property OrderKey As Integer
|
||||
Public Property SourceName As String
|
||||
Public Property SourceItem As String
|
||||
Public Property SourceRegex As String
|
||||
Public Property DestinationName As String
|
||||
Public Property DestinationItem As String
|
||||
Public Property DestinationValue As String
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@@ -19,7 +19,7 @@
|
||||
''' Required value from Schema. This value will be written in the ColumnConfig and is not relevant from that point on.
|
||||
''' </summary>
|
||||
Public Property IsRequired As Boolean
|
||||
Public Property Config As ColumnConfig
|
||||
Public Property Config As TemplateConfigItem
|
||||
End Class
|
||||
End Class
|
||||
End Namespace
|
||||
|
||||
@@ -6,10 +6,10 @@ Namespace Templates
|
||||
''' Class for loading column/field config from database
|
||||
''' </summary>
|
||||
Public Class TemplateConfig
|
||||
Public Columns As List(Of ColumnConfig)
|
||||
Public Property Items As List(Of TemplateConfigItem)
|
||||
|
||||
Public Function GetColumn(pName As String) As ColumnConfig
|
||||
Return Columns.
|
||||
Public Function GetColumn(pName As String) As TemplateConfigItem
|
||||
Return Items.
|
||||
Where(Function(c) c.Name = pName).
|
||||
FirstOrDefault()
|
||||
End Function
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Imports MultiTool.Shared.Constants
|
||||
|
||||
Namespace Templates
|
||||
Public Class ColumnConfig
|
||||
Public Class TemplateConfigItem
|
||||
Public Property Name As String
|
||||
Public Property Table As String
|
||||
Public Property Type As ColumnType
|
||||
@@ -1,8 +1,6 @@
|
||||
Imports System.IO
|
||||
Imports DigitalData.Modules.Database
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports MultiTool.Shared.Winline
|
||||
Imports MultiTool.Shared.Helpers
|
||||
|
||||
Namespace Templates
|
||||
Public Class TemplateLoader
|
||||
@@ -12,12 +10,15 @@ Namespace Templates
|
||||
|
||||
Public Property TemplateList As List(Of Template)
|
||||
Public Property TemplateConfiguration As New TemplateConfig
|
||||
Public Property MappingConfiguration As New List(Of MappingConfig)
|
||||
Public Property MappingConfiguration As New MappingConfig
|
||||
Public Property MandatorConfiguration As New MandatorConfig
|
||||
|
||||
Private ReadOnly Database As MSSQLServer
|
||||
|
||||
Private Const VWEDI_XML_ITEMS = "VWEDI_XML_ITEMS"
|
||||
Private Const VWEDI_XML_MAPPING = "VWEDI_XML_MAPPING"
|
||||
Private Const TBEDI_XML_MANDATORS = "TBEDI_XML_MANDATORS"
|
||||
Private Const TBEDI_XML_TEMPLATES = "TBEDI_XML_TEMPLATES"
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pMSSQL As MSSQLServer)
|
||||
MyBase.New(pLogConfig, pLogConfig.GetLogger)
|
||||
@@ -26,7 +27,7 @@ Namespace Templates
|
||||
|
||||
Public Async Function LoadTemplates() As Task(Of Boolean)
|
||||
Try
|
||||
Dim oSql = $"SELECT * FROM [DD_ECM].[dbo].[TBEDI_XML_TEMPLATES]"
|
||||
Dim oSql = $"SELECT * FROM [DD_ECM].[dbo].[{TBEDI_XML_TEMPLATES}]"
|
||||
Dim oTable As DataTable = Await Database.GetDatatableAsync(oSql)
|
||||
Dim oTemplates As New List(Of Template)
|
||||
|
||||
@@ -55,10 +56,10 @@ Namespace Templates
|
||||
Try
|
||||
Dim oSql = $"SELECT * FROM [DD_ECM].[dbo].[{VWEDI_XML_MAPPING}]"
|
||||
Dim oTable As DataTable = Await Database.GetDatatableAsync(oSql)
|
||||
Dim oMappingConfigList As New List(Of MappingConfig)
|
||||
Dim oMappingConfig As New MappingConfig
|
||||
|
||||
For Each oRow As DataRow In oTable.Rows
|
||||
Dim oTemplate As New MappingConfig With {
|
||||
Dim oTemplate As New MappingConfigItem With {
|
||||
.OrderKey = oRow.ItemEx("ORDER_KEY", String.Empty),
|
||||
.SourceName = oRow.ItemEx("SOURCE_NAME", String.Empty),
|
||||
.SourceItem = oRow.ItemEx("SOURCE_ITEM", String.Empty),
|
||||
@@ -68,10 +69,35 @@ Namespace Templates
|
||||
.DestinationValue = oRow.ItemEx("DESTINATION_VALUE", String.Empty)
|
||||
}
|
||||
|
||||
oMappingConfigList.Add(oTemplate)
|
||||
oMappingConfig.Items.Add(oTemplate)
|
||||
Next
|
||||
|
||||
MappingConfiguration = oMappingConfigList
|
||||
MappingConfiguration = oMappingConfig
|
||||
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Return False
|
||||
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Async Function LoadMandatorConfiguration() As Task(Of Boolean)
|
||||
Try
|
||||
Dim oSql = $"SELECT * FROM [DD_ECM].[dbo].[{TBEDI_XML_MANDATORS}] ORDER BY ORDER_KEY"
|
||||
Dim oTable As DataTable = Await Database.GetDatatableAsync(oSql)
|
||||
Dim oMandatorConfig As New MandatorConfig
|
||||
|
||||
For Each oRow As DataRow In oTable.Rows
|
||||
Dim oMandator As New MandatorConfigItem With {
|
||||
.OrderKey = oRow.ItemEx("ORDER_KEY", String.Empty),
|
||||
.Name = oRow.ItemEx("NAME", String.Empty)
|
||||
}
|
||||
|
||||
oMandatorConfig.Items.Add(oMandator)
|
||||
Next
|
||||
|
||||
MandatorConfiguration = oMandatorConfig
|
||||
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
@@ -85,20 +111,20 @@ Namespace Templates
|
||||
Try
|
||||
Dim oSql = $"SELECT * FROM [DD_ECM].[dbo].[{VWEDI_XML_ITEMS}]"
|
||||
Dim oTable As DataTable = Await Database.GetDatatableAsync(oSql)
|
||||
Dim oItems As New List(Of ColumnConfig)
|
||||
Dim oItems As New List(Of TemplateConfigItem)
|
||||
|
||||
For Each oRow As DataRow In oTable.Rows
|
||||
Dim oColumn As New ColumnConfig() With {
|
||||
Dim oColumn As New TemplateConfigItem() With {
|
||||
.Template = oRow.ItemEx("TEMPLATE_NAME", String.Empty),
|
||||
.Table = oRow.ItemEx("XML_TABLE", String.Empty),
|
||||
.Name = oRow.ItemEx("XML_ITEM", String.Empty),
|
||||
.Type = ColumnConfig.ConvertType(ItemEx(oRow, "DATA_TYPE", String.Empty)),
|
||||
.Type = TemplateConfigItem.ConvertType(ItemEx(oRow, "DATA_TYPE", String.Empty)),
|
||||
.OrderKey = oRow.ItemEx("ORDER_KEY", 0),
|
||||
.IsReadOnly = oRow.ItemEx("IS_READ_ONLY", False),
|
||||
.IsVisible = oRow.ItemEx("IS_VISIBLE", True),
|
||||
.IsRequired = oRow.ItemEx("IS_REQUIRED", False),
|
||||
.IsHead = oRow.ItemEx("IS_HEAD", True),
|
||||
.[Function] = New ColumnConfig.ColumnFunction With {
|
||||
.[Function] = New TemplateConfigItem.ColumnFunction With {
|
||||
.Id = oRow.ItemEx("FUNCTION_ID", 0),
|
||||
.Name = oRow.ItemEx("FUNCTION_NAME", String.Empty),
|
||||
.Params = oRow.ItemEx("FUNCTION_PARAMETERS", String.Empty)
|
||||
@@ -109,7 +135,7 @@ Namespace Templates
|
||||
Next
|
||||
|
||||
TemplateConfiguration = New TemplateConfig With {
|
||||
.Columns = oItems
|
||||
.Items = oItems
|
||||
}
|
||||
|
||||
Return True
|
||||
@@ -173,7 +199,7 @@ Namespace Templates
|
||||
Dim oConfig = pTemplateConfig.GetColumn(oColumn.Name)
|
||||
|
||||
If oConfig Is Nothing Then
|
||||
oConfig = New ColumnConfig With {
|
||||
oConfig = New TemplateConfigItem With {
|
||||
.IsRequired = oColumn.IsRequired,
|
||||
.Name = oColumn.Name
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports DigitalData.Modules.Database
|
||||
Imports MultiTool.Shared.Helpers
|
||||
Imports MultiTool.Shared.Winline.Entities
|
||||
Imports System.Text.RegularExpressions
|
||||
Imports MultiTool.Shared.Templates
|
||||
Imports MultiTool.Shared.Constants
|
||||
|
||||
Namespace Winline
|
||||
Public Class WinlineData
|
||||
@@ -10,6 +11,8 @@ Namespace Winline
|
||||
|
||||
Private ReadOnly Database As MSSQLServer
|
||||
Private ReadOnly Config As Config
|
||||
Private ReadOnly MandatorConfig As MandatorConfig
|
||||
Private ReadOnly MappingConfig As MappingConfig
|
||||
|
||||
Public Articles As New List(Of Article)
|
||||
Public Accounts As New List(Of Account)
|
||||
@@ -18,39 +21,12 @@ Namespace Winline
|
||||
|
||||
Public Years As List(Of Integer)
|
||||
|
||||
Public Const ALL_MESOCOMP = "mesocomp"
|
||||
|
||||
Public Const V21_ARTICLENUMBER = "c002"
|
||||
Public Const V21_ARTICLEDESCRIPTION = "c003"
|
||||
Public Const V21_MAINARTICLENUMBER = "c011"
|
||||
Public Const V21_REPLACEMENTARTICLENUMBER = "c123"
|
||||
Public Const V21_EAN = "c075"
|
||||
|
||||
Public Const V50_ACCOUNTNUMBER = "c002"
|
||||
Public Const V50_ACCOUNTNAME = "c003"
|
||||
Public Const V50_STREETNAME = "c050"
|
||||
Public Const V50_ZIPCODE = "c051"
|
||||
Public Const V50_CITYNAME = "c052"
|
||||
Public Const V50_GLN = "c260"
|
||||
|
||||
Public Const T45_KEY = "c000"
|
||||
Public Const T45_NAME = "c001"
|
||||
Public Const T45_CONTACTNUMBER = "c063"
|
||||
|
||||
Public Const V05_ACCOUNTID = "c002"
|
||||
Public Const V05_ACCOUNTNAME = "c003"
|
||||
|
||||
Public Const T357_KINDID = "c030"
|
||||
Public Const T357_KINDNAME = "c001"
|
||||
|
||||
Public Const T01_DATABASEINFO = "c004"
|
||||
Public Const T01_MANDATORID = "c000"
|
||||
Public Const T01_MANDATORNAME = "c003"
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer, pConfig As Config)
|
||||
Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer, pConfig As Config, pMappingConfig As MappingConfig, pMandatorConfig As MandatorConfig)
|
||||
MyBase.New(pLogConfig, pLogConfig.GetLogger())
|
||||
Database = pDatabase
|
||||
Config = pConfig
|
||||
MandatorConfig = pMandatorConfig
|
||||
MappingConfig = pMappingConfig
|
||||
End Sub
|
||||
|
||||
<DebuggerStepThrough>
|
||||
@@ -165,17 +141,14 @@ Namespace Winline
|
||||
.Server = oDbInfo.Item2
|
||||
}
|
||||
|
||||
'Dim oMandatorConfig As Config.MandatorConfig = Config.Mandators.
|
||||
' Where(Function(m) oMandator.Id = m.Name).
|
||||
' SingleOrDefault()
|
||||
Dim oMandatorConfig As MandatorConfigItem = MandatorConfig.Items.
|
||||
Where(Function(item) item.Name = oMandator.Id).
|
||||
SingleOrDefault()
|
||||
|
||||
'Dim oMandatorConfig2 = MappingConfiguration.Where(Function(c) c.)
|
||||
|
||||
'If oMandatorConfig IsNot Nothing Then
|
||||
' oMandator.IsWhitelisted = True
|
||||
' oMandator.Regex = oMandatorConfig.ArticleRegex
|
||||
' oMandator.Order = oMandatorConfig.Order
|
||||
'End If
|
||||
If oMandatorConfig IsNot Nothing Then
|
||||
oMandator.IsWhitelisted = True
|
||||
oMandator.Order = oMandatorConfig.OrderKey
|
||||
End If
|
||||
|
||||
Mandators.Add(oMandator)
|
||||
Next
|
||||
@@ -411,17 +384,20 @@ Namespace Winline
|
||||
If p.Fields.ContainsKey("Artikelnummer") Then
|
||||
Return p.Fields.Item("Artikelnummer").Original
|
||||
Else
|
||||
' TODO: Throw or ignore?
|
||||
Throw New Exceptions.MissingAttributeException("Artikelnummer")
|
||||
Return Nothing
|
||||
End If
|
||||
End Function).
|
||||
Where(Function(ean) ean IsNot Nothing).
|
||||
Distinct().
|
||||
ToList()
|
||||
|
||||
Dim oYear = GetWinLineYear()
|
||||
Dim oMandatorId As String = String.Empty
|
||||
|
||||
' TODO: Instead load whitelisted mandators from database
|
||||
Dim oWhitelistedMandators = Mandators.
|
||||
Where(Function(m) m.IsWhitelisted = True).
|
||||
OrderBy(Function(m) m.Order).
|
||||
ToList()
|
||||
|
||||
For Each oEANNumber In oEANNumbers
|
||||
@@ -453,15 +429,19 @@ Namespace Winline
|
||||
Dim oArticleNumber As String = ItemEx(oRow, V21_MAINARTICLENUMBER, String.Empty)
|
||||
|
||||
' EAN was found, now we need to check it against the Regex of the current Mandantor, if one exists
|
||||
If oMandator.Regex <> String.Empty Then
|
||||
Dim oMappingConfigItem = MappingConfig.Items.
|
||||
Where(Function(item) item.DestinationName = "MANDATOR" And item.DestinationValue = oMandator.Id And item.SourceName = "ARTICLE").
|
||||
SingleOrDefault()
|
||||
|
||||
If oMappingConfigItem IsNot Nothing Then
|
||||
|
||||
Try
|
||||
Dim oRegex As New Regex(oMandator.Regex)
|
||||
Dim oRegex As New Regex(oMappingConfigItem.SourceRegex)
|
||||
Dim oMatch = oRegex.Match(oArticleNumber)
|
||||
|
||||
' If ArticleNumber matches the regex, we assign it and exit
|
||||
If oMatch.Success Then
|
||||
oMandatorId = oMandator.Id
|
||||
Exit For
|
||||
Return oMandator
|
||||
Else
|
||||
' If it does not match, continue to the next mandator
|
||||
End If
|
||||
@@ -469,21 +449,15 @@ Namespace Winline
|
||||
Logger.Error(ex)
|
||||
Logger.Warn("Regex [{0}] could not be parsed. Skipping.", oMandator.Regex)
|
||||
End Try
|
||||
|
||||
Else
|
||||
' If no regex was found, we assume the number matches
|
||||
oMandatorId = oMandator.Id
|
||||
Continue For
|
||||
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
|
||||
If oMandatorId = String.Empty Then
|
||||
Return Nothing
|
||||
Else
|
||||
Return oWhitelistedMandators.
|
||||
Where(Function(m) m.Id = oMandatorId).
|
||||
Take(1).
|
||||
SingleOrDefault()
|
||||
End If
|
||||
Return Nothing
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
|
||||
Reference in New Issue
Block a user