You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

449 lines
13 KiB
C#

9 months ago
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NPoco;
using POSV.Entity;
using Newtonsoft.Json.Converters;
namespace POSV.ShoppingCart
{
/// <summary>
/// 订单对象,包含整个订单的全部信息
/// </summary>
[Serializable]
[JsonObject(MemberSerialization.OptIn)]
[TableName("pos_order")]
[PrimaryKey(new string[] { "id" } , AutoIncrement = false)]
public class BusinessTicket : BaseEntity
{
public BusinessTicket()
{
this.CreateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
this.CreateUser = DEFAULT_SYNC_USER;
this.ModifyDate = this.CreateDate;
this.ModifyUser = this.CreateUser;
}
/// <summary>
/// 租户ID
/// </summary>
[JsonProperty(PropertyName = "tenantId")]
[Column("tenantId")]
public string TenantId { get; set; }
/// <summary>
/// 订单内部标识
/// </summary>
[JsonProperty(PropertyName = "objectId")]
[Column("objectId")]
public string ObjectId { get; set; }
/// <summary>
/// 单据编号
/// </summary>
[JsonProperty(PropertyName = "no")]
[Column("tradeNo")]
public string TradeNo { get; set; }
/// <summary>
/// 流水号
/// </summary>
[JsonProperty(PropertyName = "voucherNo")]
[Column("voucherNo")]
public string VoucherNo { get; set; }
/// <summary>
/// 批次号
/// </summary>
[JsonProperty(PropertyName = "batchNo")]
[Column("batchNo")]
public string BatchNo { get; set; }
/// <summary>
/// 订单序号
/// </summary>
[JsonProperty(PropertyName = "orderNo")]
[Column("orderNo")]
public string OrderNo { get; set; } = "1";
/// <summary>
/// 门店ID
/// </summary>
[JsonProperty(PropertyName = "storeId")]
[Column("storeId")]
public string StoreId { get; set; }
/// <summary>
/// 门店编号
/// </summary>
[JsonProperty(PropertyName = "storeNo")]
[Column("storeNo")]
public string StoreNo { get; set; }
/// <summary>
/// 门店名称
/// </summary>
[JsonProperty(PropertyName = "storeName")]
[Column("storeName")]
public string StoreName { get; set; }
/// <summary>
/// 操作员工号
/// </summary>
[JsonProperty(PropertyName = "workNo")]
[Column("workerNo")]
public string WorkerNo { get; set; }
/// <summary>
/// 操作员名称
/// </summary>
[JsonProperty(PropertyName = "workName")]
[Column("workerName")]
public string WorkerName { get; set; }
/// <summary>
/// POS
/// </summary>
[JsonProperty(PropertyName = "posNo")]
[Column("posNo")]
public string PosNo { get; set; }
/// <summary>
/// 收银设备名称
/// </summary>
[JsonProperty(PropertyName = "deviceName")]
[Column("deviceName")]
public string DeviceName { get; set; }
/// <summary>
/// 收银设备Mac地址
/// </summary>
[JsonProperty(PropertyName = "deviceMac")]
[Column("macAddress")]
public string MacAddress { get; set; }
/// <summary>
/// 收银设备IP地址
/// </summary>
[JsonProperty(PropertyName = "deviceIp")]
[Column("ipAddress")]
public string IpAddress { get; set; }
/// <summary>
/// 营业员编码
/// </summary>
[JsonProperty(PropertyName = "salesCode")]
[Column("salesCode")]
public string SalesCode { get; set; }
/// <summary>
/// 营业员名称
/// </summary>
[JsonProperty(PropertyName = "salesName")]
[Column("salesName")]
public string SalesName { get; set; }
/// <summary>
/// 餐桌号
/// </summary>
[JsonProperty(PropertyName = "tableNo")]
[Column("tableNo")]
public string TableNo { get; set; } = string.Empty;
/// <summary>
/// 餐桌号
/// </summary>
[JsonProperty(PropertyName = "tableName")]
[Column("tableName")]
public string TableName { get; set; } = string.Empty;
/// <summary>
/// 人数
/// </summary>
[JsonProperty(PropertyName = "people")]
[Column("people")]
public int People { get; set; } = 1;
/// <summary>
/// 班次
/// </summary>
[JsonProperty(PropertyName = "shiftNo")]
[Column("shiftNo")]
public string ShiftNo { get; set; }
/// <summary>
/// 班次名称
/// </summary>
[JsonProperty(PropertyName = "shiftName")]
[Column("shiftName")]
public string ShiftName { get; set; }
/// <summary>
/// 销售订单创建时间
/// </summary>
[JsonProperty(PropertyName = "saleDate")]
[Column("saleDate")]
public string SaleDate { get; set; } =DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
/// <summary>
/// 购物车中总行数
/// </summary>
[JsonProperty(PropertyName = "orderCount")]
[Column("orderCount")]
public int OrderCount { get; set; }
/// <summary>
/// 购物车中总行数
/// </summary>
[JsonProperty(PropertyName = "payCount")]
[Column("payCount")]
public int PayCount { get; set; }
/// <summary>
/// 整单的数量合计
/// </summary>
[JsonProperty(PropertyName = "totalQuantity")]
[Column("totalQuantity")]
public decimal TotalQuantity { get; set; }
/// <summary>
/// 消费金额
/// </summary>
[JsonProperty(PropertyName = "amount")]
[Column("amount")]
public decimal Amount { get; set; }
/// <summary>
/// 优惠金额
/// </summary>
[JsonProperty(PropertyName = "discountTotal")]
[Column("discountAmount")]
public decimal DiscountAmount { get; set; }
/// <summary>
/// 总优惠率,包含商品+加价
/// </summary>
[JsonProperty(PropertyName = "discount")]
[Column("discountRate")]
public decimal DiscountRate { get; set; }
/// <summary>
/// 应收金额 = 消费金额 - 优惠金额 - 抹零金额
/// </summary>
[JsonProperty(PropertyName = "receivable")]
[Column("receivableAmount")]
public decimal ReceivableAmount { get; set; }
/// <summary>
/// 实收金额,收银员实际录入的金额
/// </summary>
[JsonProperty(PropertyName = "paid")]
[Column("paidAmount")]
public decimal PaidAmount { get; set; }
/// <summary>
/// 已收金额,各种支付明细的实收金额合计
/// </summary>
[JsonProperty(PropertyName = "received")]
[Column("receivedAmount")]
public decimal ReceivedAmount { get; set; }
/// <summary>
/// 抹零金额
/// </summary>
[JsonProperty(PropertyName = "maling")]
[Column("malingAmount")]
public decimal MalingAmount { get; set; }
/// <summary>
/// 找零金额
/// </summary>
[JsonProperty(PropertyName = "change")]
[Column("changeAmount")]
public decimal ChangeAmount { get; set; }
/// <summary>
/// 开票金额
/// </summary>
[JsonProperty(PropertyName = "invoiced")]
[Column("invoicedAmount")]
public decimal InvoicedAmount { get; set; }
/// <summary>
/// 订单同步状态 0-新增,1-已同步,2-问题单
/// </summary>
[JsonProperty(PropertyName = "sync")]
[Column("syncStatus")]
public int SyncStatus { get; set; } = 0;
/// <summary>
/// 上传错误次数,错误次数越多,优先级越低
/// </summary>
[JsonProperty(PropertyName = "uploadErrors")]
[Column("uploadErrors")]
public int UploadErrors { get; set; }
/// <summary>
/// 订单状态
/// </summary>
[JsonProperty(PropertyName = "status")]
[Column("orderStatus")]
public int OrderStatus { get; set; }
/// <summary>
/// 订单类型
/// </summary>
[JsonProperty(PropertyName = "type")]
[Column("orderType")]
public int OrderType { get; set; }
/// <summary>
/// 支付状态,PARTIALLY_PAID:部分付款; PAID:已付款;NOT_PAID:未付款;
/// </summary>
[JsonProperty(PropertyName = "paymentStatus")]
[Column("paymentStatus")]
public int PaymentStatus { get; set; }
/// <summary>
/// 打印状态,WAIT:等待打印; FINISHED:打印完成;NONE:不打印款;
/// </summary>
[JsonProperty(PropertyName = "printStatus")]
[Column("printStatus")]
public int PrintStatus { get; set; }
/// <summary>
/// 打印次数
/// </summary>
[JsonProperty(PropertyName = "printTimes")]
[Column("printTimes")]
public int PrintTimes { get; set; }
/// <summary>
/// 原单号
/// </summary>
[JsonProperty(PropertyName = "noOrg")]
[Column("orgTradeNo")]
public string OrgTradeNo { get; set; } = string.Empty;
/// <summary>
/// 退单原因
/// </summary>
[JsonProperty(PropertyName = "backCause")]
[Column("refundCause")]
public string RefundCause { get; set; }
/// <summary>
/// 是否使用会员卡(0否1是)
/// </summary>
[JsonProperty(PropertyName = "isMember")]
[Column("isMember")]
public int IsMember { get; set; }
/// <summary>
/// 会员卡号
/// </summary>
[JsonProperty(PropertyName = "memberNo")]
[Column("memberNo")]
public string MemberNo { get; set; }
/// <summary>
/// 本单积分
/// </summary>
[JsonProperty(PropertyName = "memberJifen")]
[Column("addPoint")]
public decimal AddPoint { get; set; }
/// <summary>
/// 完成时间
/// </summary>
[JsonProperty(PropertyName = "finishDate")]
[Column("finishDate")]
public string FinishDate { get; set; }
private string orderTypeDesc;
[Ignore]
public string OrderTypeDesc
{
get
{
switch (this.OrderType)
{
case 0:
orderTypeDesc = "堂食";
break;
case 1:
orderTypeDesc = "外带";
break;
case 2:
orderTypeDesc = "电话外卖";
break;
case 3:
orderTypeDesc = "餐桌";
break;
case 4:
orderTypeDesc = "美团外卖";
break;
case 5:
orderTypeDesc = "饿了么";
break;
case 6:
orderTypeDesc = "百度外卖";
break;
case 7:
orderTypeDesc = "微信点餐";
break;
default:
orderTypeDesc = "其他";
break;
}
return orderTypeDesc;
}
}// 营业模式
private string statusDesc;
[Ignore]
public string StatusDesc
{
get
{
switch (this.OrderStatus)
{
case 0:
statusDesc = "等待付款";
break;
case 1:
statusDesc = "已支付";
break;
case 2:
statusDesc = "已退单";
break;
case 3:
statusDesc = "已取消";
break;
case 4:
statusDesc = "已完成";
break;
case 5:
statusDesc = "部分退款";
break;
default:
statusDesc = "其他状态";
break;
}
return statusDesc;
}
}// 单据状态
}
}