| | |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°åºåºåæç»ä¿¡æ¯"); |
| | | } |
| | | if (outboundOrder.OrderStatus != (int)OutOrderStatusEnum.æªå¼å§) |
| | | { |
| | | return WebResponseContent.Instance.Error($"该订åç¶æä¸å
许修æ¹"); |
| | | } |
| | | List<Dt_OutboundOrderDetail> outboundOrderDetails = new List<Dt_OutboundOrderDetail>(); |
| | | List<Dt_OutboundOrderDetail> updateoutboundOrderDetails = new List<Dt_OutboundOrderDetail>(); |
| | | List<int> detailIds = new List<int>(); |
| | |
| | | } |
| | | else |
| | | { |
| | | if(item.OrderQuantity < outboundOrderDetail.LockQuantity + outboundOrderDetail.MoveQty) |
| | | { |
| | | return WebResponseContent.Instance.Error($"ä¿®æ¹çè¡å·{item.lineNo}æ°éè¶
è¿äºæºä»åºåºé宿°éå 䏿ªææ°éï¼ä¸å
许修æ¹"); |
| | | } |
| | | outboundOrderDetail.lineNo = item.lineNo; |
| | | outboundOrderDetail.MaterielCode = item.MaterielCode; |
| | | outboundOrderDetail.SupplyCode = item.SupplyCode; |
| | |
| | | _unitOfWorkManage.BeginTran(); |
| | | foreach (var item in deletePurchaseOrderDetails) |
| | | { |
| | | if(item.LockQuantity > 0) |
| | | { |
| | | return WebResponseContent.Instance.Error($"ååæ®è¡å·{item.lineNo}å·²ç»éå®åºåºï¼ä¸å
许å é¤ï¼è¯·éæ°æ´æ¹æ°æ®æ¨é"); |
| | | } |
| | | // _outboundOrderDetailRepository.DeleteAndMoveIntoHty(item, OperateTypeEnum.èªå¨å é¤); |
| | | _outboundOrderDetailRepository.DeleteData(item); |
| | | } |
| | |
| | | _outboundOrderDetailRepository.UpdateData(updateoutboundOrderDetails); |
| | | _outboundOrderDetailRepository.AddData(outboundOrderDetails); |
| | | |
| | | if(outboundOrder.Details.All(x => x.OverOutQuantity >= x.OrderQuantity - x.MoveQty)) |
| | | { |
| | | outboundOrder.OrderStatus = (int)OutOrderStatusEnum.åºåºå®æ; |
| | | } |
| | | BaseDal.UpdateData(outboundOrder); |
| | | _unitOfWorkManage.CommitTran(); |
| | | |
| | |
| | | |
| | | public override PageGridData<Dt_OutboundOrder> GetPageData(PageDataOptions options) |
| | | { |
| | | string wheres = ValidatePageOptions(options); |
| | | //è·åæåºå段 |
| | | Dictionary<string, SqlSugar.OrderByType> orderbyDic = GetPageDataSort(options, TProperties); |
| | | List<OrderByModel> orderByModels = new List<OrderByModel>(); |
| | | foreach (var item in orderbyDic) |
| | |
| | | orderByModels.Add(orderByModel); |
| | | } |
| | | |
| | | |
| | | ISugarQueryable<Dt_OutboundOrder> sugarQueryable1 = BaseDal.Db.Queryable<Dt_OutboundOrder>().Includes(x => x.Details); |
| | | int totalCount = 0; |
| | | List<SearchParameters> searchParametersList = new List<SearchParameters>(); |
| | | if (!string.IsNullOrEmpty(options.Wheres)) |
| | |
| | | { |
| | | searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>(); |
| | | options.Filter = searchParametersList; |
| | | |
| | | if (searchParametersList.Count > 0) |
| | | { |
| | | var materielCodeParam = searchParametersList.FirstOrDefault(x => |
| | | x.Name.Equals("materielCode", StringComparison.OrdinalIgnoreCase)); |
| | | if (materielCodeParam != null && !string.IsNullOrEmpty(materielCodeParam.Value?.ToString())) |
| | | { |
| | | string materielCode = materielCodeParam.Value.ToString().Trim(); |
| | | sugarQueryable1 = sugarQueryable1.Where(x => |
| | | x.Details.Any(d => d.MaterielCode.Contains(materielCode))); |
| | | } |
| | | var upperOrderNoParam = searchParametersList.FirstOrDefault(x => |
| | | x.Name.Equals(nameof(Dt_OutboundOrder.UpperOrderNo).FirstLetterToLower(), StringComparison.OrdinalIgnoreCase)); |
| | | if (upperOrderNoParam != null && !string.IsNullOrEmpty(upperOrderNoParam.Value?.ToString())) |
| | | { |
| | | string upperOrderNo = upperOrderNoParam.Value.ToString().Trim(); |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.UpperOrderNo.Contains(upperOrderNo)); |
| | | } |
| | | var orderNoParam = searchParametersList.FirstOrDefault(x => |
| | | x.Name.Equals(nameof(Dt_OutboundOrder.OrderNo).FirstLetterToLower(), StringComparison.OrdinalIgnoreCase)); |
| | | if (orderNoParam != null && !string.IsNullOrEmpty(orderNoParam.Value?.ToString())) |
| | | { |
| | | string orderNo = orderNoParam.Value.ToString().Trim(); |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.OrderNo.Contains(orderNo)); |
| | | } |
| | | var orderStatusParam = searchParametersList.FirstOrDefault(x => |
| | | x.Name.Equals(nameof(Dt_OutboundOrder.OrderStatus).FirstLetterToLower(), StringComparison.OrdinalIgnoreCase)); |
| | | if (orderStatusParam != null && !string.IsNullOrEmpty(orderStatusParam.Value?.ToString())) |
| | | { |
| | | string orderStatus = orderStatusParam.Value.ToString().Trim(); |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.OrderStatus.Equals(orderStatus)); |
| | | } |
| | | var returnToMESStatusParam = searchParametersList.FirstOrDefault(x => |
| | | x.Name.Equals(nameof(Dt_OutboundOrder.ReturnToMESStatus).FirstLetterToLower(), StringComparison.OrdinalIgnoreCase)); |
| | | if (returnToMESStatusParam != null && !string.IsNullOrEmpty(returnToMESStatusParam.Value?.ToString())) |
| | | { |
| | | string returnToMESStatus = returnToMESStatusParam.Value.ToString().Trim(); |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.ReturnToMESStatus.Equals(returnToMESStatus)); |
| | | } |
| | | |
| | | var createDateParams = searchParametersList |
| | | .Where(x => x.Name.Equals("createDate", StringComparison.OrdinalIgnoreCase) |
| | | && !string.IsNullOrEmpty(x.Value?.ToString())) |
| | | .ToList(); |
| | | |
| | | DateTime? minCreateDate = null; |
| | | DateTime? maxCreateDate = null; |
| | | |
| | | foreach (var dateParam in createDateParams) |
| | | { |
| | | if (DateTime.TryParse(dateParam.Value.ToString(), out DateTime dateValue)) |
| | | { |
| | | LinqExpressionType expressionType = dateParam.DisplayType.GetLinqCondition(); |
| | | switch (expressionType) |
| | | { |
| | | case LinqExpressionType.ThanOrEqual: |
| | | minCreateDate = dateValue; |
| | | break; |
| | | case LinqExpressionType.LessThanOrEqual: |
| | | maxCreateDate = dateValue; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (minCreateDate.HasValue) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.CreateDate >= minCreateDate.Value); |
| | | } |
| | | if (maxCreateDate.HasValue) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.CreateDate <= maxCreateDate.Value); |
| | | } |
| | | } |
| | | } |
| | | catch { } |
| | | } |
| | | var data = BaseDal.Db.Queryable<Dt_OutboundOrder>() |
| | | .WhereIF(!wheres.IsNullOrEmpty(), wheres) |
| | | .Where(x => x.OrderType == 0) |
| | | var data = sugarQueryable1 |
| | | .Where(x => x.OrderType == 0 || x.OrderType == 116) |
| | | .OrderBy(orderByModels) |
| | | .ToPageList(options.Page, options.Rows, ref totalCount); |
| | | |