This commit is contained in:
Jonathan Jenne
2021-08-18 16:47:06 +02:00
parent 55e921eb21
commit 85eff9bfbe
22 changed files with 1078 additions and 302 deletions

View File

@@ -0,0 +1,14 @@
Namespace Positions
Public Class Position
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
Public Property EDIPrice As Double
Public Property WinLinePrice As Double
Public Property Price As Double
Public Property Amount As Double
End Class
End Namespace

View File

@@ -0,0 +1,70 @@
Imports DevExpress.XtraGrid.Columns
Namespace Positions
Public Class PositionColumns
Public Shared Property ColumnRowNumber As New GridColumn With {
.FieldName = "RowNumber",
.Caption = "Nr.",
.VisibleIndex = 0,
.MaxWidth = 30
}
Public Shared Property ColumnArticleNumber As New GridColumn With {
.FieldName = "ArticleNumber",
.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 = 3
}
Public Shared Property ColumnArticleDescription As New GridColumn With {
.FieldName = "ArticleDescription",
.Caption = "Artikel Beschreibung",
.VisibleIndex = 4
}
Public Shared Property ColumnAmount As New GridColumn With {
.FieldName = "Amount",
.Caption = "Menge",
.VisibleIndex = 5
}
Public Shared Property ColumnEDIPrice As New GridColumn With {
.FieldName = "EDIPrice",
.Caption = "Einzelpreis EDI",
.VisibleIndex = 6
}
Public Shared Property ColumnWinLinePrice As New GridColumn With {
.FieldName = "WinLinePrice",
.Caption = "Einzelpreis WinLine",
.VisibleIndex = 7
}
Public Shared Property ColumnPrice As New GridColumn With {
.FieldName = "Price",
.Caption = "Einzelpreis",
.VisibleIndex = 8
}
''' <summary>
''' Columns that can be changed in the positions grid
''' </summary>
Public Shared Property WritableColumns As New List(Of GridColumn) From {
ColumnPrice
}
Public Shared Property AllColumns As New List(Of GridColumn) From {
ColumnRowNumber,
ColumnArticleNumber,
ColumnArticleNumberVendor,
ColumnEuropeanArticleNumber,
ColumnArticleDescription,
ColumnEDIPrice,
ColumnWinLinePrice,
ColumnPrice
}
End Class
End Namespace

View File

@@ -0,0 +1,30 @@
Imports ImporterForm.Positions
Imports ImporterShared.Schemas
Public Class PositionData
Public Shared Function Load(pData As Orders.Input.MESOWebService, pDataOriginal As Orders.Input.MESOWebService) As List(Of Position)
Dim oPositions = Orders.Helpers.GetOrderPositions(pData)
Dim oPositionsOriginal = Orders.Helpers.GetOrderPositions(pDataOriginal)
Dim oPositionList As New List(Of Position)
For Each oPosition In oPositions
Dim oPositionOriginal = oPositionsOriginal.
Where(Function(p) p.Zeilennummer = oPosition.Zeilennummer).
SingleOrDefault()
oPositionList.Add(New Position With {
.ArticleNumber = oPosition.Artikelnummer,
.RowNumber = oPosition.Zeilennummer,
.ArticleDescription = oPosition.Bezeichnung,
.ArticleNumberVendor = oPosition.Lieferantenartikelnummer,
.EDIPrice = oPosition.Einzelpreis,
.WinLinePrice = 0,
.Price = 0,
.Amount = oPosition.Menge_bestellt,
.EuropeanArticleNumber = oPositionOriginal.Artikelnummer
})
Next
Return oPositionList
End Function
End Class

View File

@@ -0,0 +1,45 @@
Imports DevExpress.XtraGrid.Columns
Imports DevExpress.XtraGrid.Views.Grid
Imports ImporterShared.Documents
Imports ImporterForm.Positions
Namespace Positions
Public Class PositionGrid
Public Shared Sub LoadPositionViewAndColumns(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 = PositionColumns.AllColumns
Case Else
oColumns = New List(Of GridColumn)
End Select
' Reset the grid
pView.GridControl.DataSource = Nothing
pView.GridControl.ForceInitialize()
' Clear, add and adjust columns
pView.Columns.Clear()
pView.Columns.AddRange(oColumns.ToArray())
pView.BestFitColumns()
' Set columns readonly that need it
Dim oReadOnlyColumns = oColumns.
Except(PositionColumns.WritableColumns).
ToList()
For Each oColumn As GridColumn In pView.Columns
If oReadOnlyColumns.Contains(oColumn) Then
oColumn.OptionsColumn.ReadOnly = True
oColumn.OptionsColumn.AllowEdit = False
Else
oColumn.Caption &= " *"
End If
Next
End Sub
End Class
End Namespace