| | |
| | | using AutoMapper; |
| | | using MailKit.Search; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common.CommonEnum; |
| | |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_Core.Helper; |
| | | using WIDESEA_Core.Utilities; |
| | | using WIDESEA_DTO; |
| | | using WIDESEA_DTO.Basic; |
| | | using WIDESEA_DTO.ERP; |
| | |
| | | |
| | | if (saveModel.MainData.TryGetValue(nameof(Dt_ReceiveOrder.SuppliersId).FirstLetterToLower(), out object? suppliersId) && suppliersId != null && !string.IsNullOrEmpty(suppliersId.ToString())) |
| | | { |
| | | Dt_ReceiveOrder receiveOrder = BaseDal.QueryFirst(x => x.SuppliersId == suppliersId.ToString() && x.WarehouseId == Convert.ToInt32(saveModel.MainData[nameof(Dt_ReceiveOrder.WarehouseId).FirstLetterToLower()])); |
| | | if (receiveOrder != null && receiveOrder.ReceiveOrderStatus != ReceiveOrderStatusEnum.Completed.ObjToInt()) |
| | | Dt_ReceiveOrder receiveOrder = BaseDal.QueryFirst(x => x.SuppliersId == suppliersId.ToString() && x.WarehouseId == Convert.ToInt32(saveModel.MainData[nameof(Dt_ReceiveOrder.WarehouseId).FirstLetterToLower()]) && x.ReceiveOrderStatus< ReceiveOrderStatusEnum.Completed.ObjToInt()); |
| | | if (receiveOrder != null) |
| | | { |
| | | return WebResponseContent.Instance.Error("该ä¾åºåææªå®æçæ¶è´§å"); |
| | | } |
| | | } |
| | | |
| | | return base.AddData(saveModel); |
| | | } |
| | | public override object GetDetailPage(PageDataOptions pageData) |
| | | { |
| | | Type t = typeof(Dt_ReceiveOrder); |
| | | |
| | | if (pageData.Value == null) return new PageGridData<object>(total: 0, null); |
| | | string keyName = t.GetKeyName(); |
| | | ////çææ¥è¯¢æ¡ä»¶ |
| | | //Expression<Func<TEntity, bool>> whereExpression = keyName.CreateExpression<TEntity>(pageData.Value, LinqExpressionType.Equal); |
| | | int totalCount = 0; |
| | | PropertyInfo propertyInfo = t.GetProperties().FirstOrDefault(x => x.GetCustomAttribute<Navigate>() != null); |
| | | if (propertyInfo != null) |
| | | { |
| | | Type detailType = propertyInfo.PropertyType.GetGenericArguments()[0]; |
| | | Navigate navigate = propertyInfo.GetCustomAttribute<Navigate>(); |
| | | List<Dt_ReceiveOrderDetail> list = BaseDal.Db.Queryable<Dt_ReceiveOrderDetail>().Where(navigate.GetName(), "=", pageData.Value).ToPageList(pageData.Page, pageData.Rows, ref totalCount); |
| | | decimal sum = 0; |
| | | list.ForEach(x => |
| | | { |
| | | sum += Convert.ToDecimal(x.ReceivedQuantity); |
| | | }); |
| | | PageGridData<Dt_ReceiveOrderDetail> pageGridData = new PageGridData<Dt_ReceiveOrderDetail>() |
| | | { |
| | | Total = totalCount, |
| | | Rows = list, |
| | | Summary = new |
| | | { |
| | | ReceivedQuantity = Math.Round(sum, 3), |
| | | } |
| | | }; |
| | | return pageGridData; |
| | | } |
| | | return new PageGridData<object>(total: 0, null); |
| | | } |
| | | /// <summary> |
| | | /// æ¶è´§å®æå¹¶åä¼ ERP |
| | |
| | | List<Dt_ReceiveOrder> dt_ReceiveOrders = new List<Dt_ReceiveOrder>(); |
| | | if (string.IsNullOrEmpty(orderNo)) |
| | | { |
| | | dt_ReceiveOrders = Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderStatus < ReceiveOrderStatusEnum.Completed.ObjToInt() && x.WarehouseId == warehouseId).ToPageList(pageNo, 5); |
| | | dt_ReceiveOrders = Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderStatus < ReceiveOrderStatusEnum.Completed.ObjToInt() && x.WarehouseId == warehouseId).Includes(x=>x.Details).OrderByDescending(x=>x.ReceiveOrderId).ToPageList(pageNo, 5); |
| | | } |
| | | else |
| | | { |
| | | dt_ReceiveOrders = Db.Queryable<Dt_ReceiveOrder>().Where(x => (x.ReceiveOrderNo.Contains(orderNo) || x.SuppliersId.Contains(orderNo)) && x.ReceiveOrderStatus < ReceiveOrderStatusEnum.Completed.ObjToInt() && x.WarehouseId == warehouseId).ToPageList(pageNo, 5); |
| | | dt_ReceiveOrders = Db.Queryable<Dt_ReceiveOrder>().Where(x => (x.ReceiveOrderNo.Contains(orderNo) || x.SuppliersId.Contains(orderNo)) && x.ReceiveOrderStatus < ReceiveOrderStatusEnum.Completed.ObjToInt() && x.WarehouseId == warehouseId).OrderByDescending(x => x.ReceiveOrderId).Includes(x => x.Details).ToPageList(pageNo, 5); |
| | | } |
| | | |
| | | content.OK(data: dt_ReceiveOrders); |
| | |
| | | return WebResponseContent.Instance.Error($"该æ¶è´§å对åºçå
¥åºåå·²åå¨"); |
| | | } |
| | | #region 注é |
| | | //List<Dt_CheckOrder> checkOrders = _checkOrderRepository.QueryData(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo); |
| | | //if (checkOrders.FirstOrDefault(x => x.CheckOrderStatus == CheckOrderStatusEnum.NotCheck.ObjToInt()) != null) |
| | | //{ |
| | | // return WebResponseContent.Instance.Error($"该æ¶è´§åæªè´¨æ£å®æ"); |
| | | //} |
| | | List<Dt_CheckOrder> checkOrders = _checkOrderRepository.QueryData(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo); |
| | | if (checkOrders.FirstOrDefault(x => x.CheckOrderStatus == CheckOrderStatusEnum.NotCheck.ObjToInt()) != null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"该æ¶è´§åæªè´¨æ£å®æ"); |
| | | } |
| | | |
| | | ////if (checkOrders.FirstOrDefault(x => x.AuditStatus != AuditStatusEnum.Agree.ObjToInt()) != null) |
| | | ////{ |
| | | //// return WebResponseContent.Instance.Error($"该æ¶è´§åè´¨æ£ç»æå®¡æ¹æªå®æ"); |
| | | ////} |
| | | //if (checkOrders.FirstOrDefault(x => x.Result != CheckAcceptEnum.Accept.ToString()) != null) |
| | | //if (checkOrders.FirstOrDefault(x => x.AuditStatus != AuditStatusEnum.Agree.ObjToInt()) != null) |
| | | //{ |
| | | // return WebResponseContent.Instance.Error($"æ¶è´§æç»ä¸åæè´¨æ£æªéè¿"); |
| | | // return WebResponseContent.Instance.Error($"该æ¶è´§åè´¨æ£ç»æå®¡æ¹æªå®æ"); |
| | | //} |
| | | if (checkOrders.FirstOrDefault(x => x.Result != CheckAcceptEnum.Accept.ToString()) != null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æ¶è´§æç»ä¸åæè´¨æ£æªéè¿"); |
| | | } |
| | | #endregion |
| | | |
| | | Dt_InboundOrder inboundOrder = new Dt_InboundOrder() |
| | |
| | | { |
| | | float quantity = item.ReceivedQuantity; |
| | | #region 注é |
| | | //if (item.IfInspection == WhetherEnum.True.ObjToInt()) |
| | | //{ |
| | | // Dt_CheckOrder? checkOrder = checkOrders.FirstOrDefault(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo && x.ReceiveDetailRowNo == item.RowNo); |
| | | // if (checkOrder == null) |
| | | // { |
| | | // return WebResponseContent.Instance.Error($"è´¨æ£åæ°æ®é误"); |
| | | // } |
| | | // quantity = checkOrder.QualifiedQuantity.GetValueOrDefault() + checkOrder.DefectedQuantity.GetValueOrDefault(); |
| | | //} |
| | | if (item.IfInspection == WhetherEnum.True.ObjToInt()) |
| | | { |
| | | Dt_CheckOrder? checkOrder = checkOrders.FirstOrDefault(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo && x.ReceiveDetailRowNo == item.RowNo); |
| | | if (checkOrder == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"è´¨æ£åæ°æ®é误"); |
| | | } |
| | | quantity = checkOrder.QualifiedQuantity.GetValueOrDefault() + checkOrder.DefectedQuantity.GetValueOrDefault(); |
| | | } |
| | | #endregion |
| | | Dt_InboundOrderDetail detail = new Dt_InboundOrderDetail() |
| | | { |
| | |
| | | }; |
| | | inboundOrder.Details.Add(detail); |
| | | } |
| | | |
| | | //æ´æ°å
¥åºååå»ºç¶æ |
| | | receiveOrder.CreateInOrderStatus = WhetherEnum.True.ObjToInt(); |
| | | _unitOfWorkManage.BeginTran(); |
| | | BaseDal.UpdateData(receiveOrder); |
| | | _inboundRepository.InboundOrderRepository.Db.InsertNav(inboundOrder).Include(x => x.Details).ExecuteCommand(); |
| | | |
| | | _unitOfWorkManage.CommitTran(); |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |