| | |
| | | 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 GetPurchaseOrderInfo(string purchaseOrderNo) |
| | | { |
| | | try |
| | | { |
| | | Dt_PurchaseOrder purchaseOrder = BaseDal.Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == purchaseOrderNo).Includes(x => x.Details).First(); |
| | | List<string> MaterielCodes = purchaseOrder.Details.Where(x => x.PurchaseDetailStatus != PurchaseOrderDetailStatusEnum.Received.ObjToInt()).Select(x => x.MaterielCode).ToList(); |
| | | return WebResponseContent.Instance.OK(data: MaterielCodes); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | public WebResponseContent ReceivePurchaseOrder(PurchaseOrderModel model) |
| | | { |
| | | try |
| | |
| | | { |
| | | 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, |