Beispiel #1
0
        //添加新的
        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();
            }
        }
Beispiel #2
0
        //修改
        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();
        }
Beispiel #3
0
        //更新收费,指定缴费对象,返回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);
            }
        }