using System; using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Shared.Domain.Entities; namespace Win_in.Sfs.Basedata.Domain; /// /// 采购价格单 /// public class PurchasePriceSheet : SfsBaseDataAggregateRootBase { /// /// ERP料号 /// [IgnoreUpdate] public string ItemCode { get; set; } /// /// 供应商编号 /// [IgnoreUpdate] public string SupplierCode { get; set; } /// /// 价格单描述 /// public string Description { get; set; } /// /// 采购价格 /// public decimal PurchasePrice { get; set; } ///// ///// 货币ID ///// //public Guid CurrencyId { get; set; } ///// ///// 物料价格 ///// //public decimal MaterialPrice { get; set; } ///// ///// 成品价格 ///// //public decimal ProductPrice { get; set; } #region details handler //public virtual void AddDetail(IGuidGenerator guidGenerator, PurchasePriceDetail detail) //{ // Check.NotNull(guidGenerator, nameof(guidGenerator)); // Check.NotNull(detail, nameof(PurchasePriceDetail)); // if (IsInDetails(detail.ItemId, detail.BeginTime)) // { // //to do 需要规范异常的处理逻辑 // throw new Exception(detail.ItemId + ":" + detail.BeginTime + " 已经在明细中存在!"); // } // Check.NotNull(detail.ItemId, nameof(detail.ItemId)); // PurchasePriceDetails.Add(new PurchasePriceDetail(guidGenerator.Create(), Id, BranchId, detail.ItemId, detail.BeginTime, detail.EndTime, detail.PurchasePrice, detail.Enabled, detail.IsTempPrice, detail.IsModelShare, detail.ModelSharePrice)); //} //public virtual void AddDetails(IGuidGenerator guidGenerator, IEnumerable details) //{ // Check.NotNull(guidGenerator, nameof(guidGenerator)); // foreach (var detail in details) // { // AddDetail(guidGenerator, detail); // } //} //public virtual bool IsInDetails(Guid itemId, DateTime beginTime) //{ // return PurchasePriceDetails.Any(d => d.ItemId == itemId && d.BeginTime == beginTime && d.IsDeleted == false); //} ////public virtual void RemoveDetail([NotNull] Guid purchasePriceSheetId, [NotNull] Guid itemId, [NotNull] DateTime beginTime) ////{ //// Check.NotNull(itemId, nameof(itemId)); //// Check.NotNull(purchasePriceSheetId, nameof(purchasePriceSheetId)); //// PurchasePriceDetails.RemoveAll(userDetail => //// userDetail.ItemId == itemId //// && userDetail.PurchasePriceSheetId == purchasePriceSheetID //// && userDetail.BeginTime == beginTime); ////} //////public virtual void RemoveDetails(List itemIds) //////{ ////// foreach (var itemName in itemNames) ////// { ////// RemoveDetail(itemName); ////// } //////} ////public virtual void RemoveDetail([NotNull] Guid detailId) ////{ //// Check.NotNull(detailId, nameof(detailId)); //// PurchasePriceDetails.RemoveAll(userDetail => //// userDetail.Id == detailId); ////} ////public virtual void RemoveDetails(List detailIds) ////{ //// foreach (var detailId in detailIds) //// { //// RemoveDetail(detailId); //// } ////} //public virtual bool UpdateDetail(IGuidGenerator guidGenerator, PurchasePriceDetail detail) //{ // Check.NotNull(detail, nameof(PurchasePriceDetail)); // var item = FindDetail(detail.ItemId, detail.BeginTime); // if (item == null) // { // AddDetail(guidGenerator, detail); // } // else // { // Check.NotNull(item, nameof(PurchasePriceDetail)); // item.PurchasePrice = detail.PurchasePrice; // item.EndTime = detail.EndTime; // item.IsTempPrice = detail.IsTempPrice; // item.IsModelShare = detail.IsModelShare; // item.ModelSharePrice = detail.ModelSharePrice; // item.Enabled = detail.Enabled; // } // return true; //} //public virtual PurchasePriceDetail FindDetail(Guid itemId, DateTime beginTime) //{ // if (!IsInDetails(itemId, beginTime)) // { // return null; // } // var item = PurchasePriceDetails.FirstOrDefault(p => p.PurchasePriceSheetId == Id && p.ItemId == itemId && p.BeginTime == beginTime && p.IsDeleted == false); // return item; //} //public virtual bool IsInDetails(Guid detailKey) //{ // return PurchasePriceDetails.Any(d => d.Id == detailKey && d.IsDeleted == false); //} //public PurchasePriceDetail FindDetail(Guid detailKey) //{ // var item = PurchasePriceDetails.FirstOrDefault(p => p.PurchasePriceSheetId == Id && p.Id == detailKey && p.IsDeleted == false); // return item; //} #endregion }