/// <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; } } }
/// <summary> /// 记录DEBUG日志 /// </summary> /// <param name="message"></param> public static void Debug(string message) { LogServices.WriteLog(message, "DEBUG"); }
/// <summary> /// 记录操作日志 /// </summary> /// <param name="message"></param> public static void Info(string message) { LogServices.WriteLog(message, "操作!!"); }
/// <summary> /// 记录错误日志 /// </summary> /// <param name="message"></param> public static void Error(string message) { LogServices.WriteLog(message, "错误!!"); }