2114 lines
77 KiB
C#
2114 lines
77 KiB
C#
using _29WxOrderWpf.BaseWindows;
|
||
using WxOrder.Framework.Commons;
|
||
using _29WxOrderWpf.Converters;
|
||
using _29WxOrderWpf.Ctrls.BuyerCtrls;
|
||
using _29WxOrderWpf.UserControls;
|
||
using _29WxOrderWpf.ViewModels;
|
||
using _29WxOrderWpf.Views;
|
||
using _29WxOrderWpf.Windows.OrderWindows;
|
||
using AllBase;
|
||
using AllBase.Helper;
|
||
using AllBase.Model;
|
||
using AllBase.Model.Config;
|
||
using AllBase.Model.DBModel;
|
||
using AllBase.Model.Result;
|
||
using CefSharp.DevTools.DOM;
|
||
using NaiBa.Util.Extension;
|
||
using Newtonsoft.Json.Linq;
|
||
using NPOI.SS.Formula.PTG;
|
||
using Org.BouncyCastle.Asn1.Cmp;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Security.Cryptography;
|
||
using System.Security.Policy;
|
||
using System.Text;
|
||
using System.Threading;
|
||
using System.Threading.Tasks;
|
||
using System.Windows;
|
||
using System.Windows.Controls;
|
||
using System.Windows.Data;
|
||
using System.Windows.Documents;
|
||
using System.Windows.Input;
|
||
using System.Windows.Media;
|
||
using System.Windows.Media.Animation;
|
||
using System.Windows.Media.Imaging;
|
||
using System.Windows.Navigation;
|
||
using System.Windows.Shapes;
|
||
using System.Windows.Threading;
|
||
using TemuKJD.ToolForms;
|
||
using Work;
|
||
using Work._29Tools.BLL;
|
||
using Work._29Tools.Forms.ShopForms;
|
||
using Work._29Tools.Forms.ToolForms;
|
||
using Work.BaseForms;
|
||
using static _29WxOrderWpf.Services.ShipGiftService;
|
||
using static System.Net.WebRequestMethods;
|
||
|
||
namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||
{
|
||
/// <summary>
|
||
/// OrderListRowItemCtrl.xaml 的交互逻辑
|
||
/// </summary>
|
||
public partial class OrderListRowItemCtrl : UserControl
|
||
{
|
||
public OrderListRowItemCtrl()
|
||
{
|
||
InitializeComponent();
|
||
txtTransitOrderBuyerStr.AddHandler(TextBox.MouseUpEvent, new MouseButtonEventHandler(TransitOrderBuy_Click), true);
|
||
txtTransitOrderNumStr.AddHandler(TextBox.MouseUpEvent, new MouseButtonEventHandler(TransitOrderBuy_Click), true);
|
||
txtDirectBuyer.AddHandler(TextBox.MouseUpEvent, new MouseButtonEventHandler(txtDirectOrderNumStr_MouseLeftButtonUp), true);
|
||
txtDirectBuyerOrderNo.AddHandler(TextBox.MouseUpEvent, new MouseButtonEventHandler(txtDirectOrderNumStr_MouseLeftButtonUp), true);
|
||
txtRefundId.AddHandler(TextBox.MouseUpEvent, new MouseButtonEventHandler(txtRefundId_MouseLeftButtonUp), true);
|
||
|
||
|
||
txtWarehouseStatus.AddHandler(TextBox.MouseEnterEvent, new MouseEventHandler(txtWarehouseStatus_MouseEnter), true);
|
||
}
|
||
|
||
private void txtRefundId_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info order_item)
|
||
{
|
||
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ErpShopId == order_item.shop_id.ParseToString());
|
||
if (shop != null)
|
||
{
|
||
WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
|
||
shopLoginForm.openType = Work._29Tools.Forms.ShopForms.EnumOpenType.manage;
|
||
shopLoginForm.WindowState = System.Windows.Forms.FormWindowState.Maximized;
|
||
|
||
{
|
||
shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/aftersale/detail?orderid=" + order_item.ItemRefund.after_sale_order_id;
|
||
}
|
||
shopLoginForm.Show();
|
||
}
|
||
}
|
||
}
|
||
|
||
private async void btnSeeAddressDetail_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
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(() =>
|
||
{
|
||
GetDecryptOrder(deRst, order);
|
||
GlobalConfig.DicDecryptOrderAddress[order.order_id] = order;
|
||
if (ShowErrorDialog)
|
||
BaseMsgWindow.ShowAnimateMessage("查看地址成功但保存到服务端失败:" + errMsg, "Error", 5);
|
||
}));
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (order != null)
|
||
{
|
||
this.Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
GetDecryptOrder(deRst, order);
|
||
GlobalConfig.DicDecryptOrderAddress[order.order_id] = order;
|
||
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, oms_wei_order_info order)
|
||
{
|
||
//黄颖飞(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;
|
||
}
|
||
|
||
order.user_name = userName + "(" + extension + ")";
|
||
order.tel_number = virtualNumber;
|
||
order.tel_number_ext_info = extension;
|
||
order.province_name = provinceName;
|
||
order.city_name = cityName;
|
||
order.county_name = countyName;
|
||
order.detail_info = detailInfo;
|
||
|
||
//return userName + "(" + extension + ")," + virtualNumber + "-" + extension + "," + provinceName + cityName + countyName + detailInfo + "(拨打请输入分机号" + extension + ")";
|
||
order.AddressStr = userName + "(" + extension + ")" + "," + virtualNumber + "," + provinceName + cityName + countyName + detailInfo;
|
||
return order.AddressStr;
|
||
}
|
||
|
||
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)
|
||
{
|
||
var order = this.DataContext as oms_wei_order_item_info;
|
||
if (order == null)
|
||
return;
|
||
}
|
||
|
||
private void CheckBox_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
private void btnEditShopRemark_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ErpShopId == orderItem.shop_id.ParseToString());
|
||
if (shop == null)
|
||
return;
|
||
|
||
if (btnEditShopRemark.Content.ParseToString() == "保存")
|
||
{
|
||
var notesRst = OrderListCtrl.addNotes(shop, orderItem.order_id, txtShopRemark.Text);
|
||
if (!notesRst.Contains("\"code\":0"))
|
||
{
|
||
ShopBLL.CheckShopLogin(shop);
|
||
BaseMsgForm.ShowError("保存失败请重试");
|
||
return;
|
||
}
|
||
|
||
btnCancelEditShopRemark.Visibility = Visibility.Collapsed;
|
||
btnEditShopRemark.Content = "编辑";
|
||
txtShopRemark.SetValue(WidthProperty, Double.NaN);
|
||
txtShopRemark.BorderBrush = new SolidColorBrush(Color.FromArgb(0, 0, 50, 150));
|
||
txtShopRemark.IsReadOnly = true;
|
||
if (txtShopRemark.Text.IsNullOrEmpty())
|
||
txtShopRemark.Visibility = Visibility.Collapsed;
|
||
}
|
||
else
|
||
{
|
||
btnCancelEditShopRemark.Visibility = Visibility.Visible;
|
||
btnEditShopRemark.Content = "保存";
|
||
txtShopRemark.SetValue(WidthProperty, 135.0);
|
||
txtShopRemark.BorderBrush = new SolidColorBrush(Color.FromArgb(50, 0, 50, 150));
|
||
txtShopRemark.IsReadOnly = false;
|
||
txtShopRemark.Visibility = Visibility.Visible;
|
||
}
|
||
}
|
||
}
|
||
|
||
private void btnCancelEditShopRemark_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
btnCancelEditShopRemark.Visibility = Visibility.Collapsed;
|
||
btnEditShopRemark.Content = "编辑";
|
||
txtShopRemark.SetValue(WidthProperty, Double.NaN);
|
||
txtShopRemark.BorderBrush = new SolidColorBrush(Color.FromArgb(0, 0, 50, 150));
|
||
txtShopRemark.IsReadOnly = true;
|
||
if (txtShopRemark.Text.IsNullOrEmpty())
|
||
txtShopRemark.Visibility = Visibility.Collapsed;
|
||
}
|
||
|
||
private void btnEditAppRemark_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ErpShopId == orderItem.shop_id.ParseToString());
|
||
if (shop == null)
|
||
return;
|
||
|
||
if (btnEditAppRemark.Content.ParseToString() == "保存")
|
||
{
|
||
var url = BaseClass.Build29WxObjString("order/wx_update_erp_soft_remark");
|
||
var data = UserLogin.GetSignaturex();
|
||
data += "&order_id=" + orderItem.order_id;
|
||
data += "&soft_remark=" + txtAppRemark.Text;
|
||
var html = GetHtml.PostUtf8(url, data);
|
||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||
html = GetHtml.PostUtf8(url, data);
|
||
|
||
if (!html.Contains("\"code\":200"))
|
||
{
|
||
BaseMsgForm.ShowError("保存失败请重试");
|
||
return;
|
||
}
|
||
if (BaseRegex.GetIntJson(ref html, "affected_rows") == 0)
|
||
{
|
||
BaseMsgForm.ShowError("未找到指定订单");
|
||
return;
|
||
}
|
||
orderItem.ItemOrder.soft_remark = txtAppRemark.Text;
|
||
|
||
btnCancelEditAppRemark.Visibility = Visibility.Collapsed;
|
||
btnEditAppRemark.Content = "编辑";
|
||
txtAppRemark.SetValue(WidthProperty, Double.NaN);
|
||
txtAppRemark.BorderBrush = new SolidColorBrush(Color.FromArgb(0, 0, 50, 150));
|
||
txtAppRemark.IsReadOnly = true;
|
||
if (txtAppRemark.Text.IsNullOrEmpty())
|
||
txtAppRemark.Visibility = Visibility.Collapsed;
|
||
}
|
||
else
|
||
{
|
||
btnCancelEditAppRemark.Visibility = Visibility.Visible;
|
||
btnEditAppRemark.Content = "保存";
|
||
txtAppRemark.SetValue(WidthProperty, 135.0);
|
||
txtAppRemark.BorderBrush = new SolidColorBrush(Color.FromArgb(50, 0, 50, 150));
|
||
txtAppRemark.IsReadOnly = false;
|
||
txtAppRemark.Visibility = Visibility.Visible;
|
||
}
|
||
}
|
||
}
|
||
|
||
private void btnCancelEditAppRemark_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
btnCancelEditAppRemark.Visibility = Visibility.Collapsed;
|
||
btnEditAppRemark.Content = "编辑";
|
||
txtAppRemark.SetValue(WidthProperty, Double.NaN);
|
||
txtAppRemark.BorderBrush = new SolidColorBrush(Color.FromArgb(0, 0, 50, 150));
|
||
txtAppRemark.IsReadOnly = true;
|
||
if (txtAppRemark.Text.IsNullOrEmpty())
|
||
txtAppRemark.Visibility = Visibility.Collapsed;
|
||
}
|
||
|
||
private async void btnBuyOrder_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
btnBuyOrder.IsEnabled = false;
|
||
await BuyOrder(orderItem);
|
||
btnBuyOrder.IsEnabled = true;
|
||
}
|
||
}
|
||
|
||
public static async Task BuyOrder(oms_wei_order_item_info orderItem, bool isAutoBuy = false, bool isAbnormalOrder = false)
|
||
{
|
||
if (orderItem == null)
|
||
{
|
||
if (!isAutoBuy)
|
||
BaseMsgWindow.ShowError("订单信息为空");
|
||
return;
|
||
}
|
||
if (GlobalConfig.CurrentPddBuyer == null)
|
||
{
|
||
if (!isAutoBuy)
|
||
BaseMsgWindow.ShowError("请选择买手号");
|
||
return;
|
||
}
|
||
if (orderItem.ItemOrder.orderItems.Count > 1)
|
||
{
|
||
if (!isAutoBuy)
|
||
BaseMsgWindow.ShowError("多子单订单中转仓暂不支持");
|
||
return;
|
||
}
|
||
|
||
if (!orderItem.GetIsAbnormalOrderRebuy() && GlobalConfig.lstOrder.Any(o => o.orderItems
|
||
.Any(oi => oi.ItemTransitOrder?.order_no == orderItem.order_id && oi.ItemTransitOrder?.order_sku_id == orderItem.sku_id)))
|
||
{
|
||
OrderListCtrl.InitOrderItemObservableProp(orderItem);
|
||
MainWindow.Instance.orderListCtrl.FilterOneOrder(orderItem.ItemOrder);
|
||
if (!isAutoBuy)
|
||
BaseMsgWindow.ShowError("已存在中转拍单信息,请核对后再拍单");
|
||
return;
|
||
}
|
||
|
||
await Task.Run(async () =>
|
||
{
|
||
// 拍单前查询订单是否退款
|
||
var orderId = orderItem.order_id;
|
||
var skuId = orderItem.sku_id;
|
||
MainWindow.Instance.orderListCtrl.GetOrder(orderId);
|
||
var newOrder = GlobalConfig.lstOrder.FirstOrDefault(or => or.order_id == orderId);
|
||
if (newOrder.orderItems.Count == 1)
|
||
orderItem = newOrder?.orderItems?.FirstOrDefault();
|
||
else
|
||
orderItem = newOrder?.orderItems?.FirstOrDefault(oi => oi.sku_id == skuId);
|
||
if (orderItem == null)
|
||
return;
|
||
|
||
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 (CheckIsRefund(orderItem))
|
||
return;
|
||
|
||
// 拍单前检测买手号是否在线
|
||
if (GlobalConfig.CurrentBuyPlatform == "pdd")
|
||
{
|
||
if (GlobalConfig.CurrentPddBuyer.status == "在线")
|
||
{
|
||
PddMobileLoginViewModel.CheckBuyerLogin(GlobalConfig.CurrentPddBuyer);
|
||
}
|
||
if (GlobalConfig.CurrentPddBuyer.status != "在线")
|
||
{
|
||
BaseMsgWindow.ShowError("买手号掉线");
|
||
return;
|
||
}
|
||
}
|
||
|
||
orderRetry:
|
||
// 拍单前查询账户余额
|
||
if (!isAbnormalOrder)
|
||
{
|
||
// 强制使用软件而非erp拍单
|
||
if (GlobalConfig.BuyConfig.IsUseAppBalance)
|
||
{
|
||
if (BaseClass.Balance < 10)
|
||
{
|
||
BaseMsgWindow.ShowError("软件快递余额不足(剩余" + BaseClass.Balance.ToString("0.00") + "元,拍单至少需保留10元),无法中转拍单,请先充值!");
|
||
return;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
var url = BaseClass.Build29WxObjString("shop/get_shop_erp_merchant");
|
||
var data = UserLogin.GetSignaturex();
|
||
data += "&corporate_account_user_id=" + orderItem.Shop.ErpCorporateAccountUserId;
|
||
data += "&manage_user_id=" + orderItem.Shop.ErpManageUserId;
|
||
data += "&shop_id=" + orderItem.Shop.ErpShopId;
|
||
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"))
|
||
{
|
||
GlobalConfig.BuyConfig.IsUseAppBalance = true;
|
||
StartUp.SaveBuyConfig();
|
||
BaseMsgWindow.ShowError("未找到店铺账户!" + BaseRegex.GetStringJson(ref html, "msg") + ",自动切换为快递余额拍单。");
|
||
goto orderRetry;
|
||
}
|
||
if (!string.IsNullOrEmpty(html) && html.Contains("\"code\":200"))
|
||
{
|
||
try
|
||
{
|
||
var erpMs = JsonHelper.DeserializeJsonToList<ErpMerchantInfo>(JsonHelper.JObjectParse(html)["data"].ParseToString());
|
||
var erpM = erpMs.FirstOrDefault();
|
||
if (erpM == null)
|
||
{
|
||
GlobalConfig.BuyConfig.IsUseAppBalance = true;
|
||
StartUp.SaveBuyConfig();
|
||
BaseMsgWindow.ShowError("未找到店铺账户!自动切换为快递余额拍单。");
|
||
goto orderRetry;
|
||
}
|
||
|
||
var balance = erpM.balance.ParseToDecimal();
|
||
if (balance < 10)
|
||
{
|
||
GlobalConfig.BuyConfig.IsUseAppBalance = true;
|
||
StartUp.SaveBuyConfig();
|
||
BaseMsgWindow.ShowError("ERP账户余额不足(剩余" + balance.ToString("0.00") + "元,拍单至少需保留10元),无法中转拍单,自动切换为快递余额拍单。");
|
||
goto orderRetry;
|
||
}
|
||
}
|
||
catch
|
||
{
|
||
BaseMsgWindow.ShowError("拍单校验出错,请稍后重试");
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
if (orderItem.BuyGoodsBtnTxt == "去店铺后台绑定代发")
|
||
{
|
||
if (orderItem.Shop != null)
|
||
{
|
||
WXShopLoginForm shopLoginForm = new WXShopLoginForm(orderItem.Shop);
|
||
shopLoginForm.openType = Work._29Tools.Forms.ShopForms.EnumOpenType.manage;
|
||
shopLoginForm.WindowState = System.Windows.Forms.FormWindowState.Maximized;
|
||
shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/supply/consignmentOrderList";
|
||
shopLoginForm.IsGetSupplierPage = true;
|
||
shopLoginForm.ShowDialog();
|
||
}
|
||
return;
|
||
}
|
||
|
||
// Api检测是否加入代发
|
||
//if (orderItem.BuyGoodsBtnTxt == "云仓拍单" && !isAbnormalOrder) // 异常拍单不改变订单供应商
|
||
//{
|
||
// try
|
||
// {
|
||
// await SetSendOrderSupplier(orderItem, "wxfc630d60a1af6c6f", "29供货商");
|
||
// }
|
||
// catch(Exception ex)
|
||
// {
|
||
// BaseMsgWindow.ShowError(ex.Message);
|
||
// return;
|
||
// }
|
||
//}
|
||
|
||
// 掉线提示重登
|
||
if (orderItem.Shop?.LoginStatus != "登录成功")
|
||
{
|
||
foreach (var ord in GlobalConfig.lstFilterOrder.Where(o => o.shop_id.ParseToString() == orderItem.Shop.ErpShopId).ToList())
|
||
{
|
||
// 更新代发管理情况
|
||
foreach (var oi in ord.orderItems)
|
||
MainWindow.Instance.Dispatcher.Invoke(new Action(() => { oi.UpdateOrderItemBuyButton(); }));
|
||
}
|
||
BaseMsgWindow.ShowError("请登录店铺");
|
||
return;
|
||
}
|
||
|
||
// 打开拍单窗口
|
||
MainWindow.Instance.Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
if (GlobalConfig.CurrentBuyPlatform == "pdd")
|
||
PddBuyOrder(orderItem, isAbnormalOrder, isAutoBuy);
|
||
//PddBuyOrderWpf(orderItem, isAbnormalOrder, isAutoBuy);
|
||
else if (GlobalConfig.CurrentBuyPlatform == "tb")
|
||
TbBuyOrderWpf(orderItem, isAbnormalOrder, isAutoBuy);
|
||
}));
|
||
});
|
||
}
|
||
|
||
public static void TbBuyOrderWpf(oms_wei_order_item_info orderItem, bool isAbnormalOrder, bool isAutoBuy)
|
||
{
|
||
if (GlobalConfig.CurrentTaobaoBuyer == null)
|
||
{
|
||
BaseMsgWindow.ShowError("未选择买手!");
|
||
return;
|
||
}
|
||
|
||
TaobaoBuyOrderCtrl taobaoBuyView = new TaobaoBuyOrderCtrl(GlobalConfig.CurrentTaobaoBuyer, orderItem);
|
||
//https://item.taobao.com/item.htm?id=756295486950&skuId=5216824841295
|
||
if (orderItem.TbBuyMap != null)
|
||
{
|
||
taobaoBuyView.ViewModel.InitUrl = "https://i.taobao.com/my_itaobao/receiver-address-pc";
|
||
taobaoBuyView.ViewModel.InitUrl = "https://item.taobao.com/item.htm?id=" + orderItem.TbBuyMap.map_goods_id + "&skuId=" + orderItem.TbBuyMap.map_sku_id;
|
||
}
|
||
else
|
||
{
|
||
taobaoBuyView.ViewModel.InitUrl = "https://s.taobao.com/search?";
|
||
taobaoBuyView.ViewModel.IsMappingGoods = true;
|
||
}
|
||
if (isAbnormalOrder)
|
||
taobaoBuyView.ViewModel.AbnormalTransitWarehouseOrderInfo = orderItem.ItemTransitOrder;
|
||
new DialogWindow()
|
||
{
|
||
Title = "买手拍单 - 当前买手 " + GlobalConfig.CurrentTaobaoBuyer.buyer_nick,
|
||
Content = taobaoBuyView,
|
||
//Height = System.Windows.Forms.SystemInformation.WorkingArea.Height - 80,
|
||
//Height = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height - 80,
|
||
Width = SystemParameters.PrimaryScreenWidth < 1920 ? SystemParameters.PrimaryScreenWidth : SystemParameters.PrimaryScreenWidth * 90 / 100,
|
||
Height = SystemParameters.PrimaryScreenHeight * 90 / 100,
|
||
WindowStartupLocation = WindowStartupLocation.CenterScreen,
|
||
}.ShowDialog();
|
||
// 记录窗口内传出的是否继续自动拍单属性
|
||
OrderListCtrl.IsAutoBuy = taobaoBuyView.ViewModel.IsAutoBuy;
|
||
// 如果购买成功,修改供应商信息
|
||
if (taobaoBuyView.ViewModel.IsBuySuccess)
|
||
{
|
||
Task.Run(async () =>
|
||
{
|
||
if (orderItem.BuyGoodsBtnTxt == "云仓拍单" && !isAbnormalOrder) // 异常拍单不改变订单供应商
|
||
{
|
||
try
|
||
{
|
||
await SetSendOrderSupplier(orderItem, "wxfc630d60a1af6c6f", "29供货商");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseMsgWindow.ShowError(ex.Message);
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
public static void PddBuyOrderWpf(oms_wei_order_item_info orderItem, bool isAbnormalOrder, bool isAutoBuy)
|
||
{
|
||
if (GlobalConfig.CurrentPddBuyer == null)
|
||
{
|
||
BaseMsgWindow.ShowError("未选择买手!");
|
||
return;
|
||
}
|
||
|
||
PddBuyOrderCtrl pddBuyView = new PddBuyOrderCtrl(GlobalConfig.CurrentTaobaoBuyer, orderItem);
|
||
if (orderItem.PddBuyMap != null)
|
||
{
|
||
pddBuyView.ViewModel.InitUrl = "https://mobile.yangkeduo.com/order_checkout.html?sku_id=" + orderItem.PddBuyMap.map_sku_id +
|
||
"&group_id=1" + Randomx.GetNumber(11) + "&goods_id=" + orderItem.PddBuyMap.map_goods_id + "&goods_number=" + orderItem.sku_cnt +
|
||
"&page_from=101";
|
||
pddBuyView.ViewModel.IsAutoBuy = isAutoBuy;
|
||
}
|
||
else
|
||
{
|
||
pddBuyView.ViewModel.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";
|
||
pddBuyView.ViewModel.IsMappingGoods = true;
|
||
}
|
||
if (isAbnormalOrder)
|
||
pddBuyView.ViewModel.AbnormalTransitWarehouseOrderInfo = orderItem.ItemTransitOrder;
|
||
new DialogWindow()
|
||
{
|
||
Title = "买手拍单 - 当前买手 " + GlobalConfig.CurrentPddBuyer.buyer_nick,
|
||
Content = pddBuyView,
|
||
//Height = System.Windows.Forms.SystemInformation.WorkingArea.Height - 80,
|
||
//Height = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height - 80,
|
||
Width = SystemParameters.PrimaryScreenWidth < 1920 ? SystemParameters.PrimaryScreenWidth : SystemParameters.PrimaryScreenWidth * 90 / 100,
|
||
Height = SystemParameters.PrimaryScreenHeight * 90 / 100,
|
||
WindowStartupLocation = WindowStartupLocation.CenterScreen,
|
||
}.ShowDialog();
|
||
// 记录窗口内传出的是否继续自动拍单属性
|
||
OrderListCtrl.IsAutoBuy = pddBuyView.ViewModel.IsAutoBuy;
|
||
// 如果购买成功,修改供应商信息
|
||
if (pddBuyView.ViewModel.IsBuySuccess)
|
||
{
|
||
Task.Run(async () =>
|
||
{
|
||
if (orderItem.BuyGoodsBtnTxt == "云仓拍单" && !isAbnormalOrder) // 异常拍单不改变订单供应商
|
||
{
|
||
try
|
||
{
|
||
await SetSendOrderSupplier(orderItem, "wxfc630d60a1af6c6f", "29供货商");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseMsgWindow.ShowError(ex.Message);
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
public static void PddBuyOrder(oms_wei_order_item_info orderItem, bool isAbnormalOrder, bool isAutoBuy)
|
||
{
|
||
PddMobileBuyOrderForm buyOrderForm = new PddMobileBuyOrderForm(MainWindow.Instance.orderListCtrl.FilterOneOrder, StartUp.UpdateBalance, orderItem, GlobalConfig.CurrentPddBuyer, orderItem.PddBuyMap);
|
||
buyOrderForm.IsAutoBuy = isAutoBuy;
|
||
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;
|
||
|
||
// 已有拍单关联的跳的到订单确认界面
|
||
if (orderItem.PddBuyMap != null)
|
||
{
|
||
//buyOrderForm.InitUrl = "https://mobile.yangkeduo.com/order_checkout.html?sku_id=" + orderItem.BuyMap.map_sku_id +
|
||
// "&group_id=1" + Randomx.GetNumber(11) + "&goods_id=" + orderItem.BuyMap.map_goods_id + "&goods_number=" + +orderItem.sku_cnt +
|
||
// "&page_from=101&detail_id=" + Randomx.GetNumber(11) + "&_oak_rcto=YW" +
|
||
// Randomx.GetWordNumber("JvLXvJ8Fx9mUIW34yn103TOlATJGk5PaZshD6pY1bsVrsIjWdxWwjCoNX3IGT".Length) + "_VWkP5_q-1QNqGg" +
|
||
// "&order_extra_type=1&refer_page_element=open_btn&source_channel=0&refer_page_name=goods_detail" +
|
||
// "&refer_page_id=10014_" + BaseClass.DateTimeToTimestampSeconds(DateTime.Now) + Randomx.GetNumber(3) + "_tny5ifswls&refer_page_sn=10014";
|
||
|
||
buyOrderForm.ShowBuyMask = true;
|
||
buyOrderForm.InitUrl = "https://mobile.yangkeduo.com/order_checkout.html?sku_id=" + orderItem.PddBuyMap.map_sku_id +
|
||
"&group_id=1" + Randomx.GetNumber(11) + "&goods_id=" + orderItem.PddBuyMap.map_goods_id + "&goods_number=" + orderItem.sku_cnt +
|
||
"&page_from=101";
|
||
|
||
//buyOrderForm.InitUrl = "https://mobile.yangkeduo.com/order_checkout.html?sku_id=" + orderItem.BuyMap.map_sku_id +
|
||
// "&group_id=1" + Randomx.GetNumber(11) + "&goods_id=" + orderItem.BuyMap.map_goods_id + "&goods_number=" + orderItem.sku_cnt +
|
||
// "&page_from=0&refer_page_element=open_btn&source_channel=0&refer_page_name=goods_detail&refer_page_id=10014_" +
|
||
// BaseClass.DateTimeToTimestampSeconds(DateTime.Now) + Randomx.GetNumber(3) + "_" + Randomx.GetWordNumber(10) + "&refer_page_sn=10014";
|
||
|
||
buyOrderForm.pnlBuy.Visible = true;
|
||
buyOrderForm.pnlMap.Visible = false;
|
||
}
|
||
if (isAbnormalOrder)
|
||
buyOrderForm.AbnormalTransitWarehouseOrderInfo = orderItem.ItemTransitOrder;
|
||
buyOrderForm.ShowDialog();
|
||
OrderListCtrl.IsAutoBuy = buyOrderForm.IsAutoBuy;
|
||
|
||
if (buyOrderForm.IsBuySuccess)
|
||
{
|
||
Task.Run(async () =>
|
||
{
|
||
if (orderItem.BuyGoodsBtnTxt == "云仓拍单" && !isAbnormalOrder) // 异常拍单不改变订单供应商
|
||
{
|
||
try
|
||
{
|
||
await SetSendOrderSupplier(orderItem, "wxfc630d60a1af6c6f", "29供货商");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseMsgWindow.ShowError(ex.Message);
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
/// <param name="orderItem">要发货的订单物品</param>
|
||
/// <param name="targetSupplierId">targetSupplierId 和 targetSupplierName 都为空表示取消代发</param>
|
||
/// <param name="targetSupplierName">targetSupplierId 和 targetSupplierName 都为空表示取消代发</param>
|
||
/// <returns></returns>
|
||
/// <exception cref="Exception"></exception>
|
||
public static async Task SetSendOrderSupplier(oms_wei_order_item_info orderItem, string targetSupplierId, string targetSupplierName)
|
||
{
|
||
string supplierId = "", supplierName = "";
|
||
try
|
||
{
|
||
// 查询代发列表
|
||
var apiSearchDropship = new WxApiBLL().WxApiDropshipSearch(orderItem.Shop, orderItem.order_id, 100);
|
||
if (!apiSearchDropship.Contains("\"errcode\":0"))
|
||
throw new Exception("查询代发失败!" + BaseRegex.GetStringJsonByRegs(ref apiSearchDropship, apiSearchDropship, "msg", "errmsg"));
|
||
|
||
var dsOrderId = JsonHelper.JObjectParse(apiSearchDropship)["ds_order_id_list"].FirstOrDefault().ParseToString();
|
||
|
||
// 取消代发判断
|
||
if (targetSupplierId.IsNullOrEmpty() && targetSupplierName.IsNullOrEmpty())
|
||
{
|
||
if (!string.IsNullOrEmpty(dsOrderId))
|
||
{
|
||
var apiCancelDropship = await new WxApiBLL().WxApiDropshipCancel(orderItem.Shop, orderItem.ItemOrder, dsOrderId);
|
||
if (!apiCancelDropship.Contains("\"errcode\":0"))
|
||
{
|
||
var errMsg = BaseRegex.GetStringJsonByRegs(ref apiCancelDropship, apiCancelDropship, "msg", "errmsg");
|
||
throw new Exception("取消代发失败!请手动取消代发!" + errMsg);
|
||
}
|
||
}
|
||
return;
|
||
}
|
||
|
||
// 更换或新增代发判断
|
||
if (!string.IsNullOrEmpty(dsOrderId))
|
||
{
|
||
// 查询代发详情
|
||
var apiSearchDropshipDetail = new WxApiBLL().WxApiDropshipSearchDetail(orderItem.Shop, dsOrderId);
|
||
if (!apiSearchDropshipDetail.Contains("\"errcode\":0"))
|
||
throw new Exception("查询代发失详情失败!" + BaseRegex.GetStringJson(ref apiSearchDropshipDetail, "msg"));
|
||
|
||
supplierId = BaseRegex.GetStringJson(ref apiSearchDropshipDetail, "supplier_appid");
|
||
supplierName = BaseRegex.GetStringJson(ref apiSearchDropshipDetail, "supplier_name");
|
||
if (!string.IsNullOrEmpty(supplierId) && !supplierId.Contains(targetSupplierId) && !supplierName.Contains(targetSupplierName))
|
||
{
|
||
// 取消代发
|
||
var apiCancelDropship = await new WxApiBLL().WxApiDropshipCancel(orderItem.Shop, orderItem.ItemOrder, dsOrderId);
|
||
if (!apiCancelDropship.Contains("\"errcode\":0"))
|
||
{
|
||
var errMsg = BaseRegex.GetStringJsonByRegs(ref apiCancelDropship, apiCancelDropship, "msg", "errmsg");
|
||
throw new Exception("取消其他代发失败!请确认商品加入的是 " + targetSupplierName + " 代发!" + errMsg);
|
||
}
|
||
dsOrderId = "";
|
||
supplierId = "";
|
||
supplierName = "";
|
||
}
|
||
}
|
||
|
||
// 设置或新增代发
|
||
if (!supplierId.Contains(targetSupplierId) && !supplierName.Contains(targetSupplierName))
|
||
{
|
||
// 设置29供货商代发wxfc630d60a1af6c6f或其他代发
|
||
var apiAddDropship = new WxApiBLL().WxApiDropshipAssign(orderItem.Shop, orderItem.order_id, orderItem.product_id, orderItem.sku_id, orderItem.sku_cnt.ParseToInt(), targetSupplierId);
|
||
if (!apiAddDropship.Contains("\"errcode\":0"))
|
||
{
|
||
throw new Exception("设置代发失败!请确认商品已加入" + targetSupplierName + "代发!" + BaseRegex.GetStringJson(ref apiAddDropship, "msg"));
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw new Exception(ex.Message);
|
||
//BaseMsgWindow.ShowError(ex.Message);
|
||
//return;
|
||
}
|
||
}
|
||
|
||
private void UserControl_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info order_item)
|
||
{
|
||
//btnBuyOrder.Content = "关联拍单";
|
||
|
||
// 显示预估利润
|
||
//if (order_item.BuyMap == null && order_item.ItemOrder.out_amount == 0)
|
||
// txtProfitForecast.Visibility = Visibility.Visible;
|
||
|
||
// 绑定时即刻生效,无需再次手动调用
|
||
//order_item.UpdateOrderItemBuyButton();
|
||
|
||
Task.Run(() =>
|
||
{
|
||
// 异步加载图片防止卡顿
|
||
// 缩略图在有的电脑上无法显示
|
||
//BitmapImage bImg = ImageUrlToBitmapImageConverter.LoadImageFromUrl(order_item.thumb_img + "?imageView2/1/w/100/format/webp|imageMogr2/auto-orient=");
|
||
BitmapImage bImg = AllBase.ImageBuild.LoadBitmipImageFromUrl(order_item.thumb_img, 100, 100);
|
||
//BitmapImage bImg = AllBase.ImageBuild.LoadBitmipImageFromUrl(order_item.thumb_img);
|
||
Thread.Sleep(Randomx.GetId(1000));
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
imgOrderItem.Source = bImg;
|
||
}));
|
||
});
|
||
|
||
|
||
// 待采购不显示所有采购信息状态(否则会显示作废订单状态)
|
||
if (GlobalConfig.OrderTabHeaderStr.StartsWith("待采购"))
|
||
{
|
||
//wpBuyAccount.Visibility = Visibility.Collapsed;
|
||
//wpBuyOrderId.Visibility = Visibility.Collapsed;
|
||
//wpBuyTime.Visibility = Visibility.Collapsed;
|
||
//wpTransitWaybillStatus.Visibility = Visibility.Collapsed;
|
||
|
||
wpBuyAccount.Opacity = 0.5;
|
||
wpBuyOrderId.Opacity = 0.5;
|
||
wpBuyTime.Opacity = 0.5;
|
||
wpTransitWaybillStatus.Opacity = 0.5;
|
||
}
|
||
}
|
||
}
|
||
|
||
private void TransitOrderBuy_Click(object sender, MouseButtonEventArgs e)
|
||
{
|
||
var orderItem = this.DataContext as oms_wei_order_item_info;
|
||
if (orderItem == null)
|
||
{
|
||
BaseMsgWindow.ShowError("订单信息为空");
|
||
return;
|
||
}
|
||
var buyerName = txtTransitOrderBuyerStr.Text;
|
||
var buyerAccount = txtTransitOrderBuyerStr.Tag.ParseToString();
|
||
var outOrderId = txtTransitOrderNumStr.Text;
|
||
if (string.IsNullOrEmpty(buyerName) || string.IsNullOrEmpty(outOrderId))
|
||
{
|
||
return;
|
||
}
|
||
if (outOrderId.StartsWith("tb_")) // 淘宝买手及订单
|
||
{
|
||
var buyer = GlobalConfig.TaobaoBuyerLoginList.FirstOrDefault(p => p.buyer_id == buyerAccount || p.buyer_name == buyerName);
|
||
if (buyer == null)
|
||
{
|
||
BaseMsgWindow.ShowError("该订单买手号未在当前账户登录");
|
||
return;
|
||
}
|
||
|
||
var url = "";
|
||
if (sender == txtTransitOrderBuyerStr)
|
||
url = "https://buyertrade.taobao.com/trade/itemlist/list_bought_items.htm?";
|
||
else
|
||
url = "https://trade.tmall.com/detail/orderDetail.htm?bizOrderId=" + outOrderId.Replace("tb_", "");
|
||
|
||
TaobaoBuyOrderCtrl taobaoBuyView = new TaobaoBuyOrderCtrl(GlobalConfig.CurrentTaobaoBuyer, orderItem);
|
||
taobaoBuyView.ViewModel.InitUrl = url;
|
||
new DialogWindow()
|
||
{
|
||
Title = "订单查看 - 当前买手 " + buyer.buyer_nick,
|
||
Content = taobaoBuyView,
|
||
Width = SystemParameters.PrimaryScreenWidth < 1920 ? SystemParameters.PrimaryScreenWidth : SystemParameters.PrimaryScreenWidth * 90 / 100,
|
||
Height = SystemParameters.PrimaryScreenHeight * 90 / 100,
|
||
WindowStartupLocation = WindowStartupLocation.CenterScreen,
|
||
}.ShowDialog();
|
||
}
|
||
else // 拼多多买手及订单
|
||
{
|
||
var buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(p => p.buyer_id == buyerAccount || p.buyer_name == buyerName);
|
||
if (buyer == null)
|
||
{
|
||
BaseMsgWindow.ShowError("该订单买手号未在当前账户登录");
|
||
return;
|
||
}
|
||
|
||
var url = "";
|
||
if (sender == txtTransitOrderBuyerStr)
|
||
url = "https://mobile.yangkeduo.com/index.html";
|
||
else
|
||
url = "https://mobile.yangkeduo.com/order.html?order_sn=" + outOrderId + "&page_from=1&main_orders=1&is_tester=1&refer_page_name=my_order" +
|
||
"&refer_page_id=10032_" + BaseClass.DateTimeToTimestampMilliseconds(DateTime.Now) + "_" + Randomx.GetWordNumber(10) + "&refer_page_sn=10032";
|
||
|
||
// 拍单的时候检测一下买手号
|
||
if (buyer.status == "在线")
|
||
{
|
||
PddMobileLoginViewModel.CheckBuyerLogin(buyer);
|
||
}
|
||
if (buyer.status != "在线")
|
||
{
|
||
BaseMsgWindow.ShowError("买手号掉线");
|
||
return;
|
||
}
|
||
|
||
PddMobileBuyOrderForm buyOrderForm = new PddMobileBuyOrderForm(MainWindow.Instance.orderListCtrl.FilterOneOrder, StartUp.UpdateBalance,
|
||
orderItem, buyer, orderItem.PddBuyMap);
|
||
buyOrderForm.TitleText = "订单查看 - 当前买手 " + buyer.buyer_nick;
|
||
|
||
//所有订单页面
|
||
buyOrderForm.InitUrl = url;
|
||
buyOrderForm.pnlBuy.Visible = false;
|
||
|
||
//已有拍单关联的控制界面显示隐藏
|
||
if (orderItem.PddBuyMap != null)
|
||
{
|
||
buyOrderForm.pnlBuy.Visible = true;
|
||
buyOrderForm.pnlMap.Visible = false;
|
||
}
|
||
buyOrderForm.ShowDialog();
|
||
}
|
||
}
|
||
|
||
private void txtDirectOrderNumStr_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
|
||
{
|
||
var orderItem = this.DataContext as oms_wei_order_item_info;
|
||
if (orderItem == null)
|
||
{
|
||
BaseMsgWindow.ShowError("订单信息为空");
|
||
return;
|
||
}
|
||
|
||
var buyerAccount = txtTransitOrderBuyerStr.Tag.ParseToString();
|
||
var buyerName = txtDirectBuyer.Text.Split(':').LastOrDefault();
|
||
var outOrderId = txtDirectBuyerOrderNo.Text.Split(':').LastOrDefault();
|
||
if (string.IsNullOrEmpty(buyerName) || string.IsNullOrEmpty(outOrderId))
|
||
{
|
||
return;
|
||
}
|
||
|
||
if (outOrderId.StartsWith("tb_")) // 淘宝买手及订单
|
||
{
|
||
var buyer = GlobalConfig.TaobaoBuyerLoginList.FirstOrDefault(p => p.buyer_id == buyerAccount || p.buyer_name == buyerName);
|
||
if (buyer == null)
|
||
{
|
||
BaseMsgWindow.ShowError("该订单买手号未在当前账户登录");
|
||
return;
|
||
}
|
||
|
||
var url = "";
|
||
if (sender == txtTransitOrderBuyerStr)
|
||
url = "https://buyertrade.taobao.com/trade/itemlist/list_bought_items.htm?";
|
||
else
|
||
url = "https://trade.tmall.com/detail/orderDetail.htm?bizOrderId=" + outOrderId.Replace("tb_", "");
|
||
|
||
TaobaoBuyOrderCtrl taobaoBuyView = new TaobaoBuyOrderCtrl(GlobalConfig.CurrentTaobaoBuyer, orderItem);
|
||
taobaoBuyView.ViewModel.InitUrl = url;
|
||
taobaoBuyView.ViewModel.BuyType = "direct";
|
||
new DialogWindow()
|
||
{
|
||
Title = "订单查看 - 当前买手 " + buyer.buyer_nick,
|
||
Content = taobaoBuyView,
|
||
Width = SystemParameters.PrimaryScreenWidth < 1920 ? SystemParameters.PrimaryScreenWidth : SystemParameters.PrimaryScreenWidth * 90 / 100,
|
||
Height = SystemParameters.PrimaryScreenHeight * 90 / 100,
|
||
WindowStartupLocation = WindowStartupLocation.CenterScreen,
|
||
}.ShowDialog();
|
||
}
|
||
|
||
else
|
||
{
|
||
var buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(p => p.buyer_name == buyerName);
|
||
if (buyer == null)
|
||
{
|
||
BaseMsgWindow.ShowError("该订单买手号未在当前账户登录");
|
||
return;
|
||
}
|
||
//GlobalConfig.CurrentPddBuyer = buyer;
|
||
|
||
var url = "";
|
||
if (buyer != null)
|
||
{
|
||
if (sender == txtDirectBuyer)
|
||
url = "https://mobile.yangkeduo.com/index.html";
|
||
else
|
||
url = "https://mobile.yangkeduo.com/order.html?order_sn=" + outOrderId + "&page_from=1&main_orders=1&is_tester=1&refer_page_name=my_order" +
|
||
"&refer_page_id=10032_" + BaseClass.DateTimeToTimestampMilliseconds(DateTime.Now) + "_" + Randomx.GetWordNumber(10) + "&refer_page_sn=10032";
|
||
}
|
||
|
||
// 拍单的时候检测一下买手号
|
||
if (buyer.status == "在线")
|
||
{
|
||
PddMobileLoginViewModel.CheckBuyerLogin(buyer);
|
||
}
|
||
if (buyer.status != "在线")
|
||
{
|
||
BaseMsgWindow.ShowError("买手号掉线");
|
||
return;
|
||
}
|
||
|
||
//PddMobileBuyOrderForm buyOrderForm = new PddMobileBuyOrderForm(MainWindow.Instance.orderListCtrl.FilterOneOrder, StartUp.UpdateBalance, orderItem, buyer, orderItem.BuyMap);
|
||
PddMobileBuyOrderForm buyOrderForm = new PddMobileBuyOrderForm(null, null, orderItem, buyer, orderItem.PddBuyMap);
|
||
buyOrderForm.BuyType = "direct";
|
||
buyOrderForm.TitleText = "直发订单查看 - 当前买手 " + buyer.buyer_nick;
|
||
|
||
//所有订单页面
|
||
buyOrderForm.InitUrl = url;
|
||
buyOrderForm.pnlBuy.Visible = false;
|
||
|
||
//已有拍单关联的控制界面显示隐藏
|
||
if (orderItem.PddBuyMap != null)
|
||
{
|
||
buyOrderForm.pnlBuy.Visible = true;
|
||
buyOrderForm.pnlMap.Visible = false;
|
||
}
|
||
buyOrderForm.ShowDialog();
|
||
}
|
||
}
|
||
|
||
private void Path_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
try
|
||
{
|
||
Clipboard.SetDataObject(orderItem.ItemTransitOrderWithVoid.out_order_no);
|
||
BaseMsgWindow.ShowAnimateMessage("复制成功");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseMsgWindow.ShowError("复制失败 " + ex.Message);
|
||
}
|
||
}
|
||
}
|
||
|
||
private void pathRefundId_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info order_item)
|
||
{
|
||
try
|
||
{
|
||
Clipboard.SetDataObject(order_item.ItemRefund.after_sale_order_id);
|
||
BaseMsgWindow.ShowAnimateMessage("复制成功");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseMsgWindow.ShowError("复制失败 " + ex.Message);
|
||
}
|
||
}
|
||
}
|
||
|
||
private void imgOrderItem_MouseEnter(object sender, MouseEventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
private void imgOrderItem_MouseLeave(object sender, MouseEventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
private void imgOrderItem_MouseDown(object sender, MouseButtonEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
ShowImgForm imgFrom = new ShowImgForm(orderItem.thumb_img);
|
||
imgFrom.ShowDialog();
|
||
}
|
||
}
|
||
|
||
private async void btnVoidTransitOrder_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
VoidOrder(orderItem);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 作废中转仓订单
|
||
/// </summary>
|
||
/// <param name="orderItem"></param>
|
||
/// <param name="isSilent"></param>
|
||
/// <param name="UpdateOrderBeforeVoid">作废前是否更新服务端订单状态</param>
|
||
public static async void VoidOrder(oms_wei_order_item_info orderItem, bool isSilent = false, bool UpdateOrderBeforeVoid = true)
|
||
{
|
||
// 作废前查询订单状态
|
||
var orderId = orderItem.order_id;
|
||
var skuId = orderItem.sku_id;
|
||
await Task.Run(() =>
|
||
{
|
||
if (UpdateOrderBeforeVoid)
|
||
MainWindow.Instance.orderListCtrl.GetOrder(orderId);
|
||
|
||
var newOrder = GlobalConfig.lstOrder.FirstOrDefault(or => or.order_id == orderId);
|
||
if (newOrder?.orderItems.Count == 1)
|
||
orderItem = newOrder?.orderItems?.FirstOrDefault();
|
||
else
|
||
orderItem = newOrder?.orderItems?.FirstOrDefault(oi => oi.sku_id == skuId);
|
||
});
|
||
if (orderItem == null)
|
||
{
|
||
if (!isSilent)
|
||
BaseMsgWindow.ShowError("订单查询失败,请重试");
|
||
return;
|
||
}
|
||
if (orderItem.ItemTransitOrder == null)
|
||
{
|
||
if (!isSilent)
|
||
BaseMsgWindow.ShowError("要作废的中转订单不存在,请确认后重试");
|
||
return;
|
||
}
|
||
|
||
if (orderItem.ItemTransitOrder.out_order_no.ParseToString().StartsWith("tb_")) // 淘宝买手售后
|
||
{
|
||
if (!isSilent)
|
||
BaseMsgWindow.ShowError("淘宝买手暂不支持自动售后,请手动申请售后");
|
||
else
|
||
orderItem.ItemTransitOrder.refund_status = "淘宝买手暂不支持自动售后,需手动申请售后";
|
||
}
|
||
else // 拼多多买手售后
|
||
{
|
||
bool noBuyer = false;
|
||
var buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_id == orderItem?.ItemTransitOrder?.buyer_account || b.buyer_name == orderItem?.ItemTransitOrder?.buyer_account);
|
||
if (buyer == null)
|
||
{
|
||
if (!isSilent)
|
||
if (BaseMsgWindow.ShowConfirm("拍单买手不存在,点击确定直接作废中转单并手动取消买手单,点击取消登录买手后重试").DialogResult != true)
|
||
return;
|
||
noBuyer = true;
|
||
}
|
||
|
||
// 检测一下买手号
|
||
if (GlobalConfig.CurrentPddBuyer.status == "在线")
|
||
{
|
||
await Task.Run(() =>
|
||
{
|
||
PddMobileLoginViewModel.CheckBuyerLogin(GlobalConfig.CurrentPddBuyer);
|
||
});
|
||
}
|
||
if (GlobalConfig.CurrentPddBuyer.status != "在线")
|
||
{
|
||
if (!isSilent)
|
||
if (BaseMsgWindow.ShowConfirm("买手号掉线,点击确定直接作废中转单并手动取消买手单,点击取消登录买手后重试").DialogResult != true)
|
||
return;
|
||
noBuyer = true;
|
||
}
|
||
|
||
if (!noBuyer)
|
||
{
|
||
PddBuyerOrderLiteInfo order = null;
|
||
MainWindow.Instance.Dispatcher.Invoke(new Action(() => { }));
|
||
order = PDDBuyerOrderReadCtrl.lstPddBuyerOrderInfoLite.FirstOrDefault(o => o.order_sn == orderItem.ItemTransitOrder.out_order_no);
|
||
if (order == null)
|
||
order = new PddBuyerOrderLiteInfo()
|
||
{
|
||
order_status_prompt = "待发货",
|
||
order_amount = orderItem.ItemTransitOrder.out_amount,
|
||
order_sn = orderItem.ItemTransitOrder.out_order_no
|
||
};
|
||
PDDBuyerOrderReadCtrl.lstPddBuyerOrderInfoLite.Add(order);
|
||
var pddAfterRst = PDDBuyerOrderReadCtrl.SimPddAfterSale(buyer, order);
|
||
if (pddAfterRst.Contains("\"after_sales_status\":1") || pddAfterRst.Contains("该订单已全额退款") || pddAfterRst.Contains("订单未付款"))
|
||
{
|
||
// 保存退款成功状态
|
||
order.order_status_prompt = pddAfterRst.Contains("订单未付款") ? "订单未付款" : "退款成功";
|
||
// 中转仓订单买手号售后信息 存到服务端
|
||
var refundRst = PDDBuyerOrderReadCtrl.SendTransitAfterSaleE57(order);
|
||
if (refundRst.Contains("<code>0</code>") || refundRst.Contains("<code>200</code>"))
|
||
{
|
||
order.sendStatus = "退款成功 买手退款信息更新成功";
|
||
}
|
||
else
|
||
{
|
||
var msg = BaseRegex.GetStringXml(ref refundRst, "msg");
|
||
order.sendStatus = "退款成功 买手退款信息更新失败,服务端返回 " + msg;
|
||
}
|
||
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", PDDBuyerOrderReadCtrl.lstPddBuyerOrderInfoLite);
|
||
}
|
||
else
|
||
{
|
||
if (!isSilent)
|
||
if (BaseMsgWindow.ShowConfirm("买手退款失败,点击确定直接作废中转单并手动取消买手单,点击取消稍候重试").DialogResult != true)
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
|
||
//订单作废接口(作废重拍)
|
||
//postman request POST 'http://localhost:8088/oms-api/external_procurement/discardOrder' \
|
||
// --header 'Content-Type: application/json' \
|
||
// --body '{
|
||
// "orderNo":"12334534534",
|
||
// "outOrderNo":"12312312"
|
||
//}' 成功返回code:0 失败返回code:1
|
||
|
||
string url2 = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/discardOrder";
|
||
var data2 = new JObject();
|
||
data2["orderNo"] = orderItem.order_id;
|
||
//data2["outOrderNo"] = orderItem.ItemTransitOrder.out_order_no;
|
||
data2["outOrderNo"] = orderItem.ItemTransitOrder.order_code;
|
||
var dataStr2 = JsonHelper.SerializeObject(data2);
|
||
var discardRst = HttpResponseWXBLL.e57PostResponse(url2, dataStr2, "");
|
||
if (discardRst.Contains("<code>0</code>") || discardRst.Contains("<code>200</code>"))
|
||
{
|
||
//MainWindow.Instance.orderListCtrl.GetOrder(orderId);
|
||
#region 立即更新订单
|
||
orderItem.ItemTransitOrder.order_void_status = 1;
|
||
orderItem.SetOrderItemTextProperty();
|
||
#endregion
|
||
|
||
#region 重新过滤订单
|
||
OrderListCtrl.InitOrderItemObservableProp(orderItem);
|
||
MainWindow.Instance.orderListCtrl.FilterOrders();
|
||
if (!isSilent)
|
||
BaseMsgWindow.ShowInfo("订单作废成功,请重新拍单");
|
||
#endregion
|
||
|
||
#region 更新拍单余额
|
||
StartUp.UpdateBalance();
|
||
#endregion
|
||
}
|
||
else
|
||
{
|
||
var msg = BaseRegex.GetStringXml(ref discardRst, "msg");
|
||
if (!isSilent)
|
||
BaseMsgWindow.ShowInfo("订单作废失败,服务端返回 " + msg);
|
||
}
|
||
}
|
||
|
||
private void txtWarehouseStatus_MouseEnter(object sender, MouseEventArgs e)
|
||
{
|
||
if (txtWarehouseStatus.ToolTip == null)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
if (orderItem.ItemTransitOrderWithVoid.raw_message != null && orderItem.ItemTransitOrderWithVoid.raw_message.Contains("取号异常"))
|
||
this.txtWarehouseStatus.ToolTip = orderItem.ItemTransitOrderWithVoid.raw_message;
|
||
}
|
||
}
|
||
}
|
||
|
||
private void btnAddEditTransitWarehouseReject_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (sender == btnAddEditTransitWarehouseReject && this.DataContext is oms_wei_order_item_info orderItem1 && !string.IsNullOrWhiteSpace(orderItem1.ItemTransitOrderWithVoid?.express_1_waybill))
|
||
{
|
||
BaiduGetWaybillInfoView buyerLoginForm = new BaiduGetWaybillInfoView(orderItem1);
|
||
buyerLoginForm.ViewModel.InitUrl = "https://www.baidu.com/s?ie=UTF-8&wd=" + orderItem1.ItemTransitOrderWithVoid?.express_1_waybill;
|
||
|
||
new DialogWindow()
|
||
{
|
||
Width = 1280,
|
||
Height = 800,
|
||
Title = "物流拒收查询",
|
||
Content = buyerLoginForm,
|
||
}.Show();
|
||
return;
|
||
}
|
||
|
||
|
||
string msg = $@"
|
||
云仓拒收退回总店
|
||
|
||
说 明:店铺产生售后,拒收成功,货物会原物流退回总店。
|
||
拒收条件:(总店物流没到云仓/未签收前)。顺丰/京东无法
|
||
拒收,直接总店申请仅退款让总店拦截。
|
||
收 费:免费";
|
||
|
||
if (BaseMsgWindow.ShowConfirm(msg, "云仓拒收退回总店", null, MsgWindowLevel.LARGE, 300).DialogResult != true)
|
||
return;
|
||
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
orderItem.ItemTransitOrders = OrderListCtrl.GetTransitWarehouseList(orderItem.order_id);
|
||
orderItem.PddBuyerOrders = OrderListCtrl.GetPddBuyerOrders(orderItem.order_id).Where(o => o.wx_send_type == 0).ToList();
|
||
orderItem.PddBuyerOrders.AddRange(OrderListCtrl.GetTbBuyerOrders(orderItem.order_id).Where(o => o.wx_send_type == 0).ToList());
|
||
OrderListCtrl.InitOrderItemObservableProp(orderItem);
|
||
|
||
//if (orderItem.ItemTransitOrder?.warehouse_status == 3)
|
||
//{
|
||
// BaseMsgWindow.ShowError("商品已拒收或拦截!");
|
||
// return;
|
||
//}
|
||
//if (orderItem.ItemTransitOrder?.warehouse_status == 2)
|
||
//{
|
||
// BaseMsgWindow.ShowError("商品已出库,请选择退回中转仓!");
|
||
// return;
|
||
//}
|
||
//if (string.IsNullOrEmpty(orderItem.PddBuyerOrder?.order_sn))
|
||
//{
|
||
// BaseMsgWindow.ShowError("商品未出单,请直接去拼多多买手申请退款");
|
||
// return;
|
||
//}
|
||
if (orderItem.ItemTransitOrder?.has_reject == 1 || orderItem.ItemTransitOrder?.has_reject == 3)
|
||
{
|
||
BaseMsgWindow.ShowAnimateMessage("已申请拒收", "Msg", 3);
|
||
return;
|
||
}
|
||
|
||
// 中转仓拒收(已产生物流)
|
||
string url = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/orders/rejectApply";
|
||
var dataObj = new JObject();
|
||
dataObj["orderCode"] = orderItem.ItemTransitOrder?.order_code;
|
||
dataObj["orderId"] = orderItem.order_id;
|
||
dataObj["logisticsExpressCode"] = orderItem.PddBuyerOrder?.order_sn;
|
||
var data = JsonHelper.SerializeObject(dataObj);
|
||
var html = HttpResponseWXBLL.e57PostResponse(url, data, "");
|
||
int rejectStatus = 0;
|
||
if (html.Contains("<code>0</code>") || html.Contains("<code>200</code>"))
|
||
{
|
||
rejectStatus = 1;
|
||
BaseMsgWindow.ShowAnimateMessage("申请成功", "Msg", 3);
|
||
}
|
||
else
|
||
{
|
||
rejectStatus = 2;
|
||
var err = BaseRegex.GetStringXmlByRegs(ref html, "msg");
|
||
BaseMsgWindow.ShowAnimateMessage("申请失败", "Error", 3);
|
||
}
|
||
url = BaseClass.Build29WxObjString("order/wx_update_transit_order_reject_status");
|
||
data = UserLogin.GetSignaturex();
|
||
data += "&order_no=" + orderItem.order_id;
|
||
data += "&order_sku_id=" + orderItem.sku_id;
|
||
data += "&has_reject=" + rejectStatus;
|
||
html = GetHtml.PostUtf8(url, data);
|
||
|
||
orderItem.ItemTransitOrderWithVoid.has_reject = rejectStatus;
|
||
OrderListCtrl.InitOrderItemObservableProp(orderItem);
|
||
}
|
||
}
|
||
private void btnAddEditTransitWarehouseAfterSale_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
//if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
//{
|
||
// if (BaseMsgWindow.ShowConfirm("拦截退回总店将产生费用,是否继续?").DialogResult != true)
|
||
// {
|
||
// return;
|
||
// }
|
||
// if (orderItem.ItemTransitOrder?.warehouse_status != 3 && orderItem.ItemTransitOrder?.warehouse_status != 2 && orderItem.ItemTransitOrder?.warehouse_status != 1 && orderItem.AddEditTransitWarehouseAfterSaleStr == "添加")
|
||
// {
|
||
// if (BaseMsgWindow.ShowConfirm("商品未到仓,建议选择中转仓拒收!是否仍然尝试拦截退回总店?").DialogResult != true)
|
||
// return;
|
||
// }
|
||
// TransitAfterSaleWindow transitAfterSaleWindow = new TransitAfterSaleWindow(orderItem);
|
||
// transitAfterSaleWindow.ShowDialog();
|
||
//}
|
||
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
// 显示状态的按钮,直接返回
|
||
if (sender == btnAddEditTransitWarehouseAfterSale)
|
||
return;
|
||
|
||
string warehouse_status = "";
|
||
if (orderItem.ItemTransitOrder?.warehouse_status == 3 || orderItem.ItemTransitOrder?.warehouse_status == 1)
|
||
warehouse_status = "已到仓";
|
||
if (orderItem.ItemTransitOrder?.warehouse_status == 2)
|
||
warehouse_status = "已出仓";
|
||
else
|
||
warehouse_status = "未到仓";
|
||
|
||
if (sender == btnAddEditTransitWarehouseAfterSale_n1)
|
||
{
|
||
string msg = $@"
|
||
拒收失败转寄总店({warehouse_status})
|
||
|
||
说 明:店铺产生售后,拒收失败(物流信息签收3天
|
||
内无退回记录),货物需转寄退回总店。
|
||
收 费:(与退货仓退货价格一样)";
|
||
|
||
if (BaseMsgWindow.ShowConfirm(msg, "拒收失败转寄总店", null, MsgWindowLevel.LARGE, 300).DialogResult != true)
|
||
return;
|
||
}
|
||
else
|
||
{
|
||
string msg = $@"
|
||
出库拦截退回仓库({warehouse_status})
|
||
|
||
说 明:拦截成功后货物返回云仓,云仓转寄到总店。
|
||
拦截条件:(云仓出库物流在运输过程)派送/入柜/拦截
|
||
几率很低,签收需联系用户拒收。
|
||
收 费:(与退货仓退货价格一样)";
|
||
|
||
if (BaseMsgWindow.ShowConfirm(msg, "出库拦截退回仓库", null, MsgWindowLevel.LARGE, 300).DialogResult != true)
|
||
return;
|
||
}
|
||
|
||
TransitAfterSaleWindow transitAfterSaleWindow = new TransitAfterSaleWindow(orderItem);
|
||
transitAfterSaleWindow.ShowDialog();
|
||
}
|
||
}
|
||
|
||
private async void btnAbnormalOrderRebuy_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
if (orderItem.ItemOrder.status > 21 && orderItem.ItemTransitOrder != null && orderItem.ItemTransitOrder.refund_status == "买手退款成功")
|
||
await BuyOrder(orderItem, false, true);
|
||
}
|
||
}
|
||
|
||
private void pathBuyerAfterSaleAddress_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info order_item)
|
||
{
|
||
try
|
||
{
|
||
Clipboard.SetDataObject(order_item.PddBuyerAfterSaleAddressStr);
|
||
BaseMsgWindow.ShowAnimateMessage("复制成功");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseMsgWindow.ShowError("复制失败 " + ex.Message);
|
||
}
|
||
}
|
||
}
|
||
|
||
private void pathDirectBuyerAfterSaleAddress_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info order_item)
|
||
{
|
||
try
|
||
{
|
||
Clipboard.SetDataObject(order_item.DirectPddBuyerAfterSaleAddressStr);
|
||
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.SetDataObject((order_item.ItemOrder?.AddressStr).ParseToString());
|
||
BaseMsgWindow.ShowAnimateMessage("复制成功");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseMsgWindow.ShowError("复制失败 " + ex.Message);
|
||
}
|
||
}
|
||
}
|
||
|
||
private void btnDirectBuyOrder_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
directBuyOrder();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 直发拍单
|
||
/// </summary>
|
||
void directBuyOrder()
|
||
{
|
||
var orderItem = this.DataContext as oms_wei_order_item_info;
|
||
if (orderItem == null)
|
||
{
|
||
BaseMsgWindow.ShowError("订单信息为空");
|
||
return;
|
||
}
|
||
if (GlobalConfig.CurrentPddBuyer == null)
|
||
{
|
||
BaseMsgWindow.ShowError("请选择买手号");
|
||
return;
|
||
}
|
||
if (/*orderItem.sku_cnt > 1 ||*/ orderItem.ItemOrder.orderItems.Count > 1)
|
||
{
|
||
//BaseMsgWindow.ShowError("多子单或多件商品订单中转仓暂不支持");
|
||
BaseMsgWindow.ShowError("多子单订单中转仓暂不支持");
|
||
return;
|
||
}
|
||
|
||
btnBuyOrder.Cursor = Cursors.Wait;
|
||
btnDirectBuyOrder.IsEnabled = false;
|
||
Task.Run(() =>
|
||
{
|
||
Thread.Sleep(2000);
|
||
Dispatcher.Invoke(new Action(() => { btnDirectBuyOrder.IsEnabled = true; }));
|
||
});
|
||
Task.Run(async() =>
|
||
{
|
||
// 拍单前查询订单是否退款
|
||
var orderId = orderItem.order_id;
|
||
var skuId = orderItem.sku_id;
|
||
MainWindow.Instance.orderListCtrl.GetOrder(orderId);
|
||
var newOrder = GlobalConfig.lstOrder.FirstOrDefault(or => or.order_id == orderId);
|
||
if (newOrder.orderItems.Count == 1)
|
||
orderItem = newOrder?.orderItems?.FirstOrDefault();
|
||
else
|
||
orderItem = newOrder?.orderItems?.FirstOrDefault(oi => oi.sku_id == skuId);
|
||
if (orderItem == null)
|
||
return;
|
||
|
||
if (!orderItem.ItemOrder.out_order_no.IsNullOrEmpty() && orderItem.ItemOrder.out_after_sale_status != "退款成功")
|
||
{
|
||
// 外采单已存在的,不可再拍单
|
||
BaseMsgWindow.ShowAnimateMessage("该订单已有直发采购记录", "Error", 5);
|
||
return;
|
||
}
|
||
|
||
// 如果是退款单,弹出退款窗口
|
||
if (CheckIsRefund(orderItem))
|
||
return;
|
||
|
||
// Api检测代发状态
|
||
//if (GlobalConfig.BuyConfig.IsSyncDirectBuyOrderWaybill == true)
|
||
//{
|
||
// // 设置同步物流单代发
|
||
// //var rst = new WxApiBLL().GetShopSupplier(orderItem.Shop);
|
||
// //if (!rst.Contains("wx7809625286c28f2f") && !rst.Contains("百川日用"))
|
||
// //{
|
||
// // rst = new WxApiBLL().SetShopSupplier(orderItem.Shop, "wx7809625286c28f2f", "4431685489938137094");
|
||
// // if (!rst.Contains("\"errcode\":0"))
|
||
// // {
|
||
// // BaseMsgWindow.ShowAnimateMessage("绑定同步单发货失败", "Error", 5);
|
||
// // return;
|
||
// // }
|
||
// //}
|
||
|
||
// try
|
||
// {
|
||
// // 查询直拍单是否绑定了同步单代发(放到同步单发货前处理)
|
||
// await SetSendOrderSupplier(orderItem, "wx7809625286c28f2f", "百川日用");
|
||
// }
|
||
// catch (Exception ex)
|
||
// {
|
||
// BaseMsgWindow.ShowError(ex.Message);
|
||
// return;
|
||
// }
|
||
//}
|
||
//else
|
||
//{
|
||
// // 查询订单是否在代发货中,如果代发需要取消代发
|
||
// try
|
||
// {
|
||
// // 查询直拍单是否绑定了同步单代发(放到同步单发货前处理)
|
||
// await SetSendOrderSupplier(orderItem, "", "");
|
||
// }
|
||
// catch (Exception ex)
|
||
// {
|
||
// BaseMsgWindow.ShowError(ex.Message);
|
||
// return;
|
||
// }
|
||
//}
|
||
|
||
// 检测买手号是否掉线
|
||
if (GlobalConfig.CurrentBuyPlatform == "pdd")
|
||
{
|
||
if (GlobalConfig.CurrentPddBuyer.status == "在线")
|
||
{
|
||
PddMobileLoginViewModel.CheckBuyerLogin(GlobalConfig.CurrentPddBuyer);
|
||
}
|
||
if (GlobalConfig.CurrentPddBuyer.status != "在线")
|
||
{
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
BaseMsgWindow.ShowError("买手号掉线");
|
||
btnBuyOrder.Cursor = Cursors.Hand;
|
||
}));
|
||
return;
|
||
}
|
||
}
|
||
|
||
// 打开拍单窗口
|
||
Dispatcher.Invoke(new Action(async () =>
|
||
{
|
||
var BuyPlatform = "pdd";
|
||
bool IsBuySuccess = false;
|
||
btnBuyOrder.Cursor = Cursors.Hand;
|
||
|
||
// 拼多多买手
|
||
if (GlobalConfig.CurrentBuyPlatform == "pdd")
|
||
{
|
||
BuyPlatform = "pdd";
|
||
PddMobileBuyOrderForm buyOrderForm = new PddMobileBuyOrderForm(MainWindow.Instance.orderListCtrl.FilterOneOrder, StartUp.UpdateBalance,
|
||
orderItem, GlobalConfig.CurrentPddBuyer, orderItem.PddBuyMap);
|
||
|
||
buyOrderForm.TitleText = "买手直发拍单 - 当前买手 " + GlobalConfig.CurrentPddBuyer.buyer_nick;
|
||
buyOrderForm.BuyType = "direct";
|
||
|
||
// 未关联拍单的跳到所有订单页面
|
||
buyOrderForm.InitUrl = "https://mobile.yangkeduo.com/orders.html";
|
||
//https://mobile.yangkeduo.com/order.html?order_sn=260729-663591339661688
|
||
if (orderItem.ItemTransitOrderWithVoid != null)
|
||
buyOrderForm.InitUrl = "https://mobile.yangkeduo.com/order.html?order_sn=" + orderItem.ItemTransitOrderWithVoid.out_order_no;
|
||
|
||
buyOrderForm.pnlBuy.Visible = false;
|
||
|
||
// 已有拍单关联的跳的到订单确认界面
|
||
if (orderItem.PddBuyMap != null)
|
||
{
|
||
buyOrderForm.ShowBuyMask = true;
|
||
buyOrderForm.InitUrl = "https://mobile.yangkeduo.com/order_checkout.html?sku_id=" + orderItem.PddBuyMap.map_sku_id +
|
||
"&group_id=1" + Randomx.GetNumber(11) + "&goods_id=" + orderItem.PddBuyMap.map_goods_id + "&goods_number=" + orderItem.sku_cnt +
|
||
"&page_from=101";
|
||
|
||
buyOrderForm.pnlBuy.Visible = true;
|
||
buyOrderForm.pnlMap.Visible = false;
|
||
}
|
||
buyOrderForm.ShowDialog();
|
||
IsBuySuccess = buyOrderForm.IsBuySuccess;
|
||
}
|
||
else if (GlobalConfig.CurrentBuyPlatform == "tb")
|
||
{
|
||
BuyPlatform = "tb";
|
||
TaobaoBuyOrderCtrl taobaoBuyView = new TaobaoBuyOrderCtrl(GlobalConfig.CurrentTaobaoBuyer, orderItem);
|
||
if (orderItem.TbBuyMap != null)
|
||
{
|
||
taobaoBuyView.ViewModel.InitUrl = "https://i.taobao.com/my_itaobao/receiver-address-pc";
|
||
taobaoBuyView.ViewModel.InitUrl = "https://item.taobao.com/item.htm?id=" + orderItem.TbBuyMap.map_goods_id + "&skuId=" + orderItem.TbBuyMap.map_sku_id;
|
||
}
|
||
else
|
||
{
|
||
taobaoBuyView.ViewModel.InitUrl = "https://s.taobao.com/search?";
|
||
taobaoBuyView.ViewModel.IsMappingGoods = true;
|
||
}
|
||
taobaoBuyView.ViewModel.BuyType = "direct";
|
||
new DialogWindow()
|
||
{
|
||
Title = "买手拍单 - 当前买手 " + GlobalConfig.CurrentTaobaoBuyer.buyer_nick,
|
||
Content = taobaoBuyView,
|
||
Width = SystemParameters.PrimaryScreenWidth < 1920 ? SystemParameters.PrimaryScreenWidth : SystemParameters.PrimaryScreenWidth * 90 / 100,
|
||
Height = SystemParameters.PrimaryScreenHeight * 90 / 100,
|
||
WindowStartupLocation = WindowStartupLocation.CenterScreen,
|
||
}.ShowDialog();
|
||
IsBuySuccess = taobaoBuyView.ViewModel.IsBuySuccess;
|
||
}
|
||
|
||
if (IsBuySuccess)
|
||
{
|
||
if (GlobalConfig.BuyConfig.IsSyncDirectBuyOrderWaybill == true && BuyPlatform == "pdd")
|
||
{
|
||
// 设置同步物流单代发
|
||
//var rst = new WxApiBLL().GetShopSupplier(orderItem.Shop);
|
||
//if (!rst.Contains("wx7809625286c28f2f") && !rst.Contains("百川日用"))
|
||
//{
|
||
// rst = new WxApiBLL().SetShopSupplier(orderItem.Shop, "wx7809625286c28f2f", "4431685489938137094");
|
||
// if (!rst.Contains("\"errcode\":0"))
|
||
// {
|
||
// BaseMsgWindow.ShowAnimateMessage("绑定同步单发货失败", "Error", 5);
|
||
// return;
|
||
// }
|
||
//}
|
||
|
||
try
|
||
{
|
||
// 查询拼多都直拍单是否绑定了同步单代发(放到同步单发货前处理)
|
||
await SetSendOrderSupplier(orderItem, "wx7809625286c28f2f", "百川日用");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseMsgWindow.ShowError(ex.Message);
|
||
return;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
// 查询订单是否在代发货中,如果代发需要取消代发
|
||
try
|
||
{
|
||
// 查询淘宝直拍单是否绑定了同步单代发(放到同步单发货前处理)
|
||
await SetSendOrderSupplier(orderItem, "", "");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseMsgWindow.ShowError(ex.Message);
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
}));
|
||
});
|
||
}
|
||
|
||
static bool CheckIsRefund(oms_wei_order_item_info orderItem)
|
||
{
|
||
if (/*orderItem?.ItemRefund?.count > 0 &&*/ orderItem.refund_status > 1)
|
||
{
|
||
MainWindow.Instance.Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ErpShopId == orderItem.shop_id.ParseToString());
|
||
if (shop != null)
|
||
{
|
||
WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
|
||
shopLoginForm.openType = Work._29Tools.Forms.ShopForms.EnumOpenType.manage;
|
||
shopLoginForm.WindowState = System.Windows.Forms.FormWindowState.Maximized;
|
||
shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/aftersale/detail?orderid=" + orderItem.ItemRefund.after_sale_order_id;
|
||
shopLoginForm.Show();
|
||
}
|
||
else
|
||
{
|
||
BaseMsgWindow.ShowError("订单有售后,请去店铺后台退款");
|
||
}
|
||
}));
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
private void PathCopyDirectBuyerOrderNo_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info order_item)
|
||
{
|
||
try
|
||
{
|
||
Clipboard.SetDataObject((order_item.ItemOrder?.out_order_no).ParseToString());
|
||
BaseMsgWindow.ShowAnimateMessage("复制成功");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseMsgWindow.ShowError("复制失败 " + ex.Message);
|
||
}
|
||
}
|
||
}
|
||
|
||
private void pathCopyProdName_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
private void pathCopyRefundAddress_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info order_item)
|
||
{
|
||
try
|
||
{
|
||
Clipboard.SetDataObject(order_item.RefundAddressStr.ParseToString());
|
||
BaseMsgWindow.ShowAnimateMessage("复制成功");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseMsgWindow.ShowError("复制失败 " + ex.Message);
|
||
}
|
||
}
|
||
}
|
||
|
||
private void btnReturnOrder_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
//if (sender == btnRetrunOrder && (orderItem.AddEditTransitWarehouseReturnOrderStr == "未创建" || orderItem.AddEditTransitWarehouseReturnOrderStr == "创建失败"))
|
||
// return;
|
||
|
||
//if (orderItem.ItemTransitOrder?.warehouse_status != 2 && orderItem.AddEditTransitWarehouseAfterSaleStr == "添加")
|
||
//{
|
||
// BaseMsgWindow.ShowError("商品未出库,请选择中转仓拒收!");
|
||
// return;
|
||
//}
|
||
|
||
if (TransitReturnOrderWindow.instance != null)
|
||
TransitReturnOrderWindow.instance.Close();
|
||
|
||
TransitReturnOrderWindow.instance = new TransitReturnOrderWindow(orderItem);
|
||
TransitReturnOrderWindow.instance.Show();
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
private void btn_ShipGiftCommand(object sender, RoutedEventArgs e)
|
||
{
|
||
|
||
btnShipGift.IsEnabled = false;
|
||
var orderItem = this.DataContext as oms_wei_order_item_info;
|
||
if (orderItem == null)
|
||
return;
|
||
|
||
GiftType giftType = GiftType._160;
|
||
if (MainWindow.Instance.orderListCtrl.cb_gift.SelectedIndex == 0)
|
||
{
|
||
giftType = GiftType._155;
|
||
}
|
||
else
|
||
{
|
||
giftType = GiftType._160;
|
||
}
|
||
Task.Run(async () =>
|
||
{
|
||
try
|
||
{
|
||
var rst = await WxApiBLL.WxSearchAndDropshipCancelAsync(orderItem.Shop, orderItem.ItemOrder);
|
||
if (rst == "success")
|
||
{
|
||
var ret = await MainWindow.Instance.orderListCtrl._shipGiftService.Send(orderItem.order_id, giftType);
|
||
if (ret)
|
||
{
|
||
Application.Current.Dispatcher.Invoke(() =>
|
||
{
|
||
orderItem.ItemOrder.gift_order_status = 1;
|
||
OrderListCtrl.InitOrderItemObservableProp(orderItem);
|
||
MainWindow.Instance.orderListCtrl.FilterOneOrder(orderItem.ItemOrder, true);
|
||
});
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
Application.Current.Dispatcher.Invoke(() =>
|
||
{
|
||
BaseMsgWindow.ShowError("礼品单发货失败\n" + ex.Message ?? "未知错误", "Error");
|
||
});
|
||
}
|
||
finally
|
||
{
|
||
btnShipGift.IsEnabled = true;
|
||
}
|
||
|
||
});
|
||
}
|
||
|
||
private async void btnPddRefundTransitWarehouseRejectOrder_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem && orderItem.ItemTransitOrderWithVoid != null && orderItem.ItemOrder != null)
|
||
{
|
||
await PddRefundTransitRejectOrder(orderItem);
|
||
|
||
// 赋值显示订单元素
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
OrderListCtrl.InitOrderItemObservableProp(orderItem);
|
||
MainWindow.Instance.orderListCtrl.FilterOneOrder(orderItem.ItemOrder);
|
||
}));
|
||
}
|
||
}
|
||
|
||
public static async Task PddRefundTransitRejectOrder(oms_wei_order_item_info orderItem)
|
||
{
|
||
var pddOrderSn = orderItem.ItemTransitOrderWithVoid?.out_order_no;
|
||
if (string.IsNullOrEmpty(pddOrderSn))
|
||
return;
|
||
|
||
BuyerLoginInfo buyer = null;
|
||
buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_nick == orderItem.ItemTransitOrderWithVoid.buyer_account);
|
||
if (buyer == null)
|
||
{
|
||
return;
|
||
}
|
||
// 检测一下买手号
|
||
if (buyer.status == "在线")
|
||
{
|
||
PddMobileLoginViewModel.CheckBuyerLogin(buyer);
|
||
}
|
||
if (buyer.status != "在线")
|
||
{
|
||
BaseMsgWindow.ShowAnimateMessage("买手单:" + pddOrderSn + " 买手号掉线,跳过", "Error", 5);
|
||
return;
|
||
}
|
||
|
||
// 拒收一定是云仓
|
||
string refundStatusStr = (orderItem.TransitRefundStatusStr).ParseToString();
|
||
|
||
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 == null ? DateTime.MinValue : 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;
|
||
|
||
if (refundStatusStr.Contains("需手动申请售后")) // 退款失败 // 申请已撤销
|
||
{
|
||
await Task.Run(() =>
|
||
{
|
||
// {\"after_sales_id\":22312641041100,\"after_sales_status\":11,\"after_sales_type\":2,\"not_really_created\":true}
|
||
string rst = "";
|
||
rst = PDDBuyerOrderReadCtrl.SimPddAfterSaleWithRejected(buyer, pddBuyerOrderLiteInfo, pddBuyerAfterSale);
|
||
|
||
var afterSalesStatus = BaseRegex.GetIntJson(ref rst, "after_sales_status");
|
||
var afterSalesId = BaseRegex.GetLongJson(ref rst, "after_sales_id");
|
||
if (afterSalesId.IsNullOrZero())
|
||
return;
|
||
pddBuyerAfterSale.afterSalesId = afterSalesId.ToString();
|
||
// 更新内存数据 ----------------------------------------------------------------
|
||
pddBuyerAfterSale.statusText = "商家处理中";
|
||
orderItem.ItemTransitOrderWithVoid.refund_status = "商家处理中";
|
||
// --------------------------------------------------------------------------//
|
||
|
||
if (afterSalesStatus == 0)
|
||
{
|
||
var msg = BaseRegex.GetStringJsonByRegs(ref rst, rst, "msg", "err_msg", "error_msg", "errorMsg", "errMsg");
|
||
BaseMsgWindow.ShowAnimateMessage(msg, "Error", 5);
|
||
Thread.Sleep(5000);
|
||
if (msg == "已超过可申请售后的时间")
|
||
{
|
||
var e57Rst = PDDBuyerOrderReadCtrl.SendTransitAfterSaleE57(pddBuyerOrderLiteInfo, "已超过可申请售后的时间");
|
||
if (e57Rst.Contains("<code>0</code>") || e57Rst.Contains("<code>200</code>"))
|
||
{
|
||
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新成功", "Msg", 3);
|
||
Thread.Sleep(Randomx.GetId(10000, 12001));
|
||
}
|
||
else
|
||
{
|
||
msg = BaseRegex.GetStringXml(ref e57Rst, "msg");
|
||
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新失败,服务端返回 " + msg, "Error", 3);
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
var e57Rst = PDDBuyerOrderReadCtrl.SendTransitAfterSaleE57(pddBuyerOrderLiteInfo, "商家处理中");
|
||
if (e57Rst.Contains("<code>0</code>") || e57Rst.Contains("<code>200</code>"))
|
||
{
|
||
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新成功" + orderItem.order_id, "Msg", 3);
|
||
Thread.Sleep(Randomx.GetId(2000, 5001));
|
||
}
|
||
else
|
||
{
|
||
var msg = BaseRegex.GetStringXml(ref e57Rst, "msg");
|
||
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新失败,服务端返回 " + msg, "Error", 3);
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
private void btnOptimizeProduct_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
WXOrderListOptimizeForm form = new WXOrderListOptimizeForm(orderItem.Shop);
|
||
form.lblOrderId.Text = orderItem.order_id;
|
||
form.lblSpuId.Text = orderItem.product_id;
|
||
form.lblSkuId.Text = orderItem.sku_id; // skuId
|
||
form.txtGoodsName.Text = orderItem.title; // 商品名称
|
||
form.txtSkuName.Text = orderItem.SkuAttrStr; // sku规格名称
|
||
form.txtOrderPrice.Text = "" + (orderItem.real_price.ParseToInt() / 100m / orderItem.sku_cnt); // 订单价格
|
||
//form.txtCurrentPrice.Text = row.Cells["colCurrentPrice"].Value.ParseToString(); // 当前商品价格
|
||
//form.txtCurrentStock.Text = row.Cells["colCurrentStock"].Value.ParseToString(); // 当前库存;
|
||
form.numAddPrice.Value = 0;
|
||
form.ShowDialog();
|
||
|
||
}
|
||
}
|
||
|
||
private void btnMapSkus_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
|
||
if (DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
BuyMapSkuSelectWindow window = new BuyMapSkuSelectWindow(orderItem);
|
||
window.Show();
|
||
}
|
||
}
|
||
|
||
private void btnChangeWaybill_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (DataContext is oms_wei_order_item_info orderItem && orderItem.ItemOrder != null)
|
||
{
|
||
ChangeWaybillView changeWaybillView = new ChangeWaybillView(orderItem);
|
||
new DialogWindow()
|
||
{
|
||
Title = "修改订单物流",
|
||
Content = changeWaybillView,
|
||
}.ShowDialog();
|
||
}
|
||
}
|
||
|
||
private async void btnGetTransitWaybillDetail_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem && GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ErpShopId == orderItem.shop_id.ParseToString()) is ShopLoginInfo shop)
|
||
{
|
||
//var url = BaseClass.Build29WxObjString("order/wx_get_erp_ewaybill_path_list");
|
||
////var url = BaseClass.Build29WxObjString("order/wx_get_erp_ewaybill_path_latest_list");
|
||
//var data = UserLogin.GetSignaturex();
|
||
////data += "&erp_order_id_in=" + orderItem.order_id;
|
||
//data += "&waybill_id_in=" + orderItem.ItemTransitOrderWithVoid.express_2_waybill;
|
||
//var html = GetHtml.PostUtf8(url, data);
|
||
//if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||
// html = GetHtml.PostUtf8(url, data);
|
||
|
||
//if (!html.Contains("\"code\":200"))
|
||
//{
|
||
// BaseMsgForm.ShowError("查询失败请重试");
|
||
// return;
|
||
//}
|
||
|
||
var order = orderItem.ItemOrder;
|
||
var waybillId = orderItem.ItemTransitOrderWithVoid.express_2_waybill;
|
||
var expressName = orderItem.ItemTransitOrderWithVoid.express_2_company;
|
||
EWaybillPathView WaybillPathView = new EWaybillPathView(order, waybillId, expressName);
|
||
new DialogWindow()
|
||
{
|
||
Title = "订单 " + orderItem.order_id + " 物流明细",
|
||
Content = WaybillPathView,
|
||
}.ShowDialog();
|
||
}
|
||
|
||
|
||
}
|
||
|
||
private void btnGetDirectWaybillDetail_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
private void btnGetSyncWaybillDetail_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
private void btnTransitExtraPackages_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
// 不是中转仓,直接返回
|
||
var transitOrder = orderItem.ItemTransitOrder ?? orderItem.ItemTransitOrderWithVoid;
|
||
if (transitOrder == null)
|
||
{
|
||
BaseMsgWindow.ShowError("非中转仓订单不支持补发!");
|
||
return;
|
||
}
|
||
|
||
// string msg = $@"
|
||
// 滞留补发买家
|
||
|
||
//说 明:总店未在90小时到仓导致快递停滞退回, 货物
|
||
// 滞留云仓,可用补发继续发给买家。
|
||
//收 费:(与云仓发货价格一样)";
|
||
// if (BaseMsgWindow.ShowConfirm(msg, "滞留补发买家", null, MsgWindowLevel.LARGE, 300).DialogResult != true)
|
||
// return;
|
||
|
||
// string basePostageKey = WarehousePostageInfo.DicWarehousePostage.Keys.FirstOrDefault(pk => (orderItem.ItemOrder?.province_name).ParseToString().Contains(pk));
|
||
// decimal basePostage = basePostageKey.IsNullOrEmpty() ? WarehousePostageInfo.DicWarehousePostage.Values.Min() : WarehousePostageInfo.DicWarehousePostage[basePostageKey];
|
||
// JObject body = new JObject();
|
||
// body["oemAmount"] = (BaseClass.PostagePerOrderDiff * 100).ParseToInt().ParseToString();
|
||
// body["postage"] = ((basePostage + BaseClass.PostagePerOrderDiff) * 100).ParseToInt().ParseToString();
|
||
|
||
// body["packType"] = "2";
|
||
// body["batchId"] = orderItem.order_id + "-" + DateTime.Now.ToString("yyMMddHHmmss");
|
||
// body["orderNo"] = orderItem.order_id;
|
||
// body["orderCode"] = transitOrder.order_code;
|
||
// body["logisticsCode"] = transitOrder.express_2_company;
|
||
// body["logisticsExpressCode"] = transitOrder.express_2_waybill;
|
||
// body["accountUser"] = BaseClass.UserName;
|
||
// body["purchaserNote"] = "测试订单13017678999";//采购人备注
|
||
// body["orderPlatformCode"] = "WEISHOP";
|
||
|
||
|
||
TransitExtraPackagesView transitExtraPackagesView = new TransitExtraPackagesView(orderItem.ItemOrder, orderItem);
|
||
new DialogWindow()
|
||
{
|
||
Title = "滞留补发买家",
|
||
Content = transitExtraPackagesView,
|
||
}.ShowDialog();
|
||
}
|
||
}
|
||
|
||
private async void btnVoidTransitExtraOrder_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem && orderItem.ItemTransitExtraOrder.order_void_status != 1)
|
||
{
|
||
if (BaseMsgWindow.ShowConfirm("确定作废滞留补发包裹?").DialogResult != true)
|
||
return;
|
||
|
||
var data = new JObject();
|
||
data["batchId"] = orderItem.ItemTransitExtraOrder.batchId;
|
||
data["orderCode"] = orderItem.ItemTransitExtraOrder.order_code;
|
||
var dataStr = JsonHelper.SerializeObject(data);
|
||
var url = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/extraOrders/void";
|
||
var rst = HttpResponseWXBLL.e57PostResponse(url, dataStr, "");
|
||
if (BaseRegex.GetStringXml(ref rst, "code") != "0" && BaseRegex.GetStringXml(ref rst, "code") != "200")
|
||
{
|
||
BaseMsgWindow.ShowError(BaseRegex.GetStringXml(ref rst, "msg"));
|
||
return;
|
||
}
|
||
await Task.Run(() =>
|
||
{
|
||
StartUp.UpdateBalance();
|
||
});
|
||
orderItem.ItemTransitExtraOrder.order_void_status = 1;
|
||
orderItem.SetOrderItemTextProperty();
|
||
MainWindow.Instance.orderListCtrl.FilterOneOrder(orderItem.order_id);
|
||
}
|
||
}
|
||
|
||
private void btnTrySendSyncOrder_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem && orderItem.ItemOrder != null && sender is Button btnSendSync /*&& !btnSendSync.Tag.ParseToString().IsNullOrEmpty()*/)
|
||
{
|
||
//var orderSn = btnSendSync.Tag.ParseToString();
|
||
var directOrder = orderItem.DirectPddBuyerOrder;
|
||
|
||
if (directOrder.order_sn.StartsWith("tb_"))
|
||
{
|
||
BaseMsgWindow.ShowInfo("淘宝买手单暂不支持同步单");
|
||
return;
|
||
}
|
||
|
||
PddBuyerOrderLiteInfo orderLiteInfo = new PddBuyerOrderLiteInfo()
|
||
{
|
||
ShopOrderIdStr = orderItem.order_id,
|
||
WxOrderStatus = orderItem.ItemOrder.status,
|
||
order_sn = directOrder.order_sn,
|
||
outExpressCompanyMsg = directOrder.outExpressCompanyCode,
|
||
tracking_number = directOrder.tracking_number,
|
||
};
|
||
// 同步单发货
|
||
MainWindow.Instance.pddBuyerOrderReadCtrl.SendAsyncWaybillOrder(orderLiteInfo, true);
|
||
}
|
||
}
|
||
|
||
private void btnEditPickNo_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
ChangePickNoView changeWaybillView = new ChangePickNoView(orderItem);
|
||
new DialogWindow()
|
||
{
|
||
Title = "填写取件码",
|
||
Content = changeWaybillView,
|
||
}.ShowDialog();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
|