Einführung
Dieses Skript wird zur Berechnung des Artikelpreis für die Inventurstatistik verwendet.
Einrichtung
Das Skript wird im Hauptmenü unter Systemeinstellungen - > Zusatzmodule -> Lagerstatistik 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.IPC
Imports System.Drawing
Imports Styletronix.Threading
Imports System.Threading
Public Class DynamicCode
Public Shared Sub CalculateInventoryValue(e As CalculateInventoryValueEventArgs)
Dim art = e.Artikel
Dim lager = e.Lager
Dim Artikelpreis As Decimal = 0
Dim Zuschlagpreis As Decimal = 0
Dim IstEK As Boolean = False
Dim PreisFertig1 As Decimal = 0
Dim PreisFertig2 As Decimal = 0
Dim PreisUnfertig1 As Decimal = 0
Dim PreisUnfertig2 As Decimal = 0
If Not art.tbl_Warengruppen Is Nothing AndAlso (art.tbl_Warengruppen.Bezeichnung.StartsWith("Erzeugnisse") Or art.tbl_Warengruppen.Bezeichnung.StartsWith("Konsilager")) Then
Dim Staffel = art.PreisstaffelEx
If Staffel.Count > 0 Then
Dim MaxMenge = (From a In Staffel Select a.Menge).Max
Artikelpreis = (From b In Staffel Where b.Artikel.ID = art.ID And b.Menge = MaxMenge Select b.Endpreis).FirstOrDefault
If Artikelpreis <= 0 Then
Artikelpreis = If(art.EK_ProLagereinheit, 0)
IstEK = True
Else
Artikelpreis = Artikelpreis / art.EinheitFaktor_LagerPreis
Zuschlagpreis = (From c In Staffel Where c.Artikel.ID <> art.ID And c.Menge = MaxMenge Select c.Endpreis).Sum
Zuschlagpreis = Zuschlagpreis / art.EinheitFaktor_LagerPreis
End If
Else
Artikelpreis = If(art.EK_ProLagereinheit, 0)
IstEK = True
End If
Else
Artikelpreis = If(art.EK_ProLagereinheit, 0)
IstEK = True
End If
If IstEK Then
PreisFertig1 = Artikelpreis
PreisFertig2 = 0
PreisUnfertig1 = Artikelpreis
PreisUnfertig2 = 0
Else
PreisFertig1 = Artikelpreis * 0.75
PreisFertig2 = Zuschlagpreis * 1.0
PreisUnfertig1 = Artikelpreis * 0.25
PreisUnfertig2 = Zuschlagpreis * 0.25
End If
If lager.Bezeichnung.Contains("(Unfertig)") Then
e.AmountPerItem = (PreisUnfertig1 + PreisUnfertig2)
Else
e.AmountPerItem = (PreisFertig1 + PreisFertig2)
End If
e.Handled = True
End Sub
End Class