111 lines
3.8 KiB
C#
111 lines
3.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Data;
|
|
using System.Windows.Documents;
|
|
using System.Windows.Input;
|
|
using System.Windows.Media;
|
|
using System.Windows.Media.Imaging;
|
|
using System.Windows.Navigation;
|
|
using System.Windows.Shapes;
|
|
using ChudoObuv.Data;
|
|
using ChudoObuv.Logic;
|
|
using ChudoObuv.Models;
|
|
namespace ChudoObuv.Pages
|
|
{
|
|
public partial class OrdersPage : Page
|
|
{
|
|
public OrdersPage()
|
|
{
|
|
InitializeComponent();
|
|
|
|
|
|
}
|
|
// Список перечитывается при каждом открытии страницы (после добавления, изменения, удаления)
|
|
private void Page_Loaded(object sender, RoutedEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (ClientComboBox.ItemsSource == null)
|
|
{
|
|
ClientComboBox.ItemsSource = DataService.GetClients();
|
|
}
|
|
OrdersDataGrid.ItemsSource = DataService.GetOrders();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Messages.ShowDatabaseError(ex);
|
|
}
|
|
}
|
|
private Order GetSelectedOrder()
|
|
{
|
|
if (OrdersDataGrid.SelectedItem is Order order)
|
|
{
|
|
return order;
|
|
}
|
|
Messages.ShowWarning("Сначала выберите заказ в списке (щелкните по строке).");
|
|
return null;
|
|
}
|
|
private void AddOrderButton_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
if (ClientComboBox.SelectedItem is not User client)
|
|
{
|
|
Messages.ShowWarning("Выберите клиента, для которого оформляется заказ.");
|
|
ClientComboBox.Focus();
|
|
return;
|
|
}
|
|
if (Session.Cart.Count > 0 && !Messages.Confirm("Ранее начатый неподтвержденный заказ будет отменен.Продолжить ? "))
|
|
{
|
|
return;
|
|
}
|
|
Session.StartOrderFor(client);
|
|
NavigationService.Navigate(new CatalogPage());
|
|
}
|
|
private void CatalogButton_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
NavigationService.Navigate(new CatalogPage());
|
|
}
|
|
private void OpenOrderButton_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
Order order = GetSelectedOrder();
|
|
if (order != null)
|
|
{
|
|
NavigationService.Navigate(new OrderPage(order));
|
|
}
|
|
}
|
|
private void OrdersDataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)
|
|
{
|
|
if (OrdersDataGrid.SelectedItem is Order order)
|
|
{
|
|
NavigationService.Navigate(new OrderPage(order));
|
|
}
|
|
}
|
|
private void DeleteOrderButton_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
Order order = GetSelectedOrder();
|
|
if (order == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (!Messages.Confirm($"Удалить заказ No {order.Id} от {order.OrderDate:dd.MM.yyyy} ({ order.ClientFullName})?\n" + "Товары вернутся на склад. Действие нельзя отменить."))
|
|
{
|
|
return;
|
|
}
|
|
try
|
|
{
|
|
DataService.DeleteOrder(order.Id);
|
|
OrdersDataGrid.ItemsSource = DataService.GetOrders();
|
|
Messages.ShowInfo($"Заказ No {order.Id} удален.");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Messages.ShowDatabaseError(ex);
|
|
}
|
|
}
|
|
}
|
|
} |