Files
WMS-Api/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs
2023-11-07 10:10:51 +08:00

97 lines
2.7 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;
using WMS.Web.Core;
using WMS.Web.Core.Internal.Results;
using WMS.Web.Domain.Values;
namespace WMS.Web.Domain.Entitys
{
/// <summary>
/// erp出库任务单明细
/// </summary>
[Serializable]
[Table("t_erp_outstock_task_details")]
public class OutStockTaskDetails : EntityBase
{
public OutStockTaskDetails() { }
/// <summary>
/// 主键 订单编号
/// </summary>
[Column("Id")]
public override int Id { get; set; }
/// <summary>
/// 单据头Id
/// </summary>
[Column("Fid")]
public int Fid { get; set; }
/// <summary>
/// 销售订单号
///</summary>
[Column("SaleBillNo")]
public string SaleBillNo { get; set; }
/// <summary>
/// 物料Id
///</summary>
[Column("MaterialId")]
public int MaterialId { get; set; }
/// <summary>
/// 仓库ID
///</summary>
[Column("StockId")]
public int StockId { get; set; }
/// <summary>
/// 仓位ID
///</summary>
[Column("SubStockId")]
public int? SubStockId { get; set; }
/// <summary>
/// 应出库数量
///</summary>
[Column("AccruedQty")]
public decimal AccruedQty { get; set; }
/// <summary>
/// 已出库数量
///</summary>
[Column("RealityQty")]
public decimal RealityQty { get; set; }
/// <summary>
/// 订单明细备注
///</summary>
[Column("Remark")]
public string Remark { get; set; }
/// <summary>
/// 出库开始时间
///</summary>
[Column("OutStockBeginTime")]
public DateTime? OutStockBeginTime { get; set; }
/// <summary>
/// 出库结束时间
///</summary>
[Column("OutStockEndTime")]
public DateTime? OutStockEndTime { get; set; }
/// <summary>
/// 出库 反写 任务单
/// </summary>
/// <param name="materialId"></param>
/// <param name="qty"></param>
/// <returns></returns>
public Result OutStock(int materialId,decimal qty)
{
if ((this.AccruedQty - this.RealityQty) < qty)
return Result.ReFailure(ResultCodes.OutStockQtyError);
if (this.RealityQty <= 0)
this.OutStockBeginTime = DateTime.Now;
this.OutStockEndTime = DateTime.Now;
this.RealityQty = this.RealityQty + qty;
return Result.ReSuccess();
}
}
}