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, IPurchaseOrderDetailService { public IPurchaseOrderDetailRepository Repository => BaseDal; public PurchaseOrderDetailService(IPurchaseOrderDetailRepository BaseDal) : base(BaseDal) { } public WebResponseContent GetPurchaseOrderDetailMaterielCode(int warehouseId) { try { List purchaseOrderDetails = BaseDal.QueryData(x => x.WarehouseId == warehouseId && x.PurchaseDetailStatus != PurchaseOrderDetailStatusEnum.Received.ObjToInt()); List 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 purchaseOrderDetails = BaseDal.QueryData(x => x.MaterielCode == materielCode && x.PurchaseDetailStatus != PurchaseOrderDetailStatusEnum.Received.ObjToInt()); List PurchaseOrderIds = purchaseOrderDetails.Select(x => x.PurchaseOrderId).ToList(); List purchaseOrders = BaseDal.Db.Queryable().Where(x => PurchaseOrderIds.Contains(x.Id)).ToList(); List PurchaseOrderNos = purchaseOrders.Select(x => x.PurchaseOrderNo).ToList(); return WebResponseContent.Instance.OK(data: PurchaseOrderNos); } catch (Exception ex) { return WebResponseContent.Instance.Error(ex.Message); } } } }