| | |
| | | BarcodeQty = item.OrderQuantity, |
| | | BarcodeUnit = item.Unit, |
| | | }; |
| | | var issueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeQty); |
| | | outboundOrderDetail.Unit = issueoStockResult.Unit; |
| | | outboundOrderDetail.OrderQuantity = issueoStockResult.Quantity; |
| | | var moveissueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeMoveQty); |
| | | outboundOrderDetail.MoveQty = moveissueoStockResult.Quantity; |
| | | var unitConvertResult = await ConvertUnitAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeQty, item.BarcodeMoveQty); |
| | | outboundOrderDetail.Unit = unitConvertResult.Unit; |
| | | outboundOrderDetail.OrderQuantity = unitConvertResult.OrderQuantity; |
| | | outboundOrderDetail.MoveQty = unitConvertResult.MoveQty; |
| | | |
| | | outboundOrderDetail.MaterielName = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode)?.MaterielName ?? ""; |
| | | outboundOrderDetails.Add(outboundOrderDetail); |
| | | } |
| | | else |
| | | { |
| | | var unitConvertResult = await ConvertUnitAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeQty, item.BarcodeMoveQty); |
| | | #region éå®ç¶æä¸éæ°éåæ®µä¸è´æ§æ ¡éª |
| | | if (outboundOrderDetail.LockQuantity != 0) |
| | | { |
| | | var isFieldChanged = !string.Equals(outboundOrderDetail.MaterielCode, item.MaterielCode) |
| | | || !string.Equals(outboundOrderDetail.SupplyCode, item.SupplyCode) |
| | | || !string.Equals(outboundOrderDetail.BatchNo, item.BatchNo) |
| | | || !string.Equals(outboundOrderDetail.Unit, item.Unit) |
| | | || !string.Equals(outboundOrderDetail.Unit, unitConvertResult.Unit) |
| | | || !string.Equals(outboundOrderDetail.WarehouseCode, item.WarehouseCode) |
| | | || !string.Equals(outboundOrderDetail.lineNo, item.lineNo) |
| | | || outboundOrderDetail.MoveQty != item.MoveQty; |
| | | ; |
| | | |
| | | if (isFieldChanged) |
| | | { |
| | | return WebResponseContent.Instance.Error($"è¡å·{item.lineNo}å·²éå®åºåºï¼é宿°éï¼{outboundOrderDetail.LockQuantity}ï¼ï¼ä»
å
许修æ¹è®¢åæ°éï¼ç¦æ¢ä¿®æ¹ç©æ/æ¹æ¬¡/ä»åºçå
¶ä»ä¿¡æ¯"); |
| | | } |
| | | else |
| | | { |
| | | if(item.MoveQty > (outboundOrderDetail.OrderQuantity - outboundOrderDetail.LockQuantity)) |
| | | { |
| | | return WebResponseContent.Instance.Error($"è¡å·{item.lineNo}æªææ°éä¸è½è¶
è¿å©ä¸çè®¢åæ°é{outboundOrderDetail.OrderQuantity - outboundOrderDetail.LockQuantity}"); |
| | | } |
| | | outboundOrderDetail.MoveQty = item.MoveQty; |
| | | } |
| | | } |
| | | #endregion |
| | |
| | | outboundOrderDetail.BarcodeMoveQty = item.MoveQty; |
| | | outboundOrderDetail.BarcodeQty = item.OrderQuantity; |
| | | outboundOrderDetail.BarcodeUnit = item.Unit; |
| | | |
| | | var issueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeQty); |
| | | outboundOrderDetail.Unit = issueoStockResult.Unit; |
| | | outboundOrderDetail.OrderQuantity = issueoStockResult.Quantity; |
| | | var moveissueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeMoveQty); |
| | | outboundOrderDetail.MoveQty = moveissueoStockResult.Quantity; |
| | | outboundOrderDetail.Unit = unitConvertResult.Unit; |
| | | outboundOrderDetail.OrderQuantity = unitConvertResult.OrderQuantity; |
| | | outboundOrderDetail.MoveQty = unitConvertResult.MoveQty; |
| | | } |
| | | else |
| | | { |
| | |
| | | if (outboundOrder.Details.All(x => x.OverOutQuantity >= x.OrderQuantity - x.MoveQty)) |
| | | { |
| | | outboundOrder.OrderStatus = (int)OutOrderStatusEnum.åºåºå®æ; |
| | | outboundOrder.ReturnToMESStatus = 1; |
| | | } |
| | | BaseDal.UpdateData(outboundOrder); |
| | | |
| | |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.ReturnToMESStatus.Equals(returnToMESStatus)); |
| | | } |
| | | |
| | | var businessTypeParam = searchParametersList.FirstOrDefault(x => |
| | | x.Name.Equals(nameof(Dt_OutboundOrder.BusinessType).FirstLetterToLower(), StringComparison.OrdinalIgnoreCase)); |
| | | if (businessTypeParam != null && !string.IsNullOrEmpty(businessTypeParam.Value?.ToString())) |
| | | { |
| | | string businessType = businessTypeParam.Value.ToString().Trim(); |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.BusinessType.Equals(businessType)); |
| | | } |
| | | |
| | | var departmentNameParam = searchParametersList.FirstOrDefault(x => |
| | | x.Name.Equals("departmentName", StringComparison.OrdinalIgnoreCase)); |
| | | if (departmentNameParam != null && !string.IsNullOrEmpty(departmentNameParam.Value?.ToString())) |
| | | { |
| | | string departmentName = departmentNameParam.Value.ToString().Trim(); |
| | | sugarQueryable1 = sugarQueryable1.Where(x => |
| | | x.DepartmentName.Contains(departmentName)); |
| | | } |
| | | |
| | | var createDateParams = searchParametersList |
| | | .Where(x => x.Name.Equals("createDate", StringComparison.OrdinalIgnoreCase) |
| | | && !string.IsNullOrEmpty(x.Value?.ToString())) |
| | |
| | | |
| | | return new PageGridData<Dt_OutboundOrder>(totalCount, data); |
| | | } |
| | | |
| | | |
| | | private async Task<UnitConvertResult> ConvertUnitAsync(string materielCode, string barcodeUnit, decimal barcodeQty, decimal barcodeMoveQty) |
| | | { |
| | | var issueoStockResult = await _materialUnitService.ConvertFromToStockAsync(materielCode, barcodeUnit, barcodeQty); |
| | | var moveissueoStockResult = await _materialUnitService.ConvertFromToStockAsync(materielCode, barcodeUnit, barcodeMoveQty); |
| | | |
| | | return new UnitConvertResult |
| | | { |
| | | Unit = issueoStockResult.Unit, |
| | | OrderQuantity = issueoStockResult.Quantity, |
| | | MoveQty = moveissueoStockResult.Quantity |
| | | }; |
| | | } |
| | | |
| | | private class UnitConvertResult |
| | | { |
| | | public string Unit { get; set; } |
| | | public decimal OrderQuantity { get; set; } |
| | | public decimal MoveQty { get; set; } |
| | | } |
| | | } |
| | | } |