| using System; | 
| using System.Collections.Generic; | 
| using System.Linq; | 
| using System.Text; | 
| using System.Threading.Tasks; | 
| using WIDESEA_Common.OrderEnum; | 
| using WIDESEA_Core; | 
| using WIDESEA_Core.BaseServices; | 
| using WIDESEA_Core.Enums; | 
| using WIDESEA_Core.Helper; | 
| using WIDESEA_IInboundRepository; | 
| using WIDESEA_IInboundService; | 
| using WIDESEA_Model.Models; | 
|   | 
| namespace WIDESEA_InboundService | 
| { | 
|     public class PurchaseOrderDetailService : ServiceBase<Dt_PurchaseOrderDetail, IPurchaseOrderDetailRepository>, IPurchaseOrderDetailService | 
|     { | 
|         public IPurchaseOrderDetailRepository Repository => BaseDal; | 
|   | 
|         public PurchaseOrderDetailService(IPurchaseOrderDetailRepository BaseDal) : base(BaseDal) | 
|         { | 
|         } | 
|         public WebResponseContent GetPurchaseOrderDetailMaterielCode(int warehouseId) | 
|         { | 
|             try | 
|             { | 
|                 List<Dt_PurchaseOrderDetail> purchaseOrderDetails = BaseDal.QueryData(x => x.WarehouseId == warehouseId && x.PurchaseDetailStatus != PurchaseOrderDetailStatusEnum.Received.ObjToInt()); | 
|                 List<string> MaterielCodes = purchaseOrderDetails.Select(x => x.MaterielCode).ToList(); | 
|                 MaterielCodes = MaterielCodes.Distinct().ToList(); | 
|                 return WebResponseContent.Instance.OK(data: MaterielCodes); | 
|             } | 
|             catch (Exception ex) | 
|             { | 
|                 return WebResponseContent.Instance.Error(ex.Message); | 
|             } | 
|         } | 
|         public WebResponseContent GetPurchaseOrderNos(string materielCode) | 
|         { | 
|             try | 
|             { | 
|                 List<Dt_PurchaseOrderDetail> purchaseOrderDetails = BaseDal.QueryData(x => x.MaterielCode == materielCode && x.PurchaseDetailStatus != PurchaseOrderDetailStatusEnum.Received.ObjToInt()); | 
|                 List<int> PurchaseOrderIds = purchaseOrderDetails.Select(x => x.PurchaseOrderId).ToList(); | 
|                 List<Dt_PurchaseOrder> purchaseOrders = BaseDal.Db.Queryable<Dt_PurchaseOrder>().Where(x => PurchaseOrderIds.Contains(x.Id)).ToList(); | 
|                 List<string> PurchaseOrderNos = purchaseOrders.Select(x => x.PurchaseOrderNo).ToList(); | 
|                 return WebResponseContent.Instance.OK(data: PurchaseOrderNos); | 
|             } | 
|             catch (Exception ex) | 
|             { | 
|                 return WebResponseContent.Instance.Error(ex.Message); | 
|             } | 
|         } | 
|     } | 
| } |