|
|
|
|
@ -2,11 +2,10 @@
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Collections.ObjectModel;
|
|
|
|
|
using System.Windows;
|
|
|
|
|
using System.Windows.Data;
|
|
|
|
|
|
|
|
|
|
namespace Gremlin.GremlinUI.ViewModels
|
|
|
|
|
{
|
|
|
|
|
internal class LineItemViewModel : BaseViewModel
|
|
|
|
|
internal class LineItemVM : BaseVM
|
|
|
|
|
{
|
|
|
|
|
public ushort Position { get; set; }
|
|
|
|
|
public ushort Amount { get; set; }
|
|
|
|
|
@ -22,11 +21,41 @@ namespace Gremlin.GremlinUI.ViewModels
|
|
|
|
|
//public decimal DemoDiscount { get; set; }
|
|
|
|
|
public decimal ListPrice { get; set; }
|
|
|
|
|
public decimal NetPrice { get; set; }
|
|
|
|
|
public decimal Total { get; set; }
|
|
|
|
|
public decimal TotalNet { get; set; }
|
|
|
|
|
|
|
|
|
|
public static ObservableCollection<LineItemViewModel> ParseClipboardList(IEnumerable<string[]> lineItemStrings)
|
|
|
|
|
internal static ObservableCollection<LineItemVM> ReadLineItemsFromClipboard()
|
|
|
|
|
{
|
|
|
|
|
ObservableCollection<LineItemViewModel> lineItems = new();
|
|
|
|
|
if (Clipboard.GetText() != "")
|
|
|
|
|
{
|
|
|
|
|
//Clipboard einlesen
|
|
|
|
|
string clipboard = Clipboard.GetText();
|
|
|
|
|
|
|
|
|
|
//Zeilen aufteilen
|
|
|
|
|
IEnumerable<string> clipboardLines = clipboard.Split(Environment.NewLine.ToCharArray());
|
|
|
|
|
List<string[]> clipboardList = new();
|
|
|
|
|
|
|
|
|
|
foreach (string clipboardLine in clipboardLines)
|
|
|
|
|
{
|
|
|
|
|
if (clipboardLine != "")
|
|
|
|
|
{
|
|
|
|
|
//Nach Trennzeichen trennen
|
|
|
|
|
string[] clipboardLineSplit = clipboardLine.Split('\t');
|
|
|
|
|
clipboardList.Add(clipboardLineSplit);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return LineItemVM.ParseClipboardList(clipboardList);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
_ = MessageBox.Show("Clipboard ist leer!");
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static ObservableCollection<LineItemVM> ParseClipboardList(IEnumerable<string[]> lineItemStrings)
|
|
|
|
|
{
|
|
|
|
|
ObservableCollection<LineItemVM> lineItems = new();
|
|
|
|
|
int countError = 0;
|
|
|
|
|
int countEmpty = 0;
|
|
|
|
|
|
|
|
|
|
@ -43,7 +72,7 @@ namespace Gremlin.GremlinUI.ViewModels
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//Dateiinhalt in Klasse schreiben
|
|
|
|
|
LineItemViewModel lineItem = new();
|
|
|
|
|
LineItemVM lineItem = new();
|
|
|
|
|
lineItem.Position = ushort.Parse(lineItemString[0]);
|
|
|
|
|
lineItem.ProductNumber = lineItemString[1];
|
|
|
|
|
lineItem.OptionNumber = lineItemString[2];
|
|
|
|
|
@ -53,7 +82,7 @@ namespace Gremlin.GremlinUI.ViewModels
|
|
|
|
|
lineItem.ListPrice = decimal.Parse(lineItemString[6]);
|
|
|
|
|
lineItem.TotalDiscount = decimal.Parse(lineItemString[9]);
|
|
|
|
|
lineItem.NetPrice = decimal.Parse(lineItemString[10]);
|
|
|
|
|
lineItem.Total = decimal.Parse(lineItemString[11]);
|
|
|
|
|
lineItem.TotalNet = decimal.Parse(lineItemString[11]);
|
|
|
|
|
//lineItem.SalesDiscount = decimal.Parse(lineItemString[12]);
|
|
|
|
|
//lineItem.ContractualDiscount = decimal.Parse(lineItemString[13]);
|
|
|
|
|
//lineItem.PromotionalDiscount = decimal.Parse(lineItemString[14]);
|
|
|
|
|
@ -72,30 +101,30 @@ namespace Gremlin.GremlinUI.ViewModels
|
|
|
|
|
return lineItems;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal static decimal GetTotalNet(ObservableCollection<LineItemViewModel> lineItems)
|
|
|
|
|
internal static decimal GetTotalNet(ObservableCollection<LineItemVM> lineItems)
|
|
|
|
|
{
|
|
|
|
|
decimal totalNet = 0;
|
|
|
|
|
foreach (LineItemViewModel lineItem in lineItems)
|
|
|
|
|
foreach (LineItemVM lineItem in lineItems)
|
|
|
|
|
{
|
|
|
|
|
totalNet += lineItem.NetPrice;
|
|
|
|
|
}
|
|
|
|
|
return totalNet;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal static decimal GetTotalDiscount(ObservableCollection<LineItemViewModel> lineItems)
|
|
|
|
|
internal static decimal GetTotalDiscount(ObservableCollection<LineItemVM> lineItems)
|
|
|
|
|
{
|
|
|
|
|
decimal totalDiscount = 0;
|
|
|
|
|
foreach (LineItemViewModel lineItem in lineItems)
|
|
|
|
|
foreach (LineItemVM lineItem in lineItems)
|
|
|
|
|
{
|
|
|
|
|
totalDiscount += lineItem.TotalDiscount;
|
|
|
|
|
}
|
|
|
|
|
return totalDiscount;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal static decimal GetTotalListprice(ObservableCollection<LineItemViewModel> lineItems)
|
|
|
|
|
internal static decimal GetTotalListprice(ObservableCollection<LineItemVM> lineItems)
|
|
|
|
|
{
|
|
|
|
|
decimal totalListprice = 0;
|
|
|
|
|
foreach (LineItemViewModel lineItem in lineItems)
|
|
|
|
|
foreach (LineItemVM lineItem in lineItems)
|
|
|
|
|
{
|
|
|
|
|
totalListprice += lineItem.ListPrice;
|
|
|
|
|
}
|