中转仓补发包裹
This commit is contained in:
1 parent
02294e0ef6
commit
661f8c052e
10 files changed
+595
-9
No files matched your search
@@ -931,6 +931,10 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
if (order.order_sn == "260923-399088033421688")
|
||||
{
|
||||
|
||||
}
|
||||
if (order.ShopOrderIdStr == "3739357317247975936")
|
||||
{
|
||||
|
||||
}
|
||||
if (isUpdate && !string.IsNullOrEmpty(order.ShopOrderIdStr)/* && order.WxSendTypeStr != "直发"*/)
|
||||
{
|
||||
@@ -2136,6 +2140,12 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
if (shop == null)
|
||||
throw new Exception("买手单对应店铺不存在!");
|
||||
|
||||
|
||||
if (order.ShopOrderIdStr == "3739357317247975936")
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
var apiSearchDropship = new WxApiBLL().WxApiDropshipSearch(shop, order.ShopOrderIdStr, 100);
|
||||
if (!apiSearchDropship.Contains("\"errcode\":0"))
|
||||
throw new Exception("同步单代发查询失败!" + BaseRegex.GetStringJson(ref apiSearchDropship, "msg"));
|
||||
@@ -2167,6 +2177,9 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
var html = GetHtml.PostUtf8(url, data);
|
||||
if (!html.Contains("\"code\":200"))
|
||||
html = GetHtml.PostUtf8(url, data);
|
||||
|
||||
// 更新拍单余额
|
||||
StartUp.UpdateBalance();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -294,6 +294,9 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
// 读取中转仓拍单订单
|
||||
var transitOrderList = GetTransitWarehouseList(order_ids);
|
||||
|
||||
// 额外订单包裹补发
|
||||
var transitExtraPackageList = GetTransitExtraPackageList(order_ids);
|
||||
|
||||
// 读取中转仓拍单订单售后状态
|
||||
var transitAfterSaleList = GetTransitWarehouseAfterSaleList(order_ids);
|
||||
|
||||
@@ -363,6 +366,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
// 中转仓退货包裹订单
|
||||
item.ItemTransitOrderAfterSales = transitAfterSaleList.Where(a => item.ItemTransitOrders.Any(t => t.out_order_no == a.order_code)).ToList();
|
||||
item.DistribReturnOrderInfos = transitReturnOrderList.Where(tr => tr.order_code_source == item.order_id).ToList();
|
||||
item.ItemTransitExtraOrders = transitExtraPackageList.Where(p => item.ItemTransitOrders.Any(t => t.order_code == p.order_code)).ToList();
|
||||
|
||||
// 中转仓买手订单(wx_send_type等于0)
|
||||
item.PddBuyerOrders = pddBuyerOrders.Where(po => po.wx_order_id == item.order_id && po.wx_sku_id == item.sku_id && po.wx_send_type == 0).ToList();
|
||||
@@ -595,6 +599,33 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
return new List<oms_wei_external_procurement_log_info>();
|
||||
}
|
||||
|
||||
public static List<oms_wei_transfer_extra_package> GetTransitExtraPackageList(string order_ids)
|
||||
{
|
||||
if (string.IsNullOrEmpty(order_ids))
|
||||
return new List<oms_wei_transfer_extra_package>();
|
||||
|
||||
var url3 = BaseClass.Build29WxObjString("order/wx_get_transfer_extra_package");
|
||||
var data3 = UserLogin.GetSignaturex();
|
||||
data3 += "&order_no=" + order_ids;
|
||||
var html3 = GetHtml.PostUtf8(url3, data3);
|
||||
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
|
||||
html3 = GetHtml.PostUtf8(url3, data3);
|
||||
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
|
||||
{
|
||||
BaseMsgWindow.ShowAnimateMessage("订单读取失败 " + BaseRegex.GetStringJson(ref html3, "msg"), "Error", 5);
|
||||
}
|
||||
List<oms_wei_transfer_extra_package> transitExtraPackageList = new List<oms_wei_transfer_extra_package>();
|
||||
try
|
||||
{
|
||||
transitExtraPackageList = JsonHelper.DeserializeJsonToList<oms_wei_transfer_extra_package>(JObject.Parse(html3)["data"].ParseToString());
|
||||
return transitExtraPackageList;
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
return new List<oms_wei_transfer_extra_package>();
|
||||
}
|
||||
|
||||
public static List<oms_wei_external_procurement_after_sale_info> GetTransitWarehouseAfterSaleList(string order_ids)
|
||||
{
|
||||
if (string.IsNullOrEmpty(order_ids))
|
||||
|
||||
@@ -39,9 +39,9 @@
|
||||
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="2" />
|
||||
<RowDefinition Height="0" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="2" />
|
||||
<RowDefinition Height="0" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid
|
||||
x:Name="gridListItem"
|
||||
@@ -831,6 +831,31 @@
|
||||
</WrapPanel>
|
||||
</wpf:TitleContent>
|
||||
|
||||
<!-- 仓库物流 -->
|
||||
<wpf:TitleContent Title="补发物流:" Visibility="{Binding TransitExtraPackageWaybillStr, Converter={StaticResource HasTextVisibility}}">
|
||||
<WrapPanel>
|
||||
<uc:UcWaterMarkTextBox1
|
||||
Margin="-2,0"
|
||||
Padding="0"
|
||||
VerticalAlignment="Center"
|
||||
Background="Transparent"
|
||||
BorderThickness="0"
|
||||
IsReadOnly="True"
|
||||
Text="{Binding TransitExtraPackageWaybillStr}"
|
||||
TextWrapping="Wrap"
|
||||
WaterMark="补发物流" />
|
||||
<Button
|
||||
x:Name="btnVoidTransitExtraOrder"
|
||||
Margin="4,0,0,0"
|
||||
Padding="0,0,0,0"
|
||||
d:Content="作废"
|
||||
Click="btnVoidTransitExtraOrder_Click"
|
||||
Content="{Binding TransitExtraPackageWaybillBtnStr}"
|
||||
Style="{StaticResource LinkButton}"
|
||||
Visibility="{Binding TransitExtraPackageWaybillBtnStr, Converter={StaticResource HasTextVisibility}}" />
|
||||
</WrapPanel>
|
||||
</wpf:TitleContent>
|
||||
|
||||
<!-- 外采买手 -->
|
||||
<wpf:TitleContent Title="外采买手:" Visibility="{Binding ItemOrder.out_account, Converter={StaticResource HasTextVisibility}}">
|
||||
<WrapPanel Orientation="Horizontal">
|
||||
@@ -1433,12 +1458,13 @@
|
||||
HorizontalAlignment="Right"
|
||||
VerticalAlignment="Center"
|
||||
Orientation="Vertical"
|
||||
VerticalSpacing="4">
|
||||
VerticalSpacing="3">
|
||||
<Button
|
||||
x:Name="btnChangeWaybill"
|
||||
Height="22"
|
||||
MinWidth="38"
|
||||
MinHeight="20"
|
||||
Margin="0,0,0,0"
|
||||
Padding="0"
|
||||
HorizontalAlignment="Center"
|
||||
d:Visibility="Visible"
|
||||
Click="btnChangeWaybill_Click"
|
||||
@@ -1448,7 +1474,7 @@
|
||||
<Button
|
||||
x:Name="btnAddEditTransitWarehouseReject_New"
|
||||
MinWidth="38"
|
||||
MinHeight="22"
|
||||
MinHeight="20"
|
||||
Margin="0,0,0,0"
|
||||
Padding="0"
|
||||
HorizontalAlignment="Center"
|
||||
@@ -1463,7 +1489,7 @@
|
||||
<Button
|
||||
x:Name="btnAddEditTransitWarehouseAfterSale_n1"
|
||||
MinWidth="38"
|
||||
MinHeight="22"
|
||||
MinHeight="20"
|
||||
Margin="0,0,0,0"
|
||||
Padding="0"
|
||||
Click="btnAddEditTransitWarehouseAfterSale_Click"
|
||||
@@ -1476,7 +1502,7 @@
|
||||
<Button
|
||||
x:Name="btnAddEditTransitWarehouseAfterSale_n2"
|
||||
MinWidth="38"
|
||||
MinHeight="22"
|
||||
MinHeight="20"
|
||||
Margin="0,0,0,0"
|
||||
Padding="0"
|
||||
Click="btnAddEditTransitWarehouseAfterSale_Click"
|
||||
@@ -1486,6 +1512,19 @@
|
||||
出库拦截<LineBreak />
|
||||
退回仓库</TextBlock>
|
||||
</Button>
|
||||
<Button
|
||||
x:Name="btnTransitExtraPackages"
|
||||
Height="20"
|
||||
MinWidth="38"
|
||||
Margin="0,0,0,0"
|
||||
Padding="0"
|
||||
HorizontalAlignment="Center"
|
||||
d:Visibility="Visible"
|
||||
Click="btnTransitExtraPackages_Click"
|
||||
Content="滞留补发买家"
|
||||
FontSize="11"
|
||||
Style="{StaticResource BasePageButtonLightStyle}"
|
||||
Visibility="{Binding ItemOrder.IsShowTransitExtraPackagesBtn, Converter={StaticResource VisibleToVisibilityConverter}}" />
|
||||
</wpf:SpacingStackPanel>
|
||||
</wpf:SpacingStackPanel>
|
||||
</Grid>
|
||||
|
||||
@@ -9,6 +9,7 @@ using _29WxOrderWpf.Windows.OrderWindows;
|
||||
using AllBase;
|
||||
using AllBase.Helper;
|
||||
using AllBase.Model;
|
||||
using AllBase.Model.Config;
|
||||
using AllBase.Model.DBModel;
|
||||
using AllBase.Model.Result;
|
||||
using CefSharp.DevTools.DOM;
|
||||
@@ -17,6 +18,7 @@ using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography;
|
||||
using System.Security.Policy;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
@@ -1748,6 +1750,81 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void btnTransitExtraPackages_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||||
{
|
||||
// 不是中转仓,直接返回
|
||||
var transitOrder = orderItem.ItemTransitOrder ?? orderItem.ItemTransitOrderWithVoid;
|
||||
if (transitOrder == null)
|
||||
{
|
||||
BaseMsgWindow.ShowError("非中转仓订单不支持补发!");
|
||||
return;
|
||||
}
|
||||
|
||||
// string msg = $@"
|
||||
// 滞留补发买家
|
||||
|
||||
//说 明:总店未在90小时到仓导致快递停滞退回, 货物
|
||||
// 滞留云仓,可用补发继续发给买家。
|
||||
//收 费:(与云仓发货价格一样)";
|
||||
// if (BaseMsgWindow.ShowConfirm(msg, "滞留补发买家", null, MsgWindowLevel.LARGE, 300).DialogResult != true)
|
||||
// return;
|
||||
|
||||
// string basePostageKey = WarehousePostageInfo.DicWarehousePostage.Keys.FirstOrDefault(pk => (orderItem.ItemOrder?.province_name).ParseToString().Contains(pk));
|
||||
// decimal basePostage = basePostageKey.IsNullOrEmpty() ? WarehousePostageInfo.DicWarehousePostage.Values.Min() : WarehousePostageInfo.DicWarehousePostage[basePostageKey];
|
||||
// JObject body = new JObject();
|
||||
// body["oemAmount"] = (BaseClass.PostagePerOrderDiff * 100).ParseToInt().ParseToString();
|
||||
// body["postage"] = ((basePostage + BaseClass.PostagePerOrderDiff) * 100).ParseToInt().ParseToString();
|
||||
|
||||
// body["packType"] = "2";
|
||||
// body["batchId"] = orderItem.order_id + "-" + DateTime.Now.ToString("yyMMddHHmmss");
|
||||
// body["orderNo"] = orderItem.order_id;
|
||||
// body["orderCode"] = transitOrder.order_code;
|
||||
// body["logisticsCode"] = transitOrder.express_2_company;
|
||||
// body["logisticsExpressCode"] = transitOrder.express_2_waybill;
|
||||
// body["accountUser"] = BaseClass.UserName;
|
||||
// body["purchaserNote"] = "测试订单13017678999";//采购人备注
|
||||
// body["orderPlatformCode"] = "WEISHOP";
|
||||
|
||||
|
||||
TransitExtraPackagesView transitExtraPackagesView = new TransitExtraPackagesView(orderItem.ItemOrder, orderItem);
|
||||
new DialogWindow()
|
||||
{
|
||||
Title = "滞留补发买家",
|
||||
Content = transitExtraPackagesView,
|
||||
}.ShowDialog();
|
||||
}
|
||||
}
|
||||
|
||||
private async void btnVoidTransitExtraOrder_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (this.DataContext is oms_wei_order_item_info orderItem && orderItem.ItemTransitExtraOrder.order_void_status != 1)
|
||||
{
|
||||
if (BaseMsgWindow.ShowConfirm("确定作废滞留补发包裹?").DialogResult != true)
|
||||
return;
|
||||
|
||||
var data = new JObject();
|
||||
data["batchId"] = orderItem.ItemTransitExtraOrder.batchId;
|
||||
data["orderCode"] = orderItem.ItemTransitExtraOrder.order_code;
|
||||
var dataStr = JsonHelper.SerializeObject(data);
|
||||
var url = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/extraOrders/void";
|
||||
var rst = HttpResponseWXBLL.e57PostResponse(url, dataStr, "");
|
||||
if (BaseRegex.GetStringXml(ref rst, "code") != "0" && BaseRegex.GetStringXml(ref rst, "code") != "200")
|
||||
{
|
||||
BaseMsgWindow.ShowError(BaseRegex.GetStringXml(ref rst, "msg"));
|
||||
return;
|
||||
}
|
||||
await Task.Run(() =>
|
||||
{
|
||||
StartUp.UpdateBalance();
|
||||
});
|
||||
orderItem.ItemTransitExtraOrder.order_void_status = 1;
|
||||
orderItem.SetOrderItemTextProperty();
|
||||
MainWindow.Instance.orderListCtrl.FilterOneOrder(orderItem.order_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,171 @@
|
||||
using _29WxOrderWpf.BaseWindows;
|
||||
using _29WxOrderWpf.Commands;
|
||||
using _29WxOrderWpf.Ctrls.OrderCtrls;
|
||||
using AllBase;
|
||||
using AllBase.Helper;
|
||||
using AllBase.Model.Config;
|
||||
using AllBase.Model.DBModel;
|
||||
using AllBase.Model.MvvmBaseClasses;
|
||||
using AllBase.Model.Result;
|
||||
using NaiBa.Util.Extension;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Threading;
|
||||
using Work;
|
||||
using Work._29Tools.BLL;
|
||||
using Work._29Tools.Forms.ShopForms;
|
||||
|
||||
namespace _29WxOrderWpf.ViewModels
|
||||
|
||||
{
|
||||
/// <summary>
|
||||
/// 更改运单号ViewModel
|
||||
/// </summary>
|
||||
public class TransitExtraPackagesViewModel : PropertyNotifyObject
|
||||
{
|
||||
public oms_wei_order_info Order
|
||||
{
|
||||
get { return this.GetValue(x => x.Order); }
|
||||
set { this.SetValue(x => x.Order, value); }
|
||||
}
|
||||
public oms_wei_order_item_info OrderItem
|
||||
{
|
||||
get { return this.GetValue(x => x.OrderItem); }
|
||||
set { this.SetValue(x => x.OrderItem, value); }
|
||||
}
|
||||
public string purchaserNote
|
||||
{
|
||||
get { return this.GetValue(x => x.purchaserNote); }
|
||||
set { this.SetValue(x => x.purchaserNote, value); }
|
||||
}
|
||||
public string WaybillId
|
||||
{
|
||||
get { return this.GetValue(x => x.WaybillId); }
|
||||
set { this.SetValue(x => x.WaybillId, value); }
|
||||
}
|
||||
public bool IsChangeingWaybill
|
||||
{
|
||||
get { return this.GetValue(x => x.IsChangeingWaybill); }
|
||||
set { this.SetValue(x => x.IsChangeingWaybill, value); }
|
||||
}
|
||||
public bool ChangeWaybillSuccess
|
||||
{
|
||||
get { return this.GetValue(x => x.ChangeWaybillSuccess); }
|
||||
set { this.SetValue(x => x.ChangeWaybillSuccess, value); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 请求关闭窗口
|
||||
/// </summary>
|
||||
public event Action RequestClose;
|
||||
|
||||
#region 命令
|
||||
|
||||
public ICommand AddExtraPackagesCommand { get; }
|
||||
|
||||
#endregion
|
||||
private volatile bool _isWindowLoaded = false;
|
||||
|
||||
public TransitExtraPackagesViewModel(oms_wei_order_info _order, oms_wei_order_item_info _orderItem)
|
||||
{
|
||||
Order = _order;
|
||||
OrderItem = _orderItem;
|
||||
|
||||
AddExtraPackagesCommand = new DelegateCommand(AddExtraPackages);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 窗口加载完成时调用
|
||||
/// </summary>
|
||||
public void Start()
|
||||
{
|
||||
_isWindowLoaded = true;
|
||||
}
|
||||
/// <summary>
|
||||
/// 窗口关闭时调用,停止后台任务
|
||||
/// </summary>
|
||||
public void Stop()
|
||||
{
|
||||
_isWindowLoaded = false;
|
||||
}
|
||||
|
||||
public void AddExtraPackages()
|
||||
{
|
||||
var transitOrder = OrderItem.ItemTransitOrder ?? OrderItem.ItemTransitOrderWithVoid;
|
||||
var transitExtraOrder = OrderItem.ItemTransitExtraOrders.FirstOrDefault(t => t.order_void_status != 1);
|
||||
if (transitExtraOrder != null)
|
||||
{
|
||||
BaseMsgWindow.ShowError("有尚未作废的补发订单,请作废后再创建");
|
||||
return;
|
||||
}
|
||||
|
||||
string basePostageKey = WarehousePostageInfo.DicWarehousePostage.Keys.FirstOrDefault(pk => (OrderItem.ItemOrder?.province_name).ParseToString().Contains(pk));
|
||||
decimal basePostage = basePostageKey.IsNullOrEmpty() ? WarehousePostageInfo.DicWarehousePostage.Values.Min() : WarehousePostageInfo.DicWarehousePostage[basePostageKey];
|
||||
JObject body = new JObject();
|
||||
body["oemAmount"] = (BaseClass.PostagePerOrderDiff * 100).ParseToInt().ParseToString();
|
||||
body["postage"] = ((basePostage + BaseClass.PostagePerOrderDiff) * 100).ParseToInt().ParseToString();
|
||||
|
||||
body["packType"] = "2";
|
||||
body["batchId"] = transitOrder.order_code + "-" + ((OrderItem.ItemTransitExtraOrders?.Count).ParseToInt() + 1);
|
||||
body["orderNo"] = OrderItem.order_id;
|
||||
body["orderCode"] = transitOrder.order_code;
|
||||
|
||||
// 未出库填上游物流,已出库填下游物流
|
||||
if (transitOrder.warehouse_status != 2)
|
||||
{
|
||||
body["logisticsCode"] = transitOrder.express_1_company;
|
||||
body["logisticsExpressCode"] = transitOrder.express_1_waybill;
|
||||
}
|
||||
else
|
||||
{
|
||||
body["logisticsCode"] = transitOrder.express_2_company;
|
||||
body["logisticsExpressCode"] = transitOrder.express_2_waybill;
|
||||
}
|
||||
|
||||
body["accountUser"] = BaseClass.UserName;
|
||||
body["purchaserNote"] = purchaserNote.ParseToString(); // 采购人备注
|
||||
body["orderPlatformCode"] = "WEISHOP";
|
||||
|
||||
var url = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/extra-packages/save";
|
||||
var dataStr = JsonHelper.SerializeObject(body);
|
||||
//<AjaxResult><msg>parentOrderCode不能为空</msg><code>2</code></AjaxResult>
|
||||
//<AjaxResult><msg>创建额外包裹异常: Cannot invoke "cn.qihangerp.oms.domain.SecondUser.getBalance()" because "secondUser" is null</msg><code>2</code></AjaxResult>
|
||||
var rst = HttpResponseWXBLL.e57PostResponse(url, dataStr, "");
|
||||
//3739278903964250368
|
||||
// <AjaxResult><msg>创建额外包裹异常: 用户账户余额不足,需至少 2.20 元用于中转仓取号, userId:17333276316, balance:0.85</msg><code>2</code></AjaxResult>
|
||||
if (BaseRegex.GetStringXml(ref rst, "code") != "0" && BaseRegex.GetStringXml(ref rst, "code") != "200")
|
||||
{
|
||||
BaseMsgWindow.ShowError(BaseRegex.GetStringXml(ref rst, "msg"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var data = new JObject();
|
||||
data["batchId"] = body["batchId"];
|
||||
data["orderCode"] = body["orderCode"];
|
||||
dataStr = JsonHelper.SerializeObject(data);
|
||||
url = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/thirdparty/extraPackages";
|
||||
rst = HttpResponseWXBLL.e57PostResponse(url, dataStr, "");
|
||||
// <AjaxResult><msg>额外信息已保存</msg><code>200</code></AjaxResult>
|
||||
if (BaseRegex.GetStringXml(ref rst, "code") != "0" && BaseRegex.GetStringXml(ref rst, "code") != "200")
|
||||
{
|
||||
BaseMsgWindow.ShowError(BaseRegex.GetStringXml(ref rst, "msg"));
|
||||
return;
|
||||
}
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
StartUp.UpdateBalance();
|
||||
MainWindow.Instance.orderListCtrl.GetOrder(OrderItem.order_id);
|
||||
});
|
||||
RequestClose?.Invoke();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
<UserControl
|
||||
x:Class="_29WxOrderWpf.Views.TransitExtraPackagesView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:_29WxOrderWpf.Views"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
x:Name="TransitExtraPackagesCtrl"
|
||||
Width="450"
|
||||
Height="300"
|
||||
d:DesignHeight="300"
|
||||
d:DesignWidth="450"
|
||||
Loaded="View_Loaded"
|
||||
mc:Ignorable="d">
|
||||
<Grid Background="White">
|
||||
<StackPanel Margin="24,24,24,0">
|
||||
<TextBlock
|
||||
Margin="0,0,0,20"
|
||||
HorizontalAlignment="Center"
|
||||
FontSize="15"
|
||||
Foreground="#333333"
|
||||
Text="滞留补发买家" />
|
||||
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,0,0,20">
|
||||
<Run Text=" 说 明:总店未在90小时到仓导致快递停滞退回, 货物" />
|
||||
<LineBreak /><Run Text=" 滞留云仓,可用补发继续发给买家。" />
|
||||
<LineBreak /><Run Text=" 收 费:(与云仓发货价格一样)" /><LineBreak />
|
||||
</TextBlock>
|
||||
<TextBlock
|
||||
Margin="0,0,0,8"
|
||||
d:Opacity="0.3"
|
||||
d:Visibility="Visible"
|
||||
Foreground="#555555"
|
||||
Text="如需备注请在下面填写:"
|
||||
Visibility="Hidden" />
|
||||
<TextBox
|
||||
x:Name="txtPurchaserNote"
|
||||
Height="38"
|
||||
VerticalContentAlignment="Center"
|
||||
d:Opacity="0.3"
|
||||
d:Text="测试订单13017678999"
|
||||
d:Visibility="Visible"
|
||||
BorderBrush="#D0D0D0"
|
||||
BorderThickness="1"
|
||||
FontSize="18"
|
||||
Text="{Binding purchaserNote, UpdateSourceTrigger=PropertyChanged}"
|
||||
VerticalScrollBarVisibility="Auto"
|
||||
Visibility="Collapsed" />
|
||||
<WrapPanel Margin="0,10,0,0" FlowDirection="RightToLeft">
|
||||
<Button
|
||||
Width="64"
|
||||
Height="26"
|
||||
Margin="0,0,10,0"
|
||||
HorizontalAlignment="Right"
|
||||
Command="{Binding AddExtraPackagesCommand}"
|
||||
Content="确定补发"
|
||||
Style="{StaticResource BasePageButtonStyle}" />
|
||||
<Image
|
||||
x:Name="imgLoading"
|
||||
Width="20"
|
||||
Height="20"
|
||||
IsEnabled="False"
|
||||
Source="{StaticResource imgLoadingPic}"
|
||||
Visibility="{Binding IsChangeingWaybill, Converter={StaticResource visibleToVisibilityConverter}}">
|
||||
<Image.RenderTransform>
|
||||
<RotateTransform Angle="45" CenterX="10" CenterY="10" />
|
||||
</Image.RenderTransform>
|
||||
<Image.Triggers>
|
||||
<EventTrigger RoutedEvent="Image.Loaded">
|
||||
<BeginStoryboard>
|
||||
<Storyboard>
|
||||
<DoubleAnimation
|
||||
RepeatBehavior="Forever"
|
||||
Storyboard.TargetName="imgLoading"
|
||||
Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)"
|
||||
From="360"
|
||||
To="0"
|
||||
Duration="0:0:3" />
|
||||
</Storyboard>
|
||||
</BeginStoryboard>
|
||||
</EventTrigger>
|
||||
</Image.Triggers>
|
||||
</Image>
|
||||
</WrapPanel>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,58 @@
|
||||
using _29WxOrderWpf.ViewModels;
|
||||
using AllBase.Helper;
|
||||
using AllBase.Model.DBModel;
|
||||
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;
|
||||
|
||||
namespace _29WxOrderWpf.Views;
|
||||
|
||||
/// <summary>
|
||||
/// TransitExtraPackagesView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class TransitExtraPackagesView : UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// 视图模型
|
||||
/// </summary>
|
||||
public TransitExtraPackagesViewModel ViewModel { get; }
|
||||
|
||||
public TransitExtraPackagesView(oms_wei_order_info _order, oms_wei_order_item_info _orderItem)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
ViewModel = new TransitExtraPackagesViewModel(_order, _orderItem);
|
||||
ViewModel.RequestClose += ViewModel_RequestClose;
|
||||
DataContext = ViewModel;
|
||||
}
|
||||
|
||||
private void View_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
ViewModel.Start();
|
||||
}
|
||||
|
||||
private void View_Closed(object sender, RoutedEventArgs e)
|
||||
{
|
||||
ViewModel.Stop();
|
||||
}
|
||||
|
||||
private void ViewModel_RequestClose()
|
||||
{
|
||||
Window parentWindow = Window.GetWindow(this);
|
||||
if (this.IsLoaded && parentWindow != null)
|
||||
parentWindow.Close();
|
||||
|
||||
MainWindow.Instance.orderListCtrl.FilterOneOrder(ViewModel.Order);
|
||||
}
|
||||
}
|
||||
@@ -157,6 +157,11 @@ namespace AllBase.Model.DBModel
|
||||
get { return this.GetValue(x => x.IsShowChangeWaybillBtn); }
|
||||
set { this.SetValue(x => x.IsShowChangeWaybillBtn, value); }
|
||||
}
|
||||
public bool IsShowTransitExtraPackagesBtn
|
||||
{
|
||||
get { return this.GetValue(x => x.IsShowTransitExtraPackagesBtn); }
|
||||
set { this.SetValue(x => x.IsShowTransitExtraPackagesBtn, value); }
|
||||
}
|
||||
|
||||
public string orderStatusStr
|
||||
{
|
||||
@@ -744,6 +749,11 @@ namespace AllBase.Model.DBModel
|
||||
IsShowChangeWaybillBtn = false;
|
||||
else
|
||||
IsShowChangeWaybillBtn = true;
|
||||
|
||||
if (IsWaitBuy)
|
||||
IsShowTransitExtraPackagesBtn = false;
|
||||
else
|
||||
IsShowTransitExtraPackagesBtn = true;
|
||||
}
|
||||
|
||||
public bool GetIsWaitBuy()
|
||||
|
||||
@@ -218,8 +218,44 @@ namespace AllBase.Model.DBModel
|
||||
{
|
||||
get { return this.GetValue(x => x.ItemTransitOrderAfterSale); }
|
||||
set { this.SetValue(x => x.ItemTransitOrderAfterSale, value); }
|
||||
}
|
||||
public List<order_pdd_buyer_order> PddBuyerOrders { get; set; } = new List<order_pdd_buyer_order>();
|
||||
}
|
||||
public List<oms_wei_transfer_extra_package> ItemTransitExtraOrders
|
||||
{
|
||||
get { return this.GetValue(x => x.ItemTransitExtraOrders); }
|
||||
set { this.SetValue(x => x.ItemTransitExtraOrders, value); }
|
||||
}
|
||||
public oms_wei_transfer_extra_package ItemTransitExtraOrder
|
||||
{
|
||||
get { return this.GetValue(x => x.ItemTransitExtraOrder); }
|
||||
set
|
||||
{
|
||||
if (order_id == "3739278903964250368")
|
||||
{
|
||||
|
||||
}
|
||||
this.SetValue(x => x.ItemTransitExtraOrder, value);
|
||||
if (ItemTransitExtraOrder != null)
|
||||
{
|
||||
if (ItemTransitExtraOrder.real_logistics_code.IsNullOrEmpty())
|
||||
{
|
||||
ItemTransitExtraOrder.real_logistics_code = "滞留补发处理中";
|
||||
}
|
||||
}
|
||||
TransitExtraPackageWaybillStr = (ItemTransitExtraOrder?.real_logistics_code + "-" + ItemTransitExtraOrder?.real_logistics_express_code).Trim('-');
|
||||
TransitExtraPackageWaybillBtnStr = ItemTransitExtraOrder?.order_void_status == 1 ? "已作废" : "作废";
|
||||
}
|
||||
}
|
||||
public string TransitExtraPackageWaybillStr
|
||||
{
|
||||
get { return this.GetValue(x => x.TransitExtraPackageWaybillStr); }
|
||||
set { this.SetValue(x => x.TransitExtraPackageWaybillStr, value); }
|
||||
}
|
||||
public string TransitExtraPackageWaybillBtnStr
|
||||
{
|
||||
get { return this.GetValue(x => x.TransitExtraPackageWaybillBtnStr); }
|
||||
set { this.SetValue(x => x.TransitExtraPackageWaybillBtnStr, value); }
|
||||
}
|
||||
public List<order_pdd_buyer_order> PddBuyerOrders { get; set; } = new List<order_pdd_buyer_order>();
|
||||
public order_pdd_buyer_order PddBuyerOrder
|
||||
{
|
||||
get { return this.GetValue(x => x.PddBuyerOrder); }
|
||||
@@ -258,6 +294,9 @@ namespace AllBase.Model.DBModel
|
||||
}
|
||||
this.ItemTransitOrder = ItemTransitOrders?.FirstOrDefault(t => t.order_void_status != 1);
|
||||
this.ItemTransitOrderWithVoid = ItemTransitOrders?.FirstOrDefault();
|
||||
|
||||
this.ItemTransitExtraOrder = ItemTransitExtraOrders?.FirstOrDefault(t => t.order_void_status != 1) ?? ItemTransitExtraOrders.FirstOrDefault();
|
||||
|
||||
this.ItemTransitOrderAfterSale = ItemTransitOrderAfterSales?.FirstOrDefault();
|
||||
this.PddBuyerOrder = PddBuyerOrders?.FirstOrDefault();
|
||||
// 优先找非撤销买手退款单
|
||||
@@ -883,6 +922,14 @@ namespace AllBase.Model.DBModel
|
||||
}
|
||||
this.SetValue(x => x.DirectPddBuyerOrder, value);
|
||||
SyncLogisticsMsg = DirectPddBuyerOrder?.sync_logistics_msg;
|
||||
// 有单号就不显示错误,否则单号字段显示错误信息
|
||||
if (ItemOrder.SyncWaybillId.IsNullOrEmpty())
|
||||
{
|
||||
ItemOrder.SyncWaybillId = SyncLogisticsMsg;
|
||||
SyncLogisticsMsg = "";
|
||||
}
|
||||
else
|
||||
SyncLogisticsMsg = "";
|
||||
}
|
||||
}
|
||||
public string SyncLogisticsMsg
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
using AllBase.Model.MvvmBaseClasses;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AllBase.Model.DBModel;
|
||||
|
||||
public class oms_wei_transfer_extra_package : PropertyNotifyObject
|
||||
{
|
||||
public long id { get; set; } // 主键ID
|
||||
public string batchId { get; set; } // 新订单号
|
||||
public string order_no { get; set; } // 平台订单号
|
||||
public string buyer_account { get; set; } // '买家账号',
|
||||
public int? out_amount { get; set; } // '外部金额(分)',
|
||||
public string purchaser_note { get; set; } // '采购人备注'
|
||||
public string logistics_code { get; set; } // '快递公司',
|
||||
public string logistics_express_code { get; set; } // '快递单号',
|
||||
public string real_logistics_code // '出库快递公司',
|
||||
{
|
||||
get { return this.GetValue(x => x.real_logistics_code); }
|
||||
set { this.SetValue(x => x.real_logistics_code, value); }
|
||||
}
|
||||
public string real_logistics_express_code // '出库单号',
|
||||
{
|
||||
get { return this.GetValue(x => x.real_logistics_express_code); }
|
||||
set { this.SetValue(x => x.real_logistics_express_code, value); }
|
||||
}
|
||||
public string refund_status { get; set; } // '买手退款状态',
|
||||
public DateTime? pickup_time { get; set; } // '取号时间',
|
||||
public int? transfer_warehouse_status { get; set; } // '中转仓状态:0 未使用,1 已创建,2 创建失败',
|
||||
public string raw_message { get; set; } // '原始消息/请求体',
|
||||
public DateTime? created_time { get; set; } // '创建时间',
|
||||
public DateTime? updated_time { get; set; } // '更新时间',
|
||||
public string platform { get; set; } // '中转仓库编码',
|
||||
public string order_platform_code { get; set; } // '订单平台',
|
||||
public string order_code { get; set; } // '唯一值编码',
|
||||
public string random_code { get; set; } // '溯源码',
|
||||
public int? warehouse_status { get; set; } // '0: 未使用, 1: 已入库, 2: 未入库',
|
||||
public DateTime? inbound_time { get; set; } // '入库时间',
|
||||
public DateTime? outbound_time { get; set; } // '出库时间',
|
||||
public int? order_void_status { get; set; } // '订单作废状态:0=正常,1=已作废,2=作废失败',
|
||||
public int? postage { get; set; } // '订单初始费用(分)',
|
||||
public int? retry_acquire_success { get; set; } // '重试取号是否成功 0=未尝试/未重试 1=成功 2=失败',
|
||||
public int? over_weight_fee { get; set; } // '超重费用',
|
||||
public string pack_type { get; set; } // '中转仓额外包裹类型 1商品2额外3礼品4退货',
|
||||
public DateTime? rejected_time { get; set; } // '拒收时间',
|
||||
public int? has_reject { get; set; } // DEFAULT NULL,
|
||||
public DateTime? blocked_arrival_time { get; set; }
|
||||
}
|
||||
Reference in new issue
Block a user