|  |  | 
 |  |  | using WIDESEA_Core.Enums; | 
 |  |  | using WIDESEA_Core.Helper; | 
 |  |  | using WIDESEA_DTO; | 
 |  |  | using WIDESEA_DTO.Basic; | 
 |  |  | using WIDESEA_IBasicRepository; | 
 |  |  | using WIDESEA_IInboundRepository; | 
 |  |  | using WIDESEA_IInboundService; | 
 |  |  | 
 |  |  |         private readonly IUnitOfWorkManage _unitOfWorkManage; | 
 |  |  |         private readonly IPurchaseOrderDetailRepository _purchaseOrderDetailRepository; | 
 |  |  |         private readonly IBasicRepository _basicRepository; | 
 |  |  |         private readonly ISupplierInfoRepository _supplierInfoRepository; | 
 |  |  |         private readonly IMaterielInfoRepository _materielInfoRepository; | 
 |  |  |  | 
 |  |  |         public PurchaseOrderService(IPurchaseOrderRepository BaseDal, IPurchaseOrderDetailRepository purchaseOrderDetailRepository, IUnitOfWorkManage unitOfWorkManage,IBasicRepository basicRepository) : base(BaseDal) | 
 |  |  |         public PurchaseOrderService(IPurchaseOrderRepository BaseDal, IPurchaseOrderDetailRepository purchaseOrderDetailRepository, IUnitOfWorkManage unitOfWorkManage, IBasicRepository basicRepository, ISupplierInfoRepository supplierInfoRepository, IMaterielInfoRepository materielInfoRepository) : base(BaseDal) | 
 |  |  |         { | 
 |  |  |             _purchaseOrderDetailRepository = purchaseOrderDetailRepository; | 
 |  |  |             _unitOfWorkManage = unitOfWorkManage; | 
 |  |  |             _basicRepository = basicRepository; | 
 |  |  |             _supplierInfoRepository = supplierInfoRepository; | 
 |  |  |             _materielInfoRepository = materielInfoRepository; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         public WebResponseContent ReceivePurchaseOrder(PurchaseOrderModel model) | 
 |  |  | 
 |  |  |                 { | 
 |  |  |                     return WebResponseContent.Instance.Error($"éè´åå·éå¤"); | 
 |  |  |                 } | 
 |  |  |                 if (_supplierInfoRepository.QueryFirst(x => x.SupplierCode == model.SCode) == null) | 
 |  |  |                 { | 
 |  |  |                     return WebResponseContent.Instance.Error($"æªæ¾å°ä¾åºåç¼ç ã{model.SCode}ãçä¿¡æ¯"); | 
 |  |  |                 } | 
 |  |  |                 List<Dt_Warehouse> warehouses = _basicRepository.WarehouseRepository.QueryData(); | 
 |  |  |                  List<Dt_PurchaseOrderDetail> purchaseOrderDetails = new List<Dt_PurchaseOrderDetail>(); | 
 |  |  |                 List<Dt_MaterielInfo> materielInfos = _materielInfoRepository.QueryData(); | 
 |  |  |                 List<Dt_PurchaseOrderDetail> purchaseOrderDetails = new List<Dt_PurchaseOrderDetail>(); | 
 |  |  |                 foreach (var item in model.MList) | 
 |  |  |                 { | 
 |  |  |                     Dt_Warehouse? warehouse = warehouses.FirstOrDefault(x => x.WarehouseCode == item.WaId); | 
 |  |  |                     if(warehouse == null) | 
 |  |  |                     if (warehouse == null) | 
 |  |  |                     { | 
 |  |  |                         return WebResponseContent.Instance.Error($"æªæ¾å°ä»åºä¿¡æ¯"); | 
 |  |  |                     } | 
 |  |  |                     Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MCode); | 
 |  |  |                     if (materielInfo == null) | 
 |  |  |                     { | 
 |  |  |                         return WebResponseContent.Instance.Error($"æªæ¾å°ç©æç¼ç ã{item.MCode}ãçä¿¡æ¯"); | 
 |  |  |                     } | 
 |  |  |                     Dt_PurchaseOrderDetail purchaseOrderDetail = new Dt_PurchaseOrderDetail() | 
 |  |  |                     { | 
 |  |  |                         MaterielCode = item.MCode, | 
 |  |  |                         PurchaseDetailQuantity = item.Qty, | 
 |  |  |                         PurchaseDetailReceiveQty=0, | 
 |  |  |                         PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt(), | 
 |  |  |                         Unit = item.Unit, | 
 |  |  |                         WarehouseId = warehouse.WarehouseId, | 
 |  |  | 
 |  |  |                 { | 
 |  |  |                     return WebResponseContent.Instance.Error($"æªæ¾å°éè´åæç»ä¿¡æ¯"); | 
 |  |  |                 } | 
 |  |  |                 if (_supplierInfoRepository.QueryFirst(x => x.SupplierCode == model.SCode) == null) | 
 |  |  |                 { | 
 |  |  |                     return WebResponseContent.Instance.Error($"æªæ¾å°ä¾åºåç¼ç ã{model.SCode}ãçä¿¡æ¯"); | 
 |  |  |                 } | 
 |  |  |                 List<Dt_Warehouse> warehouses = _basicRepository.WarehouseRepository.QueryData(); | 
 |  |  |                 List<Dt_MaterielInfo> materielInfos = _materielInfoRepository.QueryData(); | 
 |  |  |                 List<Dt_PurchaseOrderDetail> purchaseOrderDetails = new List<Dt_PurchaseOrderDetail>(); | 
 |  |  |                 List<Dt_PurchaseOrderDetail> updatePurchaseOrderDetails = new List<Dt_PurchaseOrderDetail>(); | 
 |  |  |                 List<int> detailIds = new List<int>(); | 
 |  |  | 
 |  |  |                     { | 
 |  |  |                         return WebResponseContent.Instance.Error($"æªæ¾å°ä»åºä¿¡æ¯"); | 
 |  |  |                     } | 
 |  |  |                     Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MCode); | 
 |  |  |                     if (materielInfo == null) | 
 |  |  |                     { | 
 |  |  |                         return WebResponseContent.Instance.Error($"æªæ¾å°ç©æç¼ç ã{item.MCode}ãçä¿¡æ¯"); | 
 |  |  |                     } | 
 |  |  |                     Dt_PurchaseOrderDetail? purchaseOrderDetail = purchaseOrder.Details.FirstOrDefault(x => x.RowNo == item.RowId); | 
 |  |  |                     if (purchaseOrderDetail == null) | 
 |  |  |                     { | 
 |  |  | 
 |  |  |                         { | 
 |  |  |                             MaterielCode = item.MCode, | 
 |  |  |                             PurchaseDetailQuantity = item.Qty, | 
 |  |  |                             PurchaseDetailReceiveQty = 0, | 
 |  |  |                             PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt(), | 
 |  |  |                             Unit = item.Unit, | 
 |  |  |                             WarehouseId = warehouse.WarehouseId, |