修复 发票 全选 数字显示错误Bug

This commit is contained in:
chfei committed 2026-10-16 17:28:35 +08:00
1 parent b2d6d81e07
commit 2465b38e65
1 file changed
+15 -5
@@ -105,6 +105,16 @@ public partial class PDDInvoiceViewModel : BindableBaseEx, IDialogAware, IDispos
if (order.OrderTime < StartTime || EndTime < order.OrderTime) return false;
return true;
}
/// <summary>
/// 获取筛选后的数据
/// </summary>
/// <returns></returns>
private IEnumerable<PddBrowserOrderInvoiceViewModel> GetFilterOrders()
{
return OrdersView.Cast<PddBrowserOrderInvoiceViewModel>();
}
partial void InitBrowser();
partial void InitBrowserDetail();
/// <summary> 列表增删时订阅/退订订单勾选状态,用于刷新表头全选状态 </summary>
@@ -365,7 +375,7 @@ public partial class PDDInvoiceViewModel : BindableBaseEx, IDialogAware, IDispos
if (_isUpdatingSelectAll) return;
if (value == true)
{
foreach (var order in Orders)
foreach (var order in GetFilterOrders())
{
if (order.IsInvoiced == false)
{
@@ -441,7 +451,7 @@ public partial class PDDInvoiceViewModel : BindableBaseEx, IDialogAware, IDispos
return;
}
var targets = OrdersView.Cast<PddBrowserOrderInvoiceViewModel>().Where(o => o.IsSelected && !o.IsInvoiced).ToList();
var targets = GetFilterOrders().Where(o => o.IsSelected && !o.IsInvoiced).ToList();
if (targets.Count == 0)
{
BaseMsgWindow.ShowError("请先勾选需要开票的订单");
@@ -522,7 +532,7 @@ public partial class PDDInvoiceViewModel : BindableBaseEx, IDialogAware, IDispos
BottomMsg = $"正在批量开票:{i}/{targets.Count},当前订单:{order.order_sn}";
ProgressValue = i;
SelectedOrder = order;
BatchInvoiceChanged?.Invoke(this, OrdersView.Cast<PddBrowserOrderInvoiceViewModel>().ToList().IndexOf(order));
BatchInvoiceChanged?.Invoke(this, GetFilterOrders().ToList().IndexOf(order));
bool ok = false;
if (EnvironmentHelper.IsTest)
{
@@ -586,8 +596,8 @@ public partial class PDDInvoiceViewModel : BindableBaseEx, IDialogAware, IDispos
/// </summary>
private void StatisticsInvoiceAmount()
{
InvoicedAmountTotal = OrdersView.Cast<PddBrowserOrderInvoiceViewModel>().Where(a => a.IsInvoiced).Sum(a => a.order_amount) / 100m;
UninvoicedAmountTotal = OrdersView.Cast<PddBrowserOrderInvoiceViewModel>().Where(a => a.IsInvoiced == false).Sum(a => a.order_amount) / 100m;
InvoicedAmountTotal = GetFilterOrders().Where(a => a.IsInvoiced).Sum(a => a.order_amount) / 100m;
UninvoicedAmountTotal = GetFilterOrders().Where(a => a.IsInvoiced == false).Sum(a => a.order_amount) / 100m;
}
#endregion