12.13

using BookManagement.service;
using BookManagement.util;
using System;
using System.Windows;
using System.Windows.Controls;


namespace BookManagement.page
{
    public partial class SalesOrderPage : Page
    {
        private int _pageSize = 15;
        private int _currentPage = 1;
        private int _totalRecords = 0;
        private int _totalPages = 0;
        private int? _currentUserId;

        public SalesOrderPage()
        {
            InitializeComponent();
            _currentUserId = Session.GetCurrentUserId();
            if (!_currentUserId.HasValue)
            {
                MessageBox.Show("未检测到登录用户,请重新登录!");
                return;
            }
            ShowSalesOrderDetail();
        }

        private void ShowSalesOrderDetail()
        {
            try
            {
                int? salesOrderId = null;
                if (int.TryParse(SalesOrderIdTextBox.Text, out int parsedSalesOrderId))
                {
                    salesOrderId = parsedSalesOrderId;
                }

                string? isbn = !string.IsNullOrWhiteSpace(ISBNTextBox.Text) ? ISBNTextBox.Text : null;
                string? bookName = !string.IsNullOrWhiteSpace(BookNameTextBox.Text) ? BookNameTextBox.Text : null;

                DateOnly? startOrderDate = null;
                if (StartOrderDateTextBox.SelectedDate.HasValue)
                {
                    startOrderDate = DateOnly.FromDateTime(StartOrderDateTextBox.SelectedDate.Value);
                }

                DateOnly? endOrderDate = null;
                if (EndOrderDateTextBox.SelectedDate.HasValue)
                {
                    endOrderDate = DateOnly.FromDateTime(EndOrderDateTextBox.SelectedDate.Value);
                }

                _totalRecords = SalesOrderService.GetCompleteSalesOrderCountByUserId(
                    salesOrderId, isbn, bookName, startOrderDate, endOrderDate, _currentUserId.Value);
                _totalPages = (int)Math.Ceiling((double)_totalRecords / _pageSize);

                var completeSalesOrders = SalesOrderService.GetCompleteSalesOrdersByMultipleConditionsAndUserId(
                    _currentPage, _pageSize, salesOrderId, isbn, bookName, startOrderDate, endOrderDate, _currentUserId.Value);

                PageInfoText.Text = $"当前第{_currentPage}页,共{_totalPages}页";
                CompleteSalesOrderDataGrid.ItemsSource = completeSalesOrders;
            }
            catch (Exception ex)
            {
                MessageBox.Show($"加载数据时发生错误: {ex.Message}");
            }
        }

        private void PreviousPageButton_Click(object sender, RoutedEventArgs e)
        {
            if (_currentPage > 1)
            {
                _currentPage--;
                ShowSalesOrderDetail();
            }
            else
            {
                MessageBox.Show("已经是第一页!");
            }
        }

        private void NextPageButton_Click(object sender, RoutedEventArgs e)
        {
            if (_currentPage < _totalPages)
            {
                _currentPage++;
                ShowSalesOrderDetail();
            }
            else
            {
                MessageBox.Show("已经是最后一页!");
            }
        }

        private void SearchButton_Click(object sender, RoutedEventArgs e)
        {
            _currentPage = 1;
            ShowSalesOrderDetail();
        }
    }
}
posted @ 2024-12-13 19:41  徐星凯  阅读(11)  评论(0)    收藏  举报