505 lines
20 KiB
C#
505 lines
20 KiB
C#
using AllBase.Helper;
|
|
using AllBase.Model.MvvmBaseClasses;
|
|
using NaiBa.Util.Extension;
|
|
using NPOI.OpenXmlFormats.Spreadsheet;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.ComponentModel;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using System.Windows.Media;
|
|
|
|
namespace AllBase.Model.DBModel
|
|
{
|
|
public class oms_wei_order_info : PropertyNotifyObject
|
|
{
|
|
public ObservableCollection<oms_wei_order_item_info> orderItems { get; set; } = new ObservableCollection<oms_wei_order_item_info>();
|
|
|
|
public oms_wei_order_item_info order_item1 { get { return orderItems?.Count > 0 ? orderItems[0] : null; } }
|
|
public oms_wei_order_item_info order_item2 { get { return orderItems?.Count > 1 ? orderItems[1] : null; } }
|
|
public oms_wei_order_item_info order_item3 { get { return orderItems?.Count > 2 ? orderItems[2] : null; } }
|
|
public oms_wei_order_item_info order_item4 { get { return orderItems?.Count > 3 ? orderItems[3] : null; } }
|
|
public oms_wei_order_item_info order_item5 { get { return orderItems?.Count > 4 ? orderItems[4] : null; } }
|
|
public Visibility order_item1_visibility { get { return order_item1 == null ? Visibility.Collapsed : Visibility.Visible; } }
|
|
public Visibility order_item2_visibility { get { return order_item2 == null ? Visibility.Collapsed : Visibility.Visible; } }
|
|
public Visibility order_item3_visibility { get { return order_item3 == null ? Visibility.Collapsed : Visibility.Visible; } }
|
|
public Visibility order_item4_visibility { get { return order_item4 == null ? Visibility.Collapsed : Visibility.Visible; } }
|
|
public Visibility order_item5_visibility { get { return order_item5 == null ? Visibility.Collapsed : Visibility.Visible; } }
|
|
|
|
public ObservableCollection<oms_wei_refund_info> refundItems { get; set; } = new ObservableCollection<oms_wei_refund_info>();
|
|
|
|
/// <summary>
|
|
/// 待采购
|
|
/// </summary>
|
|
public bool IsWaitBuy
|
|
{
|
|
get
|
|
{
|
|
if (order_id == "3737644875536802048")
|
|
{
|
|
|
|
}
|
|
if (orderItems.All(oi => oi.ItemTransitOrder != null)) return false;
|
|
if (purchase_status != 0) return false;
|
|
if (!out_order_no.IsNullOrEmpty()) return false;
|
|
if (status != 20 && status != 21) return false;
|
|
if (gift_order_status == 1 || gift_order_status == 2) return false;
|
|
return true;
|
|
}
|
|
set { }
|
|
}
|
|
/// <summary>
|
|
/// 待发货
|
|
/// </summary>
|
|
public bool IsWaitSend
|
|
{
|
|
//get { return (purchase_status == 1 || !string.IsNullOrEmpty(out_order_no)) && (status == 20 || status == 21); }
|
|
get
|
|
{
|
|
if (purchase_status != 1 && string.IsNullOrEmpty(out_order_no) && !orderItems.All(oi => oi.ItemTransitOrder != null)) return false;
|
|
if (status != 20 && status != 21) return false;
|
|
return true;
|
|
}
|
|
set { }
|
|
}
|
|
/// <summary>
|
|
/// 待收货
|
|
/// </summary>
|
|
public bool IsWaitReceive
|
|
{
|
|
get { return status == 30 || status == 100 || gift_order_status == 1 || gift_order_status == 2; }
|
|
set { }
|
|
}
|
|
/// <summary>
|
|
/// 售后订单(含售后关闭)
|
|
/// </summary>
|
|
public bool IsRefund
|
|
{
|
|
get { return refundItems?.Count > 0 && refundItems.Any(r => r.status != "USER_CANCELD"); }
|
|
set { }
|
|
}
|
|
/// <summary>
|
|
/// 紧急订单
|
|
/// </summary>
|
|
public bool IsEmergency
|
|
{
|
|
get
|
|
{
|
|
if (orderItems.Any(oi => oi.refund_status > 0 && oi.ItemTransitOrders.Count > 0 &&
|
|
oi.ItemTransitOrders.Any(t => !string.IsNullOrEmpty(t.refund_status) &&
|
|
!t.refund_status.Contains("退款成功") &&
|
|
!t.refund_status.Contains("关闭") &&
|
|
!t.refund_status.Contains("撤销"))))
|
|
{
|
|
return true;
|
|
}
|
|
else if (orderItems.Any(oi => (oi.ItemTransitOrderWithVoid?.raw_message).ParseToString().Contains("取号异常")))
|
|
return true;
|
|
return false;
|
|
}
|
|
set { }
|
|
}
|
|
|
|
|
|
public string orderStatusStr
|
|
{
|
|
get
|
|
{
|
|
//状态10 待付款;20 待发货;21 部分发货;30 待收货;100 完成;200 全部商品售后之后,订单取消;250 未付款用户主动取消或超时未付款订单自动取消;
|
|
if (status == 10)
|
|
return "待付款";
|
|
if (status == 21)
|
|
return "部分发货";
|
|
if (status == 30)
|
|
return "待收货";
|
|
if (status == 100)
|
|
return "完成";
|
|
if (status == 200)
|
|
return "已取消";
|
|
if (status == 250)
|
|
return "未付款已取消";
|
|
return "未知状态";
|
|
}
|
|
set { }
|
|
}
|
|
|
|
public DateTime? createDateTime = null;
|
|
/// <summary>
|
|
/// 订单生成时间
|
|
/// </summary>
|
|
public string create_time_str
|
|
{
|
|
get
|
|
{
|
|
if (createDateTime == null)
|
|
createDateTime = BaseClass.StampToDateTime(create_time);
|
|
return createDateTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
|
|
}
|
|
set { }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 订单发货完成时间
|
|
/// </summary>
|
|
public string ship_done_time_str
|
|
{
|
|
get { return BaseClass.StampToDateTime(this.ship_done_time.ParseToInt()).ToString("yyyy-MM-dd HH:mm:ss"); }
|
|
set { }
|
|
}
|
|
/// <summary>
|
|
/// 订单发货完成时间可见
|
|
/// </summary>
|
|
public Visibility ship_done_time_visibility
|
|
{
|
|
get { return this.ship_done_time.ParseToInt() > 0 ? Visibility.Visible : Visibility.Collapsed; }
|
|
set { }
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 订单总状态文本
|
|
/// </summary>
|
|
public string delivery_deadline_status_str
|
|
{
|
|
get
|
|
{
|
|
if (this.refundItems.Any(r => "商家受理中,待买家退货,待商家收货,平台退款中,待用户确认,待用户处理商家协商,待用户处理商家代发起的售后申请,物流拦截中".Contains(r.RefundStatusStr)))
|
|
return "退款中";
|
|
else if (this.refundItems.Any(r => r.RefundStatusStr == "退款完成" || r.RefundStatusStr == "退货退款完成"))
|
|
return "退款完成";
|
|
// 用户取消申请
|
|
else if (GlobalConfig.OrderTabHeaderStr.StartsWith("退款单") && this.refundItems.Any(r => !r.RefundStatusStr.IsNullOrEmpty()))
|
|
return this.refundItems.FirstOrDefault(r => !r.RefundStatusStr.IsNullOrEmpty()).RefundStatusStr;
|
|
if (this.status == 20 || this.status == 21)
|
|
{
|
|
return "剩余";
|
|
}
|
|
return "剩余";
|
|
}
|
|
set { /*delivery_deadline_status_str = value;*/ }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 延迟发货时间(微信小店:商品发货时效,超时此时间未发货即为发货超时)文本
|
|
/// </summary>
|
|
public string delivery_deadline_str
|
|
{
|
|
get
|
|
{
|
|
if (this.status == 20 || this.status == 21)
|
|
{
|
|
var deadlineTime = BaseClass.StampToDateTime(delivery_deadline.ParseToInt());
|
|
var nowTime = DateTime.Now;
|
|
if (deadlineTime < nowTime)
|
|
return "已超时";
|
|
|
|
var timeSpan = BaseClass.StampToDateTime(delivery_deadline.ParseToInt()) - nowTime;
|
|
var durationStr = Math.Floor(timeSpan.TotalHours).ParseToInt() + "时" + timeSpan.Minutes + "分" + timeSpan.Seconds + "秒";
|
|
return durationStr;
|
|
}
|
|
if (/*this.out_shipped == 1 */this.ship_done_time.ParseToInt() > 0)
|
|
return "已发货";
|
|
else
|
|
return "未发货";
|
|
}
|
|
set {}
|
|
}
|
|
|
|
public SolidColorBrush StatusBoxForeColor
|
|
{
|
|
get
|
|
{
|
|
if (delivery_deadline_status_str == "退款中" || delivery_deadline_str == "已超时")
|
|
return new SolidColorBrush(Color.FromRgb(250, 71, 51)); // #fa4733
|
|
else if (delivery_deadline_status_str == "退款完成" || delivery_deadline_str == "已发货")
|
|
return new SolidColorBrush(Color.FromRgb(103, 194, 58)); // #67c23a
|
|
else
|
|
return new SolidColorBrush(Color.FromRgb(3, 151, 181)); // #0397b5
|
|
}
|
|
set { }
|
|
}
|
|
public SolidColorBrush StatusBoxBackColor
|
|
{
|
|
get
|
|
{
|
|
if (delivery_deadline_status_str == "退款中" || delivery_deadline_str == "已超时")
|
|
return new SolidColorBrush(Color.FromArgb(26, 250, 71, 51)); // #fa4733 0.2
|
|
else if (delivery_deadline_status_str == "退款完成" || delivery_deadline_str == "已发货")
|
|
return new SolidColorBrush(Color.FromArgb(26, 103, 194, 58)); // #67c23a 0.2
|
|
else
|
|
return new SolidColorBrush(Color.FromArgb(26, 3, 151, 181)); // #0397b5 0.2
|
|
}
|
|
set { }
|
|
}
|
|
public SolidColorBrush StatusBoxBorderColor
|
|
{
|
|
get
|
|
{
|
|
if (delivery_deadline_status_str == "退款中" || delivery_deadline_str == "已超时")
|
|
return new SolidColorBrush(Color.FromArgb(50, 250, 71, 51)); // #fa4733 0.2
|
|
else if (delivery_deadline_status_str == "退款完成" || delivery_deadline_str == "已发货")
|
|
return new SolidColorBrush(Color.FromArgb(50, 103, 194, 58)); // #67c23a 0.2
|
|
else
|
|
return new SolidColorBrush(Color.FromArgb(50, 3, 151, 181)); // #0397b5 0.2
|
|
}
|
|
set { }
|
|
}
|
|
|
|
public string address_str
|
|
{
|
|
get { return user_name + " " + tel_number + " " + province_name + " " + city_name + " " + county_name + " " + detail_info; }
|
|
set { }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 是否被选中
|
|
/// </summary>
|
|
public bool IsSelect
|
|
{
|
|
get { return this.GetValue(x => x.IsSelect); }
|
|
set { this.SetValue(x => x.IsSelect, value); }
|
|
}
|
|
public bool is_visible { get; set; } = true;
|
|
|
|
|
|
public long id { get; set; }
|
|
public long shop_id { get; set; }
|
|
public string shop_name { get; set; }
|
|
/// <summary>
|
|
/// 商户ID
|
|
/// </summary>
|
|
public string merchant_id { get; set; }
|
|
public string order_id { get; set; }
|
|
/// <summary>
|
|
/// 买家身份标识
|
|
/// </summary>
|
|
public string openid { get; set; }
|
|
public int create_time { get; set; }
|
|
|
|
public int update_time { get; set; }
|
|
public string unionid { get; set; }
|
|
/// <summary>
|
|
/// 状态10 待付款;20 待发货;21 部分发货;30 待收货;100 完成;200 全部商品售后之后,订单取消;250 未付款用户主动取消或超时未付款订单自动取消;
|
|
/// </summary>
|
|
public int? status { get; set; }
|
|
/// <summary>
|
|
/// 售后信息json
|
|
/// </summary>
|
|
public string aftersale_detail { get; set; }
|
|
/// <summary>
|
|
/// 支付信息
|
|
/// </summary>
|
|
public string pay_info { get; set; }
|
|
/// <summary>
|
|
/// 额外信息
|
|
/// </summary>
|
|
public string ext_info { get; set; }
|
|
/// <summary>
|
|
/// 商品总价
|
|
/// </summary>
|
|
public int? product_price { get; set; }
|
|
/// <summary>
|
|
/// 订单金额,单位为分,order_price=original_order_price-discounted_price-deduction_price-change_down_price
|
|
/// </summary>
|
|
public int? order_price { get; set; }
|
|
/// <summary>
|
|
/// 采购价,单位为分
|
|
/// </summary>
|
|
public int? purchase_price { get; set; }
|
|
/// <summary>
|
|
/// 采购时间
|
|
/// </summary>
|
|
public int? purchase_time { get; set; }
|
|
/// <summary>
|
|
/// 运费,单位为分
|
|
/// </summary>
|
|
public int? freight { get; set; }
|
|
/// <summary>
|
|
/// 平台服务费(微信小店:预计技术服务费),单位为分
|
|
/// </summary>
|
|
public int? predict_commission_fee { get; set; }
|
|
/// <summary>
|
|
/// 达人佣金(微信小店:分账金额),单位为分
|
|
/// </summary>
|
|
public int? commission_amount { get; set; }
|
|
/// <summary>
|
|
/// 优惠券优惠金额,单位为分
|
|
/// </summary>
|
|
public int? discounted_price { get; set; }
|
|
/// <summary>
|
|
/// 利润(实付金额-采购价-平台服务费-达人佣金,达人佣金、采购价为空值则为0)
|
|
/// </summary>
|
|
public int? profit { get; set; }
|
|
/// <summary>
|
|
/// 采购状态,默认值为:0未采购,推送仓库时修改为1采购
|
|
/// </summary>
|
|
public int? purchase_status { get; set; }
|
|
/// <summary>
|
|
/// 延迟发货时间(微信小店:商品发货时效,超时此时间未发货即为发货超时)
|
|
/// </summary>
|
|
public int? delivery_deadline { get; set; }
|
|
/// <summary>
|
|
/// 发货时间
|
|
/// </summary>
|
|
public int? delivery_time { get; set; }
|
|
/// <summary>
|
|
/// 收货人姓名
|
|
/// </summary>
|
|
public string user_name { get; set; }
|
|
/// <summary>
|
|
/// 邮编
|
|
/// </summary>
|
|
public string postal_code { get; set; }
|
|
public string province_name { get; set; }
|
|
public string city_name { get; set; }
|
|
/// <summary>
|
|
/// 区
|
|
/// </summary>
|
|
public string county_name { get; set; }
|
|
/// <summary>
|
|
/// 详细地址
|
|
/// </summary>
|
|
public string detail_info { get; set; }
|
|
public string tel_number { get; set; }
|
|
/// <summary>
|
|
/// 门牌号码
|
|
/// </summary>
|
|
public string house_number { get; set; }
|
|
/// <summary>
|
|
/// 虚拟发货订单联系方式(deliver_method=1时返回)
|
|
/// </summary>
|
|
public string virtual_order_tel_number { get; set; }
|
|
/// <summary>
|
|
/// 额外的联系方式信息(虚拟号码相关)
|
|
/// </summary>
|
|
public string tel_number_ext_info { get; set; }
|
|
/// <summary>
|
|
/// 0:不使用虚拟号码,1:使用虚拟号码
|
|
/// </summary>
|
|
public int? use_tel_number { get; set; }
|
|
/// <summary>
|
|
/// 标识当前店铺下一个唯一的用户收货地址
|
|
/// </summary>
|
|
public string hash_code { get; set; }
|
|
/// <summary>
|
|
/// 发货物流信息JSON
|
|
/// </summary>
|
|
public string delivery_product_info { get; set; }
|
|
/// <summary>
|
|
/// 发货完成时间,秒级时间戳
|
|
/// </summary>
|
|
public int? ship_done_time { get; set; }
|
|
/// <summary>
|
|
/// 电子面单代发时的订单密文
|
|
/// </summary>
|
|
public string ewaybill_order_code { get; set; }
|
|
/// <summary>
|
|
/// 结算信息json
|
|
/// </summary>
|
|
public string settle_info { get; set; }
|
|
/// <summary>
|
|
/// 订单审核状态(0待审核1已审核)
|
|
/// </summary>
|
|
public int? audit_status { get; set; }
|
|
/// <summary>
|
|
/// 订单审核时间
|
|
/// </summary>
|
|
public DateTime audit_time { get; set; }
|
|
/// <summary>
|
|
/// erp发货快递公司
|
|
/// </summary>
|
|
public string erp_send_company { get; set; }
|
|
/// <summary>
|
|
/// erp发货快递单号
|
|
/// </summary>
|
|
public string erp_send_code { get; set; }
|
|
/// <summary>
|
|
/// erp发货状态
|
|
/// </summary>
|
|
public int? erp_send_status { get; set; }
|
|
/// <summary>
|
|
/// erp发货时间
|
|
/// </summary>
|
|
public DateTime erp_send_time { get; set; }
|
|
/// <summary>
|
|
/// 旗帜颜色备注,1:灰旗,2:红旗,3:橙旗,4:绿旗,5:天蓝旗,6:紫旗
|
|
/// </summary>
|
|
public int? colour_flag { get; set; }
|
|
/// <summary>
|
|
/// 旗帜备注时间
|
|
/// </summary>
|
|
public DateTime colour_flag_update_time { get; set; }
|
|
/// <summary>
|
|
/// 供应商备注异常单
|
|
/// </summary>
|
|
public string supplier_remark_exception { get; set; }
|
|
/// <summary>
|
|
/// 礼物单状态,默认值0:不存在礼物单,1:礼物单已发货,2:礼物单信息已更正
|
|
/// </summary>
|
|
public int? gift_order_status { get; set; }
|
|
/// <summary>
|
|
/// 店铺备注:取微信ext_info.merchant_notes
|
|
/// </summary>
|
|
public string shop_remark { get; set; }
|
|
/// <summary>
|
|
/// 软件备注
|
|
/// </summary>
|
|
public string soft_remark { get; set; }
|
|
/// <summary>
|
|
/// 外采金额(单位:分,整数存储)
|
|
/// </summary>
|
|
public int? out_amount { get; set; }
|
|
/// <summary>
|
|
/// 外采账户
|
|
/// </summary>
|
|
public string out_account { get; set; }
|
|
/// <summary>
|
|
/// 外采订单号
|
|
/// </summary>
|
|
public string out_order_no { get; set; }
|
|
/// <summary>
|
|
/// 外采快递公司
|
|
/// </summary>
|
|
public string out_express_company { get; set; }
|
|
/// <summary>
|
|
/// 外采快递单号
|
|
/// </summary>
|
|
public string out_express_no { get; set; }
|
|
/// <summary>
|
|
/// 外采是否发货(0 未发货,1 已发货)
|
|
/// </summary>
|
|
public int? out_shipped { get; set; }
|
|
/// <summary>
|
|
/// 判断是否优化过发货0 未优化, 1已优化
|
|
/// </summary>
|
|
public int? is_shipment_optimized { get; set; }
|
|
/// <summary>
|
|
/// 判断是否优随机使用快递单号0 未使用, 1已使用
|
|
/// </summary>
|
|
public int? is_express_no_used { get; set; }
|
|
/// <summary>
|
|
/// 外采订单售后状态
|
|
/// </summary>
|
|
public string out_after_sale_status { get; set; }
|
|
/// <summary>
|
|
/// 是否支持运费险:0-不支持,1-支持
|
|
/// </summary>
|
|
public int? has_freight_insurance { get; set; }
|
|
/// <summary>
|
|
/// 运费险金额(单位:元)
|
|
/// </summary>
|
|
public decimal? freight_insurance_amount { get; set; }
|
|
/// <summary>
|
|
/// 是否外采礼物单:0-否,1-是(外采订单)
|
|
/// </summary>
|
|
public int? external_gift { get; set; }
|
|
/// <summary>
|
|
/// 中转仓的状态 0未使用,1已创建,2创建失败(购买失败),3已创建未有上游快递单号,4已创建有上游快递单号
|
|
/// </summary>
|
|
public decimal? transfer_warehouse_status { get; set; }
|
|
}
|
|
}
|