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); }
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); }
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); } } }
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); } } }