This commit is contained in:
Jonathan Jenne 2021-08-11 16:17:59 +02:00
parent 50c1e86219
commit d165817f8a
14 changed files with 880 additions and 289 deletions

View File

@ -1,13 +1,28 @@
Public Class Config
Public Property ConnectionString As String = ""
Public Property Mandators As New List(Of String)
Public Property Mandators As New List(Of Mandator)
Public Property InputDirectory As String = ""
Public Property OutputDirectory As String = ""
Public Property Webservice As New WebServiceConfig()
Public Property DefaultYearOverride As Integer = 0
Public Class WebServiceConfig
Public Property BaseUrl As String = "http://127.0.0.1/EWL"
Public Property Username As String = "Username"
Public Property Password As String = "Password"
End Class
Public Class Mandator
Public Property Order As Integer
Public Property Name As String
Public Property ArticleRegex As String
End Class
Public Function GetYear() As Integer
If DefaultYearOverride > 0 Then
Return DefaultYearOverride
End If
Return Now.Year
End Function
End Class

View File

@ -1,11 +1,16 @@
Imports System.IO
Imports EDIDocumentImport.WinLineInfo
Public Class DocumentInfo
Public Class Document
Public File As FileInfo
Public Type As DocumentType
Public Mandator As Mandator
Public DataOriginal As Object
Public Data As Object
Public Selected As Boolean = False
Public ReadOnly Property FullName As String

View File

@ -2,18 +2,27 @@
Imports System.Xml
Imports System.Xml.Serialization
Imports System.Xml.XPath
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Language
Imports EDIDocumentImport.DocumentInfo
Imports System.Text.RegularExpressions
Imports EDIDocumentImport.WinLineInfo
Public Class DocumentLoader
Inherits Base
Public Config As Config
Private Database As MSSQLServer
Private Winline As WinLineInfo
Public Files As New List(Of Document)
Public Sub New(pLogConfig As LogConfig, pConfig As Config)
Public Sub New(pLogConfig As LogConfig, pConfig As Config, pDatabase As MSSQLServer, pWinline As WinLineInfo)
MyBase.New(pLogConfig, pLogConfig.GetLogger())
Config = pConfig
Database = pDatabase
Winline = pWinline
End Sub
Public Function LoadFiles() As Boolean
@ -32,6 +41,9 @@ Public Class DocumentLoader
Files = oFiles.
Select(AddressOf WrapFileInfo).
Select(AddressOf LoadDocumentData).
Select(Function(oDocument)
Return MatchDataFromWinLine(oDocument, Winline.Mandators)
End Function).
ToList()
Return True
@ -43,30 +55,190 @@ Public Class DocumentLoader
End Try
End Function
Private Function FindMatchingMandatorFromOrder(pData As Orders.MESOWebService) As Mandator
Dim oPositions As List(Of Orders.MESOWebServiceEXIMVRG_ordersT026) = pData.Items.
Where(Function(i) TypeOf i Is Orders.MESOWebServiceEXIMVRG_ordersT026).
Select(Of Orders.MESOWebServiceEXIMVRG_ordersT026)(Function(i) i).
ToList()
Dim oYear = Winline.GetWinLineYear()
Dim oMandatorId As String = String.Empty
Dim oWhitelistedMandators = Winline.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(WinLineInfo.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
Private Function MatchDataFromWinLine(pDocument As DocumentInfo.Document, pMandators As List(Of WinLineInfo.Mandator)) As DocumentInfo.Document
Dim oMandators As List(Of WinLineInfo.Mandator) = pMandators.
Where(Function(m) m.IsWhitelisted = True).
OrderBy(Function(m) m.Order).
ToList()
If TypeOf pDocument.Data Is Orders.MESOWebService Then
Dim oMandator = FindMatchingMandatorFromOrder(pDocument.Data)
Dim oData As Orders.MESOWebService = MatchOrderData(pDocument.Data, oMandator)
pDocument.Mandator = oMandator
pDocument.Data = oData
End If
Return pDocument
End Function
Private Function MatchOrderData(pData As Orders.MESOWebService, pMandator As WinLineInfo.Mandator) As Orders.MESOWebService
Dim oYear = Winline.GetWinLineYear()
If pMandator Is Nothing Then
Return pData
End If
Dim oHead As Orders.MESOWebServiceEXIMVRG_ordersT025 = pData.Items.
Where(Function(h) TypeOf h Is Orders.MESOWebServiceEXIMVRG_ordersT025).
SetValue(Sub(h)
Dim oAccountNumber = Winline.TryGetAccountNumber(h.Fakt_Kontonummer, pMandator)
If oAccountNumber IsNot Nothing Then
h.Fakt_Kontonummer = oAccountNumber
End If
Dim oAccountNumber2 = Winline.TryGetAccountNumber(h.Lief_Kontonummer, pMandator)
If oAccountNumber2 IsNot Nothing Then
h.Lief_Kontonummer = oAccountNumber2
End If
End Sub).
FirstOrDefault()
Dim oPositions As List(Of Orders.MESOWebServiceEXIMVRG_ordersT026) = pData.Items.
Where(Function(p) TypeOf p Is Orders.MESOWebServiceEXIMVRG_ordersT026).
SetValue(Sub(p)
Dim oArticleNumber = Winline.TryGetArticleNumber(p.Artikelnummer, pMandator)
If oArticleNumber IsNot Nothing Then
p.Artikelnummer = oArticleNumber
End If
End Sub).
Select(Of Orders.MESOWebServiceEXIMVRG_ordersT026)(Function(i) i).
ToList()
pData.Items = New List(Of Object) From {oHead}.
Concat(oPositions).
ToArray()
'Dim oAccountNumber = Winline.TryGetAccountNumber(oHead.Fakt_Kontonummer, oMandator)
'If oAccountNumber IsNot Nothing Then
' oHead.Fakt_Kontonummer = oAccountNumber
'End If
'Dim oAccountNumber2 = Winline.TryGetAccountNumber(oHead.Lief_Kontonummer, oMandator)
'If oAccountNumber2 IsNot Nothing Then
' oHead.Lief_Kontonummer = oAccountNumber2
'End If
'For Each oPos In oPositions
' Dim oArticleNumber = Winline.TryGetArticleNumber(oPos.Artikelnummer, oMandator)
' If oArticleNumber Then
' oPos.Artikelnummer = oArticleNumber
' End If
'Next
Return pData
End Function
Private Function WrapFileInfo(pFileInfo As FileInfo) As Document
Return New Document With {.File = pFileInfo}
End Function
Public Function LoadDocumentData(pDocument As Document) As Document
Private Function LoadDocumentData(pDocument As Document) As Document
Using oFileStream As New FileStream(pDocument.FullName, FileMode.Open, FileAccess.Read, FileShare.Read)
Dim oXmlDocument = New XPathDocument(oFileStream)
Dim oNavigator = oXmlDocument.CreateNavigator()
Dim oTemplateName = GetTemplateName(oNavigator)
Dim oDocumentType = GetDocumentTypeFromTemplateName(oTemplateName)
Dim oSchemaType = GetDocumentSchemaFromDocumentType(oDocumentType)
' Read data the first time, working copy
Using oReader = oNavigator.ReadSubtree()
Dim oTemplateName = GetTemplateName(oNavigator)
Dim oDocumentType = GetDocumentTypeFromTemplateName(oTemplateName)
Dim oSchemaType = GetDocumentSchemaFromDocumentType(oDocumentType)
Dim oSerializer As New XmlSerializer(oSchemaType)
Dim oObject = oSerializer.Deserialize(oReader)
pDocument.Data = oSerializer.Deserialize(oReader)
pDocument.Data = oObject
pDocument.Type = oDocumentType
Return pDocument
End Using
' Read data the second time, archive copy
Using oReader = oNavigator.ReadSubtree()
Dim oSerializer As New XmlSerializer(oSchemaType)
pDocument.DataOriginal = oSerializer.Deserialize(oReader)
End Using
pDocument.Type = oDocumentType
Return pDocument
End Using
End Function
Public Function GetTemplateName(pDocument As XPathNavigator) As String
Private Function GetTemplateName(pDocument As XPathNavigator) As String
Dim oTemplateName = pDocument.
SelectSingleNode("//MESOWebService").
GetAttribute("Template", "")

View File

@ -3,6 +3,7 @@
Public Class DocumentPositions
Public Class OrderPosition
Public Property RowNumber As Integer
Public Property EuropeanArticleNumber As String
Public Property ArticleNumber As String
Public Property ArticleNumberVendor As String
Public Property ArticleDescription As String
@ -23,34 +24,43 @@ Public Class DocumentPositions
.Caption = "Artikelnummer",
.VisibleIndex = 1
}
Public Shared Property ColumnEuropeanArticleNumber As New GridColumn With {
.FieldName = "EuropeanArticleNumber",
.Caption = "EAN",
.VisibleIndex = 2
}
Public Shared Property ColumnArticleNumberVendor As New GridColumn With {
.FieldName = "ArticleNumberVendor",
.Caption = "Artikel Lieferant",
.VisibleIndex = 2
.VisibleIndex = 3
}
Public Shared Property ColumnArticleDescription As New GridColumn With {
.FieldName = "ArticleDescription",
.Caption = "Artikel Beschreibung",
.VisibleIndex = 3
.VisibleIndex = 4
}
Public Shared Property ColumnAmount As New GridColumn With {
.FieldName = "Amount",
.Caption = "Menge",
.VisibleIndex = 4
.VisibleIndex = 5
}
Public Shared Property ColumnEDIPrice As New GridColumn With {
.FieldName = "EDIPrice",
.Caption = "Einzelpreis EDI",
.VisibleIndex = 5
.VisibleIndex = 6
}
Public Shared Property ColumnWinLinePrice As New GridColumn With {
.FieldName = "WinLinePrice",
.Caption = "Einzelpreis WinLine",
.VisibleIndex = 6
.VisibleIndex = 7
}
Public Shared Property ColumnPrice As New GridColumn With {
.FieldName = "Price",
.Caption = "Einzelpreis",
.VisibleIndex = 7
.VisibleIndex = 8
}
Public Shared Property WritableColumns As New List(Of GridColumn) From {
ColumnPrice
}
End Class

View File

@ -89,6 +89,10 @@
<Reference Include="DigitalData.Modules.Database">
<HintPath>..\..\DDMonorepo\Modules.Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.Language, Version=1.3.2.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\DDMonorepo\Modules.Language\bin\Release\DigitalData.Modules.Language.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.Logging">
<HintPath>..\..\DDMonorepo\Modules.Logging\bin\Release\DigitalData.Modules.Logging.dll</HintPath>
</Reference>
@ -137,6 +141,7 @@
<Compile Include="frmMain.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="IEnumerableEx.vb" />
<Compile Include="My Project\AssemblyInfo.vb" />
<Compile Include="My Project\Application.Designer.vb">
<AutoGen>True</AutoGen>
@ -194,6 +199,9 @@
<None Include="Resources\itemtypechecked.svg" />
<None Include="Resources\deletetablerows.svg" />
<None Include="Resources\tableproperties.svg" />
<None Include="Resources\tilelabels.svg" />
<None Include="Resources\wraptext.svg" />
<None Include="Resources\singlepageview.svg" />
<Content Include="Schemas\xsd.exe" />
</ItemGroup>
<ItemGroup>

View File

@ -0,0 +1,12 @@
Imports System.Runtime.CompilerServices
Module IEnumerableEx
<Extension()>
Function SetValue(Of T)(ByVal items As IEnumerable(Of T), ByVal updateMethod As Action(Of T)) As IEnumerable(Of T)
For Each item As T In items
updateMethod(item)
Next
Return items
End Function
End Module

View File

@ -140,6 +140,16 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property singlepageview() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("singlepageview", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
@ -149,5 +159,25 @@ Namespace My.Resources
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 tilelabels() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("tilelabels", 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 wraptext() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("wraptext", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
End Module
End Namespace

View File

@ -118,31 +118,40 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<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="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>
<data name="bo_validation" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\bo_validation.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="pagesetup" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\pagesetup.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>
<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="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="deletetablerows" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\deletetablerows.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="bo_validation" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\bo_validation.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<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 name="tilelabels" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\tilelabels.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="open" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\open.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="pagesetup" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\pagesetup.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="itemtypechecked" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\itemtypechecked.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>
<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 name="singlepageview" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\singlepageview.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,16 @@
<?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">
.Yellow{fill:#FFB115;}
.Red{fill:#D11C1C;}
.Blue{fill:#1177D7;}
.Green{fill:#039C23;}
.Black{fill:#727272;}
.White{fill:#FFFFFF;}
.st0{opacity:0.75;}
</style>
<g id="SinglePageView">
<path d="M27,0H3C2.4,0,2,0.4,2,1v28c0,0.6,0.4,1,1,1h24c0.6,0,1-0.4,1-1V1C28,0.4,27.6,0,27,0z M26,28H4V2h22V28z" class="Black" />
<path d="M22,8H8V6h14V8z M22,10H8v2h14V10z M22,14H8v2h14V14z M22,18H8v2h14V18z M22,22H8v2h14V22z" class="Blue" />
</g>
</svg>

View File

@ -0,0 +1,19 @@
<?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">
.Green{fill:#039C23;}
.Black{fill:#727272;}
.Red{fill:#D11C1C;}
.Yellow{fill:#FFB115;}
.Blue{fill:#1177D7;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
.st1{opacity:0.75;}
</style>
<g id="TileLabels">
<path d="M2,2v18h18V2H2z M8,6H4V4h4V6z" class="Blue" />
<path d="M2,22v8h18v-8H2z M8,26H4v-2h4V26z" class="Red" />
<path d="M22,22v8h8v-8H22z M28,26h-4v-2h4V26z" class="Yellow" />
<path d="M22,2v18h8V2H22z M28,6h-4V4h4V6z" class="Green" />
</g>
</svg>

View File

@ -0,0 +1,9 @@
<?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="Wrap_Text" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Blue{fill:#1177D7;}
.Black{fill:#727272;}
</style>
<path d="M19,16H1c-0.6,0-1,0.4-1,1v12c0,0.6,0.4,1,1,1h18c0.6,0,1-0.4,1-1V17C20,16.4,19.6,16,19,16z M18,28H2V18h16 V28z M19,2H1C0.4,2,0,2.4,0,3v8c0,0.6,0.4,1,1,1h18c0.6,0,1-0.4,1-1V3C20,2.4,19.6,2,19,2z M18,10H2V4h16V10z M16,8H4V6h12V8z M16,22H4v-2h12V22z M16,26H4v-2h12V26z" class="Black" />
<path d="M31,6h-9v2h8v14h-2v-3l-6,4l6,4v-3h3c0.6,0,1-0.4,1-1V7C32,6.4,31.6,6,31,6z" class="Blue" />
</svg>

View File

@ -1,15 +1,20 @@
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Language
Public Class WinLineInfo
Inherits Base
Private Database As MSSQLServer
Private Config As Config
Public Accounts As New List(Of Account)
Public Mandators As New List(Of Mandator)
Public Years As List(Of Integer)
Public Const V21_ARTICLENUMBER = "c011"
Public Const V50_ACCOUNTNUMBER = "c002"
Public Class Account
Public Property Id As String
Public Property Name As String
@ -24,17 +29,29 @@ Public Class WinLineInfo
Public Property Name As String
Public Property Database As String
Public Property Server As String
Public Property Regex As String
Public Property Order As Integer
Public Property IsWhitelisted As Boolean
Public Overrides Function ToString() As String
Return $"{Name} ({Id})"
End Function
End Class
Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer)
Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer, pConfig As Config)
MyBase.New(pLogConfig, pLogConfig.GetLogger())
Database = pDatabase
Config = pConfig
End Sub
Public Function GetWinLineYear(pYear As Integer)
Return (pYear - 1900) * 12
End Function
Public Function GetWinLineYear()
Return GetWinLineYear(Config.GetYear)
End Function
Public Sub LoadAccounts(pMandator As Mandator)
Dim oSQL = $"SELECT [c002], [c003] FROM [{pMandator.Server}].[{pMandator.Database}].[dbo].[v005] WHERE c139 IS NULL"
Dim oTable = Database.GetDatatable(oSQL)
@ -55,13 +72,24 @@ Public Class WinLineInfo
Mandators.Clear()
For Each oRow As DataRow In oTable.Rows
Dim oDbInfo = SplitConnectionInfo(oRow)
Mandators.Add(New Mandator With {
Dim oMandator = New Mandator With {
.Id = oRow.Item("c000"),
.Name = oRow.Item("c003"),
.Database = oDbInfo.Item1,
.Server = oDbInfo.Item2
})
}
Dim oMandatorConfig As Config.Mandator = Config.Mandators.
Where(Function(m) oMandator.Id = m.Name).
SingleOrDefault()
If oMandatorConfig IsNot Nothing Then
oMandator.IsWhitelisted = True
oMandator.Regex = oMandatorConfig.ArticleRegex
oMandator.Order = oMandatorConfig.Order
End If
Mandators.Add(oMandator)
Next
End Sub
@ -71,6 +99,81 @@ Public Class WinLineInfo
Years = oRange
End Sub
Public Function TryGetAccountNumber(pGLN As String, pMandator As Mandator) As String
Try
Dim oYear As Integer = GetWinLineYear()
Dim oSQL = $"
SELECT
[c002], -- Kundennummer
[c003] -- Kundenname
FROM [{pMandator.Database}].[dbo].[v050]
WHERE [c004] = 2 -- Was für ein Konto??
AND [c260] = {pGLN}
AND [mesocomp] = '{pMandator.Id}' and [mesoyear] = {oYear}"
Dim oTable As DataTable = Database.GetDatatable(oSQL)
' GLN not found in this Mandator, continue to next one
If oTable.Rows.Count = 0 Then
Logger.Debug("GLN [{0}] was not found in Mandator: [{1}]", pGLN, pMandator.Id)
Return Nothing
End If
' Duplicate GLN, exit and do nothing about this number
If oTable.Rows.Count > 1 Then
Logger.Warn("GLN [{0}] was found more than once in Mandator: [{1}]", pGLN, pMandator.Id)
Return Nothing
End If
Dim oRow As DataRow = oTable.Rows.Item(0)
Dim oArticleNumber As String = Utils.NotNull(oRow.Item(V50_ACCOUNTNUMBER), String.Empty)
Return oArticleNumber
Catch ex As Exception
Logger.Error(ex)
Return Nothing
End Try
End Function
Public Function TryGetArticleNumber(pEAN As String, pMandator As Mandator) As String
Try
Dim oYear As Integer = GetWinLineYear()
Dim oSQL As String = $"
SELECT
[c011], -- Artikelnummer
[c003], -- Artikelbezeichnung
[c075], -- EAN-Nummer
[c123] -- Ersatzartikelnummer
FROM [{pMandator.Database}].[dbo].[v021]
WHERE [c075] = '{pEAN}'
AND [mesocomp] = '{pMandator.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}]", pEAN, pMandator.Id)
Return Nothing
End If
' Duplicate EAN, exit and do nothing about this number
If oTable.Rows.Count > 1 Then
Logger.Warn("EAN [{0}] was found more than once", pEAN)
Return Nothing
End If
Dim oRow As DataRow = oTable.Rows.Item(0)
Dim oArticleNumber As String = Utils.NotNull(oRow.Item(V21_ARTICLENUMBER), String.Empty)
Return oArticleNumber
Catch ex As Exception
Logger.Error(ex)
Return Nothing
End Try
End Function
''' <summary>
''' Turns a database info like "CWLDATEN on SERVER\INSTANCE" into a Tuple of two strings
''' </summary>

View File

@ -32,6 +32,7 @@ Partial Class frmMain
Me.txtVersion = New DevExpress.XtraBars.BarStaticItem()
Me.BarButtonItem6 = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonItem7 = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonItem8 = 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()
@ -64,28 +65,34 @@ Partial Class frmMain
Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView()
Me.cmbDeliveryAddress = New DevExpress.XtraEditors.SearchLookUpEdit()
Me.GridView2 = New DevExpress.XtraGrid.Views.Grid.GridView()
Me.cmbYears = New DevExpress.XtraEditors.ComboBoxEdit()
Me.txtCustomerGLN = New DevExpress.XtraEditors.TextEdit()
Me.txtDeliveryAddressGLN = New DevExpress.XtraEditors.TextEdit()
Me.Root = New DevExpress.XtraLayout.LayoutControlGroup()
Me.TabbedControlGroup2 = New DevExpress.XtraLayout.TabbedControlGroup()
Me.LayoutControlGroup2 = New DevExpress.XtraLayout.LayoutControlGroup()
Me.LayoutControlItemRunningNumber = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem11 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem4 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem1 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem5 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutItemOrderIssuer = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem3 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutItemOrderNumber = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem6 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem9 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem10 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem11 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItemRunningNumber = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutItemOrderDate = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem12 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem13 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlGroup1 = New DevExpress.XtraLayout.LayoutControlGroup()
Me.LayoutControlItem10 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem8 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem9 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem7 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem1 = New DevExpress.XtraLayout.LayoutControlItem()
Me.SimpleSeparator1 = New DevExpress.XtraLayout.SimpleSeparator()
Me.LayoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem5 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem6 = New DevExpress.XtraLayout.LayoutControlItem()
Me.GridControlPositions = New DevExpress.XtraGrid.GridControl()
Me.GridViewPositions = New DevExpress.XtraGrid.Views.Grid.GridView()
Me.SplitContainerControl3 = New DevExpress.XtraEditors.SplitContainerControl()
Me.RichEditXml = New DevExpress.XtraRichEdit.RichEditControl()
Me.LayoutControlItem4 = New DevExpress.XtraLayout.LayoutControlItem()
Me.cmbYears = New DevExpress.XtraEditors.ComboBoxEdit()
CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.GridControlFiles, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.GridViewFiles, System.ComponentModel.ISupportInitialize).BeginInit()
@ -113,40 +120,50 @@ Partial Class frmMain
CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.cmbDeliveryAddress.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.GridView2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.cmbYears.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.txtCustomerGLN.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.txtDeliveryAddressGLN.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.Root, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.TabbedControlGroup2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlGroup2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItemRunningNumber, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem11, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutItemOrderIssuer, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutItemOrderNumber, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem6, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem9, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem10, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem11, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItemRunningNumber, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutItemOrderDate, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem12, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem13, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem10, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem8, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem9, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem7, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SimpleSeparator1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem6, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.GridControlPositions, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.GridViewPositions, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainerControl3, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainerControl3.SuspendLayout()
CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.cmbYears.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'RibbonControl
'
Me.RibbonControl.ExpandCollapseItem.Id = 0
Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.btnLoadDocuments, Me.txtFilesLoaded, Me.BarButtonItem1, Me.BarButtonItem2, Me.BarButtonItem3, Me.checkShowXml, Me.BarButtonItem4, Me.BarButtonItem5, Me.txtVersion, Me.BarButtonItem6, Me.BarButtonItem7})
Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.btnLoadDocuments, Me.txtFilesLoaded, Me.BarButtonItem1, Me.BarButtonItem2, Me.BarButtonItem3, Me.checkShowXml, Me.BarButtonItem4, Me.BarButtonItem5, Me.txtVersion, Me.BarButtonItem6, Me.BarButtonItem7, Me.BarButtonItem8})
Me.RibbonControl.Location = New System.Drawing.Point(0, 0)
Me.RibbonControl.MaxItemId = 15
Me.RibbonControl.MaxItemId = 16
Me.RibbonControl.Name = "RibbonControl"
Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
Me.RibbonControl.Size = New System.Drawing.Size(1406, 158)
Me.RibbonControl.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
Me.RibbonControl.ShowPageHeadersMode = DevExpress.XtraBars.Ribbon.ShowPageHeadersMode.Hide
Me.RibbonControl.ShowToolbarCustomizeItem = False
Me.RibbonControl.Size = New System.Drawing.Size(1406, 132)
Me.RibbonControl.StatusBar = Me.RibbonStatusBar
Me.RibbonControl.Toolbar.ShowCustomizeItem = False
'
'btnLoadDocuments
'
@ -224,6 +241,13 @@ Partial Class frmMain
Me.BarButtonItem7.ImageOptions.SvgImage = Global.EDIDocumentImport.My.Resources.Resources.tableproperties
Me.BarButtonItem7.Name = "BarButtonItem7"
'
'BarButtonItem8
'
Me.BarButtonItem8.Caption = "Logverzeichnis öffnen"
Me.BarButtonItem8.Id = 15
Me.BarButtonItem8.ImageOptions.SvgImage = Global.EDIDocumentImport.My.Resources.Resources.singlepageview
Me.BarButtonItem8.Name = "BarButtonItem8"
'
'RibbonPage1
'
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2, Me.RibbonPageGroup3, Me.RibbonPageGroup4, Me.RibbonPageGroup5})
@ -242,6 +266,7 @@ Partial Class frmMain
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem1)
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem2)
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem3)
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem8)
Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
Me.RibbonPageGroup2.Text = "Konfiguration"
'
@ -282,7 +307,7 @@ Partial Class frmMain
Me.GridControlFiles.MainView = Me.GridViewFiles
Me.GridControlFiles.MenuManager = Me.RibbonControl
Me.GridControlFiles.Name = "GridControlFiles"
Me.GridControlFiles.Size = New System.Drawing.Size(324, 594)
Me.GridControlFiles.Size = New System.Drawing.Size(324, 620)
Me.GridControlFiles.TabIndex = 2
Me.GridControlFiles.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewFiles})
'
@ -294,7 +319,7 @@ Partial Class frmMain
'
'colSelected
'
Me.colSelected.FieldName = "colSelected"
Me.colSelected.FieldName = "Selected"
Me.colSelected.ImageOptions.SvgImage = CType(resources.GetObject("colSelected.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.colSelected.ImageOptions.SvgImageSize = New System.Drawing.Size(16, 16)
Me.colSelected.Name = "colSelected"
@ -308,6 +333,8 @@ Partial Class frmMain
Me.colFileName.Caption = "Dateiname"
Me.colFileName.FieldName = "Name"
Me.colFileName.Name = "colFileName"
Me.colFileName.OptionsColumn.AllowEdit = False
Me.colFileName.OptionsColumn.ReadOnly = True
Me.colFileName.Visible = True
Me.colFileName.VisibleIndex = 1
Me.colFileName.Width = 99
@ -317,6 +344,8 @@ Partial Class frmMain
Me.colFilePath.Caption = "Dateipfad"
Me.colFilePath.FieldName = "FullName"
Me.colFilePath.Name = "colFilePath"
Me.colFilePath.OptionsColumn.AllowEdit = False
Me.colFilePath.OptionsColumn.ReadOnly = True
Me.colFilePath.Visible = True
Me.colFilePath.VisibleIndex = 2
Me.colFilePath.Width = 99
@ -330,7 +359,7 @@ Partial Class frmMain
Me.SplitContainerControl1.Panel1.Text = "Panel1"
Me.SplitContainerControl1.Panel2.Controls.Add(Me.SplitContainerControl2)
Me.SplitContainerControl1.Panel2.Text = "Panel2"
Me.SplitContainerControl1.Size = New System.Drawing.Size(1396, 594)
Me.SplitContainerControl1.Size = New System.Drawing.Size(1396, 620)
Me.SplitContainerControl1.SplitterPosition = 324
Me.SplitContainerControl1.TabIndex = 3
'
@ -344,7 +373,7 @@ Partial Class frmMain
Me.SplitContainerControl2.Panel1.Text = "Panel1"
Me.SplitContainerControl2.Panel2.Controls.Add(Me.GridControlPositions)
Me.SplitContainerControl2.Panel2.Text = "Panel2"
Me.SplitContainerControl2.Size = New System.Drawing.Size(1062, 594)
Me.SplitContainerControl2.Size = New System.Drawing.Size(1062, 620)
Me.SplitContainerControl2.SplitterPosition = 275
Me.SplitContainerControl2.TabIndex = 0
'
@ -365,6 +394,8 @@ Partial Class frmMain
Me.LayoutControl1.Controls.Add(Me.cmbCustomer)
Me.LayoutControl1.Controls.Add(Me.cmbDeliveryAddress)
Me.LayoutControl1.Controls.Add(Me.cmbYears)
Me.LayoutControl1.Controls.Add(Me.txtCustomerGLN)
Me.LayoutControl1.Controls.Add(Me.txtDeliveryAddressGLN)
Me.LayoutControl1.Dock = System.Windows.Forms.DockStyle.Fill
Me.LayoutControl1.Location = New System.Drawing.Point(0, 0)
Me.LayoutControl1.Name = "LayoutControl1"
@ -376,115 +407,115 @@ Partial Class frmMain
'
'txtOrderIssuer
'
Me.txtOrderIssuer.Location = New System.Drawing.Point(92, 135)
Me.txtOrderIssuer.Location = New System.Drawing.Point(123, 170)
Me.txtOrderIssuer.MenuManager = Me.RibbonControl
Me.txtOrderIssuer.Name = "txtOrderIssuer"
Me.txtOrderIssuer.Size = New System.Drawing.Size(123, 20)
Me.txtOrderIssuer.Size = New System.Drawing.Size(264, 20)
Me.txtOrderIssuer.StyleController = Me.LayoutControl1
Me.txtOrderIssuer.TabIndex = 6
'
'MemoEdit1
'
Me.MemoEdit1.Location = New System.Drawing.Point(92, 165)
Me.MemoEdit1.Location = New System.Drawing.Point(123, 200)
Me.MemoEdit1.MenuManager = Me.RibbonControl
Me.MemoEdit1.Name = "MemoEdit1"
Me.MemoEdit1.Size = New System.Drawing.Size(490, 95)
Me.MemoEdit1.Size = New System.Drawing.Size(912, 48)
Me.MemoEdit1.StyleController = Me.LayoutControl1
Me.MemoEdit1.TabIndex = 12
'
'txtOrderNumber
'
Me.txtOrderNumber.Location = New System.Drawing.Point(302, 135)
Me.txtOrderNumber.Location = New System.Drawing.Point(493, 170)
Me.txtOrderNumber.MenuManager = Me.RibbonControl
Me.txtOrderNumber.Name = "txtOrderNumber"
Me.txtOrderNumber.Size = New System.Drawing.Size(97, 20)
Me.txtOrderNumber.Size = New System.Drawing.Size(218, 20)
Me.txtOrderNumber.StyleController = Me.LayoutControl1
Me.txtOrderNumber.TabIndex = 7
'
'TextEdit5
'
Me.TextEdit5.Location = New System.Drawing.Point(670, 15)
Me.TextEdit5.Location = New System.Drawing.Point(123, 50)
Me.TextEdit5.MenuManager = Me.RibbonControl
Me.TextEdit5.Name = "TextEdit5"
Me.TextEdit5.Size = New System.Drawing.Size(377, 20)
Me.TextEdit5.Size = New System.Drawing.Size(912, 20)
Me.TextEdit5.StyleController = Me.LayoutControl1
Me.TextEdit5.TabIndex = 3
'
'TextEdit6
'
Me.TextEdit6.Location = New System.Drawing.Point(670, 45)
Me.TextEdit6.Location = New System.Drawing.Point(123, 80)
Me.TextEdit6.MenuManager = Me.RibbonControl
Me.TextEdit6.Name = "TextEdit6"
Me.TextEdit6.Size = New System.Drawing.Size(377, 20)
Me.TextEdit6.Size = New System.Drawing.Size(912, 20)
Me.TextEdit6.StyleController = Me.LayoutControl1
Me.TextEdit6.TabIndex = 5
'
'TextEdit7
'
Me.TextEdit7.Location = New System.Drawing.Point(670, 105)
Me.TextEdit7.Location = New System.Drawing.Point(123, 140)
Me.TextEdit7.MenuManager = Me.RibbonControl
Me.TextEdit7.Name = "TextEdit7"
Me.TextEdit7.Size = New System.Drawing.Size(377, 20)
Me.TextEdit7.Size = New System.Drawing.Size(912, 20)
Me.TextEdit7.StyleController = Me.LayoutControl1
Me.TextEdit7.TabIndex = 11
'
'TextEdit8
'
Me.TextEdit8.Location = New System.Drawing.Point(670, 75)
Me.TextEdit8.Location = New System.Drawing.Point(123, 110)
Me.TextEdit8.MenuManager = Me.RibbonControl
Me.TextEdit8.Name = "TextEdit8"
Me.TextEdit8.Size = New System.Drawing.Size(377, 20)
Me.TextEdit8.Size = New System.Drawing.Size(912, 20)
Me.TextEdit8.StyleController = Me.LayoutControl1
Me.TextEdit8.TabIndex = 9
'
'TextEdit9
'
Me.TextEdit9.Location = New System.Drawing.Point(670, 135)
Me.TextEdit9.Location = New System.Drawing.Point(123, 170)
Me.TextEdit9.MenuManager = Me.RibbonControl
Me.TextEdit9.Name = "TextEdit9"
Me.TextEdit9.Size = New System.Drawing.Size(377, 20)
Me.TextEdit9.Size = New System.Drawing.Size(912, 20)
Me.TextEdit9.StyleController = Me.LayoutControl1
Me.TextEdit9.TabIndex = 13
'
'txtBELEGKEY
'
Me.txtBELEGKEY.Location = New System.Drawing.Point(453, 15)
Me.txtBELEGKEY.Location = New System.Drawing.Point(760, 50)
Me.txtBELEGKEY.MenuManager = Me.RibbonControl
Me.txtBELEGKEY.Name = "txtBELEGKEY"
Me.txtBELEGKEY.Size = New System.Drawing.Size(129, 20)
Me.txtBELEGKEY.Size = New System.Drawing.Size(275, 20)
Me.txtBELEGKEY.StyleController = Me.LayoutControl1
Me.txtBELEGKEY.TabIndex = 0
'
'txtRunningNumber
'
Me.txtRunningNumber.Location = New System.Drawing.Point(92, 15)
Me.txtRunningNumber.Location = New System.Drawing.Point(123, 50)
Me.txtRunningNumber.MenuManager = Me.RibbonControl
Me.txtRunningNumber.Name = "txtRunningNumber"
Me.txtRunningNumber.Size = New System.Drawing.Size(274, 20)
Me.txtRunningNumber.Size = New System.Drawing.Size(531, 20)
Me.txtRunningNumber.StyleController = Me.LayoutControl1
Me.txtRunningNumber.TabIndex = 2
'
'dateOrderDate
'
Me.dateOrderDate.EditValue = Nothing
Me.dateOrderDate.Location = New System.Drawing.Point(486, 135)
Me.dateOrderDate.Location = New System.Drawing.Point(817, 170)
Me.dateOrderDate.MenuManager = Me.RibbonControl
Me.dateOrderDate.Name = "dateOrderDate"
Me.dateOrderDate.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
Me.dateOrderDate.Properties.CalendarTimeProperties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
Me.dateOrderDate.Size = New System.Drawing.Size(96, 20)
Me.dateOrderDate.Size = New System.Drawing.Size(218, 20)
Me.dateOrderDate.StyleController = Me.LayoutControl1
Me.dateOrderDate.TabIndex = 8
'
'cmbMandator
'
Me.cmbMandator.Location = New System.Drawing.Point(92, 45)
Me.cmbMandator.Location = New System.Drawing.Point(123, 80)
Me.cmbMandator.MenuManager = Me.RibbonControl
Me.cmbMandator.Name = "cmbMandator"
Me.cmbMandator.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
Me.cmbMandator.Properties.NullText = ""
Me.cmbMandator.Properties.PopupView = Me.SearchLookUpEdit1View
Me.cmbMandator.Size = New System.Drawing.Size(274, 20)
Me.cmbMandator.Size = New System.Drawing.Size(531, 20)
Me.cmbMandator.StyleController = Me.LayoutControl1
Me.cmbMandator.TabIndex = 4
'
@ -497,14 +528,14 @@ Partial Class frmMain
'
'cmbCustomer
'
Me.cmbCustomer.Location = New System.Drawing.Point(92, 75)
Me.cmbCustomer.Location = New System.Drawing.Point(123, 110)
Me.cmbCustomer.MenuManager = Me.RibbonControl
Me.cmbCustomer.Name = "cmbCustomer"
Me.cmbCustomer.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
Me.cmbCustomer.Properties.DisplayMember = "Name"
Me.cmbCustomer.Properties.NullText = ""
Me.cmbCustomer.Properties.PopupView = Me.GridView1
Me.cmbCustomer.Size = New System.Drawing.Size(490, 20)
Me.cmbCustomer.Size = New System.Drawing.Size(403, 20)
Me.cmbCustomer.StyleController = Me.LayoutControl1
Me.cmbCustomer.TabIndex = 10
'
@ -517,14 +548,14 @@ Partial Class frmMain
'
'cmbDeliveryAddress
'
Me.cmbDeliveryAddress.Location = New System.Drawing.Point(92, 105)
Me.cmbDeliveryAddress.Location = New System.Drawing.Point(123, 140)
Me.cmbDeliveryAddress.MenuManager = Me.RibbonControl
Me.cmbDeliveryAddress.Name = "cmbDeliveryAddress"
Me.cmbDeliveryAddress.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
Me.cmbDeliveryAddress.Properties.NullText = ""
Me.cmbDeliveryAddress.Properties.PopupSizeable = False
Me.cmbDeliveryAddress.Properties.PopupView = Me.GridView2
Me.cmbDeliveryAddress.Size = New System.Drawing.Size(490, 20)
Me.cmbDeliveryAddress.Size = New System.Drawing.Size(403, 20)
Me.cmbDeliveryAddress.StyleController = Me.LayoutControl1
Me.cmbDeliveryAddress.TabIndex = 14
'
@ -535,84 +566,58 @@ Partial Class frmMain
Me.GridView2.OptionsSelection.EnableAppearanceFocusedCell = False
Me.GridView2.OptionsView.ShowGroupPanel = False
'
'cmbYears
'
Me.cmbYears.Location = New System.Drawing.Point(760, 80)
Me.cmbYears.MenuManager = Me.RibbonControl
Me.cmbYears.Name = "cmbYears"
Me.cmbYears.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
Me.cmbYears.Size = New System.Drawing.Size(275, 20)
Me.cmbYears.StyleController = Me.LayoutControl1
Me.cmbYears.TabIndex = 15
'
'txtCustomerGLN
'
Me.txtCustomerGLN.Location = New System.Drawing.Point(632, 110)
Me.txtCustomerGLN.MenuManager = Me.RibbonControl
Me.txtCustomerGLN.Name = "txtCustomerGLN"
Me.txtCustomerGLN.Size = New System.Drawing.Size(403, 20)
Me.txtCustomerGLN.StyleController = Me.LayoutControl1
Me.txtCustomerGLN.TabIndex = 16
'
'txtDeliveryAddressGLN
'
Me.txtDeliveryAddressGLN.Location = New System.Drawing.Point(632, 140)
Me.txtDeliveryAddressGLN.MenuManager = Me.RibbonControl
Me.txtDeliveryAddressGLN.Name = "txtDeliveryAddressGLN"
Me.txtDeliveryAddressGLN.Size = New System.Drawing.Size(403, 20)
Me.txtDeliveryAddressGLN.StyleController = Me.LayoutControl1
Me.txtDeliveryAddressGLN.TabIndex = 17
'
'Root
'
Me.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True]
Me.Root.GroupBordersVisible = False
Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutItemOrderIssuer, Me.LayoutControlItem3, Me.LayoutItemOrderNumber, Me.LayoutControlItem6, Me.LayoutControlItem9, Me.LayoutControlItem10, Me.LayoutControlItem11, Me.LayoutItemOrderDate, Me.LayoutControlItem8, Me.LayoutControlItem7, Me.LayoutControlItem1, Me.SimpleSeparator1, Me.LayoutControlItem2, Me.LayoutControlItem5, Me.LayoutControlItemRunningNumber, Me.LayoutControlItem4})
Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.TabbedControlGroup2})
Me.Root.Name = "Root"
Me.Root.Size = New System.Drawing.Size(1062, 275)
Me.Root.TextVisible = False
'
'LayoutItemOrderIssuer
'TabbedControlGroup2
'
Me.LayoutItemOrderIssuer.Control = Me.txtOrderIssuer
Me.LayoutItemOrderIssuer.Location = New System.Drawing.Point(0, 120)
Me.LayoutItemOrderIssuer.Name = "LayoutItemOrderIssuer"
Me.LayoutItemOrderIssuer.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutItemOrderIssuer.Size = New System.Drawing.Size(210, 30)
Me.LayoutItemOrderIssuer.Text = "Besteller"
Me.LayoutItemOrderIssuer.TextSize = New System.Drawing.Size(74, 13)
Me.TabbedControlGroup2.Location = New System.Drawing.Point(0, 0)
Me.TabbedControlGroup2.Name = "TabbedControlGroup2"
Me.TabbedControlGroup2.SelectedTabPage = Me.LayoutControlGroup2
Me.TabbedControlGroup2.Size = New System.Drawing.Size(1042, 255)
Me.TabbedControlGroup2.TabPages.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlGroup2, Me.LayoutControlGroup1})
'
'LayoutControlItem3
'LayoutControlGroup2
'
Me.LayoutControlItem3.Control = Me.MemoEdit1
Me.LayoutControlItem3.Location = New System.Drawing.Point(0, 150)
Me.LayoutControlItem3.Name = "LayoutControlItem3"
Me.LayoutControlItem3.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem3.Size = New System.Drawing.Size(577, 105)
Me.LayoutControlItem3.Text = "Freitext"
Me.LayoutControlItem3.TextSize = New System.Drawing.Size(74, 13)
'
'LayoutItemOrderNumber
'
Me.LayoutItemOrderNumber.Control = Me.txtOrderNumber
Me.LayoutItemOrderNumber.Location = New System.Drawing.Point(210, 120)
Me.LayoutItemOrderNumber.Name = "LayoutItemOrderNumber"
Me.LayoutItemOrderNumber.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutItemOrderNumber.Size = New System.Drawing.Size(184, 30)
Me.LayoutItemOrderNumber.Text = "Bestellnummer"
Me.LayoutItemOrderNumber.TextSize = New System.Drawing.Size(74, 13)
'
'LayoutControlItem6
'
Me.LayoutControlItem6.Control = Me.TextEdit5
Me.LayoutControlItem6.Location = New System.Drawing.Point(578, 0)
Me.LayoutControlItem6.Name = "LayoutControlItem6"
Me.LayoutControlItem6.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem6.Size = New System.Drawing.Size(464, 30)
Me.LayoutControlItem6.Text = "Straße"
Me.LayoutControlItem6.TextSize = New System.Drawing.Size(74, 13)
'
'LayoutControlItem9
'
Me.LayoutControlItem9.Control = Me.TextEdit8
Me.LayoutControlItem9.Location = New System.Drawing.Point(578, 60)
Me.LayoutControlItem9.Name = "LayoutControlItem9"
Me.LayoutControlItem9.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem9.Size = New System.Drawing.Size(464, 30)
Me.LayoutControlItem9.Text = "PLZ"
Me.LayoutControlItem9.TextSize = New System.Drawing.Size(74, 13)
'
'LayoutControlItem10
'
Me.LayoutControlItem10.Control = Me.TextEdit9
Me.LayoutControlItem10.Location = New System.Drawing.Point(578, 120)
Me.LayoutControlItem10.Name = "LayoutControlItem10"
Me.LayoutControlItem10.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem10.Size = New System.Drawing.Size(464, 135)
Me.LayoutControlItem10.Text = "Kontakt"
Me.LayoutControlItem10.TextSize = New System.Drawing.Size(74, 13)
'
'LayoutControlItem11
'
Me.LayoutControlItem11.Control = Me.txtBELEGKEY
Me.LayoutControlItem11.Location = New System.Drawing.Point(361, 0)
Me.LayoutControlItem11.Name = "LayoutControlItem11"
Me.LayoutControlItem11.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem11.Size = New System.Drawing.Size(216, 30)
Me.LayoutControlItem11.Text = "BELEGKEY"
Me.LayoutControlItem11.TextSize = New System.Drawing.Size(74, 13)
Me.LayoutControlGroup2.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItemRunningNumber, Me.LayoutControlItem11, Me.LayoutControlItem4, Me.LayoutControlItem1, Me.LayoutControlItem5, Me.LayoutControlItem2, Me.LayoutItemOrderIssuer, Me.LayoutControlItem3, Me.LayoutItemOrderNumber, Me.LayoutItemOrderDate, Me.LayoutControlItem12, Me.LayoutControlItem13})
Me.LayoutControlGroup2.Location = New System.Drawing.Point(0, 0)
Me.LayoutControlGroup2.Name = "LayoutControlGroup2"
Me.LayoutControlGroup2.Size = New System.Drawing.Size(1018, 208)
Me.LayoutControlGroup2.Text = "Basisdaten"
'
'LayoutControlItemRunningNumber
'
@ -620,39 +625,29 @@ Partial Class frmMain
Me.LayoutControlItemRunningNumber.Location = New System.Drawing.Point(0, 0)
Me.LayoutControlItemRunningNumber.Name = "LayoutControlItemRunningNumber"
Me.LayoutControlItemRunningNumber.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItemRunningNumber.Size = New System.Drawing.Size(361, 30)
Me.LayoutControlItemRunningNumber.Size = New System.Drawing.Size(637, 30)
Me.LayoutControlItemRunningNumber.Text = "Laufnummer"
Me.LayoutControlItemRunningNumber.TextSize = New System.Drawing.Size(74, 13)
Me.LayoutControlItemRunningNumber.TextSize = New System.Drawing.Size(93, 13)
'
'LayoutItemOrderDate
'LayoutControlItem11
'
Me.LayoutItemOrderDate.Control = Me.dateOrderDate
Me.LayoutItemOrderDate.Location = New System.Drawing.Point(394, 120)
Me.LayoutItemOrderDate.Name = "LayoutItemOrderDate"
Me.LayoutItemOrderDate.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutItemOrderDate.Size = New System.Drawing.Size(183, 30)
Me.LayoutItemOrderDate.Text = "Bestelldatum"
Me.LayoutItemOrderDate.TextSize = New System.Drawing.Size(74, 13)
Me.LayoutControlItem11.Control = Me.txtBELEGKEY
Me.LayoutControlItem11.Location = New System.Drawing.Point(637, 0)
Me.LayoutControlItem11.Name = "LayoutControlItem11"
Me.LayoutControlItem11.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem11.Size = New System.Drawing.Size(381, 30)
Me.LayoutControlItem11.Text = "BELEGKEY"
Me.LayoutControlItem11.TextSize = New System.Drawing.Size(93, 13)
'
'LayoutControlItem8
'LayoutControlItem4
'
Me.LayoutControlItem8.Control = Me.TextEdit7
Me.LayoutControlItem8.Location = New System.Drawing.Point(578, 90)
Me.LayoutControlItem8.Name = "LayoutControlItem8"
Me.LayoutControlItem8.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem8.Size = New System.Drawing.Size(464, 30)
Me.LayoutControlItem8.Text = "Ort"
Me.LayoutControlItem8.TextSize = New System.Drawing.Size(74, 13)
'
'LayoutControlItem7
'
Me.LayoutControlItem7.Control = Me.TextEdit6
Me.LayoutControlItem7.Location = New System.Drawing.Point(578, 30)
Me.LayoutControlItem7.Name = "LayoutControlItem7"
Me.LayoutControlItem7.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem7.Size = New System.Drawing.Size(464, 30)
Me.LayoutControlItem7.Text = "Hausnummer"
Me.LayoutControlItem7.TextSize = New System.Drawing.Size(74, 13)
Me.LayoutControlItem4.Control = Me.cmbYears
Me.LayoutControlItem4.Location = New System.Drawing.Point(637, 30)
Me.LayoutControlItem4.Name = "LayoutControlItem4"
Me.LayoutControlItem4.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem4.Size = New System.Drawing.Size(381, 30)
Me.LayoutControlItem4.Text = "Wirtschaftsjahr"
Me.LayoutControlItem4.TextSize = New System.Drawing.Size(93, 13)
'
'LayoutControlItem1
'
@ -660,26 +655,9 @@ Partial Class frmMain
Me.LayoutControlItem1.Location = New System.Drawing.Point(0, 30)
Me.LayoutControlItem1.Name = "LayoutControlItem1"
Me.LayoutControlItem1.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem1.Size = New System.Drawing.Size(361, 30)
Me.LayoutControlItem1.Size = New System.Drawing.Size(637, 30)
Me.LayoutControlItem1.Text = "Mandant"
Me.LayoutControlItem1.TextSize = New System.Drawing.Size(74, 13)
'
'SimpleSeparator1
'
Me.SimpleSeparator1.AllowHotTrack = False
Me.SimpleSeparator1.Location = New System.Drawing.Point(577, 0)
Me.SimpleSeparator1.Name = "SimpleSeparator1"
Me.SimpleSeparator1.Size = New System.Drawing.Size(1, 255)
'
'LayoutControlItem2
'
Me.LayoutControlItem2.Control = Me.cmbDeliveryAddress
Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 90)
Me.LayoutControlItem2.Name = "LayoutControlItem2"
Me.LayoutControlItem2.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem2.Size = New System.Drawing.Size(577, 30)
Me.LayoutControlItem2.Text = "Lieferadresse"
Me.LayoutControlItem2.TextSize = New System.Drawing.Size(74, 13)
Me.LayoutControlItem1.TextSize = New System.Drawing.Size(93, 13)
'
'LayoutControlItem5
'
@ -687,9 +665,137 @@ Partial Class frmMain
Me.LayoutControlItem5.Location = New System.Drawing.Point(0, 60)
Me.LayoutControlItem5.Name = "LayoutControlItem5"
Me.LayoutControlItem5.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem5.Size = New System.Drawing.Size(577, 30)
Me.LayoutControlItem5.Size = New System.Drawing.Size(509, 30)
Me.LayoutControlItem5.Text = "Kunde"
Me.LayoutControlItem5.TextSize = New System.Drawing.Size(74, 13)
Me.LayoutControlItem5.TextSize = New System.Drawing.Size(93, 13)
'
'LayoutControlItem2
'
Me.LayoutControlItem2.Control = Me.cmbDeliveryAddress
Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 90)
Me.LayoutControlItem2.Name = "LayoutControlItem2"
Me.LayoutControlItem2.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem2.Size = New System.Drawing.Size(509, 30)
Me.LayoutControlItem2.Text = "Lieferadresse"
Me.LayoutControlItem2.TextSize = New System.Drawing.Size(93, 13)
'
'LayoutItemOrderIssuer
'
Me.LayoutItemOrderIssuer.Control = Me.txtOrderIssuer
Me.LayoutItemOrderIssuer.Location = New System.Drawing.Point(0, 120)
Me.LayoutItemOrderIssuer.Name = "LayoutItemOrderIssuer"
Me.LayoutItemOrderIssuer.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutItemOrderIssuer.Size = New System.Drawing.Size(370, 30)
Me.LayoutItemOrderIssuer.Text = "Besteller"
Me.LayoutItemOrderIssuer.TextSize = New System.Drawing.Size(93, 13)
'
'LayoutControlItem3
'
Me.LayoutControlItem3.Control = Me.MemoEdit1
Me.LayoutControlItem3.Location = New System.Drawing.Point(0, 150)
Me.LayoutControlItem3.Name = "LayoutControlItem3"
Me.LayoutControlItem3.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem3.Size = New System.Drawing.Size(1018, 58)
Me.LayoutControlItem3.Text = "Freitext"
Me.LayoutControlItem3.TextSize = New System.Drawing.Size(93, 13)
'
'LayoutItemOrderNumber
'
Me.LayoutItemOrderNumber.Control = Me.txtOrderNumber
Me.LayoutItemOrderNumber.Location = New System.Drawing.Point(370, 120)
Me.LayoutItemOrderNumber.Name = "LayoutItemOrderNumber"
Me.LayoutItemOrderNumber.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutItemOrderNumber.Size = New System.Drawing.Size(324, 30)
Me.LayoutItemOrderNumber.Text = "Bestellnummer"
Me.LayoutItemOrderNumber.TextSize = New System.Drawing.Size(93, 13)
'
'LayoutItemOrderDate
'
Me.LayoutItemOrderDate.Control = Me.dateOrderDate
Me.LayoutItemOrderDate.Location = New System.Drawing.Point(694, 120)
Me.LayoutItemOrderDate.Name = "LayoutItemOrderDate"
Me.LayoutItemOrderDate.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutItemOrderDate.Size = New System.Drawing.Size(324, 30)
Me.LayoutItemOrderDate.Text = "Bestelldatum"
Me.LayoutItemOrderDate.TextSize = New System.Drawing.Size(93, 13)
'
'LayoutControlItem12
'
Me.LayoutControlItem12.Control = Me.txtCustomerGLN
Me.LayoutControlItem12.Location = New System.Drawing.Point(509, 60)
Me.LayoutControlItem12.Name = "LayoutControlItem12"
Me.LayoutControlItem12.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem12.Size = New System.Drawing.Size(509, 30)
Me.LayoutControlItem12.Text = "Kunde GLN"
Me.LayoutControlItem12.TextSize = New System.Drawing.Size(93, 13)
'
'LayoutControlItem13
'
Me.LayoutControlItem13.Control = Me.txtDeliveryAddressGLN
Me.LayoutControlItem13.Location = New System.Drawing.Point(509, 90)
Me.LayoutControlItem13.Name = "LayoutControlItem13"
Me.LayoutControlItem13.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem13.Size = New System.Drawing.Size(509, 30)
Me.LayoutControlItem13.Text = "Lieferaddresse GLN"
Me.LayoutControlItem13.TextSize = New System.Drawing.Size(93, 13)
'
'LayoutControlGroup1
'
Me.LayoutControlGroup1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem10, Me.LayoutControlItem8, Me.LayoutControlItem9, Me.LayoutControlItem7, Me.LayoutControlItem6})
Me.LayoutControlGroup1.Location = New System.Drawing.Point(0, 0)
Me.LayoutControlGroup1.Name = "LayoutControlGroup1"
Me.LayoutControlGroup1.Size = New System.Drawing.Size(1018, 208)
Me.LayoutControlGroup1.Text = "Diverse Adresse"
'
'LayoutControlItem10
'
Me.LayoutControlItem10.Control = Me.TextEdit9
Me.LayoutControlItem10.Location = New System.Drawing.Point(0, 120)
Me.LayoutControlItem10.Name = "LayoutControlItem10"
Me.LayoutControlItem10.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem10.Size = New System.Drawing.Size(1018, 88)
Me.LayoutControlItem10.Text = "Kontakt"
Me.LayoutControlItem10.TextSize = New System.Drawing.Size(93, 13)
'
'LayoutControlItem8
'
Me.LayoutControlItem8.Control = Me.TextEdit7
Me.LayoutControlItem8.Location = New System.Drawing.Point(0, 90)
Me.LayoutControlItem8.Name = "LayoutControlItem8"
Me.LayoutControlItem8.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem8.Size = New System.Drawing.Size(1018, 30)
Me.LayoutControlItem8.Text = "Ort"
Me.LayoutControlItem8.TextSize = New System.Drawing.Size(93, 13)
'
'LayoutControlItem9
'
Me.LayoutControlItem9.Control = Me.TextEdit8
Me.LayoutControlItem9.Location = New System.Drawing.Point(0, 60)
Me.LayoutControlItem9.Name = "LayoutControlItem9"
Me.LayoutControlItem9.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem9.Size = New System.Drawing.Size(1018, 30)
Me.LayoutControlItem9.Text = "PLZ"
Me.LayoutControlItem9.TextSize = New System.Drawing.Size(93, 13)
'
'LayoutControlItem7
'
Me.LayoutControlItem7.Control = Me.TextEdit6
Me.LayoutControlItem7.Location = New System.Drawing.Point(0, 30)
Me.LayoutControlItem7.Name = "LayoutControlItem7"
Me.LayoutControlItem7.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem7.Size = New System.Drawing.Size(1018, 30)
Me.LayoutControlItem7.Text = "Hausnummer"
Me.LayoutControlItem7.TextSize = New System.Drawing.Size(93, 13)
'
'LayoutControlItem6
'
Me.LayoutControlItem6.Control = Me.TextEdit5
Me.LayoutControlItem6.Location = New System.Drawing.Point(0, 0)
Me.LayoutControlItem6.Name = "LayoutControlItem6"
Me.LayoutControlItem6.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem6.Size = New System.Drawing.Size(1018, 30)
Me.LayoutControlItem6.Text = "Straße"
Me.LayoutControlItem6.TextSize = New System.Drawing.Size(93, 13)
'
'GridControlPositions
'
@ -698,7 +804,7 @@ Partial Class frmMain
Me.GridControlPositions.MainView = Me.GridViewPositions
Me.GridControlPositions.MenuManager = Me.RibbonControl
Me.GridControlPositions.Name = "GridControlPositions"
Me.GridControlPositions.Size = New System.Drawing.Size(1062, 309)
Me.GridControlPositions.Size = New System.Drawing.Size(1062, 335)
Me.GridControlPositions.TabIndex = 0
Me.GridControlPositions.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewPositions})
'
@ -713,13 +819,13 @@ Partial Class frmMain
Me.SplitContainerControl3.Collapsed = True
Me.SplitContainerControl3.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2
Me.SplitContainerControl3.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainerControl3.Location = New System.Drawing.Point(0, 158)
Me.SplitContainerControl3.Location = New System.Drawing.Point(0, 132)
Me.SplitContainerControl3.Name = "SplitContainerControl3"
Me.SplitContainerControl3.Panel1.Controls.Add(Me.SplitContainerControl1)
Me.SplitContainerControl3.Panel1.Text = "Panel1"
Me.SplitContainerControl3.Panel2.Controls.Add(Me.RichEditXml)
Me.SplitContainerControl3.Panel2.Text = "Panel2"
Me.SplitContainerControl3.Size = New System.Drawing.Size(1406, 594)
Me.SplitContainerControl3.Size = New System.Drawing.Size(1406, 620)
Me.SplitContainerControl3.SplitterPosition = 1114
Me.SplitContainerControl3.TabIndex = 6
'
@ -736,26 +842,6 @@ Partial Class frmMain
Me.RichEditXml.Size = New System.Drawing.Size(0, 0)
Me.RichEditXml.TabIndex = 0
'
'LayoutControlItem4
'
Me.LayoutControlItem4.Control = Me.cmbYears
Me.LayoutControlItem4.Location = New System.Drawing.Point(361, 30)
Me.LayoutControlItem4.Name = "LayoutControlItem4"
Me.LayoutControlItem4.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5)
Me.LayoutControlItem4.Size = New System.Drawing.Size(216, 30)
Me.LayoutControlItem4.Text = "Wirtschaftsjahr"
Me.LayoutControlItem4.TextSize = New System.Drawing.Size(74, 13)
'
'cmbYears
'
Me.cmbYears.Location = New System.Drawing.Point(453, 45)
Me.cmbYears.MenuManager = Me.RibbonControl
Me.cmbYears.Name = "cmbYears"
Me.cmbYears.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
Me.cmbYears.Size = New System.Drawing.Size(129, 20)
Me.cmbYears.StyleController = Me.LayoutControl1
Me.cmbYears.TabIndex = 15
'
'frmMain
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@ -764,6 +850,7 @@ Partial Class frmMain
Me.Controls.Add(Me.SplitContainerControl3)
Me.Controls.Add(Me.RibbonStatusBar)
Me.Controls.Add(Me.RibbonControl)
Me.IconOptions.SvgImage = Global.EDIDocumentImport.My.Resources.Resources.tilelabels
Me.Name = "frmMain"
Me.Ribbon = Me.RibbonControl
Me.StatusBar = Me.RibbonStatusBar
@ -795,28 +882,34 @@ Partial Class frmMain
CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.cmbDeliveryAddress.Properties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.GridView2, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.cmbYears.Properties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.txtCustomerGLN.Properties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.txtDeliveryAddressGLN.Properties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.Root, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.TabbedControlGroup2, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlGroup2, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItemRunningNumber, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem11, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutItemOrderIssuer, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutItemOrderNumber, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem6, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem9, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem10, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem11, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItemRunningNumber, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutItemOrderDate, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem12, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem13, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem10, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem8, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem9, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem7, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.SimpleSeparator1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem6, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.GridControlPositions, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.GridViewPositions, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.SplitContainerControl3, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerControl3.ResumeLayout(False)
CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.cmbYears.Properties, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
@ -835,34 +928,20 @@ Partial Class frmMain
Friend WithEvents MemoEdit1 As DevExpress.XtraEditors.MemoEdit
Friend WithEvents txtOrderNumber As DevExpress.XtraEditors.TextEdit
Friend WithEvents Root As DevExpress.XtraLayout.LayoutControlGroup
Friend WithEvents LayoutControlItem1 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutItemOrderIssuer As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlItem3 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlItem5 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutItemOrderNumber As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents GridControlPositions As DevExpress.XtraGrid.GridControl
Friend WithEvents GridViewPositions As DevExpress.XtraGrid.Views.Grid.GridView
Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents colFileName As DevExpress.XtraGrid.Columns.GridColumn
Friend WithEvents colFilePath As DevExpress.XtraGrid.Columns.GridColumn
Friend WithEvents TextEdit5 As DevExpress.XtraEditors.TextEdit
Friend WithEvents LayoutControlItem6 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents btnLoadDocuments As DevExpress.XtraBars.BarButtonItem
Friend WithEvents TextEdit6 As DevExpress.XtraEditors.TextEdit
Friend WithEvents TextEdit7 As DevExpress.XtraEditors.TextEdit
Friend WithEvents TextEdit8 As DevExpress.XtraEditors.TextEdit
Friend WithEvents LayoutControlItem7 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlItem8 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlItem9 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents SimpleSeparator1 As DevExpress.XtraLayout.SimpleSeparator
Friend WithEvents TextEdit9 As DevExpress.XtraEditors.TextEdit
Friend WithEvents LayoutControlItem10 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents txtBELEGKEY As DevExpress.XtraEditors.TextEdit
Friend WithEvents LayoutControlItem11 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents txtRunningNumber As DevExpress.XtraEditors.TextEdit
Friend WithEvents LayoutControlItemRunningNumber As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents dateOrderDate As DevExpress.XtraEditors.DateEdit
Friend WithEvents LayoutItemOrderDate As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents txtFilesLoaded As DevExpress.XtraBars.BarHeaderItem
Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem
@ -878,7 +957,6 @@ Partial Class frmMain
Friend WithEvents BarButtonItem4 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents cmbDeliveryAddress As DevExpress.XtraEditors.SearchLookUpEdit
Friend WithEvents GridView2 As DevExpress.XtraGrid.Views.Grid.GridView
Friend WithEvents LayoutControlItem2 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents BarButtonItem5 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonPageGroup4 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents txtVersion As DevExpress.XtraBars.BarStaticItem
@ -887,5 +965,27 @@ Partial Class frmMain
Friend WithEvents BarButtonItem7 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents colSelected As DevExpress.XtraGrid.Columns.GridColumn
Friend WithEvents cmbYears As DevExpress.XtraEditors.ComboBoxEdit
Friend WithEvents TabbedControlGroup2 As DevExpress.XtraLayout.TabbedControlGroup
Friend WithEvents LayoutControlGroup2 As DevExpress.XtraLayout.LayoutControlGroup
Friend WithEvents LayoutControlItemRunningNumber As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlItem11 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlItem4 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlItem1 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlItem5 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlItem2 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutItemOrderIssuer As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlItem3 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutItemOrderNumber As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutItemOrderDate As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlGroup1 As DevExpress.XtraLayout.LayoutControlGroup
Friend WithEvents LayoutControlItem10 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlItem8 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlItem9 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlItem7 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlItem6 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents BarButtonItem8 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents txtCustomerGLN As DevExpress.XtraEditors.TextEdit
Friend WithEvents txtDeliveryAddressGLN As DevExpress.XtraEditors.TextEdit
Friend WithEvents LayoutControlItem12 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlItem13 As DevExpress.XtraLayout.LayoutControlItem
End Class

View File

@ -10,6 +10,7 @@ Imports DigitalData.Controls.SQLConfig
Imports DigitalData.GUIs.Common
Imports EDIDocumentImport.DocumentInfo
Imports EDIDocumentImport.DocumentPositions
Imports DevExpress.XtraEditors
Public Class frmMain
Public LogConfig As LogConfig
@ -26,7 +27,6 @@ Public Class frmMain
LogConfig = New LogConfig(LogConfig.PathType.AppData, Nothing, Nothing, "Digital Data", "EDI Document Importer")
ConfigManager = New ConfigManager(Of Config)(LogConfig, Application.UserAppDataPath, Application.CommonAppDataPath, Application.StartupPath)
ConfigManager.Save()
Logger = LogConfig.GetLogger()
' If ConnectionString does not exist, show SQL Config Form
@ -45,7 +45,7 @@ Public Class frmMain
' Initialize Database
Dim oConnectionString = MSSQLServer.DecryptConnectionString(ConfigManager.Config.ConnectionString)
Database = New MSSQLServer(LogConfig, oConnectionString)
Winline = New WinLineInfo(LogConfig, Database)
Winline = New WinLineInfo(LogConfig, Database, ConfigManager.Config)
' Load WinLine Data
Winline.Mandators.Clear()
@ -64,12 +64,10 @@ Public Class frmMain
' Initialize Grids
GridBuilder = New GridBuilder(New List(Of GridView) From {GridViewFiles, GridViewPositions})
GridBuilder.
WithDefaults().
WithReadOnlyOptions(GridViewFiles)
GridBuilder.WithDefaults()
' Construct classes related to the xml data
DocumentLoader = New DocumentLoader(LogConfig, ConfigManager.Config)
DocumentLoader = New DocumentLoader(LogConfig, ConfigManager.Config, Database, Winline)
Catch ex As Exception
Logger.Error(ex)
MsgBox(ex.Message, MsgBoxStyle.Critical, Text)
@ -83,28 +81,34 @@ Public Class frmMain
txtFilesLoaded.Caption = $"{DocumentLoader.Files.Count} Dokumente geladen"
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, Text)
Dim oMessage = ex.Message
If ex.InnerException IsNot Nothing Then
oMessage &= vbNewLine & vbNewLine & ex.InnerException.Message
End If
MsgBox(oMessage, MsgBoxStyle.Critical, Text)
End Try
End Sub
Private Sub GridViewFiles_FocusedRowChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs) Handles GridViewFiles.FocusedRowChanged
Dim oFile As Document = GridViewFiles.GetRow(e.FocusedRowHandle)
Dim oDocument As Document = GridViewFiles.GetRow(e.FocusedRowHandle)
If oFile Is Nothing Then
If oDocument Is Nothing Then
Exit Sub
End If
RichEditXml.LoadDocument(oFile.FullName, DocumentFormat.PlainText)
RichEditXml.LoadDocument(oDocument.FullName, DocumentFormat.PlainText)
Try
Select Case oFile.Type
Select Case oDocument.Type
Case DocumentType.Order
'ShowDocument(oFile.Data)
ShowDocument(oDocument, oDocument.Data, oDocument.DataOriginal)
End Select
Catch ex As Xml.XmlException
Dim oMessage As String = $"Fehler beim Verarbeiten des Dokuments {oFile.Name}:{vbNewLine}{ex.Message}"
Dim oMessage As String = $"Fehler beim Verarbeiten des Dokuments {oDocument.Name}:{vbNewLine}{ex.Message}"
MsgBox(oMessage, MsgBoxStyle.Critical, Text)
Logger.Error(ex)
@ -115,34 +119,83 @@ Public Class frmMain
End Try
End Sub
Private Sub ShowDocument(pDocument As Orders.MESOWebService)
' ====== Head Data ======
Dim oHead As Orders.MESOWebServiceEXIMVRG_ordersT025 = pDocument.Items.
Private Sub ShowDocument(pDocument As Document, pData As Orders.MESOWebService, pDataOriginal As Orders.MESOWebService)
Dim oHead As Orders.MESOWebServiceEXIMVRG_ordersT025 = pData.Items.
Where(Function(i) TypeOf i Is Orders.MESOWebServiceEXIMVRG_ordersT025).
FirstOrDefault()
Dim oHeadOriginal As Orders.MESOWebServiceEXIMVRG_ordersT025 = pDataOriginal.Items.
Where(Function(i) TypeOf i Is Orders.MESOWebServiceEXIMVRG_ordersT025).
FirstOrDefault()
Dim oPositions As List(Of Orders.MESOWebServiceEXIMVRG_ordersT026) = pData.Items.
Where(Function(i) TypeOf i Is Orders.MESOWebServiceEXIMVRG_ordersT026).
Select(Of Orders.MESOWebServiceEXIMVRG_ordersT026)(Function(i) i).
ToList()
Dim oPositionsOriginal As List(Of Orders.MESOWebServiceEXIMVRG_ordersT026) = pDataOriginal.Items.
Where(Function(i) TypeOf i Is Orders.MESOWebServiceEXIMVRG_ordersT026).
Select(Of Orders.MESOWebServiceEXIMVRG_ordersT026)(Function(i) i).
ToList()
' ====== Head Data ======
' Original, Unreplaced Data
txtCustomerGLN.Text = oHeadOriginal.Fakt_Kontonummer
txtDeliveryAddressGLN.Text = oHeadOriginal.Lief_Kontonummer
' Regular Data from EDI
txtBELEGKEY.Text = oHead.BELEGKEY
txtRunningNumber.Text = oHead.Laufnummer
txtOrderIssuer.Text = oHead.Fakt_Ansprechpartner
txtOrderNumber.Text = oHead.AuftragsBestellnummer
dateOrderDate.EditValue = oHead.Datum_AuftragBestellung
cmbMandator.EditValue = Winline.Mandators.
Where(Function(m) m.Id = "SIVT").
SingleOrDefault()
cmbCustomer.EditValue = Winline.Accounts.
Where(Function(m) m.Id = oHead.Fakt_Kontonummer).
Dim oMandator = Winline.Mandators.
Where(Function(m) m.Id = pDocument.Mandator.Id).
SingleOrDefault()
If oMandator Is Nothing Then
cmbMandator.ErrorText = "Dieses Feld muss ausgefüllt werden!"
cmbMandator.EditValue = Nothing
Else
cmbMandator.EditValue = oMandator
End If
If oHead.Fakt_Kontonummer = oHeadOriginal.Fakt_Kontonummer Then
cmbCustomer.ErrorText = "Dieses Feld muss ausgefüllt werden!"
cmbCustomer.EditValue = Nothing
Else
cmbCustomer.EditValue = Winline.Accounts.
Where(Function(oAccount) oAccount.Id = oHead.Fakt_Kontonummer And oAccount.Mandator = cmbMandator.EditValue).
SingleOrDefault()
End If
If oHead.Lief_Kontonummer = oHeadOriginal.Lief_Kontonummer Then
cmbDeliveryAddress.ErrorText = "Dieses Feld muss ausgefüllt werden!"
cmbDeliveryAddress.EditValue = Nothing
Else
cmbDeliveryAddress.EditValue = Winline.Accounts.
Where(Function(oAccount) oAccount.Id = oHead.Lief_Kontonummer And oAccount.Mandator = cmbMandator.EditValue).
SingleOrDefault()
End If
' TODO
'cmbMandator.EditValue = Winline.Mandators.
' Where(Function(m) m.Id = "SIVT").
' SingleOrDefault()
'cmbCustomer.EditValue = Winline.Accounts.
' Where(Function(oAccount) oAccount.Id = oHead.Fakt_Kontonummer And oAccount.Mandator = cmbMandator.EditValue).
' SingleOrDefault()
' ====== Position Data ======
Dim oPositions As List(Of Orders.MESOWebServiceEXIMVRG_ordersT026) = pDocument.Items.
Where(Function(i) TypeOf i Is Orders.MESOWebServiceEXIMVRG_ordersT026).
Select(Of Orders.MESOWebServiceEXIMVRG_ordersT026)(Function(i) i).
ToList()
Dim oPositionList As New List(Of OrderPosition)
For Each oPosition In oPositions
Dim oPositionOriginal = oPositionsOriginal.
Where(Function(p) p.Zeilennummer = oPosition.Zeilennummer).
SingleOrDefault()
oPositionList.Add(New OrderPosition With {
.ArticleNumber = oPosition.Artikelnummer,
.RowNumber = oPosition.Zeilennummer,
@ -151,24 +204,28 @@ Public Class frmMain
.EDIPrice = oPosition.Einzelpreis,
.WinLinePrice = 0,
.Price = 0,
.Amount = oPosition.Menge_bestellt
.Amount = oPosition.Menge_bestellt,
.EuropeanArticleNumber = oPositionOriginal.Artikelnummer
})
Next
LoadViewAndColumns(GridViewPositions, DocumentType.Order)
GridControlPositions.DataSource = oPositionList
End Sub
GridViewPositions.BestFitColumns()
End Sub
Public Sub LoadViewAndColumns(pView As GridView, pDocumentType As DocumentType)
Dim oColumns As List(Of GridColumn)
' Create columns list depending on DocumentType
Select Case pDocumentType
Case DocumentType.Order
oColumns = New List(Of GridColumn) From {
ColumnRowNumber,
ColumnArticleNumber,
ColumnArticleNumberVendor,
ColumnEuropeanArticleNumber,
ColumnArticleDescription,
ColumnEDIPrice,
ColumnWinLinePrice,
@ -179,15 +236,29 @@ Public Class frmMain
oColumns = New List(Of GridColumn)
End Select
' Reset the grid
pView.GridControl.DataSource = Nothing
pView.GridControl.ForceInitialize()
' Add and adjust columns
pView.Columns.AddRange(oColumns.ToArray())
pView.BestFitColumns()
' Set columns readonly that need it
Dim oReadOnlyColumns = oColumns.
Except(DocumentPositions.WritableColumns).
ToList()
For Each oColumn As GridColumn In GridViewPositions.Columns
If oReadOnlyColumns.Contains(oColumn) Then
oColumn.OptionsColumn.ReadOnly = True
oColumn.OptionsColumn.AllowEdit = False
Else
oColumn.Caption &= " *"
End If
Next
End Sub
Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick
Process.Start(ConfigManager.Config.InputDirectory)
End Sub
@ -208,4 +279,16 @@ Public Class frmMain
Private Sub BarButtonItem4_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem4.ItemClick
MsgBox("Mach et!")
End Sub
Private Sub BarButtonItem8_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem8.ItemClick
Process.Start(LogConfig.LogDirectory)
End Sub
Private Sub cmbAccount_Validating(sender As BaseEdit, e As System.ComponentModel.CancelEventArgs) Handles cmbCustomer.Validating, cmbDeliveryAddress.Validating
If sender.EditValue Is Nothing Then
sender.ErrorText = "Dieses Feld muss ausgefüllt werden!"
Else
sender.ErrorText = ""
End If
End Sub
End Class