151 lines
4.8 KiB
C#
151 lines
4.8 KiB
C#
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using WMS.Web.Core;
|
|
using WMS.Web.Domain.Values;
|
|
|
|
namespace WMS.Web.Domain.Entitys
|
|
{
|
|
/// <summary>
|
|
/// 序列号
|
|
/// </summary>
|
|
[Serializable]
|
|
[Table("t_wms_serialnumbers")]
|
|
public class SerialNumbers : EntityBase
|
|
{
|
|
public SerialNumbers() { }
|
|
public SerialNumbers(string serialNumber, string materialNumber, int boxId, int opsBoxId, string creator, DateTime? createTime, DateTime? completeCartonTime)
|
|
{
|
|
this.SerialNumber = serialNumber;
|
|
this.MaterialNumber = materialNumber;
|
|
this.BoxId = boxId;
|
|
this.OpsBoxId = opsBoxId;
|
|
this.Creator = creator;
|
|
this.CreateTime = createTime == null ? DateTime.Now : (DateTime)createTime;
|
|
this.CompleteCartonTime = completeCartonTime;
|
|
}
|
|
/// <summary>
|
|
/// 主键 订单编号
|
|
/// </summary>
|
|
[Column("Id")]
|
|
public override int Id { get; set; }
|
|
/// <summary>
|
|
/// 序列号
|
|
/// </summary>
|
|
[Column("SerialNumber")]
|
|
public string SerialNumber { get; set; }
|
|
/// <summary>
|
|
/// 物料编码
|
|
/// </summary>
|
|
[Column("MaterialNumber")]
|
|
public string MaterialNumber { get; set; }
|
|
/// <summary>
|
|
/// wms箱ID
|
|
/// </summary>
|
|
[Column("BoxId")]
|
|
public int BoxId { get; set; }
|
|
/// <summary>
|
|
/// 对应老OPS的箱ID
|
|
/// </summary>
|
|
[Column("OpsBoxId")]
|
|
public int OpsBoxId { get; set; }
|
|
/// <summary>
|
|
/// 创建人(老ops过来)
|
|
/// </summary>
|
|
[Column("Creator")]
|
|
public string Creator { get; set; }
|
|
/// <summary>
|
|
/// 创建时间(老ops过来)
|
|
/// </summary>
|
|
[Column("CreateTime")]
|
|
public DateTime CreateTime { get; set; } = DateTime.Now;
|
|
/// <summary>
|
|
/// 完成装箱时间
|
|
/// </summary>
|
|
[Column("CompleteCartonTime")]
|
|
public DateTime? CompleteCartonTime { get; set; }
|
|
/// <summary>
|
|
/// 出库单对应销售订单号
|
|
/// </summary>
|
|
[Column("SalBillNo")]
|
|
public string SalBillNo { get; set; }
|
|
/// <summary>
|
|
/// 出库时间
|
|
/// </summary>
|
|
[Column("OutStockTime")]
|
|
public DateTime? OutStockTime { get; set; }
|
|
/// <summary>
|
|
/// 采购单号
|
|
///</summary>
|
|
[Column("PurchaseBillNo")]
|
|
public string PurchaseBillNo { get; set; }
|
|
/// <summary>
|
|
/// 入库时间
|
|
/// </summary>
|
|
[Column("InStockTime")]
|
|
public DateTime? InStockTime { get; set; }
|
|
/// <summary>
|
|
/// 收货客户
|
|
///</summary>
|
|
[Column("CustomerId")]
|
|
public int CustomerId { get; set; } = 0;
|
|
/// <summary>
|
|
/// 是否出库
|
|
///</summary>
|
|
[Column("IsOutStock")]
|
|
public bool? IsOutStock { get; set; } = false;
|
|
|
|
/// <summary>
|
|
/// 操作(绑定箱信息)
|
|
/// </summary>
|
|
/// <param name="destBoxId">目标箱号</param>
|
|
public void Bind(int destBoxId, DateTime completeCartonTime)
|
|
{
|
|
this.BoxId = destBoxId;
|
|
this.CompleteCartonTime = completeCartonTime;
|
|
}
|
|
/// <summary>
|
|
/// 解绑
|
|
/// </summary>
|
|
public void UnBind()
|
|
{
|
|
this.BoxId = 0;
|
|
}
|
|
/// <summary>
|
|
/// 出库
|
|
/// </summary>
|
|
/// <param name="outStock">出库单</param>
|
|
public void OutStock(OutStock outStock, string materialNumber)
|
|
{
|
|
var outstockDetail = outStock.Details.FirstOrDefault(f => f.MaterialNumber == materialNumber);
|
|
if (outstockDetail == null) return;
|
|
//按产品出才解绑 按箱子出不解绑
|
|
if (outStock.Method == InventoryInOutMethod.Product)
|
|
UnBind();
|
|
if (outStock.Type == OutStockType.Sal)
|
|
{
|
|
this.SalBillNo = JsonConvert.SerializeObject(outstockDetail.ErpDetails.Select(s => s.SaleBillNo).ToList());
|
|
this.CustomerId = outStock.ReceiptCustomerId;
|
|
this.OutStockTime = DateTime.Now;
|
|
}
|
|
//标识出库
|
|
this.IsOutStock = true;
|
|
}
|
|
/// <summary>
|
|
/// 入库
|
|
/// </summary>
|
|
/// <param name="inStockBillNo">出库单号</param>
|
|
public void InStock(string inStockBillNo, InstockType type)
|
|
{
|
|
if (type == InstockType.Purchase)
|
|
{
|
|
this.PurchaseBillNo = inStockBillNo;
|
|
this.InStockTime = DateTime.Now;
|
|
}
|
|
}
|
|
}
|
|
}
|