中转仓退货包裹逻辑修改 新增中转仓拒收逻辑

This commit is contained in:
wule committed 2026-08-07 09:33:04 +08:00
1 parent 141c237883
commit f2d619eafb
10 files changed
+249 -119

No files matched your search

+1 -1
View File
@@ -10,7 +10,7 @@
<FallbackCulture>zh-CN</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
<ProjectView>ProjectFiles</ProjectView>
<ActiveDebugProfile>Development</ActiveDebugProfile>
<ActiveDebugProfile>Production</ActiveDebugProfile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
@@ -110,7 +110,7 @@ namespace _29WxOrderWpf.BaseWindows
DialogResult = false;
}
public static void ShowAnimateMessage(string message, string type = "Msg", int DurationSeconds = 1)
public static void ShowAnimateMessage(string message, string type = "Msg", int DurationSeconds = 2)
{
MainWindow.Instance.Dispatcher.Invoke(new Action(() =>
{
@@ -98,7 +98,7 @@
</WrapPanel>
<Button c:DebugVisibility.Enable="True" Grid.Column="11" Content="利润统计" Style="{StaticResource BasePageButtonStyle}" Width="60" Height="28" Click="btn_ShowShopRevenueStatisticsView" Padding="4">
<Button Visibility="Collapsed" c:DebugVisibility.Enable="True" Grid.Column="11" Content="利润统计" Style="{StaticResource BasePageButtonStyle}" Width="60" Height="28" Click="btn_ShowShopRevenueStatisticsView" Padding="4">
</Button>
</Grid>
@@ -326,7 +326,7 @@
LayoutUpdated="dgOrderHeader_LayoutUpdated">
<DataGrid.Columns>
<DataGridTextColumn Width="38" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" Header="序号"/>
<DataGridTemplateColumn x:Name="colSelectAll" Header="选择" Width="28" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}">
<DataGridTemplateColumn x:Name="colSelectAll" Header="选择" Width="26" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<Grid Width="14" Height="14">
@@ -345,12 +345,12 @@
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Width="180*" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" Header="店铺单号"/>
<DataGridTextColumn Width="95*" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" Header="交易时间"/>
<DataGridTextColumn Width="70*" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" Header="利润"/>
<DataGridTextColumn Width="185*" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" Header="店铺单号"/>
<DataGridTextColumn Width="90*" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" Header="交易时间"/>
<DataGridTextColumn Width="65*" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" Header="利润"/>
<DataGridTextColumn Width="170*" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" Header="状态/地址"/>
<DataGridTextColumn Width="140*" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" Header="单号"/>
<DataGridTextColumn Width="125*" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" Header="备注"/>
<DataGridTextColumn Width="130*" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" Header="备注"/>
<DataGridTextColumn Width="72*" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" Header=" 操作"/>
</DataGrid.Columns>
</DataGrid>
@@ -213,47 +213,15 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
}
}
// 读取中转仓拍单订单
var url3 = BaseClass.Build29WxObjString("order/wx_get_transit_order");
var data3 = UserLogin.GetSignaturex();
data3 += "&order_no=" + order_ids;
var html3 = GetHtml.PostUtf8(url3, data3);
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
html3 = GetHtml.PostUtf8(url3, data3);
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
{
BaseMsgWindow.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());
}
catch { }
// 读取中转仓拍单订单
var transitOrderList = GetTransitWarehouseList(order_ids);
// 读取中转仓拍单订单售后状态
var transitAfterSaleList = GetTransitWarehouseAfterSaleList(order_ids);
// 读取暂时记录的买手订单,后面想办法放到中转订单库里去
var url4 = BaseClass.Build29WxObjString("order/wx_get_buyer_order_list");
var data4 = UserLogin.GetSignaturex();
data4 += "&wx_order_id_in=" + order_ids;
var html4 = GetHtml.PostUtf8(url4, data4);
if (string.IsNullOrEmpty(html4) || !html4.Contains("\"code\":200"))
html4 = GetHtml.PostUtf8(url4, data4);
if (string.IsNullOrEmpty(html4) || !html4.Contains("\"code\":200"))
{
Dispatcher.Invoke(new Action(() =>
{
BaseMsgWindow.ShowError("订单读取失败(买手) " + BaseRegex.GetStringJson(ref html4, "msg"));
}));
break;
}
List<order_pdd_buyer_order> pddBuyerOrders = new List<order_pdd_buyer_order>();
try
{
pddBuyerOrders = JsonHelper.DeserializeJsonToList<order_pdd_buyer_order>(JObject.Parse(html4)["data"].ParseToString())
.OrderByDescending(p => p.TransitCreateTime).ToList();
}
catch { }
var pddBuyerOrders = GetPddBuyerOrders(order_ids);
// 读取暂时记录的买手售后单,后面想办法放到中转订单库里去
var url6 = BaseClass.Build29WxObjString("order/wx_get_buyer_after_sale_list");
@@ -280,32 +248,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
}
}
// 读取中转仓处理售后单
var url5 = BaseClass.Build29WxObjString("order/wx_get_transit_warehouse_aftersale_list");
var data5 = UserLogin.GetSignaturex();
data5 += "&wx_order_id_in=" + order_ids;
var html5 = GetHtml.PostUtf8(url5, data5);
if (string.IsNullOrEmpty(html5) || !html5.Contains("\"code\":200"))
html5 = GetHtml.PostUtf8(url5, data5);
if (string.IsNullOrEmpty(html5) || !html5.Contains("\"code\":200"))
{
Dispatcher.Invoke(new Action(() =>
{
BaseMsgWindow.ShowError("订单读取失败 " + BaseRegex.GetStringJson(ref html5, "msg"));
}));
break;
}
List<oms_wei_external_procurement_after_sale_info> transitAfterSaleList = new List<oms_wei_external_procurement_after_sale_info>();
try
{
transitAfterSaleList = JsonHelper.DeserializeJsonToList<oms_wei_external_procurement_after_sale_info>(JObject.Parse(html5)["data"].ParseToString())
.OrderByDescending(p => p.created_time).ToList();
}
catch { }
// 读取关联拍单商品
var urlMap = BaseClass.Build29WxObjString("order/wx_get_buy_prod_map");
// 读取关联拍单商品
var urlMap = BaseClass.Build29WxObjString("order/wx_get_buy_prod_map");
var dataMap = UserLogin.GetSignaturex()
+ "&spu_codes=" + string.Join(",", orderItems.Select(oi => GetHtml.UrlEncodeUtf8(oi.out_product_id))) + "," + string.Join(",", orderItems.Select(oi => oi.product_id));
dataMap += "&main_user_name=" + BaseClass.MainUserName;
@@ -372,7 +316,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
// 中转仓买手退货订单(wx_send_type等于0)
item.PddBuyerAfterSales = pddBuyerAfterSales.Where(po => po.wx_order_id == item.order_id && po.wx_sku_id == item.sku_id && po.wx_send_type == 0).ToList();
// 直发买手订单(wx_send_type等于1)
item.PddBuyerOrders = pddBuyerOrders.Where(po => po.wx_order_id == item.order_id && po.wx_sku_id == item.sku_id && po.wx_send_type == 1).ToList();
item.DirectPddBuyerOrders = pddBuyerOrders.Where(po => po.wx_order_id == item.order_id && po.wx_sku_id == item.sku_id && po.wx_send_type == 1).ToList();
// 直发买手退款订单(wx_send_type等于1)
item.DirectPddBuyerAfterSales = pddBuyerAfterSales.Where(po => po.wx_order_id == item.order_id && po.wx_sku_id == item.sku_id && po.wx_send_type == 1).ToList();
}
@@ -381,11 +325,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
order.refundItems = new ObservableCollection<oms_wei_refund_info>(refunds.Where(of => of.order_id == order.order_id));
// 读取订单后立即赋值,防止滚动时实时赋值造成卡顿
foreach (var orderItem in order.orderItems)
{
orderItem.SetOrderItemTextProperty();
}
order.SetOrderTextProperty();
InitOrderObservableProp(order);
// 删除再添加,触发更新。 todo: 如果已存在相同订单,则直接修改更新
var orderExist = GlobalConfig.lstOrder.FirstOrDefault(o => o.order_id == order.order_id);
@@ -438,6 +378,28 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
}));
}
public static void InitOrderObservableProp(oms_wei_order_info order)
{
if (order != null && order.orderItems != null)
{
foreach (var orderItem in order.orderItems)
{
if (orderItem != null)
orderItem.SetOrderItemTextProperty();
}
order.SetOrderTextProperty();
}
}
public static void InitOrderItemObservableProp(oms_wei_order_item_info orderItem)
{
if (orderItem != null)
{
orderItem.SetOrderItemTextProperty();
if (orderItem.ItemOrder != null)
orderItem.ItemOrder.SetOrderTextProperty();
}
}
/// <summary>
/// 读取订单详情信息
/// </summary>
@@ -519,6 +481,91 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
return refunds;
}
public static List<oms_wei_external_procurement_log_info> GetTransitWarehouseList(string order_ids)
{
if (string.IsNullOrEmpty(order_ids))
return new List<oms_wei_external_procurement_log_info>();
var url3 = BaseClass.Build29WxObjString("order/wx_get_transit_order");
var data3 = UserLogin.GetSignaturex();
data3 += "&order_no=" + order_ids;
var html3 = GetHtml.PostUtf8(url3, data3);
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
html3 = GetHtml.PostUtf8(url3, data3);
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
{
BaseMsgWindow.ShowAnimateMessage("订单读取失败 " + BaseRegex.GetStringJson(ref html3, "msg"), "Error", 5);
}
List<oms_wei_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());
return transitOrderList;
}
catch
{
}
return new List<oms_wei_external_procurement_log_info>();
}
public static List<oms_wei_external_procurement_after_sale_info> GetTransitWarehouseAfterSaleList(string order_ids)
{
if (string.IsNullOrEmpty(order_ids))
return new List<oms_wei_external_procurement_after_sale_info>();
// 读取中转仓处理售后单
var url5 = BaseClass.Build29WxObjString("order/wx_get_transit_warehouse_aftersale_list");
var data5 = UserLogin.GetSignaturex();
data5 += "&wx_order_id_in=" + order_ids;
var html5 = GetHtml.PostUtf8(url5, data5);
if (string.IsNullOrEmpty(html5) || !html5.Contains("\"code\":200"))
html5 = GetHtml.PostUtf8(url5, data5);
if (string.IsNullOrEmpty(html5) || !html5.Contains("\"code\":200"))
{
BaseMsgWindow.ShowAnimateMessage("云仓售后订单读取失败 " + BaseRegex.GetStringJson(ref html5, "msg"), "Error", 5);
}
List<oms_wei_external_procurement_after_sale_info> transitAfterSaleList = new List<oms_wei_external_procurement_after_sale_info>();
try
{
transitAfterSaleList = JsonHelper.DeserializeJsonToList<oms_wei_external_procurement_after_sale_info>(JObject.Parse(html5)["data"].ParseToString())
.OrderByDescending(p => p.created_time).ToList();
if (transitAfterSaleList != null)
return transitAfterSaleList;
}
catch
{
}
return new List<oms_wei_external_procurement_after_sale_info>();
}
public static List<order_pdd_buyer_order> GetPddBuyerOrders(string order_ids)
{
if (string.IsNullOrEmpty(order_ids))
return new List<order_pdd_buyer_order>();
var url4 = BaseClass.Build29WxObjString("order/wx_get_buyer_order_list");
var data4 = UserLogin.GetSignaturex();
data4 += "&wx_order_id_in=" + order_ids;
var html4 = GetHtml.PostUtf8(url4, data4);
if (string.IsNullOrEmpty(html4) || !html4.Contains("\"code\":200"))
html4 = GetHtml.PostUtf8(url4, data4);
if (string.IsNullOrEmpty(html4) || !html4.Contains("\"code\":200"))
{
BaseMsgWindow.ShowAnimateMessage("订单读取失败(买手) " + BaseRegex.GetStringJson(ref html4, "msg"), "Error", 5);
}
List<order_pdd_buyer_order> pddBuyerOrders = new List<order_pdd_buyer_order>();
try
{
pddBuyerOrders = JsonHelper.DeserializeJsonToList<order_pdd_buyer_order>(JObject.Parse(html4)["data"].ParseToString())
.OrderByDescending(p => p.TransitCreateTime).ToList();
return pddBuyerOrders;
}
catch
{
}
return new List<order_pdd_buyer_order>();
}
public void GetShopWaybillExceptionOrder()
{
foreach (var shop in GlobalConfig.ShopLoginList)
@@ -575,10 +622,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
// 更新显示
Dispatcher.Invoke(new Action(() =>
{
foreach (var oi in waybillExceptionOrder.orderItems)
oi.SetOrderItemTextProperty();
waybillExceptionOrder.SetOrderTextProperty();
InitOrderObservableProp(waybillExceptionOrder);
MainWindow.Instance.orderListCtrl.FilterOneOrder(waybillExceptionOrder, true);
}));
@@ -648,10 +692,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
orderItem.OrderItemExt = orderExt;
Dispatcher.Invoke(new Action(() =>
{
foreach (var oi in order.orderItems)
oi.SetOrderItemTextProperty();
order.SetOrderTextProperty();
InitOrderObservableProp(order);
MainWindow.Instance.orderListCtrl.FilterOneOrder(order, true);
}));
}
@@ -729,16 +770,15 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
}
// 赋值显示订单元素
Dispatcher.Invoke(new Action(() =>
{
orderItem.SetOrderItemTextProperty();
order.SetOrderTextProperty();
{
InitOrderItemObservableProp(orderItem);
MainWindow.Instance.orderListCtrl.FilterOneOrder(order);
}));
}
}
}
});
}
}
public void disPlayOrderTabOrderCount()
@@ -413,26 +413,34 @@
<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" 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 TransitWarehouseAfterSaleWayBillStr}" Grid.Column="1" Grid.Row="2" Margin="0,1,0,1"
<WrapPanel Orientation="Horizontal" Grid.Column="1" Grid.Row="4" Visibility="{Binding AddEditTransitWarehouseRejectStr,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="txtTransitWarehouseReject" WaterMark="中转仓拒收占位" Text="" 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="btnAddEditTransitWarehouseReject" Background="Transparent" HorizontalAlignment="Center"
Foreground="{StaticResource PageLinkBrush}" BorderBrush="Transparent" Margin="2,0,0,0" Content="{Binding AddEditTransitWarehouseRejectStr}"
Click="btnAddEditTransitWarehouseReject_Click" Cursor="Hand"></Button>
</WrapPanel>
<WrapPanel Orientation="Horizontal" Grid.Column="1" Grid.Row="5" 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 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" Cursor="Hand"></Button>
</WrapPanel>
<WrapPanel Orientation="Horizontal" Grid.Column="1" Grid.Row="5" Width="auto" Visibility="{Binding AddEditTransitWarehouseAfterSaleStr,Converter={StaticResource HasTextVisibility}}">
<WrapPanel Orientation="Horizontal" Grid.Column="1" Grid.Row="6" 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}}"/>
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}">
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>
<!--操作-->
<Grid Grid.Column="8" Background="Transparent" VerticalAlignment="Center">
@@ -1019,14 +1019,68 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
}
}
private void btnAddEditTransitWarehouseReject_Click(object sender, RoutedEventArgs e)
{
if (this.DataContext is oms_wei_order_item_info orderItem)
{
orderItem.ItemTransitOrders = OrderListCtrl.GetTransitWarehouseList(orderItem.order_id);
orderItem.PddBuyerOrders = OrderListCtrl.GetPddBuyerOrders(orderItem.order_id);
OrderListCtrl.InitOrderItemObservableProp(orderItem);
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)
{
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)
{
var transitAfterSale = orderItem.ItemTransitOrderAfterSale;
if (orderItem.ItemTransitOrder?.warehouse_status == 2 && orderItem.AddEditTransitWarehouseAfterSaleStr == "添加")
if (orderItem.ItemTransitOrder?.warehouse_status != 2 && orderItem.AddEditTransitWarehouseAfterSaleStr == "添加")
{
BaseMsgWindow.ShowError("商品已出库,请联系买家直接退回总店!");
BaseMsgWindow.ShowError("商品未出库,请选择中转仓拒收!");
return;
}
TransitAfterSaleWindow transitAfterSaleWindow = new TransitAfterSaleWindow(orderItem);
@@ -70,13 +70,18 @@ namespace _29WxOrderWpf.Windows.OrderWindows
}
}
if (OrderItem?.ItemTransitOrder?.warehouse_status != 0 && OrderItem?.ItemTransitOrder?.warehouse_status != 1)
//if (OrderItem?.ItemTransitOrderWithVoid?.warehouse_status != 0 && OrderItem?.ItemTransitOrderWithVoid?.warehouse_status != 1)
//if (OrderItem?.ItemTransitOrder?.warehouse_status != 0 && OrderItem?.ItemTransitOrder?.warehouse_status != 1)
////if (OrderItem?.ItemTransitOrderWithVoid?.warehouse_status != 0 && OrderItem?.ItemTransitOrderWithVoid?.warehouse_status != 1)
//{
// btnAdd.IsEnabled = false;
// //BaseMsgWindow.ShowError("当前订单仓库状态不支持售后,请联系买家直接退回总店!");
// lblMsg.Content = "当前订单仓库状态不支持售后,请联系买家直接退回总店!";
// return;
//}
if (OrderItem?.ItemTransitOrder?.warehouse_status != 2)
{
btnAdd.IsEnabled = false;
//BaseMsgWindow.ShowError("当前订单仓库状态不支持售后,请联系买家直接退回总店!");
lblMsg.Content = "当前订单仓库状态不支持售后,请联系买家直接退回总店!";
return;
lblMsg.Content = "当前订单仓库状态不支持售后!";
}
}
+1 -1
View File
@@ -32,7 +32,7 @@ namespace AllBase
/// 版本ID
/// </summary>
public static int VersionCount = 209;
public static int VersionCount = 210;
public static string ServerUrl { get; set; } = "http://1.13.195.131:9000";
public static string DebugUrl { get; set; } = "http://localhost:9000";
@@ -78,5 +78,6 @@ namespace AllBase.Model.DBModel
/// 中转出库时间
/// </summary>
public DateTime? outbound_time { get; set; }
public int has_reject { get; set; }
}
}
@@ -223,7 +223,12 @@ namespace AllBase.Model.DBModel
}
public void SetTransitOrder()
{
this.ItemTransitOrder = ItemTransitOrders?.FirstOrDefault(t => t.order_void_status != 1);
if (order_id == "3738110521481264129")
{
}
this.ItemTransitOrder = ItemTransitOrders?.FirstOrDefault(t => t.order_void_status != 1);
this.ItemTransitOrderWithVoid = ItemTransitOrders?.FirstOrDefault();
this.ItemTransitOrderAfterSale = ItemTransitOrderAfterSales?.FirstOrDefault();
this.PddBuyerOrder = PddBuyerOrders?.FirstOrDefault();
@@ -250,16 +255,25 @@ namespace AllBase.Model.DBModel
else
TransitOrderWaybillFromWareHouseStr = "仓库物流:" + ItemTransitOrder.express_2_company + "-" + ItemTransitOrder.express_2_waybill;
if (order_id == "3737914129536416512")
{
AddEditTransitWarehouseRejectStr = "申请";
if (this.ItemTransitOrderWithVoid?.has_reject == 1)
AddEditTransitWarehouseRejectStr = "已申请拒收";
if (this.ItemTransitOrderWithVoid?.has_reject == 2)
AddEditTransitWarehouseRejectStr = "申请拒收失败";
if (this.ItemTransitOrderWithVoid == null || (!this.ItemOrder.IsEmergency && !this.ItemOrder.isAbnormal && !this.ItemOrder.IsRefund) || this.ItemTransitOrderWithVoid.warehouse_status == 2 ||
string.IsNullOrEmpty(PddBuyerOrder?.order_sn))
{
if (AddEditTransitWarehouseRejectStr != "已申请拒收")
AddEditTransitWarehouseRejectStr = "";
}
// 仓库物流售后按钮上的文字,仓库作废单不存在仓库物流,所以此处必须是有效的仓库单(含作废失败)
AddEditTransitWarehouseAfterSaleStr = this.ItemTransitOrderAfterSale == null ? "添加" : "已添加";
if (this.ItemTransitOrderWithVoid == null || (!this.ItemOrder.IsEmergency && !this.ItemOrder.isAbnormal))
if (this.ItemTransitOrderWithVoid == null || (!this.ItemOrder.IsEmergency && !this.ItemOrder.isAbnormal && !this.ItemOrder.IsRefund) || this.ItemTransitOrderWithVoid.warehouse_status < 2)
{
if (AddEditTransitWarehouseAfterSaleStr == "添加")
if (AddEditTransitWarehouseAfterSaleStr != "已添加")
AddEditTransitWarehouseAfterSaleStr = "";
}
if (this.ItemTransitOrderAfterSale != null)
@@ -268,6 +282,14 @@ namespace AllBase.Model.DBModel
this.PddBuyerAfterSaleAddressStr = this.PddBuyerAfterSale?.afterSaleAddress;
}
/// <summary>
/// 仓库拒收按钮文本参数
/// </summary>
public string AddEditTransitWarehouseRejectStr
{
get { return this.GetValue(x => x.AddEditTransitWarehouseRejectStr); }
set { this.SetValue(x => x.AddEditTransitWarehouseRejectStr, value); }
}
/// <summary>
/// 仓库退货编辑按钮文本参数
/// </summary>
public string AddEditTransitWarehouseAfterSaleStr
@@ -695,11 +717,11 @@ namespace AllBase.Model.DBModel
}
public List<order_pdd_buyer_after_sale> DirectPddOrders { get; set; } = new List<order_pdd_buyer_after_sale>();
public order_pdd_buyer_after_sale DirectPddOrder
public List<order_pdd_buyer_order> DirectPddBuyerOrders { get; set; } = new List<order_pdd_buyer_order>();
public order_pdd_buyer_order DirectPddBuyerOrder
{
get { return this.GetValue(x => x.DirectPddOrder); }
set { this.SetValue(x => x.DirectPddOrder, value); }
get { return this.GetValue(x => x.DirectPddBuyerOrder); }
set { this.SetValue(x => x.DirectPddBuyerOrder, value); }
}
public List<order_pdd_buyer_after_sale> DirectPddBuyerAfterSales { get; set; } = new List<order_pdd_buyer_after_sale>();
@@ -723,7 +745,7 @@ namespace AllBase.Model.DBModel
}
public void SetDirectOrder()
{
this.DirectPddOrder = DirectPddOrders.FirstOrDefault(p => OrderItemExt?.out_order_id == p.orderSn);
this.DirectPddBuyerOrder = DirectPddBuyerOrders.FirstOrDefault(p => OrderItemExt?.out_order_id == p.order_sn);
//this.DirectPddBuyerAfterSale = DirectPddBuyerAfterSales?.FirstOrDefault(p => p.statusText == "退款成功") ?? DirectPddBuyerAfterSales?.FirstOrDefault(p => p.statusText != "申请已撤销");
//if (DirectPddBuyerAfterSale == null)