This commit is contained in:
Jonathan Jenne 2021-10-18 14:25:51 +02:00
parent b7602d896a
commit 5c58e05204
20 changed files with 638 additions and 132 deletions

View File

@ -0,0 +1,156 @@
USE [DD_ECM]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/* TBEDI_XML_TEMPLATES */
DROP TABLE [dbo].[TBEDI_XML_TEMPLATES]
CREATE TABLE [dbo].[TBEDI_XML_TEMPLATES](
[GUID] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,
[NAME] [nvarchar](20) NOT NULL,
[DESCRIPTION] [nvarchar](max) NULL
) ON [PRIMARY]
GO
INSERT INTO [dbo].[TBEDI_XML_TEMPLATES] (NAME, DESCRIPTION) VALUES ('EXIM-VRG_orders', 'Schaum EDI Aufträge')
/* TBEDI_XML_TYPES */
DROP TABLE [dbo].[TBEDI_XML_TYPES]
CREATE TABLE [dbo].[TBEDI_XML_TYPES](
[GUID] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,
[NAME] [nvarchar](20) NOT NULL
) ON [PRIMARY]
GO
INSERT INTO [dbo].[TBEDI_XML_TYPES] (NAME) VALUES ('STRING')
INSERT INTO [dbo].[TBEDI_XML_TYPES] (NAME) VALUES ('INTEGER')
INSERT INTO [dbo].[TBEDI_XML_TYPES] (NAME) VALUES ('DATE')
INSERT INTO [dbo].[TBEDI_XML_TYPES] (NAME) VALUES ('BOOLEAN')
INSERT INTO [dbo].[TBEDI_XML_TYPES] (NAME) VALUES ('DECIMAL')
/* TBEDI_XML_NODES */
DROP TABLE [dbo].[TBEDI_XML_FUNCTIONS]
CREATE TABLE [dbo].[TBEDI_XML_FUNCTIONS](
[GUID] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,
[NAME] [nvarchar](max) NOT NULL,
[DESCRIPTION] [nvarchar](max) NOT NULL,
[PARAMETERS] [nvarchar](max) NULL,
) ON [PRIMARY]
GO
INSERT INTO [dbo].[TBEDI_XML_FUNCTIONS] (NAME, DESCRIPTION) VALUES ('GLN', 'Finds an WinLine Account Number by GLN')
INSERT INTO [dbo].[TBEDI_XML_FUNCTIONS] (NAME, DESCRIPTION) VALUES ('EAN', 'Finds an WinLine Article Number by EAN')
/* TBEDI_XML_NODES */
DROP TABLE [dbo].[TBEDI_XML_NODES]
CREATE TABLE [dbo].[TBEDI_XML_NODES](
[GUID] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,
[NAME] [nvarchar](max) NOT NULL,
[TEMPLATE_ID] [int] NOT NULL,
[IS_HEAD] [bit] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TBEDI_XML_NODES]
ADD CONSTRAINT DF_TBEDI_XML_NODES_IS_HEAD
DEFAULT 0 FOR IS_HEAD
INSERT INTO [dbo].[TBEDI_XML_NODES] (NAME, IS_HEAD, TEMPLATE_ID) VALUES ('EXIM-VRG_ordersT025', 1, 1)
INSERT INTO [dbo].[TBEDI_XML_NODES] (NAME, IS_HEAD, TEMPLATE_ID) VALUES ('EXIM-VRG_ordersT026', 0, 1)
/* TBEDI_XML_ITEMS */
DROP TABLE [dbo].[TBEDI_XML_ITEMS]
CREATE TABLE [dbo].[TBEDI_XML_ITEMS](
[GUID] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,
[XML_NAME] [nvarchar](50) NOT NULL,
[XML_NODE_ID] [int] NOT NULL,
[XML_TYPE_ID] [int] NOT NULL,
[READ_ONLY] [bit] NOT NULL,
[FUNCTION_ID] [int] NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TBEDI_XML_ITEMS]
ADD CONSTRAINT FK_TBEDI_XML_TYPES FOREIGN KEY (XML_TYPE_ID)
REFERENCES [dbo].[TBEDI_XML_ITEMS] (GUID)
ALTER TABLE [dbo].[TBEDI_XML_ITEMS]
ADD CONSTRAINT FK_TBEDI_XML_NODES FOREIGN KEY (XML_NODE_ID)
REFERENCES [dbo].[TBEDI_XML_ITEMS] (GUID)
ALTER TABLE [dbo].[TBEDI_XML_ITEMS]
ADD CONSTRAINT DF_TBEDI_XML_ITEMS_READ_ONLY
DEFAULT 0 FOR READ_ONLY
DROP VIEW [dbo].[VWEDI_XML_ITEMS]
GO
CREATE VIEW [dbo].[VWEDI_XML_ITEMS]
AS
SELECT DISTINCT
[TBITEMS].[XML_NAME]
,[TBNODES].[NAME] [XML_ROOT]
,[TBTEMPLATES].[NAME] [TEMPLATE_NAME]
,[TBTYPES].[NAME] [DATA_TYPE]
,[TBNODES].[IS_HEAD] [IS_HEAD]
,[TBFUNCTIONS].[GUID] [FUNCTION_ID]
,[TBFUNCTIONS].[NAME] [FUNCTION_NAME]
,[TBFUNCTIONS].[PARAMETERS] [FUNCTION_PARAMETERS]
,[TBITEMS].[READ_ONLY]
FROM
[dbo].[TBEDI_XML_ITEMS] [TBITEMS]
INNER JOIN [dbo].[TBEDI_XML_NODES] [TBNODES] ON [TBITEMS].[XML_NODE_ID] = [TBNODES].[GUID]
INNER JOIN [dbo].[TBEDI_XML_TYPES] [TBTYPES] ON [TBITEMS].[XML_TYPE_ID] = [TBTYPES].[GUID]
INNER JOIN [dbo].[TBEDI_XML_TEMPLATES] [TBTEMPLATES] ON [TBNODES].[TEMPLATE_ID] = [TBTEMPLATES].[GUID]
LEFT OUTER JOIN [dbo].[TBEDI_XML_FUNCTIONS] [TBFUNCTIONS] ON [TBITEMS].[FUNCTION_ID] = [TBFUNCTIONS].[GUID]
GO
/* Kopfdaten */
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('BELEGKEY', 1, 1, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Fakt_Kontonummer', 1, 1, 1, 1)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Laufnummer', 1, 1, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Bestellt_von', 1, 1, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Lief_Kontonummer', 1, 1, 1, 1)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Belegart', 1, 2, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Datum_Auftrag-Bestellung', 1, 3, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Auftrags-Bestellnummer', 1, 1, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Leistungsdatum', 1, 3, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Infotext', 1, 1, 1, NULL)
/* Positionsdaten */
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('BELEGKEY', 2, 1, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Zeilennummer', 2, 1, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Datentyp', 2, 2, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Artikelnummer', 2, 1, 1, 2)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Bezeichnung', 2, 1, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Lieferantenartikelnummer', 2, 1, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Menge_bestellt', 2, 5, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Menge_geliefert', 2, 5, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Colli', 2, 1, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Einzelpreis', 2, 5, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Zeilenrabatt1', 2, 5, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Zeilenrabatt2', 2, 5, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Zeilenrabatt3', 2, 5, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Zeilenrabatt4', 2, 5, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('Umsatzsteuerprozent_Zeile', 2, 2, 1, NULL)
INSERT [dbo].[TBEDI_XML_ITEMS] (XML_NAME, XML_NODE_ID, XML_TYPE_ID, READ_ONLY, FUNCTION_ID) VALUES ('EDI_Infotext', 2, 1, 1, NULL)

View File

@ -259,7 +259,11 @@
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Content Include="CREATE_DATABASE.sql" />
<Content Include="README.txt" />
<None Include="Resources\resetview.svg" />
<None Include="Resources\actions_arrow4down.svg" />
<None Include="Resources\save.svg" />
<None Include="Resources\open21.svg" />
<None Include="Resources\paymentrefund.svg" />
<None Include="Resources\open2.svg" />

View File

@ -60,6 +60,16 @@ Namespace My.Resources
End Set
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property actions_arrow4down() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("actions_arrow4down", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
@ -160,6 +170,26 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property resetview() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("resetview", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property save() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("save", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>

View File

@ -133,6 +133,9 @@
<data name="import" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\import.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="save" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\save.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="tableproperties" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\tableproperties.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
@ -148,6 +151,12 @@
<data name="wraptext" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\wraptext.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="open21" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\open21.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="actions_arrow4down" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\actions_arrow4down.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="open2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\open2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
@ -160,7 +169,7 @@
<data name="showallfieldcodes" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\showallfieldcodes.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="open21" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\open21.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<data name="resetview" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\resetview.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
</root>

View File

@ -0,0 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Blue{fill:#1177D7;}
.Yellow{fill:#FFB115;}
.Black{fill:#727272;}
.Green{fill:#039C23;}
.Red{fill:#D11C1C;}
.st0{opacity:0.75;}
.st1{opacity:0.5;}
</style>
<g id="Arrow4Down">
<polygon points="18,20.3 18,4 14,4 14,20.3 6,12.3 6,18 16,28 26,18 26,12.3 " class="Green" />
</g>
</svg>

View File

@ -0,0 +1,17 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Red{fill:#D11C1C;}
.Black{fill:#727272;}
.Blue{fill:#1177D7;}
.Green{fill:#039C23;}
.Yellow{fill:#FFB115;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
.st1{opacity:0.75;}
.st2{opacity:0.25;}
</style>
<g id="ResetView">
<path d="M20,10h-0.7c-2.6,0-5.1,1-7.1,2.9L6,19.2V10l-4,4v12h12l4-4H8.8l6.2-6.2c1.2-1.2,2.7-1.8,4.2-1.8v0H20 c3.3,0,6,2.7,6,6v2h4v-2C30,14.5,25.5,10,20,10z" class="Blue" />
</g>
</svg>

View File

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Save" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Black{fill:#727272;}
</style>
<path d="M27,4h-3v10H8V4H5C4.4,4,4,4.4,4,5v22c0,0.6,0.4,1,1,1h22c0.6,0,1-0.4,1-1V5C28,4.4,27.6,4,27,4z M24,24H8v-6 h16V24z M10,4v8h10V4H10z M14,10h-2V6h2V10z" class="Black" />
</svg>

View File

@ -20,7 +20,8 @@ Partial Class frmImportMain
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim UnboundSourceProperty1 As DevExpress.Data.UnboundSourceProperty = New DevExpress.Data.UnboundSourceProperty()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmImportMain))
Dim UnboundSourceProperty4 As DevExpress.Data.UnboundSourceProperty = New DevExpress.Data.UnboundSourceProperty()
Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl()
Me.txtVersion = New DevExpress.XtraBars.BarStaticItem()
Me.txtFilesLoaded = New DevExpress.XtraBars.BarStaticItem()
@ -145,7 +146,7 @@ Partial Class frmImportMain
'
'GridViewFiles
'
Me.GridViewFiles.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.GridColumn1, Me.GridColumn2, Me.GridColumn3})
Me.GridViewFiles.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.GridColumn3, Me.GridColumn1, Me.GridColumn2})
Me.GridViewFiles.GridControl = Me.GridControlFiles
Me.GridViewFiles.Name = "GridViewFiles"
'
@ -155,7 +156,7 @@ Partial Class frmImportMain
Me.GridColumn1.FieldName = "Name"
Me.GridColumn1.Name = "GridColumn1"
Me.GridColumn1.Visible = True
Me.GridColumn1.VisibleIndex = 0
Me.GridColumn1.VisibleIndex = 1
'
'GridColumn2
'
@ -163,15 +164,18 @@ Partial Class frmImportMain
Me.GridColumn2.FieldName = "FullName"
Me.GridColumn2.Name = "GridColumn2"
Me.GridColumn2.Visible = True
Me.GridColumn2.VisibleIndex = 1
Me.GridColumn2.VisibleIndex = 2
'
'GridColumn3
'
Me.GridColumn3.Caption = "GridColumn3"
Me.GridColumn3.FieldName = "Selected"
Me.GridColumn3.ImageOptions.SvgImage = CType(resources.GetObject("GridColumn3.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.GridColumn3.ImageOptions.SvgImageSize = New System.Drawing.Size(16, 16)
Me.GridColumn3.Name = "GridColumn3"
Me.GridColumn3.UnboundType = DevExpress.Data.UnboundColumnType.[Boolean]
Me.GridColumn3.Visible = True
Me.GridColumn3.VisibleIndex = 2
Me.GridColumn3.VisibleIndex = 0
Me.GridColumn3.Width = 30
'
'SplitContainerControl2
'
@ -213,9 +217,9 @@ Partial Class frmImportMain
'
'UnboundSource1
'
UnboundSourceProperty1.DisplayName = Nothing
UnboundSourceProperty1.Name = "Property0"
Me.UnboundSource1.Properties.Add(UnboundSourceProperty1)
UnboundSourceProperty4.DisplayName = Nothing
UnboundSourceProperty4.Name = "Property0"
Me.UnboundSource1.Properties.Add(UnboundSourceProperty4)
'
'frmImportMain
'

View File

@ -117,6 +117,25 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="DevExpress.Data.v19.2" name="DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="GridColumn3.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAHICAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkNoZWNrQ2lyY2xlZCI+DQogICAgPHBhdGggZD0iTTE2
LDRDOS40LDQsNCw5LjQsNCwxNmMwLDYuNiw1LjQsMTIsMTIsMTJzMTItNS40LDEyLTEyQzI4LDkuNCwy
Mi42LDQsMTYsNHogTTE0LDIybC02LTZsMi0ybDQsNGw4LThsMiwyICAgTDE0LDIyeiIgY2xhc3M9Ikdy
ZWVuIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
<metadata name="UnboundSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>

View File

@ -27,6 +27,7 @@ Public Class frmImportMain
Private Grids As List(Of GridControl)
Private CurrentSchema As String
Private CurrentDocument As Document
Private Sub frmImportMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
txtVersion.Caption = String.Format(txtVersion.Caption, Application.ProductVersion)
@ -65,6 +66,7 @@ Public Class frmImportMain
Winline.LoadMandators()
Winline.LoadEconomicYears()
Winline.LoadDocumentKinds(Winline.Mandators)
Winline.LoadTemplateConfiguration()
For Each oMandator In Winline.Mandators
Winline.LoadAccounts(oMandator)
Next
@ -135,8 +137,11 @@ Public Class frmImportMain
Dim oView As GridView = DirectCast(oGrid.FocusedView, GridView)
Dim oRow As DataRow = oView.GetDataRow(oView.FocusedRowHandle)
Dim oColumns = oView.Columns.Select(Function(c) c.FieldName).ToList()
Dim oDocumentRow = CurrentDocument.Rows.
Where(Function(r) r.Id.ToString = oRow.Item("GUID")).
SingleOrDefault()
Dim oForm As New frmRowEditor(oRow, oColumns)
Dim oForm As New frmRowEditor(oColumns, oDocumentRow)
oForm.Showdialog()
End Sub
@ -151,17 +156,22 @@ Public Class frmImportMain
Dim oDocument As Document = GridViewFiles.GetRow(e.FocusedRowHandle)
Dim oDatasources As New Dictionary(Of String, DataTable)
' List of Root Elements in XML
For Each oRow In oDocument.Rows
Dim oGrid As GridControl = Grids.
Where(Function(g) g.Name = oRow.Name).
SingleOrDefault()
' Create initial Datatable if none exists for this Root Element
If Not oDatasources.ContainsKey(oRow.Name) Then
Dim oTable As New DataTable()
For Each ofield In oRow.Fields
oTable.Columns.Add(New DataColumn(ofield.Key))
oTable.Columns.Add(New DataColumn("GUID"))
For Each oField In oRow.Fields
oTable.Columns.Add(New DataColumn(oField.Key))
Next
oDatasources.Add(oRow.Name, oTable)
oGrid.DataSource = oTable
@ -170,6 +180,8 @@ Public Class frmImportMain
Dim oDataTable = oDatasources.Item(oRow.Name)
Dim oDataRow = oDataTable.NewRow()
oDataRow.Item("GUID") = oRow.Id.ToString
For Each oField In oRow.Fields
oDataRow.Item(oField.Key) = oField.Value
Next
@ -177,6 +189,8 @@ Public Class frmImportMain
oDataTable.Rows.Add(oDataRow)
oDataTable.AcceptChanges()
Next
CurrentDocument = oDocument
End Sub
Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick
@ -196,9 +210,9 @@ Public Class frmImportMain
For Each oRow In oDocument.Rows
w.WriteStartElement(oRow.Name)
For Each oField As KeyValuePair(Of String, String) In oRow.Fields
For Each oField As KeyValuePair(Of String, DocumentRow.FieldValue) In oRow.Fields
w.WriteStartElement(oField.Key)
w.WriteValue(oField.Value)
w.WriteValue(oField.Value.Final)
w.WriteEndElement() ' Field
Next

View File

@ -21,14 +21,19 @@ Partial Class frmRowEditor
Private Sub InitializeComponent()
Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonItem3 = New DevExpress.XtraBars.BarButtonItem()
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.GridControl1 = New DevExpress.XtraGrid.GridControl()
Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView()
Me.KEY = New DevExpress.XtraGrid.Columns.GridColumn()
Me.VALUE = New DevExpress.XtraGrid.Columns.GridColumn()
Me.Key = New DevExpress.XtraGrid.Columns.GridColumn()
Me.ValueOriginal = New DevExpress.XtraGrid.Columns.GridColumn()
Me.ValueExternal = New DevExpress.XtraGrid.Columns.GridColumn()
Me.ValueFinal = New DevExpress.XtraGrid.Columns.GridColumn()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit()
@ -38,9 +43,9 @@ Partial Class frmRowEditor
'
Me.RibbonControl1.CommandLayout = DevExpress.XtraBars.Ribbon.CommandLayout.Simplified
Me.RibbonControl1.ExpandCollapseItem.Id = 0
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItem1})
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItem1, Me.BarButtonItem2, Me.BarButtonItem3})
Me.RibbonControl1.Location = New System.Drawing.Point(0, 0)
Me.RibbonControl1.MaxItemId = 2
Me.RibbonControl1.MaxItemId = 4
Me.RibbonControl1.Name = "RibbonControl1"
Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
@ -52,11 +57,26 @@ Partial Class frmRowEditor
'
Me.BarButtonItem1.Caption = "Save"
Me.BarButtonItem1.Id = 1
Me.BarButtonItem1.ImageOptions.SvgImage = Global.ImporterForm.My.Resources.Resources.save
Me.BarButtonItem1.Name = "BarButtonItem1"
'
'BarButtonItem2
'
Me.BarButtonItem2.Caption = "Aus Winline übernehmen"
Me.BarButtonItem2.Id = 2
Me.BarButtonItem2.ImageOptions.SvgImage = Global.ImporterForm.My.Resources.Resources.actions_arrow4down
Me.BarButtonItem2.Name = "BarButtonItem2"
'
'BarButtonItem3
'
Me.BarButtonItem3.Caption = "Zurücksetzen"
Me.BarButtonItem3.Id = 3
Me.BarButtonItem3.ImageOptions.SvgImage = Global.ImporterForm.My.Resources.Resources.resetview
Me.BarButtonItem3.Name = "BarButtonItem3"
'
'RibbonPage1
'
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1})
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2})
Me.RibbonPage1.Name = "RibbonPage1"
Me.RibbonPage1.Text = "RibbonPage1"
'
@ -66,6 +86,13 @@ Partial Class frmRowEditor
Me.RibbonPageGroup1.Name = "RibbonPageGroup1"
Me.RibbonPageGroup1.Text = "RibbonPageGroup1"
'
'RibbonPageGroup2
'
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem2)
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem3)
Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
Me.RibbonPageGroup2.Text = "RibbonPageGroup2"
'
'RibbonStatusBar1
'
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 589)
@ -91,31 +118,55 @@ Partial Class frmRowEditor
'
'GridView1
'
Me.GridView1.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.KEY, Me.VALUE})
Me.GridView1.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.Key, Me.ValueOriginal, Me.ValueExternal, Me.ValueFinal})
Me.GridView1.GridControl = Me.GridControl1
Me.GridView1.Name = "GridView1"
'
'KEY
'Key
'
Me.KEY.AppearanceCell.BackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer))
Me.KEY.AppearanceCell.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.KEY.AppearanceCell.Options.UseBackColor = True
Me.KEY.AppearanceCell.Options.UseFont = True
Me.KEY.Caption = "KEY"
Me.KEY.FieldName = "KEY"
Me.KEY.Name = "KEY"
Me.KEY.OptionsColumn.AllowEdit = False
Me.KEY.OptionsColumn.ReadOnly = True
Me.KEY.Visible = True
Me.KEY.VisibleIndex = 0
Me.Key.AppearanceCell.BackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer))
Me.Key.AppearanceCell.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Key.AppearanceCell.Options.UseBackColor = True
Me.Key.AppearanceCell.Options.UseFont = True
Me.Key.Caption = "Schlüssel"
Me.Key.FieldName = "KEY"
Me.Key.Name = "Key"
Me.Key.OptionsColumn.AllowEdit = False
Me.Key.OptionsColumn.ReadOnly = True
Me.Key.Visible = True
Me.Key.VisibleIndex = 0
'
'VALUE
'ValueOriginal
'
Me.VALUE.Caption = "VALUE"
Me.VALUE.FieldName = "VALUE"
Me.VALUE.Name = "VALUE"
Me.VALUE.Visible = True
Me.VALUE.VisibleIndex = 1
Me.ValueOriginal.AppearanceCell.BackColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
Me.ValueOriginal.AppearanceCell.Options.UseBackColor = True
Me.ValueOriginal.Caption = "Original Wert"
Me.ValueOriginal.FieldName = "VALUE_ORIGINAL"
Me.ValueOriginal.Name = "ValueOriginal"
Me.ValueOriginal.OptionsColumn.AllowEdit = False
Me.ValueOriginal.OptionsColumn.ReadOnly = True
Me.ValueOriginal.Visible = True
Me.ValueOriginal.VisibleIndex = 1
'
'ValueExternal
'
Me.ValueExternal.AppearanceCell.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(192, Byte), Integer))
Me.ValueExternal.AppearanceCell.Options.UseBackColor = True
Me.ValueExternal.Caption = "Winline Wert"
Me.ValueExternal.FieldName = "VALUE_EXTERNAL"
Me.ValueExternal.Name = "ValueExternal"
Me.ValueExternal.OptionsColumn.AllowEdit = False
Me.ValueExternal.OptionsColumn.ReadOnly = True
Me.ValueExternal.Visible = True
Me.ValueExternal.VisibleIndex = 2
'
'ValueFinal
'
Me.ValueFinal.Caption = "Finaler Wert"
Me.ValueFinal.FieldName = "VALUE_FINAL"
Me.ValueFinal.Name = "ValueFinal"
Me.ValueFinal.Visible = True
Me.ValueFinal.VisibleIndex = 3
'
'frmRowEditor
'
@ -145,6 +196,11 @@ Partial Class frmRowEditor
Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents GridControl1 As DevExpress.XtraGrid.GridControl
Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.Grid.GridView
Friend WithEvents KEY As DevExpress.XtraGrid.Columns.GridColumn
Friend WithEvents VALUE As DevExpress.XtraGrid.Columns.GridColumn
Friend WithEvents Key As DevExpress.XtraGrid.Columns.GridColumn
Friend WithEvents ValueOriginal As DevExpress.XtraGrid.Columns.GridColumn
Friend WithEvents ValueFinal As DevExpress.XtraGrid.Columns.GridColumn
Friend WithEvents ValueExternal As DevExpress.XtraGrid.Columns.GridColumn
Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents BarButtonItem3 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
End Class

View File

@ -5,41 +5,42 @@ Imports ImporterShared.Documents
Public Class frmRowEditor
Private Row As DataRow
Private DocumentRow As ImporterShared.DocumentRow
Private Columns As List(Of String)
Public Sub New(pRow As DataRow, pColumns As List(Of String))
Public Sub New(pColumns As List(Of String), pDocumentRow As ImporterShared.DocumentRow)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
Row = pRow
Columns = pColumns
DocumentRow = pDocumentRow
End Sub
Private Sub frmRowEditor_Load(sender As Object, e As EventArgs) Handles Me.Load
If Row Is Nothing Then
Exit Sub
End If
Dim oDataTable As New DataTable()
Dim oDict = New Dictionary(Of String, String)
Dim oDict = New Dictionary(Of String, ImporterShared.DocumentRow.FieldValue)
For Each oColumn As String In Columns
Dim oValue
Try
oValue = Row.Item(oColumn)
Catch ex As Exception
oValue = String.Empty
End Try
Dim oField = DocumentRow.Fields.
Where(Function(f) f.Key = oColumn).
SingleOrDefault()
If oField.Value Is Nothing Then
oDict.Add(oColumn, New ImporterShared.DocumentRow.FieldValue())
Else
oDict.Add(oColumn, oField.Value)
End If
oDict.Add(oColumn, oValue)
Next
oDataTable.Columns.Add("KEY")
oDataTable.Columns.Add("VALUE")
oDataTable.Columns.Add("VALUE_ORIGINAL")
oDataTable.Columns.Add("VALUE_EXTERNAL")
oDataTable.Columns.Add("VALUE_FINAL")
For Each oKV In oDict
oDataTable.Rows.Add(oKV.Key, oKV.Value)
oDataTable.Rows.Add(oKV.Key, oKV.Value.Original, oKV.Value.External, oKV.Value.Final)
Next
GridControl1.DataSource = oDataTable

View File

@ -0,0 +1,6 @@
Public Class Constants
Public Enum XmlFunction
GLN = 1
EAN = 2
End Enum
End Class

View File

@ -7,11 +7,22 @@ Namespace Documents
Public Type As DocumentType
Public Selected As Boolean = False
''' <summary>
''' TODO: Set before submitting to web services
''' </summary>
Public CreatedAt As Date
Public TemplateName As String
Public TemplateType As Integer
Public [Option] As Integer
Public PrintVoucher As Integer
''' <summary>
''' Original Values, read-only
''' </summary>
Public Property Rows As New List(Of DocumentRow)
Public ReadOnly Property FullName As String
Get
Return File?.FullName
@ -24,7 +35,6 @@ Namespace Documents
End Get
End Property
Public Rows As New List(Of DocumentRow)
' Public Type As DocumentType
' Public Data As Object

View File

@ -18,6 +18,7 @@ Namespace Documents
Public Files As New List(Of Document)
Public Sub New(pLogConfig As LogConfig, pWinline As Winline.Data)
MyBase.New(pLogConfig, pLogConfig.GetLogger())
Winline = pWinline
@ -40,6 +41,7 @@ Namespace Documents
Files = oFiles.
Select(AddressOf WrapFileInfo).
Select(AddressOf LoadDocumentData2).
Select(Function(d) MatchDataFromWinLine(d, Winline.Mandators)).
ToList()
Return True
@ -67,12 +69,15 @@ Namespace Documents
Dim oRows As New List(Of DocumentRow)
For Each oElement As XElement In oRowElements
Dim oFields As New Dictionary(Of String, String)
Dim oFields As New Dictionary(Of String, DocumentRow.FieldValue)
Dim oSubElements = oElement.Descendants().ToList()
For Each oSubElement As XElement In oSubElements
oFields.Add(oSubElement.Name.ToString, oSubElement.Value)
oFields.Add(oSubElement.Name.ToString, New DocumentRow.FieldValue With {
.Original = oSubElement.Value,
.Final = oSubElement.Value
})
Next
Dim oRow = New DocumentRow With {
@ -91,68 +96,104 @@ Namespace Documents
Return pDocument
End Function
'Private Function MatchDataFromWinLine(pDocument As Document, pMandators As List(Of Winline.Mandator)) As Document
' Dim oMandators As List(Of Winline.Mandator) = pMandators.
' Where(Function(m) m.IsWhitelisted = True).
' OrderBy(Function(m) m.Order).
' ToList()
' If TypeOf pDocument.Data Is Schemas.Orders.Input.MESOWebService Then
' Dim oMandator = Winline.FindMatchingMandatorFromOrder(pDocument.Data)
' Dim oData As Schemas.Orders.Input.MESOWebService = MatchOrderData(pDocument.Data, oMandator)
' If oMandator Is Nothing Then
' Logger.Warn("Mandator not found for File [{0}]", pDocument.File.Name)
' End If
Private Function MatchDataFromWinLine(pDocument As Document, pMandators As List(Of Winline.Mandator)) As Document
Dim oMandators As List(Of Winline.Mandator) = pMandators.
Where(Function(m) m.IsWhitelisted = True).
OrderBy(Function(m) m.Order).
ToList()
' pDocument.Mandator = oMandator.Id
' pDocument.Data = oData
' End If
Dim oMandator = Winline.FindMatchingMandatorFromOrder(pDocument)
' Return pDocument
'End Function
If oMandator Is Nothing Then
Logger.Warn("Mandator not found for File [{0}]", pDocument.File.Name)
End If
Private Function MatchOrderData(pData As Input.MESOWebService, pMandator As Winline.Mandator) As Input.MESOWebService
pDocument = MatchOrderData(pDocument, oMandator)
pDocument.Mandator = oMandator.Id
'If TypeOf pDocument.Data Is Schemas.Orders.Input.MESOWebService Then
' Dim oMandator = Winline.FindMatchingMandatorFromOrder(pDocument.Data)
' Dim oData As Schemas.Orders.Input.MESOWebService = MatchOrderData(pDocument.Data, oMandator)
' If oMandator Is Nothing Then
' Logger.Warn("Mandator not found for File [{0}]", pDocument.File.Name)
' End If
' pDocument.Mandator = oMandator.Id
' pDocument.Data = oData
'End If
Return pDocument
End Function
Private Function MatchOrderData(pDocument As Document, pMandator As Winline.Mandator) As Document
Dim oYear = Winline.GetWinLineYear()
If pMandator Is Nothing Then
Return pData
Return pDocument
End If
Dim oHead As Input.MESOWebServiceEXIMVRG_ordersT025 = pData.Items.
Where(Function(h) TypeOf h Is Input.MESOWebServiceEXIMVRG_ordersT025).
SetValue(Sub(h As Input.MESOWebServiceEXIMVRG_ordersT025)
Dim oAccount = Winline.TryGetAccount(h.Fakt_Kontonummer, pMandator)
Dim oHead As DocumentRow = pDocument.Rows.
Where(Function(r) r.Name.ToUpper.EndsWith("T025")).
SetValue(Sub(r As DocumentRow)
Dim oAccountNumberItem = IIf(r.Fields.ContainsKey("Fakt_Kontonummer"), r.Fields.Item("Fakt_Kontonummer"), Nothing)
Dim oAccountNameItem = Nothing
If r.Fields.ContainsKey("Fakt_Name") Then
oAccountNameItem = r.Fields.Item("Fakt_Name")
End If
Dim oAccount = Winline.TryGetAccount(oAccountNumberItem.Original, pMandator)
If oAccount IsNot Nothing Then
h.Fakt_Kontonummer = oAccount.Id
h.Fakt_Name = oAccount.Name
oAccountNumberItem.External = oAccount.Id
If r.Fields.ContainsKey("Fakt_Name") Then
oAccountNameItem.External = oAccount.Name
End If
End If
End Sub).
SetValue(Sub(h As Input.MESOWebServiceEXIMVRG_ordersT025)
Dim oAccount = Winline.TryGetAccount(h.Lief_Kontonummer, pMandator)
SetValue(Sub(r As DocumentRow)
Dim oAccountNumberItem = Nothing
If r.Fields.ContainsKey("Lief_Kontonummer") Then
oAccountNumberItem = r.Fields.Item("Lief_Kontonummer")
Else
Exit Sub
End If
Dim oAccountNameItem = Nothing
If r.Fields.ContainsKey("Lief_Name") Then
oAccountNameItem = r.Fields.Item("Lief_Name")
End If
Dim oAccount = Winline.TryGetAccount(oAccountNumberItem.Original, pMandator)
If oAccount IsNot Nothing Then
h.Lief_Kontonummer = oAccount.Id
h.Lief_Name = oAccount.Name
oAccountNumberItem.External = oAccount.Id
If r.Fields.ContainsKey("Lief_Name") Then
oAccountNameItem.External = oAccount.Name
End If
End If
End Sub).
FirstOrDefault()
Dim oPositions As List(Of Input.MESOWebServiceEXIMVRG_ordersT026) = pData.Items.
Where(Function(p) TypeOf p Is Input.MESOWebServiceEXIMVRG_ordersT026).
SetValue(Sub(p)
Dim oArticleNumber = Winline.TryGetArticleNumber(p.Artikelnummer, pMandator)
Dim oPositions As List(Of DocumentRow) = pDocument.Rows.
Where(Function(r) r.Name.ToUpper.EndsWith("T026")).
SetValue(Sub(p As DocumentRow)
Dim oArticleNumberItem = p.Fields.Item("Artikelnummer")
Dim oArticleNumber = Winline.TryGetArticleNumber(oArticleNumberItem.Original, pMandator)
If oArticleNumber IsNot Nothing Then
p.Artikelnummer = oArticleNumber
oArticleNumberItem.External = oArticleNumber
End If
End Sub).
Select(Of Input.MESOWebServiceEXIMVRG_ordersT026)(Function(i) i).
ToList()
pData.Items = New List(Of Object) From {oHead}.
Concat(oPositions).
ToArray()
Dim oList As New List(Of DocumentRow) From {oHead}
pDocument.Rows = oList.Concat(oPositions).ToList()
Return pData
Return pDocument
End Function
Private Function WrapFileInfo(pFileInfo As FileInfo) As Document

View File

@ -1,4 +1,23 @@
Public Class DocumentRow
''' <summary>
''' Tabellen/Elementname aus XML
''' </summary>
Public Name As String
Public Fields As Dictionary(Of String, String)
Public Id As New Guid
Public Fields As Dictionary(Of String, FieldValue)
Public Sub New()
Id = Guid.NewGuid()
End Sub
Public Class FieldValue
Public Original As String = ""
Public External As String = ""
Public Final As String = ""
Public Overrides Function ToString() As String
Return Final
End Function
End Class
End Class

View File

@ -94,6 +94,7 @@
<ItemGroup>
<Compile Include="BaseClass.vb" />
<Compile Include="Config.vb" />
<Compile Include="Constants.vb" />
<Compile Include="Documents\Document.vb" />
<Compile Include="Documents\DocumentMatch.vb" />
<Compile Include="Documents\DocumentRow.vb" />
@ -130,7 +131,7 @@
<Compile Include="Winline\Entities\Contact.vb" />
<Compile Include="Winline\Entities\DocumentKind.vb" />
<Compile Include="Winline\Entities\Mandator.vb" />
<Compile Include="Winline\Entities\XmlItem.vb" />
<Compile Include="Winline\Entities\TemplateColumn.vb" />
<Compile Include="Winline\WebService.vb" />
<Compile Include="XmlData.vb" />
</ItemGroup>

View File

@ -16,8 +16,10 @@ Namespace Winline
Public Mandators As New List(Of Mandator)
Public DocumentKinds As New List(Of DocumentKind)
Public Years As List(Of Integer)
Public XmlConfigHead As List(Of XmlItem)
Public XmlConfigPositions As List(Of XmlItem)
Public TemplateConfiguration As New List(Of TemplateColumn)
'Public XmlConfigHead As List(Of TemplateColumn)
'Public XmlConfigPositions As List(Of TemplateColumn)
Public Const ALL_MESOCOMP = "mesocomp"
@ -340,39 +342,47 @@ Namespace Winline
End Try
End Function
Public Function FindMatchingMandatorFromOrder(pData As Schemas.Orders.Input.MESOWebService) As Mandator
Dim oPositions As List(Of Schemas.Orders.Input.MESOWebServiceEXIMVRG_ordersT026) = pData.Items.
Where(Function(i) TypeOf i Is Schemas.Orders.Input.MESOWebServiceEXIMVRG_ordersT026).
Select(Of Schemas.Orders.Input.MESOWebServiceEXIMVRG_ordersT026)(Function(i) i).
Public Function FindMatchingMandatorFromOrder(pData As Documents.Document) As Mandator
Dim oPositions = pData.Rows.
Where(Function(r) r.Name.ToUpper.EndsWith("T026")).
ToList()
Dim oEANNumbers = oPositions.
Select(Function(p) p.Fields.Item("Artikelnummer").Original).
Distinct().
ToList()
'Dim oPositions As List(Of Schemas.Orders.Input.MESOWebServiceEXIMVRG_ordersT026) = pData.Items.
' Where(Function(i) TypeOf i Is Schemas.Orders.Input.MESOWebServiceEXIMVRG_ordersT026).
' Select(Of Schemas.Orders.Input.MESOWebServiceEXIMVRG_ordersT026)(Function(i) i).
' ToList()
Dim oYear = GetWinLineYear()
Dim oMandatorId As String = String.Empty
Dim oWhitelistedMandators = Mandators.
Where(Function(m) m.IsWhitelisted = True).
ToList()
For Each oPos In oPositions
For Each oEANNumber In oEANNumbers
For Each oMandator In oWhitelistedMandators
Dim oSQL As String = $"
SELECT
[c011], -- Artikelnummer
[c003], -- Artikelbezeichnung
[c075], -- EAN-Nummer
[c123] -- Ersatzartikelnummer
FROM [{oMandator.Database}].[dbo].[v021]
WHERE [c075] = '{oPos.Artikelnummer}'
AND [mesocomp] = '{oMandator.Id}' AND [mesoyear] = {oYear}"
SELECT
[c011], -- Artikelnummer
[c003], -- Artikelbezeichnung
[c075], -- EAN-Nummer
[c123] -- Ersatzartikelnummer
FROM [{oMandator.Database}].[dbo].[v021]
WHERE [c075] = '{oEANNumber}'
AND [mesocomp] = '{oMandator.Id}' AND [mesoyear] = {oYear}"
Dim oTable As DataTable = Database.GetDatatable(oSQL)
' EAN not found in this Mandator, continue to next one
If oTable.Rows.Count = 0 Then
Logger.Debug("EAN [{0}] was not found in Mandator: [{1}]", oPos.Artikelnummer, oMandator.Id)
Logger.Debug("EAN [{0}] was not found in Mandator: [{1}]", oEANNumber, oMandator.Id)
Continue For
End If
' Duplicate EAN, exit and do nothing about this manda
If oTable.Rows.Count > 1 Then
Logger.Warn("EAN [{0}] was found more than once. Skipping Mandator [{1}]", oPos.Artikelnummer, oMandator.Id)
Logger.Warn("EAN [{0}] was found more than once. Skipping Mandator [{1}]", oEANNumber, oMandator.Id)
Exit For
End If
@ -413,23 +423,107 @@ Namespace Winline
End If
End Function
Public Sub GetXmlConfiguration()
'Public Function FindMatchingMandatorFromOrder(pData As Schemas.Orders.Input.MESOWebService) As Mandator
' Dim oPositions As List(Of Schemas.Orders.Input.MESOWebServiceEXIMVRG_ordersT026) = pData.Items.
' Where(Function(i) TypeOf i Is Schemas.Orders.Input.MESOWebServiceEXIMVRG_ordersT026).
' Select(Of Schemas.Orders.Input.MESOWebServiceEXIMVRG_ordersT026)(Function(i) i).
' ToList()
' Dim oYear = GetWinLineYear()
' Dim oMandatorId As String = String.Empty
' Dim oWhitelistedMandators = Mandators.
' Where(Function(m) m.IsWhitelisted = True).
' ToList()
' For Each oPos In oPositions
' For Each oMandator In oWhitelistedMandators
' Dim oSQL As String = $"
' SELECT
' [c011], -- Artikelnummer
' [c003], -- Artikelbezeichnung
' [c075], -- EAN-Nummer
' [c123] -- Ersatzartikelnummer
' FROM [{oMandator.Database}].[dbo].[v021]
' WHERE [c075] = '{oPos.Artikelnummer}'
' AND [mesocomp] = '{oMandator.Id}' AND [mesoyear] = {oYear}"
' Dim oTable As DataTable = Database.GetDatatable(oSQL)
' ' EAN not found in this Mandator, continue to next one
' If oTable.Rows.Count = 0 Then
' Logger.Debug("EAN [{0}] was not found in Mandator: [{1}]", oPos.Artikelnummer, oMandator.Id)
' Continue For
' End If
' ' Duplicate EAN, exit and do nothing about this manda
' If oTable.Rows.Count > 1 Then
' Logger.Warn("EAN [{0}] was found more than once. Skipping Mandator [{1}]", oPos.Artikelnummer, oMandator.Id)
' Exit For
' End If
' Dim oRow As DataRow = oTable.Rows.Item(0)
' Dim oArticleNumber As String = Utils.NotNull(oRow.Item(V21_ARTICLENUMBER), 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
' Try
' Dim oRegex As New Regex(oMandator.Regex)
' Dim oMatch = oRegex.Match(oArticleNumber)
' ' If ArticleNumber matches the regex, we assign it and exit
' If oMatch.Success Then
' oMandatorId = oMandator.Id
' Exit For
' Else
' ' If it does not match, continue to the next mandator
' End If
' Catch ex As Exception
' 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
' 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
'End Function
Public Function LoadTemplateConfiguration() As Boolean
Try
Dim oSql = $"SELECT XML_NAME, XML_ROOT, DATA_TYPE, IS_HEAD FROM [DD_ECM].[dbo].[VWEDI_XML_ITEMS]"
Dim oSql = $"SELECT XML_NAME, XML_ROOT, TEMPLATE_NAME, DATA_TYPE, IS_HEAD, FUNCTION_ID, READ_ONLY FROM [DD_ECM].[dbo].[VWEDI_XML_ITEMS]"
Dim oTable As DataTable = Database.GetDatatable(oSql)
Dim oItems As New List(Of TemplateColumn)
For Each oRow As DataRow In oTable.Rows
Dim oXmlItem As New XmlItem With {
Dim oColumn As New TemplateColumn With {
.Name = oRow.Item("XML_NAME"),
.Root = oRow.Item("XML_ROOT"),
.Type = oRow.Item("XML_TYPE")
.Type = oRow.Item("XML_TYPE"),
.Template = oRow.Item("TEMPLATE_NAME"),
.[Function] = oRow.Item("FUNCTION_ID"),
.[ReadOnly] = oRow.Item("READ_ONLY")
}
oItems.Add(oColumn)
Next
TemplateConfiguration = oItems
Return True
Catch ex As Exception
Logger.Error(ex)
Return False
End Try
End Sub
End Function
''' <summary>
''' Turns a database info like "SQLCWLDATEN on SERVER\INSTANCE" into a Tuple of two strings

View File

@ -0,0 +1,12 @@
Namespace Winline
Public Class TemplateColumn
Public Name As String
Public Root As String
Public Type As String
Public IsHead As Boolean
Public Template As String
Public [ReadOnly] As Boolean
Public [Function] As Constants.XmlFunction
End Class
End Namespace

View File

@ -1,9 +0,0 @@
Namespace Winline
Public Class XmlItem
Public Name As String
Public Root As String
Public Type As String
Public IsHead As Boolean
End Class
End Namespace