| | |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common.CommonEnum; |
| | | using WIDESEA_Common.OrderEnum; |
| | | using WIDESEA_Common.StockEnum; |
| | | using WIDESEA_Common.WareHouseEnum; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.BaseServices; |
| | |
| | | using WIDESEA_Core.Helper; |
| | | using WIDESEA_External.Model; |
| | | using WIDESEA_IApprovalRepository; |
| | | using WIDESEA_IBasicRepository; |
| | | using WIDESEA_ICheckRepository; |
| | | using WIDESEA_ICheckService; |
| | | using WIDESEA_IInboundRepository; |
| | |
| | | private readonly IPurchaseOrderDetailRepository _purchaseOrderDetailRepository; |
| | | private readonly IOutboundRepository _outboundRepository; |
| | | private readonly IStockRepository _stockRepository; |
| | | public CheckOrderResultService(ICheckOrderResultRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, ICheckOrderRepository checkOrderRepository, IReceiveOrderRepository receiveOrderRepository, ICheckOrderService checkOrderService, IPurchaseOrderRepository purchaseOrderRepository, IPurchaseOrderDetailRepository purchaseOrderDetailRepository, IOutboundRepository outboundRepository, IStockRepository stockRepository) : base(BaseDal) |
| | | private readonly IWarehouseRepository _warehouseRepository; |
| | | private readonly IReceiveOrderDetailRepository _receiveOrderDetailRepository; |
| | | |
| | | public CheckOrderResultService(ICheckOrderResultRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, ICheckOrderRepository checkOrderRepository, IReceiveOrderRepository receiveOrderRepository, ICheckOrderService checkOrderService, IPurchaseOrderRepository purchaseOrderRepository, IPurchaseOrderDetailRepository purchaseOrderDetailRepository, IOutboundRepository outboundRepository, IStockRepository stockRepository,IWarehouseRepository warehouseRepository, IReceiveOrderDetailRepository receiveOrderDetailRepository) : base(BaseDal) |
| | | { |
| | | _checkOrderRepository = checkOrderRepository; |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | |
| | | _purchaseOrderDetailRepository = purchaseOrderDetailRepository; |
| | | _outboundRepository = outboundRepository; |
| | | _stockRepository = stockRepository; |
| | | _warehouseRepository=warehouseRepository; |
| | | _receiveOrderDetailRepository = receiveOrderDetailRepository; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | { |
| | | return content.Error($"æªæ¾å°è¯¥è´¨æ£å"); |
| | | } |
| | | Dt_Warehouse warehouse = _warehouseRepository.QueryFirst(x => x.WarehouseId == checkOrder.WarehouseId); |
| | | Dt_ReceiveOrder receiveOrder = _receiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == checkOrder.ReceiveOrderNo).Includes(x => x.Details).First(); |
| | | if (receiveOrder.ReceiveOrderStatus!=ReceiveOrderStatusEnum.Completed.ObjToInt()) |
| | | { |
| | |
| | | { |
| | | return content.Error($"æªæ¾å°è¯¥è´¨æ£å"); |
| | | } |
| | | Dt_Warehouse warehouse = _warehouseRepository.QueryFirst(x => x.WarehouseId == checkOrder.WarehouseId); |
| | | //è·åæ¶è´§å |
| | | Dt_ReceiveOrder receiveOrder = _receiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == checkOrder.ReceiveOrderNo).Includes(x => x.Details).First(); |
| | | if (receiveOrder.ReceiveOrderStatus != ReceiveOrderStatusEnum.Completed.ObjToInt()) |
| | | { |
| | |
| | | { |
| | | return content.Error($"æªæ¾å°ç¼ºé·ç±»å"); |
| | | } |
| | | //æ£éªç»æ |
| | | checkOrderResult = new Dt_CheckOrderResult() |
| | | { |
| | | Quantity = (float)Convert.ToDecimal(eRPCheckResult.Quantity), |
| | |
| | | Note = eRPCheckResult.Note, |
| | | SampleCount = 0, |
| | | }; |
| | | //è·å对åºéè´å |
| | | //è·å对åºéè´åæ£é¤æ¶è´§æ°é |
| | | Dt_ReceiveOrderDetail receiveOrderDetail = receiveOrder.Details.First(x => x.RowNo == checkOrder.ReceiveDetailRowNo); |
| | | purchaseOrder = _purchaseOrderRepository.Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == receiveOrderDetail.PurchaseOrderNo).Includes(x => x.Details).Where(x => x.Details.Any(v => v.RowNo == receiveOrderDetail.PurchaseOrderDetailRowNo)).First(); |
| | | if (purchaseOrder == null) |
| | |
| | | } |
| | | purchaseOrderDetail.PurchaseDetailReceiveQty -= (float)Convert.ToDecimal(eRPCheckResult.Quantity); |
| | | } |
| | | //夿æ£éªåæ ¼ç»æ |
| | | if (checkModel.Result == CheckAcceptEnum.Accept.ToString()) |
| | | { |
| | | checkOrder.Result = CheckAcceptEnum.Accept.ToString(); |
| | |
| | | return content.Error("æªæ¾å°æ£éªç±»å"); |
| | | } |
| | | checkOrder.CheckOrderStatus = CheckOrderStatusEnum.Checked.ObjToInt(); |
| | | List<Dt_ReceiveOrderDetail> receiveOrderDetails = new List<Dt_ReceiveOrderDetail>(); |
| | | //æ ¹æ®æ£éªæ°éæ£é¤åæ ¼æ°é |
| | | if (checkOrderResult != null) |
| | | { |
| | | checkOrder.QualifiedQuantity = checkOrder.ReceivedQuantity - checkOrderResult.Quantity; |
| | | //æ´æ°æ¶è´§æ£éªåæ ¼æ è¯ |
| | | if (warehouse.WarehouseCode == WarehouseEnum.HA152.ToString() || warehouse.WarehouseCode == WarehouseEnum.HA58.ToString()) |
| | | { |
| | | receiveOrderDetails = receiveOrder.Details.Where(x=>x.RowNo==checkOrder.ReceiveDetailRowNo).OrderByDescending(x => x.RowNo).Take((int)checkOrderResult.Quantity).ToList(); |
| | | receiveOrderDetails.ForEach(x => |
| | | { |
| | | x.IsCheckOk = WhetherEnum.True.ObjToInt(); |
| | | }); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | checkOrder.QualifiedQuantity = checkOrder.ReceivedQuantity; |
| | | } |
| | | checkOrder.CheckUserName = App.User.UserName; |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | |
| | | if (receiveOrderDetails.Count > 0) |
| | | { |
| | | _receiveOrderDetailRepository.UpdateData(receiveOrderDetails); |
| | | } |
| | | //æ´æ°éè´å |
| | | if (checkOrderResult != null && purchaseOrder != null && purchaseOrderDetail != null) |
| | | { |
| | | BaseDal.AddData(checkOrderResult); |
| | |
| | | } |
| | | _purchaseOrderDetailRepository.UpdateData(purchaseOrderDetail); |
| | | } |
| | | //ERP䏿¥ |
| | | WebResponseContent responseContent = _checkOrderService.FeedbackCheckResult(checkOrder, checkOrderResult != null ? new List<Dt_CheckOrderResult> { checkOrderResult } : new List<Dt_CheckOrderResult>()); |
| | | if (!responseContent.Status) |
| | | if (string.IsNullOrEmpty(checkModel.CreatorCode)) |
| | | { |
| | | throw new Exception(responseContent.Message); |
| | | } |
| | | //ERP䏿¥ |
| | | WebResponseContent responseContent = _checkOrderService.FeedbackCheckResult(checkOrder, checkOrderResult != null ? new List<Dt_CheckOrderResult> { checkOrderResult } : new List<Dt_CheckOrderResult>()); |
| | | if (!responseContent.Status) |
| | | { |
| | | throw new Exception(responseContent.Message); |
| | | } |
| | | } |
| | | checkOrder.UploadStatus = CheckUploadEnum.UploadOk.ObjToInt(); |
| | | _checkOrderRepository.UpdateData(checkOrder); |
| | | _unitOfWorkManage.CommitTran(); |
| | |
| | | try |
| | | { |
| | | Dt_CheckOrder checkOrder = _checkOrderRepository.QueryFirst(x => x.CheckOrderId == checkOrderId); |
| | | //è·åè´¨æ£å对åºçæ¶è´§å |
| | | //è·åè´¨æ£å |
| | | if (checkOrder == null) |
| | | { |
| | | return content.Error($"æªæ¾å°è¯¥è´¨æ£å"); |