protected ProductViewModel(Product product) { IDs = new List<int>{product.ID}; SerialNumber = product.SerialNumber; ModelName = product.Model.Name; CategoryName = product.Model.Category.Name; Notes = product.Notes; SellingPrice = product.SellingPrice; DateSellTo = product.DateSellTo; ModelID = product.ModelID; Origin = TranType.Zero; MoneySpentForProduct = 0; var orderedTransactions = product.Transactions.OrderBy(x => x.Date); if (orderedTransactions.FirstOrDefault() != null && orderedTransactions.FirstOrDefault().Operator != null) SalesmanBought = new SalesmanViewModel(orderedTransactions.FirstOrDefault().Operator.Salesman); foreach (var transaction in orderedTransactions) { if (transaction.TypeID != (int)TranType.Bought && transaction.TypeID != (int)TranType.Repaired && transaction.TypeID != (int)TranType.ToPawn && transaction.TypeID != (int)TranType.ToRepair) continue; if (transaction.TypeID != (int)TranType.ToRepair && transaction.Price != null) MoneySpentForProduct += transaction.Price.Value; if (transaction.TypeID != (int)TranType.Repaired) Origin = (TranType)transaction.TypeID; } Status = orderedTransactions.LastOrDefault() == null ? TranType.Zero : (TranType) orderedTransactions.LastOrDefault().TypeID; }
public ModelSerialNumberStatusPriceBoughtGroup(Product product) { Model = product.Model; SerialNumber = product.SerialNumber; var orderedTransactions = product.Transactions.OrderBy(x => x.Date); Status = !orderedTransactions.Any() ? TranType.Zero : (TranType)orderedTransactions.LastOrDefault().TypeID; PriceBought = orderedTransactions.FirstOrDefault(x => x.TypeID == (int) TranType.Bought) == null ? null : orderedTransactions.FirstOrDefault(x => x.TypeID == (int)TranType.Bought).Price; }
public ToPawnProductViewModel(Product product) : base(product) { var orderedTransactions = product.Transactions.OrderBy(x => x.Date); var transactionToPawn = orderedTransactions.LastOrDefault(x => x.TypeID == (int)TranType.ToPawn); if (transactionToPawn != null) { DateTake = transactionToPawn.Date; Client = new ClientViewModel(transactionToPawn.Contragent.Client); SalesmanTake = new SalesmanViewModel(transactionToPawn.Operator.Salesman); } }
public SoldProductViewModel(Product product) : base(product) { var ordered = product.Transactions.OrderBy(x => x.Date); var transactionSold = ordered.LastOrDefault(x => x.TypeID == (int)TranType.Sold); if (transactionSold != null) { if (transactionSold.Price != null) PriceSold = transactionSold.Price.Value; SalesmanSold = new SalesmanViewModel(transactionSold.Operator.Salesman); DateSold = transactionSold.Date; } SalesmanWithProfit = Origin == TranType.Bought ? SalesmanSold : SalesmanBought; Profit = PriceSold - MoneySpentForProduct; SalesmanProfit = Profit*((decimal) SalesmanWithProfit.ProfitPercentage/(decimal) 100); }
public ToRepairProductViewModel(Product product) : base(product) { var orderedTransactions = product.Transactions.OrderBy(x => x.Date); var firstToRepairTransaction = orderedTransactions.FirstOrDefault(x => x.TypeID == (int) TranType.ToRepair); if (firstToRepairTransaction != null && firstToRepairTransaction.Contragent != null && firstToRepairTransaction.Contragent.Client != null) { Client = new ClientViewModel(firstToRepairTransaction.Contragent.Client); } var lastTransaction = orderedTransactions.LastOrDefault(); if (lastTransaction != null) { LastTransactionDate = lastTransaction.Date; LastTransactionSalesman = new SalesmanViewModel(lastTransaction.Operator.Salesman); CurrentRepairer = (lastTransaction.Contragent == null || lastTransaction.Contragent.Repairer == null) ? null : new RepairerViewModel(lastTransaction.Contragent.Repairer); } }
private void AddProduct() { Product product = new Product { ModelID = _selectedProduct.ModelID, SerialNumber = _selectedProduct.SerialNumber, Notes = _selectedProduct.Notes, SellingPrice = _selectedProduct.SellingPrice, DateSellTo = _selectedProduct.DateSellTo }; _mainViewModel.Context.Products.Add(product); Transaction transaction = new Transaction { Product = product, Date = DateTime.Now, TypeID = (int)TranType.Bought, OperatorID = OperatorManager.Instance.CurrentUserID, Price = _selectedProduct.Price }; _mainViewModel.Context.Transactions.Add(transaction); }
private void AddProduct() { ModelName = Trim(ModelName); FirstName = Trim(FirstName); LastName = Trim(LastName); SerialNumber = Trim(SerialNumber); Notes = Trim(Notes); Product product = new Product {SerialNumber = SerialNumber, SellingPrice = SellingPrice, Notes = Notes}; if (Models.Contains(ModelName)) product.Model = GetModelIDByName(ModelName); if (!Models.Contains(ModelName) || product.Model == null) { Model model = new Model {Name = ModelName, CategoryID = SelectedCategory.ID}; _mainViewModel.Context.Models.Add(model); product.Model = model; } _mainViewModel.Context.Products.Add(product); var client = _mainViewModel.Context.Clients.FirstOrDefault( x => x.Contragent.FirstName == FirstName && x.Contragent.LastName == LastName); if (client == null) { var contragent = new Contragent { LastName = LastName, FirstName = FirstName }; client = new Client { Contragent = contragent }; _mainViewModel.Context.Clients.Add(client); } Transaction transaction = new Transaction { Product = product, Date = DateTime.Now, TypeID = (int) TranType.ToRepair, OperatorID = OperatorManager.Instance.CurrentUserID, Contragent = client.Contragent, Price = 0 }; _mainViewModel.Context.Transactions.Add(transaction); try { _mainViewModel.Context.SaveChanges(); } catch (Exception e) { MessageBox.Show(("Не удалось добавить новый товар"), "Error", MessageBoxButton.OK, MessageBoxImage.Error); Logging.WriteToLog("Failed add new bought transaction. " + e.Message); } _mainViewModel.ToRepairProductsViewModel.Update(); _mainViewModel.ToRepairProductsViewModel.AddDialogViewModel = null; }