//添加新的 public static void AddChargeF(ChargeF tNew) { ISession session = NHibernateHelper.sessionFactory.OpenSession(); ITransaction tx = session.BeginTransaction(); try { session.Save(tNew); tx.Commit(); session.Close(); } catch (Exception e) { Debug.Assert(false, e.Message); tx.Rollback(); session.Close(); } }
//修改 public static void UpdateChargeF(ChargeF tNew) { ISession session = NHibernateHelper.OpenSession(); try { ITransaction tx = session.BeginTransaction(); ChargeF tModify = session.Get <ChargeF>(tNew.CFID); tModify.PeriodNo = tNew.PeriodNo; tModify.ChargeTotal = tNew.ChargeTotal; tModify.Abstract = tNew.Abstract; tModify.CustomerID = tNew.CustomerID; tModify.CustomerName = tNew.CustomerName; tModify.SFPerson = tNew.SFPerson; tx.Commit(); } catch (Exception e) { Debug.Assert(false, e.Message); } session.Close(); }
//更新收费,指定缴费对象,返回CFID public static int UpDateSFData(int i_CustomerID, string s_PeriodNo, string s_SFPerson) { int i_rtn = 0; //1. ISession session = NHibernateHelper.OpenSession(); ITransaction tx = session.BeginTransaction(); try { Customers tCustomer = session.Get <Customers>(i_CustomerID); ChargeF tChargeF = null; decimal d_Total = 0.0m; IQuery query = session.CreateQuery("FROM ChargeDetail WHERE PeriodNo = ? AND ( ChargeStatus = '已计费' OR ChargeStatus = '免收' OR ChargeStatus = '增加收费' ) AND WyID IN (SELECT WyID FROM WyInfos WHERE CustomerID = ?)"); query.SetParameter(0, s_PeriodNo); query.SetParameter(1, i_CustomerID); IList <ChargeDetail> eList = query.List <ChargeDetail>(); for (int j = 0; j < eList.Count; j++) { if (eList[j].CFID == null) { //没有收费单 if (j == 0) { tChargeF = new ChargeF(); tChargeF.ChargeTotal = 0.0m; tChargeF.PeriodNo = s_PeriodNo; tChargeF.ChargeStatus = "已收费"; tChargeF.CustomerID = i_CustomerID; tChargeF.CustomerName = tCustomer.CustomerName; tChargeF.SFPerson = s_SFPerson; session.Save(tChargeF); } ChargeDetail tCD = session.Get <ChargeDetail>(eList[j].CDNo); tCD.CFID = tChargeF.CFID; i_rtn = tChargeF.CFID; tCD.ChargeStatus = "已收费"; tCD.ChargeFDate = DateTime.Now; tCD.ChargeSS = tCD.ChargeYS; session.Update(tCD); } else { //已经收过费了,不需要新收费单 tChargeF = session.Get <ChargeF>(eList[j].CFID); } d_Total += eList[j].ChargeSS; } tChargeF.ChargeTotal = d_Total; session.Update(tChargeF); tx.Commit(); return(i_rtn); } catch (Exception e) { Debug.Assert(false, e.Message); tx.Rollback(); session.Close(); return(-1); } }