Exemplo n.º 1
0
 /// <summary>
 /// 作废一条票据
 /// </summary>
 /// <param name="bill">作废的票据</param>
 /// <param name="maker">做废人</param>
 /// <param name="makeDate">作废日期</param>
 /// <param name="remark">备注</param>
 public void BlankOutBill(Bills bill, string remark)
 {
     if (!bill.Actived)
     {
         throw new ApplicationException(string.Format("票据{0}已经被作废,不能重复被作废。", bill.ID));
     }
     if (bill.IsCancelOut)
     {
         throw new ApplicationException(string.Format("票据{0}已被冲销,不能作废。", bill.ID));
     }
     if (bill.IsRedBill)
     {
         throw new ApplicationException(string.Format("票据{0}是冲销票,不能作废。", bill.ID));
     }
     using (IDbConnection conn = DAOFactory.Instance.OpenConnection())
     {
         IDbTransaction trans = conn.BeginTransaction();
         try
         {
             //1、更新票据状态
             bill.Actived = false;
             bill.Remark += remark;
             IBillsDAO billDao = DAOFactory.Instance.CreateBillsDAO();
             billDao.UpdateBill(bill, conn, trans);
             //2、更改库存数据
             IStockDAO stockDao = DAOFactory.Instance.CreateStockDAO();
             foreach (BillsItem item in bill.Items)
             {
                 Stock stock = stockDao.SelectStockByDrugsAndStorehouse(item.Drugs.ID, bill.Storehouse.ID, conn, trans);
                 if (bill.BillsType.IsOut)
                 {
                     stock.Count += item.Count;
                 }
                 else
                 {
                     stock.Count -= item.Count;
                 }
                 stockDao.UpdateStock(stock, conn, trans);
             }
             //3、记录票据作废事件日志
             LogServices.Info("作废票据" + bill.ID);
             //4、提交
             trans.Commit();
         }
         catch (Exception ex)
         {
             //5、回滚
             bill.Actived = true;
             trans.Rollback();
             throw ex;
         }
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// 记录DEBUG日志
 /// </summary>
 /// <param name="message"></param>
 public static void Debug(string message)
 {
     LogServices.WriteLog(message, "DEBUG");
 }
Exemplo n.º 3
0
 /// <summary>
 /// 记录操作日志
 /// </summary>
 /// <param name="message"></param>
 public static void Info(string message)
 {
     LogServices.WriteLog(message, "操作!!");
 }
Exemplo n.º 4
0
 /// <summary>
 /// 记录错误日志
 /// </summary>
 /// <param name="message"></param>
 public static void Error(string message)
 {
     LogServices.WriteLog(message, "错误!!");
 }