/// <summary> /// Завершение заказа. Вычитание со склада компонентов, необходимых для создания каждого букета /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void button__Complete_Click(object sender, RoutedEventArgs e) { // Составляем соотношение букета и его компонентов. foreach (var b in lCart_Bouquet) { Bouquet_Content current_bouquet = new Bouquet_Content(); current_bouquet.bouquet = b.bouquet; current_bouquet.lContent = await oContentsRepository.Select_Contents_Async("select * from contents where bouquets_id = " + b.bouquet.bouquets_id); // Вычитаем со склада компоненты для букета. foreach (var c in current_bouquet.lContent) { if (c.accessories_id != -1) { Accessories result = await conn.GetAsync <Accessories>(c.accessories_id); for (int i = 0; i < b.cart.count; i++) { result.in_stock -= c.count; } await oAccessoriesRepository.Update_Accessories_Async(result); } else { Flowers result = await conn.GetAsync <Flowers>(c.flowers_id); for (int i = 0; i < b.cart.count; i++) { result.in_stock -= c.count; } await oFlowersRepository.Update_Flowers_Async(result); } } } // Добавляем данные о заказе в БД Orders order = new Orders(oClient_Card.client.clients_id, DateTime.Now, textbox_Address.Text, oCart_Bouquet.cost, "В обработке"); await oOrdersRepository.Insert_Orders_Async(order); // Добавляем данные о корзине заказа в БД foreach (var c in lCart_Bouquet) { c.cart.orders_id = order.orders_id; await oCartsRepository.Insert_Carts_Async(c.cart); } Clear_Control_All(); this.Close(); System.Windows.Forms.MessageBox.Show("Заказ успешно создан!"); }
/// <summary> /// Обновление listview с букетами. Для каждого букета ставится в соответствие список его кмпонентов. Подсчитывается стоимость букета с учётом скидок Специальных Предложений /// </summary> /// <returns></returns> private async Task Update_ListView_Bouquets(string name) { List <Bouquet_Content> lBouquet_Content = new List <Bouquet_Content>(); List <Bouquets> lBouquets = await oBouquetsRepository.Select_All_Bouquets_Async(); foreach (var b in lBouquets) { Bouquet_Content bouquet_content = new Bouquet_Content(); if (b.name.ToLower().Contains(name.ToLower())) { bouquet_content.bouquet = b; bouquet_content.lContent = await oContentsRepository.Select_Contents_Async("select * from contents where bouquets_id = " + b.bouquets_id); bouquet_content.cost = 0; foreach (var c in bouquet_content.lContent) { if (c.accessories_id != -1) { bouquet_content.cost += (double)c.count * conn.GetAsync <Accessories>(c.accessories_id).Result.price; } else { bouquet_content.cost += (double)c.count * conn.GetAsync <Flowers>(c.flowers_id).Result.price; } } bouquet_content.cost += bouquet_content.bouquet.price_extra; // Обработка скидок по спец. предложениям try { SpecialDeals oSpecialDeals = (await oSpecialDealsRepository.Select_SpecialDeals_Async("select * from specialdeals where bouquets_id = " + b.bouquets_id))[0]; if (oSpecialDeals != null && oSpecialDeals.datetime >= DateTime.Now) { bouquet_content.cost = bouquet_content.cost * (1 - oSpecialDeals.discount / 100); } } catch { } lBouquet_Content.Add(bouquet_content); } } listview_Bouquets.ItemsSource = lBouquet_Content; }
/// <summary> /// Выделение букета в listview Букетов ЛКМ /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void listview_Bouquets_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { try { oBouquet_Content = (Bouquet_Content)listview_Bouquets.SelectedItem; numeric_Count.IsEnabled = true; numeric_Count.Value = 1; button_Create.IsEnabled = true; } catch { System.Windows.Forms.MessageBox.Show("Букет не выбран!"); } }