|  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | try | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == orderNo).Includes(x=>x.Details).First(); | 
|---|
|  |  |  | Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == orderNo).Includes(x => x.Details).First(); | 
|---|
|  |  |  | if (receiveOrder == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥æ¶è´§å"); | 
|---|
|  |  |  | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ç©æçä¿¡æ¯"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //该æ¶è´§åä»åºæ¯å¦æè¯¥ç©æ | 
|---|
|  |  |  | if (materielInfo.WarehouseId!= receiveOrder.WarehouseId) | 
|---|
|  |  |  | if (materielInfo.WarehouseId != receiveOrder.WarehouseId) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"è¯¥ç©æä¸å±äºè¯¥ä»åº"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Dt_PurchaseOrder purchaseOrder = _inboundRepository.PurchaseOrderRepository.Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == model.PurchaseOrderNo).Includes(x=>x.Details).First(); | 
|---|
|  |  |  | Dt_PurchaseOrder purchaseOrder = _inboundRepository.PurchaseOrderRepository.Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == model.PurchaseOrderNo).Includes(x => x.Details).First(); | 
|---|
|  |  |  | if (purchaseOrder == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥éè´å"); | 
|---|
|  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"该éè´åæ¶è´§å·²å®æ"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Dt_PurchaseOrderDetail? purchaseOrderDetail = purchaseOrder.Details.FirstOrDefault(x => x.MaterielCode == model.MaterielCode && (x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt() || x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.Receiving.ObjToInt())); | 
|---|
|  |  |  | Dt_PurchaseOrderDetail? purchaseOrderDetail = purchaseOrder.Details.Where(x => x.MaterielCode == model.MaterielCode && (x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt() || x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.Receiving.ObjToInt())).FirstOrDefault(); | 
|---|
|  |  |  | if (purchaseOrderDetail == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (purchaseOrder.Details.Count > 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"该æç»æ¶è´§å·²å®æ"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"该éè´åæç»æ¶è´§å·²å®æ"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //夿æ¯å¦åå¨å¯¹åºéè´æç»çæ¶è´§æç» | 
|---|
|  |  |  | Dt_ReceiveOrderDetail? detail = receiveOrder.Details.FirstOrDefault(x => x.PurchaseOrderNo == model.PurchaseOrderNo && x.PurchaseOrderDetailRowNo == purchaseOrderDetail.RowNo); | 
|---|
|  |  |  | if (detail != null && detail.ReceivedQuantity == purchaseOrderDetail.PurchaseDetailQuantity) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"该æç»å·²æ¶è´§"); | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"该æ¶è´§åæç»å·²æ¶è´§"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | lock (_rowNoLocker) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (detail!=null) | 
|---|
|  |  |  | if (detail != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | //åææ¶è´§æç»å¢å æ¶è´§æ°é | 
|---|
|  |  |  | detail.ReceivedQuantity += model.Quantity; | 
|---|
|  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"éè´åè¯¥ç©ææ°éåæ¶è´§æ°éä¸ä¸è´"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(purchaseOrderDetail.PurchaseDetailReceiveQty ==purchaseOrderDetail.PurchaseDetailQuantity) | 
|---|
|  |  |  | if (purchaseOrderDetail.PurchaseDetailReceiveQty == purchaseOrderDetail.PurchaseDetailQuantity) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Received.ObjToInt(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | float sumQty = purchaseOrder.Details.Sum(x => x.PurchaseDetailReceiveQty) + model.Quantity; | 
|---|
|  |  |  | _unitOfWorkManage.BeginTran(); | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Receiving.ObjToInt(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | float sumQty = purchaseOrder.Details.Sum(x => x.PurchaseDetailReceiveQty)+ model.Quantity; | 
|---|
|  |  |  | if (purchaseOrder.OrderQuantity == sumQty) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Received.ObjToInt(); | 
|---|
|  |  |  | _inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Receiving.ObjToInt(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | _unitOfWorkManage.BeginTran(); | 
|---|
|  |  |  | _inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder); | 
|---|
|  |  |  | BaseDal.UpdateData(detail); | 
|---|
|  |  |  | _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrderDetail); | 
|---|
|  |  |  | _unitOfWorkManage.CommitTran(); | 
|---|
|  |  |  | 
|---|
|  |  |  | receiveOrder.ReceiveOrderStatus = ReceiveOrderStatusEnum.Receiving.ObjToInt(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //夿éè´æç»æ°é | 
|---|
|  |  |  | if (purchaseOrderDetail.PurchaseDetailQuantity<model.Quantity) | 
|---|
|  |  |  | if (purchaseOrderDetail.PurchaseDetailQuantity < model.Quantity) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"请核对éè´åè¯¥ç©ææ°é"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (purchaseOrderDetail.PurchaseDetailReceiveQty>0) | 
|---|
|  |  |  | if (purchaseOrderDetail.PurchaseDetailReceiveQty > 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | purchaseOrderDetail.PurchaseDetailReceiveQty += model.Quantity; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | purchaseOrderDetail.PurchaseDetailReceiveQty = model.Quantity; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (purchaseOrderDetail.PurchaseDetailReceiveQty> purchaseOrderDetail.PurchaseDetailQuantity) | 
|---|
|  |  |  | if (purchaseOrderDetail.PurchaseDetailReceiveQty > purchaseOrderDetail.PurchaseDetailQuantity) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"éè´åè¯¥ç©ææ°éåæ¶è´§æ°éä¸ä¸è´"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | #endregion | 
|---|
|  |  |  | _unitOfWorkManage.CommitTran(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return WebResponseContent.Instance.OK(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|