拍单信息优化 异常单逻辑优化,异常单直拍(50%)
This commit is contained in:
1 parent
e00209cb24
commit
ac0430f3f7
26 files changed
+1663
-478
No files matched your search
@@ -8,6 +8,8 @@
|
||||
<ResourceDictionary>
|
||||
<converters:HasValueToVisibilityConverter x:Key="hasValueToVisibilityConverter" />
|
||||
<converters:HasTextToVisibilityConverter x:Key="HasTextVisibility"/>
|
||||
<converters:TextEllipsisConverter x:Key="TextEllipsisConverter"/>
|
||||
<converters:TextEllipsisConverter26 x:Key="TextEllipsisConverter26"/>
|
||||
<converters:NotHasTextToVisibilityConverter x:Key="NotHasTextVisibility"/>
|
||||
<converters:VisibleToVisibilityConverter x:Key="visibleToVisibilityConverter"/>
|
||||
<converters:ImageUrlToBitmapImageConverter x:Key="ImageUrlToBitmapImage"/>
|
||||
|
||||
@@ -57,7 +57,7 @@ namespace _29WxOrderWpf
|
||||
#region 贴牌
|
||||
//本地缓存文件
|
||||
string IgPakFile = "locales/ig.pak";//贴牌客服端码
|
||||
string OenVersionFile = "locales/igv.pak";//贴牌资源配置版本
|
||||
string OemVersionFile = "locales/igv.pak";//贴牌资源配置版本
|
||||
string IaPakFile = "locales/ia.pak";//logo
|
||||
//string IbPakFile = "locales/ib.pak";//ico
|
||||
string IcPakFile = "locales/ic.pak";//功能配置
|
||||
@@ -98,7 +98,7 @@ namespace _29WxOrderWpf
|
||||
}
|
||||
|
||||
// 待后续完善
|
||||
OenMechanism(IgPakFile, OenVersionFile, IaPakFile, LogoPakFile, IcPakFile);
|
||||
OemMechanism(IgPakFile, OemVersionFile, IaPakFile, LogoPakFile, IcPakFile);
|
||||
|
||||
}
|
||||
#endregion
|
||||
@@ -193,14 +193,14 @@ namespace _29WxOrderWpf
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Oen贴牌机制
|
||||
/// Oem贴牌机制
|
||||
/// </summary>
|
||||
/// <param name="sIgPakFile">贴牌商客户端码文件</param>
|
||||
/// <param name="sOenVersionFile">贴牌配置版本号文件</param>
|
||||
/// <param name="sIaPakFile">ico本地缓存文件</param>
|
||||
/// <param name="sIbPakFile">logo本地缓存文件</param>
|
||||
/// <param name="sIcPakFile">贴牌配置本地缓存文件</param>
|
||||
private void OenMechanism(string IgPakFile, string OenVersionFile, string IaPakFile, string logoBitmapFile, string IcPakFile)
|
||||
private void OemMechanism(string IgPakFile, string OemVersionFile, string IaPakFile, string logoBitmapFile, string IcPakFile)
|
||||
{
|
||||
return;
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using AllBase.Helper;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
@@ -109,34 +110,48 @@ namespace _29WxOrderWpf.BaseWindows
|
||||
DialogResult = false;
|
||||
}
|
||||
|
||||
public static void ShowAnimateMessage(string message)
|
||||
public static void ShowAnimateMessage(string message, string type = "Msg", int DurationSeconds = 1)
|
||||
{
|
||||
MainWindow.Instance.tbMessage.Text = message;
|
||||
MainWindow.Instance.borderMessage.Visibility = Visibility.Visible;
|
||||
// 创建Storyboard并添加动画
|
||||
Storyboard storyboard = new Storyboard();
|
||||
DoubleAnimation fadeInAnimation1 = new DoubleAnimation
|
||||
MainWindow.Instance.Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
From = 0, // 开始时完全透明
|
||||
To = 1, // 结束时完全不透明
|
||||
Duration = new Duration(TimeSpan.FromSeconds(0.2)) // 持续时间2秒
|
||||
};
|
||||
Storyboard.SetTarget(fadeInAnimation1, MainWindow.Instance.borderMessage);
|
||||
Storyboard.SetTargetProperty(fadeInAnimation1, new PropertyPath(OpacityProperty));
|
||||
storyboard.Children.Add(fadeInAnimation1);
|
||||
if (type.ToLower() == "msg")
|
||||
{
|
||||
MainWindow.Instance.borderMessage.BorderBrush = Application.Current.Resources["pageColorBrush"] as SolidColorBrush;
|
||||
MainWindow.Instance.tbMessage.Foreground = Application.Current.Resources["pageColorBrush"] as SolidColorBrush;
|
||||
}
|
||||
if (type.ToLower() == "error")
|
||||
{
|
||||
MainWindow.Instance.borderMessage.BorderBrush = Application.Current.Resources["PageWarningBrush"] as SolidColorBrush;
|
||||
MainWindow.Instance.tbMessage.Foreground = Application.Current.Resources["PageWarningBrush"] as SolidColorBrush;
|
||||
}
|
||||
|
||||
DoubleAnimation fadeInAnimation2 = new DoubleAnimation
|
||||
{
|
||||
BeginTime = new TimeSpan(0, 0, 1),
|
||||
From = 1,
|
||||
To = 0,
|
||||
Duration = new Duration(TimeSpan.FromSeconds(0.2)) // 持续时间2秒
|
||||
};
|
||||
Storyboard.SetTarget(fadeInAnimation2, MainWindow.Instance.borderMessage);
|
||||
Storyboard.SetTargetProperty(fadeInAnimation2, new PropertyPath(OpacityProperty));
|
||||
storyboard.Children.Add(fadeInAnimation2);
|
||||
// 开始动画
|
||||
storyboard.Begin();
|
||||
MainWindow.Instance.tbMessage.Text = message;
|
||||
MainWindow.Instance.borderMessage.Visibility = Visibility.Visible;
|
||||
// 创建Storyboard并添加动画
|
||||
Storyboard storyboard = new Storyboard();
|
||||
DoubleAnimation fadeInAnimation1 = new DoubleAnimation
|
||||
{
|
||||
From = 0, // 开始时完全透明
|
||||
To = 1, // 结束时完全不透明
|
||||
Duration = new Duration(TimeSpan.FromSeconds(0.2)) // 持续时间2秒
|
||||
};
|
||||
Storyboard.SetTarget(fadeInAnimation1, MainWindow.Instance.borderMessage);
|
||||
Storyboard.SetTargetProperty(fadeInAnimation1, new PropertyPath(OpacityProperty));
|
||||
storyboard.Children.Add(fadeInAnimation1);
|
||||
|
||||
DoubleAnimation fadeInAnimation2 = new DoubleAnimation
|
||||
{
|
||||
BeginTime = new TimeSpan(0, 0, DurationSeconds),
|
||||
From = 1,
|
||||
To = 0,
|
||||
Duration = new Duration(TimeSpan.FromSeconds(0.2)) // 持续时间2秒
|
||||
};
|
||||
Storyboard.SetTarget(fadeInAnimation2, MainWindow.Instance.borderMessage);
|
||||
Storyboard.SetTargetProperty(fadeInAnimation2, new PropertyPath(OpacityProperty));
|
||||
storyboard.Children.Add(fadeInAnimation2);
|
||||
// 开始动画
|
||||
storyboard.Begin();
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -35,4 +35,38 @@ namespace _29WxOrderWpf.Converters
|
||||
throw new NotImplementedException(); // 单向绑定可不实现
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 超出19个字的文本显示省略号
|
||||
/// </summary>
|
||||
public class TextEllipsisConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (value.ParseToString().Length > 19)
|
||||
return string.Join("", value.ParseToString().Take(19)) + "…";
|
||||
return value.ParseToString();
|
||||
}
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException(); // 单向绑定可不实现
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 超出26个字的文本显示省略号
|
||||
/// </summary>
|
||||
public class TextEllipsisConverter26 : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (value.ParseToString().Length > 26)
|
||||
return string.Join("", value.ParseToString().Take(26)) + "…";
|
||||
return value.ParseToString();
|
||||
}
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException(); // 单向绑定可不实现
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -50,7 +50,7 @@
|
||||
<RowDefinition></RowDefinition>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Button Style="{StaticResource BasePageButtonStyle}" Margin="0,0,0,-10" Content="▼" VerticalContentAlignment="top" Width="60" Height="25" x:Name="btnHide" Click="btnHide_Click"/>
|
||||
<Button Style="{StaticResource BasePageButtonStyle}" Margin="0,0,0,-10" Content="▼" Padding="0,2,0,0" VerticalContentAlignment="top" Width="60" Height="25" x:Name="btnHide" Click="btnHide_Click"/>
|
||||
<Grid x:Name="gridTable" Grid.Row="1" VerticalAlignment="Bottom" Visibility="Visible" Height="330" Margin="2" Background="White">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="40"></RowDefinition>
|
||||
|
||||
@@ -492,7 +492,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
catch
|
||||
{
|
||||
}
|
||||
var orderItems = GetOrderItemInfo(order_ids);
|
||||
var orderItems = OrderListCtrl.GetOrderItemInfo(order_ids);
|
||||
foreach (var orderItem in orderItems)
|
||||
{
|
||||
var order = orders.FirstOrDefault(o => o.order_id == orderItem.order_id);
|
||||
@@ -502,64 +502,34 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
return orders;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 读取订单详情信息
|
||||
/// </summary>
|
||||
/// <param name="order_ids"></param>
|
||||
/// <returns></returns>
|
||||
List<oms_wei_order_item_info> GetOrderItemInfo(string order_ids)
|
||||
|
||||
public static List<order_pdd_buyer_after_sale> GetOrderAfterSales(string order_ids)
|
||||
{
|
||||
Thread.Sleep(100);
|
||||
var url1 = BaseClass.Build29WxObjString("order/get_erp_order_item_list");
|
||||
var data1 = UserLogin.GetSignaturex();
|
||||
data1 += "&erp_order_id_in=" + order_ids;
|
||||
data1 += "&page_size=" + 1000;
|
||||
var html1 = GetHtml.PostUtf8(url1, data1);
|
||||
if (string.IsNullOrEmpty(html1) || !html1.Contains("\"code\":200"))
|
||||
html1 = GetHtml.PostUtf8(url1, data1);
|
||||
if (string.IsNullOrEmpty(html1) || !html1.Contains("\"code\":200"))
|
||||
if (order_ids.IsNullOrEmpty())
|
||||
return new List<order_pdd_buyer_after_sale>();
|
||||
|
||||
var url6 = BaseClass.Build29WxObjString("order/wx_get_buyer_after_sale_list");
|
||||
var data6 = UserLogin.GetSignaturex();
|
||||
data6 += "&wx_order_id_in=" + order_ids;
|
||||
var html6 = GetHtml.PostUtf8(url6, data6);
|
||||
if (string.IsNullOrEmpty(html6) || !html6.Contains("\"code\":200"))
|
||||
html6 = GetHtml.PostUtf8(url6, data6);
|
||||
if (string.IsNullOrEmpty(html6) || !html6.Contains("\"code\":200"))
|
||||
{
|
||||
//BaseMsgWindow.ShowError("订单读取失败 " + BaseRegex.GetStringJson(ref html, "msg"));
|
||||
//break;
|
||||
BaseMsgWindow.ShowAnimateMessage("订单读取失败(买手售后) " + BaseRegex.GetStringJson(ref html6, "msg"), "Error", 5);
|
||||
}
|
||||
List<oms_wei_order_item_info> orderItems = new List<oms_wei_order_item_info>();
|
||||
try
|
||||
{
|
||||
orderItems = JsonHelper.DeserializeJsonToList<oms_wei_order_item_info>(JObject.Parse(html1)["data"].ParseToString());
|
||||
if (orderItems == null)
|
||||
orderItems = new List<oms_wei_order_item_info>();
|
||||
}
|
||||
catch
|
||||
List<order_pdd_buyer_after_sale> pddBuyerAfterSales = new List<order_pdd_buyer_after_sale>();
|
||||
try
|
||||
{
|
||||
pddBuyerAfterSales = JsonHelper.DeserializeJsonToList<order_pdd_buyer_after_sale>(JObject.Parse(html6)["data"].ParseToString())
|
||||
.OrderByDescending(p => p.TransitCreateTime).ToList();
|
||||
}
|
||||
return orderItems;
|
||||
catch { }
|
||||
return pddBuyerAfterSales;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 读取售后单
|
||||
/// </summary>
|
||||
/// <param name="order_ids"></param>
|
||||
/// <returns></returns>
|
||||
List<oms_wei_refund_info> GetOrderRefundInfo(string order_ids)
|
||||
{
|
||||
Thread.Sleep(100);
|
||||
var url2 = BaseClass.Build29WxObjString("order/get_erp_refund_list");
|
||||
var data2 = UserLogin.GetSignaturex();
|
||||
data2 += "&erp_order_id_in=" + order_ids;
|
||||
var html2 = GetHtml.PostUtf8(url2, data2);
|
||||
if (string.IsNullOrEmpty(html2) || !html2.Contains("\"code\":200"))
|
||||
html2 = GetHtml.PostUtf8(url2, data2);
|
||||
if (string.IsNullOrEmpty(html2) || !html2.Contains("\"code\":200"))
|
||||
{
|
||||
//BaseMsgWindow.ShowError(MainWindow.Instance, "订单读取失败 " + BaseRegex.GetStringJson(ref html, "msg"));
|
||||
//break;
|
||||
}
|
||||
List<oms_wei_refund_info> refunds = new List<oms_wei_refund_info>();
|
||||
try { refunds = JsonHelper.DeserializeJsonToList<oms_wei_refund_info>(JObject.Parse(html2)["data"].ParseToString()); } catch { }
|
||||
return refunds;
|
||||
}
|
||||
|
||||
void UpdateOrderStatus(PddBuyerOrderLiteInfo pdd_order, oms_wei_order_item_info wx_order_item, oms_wei_refund_info wx_refund_item, oms_wei_external_procurement_log_info wx_transit_order)
|
||||
//void UpdateOrderStatus(PddBuyerOrderLiteInfo pdd_order, oms_wei_order_item_info wx_order_item, oms_wei_refund_info wx_refund_item, oms_wei_external_procurement_log_info wx_transit_order)
|
||||
void UpdateOrderStatus(PddBuyerOrderLiteInfo pdd_order, oms_wei_order_item_info wx_order_item, oms_wei_external_procurement_log_info wx_transit_order)
|
||||
{
|
||||
pdd_order.ShopOrderIdStr = wx_order_item?.order_id ?? wx_transit_order?.order_no;
|
||||
pdd_order.ShopOrderSkuIdStr = wx_order_item?.sku_id ?? wx_transit_order?.order_sku_id;
|
||||
@@ -594,7 +564,8 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
}
|
||||
|
||||
|
||||
void UpdateAfterSaleStatus(PddBuyerAfterSaleLiteInfo pdd_afterSale, oms_wei_order_item_info wx_order_item, oms_wei_refund_info wx_refund_item, oms_wei_external_procurement_log_info wx_transit_order)
|
||||
//void UpdateAfterSaleStatus(PddBuyerAfterSaleLiteInfo pdd_afterSale, oms_wei_order_item_info wx_order_item, oms_wei_refund_info wx_refund_item, oms_wei_external_procurement_log_info wx_transit_order)
|
||||
void UpdateAfterSaleStatus(PddBuyerAfterSaleLiteInfo pdd_afterSale, oms_wei_order_item_info wx_order_item, oms_wei_external_procurement_log_info wx_transit_order, order_pdd_buyer_after_sale buyer_after_sale)
|
||||
{
|
||||
pdd_afterSale.ShopOrderIdStr = wx_order_item?.order_id ?? wx_transit_order?.order_no;
|
||||
pdd_afterSale.ShopOrderSkuIdStr = wx_order_item?.sku_id ?? wx_transit_order?.order_sku_id;
|
||||
@@ -621,6 +592,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
pdd_afterSale.sendStatus = (pdd_afterSale.TransitOrderStatus + " " + pdd_afterSale.ShopOrderRefundStr).Trim();
|
||||
pdd_afterSale.TransitCreateTime = wx_transit_order?.created_time ?? DateTime.MinValue;
|
||||
pdd_afterSale.TransitPickupTime = wx_transit_order?.pickup_time ?? DateTime.MaxValue.AddMonths(-1);
|
||||
pdd_afterSale.AfterSaleAddress = buyer_after_sale?.afterSaleAddress;
|
||||
}
|
||||
|
||||
|
||||
@@ -677,7 +649,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
orderItem.ItemTransitOrders.AddRange(transitOrderList.Where(t => t.order_no == orderItem.order_id));
|
||||
}
|
||||
}
|
||||
var refunds = GetOrderRefundInfo(order_ids);
|
||||
//var refunds = GetOrderRefundInfo(order_ids);
|
||||
|
||||
foreach (PddBuyerOrderLiteInfo o in list)
|
||||
{
|
||||
@@ -690,9 +662,9 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
{
|
||||
var shopOrder = orders.FirstOrDefault(o1 => o1.order_id == transit_item.order_no);
|
||||
var order_item = shopOrder?.orderItems.FirstOrDefault(oi => oi.ItemTransitOrders.Any(t1 => t1.out_order_no == o.order_sn));
|
||||
var refund_item = refunds.FirstOrDefault(ri => ri.order_id == order_item?.order_id) ?? order_item?.ItemRefund;
|
||||
//var refund_item = refunds.FirstOrDefault(ri => ri.order_id == order_item?.order_id) ?? order_item?.ItemRefund;
|
||||
|
||||
UpdateOrderStatus(o, order_item, refund_item, transit_item);
|
||||
UpdateOrderStatus(o, order_item, transit_item);
|
||||
}
|
||||
|
||||
PddBuyerOrderLiteInfo order = null;
|
||||
@@ -843,7 +815,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
pre_allocated_order_no = order.PreAllocatedOrderNoStr.ParseToInt(),
|
||||
tracking_number = order.tracking_number,
|
||||
TransitCreateTime = order.TransitCreateTime,
|
||||
TransitPickupTime = order.TransitPickupTime,
|
||||
//TransitPickupTime = order.TransitPickupTime,
|
||||
wx_order_id = order.ShopOrderIdStr,
|
||||
wx_sku_id = order.ShopOrderSkuIdStr,
|
||||
};
|
||||
@@ -860,7 +832,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
data3 += "&pre_allocated_order_no=" + pddBuyerOrder.pre_allocated_order_no;
|
||||
data3 += "&tracking_number=" + pddBuyerOrder.tracking_number;
|
||||
data3 += "&TransitCreateTime=" + pddBuyerOrder.TransitCreateTime.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
data3 += "&TransitPickupTime=" + pddBuyerOrder.TransitPickupTime.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
//data3 += "&TransitPickupTime=" + pddBuyerOrder.TransitPickupTime.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
data3 += "&wx_order_id=" + pddBuyerOrder.wx_order_id;
|
||||
data3 += "&wx_sku_id=" + pddBuyerOrder.wx_sku_id;
|
||||
var html3 = GetHtml.PostUtf8(url3, data3);
|
||||
@@ -919,7 +891,10 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
orderItem.ItemTransitOrders.AddRange(transitOrderList.Where(t => t.order_no == orderItem.order_id));
|
||||
}
|
||||
}
|
||||
var refunds = GetOrderRefundInfo(order_ids);
|
||||
//var refunds = GetOrderRefundInfo(order_ids);
|
||||
var buyerAfterSales = GetOrderAfterSales(order_ids);
|
||||
|
||||
// 实时更新订单,暂时作废
|
||||
//MainWindow.Instance.orderListCtrl.GetOrder(order_ids);
|
||||
|
||||
foreach (var af in list)
|
||||
@@ -936,17 +911,20 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
var transitItem = transitOrderList.FirstOrDefault(t1 => t1.out_order_no == af.orderSn);
|
||||
oms_wei_order_info shopOrder = null;
|
||||
oms_wei_order_item_info orderItem = null;
|
||||
oms_wei_refund_info refundItem = null;
|
||||
//oms_wei_refund_info refundItem = null;
|
||||
order_pdd_buyer_after_sale buyerAfterSale = null;
|
||||
if (transitItem != null)
|
||||
{
|
||||
shopOrder = orders.FirstOrDefault(o1 => o1.order_id == transitItem.order_no);
|
||||
orderItem = shopOrder?.orderItems.FirstOrDefault(oi => oi.ItemTransitOrders.Any(t1 => t1.out_order_no == af.orderSn));
|
||||
refundItem = refunds.FirstOrDefault(ri => ri.order_id == orderItem?.order_id) ?? orderItem?.ItemRefund;
|
||||
buyerAfterSale = buyerAfterSales.FirstOrDefault(ba => ba.orderSn == transitItem.out_order_no && !ba.afterSaleAddress.IsNullOrEmpty());
|
||||
|
||||
//refundItem = refunds.FirstOrDefault(ri => ri.order_id == orderItem?.order_id) ?? orderItem?.ItemRefund;
|
||||
//shopOrder = GlobalConfig.lstOrder.FirstOrDefault(o1 => o1.order_id == transitItem.order_no);
|
||||
//orderItem = shopOrder?.orderItems.FirstOrDefault(oi => oi.ItemTransitOrders.Any(t1 => t1.out_order_no == af.orderSn));
|
||||
//refundItem = shopOrder?.refundItems.FirstOrDefault(ri => ri.order_id == orderItem?.order_id) ?? orderItem?.ItemRefund;
|
||||
|
||||
UpdateAfterSaleStatus(af, orderItem, refundItem, transitItem);
|
||||
UpdateAfterSaleStatus(af, orderItem, transitItem, buyerAfterSale);
|
||||
}
|
||||
|
||||
bool isUpdate = false;
|
||||
@@ -995,6 +973,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
afterSale.WxOrderVoidStatus = af.WxOrderVoidStatus;
|
||||
afterSale.PreAllocatedOrderNoStr = af.PreAllocatedOrderNoStr;
|
||||
afterSale.ShopOrderRefundStr = af.ShopOrderRefundStr;
|
||||
afterSale.AfterSaleAddress = af.AfterSaleAddress;
|
||||
//afterSale.wxRefundStatus = af.wxRefundStatus;
|
||||
|
||||
// 移除,添加 自动更新列表显示
|
||||
@@ -1063,18 +1042,24 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
}
|
||||
// 如果中转仓表买手售后状态不等于买手售后单售后,更新仓库买手售后状态
|
||||
else if (afterSale.TransitBuyerOrderRefundStatus != "买手退款成功" && afterSale.TransitBuyerOrderRefundStatus != afterSale.AfterSaleStatusStr)
|
||||
{
|
||||
//if (!afterSale.AfterSaleStatusStr.Contains("关闭") && !afterSale.AfterSaleStatusStr.Contains("撤销") && !afterSale.AfterSaleStatusStr.Contains("失败"))
|
||||
var orderTmp = new PddBuyerOrderLiteInfo() { ShopOrderIdStr = afterSale.ShopOrderIdStr, order_sn = afterSale.orderSn };
|
||||
var refundRst = SendTransitAfterSaleE57(orderTmp, afterSale.AfterSaleStatusStr);
|
||||
if (refundRst.Contains("<code>0</code>") || refundRst.Contains("<code>200</code>"))
|
||||
{
|
||||
if (afterSale.AfterSaleStatusStr == "退款失败" && this.lstPddBuyerAfterSaleInfoLite.Any(a => a.orderSn == afterSale.orderSn && a.AfterSaleStatusStr != afterSale.AfterSaleStatusStr))
|
||||
{
|
||||
afterSale.afterSaleSendStatus = "买手退款信息更新成功";
|
||||
}
|
||||
else
|
||||
{
|
||||
var msg = BaseRegex.GetStringXml(ref refundRst, "msg");
|
||||
afterSale.afterSaleSendStatus = "买手退款信息更新失败,服务端返回 " + msg;
|
||||
//if (!afterSale.AfterSaleStatusStr.Contains("关闭") && !afterSale.AfterSaleStatusStr.Contains("撤销") && !afterSale.AfterSaleStatusStr.Contains("失败"))
|
||||
var orderTmp = new PddBuyerOrderLiteInfo() { ShopOrderIdStr = afterSale.ShopOrderIdStr, order_sn = afterSale.orderSn };
|
||||
var refundRst = SendTransitAfterSaleE57(orderTmp, afterSale.AfterSaleStatusStr);
|
||||
if (refundRst.Contains("<code>0</code>") || refundRst.Contains("<code>200</code>"))
|
||||
{
|
||||
afterSale.afterSaleSendStatus = "买手退款信息更新成功";
|
||||
}
|
||||
else
|
||||
{
|
||||
var msg = BaseRegex.GetStringXml(ref refundRst, "msg");
|
||||
afterSale.afterSaleSendStatus = "买手退款信息更新失败,服务端返回 " + msg;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1100,6 +1085,55 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(afterSale?.ShopOrderIdStr))
|
||||
{
|
||||
// 待用户发货 获取地址
|
||||
if(string.IsNullOrWhiteSpace(afterSale.AfterSaleAddress))
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// 记录到买手退货表
|
||||
if (!string.IsNullOrEmpty(afterSale?.ShopOrderIdStr))
|
||||
{
|
||||
// 买手退款单状态记录到数据库
|
||||
order_pdd_buyer_after_sale pddBuyerAfterSale = new order_pdd_buyer_after_sale()
|
||||
{
|
||||
buyerId = afterSale.buyerId,
|
||||
buyerName = afterSale.buyerName,
|
||||
orderAmount = (afterSale.listItemAmountVO?.orderAmount).ParseToInt(),
|
||||
orderSn = afterSale.orderSn,
|
||||
afterSalesId = afterSale.afterSalesId.ParseToString(),
|
||||
orderDate = afterSale.orderDate,
|
||||
pre_allocated_order_no = afterSale.PreAllocatedOrderNoStr.ParseToInt(),
|
||||
TransitCreateTime = afterSale.TransitCreateTime,
|
||||
//TransitPickupTime = order.TransitPickupTime,
|
||||
wx_order_id = afterSale.ShopOrderIdStr,
|
||||
wx_sku_id = afterSale.ShopOrderSkuIdStr,
|
||||
refundAmount = afterSale.listItemAmountVO?.refundAmount,
|
||||
statusText = afterSale.listItemStatusVO.statusText,
|
||||
};
|
||||
var url3 = BaseClass.Build29WxObjString("order/wx_add_mdy_buyer_after_sale");
|
||||
var data3 = UserLogin.GetSignaturex();
|
||||
data3 += "&wx_order_id=" + pddBuyerAfterSale.wx_order_id;
|
||||
data3 += "&wx_sku_id=" + pddBuyerAfterSale.wx_sku_id;
|
||||
data3 += "&TransitCreateTime=" + pddBuyerAfterSale.TransitCreateTime.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
data3 += "&pre_allocated_order_no=" + pddBuyerAfterSale.pre_allocated_order_no;
|
||||
data3 += "&buyerId=" + pddBuyerAfterSale.buyerId;
|
||||
data3 += "&buyerName=" + pddBuyerAfterSale.buyerName;
|
||||
data3 += "&orderAmount=" + pddBuyerAfterSale.orderAmount;
|
||||
data3 += "&orderSn=" + pddBuyerAfterSale.orderSn;
|
||||
data3 += "&afterSalesId=" + pddBuyerAfterSale.afterSalesId;
|
||||
data3 += "&orderDate=" + pddBuyerAfterSale.orderDate;
|
||||
//data3 += "&TransitPickupTime=" + pddBuyerOrder.TransitPickupTime.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
data3 += "&refundAmount=" + pddBuyerAfterSale.refundAmount;
|
||||
data3 += "&statusText=" + pddBuyerAfterSale.statusText;
|
||||
var html3 = GetHtml.PostUtf8(url3, data3);
|
||||
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
|
||||
html3 = GetHtml.PostUtf8(url3, data3);
|
||||
}
|
||||
}
|
||||
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_after_sale_list", lstPddBuyerAfterSaleInfoLite);
|
||||
}
|
||||
@@ -1450,7 +1484,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
orderItem.ItemTransitOrders.AddRange(transitOrderList.Where(t => t.order_no == orderItem.order_id));
|
||||
}
|
||||
}
|
||||
var refunds = GetOrderRefundInfo(order_ids);
|
||||
//var refunds = GetOrderRefundInfo(order_ids);
|
||||
|
||||
// 查找店铺订单并更新店铺订单状态
|
||||
//var ShopOrder = GlobalConfig.lstOrder.FirstOrDefault(o1 => o1.orderItems.Any(i1 => i1.ItemTransitOrders.Any(t1 => t1.out_order_no == buyerOrder.order_sn)));
|
||||
@@ -1461,9 +1495,9 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
{
|
||||
var shopOrder = orders.FirstOrDefault(o => o.order_id == transit_item.order_no);
|
||||
var order_item = shopOrder.orderItems.FirstOrDefault(oi => oi.ItemTransitOrders.Any(t1 => t1.out_order_no == buyerOrder.order_sn));
|
||||
var refund_item = refunds.FirstOrDefault(ri => ri.order_id == order_item.order_id) ?? order_item?.ItemRefund;
|
||||
//var refund_item = refunds.FirstOrDefault(ri => ri.order_id == order_item.order_id) ?? order_item?.ItemRefund;
|
||||
|
||||
UpdateOrderStatus(buyerOrder, order_item, refund_item, transit_item);
|
||||
UpdateOrderStatus(buyerOrder, order_item, transit_item);
|
||||
}
|
||||
|
||||
//SendOrderE57(order);
|
||||
@@ -1814,11 +1848,42 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
return afterSaleRst;
|
||||
}
|
||||
|
||||
public static string SimPddAfterSaleWithReturnGoods(BuyerLoginInfo buyer, PddBuyerOrderLiteInfo order, order_pdd_buyer_after_sale pddBuyerAfterSale = null)
|
||||
{
|
||||
var rst = YkdBuyerOrder.GetInitAfterSale(buyer, order.order_sn);
|
||||
//<script>window.rawData={"store":{"errorRedirectUrl":"\u002F","abMap":{"allowPerItemAs":false,"allowPercentAs":true,"isSpringOn":false,"applyPlatformJoinText":false,"newResendEntrance":true,"newExchangeEntrance":true,"shippingTicketOcr":true,"applyAfterSalesChoose":true,"inSpringFestival":false,"openSpringFestival":false,"shippingTipsView":true,"expressRejectShowContact":true,"newApplyPage":true,"newApplyDetailPage":false,"newFeeDetailGray":true,"qualityReasonNoticeProof":true,"newQualityReasonNoticeProof":true,"freeNoCouponOrder":false,"userShippingStatusReject":false,"applyAmountDisplayAsCompensateAmount":false,"compensateAmountChoosePopUp":false,"maintainDescOptimize":true},"goodsInfo":{"skuId":1884196560652,"catId1":6398,"goodsId":936888997232,"goodsName":"【三只松鼠新疆灰枣】免洗红枣150g新疆特产枣子干货休闲零食","goodsPrice":1350,"goodsNumber":1,"goodsSpec":"新疆灰枣150g*5袋","goodsType":1,"goodsImage":"https:\u002F\u002Fimg.pddpic.com\u002Fmms-goods-image\u002F2026-04-11\u002F336d9a71-d957-4121-a84b-f70f084226c9.jpeg"},"reasonData":{"map1":[{"type":220003,"desc":"重量\u002F数量\u002F大小等描述不符","subDesc":null,"url":"https:\u002F\u002Ffunimg.pddpic.com\u002F200702_Food_and_Health_Category\u002F21_Weight_quantity_size_mismatch.png","reasonType":2200},{"type":220005,"desc":"图片\u002F品种\u002F口味\u002F标签等描述不符","subDesc":null,"url":"https:\u002F\u002Ffunimg.pddpic.com\u002F200702_Food_and_Health_Category\u002F23_Picture_mismatch.png","reasonType":2200},{"type":220001,"desc":"包装\u002F商品破损","subDesc":null,"url":"https:\u002F\u002Ffunimg.pddpic.com\u002F200702_Food_and_Health_Category\u002F28_Damaged_packaging9.png","reasonType":2100},{"type":220004,"desc":"少件\u002F漏发","subDesc":null,"url":"https:\u002F\u002Ffunimg.pddpic.com\u002F20_Quantity_mismatch.png","reasonType":2400},{"type":294,"desc":"商品变质\u002F发霉\u002F有异物","subDesc":null,"url":"https:\u002F\u002Ffunimg.pddpic.com\u002F200702_Food_and_Health_Category\u002F25_Spoiled_food.png","reasonType":2100},{"type":292,"desc":"生产日期\u002F保质期与商品描述不符","subDesc":null,"url":"https:\u002F\u002Ffunimg.pddpic.com\u002F22_Expired_food.png","reasonType":2200},{"type":81,"desc":"质量问题","subDesc":null,"url":null,"reasonType":2100},{"type":83,"desc":"商家发错货","subDesc":null,"url":"https:\u002F\u002Ffunimg.pddpic.com\u002F30_Inconsistent_product.png","reasonType":2200},{"type":262,"desc":"空包裹","subDesc":null,"url":null,"reasonType":2400},{"type":86,"desc":"假冒品牌","subDesc":null,"url":null,"reasonType":2500},{"type":95,"desc":"其他原因","subDesc":null,"url":null,"reasonType":1200}],"map2":[{"type":197,"desc":"不想要了","subDesc":null,"url":null,"reasonType":1100},{"type":194,"desc":"快递无跟踪记录","subDesc":null,"url":null,"reasonType":2300},{"type":4008,"desc":"发货慢\u002F未按承诺时间发货","subDesc":null,"url":null,"reasonType":2300},{"type":220001,"desc":"包装\u002F商品破损","subDesc":null,"url":null,"reasonType":2100},{"type":220002,"desc":"未收到货\u002F签收地址错误","subDesc":null,"url":null,"reasonType":2300},{"type":207,"desc":"其他原因","subDesc":null,"url":null,"reasonType":1200}],"map3":[{"type":88,"desc":"不想要了","subDesc":null,"url":null,"reasonType":1100},{"type":220003,"desc":"重量\u002F数量\u002F大小等描述不符","subDesc":null,"url":"https:\u002F\u002Ffunimg.pddpic.com\u002F200702_Food_and_Health_Category\u002F21_Weight_quantity_size_mismatch.png","reasonType":2200},{"type":220005,"desc":"图片\u002F品种\u002F口味\u002F标签等描述不符","subDesc":null,"url":"https:\u002F\u002Ffunimg.pddpic.com\u002F200702_Food_and_Health_Category\u002F23_Picture_mismatch.png","reasonType":2200},{"type":220001,"desc":"包装\u002F商品破损","subDesc":null,"url":"https:\u002F\u002Ffunimg.pddpic.com\u002F200702_Food_and_Health_Category\u002F28_Damaged_packaging9.png","reasonType":2100},{"type":220004,"desc":"少件\u002F漏发","subDesc":null,"url":"https:\u002F\u002Ffunimg.pddpic.com\u002F20_Quantity_mismatch.png","reasonType":2400},{"type":294,"desc":"商品变质\u002F发霉\u002F有异物","subDesc":null,"url":"https:\u002F\u002Ffunimg.pddpic.com\u002F200702_Food_and_Health_Category\u002F25_Spoiled_food.png","reasonType":2100},{"type":292,"desc":"生产日期\u002F保质期与商品描述不符","subDesc":null,"url":"https:\u002F\u002Ffunimg.pddpic.com\u002F22_Expired_food.png","reasonType":2200},{"type":81,"desc":"质量问题","subDesc":null,"url":null,"reasonType":2100},{"type":83,"desc":"商家发错货","subDesc":null,"url":"https:\u002F\u002Ffunimg.pddpic.com\u002F30_Inconsistent_product.png","reasonType":2200},{"type":86,"desc":"假冒品牌","subDesc":null,"url":null,"reasonType":2500},{"type":95,"desc":"其他原因","subDesc":null,"url":null,"reasonType":1200}],"map4":[{"type":66,"desc":"不想要了","subDesc":null,"uLine truncated
|
||||
var mobile = BaseRegex.GetStringJson(ref rst, "userReceivePhone");
|
||||
var applyAmount = BaseRegex.GetIntJson(ref rst, "applyAmount");
|
||||
var refundAmount = BaseRegex.GetIntJson(ref rst, "refundAmount");
|
||||
var newMaxApplyAmount = BaseRegex.GetIntJson(ref rst, "newMaxApplyAmount");
|
||||
var shippingStatus = BaseRegex.GetIntJson(ref rst, "shippingStatus");
|
||||
var afterSalesId = BaseRegex.GetIntJson(ref rst, "afterSalesId");
|
||||
if (shippingStatus == -1)
|
||||
return "{\"success\":false,\"msg\":\"订单未付款,无法退货退款\"}";
|
||||
if (shippingStatus == 0)
|
||||
return "{\"success\":false,\"msg\":\"订单未付款,无法退货退款\"}";
|
||||
|
||||
if (applyAmount == 0) applyAmount = order.order_amount.ParseToInt();
|
||||
if (refundAmount == 0) refundAmount = order.order_amount.ParseToInt();
|
||||
if (newMaxApplyAmount == 0) newMaxApplyAmount = order.order_amount.ParseToInt();
|
||||
if (string.IsNullOrEmpty(mobile))
|
||||
{
|
||||
return "{\"success\":false,\"msg\":\"退货信息获取失败,请检查买手是否掉线\"}";
|
||||
}
|
||||
if (pddBuyerAfterSale != null)
|
||||
{
|
||||
pddBuyerAfterSale.refundAmount = refundAmount;
|
||||
}
|
||||
Thread.Sleep(Randomx.GetId(1000, 2000));
|
||||
var afterSaleRst = YkdBuyerOrder.SetOrderAfterSaleWithReturnGoods(buyer, mobile, order.order_sn, applyAmount, refundAmount, newMaxApplyAmount);
|
||||
return afterSaleRst;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 将处理的或读取到更新的售后返回服务端接口
|
||||
/// </summary>
|
||||
/// <param name="afterSale"></param>
|
||||
public string SendTransitAfterSaleE57(PddBuyerOrderLiteInfo order, string refundStatus = "买手退款成功")
|
||||
public static string SendTransitAfterSaleE57(PddBuyerOrderLiteInfo order, string refundStatus = "买手退款成功")
|
||||
{
|
||||
string url2 = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/purchase/refundStatus";
|
||||
var data = new JObject();
|
||||
@@ -1909,6 +1974,17 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
return rst;
|
||||
}
|
||||
|
||||
public static string GetAfterSaleAddress(BuyerLoginInfo buyer, string orderSn, string afterSalesId)
|
||||
{
|
||||
//https://mobile.yangkeduo.com/complaints_new_detail.html?after_sales_id=21892258236871&order_sn=260721-113109931520980&refer_page_name=order_detail&refer_page_id=10038_1785055821030_cmczxk3x91&refer_page_sn=10038
|
||||
//&refer_page_name=order_detail&refer_page_id=10038_1785055821030_cmczxk3x91&refer_page_sn=10038
|
||||
string url = "https://mobile.yangkeduo.com/complaints_new_detail.html?after_sales_id=" + afterSalesId + "&order_sn=" + orderSn;
|
||||
var rst = HttpResponseYkdBLL.YangkeduoGetPageResponse(buyer, url);
|
||||
return rst;
|
||||
}
|
||||
|
||||
|
||||
// 仅退款
|
||||
public static string SetOrderAfterSale(BuyerLoginInfo buyer, string user_phone, string order_sn, int apply_amount, int refund_amount, int new_refund_amount)
|
||||
{
|
||||
string url = "https://mobile.yangkeduo.com/proxy/api/after_sales/create?pdduid=" + buyer.buyer_id;
|
||||
@@ -1918,23 +1994,41 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
@",""refund_amount"":" + refund_amount + @",""new_refund_amount"":" + new_refund_amount + @",""is_lite"":true}";
|
||||
|
||||
string referer = "https://mobile.yangkeduo.com/complaint.html?order_sn=260417-318525949581688&refer_page_name=order_detail&refer_page_id=10038_1776391960785_p20v9j3op4&refer_page_sn=10038&after_sales_reason=66&after_sales_type=1&after_sales_code=1001";
|
||||
referer = "https://mobile.yangkeduo.com/complaint.html?order_sn=" + order_sn + "&refer_page_name=order_detail&&after_sales_reason=66";
|
||||
referer = "https://mobile.yangkeduo.com/complaint.html?order_sn=" + order_sn + "&refer_page_name=order_detail&after_sales_reason=66";
|
||||
|
||||
var rst = HttpResponseYkdBLL.YangkeduoPostResponse(buyer, url, body, referer);
|
||||
return rst;
|
||||
}
|
||||
|
||||
public static string GetSearchOrder(BuyerLoginInfo buyer, string orderSn)
|
||||
// 退货退款
|
||||
public static string SetOrderAfterSaleWithReturnGoods(BuyerLoginInfo buyer, string user_phone, string order_sn, int apply_amount, int refund_amount, int new_refund_amount)
|
||||
{
|
||||
//1778823980132_ro0aie9x73
|
||||
var page_id = "10032_" + BaseClass.DateTimeToTimestampMilliseconds(DateTime.Now) + "_" + Randomx.GetWordNumber(10);
|
||||
string url = "https://mobile.yangkeduo.com/transac_orders_search_results.html?keyWord=" + orderSn +
|
||||
"&type=0&main_orders=1&refer_page_name=my_order&refer_page_id=" + page_id + "&refer_page_sn=10032";
|
||||
string url = "https://mobile.yangkeduo.com/proxy/api/after_sales/create?pdduid=" + buyer.buyer_id;
|
||||
string body = @"{""order_sn"":""260721-113109931520980"",""coupon_return_control_type"":0,""after_sales_type"":2,""user_ship_status"":2,""user_phone"":""15837193237"",""images"":[],""return_coupon_amount"":0,""question_type"":88,""question_desc"":"""",""apply_amount"":2590,""refund_amount"":2590,""new_refund_amount"":2590,""is_lite"":true}";
|
||||
body = @"{""order_sn"":""" + order_sn + @""",""coupon_return_control_type"":0,""after_sales_type"":2,""user_ship_status"":2,""user_phone"":""" + user_phone +
|
||||
@""",""images"":[],""return_coupon_amount"":0,""question_type"":88,""question_desc"":"""",""apply_amount"":" + apply_amount +
|
||||
@",""refund_amount"":" + refund_amount + @",""new_refund_amount"":" + new_refund_amount + @",""is_lite"":true}";
|
||||
|
||||
string refere = "https://mobile.yangkeduo.com/orders.html?type=0&comment_tab=1&combine_orders=1&main_orders=1&refer_page_name=personal&refer_page_id=&refer_page_sn=10001&page_id=" + page_id + "&is_back=1";
|
||||
var rst = HttpResponseYkdBLL.YangkeduoGetSearchOrderResponse(buyer, url, refere);
|
||||
string referer = "https://mobile.yangkeduo.com/complaint.html?order_sn=260721-113109931520980&after_sales_reason=88&after_sales_type=2&after_sales_code=1002";
|
||||
referer = "https://mobile.yangkeduo.com/complaint.html?order_sn=" + order_sn + "after_sales_reason=88&after_sales_type=2&after_sales_code=1002";
|
||||
|
||||
//{"after_sales_id":21892258236871,"after_sales_status":1,"after_sales_type":2,"not_really_created":null}
|
||||
var rst = HttpResponseYkdBLL.YangkeduoPostResponse(buyer, url, body, referer);
|
||||
return rst;
|
||||
}
|
||||
|
||||
// 需要验签,暂时作废不使用
|
||||
//public static string GetSearchOrder(BuyerLoginInfo buyer, string orderSn)
|
||||
//{
|
||||
// //1778823980132_ro0aie9x73
|
||||
// var page_id = "10032_" + BaseClass.DateTimeToTimestampMilliseconds(DateTime.Now) + "_" + Randomx.GetWordNumber(10);
|
||||
// string url = "https://mobile.yangkeduo.com/transac_orders_search_results.html?keyWord=" + orderSn +
|
||||
// "&type=0&main_orders=1&refer_page_name=my_order&refer_page_id=" + page_id + "&refer_page_sn=10032";
|
||||
|
||||
// string refere = "https://mobile.yangkeduo.com/orders.html?type=0&comment_tab=1&combine_orders=1&main_orders=1&refer_page_name=personal&refer_page_id=&refer_page_sn=10001&page_id=" + page_id + "&is_back=1";
|
||||
// var rst = HttpResponseYkdBLL.YangkeduoGetSearchOrderResponse(buyer, url, refere);
|
||||
// return rst;
|
||||
//}
|
||||
}
|
||||
|
||||
public class BuyerReadOrderConfig
|
||||
|
||||
@@ -8,10 +8,10 @@
|
||||
xmlns:converters="clr-namespace:_29WxOrderWpf.Converters"
|
||||
xmlns:usercontrols="clr-namespace:_29WxOrderWpf.UserControls"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="1360" Loaded="Window_Loaded">
|
||||
d:DesignHeight="450" d:DesignWidth="1560" Loaded="Window_Loaded">
|
||||
|
||||
|
||||
<Grid Background="{StaticResource ListCtrlBackColorBrush}">
|
||||
<Grid Background="{StaticResource ListCtrlBackColorBrush}" x:Name="gridOrderListCtrl">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="45"></RowDefinition>
|
||||
<RowDefinition Height="auto"></RowDefinition>
|
||||
@@ -43,15 +43,17 @@
|
||||
|
||||
<usercontrols:UcWaterMarkTextBox Grid.Column="1" x:Name="txtSearchAll" Margin="0,0,8,0" Height="28" WaterMark="买手/仓库/退货物流 采购/退款单号" TextChanged="txtSearchAll_TextChanged"/>
|
||||
|
||||
|
||||
<usercontrols:UcWaterMarkTextBox Grid.Column="2" x:Name="txtGoodsName" Margin="0,0,8,0" Height="28" WaterMark="商品标题" />
|
||||
|
||||
<usercontrols:UcWaterMarkTextBox x:Name="txtShopName" Grid.Column="3" Margin="0,0,-6,0" Height="28" WaterMark="全部店铺" TextWrapping="NoWrap"/>
|
||||
<Button Grid.Column="4" x:Name="btnMultiShopChoice" Style="{StaticResource BasePageButtonLeftSquareStyle}" HorizontalAlignment="Left" VerticalAlignment="Center"
|
||||
Margin="0,0,8,0" Content=" ... " Width="28" Height="28" Click="btnMultiShopChoice_Click"/>
|
||||
|
||||
<ComboBox Grid.Column="5" x:Name="cmbUserNameMobile" Margin="4,0,4,0" VerticalContentAlignment="Center" BorderBrush="Transparent" Style="{StaticResource RoundedComboBox}"
|
||||
Width="70" Height="28" Text="成交时间" SelectedIndex="0">
|
||||
<ComboBox Grid.Column="5" x:Name="cmbTimeType" Margin="4,0,4,0" VerticalContentAlignment="Center" BorderBrush="Transparent" Style="{StaticResource RoundedComboBox}"
|
||||
Width="70" Height="28" Text="更新时间" SelectedIndex="0">
|
||||
<ComboBoxItem>
|
||||
<TextBlock>更新时间</TextBlock>
|
||||
</ComboBoxItem>
|
||||
<ComboBoxItem>
|
||||
<TextBlock>成交时间</TextBlock>
|
||||
</ComboBoxItem>
|
||||
@@ -206,21 +208,28 @@
|
||||
<ColumnDefinition Width="auto"></ColumnDefinition>
|
||||
<ColumnDefinition Width="auto"></ColumnDefinition>
|
||||
<ColumnDefinition Width="auto"></ColumnDefinition>
|
||||
<ColumnDefinition Width="auto"></ColumnDefinition>
|
||||
<ColumnDefinition Width="auto"></ColumnDefinition>
|
||||
<ColumnDefinition Width="auto"></ColumnDefinition>
|
||||
<ColumnDefinition Width="*"></ColumnDefinition>
|
||||
</Grid.ColumnDefinitions>
|
||||
<CheckBox Grid.Column="0" Content="买手待申请售后" x:Name="chkEmergencyBuyerWaitAfterSale" BorderBrush="{StaticResource mainColorBrush}" FontSize="12" VerticalAlignment="Center" Margin="6,8" Click="chkEmergencyBuyerAfterSale_Click"/>
|
||||
<CheckBox Grid.Column="1" Content="买手待退货" x:Name="chkEmergencyBuyerWaitSendBack" BorderBrush="{StaticResource mainColorBrush}" FontSize="12" VerticalAlignment="Center" Margin="6,8" Click="chkEmergencyBuyerAfterSale_Click"/>
|
||||
<CheckBox Grid.Column="2" Content="买手已寄出待商家退款" x:Name="chkEmergencyBuyerWaitSupplierRefund" BorderBrush="{StaticResource mainColorBrush}" FontSize="12" VerticalAlignment="Center" Margin="6,8" Click="chkEmergencyBuyerAfterSale_Click"/>
|
||||
<CheckBox Grid.Column="3" Content="买手退款失败" x:Name="chkEmergencyBuyerRefundFail" BorderBrush="{StaticResource mainColorBrush}" FontSize="12" VerticalAlignment="Center" Margin="6,8" Click="chkEmergencyBuyerAfterSale_Click"/>
|
||||
<Polyline Grid.Column="4" Width="10" Margin="5,0" StrokeThickness="2" Stroke="{StaticResource mainColorBrush}" Points="5,0 5,8 5,0" VerticalAlignment="Center"/>
|
||||
<Button Grid.Column="1" x:Name="btnBatchRefund" Style="{StaticResource BasePageButtonStyle}" Margin="0,0,0,0" Content="批量申请买手售后" MinWidth="48" Height="20" Click="btnBatchRefund_Click" Padding="4,0" FontSize="12"/>
|
||||
|
||||
<CheckBox Grid.Column="5" Content="店铺客户有退货单号" x:Name="chkEmergencyShopCustomRefundHasWaybill" BorderBrush="{StaticResource mainColorBrush}" FontSize="12" VerticalAlignment="Center" Margin="6,8" Click="chkEmergencyShopCustomRefundWaybill_Click"/>
|
||||
<CheckBox Grid.Column="6" Content="店铺客户无退货单号" x:Name="chkEmergencyShopCustomRefundNoWaybill" BorderBrush="{StaticResource mainColorBrush}" FontSize="12" VerticalAlignment="Center" Margin="6,8" Click="chkEmergencyShopCustomRefundWaybill_Click"/>
|
||||
<Polyline Grid.Column="7" Width="10" Margin="5,0" StrokeThickness="2" Stroke="{StaticResource mainColorBrush}" Points="5,0 5,8 5,0" VerticalAlignment="Center"/>
|
||||
<CheckBox Grid.Column="2" Content="买手待退货" x:Name="chkEmergencyBuyerWaitSendBack" BorderBrush="{StaticResource mainColorBrush}" FontSize="12" VerticalAlignment="Center" Margin="6,8" Click="chkEmergencyBuyerAfterSale_Click"/>
|
||||
<CheckBox Grid.Column="3" Content="买手已寄出待商家退款" x:Name="chkEmergencyBuyerWaitSupplierRefund" BorderBrush="{StaticResource mainColorBrush}" FontSize="12" VerticalAlignment="Center" Margin="6,8" Click="chkEmergencyBuyerAfterSale_Click"/>
|
||||
<CheckBox Grid.Column="4" Content="买手退款失败" x:Name="chkEmergencyBuyerRefundFail" BorderBrush="{StaticResource mainColorBrush}" FontSize="12" VerticalAlignment="Center" Margin="6,8" Click="chkEmergencyBuyerAfterSale_Click"/>
|
||||
<Polyline Grid.Column="5" Width="10" Margin="5,0" StrokeThickness="2" Stroke="{StaticResource mainColorBrush}" Points="5,0 5,8 5,0" VerticalAlignment="Center"/>
|
||||
|
||||
<CheckBox Grid.Column="8" Content="店铺退款完成" x:Name="chkEmergencyShopAfterSaleSuccess" BorderBrush="{StaticResource mainColorBrush}" FontSize="12" VerticalAlignment="Center" Margin="6,8" Click="chkEmergencyShopAfterSale_Click"/>
|
||||
<CheckBox Grid.Column="9" Content="店铺退款中" x:Name="chkEmergencyShopInAfterSale" BorderBrush="{StaticResource mainColorBrush}" FontSize="12" VerticalAlignment="Center" Margin="6,8" Click="chkEmergencyShopAfterSale_Click"/>
|
||||
</Grid>
|
||||
<CheckBox Grid.Column="6" Content="店铺客户有退货单号" x:Name="chkEmergencyShopCustomRefundHasWaybill" BorderBrush="{StaticResource mainColorBrush}" FontSize="12" VerticalAlignment="Center" Margin="6,8" Click="chkEmergencyShopCustomRefundWaybill_Click"/>
|
||||
<CheckBox Grid.Column="7" Content="店铺客户无退货单号" x:Name="chkEmergencyShopCustomRefundNoWaybill" BorderBrush="{StaticResource mainColorBrush}" FontSize="12" VerticalAlignment="Center" Margin="6,8" Click="chkEmergencyShopCustomRefundWaybill_Click"/>
|
||||
<Polyline Grid.Column="8" Width="10" Margin="5,0" StrokeThickness="2" Stroke="{StaticResource mainColorBrush}" Points="5,0 5,8 5,0" VerticalAlignment="Center"/>
|
||||
|
||||
<CheckBox Grid.Column="9" Content="店铺退款完成" x:Name="chkEmergencyShopAfterSaleSuccess" BorderBrush="{StaticResource mainColorBrush}" FontSize="12" VerticalAlignment="Center" Margin="6,8" Click="chkEmergencyShopAfterSale_Click"/>
|
||||
<CheckBox Grid.Column="10" Content="店铺退款中" x:Name="chkEmergencyShopInAfterSale" BorderBrush="{StaticResource mainColorBrush}" FontSize="12" VerticalAlignment="Center" Margin="6,8" Click="chkEmergencyShopAfterSale_Click"/>
|
||||
|
||||
<Polyline Grid.Column="11" Width="10" Margin="5,0" StrokeThickness="2" Stroke="{StaticResource mainColorBrush}" Points="5,0 5,8 5,0" VerticalAlignment="Center"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
</TabItem>
|
||||
<TabItem Header="售后完成订单" MinWidth="60" Foreground="#FF9966" BorderBrush="Transparent" Background="Transparent" SizeChanged="TabItem_SizeChanged">
|
||||
@@ -256,14 +265,41 @@
|
||||
<Grid Background="#FFE5E5E5"/>
|
||||
</TabItem>-->
|
||||
</TabControl>
|
||||
<WrapPanel x:Name="wpFilter" Margin="630,6,0,0" VerticalAlignment="Top">
|
||||
<WrapPanel x:Name="wpFilter" Margin="630,2,0,0" VerticalAlignment="Top">
|
||||
<CheckBox Content="过滤非中转仓订单" x:Name="chkOnlyWarehouseOrder" BorderBrush="{StaticResource mainColorBrush}" FontSize="12" HorizontalAlignment="Left"
|
||||
Margin="0,0,0,0" VerticalAlignment="Top" Checked="chkSubFilterSonditions_Checked" Unchecked="chkSubFilterSonditions_Checked" IsChecked="true"/>
|
||||
Margin="0,0,0,0" VerticalAlignment="Center" VerticalContentAlignment="Center" Checked="chkSubFilterSonditions_Checked" Unchecked="chkSubFilterSonditions_Checked" IsChecked="true"/>
|
||||
<CheckBox Content="过滤多件商品订单" x:Name="chkNoMultiOrder" BorderBrush="{StaticResource mainColorBrush}" FontSize="12" HorizontalAlignment="Left"
|
||||
Margin="8,0,0,0" VerticalAlignment="Top" Checked="chkSubFilterSonditions_Checked" Unchecked="chkSubFilterSonditions_Checked" IsChecked="true"/>
|
||||
Margin="8,0,0,0" VerticalAlignment="Center" VerticalContentAlignment="Center" Checked="chkSubFilterSonditions_Checked" Unchecked="chkSubFilterSonditions_Checked" IsChecked="true"/>
|
||||
<Polyline Grid.Column="5" Width="10" Margin="5,0" StrokeThickness="2" Stroke="{StaticResource mainColorBrush}" Points="5,0 5,4 5,0" VerticalAlignment="Center"/>
|
||||
<CheckBox Content="过滤备注" x:Name="chkFilterRemark" BorderBrush="{StaticResource mainColorBrush}" FontSize="12" HorizontalAlignment="Left"
|
||||
Margin="0,0,0,0" VerticalAlignment="Center" VerticalContentAlignment="Center" Checked="chkSubFilterSonditions_Checked" Unchecked="chkSubFilterSonditions_Checked" IsChecked="False"/>
|
||||
|
||||
<Border Margin="4,0,0,0" BorderBrush="{StaticResource pageColorBrush}" BorderThickness="1,1,1,1" Height="22" VerticalAlignment="Center" CornerRadius="4,0,0,4">
|
||||
<ComboBox x:Name="cmbFilterRemark" Margin="4,0,4,0" VerticalContentAlignment="Center" BorderBrush="Transparent" Style="{StaticResource RoundedComboBox}"
|
||||
Width="96" Height="20" Text="成交时间" SelectedIndex="0">
|
||||
<ComboBoxItem>
|
||||
<TextBlock Margin="0, -2">店铺备注包含</TextBlock>
|
||||
</ComboBoxItem>
|
||||
<ComboBoxItem>
|
||||
<TextBlock Margin="0, -2">软件备注包含</TextBlock>
|
||||
</ComboBoxItem>
|
||||
<ComboBoxItem>
|
||||
<TextBlock Margin="0, -2">店铺备注不含</TextBlock>
|
||||
</ComboBoxItem>
|
||||
<ComboBoxItem>
|
||||
<TextBlock Margin="0, -2">软件备注不含</TextBlock>
|
||||
</ComboBoxItem>
|
||||
</ComboBox>
|
||||
</Border>
|
||||
<Border Grid.Column="7" BorderBrush="{StaticResource pageColorBrush}" BorderThickness="0,1,1,1" Height="22" VerticalAlignment="Center" CornerRadius="0,4,4,0" Margin="-2,0,0,0">
|
||||
<TextBox x:Name="txtFilterRemark" BorderThickness="0" BorderBrush="Transparent" Width="100" Margin="3,1" VerticalAlignment="Center" VerticalContentAlignment="Center"
|
||||
TextChanged="txtFilterRemark_TextChanged" ToolTip="{Binding Text,RelativeSource={RelativeSource Self}}"></TextBox>
|
||||
</Border>
|
||||
<Button Grid.Column="4" Style="{StaticResource BasePageButtonLeftSquareStyle}" HorizontalAlignment="Right" VerticalAlignment="Center"
|
||||
Margin="-4,0,0,0" Content=" ... " Width="22" Height="22" Click="btnMultiRemark_Click"/>
|
||||
</WrapPanel>
|
||||
<TextBlock Margin="10,6" FontSize="12" VerticalAlignment="Top" HorizontalAlignment="Right" Text="注:需中转仓订单,店铺后台勿自行发货,发货后中转仓将无法打单"
|
||||
Foreground="{StaticResource PageWarningBrushCC}"></TextBlock>
|
||||
<TextBlock Margin="10,-5, 0 -5" FontSize="12" VerticalAlignment="Top" HorizontalAlignment="Right" Text="注:需中转仓订单,店铺后台勿自行发货,发货后中转仓将无法打单"
|
||||
Foreground="{StaticResource PageWarningBrushCC}" Width="180" TextWrapping="Wrap"></TextBlock>
|
||||
</Grid>
|
||||
<Grid x:Name="lstTitle" Grid.Row="2" Margin="8,0,8,0" Background="{StaticResource ListHeadBackColorBrush}">
|
||||
<Border BorderThickness="0,0,1,0" BorderBrush="{StaticResource ListHeadBorderColorBrush}">
|
||||
@@ -325,7 +361,6 @@
|
||||
<!--此处绑定将数据源传递给子自定义控件OrderListRowCtrl-->
|
||||
<local:OrderListRowCtrl DataContext="{Binding}" VerticalAlignment="Center" VerticalContentAlignment="Center"></local:OrderListRowCtrl>
|
||||
</DataTemplate>
|
||||
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
<Grid x:Name="gridFooter" Grid.Row="4">
|
||||
@@ -333,7 +368,37 @@
|
||||
<ColumnDefinition Width="Auto"></ColumnDefinition>
|
||||
<ColumnDefinition Width="100*"></ColumnDefinition>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBox x:Name="txtFilterCount" Text="共计 0 条" Grid.Column="0" Grid.Row="2" Margin="8,0" VerticalAlignment="Center" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
|
||||
<TextBox x:Name="txtMsg" Text="共计 0 条" Grid.Column="0" Grid.Row="2" Margin="8,0" VerticalAlignment="Center" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
|
||||
</Grid>
|
||||
|
||||
<Border BorderBrush="{StaticResource pageColorBrush}" Background="White" BorderThickness="1,1,1,1" MinHeight="200" MinWidth="200" MaxWidth="400" MaxHeight="400" VerticalAlignment="Top"
|
||||
HorizontalAlignment="Left" x:Name="borderFilterRemarkSelect" CornerRadius="4" Margin="30,180,0,0" Grid.RowSpan="10">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition></RowDefinition>
|
||||
<RowDefinition Height="40"></RowDefinition>
|
||||
</Grid.RowDefinitions>
|
||||
<ScrollViewer VerticalScrollBarVisibility="Auto" Padding="2">
|
||||
<WrapPanel x:Name="wpFilterRemarkSelect">
|
||||
</WrapPanel>
|
||||
</ScrollViewer>
|
||||
<Grid Grid.Row="2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"></ColumnDefinition>
|
||||
<ColumnDefinition Width="Auto"></ColumnDefinition>
|
||||
<ColumnDefinition Width="Auto"></ColumnDefinition>
|
||||
<ColumnDefinition Width="*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="Auto"></ColumnDefinition>
|
||||
<ColumnDefinition Width="*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="Auto"></ColumnDefinition>
|
||||
<ColumnDefinition Width="Auto"></ColumnDefinition>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Grid.Column="0" x:Name="btnFilterRemarkSelectAll" Style="{StaticResource BasePageButtonStyle}" Grid.Row="4" Content=" 全选 " Height="22" Margin="6,0,4,0" Click="btnFilterRemarkSelectAll_Click"></Button>
|
||||
<Button Grid.Column="1" x:Name="btnFilterRemarkUnSelectAll" Style="{StaticResource BasePageButtonStyle}" Grid.Row="4" Content=" 全空 " Height="22" Click="btnFilterRemarkUnSelectAll_Click"></Button>
|
||||
<Button Grid.Column="6" x:Name="btnApplyFilterRemark" Style="{StaticResource BasePageButtonStyle}" Grid.Row="4" Content=" 确定 " Height="22" Click="btnApplyFilterRemark_Click"></Button>
|
||||
<Button Grid.Column="7" x:Name="btnCancelFilterRemark" Style="{StaticResource BasePageButtonLightStyle}" Grid.Row="4" Content=" 取消 " Height="22" Margin="4,0,6,0" Click="btnCancelFilterRemark_Click"></Button>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Border>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -6,12 +6,15 @@ using AllBase.Extension;
|
||||
using AllBase.Helper;
|
||||
using AllBase.Model;
|
||||
using AllBase.Model.DBModel;
|
||||
using AllBase.Model.Result;
|
||||
using CefSharp.DevTools.Autofill;
|
||||
using NaiBa.Util.Extension;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
@@ -23,9 +26,12 @@ using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Shapes;
|
||||
using System.Xml.Linq;
|
||||
using TemuKJD.ToolForms;
|
||||
using Work;
|
||||
using Work._29Tools.BLL;
|
||||
using Work.BuyUsers;
|
||||
using static System.Net.Mime.MediaTypeNames;
|
||||
|
||||
namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
{
|
||||
@@ -40,6 +46,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
public DateTime nextGetOrderTime = DateTime.MinValue;
|
||||
|
||||
public string strSearchAll = "";
|
||||
public List<string> lstFilterText { get; set; }
|
||||
|
||||
public OrderListCtrl()
|
||||
{
|
||||
@@ -49,12 +56,13 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
|
||||
private void Window_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
lbxOrder.ItemsSource = GlobalConfig.lstFilterOrder;
|
||||
|
||||
dateStart.SelectedDate = DateTime.Now.Date.AddDays(-10);
|
||||
dateEnd.SelectedDate = DateTime.Now.Date.AddDays(1).AddSeconds(-1);
|
||||
|
||||
borderFilterRemarkSelect.Visibility = Visibility.Collapsed;
|
||||
|
||||
AutoGetOrder();
|
||||
}
|
||||
|
||||
@@ -89,6 +97,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
if (DateTime.Now > nextGetOrderTime)
|
||||
{
|
||||
GetOrder();
|
||||
GetShopWaybillExceptionOrder();
|
||||
|
||||
nextGetOrderTime = DateTime.Now.AddMinutes(25);
|
||||
}
|
||||
Thread.Sleep(1000);
|
||||
@@ -164,6 +174,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
BaseMsgWindow.ShowError("订单读取失败 " + BaseRegex.GetStringJson(ref html, "msg"));
|
||||
break;
|
||||
}
|
||||
var seconds = BaseRegex.GetDecimalJson(ref html, "seconds");
|
||||
|
||||
var jArr = JObject.Parse(html)["data"];
|
||||
if (jArr.Count() == 0)
|
||||
@@ -171,40 +182,40 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
|
||||
var order_ids = string.Join(",", jArr.Select(a => a["order_id"].ParseToString()));
|
||||
|
||||
// 读取订单详情
|
||||
//// 读取订单详情
|
||||
Thread.Sleep(100);
|
||||
var url1 = BaseClass.Build29WxObjString("order/get_erp_order_item_list");
|
||||
var data1 = UserLogin.GetSignaturex();
|
||||
data1 += "&erp_order_id_in=" + order_ids;
|
||||
data1 += "&page_size=" + 2000;
|
||||
var html1 = GetHtml.PostUtf8(url1, data1);
|
||||
if (string.IsNullOrEmpty(html1) || !html1.Contains("\"code\":200"))
|
||||
html1 = GetHtml.PostUtf8(url1, data1);
|
||||
if (string.IsNullOrEmpty(html1) || !html1.Contains("\"code\":200"))
|
||||
{
|
||||
BaseMsgWindow.ShowError("订单读取失败 " + BaseRegex.GetStringJson(ref html, "msg"));
|
||||
break;
|
||||
}
|
||||
List<oms_wei_order_item_info> orderItems = new List<oms_wei_order_item_info>();
|
||||
try { orderItems = JsonHelper.DeserializeJsonToList<oms_wei_order_item_info>(JObject.Parse(html1)["data"].ParseToString()); } catch { }
|
||||
|
||||
//var url1 = BaseClass.Build29WxObjString("order/get_erp_order_item_list");
|
||||
//var data1 = UserLogin.GetSignaturex();
|
||||
//data1 += "&erp_order_id_in=" + order_ids;
|
||||
//data1 += "&page_size=" + 2500;
|
||||
//var html1 = GetHtml.PostUtf8(url1, data1);
|
||||
//if (string.IsNullOrEmpty(html1) || !html1.Contains("\"code\":200"))
|
||||
// html1 = GetHtml.PostUtf8(url1, data1);
|
||||
//if (string.IsNullOrEmpty(html1) || !html1.Contains("\"code\":200"))
|
||||
//{
|
||||
// BaseMsgWindow.ShowError("订单读取失败 " + BaseRegex.GetStringJson(ref html1, "msg"));
|
||||
// break;
|
||||
//}
|
||||
//List<oms_wei_order_item_info> orderItems = new List<oms_wei_order_item_info>();
|
||||
//try { orderItems = JsonHelper.DeserializeJsonToList<oms_wei_order_item_info>(JObject.Parse(html1)["data"].ParseToString()); } catch { }
|
||||
List<oms_wei_order_item_info> orderItems = GetOrderItemInfo(order_ids);
|
||||
|
||||
// 读取售后单
|
||||
Thread.Sleep(100);
|
||||
var url2 = BaseClass.Build29WxObjString("order/get_erp_refund_list");
|
||||
var data2 = UserLogin.GetSignaturex();
|
||||
data2 += "&erp_order_id_in=" + order_ids;
|
||||
var html2 = GetHtml.PostUtf8(url2, data2);
|
||||
if (string.IsNullOrEmpty(html2) || !html2.Contains("\"code\":200"))
|
||||
html2 = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html2) || !html2.Contains("\"code\":200"))
|
||||
{
|
||||
BaseMsgWindow.ShowError("订单读取失败 " + BaseRegex.GetStringJson(ref html, "msg"));
|
||||
break;
|
||||
}
|
||||
List<oms_wei_refund_info> refunds = new List<oms_wei_refund_info>();
|
||||
try { refunds = JsonHelper.DeserializeJsonToList<oms_wei_refund_info>(JObject.Parse(html2)["data"].ParseToString()); } catch { }
|
||||
|
||||
//var url2 = BaseClass.Build29WxObjString("order/get_erp_refund_list");
|
||||
//var data2 = UserLogin.GetSignaturex();
|
||||
//data2 += "&erp_order_id_in=" + order_ids;
|
||||
//var html2 = GetHtml.PostUtf8(url2, data2);
|
||||
//if (string.IsNullOrEmpty(html2) || !html2.Contains("\"code\":200"))
|
||||
// html2 = GetHtml.PostUtf8(url, data);
|
||||
//if (string.IsNullOrEmpty(html2) || !html2.Contains("\"code\":200"))
|
||||
//{
|
||||
// BaseMsgWindow.ShowError("订单读取失败 " + BaseRegex.GetStringJson(ref html2, "msg"));
|
||||
// break;
|
||||
//}
|
||||
//List<oms_wei_refund_info> refunds = new List<oms_wei_refund_info>();
|
||||
//try { refunds = JsonHelper.DeserializeJsonToList<oms_wei_refund_info>(JObject.Parse(html2)["data"].ParseToString()); } catch { }
|
||||
List<oms_wei_refund_info> refunds = GetOrderRefundInfo(order_ids);
|
||||
|
||||
// 读取中转仓拍单订单
|
||||
var url3 = BaseClass.Build29WxObjString("order/wx_get_transit_order");
|
||||
@@ -215,23 +226,17 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
html3 = GetHtml.PostUtf8(url3, data3);
|
||||
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
|
||||
{
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
BaseMsgWindow.ShowError("订单读取失败 " + BaseRegex.GetStringJson(ref html, "msg"));
|
||||
}));
|
||||
BaseMsgWindow.ShowError("订单读取失败 " + BaseRegex.GetStringJson(ref html3, "msg"));
|
||||
break;
|
||||
}
|
||||
List<oms_wei_external_procurement_log_info> transitOrderList = new List<oms_wei_external_procurement_log_info>();
|
||||
try
|
||||
{
|
||||
transitOrderList = JsonHelper.DeserializeJsonToList<oms_wei_external_procurement_log_info>(JObject.Parse(html3)["data"].ParseToString());
|
||||
// 直接过滤掉仓库作废单
|
||||
//transitOrderList = transitOrderList.Where(t => t.order_void_status != 1).ToList();
|
||||
}
|
||||
catch { }
|
||||
|
||||
// 读取暂时记录的买手订单,后面想办法放到中转订单库里去
|
||||
// 读取中转仓拍单订单
|
||||
var url4 = BaseClass.Build29WxObjString("order/wx_get_buyer_order_list");
|
||||
var data4 = UserLogin.GetSignaturex();
|
||||
data4 += "&wx_order_id_in=" + order_ids;
|
||||
@@ -242,7 +247,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
{
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
BaseMsgWindow.ShowError("订单读取失败 " + BaseRegex.GetStringJson(ref html, "msg"));
|
||||
BaseMsgWindow.ShowError("订单读取失败(买手) " + BaseRegex.GetStringJson(ref html4, "msg"));
|
||||
}));
|
||||
break;
|
||||
}
|
||||
@@ -254,6 +259,31 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
}
|
||||
catch { }
|
||||
|
||||
// 读取暂时记录的买手售后单,后面想办法放到中转订单库里去
|
||||
var url6 = BaseClass.Build29WxObjString("order/wx_get_buyer_after_sale_list");
|
||||
var data6 = UserLogin.GetSignaturex();
|
||||
data6 += "&wx_order_id_in=" + order_ids;
|
||||
List<order_pdd_buyer_after_sale> pddBuyerAfterSales = new List<order_pdd_buyer_after_sale>();
|
||||
if (!string.IsNullOrEmpty(order_ids))
|
||||
{
|
||||
var html6 = GetHtml.PostUtf8(url6, data6);
|
||||
if (string.IsNullOrEmpty(html6) || !html6.Contains("\"code\":200"))
|
||||
html6 = GetHtml.PostUtf8(url6, data6);
|
||||
if (string.IsNullOrEmpty(html6) || !html6.Contains("\"code\":200"))
|
||||
{
|
||||
BaseMsgWindow.ShowError("订单读取失败(买手售后) " + BaseRegex.GetStringJson(ref html6, "msg"));
|
||||
break;
|
||||
}
|
||||
try
|
||||
{
|
||||
pddBuyerAfterSales = JsonHelper.DeserializeJsonToList<order_pdd_buyer_after_sale>(JObject.Parse(html6)["data"].ParseToString())
|
||||
.OrderByDescending(p => p.TransitCreateTime).ToList();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// 读取中转仓处理售后单
|
||||
var url5 = BaseClass.Build29WxObjString("order/wx_get_transit_warehouse_aftersale_list");
|
||||
var data5 = UserLogin.GetSignaturex();
|
||||
@@ -265,7 +295,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
{
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
BaseMsgWindow.ShowError("订单读取失败 " + BaseRegex.GetStringJson(ref html, "msg"));
|
||||
BaseMsgWindow.ShowError("订单读取失败 " + BaseRegex.GetStringJson(ref html5, "msg"));
|
||||
}));
|
||||
break;
|
||||
}
|
||||
@@ -285,12 +315,12 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
dataMap += "&main_user_name=" + BaseClass.MainUserName;
|
||||
var resultMap = GetHtml.PostUtf8(urlMap, dataMap);
|
||||
if (string.IsNullOrEmpty(resultMap) || !resultMap.Contains("\"code\":200"))
|
||||
GetHtml.PostUtf8(urlMap, dataMap);
|
||||
resultMap = GetHtml.PostUtf8(urlMap, dataMap);
|
||||
if (string.IsNullOrEmpty(resultMap) || !resultMap.Contains("\"code\":200"))
|
||||
{
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
BaseMsgWindow.ShowError("订单读取失败 " + BaseRegex.GetStringJson(ref html, "msg"));
|
||||
BaseMsgWindow.ShowError("订单读取失败 " + BaseRegex.GetStringJson(ref resultMap, "msg"));
|
||||
}));
|
||||
break;
|
||||
}
|
||||
@@ -314,9 +344,10 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
item.ItemOrder = order;
|
||||
order.orderItems.Add(item);
|
||||
|
||||
// 已放到赋值函数中处理
|
||||
// 更新店铺是否加入代发情况
|
||||
item.Shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ErpShopId == item.order_id);
|
||||
Dispatcher.Invoke(new Action(() => { item.UpdateOrderItemBuyButton(); }));
|
||||
//item.Shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ErpShopId == item.order_id);
|
||||
//Dispatcher.Invoke(new Action(() => { item.UpdateOrderItemBuyButton(); }));
|
||||
|
||||
// 关联拍单关系 // 危险物品禁止拍单,仅关联安全商品
|
||||
if (!GlobalConfig.lstDangerItemWord.Any(d => (item.title).ParseToString().Contains(d)))
|
||||
@@ -339,6 +370,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
|
||||
// 中转仓买手订单
|
||||
item.PddBuyerOrders = pddBuyerOrders.Where(po => po.wx_order_id == item.order_id && po.wx_sku_id == item.sku_id).ToList();
|
||||
// 中转仓买手退货订单
|
||||
item.PddBuyerAfterSales = pddBuyerAfterSales.Where(po => po.wx_order_id == item.order_id && po.wx_sku_id == item.sku_id).ToList();
|
||||
}
|
||||
|
||||
// 装载订单售后详情
|
||||
@@ -358,16 +391,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
GlobalConfig.lstOrder.Remove(orderExist);
|
||||
orderExist = GlobalConfig.lstOrder.FirstOrDefault(o => o.order_id == order.order_id);
|
||||
}
|
||||
|
||||
var nextOrder = GlobalConfig.lstOrder.FirstOrDefault(o => o.create_time < order.create_time);
|
||||
if (nextOrder != null)
|
||||
{
|
||||
GlobalConfig.lstOrder.Insert(GlobalConfig.lstOrder.IndexOf(nextOrder), order);
|
||||
}
|
||||
else
|
||||
{
|
||||
GlobalConfig.lstOrder.Add(order);
|
||||
}
|
||||
GlobalConfig.lstOrder.Add(order);
|
||||
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
@@ -401,6 +425,157 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
}));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 读取订单详情信息
|
||||
/// </summary>
|
||||
/// <param name="order_ids"></param>
|
||||
/// <returns></returns>
|
||||
public static List<oms_wei_order_item_info> GetOrderItemInfo(string order_ids)
|
||||
{
|
||||
if (string.IsNullOrEmpty(order_ids))
|
||||
return new List<oms_wei_order_item_info>();
|
||||
Thread.Sleep(100);
|
||||
var url = BaseClass.Build29WxObjString("order/get_erp_order_item_list");
|
||||
var data = UserLogin.GetSignaturex();
|
||||
data += "&erp_order_id_in=" + order_ids;
|
||||
data += "&page_size=" + 2500;
|
||||
var html = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
html = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
{
|
||||
BaseMsgWindow.ShowAnimateMessage("订单详情读取失败 " + BaseRegex.GetStringJson(ref html, "msg"), "Error", 5);
|
||||
}
|
||||
List<oms_wei_order_item_info> orderItems = new List<oms_wei_order_item_info>();
|
||||
try
|
||||
{
|
||||
orderItems = JsonHelper.DeserializeJsonToList<oms_wei_order_item_info>(JObject.Parse(html)["data"].ParseToString());
|
||||
if (orderItems == null)
|
||||
orderItems = new List<oms_wei_order_item_info>();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
BaseMsgWindow.ShowAnimateMessage("订单详情读取失败 " + ex.Message, "Error", 5);
|
||||
}
|
||||
return orderItems;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 读取售后单
|
||||
/// </summary>
|
||||
/// <param name="order_ids"></param>
|
||||
/// <returns></returns>
|
||||
public static List<oms_wei_refund_info> GetOrderRefundInfo(string order_ids)
|
||||
{
|
||||
Thread.Sleep(100);
|
||||
var url2 = BaseClass.Build29WxObjString("order/get_erp_refund_list");
|
||||
var data2 = UserLogin.GetSignaturex();
|
||||
data2 += "&erp_order_id_in=" + order_ids;
|
||||
var html2 = GetHtml.PostUtf8(url2, data2);
|
||||
if (string.IsNullOrEmpty(html2) || !html2.Contains("\"code\":200"))
|
||||
html2 = GetHtml.PostUtf8(url2, data2);
|
||||
if (string.IsNullOrEmpty(html2) || !html2.Contains("\"code\":200"))
|
||||
{
|
||||
//BaseMsgWindow.ShowError(MainWindow.Instance, "订单读取失败 " + BaseRegex.GetStringJson(ref html, "msg"));
|
||||
//break;
|
||||
}
|
||||
List<oms_wei_refund_info> refunds = new List<oms_wei_refund_info>();
|
||||
try { refunds = JsonHelper.DeserializeJsonToList<oms_wei_refund_info>(JObject.Parse(html2)["data"].ParseToString()); } catch { }
|
||||
return refunds;
|
||||
}
|
||||
|
||||
public void GetShopWaybillExceptionOrder()
|
||||
{
|
||||
foreach (var shop in GlobalConfig.ShopLoginList)
|
||||
{
|
||||
if (shop.LoginStatus == "登录成功")
|
||||
ShopBLL.CheckShopLogin(shop);
|
||||
if (shop.LoginStatus != "登录成功")
|
||||
continue;
|
||||
|
||||
var rst = WxSimAbnormalOrderSeach(shop, 100);
|
||||
Thread.Sleep(Randomx.GetId(50, 150));
|
||||
if (rst.Contains("\"code\":0"))
|
||||
{
|
||||
try
|
||||
{
|
||||
JObject jObj = JsonHelper.JObjectParse(rst);
|
||||
var wxOrderIdIn = string.Join(",", jObj["orderList"].Select(j => j["commonInfo"]["orderId"].ParseToString()));
|
||||
var wxSkuIdIn = string.Join(",", jObj["orderList"].Select(j => (j["orderProductInfo"].FirstOrDefault()?["skuId"]).ParseToString()));
|
||||
|
||||
List<order_item_ext> existOrderExtList = new List<order_item_ext>();
|
||||
if (!string.IsNullOrEmpty(wxOrderIdIn) && !string.IsNullOrEmpty(wxSkuIdIn))
|
||||
{
|
||||
var url = BaseClass.Build29WxObjString("order/wx_get_order_item_ext_info");
|
||||
var data = UserLogin.GetSignaturex();
|
||||
data += "&wx_order_id_in=" + wxOrderIdIn;
|
||||
data += "&wx_sku_id_in=" + wxSkuIdIn;
|
||||
var html = GetHtml.PostUtf8(url, data);
|
||||
if (!html.Contains("\"code\":200"))
|
||||
html = GetHtml.PostUtf8(url, data);
|
||||
if (!html.Contains("\"code\":200"))
|
||||
{
|
||||
BaseMsgWindow.ShowAnimateMessage("订单扩展信息查询失败 " + BaseRegex.GetStringJson(ref html, "msg"), "Error", 5);
|
||||
continue;
|
||||
}
|
||||
existOrderExtList = JsonHelper.DeserializeJsonToList<order_item_ext>(JsonHelper.JObjectParse(html)["data"].ParseToString());
|
||||
}
|
||||
|
||||
foreach (var od in jObj["orderList"])
|
||||
{
|
||||
var oStr = JsonHelper.SerializeObject(od);
|
||||
|
||||
//var orderId = o["commonInfo"]["orderId"].ParseToString();
|
||||
var orderId = BaseRegex.GetStringJson(ref oStr, "orderId");
|
||||
var skuId = BaseRegex.GetStringJson(ref oStr, "skuId");
|
||||
|
||||
// 存在状态完全一样的订单异常信息就跳过
|
||||
order_item_ext orderExt = new order_item_ext() { order_id = orderId, sku_id = skuId, shop_app_id = shop.ShopId, shop_name = shop.ShopAccount, abnormal_text = "物流异常" };
|
||||
if (!existOrderExtList.Any(eoe => eoe.order_id == orderExt.order_id && eoe.sku_id == orderExt.sku_id && eoe.abnormal_text == orderExt.abnormal_text))
|
||||
{
|
||||
|
||||
var url1 = BaseClass.Build29WxObjString("order/wx_add_order_item_ext_info");
|
||||
if (existOrderExtList.Any(eoe => eoe.order_id == orderExt.order_id && eoe.sku_id == orderExt.sku_id))
|
||||
url1 = BaseClass.Build29WxObjString("order/wx_mdy_order_item_ext_info");
|
||||
var data1 = UserLogin.GetSignaturex();
|
||||
data1 += "&wx_order_id=" + orderExt.order_id;
|
||||
data1 += "&wx_sku_id=" + orderExt.sku_id;
|
||||
data1 += "&shop_app_id=" + orderExt.shop_app_id;
|
||||
data1 += "&shop_name=" + orderExt.shop_name;
|
||||
data1 += "&abnormal_text=" + orderExt.abnormal_text;
|
||||
var html1 = GetHtml.PostUtf8(url1, data1);
|
||||
if (string.IsNullOrEmpty(html1) || !html1.Contains("\"code\":200"))
|
||||
{
|
||||
BaseMsgWindow.ShowAnimateMessage("订单扩展信息写入失败 " + BaseRegex.GetStringJson(ref html1, "msg"), "Error", 5);
|
||||
break;
|
||||
}
|
||||
}
|
||||
// 更新订单附加信息
|
||||
if (orderExt.order_id == "3737845591459133952")
|
||||
{
|
||||
|
||||
}
|
||||
var order = GlobalConfig.lstOrder.FirstOrDefault(o => o.order_id == orderExt.order_id);
|
||||
if (order != null)
|
||||
{
|
||||
var orderItem = order.orderItems.FirstOrDefault(oi => oi.sku_id == orderExt.sku_id);
|
||||
if (orderItem != null)
|
||||
{
|
||||
//orderItem.OrderItemExt = orderExt;
|
||||
//Dispatcher.Invoke(new Action(() => { MainWindow.Instance.orderListCtrl.FilterOneOrder(order, true); }));
|
||||
}
|
||||
}
|
||||
}
|
||||
//var abnormalOrder = GlobalConfig.lstOrder.FirstOrDefault()
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
BaseMsgWindow.ShowAnimateMessage("订单扩展信息查询失败 " + ex.Message, "Error", 5);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void disPlayOrderTabOrderCount()
|
||||
{
|
||||
var tabItems = this.tabOrderType.Items.Cast<TabItem>();
|
||||
@@ -453,7 +628,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
var filteLstTmp = new ObservableCollection<oms_wei_order_info>(userOrderLst.Where(o => !GetOrderIsFilter(o, "全部订单")));
|
||||
tabItem.Header = "全部订单(" + userOrderLst.Count() + "|" + filteLstTmp.Count() + ")";
|
||||
}
|
||||
txtFilterCount.Text = "当前条件共计 " + GlobalConfig.lstFilterOrder.Count() + " 条订单记录";
|
||||
//txtMsg.Text = "当前条件共计 " + GlobalConfig.lstFilterOrder.Count() + " 条订单记录";
|
||||
}
|
||||
|
||||
public void FilterOrders()
|
||||
@@ -463,25 +638,16 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
if (this.lbxOrder == null)
|
||||
return;
|
||||
|
||||
//foreach (var order in GlobalConfig.lstFilterOrder.ToList())
|
||||
//{
|
||||
// if (GetOrderIsFilter(order))
|
||||
// {
|
||||
// GlobalConfig.lstFilterOrder.Remove(order);
|
||||
// }
|
||||
//}
|
||||
//foreach (var order in GlobalConfig.lstOrder.ToList())
|
||||
//{
|
||||
// FilterOneOrder(order);
|
||||
//}
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
GlobalConfig.lstFilterOrder = new ObservableCollection<oms_wei_order_info>(GlobalConfig.lstOrder.Where(o => !GetOrderIsFilter(o)));
|
||||
if (GlobalConfig.OrderTabHeaderStr.StartsWith("需处理售后订单"))
|
||||
GlobalConfig.lstFilterOrder = new ObservableCollection<oms_wei_order_info>(GlobalConfig.lstOrder.Where(o => !GetOrderIsFilter(o)).OrderByDescending(o => o.RefundDatetime));
|
||||
else if (GlobalConfig.OrderTabHeaderStr.StartsWith("异常订单"))
|
||||
GlobalConfig.lstFilterOrder = new ObservableCollection<oms_wei_order_info>(GlobalConfig.lstOrder.Where(o => !GetOrderIsFilter(o)).OrderByDescending(o => o.update_time));
|
||||
else
|
||||
GlobalConfig.lstFilterOrder = new ObservableCollection<oms_wei_order_info>(GlobalConfig.lstOrder.Where(o => !GetOrderIsFilter(o)).OrderByDescending(o => o.create_time));
|
||||
this.lbxOrder.ItemsSource = GlobalConfig.lstFilterOrder;
|
||||
|
||||
//Dispatcher.Invoke(new Action(() => {
|
||||
// txtFilterCount.Text = "当前条件共计 " + GlobalConfig.lstFilterOrder.Count().ToString() + " 条订单记录";
|
||||
//}));
|
||||
disPlayOrderTabOrderCount();
|
||||
}));
|
||||
}
|
||||
@@ -501,7 +667,14 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
|
||||
if (!GetOrderIsFilter(order))
|
||||
{
|
||||
var nextOrder = GlobalConfig.lstFilterOrder.FirstOrDefault(o => o.create_time < order.create_time);
|
||||
oms_wei_order_info nextOrder = null;
|
||||
if (GlobalConfig.OrderTabHeaderStr.StartsWith("需处理售后订单"))
|
||||
nextOrder = GlobalConfig.lstFilterOrder.FirstOrDefault(o => o.RefundDatetime < order.RefundDatetime);
|
||||
else if (GlobalConfig.OrderTabHeaderStr.StartsWith("异常订单"))
|
||||
nextOrder = GlobalConfig.lstFilterOrder.FirstOrDefault(o => o.update_time < order.update_time);
|
||||
else
|
||||
nextOrder = GlobalConfig.lstFilterOrder.FirstOrDefault(o => o.create_time < order.create_time);
|
||||
|
||||
if (nextOrder != null)
|
||||
{
|
||||
GlobalConfig.lstFilterOrder.Insert(GlobalConfig.lstFilterOrder.IndexOf(nextOrder), order);
|
||||
@@ -579,12 +752,46 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
{
|
||||
return true;
|
||||
}
|
||||
// 过滤备注
|
||||
if (chkFilterRemark.IsChecked == true && !string.IsNullOrEmpty(txtFilterRemark.Text))
|
||||
{
|
||||
if (cmbFilterRemark.SelectedItem is ComboBoxItem comboBoxItem)
|
||||
{
|
||||
if (comboBoxItem.Content is TextBlock tb)
|
||||
{
|
||||
if (tb.Text == "店铺备注包含" && !lstFilterText.Contains(order.shop_remark))
|
||||
return true;
|
||||
else if (tb.Text == "软件备注包含" && !lstFilterText.Contains(order.soft_remark))
|
||||
return true;
|
||||
else if (tb.Text == "店铺备注不含" && lstFilterText.Contains(order.shop_remark))
|
||||
return true;
|
||||
else if (tb.Text == "软件备注不含" && lstFilterText.Contains(order.soft_remark))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 过滤时间范围
|
||||
if (order.createDateTime < dateStart.SelectedDate.Value)
|
||||
return true;
|
||||
if (chkEndDate.IsChecked == true && order.createDateTime > dateEnd.SelectedDate.Value)
|
||||
return true;
|
||||
if (cmbTimeType.SelectedItem is ComboBoxItem cbi)
|
||||
{
|
||||
if (cbi.Content is TextBlock tb)
|
||||
{
|
||||
if (tb.Text == "更新时间")
|
||||
{
|
||||
if (order.UpdateDateTime < dateStart.SelectedDate.Value)
|
||||
return true;
|
||||
if (chkEndDate.IsChecked == true && order.UpdateDateTime > dateEnd.SelectedDate.Value)
|
||||
return true;
|
||||
}
|
||||
if (tb.Text == "创建时间")
|
||||
{
|
||||
if (order.CreateDateTime < dateStart.SelectedDate.Value)
|
||||
return true;
|
||||
if (chkEndDate.IsChecked == true && order.CreateDateTime > dateEnd.SelectedDate.Value)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 过滤标签页
|
||||
if (filterHeadStr.IsNullOrEmpty())
|
||||
@@ -618,7 +825,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
return true;
|
||||
if (chkWaitReceiveBuyerIsSend.IsChecked == true && order.orderItems.All(oi => oi.BuyerTransitWaybillStatusStr != "买手已发货"))
|
||||
return true;
|
||||
if (chkWaitReceiveBuyerIsInWarehouse.IsChecked == true && order.orderItems.All(oi => oi.BuyerTransitWaybillStatusStr != "已到中转仓"))
|
||||
if (chkWaitReceiveBuyerIsInWarehouse.IsChecked == true && order.orderItems.All(oi => oi.BuyerTransitWaybillStatusStr != "买手已送达"))
|
||||
return true;
|
||||
|
||||
if (chkWaitReceiveWarehouseIsNotPickup.IsChecked == true && order.orderItems.All(oi => oi.WarehouseWaybillStatusStr != "中转待取号"))
|
||||
@@ -826,6 +1033,15 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
var result = HttpResponseWXBLL.WeiXinPostResponse(shop, url, body, refere);
|
||||
return result;
|
||||
}
|
||||
public static string addNotesFlag(ShopLoginInfo shop, string orderId, string notes, int tagColor = 0)
|
||||
{
|
||||
string url = "https://store.weixin.qq.com/shop-faas/mmchannelstradeorder/common/cgi/batchMerchantNotes?token=&lang=zh_CN";
|
||||
string body = @"{""items"":[{""orderId"":""" + orderId + @""",""merchantNotesTagColor"":" + tagColor + @"}]}";
|
||||
|
||||
string refere = "https://store.weixin.qq.com/shop/order/list";
|
||||
var result = HttpResponseWXBLL.WeiXinPostResponse(shop, url, body, refere);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void chkAutoReadBuyerOrder_CheckedChanged(object sender, RoutedEventArgs e)
|
||||
{
|
||||
@@ -835,7 +1051,11 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
private void TabItem_SizeChanged(object sender, SizeChangedEventArgs e)
|
||||
{
|
||||
var tabItems = this.tabOrderType.Items.Cast<TabItem>();
|
||||
wpFilter.Margin = new Thickness(tabItems.Sum(t => t.ActualWidth) + 20, 6, 0, 0);
|
||||
wpFilter.Margin = new Thickness(tabItems.Sum(t => t.ActualWidth) + 20, wpFilter.Margin.Top, 0, 0);
|
||||
|
||||
Point position1 = txtFilterRemark.TranslatePoint(new Point(0, 0), gridOrderListCtrl);
|
||||
Point position2 = txtFilterRemark.TranslatePoint(new Point(0, 0), wpFilter);
|
||||
borderFilterRemarkSelect.Margin = new Thickness(tabItems.Sum(t => t.ActualWidth) + 26 + position2.X, position1.Y + txtFilterRemark.ActualHeight + 3, 0, 0);
|
||||
}
|
||||
|
||||
private void chkSubFilterSonditions_Checked(object sender, RoutedEventArgs e)
|
||||
@@ -944,5 +1164,248 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
}
|
||||
FilterOrders();
|
||||
}
|
||||
|
||||
private async void btnBatchRefund_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var orders = GlobalConfig.lstFilterOrder.Where(o => o.IsSelect == true);
|
||||
List<oms_wei_order_item_info> tmpOrderItems = new List<oms_wei_order_item_info>();
|
||||
foreach (var order in orders)
|
||||
{
|
||||
foreach(var orderItem in order.orderItems)
|
||||
{
|
||||
if (orderItem == null || string.IsNullOrEmpty(orderItem.ItemTransitOrderWithVoid?.out_order_no) || !orderItem.PddBuyerAfterSaleAddressStr.IsNullOrEmpty() ||
|
||||
(!orderItem.TransitRefundStatusStr.Contains("需手动申请售后") && !orderItem.TransitRefundStatusStr.Contains("待用户发货")))
|
||||
continue;
|
||||
|
||||
tmpOrderItems.Add(orderItem);
|
||||
}
|
||||
}
|
||||
if (tmpOrderItems.Count == 0)
|
||||
{
|
||||
BaseMsgWindow.ShowAnimateMessage("未选中需要需手动申请售后的订单", "Error", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
await Task.Run(() =>
|
||||
{
|
||||
int index = 0;
|
||||
foreach (var tmpOrderItem in tmpOrderItems)
|
||||
{
|
||||
Dispatcher.Invoke(new Action(() => { txtMsg.Text = "正在处理买手退货,总计:" + tmpOrderItems.Count + ",已处理:" + index++; }));
|
||||
|
||||
var pddOrderSn = tmpOrderItem.ItemTransitOrderWithVoid.out_order_no;
|
||||
BuyerLoginInfo buyer = null;
|
||||
Dispatcher.Invoke(new Action(() => { buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_nick == tmpOrderItem.ItemTransitOrderWithVoid.buyer_account); }));
|
||||
if (buyer == null)
|
||||
{
|
||||
BaseMsgWindow.ShowAnimateMessage("买手单:" + pddOrderSn + " 买手不在当前账户下,跳过", "Error", 3);
|
||||
}
|
||||
|
||||
// 检测一下买手号
|
||||
if (buyer.status == "在线")
|
||||
{
|
||||
PddMobileLoginForm.CheckBuyerLogin(buyer);
|
||||
}
|
||||
if (buyer.status != "在线")
|
||||
{
|
||||
BaseMsgWindow.ShowAnimateMessage("买手单:" + pddOrderSn + " 买手号掉线,跳过", "Error", 3);
|
||||
continue;
|
||||
}
|
||||
|
||||
MainWindow.Instance.orderListCtrl.GetOrder(tmpOrderItem.order_id);
|
||||
var order = GlobalConfig.lstOrder.FirstOrDefault(oi => oi.order_id == tmpOrderItem.order_id);
|
||||
if (order == null)
|
||||
continue;
|
||||
var orderItem = order.orderItems.FirstOrDefault(oi => oi.order_id == tmpOrderItem.order_id && oi.sku_id == tmpOrderItem.sku_id);
|
||||
if (orderItem == null || string.IsNullOrEmpty(orderItem.ItemTransitOrderWithVoid?.out_order_no) || !orderItem.PddBuyerAfterSaleAddressStr.IsNullOrEmpty() ||
|
||||
(!orderItem.TransitRefundStatusStr.Contains("需手动申请售后") && !orderItem.TransitRefundStatusStr.Contains("待用户发货")))
|
||||
continue;
|
||||
|
||||
//PddMobileBuyOrderForm buyOrderForm = new PddMobileBuyOrderForm(MainWindow.Instance.orderListCtrl.FilterOneOrder, StartUp.UpdateBalance,
|
||||
// orderItem, buyer, orderItem.BuyMap);
|
||||
|
||||
//buyOrderForm.TitleText = "买手退货退款 - 当前买手 " + buyer.buyer_nick;
|
||||
|
||||
//buyOrderForm.InitUrl = "https://mobile.yangkeduo.com/complaint.html?order_sn=" + pddOrderSn + "&after_sales_reason=88&after_sales_type=2&after_sales_code=1002";
|
||||
//buyOrderForm.pnlBuy.Visible = false;
|
||||
|
||||
//if (orderItem.BuyMap != null)
|
||||
//{
|
||||
// buyOrderForm.pnlBuy.Visible = true;
|
||||
// buyOrderForm.pnlMap.Visible = false;
|
||||
//}
|
||||
//buyOrderForm.ShowDialog();
|
||||
|
||||
PddBuyerOrderLiteInfo pddBuyerOrderLiteInfo = new PddBuyerOrderLiteInfo();
|
||||
pddBuyerOrderLiteInfo.ShopOrderIdStr = orderItem.order_id;
|
||||
pddBuyerOrderLiteInfo.order_sn = pddOrderSn;
|
||||
pddBuyerOrderLiteInfo.order_amount = orderItem.ItemTransitOrderWithVoid.out_amount;
|
||||
order_pdd_buyer_after_sale pddBuyerAfterSale = new order_pdd_buyer_after_sale()
|
||||
{
|
||||
wx_order_id = orderItem.order_id,
|
||||
wx_sku_id = orderItem.sku_id,
|
||||
TransitCreateTime = orderItem.ItemTransitOrderWithVoid.created_time,
|
||||
pre_allocated_order_no = orderItem.ItemTransitOrderWithVoid.pre_allocated_order_no,
|
||||
buyerId = buyer.buyer_id,
|
||||
buyerName = buyer.buyer_name,
|
||||
orderSn = pddOrderSn,
|
||||
orderAmount = pddBuyerOrderLiteInfo.order_amount,
|
||||
refundAmount = pddBuyerOrderLiteInfo.order_amount,
|
||||
orderDate = pddOrderSn.ParseToString().Split('-').FirstOrDefault().ParseToInt(),
|
||||
};
|
||||
if (orderItem.PddBuyerAfterSale != null)
|
||||
pddBuyerAfterSale = orderItem.PddBuyerAfterSale;
|
||||
|
||||
bool isSimPddAfterSaleSuccess = true;
|
||||
if (orderItem.TransitRefundStatusStr.Contains("需手动申请售后"))
|
||||
{
|
||||
isSimPddAfterSaleSuccess = false;
|
||||
var rst = PDDBuyerOrderReadCtrl.SimPddAfterSaleWithReturnGoods(buyer, pddBuyerOrderLiteInfo);
|
||||
|
||||
var afterSalesStatus = BaseRegex.GetIntJson(ref rst, "after_sales_status");
|
||||
var afterSalesId = BaseRegex.GetLongJson(ref rst, "after_sales_id");
|
||||
pddBuyerAfterSale.afterSalesId = afterSalesId.ToString();
|
||||
|
||||
if (afterSalesStatus == 0)
|
||||
{
|
||||
var msg = BaseRegex.GetStringJsonByRegs(ref rst, rst, "msg", "err_msg", "error_msg", "errorMsg", "errMsg");
|
||||
BaseMsgWindow.ShowAnimateMessage(msg, "Error", 3);
|
||||
Thread.Sleep(5000);
|
||||
}
|
||||
else
|
||||
{
|
||||
var e57Rst = PDDBuyerOrderReadCtrl.SendTransitAfterSaleE57(pddBuyerOrderLiteInfo, "待用户发货");
|
||||
if (e57Rst.Contains("<code>0</code>") || e57Rst.Contains("<code>200</code>"))
|
||||
{
|
||||
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新成功", "Msg", 3);
|
||||
isSimPddAfterSaleSuccess = true;
|
||||
Thread.Sleep(Randomx.GetId(10000, 10001));
|
||||
}
|
||||
else
|
||||
{
|
||||
var msg = BaseRegex.GetStringXml(ref e57Rst, "msg");
|
||||
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新失败,服务端返回 " + msg, "Error", 3);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isSimPddAfterSaleSuccess)
|
||||
{
|
||||
var addressRst = YkdBuyerOrder.GetAfterSaleAddress(buyer, pddOrderSn, pddBuyerAfterSale.afterSalesId.ParseToString());
|
||||
var merchantReceiverInfo = BaseRegex.GetOneJsonObjStrJson(ref addressRst, "merchantReceiverInfo");
|
||||
string address = "";
|
||||
if (merchantReceiverInfo != null)
|
||||
{
|
||||
address = BaseRegex.GetStringJson(ref merchantReceiverInfo, "copyValue");
|
||||
}
|
||||
|
||||
var url3 = BaseClass.Build29WxObjString("order/wx_add_mdy_buyer_after_sale");
|
||||
var data3 = UserLogin.GetSignaturex();
|
||||
data3 += "&wx_order_id=" + pddBuyerAfterSale.wx_order_id;
|
||||
data3 += "&wx_sku_id=" + pddBuyerAfterSale.wx_sku_id;
|
||||
data3 += "&TransitCreateTime=" + pddBuyerAfterSale.TransitCreateTime.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
data3 += "&pre_allocated_order_no=" + pddBuyerAfterSale.pre_allocated_order_no;
|
||||
data3 += "&buyerId=" + pddBuyerAfterSale.buyerId;
|
||||
data3 += "&buyerName=" + pddBuyerAfterSale.buyerName;
|
||||
data3 += "&orderAmount=" + pddBuyerAfterSale.orderAmount;
|
||||
data3 += "&orderSn=" + pddBuyerAfterSale.orderSn;
|
||||
data3 += "&afterSalesId=" + pddBuyerAfterSale.afterSalesId;
|
||||
data3 += "&orderDate=" + pddBuyerAfterSale.orderDate;
|
||||
//data3 += "&TransitPickupTime=" + pddBuyerOrder.TransitPickupTime.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
data3 += "&refundAmount=" + pddBuyerAfterSale.refundAmount;
|
||||
data3 += "&statusText=" + pddBuyerAfterSale.statusText;
|
||||
if (!string.IsNullOrEmpty(address))
|
||||
data3 += "&afterSaleAddress=" + address;
|
||||
//data3 += "&is_mdy=true";
|
||||
var html3 = GetHtml.PostUtf8(url3, data3);
|
||||
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
|
||||
html3 = GetHtml.PostUtf8(url3, data3);
|
||||
}
|
||||
MainWindow.Instance.orderListCtrl.GetOrder(tmpOrderItem.order_id);
|
||||
Dispatcher.Invoke(new Action(() => { txtMsg.Text = "正在处理买手退货,总计:" + tmpOrderItems.Count + ",已处理:" + index; }));
|
||||
}
|
||||
|
||||
Dispatcher.Invoke(new Action(() => { txtMsg.Text = "买手退货处理完成,总计:" + tmpOrderItems.Count + ",已处理:" + index; }));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public static string WxSimAbnormalOrderSeach(ShopLoginInfo shop, int page = 1)
|
||||
{
|
||||
string url = "https://store.weixin.qq.com/shop-faas/mmchannelstradeorder/list/cgi/orderSearch?token=&lang=zh_CN";
|
||||
string referer = "https://store.weixin.qq.com/shop/order/list";
|
||||
string body = @"{""isSearch"":false,""pageSize"":100,""overTime"":0,""pengingShipOneDay"":0,""pengingShipSixHour"":0,""expediteDelivery"":0," +
|
||||
@"""stockoutPunishAlert"":0,""appointmentInstall"":0,""waybillStatus"":3,""isUserBookingDelivery"":0,""pageNum"":" + page + @",""onAftersaleOrderExist"":0,""orderStatus"":30}";
|
||||
var result = HttpResponseWXBLL.WeiXinPostResponse(shop, url, body, referer);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void btnMultiRemark_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
wpFilterRemarkSelect.Children.Clear();
|
||||
List<string> txts = txtFilterRemark.Text.Trim().Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries).ToList();
|
||||
var remarks = GlobalConfig.lstOrder.Select(o => o.shop_remark).Distinct().ToList();
|
||||
remarks.AddRange(GlobalConfig.lstOrder.Select(o => o.soft_remark).Distinct().ToList());
|
||||
remarks = remarks.Distinct().ToList();
|
||||
foreach (var remark in remarks)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(remark))
|
||||
continue;
|
||||
wpFilterRemarkSelect.Children.Add(new CheckBox() { Content = remark, IsChecked = txts.Contains(remark), Margin = new Thickness(2) });
|
||||
}
|
||||
|
||||
Point position = txtFilterRemark.TranslatePoint(new Point(0, 0), gridOrderListCtrl);
|
||||
borderFilterRemarkSelect.Margin = new Thickness(position.X - 2, position.Y + txtFilterRemark.ActualHeight + 3, 0, 0);
|
||||
|
||||
if (borderFilterRemarkSelect.Visibility == Visibility.Visible)
|
||||
borderFilterRemarkSelect.Visibility = Visibility.Collapsed;
|
||||
else
|
||||
borderFilterRemarkSelect.Visibility = Visibility.Visible;
|
||||
}
|
||||
|
||||
private void btnCancelFilterRemark_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
borderFilterRemarkSelect.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
private void btnApplyFilterRemark_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
string txt = "";
|
||||
foreach (UIElement element in wpFilterRemarkSelect.Children)
|
||||
{
|
||||
if (element is CheckBox box && box.IsChecked == true)
|
||||
{
|
||||
txt += box.Content.ParseToString() + ";";
|
||||
}
|
||||
}
|
||||
txtFilterRemark.Text = txt.TrimEnd(';');
|
||||
borderFilterRemarkSelect.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
private void btnFilterRemarkSelectAll_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
foreach (UIElement element in wpFilterRemarkSelect.Children)
|
||||
{
|
||||
if (element is CheckBox box)
|
||||
{
|
||||
box.IsChecked = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void btnFilterRemarkUnSelectAll_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
foreach (UIElement element in wpFilterRemarkSelect.Children)
|
||||
{
|
||||
if (element is CheckBox box)
|
||||
{
|
||||
box.IsChecked = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void txtFilterRemark_TextChanged(object sender, TextChangedEventArgs e)
|
||||
{
|
||||
lstFilterText = txtFilterRemark.Text.Trim().Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries).Distinct().ToList();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -90,7 +90,7 @@
|
||||
<RowDefinition Height="*"></RowDefinition>
|
||||
</Grid.RowDefinitions>
|
||||
<TextBox Text="成交时间:" Grid.Column="1" Grid.Row="1" Margin="0,2,4,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
|
||||
<uc:UcWaterMarkTextBox1 WaterMark="成交时间" Text="{Binding ItemOrder.create_time_str}" Grid.Column="1" Grid.Row="1" Margin="60,2,4,2" VerticalAlignment="Top"
|
||||
<uc:UcWaterMarkTextBox1 WaterMark="成交时间" Text="{Binding CreateDateTimeStr}" Grid.Column="1" Grid.Row="1" Margin="60,2,4,2" VerticalAlignment="Top"
|
||||
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap"/>
|
||||
<TextBox Text="发货时间:" Grid.Column="1" Grid.Row="2" Margin="0,2,4,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0"
|
||||
Visibility="{Binding ItemOrder.ship_done_time_visibility}"/>
|
||||
@@ -98,8 +98,11 @@
|
||||
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap" Visibility="{Binding ItemOrder.ship_done_time_visibility}"/>
|
||||
<TextBox Text="退款时间:" Grid.Column="1" Grid.Row="3" Margin="0,2,4,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0"
|
||||
Visibility="{Binding RefundTimeVisibility}"/>
|
||||
<uc:UcWaterMarkTextBox1 WaterMark="退款时间" Text="{Binding RefundTimeStr}" Grid.Column="1" Grid.Row="3" Margin="60,2,4,2" VerticalAlignment="Top"
|
||||
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap" Visibility="{Binding RefundTimeVisibility}"/>
|
||||
<uc:UcWaterMarkTextBox1 WaterMark="退款时间" Text="{Binding RefundDateTimeStr}" Grid.Column="1" Grid.Row="3" Margin="60,2,4,2" VerticalAlignment="Top"
|
||||
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap" Visibility="{Binding RefundTimeVisibility}"/>
|
||||
<!--<TextBox Text="更新时间:" Grid.Column="1" Grid.Row="4" Margin="0,2,4,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
|
||||
<uc:UcWaterMarkTextBox1 WaterMark="更新时间" Text="{Binding UpdateDateTimeStr}" Grid.Column="1" Grid.Row="4" Margin="60,2,4,2" VerticalAlignment="Top"
|
||||
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap"/>-->
|
||||
</Grid>
|
||||
<!--订单利润-->
|
||||
<Grid Grid.Column="4" Background="Transparent" VerticalAlignment="Center">
|
||||
@@ -161,11 +164,19 @@
|
||||
<RowDefinition Height="*"></RowDefinition>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border x:Name="borderDeadline" Grid.Row="1" Margin="8,0,0,0" Background="{Binding OrderItemStatusBackColor}" BorderBrush="{Binding OrderItemStatusBorderColor}"
|
||||
BorderThickness="1" MinWidth="30" Height="auto" CornerRadius="2" HorizontalAlignment="Center">
|
||||
<TextBox x:Name="txtDeadline" Grid.Column="1" Margin="2,0,2,1" Foreground="{Binding OrderItemStatusStrColor}" VerticalContentAlignment="Center" VerticalAlignment="Center"
|
||||
Background="Transparent" IsReadOnly="True" MinWidth="20" Text="{Binding OrderItemStatusStr}" BorderThickness="0" />
|
||||
</Border>
|
||||
<WrapPanel Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||
<Border Grid.Row="1" Margin="8,0,0,0" Background="{Binding OrderItemStatusBackColor}" BorderBrush="{Binding OrderItemStatusBorderColor}"
|
||||
BorderThickness="1" MinWidth="30" Height="auto" CornerRadius="2" HorizontalAlignment="Center">
|
||||
<TextBox Grid.Column="1" Margin="2,0,2,1" Foreground="{Binding OrderItemStatusStrColor}" VerticalContentAlignment="Center" VerticalAlignment="Center"
|
||||
Background="Transparent" IsReadOnly="True" MinWidth="20" Text="{Binding OrderItemStatusStr}" BorderThickness="0" />
|
||||
</Border>
|
||||
<Border Grid.Row="1" Margin="8,0,0,0" Background="{StaticResource PageWarningBrush50}" BorderBrush="{StaticResource PageWarningBrushCC}"
|
||||
BorderThickness="1" MinWidth="30" Height="auto" CornerRadius="2" HorizontalAlignment="Center"
|
||||
Visibility="{Binding ElementName=txtWaybillException,Path=Text,Converter={StaticResource HasTextVisibility}}">
|
||||
<TextBox x:Name="txtWaybillException" Grid.Column="1" Margin="2,0,2,1" Foreground="{StaticResource PageWarningBrush}" VerticalContentAlignment="Center" VerticalAlignment="Center"
|
||||
Background="Transparent" IsReadOnly="True" MinWidth="20" Text="{Binding ShopWaybillExceptionStr}" BorderThickness="0" />
|
||||
</Border>
|
||||
</WrapPanel>
|
||||
<TextBox Text="{Binding ItemRefund.RefundStatusStr}" Grid.Column="1" Grid.Row="2" Margin="0,2,0,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True"
|
||||
x:Name="txtStatusStr" BorderThickness="0" Foreground="{Binding ItemRefund.RefundStatusColor}" HorizontalAlignment="Center"
|
||||
Visibility="{Binding ElementName=txtStatusStr,Path=Text,Converter={StaticResource HasTextVisibility}}"/>
|
||||
@@ -178,10 +189,14 @@
|
||||
|
||||
<WrapPanel Orientation="Horizontal" Grid.Column="1" Grid.Row="5" Width="auto" HorizontalAlignment="Center">
|
||||
<TextBox Text="收货地址:" Grid.Column="1" Grid.Row="5" Margin="0,2,0,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
|
||||
<uc:UcWaterMarkTextBox1 WaterMark="收货地址" Text="{Binding ItemOrder.address_str}" Grid.Column="1" Grid.Row="5" Margin="0,2,4,2" VerticalAlignment="Top"
|
||||
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap"/>
|
||||
<Button Grid.Column="10" x:Name="btnSeeAddressDetail" Background="Transparent" Foreground="{StaticResource PageLinkBrush}" BorderBrush="Transparent"
|
||||
Margin="4,0,0,0" Content="👁" Click="btnSeeAddressDetail_Click" Tag="{Binding order_id}"></Button>
|
||||
<uc:UcWaterMarkTextBox1 Grid.Column="1" Grid.Row="5" x:Name="txtUserAddress" WaterMark="收货地址" Text="{Binding ItemOrder.AddressStr,Converter={StaticResource TextEllipsisConverter26}}"
|
||||
Margin="0,2,4,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap" ToolTip="{Binding ItemOrder.AddressStr}"/>
|
||||
<Border Grid.Column="6" Width="12" Background="Transparent" Height="12" VerticalAlignment="Center" Cursor="Hand"
|
||||
MouseLeftButtonDown="pathCopyAddress_MouseLeftButtonDown" Visibility="{Binding ElementName=txtUserAddress,Path=Visibility}">
|
||||
<Path Margin="0,0,0,0" Fill="{StaticResource PageLinkBrush}" MouseLeftButtonDown="pathCopyAddress_MouseLeftButtonDown" Data="M80 432a128 128 0 0 1 128-128h384a128 128 0 0 1 128 128v384a128 128 0 0 1-128 128h-384a128 128 0 0 1-128-128v-384z m128-64a64 64 0 0 0-64 64v384a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64v-384a64 64 0 0 0-64-64h-384z M816 144h-384a64 64 0 0 0-64 64 32 32 0 0 1-64 0 128 128 0 0 1 128-128h384a128 128 0 0 1 128 128v384a128 128 0 0 1-128 128 32 32 0 0 1 0-64 64 64 0 0 0 64-64v-384a64 64 0 0 0-64-64z" Stretch="Uniform" />
|
||||
</Border>
|
||||
<Button x:Name="btnSeeAddressDetail" Background="Transparent" Foreground="{StaticResource PageLinkBrush}" BorderBrush="Transparent"
|
||||
Margin="4,0,0,0" Content="👁" Click="btnSeeAddressDetail_Click" Tag="{Binding order_id}" Cursor="Hand"></Button>
|
||||
</WrapPanel>
|
||||
<!--<Button Grid.Column="1" Grid.Row="6" x:Name="btnGetRefundAddress" Background="Transparent" HorizontalAlignment="Center" Foreground="{StaticResource PageLinkBrush}" BorderBrush="Transparent"
|
||||
Margin="4,0,0,0" Content="仓库退货地址:点击复制" Click="btnGetRefundAddress_Click" Tag="{Binding order_id}"></Button>-->
|
||||
@@ -350,26 +365,38 @@
|
||||
<uc:UcWaterMarkTextBox1 x:Name="txtShopRemark" WaterMark="店铺备注" Text="{Binding ItemOrder.shop_remark}" Grid.Column="1" Grid.Row="2" Margin="0,1,0,1"
|
||||
VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="1" TextWrapping="Wrap"/>
|
||||
<Button Grid.Column="1" Grid.Row="2" x:Name="btnEditShopRemark" Background="Transparent" HorizontalAlignment="Center" Foreground="{StaticResource PageLinkBrush}" BorderBrush="Transparent"
|
||||
Margin="2,0,0,0" Content="编辑" Click="btnEditShopRemark_Click"></Button>
|
||||
Margin="2,0,0,0" Content="编辑" Click="btnEditShopRemark_Click" Cursor="Hand"></Button>
|
||||
<Button Grid.Column="1" Grid.Row="2" x:Name="btnCancelEditShopRemark" Background="Transparent" HorizontalAlignment="Center" Foreground="{StaticResource PageLinkBrush}" BorderBrush="Transparent"
|
||||
Margin="0,0,0,0" Content="取消" Click="btnCancelEditShopRemark_Click" Visibility="Collapsed"></Button>
|
||||
Margin="0,0,0,0" Content="取消" Click="btnCancelEditShopRemark_Click" Visibility="Collapsed" Cursor="Hand"></Button>
|
||||
</WrapPanel>
|
||||
<WrapPanel Orientation="Horizontal" Grid.Column="1" Grid.Row="3">
|
||||
<TextBox Text="软件备注:" Grid.Column="1" Grid.Row="2" Margin="0,1,-8,1" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderBrush="Transparent" BorderThickness="1"/>
|
||||
<uc:UcWaterMarkTextBox1 x:Name="txtAppRemark" WaterMark="软件备注" Text="{Binding ItemOrder.soft_remark}" Grid.Column="1" Grid.Row="2" Margin="0,1,0,1"
|
||||
VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="1" TextWrapping="Wrap"/>
|
||||
<Button Grid.Column="1" Grid.Row="2" x:Name="btnEditAppRemark" Background="Transparent" HorizontalAlignment="Center" Foreground="{StaticResource PageLinkBrush}" BorderBrush="Transparent"
|
||||
Margin="2,0,0,0" Content="编辑" Click="btnEditAppRemark_Click"></Button>
|
||||
Margin="2,0,0,0" Content="编辑" Click="btnEditAppRemark_Click" Cursor="Hand"></Button>
|
||||
<Button Grid.Column="1" Grid.Row="2" x:Name="btnCancelEditAppRemark" Background="Transparent" HorizontalAlignment="Center" Foreground="{StaticResource PageLinkBrush}" BorderBrush="Transparent"
|
||||
Margin="0,0,0,0" Content="取消" Click="btnCancelEditAppRemark_Click" Visibility="Collapsed"></Button>
|
||||
Margin="0,0,0,0" Content="取消" Click="btnCancelEditAppRemark_Click" Visibility="Collapsed" Cursor="Hand"></Button>
|
||||
</WrapPanel>
|
||||
|
||||
<WrapPanel Orientation="Horizontal" Grid.Column="1" Grid.Row="4" Visibility="{Binding AddEditTransitWarehouseAfterSaleStr,Converter={StaticResource HasTextVisibility}}">
|
||||
<TextBox Text="中转售后:" Grid.Column="1" Grid.Row="2" Margin="0,1,-8,1" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderBrush="Transparent" BorderThickness="1"/>
|
||||
<uc:UcWaterMarkTextBox1 x:Name="txtTransitWarehouseAfterSale" WaterMark="订单售后" Text="{Binding ItemOrder.soft_remark}" Grid.Column="1" Grid.Row="2" Margin="0,1,0,1"
|
||||
<uc:UcWaterMarkTextBox1 x:Name="txtTransitWarehouseAfterSale" WaterMark="中转售后" Text="{Binding TransitWarehouseAfterSaleWayBillStr}" Grid.Column="1" Grid.Row="2" Margin="0,1,0,1"
|
||||
VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="1" TextWrapping="Wrap"/>
|
||||
<!--Visibility="{Binding Text,RelativeSource={RelativeSource Self},Converter={StaticResource HasTextVisibility}}"-->
|
||||
<Button Grid.Column="1" Grid.Row="2" x:Name="btnAddEditTransitWarehouseAfterSale" Background="Transparent" HorizontalAlignment="Center" Foreground="{StaticResource PageLinkBrush}" BorderBrush="Transparent"
|
||||
Margin="2,0,0,0" Content="{Binding AddEditTransitWarehouseAfterSaleStr}" Click="btnAddEditTransitWarehouseAfterSale_Click"></Button>
|
||||
Margin="2,0,0,0" Content="{Binding AddEditTransitWarehouseAfterSaleStr}" Click="btnAddEditTransitWarehouseAfterSale_Click" Cursor="Hand"></Button>
|
||||
</WrapPanel>
|
||||
<WrapPanel Orientation="Horizontal" Grid.Column="1" Grid.Row="5" Width="auto" Visibility="{Binding AddEditTransitWarehouseAfterSaleStr,Converter={StaticResource HasTextVisibility}}">
|
||||
<TextBox Text="总店地址:" Grid.Column="1" Grid.Row="2" Margin="0,1,-8,1" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderBrush="Transparent" BorderThickness="1"/>
|
||||
<!--<TextBlock Text="{Binding PddBuyerAfterSaleAddressStr}" TextTrimming="CharacterEllipsis" Width="100" ToolTip="这是一个非常长的文本字符串,需要显示省略号..." Visibility="Collapsed" x:Name="tbBuyerRefundAddress"/>-->
|
||||
<uc:UcWaterMarkTextBox1 WaterMark="总店退货地址" Text="{Binding PddBuyerAfterSaleAddressStr,Converter={StaticResource TextEllipsisConverter}}" ToolTip="{Binding PddBuyerAfterSaleAddressStr}"
|
||||
x:Name="txtBuyerRefundAddress" Margin="0,1,0,1" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="1" TextWrapping="Wrap"
|
||||
Visibility="{Binding Text,RelativeSource={RelativeSource Self},Converter={StaticResource HasTextVisibility}}"/>
|
||||
<Border Grid.Column="6" Width="12" Background="Transparent" Height="12" VerticalAlignment="Center" Cursor="Hand"
|
||||
MouseLeftButtonDown="pathBuyerAfterSaleAddress_MouseLeftButtonDown" Visibility="{Binding ElementName=txtBuyerRefundAddress,Path=Visibility}">
|
||||
<Path Margin="0,0,0,0" Fill="{StaticResource PageLinkBrush}" MouseLeftButtonDown="pathBuyerAfterSaleAddress_MouseLeftButtonDown" Data="M80 432a128 128 0 0 1 128-128h384a128 128 0 0 1 128 128v384a128 128 0 0 1-128 128h-384a128 128 0 0 1-128-128v-384z m128-64a64 64 0 0 0-64 64v384a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64v-384a64 64 0 0 0-64-64h-384z M816 144h-384a64 64 0 0 0-64 64 32 32 0 0 1-64 0 128 128 0 0 1 128-128h384a128 128 0 0 1 128 128v384a128 128 0 0 1-128 128 32 32 0 0 1 0-64 64 64 0 0 0 64-64v-384a64 64 0 0 0-64-64z" Stretch="Uniform" />
|
||||
</Border>
|
||||
</WrapPanel>
|
||||
</Grid>
|
||||
<!--操作-->
|
||||
|
||||
@@ -72,11 +72,110 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
}
|
||||
}
|
||||
|
||||
private void btnSeeAddressDetail_Click(object sender, RoutedEventArgs e)
|
||||
private async void btnSeeAddressDetail_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var order = this.DataContext as oms_wei_order_item_info;
|
||||
if (order == null)
|
||||
var orderItem = this.DataContext as oms_wei_order_item_info;
|
||||
if (orderItem == null)
|
||||
return;
|
||||
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ErpShopId == orderItem.shop_id.ParseToString());
|
||||
if (shop == null)
|
||||
return;
|
||||
ShowOrderAddress(shop, orderItem.order_id);
|
||||
}
|
||||
|
||||
void ShowOrderAddress(ShopLoginInfo shop, string orderId, bool ShowErrorDialog = true)
|
||||
{
|
||||
//var rows = dgvOrder.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colOrderId"].Value.ParseToString() == orderId);
|
||||
var order = GlobalConfig.lstOrder.FirstOrDefault(o => o.order_id == orderId);
|
||||
var deRst = "测试地址写入{\"code\"0}";
|
||||
deRst = decryptOrder(shop, orderId);
|
||||
if (deRst.Contains("\"code\":0"))
|
||||
{
|
||||
var url = BaseClass.Build29WxObjString("shop/wx_add_mdy_order_address");
|
||||
var data = UserLogin.GetSignaturex();
|
||||
data += "&shop_id=" + shop.ShopId;
|
||||
data += "&order_id=" + orderId;
|
||||
data += "&order_address=" + GetHtml.UrlEncodeUtf8(deRst);
|
||||
var html = GetHtml.PostUtf8(url, data);
|
||||
if (!html.Contains("\"code\":200"))
|
||||
html = GetHtml.PostUtf8(url, data);
|
||||
if (!html.Contains("\"code\":200"))
|
||||
{
|
||||
var errMsg = BaseRegex.GetStringJsonByRegs(ref html, html, "msg");
|
||||
if (order != null)
|
||||
{
|
||||
this.Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
order.AddressStr = GetDecryptOrder(deRst);
|
||||
if (ShowErrorDialog)
|
||||
BaseMsgWindow.ShowAnimateMessage("查看地址成功但保存到服务端失败:" + errMsg, "Error", 5);
|
||||
}));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (order != null)
|
||||
{
|
||||
this.Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
order.AddressStr = GetDecryptOrder(deRst);
|
||||
BaseMsgWindow.ShowAnimateMessage("查看地址成功");
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var error = BaseRegex.GetStringJsonByRegs(ref deRst, deRst, "err_msg", "error_msg", "errMsg", "errorMsg", "msg");
|
||||
if (error.Contains("\"code\":17899002") || error.Contains("\"code\":10020123"))
|
||||
{
|
||||
if (error.Contains("\"code\":17899002"))
|
||||
error = "基于用户隐私保护,无法查看收货信息";
|
||||
if (error.Contains("\"code\":10020123"))
|
||||
error = "今日查看次数已用完";
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
if (ShowErrorDialog)
|
||||
BaseMsgWindow.ShowAnimateMessage("查看地址失败:" + error, "Error", 5);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
if (ShowErrorDialog)
|
||||
BaseMsgWindow.ShowAnimateMessage("查看地址失败:" + error, "Error", 5);
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
||||
public string GetDecryptOrder(string sourceOrderAddressStr)
|
||||
{
|
||||
//黄颖飞(4559),18466134204-4559,广西壮族自治区柳州市柳南区福柳宏都8-1-701 (拨打请输入分机号4559)
|
||||
var userName = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "userName"); // 黄颖飞
|
||||
var extension = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "extension"); // 4559
|
||||
var virtualNumber = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "virtualNumber"); // 18466134204
|
||||
var provinceName = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "provinceName"); // 广西壮族自治区
|
||||
var cityName = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "cityName"); // 柳州市
|
||||
var countyName = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "countyName"); // 柳南区
|
||||
var detailInfo = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "detailInfo"); // 福柳宏都8-1-701
|
||||
if (userName.IsNullOrEmpty() || extension.IsNullOrEmpty() || virtualNumber.IsNullOrEmpty() || provinceName.IsNullOrEmpty() || cityName.IsNullOrEmpty() ||
|
||||
countyName.IsNullOrEmpty() || detailInfo.IsNullOrEmpty())
|
||||
{
|
||||
return sourceOrderAddressStr;
|
||||
}
|
||||
//return userName + "(" + extension + ")," + virtualNumber + "-" + extension + "," + provinceName + cityName + countyName + detailInfo + "(拨打请输入分机号" + extension + ")";
|
||||
return userName + "" + extension + "," + virtualNumber + "-" + extension + "," + provinceName + cityName + countyName + detailInfo + "拨打请输入分机号" + extension + "";
|
||||
}
|
||||
|
||||
public static string decryptOrder(ShopLoginInfo shop, string orderId)
|
||||
{
|
||||
string url = "https://store.weixin.qq.com/shop-faas/mmchannelstradeorder/common/cgi/decryptOrder?token=&lang=zh_CN";
|
||||
string body = @"{""id"":""" + orderId + @"""}";
|
||||
|
||||
string refere = "https://store.weixin.qq.com/shop/order/list";
|
||||
var result = HttpResponseWXBLL.WeiXinPostResponse(shop, url, body, refere);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void btnGetRefundAddress_Click(object sender, RoutedEventArgs e)
|
||||
@@ -215,9 +314,13 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
BaseMsgWindow.ShowError("多子单订单中转仓暂不支持");
|
||||
return;
|
||||
}
|
||||
if (GlobalConfig.lstOrder.Any(o => o.orderItems.Any(oi => oi.ItemTransitOrder?.order_no == orderItem.order_id && oi.ItemTransitOrder?.order_sku_id == orderItem.sku_id)))
|
||||
|
||||
if (!GetIsAbnormalOrderRebuy(orderItem) && GlobalConfig.lstOrder.Any(o => o.orderItems
|
||||
.Any(oi => oi.ItemTransitOrder?.order_no == orderItem.order_id && oi.ItemTransitOrder?.order_sku_id == orderItem.sku_id)))
|
||||
{
|
||||
MainWindow.Instance.orderListCtrl.FilterOneOrder(orderItem.ItemOrder);
|
||||
BaseMsgWindow.ShowError("已存在中转拍单信息,请核对后再拍单");
|
||||
return;
|
||||
}
|
||||
|
||||
btnBuyOrder.Cursor = Cursors.Wait;
|
||||
@@ -241,21 +344,19 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
if (orderItem == null)
|
||||
return;
|
||||
|
||||
|
||||
if (isAbnormalOrder && orderItem.ItemOrder.status > 21 && orderItem.ItemTransitOrder != null && orderItem.ItemTransitOrder.refund_status == "买手退款成功")
|
||||
{
|
||||
// 异常单可以异常重拍
|
||||
}
|
||||
else if (!isAbnormalOrder)
|
||||
{
|
||||
// 正常单可以正常拍单
|
||||
}
|
||||
else
|
||||
if (!isAbnormalOrder && orderItem.ItemTransitOrder != null)
|
||||
{
|
||||
// 正常单有未作废订单的,不可再拍单
|
||||
BaseMsgWindow.ShowAnimateMessage("该订单已有采购记录", "Error", 5);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (isAbnormalOrder && (orderItem.ItemOrder.status <= 21 || orderItem.ItemTransitOrder == null || orderItem.ItemTransitOrder.refund_status != "买手退款成功"))
|
||||
{
|
||||
// 异常单不是被拼多多买家秒退的且已取号的,不可异常重拍
|
||||
BaseMsgWindow.ShowAnimateMessage("该异常单不符合重拍条件", "Error", 5);
|
||||
return;
|
||||
}
|
||||
|
||||
// 如果是退款单,弹出退款窗口
|
||||
if (/*orderItem?.ItemRefund?.count > 0 &&*/ orderItem.refund_status > 1)
|
||||
{
|
||||
@@ -461,6 +562,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
PddMobileBuyOrderForm buyOrderForm = new PddMobileBuyOrderForm(MainWindow.Instance.orderListCtrl.FilterOneOrder, StartUp.UpdateBalance,
|
||||
orderItem, GlobalConfig.CurrentPddBuyer, orderItem.BuyMap);
|
||||
|
||||
buyOrderForm.TitleText = "买手拍单 - 当前买手 " + GlobalConfig.CurrentPddBuyer.buyer_nick;
|
||||
|
||||
// 未关联拍单的跳到所有订单页面
|
||||
buyOrderForm.InitUrl = "https://mobile.yangkeduo.com/orders.html"; //"?type=0&comment_tab=1&combine_orders=1&main_orders=1&refer_page_name=personal&refer_page_id=10001_1782219035613_a9ulipk4k3&refer_page_sn=10001";
|
||||
buyOrderForm.pnlBuy.Visible = false;
|
||||
@@ -491,8 +594,6 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
if (isAbnormalOrder)
|
||||
buyOrderForm.AbnormalTransitWarehouseOrderInfo = orderItem.ItemTransitOrder;
|
||||
buyOrderForm.ShowDialog();
|
||||
// 窗口关闭后更新运费信息
|
||||
MainWindow.Instance.Balance = BaseClass.Balance.ToString("0.00");
|
||||
}));
|
||||
});
|
||||
}
|
||||
@@ -507,7 +608,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
//if (order_item.BuyMap == null && order_item.ItemOrder.out_amount == 0)
|
||||
// txtProfitForecast.Visibility = Visibility.Visible;
|
||||
|
||||
order_item.UpdateOrderItemBuyButton();
|
||||
// 绑定时即刻生效,无需再次手动调用
|
||||
//order_item.UpdateOrderItemBuyButton();
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
@@ -533,14 +635,9 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
}
|
||||
|
||||
// 异常重拍
|
||||
if (order_item.ItemOrder.isAbnormal && order_item.BuyerTransitWaybillStatusStr != "已到中转仓" && btnVoidTransitOrder.Visibility == Visibility.Collapsed)
|
||||
if (GetIsAbnormalOrderRebuy(order_item))
|
||||
{
|
||||
// 取号异常/失败的异常单不能重拍
|
||||
if (((order_item.ItemTransitOrderWithVoid?.raw_message).ParseToString().Contains("取号异常") || (order_item.ItemTransitOrderWithVoid?.raw_message).ParseToString().Contains("无法调用")) &&
|
||||
order_item.ItemTransitOrderWithVoid?.transfer_warehouse_status != 1)
|
||||
btnAbnormalOrderRebuy.Visibility = Visibility.Collapsed;
|
||||
else
|
||||
btnAbnormalOrderRebuy.Visibility = Visibility.Visible;
|
||||
btnAbnormalOrderRebuy.Visibility = Visibility.Visible;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -565,6 +662,31 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 判断中转仓订单是否可以异常重拍
|
||||
/// </summary>
|
||||
/// <param name="order_item"></param>
|
||||
/// <returns></returns>
|
||||
bool GetIsAbnormalOrderRebuy(oms_wei_order_item_info order_item)
|
||||
{
|
||||
// 不是异常单的不可异常重拍
|
||||
if (order_item?.ItemOrder?.isAbnormal != true)
|
||||
return false;
|
||||
// 买手未退款的,中转正式取号以后的,不可异常重拍
|
||||
if (order_item.ItemTransitOrder?.refund_status != "买手退款成功" ||
|
||||
order_item.WarehouseWaybillStatusStr == "中转已取号" || order_item.WarehouseWaybillStatusStr == "中转已入库" || order_item.WarehouseWaybillStatusStr == "中转已出库")
|
||||
return false;
|
||||
// 已正式取号的,不可异常重拍
|
||||
if (order_item.ItemTransitOrder?.pre_allocated_order_no == 1 || order_item.ItemTransitOrder?.pre_allocated_order_no == 3)
|
||||
return false;
|
||||
// 仓库异常的异常单不可异常重拍
|
||||
List<string> rawMsgKeyWords = new List<string> { "取号异常", "无法调用" };
|
||||
if (rawMsgKeyWords.Any(k => (order_item.ItemTransitOrderWithVoid?.raw_message).ParseToString().Contains(k)) && order_item.ItemTransitOrderWithVoid?.transfer_warehouse_status != 1)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void txtOutOrderNumStr_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
var buyerName = txtOutOrderBuyerStr.Text.Split(':').LastOrDefault();
|
||||
@@ -574,6 +696,13 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
return;
|
||||
}
|
||||
var buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(p => p.buyer_name == buyerName);
|
||||
if (buyer == null)
|
||||
{
|
||||
BaseMsgWindow.ShowError("该订单买手号未在当前账户登录");
|
||||
return;
|
||||
}
|
||||
//GlobalConfig.CurrentPddBuyer = buyer;
|
||||
|
||||
var url = "";
|
||||
if (buyer != null)
|
||||
{
|
||||
@@ -590,24 +719,20 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
BaseMsgWindow.ShowError("订单信息为空");
|
||||
return;
|
||||
}
|
||||
if (GlobalConfig.CurrentPddBuyer == null)
|
||||
{
|
||||
BaseMsgWindow.ShowError("请选择买手号");
|
||||
return;
|
||||
}
|
||||
// 拍单的时候检测一下买手号
|
||||
if (GlobalConfig.CurrentPddBuyer.status == "在线")
|
||||
if (buyer.status == "在线")
|
||||
{
|
||||
PddMobileLoginForm.CheckBuyerLogin(GlobalConfig.CurrentPddBuyer);
|
||||
PddMobileLoginForm.CheckBuyerLogin(buyer);
|
||||
}
|
||||
if (GlobalConfig.CurrentPddBuyer.status != "在线")
|
||||
if (buyer.status != "在线")
|
||||
{
|
||||
BaseMsgWindow.ShowError("买手号掉线");
|
||||
return;
|
||||
}
|
||||
|
||||
PddMobileBuyOrderForm buyOrderForm = new PddMobileBuyOrderForm(MainWindow.Instance.orderListCtrl.FilterOneOrder, StartUp.UpdateBalance,
|
||||
orderItem, GlobalConfig.CurrentPddBuyer, orderItem.BuyMap);
|
||||
orderItem, buyer, orderItem.BuyMap);
|
||||
buyOrderForm.TitleText = "订单查看 - 当前买手 " + buyer.buyer_nick;
|
||||
|
||||
//所有订单页面
|
||||
buyOrderForm.InitUrl = url;
|
||||
@@ -737,7 +862,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
if (GlobalConfig.CurrentPddBuyer.status != "在线")
|
||||
{
|
||||
if (!isSilent)
|
||||
if (BaseMsgWindow.ShowConfirm("买手掉线,点击确定直接作废中转单并手动取消买手单,点击取消登录买手后重试").DialogResult != true)
|
||||
if (BaseMsgWindow.ShowConfirm("买手号掉线,点击确定直接作废中转单并手动取消买手单,点击取消登录买手后重试").DialogResult != true)
|
||||
return;
|
||||
noBuyer = true;
|
||||
}
|
||||
@@ -837,5 +962,37 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
BuyOrder(true);
|
||||
}
|
||||
}
|
||||
|
||||
private void pathBuyerAfterSaleAddress_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
if (this.DataContext is oms_wei_order_item_info order_item)
|
||||
{
|
||||
try
|
||||
{
|
||||
Clipboard.SetText(order_item.PddBuyerAfterSaleAddressStr);
|
||||
BaseMsgWindow.ShowAnimateMessage("复制成功");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
BaseMsgWindow.ShowError("复制失败 " + ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void pathCopyAddress_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
if (this.DataContext is oms_wei_order_item_info order_item)
|
||||
{
|
||||
try
|
||||
{
|
||||
Clipboard.SetText((order_item.ItemOrder?.AddressStr).ParseToString());
|
||||
BaseMsgWindow.ShowAnimateMessage("复制成功");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
BaseMsgWindow.ShowError("复制失败 " + ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -25,9 +25,15 @@
|
||||
<Image Source="{StaticResource main29WeixinIcon}" Height="50" Width="50" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="4"></Image>
|
||||
<Label x:Name="lblAppName" FontSize="20" Margin="0,0,0,0" Foreground="{StaticResource mainColorLightBrush}" HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center" VerticalContentAlignment="Center" Content="拍单软件" Grid.Column="1"></Label>
|
||||
<Label x:Name="lblVersion" FontSize="12" Margin="0,4,80,0" Foreground="{StaticResource mainColorLightBrush}" HorizontalAlignment="Right"
|
||||
VerticalAlignment="Top" VerticalContentAlignment="Center" Content="版本信息" Opacity="0.7" Grid.Column="4"></Label>
|
||||
|
||||
<WrapPanel Margin="0,4,80,0" Grid.Column="12" HorizontalAlignment="Right" VerticalAlignment="Top">
|
||||
<Label x:Name="lblDebug" FontSize="12" Margin="2,4,0,0" Foreground="{StaticResource mainColorLightBrush}" HorizontalAlignment="Right"
|
||||
VerticalAlignment="Top" VerticalContentAlignment="Center" Content="[release]" Opacity="0.7" Grid.Column="4"></Label>
|
||||
<Label x:Name="lblVersion" FontSize="12" Margin="2,4,0,0" Foreground="{StaticResource mainColorLightBrush}" HorizontalAlignment="Right"
|
||||
VerticalAlignment="Top" VerticalContentAlignment="Center" Content="版本信息" Opacity="0.7" Grid.Column="4"></Label>
|
||||
|
||||
</WrapPanel>
|
||||
|
||||
<Label x:Name="lblBalance" FontSize="12" Margin="0,25,80,0" HorizontalAlignment="Right" Foreground="#60ff66" MouseLeftButtonUp="lblBalance_MouseLeftButtonUp"
|
||||
VerticalAlignment="Top" VerticalContentAlignment="Center" Content="{Binding Balance}" Opacity="0.7" Grid.Column="4" Cursor="Hand"></Label>
|
||||
</Grid>
|
||||
@@ -55,11 +61,11 @@
|
||||
|
||||
<Border x:Name="borderMessage" Grid.Row="1" Width="auto" Height="auto" HorizontalAlignment="Center" Margin="10,50" VerticalAlignment="Top" BorderThickness="1" Opacity="0"
|
||||
BorderBrush="{StaticResource pageColorBrush}" CornerRadius="6" Background="White" IsHitTestVisible="False"
|
||||
MinWidth="120" MinHeight="2" Panel.ZIndex="1000000">
|
||||
MinWidth="120" MinHeight="2" MaxWidth="1200" Panel.ZIndex="1000000">
|
||||
<Border.Effect>
|
||||
<DropShadowEffect ShadowDepth="5" Color="#FF98638f" BlurRadius="40" Opacity="0.2"/>
|
||||
</Border.Effect>
|
||||
<TextBlock Text="这里是默认提示信息" Margin="10" VerticalAlignment="Center" HorizontalAlignment="Center" x:Name="tbMessage"></TextBlock>
|
||||
<TextBlock Text="这里是默认提示信息" Margin="10" VerticalAlignment="Center" HorizontalAlignment="Center" x:Name="tbMessage" TextWrapping="Wrap"></TextBlock>
|
||||
</Border>
|
||||
<!--<Image x:Name="imageBig" HorizontalAlignment="Left" Height="800" Width="800" VerticalAlignment="Center" Grid.Row="1" Margin="200,0,0,0"/>-->
|
||||
</Grid>
|
||||
|
||||
@@ -64,6 +64,8 @@ namespace _29WxOrderWpf
|
||||
|
||||
private void Window_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
lblDebug.Visibility = Visibility.Collapsed;
|
||||
|
||||
ucWindowBox.SetWindowMax();
|
||||
this.Title = BaseClass.ToolName;
|
||||
|
||||
|
||||
@@ -142,6 +142,16 @@ namespace _29WxOrderWpf.Windows.LoginWindows
|
||||
});
|
||||
SaveUserList();
|
||||
}
|
||||
#if DEBUG
|
||||
MainWindow.Instance.lblDebug.Visibility = Visibility.Visible;
|
||||
MainWindow.Instance.lblDebug.Content = "[Debug]";
|
||||
MainWindow.Instance.lblDebug.Foreground = new SolidColorBrush(Color.FromRgb(100, 250, 255));
|
||||
if (BaseClass.LoginApiUrl == BaseClass.DebugUrl)
|
||||
{
|
||||
MainWindow.Instance.lblDebug.Foreground = new SolidColorBrush(Color.FromRgb(0, 255, 100));
|
||||
MainWindow.Instance.lblDebug.Content = "[Dev]";
|
||||
}
|
||||
#endif
|
||||
this.IsLogin = true;
|
||||
this.Close();
|
||||
}
|
||||
|
||||
@@ -171,6 +171,8 @@
|
||||
<Compile Include="Model\DBModel\ErpMerchantInfo.cs" />
|
||||
<Compile Include="Model\DBModel\oms_wei_external_procurement_after_sale_info.cs" />
|
||||
<Compile Include="Model\DBModel\oms_wei_external_procurement_log_info.cs" />
|
||||
<Compile Include="Model\DBModel\order_item_ext.cs" />
|
||||
<Compile Include="Model\DBModel\order_pdd_buyer_after_sale.cs" />
|
||||
<Compile Include="Model\DBModel\order_pdd_buyer_order.cs" />
|
||||
<Compile Include="Model\DBModel\TransitWarehouseParam.cs" />
|
||||
<Compile Include="Model\DBModel\user_payment_record.cs" />
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace AllBase
|
||||
/// 版本ID
|
||||
/// </summary>
|
||||
|
||||
public static int VersionCount = 183;
|
||||
public static int VersionCount = 190;
|
||||
|
||||
public static string ServerUrl { get; set; } = "http://1.13.195.131:9000";
|
||||
public static string DebugUrl { get; set; } = "http://localhost:9000";
|
||||
|
||||
@@ -40,7 +40,6 @@ namespace AllBase.Model.DBModel
|
||||
{
|
||||
if (order_id == "3737846414389704448")
|
||||
{
|
||||
|
||||
}
|
||||
if (status != 20 && status != 21) return false;
|
||||
if (orderItems.All(oi => oi.ItemTransitOrder != null)) return false;
|
||||
@@ -92,7 +91,7 @@ namespace AllBase.Model.DBModel
|
||||
set { }
|
||||
}
|
||||
/// <summary>
|
||||
/// 售后订单(不含售后关闭)
|
||||
/// 售后订单(不含售后关闭) -- 改为售后完成订单 260726
|
||||
/// </summary>
|
||||
public bool IsRefund
|
||||
{
|
||||
@@ -112,15 +111,16 @@ namespace AllBase.Model.DBModel
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.order_id == "3737682397646176256")
|
||||
if (this.order_id == "3737832436815518208")
|
||||
{
|
||||
|
||||
}
|
||||
if (orderItems.Any(oi => oi.refund_status == 2 || oi.refund_status == 3 || oi.ItemTransitOrders.Count > 0 &&
|
||||
if (orderItems.Any(oi => oi.refund_status == 2 || oi.refund_status == 3 || (oi.ItemTransitOrders.Count > 0 &&
|
||||
oi.ItemTransitOrders.Any(t => !string.IsNullOrEmpty(t.refund_status) &&
|
||||
!t.refund_status.Contains("需手动申请售后") &&
|
||||
!t.refund_status.Contains("退款成功") &&
|
||||
!t.refund_status.Contains("关闭") &&
|
||||
!t.refund_status.Contains("撤销"))))
|
||||
!t.refund_status.Contains("撤销")))))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -140,6 +140,9 @@ namespace AllBase.Model.DBModel
|
||||
|
||||
}
|
||||
|
||||
if (orderItems.Any(oi => !(oi.OrderItemExt?.abnormal_text).IsNullOrEmpty()))
|
||||
return true;
|
||||
|
||||
// 订单无售后或者售后关闭,有未作废的仓库单且仓库单买手信息为退款成功
|
||||
if (orderItems.Any(oi => oi.refund_status <= 1 && oi.ItemTransitOrder != null && oi.ItemTransitOrder.refund_status == "买手退款成功"))
|
||||
return true;
|
||||
@@ -177,19 +180,29 @@ namespace AllBase.Model.DBModel
|
||||
set { }
|
||||
}
|
||||
|
||||
public DateTime? createDateTime = null;
|
||||
|
||||
public DateTime RefundDatetime
|
||||
{
|
||||
get { return this.GetValue(x => x.RefundDatetime); }
|
||||
set { this.SetValue(x => x.RefundDatetime, value); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 订单生成时间
|
||||
/// </summary>
|
||||
public string create_time_str
|
||||
public DateTime CreateDateTime
|
||||
{
|
||||
get
|
||||
{
|
||||
if (createDateTime == null)
|
||||
createDateTime = BaseClass.StampToDateTime(create_time);
|
||||
return createDateTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
}
|
||||
set { }
|
||||
get { return this.GetValue(x => x.CreateDateTime); }
|
||||
private set { this.SetValue(x => x.CreateDateTime, value); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 订单更新时间
|
||||
/// </summary>
|
||||
public DateTime UpdateDateTime
|
||||
{
|
||||
get { return this.GetValue(x => x.UpdateDateTime); }
|
||||
private set { this.SetValue(x => x.UpdateDateTime, value); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -300,10 +313,12 @@ namespace AllBase.Model.DBModel
|
||||
set { }
|
||||
}
|
||||
|
||||
public string address_str
|
||||
public string AddressStr
|
||||
{
|
||||
get { return user_name + " " + tel_number + " " + province_name + " " + city_name + " " + county_name + " " + detail_info; }
|
||||
set { }
|
||||
//get { return user_name + " " + tel_number + " " + province_name + " " + city_name + " " + county_name + " " + detail_info; }
|
||||
//set { }
|
||||
get { return this.GetValue(x => x.AddressStr); }
|
||||
set { this.SetValue(x => x.AddressStr, value); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -329,9 +344,17 @@ namespace AllBase.Model.DBModel
|
||||
/// 买家身份标识
|
||||
/// </summary>
|
||||
public string openid { get; set; }
|
||||
public int create_time { get; set; }
|
||||
public int create_time
|
||||
{
|
||||
get { return this.GetValue(x => x.create_time); }
|
||||
set { this.SetValue(x => x.create_time, value); this.CreateDateTime = BaseClass.StampToDateTime(create_time.ParseToInt()); }
|
||||
}
|
||||
|
||||
public int update_time { get; set; }
|
||||
public int update_time
|
||||
{
|
||||
get { return this.GetValue(x => x.update_time); }
|
||||
set { this.SetValue(x => x.update_time, value); this.UpdateDateTime = BaseClass.StampToDateTime(update_time.ParseToInt()); }
|
||||
}
|
||||
public string unionid { get; set; }
|
||||
/// <summary>
|
||||
/// 状态10 待付款;20 待发货;21 部分发货;30 待收货;100 完成;200 全部商品售后之后,订单取消;250 未付款用户主动取消或超时未付款订单自动取消;
|
||||
@@ -392,7 +415,11 @@ namespace AllBase.Model.DBModel
|
||||
/// <summary>
|
||||
/// 延迟发货时间(微信小店:商品发货时效,超时此时间未发货即为发货超时)
|
||||
/// </summary>
|
||||
public int? delivery_deadline { get; set; }
|
||||
public int? delivery_deadline
|
||||
{
|
||||
get { return this.GetValue(x => x.delivery_deadline); }
|
||||
set { this.SetValue(x => x.delivery_deadline, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 发货时间
|
||||
/// </summary>
|
||||
@@ -414,12 +441,28 @@ namespace AllBase.Model.DBModel
|
||||
/// <summary>
|
||||
/// 详细地址
|
||||
/// </summary>
|
||||
public string detail_info { get; set; }
|
||||
public string tel_number { get; set; }
|
||||
public string detail_info
|
||||
{
|
||||
get { return this.GetValue(x => x.detail_info); }
|
||||
set { this.SetValue(x => x.detail_info, value); }
|
||||
}
|
||||
public string tel_number
|
||||
{
|
||||
get { return this.GetValue(x => x.tel_number); }
|
||||
set { this.SetValue(x => x.tel_number, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 门牌号码
|
||||
/// </summary>
|
||||
public string house_number { get; set; }
|
||||
public string house_number
|
||||
{
|
||||
get { return this.GetValue(x => x.house_number); }
|
||||
set
|
||||
{
|
||||
this.SetValue(x => x.house_number, value);
|
||||
this.AddressStr = user_name + " " + tel_number + " " + province_name + " " + city_name + " " + county_name + " " + detail_info;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 虚拟发货订单联系方式(deliver_method=1时返回)
|
||||
/// </summary>
|
||||
|
||||
@@ -76,6 +76,27 @@ namespace AllBase.Model.DBModel
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// 订单扩展信息
|
||||
/// </summary>
|
||||
public order_item_ext OrderItemExt
|
||||
{
|
||||
get { return this.GetValue(x => x.OrderItemExt); }
|
||||
set
|
||||
{
|
||||
this.SetValue(x => x.OrderItemExt, value);
|
||||
ShopWaybillExceptionStr = value == null ? "" : value.abnormal_text.ParseToString();
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 店铺后台显示的物流异常信息(订单扩展信息)
|
||||
/// </summary>
|
||||
public string ShopWaybillExceptionStr
|
||||
{
|
||||
get { return this.GetValue(x => x.ShopWaybillExceptionStr); }
|
||||
set { this.SetValue(x => x.ShopWaybillExceptionStr, value); }
|
||||
}
|
||||
|
||||
public oms_wei_order_info ItemOrder
|
||||
{
|
||||
get { return this.GetValue(x => x.ItemOrder); }
|
||||
@@ -100,8 +121,12 @@ namespace AllBase.Model.DBModel
|
||||
else
|
||||
this.RefundResultStr = "商品退款数量:" + ItemRefund.count + ",订单状态:" + ItemOrder.orderStatusStr;
|
||||
this.ReturnWaybillIdStr = ItemRefund?.return_waybill_id;
|
||||
this.RefundTimeStr = BaseClass.StampToDateTime((ItemRefund?.create_time).ParseToInt()).ToString("yyyy-MM-dd HH:mm:ss");
|
||||
this.RefundTimeVisibility = ItemRefund?.create_time > 0 ? Visibility.Visible : Visibility.Collapsed;
|
||||
|
||||
this.RefundDatetime = ItemRefund?.create_time == null ? DateTime.MinValue : BaseClass.StampToDateTime((ItemRefund?.create_time).ParseToInt());
|
||||
if (ItemOrder != null)
|
||||
ItemOrder.RefundDatetime = this.RefundDatetime;
|
||||
this.RefundDateTimeStr = RefundDatetime.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
this.RefundTimeVisibility = RefundDatetime == DateTime.MinValue ? Visibility.Collapsed : Visibility.Visible;
|
||||
}
|
||||
/// <summary>
|
||||
/// 退款状态文本
|
||||
@@ -122,10 +147,18 @@ namespace AllBase.Model.DBModel
|
||||
/// <summary>
|
||||
/// 订单退款时间
|
||||
/// </summary>
|
||||
public string RefundTimeStr
|
||||
public DateTime RefundDatetime
|
||||
{
|
||||
get { return this.GetValue(x => x.RefundTimeStr); }
|
||||
set { this.SetValue(x => x.RefundTimeStr, value); }
|
||||
get { return this.GetValue(x => x.RefundDatetime); }
|
||||
set { this.SetValue(x => x.RefundDatetime, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 订单退款时间文本
|
||||
/// </summary>
|
||||
public string RefundDateTimeStr
|
||||
{
|
||||
get { return this.GetValue(x => x.RefundDateTimeStr); }
|
||||
set { this.SetValue(x => x.RefundDateTimeStr, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 订单退款时间可见
|
||||
@@ -170,12 +203,27 @@ namespace AllBase.Model.DBModel
|
||||
get { return this.GetValue(x => x.PddBuyerOrder); }
|
||||
set { this.SetValue(x => x.PddBuyerOrder, value); }
|
||||
}
|
||||
public List<order_pdd_buyer_after_sale> PddBuyerAfterSales { get; set; } = new List<order_pdd_buyer_after_sale>();
|
||||
public order_pdd_buyer_after_sale PddBuyerAfterSale
|
||||
{
|
||||
get { return this.GetValue(x => x.PddBuyerAfterSale); }
|
||||
set { this.SetValue(x => x.PddBuyerAfterSale, value); }
|
||||
}
|
||||
public string PddBuyerAfterSaleAddressStr
|
||||
{
|
||||
get { return this.GetValue(x => x.PddBuyerAfterSaleAddressStr); }
|
||||
set { this.SetValue(x => x.PddBuyerAfterSaleAddressStr, value); }
|
||||
}
|
||||
public void SetTransitOrder()
|
||||
{
|
||||
this.ItemTransitOrder = ItemTransitOrders?.FirstOrDefault(t => t.order_void_status != 1);
|
||||
this.ItemTransitOrderWithVoid = ItemTransitOrders?.FirstOrDefault();
|
||||
this.PddBuyerOrder = PddBuyerOrders?.FirstOrDefault();
|
||||
this.ItemTransitOrderAfterSale = ItemTransitOrderAfterSales?.FirstOrDefault();
|
||||
this.PddBuyerOrder = PddBuyerOrders?.FirstOrDefault();
|
||||
// 优先找非撤销买手退款单
|
||||
this.PddBuyerAfterSale = PddBuyerAfterSales?.FirstOrDefault(p => p.statusText == "退款成功") ?? PddBuyerAfterSales?.FirstOrDefault(p => p.statusText != "申请已撤销");
|
||||
if (PddBuyerAfterSale == null)
|
||||
PddBuyerAfterSale = PddBuyerAfterSales?.FirstOrDefault();
|
||||
|
||||
// 直接取号和更正取号显示的买手到仓库物流
|
||||
if (ItemTransitOrder?.pre_allocated_order_no != 1 && ItemTransitOrder?.pre_allocated_order_no != 3)
|
||||
@@ -195,11 +243,20 @@ namespace AllBase.Model.DBModel
|
||||
else
|
||||
TransitOrderWaybillFromWareHouseStr = "仓库物流:" + ItemTransitOrder.express_2_company + "-" + ItemTransitOrder.express_2_waybill;
|
||||
|
||||
if (order_id == "3737937905497545216")
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// 仓库物流售后按钮上的文字,仓库作废单不存在仓库物流,所以此处必须是有效的仓库单(含作废失败)
|
||||
if (this.ItemTransitOrder == null || !this.ItemOrder.IsRefundWithCancel)
|
||||
AddEditTransitWarehouseAfterSaleStr = "";
|
||||
else
|
||||
AddEditTransitWarehouseAfterSaleStr = this.ItemTransitOrderAfterSale == null ? "添加" : "查看";
|
||||
if (this.ItemTransitOrderAfterSale != null)
|
||||
TransitWarehouseAfterSaleWayBillStr = (this.ItemTransitOrderAfterSale?.downstream_express_code + "-" + this.ItemTransitOrderAfterSale?.downstream_waybill).Trim('-');
|
||||
|
||||
this.PddBuyerAfterSaleAddressStr = this.PddBuyerAfterSale?.afterSaleAddress;
|
||||
}
|
||||
/// <summary>
|
||||
/// 仓库退货编辑按钮文本参数
|
||||
@@ -233,6 +290,11 @@ namespace AllBase.Model.DBModel
|
||||
get { return this.GetValue(x => x.TransitOrderWaybillFromWareHouseStr); }
|
||||
set { this.SetValue(x => x.TransitOrderWaybillFromWareHouseStr, value); }
|
||||
}
|
||||
public string TransitWarehouseAfterSaleWayBillStr
|
||||
{
|
||||
get { return this.GetValue(x => x.TransitWarehouseAfterSaleWayBillStr); }
|
||||
set { this.SetValue(x => x.TransitWarehouseAfterSaleWayBillStr, value); }
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 买手物流参数
|
||||
@@ -263,7 +325,7 @@ namespace AllBase.Model.DBModel
|
||||
// 拼多多买手状态为已签收的,为已到中转仓
|
||||
else if ((PddBuyerOrder?.order_status_prompt).ParseToString().Contains("已签收"))
|
||||
{
|
||||
BuyerTransitWaybillStatusStr = "已到中转仓";
|
||||
BuyerTransitWaybillStatusStr = "买手已送达";
|
||||
}
|
||||
// 售后待用户退回商品的,至少为买手已发货
|
||||
else if ((PddBuyerOrder?.order_status_prompt).ParseToString().Contains("待用户退回商品"))
|
||||
@@ -309,15 +371,15 @@ namespace AllBase.Model.DBModel
|
||||
public void SetBuyerTransitWaybillStatusStrColor()
|
||||
{
|
||||
if (BuyerTransitWaybillStatusStr.StartsWith("买手已退款"))
|
||||
BuyerTransitWaybillStatusStrColor = new SolidColorBrush(Color.FromRgb(152, 96, 143));
|
||||
else if(BuyerTransitWaybillStatusStr.StartsWith("已到中转仓"))
|
||||
BuyerTransitWaybillStatusStrColor = new SolidColorBrush(Color.FromRgb(19, 206, 102));
|
||||
else if(BuyerTransitWaybillStatusStr.StartsWith("买手已发货"))
|
||||
BuyerTransitWaybillStatusStrColor = new SolidColorBrush(Color.FromRgb(255, 186, 0));
|
||||
else if(BuyerTransitWaybillStatusStr.StartsWith("买手未发货"))
|
||||
BuyerTransitWaybillStatusStrColor = new SolidColorBrush(Color.FromRgb(255, 73, 73));
|
||||
BuyerTransitWaybillStatusStrColor = PurpleBrush;
|
||||
else if (BuyerTransitWaybillStatusStr.StartsWith("买手已送达"))
|
||||
BuyerTransitWaybillStatusStrColor = GreenBrush;
|
||||
else if (BuyerTransitWaybillStatusStr.StartsWith("买手已发货"))
|
||||
BuyerTransitWaybillStatusStrColor = YellowBrush;
|
||||
else if (BuyerTransitWaybillStatusStr.StartsWith("买手未发货"))
|
||||
BuyerTransitWaybillStatusStrColor = RedBrush;
|
||||
else
|
||||
BuyerTransitWaybillStatusStrColor = new SolidColorBrush(Color.FromRgb(255, 73, 73));
|
||||
BuyerTransitWaybillStatusStrColor = RedBrush;
|
||||
}
|
||||
public SolidColorBrush BuyerTransitWaybillStatusBorderColor
|
||||
{
|
||||
@@ -327,15 +389,15 @@ namespace AllBase.Model.DBModel
|
||||
public void SetBuyerTransitWaybillStatusBorderColor()
|
||||
{
|
||||
if (BuyerTransitWaybillStatusStr.StartsWith("买手已退款"))
|
||||
BuyerTransitWaybillStatusBorderColor = new SolidColorBrush(Color.FromArgb(75, 152, 96, 143));
|
||||
else if(BuyerTransitWaybillStatusStr.StartsWith("已到中转仓"))
|
||||
BuyerTransitWaybillStatusBorderColor = new SolidColorBrush(Color.FromRgb(208, 245, 224));
|
||||
else if(BuyerTransitWaybillStatusStr.StartsWith("买手已发货"))
|
||||
BuyerTransitWaybillStatusBorderColor = new SolidColorBrush(Color.FromRgb(255, 241, 204));
|
||||
else if(BuyerTransitWaybillStatusStr.StartsWith("买手未发货"))
|
||||
BuyerTransitWaybillStatusBorderColor = new SolidColorBrush(Color.FromRgb(255, 219, 219));
|
||||
BuyerTransitWaybillStatusBorderColor = PurpleBrush75;
|
||||
else if (BuyerTransitWaybillStatusStr.StartsWith("买手已送达"))
|
||||
BuyerTransitWaybillStatusBorderColor = GreenBrush75;
|
||||
else if (BuyerTransitWaybillStatusStr.StartsWith("买手已发货"))
|
||||
BuyerTransitWaybillStatusBorderColor = YellowBrush75;
|
||||
else if (BuyerTransitWaybillStatusStr.StartsWith("买手未发货"))
|
||||
BuyerTransitWaybillStatusBorderColor = RedBrush75;
|
||||
else
|
||||
BuyerTransitWaybillStatusBorderColor = new SolidColorBrush(Color.FromRgb(255, 219, 219));
|
||||
BuyerTransitWaybillStatusBorderColor = RedBrush75;
|
||||
}
|
||||
public SolidColorBrush BuyerTransitWaybillStatusBackColor
|
||||
{
|
||||
@@ -345,94 +407,95 @@ namespace AllBase.Model.DBModel
|
||||
public void SetBuyerTransitWaybillStatusBackColor()
|
||||
{
|
||||
if (BuyerTransitWaybillStatusStr.StartsWith("买手已退款"))
|
||||
BuyerTransitWaybillStatusBackColor = new SolidColorBrush(Color.FromArgb(35, 152, 96, 143));
|
||||
else if (BuyerTransitWaybillStatusStr.StartsWith("已到中转仓"))
|
||||
BuyerTransitWaybillStatusBackColor = new SolidColorBrush(Color.FromRgb(231, 250, 240));
|
||||
BuyerTransitWaybillStatusBackColor = PurpleBrush35;
|
||||
else if (BuyerTransitWaybillStatusStr.StartsWith("买手已送达"))
|
||||
BuyerTransitWaybillStatusBackColor = GreenBrush35;
|
||||
else if (BuyerTransitWaybillStatusStr.StartsWith("买手已发货"))
|
||||
BuyerTransitWaybillStatusBackColor = new SolidColorBrush(Color.FromRgb(255, 248, 230));
|
||||
BuyerTransitWaybillStatusBackColor = YellowBrush35;
|
||||
else if (BuyerTransitWaybillStatusStr.StartsWith("买手未发货"))
|
||||
BuyerTransitWaybillStatusBackColor = new SolidColorBrush(Color.FromRgb(255, 237, 237));
|
||||
BuyerTransitWaybillStatusBackColor = RedBrush35;
|
||||
else
|
||||
BuyerTransitWaybillStatusBackColor = new SolidColorBrush(Color.FromRgb(255, 237, 237));
|
||||
BuyerTransitWaybillStatusBackColor = RedBrush35;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 仓库物流参数
|
||||
public string WarehouseWaybillStatusStr
|
||||
{
|
||||
get
|
||||
get { return this.GetValue(x => x.WarehouseWaybillStatusStr); }
|
||||
set { this.SetValue(x => x.WarehouseWaybillStatusStr, value); }
|
||||
}
|
||||
public void SetWarehouseWaybillStatusStr()
|
||||
{
|
||||
WarehouseWaybillStatusStr = "";
|
||||
if (ItemTransitOrderWithVoid == null)
|
||||
WarehouseWaybillStatusStr = "";
|
||||
// 订单不满足鸿浩仓库发货条件,无法调用鸿浩仓库接口发货
|
||||
else if ((ItemTransitOrderWithVoid.raw_message.ParseToString().Contains("取号异常") ||
|
||||
ItemTransitOrderWithVoid.raw_message.ParseToString().Contains("无法调用")) &&
|
||||
ItemTransitOrderWithVoid.transfer_warehouse_status != 1)
|
||||
{
|
||||
if (ItemTransitOrderWithVoid == null)
|
||||
return "";
|
||||
|
||||
// 订单不满足鸿浩仓库发货条件,无法调用鸿浩仓库接口发货
|
||||
if ((ItemTransitOrderWithVoid.raw_message.ParseToString().Contains("取号异常") ||
|
||||
ItemTransitOrderWithVoid.raw_message.ParseToString().Contains("无法调用")) &&
|
||||
ItemTransitOrderWithVoid.transfer_warehouse_status != 1)
|
||||
{
|
||||
if (ItemTransitOrderWithVoid.raw_message.Contains("超出派送范围"))
|
||||
return "取号异常-超出派送范围";
|
||||
else
|
||||
return "取号异常";
|
||||
}
|
||||
|
||||
if (ItemTransitOrderWithVoid?.warehouse_status == 2)
|
||||
return "中转已出库";
|
||||
// 老订单还用之前的逻辑判断
|
||||
if (ItemTransitOrderWithVoid?.created_time < new DateTime(2026, 7, 14) && (ItemTransitOrderWithVoid?.pre_allocated_order_no == 1 || ItemTransitOrderWithVoid?.pre_allocated_order_no == 3) && !ItemTransitOrderWithVoid.express_2_company.IsNullOrEmpty() && !ItemTransitOrderWithVoid.express_2_waybill.IsNullOrEmpty())
|
||||
//return "中转已出库*";
|
||||
return "中转已出库";
|
||||
if (ItemTransitOrderWithVoid?.warehouse_status == 1)
|
||||
return "中转已入库";
|
||||
//if ((ItemTransitOrderWithVoid?.pre_allocated_order_no == 1 || ItemTransitOrderWithVoid?.pre_allocated_order_no == 3) && !ItemTransitOrderWithVoid.express_2_company.IsNullOrEmpty() && !ItemTransitOrderWithVoid.express_2_waybill.IsNullOrEmpty())
|
||||
// return "中转已发货";
|
||||
//if (ItemTransitOrderWithVoid?.pre_allocated_order_no == 1 || ItemTransitOrderWithVoid?.pre_allocated_order_no == 3)
|
||||
// return "中转待发货";
|
||||
if (ItemTransitOrderWithVoid?.pre_allocated_order_no == 1 || ItemTransitOrderWithVoid?.pre_allocated_order_no == 3)
|
||||
return "中转已取号";
|
||||
if (ItemTransitOrderWithVoid?.pre_allocated_order_no == 2)
|
||||
return "中转提前取号";
|
||||
|
||||
//if (ItemTransitOrderWithVoid?.order_void_status == 2)
|
||||
// return "中转作废失败";
|
||||
//if (ItemTransitOrderWithVoid?.order_void_status == 1)
|
||||
// return "中转已作废";
|
||||
|
||||
if (ItemTransitOrderWithVoid?.pre_allocated_order_no == 0)
|
||||
return "中转待取号";
|
||||
return "";
|
||||
if (ItemTransitOrderWithVoid.raw_message.Contains("超出派送范围"))
|
||||
WarehouseWaybillStatusStr = "取号异常-超出派送范围";
|
||||
else
|
||||
WarehouseWaybillStatusStr = "取号异常";
|
||||
}
|
||||
set { }
|
||||
else if (ItemTransitOrderWithVoid?.warehouse_status == 2)
|
||||
WarehouseWaybillStatusStr = "中转已出库";
|
||||
// 老订单还用之前的逻辑判断
|
||||
else if (ItemTransitOrderWithVoid?.created_time < new DateTime(2026, 7, 14) && (ItemTransitOrderWithVoid?.pre_allocated_order_no == 1 || ItemTransitOrderWithVoid?.pre_allocated_order_no == 3) && !ItemTransitOrderWithVoid.express_2_company.IsNullOrEmpty() && !ItemTransitOrderWithVoid.express_2_waybill.IsNullOrEmpty())
|
||||
//WarehouseWaybillStatusStr = "中转已出库*";
|
||||
WarehouseWaybillStatusStr = "中转已出库";
|
||||
else if (ItemTransitOrderWithVoid?.warehouse_status == 1)
|
||||
WarehouseWaybillStatusStr = "中转已入库";
|
||||
//else if ((ItemTransitOrderWithVoid?.pre_allocated_order_no == 1 || ItemTransitOrderWithVoid?.pre_allocated_order_no == 3) && !ItemTransitOrderWithVoid.express_2_company.IsNullOrEmpty() && !ItemTransitOrderWithVoid.express_2_waybill.IsNullOrEmpty())
|
||||
// WarehouseWaybillStatusStr = "中转已发货";
|
||||
//else if (ItemTransitOrderWithVoid?.pre_allocated_order_no == 1 || ItemTransitOrderWithVoid?.pre_allocated_order_no == 3)
|
||||
// WarehouseWaybillStatusStr = "中转待发货";
|
||||
else if (ItemTransitOrderWithVoid?.pre_allocated_order_no == 1 || ItemTransitOrderWithVoid?.pre_allocated_order_no == 3)
|
||||
WarehouseWaybillStatusStr = "中转已取号";
|
||||
else if (ItemTransitOrderWithVoid?.pre_allocated_order_no == 2)
|
||||
WarehouseWaybillStatusStr = "中转提前取号";
|
||||
//else if (ItemTransitOrderWithVoid?.order_void_status == 2)
|
||||
// WarehouseWaybillStatusStr = "中转作废失败";
|
||||
//else if (ItemTransitOrderWithVoid?.order_void_status == 1)
|
||||
// WarehouseWaybillStatusStr = "中转已作废";
|
||||
else if (ItemTransitOrderWithVoid?.pre_allocated_order_no == 0)
|
||||
WarehouseWaybillStatusStr = "中转待取号";
|
||||
}
|
||||
public SolidColorBrush WarehouseWaybillStatusStrColor
|
||||
{
|
||||
get
|
||||
{
|
||||
//if (WarehouseWaybillStatusStr.StartsWith("中转已作废"))
|
||||
// return new SolidColorBrush(Color.FromRgb(152, 96, 143));
|
||||
// return PurpleBrush;
|
||||
if (WarehouseWaybillStatusStr.StartsWith("中转已出库"))
|
||||
return new SolidColorBrush(Color.FromRgb(19, 206, 102));
|
||||
return GreenBrush;
|
||||
if (WarehouseWaybillStatusStr.StartsWith("中转已入库") || WarehouseWaybillStatusStr.StartsWith("中转已取号") || WarehouseWaybillStatusStr.StartsWith("中转提前取号"))
|
||||
return new SolidColorBrush(Color.FromRgb(255, 186, 0));
|
||||
return YellowBrush;
|
||||
if (WarehouseWaybillStatusStr.StartsWith("中转待取号"))
|
||||
return new SolidColorBrush(Color.FromRgb(255, 73, 73));
|
||||
return new SolidColorBrush(Color.FromRgb(255, 73, 73));
|
||||
return RedBrush;
|
||||
return RedBrush;
|
||||
}
|
||||
set { }
|
||||
}
|
||||
public void SetWarehouseWaybillStatusStrColor()
|
||||
{
|
||||
|
||||
}
|
||||
public SolidColorBrush WarehouseWaybillStatusBorderColor
|
||||
{
|
||||
get
|
||||
{
|
||||
//if (WarehouseWaybillStatusStr.StartsWith("中转已作废"))
|
||||
// return new SolidColorBrush(Color.FromArgb(75, 152, 96, 143));
|
||||
// return PurpleBrush75;
|
||||
if (WarehouseWaybillStatusStr.StartsWith("中转已出库"))
|
||||
return new SolidColorBrush(Color.FromRgb(208, 245, 224));
|
||||
return GreenBrush75;
|
||||
if (WarehouseWaybillStatusStr.StartsWith("中转已入库") || WarehouseWaybillStatusStr.StartsWith("中转已取号") || WarehouseWaybillStatusStr.StartsWith("中转提前取号"))
|
||||
return new SolidColorBrush(Color.FromRgb(255, 241, 204));
|
||||
return YellowBrush75;
|
||||
if (WarehouseWaybillStatusStr.StartsWith("中转待取号"))
|
||||
return new SolidColorBrush(Color.FromRgb(255, 219, 219));
|
||||
return new SolidColorBrush(Color.FromRgb(255, 219, 219));
|
||||
return RedBrush75;
|
||||
return RedBrush75;
|
||||
}
|
||||
set { }
|
||||
}
|
||||
@@ -441,20 +504,19 @@ namespace AllBase.Model.DBModel
|
||||
get
|
||||
{
|
||||
//if (WarehouseWaybillStatusStr.StartsWith("中转已作废"))
|
||||
// return new SolidColorBrush(Color.FromArgb(35, 152, 96, 143));
|
||||
// return PurpleBrush35
|
||||
if (WarehouseWaybillStatusStr.StartsWith("中转已出库"))
|
||||
return new SolidColorBrush(Color.FromRgb(231, 250, 240));
|
||||
return GreenBrush35;
|
||||
if (WarehouseWaybillStatusStr.StartsWith("中转已入库") || WarehouseWaybillStatusStr.StartsWith("中转已取号") || WarehouseWaybillStatusStr.StartsWith("中转提前取号"))
|
||||
return new SolidColorBrush(Color.FromRgb(255, 248, 230));
|
||||
return YellowBrush35;
|
||||
if (WarehouseWaybillStatusStr.StartsWith("中转待取号"))
|
||||
return new SolidColorBrush(Color.FromRgb(255, 237, 237));
|
||||
return new SolidColorBrush(Color.FromRgb(255, 237, 237));
|
||||
return RedBrush35;
|
||||
return RedBrush35;
|
||||
}
|
||||
set { }
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 中转仓表买手售后字段文字显示
|
||||
/// </summary>
|
||||
@@ -462,7 +524,7 @@ namespace AllBase.Model.DBModel
|
||||
{
|
||||
get
|
||||
{
|
||||
if (order_id == "3737688046871408640")
|
||||
if (order_id == "3737761985909113600")
|
||||
{
|
||||
|
||||
}
|
||||
@@ -470,10 +532,26 @@ namespace AllBase.Model.DBModel
|
||||
if (!string.IsNullOrEmpty(ItemTransitOrderWithVoid?.refund_status))
|
||||
{
|
||||
// 店铺售后又取消的,如果是买手还没申请售后,不显示需手动申请售后文字
|
||||
//if (ItemTransitOrderWithVoid.refund_status.Contains("需手动申请售后") && this.refund_status <= 1)
|
||||
// return "";
|
||||
if (ItemTransitOrderWithVoid.refund_status.Contains("需手动申请售后") && this.refund_status <= 1)
|
||||
return "";
|
||||
|
||||
// 显示售后金额(如果有)
|
||||
if (ItemTransitOrderWithVoid.refund_status.EndsWith("买手退款成功"))
|
||||
{
|
||||
if (PddBuyerAfterSale?.refundAmount != null)
|
||||
return ItemTransitOrderWithVoid.refund_status + "(¥" + PddBuyerAfterSale.refundAmount * 0.01m + ")";
|
||||
else
|
||||
return ItemTransitOrderWithVoid.refund_status + "(退款金额待获取)";
|
||||
}
|
||||
|
||||
if (!ItemTransitOrderWithVoid.refund_status.Contains("需手动申请售后"))
|
||||
return "已申请售后 " + ItemTransitOrderWithVoid.refund_status.Replace("申请收到,", "");
|
||||
|
||||
if (order_id == "3737761985909113600")
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
return ItemTransitOrderWithVoid.refund_status;
|
||||
}
|
||||
return "";
|
||||
@@ -488,13 +566,15 @@ namespace AllBase.Model.DBModel
|
||||
get
|
||||
{
|
||||
if (TransitRefundStatusStr.Contains("退款成功"))
|
||||
return new SolidColorBrush(Color.FromRgb(19, 206, 102));
|
||||
return GreenBrush;
|
||||
if (TransitRefundStatusStr.Contains("需手动申请售后"))
|
||||
return new SolidColorBrush(Color.FromRgb(255, 73, 73));
|
||||
//return new SolidColorBrush(Color.FromRgb(255, 186, 0));
|
||||
return new SolidColorBrush(Color.FromRgb(255, 155, 0));
|
||||
return RedBrush;
|
||||
return LightOrangeBrush;
|
||||
//return YellowBrush;
|
||||
}
|
||||
set
|
||||
{
|
||||
}
|
||||
set { }
|
||||
}
|
||||
/// <summary>
|
||||
/// 中转仓作废参数
|
||||
@@ -519,11 +599,8 @@ namespace AllBase.Model.DBModel
|
||||
if (ItemTransitOrderWithVoid == null)
|
||||
return "";
|
||||
|
||||
if (ItemOrder.createDateTime == null)
|
||||
ItemOrder.createDateTime = BaseClass.StampToDateTime(ItemOrder.create_time);
|
||||
|
||||
string timeStr = "采购时间:" + ItemTransitOrderWithVoid.created_time.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
if (ItemOrder.createDateTime.Value.Date != ItemTransitOrderWithVoid.created_time.Date && ItemTransitOrderWithVoid.created_time > ItemTransitOrderWithVoid.created_time.Date.AddHours(1.5))
|
||||
if (CreateDateTime.Date != ItemTransitOrderWithVoid.created_time.Date && ItemTransitOrderWithVoid.created_time > ItemTransitOrderWithVoid.created_time.Date.AddHours(1.5))
|
||||
return timeStr + " ×";
|
||||
return timeStr + " √";
|
||||
}
|
||||
@@ -536,7 +613,7 @@ namespace AllBase.Model.DBModel
|
||||
{
|
||||
get
|
||||
{
|
||||
return OutOrderTimeQualifiedStr.EndsWith("√") ? new SolidColorBrush(Color.FromRgb(103, 194, 58)) : new SolidColorBrush(Color.FromRgb(250, 71, 51));
|
||||
return OutOrderTimeQualifiedStr.EndsWith("√") ? GreenTextBrush : RedTextBrush;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -573,12 +650,12 @@ namespace AllBase.Model.DBModel
|
||||
get
|
||||
{
|
||||
if ("未知状态,未付款已取消,售后完成订单取消".Contains(OrderItemStatusStr))
|
||||
return new SolidColorBrush(Color.FromRgb(255, 73, 73));
|
||||
return RedBrush;
|
||||
if ("订单完成".Contains(OrderItemStatusStr))
|
||||
return new SolidColorBrush(Color.FromRgb(19, 206, 102));
|
||||
return GreenBrush;
|
||||
if ("待买家收货,店铺部分发货,待店铺发货,待付款".Contains(OrderItemStatusStr))
|
||||
return new SolidColorBrush(Color.FromRgb(255, 186, 0));
|
||||
return new SolidColorBrush(Color.FromRgb(255, 186, 0));
|
||||
return YellowBrush;
|
||||
return YellowBrush;
|
||||
}
|
||||
set { }
|
||||
}
|
||||
@@ -587,12 +664,12 @@ namespace AllBase.Model.DBModel
|
||||
get
|
||||
{
|
||||
if ("未知状态,未付款已取消,售后完成订单取消".Contains(OrderItemStatusStr))
|
||||
return new SolidColorBrush(Color.FromRgb(255, 219, 219));
|
||||
return RedBrush75;
|
||||
if ("订单完成".Contains(OrderItemStatusStr))
|
||||
return new SolidColorBrush(Color.FromRgb(208, 245, 224));
|
||||
return GreenBrush75;
|
||||
if ("待买家收货,店铺部分发货,待店铺发货,待付款".Contains(OrderItemStatusStr))
|
||||
return new SolidColorBrush(Color.FromRgb(255, 241, 204));
|
||||
return new SolidColorBrush(Color.FromRgb(255, 241, 204));
|
||||
return YellowBrush75;
|
||||
return YellowBrush75;
|
||||
}
|
||||
set { }
|
||||
}
|
||||
@@ -601,12 +678,12 @@ namespace AllBase.Model.DBModel
|
||||
get
|
||||
{
|
||||
if ("未知状态,未付款已取消,售后完成订单取消".Contains(OrderItemStatusStr))
|
||||
return new SolidColorBrush(Color.FromRgb(255, 237, 237));
|
||||
return RedBrush35;
|
||||
if ("订单完成".Contains(OrderItemStatusStr))
|
||||
return new SolidColorBrush(Color.FromRgb(231, 250, 240));
|
||||
return GreenBrush35;
|
||||
if ("待买家收货,店铺部分发货,待店铺发货,待付款".Contains(OrderItemStatusStr))
|
||||
return new SolidColorBrush(Color.FromRgb(255, 248, 230));
|
||||
return new SolidColorBrush(Color.FromRgb(255, 248, 230));
|
||||
return YellowBrush35;
|
||||
return YellowBrush35;
|
||||
}
|
||||
set { }
|
||||
}
|
||||
@@ -704,6 +781,7 @@ namespace AllBase.Model.DBModel
|
||||
set { }
|
||||
}
|
||||
|
||||
|
||||
decimal profitCount = decimal.MinValue;
|
||||
/// <summary>
|
||||
/// 通过计算的利润
|
||||
@@ -726,6 +804,7 @@ namespace AllBase.Model.DBModel
|
||||
profitCount = decimal.MinValue;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 通过计算的利润文本
|
||||
/// </summary>
|
||||
@@ -746,12 +825,37 @@ namespace AllBase.Model.DBModel
|
||||
get
|
||||
{
|
||||
if (refund_status == 2 || refund_status == 3 || refund_status == 4 || refund_status == 11)
|
||||
return new SolidColorBrush(Color.FromRgb(127, 127, 127));
|
||||
return ProfitCount > 0 ? new SolidColorBrush(Color.FromRgb(103, 194, 58)) : new SolidColorBrush(Color.FromRgb(250, 71, 51));
|
||||
return GrayBrush;
|
||||
//return ProfitCount > 0 ? new SolidColorBrush(Color.FromRgb(103, 194, 58)) : new SolidColorBrush(Color.FromRgb(250, 71, 51));
|
||||
return ProfitCount > 0 ? GreenTextBrush : RedTextBrush;
|
||||
}
|
||||
set { }
|
||||
}
|
||||
|
||||
|
||||
|
||||
public DateTime CreateDateTime
|
||||
{
|
||||
get { return this.GetValue(x => x.CreateDateTime); }
|
||||
set { this.SetValue(x => x.CreateDateTime, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 订单创建时间文本
|
||||
/// </summary>
|
||||
public string CreateDateTimeStr
|
||||
{
|
||||
get { return this.GetValue(x => x.CreateDateTimeStr); }
|
||||
set { this.SetValue(x => x.CreateDateTimeStr, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 订单更新时间文本
|
||||
/// </summary>
|
||||
public string UpdateTimeStr
|
||||
{
|
||||
get { return this.GetValue(x => x.UpdateTimeStr); }
|
||||
set { this.SetValue(x => x.UpdateTimeStr, value); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// sku规格名称文本
|
||||
/// </summary>
|
||||
@@ -913,11 +1017,81 @@ namespace AllBase.Model.DBModel
|
||||
/// </summary>
|
||||
public int? refund_status { get; set; }
|
||||
|
||||
|
||||
|
||||
public static SolidColorBrush PurpleBrush;
|
||||
public static SolidColorBrush PurpleBrush75;
|
||||
public static SolidColorBrush PurpleBrush50;
|
||||
public static SolidColorBrush PurpleBrush35;
|
||||
|
||||
public static SolidColorBrush GreenBrush;
|
||||
public static SolidColorBrush GreenBrush75;
|
||||
public static SolidColorBrush GreenBrush35;
|
||||
|
||||
public static SolidColorBrush YellowBrush;
|
||||
public static SolidColorBrush YellowBrush75;
|
||||
public static SolidColorBrush YellowBrush35;
|
||||
|
||||
public static SolidColorBrush LightOrangeBrush;
|
||||
public static SolidColorBrush OrangeBrush;
|
||||
public static SolidColorBrush OrangeBrush50;
|
||||
|
||||
public static SolidColorBrush RedBrush;
|
||||
public static SolidColorBrush RedBrush75;
|
||||
public static SolidColorBrush RedBrush35;
|
||||
|
||||
public static SolidColorBrush GrayBrush;
|
||||
|
||||
public static SolidColorBrush GreenTextBrush;
|
||||
public static SolidColorBrush RedTextBrush;
|
||||
public static SolidColorBrush RedTextBrush50;
|
||||
|
||||
public void SetOrderItemTextProperty()
|
||||
{
|
||||
CreateDateTime = BaseClass.StampToDateTime((ItemOrder?.create_time).ParseToInt());
|
||||
CreateDateTimeStr = CreateDateTime.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
UpdateTimeStr = BaseClass.StampToDateTime((ItemOrder?.update_time).ParseToInt()).ToString("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
if (PurpleBrush == null && this.Dispatcher != null)
|
||||
{
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
PurpleBrush = new SolidColorBrush(Color.FromArgb(255, 152, 99, 143));
|
||||
PurpleBrush75 = new SolidColorBrush(Color.FromArgb(75, 152, 99, 143));
|
||||
PurpleBrush50 = new SolidColorBrush(Color.FromArgb(50, 152, 99, 143));
|
||||
PurpleBrush35 = new SolidColorBrush(Color.FromArgb(35, 152, 99, 143));
|
||||
|
||||
GreenBrush = new SolidColorBrush(Color.FromArgb(255, 19, 206, 102));
|
||||
GreenBrush75 = new SolidColorBrush(Color.FromArgb(75, 19, 206, 102));
|
||||
GreenBrush35 = new SolidColorBrush(Color.FromArgb(35, 19, 206, 102));
|
||||
|
||||
YellowBrush = new SolidColorBrush(Color.FromArgb(255, 255, 186, 0));
|
||||
YellowBrush75 = new SolidColorBrush(Color.FromArgb(75, 255, 186, 0));
|
||||
YellowBrush35 = new SolidColorBrush(Color.FromArgb(35, 255, 186, 0));
|
||||
|
||||
LightOrangeBrush = new SolidColorBrush(Color.FromArgb(255, 255, 155, 0));
|
||||
OrangeBrush = new SolidColorBrush(Color.FromArgb(255, 250, 127, 51));
|
||||
OrangeBrush50 = new SolidColorBrush(Color.FromArgb(50, 250, 127, 51));
|
||||
|
||||
RedBrush = new SolidColorBrush(Color.FromArgb(255, 255, 73, 73));
|
||||
RedBrush75 = new SolidColorBrush(Color.FromArgb(75, 255, 73, 73));
|
||||
RedBrush35 = new SolidColorBrush(Color.FromArgb(35, 255, 73, 73));
|
||||
|
||||
GrayBrush = new SolidColorBrush(Color.FromArgb(255, 127, 127, 127));
|
||||
|
||||
GreenTextBrush = new SolidColorBrush(Color.FromArgb(255, 103, 194, 58));
|
||||
RedTextBrush = new SolidColorBrush(Color.FromArgb(255, 250, 71, 51));
|
||||
RedTextBrush50 = new SolidColorBrush(Color.FromArgb(50, 250, 71, 51));
|
||||
}));
|
||||
}
|
||||
|
||||
this.SetTransitOrder();
|
||||
this.SetItemRefund();
|
||||
this.SetBuyerTransitWaybillStatusStr();
|
||||
this.SetWarehouseWaybillStatusStr();
|
||||
|
||||
// 拍单、代发等信息判断并控制拍单按钮
|
||||
this.UpdateOrderItemBuyButton();
|
||||
}
|
||||
|
||||
public void UpdateOrderItemBuyButton()
|
||||
@@ -927,39 +1101,39 @@ namespace AllBase.Model.DBModel
|
||||
if (GlobalConfig.lstDangerItemWord.Any(d => order_item.title.Contains(d)))
|
||||
{
|
||||
order_item.IsBuyGoodsBtnEnabled = false;
|
||||
order_item.BuyGoodsBtnBackColor = new SolidColorBrush(Color.FromArgb(50, 250, 70, 51));
|
||||
order_item.BuyGoodsBtnColor = new SolidColorBrush(Color.FromArgb(255, 250, 70, 51));
|
||||
order_item.BuyGoodsBtnBackColor = RedTextBrush50;
|
||||
order_item.BuyGoodsBtnColor = RedTextBrush;
|
||||
order_item.BuyGoodsBtnTxt = "危险品不支持中转拍单";
|
||||
}
|
||||
else if (Shop == null || (Shop?.LoginStatus != "登录成功" /*&& Shop?.Is29Supplier == null*/))
|
||||
{
|
||||
order_item.IsBuyGoodsBtnEnabled = false;
|
||||
//order_item.IsBuyGoodsBtnEnabled = true;
|
||||
order_item.BuyGoodsBtnBackColor = new SolidColorBrush(Color.FromArgb(50, 250, 70, 51));
|
||||
order_item.BuyGoodsBtnColor = new SolidColorBrush(Color.FromArgb(255, 250, 70, 51));
|
||||
order_item.BuyGoodsBtnBackColor = RedTextBrush50;
|
||||
order_item.BuyGoodsBtnColor = RedTextBrush;
|
||||
order_item.BuyGoodsBtnTxt = "请登录店铺";
|
||||
}
|
||||
else if (Shop?.LoginStatus == "登录成功" && Shop?.Is29Supplier == null)
|
||||
{
|
||||
order_item.IsBuyGoodsBtnEnabled = false;
|
||||
order_item.BuyGoodsBtnBackColor = new SolidColorBrush(Color.FromArgb(50, 250, 127, 51));
|
||||
order_item.BuyGoodsBtnColor = new SolidColorBrush(Color.FromArgb(255, 250, 127, 51));
|
||||
order_item.BuyGoodsBtnBackColor = OrangeBrush50;
|
||||
order_item.BuyGoodsBtnColor = OrangeBrush;
|
||||
order_item.BuyGoodsBtnTxt = "代发状态读取中请稍候";
|
||||
}
|
||||
else if (Shop?.Is29Supplier == false)
|
||||
{
|
||||
//order_item.IsBuyGoodsBtnEnabled = false;
|
||||
order_item.IsBuyGoodsBtnEnabled = true;
|
||||
order_item.BuyGoodsBtnBackColor = new SolidColorBrush(Color.FromArgb(50, 250, 70, 51));
|
||||
order_item.BuyGoodsBtnColor = new SolidColorBrush(Color.FromArgb(255, 250, 70, 51));
|
||||
order_item.BuyGoodsBtnBackColor = RedTextBrush50;
|
||||
order_item.BuyGoodsBtnColor = RedTextBrush;
|
||||
order_item.BuyGoodsBtnTxt = "去店铺后台绑定代发";
|
||||
}
|
||||
else
|
||||
{
|
||||
order_item.IsBuyGoodsBtnEnabled = true;
|
||||
order_item.BuyGoodsBtnTxt = order_item.BuyMap == null ? "关联拍单" : "拍单";
|
||||
order_item.BuyGoodsBtnBackColor = new SolidColorBrush(Color.FromArgb(50, 152, 99, 143));
|
||||
order_item.BuyGoodsBtnColor = new SolidColorBrush(Color.FromArgb(255, 152, 99, 143));
|
||||
order_item.BuyGoodsBtnBackColor = PurpleBrush50;
|
||||
order_item.BuyGoodsBtnColor = PurpleBrush;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AllBase.Model.DBModel
|
||||
{
|
||||
public class order_item_ext
|
||||
{
|
||||
public long? id { get; set; }
|
||||
public string order_id { get; set; }
|
||||
public string sku_id { get; set; }
|
||||
public string shop_app_id { get; set; }
|
||||
public string shop_name { get; set; }
|
||||
/// <summary>
|
||||
/// 订单异常文本
|
||||
/// </summary>
|
||||
public string abnormal_text { get; set; }
|
||||
public int? flag { get; set; }
|
||||
public string label { get; set; }
|
||||
public string remark { get; set; }
|
||||
public string after_sale_user_delivery_address { get; set; }
|
||||
public DateTime add_time { get; set; }
|
||||
public DateTime mdy_time { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AllBase.Model.DBModel
|
||||
{
|
||||
public class order_pdd_buyer_after_sale
|
||||
{
|
||||
public long? id { get; set; }
|
||||
public string wx_order_id { get; set; }
|
||||
public string wx_sku_id { get; set; }
|
||||
public DateTime TransitCreateTime { get; set; }
|
||||
//public DateTime TransitPickupTime { get; set; }
|
||||
public int? pre_allocated_order_no { get; set; }
|
||||
public string buyerId { get; set; }
|
||||
public string buyerName { get; set; }
|
||||
public string afterSalesId { get; set; }
|
||||
public string orderSn { get; set; }
|
||||
public int? orderAmount { get; set; }
|
||||
public long? refundAmount { get; set; }
|
||||
public long? orderDate { get; set; }
|
||||
public string statusText { get; set; }
|
||||
public string afterSaleAddress { get; set; }
|
||||
public string order_detail { get; set; }
|
||||
public DateTime add_time { get; set; }
|
||||
public DateTime mdy_time { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,7 @@ namespace AllBase.Model.DBModel
|
||||
public string wx_order_id { get; set; }
|
||||
public string wx_sku_id { get; set; }
|
||||
public DateTime TransitCreateTime { get; set; }
|
||||
public DateTime TransitPickupTime { get; set; }
|
||||
//public DateTime TransitPickupTime { get; set; }
|
||||
public int? pre_allocated_order_no { get; set; }
|
||||
public string buyerId { get; set; }
|
||||
public string buyerName { get; set; }
|
||||
|
||||
@@ -183,6 +183,14 @@ namespace AllBase.Model.Result
|
||||
get { return this.GetValue(x => x.TransitPickupTime); }
|
||||
set { this.SetValue(x => x.TransitPickupTime, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 买手总店售后地址
|
||||
/// </summary>
|
||||
public string AfterSaleAddress
|
||||
{
|
||||
get { return this.GetValue(x => x.AfterSaleAddress); }
|
||||
set { this.SetValue(x => x.AfterSaleAddress, value); }
|
||||
}
|
||||
|
||||
|
||||
public string ProdInfoStr
|
||||
|
||||
@@ -255,6 +255,10 @@ namespace TemuKJD.ToolForms
|
||||
//if (this.openType != EnumOpenType.login)
|
||||
{
|
||||
var t = CEFBrowser.SetCookieAsync(JsonHelper.SerializeObject(cookieLst), cefWebBrowser.GetCookieManager(null));
|
||||
if (InitUrl.Contains("&after_sales_reason=88"))
|
||||
{
|
||||
t.Wait(5000);
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(InitUrl))
|
||||
@@ -441,8 +445,18 @@ namespace TemuKJD.ToolForms
|
||||
{
|
||||
// 自动修改收货地址为中转仓
|
||||
var transit = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransDetailAddress == txtBuyTransitWarehouse.Text.Trim());
|
||||
if (transit == null)
|
||||
{
|
||||
BaseMsgForm.ShowError("仓库已发生改变,请点击重新关联商品,选择仓库后重新拍单!");
|
||||
return;
|
||||
}
|
||||
if (transit != null && IsChangeAddress == false && HasChangeAddress == false)
|
||||
{
|
||||
if (IsSoldOut)
|
||||
{
|
||||
BaseMsgForm.ShowError("商品已售罄,请重新关联未售罄商品后再拍单!");
|
||||
return;
|
||||
}
|
||||
if (!IsSoldOut)
|
||||
{
|
||||
Task.Run(() =>
|
||||
@@ -821,6 +835,7 @@ namespace TemuKJD.ToolForms
|
||||
|
||||
if (filterOrderAction != null)
|
||||
{
|
||||
item.SetOrderItemTextProperty();
|
||||
filterOrderAction(order, false);
|
||||
}
|
||||
}
|
||||
@@ -957,7 +972,7 @@ namespace TemuKJD.ToolForms
|
||||
orderItem.SetOrderItemTextProperty();
|
||||
// 利润计算重置为最小值,控件Resource更新时将计算利润
|
||||
orderItem.ProfitCount = decimal.MinValue;
|
||||
var order = GlobalConfig.lstFilterOrder.FirstOrDefault(o => o.order_id == orderItem.order_id);
|
||||
var order = orderItem?.ItemOrder;
|
||||
if (filterOrderAction != null && order != null)
|
||||
{
|
||||
filterOrderAction(order, true);
|
||||
@@ -1042,7 +1057,7 @@ namespace TemuKJD.ToolForms
|
||||
orderItem.SetOrderItemTextProperty();
|
||||
// 利润计算重置为最小值,控件Resource更新时将计算利润
|
||||
orderItem.ProfitCount = decimal.MinValue;
|
||||
var order = GlobalConfig.lstFilterOrder.FirstOrDefault(o => o.order_id == orderItem.order_id);
|
||||
var order = orderItem?.ItemOrder;
|
||||
if (filterOrderAction != null && order != null)
|
||||
{
|
||||
filterOrderAction(order, true);
|
||||
|
||||
+38
-30
@@ -306,15 +306,17 @@
|
||||
this.txtBuyPrice.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtBuyPrice.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.txtBuyPrice.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold);
|
||||
this.txtBuyPrice.ForeColor = System.Drawing.Color.Red;
|
||||
this.txtBuyPrice.Location = new System.Drawing.Point(310, 110);
|
||||
this.txtBuyPrice.Name = "txtBuyPrice";
|
||||
this.txtBuyPrice.Size = new System.Drawing.Size(152, 23);
|
||||
this.txtBuyPrice.Size = new System.Drawing.Size(152, 27);
|
||||
this.txtBuyPrice.TabIndex = 837;
|
||||
//
|
||||
// label18
|
||||
//
|
||||
this.label18.AutoSize = true;
|
||||
this.label18.Location = new System.Drawing.Point(254, 113);
|
||||
this.label18.Location = new System.Drawing.Point(254, 115);
|
||||
this.label18.Name = "label18";
|
||||
this.label18.Size = new System.Drawing.Size(56, 17);
|
||||
this.label18.TabIndex = 836;
|
||||
@@ -323,15 +325,17 @@
|
||||
// txtBuyCnt
|
||||
//
|
||||
this.txtBuyCnt.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.txtBuyCnt.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold);
|
||||
this.txtBuyCnt.ForeColor = System.Drawing.Color.Red;
|
||||
this.txtBuyCnt.Location = new System.Drawing.Point(74, 110);
|
||||
this.txtBuyCnt.Name = "txtBuyCnt";
|
||||
this.txtBuyCnt.Size = new System.Drawing.Size(152, 23);
|
||||
this.txtBuyCnt.Size = new System.Drawing.Size(152, 27);
|
||||
this.txtBuyCnt.TabIndex = 835;
|
||||
//
|
||||
// label19
|
||||
//
|
||||
this.label19.AutoSize = true;
|
||||
this.label19.Location = new System.Drawing.Point(18, 113);
|
||||
this.label19.Location = new System.Drawing.Point(18, 115);
|
||||
this.label19.Name = "label19";
|
||||
this.label19.Size = new System.Drawing.Size(56, 17);
|
||||
this.label19.TabIndex = 834;
|
||||
@@ -342,9 +346,11 @@
|
||||
this.txtShopOrderItemPrice.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtShopOrderItemPrice.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.txtShopOrderItemPrice.Location = new System.Drawing.Point(321, 259);
|
||||
this.txtShopOrderItemPrice.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold);
|
||||
this.txtShopOrderItemPrice.ForeColor = System.Drawing.Color.Red;
|
||||
this.txtShopOrderItemPrice.Location = new System.Drawing.Point(321, 257);
|
||||
this.txtShopOrderItemPrice.Name = "txtShopOrderItemPrice";
|
||||
this.txtShopOrderItemPrice.Size = new System.Drawing.Size(152, 23);
|
||||
this.txtShopOrderItemPrice.Size = new System.Drawing.Size(152, 27);
|
||||
this.txtShopOrderItemPrice.TabIndex = 833;
|
||||
//
|
||||
// label16
|
||||
@@ -359,9 +365,11 @@
|
||||
// txtShopOrderItemCnt
|
||||
//
|
||||
this.txtShopOrderItemCnt.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.txtShopOrderItemCnt.Location = new System.Drawing.Point(85, 259);
|
||||
this.txtShopOrderItemCnt.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold);
|
||||
this.txtShopOrderItemCnt.ForeColor = System.Drawing.Color.Red;
|
||||
this.txtShopOrderItemCnt.Location = new System.Drawing.Point(85, 257);
|
||||
this.txtShopOrderItemCnt.Name = "txtShopOrderItemCnt";
|
||||
this.txtShopOrderItemCnt.Size = new System.Drawing.Size(152, 23);
|
||||
this.txtShopOrderItemCnt.Size = new System.Drawing.Size(152, 27);
|
||||
this.txtShopOrderItemCnt.TabIndex = 831;
|
||||
//
|
||||
// label17
|
||||
@@ -378,7 +386,7 @@
|
||||
this.txtBuyOrderId.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtBuyOrderId.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.txtBuyOrderId.Location = new System.Drawing.Point(74, 139);
|
||||
this.txtBuyOrderId.Location = new System.Drawing.Point(74, 143);
|
||||
this.txtBuyOrderId.Name = "txtBuyOrderId";
|
||||
this.txtBuyOrderId.Size = new System.Drawing.Size(152, 23);
|
||||
this.txtBuyOrderId.TabIndex = 829;
|
||||
@@ -386,7 +394,7 @@
|
||||
// label15
|
||||
//
|
||||
this.label15.AutoSize = true;
|
||||
this.label15.Location = new System.Drawing.Point(6, 142);
|
||||
this.label15.Location = new System.Drawing.Point(6, 146);
|
||||
this.label15.Name = "label15";
|
||||
this.label15.Size = new System.Drawing.Size(68, 17);
|
||||
this.label15.TabIndex = 828;
|
||||
@@ -422,7 +430,7 @@
|
||||
this.txtShopSpecName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtShopSpecName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.txtShopSpecName.Location = new System.Drawing.Point(85, 172);
|
||||
this.txtShopSpecName.Location = new System.Drawing.Point(85, 170);
|
||||
this.txtShopSpecName.Name = "txtShopSpecName";
|
||||
this.txtShopSpecName.Size = new System.Drawing.Size(388, 23);
|
||||
this.txtShopSpecName.TabIndex = 817;
|
||||
@@ -430,7 +438,7 @@
|
||||
// label14
|
||||
//
|
||||
this.label14.AutoSize = true;
|
||||
this.label14.Location = new System.Drawing.Point(29, 175);
|
||||
this.label14.Location = new System.Drawing.Point(29, 173);
|
||||
this.label14.Name = "label14";
|
||||
this.label14.Size = new System.Drawing.Size(56, 17);
|
||||
this.label14.TabIndex = 816;
|
||||
@@ -450,7 +458,7 @@
|
||||
// txtUpSpuCode
|
||||
//
|
||||
this.txtUpSpuCode.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.txtUpSpuCode.Location = new System.Drawing.Point(85, 230);
|
||||
this.txtUpSpuCode.Location = new System.Drawing.Point(85, 228);
|
||||
this.txtUpSpuCode.Name = "txtUpSpuCode";
|
||||
this.txtUpSpuCode.Size = new System.Drawing.Size(152, 23);
|
||||
this.txtUpSpuCode.TabIndex = 814;
|
||||
@@ -458,7 +466,7 @@
|
||||
// label12
|
||||
//
|
||||
this.label12.AutoSize = true;
|
||||
this.label12.Location = new System.Drawing.Point(241, 233);
|
||||
this.label12.Location = new System.Drawing.Point(241, 231);
|
||||
this.label12.Name = "label12";
|
||||
this.label12.Size = new System.Drawing.Size(80, 17);
|
||||
this.label12.TabIndex = 813;
|
||||
@@ -469,7 +477,7 @@
|
||||
this.txtUpSkuCode.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtUpSkuCode.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.txtUpSkuCode.Location = new System.Drawing.Point(321, 230);
|
||||
this.txtUpSkuCode.Location = new System.Drawing.Point(321, 228);
|
||||
this.txtUpSkuCode.Name = "txtUpSkuCode";
|
||||
this.txtUpSkuCode.Size = new System.Drawing.Size(152, 23);
|
||||
this.txtUpSkuCode.TabIndex = 812;
|
||||
@@ -477,7 +485,7 @@
|
||||
// label11
|
||||
//
|
||||
this.label11.AutoSize = true;
|
||||
this.label11.Location = new System.Drawing.Point(5, 233);
|
||||
this.label11.Location = new System.Drawing.Point(5, 231);
|
||||
this.label11.Name = "label11";
|
||||
this.label11.Size = new System.Drawing.Size(80, 17);
|
||||
this.label11.TabIndex = 811;
|
||||
@@ -488,7 +496,7 @@
|
||||
this.txtShopSkuId.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtShopSkuId.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.txtShopSkuId.Location = new System.Drawing.Point(321, 201);
|
||||
this.txtShopSkuId.Location = new System.Drawing.Point(321, 199);
|
||||
this.txtShopSkuId.Name = "txtShopSkuId";
|
||||
this.txtShopSkuId.Size = new System.Drawing.Size(152, 23);
|
||||
this.txtShopSkuId.TabIndex = 810;
|
||||
@@ -496,7 +504,7 @@
|
||||
// label10
|
||||
//
|
||||
this.label10.AutoSize = true;
|
||||
this.label10.Location = new System.Drawing.Point(252, 204);
|
||||
this.label10.Location = new System.Drawing.Point(252, 202);
|
||||
this.label10.Name = "label10";
|
||||
this.label10.Size = new System.Drawing.Size(69, 17);
|
||||
this.label10.TabIndex = 809;
|
||||
@@ -505,7 +513,7 @@
|
||||
// label9
|
||||
//
|
||||
this.label9.AutoSize = true;
|
||||
this.label9.Location = new System.Drawing.Point(16, 204);
|
||||
this.label9.Location = new System.Drawing.Point(16, 202);
|
||||
this.label9.Name = "label9";
|
||||
this.label9.Size = new System.Drawing.Size(69, 17);
|
||||
this.label9.TabIndex = 808;
|
||||
@@ -514,7 +522,7 @@
|
||||
// txtShopGoodsId
|
||||
//
|
||||
this.txtShopGoodsId.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.txtShopGoodsId.Location = new System.Drawing.Point(85, 201);
|
||||
this.txtShopGoodsId.Location = new System.Drawing.Point(85, 199);
|
||||
this.txtShopGoodsId.Name = "txtShopGoodsId";
|
||||
this.txtShopGoodsId.Size = new System.Drawing.Size(152, 23);
|
||||
this.txtShopGoodsId.TabIndex = 807;
|
||||
@@ -534,7 +542,7 @@
|
||||
this.txtShopGoodsName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtShopGoodsName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.txtShopGoodsName.Location = new System.Drawing.Point(85, 143);
|
||||
this.txtShopGoodsName.Location = new System.Drawing.Point(85, 141);
|
||||
this.txtShopGoodsName.Name = "txtShopGoodsName";
|
||||
this.txtShopGoodsName.Size = new System.Drawing.Size(388, 23);
|
||||
this.txtShopGoodsName.TabIndex = 805;
|
||||
@@ -542,7 +550,7 @@
|
||||
// label7
|
||||
//
|
||||
this.label7.AutoSize = true;
|
||||
this.label7.Location = new System.Drawing.Point(29, 146);
|
||||
this.label7.Location = new System.Drawing.Point(29, 144);
|
||||
this.label7.Name = "label7";
|
||||
this.label7.Size = new System.Drawing.Size(56, 17);
|
||||
this.label7.TabIndex = 804;
|
||||
@@ -555,7 +563,7 @@
|
||||
this.btnManualUpdateBuyOrder.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnManualUpdateBuyOrder.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.btnManualUpdateBuyOrder.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnManualUpdateBuyOrder.Location = new System.Drawing.Point(368, 198);
|
||||
this.btnManualUpdateBuyOrder.Location = new System.Drawing.Point(368, 202);
|
||||
this.btnManualUpdateBuyOrder.Name = "btnManualUpdateBuyOrder";
|
||||
this.btnManualUpdateBuyOrder.Size = new System.Drawing.Size(94, 23);
|
||||
this.btnManualUpdateBuyOrder.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
@@ -844,7 +852,7 @@
|
||||
this.pnlBuy.Controls.Add(this.txtBuyPrice);
|
||||
this.pnlBuy.Controls.Add(this.label24);
|
||||
this.pnlBuy.Controls.Add(this.label29);
|
||||
this.pnlBuy.Location = new System.Drawing.Point(12, 291);
|
||||
this.pnlBuy.Location = new System.Drawing.Point(12, 290);
|
||||
this.pnlBuy.Name = "pnlBuy";
|
||||
this.pnlBuy.Size = new System.Drawing.Size(468, 226);
|
||||
this.pnlBuy.TabIndex = 872;
|
||||
@@ -852,7 +860,7 @@
|
||||
// label28
|
||||
//
|
||||
this.label28.AutoSize = true;
|
||||
this.label28.Location = new System.Drawing.Point(266, 142);
|
||||
this.label28.Location = new System.Drawing.Point(266, 146);
|
||||
this.label28.Name = "label28";
|
||||
this.label28.Size = new System.Drawing.Size(44, 17);
|
||||
this.label28.TabIndex = 884;
|
||||
@@ -863,7 +871,7 @@
|
||||
this.txtSourceCode.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtSourceCode.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.txtSourceCode.Location = new System.Drawing.Point(310, 139);
|
||||
this.txtSourceCode.Location = new System.Drawing.Point(310, 143);
|
||||
this.txtSourceCode.Name = "txtSourceCode";
|
||||
this.txtSourceCode.ReadOnly = true;
|
||||
this.txtSourceCode.Size = new System.Drawing.Size(152, 23);
|
||||
@@ -876,7 +884,7 @@
|
||||
this.btnReMap.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnReMap.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.btnReMap.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnReMap.Location = new System.Drawing.Point(9, 198);
|
||||
this.btnReMap.Location = new System.Drawing.Point(9, 202);
|
||||
this.btnReMap.Name = "btnReMap";
|
||||
this.btnReMap.Size = new System.Drawing.Size(94, 23);
|
||||
this.btnReMap.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
@@ -897,7 +905,7 @@
|
||||
// label25
|
||||
//
|
||||
this.label25.AutoSize = true;
|
||||
this.label25.Location = new System.Drawing.Point(18, 172);
|
||||
this.label25.Location = new System.Drawing.Point(18, 176);
|
||||
this.label25.Name = "label25";
|
||||
this.label25.Size = new System.Drawing.Size(56, 17);
|
||||
this.label25.TabIndex = 869;
|
||||
@@ -908,7 +916,7 @@
|
||||
this.txtBuyTransitWarehouse.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtBuyTransitWarehouse.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.txtBuyTransitWarehouse.Location = new System.Drawing.Point(74, 169);
|
||||
this.txtBuyTransitWarehouse.Location = new System.Drawing.Point(74, 173);
|
||||
this.txtBuyTransitWarehouse.Name = "txtBuyTransitWarehouse";
|
||||
this.txtBuyTransitWarehouse.Size = new System.Drawing.Size(388, 23);
|
||||
this.txtBuyTransitWarehouse.TabIndex = 870;
|
||||
@@ -917,7 +925,7 @@
|
||||
//
|
||||
this.label29.AutoSize = true;
|
||||
this.label29.ForeColor = System.Drawing.Color.SandyBrown;
|
||||
this.label29.Location = new System.Drawing.Point(121, 201);
|
||||
this.label29.Location = new System.Drawing.Point(121, 205);
|
||||
this.label29.Name = "label29";
|
||||
this.label29.Size = new System.Drawing.Size(248, 17);
|
||||
this.label29.TabIndex = 892;
|
||||
|
||||
@@ -38,6 +38,9 @@ namespace TemuKJD.ToolForms
|
||||
|
||||
public partial class PddMobileLoginForm : BaseGeneralForm
|
||||
{
|
||||
// 拼多多买手退货退款售后地址
|
||||
// https://mobile.yangkeduo.com/complaint.html?order_sn=260718-101481213440980&after_sales_reason=0&after_sales_type=2&after_sales_code=1002
|
||||
|
||||
public static PddMobileLoginForm PddMobileLoginInstance { get; set; } = null;
|
||||
|
||||
public int CloseAfterSecond { get; set; }
|
||||
|
||||
+1
-1
@@ -82,7 +82,7 @@
|
||||
this.splitContainer1.Panel2.Controls.Add(this.panel2);
|
||||
this.splitContainer1.Panel2.Paint += new System.Windows.Forms.PaintEventHandler(this.splitContainer1_Panel2_Paint);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(1022, 704);
|
||||
this.splitContainer1.SplitterDistance = 486;
|
||||
this.splitContainer1.SplitterDistance = 487;
|
||||
this.splitContainer1.SplitterWidth = 3;
|
||||
this.splitContainer1.TabIndex = 4;
|
||||
//
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
@@ -26,36 +26,36 @@
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
|
||||
Reference in new issue
Block a user