247 lines
7.6 KiB
C#
247 lines
7.6 KiB
C#
using _29WxOrderWpf.BaseWindows;
|
|
using _29WxOrderWpf.Views;
|
|
using AllBase;
|
|
using AllBase.Helper;
|
|
using AllBase.Model.DBModel;
|
|
using NaiBa.Util.Extension;
|
|
using Newtonsoft.Json.Linq;
|
|
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 Work;
|
|
using Work._29Tools.BLL;
|
|
using WxOrder.Framework.Commons;
|
|
|
|
namespace _29WxOrderWpf.Ctrls.OrderCtrls;
|
|
|
|
/// <summary>
|
|
/// OrderTransitListDetailCtrl.xaml 的交互逻辑
|
|
/// </summary>
|
|
public partial class OrderTransitListDetailCtrl : UserControl
|
|
{
|
|
public OrderTransitListDetailCtrl()
|
|
{
|
|
InitializeComponent();
|
|
|
|
this.txtOutOrderId.AddHandler(TextBox.MouseUpEvent, new MouseButtonEventHandler(txtOutOrderId_MouseLeftButtonUp), true);
|
|
this.txtOutOrderBuyer.AddHandler(TextBox.MouseUpEvent, new MouseButtonEventHandler(txtOutOrderId_MouseLeftButtonUp), true);
|
|
}
|
|
|
|
/// <summary> 作废包裹 </summary>
|
|
private async void btnVoidPackage_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
if (this.DataContext is oms_wei_order_item_transit_detail_info transitDetailInfo)
|
|
{
|
|
btnVoidPackage.IsEnabled = false;
|
|
var orderItem = transitDetailInfo.oms_wei_order_item_info;
|
|
var transitOrder = transitDetailInfo.oms_wei_external_procurement_log_info;
|
|
var returnOrder = transitDetailInfo.oms_wei_external_procurement_after_sale_info;
|
|
var extOrder = transitDetailInfo.oms_wei_transfer_extra_package;
|
|
|
|
// 作废发货包裹
|
|
if (transitOrder != null)
|
|
{
|
|
transitOrder = orderItem.ItemTransitOrders.FirstOrDefault(t => t.order_code == transitOrder.order_code) ?? transitOrder;
|
|
await OrderTransitService.VoidOrder(orderItem, transitOrder);
|
|
}
|
|
// 作废退货包裹
|
|
else if (returnOrder != null)
|
|
{
|
|
try
|
|
{
|
|
var voidResult = await OrderTransitService.VoidAfterSalePackage(orderItem, returnOrder);
|
|
if (!string.IsNullOrEmpty(voidResult))
|
|
BaseMsgWindow.ShowInfo(voidResult);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
BaseMsgWindow.ShowError(ex.Message);
|
|
}
|
|
}
|
|
// 作废额外包裹
|
|
else if (extOrder != null)
|
|
{
|
|
try
|
|
{
|
|
var voidResult = await OrderTransitService.VoidExtraPackage(orderItem, extOrder);
|
|
if (!string.IsNullOrEmpty(voidResult))
|
|
BaseMsgWindow.ShowInfo(voidResult);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
BaseMsgWindow.ShowError(ex.Message);
|
|
}
|
|
}
|
|
|
|
RefreshListCtrl(orderItem);
|
|
btnVoidPackage.IsEnabled = true;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// <summary> 拒收包裹 </summary>
|
|
private async void btnAddEditTransitWarehouseReject_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
if (this.DataContext is oms_wei_order_item_transit_detail_info transitDetailInfo)
|
|
{
|
|
btnAddEditTransitWarehouseReject_New.IsEnabled = false;
|
|
|
|
var orderItem = transitDetailInfo.oms_wei_order_item_info;
|
|
var transitOrder = transitDetailInfo.oms_wei_external_procurement_log_info;
|
|
var returnOrder = transitDetailInfo.oms_wei_external_procurement_after_sale_info;
|
|
var extOrder = transitDetailInfo.oms_wei_transfer_extra_package;
|
|
|
|
// 拒收发货包裹
|
|
if (transitOrder != null)
|
|
{
|
|
try
|
|
{
|
|
var rejectRst = await OrderTransitService.RejectTransitOrder(orderItem, transitOrder);
|
|
if (!string.IsNullOrEmpty(rejectRst))
|
|
BaseMsgWindow.ShowInfo(rejectRst);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
BaseMsgWindow.ShowError(ex.Message);
|
|
}
|
|
|
|
}
|
|
// 拒收额外包裹(额外包裹暂不支持多件商品发货,故暂不存在拒收功能)
|
|
else if (extOrder != null)
|
|
{
|
|
|
|
}
|
|
|
|
RefreshListCtrl(orderItem);
|
|
btnAddEditTransitWarehouseReject_New.IsEnabled = true;
|
|
|
|
}
|
|
}
|
|
|
|
private void btnAddEditTransitWarehouseAfterSale_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
if (this.DataContext is oms_wei_order_item_transit_detail_info transitDetailInfo)
|
|
{
|
|
btnAddEditTransitWarehouseAfterSale_n1.IsEnabled = false;
|
|
btnAddEditTransitWarehouseAfterSale_n2.IsEnabled = false;
|
|
|
|
var orderItem = transitDetailInfo.oms_wei_order_item_info;
|
|
var transitOrder = transitDetailInfo.oms_wei_external_procurement_log_info;
|
|
var returnOrder = transitDetailInfo.oms_wei_external_procurement_after_sale_info;
|
|
var extOrder = transitDetailInfo.oms_wei_transfer_extra_package;
|
|
|
|
if (transitOrder != null)
|
|
{
|
|
bool isOutWarehouse = sender == btnAddEditTransitWarehouseAfterSale_n2;
|
|
OrderListRowItemCtrl.ShowReturnPackageWindow(orderItem, transitDetailInfo, isOutWarehouse);
|
|
}
|
|
else if (extOrder != null)
|
|
{
|
|
bool isOutWarehouse = sender == btnAddEditTransitWarehouseAfterSale_n2;
|
|
OrderListRowItemCtrl.ShowReturnPackageWindow(orderItem, transitDetailInfo, isOutWarehouse);
|
|
}
|
|
|
|
RefreshListCtrl(orderItem);
|
|
btnAddEditTransitWarehouseAfterSale_n1.IsEnabled = true;
|
|
btnAddEditTransitWarehouseAfterSale_n2.IsEnabled = true;
|
|
}
|
|
}
|
|
|
|
private void btnTransitExtraPackages_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
// 滞留补发买家(补发包裹)
|
|
if (this.DataContext is oms_wei_order_item_transit_detail_info transitDetailInfo)
|
|
{
|
|
var orderItem = transitDetailInfo.oms_wei_order_item_info;
|
|
var transitOrder = transitDetailInfo.oms_wei_external_procurement_log_info;
|
|
var returnOrder = transitDetailInfo.oms_wei_external_procurement_after_sale_info;
|
|
var extOrder = transitDetailInfo.oms_wei_transfer_extra_package;
|
|
|
|
if (transitOrder != null)
|
|
{
|
|
// 不是中转仓,直接返回
|
|
if (transitOrder == null)
|
|
{
|
|
BaseMsgWindow.ShowError("非中转仓订单不支持补发!");
|
|
return;
|
|
}
|
|
|
|
TransitExtraPackagesView transitExtraPackagesView = new TransitExtraPackagesView(orderItem.ItemOrder, orderItem, transitOrder);
|
|
new DialogWindow()
|
|
{
|
|
Title = "滞留补发买家",
|
|
Content = transitExtraPackagesView,
|
|
}.ShowDialog();
|
|
}
|
|
|
|
RefreshListCtrl(orderItem);
|
|
}
|
|
}
|
|
|
|
public void RefreshListCtrl(oms_wei_order_item_info orderItem)
|
|
{
|
|
// 更新列表
|
|
if (FindParent<OrderTransitListCtrl>(this) is OrderTransitListCtrl transitListCtrl)
|
|
{
|
|
oms_wei_order_item_transit_model transitInfo = new oms_wei_order_item_transit_model()
|
|
{
|
|
OrderItem = GlobalConfig.lstOrder.FirstOrDefault(o => o.order_id == orderItem?.order_id)?.orderItems.FirstOrDefault(oi => oi.sku_id == orderItem?.sku_id),
|
|
};
|
|
transitListCtrl.UpdateViewModel(transitInfo);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查找指定类型的父级控件
|
|
/// </summary>
|
|
/// <typeparam name="T">目标父控件类型</typeparam>
|
|
/// <param name="child">起始子控件</param>
|
|
/// <returns>找到的父控件,未找到则返回 null</returns>
|
|
public static T FindParent<T>(DependencyObject child) where T : DependencyObject
|
|
{
|
|
DependencyObject parentObject = VisualTreeHelper.GetParent(child);
|
|
|
|
if (parentObject == null) return null;
|
|
|
|
if (parentObject is T parent)
|
|
{
|
|
return parent;
|
|
}
|
|
else
|
|
{
|
|
// 递归继续向上查找
|
|
return FindParent<T>(parentObject);
|
|
}
|
|
}
|
|
|
|
private void txtOutOrderId_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
|
|
{
|
|
if (this.DataContext is oms_wei_order_item_transit_detail_info transitDetailInfo && transitDetailInfo.oms_wei_order_item_info is oms_wei_order_item_info orderItem)
|
|
{
|
|
var buyerId = txtOutOrderBuyer.Tag as string;
|
|
var buyerName = txtOutOrderBuyer.Text;
|
|
var outOrderId = txtOutOrderId.Text;
|
|
if (string.IsNullOrEmpty(buyerName) || string.IsNullOrEmpty(outOrderId))
|
|
{
|
|
return;
|
|
}
|
|
|
|
bool isShowOrderList = sender == txtOutOrderBuyer;
|
|
|
|
OrderBuyerOrdersHelper.ShowBuyerOrder(orderItem, buyerId, buyerName, outOrderId, isShowOrderList);
|
|
}
|
|
}
|
|
}
|