public static void AddPosition(string code, string number) { var info = WareHouseDBController.Find(code); if (info.Any()) { var amount = number.Length != 0 ? double.Parse(number, CultureInfo.InvariantCulture) : 1; var item = new CheckLine(new ProductData(info), amount); var availablePosition = ItemsPositions.Where(x => (x as CheckLine).Data.EAN13 == code); if (availablePosition.Any()) { (availablePosition.FirstOrDefault() as CheckLine).Amount += amount; } else { ItemsPositions.Add(item); } } else { MessageBox.Show(String.Format(LanguageEngine.Language["FastInvoiceActivity AddPositionErrorMessageBox"], code), LanguageEngine.Language["FastInvoiceActivity AddPositionErrorMessageBoxTitle"], MessageBoxButton.OK, MessageBoxImage.Error); } }
public static void AddUserPosition(string infoStr) { var usersInfo = UserDBController.FindLike(infoStr); if (usersInfo.Any()) { foreach (var userInfo in usersInfo) { var currentUser = new User(userInfo); if (!(ItemsPositions .Select(x => (x as User)) .Where(x => x.Name == currentUser.Name || x.Id == currentUser.Id) .Any())) { ItemsPositions.Add(currentUser); } else if (usersInfo.Count == 1) { MessageBox.Show(LanguageEngine.Language["UserControlServiceActivity AlreadyExist"], LanguageEngine.Language["UserControlServiceActivity AlreadyExistTitle"], MessageBoxButton.OK, MessageBoxImage.Error); } } } else { MessageBox.Show(LanguageEngine.Language["UserControlServiceActivity NotFound"], LanguageEngine.Language["UserControlServiceActivity NotFoundTitle"], MessageBoxButton.OK, MessageBoxImage.Error); } }
public static void ExportOnClick(DateTime from, DateTime to) { Stream stream; SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "CSV files (*.csv)|*.csv|All files (*.*)|*.*"; saveFileDialog.FilterIndex = 1; saveFileDialog.FileName = $"Export {DateTime.Now.ToString().Replace(':', '-')}"; saveFileDialog.RestoreDirectory = true; if (saveFileDialog.ShowDialog() == true) { // ReSharper disable once ConditionIsAlwaysTrueOrFalse if ((stream = saveFileDialog.OpenFile()) != null) { StringBuilder sb = new StringBuilder(); sb.AppendLine($"{LanguageEngine.Language["StatisticsActivity From"]};{from.ToString(CultureInfo.CurrentCulture)};" + $"{LanguageEngine.Language["StatisticsActivity To"]};{to.ToString(CultureInfo.CurrentCulture)}"); sb.AppendLine(LanguageEngine.Language["StatisticsActivity Titles"]); foreach (var pos in ItemsPositions.OfType <EmployeeStatistic>()) { sb.AppendLine($"{pos.CashierName};{pos.Invoices};{pos.Average};{pos.Total}"); } byte[] data = Encoding.Default.GetBytes(sb.ToString()); stream.Write(data, 0, data.Length); stream.Close(); } } }
public static void AmountOnClick(string number, int selectedIndex) { if (selectedIndex == -1) { return; } if (number.Length == 0) { (ItemsPositions[selectedIndex] as CheckLine).Amount++; } else { double amount = double.Parse(number, CultureInfo.InvariantCulture); string units = (ItemsPositions[selectedIndex] as CheckLine).Data.Units; if (amount <= 0) { ItemsPositions.RemoveAt(selectedIndex); } else if ((ItemsPositions[selectedIndex] as CheckLine).Amount < amount) { (ItemsPositions[selectedIndex] as CheckLine).Amount = units == "шт." ? Math.Round(amount, mode: MidpointRounding.AwayFromZero) : amount; } else if (MessageBox.Show(LanguageEngine.Language["FastInvoiceActivity Decreasing"], LanguageEngine.Language["FastInvoiceActivity DecreasingTitle"], MessageBoxButton.YesNo, MessageBoxImage.Exclamation) == MessageBoxResult.Yes) { (ItemsPositions[selectedIndex] as CheckLine).Amount = units == "шт." ? Math.Round(amount, mode: MidpointRounding.AwayFromZero) : amount; } } }
public static void AddPositionForSaving(string code) { if (code.Length == 13) { var availablePosition = ItemsPositions.Where(x => (x as DBProductData).Data.EAN13 == code); if (availablePosition.Any()) { MessageBox.Show(String.Format(LanguageEngine.Language["WareHouseActivity PositionContainsQuestion"], code), LanguageEngine.Language["WareHouseActivity PositionContainsQuestionTitle"], MessageBoxButton.OK, MessageBoxImage.Error); } else { var info = WareHouseDBController.Find(code); if (!info.Any()) { ItemsPositions.Add(new DBProductData(new ProductData(code), false)); } else if (MessageBox.Show(String.Format(LanguageEngine.Language["WareHouseActivity ContainsQuestion"], code), LanguageEngine.Language["WareHouseActivity ContainsQuestionTitle"], MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { if (!ItemsPositions.Where(x => (x as DBProductData).Data.EAN13 == code).Any()) { ItemsPositions.Add(new DBProductData(new ProductData(info), true)); } } } } else { MessageBox.Show(LanguageEngine.Language["WareHouseActivity EAN13FormatError"], LanguageEngine.Language["WareHouseActivity EAN13FormatErrorTitle"], MessageBoxButton.OK, MessageBoxImage.Error); } }
public static void UpdateUser(User user, string password) { UserDBController.Update(user, GetHash(password)); var oldUser = ItemsPositions.FirstOrDefault(x => (x as User).Id == user.Id); ItemsPositions[ItemsPositions.IndexOf(oldUser)] = user; if (user.Id == CurrentUser.Id) { CurrentUser = user; } }
public static bool AddNewUser(User newUser, string password) { var newUserHash = GetHash(password); try { UserDBController.Add(newUser.Id, newUser.Name, newUser.AccessLevel, newUserHash); } catch (System.Data.SQLite.SQLiteException) { return(false); } ItemsPositions.Add(newUser); return(true); }
private static void FillEmployeeStatistic(string cashierName, long fromTime, long toTime) { List <Invoice> data = new List <Invoice>(); var info = DBController.SQLNonVoidCommand( $"SELECT Data FROM documents WHERE CashierName='{cashierName}' AND DateTime BETWEEN {fromTime} AND {toTime}"); var jsons = info.Select(x => x.First()).ToList(); foreach (var json in jsons) { data.Add(JsonConvert.DeserializeObject <Invoice>(json)); } if (data.Count != 0) { ItemsPositions.Add(new EmployeeStatistic(data)); } }
public static void ProceedPayment(Invoice invoice) { var currentUserName = CurrentUser.Name; var jsonStr = JsonConvert.SerializeObject(invoice); PrintInvoice.Print(invoice); DocumentsDBController.Add( (int)DateTime.Now.Subtract(new DateTime(1970, 1, 1)).TotalSeconds, currentUserName, jsonStr); foreach (CheckLine position in invoice.Positions) { WareHouseDBController.DecreaseAmountBy(position.Data.EAN13, position.Amount); } ItemsPositions.Clear(); }
public static void AddStatisticsPositions(string name, long fromTime, long toTime) { ItemsPositions.Clear(); if (name == LanguageEngine.Language["StatisticsActivity All"]) { foreach (var user in GetUsersList()) { FillEmployeeStatistic(user, fromTime, toTime); } ItemsPositions.Add(new EmployeeStatistic( LanguageEngine.Language["StatisticsActivity Total"], ItemsPositions.Select(x => ((EmployeeStatistic)x).Invoices).Sum(), ItemsPositions.Select(x => ((EmployeeStatistic)x).Total).Sum())); } else { FillEmployeeStatistic(name, fromTime, toTime); } }
public static void DeleteFromDB(int selectedIndex) { if (ItemsPositions.Count == 0) { MessageBox.Show(LanguageEngine.Language["WareHouseActivity DeleteFromDB DeletingError"], LanguageEngine.Language["WareHouseActivity DeleteFromDB DeletingErrorTitle"], MessageBoxButton.OK, MessageBoxImage.Error); } else if (selectedIndex == -1) { if (MessageBox.Show(LanguageEngine.Language["WareHouseActivity DeleteFromDB DeletingPositions"], LanguageEngine.Language["WareHouseActivity DeleteFromDB DeletingPositionsTitle"], MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { foreach (DBProductData position in ItemsPositions) { if (position.IsInDB) { WareHouseDBController.Remove(position.Data.EAN13); } } ItemsPositions.Clear(); } } else { if ((ItemsPositions[selectedIndex] as DBProductData).IsInDB) { if (MessageBox.Show(LanguageEngine.Language["WareHouseActivity DeleteFromDB DeletingPosition"], LanguageEngine.Language["WareHouseActivity DeleteFromDB DeletingPositionTitle"], MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { var code = (ItemsPositions[selectedIndex] as DBProductData).Data.EAN13; WareHouseDBController.Remove(code); ItemsPositions.RemoveAt(selectedIndex); } } else { MessageBox.Show(LanguageEngine.Language["WareHouseActivity DeleteFromDB DeletingNotInDB"], LanguageEngine.Language["WareHouseActivity DeleteFromDB DeletingNotInDBTitle"], MessageBoxButton.OK, MessageBoxImage.Information); } } }
public static void DeleteUserFromDB(int selectedIndex) { if (ItemsPositions.Count == 0) { MessageBox.Show(LanguageEngine.Language["UserControlServiceActivity NothingToRemove"], LanguageEngine.Language["UserControlServiceActivity NothingToRemoveTitle"], MessageBoxButton.OK, MessageBoxImage.Error); } else if (ItemsPositions.Select(x => (x as User).Id).Contains(CurrentUser.Id)) { MessageBox.Show(LanguageEngine.Language["UserControlServiceActivity SelfRemoveDisallowed"], LanguageEngine.Language["UserControlServiceActivity SelfRemoveDisallowedTitle"], MessageBoxButton.OK, MessageBoxImage.Error); } else if (selectedIndex == -1) { if (MessageBox.Show(LanguageEngine.Language["UserControlServiceActivity DeletingAll"], LanguageEngine.Language["UserControlServiceActivity DeletingAllTitle"], MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { foreach (User user in ItemsPositions) { UserDBController.Remove(user.Id); } ItemsPositions.Clear(); } } else { if (MessageBox.Show(LanguageEngine.Language["UserControlServiceActivity ConfirmUserRemoving"], LanguageEngine.Language["UserControlServiceActivity ConfirmUserRemovingTitle"], MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { var id = (ItemsPositions[selectedIndex] as User).Id; UserDBController.Remove(id); ItemsPositions.RemoveAt(selectedIndex); } } }