/// <summary> /// 撤销条码状态 /// </summary> /// <param name="barcode"></param> /// <param name="loginUser"></param> /// <returns></returns> public bool UndoBarcodeStatus(string barcode, string loginUser) { List <BarcodeStatusInfo> barcodeStatusInfos = new BarcodeStatusDAL().GetListByPage("[BARCODE_DATA] = N'" + barcode + "'", "[ID] desc", 1, 2); if (barcodeStatusInfos.Count == 0) { throw new Exception("MC:0x00000276");///标签信息错误 } if (barcodeStatusInfos.Count == 1) { throw new Exception("MC:0x00000276");///标签信息错误 } ///获取上一个条码状态 BarcodeStatusInfo barcodeStatusInfo = barcodeStatusInfos[1]; string sql = BarcodeDAL.GetBarcodeUpdateSql(barcodeStatusInfo.BarcodeStatus.GetValueOrDefault() , barcodeStatusInfo.WmNo , barcodeStatusInfo.ZoneNo , barcodeStatusInfo.Dloc , barcodeStatusInfo.AsnRunsheetNo , barcodeStatusInfo.BarcodeFid.GetValueOrDefault() , loginUser); if (!CommonDAL.ExecuteNonQueryBySql(sql)) { throw new Exception("MC:0x00000276");///标签信息错误 } return(true); }
/// <summary> /// /// </summary> /// <param name="barcodeInfos"></param> /// <param name="loginUser"></param> /// <returns></returns> public bool CancelBarcodes(List <BarcodeInfo> barcodeInfos, string loginUser) { List <BarcodeStatusInfo> barcodeStatusInfos = new BarcodeStatusDAL().GetList("[BARCODE_DATA] in ('" + string.Join(",", barcodeInfos.Select(d => d.BarcodeData).ToArray()) + "')", string.Empty); string sql = string.Empty; foreach (var barcodeInfo in barcodeInfos) { if (barcodeInfo.BarcodeStatus.GetValueOrDefault() == (int)BarcodeStatusConstants.Created) { continue; } if (barcodeInfo.BarcodeStatus.GetValueOrDefault() == (int)BarcodeStatusConstants.Invalid) { throw new Exception("MC:0x00000277");///标签已作废 } if (barcodeInfo.BarcodeStatus.GetValueOrDefault() == (int)BarcodeStatusConstants.Frozen) { throw new Exception("MC:0x00000361");///标签已冻结 } if (barcodeInfo.BarcodeStatus.GetValueOrDefault() == (int)BarcodeStatusConstants.Inbound) { throw new Exception("MC:0x00000362");///标签已入库 } if (barcodeInfo.BarcodeStatus.GetValueOrDefault() == (int)BarcodeStatusConstants.Outbound) { throw new Exception("MC:0x00000364");///标签已出库 } if (barcodeInfo.BarcodeStatus.GetValueOrDefault() == (int)BarcodeStatusConstants.Shiped) { throw new Exception("MC:0x00000365");///标签已发货 } List <BarcodeStatusInfo> barcodeStatuses = barcodeStatusInfos.Where(d => d.BarcodeFid.GetValueOrDefault() == barcodeInfo.Fid.GetValueOrDefault()).OrderByDescending(d => d.Id).ToList(); if (barcodeStatuses.Count == 0) { throw new Exception("MC:0x00000276");///标签信息错误 } if (barcodeStatuses.Count == 1) { throw new Exception("MC:0x00000276");///标签信息错误 } ///获取上一个条码状态 BarcodeStatusInfo barcodeStatusInfo = barcodeStatuses.FirstOrDefault(); sql += BarcodeDAL.GetBarcodeUpdateSql(barcodeStatusInfo.BarcodeStatus.GetValueOrDefault() , barcodeStatusInfo.WmNo , barcodeStatusInfo.ZoneNo , barcodeStatusInfo.Dloc , barcodeStatusInfo.AsnRunsheetNo , barcodeStatusInfo.BarcodeFid.GetValueOrDefault() , loginUser); } ///执行 using (TransactionScope trans = new TransactionScope()) { if (!string.IsNullOrEmpty(sql)) { CommonDAL.ExecuteNonQueryBySql(sql); } trans.Complete(); } return(true); }