protected override void SetDetail(Resolver resolver) { LocationLotDetail locationLotDetail = locationLotDetailMgr.CheckLoadHuLocationLotDetail(resolver.Input, resolver.UserCode); TransformerDetail transformerDetail = TransformerHelper.ConvertLocationLotDetailToTransformerDetail(locationLotDetail, false); resolver.AddTransformerDetail(transformerDetail); resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMERDETAIL; }
public void InitPageParameter(string repackNo) { IList <TransformerDetail> repackDetailInList = new List <TransformerDetail>(); IList <TransformerDetail> repackDetailOutList = new List <TransformerDetail>(); if (repackNo != string.Empty) { Repack repack = TheRepackMgr.LoadRepack(repackNo, true); IList <TransformerDetail> transformerDetailList = TransformerHelper.ConvertRepackDetailListToTransformerDetailList(repack.RepackDetails); foreach (TransformerDetail transformerDetail in transformerDetailList) { if (transformerDetail.IOType == BusinessConstants.IO_TYPE_IN) { repackDetailInList.Add(transformerDetail); } else if (transformerDetail.IOType == BusinessConstants.IO_TYPE_OUT) { repackDetailOutList.Add(transformerDetail); } } } this.GV_InList.DataSource = repackDetailInList; this.GV_InList.DataBind(); this.GV_OutList.DataSource = repackDetailOutList; this.GV_OutList.DataBind(); }
protected override void SetDetail(Resolver resolver) { //setDetailMgr.CheckHuInTransformerDetails(resolver); LocationLotDetail locationLotDetail = locationLotDetailMgr.CheckLoadHuLocationLotDetail(resolver.Input, resolver.UserCode); //Hu hu = locationLotDetail.Hu; //hu.Qty = locationLotDetail.Qty / hu.UnitQty; if (this.locationMgr.IsHuOcuppyByPickList(resolver.Input)) { throw new BusinessErrorException("Order.Error.PickUp.HuOcuppied", resolver.Input); } //已经下架 if (locationLotDetail.StorageBin == null) { throw new BusinessErrorException("Warehouse.PickUp.Error.IsAlreadyPickUp", resolver.Input); } TransformerDetail transformerDetail = TransformerHelper.ConvertLocationLotDetailToTransformerDetail(locationLotDetail, false); resolver.AddTransformerDetail(transformerDetail); //transformerDetail.CurrentQty = transformerDetail.Qty; //int maxSeq = setDetailMgr.FindMaxSeq(resolver.Transformers); //transformerDetail.Sequence = maxSeq + 1; //resolver.Transformers[0].TransformerDetails.Add(transformerDetail); //resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMERDETAIL; }
public void ThenTheOfShouldBe(string field, string objectKey, string expectedValueKey) { var expectedValue = m_scenarioContext.Get <object>(expectedValueKey); object actualValue = TransformerHelper.GetActualValue(m_scenarioContext, field, objectKey); AssertionHelper.AssertStrings(actualValue.ToString(), expectedValue.ToString()); }
private Resolver ShipOrder(Resolver resolver) { InProcessLocation inProcessLocation = null; if (resolver.CodePrefix == BusinessConstants.CODE_PREFIX_PICKLIST) { inProcessLocation = orderMgr.ShipOrder(resolver.Code, resolver.UserCode); } else { IList <InProcessLocationDetail> inProcessLocationDetailList = orderMgr.ConvertTransformerToInProcessLocationDetail(resolver.Transformers); if (inProcessLocationDetailList.Count > 0) { inProcessLocation = orderMgr.ShipOrder(inProcessLocationDetailList, resolver.UserCode); } else { throw new BusinessErrorException("OrderDetail.Error.OrderDetailShipEmpty"); } } #region 打印 if (resolver.NeedPrintAsn && resolver.IsCSClient) { resolver.PrintUrl = PrintASN(inProcessLocation); } #endregion resolver.Transformers = TransformerHelper.ConvertInProcessLocationDetailsToTransformers(inProcessLocation.InProcessLocationDetails); resolver.Result = languageMgr.TranslateMessage("Common.Business.ASNIs", resolver.UserCode, inProcessLocation.IpNo); resolver.Code = inProcessLocation.IpNo; resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMER; return(resolver); }
protected override void SetDetail(Resolver resolver) { Hu hu = huMgr.CheckAndLoadHu(resolver.Input); if (this.locationMgr.IsHuOcuppyByPickList(resolver.Input)) { throw new BusinessErrorException("Order.Error.PickUp.HuOcuppied", resolver.Input); } if (resolver.BinCode == string.Empty || resolver.BinCode == null) { throw new BusinessErrorException("Warehouse.PutAway.PlzScanBin"); } if (hu.StorageBin != null && hu.StorageBin.Trim() != string.Empty && hu.StorageBin == resolver.BinCode) { throw new BusinessErrorException("Warehouse.PutAway.AlreadyInThisBin"); } //校验Bin StorageBin bin = storageBinMgr.CheckAndLoadStorageBin(resolver.BinCode); LocationLotDetail locationLotDetail = locationLotDetailMgr.CheckLoadHuLocationLotDetail(resolver.Input, string.Empty, bin.Area.Location.Code); locationLotDetail.NewStorageBin = bin; TransformerDetail transformerDetail = TransformerHelper.ConvertLocationLotDetailToTransformerDetail(locationLotDetail, true); resolver.AddTransformerDetail(transformerDetail); }
protected override void GetDetail(Resolver resolver) { PickList pickList = pickListMgr.LoadPickList(resolver.Input, true, true); resolver.Transformers = TransformerHelper.ConvertPickListDetailsToTransformers(pickList.PickListDetails); resolver.Result = languageMgr.TranslateMessage("Common.Business.PickList", resolver.UserCode) + ":" + resolver.Code; resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMER; }
public void InitPageParameter(InProcessLocation ip) { bool isScanHu = (ip.InProcessLocationDetails[0].HuId != null); List <Transformer> transformerList = TransformerHelper.ConvertInProcessLocationDetailsToTransformers(ip.InProcessLocationDetails); this.ucTransformer.InitPageParameter(transformerList, this.ModuleType, BusinessConstants.TRANSFORMER_MODULE_TYPE_SHIPVIEW, isScanHu); this.ucTransformer.InitialUIForAsn(ip); }
protected override void SetDetail(Resolver resolver) { InspectOrderDetail inspectOrderDetail = inspectOrderDetailMgr.CheckAndGetInspectOrderDetail(resolver.Input); TransformerDetail transformerDetail = TransformerHelper.ConvertInspectDetailToTransformerDetail(inspectOrderDetail); resolver.AddTransformerDetail(transformerDetail); resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMERDETAIL; }
protected override void GetDetail(Resolver resolver) { InspectOrder inspectOrder = inspectOrderMgr.LoadInspectOrder(resolver.Code, true); resolver.Transformers = TransformerHelper.ConvertInspectDetailToTransformer(inspectOrder.InspectOrderDetails); resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMER; resolver.Result = languageMgr.TranslateMessage("MasterData.Inventory.CurrentInspectOrder", resolver.UserCode, resolver.Code); }
public void ThenTheModifiedOfShouldBeModified(string field, string objectKey, string expectedValueKey) { var expectedValue = m_scenarioContext.Get <object>(expectedValueKey); object actualValue = TransformerHelper.GetActualValue(m_scenarioContext, field, objectKey); string expectedValueFixed = Regex.Replace(expectedValue.ToString(), @"\s+", string.Empty); string actualValueFixed = Regex.Replace(actualValue.ToString(), @"\s+", string.Empty); AssertionHelper.AssertStrings(actualValueFixed, expectedValueFixed); }
private Transformer ConvertCycleCountDetailToTransformer(CycleCountDetail cycleCountDetail) { Transformer transformer = TransformerHelper.ConvertItemToTransformer(cycleCountDetail.Item); transformer.Id = cycleCountDetail.Id; transformer.OrderNo = cycleCountDetail.CycleCount.Code; transformer.Qty = cycleCountDetail.Qty; return(transformer); }
/// <summary> /// 分步取消 /// </summary> /// <param name="resolver"></param> public void CancelOperation(Resolver resolver) { if (TotalCurrentQty(resolver) == 0) { resolver.Transformers = null; resolver.BinCode = null; resolver.Code = null; resolver.CodePrefix = null; resolver.Description = null; resolver.OrderType = null; resolver.PickBy = null; resolver.BarcodeHead = null; resolver.LocationCode = null; resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMER; resolver.Result = string.Empty;//languageMgr.TranslateMessage("Resolver.Cancel.BinAllCancel", resolver.UserCode); return; } if (setDetailMgr.FindMaxSeq(resolver.Transformers) >= 0) { //最后一条记录的当前数设置CurrentQty为0 设置序号Sequence为0 //为了兼容带条码发货 int[] indexArray = this.FindMaxSeqTransformerDetailRowAndColumnIndex(resolver.Transformers); //resolver.Transformers[indexArray[0]].TransformerDetails[indexArray[1]] = null; if (resolver.CodePrefix == BusinessConstants.BARCODE_HEAD_FLOW) { resolver.Transformers[indexArray[0]].Qty -= resolver.Transformers[indexArray[0]].TransformerDetails[indexArray[1]].Qty; } resolver.Transformers[indexArray[0]].TransformerDetails[indexArray[1]].CurrentQty = 0; resolver.Transformers[indexArray[0]].TransformerDetails[indexArray[1]].Sequence = -1; //设置Bin为最后一库格 indexArray = this.FindMaxSeqTransformerDetailRowAndColumnIndex(resolver.Transformers); if (indexArray != null) { resolver.BinCode = resolver.Transformers[indexArray[0]].TransformerDetails[indexArray[1]].StorageBinCode; } } TransformerHelper.ProcessTransformer(resolver.Transformers); if (resolver.ModuleType == BusinessConstants.TRANSFORMER_MODULE_TYPE_PUTAWAY || resolver.ModuleType == BusinessConstants.TRANSFORMER_MODULE_TYPE_PICKUP || (IsHasTransformerDetail(resolver) && resolver.ModuleType != BusinessConstants.TRANSFORMER_MODULE_TYPE_PICKLIST)) { resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMERDETAIL; if (resolver.BinCode != null && resolver.BinCode != string.Empty) { resolver.Result = languageMgr.TranslateMessage("Warehouse.CurrentBinCode", resolver.UserCode, resolver.BinCode); } } else { resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMER; } resolver.BarcodeHead = string.Empty; }
/// <summary> /// 仅校验投料的物料号,库位是否一致,不校验单位单包装等信息 /// todo:不允许投入的又有数量又有Hu //可以前台控制 /// </summary> /// <param name="resolver"></param> protected override void SetDetail(Resolver resolver) { if (resolver.CodePrefix == string.Empty) { throw new BusinessErrorException("Common.Business.Error.ScanProductLineFirst"); } LocationLotDetail locationLotDetail = locationLotDetailMgr.CheckLoadHuLocationLotDetail(resolver.Input, resolver.UserCode); TransformerDetail transformerDetail = TransformerHelper.ConvertLocationLotDetailToTransformerDetail(locationLotDetail, false); var query = resolver.Transformers.Where (t => (t.ItemCode == transformerDetail.ItemCode && t.LocationCode == transformerDetail.LocationCode)); if (query.Count() < 1) { throw new BusinessErrorException("Warehouse.HuMatch.NotMatch", transformerDetail.HuId); } #region 先进先出校验 Flow flow = flowMgr.CheckAndLoadFlow(resolver.Code); if (flow.IsGoodsReceiveFIFO) { Hu hu = huMgr.CheckAndLoadHu(resolver.Input); IList <string> huIdList = new List <string>(); if (resolver.Transformers != null && resolver.Transformers.Count > 0) { foreach (Transformer transformer in resolver.Transformers) { if (transformer.TransformerDetails != null && transformer.TransformerDetails.Count > 0) { foreach (TransformerDetail det in transformer.TransformerDetails) { if (det.CurrentQty != decimal.Zero) { huIdList.Add(det.HuId); } } } } } string maxLot = setDetailMgr.CheckFIFO(hu, huIdList); if (maxLot != string.Empty && maxLot != null) { throw new BusinessErrorException("FIFO.ERROR", hu.HuId, maxLot); } } #endregion resolver.AddTransformerDetail(transformerDetail); }
protected override void GetDetail(Resolver resolver) { InProcessLocation inProcessLocation = null; //订单发货 if (resolver.CodePrefix == BusinessConstants.CODE_PREFIX_ORDER) { if (resolver.Transformers != null && resolver.Transformers.Count > 0) { foreach (Transformer transformer in resolver.Transformers) { if (resolver.Input.Trim().ToUpper() == transformer.OrderNo.Trim().ToUpper()) { throw new BusinessErrorException("Common.Business.Error.ReScan", resolver.Code); } } //校验订单配置选项 this.CheckOrderConfigValid(resolver.Input, resolver.Transformers[0].OrderNo); } else { resolver.Transformers = new List <Transformer>(); } inProcessLocation = orderMgr.ConvertOrderToInProcessLocation(resolver.Input); if (inProcessLocation == null || inProcessLocation.InProcessLocationDetails == null || inProcessLocation.InProcessLocationDetails.Count == 0) { throw new BusinessErrorException("Common.Business.Error.NoDetailToShip"); } if (resolver.IsScanHu && resolver.CodePrefix != BusinessConstants.CODE_PREFIX_PICKLIST) { OrderHelper.ClearShippedQty(inProcessLocation);//清空发货数 } List <Transformer> newTransformerList = TransformerHelper.ConvertInProcessLocationDetailsToTransformers(inProcessLocation.InProcessLocationDetails); resolver.Transformers = resolver.Transformers == null ? new List <Transformer>() : resolver.Transformers; resolver.Transformers.AddRange(newTransformerList); } //拣货单发货 else if (resolver.CodePrefix == BusinessConstants.CODE_PREFIX_PICKLIST) { //inProcessLocation = orderMgr.ConvertPickListToInProcessLocation(resolver.Input); IList <PickListResult> pickListResultList = pickListResultMgr.GetPickListResult(resolver.Input); resolver.Transformers = Utility.TransformerHelper.ConvertPickListResultToTransformer(pickListResultList); } resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMER; }
public void FillDetailByFlow(Resolver resolver, Flow flow) { foreach (FlowDetail flowDetail in flow.FlowDetails) { flowDetail.LocationFrom = flowDetail.LocationFrom == null ? flow.LocationFrom : flowDetail.LocationFrom; flowDetail.LocationTo = flowDetail.LocationTo == null ? flow.LocationTo : flowDetail.LocationTo; //if (resolver.ModuleType == BusinessConstants.TRANSFORMER_MODULE_TYPE_RECEIVERETURN // || resolver.ModuleType == BusinessConstants.TRANSFORMER_MODULE_TYPE_SHIPRETURN) //{ // Location tempLocation = flowDetail.LocationFrom; // flowDetail.LocationFrom = flowDetail.LocationTo; // flowDetail.LocationTo = tempLocation; //} } resolver.Transformers = TransformerHelper.ConvertFlowDetailsToTransformers(flow.FlowDetails); //resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMER; }
private static object GetValue <T>(string field, string value, Type function, Type valueType, T target, bool required) { object v = null; if (function != null) { v = TransformerHelper.Transform(function, value); } else { v = ReflectionUtils.ConvertFromString(valueType, value); } if (v == null && required) { throw AnnotationProcessorException.Throw(target.GetType(), field); } return(v); }
public Resolver ReceiveOrder(Resolver resolver) { ReceiptDetail recDet = new ReceiptDetail(); IList <ReceiptDetail> receiptDetailList = orderMgr.ConvertTransformerToReceiptDetail(resolver.Transformers); InProcessLocation ip = null; if (resolver.CodePrefix == BusinessConstants.CODE_PREFIX_ASN) { ip = inProcessLocationMgr.LoadInProcessLocation(resolver.Code); } Receipt receipt = orderMgr.ReceiveOrder(receiptDetailList, resolver.UserCode, ip, resolver.ExternalOrderNo); resolver.Transformers = TransformerHelper.ConvertReceiptToTransformer(receipt.ReceiptDetails); resolver.Code = receipt.ReceiptNo; resolver.BinCode = string.Empty; resolver.Result = languageMgr.TranslateMessage("Common.Business.RecNoIs", resolver.UserCode, receipt.ReceiptNo); resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMER; return(resolver); }
protected override void GetDetail(Resolver resolver) { InProcessLocation inProcessLocation = null; //订单收货 if (resolver.CodePrefix == BusinessConstants.CODE_PREFIX_ORDER) { inProcessLocation = orderMgr.ConvertOrderToInProcessLocation(resolver.Input); } //ASN收货 else if (resolver.CodePrefix == BusinessConstants.CODE_PREFIX_ASN) { inProcessLocation = inProcessLocationMgr.LoadInProcessLocation(resolver.Code, true); } if (inProcessLocation == null || inProcessLocation.InProcessLocationDetails == null || inProcessLocation.InProcessLocationDetails.Count == 0) { throw new BusinessErrorException("Common.Business.Error.NoDetailToReceive"); } List <Transformer> newTransformerList = TransformerHelper.ConvertInProcessLocationDetailsToTransformers(inProcessLocation.InProcessLocationDetails); if (resolver.IsScanHu) { ClearReceivedQty(newTransformerList); } resolver.Transformers = resolver.Transformers == null ? new List <Transformer>() : resolver.Transformers; resolver.Transformers.AddRange(newTransformerList); resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMER; if (resolver.Transformers != null && resolver.Transformers.Count > 0) { foreach (Transformer transformer in resolver.Transformers) { OrderLocationTransaction outOrderLocationTransaction = this.orderLocationTransactionMgr.LoadOrderLocationTransaction(transformer.OrderLocTransId); OrderLocationTransaction inOrderLocationTransaction = orderLocationTransactionMgr.GetOrderLocationTransaction(outOrderLocationTransaction.OrderDetail.Id, BusinessConstants.IO_TYPE_IN)[0]; transformer.OrderLocTransId = inOrderLocationTransaction.Id; } } }
protected override void SetDetail(Resolver resolver) { if (resolver.CodePrefix == string.Empty) { throw new BusinessErrorException("Common.Business.Error.ScanFlowFirst"); } if (resolver.ModuleType == BusinessConstants.TRANSFORMER_MODULE_TYPE_PRODUCTIONRECEIVE) { LocationLotDetail locationLotDetail = locationLotDetailMgr.CheckLoadHuLocationLotDetail(resolver.Input, resolver.UserCode); TransformerDetail newTransformerDetail = TransformerHelper.ConvertLocationLotDetailToTransformerDetail(locationLotDetail, false); resolver.AddTransformerDetail(newTransformerDetail); } else { setDetailMgr.MatchReceive(resolver); if (resolver.BinCode != null && resolver.BinCode != string.Empty) { resolver.Result = languageMgr.TranslateMessage("Warehouse.CurrentBinCode", resolver.UserCode, resolver.BinCode); } } }
//todo, move to service private void ItemInput(string itemCode) { var query = this.CacheResolver.Transformers.Where(t => t.ItemCode == itemCode && t.TransformerDetails == null).Count(); if (query > 0) { throw new BusinessErrorException("Common.Business.Error.EntityExist", itemCode); } Item item = TheItemMgr.CheckAndLoadItem(itemCode); Transformer transformer = TransformerHelper.ConvertItemToTransformer(item); if (CacheResolver.Transformers == null) { CacheResolver.Transformers = new List <Transformer>(); } CacheResolver.Transformers.Add(transformer); this.ucItemList.ItemInputCallBack(this.CacheResolver.Transformers); this.ucItemList.BindList(this.CacheResolver.Transformers, false); }
private List <Transformer> ConvertReceiptToTransformer(IList <ReceiptDetail> receiptDetails) { var query = from r in receiptDetails group r by r.OrderLocationTransaction into g select new { g.Key, Qty = g.Sum(r => r.ShippedQty), CurrentQty = g.Sum(r => r.ReceivedQty), Details = g.Where(r => r.OrderLocationTransaction == g.Key) }; List <Transformer> transformers = new List <Transformer>(); foreach (var item in query) { Transformer transformer = TransformerHelper.ConvertOrderLocationTransactionToTransformer(item.Key); transformer.Qty = transformer.OrderedQty; // transformer.Qty = item.Qty.HasValue ? item.Qty.Value : 0; transformer.CurrentQty = item.CurrentQty.HasValue ? item.CurrentQty.Value : 0; transformer.TransformerDetails = TransformerHelper.ConvertReceiptsToTransformerDetails(new List <ReceiptDetail>(item.Details)); transformers.Add(transformer); } return(transformers); }
public void InitPageParameter(Receipt receipt) { this.TransformerDetailList = TransformerHelper.ConvertReceiptsToTransformerDetails(receipt.ReceiptDetails); this.GV_List.DataSource = this.TransformerDetailList; this.GV_List.DataBind(); }
protected override void SetDetail(Resolver resolver) { #region Hu状态查询 if (resolver.ModuleType == BusinessConstants.TRANSFORMER_MODULE_TYPE_HUSTATUS) { Hu hu = null; //检查库存 LocationLotDetail locationLotDetail = locationLotDetailMgr.LoadHuLocationLotDetail(resolver.Input); if (locationLotDetail == null)//库存中没有,检查HuDet { hu = huMgr.CheckAndLoadHu(resolver.Input); //修正状态 if (hu.Status == BusinessConstants.CODE_MASTER_HU_STATUS_VALUE_INVENTORY) { hu.Status = "ERROR"; } } else { hu = locationLotDetail.Hu; //修正库位 数量 hu.Location = locationLotDetail.Location.Code; hu.Qty = locationLotDetail.Qty / hu.UnitQty; if (hu.Status == BusinessConstants.CODE_MASTER_HU_STATUS_VALUE_INVENTORY) { if (this.locationMgr.IsHuOcuppyByPickList(resolver.Input)) { hu.Status += languageMgr.TranslateMessage("MasterDate.PickList.Ocuppied", resolver.UserCode); } } } TransformerDetail transformerDetail = TransformerHelper.ConvertHuToTransformerDetail(hu); if (locationLotDetail != null && locationLotDetail.StorageBin != null) { transformerDetail.StorageBinCode = locationLotDetail.StorageBin.Code; } resolver.Transformers = null; resolver.AddTransformerDetail(transformerDetail); } #endregion #region 盘点 else { if (resolver.WorkingHours == null || resolver.WorkingHours.Count != 2) { //出错 throw new BusinessErrorException("CycCnt.Error.ScanCycCountFirst"); } if (resolver.LocationCode == null || resolver.LocationCode == string.Empty) { throw new BusinessErrorException("CycCnt.Error.HasNoLocation"); } //如果指定了库格或启用了高级仓库管理,需要先扫描库格. //if ((resolver.BinCode == null || resolver.BinCode == string.Empty) // && (resolver.WorkingHours[1].Length > 0 || resolver.IsPickFromBin)) //{ // throw new BusinessErrorException("CycCnt.Error.ScanStorageBinFirst"); //} //检查当月盘点重复扫描 this.cycleCountMgr.CheckHuExistThisCount(resolver.Input); Hu hu = huMgr.CheckAndLoadHu(resolver.Input); if (hu.Status == BusinessConstants.CODE_MASTER_HU_STATUS_VALUE_CLOSE) { throw new BusinessErrorException("CycCnt.Error.HuStatusError", hu.Status); } if (resolver.WorkingHours[0].Length > 0 && !resolver.WorkingHours[0].Contains(hu.Item.Code)) { if (resolver.WorkingHours[0].Length > 0) { throw new BusinessErrorException("CycCnt.Error.NotContainTheItem"); } else { //nothing todo } } TransformerDetail transformerDetail = Utility.TransformerHelper.ConvertHuToTransformerDetail(hu); transformerDetail.StorageBinCode = resolver.BinCode; resolver.AddTransformerDetail(transformerDetail); } #endregion }