Einführung
Dieses Skript wird für den Import in der Kommissionsabrechnung verwendet.
Einrichtung
Das Skript wird im Hauptmenü unter Systemeinstellungen - > Zusatzmodule -> Konsilager Import bearbeitet.
Beispiel
Option Infer On
Option Explicit Off
Option Strict Off
Imports Styletronix.AuftragsverwaltungV2.Common
Imports Styletronix.AuftragsverwaltungV2
Imports System.Linq
Imports System
Imports System.Data
Imports System.Collections.Generic
Imports Microsoft.VisualBasic
Imports Styletronix.AuftragsverwaltungV2.Common.Konsilager
Public Class DynamicCode
Public Shared Sub Import(e As ImportParameters)
Using dlg As New System.Windows.Forms.OpenFileDialog With {
.AutoUpgradeEnabled = True,
.Title = "Datei für Import auswählen.",
.Filter = "CSV-Datei|*.csv"}
If dlg.ShowDialog = System.Windows.Forms.DialogResult.OK Then
Dim data = Styletronix.Utils.Data.DecodeCSV2(dlg.FileName, New Styletronix.Utils.Data.CSVOptions With {.Delimiters = New String() {";"}, .HasHeadline = True})
For Each row In data.Rows
Dim ArtNr As String = row("Teil")
Dim Lagerstand = Decimal.Parse(row("Bestand_STg"))
Dim Datum = DateTime.Parse(row("Stichtag"))
Dim item = (From a In e.Daten Where a.Artikel.Artikelnummer = ArtNr).FirstOrDefault
If item Is Nothing Then
DevExpress.XtraEditors.XtraMessageBox.Show(String.Format("Die Artikelnummer {0} wurde nicht gefunden.", ArtNr))
Else
item.NeuerLagerstand = If(item.NeuerLagerstand, 0) + Lagerstand
item.NeuerLagerstandDatum = Datum
item.Meldungen = "Import durch CSV Datei."
End If
Next
e.Handled = True
End If
End Using
End Sub
End Class
Parameter
Styletronix.AuftragsverwaltungV2.Common
Public Class Konsilager
Public Class Kommissionsdaten
Public Property ArtikelID As Int64
Public Property Artikel As tbl_Artikel
Public Property Lagerstand As Decimal
Public Property Kommissionsmenge As Decimal
Public Property KommissionsmengeGesamt As Decimal
Public Property Auftragliste As New List(Of tbl_Auftrag_Artikel)
Public ReadOnly Property Differenz As Decimal
Public Property NeuesteLieferung As DateTime?
Public Property NeuesteLageraktualisierung As DateTime?
Public Property Meldungen As String
Public Property Abrechnen As Decimal?
Public Property AbrechnenKommentar As String
Public Property NeuerLagerstand As Decimal?
Public Property NeuerLagerstandDatum As DateTime?
Public Property NeuerLagerstandBezeichnung As String
End Class
Public Class ImportParameters
Inherits EventArgs
Public Property Daten As List(Of Kommissionsdaten)
Public Property Handled As Boolean
Public Property DC As DC_AllgemeinDataContext
End Class
End Class