优化中转仓处理拍单流程 隐藏部分不可用功能
This commit is contained in:
1 parent
27ac748f33
commit
518365a0d3
30 files changed
+1237
-634
No files matched your search
@@ -1399,7 +1399,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
if (!lstPddBuyerOrderVoidAfterSaleOrderSn.Contains(orderItem.order_id + orderItem.sku_id))
|
||||
{
|
||||
lstPddBuyerOrderVoidAfterSaleOrderSn.Add(orderItem.order_id + orderItem.sku_id);
|
||||
await OrderListRowItemCtrl.VoidOrder(orderItem, null, true);
|
||||
await OrderTransitService.VoidOrder(orderItem, null, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -209,7 +209,6 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
foreach (var orderItem in order.orderItems)
|
||||
{
|
||||
orderItem.UpdateOrderItemBuyButton();
|
||||
orderItem.SetAbnormalAndDirectBtnVisibility();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -224,7 +223,6 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
foreach (var orderItem in order.orderItems)
|
||||
{
|
||||
orderItem.UpdateOrderItemBuyButton();
|
||||
orderItem.SetAbnormalAndDirectBtnVisibility();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1340,7 +1340,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
if (!lstPddBuyerOrderVoidAfterSaleOrderSn.Contains(orderItem.order_id + orderItem.sku_id))
|
||||
{
|
||||
lstPddBuyerOrderVoidAfterSaleOrderSn.Add(orderItem.order_id + orderItem.sku_id);
|
||||
await OrderListRowItemCtrl.VoidOrder(orderItem, null, true);
|
||||
await OrderTransitService.VoidOrder(orderItem, null, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -626,11 +626,11 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
var pddFrontSkuInfo = new frontSkuInfo3()
|
||||
{
|
||||
skuId = key.ParseToLong(),
|
||||
skuID = key.ParseToLong(),
|
||||
//skuID = key.ParseToLong(),
|
||||
goodsId = pddFrontGoods3.goodsId,
|
||||
thumbUrl = thumbUrl,
|
||||
quantity = tbSku2.quantity,
|
||||
isOnsale = 1,
|
||||
//quantity = tbSku2.quantity,
|
||||
//isOnsale = 1,
|
||||
spec = taobaoSku?.propPath, // 淘宝格式与拼多多存在差异,包含冒号与父类型id
|
||||
specs = pddSpecs,
|
||||
price = tbSku2.price.priceMoney.ParseToInt() + 100,
|
||||
@@ -732,7 +732,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
var goods = JsonHelper.DeserializeJsonToObject<pddFrontGoods3Lite>(skuInfo.map_skus);
|
||||
if (goods == null)
|
||||
return;
|
||||
var sku = goods.skus.FirstOrDefault(s => s.skuID.ParseToString() == info.map_sku_id);
|
||||
var sku = goods.skus.FirstOrDefault(s => s.skuId.ParseToString() == info.map_sku_id);
|
||||
if (sku == null)
|
||||
return;
|
||||
|
||||
@@ -763,7 +763,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
var goods = JsonHelper.DeserializeJsonToObject<pddFrontGoods3Lite>(skuInfo.map_skus);
|
||||
if (goods == null)
|
||||
return;
|
||||
var sku = goods.skus.FirstOrDefault(s => s.skuID.ParseToString() == info.map_sku_id);
|
||||
var sku = goods.skus.FirstOrDefault(s => s.skuId.ParseToString() == info.map_sku_id);
|
||||
if (sku == null)
|
||||
return;
|
||||
|
||||
@@ -1151,7 +1151,8 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
order_no = orderItem.order_id,
|
||||
order_sku_id = orderItem.sku_id,
|
||||
out_amount = (txtBuyPriceVal.ParseToDecimal() * 100).ParseToInt(),
|
||||
out_order_no = "tb_" + txtBuyOrderIdVal.Trim(),
|
||||
out_order_no = txtBuyOrderIdVal.Trim(),
|
||||
order_code = txtBuyOrderIdVal.Trim(),
|
||||
purchaser_note = body["purchaserNote"].ParseToString(),
|
||||
created_time = DateTime.Now,
|
||||
});
|
||||
|
||||
@@ -1334,11 +1334,11 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
var pddFrontSkuInfo = new frontSkuInfo3()
|
||||
{
|
||||
skuId = key.ParseToLong(),
|
||||
skuID = key.ParseToLong(),
|
||||
//skuID = key.ParseToLong(),
|
||||
goodsId = pddFrontGoods3.goodsId,
|
||||
thumbUrl = thumbUrl,
|
||||
quantity = tbSku2.quantity,
|
||||
isOnsale = 1,
|
||||
//quantity = tbSku2.quantity,
|
||||
//isOnsale = 1,
|
||||
spec = taobaoSku?.propPath, // 淘宝格式与拼多多存在差异,包含冒号与父类型id
|
||||
specs = pddSpecs,
|
||||
price = tbSku2.price?.priceMoney.ParseToInt() + 100,
|
||||
@@ -1440,7 +1440,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
var goods = JsonHelper.DeserializeJsonToObject<pddFrontGoods3Lite>(skuInfo.map_skus);
|
||||
if (goods == null)
|
||||
return;
|
||||
var sku = goods.skus.FirstOrDefault(s => s.skuID.ParseToString() == info.map_sku_id);
|
||||
var sku = goods.skus.FirstOrDefault(s => s.skuId.ParseToString() == info.map_sku_id);
|
||||
if (sku == null)
|
||||
return;
|
||||
|
||||
@@ -1471,7 +1471,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
var goods = JsonHelper.DeserializeJsonToObject<pddFrontGoods3Lite>(skuInfo.map_skus);
|
||||
if (goods == null)
|
||||
return;
|
||||
var sku = goods.skus.FirstOrDefault(s => s.skuID.ParseToString() == info.map_sku_id);
|
||||
var sku = goods.skus.FirstOrDefault(s => s.skuId.ParseToString() == info.map_sku_id);
|
||||
if (sku == null)
|
||||
return;
|
||||
|
||||
@@ -1543,7 +1543,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
}
|
||||
else
|
||||
{
|
||||
return "获取失败,请关闭拍单窗口重试 " + BaseRegex.GetStringXml(ref sourceCodeRst, "msg", sourceCodeRst);
|
||||
return "溯源码获取失败,请关闭拍单窗口重试 " + BaseRegex.GetStringXml(ref sourceCodeRst, "msg", sourceCodeRst);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1866,6 +1866,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
order_sku_id = orderItem.sku_id,
|
||||
out_amount = (txtBuyPriceVal.ParseToDecimal() * 100).ParseToInt(),
|
||||
out_order_no = "tb_" + txtBuyOrderIdVal.Trim(),
|
||||
order_code = "tb_" + txtBuyOrderIdVal.Trim(),
|
||||
purchaser_note = body["purchaserNote"].ParseToString(),
|
||||
created_time = DateTime.Now,
|
||||
});
|
||||
|
||||
@@ -1356,7 +1356,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
if (!lstTbBuyerOrderVoidAfterSaleOrderSn.Contains(orderItem.order_id + orderItem.sku_id))
|
||||
{
|
||||
lstTbBuyerOrderVoidAfterSaleOrderSn.Add(orderItem.order_id + orderItem.sku_id);
|
||||
await OrderListRowItemCtrl.VoidOrder(orderItem, null, true);
|
||||
await OrderTransitService.VoidOrder(orderItem, null, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -269,11 +269,14 @@
|
||||
Margin="2,0"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Center"
|
||||
d:Opacity="0.5"
|
||||
d:Visibility="Visible"
|
||||
BorderBrush="{StaticResource mainColorBrush}"
|
||||
Click="chkSyncDirectOrderWaybill_Click"
|
||||
Content="同步物流单"
|
||||
FontSize="12"
|
||||
IsChecked="False" />
|
||||
IsChecked="False"
|
||||
Visibility="Collapsed" />
|
||||
</WrapPanel>
|
||||
|
||||
<wpf:SpacingStackPanel Grid.Column="13" HorizontalSpacing="5">
|
||||
|
||||
@@ -483,8 +483,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
pddBuyerAfterSales.AddRange(GetTbBuyerAfterSales(order_ids));
|
||||
|
||||
// 同步单
|
||||
var buyerIds = string.Join(",", pddBuyerOrders.Select(o => o.order_sn));
|
||||
var syncLogistics = GetSyncLogistics(buyerIds);
|
||||
var buyerOrderIds = string.Join(",", pddBuyerOrders.Select(o => o.order_sn));
|
||||
var syncLogistics = GetSyncLogistics(buyerOrderIds);
|
||||
|
||||
// 读取关联拍单商品
|
||||
var buyMapList = GetBuyProdMap(orderItems);
|
||||
@@ -1057,7 +1057,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
|
||||
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));
|
||||
+ "&spu_codes=" + string.Join(",", orderItems.Select(oi => GetHtml.UrlEncodeUtf8(oi.out_product_id)).Distinct()) + "," +
|
||||
string.Join(",", orderItems.Select(oi => oi.product_id).Distinct());
|
||||
dataMap += "&main_user_name=" + BaseClass.MainUserName;
|
||||
var resultMap = GetHtml.PostUtf8(urlMap, dataMap);
|
||||
if (string.IsNullOrEmpty(resultMap) || !resultMap.Contains("\"code\":200"))
|
||||
@@ -1088,15 +1089,15 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
|
||||
public static List<WXBuyMapSkusInfo> GetBuyProdMapSkus(List<oms_wei_order_item_info> orderItems)
|
||||
{
|
||||
//orderItems.RemoveAll(oi => GlobalConfig.BuyMapSkusList.Any(m => m.spu_code == oi.out_product_id || m.spu_code == oi.product_id));
|
||||
if (orderItems == null || orderItems.Count == 0)
|
||||
var ois = orderItems?.Where(oi => !GlobalConfig.BuyMapSkusList.Any(bm => bm.spu_code == oi.out_product_id || bm.spu_code == oi.product_id)).ToList();
|
||||
if (ois == null || ois.Count == 0)
|
||||
{
|
||||
return GlobalConfig.BuyMapSkusList.Where(m => orderItems.Any(oi => m.spu_code == oi.out_product_id || m.spu_code == oi.product_id)).ToList();
|
||||
}
|
||||
|
||||
var url = BaseClass.Build29WxObjString("order/wx_get_buy_pord_map_skus");
|
||||
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));
|
||||
+ "&spu_codes=" + string.Join(",", ois.Select(oi => GetHtml.UrlEncodeUtf8(oi.out_product_id)).Distinct()) + "," + string.Join(",", ois.Select(oi => oi.product_id).Distinct());
|
||||
dataMap += "&main_user_name=" + BaseClass.MainUserName;
|
||||
var resultSkusMap = GetHtml.PostUtf8(url, dataMap);
|
||||
if (string.IsNullOrEmpty(resultSkusMap) || !resultSkusMap.Contains("\"code\":200"))
|
||||
@@ -2750,7 +2751,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
continue;
|
||||
}
|
||||
|
||||
await Task.Run(() => { MainWindow.Instance.orderListCtrl.GetOrder(tmpOrderItem.order_id); });
|
||||
await Task.Run(async() => { await MainWindow.Instance.orderListCtrl.GetOrder(tmpOrderItem.order_id); });
|
||||
|
||||
|
||||
oms_wei_order_info order = null;
|
||||
@@ -2931,7 +2932,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
|
||||
html3 = await GetHtml.PostUtf8Async(url3, data3);
|
||||
}
|
||||
await Task.Run(() => { MainWindow.Instance.orderListCtrl.GetOrder(tmpOrderItem.order_id); });
|
||||
await Task.Run(async() => { await MainWindow.Instance.orderListCtrl.GetOrder(tmpOrderItem.order_id); });
|
||||
Dispatcher.Invoke(new Action(() => { BottomMsg = "正在处理买手退货,总计:" + tmpOrderItems.Count + ",已处理:" + index; }));
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -634,8 +634,8 @@
|
||||
Foreground="{Binding BuyerTransitWaybillStatusStrColor}"
|
||||
Text="{Binding BuyerTransitWaybillStatusStr}" />
|
||||
</Border>
|
||||
<Border
|
||||
x:Name="borderWarehouseStatas"
|
||||
<!--<Border
|
||||
x:Name="borderWarehouseStatus"
|
||||
Height="auto"
|
||||
MinWidth="30"
|
||||
Margin="0,0,4,0"
|
||||
@@ -647,7 +647,7 @@
|
||||
BorderThickness="1"
|
||||
CornerRadius="2"
|
||||
Cursor="Hand"
|
||||
MouseUp="borderWarehouseStatas_MouseUp"
|
||||
MouseUp="borderWarehouseStatus_MouseUp"
|
||||
Visibility="{Binding WarehouseWaybillStatusStrVisibility}">
|
||||
<TextBlock
|
||||
x:Name="txtWarehouseStatus"
|
||||
@@ -658,8 +658,33 @@
|
||||
Foreground="{Binding WarehouseWaybillStatusStrColor}"
|
||||
MouseEnter="txtWarehouseStatus_MouseEnter"
|
||||
Text="{Binding WarehouseWaybillStatusStr}" />
|
||||
</Border>
|
||||
</Border>-->
|
||||
<Border
|
||||
x:Name="borderWarehousePackageStatus"
|
||||
Height="auto"
|
||||
MinWidth="30"
|
||||
Margin="0,0,4,0"
|
||||
HorizontalAlignment="Center"
|
||||
d:Background="{StaticResource PageOkBrush50}"
|
||||
d:BorderBrush="{StaticResource PageOkBrush}"
|
||||
Background="{Binding WarehouseWaybillStatusBackColor}"
|
||||
BorderBrush="{Binding WarehouseWaybillStatusBorderColor}"
|
||||
BorderThickness="1"
|
||||
CornerRadius="2"
|
||||
Cursor="Hand"
|
||||
MouseUp="borderWarehouseStatus_MouseUp"
|
||||
Visibility="{Binding TransitPackageLatestWarehouseStatusStrVisibility}">
|
||||
<TextBlock
|
||||
x:Name="txtWarehouseStatus"
|
||||
MinWidth="20"
|
||||
VerticalAlignment="Center"
|
||||
d:Text="包裹状态"
|
||||
Background="Transparent"
|
||||
Foreground="{Binding WarehouseWaybillStatusStrColor}"
|
||||
MouseEnter="txtWarehouseStatus_MouseEnter"
|
||||
Text="{Binding TransitPackageLatestWarehouseStatusStr}" />
|
||||
</Border>
|
||||
<!--<Border
|
||||
Height="auto"
|
||||
MinWidth="30"
|
||||
Margin="0,0,4,0"
|
||||
@@ -677,6 +702,25 @@
|
||||
Background="Transparent"
|
||||
Foreground="White"
|
||||
Text="{Binding TransitRefundVoidStatusStr}" />
|
||||
</Border>-->
|
||||
<Border
|
||||
Height="auto"
|
||||
MinWidth="30"
|
||||
Margin="0,0,4,0"
|
||||
HorizontalAlignment="Center"
|
||||
Background="{StaticResource pageColorBrush}"
|
||||
BorderBrush="{StaticResource pageColorBrush}"
|
||||
BorderThickness="1"
|
||||
CornerRadius="2"
|
||||
Visibility="{Binding TransitPackageLatestVoidStatusStrVisibility}">
|
||||
<TextBlock
|
||||
MinWidth="20"
|
||||
Padding="0"
|
||||
VerticalAlignment="Center"
|
||||
d:Text="作废状态"
|
||||
Background="Transparent"
|
||||
Foreground="White"
|
||||
Text="{Binding TransitPackageLatestVoidStatusStr}" />
|
||||
</Border>
|
||||
</WrapPanel>
|
||||
|
||||
@@ -1399,7 +1443,8 @@
|
||||
HorizontalAlignment="Center"
|
||||
Click="btnTransitInfo_Click"
|
||||
Content="云仓详情"
|
||||
Style="{StaticResource BasePageButtonLightStyle}" />
|
||||
Style="{StaticResource BasePageButtonLightStyle}"
|
||||
Visibility="Collapsed" />
|
||||
|
||||
<Button
|
||||
x:Name="btnMapSkus"
|
||||
@@ -1463,10 +1508,12 @@
|
||||
MinWidth="38"
|
||||
Margin="0,0,0,0"
|
||||
HorizontalAlignment="Center"
|
||||
d:Visibility="Visible"
|
||||
Click="btnDirectBuyOrder_Click"
|
||||
Content="直发拍单"
|
||||
Style="{StaticResource BasePageButtonLightStyle}"
|
||||
Visibility="{Binding BtnDirectBuyOrderVisibility}" />
|
||||
Visibility="Collapsed" />
|
||||
<!-- Visibility="{Binding BtnDirectBuyOrderVisibility}" -->
|
||||
|
||||
<!-- 礼品发货 -->
|
||||
<Button
|
||||
@@ -1486,7 +1533,8 @@
|
||||
HorizontalAlignment="Right"
|
||||
VerticalAlignment="Center"
|
||||
Orientation="Vertical"
|
||||
VerticalSpacing="3">
|
||||
VerticalSpacing="5">
|
||||
|
||||
<Button
|
||||
x:Name="btnChangeWaybill"
|
||||
MinWidth="38"
|
||||
@@ -1500,7 +1548,8 @@
|
||||
FontSize="11"
|
||||
Style="{StaticResource BasePageButtonLightStyle}"
|
||||
Visibility="{Binding ItemOrder.IsShowChangeWaybillBtn, Converter={StaticResource VisibleToVisibilityConverter}}" />
|
||||
<Button
|
||||
|
||||
<!--<Button
|
||||
x:Name="btnAddEditTransitWarehouseReject_New"
|
||||
MinWidth="38"
|
||||
MinHeight="20"
|
||||
@@ -1553,7 +1602,75 @@
|
||||
Content="滞留补发买家"
|
||||
FontSize="11"
|
||||
Style="{StaticResource BasePageButtonLightStyle}"
|
||||
Visibility="{Binding ItemOrder.IsShowTransitExtraPackagesBtn, Converter={StaticResource VisibleToVisibilityConverter}}" />
|
||||
Visibility="{Binding ItemOrder.IsShowTransitExtraPackagesBtn, Converter={StaticResource VisibleToVisibilityConverter}}" />-->
|
||||
<Button
|
||||
x:Name="btnVoidPackage"
|
||||
MinWidth="38"
|
||||
MinHeight="20"
|
||||
Margin="0,0,0,0"
|
||||
Padding="0"
|
||||
HorizontalAlignment="Center"
|
||||
d:Content="作废包裹"
|
||||
d:Visibility="Visible"
|
||||
Click="btnVoidTransitOrder_Click"
|
||||
Content="{Binding VoidPackageTypeStr}"
|
||||
FontSize="11"
|
||||
Style="{StaticResource BasePageButtonLightStyle}"
|
||||
Visibility="{Binding TransitPackageLatest.VoidPackageBtnVisibility}" />
|
||||
<Button
|
||||
x:Name="btnAddEditTransitWarehouseReject_New"
|
||||
MinWidth="38"
|
||||
MinHeight="20"
|
||||
Margin="0,0,0,0"
|
||||
Padding="0"
|
||||
HorizontalAlignment="Center"
|
||||
d:Visibility="Visible"
|
||||
Click="btnAddEditTransitWarehouseReject_Click"
|
||||
Style="{StaticResource BasePageButtonLightStyle}"
|
||||
Visibility="{Binding TransitPackageLatest.RejectPackageBtnVisibility}">
|
||||
<TextBlock>
|
||||
云仓拒收<LineBreak />
|
||||
退回总店</TextBlock>
|
||||
</Button>
|
||||
<Button
|
||||
x:Name="btnAddEditTransitWarehouseAfterSale_n1"
|
||||
MinWidth="38"
|
||||
MinHeight="20"
|
||||
Margin="0,0,0,0"
|
||||
Padding="0"
|
||||
Click="btnAddEditTransitWarehouseAfterSale_Click"
|
||||
Style="{StaticResource BasePageButtonLightStyle}"
|
||||
Visibility="{Binding TransitPackageLatest.ReturnPackageBtnVisibility}">
|
||||
<TextBlock>
|
||||
拒收失败<LineBreak />
|
||||
转寄总店</TextBlock>
|
||||
</Button>
|
||||
<Button
|
||||
x:Name="btnAddEditTransitWarehouseAfterSale_n2"
|
||||
MinWidth="38"
|
||||
MinHeight="20"
|
||||
Margin="0,0,0,0"
|
||||
Padding="0"
|
||||
Click="btnAddEditTransitWarehouseAfterSale_Click"
|
||||
Style="{StaticResource BasePageButtonLightStyle}"
|
||||
Visibility="{Binding TransitPackageLatest.InterceptPackageBtnVisibility}">
|
||||
<TextBlock>
|
||||
出库拦截<LineBreak />
|
||||
退回仓库</TextBlock>
|
||||
</Button>
|
||||
<Button
|
||||
x:Name="btnTransitExtraPackages"
|
||||
Height="20"
|
||||
MinWidth="38"
|
||||
Margin="0,0,0,0"
|
||||
Padding="0"
|
||||
HorizontalAlignment="Center"
|
||||
d:Visibility="Visible"
|
||||
Click="btnTransitExtraPackages_Click"
|
||||
Content="滞留补发买家"
|
||||
FontSize="11"
|
||||
Style="{StaticResource BasePageButtonLightStyle}"
|
||||
Visibility="{Binding TransitPackageLatest.ExtraPackagesBtnVisibility}" />
|
||||
</wpf:SpacingStackPanel>
|
||||
</wpf:SpacingStackPanel>
|
||||
</Grid>
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using _29WxOrderWpf.BaseWindows;
|
||||
using WxOrder.Framework.Commons;
|
||||
using _29WxOrderWpf.Converters;
|
||||
using _29WxOrderWpf.Ctrls.BuyerCtrls;
|
||||
using _29WxOrderWpf.UserControls;
|
||||
@@ -30,6 +29,7 @@ using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Interop;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Animation;
|
||||
using System.Windows.Media.Imaging;
|
||||
@@ -42,6 +42,7 @@ using Work._29Tools.BLL;
|
||||
using Work._29Tools.Forms.ShopForms;
|
||||
using Work._29Tools.Forms.ToolForms;
|
||||
using Work.BaseForms;
|
||||
using WxOrder.Framework.Commons;
|
||||
using static _29WxOrderWpf.Services.ShipGiftService;
|
||||
using static System.Net.WebRequestMethods;
|
||||
|
||||
@@ -1019,177 +1020,57 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
{
|
||||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||||
{
|
||||
var transitOrder = orderItem.TransitPackageLatest?.oms_wei_external_procurement_log_info;
|
||||
var returnOrder = orderItem.TransitPackageLatest?.oms_wei_external_procurement_after_sale_info;
|
||||
var extOrder = orderItem.TransitPackageLatest.oms_wei_transfer_extra_package;
|
||||
|
||||
btnVoidTransitOrder.IsEnabled = false;
|
||||
await VoidOrder(orderItem);
|
||||
btnVoidPackage.IsEnabled = false;
|
||||
|
||||
// 作废发货包裹并重新拍单
|
||||
// 作废发货包裹
|
||||
if (transitOrder != null)
|
||||
{
|
||||
transitOrder = orderItem.ItemTransitOrders.FirstOrDefault(t => t.order_code == transitOrder.order_code) ?? transitOrder;
|
||||
await OrderTransitService.VoidOrder(orderItem, transitOrder);
|
||||
}
|
||||
// 作废退货包裹
|
||||
else if (returnOrder != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
returnOrder = orderItem.ItemTransitOrderAfterSales.FirstOrDefault(af => af.external_order_no == returnOrder.external_order_no);
|
||||
var voidResult = await OrderTransitService.VoidAfterSalePackage(orderItem, returnOrder);
|
||||
if (!string.IsNullOrEmpty(voidResult))
|
||||
BaseMsgWindow.ShowInfo(voidResult);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
BaseMsgWindow.ShowError(ex.Message);
|
||||
}
|
||||
}
|
||||
// 作废额外包裹
|
||||
else if (extOrder != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
extOrder = orderItem.ItemTransitExtraOrders.FirstOrDefault(ex => ex.batchId == extOrder.batchId) ?? extOrder;
|
||||
var voidResult = await OrderTransitService.VoidExtraPackage(orderItem, extOrder);
|
||||
if (!string.IsNullOrEmpty(voidResult))
|
||||
BaseMsgWindow.ShowInfo(voidResult);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
BaseMsgWindow.ShowError(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
btnVoidTransitOrder.IsEnabled = true;
|
||||
btnVoidPackage.IsEnabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 作废中转仓订单
|
||||
/// </summary>
|
||||
/// <param name="orderItem"></param>
|
||||
/// <param name="isSilent"></param>
|
||||
/// <param name="UpdateOrderBeforeVoid">作废前是否更新服务端订单状态</param>
|
||||
public static async Task VoidOrder(oms_wei_order_item_info orderItem, oms_wei_external_procurement_log_info transitOrder = null, bool isSilent = false, bool UpdateOrderBeforeVoid = true)
|
||||
{
|
||||
// 作废前查询订单状态
|
||||
var orderId = orderItem.order_id;
|
||||
var skuId = orderItem.sku_id;
|
||||
if (UpdateOrderBeforeVoid)
|
||||
await Task.Run(() => { 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 (transitOrder == null)
|
||||
transitOrder = orderItem.ItemTransitOrder ?? orderItem.ItemTransitOrderWithVoid;
|
||||
|
||||
if (transitOrder == null)
|
||||
{
|
||||
if (!isSilent)
|
||||
BaseMsgWindow.ShowError("要作废的中转订单不存在,请确认后重试");
|
||||
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"] = transitOrder.out_order_no;
|
||||
data2["outOrderNo"] = transitOrder.order_code;
|
||||
var dataStr2 = JsonHelper.SerializeObject(data2);
|
||||
var discardRst = await HttpResponseWXBLL.e57PostResponseAsync(url2, dataStr2);
|
||||
if (discardRst.Contains("\"code\":0") || discardRst.Contains("\"code\":200"))
|
||||
{
|
||||
//MainWindow.Instance.orderListCtrl.GetOrder(orderId);
|
||||
// 修改为在买手退款流程后提示作废信息
|
||||
}
|
||||
else
|
||||
{
|
||||
var msg = BaseRegex.GetStringJson(ref discardRst, "msg");
|
||||
if (!isSilent)
|
||||
BaseMsgWindow.ShowInfo("订单作废失败,服务端返回 " + msg);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#region 处理买手售后
|
||||
if (transitOrder.out_order_no.ParseToString().StartsWith("tb_")) // 淘宝买手售后
|
||||
{
|
||||
if (!isSilent)
|
||||
BaseMsgWindow.ShowError("淘宝买手暂不支持自动售后,作废后请手动申请售后");
|
||||
else
|
||||
transitOrder.refund_status = "淘宝买手暂不支持自动售后,作废后需手动申请售后";
|
||||
}
|
||||
else // 拼多多买手售后
|
||||
{
|
||||
bool noBuyer = false;
|
||||
var buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_id == transitOrder.buyer_account || b.buyer_name == transitOrder.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;
|
||||
order = PDDBuyerOrderReadCtrl.lstPddBuyerOrderInfoLite.FirstOrDefault(o => o.order_sn == transitOrder.out_order_no);
|
||||
if (order == null)
|
||||
order = new PddBuyerOrderLiteInfo()
|
||||
{
|
||||
order_status_prompt = "待发货",
|
||||
order_amount = transitOrder.out_amount,
|
||||
order_sn = transitOrder.out_order_no
|
||||
};
|
||||
PDDBuyerOrderReadCtrl.lstPddBuyerOrderInfoLite.Add(order);
|
||||
|
||||
var pddAfterRst = "";
|
||||
await Task.Run(() =>
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 更新拍单余额
|
||||
StartUp.UpdateBalance();
|
||||
#endregion
|
||||
|
||||
#region 立即更新订单
|
||||
transitOrder = orderItem.ItemTransitOrders.FirstOrDefault(o => o.order_code == transitOrder.order_code) ?? transitOrder;
|
||||
transitOrder.order_void_status = 1;
|
||||
orderItem.SetOrderItemTextProperty();
|
||||
#endregion
|
||||
|
||||
#region 重新过滤订单
|
||||
OrderListCtrl.InitOrderItemObservableProp(orderItem);
|
||||
MainWindow.Instance.orderListCtrl.FilterOrders();
|
||||
if (!isSilent)
|
||||
BaseMsgWindow.ShowInfo("订单作废成功,请重新拍单");
|
||||
#endregion
|
||||
}
|
||||
|
||||
|
||||
private void txtWarehouseStatus_MouseEnter(object sender, MouseEventArgs e)
|
||||
{
|
||||
@@ -1209,114 +1090,42 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
{
|
||||
if (sender == btnAddEditTransitWarehouseReject && !string.IsNullOrWhiteSpace(orderItem.ItemTransitOrderWithVoid?.express_1_waybill))
|
||||
{
|
||||
ShowRejectTransitOrder(orderItem, orderItem.ItemTransitOrderWithVoid?.express_1_waybill);
|
||||
OrderTransitService.ShowRejectTransitOrder(orderItem, orderItem.ItemTransitOrderWithVoid?.express_1_waybill);
|
||||
}
|
||||
else if (sender == btnAddEditTransitWarehouseReject_New)
|
||||
{
|
||||
try
|
||||
btnAddEditTransitWarehouseReject_New.IsEnabled = false;
|
||||
|
||||
var transitOrder = orderItem.TransitPackageLatest.oms_wei_external_procurement_log_info;
|
||||
var returnOrder = orderItem.TransitPackageLatest.oms_wei_external_procurement_after_sale_info;
|
||||
var extOrder = orderItem.TransitPackageLatest.oms_wei_transfer_extra_package;
|
||||
|
||||
// 拒收发货包裹
|
||||
if (transitOrder != null)
|
||||
{
|
||||
var transitOrder = orderItem.ItemTransitOrder ?? orderItem.ItemTransitOrderWithVoid;
|
||||
var rejectRst = await RejectTransitOrder(orderItem, transitOrder);
|
||||
if (!string.IsNullOrEmpty(rejectRst))
|
||||
BaseMsgWindow.ShowInfo(rejectRst);
|
||||
try
|
||||
{
|
||||
transitOrder = orderItem.ItemTransitOrders.FirstOrDefault(t => t.order_code == transitOrder.order_code) ?? transitOrder;
|
||||
var rejectRst = await OrderTransitService.RejectTransitOrder(orderItem, transitOrder);
|
||||
if (!string.IsNullOrEmpty(rejectRst))
|
||||
BaseMsgWindow.ShowInfo(rejectRst);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
BaseMsgWindow.ShowError(ex.Message);
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
// 拒收额外包裹(额外包裹暂不支持多件商品发货,故暂不存在拒收功能)
|
||||
else if (extOrder != null)
|
||||
{
|
||||
BaseMsgWindow.ShowError(ex.Message);
|
||||
}
|
||||
|
||||
btnAddEditTransitWarehouseReject_New.IsEnabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询拒收状态
|
||||
/// </summary>
|
||||
/// <param name="orderItem"></param>
|
||||
/// <param name="upperWaybill"></param>
|
||||
public static void ShowRejectTransitOrder(oms_wei_order_item_info orderItem, string upperWaybill)
|
||||
{
|
||||
BaiduGetWaybillInfoView buyerLoginForm = new BaiduGetWaybillInfoView(orderItem);
|
||||
buyerLoginForm.ViewModel.InitUrl = "https://www.baidu.com/s?ie=UTF-8&wd=" + upperWaybill;
|
||||
|
||||
new DialogWindow()
|
||||
{
|
||||
Width = 1280,
|
||||
Height = 800,
|
||||
Title = "物流拒收查询",
|
||||
Content = buyerLoginForm,
|
||||
}.Show();
|
||||
return;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 云仓申请拒收退回总店
|
||||
/// </summary>
|
||||
/// <param name="orderItem"></param>
|
||||
public static async Task<string> RejectTransitOrder(oms_wei_order_item_info orderItem, oms_wei_external_procurement_log_info _itemTransitOrder)
|
||||
{
|
||||
string msg = $@"
|
||||
云仓拒收退回总店
|
||||
|
||||
说 明:店铺产生售后,拒收成功,货物会原物流退回总店。
|
||||
拒收条件:(总店物流没到云仓/未签收前)。顺丰/京东无法
|
||||
拒收,直接总店申请仅退款让总店拦截。
|
||||
收 费:免费";
|
||||
|
||||
if (BaseMsgWindow.ShowConfirm(msg, "云仓拒收退回总店", null, MsgWindowLevel.LARGE, 300).DialogResult != true)
|
||||
return "";
|
||||
|
||||
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);
|
||||
|
||||
var itemTransitOrder = orderItem.ItemTransitOrders.FirstOrDefault(o => o.order_code == _itemTransitOrder?.order_code && o.out_order_no == _itemTransitOrder?.out_order_no);
|
||||
if (itemTransitOrder == null)
|
||||
itemTransitOrder = _itemTransitOrder;
|
||||
|
||||
//if (itemTransitOrder?.warehouse_status == 3) { BaseMsgWindow.ShowError("商品已拒收或拦截!"); return; }
|
||||
//if (itemTransitOrder?.warehouse_status == 2) { BaseMsgWindow.ShowError("商品已出库,请选择退回中转仓!"); return; }
|
||||
//if (string.IsNullOrEmpty(orderItem.PddBuyerOrder?.order_sn)) { BaseMsgWindow.ShowError("商品未出单,请直接去拼多多买手申请退款"); return; }
|
||||
if (itemTransitOrder?.has_reject == 1 || 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"] = 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, html, "msg");
|
||||
//BaseMsgWindow.ShowAnimateMessage("申请失败", "Error", 3);
|
||||
throw new Exception("申请失败" + err);
|
||||
}
|
||||
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 = await GetHtml.PostUtf8Async(url, data);
|
||||
|
||||
itemTransitOrder.has_reject = rejectStatus;
|
||||
OrderListCtrl.InitOrderItemObservableProp(orderItem);
|
||||
|
||||
return "申请成功";
|
||||
}
|
||||
|
||||
private void btnAddEditTransitWarehouseAfterSale_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
//if (this.DataContext is oms_wei_order_item_info orderItem)
|
||||
@@ -1340,21 +1149,50 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
|
||||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||||
{
|
||||
bool isOutWarehouse = sender == btnAddEditTransitWarehouseAfterSale_n1;
|
||||
ShowReturnPackageWindow(orderItem, orderItem.ItemTransitOrder ?? orderItem.ItemTransitOrderWithVoid, isOutWarehouse);
|
||||
//bool isOutWarehouse = sender == btnAddEditTransitWarehouseAfterSale_n1;
|
||||
//ShowReturnPackageWindow(orderItem, orderItem.ItemTransitOrder ?? orderItem.ItemTransitOrderWithVoid, isOutWarehouse);
|
||||
|
||||
btnAddEditTransitWarehouseAfterSale_n1.IsEnabled = false;
|
||||
btnAddEditTransitWarehouseAfterSale_n2.IsEnabled = false;
|
||||
|
||||
var transitOrder = orderItem.TransitPackageLatest.oms_wei_external_procurement_log_info;
|
||||
var returnOrder = orderItem.TransitPackageLatest.oms_wei_external_procurement_after_sale_info;
|
||||
var extOrder = orderItem.TransitPackageLatest.oms_wei_transfer_extra_package;
|
||||
|
||||
if (transitOrder != null)
|
||||
{
|
||||
bool isOutWarehouse = sender == btnAddEditTransitWarehouseAfterSale_n1;
|
||||
ShowReturnPackageWindow(orderItem, orderItem.TransitPackageLatest, isOutWarehouse);
|
||||
}
|
||||
else if (extOrder != null)
|
||||
{
|
||||
bool isOutWarehouse = sender == btnAddEditTransitWarehouseAfterSale_n1;
|
||||
ShowReturnPackageWindow(orderItem, orderItem.TransitPackageLatest, isOutWarehouse);
|
||||
}
|
||||
|
||||
btnAddEditTransitWarehouseAfterSale_n1.IsEnabled = true;
|
||||
btnAddEditTransitWarehouseAfterSale_n2.IsEnabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
public static void ShowReturnPackageWindow(oms_wei_order_item_info orderItem, oms_wei_external_procurement_log_info itemTransitOrder, bool isOutWarehouse)
|
||||
public static void ShowReturnPackageWindow(oms_wei_order_item_info orderItem, oms_wei_order_item_transit_detail_info itemTransitInfo, bool isOutWarehouse)
|
||||
{
|
||||
string warehouse_status = "";
|
||||
if (itemTransitOrder?.warehouse_status == 3 || itemTransitOrder?.warehouse_status == 1)
|
||||
if (itemTransitInfo?.WarehouseStatus == "拦截到仓")
|
||||
warehouse_status = "已拦截到仓";
|
||||
else if (itemTransitInfo?.WarehouseStatus == "已入库")
|
||||
warehouse_status = "已到仓";
|
||||
if (itemTransitOrder?.warehouse_status == 2)
|
||||
else if (itemTransitInfo?.WarehouseStatus == "已出库")
|
||||
warehouse_status = "已出仓";
|
||||
else
|
||||
warehouse_status = "未到仓";
|
||||
|
||||
if (itemTransitInfo.oms_wei_external_procurement_log_info == null && itemTransitInfo.oms_wei_transfer_extra_package == null)
|
||||
{
|
||||
BaseMsgWindow.ShowError("未找到发货或者额外包裹,无法转寄/退回包裹");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!isOutWarehouse) /* 未出仓 */
|
||||
{
|
||||
string msg = $@"
|
||||
@@ -1367,7 +1205,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
if (BaseMsgWindow.ShowConfirm(msg, "拒收失败转寄总店", null, MsgWindowLevel.LARGE, 300).DialogResult != true)
|
||||
return;
|
||||
}
|
||||
else
|
||||
else /* 已出仓 */
|
||||
{
|
||||
string msg = $@"
|
||||
出库拦截退回仓库({warehouse_status})
|
||||
@@ -1381,7 +1219,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
return;
|
||||
}
|
||||
|
||||
TransitAfterSaleWindow transitAfterSaleWindow = new TransitAfterSaleWindow(orderItem, itemTransitOrder);
|
||||
TransitAfterSaleWindow transitAfterSaleWindow = new TransitAfterSaleWindow(orderItem, itemTransitInfo);
|
||||
transitAfterSaleWindow.ShowDialog();
|
||||
}
|
||||
|
||||
@@ -2016,55 +1854,54 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
|
||||
}
|
||||
|
||||
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)
|
||||
// 发货包裹滞留补发
|
||||
if (orderItem.TransitPackageLatest?.oms_wei_external_procurement_log_info != null)
|
||||
{
|
||||
BaseMsgWindow.ShowError("非中转仓订单不支持补发!");
|
||||
return;
|
||||
// 不是中转仓发货包裹,直接返回
|
||||
//var transitOrder = orderItem.ItemTransitOrder ?? orderItem.ItemTransitOrderWithVoid;
|
||||
var transitOrder = orderItem.TransitPackageLatest?.oms_wei_external_procurement_log_info;
|
||||
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, transitOrder);
|
||||
new DialogWindow()
|
||||
{
|
||||
Title = "滞留补发买家",
|
||||
Content = transitExtraPackagesView,
|
||||
}.ShowDialog();
|
||||
}
|
||||
|
||||
// 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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2135,16 +1972,11 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
}
|
||||
}
|
||||
|
||||
private async void borderWarehouseStatas_MouseUp(object sender, MouseButtonEventArgs e)
|
||||
private async void borderWarehouseStatus_MouseUp(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
private void btnTransitInfo_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
//return;
|
||||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||||
{
|
||||
oms_wei_order_item_transit_info transitInfo = new oms_wei_order_item_transit_info()
|
||||
oms_wei_order_item_transit_model transitInfo = new oms_wei_order_item_transit_model()
|
||||
{
|
||||
OrderItem = orderItem,
|
||||
};
|
||||
@@ -2160,6 +1992,28 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||||
}.ShowDialog();
|
||||
}
|
||||
}
|
||||
|
||||
private void btnTransitInfo_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
////return;
|
||||
//if (this.DataContext is oms_wei_order_item_info orderItem)
|
||||
//{
|
||||
// oms_wei_order_item_transit_model transitInfo = new oms_wei_order_item_transit_model()
|
||||
// {
|
||||
// OrderItem = orderItem,
|
||||
// };
|
||||
|
||||
// OrderTransitListCtrl OrderTransitListCtrl = new OrderTransitListCtrl(transitInfo);
|
||||
// new DialogWindow()
|
||||
// {
|
||||
// Title = "仓库订单详情 - 当前订单 " + orderItem.order_id,
|
||||
// Content = OrderTransitListCtrl,
|
||||
// Width = SystemParameters.PrimaryScreenWidth < 1920 ? SystemParameters.PrimaryScreenWidth : SystemParameters.PrimaryScreenWidth * 90 / 100,
|
||||
// Height = SystemParameters.PrimaryScreenHeight * 90 / 100,
|
||||
// WindowStartupLocation = WindowStartupLocation.CenterScreen,
|
||||
// }.ShowDialog();
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,14 +23,14 @@ public partial class OrderTransitListCtrl : UserControl
|
||||
{
|
||||
OrderTransitListCtrlViewModel ViewModel;
|
||||
|
||||
public OrderTransitListCtrl(oms_wei_order_item_transit_info transitInfo)
|
||||
public OrderTransitListCtrl(oms_wei_order_item_transit_model transitInfo)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
UpdateViewModel(transitInfo);
|
||||
}
|
||||
|
||||
public void UpdateViewModel(oms_wei_order_item_transit_info transitInfo)
|
||||
public void UpdateViewModel(oms_wei_order_item_transit_model transitInfo)
|
||||
{
|
||||
ViewModel = new OrderTransitListCtrlViewModel(transitInfo);
|
||||
ViewModel.RequestClose += ViewModel_RequestClose;
|
||||
|
||||
@@ -12,7 +12,7 @@ public class OrderTransitListCtrlViewModel : PropertyNotifyObject
|
||||
{
|
||||
private volatile bool _isWindowLoaded = false;
|
||||
|
||||
public oms_wei_order_item_transit_info TransitInfo
|
||||
public oms_wei_order_item_transit_model TransitInfo
|
||||
{
|
||||
get { return this.GetValue(x => x.TransitInfo); }
|
||||
set { this.SetValue(x => x.TransitInfo, value); }
|
||||
@@ -37,7 +37,7 @@ public class OrderTransitListCtrlViewModel : PropertyNotifyObject
|
||||
/// <summary>请求关闭窗口</summary>
|
||||
public event Action RequestClose;
|
||||
|
||||
public OrderTransitListCtrlViewModel(oms_wei_order_item_transit_info transitInfo)
|
||||
public OrderTransitListCtrlViewModel(oms_wei_order_item_transit_model transitInfo)
|
||||
{
|
||||
TransitInfo = transitInfo;
|
||||
OrderItem = transitInfo?.OrderItem;
|
||||
|
||||
@@ -387,7 +387,7 @@
|
||||
Padding="2"
|
||||
Click="btnAddEditTransitWarehouseAfterSale_Click"
|
||||
Style="{StaticResource BasePageButtonLightStyle}"
|
||||
Visibility="{Binding ReturnPackageBtnVisibility}">
|
||||
Visibility="{Binding InterceptPackageBtnVisibility}">
|
||||
出库拦截退回仓库
|
||||
</Button>
|
||||
<Button
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using _29WxOrderWpf.BaseWindows;
|
||||
using _29WxOrderWpf.Views;
|
||||
using AllBase;
|
||||
using AllBase.Helper;
|
||||
using AllBase.Model.DBModel;
|
||||
@@ -20,6 +21,7 @@ using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
using Work;
|
||||
using Work._29Tools.BLL;
|
||||
using WxOrder.Framework.Commons;
|
||||
|
||||
namespace _29WxOrderWpf.Ctrls.OrderCtrls;
|
||||
|
||||
@@ -51,14 +53,14 @@ public partial class OrderTransitListDetailCtrl : UserControl
|
||||
if (transitOrder != null)
|
||||
{
|
||||
transitOrder = orderItem.ItemTransitOrders.FirstOrDefault(t => t.order_code == transitOrder.order_code) ?? transitOrder;
|
||||
await OrderListRowItemCtrl.VoidOrder(orderItem, transitOrder);
|
||||
await OrderTransitService.VoidOrder(orderItem, transitOrder);
|
||||
}
|
||||
// 作废退货包裹
|
||||
else if (returnOrder != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
var voidResult = await VoidAfterSalePackage(orderItem, returnOrder);
|
||||
var voidResult = await OrderTransitService.VoidAfterSalePackage(orderItem, returnOrder);
|
||||
if (!string.IsNullOrEmpty(voidResult))
|
||||
BaseMsgWindow.ShowInfo(voidResult);
|
||||
}
|
||||
@@ -72,7 +74,7 @@ public partial class OrderTransitListDetailCtrl : UserControl
|
||||
{
|
||||
try
|
||||
{
|
||||
var voidResult = await VoidExtraPackage(orderItem, extOrder);
|
||||
var voidResult = await OrderTransitService.VoidExtraPackage(orderItem, extOrder);
|
||||
if (!string.IsNullOrEmpty(voidResult))
|
||||
BaseMsgWindow.ShowInfo(voidResult);
|
||||
}
|
||||
@@ -87,78 +89,15 @@ public partial class OrderTransitListDetailCtrl : UserControl
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 作废售后包裹
|
||||
/// </summary>
|
||||
/// <param name="returnOrder"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<string> VoidAfterSalePackage(oms_wei_order_item_info orderItem, oms_wei_external_procurement_after_sale_info returnOrder)
|
||||
{
|
||||
string typeStr = returnOrder?.pack_type == 1 ? "作废分销发货退货包裹" : "作废额外包裹退货包裹";
|
||||
string msg = $@"确定{typeStr}吗?";
|
||||
|
||||
if (BaseMsgWindow.ShowConfirm(msg, typeStr, null, MsgWindowLevel.MEDIUM, 300).DialogResult != true)
|
||||
return "";
|
||||
|
||||
string url2 = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/orders/interceptReturn";
|
||||
var data = new JObject();
|
||||
data["externalOrderNo"] = returnOrder.external_order_no;
|
||||
data["orderNo"] = returnOrder.order_no; // 订单编号
|
||||
data["orderCode"] = returnOrder.order_code;
|
||||
data["packType"] = returnOrder.pack_type; /* 1作废分销发货退货包裹 2作废额外包裹退货包裹 */
|
||||
var dataStr2 = JsonHelper.SerializeObject(data);
|
||||
var voidRst = await HttpResponseWXBLL.e57PostResponseAsync(url2, dataStr2);
|
||||
|
||||
if (voidRst.Contains("\"code\":0") || voidRst.Contains("\"code\":200"))
|
||||
{
|
||||
StartUp.UpdateBalance();
|
||||
returnOrder.order_void_status = 1;
|
||||
orderItem.SetOrderItemTextProperty();
|
||||
return typeStr + "成功!";
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception(typeStr + "失败,服务端返回:" + BaseRegex.GetStringJsonByRegs(ref voidRst, voidRst, "msg"));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 作废额外包裹
|
||||
/// </summary>
|
||||
/// <param name="orderItem"></param>
|
||||
/// <param name="extraOrder"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="Exception"></exception>
|
||||
public static async Task<string> VoidExtraPackage(oms_wei_order_item_info orderItem, oms_wei_transfer_extra_package extraOrder)
|
||||
{
|
||||
string typeStr = "作废额外包裹";
|
||||
string msg = $@"确定{typeStr}吗?";
|
||||
|
||||
if (BaseMsgWindow.ShowConfirm(msg, typeStr, null, MsgWindowLevel.MEDIUM, 300).DialogResult != true)
|
||||
return "";
|
||||
|
||||
var data = new JObject();
|
||||
data["batchId"] = extraOrder.batchId;
|
||||
data["orderCode"] = extraOrder.order_code;
|
||||
var dataStr = JsonHelper.SerializeObject(data);
|
||||
var url = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/extraOrders/void";
|
||||
var voidRst = await HttpResponseWXBLL.e57PostResponseAsync(url, dataStr);
|
||||
if (BaseRegex.GetStringJson(ref voidRst, "code") != "0" && BaseRegex.GetStringJson(ref voidRst, "code") != "200")
|
||||
{
|
||||
throw new Exception("作废额外包裹失败,服务端返回:" + BaseRegex.GetStringJsonByRegs(ref voidRst, voidRst, "msg"));
|
||||
}
|
||||
StartUp.UpdateBalance();
|
||||
extraOrder.order_void_status = 1;
|
||||
orderItem.SetOrderItemTextProperty();
|
||||
//MainWindow.Instance.orderListCtrl.FilterOneOrder(orderItem.order_id);
|
||||
return "作废额外包裹成功!";
|
||||
}
|
||||
|
||||
|
||||
/// <summary> 拒收包裹 </summary>
|
||||
private async void btnAddEditTransitWarehouseReject_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (this.DataContext is oms_wei_order_item_transit_detail_info transitDetailInfo)
|
||||
{
|
||||
btnAddEditTransitWarehouseReject_New.IsEnabled = false;
|
||||
|
||||
var orderItem = transitDetailInfo.oms_wei_order_item_info;
|
||||
var transitOrder = transitDetailInfo.oms_wei_external_procurement_log_info;
|
||||
var returnOrder = transitDetailInfo.oms_wei_external_procurement_after_sale_info;
|
||||
@@ -169,7 +108,7 @@ public partial class OrderTransitListDetailCtrl : UserControl
|
||||
{
|
||||
try
|
||||
{
|
||||
var rejectRst = await OrderListRowItemCtrl.RejectTransitOrder(orderItem, transitOrder);
|
||||
var rejectRst = await OrderTransitService.RejectTransitOrder(orderItem, transitOrder);
|
||||
if (!string.IsNullOrEmpty(rejectRst))
|
||||
BaseMsgWindow.ShowInfo(rejectRst);
|
||||
}
|
||||
@@ -186,11 +125,43 @@ public partial class OrderTransitListDetailCtrl : UserControl
|
||||
}
|
||||
|
||||
RefreshListCtrl(orderItem);
|
||||
btnAddEditTransitWarehouseReject_New.IsEnabled = true;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void btnAddEditTransitWarehouseAfterSale_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (this.DataContext is oms_wei_order_item_transit_detail_info transitDetailInfo)
|
||||
{
|
||||
btnAddEditTransitWarehouseAfterSale_n1.IsEnabled = false;
|
||||
btnAddEditTransitWarehouseAfterSale_n2.IsEnabled = false;
|
||||
|
||||
var orderItem = transitDetailInfo.oms_wei_order_item_info;
|
||||
var transitOrder = transitDetailInfo.oms_wei_external_procurement_log_info;
|
||||
var returnOrder = transitDetailInfo.oms_wei_external_procurement_after_sale_info;
|
||||
var extOrder = transitDetailInfo.oms_wei_transfer_extra_package;
|
||||
|
||||
if (transitOrder != null)
|
||||
{
|
||||
bool isOutWarehouse = sender == btnAddEditTransitWarehouseAfterSale_n1;
|
||||
OrderListRowItemCtrl.ShowReturnPackageWindow(orderItem, transitDetailInfo, isOutWarehouse);
|
||||
}
|
||||
else if (extOrder != null)
|
||||
{
|
||||
bool isOutWarehouse = sender == btnAddEditTransitWarehouseAfterSale_n1;
|
||||
OrderListRowItemCtrl.ShowReturnPackageWindow(orderItem, transitDetailInfo, isOutWarehouse);
|
||||
}
|
||||
|
||||
RefreshListCtrl(orderItem);
|
||||
btnAddEditTransitWarehouseAfterSale_n1.IsEnabled = true;
|
||||
btnAddEditTransitWarehouseAfterSale_n2.IsEnabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void btnTransitExtraPackages_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
// 滞留补发买家(补发包裹)
|
||||
if (this.DataContext is oms_wei_order_item_transit_detail_info transitDetailInfo)
|
||||
{
|
||||
var orderItem = transitDetailInfo.oms_wei_order_item_info;
|
||||
@@ -200,23 +171,31 @@ public partial class OrderTransitListDetailCtrl : UserControl
|
||||
|
||||
if (transitOrder != null)
|
||||
{
|
||||
bool isOutWarehouse = sender == btnAddEditTransitWarehouseAfterSale_n1;
|
||||
OrderListRowItemCtrl.ShowReturnPackageWindow(orderItem, transitOrder, isOutWarehouse);
|
||||
// 不是中转仓,直接返回
|
||||
if (transitOrder == null)
|
||||
{
|
||||
BaseMsgWindow.ShowError("非中转仓订单不支持补发!");
|
||||
return;
|
||||
}
|
||||
|
||||
TransitExtraPackagesView transitExtraPackagesView = new TransitExtraPackagesView(orderItem.ItemOrder, orderItem, transitOrder);
|
||||
new DialogWindow()
|
||||
{
|
||||
Title = "滞留补发买家",
|
||||
Content = transitExtraPackagesView,
|
||||
}.ShowDialog();
|
||||
}
|
||||
|
||||
RefreshListCtrl(orderItem);
|
||||
}
|
||||
}
|
||||
|
||||
private void btnTransitExtraPackages_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void RefreshListCtrl(oms_wei_order_item_info orderItem)
|
||||
{
|
||||
// 更新列表
|
||||
if (FindParent<OrderTransitListCtrl>(this) is OrderTransitListCtrl transitListCtrl)
|
||||
{
|
||||
oms_wei_order_item_transit_info transitInfo = new oms_wei_order_item_transit_info()
|
||||
oms_wei_order_item_transit_model transitInfo = new oms_wei_order_item_transit_model()
|
||||
{
|
||||
OrderItem = GlobalConfig.lstOrder.FirstOrDefault(o => o.order_id == orderItem?.order_id)?.orderItems.FirstOrDefault(oi => oi.sku_id == orderItem?.sku_id),
|
||||
};
|
||||
|
||||
@@ -0,0 +1,351 @@
|
||||
using _29WxOrderWpf.BaseWindows;
|
||||
using _29WxOrderWpf.Ctrls.BuyerCtrls;
|
||||
using _29WxOrderWpf.ViewModels;
|
||||
using _29WxOrderWpf.Views;
|
||||
using AllBase;
|
||||
using AllBase.Helper;
|
||||
using AllBase.Model.DBModel;
|
||||
using AllBase.Model.Result;
|
||||
using NaiBa.Util.Extension;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Work;
|
||||
using Work._29Tools.BLL;
|
||||
using WxOrder.Framework.Commons;
|
||||
|
||||
namespace _29WxOrderWpf.Ctrls.OrderCtrls;
|
||||
|
||||
internal class OrderTransitService
|
||||
{
|
||||
/// <summary>
|
||||
/// 作废中转仓发货包裹
|
||||
/// </summary>
|
||||
/// <param name="orderItem"></param>
|
||||
/// <param name="isSilent"></param>
|
||||
/// <param name="UpdateOrderBeforeVoid">作废前是否更新服务端订单状态</param>
|
||||
public static async Task VoidOrder(oms_wei_order_item_info orderItem, oms_wei_external_procurement_log_info transitOrder = null, bool isSilent = false, bool UpdateOrderBeforeVoid = true)
|
||||
{
|
||||
if (!isSilent)
|
||||
{
|
||||
if (BaseMsgWindow.ShowConfirm("确定作废当前包裹吗?").DialogResult == false)
|
||||
return;
|
||||
}
|
||||
|
||||
// 作废前查询订单状态
|
||||
var orderId = orderItem.order_id;
|
||||
var skuId = orderItem.sku_id;
|
||||
if (UpdateOrderBeforeVoid)
|
||||
await Task.Run(async() => { await 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 (transitOrder == null)
|
||||
transitOrder = orderItem.ItemTransitOrder ?? orderItem.ItemTransitOrderWithVoid;
|
||||
|
||||
if (transitOrder == null)
|
||||
{
|
||||
if (!isSilent)
|
||||
BaseMsgWindow.ShowError("要作废的中转订单不存在,请确认后重试");
|
||||
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"] = transitOrder.out_order_no;
|
||||
data2["outOrderNo"] = transitOrder.order_code;
|
||||
var dataStr2 = JsonHelper.SerializeObject(data2);
|
||||
var discardRst = await HttpResponseWXBLL.e57PostResponseAsync(url2, dataStr2);
|
||||
if (discardRst.Contains("\"code\":0") || discardRst.Contains("\"code\":200"))
|
||||
{
|
||||
//MainWindow.Instance.orderListCtrl.GetOrder(orderId);
|
||||
// 修改为在买手退款流程后提示作废信息
|
||||
}
|
||||
else
|
||||
{
|
||||
var msg = BaseRegex.GetStringJson(ref discardRst, "msg");
|
||||
if (!isSilent)
|
||||
BaseMsgWindow.ShowInfo("订单作废失败,服务端返回 " + msg);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#region 处理买手售后
|
||||
if (transitOrder.out_order_no.ParseToString().StartsWith("tb_")) // 淘宝买手售后
|
||||
{
|
||||
if (!isSilent)
|
||||
BaseMsgWindow.ShowError("淘宝买手暂不支持自动售后,作废后请手动申请售后");
|
||||
else
|
||||
transitOrder.refund_status = "淘宝买手暂不支持自动售后,作废后需手动申请售后";
|
||||
}
|
||||
else // 拼多多买手售后
|
||||
{
|
||||
bool noBuyer = false;
|
||||
var buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_id == transitOrder.buyer_account || b.buyer_name == transitOrder.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;
|
||||
order = PDDBuyerOrderReadCtrl.lstPddBuyerOrderInfoLite.FirstOrDefault(o => o.order_sn == transitOrder.out_order_no);
|
||||
if (order == null)
|
||||
order = new PddBuyerOrderLiteInfo()
|
||||
{
|
||||
order_status_prompt = "待发货",
|
||||
order_amount = transitOrder.out_amount,
|
||||
order_sn = transitOrder.out_order_no
|
||||
};
|
||||
PDDBuyerOrderReadCtrl.lstPddBuyerOrderInfoLite.Add(order);
|
||||
|
||||
var pddAfterRst = "";
|
||||
await Task.Run(() =>
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 更新拍单余额
|
||||
StartUp.UpdateBalance();
|
||||
#endregion
|
||||
|
||||
#region 立即更新订单
|
||||
transitOrder = orderItem.ItemTransitOrders.FirstOrDefault(o => o.order_code == transitOrder.order_code) ?? transitOrder;
|
||||
transitOrder.order_void_status = 1;
|
||||
orderItem.SetOrderItemTextProperty();
|
||||
#endregion
|
||||
|
||||
#region 重新过滤订单
|
||||
OrderListCtrl.InitOrderItemObservableProp(orderItem);
|
||||
MainWindow.Instance.orderListCtrl.FilterOrders();
|
||||
if (!isSilent)
|
||||
BaseMsgWindow.ShowInfo("订单作废成功,请重新拍单");
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 作废售后包裹
|
||||
/// </summary>
|
||||
/// <param name="returnOrder"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<string> VoidAfterSalePackage(oms_wei_order_item_info orderItem, oms_wei_external_procurement_after_sale_info returnOrder)
|
||||
{
|
||||
string typeStr = returnOrder?.pack_type == 1 ? "作废分销发货退货包裹" : "作废额外包裹退货包裹";
|
||||
string msg = $@"确定{typeStr}吗?";
|
||||
|
||||
if (BaseMsgWindow.ShowConfirm(msg, typeStr, null, MsgWindowLevel.MEDIUM, 300).DialogResult != true)
|
||||
return "";
|
||||
|
||||
string url2 = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/orders/interceptReturn";
|
||||
var data = new JObject();
|
||||
data["externalOrderNo"] = returnOrder.external_order_no;
|
||||
data["orderNo"] = returnOrder.order_no; // 订单编号
|
||||
data["orderCode"] = returnOrder.order_code;
|
||||
data["packType"] = returnOrder.pack_type; /* 1作废分销发货退货包裹 2作废额外包裹退货包裹 */
|
||||
var dataStr2 = JsonHelper.SerializeObject(data);
|
||||
var voidRst = await HttpResponseWXBLL.e57PostResponseAsync(url2, dataStr2);
|
||||
|
||||
if (voidRst.Contains("\"code\":0") || voidRst.Contains("\"code\":200"))
|
||||
{
|
||||
StartUp.UpdateBalance();
|
||||
returnOrder.order_void_status = 1;
|
||||
orderItem.SetOrderItemTextProperty();
|
||||
return typeStr + "成功!";
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception(typeStr + "失败,服务端返回:" + BaseRegex.GetStringJsonByRegs(ref voidRst, voidRst, "msg"));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 作废额外包裹
|
||||
/// </summary>
|
||||
/// <param name="orderItem"></param>
|
||||
/// <param name="extraOrder"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="Exception"></exception>
|
||||
public static async Task<string> VoidExtraPackage(oms_wei_order_item_info orderItem, oms_wei_transfer_extra_package extraOrder)
|
||||
{
|
||||
string typeStr = "作废额外包裹";
|
||||
string msg = $@"确定{typeStr}吗?";
|
||||
|
||||
if (BaseMsgWindow.ShowConfirm(msg, typeStr, null, MsgWindowLevel.MEDIUM, 300).DialogResult != true)
|
||||
return "";
|
||||
|
||||
var data = new JObject();
|
||||
data["batchId"] = extraOrder.batchId;
|
||||
data["orderCode"] = extraOrder.order_code;
|
||||
var dataStr = JsonHelper.SerializeObject(data);
|
||||
var url = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/extraOrders/void";
|
||||
var voidRst = await HttpResponseWXBLL.e57PostResponseAsync(url, dataStr);
|
||||
if (BaseRegex.GetStringJson(ref voidRst, "code") != "0" && BaseRegex.GetStringJson(ref voidRst, "code") != "200")
|
||||
{
|
||||
throw new Exception("作废额外包裹失败,服务端返回:" + BaseRegex.GetStringJsonByRegs(ref voidRst, voidRst, "msg"));
|
||||
}
|
||||
StartUp.UpdateBalance();
|
||||
extraOrder.order_void_status = 1;
|
||||
orderItem.SetOrderItemTextProperty();
|
||||
//MainWindow.Instance.orderListCtrl.FilterOneOrder(orderItem.order_id);
|
||||
return "作废额外包裹成功!";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 云仓申请拒收退回总店
|
||||
/// </summary>
|
||||
/// <param name="orderItem"></param>
|
||||
public static async Task<string> RejectTransitOrder(oms_wei_order_item_info orderItem, oms_wei_external_procurement_log_info _itemTransitOrder)
|
||||
{
|
||||
string msg = $@"
|
||||
云仓拒收退回总店
|
||||
|
||||
说 明:店铺产生售后,拒收成功,货物会原物流退回总店。
|
||||
拒收条件:(总店物流没到云仓/未签收前)。顺丰/京东无法
|
||||
拒收,直接总店申请仅退款让总店拦截。
|
||||
收 费:免费";
|
||||
|
||||
if (BaseMsgWindow.ShowConfirm(msg, "云仓拒收退回总店", null, MsgWindowLevel.LARGE, 300).DialogResult != true)
|
||||
return "";
|
||||
|
||||
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);
|
||||
|
||||
var itemTransitOrder = orderItem.ItemTransitOrders.FirstOrDefault(o => o.order_code == _itemTransitOrder?.order_code && o.out_order_no == _itemTransitOrder?.out_order_no);
|
||||
if (itemTransitOrder == null)
|
||||
itemTransitOrder = _itemTransitOrder;
|
||||
|
||||
//if (itemTransitOrder?.warehouse_status == 3) { BaseMsgWindow.ShowError("商品已拒收或拦截!"); return; }
|
||||
//if (itemTransitOrder?.warehouse_status == 2) { BaseMsgWindow.ShowError("商品已出库,请选择退回中转仓!"); return; }
|
||||
//if (string.IsNullOrEmpty(orderItem.PddBuyerOrder?.order_sn)) { BaseMsgWindow.ShowError("商品未出单,请直接去拼多多买手申请退款"); return; }
|
||||
if (itemTransitOrder?.has_reject == 1 || 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"] = 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, html, "msg");
|
||||
//BaseMsgWindow.ShowAnimateMessage("申请失败", "Error", 3);
|
||||
throw new Exception("申请失败" + err);
|
||||
}
|
||||
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 = await GetHtml.PostUtf8Async(url, data);
|
||||
|
||||
itemTransitOrder.has_reject = rejectStatus;
|
||||
OrderListCtrl.InitOrderItemObservableProp(orderItem);
|
||||
|
||||
return "申请成功";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 申请拒收后查询拒收状态
|
||||
/// </summary>
|
||||
/// <param name="orderItem"></param>
|
||||
/// <param name="upperWaybill"></param>
|
||||
public static void ShowRejectTransitOrder(oms_wei_order_item_info orderItem, string upperWaybill)
|
||||
{
|
||||
BaiduGetWaybillInfoView buyerLoginForm = new BaiduGetWaybillInfoView(orderItem);
|
||||
buyerLoginForm.ViewModel.InitUrl = "https://www.baidu.com/s?ie=UTF-8&wd=" + upperWaybill;
|
||||
|
||||
new DialogWindow()
|
||||
{
|
||||
Width = 1280,
|
||||
Height = 800,
|
||||
Title = "物流拒收查询",
|
||||
Content = buyerLoginForm,
|
||||
}.Show();
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:_29WxOrderWpf.Ctrls.Settings"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:vm="[vm ]clr-namespace:_29WxOrderWpf.ViewModels"
|
||||
xmlns:vm="clr-namespace:_29WxOrderWpf.ViewModels"
|
||||
xmlns:wpf="WPFCommon"
|
||||
Title="设置"
|
||||
Width="800"
|
||||
@@ -37,8 +37,12 @@
|
||||
<CheckBox
|
||||
Grid.Column="1"
|
||||
VerticalAlignment="Center"
|
||||
d:Visibility="Visible"
|
||||
IsChecked="{Binding AutoSwitchGiftType}"
|
||||
Style="{StaticResource ToggleSwitch}" />
|
||||
IsEnabled="False"
|
||||
Opacity="0.5"
|
||||
Style="{StaticResource ToggleSwitch}"
|
||||
Visibility="Collapsed" />
|
||||
</Grid>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
|
||||
@@ -43,7 +43,7 @@ public class ShipGiftService : SingleInstance<ShipGiftService>
|
||||
giftAmount = 1.55m;
|
||||
}
|
||||
|
||||
if (BaseClass.Setting.AutoSwitchGiftType && (item.product_price ?? 0) > 6 * 1000)
|
||||
if (BaseClass.Setting.AutoSwitchGiftType && (item.product_price ?? 0) > 6 * 100)
|
||||
{
|
||||
giftAmount = 1.6m;
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ namespace _29WxOrderWpf
|
||||
GlobalConfig.BuyConfig = ConfigHelper.LoadConfig<BuyConfig>("buy_config_260708");
|
||||
if (GlobalConfig.BuyConfig == null)
|
||||
GlobalConfig.BuyConfig = new BuyConfig();
|
||||
GlobalConfig.BuyConfig.IsSyncDirectBuyOrderWaybill = false;
|
||||
|
||||
GlobalConfig.lstWXShopTokenInfo = ConfigHelper.LoadConfig<ConcurrentList<WXShopTokenInfo>>("wx_shop_token_list");
|
||||
if (GlobalConfig.lstWXShopTokenInfo == null)
|
||||
@@ -37,7 +38,8 @@ namespace _29WxOrderWpf
|
||||
|
||||
|
||||
BaseClass.Setting = NaiBa.Util.Helper.ConfigHelper.LoadConfig<SettingConfig>(SettingViewModel.SettingFileName);
|
||||
if (BaseClass.Setting==null) BaseClass.Setting = new SettingConfig();
|
||||
if (BaseClass.Setting == null) BaseClass.Setting = new SettingConfig();
|
||||
BaseClass.Setting.AutoSwitchGiftType = true;
|
||||
|
||||
new WxOrder.Framework.Startup();
|
||||
}
|
||||
|
||||
@@ -40,6 +40,11 @@ namespace _29WxOrderWpf.ViewModels
|
||||
get { return this.GetValue(x => x.OrderItem); }
|
||||
set { this.SetValue(x => x.OrderItem, value); }
|
||||
}
|
||||
public oms_wei_external_procurement_log_info TransitOrder
|
||||
{
|
||||
get { return this.GetValue(x => x.TransitOrder); }
|
||||
set { this.SetValue(x => x.TransitOrder, value); }
|
||||
}
|
||||
public string purchaserNote
|
||||
{
|
||||
get { return this.GetValue(x => x.purchaserNote); }
|
||||
@@ -98,7 +103,12 @@ namespace _29WxOrderWpf.ViewModels
|
||||
|
||||
public void AddExtraPackages()
|
||||
{
|
||||
var transitOrder = OrderItem.ItemTransitOrder ?? OrderItem.ItemTransitOrderWithVoid;
|
||||
if (TransitOrder == null)
|
||||
{
|
||||
//TransitOrder = OrderItem.ItemTransitOrder ?? OrderItem.ItemTransitOrderWithVoid;
|
||||
BaseMsgWindow.ShowError("未找到云仓发货包裹,请确认包裹存在");
|
||||
return;
|
||||
}
|
||||
var transitExtraOrder = OrderItem.ItemTransitExtraOrders.FirstOrDefault(t => t.order_void_status != 1);
|
||||
if (transitExtraOrder != null)
|
||||
{
|
||||
@@ -113,20 +123,20 @@ namespace _29WxOrderWpf.ViewModels
|
||||
body["postage"] = ((basePostage + BaseClass.PostagePerOrderDiff) * 100).ParseToInt().ParseToString();
|
||||
|
||||
body["packType"] = "2";
|
||||
body["batchId"] = transitOrder.order_code + "-" + ((OrderItem.ItemTransitExtraOrders?.Count).ParseToInt() + 1);
|
||||
body["batchId"] = TransitOrder.order_code + "-" + ((OrderItem.ItemTransitExtraOrders?.Count).ParseToInt() + 1);
|
||||
body["orderNo"] = OrderItem.order_id;
|
||||
body["orderCode"] = transitOrder.order_code;
|
||||
body["orderCode"] = TransitOrder.order_code;
|
||||
|
||||
// 未出库填上游物流,已出库填下游物流
|
||||
if (transitOrder.warehouse_status != 2)
|
||||
if (TransitOrder.warehouse_status != 2)
|
||||
{
|
||||
body["logisticsCode"] = transitOrder.express_1_company;
|
||||
body["logisticsExpressCode"] = transitOrder.express_1_waybill;
|
||||
body["logisticsCode"] = TransitOrder.express_1_company;
|
||||
body["logisticsExpressCode"] = TransitOrder.express_1_waybill;
|
||||
}
|
||||
else
|
||||
{
|
||||
body["logisticsCode"] = transitOrder.express_2_company;
|
||||
body["logisticsExpressCode"] = transitOrder.express_2_waybill;
|
||||
body["logisticsCode"] = TransitOrder.express_2_company;
|
||||
body["logisticsExpressCode"] = TransitOrder.express_2_waybill;
|
||||
}
|
||||
|
||||
body["accountUser"] = BaseClass.UserName;
|
||||
|
||||
@@ -28,11 +28,11 @@ public partial class TransitExtraPackagesView : UserControl
|
||||
/// </summary>
|
||||
public TransitExtraPackagesViewModel ViewModel { get; }
|
||||
|
||||
public TransitExtraPackagesView(oms_wei_order_info _order, oms_wei_order_item_info _orderItem)
|
||||
public TransitExtraPackagesView(oms_wei_order_info _order, oms_wei_order_item_info _orderItem, oms_wei_external_procurement_log_info transitOrder = null)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
ViewModel = new TransitExtraPackagesViewModel(_order, _orderItem);
|
||||
ViewModel = new TransitExtraPackagesViewModel(_order, _orderItem) { TransitOrder = transitOrder };
|
||||
ViewModel.RequestClose += ViewModel_RequestClose;
|
||||
DataContext = ViewModel;
|
||||
}
|
||||
|
||||
@@ -288,7 +288,7 @@
|
||||
Visibility="Collapsed" />
|
||||
<Button
|
||||
x:Name="btnAdd"
|
||||
Grid.Row="9"
|
||||
Grid.Row="8"
|
||||
Grid.Column="1"
|
||||
MinWidth="48"
|
||||
Padding="4"
|
||||
@@ -296,7 +296,7 @@
|
||||
Click="btnAddReturnPackage_Click"
|
||||
Content="添 加"
|
||||
IsEnabled="False"
|
||||
Style="{StaticResource BasePageButtonStyle}" />
|
||||
Style="{StaticResource BasePageButtonStyle}" Height="28" Margin="0,53,0,0" Grid.RowSpan="2" VerticalAlignment="Top" />
|
||||
<Image
|
||||
x:Name="imgLoading"
|
||||
Grid.Row="9"
|
||||
|
||||
@@ -29,18 +29,25 @@ namespace _29WxOrderWpf.Windows.OrderWindows
|
||||
/// </summary>
|
||||
public partial class TransitAfterSaleWindow : BaseWindow
|
||||
{
|
||||
public int PackType { get; set; }
|
||||
public oms_wei_order_item_info OrderItem { get; set; }
|
||||
public oms_wei_order_item_transit_detail_info TransitInfo { get; set; }
|
||||
public oms_wei_external_procurement_log_info TransitOrder { get; set; } = null;
|
||||
public oms_wei_transfer_extra_package ExtraPackage { get; set; } = null;
|
||||
|
||||
public TransitAfterSaleWindow(oms_wei_order_item_info orderItem, oms_wei_external_procurement_log_info _transitOrder)
|
||||
public TransitAfterSaleWindow(oms_wei_order_item_info orderItem, oms_wei_order_item_transit_detail_info _transitInfo)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
if (orderItem != null)
|
||||
OrderItem = orderItem;
|
||||
if (_transitOrder != null)
|
||||
TransitOrder = _transitOrder;
|
||||
|
||||
if (_transitInfo != null)
|
||||
TransitInfo = _transitInfo;
|
||||
if (_transitInfo?.oms_wei_external_procurement_log_info != null)
|
||||
TransitOrder = _transitInfo?.oms_wei_external_procurement_log_info;
|
||||
else if (_transitInfo?.oms_wei_transfer_extra_package != null)
|
||||
ExtraPackage = _transitInfo?.oms_wei_transfer_extra_package;
|
||||
PackType = _transitInfo?.TransitTypeStr == "额外包裹" ? 2 : 1;
|
||||
}
|
||||
|
||||
private void mainGrid_Loaded(object sender, RoutedEventArgs e)
|
||||
@@ -48,106 +55,143 @@ namespace _29WxOrderWpf.Windows.OrderWindows
|
||||
|
||||
}
|
||||
|
||||
private async void TransitAfterSaleWindow_Loaded(object sender, RoutedEventArgs e)
|
||||
private async void TransitAfterSaleWindow_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
btnAdd.IsEnabled = true;
|
||||
foreach (var warehouse in TransitWarehouseData.TransitWarehouseList)
|
||||
{
|
||||
this.cmbWareHouse.Items.Add(warehouse.TransName);
|
||||
}
|
||||
{
|
||||
this.cmbWareHouse.Items.Add(warehouse.TransName);
|
||||
}
|
||||
|
||||
if (OrderItem != null)
|
||||
{
|
||||
if (TransitOrder == null)
|
||||
if (OrderItem != null && TransitInfo != null)
|
||||
{
|
||||
|
||||
if (ExtraPackage != null)
|
||||
{
|
||||
TransitOrder = OrderItem.ItemTransitOrder ?? OrderItem.ItemTransitOrderWithVoid;
|
||||
}
|
||||
this.cmbWareHouse.Text = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransId == TransitOrder?.platform)?.TransName;
|
||||
this.txtExpressName.Text = string.IsNullOrWhiteSpace(TransitOrder?.express_2_waybill) ? TransitOrder?.express_1_company : TransitOrder?.express_2_company;
|
||||
this.txtWarehouseWaybill.Text = string.IsNullOrWhiteSpace(TransitOrder?.express_2_waybill) ? TransitOrder?.express_1_waybill : TransitOrder?.express_2_waybill;
|
||||
if (TransitOrder != null && (this.txtExpressName.Text.IsNullOrEmpty() || this.txtWarehouseWaybill.Text.IsNullOrEmpty()))
|
||||
{
|
||||
this.txtExpressName.Text = OrderItem.PddBuyerOrders.FirstOrDefault(p => p.order_sn == TransitOrder?.out_order_no)?.outExpressCompanyCode;
|
||||
this.txtWarehouseWaybill.Text = OrderItem.PddBuyerOrders.FirstOrDefault(p => p.order_sn == TransitOrder?.out_order_no)?.tracking_number;
|
||||
// 获取额外包裹对应的发货包裹或者发货包裹本身
|
||||
var _transitOrder = OrderItem.ItemTransitOrders.FirstOrDefault(t => t.order_code == ExtraPackage?.order_code);
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(this.txtExpressName.Text) && !string.IsNullOrWhiteSpace(this.txtWarehouseWaybill.Text))
|
||||
{
|
||||
// 没物流信息的仓库单手动更新买手物流信息
|
||||
JObject data = new JObject();
|
||||
data["orderNo"] = OrderItem.order_id;
|
||||
data["orderCode"] = TransitOrder?.order_code;
|
||||
data["logisticsExpressCode"] = this.txtWarehouseWaybill.Text;
|
||||
data["logisticsExpressCompany"] = this.txtExpressName.Text;
|
||||
var updateTransitExpressUrl = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/orders/updateLogisticsExpressCode";
|
||||
var updateTransitExpressStr = JsonHelper.SerializeObject(data);
|
||||
var updateTransitExpressRst = HttpResponseWXBLL.e57PostResponse(updateTransitExpressUrl, updateTransitExpressStr, "");
|
||||
}
|
||||
}
|
||||
this.cmbWareHouse.Text = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransId == ExtraPackage?.platform)?.TransName;
|
||||
this.txtExpressName.Text = string.IsNullOrWhiteSpace(ExtraPackage.real_logistics_code) ? ExtraPackage.logistics_code : ExtraPackage?.real_logistics_code;
|
||||
this.txtWarehouseWaybill.Text = string.IsNullOrWhiteSpace(ExtraPackage?.real_logistics_express_code) ? ExtraPackage?.logistics_express_code : ExtraPackage?.real_logistics_express_code;
|
||||
|
||||
var transitAfterSale = OrderItem.ItemTransitOrderAfterSales?.OrderByDescending(t => t.id)?.FirstOrDefault(t => t.order_code == TransitOrder.order_code && t.order_void_status != 1);
|
||||
if (transitAfterSale != null)
|
||||
{
|
||||
btnAdd.IsEnabled = false;
|
||||
|
||||
this.txtUser.Text = transitAfterSale.recipient_name;
|
||||
this.txtMobile.Text = transitAfterSale.recipient_phone;
|
||||
this.txtDetailAddress.Text = transitAfterSale.refund_detail_address;
|
||||
//this.txtAddress.Text = transitAfterSale.refund_province + "/" + transitAfterSale.refund_city + "/" + transitAfterSale.refund_county;
|
||||
this.txtProvince.Text = transitAfterSale.refund_province;
|
||||
this.txtCity.Text = transitAfterSale.refund_city;
|
||||
this.txtCounty.Text = transitAfterSale.refund_county;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 需要手动申请售后的,先去申请售后再提交拦截退回总店
|
||||
if (!string.IsNullOrEmpty(TransitOrder?.out_order_no) && OrderItem.PddBuyerAfterSaleAddressStr.IsNullOrEmpty() &&
|
||||
(OrderItem.TransitRefundStatusStr.Contains("需手动申请售后") || OrderItem.TransitRefundStatusStr.Contains("待用户发货")))
|
||||
var transitAfterSale = OrderItem.ItemTransitOrderAfterSales?.OrderByDescending(t => t.id)?.FirstOrDefault(t => t.order_code == ExtraPackage.order_code && t.order_void_status != 1 && t.pack_type == PackType);
|
||||
if (transitAfterSale != null)
|
||||
{
|
||||
btnAdd.IsEnabled = false;
|
||||
imgLoading.Visibility = Visibility.Visible;
|
||||
await MainWindow.Instance.orderListCtrl.DoBuyerRefend(new List<oms_wei_order_item_info>() { OrderItem });
|
||||
var order = GlobalConfig.lstOrder.FirstOrDefault(o => o.order_id == OrderItem.order_id);
|
||||
if (order != null)
|
||||
{
|
||||
var orderItemTmp = order.orderItems.FirstOrDefault(oi => oi.sku_id == OrderItem.sku_id);
|
||||
if (orderItemTmp != null)
|
||||
OrderItem = orderItemTmp;
|
||||
}
|
||||
btnAdd.IsEnabled = true;
|
||||
}
|
||||
|
||||
if (OrderItem.PddBuyerAfterSale?.orderSn == TransitOrder?.out_order_no && !string.IsNullOrEmpty(OrderItem.PddBuyerAfterSale?.afterSaleAddress))
|
||||
this.txtUser.Text = transitAfterSale.recipient_name;
|
||||
this.txtMobile.Text = transitAfterSale.recipient_phone;
|
||||
this.txtDetailAddress.Text = transitAfterSale.refund_detail_address;
|
||||
//this.txtAddress.Text = transitAfterSale.refund_province + "/" + transitAfterSale.refund_city + "/" + transitAfterSale.refund_county;
|
||||
this.txtProvince.Text = transitAfterSale.refund_province;
|
||||
this.txtCity.Text = transitAfterSale.refund_city;
|
||||
this.txtCounty.Text = transitAfterSale.refund_county;
|
||||
}
|
||||
else
|
||||
{
|
||||
txtAddressAnalysis.Text = OrderItem.PddBuyerAfterSale?.afterSaleAddress;
|
||||
btnAddressAnalysis_Click(null, null);
|
||||
var pddBuyerAfterSale = OrderItem.PddBuyerAfterSales.FirstOrDefault(af => af.orderSn == _transitOrder?.out_order_no);
|
||||
|
||||
// 需要手动申请售后的,先去申请售后再提交拦截退回总店
|
||||
if (!string.IsNullOrEmpty(_transitOrder?.out_order_no) && !string.IsNullOrEmpty(pddBuyerAfterSale?.afterSaleAddress) &&
|
||||
(_transitOrder.refund_status.ParseToString().Contains("需手动申请售后") || _transitOrder.refund_status.ParseToString().Contains("待用户发货")))
|
||||
{
|
||||
btnAdd.IsEnabled = false;
|
||||
imgLoading.Visibility = Visibility.Visible;
|
||||
await MainWindow.Instance.orderListCtrl.DoBuyerRefend(new List<oms_wei_order_item_info>() { OrderItem });
|
||||
var order = GlobalConfig.lstOrder.FirstOrDefault(o => o.order_id == OrderItem.order_id);
|
||||
if (order != null)
|
||||
{
|
||||
var orderItemTmp = order.orderItems.FirstOrDefault(oi => oi.sku_id == OrderItem.sku_id);
|
||||
if (orderItemTmp != null)
|
||||
OrderItem = orderItemTmp;
|
||||
}
|
||||
btnAdd.IsEnabled = true;
|
||||
}
|
||||
|
||||
pddBuyerAfterSale = OrderItem.PddBuyerAfterSales.FirstOrDefault(af => af.orderSn == _transitOrder?.out_order_no);
|
||||
if (!string.IsNullOrEmpty(pddBuyerAfterSale?.afterSaleAddress))
|
||||
{
|
||||
txtAddressAnalysis.Text = pddBuyerAfterSale?.afterSaleAddress;
|
||||
btnAddressAnalysis_Click(null, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
imgLoading.Visibility = Visibility.Collapsed;
|
||||
|
||||
// 如果提交过工单,则显示已提交工单及提交时间。
|
||||
var workOrderInfo = await GetWorkOrder();
|
||||
var issueType = BaseRegex.GetStringJson(ref workOrderInfo, "issueType");
|
||||
var createTime = BaseRegex.GetStringJson(ref workOrderInfo, "createdAt").ParseToString().ParseToDateTime();
|
||||
if (!string.IsNullOrEmpty(issueType))
|
||||
else if(TransitOrder != null)
|
||||
{
|
||||
lblWorkOrderMsg.Content = "已提交工单(" + createTime.ParseToString() + ")";
|
||||
this.cmbWareHouse.Text = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransId == TransitOrder?.platform)?.TransName;
|
||||
this.txtExpressName.Text = string.IsNullOrWhiteSpace(TransitOrder?.express_2_waybill) ? TransitOrder?.express_1_company : TransitOrder?.express_2_company;
|
||||
this.txtWarehouseWaybill.Text = string.IsNullOrWhiteSpace(TransitOrder?.express_2_waybill) ? TransitOrder?.express_1_waybill : TransitOrder?.express_2_waybill;
|
||||
if (this.txtExpressName.Text.IsNullOrEmpty() || this.txtWarehouseWaybill.Text.IsNullOrEmpty())
|
||||
{
|
||||
this.txtExpressName.Text = OrderItem.PddBuyerOrders.FirstOrDefault(p => p.order_sn == TransitOrder?.out_order_no)?.outExpressCompanyCode;
|
||||
this.txtWarehouseWaybill.Text = OrderItem.PddBuyerOrders.FirstOrDefault(p => p.order_sn == TransitOrder?.out_order_no)?.tracking_number;
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(this.txtExpressName.Text) && !string.IsNullOrWhiteSpace(this.txtWarehouseWaybill.Text))
|
||||
{
|
||||
// 没物流信息的仓库单手动更新买手物流信息
|
||||
JObject data = new JObject();
|
||||
data["orderNo"] = OrderItem.order_id;
|
||||
data["orderCode"] = TransitOrder?.order_code;
|
||||
data["logisticsExpressCode"] = this.txtWarehouseWaybill.Text;
|
||||
data["logisticsExpressCompany"] = this.txtExpressName.Text;
|
||||
var updateTransitExpressUrl = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/orders/updateLogisticsExpressCode";
|
||||
var updateTransitExpressStr = JsonHelper.SerializeObject(data);
|
||||
var updateTransitExpressRst = HttpResponseWXBLL.e57PostResponse(updateTransitExpressUrl, updateTransitExpressStr, "");
|
||||
}
|
||||
}
|
||||
|
||||
var transitAfterSale = OrderItem.ItemTransitOrderAfterSales?.OrderByDescending(t => t.id)?.FirstOrDefault(t => t.order_code == TransitOrder.order_code && t.order_void_status != 1 && t.pack_type == PackType);
|
||||
if (transitAfterSale != null)
|
||||
{
|
||||
btnAdd.IsEnabled = false;
|
||||
|
||||
this.txtUser.Text = transitAfterSale.recipient_name;
|
||||
this.txtMobile.Text = transitAfterSale.recipient_phone;
|
||||
this.txtDetailAddress.Text = transitAfterSale.refund_detail_address;
|
||||
//this.txtAddress.Text = transitAfterSale.refund_province + "/" + transitAfterSale.refund_city + "/" + transitAfterSale.refund_county;
|
||||
this.txtProvince.Text = transitAfterSale.refund_province;
|
||||
this.txtCity.Text = transitAfterSale.refund_city;
|
||||
this.txtCounty.Text = transitAfterSale.refund_county;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 需要手动申请售后的,先去申请售后再提交拦截退回总店
|
||||
if (!string.IsNullOrEmpty(TransitOrder?.out_order_no) && OrderItem.PddBuyerAfterSaleAddressStr.IsNullOrEmpty() &&
|
||||
(TransitOrder.refund_status.ParseToString().Contains("需手动申请售后") || TransitOrder.refund_status.ParseToString().Contains("待用户发货")))
|
||||
{
|
||||
btnAdd.IsEnabled = false;
|
||||
imgLoading.Visibility = Visibility.Visible;
|
||||
await MainWindow.Instance.orderListCtrl.DoBuyerRefend(new List<oms_wei_order_item_info>() { OrderItem });
|
||||
var order = GlobalConfig.lstOrder.FirstOrDefault(o => o.order_id == OrderItem.order_id);
|
||||
if (order != null)
|
||||
{
|
||||
var orderItemTmp = order.orderItems.FirstOrDefault(oi => oi.sku_id == OrderItem.sku_id);
|
||||
if (orderItemTmp != null)
|
||||
OrderItem = orderItemTmp;
|
||||
}
|
||||
btnAdd.IsEnabled = true;
|
||||
}
|
||||
|
||||
if (OrderItem.PddBuyerAfterSale?.orderSn == TransitOrder?.out_order_no && !string.IsNullOrEmpty(OrderItem.PddBuyerAfterSale?.afterSaleAddress))
|
||||
{
|
||||
txtAddressAnalysis.Text = OrderItem.PddBuyerAfterSale?.afterSaleAddress;
|
||||
btnAddressAnalysis_Click(null, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//if (TransitOrder?.warehouse_status != 0 && TransitOrder?.warehouse_status != 1)
|
||||
//{
|
||||
// btnAdd.IsEnabled = false;
|
||||
// //BaseMsgWindow.ShowError("当前订单仓库状态不支持售后,请联系买家直接退回总店!");
|
||||
// lblMsg.Content = "当前订单仓库状态不支持售后,请联系买家直接退回总店!";
|
||||
// return;
|
||||
//}
|
||||
|
||||
if ((TransitOrder?.warehouse_status).ParseToInt() < 1)
|
||||
{
|
||||
//btnAdd.IsEnabled = false;
|
||||
//lblMsg.Content = "当前订单仓库状态不支持拦截退回总店,建议联系买家直接退回总店!";
|
||||
}
|
||||
}
|
||||
// 如果提交过工单,则显示已提交工单及提交时间。
|
||||
var workOrderInfo = await GetWorkOrder();
|
||||
var issueType = BaseRegex.GetStringJson(ref workOrderInfo, "issueType");
|
||||
var createTime = BaseRegex.GetStringJson(ref workOrderInfo, "createdAt").ParseToString().ParseToDateTime();
|
||||
if (!string.IsNullOrEmpty(issueType))
|
||||
{
|
||||
lblWorkOrderMsg.Content = "已提交工单(" + createTime.ParseToString() + ")";
|
||||
}
|
||||
imgLoading.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
private async void btnAddReturnPackage_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
@@ -155,10 +199,10 @@ namespace _29WxOrderWpf.Windows.OrderWindows
|
||||
{
|
||||
// 后续为独立创建工单
|
||||
// 创建拦截退货包裹工单
|
||||
var workOrder = AddWorkOrder();
|
||||
var workOrder = await AddWorkOrderAsync();
|
||||
if (!workOrder.Contains("\"success\":true"))
|
||||
{
|
||||
BaseMsgWindow.ShowError("中转拦截包裹添加失败," + BaseRegex.GetStringJson(ref workOrder, "message"), "", this);
|
||||
BaseMsgWindow.ShowError("拦截工单添加失败," + BaseRegex.GetStringJson(ref workOrder, "message"), "", this);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -179,7 +223,7 @@ namespace _29WxOrderWpf.Windows.OrderWindows
|
||||
|
||||
JObject data = new JObject();
|
||||
data["orderNo"] = OrderItem.order_id;
|
||||
data["orderCode"] = TransitOrder?.order_code;
|
||||
data["orderCode"] = TransitOrder?.order_code ?? ExtraPackage.batchId; /* 发货单填写发货单code,额外包裹填写额外包裹新单号 */
|
||||
data["refundProvince"] = txtProvince.Text.Trim();
|
||||
data["refundCity"] = txtCity.Text.Trim();
|
||||
data["refundCounty"] = txtCounty.Text.Trim();
|
||||
@@ -188,12 +232,7 @@ namespace _29WxOrderWpf.Windows.OrderWindows
|
||||
data["recipientPhone"] = txtMobile.Text.Trim();
|
||||
data["account_user"] = BaseClass.UserName;
|
||||
data["accountUser"] = BaseClass.UserName;
|
||||
//if (string.IsNullOrWhiteSpace(TransitOrder?.express_1_waybill) && string.IsNullOrWhiteSpace(TransitOrder?.express_2_waybill) &&
|
||||
// !string.IsNullOrWhiteSpace(txtWarehouseWaybill.Text) && !string.IsNullOrWhiteSpace(txtExpressName.Text.Trim()))
|
||||
//{
|
||||
// data["refundWaybill"] = txtWarehouseWaybill.Text.Trim();
|
||||
// data["returnExpressCompany"] = txtExpressName.Text.Trim();
|
||||
//}
|
||||
data["packType"] = PackType; /* 1正常发货拦截退回,2额外包裹拦截退回, */
|
||||
//data["platform"] = "WEISHOP";
|
||||
|
||||
if (GlobalConfig.BuyConfig.IsUseAppBalance)
|
||||
@@ -214,7 +253,7 @@ namespace _29WxOrderWpf.Windows.OrderWindows
|
||||
string msg = BaseRegex.GetStringXml(ref getTransitAfterSaleRst, "msg");
|
||||
if (msg.IsNullOrEmpty())
|
||||
msg = getTransitAfterSaleRst;
|
||||
BaseMsgWindow.ShowError("中转售后添加失败,服务端返回 " + msg, "", this);
|
||||
BaseMsgWindow.ShowError("拦截退货包裹添加失败,服务端返回 " + msg, "", this);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -222,7 +261,7 @@ namespace _29WxOrderWpf.Windows.OrderWindows
|
||||
await Task.Run(() => { MainWindow.Instance.orderListCtrl.GetOrder(OrderItem.order_id); });
|
||||
//MainWindow.Instance.orderListCtrl.FilterOrders();
|
||||
StartUp.UpdateBalance();
|
||||
BaseMsgWindow.ShowInfo("添加退货包裹成功", "", this);
|
||||
BaseMsgWindow.ShowInfo("添加拦截退货包裹成功", "", this);
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
@@ -282,7 +321,7 @@ namespace _29WxOrderWpf.Windows.OrderWindows
|
||||
{
|
||||
}
|
||||
|
||||
public string AddWorkOrder()
|
||||
public async Task<string> AddWorkOrderAsync()
|
||||
{
|
||||
if (TransitOrder?.warehouse_status == 3)
|
||||
return "\"success\":true,\"message\":\"已到仓,无需拦截工单\"";
|
||||
@@ -296,7 +335,7 @@ namespace _29WxOrderWpf.Windows.OrderWindows
|
||||
obj["creator"] = BaseClass.UserName;
|
||||
obj["remark"] = "客户要求拦截并退回云仓";
|
||||
|
||||
var rst = HttpResponseTransitWorkOrderBLL.PostResponse(this.OrderItem.ItemOrder?.Shop, url, JsonHelper.SerializeObject(obj), "");
|
||||
var rst = await HttpResponseTransitWorkOrderBLL.PostResponseAsync(this.OrderItem.ItemOrder?.Shop, url, JsonHelper.SerializeObject(obj), "");
|
||||
return rst;
|
||||
}
|
||||
|
||||
|
||||
@@ -893,11 +893,6 @@ namespace AllBase.Model.DBModel
|
||||
|
||||
public bool GetIsAbnormal()
|
||||
{
|
||||
if (order_id == "3740040052771291904")
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// 三退或者两退,为退款完成单
|
||||
//if (orderItems.All(oi => (oi.refund_status == 4 || oi.refund_status == 11) && (oi.ItemTransitOrder != null || string.IsNullOrWhiteSpace(out_order_no)) &&
|
||||
// (oi.ItemTransitOrder == null || oi.ItemTransitOrder?.refund_status == "买手退款成功") && (string.IsNullOrWhiteSpace(out_order_no) || out_after_sale_status == "退款成功")))
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
using AllBase.Helper;
|
||||
using AllBase.Model.MvvmBaseClasses;
|
||||
using NaiBa.Util;
|
||||
using NaiBa.Util.Extension;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NPOI.SS.Formula.Functions;
|
||||
using Org.BouncyCastle.Asn1.Mozilla;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
@@ -20,13 +22,104 @@ namespace AllBase.Model.DBModel
|
||||
{
|
||||
public class oms_wei_order_item_info : PropertyNotifyObject
|
||||
{
|
||||
///// <summary>
|
||||
///// 订单对应店铺
|
||||
///// </summary>
|
||||
//public ShopLoginInfo Shop
|
||||
//{
|
||||
// get { return this.GetValue(x => x.Shop); }
|
||||
// set { this.SetValue(x => x.Shop, value); }
|
||||
public List<oms_wei_order_item_transit_detail_info> TransitPackageList
|
||||
{
|
||||
get { return this.GetValue(x => x.TransitPackageList); }
|
||||
set
|
||||
{
|
||||
this.SetValue(x => x.TransitPackageList, value);
|
||||
TransitPackageLatest = TransitPackageList.OrderByDescending(p => p.CreateTime).FirstOrDefault(p => p.TransitVoidStatus != "已作废") ??
|
||||
TransitPackageList.OrderByDescending(p => p.CreateTime).FirstOrDefault() ??
|
||||
new oms_wei_order_item_transit_detail_info();
|
||||
}
|
||||
}
|
||||
public oms_wei_order_item_transit_detail_info TransitPackageLatest
|
||||
{
|
||||
get { return this.GetValue(x => x.TransitPackageLatest); }
|
||||
set
|
||||
{
|
||||
this.SetValue(x => x.TransitPackageLatest, value);
|
||||
TransitPackageLatestWarehouseStatusStr = value?.TransitTypeStr + value?.WarehouseStatus;
|
||||
TransitPackageLatestVoidStatusStr = value?.TransitVoidStatus == "已作废" ? value?.TransitTypeStr + "已作废" : "";
|
||||
if (order_id == "3740305724012410112")
|
||||
{
|
||||
|
||||
}
|
||||
if (value != null && value?.TransitTypeStr != "发货包裹")
|
||||
VoidPackageTypeStr = "作废" + value?.TransitTypeStr;
|
||||
else
|
||||
{
|
||||
VoidPackageTypeStr = "";
|
||||
if (value != null) value.VoidPackageBtnVisibility = Visibility.Collapsed;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string TransitPackageLatestWarehouseStatusStr
|
||||
{
|
||||
get { return this.GetValue(x => x.TransitPackageLatestWarehouseStatusStr); }
|
||||
set
|
||||
{
|
||||
this.SetValue(x => x.TransitPackageLatestWarehouseStatusStr, value);
|
||||
var str = value ?? "";
|
||||
|
||||
TransitPackageLatestWarehouseStatusStrVisibility = str.Length > 0 ? Visibility.Visible : Visibility.Collapsed;
|
||||
|
||||
// 状态文字颜色
|
||||
if (str.Contains("已出库"))
|
||||
WarehouseWaybillStatusStrColor = GlobalConfig.GreenBrush;
|
||||
else if (str.Contains("已入库") || str.Contains("拦截到仓") || str.Contains("未入库"))
|
||||
WarehouseWaybillStatusStrColor = GlobalConfig.YellowBrush;
|
||||
else // if (str.Contains("待取号"))
|
||||
WarehouseWaybillStatusStrColor = GlobalConfig.RedBrush;
|
||||
// 状态边框颜色
|
||||
if (str.Contains("已出库"))
|
||||
WarehouseWaybillStatusBorderColor = GlobalConfig.GreenBrush75;
|
||||
else if (str.Contains("已入库") || str.Contains("拦截到仓") || str.Contains("未入库"))
|
||||
WarehouseWaybillStatusBorderColor = GlobalConfig.YellowBrush75;
|
||||
else // if (str.Contains("待取号"))
|
||||
WarehouseWaybillStatusBorderColor = GlobalConfig.RedBrush75;
|
||||
// 状态背景颜色
|
||||
if (str.Contains("已出库"))
|
||||
WarehouseWaybillStatusBackColor = GlobalConfig.GreenBrush35;
|
||||
else if (str.Contains("已入库") || str.Contains("拦截到仓") || str.Contains("未入库"))
|
||||
WarehouseWaybillStatusBackColor = GlobalConfig.YellowBrush35;
|
||||
else // if (str.Contains("待取号"))
|
||||
WarehouseWaybillStatusBackColor = GlobalConfig.RedBrush35;
|
||||
}
|
||||
}
|
||||
|
||||
public Visibility TransitPackageLatestWarehouseStatusStrVisibility
|
||||
{
|
||||
get { return this.GetValue(x => x.TransitPackageLatestWarehouseStatusStrVisibility); }
|
||||
set { this.SetValue(x => x.TransitPackageLatestWarehouseStatusStrVisibility, value); }
|
||||
}
|
||||
|
||||
public string TransitPackageLatestVoidStatusStr
|
||||
{
|
||||
get { return this.GetValue(x => x.TransitPackageLatestVoidStatusStr); }
|
||||
set { this.SetValue(x => x.TransitPackageLatestVoidStatusStr, value); TransitPackageLatestVoidStatusStrVisibility = string.IsNullOrEmpty(value) ? Visibility.Collapsed : Visibility.Visible; }
|
||||
}
|
||||
|
||||
public Visibility TransitPackageLatestVoidStatusStrVisibility
|
||||
{
|
||||
get { return this.GetValue(x => x.TransitPackageLatestVoidStatusStrVisibility); }
|
||||
set { this.SetValue(x => x.TransitPackageLatestVoidStatusStrVisibility, value); }
|
||||
}
|
||||
|
||||
public string VoidPackageTypeStr
|
||||
{
|
||||
get { return this.GetValue(x => x.VoidPackageTypeStr); }
|
||||
set { this.SetValue(x => x.VoidPackageTypeStr, value); }
|
||||
}
|
||||
|
||||
///// <summary>
|
||||
///// 订单对应店铺
|
||||
///// </summary>
|
||||
//public ShopLoginInfo Shop
|
||||
//{
|
||||
// get { return this.GetValue(x => x.Shop); }
|
||||
// set { this.SetValue(x => x.Shop, value); }
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
@@ -38,7 +131,6 @@ namespace AllBase.Model.DBModel
|
||||
set { this.SetValue(x => x.OrderItemVisibility, value); }
|
||||
}
|
||||
|
||||
|
||||
#region 订单采购参数
|
||||
/// <summary>
|
||||
/// 采购关联
|
||||
@@ -889,7 +981,7 @@ namespace AllBase.Model.DBModel
|
||||
}
|
||||
public void SetTransitRefundStatusStr()
|
||||
{
|
||||
TransitRefundStatusStr = oms_wei_order_item_transit_info.GetTransitBuyerRefundStatusStr(this, ItemTransitOrder ?? ItemTransitOrderWithVoid);
|
||||
TransitRefundStatusStr = oms_wei_order_item_transit_model.GetTransitBuyerRefundStatusStr(this, ItemTransitOrder ?? ItemTransitOrderWithVoid);
|
||||
|
||||
if (TransitRefundStatusStr.Contains("退款成功"))
|
||||
TransitRefundStatusBackColor = GlobalConfig.GreenBrush;
|
||||
@@ -1708,20 +1800,16 @@ namespace AllBase.Model.DBModel
|
||||
}
|
||||
|
||||
|
||||
//oms_wei_order_item_transit_model transitInfo = new oms_wei_order_item_transit_model()
|
||||
//{
|
||||
// OrderItem = this,
|
||||
//};
|
||||
//TransitPackageList = [.. transitInfo.OrderItemTransitDetailList];
|
||||
oms_wei_order_item_transit_model transitInfo = new oms_wei_order_item_transit_model()
|
||||
{
|
||||
OrderItem = this,
|
||||
};
|
||||
TransitPackageList = [.. transitInfo.OrderItemTransitDetailList];
|
||||
}
|
||||
|
||||
/// <summary> 初始化物流明细信息 </summary>
|
||||
public void SetEWaybillInfo()
|
||||
{
|
||||
if (order_id == "3738794693820307200")
|
||||
{
|
||||
|
||||
}
|
||||
if (this.ItemOrder?.latestEWaybills?.Count > 0 && !string.IsNullOrEmpty(ItemTransitOrderWithVoid?.express_2_waybill))
|
||||
LatestTransitEWaybill = ItemOrder.latestEWaybills.FirstOrDefault(ew => ew.waybill_id == ItemTransitOrderWithVoid.express_2_waybill);
|
||||
else
|
||||
|
||||
+115
-28
@@ -1,6 +1,7 @@
|
||||
using AllBase.Helper;
|
||||
using AllBase.Model.MvvmBaseClasses;
|
||||
using NaiBa.Util.Extension;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
@@ -13,7 +14,7 @@ using System.Windows.Media;
|
||||
|
||||
namespace AllBase.Model.DBModel;
|
||||
|
||||
public class oms_wei_order_item_transit_info : PropertyNotifyObject
|
||||
public class oms_wei_order_item_transit_model : PropertyNotifyObject
|
||||
{
|
||||
public oms_wei_order_item_info OrderItem
|
||||
{
|
||||
@@ -31,6 +32,13 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject
|
||||
private set { this.SetValue(x => x.OrderItemTransitDetailList, value); }
|
||||
}
|
||||
|
||||
private bool isGetLatestPackageInfo = false;
|
||||
|
||||
public oms_wei_order_item_transit_model (bool _isGetLatestPackage = false)
|
||||
{
|
||||
isGetLatestPackageInfo = _isGetLatestPackage;
|
||||
}
|
||||
|
||||
void GetOrderItemTransitList()
|
||||
{
|
||||
List<oms_wei_order_item_transit_detail_info> transitDetailList =
|
||||
@@ -62,11 +70,6 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject
|
||||
{
|
||||
var transitDetail = new oms_wei_order_item_transit_detail_info()
|
||||
{
|
||||
VoidPackageBtnVisibility = Visibility.Visible, /* 作废发货包裹按钮 */
|
||||
RejectPackageBtnVisibility = Visibility.Visible, /* 拒收发货包裹按钮 */
|
||||
ReturnPackageBtnVisibility = Visibility.Visible, /* 拦截退货包裹按钮 */
|
||||
//ExtraPackagesBtnVisibility = Visibility.Visible, /* 额外发货包裹按钮 */
|
||||
|
||||
oms_wei_order_item_info = OrderItem,
|
||||
oms_wei_external_procurement_log_info = transitOrder,
|
||||
|
||||
@@ -92,8 +95,8 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject
|
||||
DownWaybill = (transitOrder.express_2_company + "-" + transitOrder.express_2_waybill).Trim('-'),
|
||||
BuyRefundStatus = transitOrder.refund_status,
|
||||
|
||||
CreateTime = transitOrder.created_time == DateTime.MinValue ? null : transitOrder.created_time,
|
||||
PickUpTime = transitOrder.pickup_time == DateTime.MinValue ? null : transitOrder.pickup_time,
|
||||
CreateTimeStr = transitOrder.pickup_time == DateTime.MinValue ? null : transitOrder.pickup_time.ToString("yyyy-MM-dd HH:mm:ss"),
|
||||
InboundTime = transitOrder.inbound_time,
|
||||
OutboundTime = transitOrder.outbound_time,
|
||||
|
||||
@@ -120,8 +123,10 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject
|
||||
transitDetail.TransitStatus = "创建中";
|
||||
|
||||
// 中转仓入库状态 0: 未入库, 1: 已入库, 2: 已出库, 3: 拦截到仓
|
||||
if (transitOrder.warehouse_status == 0)
|
||||
transitDetail.WarehouseStatus = "已创建";
|
||||
if (transitOrder.pickup_time > DateTime.MinValue == false)
|
||||
transitDetail.WarehouseStatus = "未取号";
|
||||
else if (transitOrder.warehouse_status == null || transitOrder.warehouse_status == 0)
|
||||
transitDetail.WarehouseStatus = "未入库";
|
||||
else if (transitOrder.warehouse_status == 1)
|
||||
transitDetail.WarehouseStatus = "已入库";
|
||||
else if (transitOrder.warehouse_status == 2)
|
||||
@@ -160,6 +165,43 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject
|
||||
|
||||
transitDetail.TransitDetailRefundStatusStr = GetTransitBuyerRefundStatusStr(OrderItem, transitOrder);
|
||||
|
||||
//transitDetail.VoidPackageBtnVisibility = !(transitDetail.InboundTime > DateTime.MinValue) && transitOrder.order_void_status != 1 ? Visibility.Visible : Visibility.Collapsed; /* 作废发货包裹按钮 */
|
||||
//transitDetail.RejectPackageBtnVisibility = !(transitDetail.InboundTime > DateTime.MinValue) ? Visibility.Visible : Visibility.Collapsed; /* 拒收发货包裹按钮 */
|
||||
//transitDetail.ReturnPackageBtnVisibility = transitDetail.InboundTime > DateTime.MinValue && !(transitDetail.OutboundTime > DateTime.MinValue) &&
|
||||
// !OrderItem.ItemTransitOrderAfterSales.Any(af => af.pack_type == 1 && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) &&
|
||||
// !OrderItem.ItemTransitExtraOrders.Any(af => af.pack_type == "1" && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) ?
|
||||
// Visibility.Visible : Visibility.Collapsed; /* 退货包裹按钮 */
|
||||
//transitDetail.InterceptPackageBtnVisibility = transitDetail.OutboundTime > DateTime.MinValue &&
|
||||
// !OrderItem.ItemTransitOrderAfterSales.Any(af => af.pack_type == 1 && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) &&
|
||||
// !OrderItem.ItemTransitExtraOrders.Any(af => af.pack_type == "1" && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) ?
|
||||
// Visibility.Visible : Visibility.Collapsed; /* 拦截退货包裹按钮 */
|
||||
//transitDetail.ExtraPackagesBtnVisibility = transitDetail.InboundTime > DateTime.MinValue && !(transitDetail.OutboundTime > DateTime.MinValue) && !(transitDetail.CreateTime > DateTime.Now.AddDays(-4)) &&
|
||||
// !OrderItem.ItemTransitOrderAfterSales.Any(af => af.pack_type == 1 && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) &&
|
||||
// !OrderItem.ItemTransitExtraOrders.Any(af => af.pack_type == "1" && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) ?
|
||||
// Visibility.Visible : Visibility.Collapsed; /* 额外发货包裹按钮 */
|
||||
|
||||
transitDetail.VoidPackageBtnVisibility = transitOrder.warehouse_status == 0 && transitOrder.order_void_status != 1 ? Visibility.Visible : Visibility.Collapsed; /* 作废发货包裹按钮 */
|
||||
transitDetail.RejectPackageBtnVisibility = transitOrder.warehouse_status == 0 ? Visibility.Visible : Visibility.Collapsed; /* 拒收发货包裹按钮 */
|
||||
transitDetail.ReturnPackageBtnVisibility = (transitOrder.warehouse_status == 1 || transitOrder.warehouse_status == 3) &&
|
||||
!OrderItem.ItemTransitOrderAfterSales.Any(af => af.pack_type == 1 && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) &&
|
||||
!OrderItem.ItemTransitExtraOrders.Any(af => af.pack_type == "1" && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) ?
|
||||
Visibility.Visible : Visibility.Collapsed; /* 退货包裹按钮 */
|
||||
transitDetail.InterceptPackageBtnVisibility = transitOrder.warehouse_status == 2 &&
|
||||
!OrderItem.ItemTransitOrderAfterSales.Any(af => af.pack_type == 1 && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) &&
|
||||
!OrderItem.ItemTransitExtraOrders.Any(af => af.pack_type == "1" && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) ?
|
||||
Visibility.Visible : Visibility.Collapsed; /* 拦截退货包裹按钮 */
|
||||
transitDetail.ExtraPackagesBtnVisibility = (transitOrder.warehouse_status == 1 || transitOrder.warehouse_status == 3) && !(transitDetail.CreateTime > DateTime.Now.AddDays(-4)) &&
|
||||
!OrderItem.ItemTransitOrderAfterSales.Any(af => af.pack_type == 1 && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) &&
|
||||
!OrderItem.ItemTransitExtraOrders.Any(af => af.pack_type == "1" && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) ?
|
||||
Visibility.Visible : Visibility.Collapsed; /* 额外发货包裹按钮 */
|
||||
|
||||
|
||||
//transitDetail.VoidPackageBtnVisibility = Visibility.Visible; /* 作废发货包裹按钮 */
|
||||
//transitDetail.RejectPackageBtnVisibility = Visibility.Visible; /* 拒收发货包裹按钮 */
|
||||
//transitDetail.ReturnPackageBtnVisibility = Visibility.Visible; /* 退货包裹按钮 */
|
||||
//transitDetail.InterceptPackageBtnVisibility = Visibility.Visible; /* 拦截退货包裹按钮 */
|
||||
//transitDetail.ExtraPackagesBtnVisibility = Visibility.Visible; /* 额外发货包裹按钮 */
|
||||
|
||||
detailList.Add(transitDetail);
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -190,8 +232,6 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject
|
||||
var transitOrder = OrderItem.ItemTransitOrders?.FirstOrDefault(t => t.order_code == transitAftersaleOrder.order_code);
|
||||
var transitDetail = new oms_wei_order_item_transit_detail_info()
|
||||
{
|
||||
VoidPackageBtnVisibility = Visibility.Visible, /* 作废退货包裹 */
|
||||
|
||||
oms_wei_order_item_info = OrderItem,
|
||||
oms_wei_external_procurement_after_sale_info = transitAftersaleOrder,
|
||||
|
||||
@@ -216,9 +256,8 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject
|
||||
DownWaybill = (transitAftersaleOrder.downstream_express_code + "-" + transitAftersaleOrder.downstream_waybill).Trim('-'),
|
||||
BuyRefundStatus = transitOrder.refund_status,
|
||||
|
||||
// todo 退货包裹暂时缺少取号时间
|
||||
PickUpTime = transitAftersaleOrder.pickup_time == DateTime.MinValue ? null : transitAftersaleOrder.pickup_time,
|
||||
CreateTimeStr = transitAftersaleOrder.created_time == null ? null : transitAftersaleOrder.created_time.Value.ToString("yyyy-MM-dd HH:mm:ss"),
|
||||
CreateTime = transitAftersaleOrder.created_time,
|
||||
PickUpTime = transitAftersaleOrder.pickup_time,
|
||||
InboundTime = transitAftersaleOrder.inbound_time,
|
||||
OutboundTime = transitAftersaleOrder.outbound_time,
|
||||
|
||||
@@ -245,8 +284,8 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject
|
||||
transitDetail.TransitStatus = "异常";
|
||||
|
||||
// 退货包裹入库状态 1=入库 2=出库
|
||||
if (transitAftersaleOrder.warehouse_status == 0)
|
||||
transitDetail.WarehouseStatus = "已创建";
|
||||
if (transitAftersaleOrder.warehouse_status == null || transitAftersaleOrder.warehouse_status == 0)
|
||||
transitDetail.WarehouseStatus = "未入库";
|
||||
else if (transitAftersaleOrder.warehouse_status == 1)
|
||||
transitDetail.WarehouseStatus = "已入库";
|
||||
else if (transitAftersaleOrder.warehouse_status == 2)
|
||||
@@ -260,9 +299,18 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject
|
||||
//else if (transitOrder.order_void_status == 2)
|
||||
// transitDetail.TransitVoidStatus = "作废失败";
|
||||
|
||||
|
||||
//transitDetail.VoidPackageBtnVisibility = !(transitDetail.InboundTime > DateTime.MinValue) && transitAftersaleOrder.order_void_status != 1 ? Visibility.Visible : Visibility.Collapsed; /* 作废退货包裹 */
|
||||
|
||||
transitDetail.VoidPackageBtnVisibility = (transitAftersaleOrder.warehouse_status == 0 || transitAftersaleOrder.warehouse_status == 1 || transitAftersaleOrder.warehouse_status == 3) &&
|
||||
transitAftersaleOrder.order_void_status != 1 ? Visibility.Visible : Visibility.Collapsed; /* 作废退货包裹 */
|
||||
|
||||
//transitDetail.VoidPackageBtnVisibility = Visibility.Visible;
|
||||
|
||||
// 售后表没有拒收和拒收状态功能
|
||||
|
||||
// 售后表拦截成功状态在主表或者额外包裹表显示
|
||||
// 售后表没有拦截和拦截状态功能
|
||||
// 主表或者额外包裹表的售后状态在主表显示
|
||||
|
||||
detailList.Add(transitDetail);
|
||||
}
|
||||
@@ -318,8 +366,8 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject
|
||||
DownWaybill = (transitExtraOrder.real_logistics_code + "-" + transitExtraOrder.real_logistics_express_code).Trim('-'),
|
||||
BuyRefundStatus = transitOrder.refund_status,
|
||||
|
||||
PickUpTime = transitExtraOrder.pickup_time == DateTime.MinValue ? null : transitExtraOrder.pickup_time,
|
||||
CreateTimeStr = transitExtraOrder.created_time == null ? null : transitExtraOrder.created_time.Value.ToString("yyyy-MM-dd HH:mm:ss"),
|
||||
CreateTime = transitExtraOrder.created_time,
|
||||
PickUpTime = transitExtraOrder.pickup_time,
|
||||
InboundTime = transitExtraOrder.inbound_time,
|
||||
OutboundTime = transitExtraOrder.outbound_time,
|
||||
|
||||
@@ -346,8 +394,8 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject
|
||||
transitDetail.TransitStatus = "处理中";
|
||||
|
||||
// 额外包裹入库状态 1=入库 2=出库
|
||||
if (transitExtraOrder.warehouse_status == 0)
|
||||
transitDetail.WarehouseStatus = "已创建";
|
||||
if (transitExtraOrder.warehouse_status == null || transitExtraOrder.warehouse_status == 0)
|
||||
transitDetail.WarehouseStatus = "未入库";
|
||||
else if (transitExtraOrder.warehouse_status == 1)
|
||||
transitDetail.WarehouseStatus = "已入库";
|
||||
else if (transitExtraOrder.warehouse_status == 2)
|
||||
@@ -386,6 +434,27 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject
|
||||
else if (transitAfterSaleOrder != null && transitExtraOrder.intercept_return_status == 2)
|
||||
transitDetail.TransitReturnStatus = "拦截失败";
|
||||
|
||||
//transitDetail.VoidPackageBtnVisibility = !(transitDetail.InboundTime > DateTime.MinValue) && transitExtraOrder.order_void_status != 1 ? Visibility.Visible : Visibility.Collapsed; /* 作废额外包裹 */
|
||||
//transitDetail.ReturnPackageBtnVisibility = transitDetail.InboundTime > DateTime.MinValue && !(transitDetail.OutboundTime > DateTime.MinValue) &&
|
||||
// transitExtraOrder.pack_type == "1" && !OrderItem.ItemTransitOrderAfterSales.Any(af => af.pack_type == 2 && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) ?
|
||||
// Visibility.Visible : Visibility.Collapsed; /* 退货包裹按钮 */
|
||||
//transitDetail.InterceptPackageBtnVisibility = transitDetail.OutboundTime > DateTime.MinValue &&
|
||||
// transitExtraOrder.pack_type == "1" && !OrderItem.ItemTransitOrderAfterSales.Any(af => af.pack_type == 2 && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) ?
|
||||
// Visibility.Visible : Visibility.Collapsed; /* 拦截退货包裹按钮 */
|
||||
|
||||
transitDetail.VoidPackageBtnVisibility = !(transitExtraOrder.warehouse_status == 0 || transitExtraOrder.warehouse_status == 1 || transitExtraOrder.warehouse_status == 3) &&
|
||||
transitExtraOrder.order_void_status != 1 ? Visibility.Visible : Visibility.Collapsed; /* 作废额外包裹 */
|
||||
transitDetail.ReturnPackageBtnVisibility = (transitExtraOrder.warehouse_status == 1 || transitExtraOrder.warehouse_status == 3) &&
|
||||
transitExtraOrder.pack_type == "2" && !OrderItem.ItemTransitOrderAfterSales.Any(af => af.pack_type == 2 && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) ?
|
||||
Visibility.Visible : Visibility.Collapsed; /* 退货包裹按钮 */
|
||||
transitDetail.InterceptPackageBtnVisibility = transitExtraOrder.warehouse_status == 2 &&
|
||||
transitExtraOrder.pack_type == "2" && !OrderItem.ItemTransitOrderAfterSales.Any(af => af.pack_type == 2 && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) ?
|
||||
Visibility.Visible : Visibility.Collapsed; /* 拦截退货包裹按钮 */
|
||||
|
||||
//transitDetail.VoidPackageBtnVisibility = Visibility.Visible; /* 作废额外包裹 */
|
||||
//transitDetail.ReturnPackageBtnVisibility = Visibility.Visible; /* 退货包裹按钮 */
|
||||
//transitDetail.InterceptPackageBtnVisibility = Visibility.Visible; /* 拦截退货包裹按钮 */
|
||||
|
||||
detailList.Add(transitDetail);
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -422,6 +491,9 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 包裹相关信息
|
||||
/// </summary>
|
||||
public class oms_wei_order_item_transit_detail_info : PropertyNotifyObject
|
||||
{
|
||||
public oms_wei_order_item_transit_detail_info()
|
||||
@@ -430,13 +502,14 @@ public class oms_wei_order_item_transit_detail_info : PropertyNotifyObject
|
||||
VoidPackageBtnVisibility = Visibility.Collapsed;
|
||||
RejectPackageBtnVisibility = Visibility.Collapsed;
|
||||
ReturnPackageBtnVisibility = Visibility.Collapsed;
|
||||
InterceptPackageBtnVisibility = Visibility.Collapsed;
|
||||
ExtraPackagesBtnVisibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
public oms_wei_order_item_info oms_wei_order_item_info { get; set; }
|
||||
public oms_wei_external_procurement_log_info oms_wei_external_procurement_log_info { get; set; }
|
||||
public oms_wei_external_procurement_after_sale_info oms_wei_external_procurement_after_sale_info { get; set; }
|
||||
public oms_wei_transfer_extra_package oms_wei_transfer_extra_package { get; set; }
|
||||
public oms_wei_external_procurement_log_info oms_wei_external_procurement_log_info { get; set; } /* 发货包裹 */
|
||||
public oms_wei_external_procurement_after_sale_info oms_wei_external_procurement_after_sale_info { get; set; } /* 退货包裹 */
|
||||
public oms_wei_transfer_extra_package oms_wei_transfer_extra_package { get; set; } /* 额外包裹 */
|
||||
|
||||
public decimal Opacity
|
||||
{
|
||||
@@ -450,9 +523,7 @@ public class oms_wei_order_item_transit_detail_info : PropertyNotifyObject
|
||||
set { this.SetValue(x => x.ShopName, value); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 仓库类型 发货包裹 退货包裹
|
||||
/// </summary>
|
||||
/// <summary> 仓库类型: 发货包裹 退货包裹 额外包裹 </summary>
|
||||
public string TransitTypeStr
|
||||
{
|
||||
get { return this.GetValue(x => x.TransitTypeStr); }
|
||||
@@ -493,6 +564,11 @@ public class oms_wei_order_item_transit_detail_info : PropertyNotifyObject
|
||||
get { return this.GetValue(x => x.WarehouseName); }
|
||||
set { this.SetValue(x => x.WarehouseName, value); }
|
||||
}
|
||||
public DateTime? CreateTime
|
||||
{
|
||||
get { return this.GetValue(x => x.CreateTime); }
|
||||
set { this.SetValue(x => x.CreateTime, value); CreateTimeStr = value == null ? null : value.Value.ToString("yyyy-MM-dd HH:mm:ss"); }
|
||||
}
|
||||
public string CreateTimeStr
|
||||
{
|
||||
get { return this.GetValue(x => x.CreateTimeStr); }
|
||||
@@ -568,7 +644,7 @@ public class oms_wei_order_item_transit_detail_info : PropertyNotifyObject
|
||||
get { return this.GetValue(x => x.TransitStatus); }
|
||||
set { this.SetValue(x => x.TransitStatus, value); }
|
||||
}
|
||||
/// <summary> 仓库状态 </summary>
|
||||
/// <summary> 仓库状态文本: 未入库 已入库 已出库 拦截到仓</summary>
|
||||
public string WarehouseStatus
|
||||
{
|
||||
get { return this.GetValue(x => x.WarehouseStatus); }
|
||||
@@ -663,11 +739,22 @@ public class oms_wei_order_item_transit_detail_info : PropertyNotifyObject
|
||||
get { return this.GetValue(x => x.RejectPackageBtnVisibility); }
|
||||
set { this.SetValue(x => x.RejectPackageBtnVisibility, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 直接退回包裹
|
||||
/// </summary>
|
||||
public Visibility ReturnPackageBtnVisibility
|
||||
{
|
||||
get { return this.GetValue(x => x.ReturnPackageBtnVisibility); }
|
||||
set { this.SetValue(x => x.ReturnPackageBtnVisibility, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 拦截退回包裹
|
||||
/// </summary>
|
||||
public Visibility InterceptPackageBtnVisibility
|
||||
{
|
||||
get { return this.GetValue(x => x.InterceptPackageBtnVisibility); }
|
||||
set { this.SetValue(x => x.InterceptPackageBtnVisibility, value); }
|
||||
}
|
||||
public Visibility ExtraPackagesBtnVisibility
|
||||
{
|
||||
get { return this.GetValue(x => x.ExtraPackagesBtnVisibility); }
|
||||
@@ -77,7 +77,10 @@ public class oms_wei_transfer_extra_package : PropertyNotifyObject
|
||||
public int? postage { get; set; } // '订单初始费用(分)',
|
||||
public int? retry_acquire_success { get; set; } // '重试取号是否成功 0=未尝试/未重试 1=成功 2=失败',
|
||||
public int? over_weight_fee { get; set; } // '超重费用',
|
||||
public string pack_type { get; set; } // '中转仓额外包裹类型 1商品2额外3礼品4退货',
|
||||
/// <summary>
|
||||
/// 中转仓额外包裹类型 1商品2额外3礼品4退货
|
||||
/// </summary>
|
||||
public string pack_type { get; set; }
|
||||
public DateTime? rejected_time { get; set; } // '拒收时间',
|
||||
public int? has_reject { get; set; } // DEFAULT NULL,
|
||||
public DateTime? blocked_arrival_time { get; set; }
|
||||
|
||||
@@ -185,13 +185,13 @@ namespace AllBase.Model.Result
|
||||
get { return this.GetValue(x => x.thumbUrl); }
|
||||
set { this.SetValue(x => x.thumbUrl, value); }
|
||||
} // "https://t00img.yangkeduo.com/t10img/images/2018-06-09/5c7746a3608e75a2b65926f4ed0f34cb.jpeg",
|
||||
public int? initQuantity { get; set; } // 0,
|
||||
public int? quantity { get; set; } // 1000,
|
||||
public int? limitQuantity { get; set; } // 999999,
|
||||
public int? soldQuantity { get; set; } // 0,
|
||||
public int? hotSale { get; set; } // 1,
|
||||
public int? defaultQuantity { get; set; } // 100,
|
||||
public int? isOnsale { get; set; } // 1,
|
||||
//public int? initQuantity { get; set; } // 0,
|
||||
//public int? quantity { get; set; } // 1000,
|
||||
//public int? limitQuantity { get; set; } // 999999,
|
||||
//public int? soldQuantity { get; set; } // 0,
|
||||
//public int? hotSale { get; set; } // 1,
|
||||
//public int? defaultQuantity { get; set; } // 100,
|
||||
//public int? isOnsale { get; set; } // 1,
|
||||
public string spec { get; set; } // "677094835",
|
||||
[JsonIgnore]
|
||||
public string SpecNameStr
|
||||
@@ -216,17 +216,17 @@ namespace AllBase.Model.Result
|
||||
public string normalPrice { get; set; } // "14.5",
|
||||
public string groupPrice { get; set; } // "13.5",
|
||||
public int? oldGroupPrice { get; set; } // 1350,
|
||||
public int? marketPrice { get; set; } // 0,
|
||||
public int? weight { get; set; } // 2500,
|
||||
public List<yellowLabelListInfo> yellowLabelList { get; set; }
|
||||
public int? previewPriority { get; set; } // 0,
|
||||
public int? startTime { get; set; } // 0,
|
||||
public int? endTime { get; set; } // 0,
|
||||
public int? staticLimitQuantity { get; set; } // 999999,
|
||||
public string attribute { get; set; } // "{\"skuPreSaleTime\":0}",
|
||||
public string normalSavePrice { get; set; } // "1",
|
||||
public long? skuID { get; set; } // 28790184768,
|
||||
public string skuExpansionPrice { get; set; } // "0"
|
||||
//public int? marketPrice { get; set; } // 0,
|
||||
//public int? weight { get; set; } // 2500,
|
||||
//public List<yellowLabelListInfo> yellowLabelList { get; set; }
|
||||
//public int? previewPriority { get; set; } // 0,
|
||||
//public int? startTime { get; set; } // 0,
|
||||
//public int? endTime { get; set; } // 0,
|
||||
//public int? staticLimitQuantity { get; set; } // 999999,
|
||||
//public string attribute { get; set; } // "{\"skuPreSaleTime\":0}",
|
||||
//public string normalSavePrice { get; set; } // "1",
|
||||
//public long? skuID { get; set; } // 28790184768,
|
||||
//public string skuExpansionPrice { get; set; } // "0"
|
||||
}
|
||||
|
||||
public class yellowLabelListInfo
|
||||
|
||||
@@ -81,6 +81,71 @@ namespace Work._29Tools.BLL
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async Task<string> PostResponseAsync(ShopLoginInfo shop, string _url, string _body, string referer)
|
||||
{
|
||||
string cookies = "";
|
||||
try
|
||||
{
|
||||
var cookieLst = JsonHelper.DeserializeJsonToList<CefSharp.Cookie>((shop?.Cookies).ParseToString());
|
||||
if (cookieLst == null)
|
||||
cookieLst = new List<CefSharp.Cookie>();
|
||||
foreach (var cook in cookieLst)
|
||||
{
|
||||
cookies += cook.Name + "=" + cook.Value + ";";
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
|
||||
HttpWebResponse response = null;
|
||||
string result;
|
||||
try
|
||||
{
|
||||
string url = _url;
|
||||
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
|
||||
|
||||
request.KeepAlive = true;
|
||||
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
|
||||
request.ContentType = "application/json";
|
||||
request.Accept = "*/*";
|
||||
request.Headers.Add("Origin", WorkOrderUrl);
|
||||
request.Headers.Add("X-Api-Key", "rwo_vmRcWpEFIB9zSTRkXoKSeTpq.ihFaJR7SPFi6GsmKtkorSKo-uj3IsYAvhJQI7lLKu1M");
|
||||
request.Referer = referer;
|
||||
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
|
||||
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
|
||||
if (!string.IsNullOrEmpty(cookies))
|
||||
request.Headers.Set(HttpRequestHeader.Cookie, cookies);
|
||||
|
||||
request.Method = "POST";
|
||||
request.ServicePoint.Expect100Continue = false;
|
||||
|
||||
string body = _body;
|
||||
byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body);
|
||||
request.ContentLength = postBytes.Length;
|
||||
Stream stream = request.GetRequestStream();
|
||||
stream.Write(postBytes, 0, postBytes.Length);
|
||||
stream.Close();
|
||||
|
||||
response = (HttpWebResponse)await request.GetResponseAsync();
|
||||
}
|
||||
catch (WebException ex)
|
||||
{
|
||||
if (ex.Status == WebExceptionStatus.ProtocolError)
|
||||
{
|
||||
response = (HttpWebResponse)ex.Response;
|
||||
result = HttpResponseBLL.ReadResponse(response);
|
||||
return result;
|
||||
}
|
||||
else return ex.Message;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
if (response != null) response.Close();
|
||||
return e.Message;
|
||||
}
|
||||
result = HttpResponseBLL.ReadResponse(response);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static string GetResponse(ShopLoginInfo shop, string _url, string referer)
|
||||
{
|
||||
|
||||
|
||||
@@ -569,6 +569,9 @@ namespace Work._29Tools.BLL
|
||||
//if (string.IsNullOrEmpty(Authorization)) Authorization = "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjQ3YmRlOGNlLWY5MDUtNDIzOS05M2VjLWZiN2U3MjRmOTY0NiJ9.vwxhj3t4zTDdBQTyfVjcKr-0Oma8-VtPDzE2LVkw4A4aWftncY1ikXgEhGwoYHn9E7yOnhS_Pb7FfzgecTqqHA";
|
||||
|
||||
bool isRetry = false;
|
||||
|
||||
Retry:
|
||||
|
||||
if (string.IsNullOrEmpty(sAuthorization))
|
||||
{
|
||||
var url3 = BaseClass.Build29WxObjString("user/get_e57_authorization");
|
||||
@@ -579,8 +582,6 @@ namespace Work._29Tools.BLL
|
||||
sAuthorization = BaseRegex.GetStringJson(ref html3, "authorization");
|
||||
}
|
||||
|
||||
Retry:
|
||||
|
||||
HttpWebResponse response = null;
|
||||
string result;
|
||||
try
|
||||
@@ -644,7 +645,7 @@ namespace Work._29Tools.BLL
|
||||
return e.Message;
|
||||
}
|
||||
result = HttpResponseBLL.ReadResponse(response);
|
||||
if (result.Contains("没有Authorization") && !isRetry)
|
||||
if ((result.Contains("没有Authorization") || result.Contains("授权过期")) && !isRetry)
|
||||
{
|
||||
isRetry = true;
|
||||
sAuthorization = "";
|
||||
@@ -660,6 +661,9 @@ namespace Work._29Tools.BLL
|
||||
////if (string.IsNullOrEmpty(Authorization)) Authorization = "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjQ3YmRlOGNlLWY5MDUtNDIzOS05M2VjLWZiN2U3MjRmOTY0NiJ9.vwxhj3t4zTDdBQTyfVjcKr-0Oma8-VtPDzE2LVkw4A4aWftncY1ikXgEhGwoYHn9E7yOnhS_Pb7FfzgecTqqHA";
|
||||
|
||||
bool isRetry = false;
|
||||
|
||||
Retry:
|
||||
|
||||
if (string.IsNullOrEmpty(sAuthorization))
|
||||
{
|
||||
var url3 = BaseClass.Build29WxObjString("user/get_e57_authorization");
|
||||
@@ -670,8 +674,6 @@ namespace Work._29Tools.BLL
|
||||
sAuthorization = BaseRegex.GetStringJson(ref html3, "authorization");
|
||||
}
|
||||
|
||||
Retry:
|
||||
|
||||
HttpWebResponse response = null;
|
||||
string result;
|
||||
try
|
||||
@@ -726,7 +728,7 @@ namespace Work._29Tools.BLL
|
||||
return e.Message;
|
||||
}
|
||||
result = HttpResponseBLL.ReadResponse(response);
|
||||
if (result.Contains("没有Authorization") && !isRetry)
|
||||
if ((result.Contains("没有Authorization") || result.Contains("授权过期")) && !isRetry)
|
||||
{
|
||||
isRetry = true;
|
||||
sAuthorization = "";
|
||||
@@ -738,6 +740,9 @@ namespace Work._29Tools.BLL
|
||||
public static string e57GetResponse(string _url, string referer)
|
||||
{
|
||||
bool isRetry = false;
|
||||
|
||||
Retry:
|
||||
|
||||
if (string.IsNullOrEmpty(sAuthorization))
|
||||
{
|
||||
var url3 = BaseClass.Build29WxObjString("user/get_e57_authorization");
|
||||
@@ -747,7 +752,6 @@ namespace Work._29Tools.BLL
|
||||
html3 = GetHtml.PostUtf8(url3, data3);
|
||||
sAuthorization = BaseRegex.GetStringJson(ref html3, "authorization");
|
||||
}
|
||||
Retry:
|
||||
|
||||
HttpWebResponse response = null;
|
||||
string result;
|
||||
@@ -802,7 +806,7 @@ namespace Work._29Tools.BLL
|
||||
return e.Message;
|
||||
}
|
||||
result = HttpResponseBLL.ReadResponse(response);
|
||||
if (result.Contains("没有Authorization") && !isRetry)
|
||||
if ((result.Contains("没有Authorization") || result.Contains("授权过期")) && !isRetry)
|
||||
{
|
||||
isRetry = true;
|
||||
sAuthorization = "";
|
||||
|
||||
@@ -866,7 +866,7 @@ namespace TemuKJD.ToolForms
|
||||
}
|
||||
else
|
||||
{
|
||||
return "获取失败,请关闭拍单窗口重试 " + BaseRegex.GetStringXml(ref sourceCodeRst, "msg", sourceCodeRst);
|
||||
return "溯源码获取失败,请关闭拍单窗口重试 " + BaseRegex.GetStringXml(ref sourceCodeRst, "msg", sourceCodeRst);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1515,6 +1515,7 @@ namespace TemuKJD.ToolForms
|
||||
order_sku_id = orderItem.sku_id,
|
||||
out_amount = (txtBuyPrice.Text.ParseToDecimal() * 100).ParseToInt(),
|
||||
out_order_no = txtBuyOrderId.Text.Trim(),
|
||||
order_code = txtBuyOrderId.Text.Trim(),
|
||||
purchaser_note = body["purchaserNote"].ParseToString(),
|
||||
created_time = DateTime.Now,
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user