using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;
using WMS.Web.Core;
using WMS.Web.Domain.Values;
namespace WMS.Web.Domain.Entitys
{
///
/// 序列号
///
[Serializable]
[Table("t_wms_serialnumbers")]
public class SerialNumbers : EntityBase
{
public SerialNumbers() { }
public SerialNumbers(string serialNumber, int materialId, int boxId, int opsBoxId, string creator, DateTime? createTime,DateTime? completeCartonTime)
{
this.SerialNumber = serialNumber;
this.MaterialId = materialId;
this.BoxId = boxId;
this.OpsBoxId = opsBoxId;
this.Creator = creator;
this.CreateTime = createTime == null ? DateTime.Now : (DateTime)createTime;
this.CompleteCartonTime = completeCartonTime;
}
///
/// 主键 订单编号
///
[Column("Id")]
public override int Id { get; set; }
///
/// 序列号
///
[Column("SerialNumber")]
public string SerialNumber { get; set; }
///
/// 物料ID
///
[Column("MaterialId")]
public int MaterialId { get; set; }
///
/// wms箱ID
///
[Column("BoxId")]
public int BoxId { get; set; }
///
/// 对应老OPS的箱ID
///
[Column("OpsBoxId")]
public int OpsBoxId { get; set; }
///
/// 创建人(老ops过来)
///
[Column("Creator")]
public string Creator { get; set; }
///
/// 创建时间(老ops过来)
///
[Column("CreateTime")]
public DateTime CreateTime { get; set; } = DateTime.Now;
///
/// 完成装箱时间
///
[Column("CompleteCartonTime")]
public DateTime? CompleteCartonTime { get; set; }
///
/// 出库单对应销售订单号
///
[Column("SalBillNo")]
public string SalBillNo { get; set; }
///
/// 出库时间
///
[Column("OutStockTime")]
public DateTime? OutStockTime { get; set; }
///
/// 采购单号
///
[Column("PurchaseBillNo")]
public string PurchaseBillNo { get; set; }
///
/// 入库时间
///
[Column("InStockTime")]
public DateTime? InStockTime { get; set; }
///
/// 收货客户
///
[Column("CustomerId")]
public int CustomerId { get; set; } = 0;
///
/// 操作(绑定箱信息)
///
/// 目标箱号
public void Bind(int destBoxId,DateTime completeCartonTime)
{
this.BoxId = destBoxId;
this.CompleteCartonTime = completeCartonTime;
}
///
/// 解绑
///
public void UnBind()
{
this.BoxId = 0;
}
///
/// 出库
///
/// 出库单号
public void OutStock(List salBillNos, OutStockType type,int customerId)
{
this.BoxId = 0;
if (type == OutStockType.Sal)
{
this.SalBillNo = JsonConvert.SerializeObject(salBillNos);
this.CustomerId = customerId;
this.OutStockTime = DateTime.Now;
}
}
///
/// 入库
///
/// 出库单号
public void InStock(string inStockBillNo, InstockType type)
{
if (type == InstockType.Purchase)
{
this.PurchaseBillNo = inStockBillNo;
this.InStockTime = DateTime.Now;
}
}
}
}