2021-08-27 15:20:35 +02:00

50 lines
2.0 KiB
VB.net

Imports DigitalData.Modules.Logging
Imports ImporterForm.Positions
Imports ImporterShared.Winline
Imports ImporterShared.Schemas
Public Class PositionData
Inherits ImporterShared.BaseClass
Private Winline As Data
Public Sub New(pLogConfig As LogConfig, pWinline As Data)
MyBase.New(pLogConfig, pLogConfig.GetLogger())
Winline = pWinline
End Sub
Public Function Load(pMandator As Mandator, pData As Orders.Input.MESOWebService, pDataOriginal As Orders.Input.MESOWebService) As List(Of Position)
Dim oPositions = Orders.Helpers.GetOrderPositions(Of Orders.Input.MESOWebServiceEXIMVRG_ordersT026)(pData)
Dim oPositionsOriginal = Orders.Helpers.GetOrderPositions(Of Orders.Input.MESOWebServiceEXIMVRG_ordersT026)(pDataOriginal)
Dim oPositionList As New List(Of Position)
For Each oPosition In oPositions
Dim oPositionOriginal = oPositionsOriginal.
Where(Function(p) p.Zeilennummer = oPosition.Zeilennummer).
SingleOrDefault()
Dim oReplacementNumber As String = Winline.GetReplacementArticleNumber(oPosition.Artikelnummer, pMandator)
' If ArticleNumber is the same as the replacement Number, this Article does not have a replacement Number
If oReplacementNumber = oPosition.Artikelnummer Then
oReplacementNumber = Nothing
End If
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,
.ReplacementArticleNumber = oReplacementNumber
})
Next
Return oPositionList
End Function
End Class