412 lines
15 KiB
C#
412 lines
15 KiB
C#
using AllBase.Model.MvvmBaseClasses;
|
||
using NaiBa.Util.Extension;
|
||
using Newtonsoft.Json.Linq;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Runtime.CompilerServices;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
using System.Windows;
|
||
using System.Windows.Media;
|
||
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
|
||
|
||
namespace AllBase.Model
|
||
{
|
||
public class oms_wei_order_item_info : PropertyNotifyObject
|
||
{
|
||
public oms_wei_order_info item_order { get; set; }
|
||
public oms_wei_refund_info item_refund
|
||
{
|
||
get
|
||
{
|
||
if (item_order?.refunds?.Count == 0)
|
||
return null;
|
||
if (item_order?.refunds?.Count == 1)
|
||
return item_order?.refunds?.FirstOrDefault();
|
||
return item_order?.refunds?.FirstOrDefault(r => r.sku_id == this.sku_id);
|
||
}
|
||
set { }
|
||
}
|
||
/// <summary>
|
||
/// 采购关联
|
||
/// </summary>
|
||
public WXBuyMapInfo buy_map
|
||
{
|
||
get { return this.GetValue(x => x.buy_map); }
|
||
set { this.SetValue(x => x.buy_map, value); }
|
||
}
|
||
|
||
public List<oms_wei_external_procurement_log> item_transit_orders { get; set; } = new List<oms_wei_external_procurement_log>();
|
||
public oms_wei_external_procurement_log item_transit_order
|
||
{
|
||
get { return item_transit_orders.FirstOrDefault(); }
|
||
set { }
|
||
}
|
||
|
||
|
||
public string OrderItemStatusStr
|
||
{
|
||
get
|
||
{
|
||
if (item_order?.status == 10)
|
||
return "待付款";
|
||
if (item_order?.status == 20)
|
||
return "待店铺发货";
|
||
if (item_order?.status == 21)
|
||
return "店铺部分发货";
|
||
if (item_order?.status == 30)
|
||
return "待买家收货";
|
||
if (item_order?.status == 100)
|
||
return "订单完成";
|
||
if (item_order?.status == 200)
|
||
return "售后完成订单取消";
|
||
if (item_order?.status == 250)
|
||
return "未付款已取消";
|
||
return "未知状态";
|
||
}
|
||
set { }
|
||
}
|
||
public SolidColorBrush OrderItemStatusStrColor
|
||
{
|
||
get
|
||
{
|
||
if ("未知状态,未付款已取消,售后完成订单取消".Contains(OrderItemStatusStr))
|
||
return new SolidColorBrush(Color.FromRgb(255, 73, 73));
|
||
if ("订单完成".Contains(OrderItemStatusStr))
|
||
return new SolidColorBrush(Color.FromRgb(19, 206, 102));
|
||
if ("待买家收货,店铺部分发货,待店铺发货,待付款".Contains(OrderItemStatusStr))
|
||
return new SolidColorBrush(Color.FromRgb(255, 186, 0));
|
||
return new SolidColorBrush(Color.FromRgb(255, 186, 0));
|
||
}
|
||
set { }
|
||
}
|
||
public SolidColorBrush OrderItemStatusBorderColor
|
||
{
|
||
get
|
||
{
|
||
if ("未知状态,未付款已取消,售后完成订单取消".Contains(OrderItemStatusStr))
|
||
return new SolidColorBrush(Color.FromRgb(255, 219, 219));
|
||
if ("订单完成".Contains(OrderItemStatusStr))
|
||
return new SolidColorBrush(Color.FromRgb(208, 245, 224));
|
||
if ("待买家收货,店铺部分发货,待店铺发货,待付款".Contains(OrderItemStatusStr))
|
||
return new SolidColorBrush(Color.FromRgb(255, 241, 204));
|
||
return new SolidColorBrush(Color.FromRgb(255, 241, 204));
|
||
}
|
||
set { }
|
||
}
|
||
public SolidColorBrush OrderItemStatusBackColor
|
||
{
|
||
get
|
||
{
|
||
if ("未知状态,未付款已取消,售后完成订单取消".Contains(OrderItemStatusStr))
|
||
return new SolidColorBrush(Color.FromRgb(255, 237, 237));
|
||
if ("订单完成".Contains(OrderItemStatusStr))
|
||
return new SolidColorBrush(Color.FromRgb(231, 250, 240));
|
||
if ("待买家收货,店铺部分发货,待店铺发货,待付款".Contains(OrderItemStatusStr))
|
||
return new SolidColorBrush(Color.FromRgb(255, 248, 230));
|
||
return new SolidColorBrush(Color.FromRgb(255, 248, 230));
|
||
}
|
||
set { }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 退款状态文本
|
||
/// </summary>
|
||
public string refundResultStr
|
||
{
|
||
get
|
||
{
|
||
if (item_refund == null)
|
||
return "";
|
||
if (item_refund.status != "MERCHANT_REFUND_SUCCESS" && item_refund.status != "MERCHANT_RETURN_SUCCESS")
|
||
return "";
|
||
|
||
return "商品退款数量:" + item_refund.count + ",订单状态:" + item_order.orderStatusStr;
|
||
}
|
||
set { }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 订单退款时间
|
||
/// </summary>
|
||
public string refund_time_str
|
||
{
|
||
get { return BaseClass.StampToDateTime((item_refund?.create_time).ParseToInt()).ToString("yyyy-MM-dd HH:mm:ss"); }
|
||
set { }
|
||
}
|
||
/// <summary>
|
||
/// 订单退款时间可见
|
||
/// </summary>
|
||
public Visibility refund_time_visibility
|
||
{
|
||
get
|
||
{
|
||
return (this.item_refund?.create_time) > 0 ? Visibility.Visible : Visibility.Collapsed;
|
||
}
|
||
set { }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 订单中所有商品加起来的总售价文本
|
||
/// </summary>
|
||
public string real_price_str
|
||
{
|
||
//get { return "¥" + (order_items.Sum(oi => oi.sale_price * oi.sku_cnt) * 0.01m).ParseToDecimal().ToString("0.00"); }
|
||
//get { return "¥" + (order_items.Sum(oi => oi.real_price) * 0.01m).ParseToDecimal().ToString("0.00"); }
|
||
get { return "¥" + (real_price * 0.01m).ParseToDecimal().ToString("0.00"); }
|
||
set { }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 订单内商品维度平台券优惠金额(利润需要计算这个金额在内)文本
|
||
/// </summary>
|
||
public string cash_coupon_discounted_price_str
|
||
{
|
||
//get { return "¥" + (order_items.Sum(oi => oi.cash_coupon_discounted_price.ParseToInt()) * 0.01m).ParseToDecimal().ToString("0.00"); }
|
||
get { return "¥" + (cash_coupon_discounted_price.ParseToInt() * 0.01m).ParseToDecimal().ToString("0.00"); }
|
||
set { }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 采购价文本
|
||
/// </summary>
|
||
public string purchase_price_str
|
||
{
|
||
//get { return "¥" + (order_items.Sum(oi => oi.purchase_price.ParseToInt()) * 0.01m).ParseToDecimal().ToString("0.00"); }
|
||
get { return "¥" + (purchase_price * 0.01m).ParseToDecimal().ToString("0.00"); }
|
||
set { }
|
||
}
|
||
/// <summary>
|
||
/// 采购价文本是否可见
|
||
/// </summary>
|
||
public Visibility purchase_price_visibility
|
||
{
|
||
get { if (item_order.out_amount > 0) return Visibility.Collapsed; return Visibility.Visible; }
|
||
set { }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 运费文本
|
||
/// </summary>
|
||
public string freight_str
|
||
{
|
||
//get { return "¥" + (order_items.Sum(oi => oi.freight.ParseToInt()) * 0.01m).ParseToDecimal().ToString("0.00"); }
|
||
get { return "¥" + (freight * 0.01m).ParseToDecimal().ToString("0.00"); }
|
||
set { }
|
||
}
|
||
/// <summary>
|
||
/// 运费文本是否可见
|
||
/// </summary>
|
||
public Visibility freight_visibility
|
||
{
|
||
get { if (item_order.out_amount > 0) return Visibility.Collapsed; return Visibility.Visible; }
|
||
set { }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 平台服务费
|
||
/// </summary>
|
||
public string predict_commission_fee_string
|
||
{
|
||
//get { return "¥" + (order_items.Sum(oi => oi.predict_commission_fee.ParseToInt()) * 0.01m).ParseToDecimal().ToString("0.00"); }
|
||
get { return "¥" + (predict_commission_fee * 0.01m).ParseToDecimal().ToString("0.00"); }
|
||
set { }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 达人佣金
|
||
/// </summary>
|
||
public string commission_amount_str
|
||
{
|
||
//get { return "¥" + (order_items.Sum(oi => oi.commission_amount.ParseToInt()) * 0.01m).ParseToDecimal().ToString("0.00"); }
|
||
get { return "¥" + (commission_amount.ParseToInt() * 0.01m).ParseToDecimal().ToString("0.00"); }
|
||
set { }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 外采金额文本
|
||
/// </summary>
|
||
public string out_amount_str
|
||
{
|
||
//get { return "¥" + (item_order.out_amount * 0.01m).ParseToDecimal().ToString("0.00"); }
|
||
get { return "¥" + (commission_amount.ParseToInt() * 0.01m).ParseToDecimal().ToString("0.00"); }
|
||
set { }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 利润文本
|
||
/// </summary>
|
||
public string profit_str
|
||
{
|
||
//get { return "¥" + (profit * 0.01m).ParseToDecimal().ToString("0.00"); }
|
||
//get { return "¥" + ((item_order.profit - item_order.out_amount) * 0.01m).ParseToDecimal().ToString("0.00"); }
|
||
get { return "¥" + ((real_price.ParseToInt() + cash_coupon_discounted_price.ParseToInt() - purchase_price.ParseToInt() - freight.ParseToInt() -
|
||
predict_commission_fee.ParseToInt() - commission_amount.ParseToInt() - item_order.out_amount / item_order.order_items.Count) * 0.01m)
|
||
.ParseToDecimal().ToString("0.00"); }
|
||
set { }
|
||
}
|
||
|
||
/// <summary>
|
||
/// sku规格名称文本
|
||
/// </summary>
|
||
public string sku_attr_str
|
||
{
|
||
get
|
||
{
|
||
try
|
||
{
|
||
var jObj = JArray.Parse(sku_attrs);
|
||
var str = string.Join(",", jObj.Select(j => j["attr_value"].ParseToString()));
|
||
return str;
|
||
}
|
||
catch { return "获取失败"; }
|
||
}
|
||
set { }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 订单商品表数据库id
|
||
/// </summary>
|
||
public long id { get; set; }
|
||
public long shop_id { get; set; }
|
||
/// <summary>
|
||
/// 商户ID
|
||
/// </summary>
|
||
public long merchant_id { get; set; }
|
||
/// <summary>
|
||
/// 订单id(平台订单id)
|
||
/// </summary>
|
||
public string order_id { get; set; }
|
||
/// <summary>
|
||
/// 商品spuid
|
||
/// </summary>
|
||
public string product_id { get; set; }
|
||
public string sku_id { get; set; }
|
||
/// <summary>
|
||
/// sku小图
|
||
/// </summary>
|
||
public string thumb_img { get; set; }
|
||
/// <summary>
|
||
/// sku数量
|
||
/// </summary>
|
||
public int? sku_cnt { get; set; }
|
||
/// <summary>
|
||
/// 售卖单价(单位:分)
|
||
/// </summary>
|
||
public int? sale_price { get; set; }
|
||
/// <summary>
|
||
/// 商品名称
|
||
/// </summary>
|
||
public string title { get; set; }
|
||
/// <summary>
|
||
/// 正在售后/退款流程中的 sku 数量
|
||
/// </summary>
|
||
public int? on_aftersale_sku_cnt { get; set; }
|
||
/// <summary>
|
||
/// 完成售后/退款的 sku 数量
|
||
/// </summary>
|
||
public int? finish_aftersale_sku_cnt { get; set; }
|
||
/// <summary>
|
||
/// 商品编码
|
||
/// </summary>
|
||
public string sku_code { get; set; }
|
||
/// <summary>
|
||
/// 市场单价(单位:分)
|
||
/// </summary>
|
||
public int? market_price { get; set; }
|
||
/// <summary>
|
||
/// sku属性JSON
|
||
/// </summary>
|
||
public string sku_attrs { get; set; }
|
||
/// <summary>
|
||
/// sku实付总价,取estimate_price和change_price中较小值
|
||
/// </summary>
|
||
public int? real_price { get; set; }
|
||
/// <summary>
|
||
/// 商品外部spuid
|
||
/// </summary>
|
||
public string out_product_id { get; set; }
|
||
/// <summary>
|
||
/// 采购价
|
||
/// </summary>
|
||
public int? purchase_price { get; set; }
|
||
/// <summary>
|
||
/// 运费
|
||
/// </summary>
|
||
public int? freight { get; set; }
|
||
/// <summary>
|
||
/// 商品外部skuid
|
||
/// </summary>
|
||
public string out_sku_id { get; set; }
|
||
/// <summary>
|
||
/// 是否有优惠金额,非必填,默认为false
|
||
/// </summary>
|
||
public string is_discounted { get; set; }
|
||
/// <summary>
|
||
/// 优惠后sku总价,非必填,is_discounted为true时有值
|
||
/// </summary>
|
||
public int? estimate_price { get; set; }
|
||
/// <summary>
|
||
/// 是否修改过价格,非必填,默认为false
|
||
/// </summary>
|
||
public string is_change_price { get; set; }
|
||
/// <summary>
|
||
/// 改价后sku总价,非必填,is_change_price为true时有值
|
||
/// </summary>
|
||
public int? change_price { get; set; }
|
||
/// <summary>
|
||
/// 订单内商品维度平台券优惠金额(利润需要计算这个金额在内)
|
||
/// </summary>
|
||
public int? cash_coupon_discounted_price { get; set; }
|
||
/// <summary>
|
||
/// 区域库存id
|
||
/// </summary>
|
||
public string out_warehouse_id { get; set; }
|
||
/// <summary>
|
||
/// 退货地址
|
||
/// </summary>
|
||
public string return_address { get; set; }
|
||
/// <summary>
|
||
/// 商品发货信息JSON
|
||
/// </summary>
|
||
public string sku_deliver_info { get; set; }
|
||
/// <summary>
|
||
/// 商品额外服务信息JSON
|
||
/// </summary>
|
||
public string extra_service { get; set; }
|
||
/// <summary>
|
||
/// 是否使用了会员积分抵扣
|
||
/// </summary>
|
||
public string use_deduction { get; set; }
|
||
/// <summary>
|
||
/// 会员积分抵扣金额,单位为分
|
||
/// </summary>
|
||
public int? deduction_price { get; set; }
|
||
/// <summary>
|
||
/// 平台服务费(微信小店:预计技术服务费),单位为分
|
||
/// </summary>
|
||
public int? predict_commission_fee { get; set; }
|
||
/// <summary>
|
||
/// 达人佣金(微信小店:分账金额),单位为分
|
||
/// </summary>
|
||
public int? commission_amount { get; set; }
|
||
/// <summary>
|
||
/// 商品优惠券信息,逐步替换 order.order_detail.coupon_info
|
||
/// </summary>
|
||
public string order_product_coupon_info_list { get; set; }
|
||
/// <summary>
|
||
/// 商品id(o_goods外键)
|
||
/// </summary>
|
||
public long? erp_goods_id { get; set; }
|
||
/// <summary>
|
||
/// 商品skuid(o_goods_sku外键)
|
||
/// </summary>
|
||
public long? erp_goods_sku_id { get; set; }
|
||
/// <summary>
|
||
/// 售后状态 1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功 11 已取消
|
||
/// </summary>
|
||
public int? refund_status { get; set; }
|
||
}
|
||
}
|