Exemplo n.º 1
0
 /// <summary>
 /// 检测是否存在指定的部门名称
 /// </summary>
 /// <param name="tran">当前事务</param>
 /// <param name="procName">部门名称</param>
 /// <param name="lotId">当前待报数的批量卡序号</param>
 /// <returns></returns>
 internal static bool IsMinLotId(SqlTransaction tran, string procName, string lotId)
 {
     //部门名称转大写
     procName = procName.ToUpper();
     //检测批量卡号
     if (lotId.Length < 6)
     {
         throw new Exception("提供的批量卡号不正确!");
     }
     //实例化数据适配器并获取数据
     using (var da = new t_proc_lot_card_balanceTableAdapter())
     {
         //当前数据库连接
         da.Connection = tran.Connection;
         //设置事务
         da.Transaction = tran;
         //检测当前批量卡是否已经做过文字部门
         var i = da.GetIsCompleteWenZi(procName, lotId);
         bool isCompleteWenZi = false;
         if (i.HasValue && i.Value > 0)
         {
             isCompleteWenZi = true;
         }
         //获取
         string minLotId;
         //检测是否样板
         bool isSample = lotId.ToUpper().Contains("S");
         //非样板使用生产订单和批量卡中的数据
         if (!isSample)
         {
             minLotId = da.GetMinLotIdByProcName(procName, isCompleteWenZi, lotId).ToString();
         }
         else
         {
             minLotId = da.GetMinSampleLotIdByProcName(procName, isCompleteWenZi, lotId).ToString();
         }
         //检测是否获取到数据
         if (minLotId != null && minLotId.ToString() == lotId)
         {
             //提供的是本部门结存中的最小批量卡号
             return true;
         }
         else
         {
             //提供的不是本部门结存中的最小批量卡号
             throw new Exception(
                 string.Format(
                     "当前批量卡 {0} 不是最小的批量卡号 {1}",
                     lotId,
                     minLotId
                 )
             );
         }
     }
 }