예제 #1
0
        public CompanyInfo SaveCompany(CompanyInfo companyInfo)
        {
            using (EntityContext context = Session.CreateContext())
            {
                try
                {
                    context.BeginTransaction();

                    if (companyInfo.CompanyId > 0)
                    {
                        context.Save <CompanyInfo>("hr.company.updateCompany", companyInfo);
                    }
                    else
                    {
                        context.Save <CompanyInfo>("hr.company.insertCompany", companyInfo);
                        CompanyAccountInfo account = new CompanyAccountInfo()
                        {
                            CompanyId = companyInfo.CompanyId
                        };
                        context.Save <CompanyAccountInfo>("hr.company.insertAccount", account);
                    }

                    context.Commit();
                }
                catch (Exception ex)
                {
                    ex = null;
                    context.Rollback();
                    companyInfo = null;
                }
            }
            return(companyInfo);
        }
예제 #2
0
        public bool SaveRecharge(CompanyAccountRecordInfo accountRecordInfo)
        {
            bool pass = true;

            accountRecordInfo.CreateTime = DateTime.Now;

            using (EntityContext context = Session.CreateContext())
            {
                try
                {
                    context.BeginTransaction();
                    CompanyAccountInfo accountInfo = new CompanyAccountInfo()
                    {
                        CompanyId      = accountRecordInfo.CompanyId,
                        AccountId      = accountRecordInfo.AccountId,
                        AccountBalance = accountRecordInfo.AccountBalance + accountRecordInfo.Money
                    };
                    context.Save <CompanyAccountInfo>("hr.company.updateCompanyAccount", accountInfo);
                    context.Save <CompanyAccountRecordInfo>("hr.company.insertCompanyAccountDetail", accountRecordInfo);
                    context.Commit();
                }
                catch
                {
                    context.Rollback();
                    pass = false;
                }
            }
            return(pass);
        }
예제 #3
0
        public bool CancelPayment(int paymentId, out string message)
        {
            Payment payment = LoadPayment(paymentId);

            payment.Status = 0;

            using (EntityContext context = Session.CreateContext())
            {
                try
                {
                    CompanyInfo companyInfo = context.Selete <CompanyInfo>("hr.company.findCompanyById", payment.CompanyId);

                    CompanyAccountRecordInfo accountRecordInfo = new CompanyAccountRecordInfo();
                    accountRecordInfo.CompanyId      = payment.CompanyId;
                    accountRecordInfo.AccountId      = companyInfo.AccountId;
                    accountRecordInfo.AccountBalance = companyInfo.AccountBalance;
                    accountRecordInfo.Money          = payment.Total * -1;
                    accountRecordInfo.CreateTime     = DateTime.Now;

                    context.BeginTransaction();
                    CompanyAccountInfo accountInfo = new CompanyAccountInfo()
                    {
                        CompanyId      = accountRecordInfo.CompanyId,
                        AccountId      = accountRecordInfo.AccountId,
                        AccountBalance = accountRecordInfo.AccountBalance - accountRecordInfo.Money
                    };
                    context.Save <CompanyAccountInfo>("hr.company.updateCompanyAccount", accountInfo);
                    context.Save <CompanyAccountRecordInfo>("hr.company.insertCompanyAccountDetail", accountRecordInfo);
                    context.Save <Payment>("hr.payment.submitPayment", payment);
                    context.Commit();

                    message = string.Format("本次从单位账户返还{0}元,账户余额{1}元。", payment.Total, accountInfo.AccountBalance);

                    return(true);
                }
                catch (Exception e)
                {
                    message = e.Message;
                    context.Rollback();
                    return(false);
                }
            }
        }
예제 #4
0
 public bool SavePayDetail(List <PayDetailInfo> list, int cmpid, string tname, string time, string count, int status, ref string msg)
 {
     using (EntityContext context = BlueFramework.Blood.Session.CreateContext())
     {
         try
         {
             context.BeginTransaction();
             Models.TemplateInfo temp = context.Selete <Models.TemplateInfo>("hr.template.findTemplateIdByCompanyId", cmpid);
             Payment             pl   = new Payment();
             pl.CompanyId  = cmpid;
             pl.TemplateId = temp.TemplateId;
             pl.PayTitle   = tname;
             pl.PayMonth   = time;
             pl.CreatorId  = UserContext.CurrentUser.UserId;
             pl.CreateTime = DateTime.Now;
             pl.Status     = status;
             if (status == 0)//新建发放表重复校验
             {
                 Payment payinfo = context.SelectListByTemplate <Payment>("hr.pay.findPay", pl)[0];
                 if (payinfo.PayId != 0)
                 {
                     msg += "该公司该月份已创建发放表!<br />";
                     context.Rollback();
                     return(false);
                 }
                 context.Save <Payment>("hr.pay.insertPayTable", pl);
             }
             Dictionary <string, int> dic = GetIdConfigDic();
             foreach (PayDetailInfo info in list)
             {
                 foreach (System.Reflection.PropertyInfo p in info.GetType().GetProperties())
                 {
                     if (dic.ContainsKey(p.Name))
                     {
                         PayValueInfo pvi = new PayValueInfo();
                         pvi.PayId    = pl.PayId;
                         pvi.ItemId   = dic[p.Name];
                         pvi.PersonId = info.PersonId;
                         pvi.PayValue = decimal.Parse(p.GetValue(info).ToString());
                         context.Save <PayValueInfo>("hr.pay.insertPayTableDetail", pvi);
                     }
                 }
             }
             if (status == 2)//归档
             {
                 CompanyAccountInfo cai = new CompanyAccountInfo();
                 cai.AccountBalance = decimal.Parse(count);
                 cai.CompanyId      = cmpid;
                 context.Save <CompanyAccountInfo>("hr.company.updateCompanyBalance", cai);
             }
             context.Commit();
             return(true);
         }
         catch (Exception ex)
         {
             msg += "服务器内部错误,请联系管理员!<br />";
             context.Rollback();
             return(false);
         }
     }
 }