using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using dccdc.Models; using Dapper; namespace dccdc.DAL { public class JmsqDal { /// /// 减免申请操作 /// /// public bool Add(JmsqModel model, List al) { using (IDbConnection conn = CommHelper.GetSqlConnection()) { string sql = @"INSERT INTO [dbo].[jmsq] ([ymdjid] ,[xm] ,[sqrid] ,[sqrxm] ,[sqsj] ,[lx] ,[shsj] ,[shrid],jmlx) VALUES (@ymdjid ,@xm ,@sqrid ,@sqrxm ,@sqsj ,@lx ,@shsj ,@shrid,@jmlx) SELECT SCOPE_IDENTITY()"; int id = conn.ExecuteScalar(sql, model); List al1 = new List(); foreach (JmmxModel m in al) { m.jmsqid = id; al1.Add(m); } string sql1 = @"INSERT INTO [dbo].[jmmx] ([jmsqid] ,[sfxmid] ,[jmsl] ,[jmdj],detailid) VALUES (@jmsqid ,@sfxmid ,@jmsl ,@jmdj,@detailid)"; int type = conn.Execute(sql1, al1); return type != 0; } } public object delJMSQ(int id, ERPUser user) { //throw new NotImplementedException(); string sql = "select * from jmsq where id=@id"; using (var conn = CommHelper.GetSqlConnection()) { var jmsq = conn.Query(sql, new { id }).FirstOrDefault(); if (jmsq == null) { return new { State = 0, Message = "没有你要删除的数据!" }; } if (jmsq.sqrid != user.ID) { return new { State = 0, Message = "不能删除非自己的申请!" }; } if (jmsq.lx != 0) { return new { State = 0, Message = "不能删除已经审核的数据!" }; } sql = "delete from jmsq where id=@id"; int c = conn.Execute(sql, new { id }); if (c != 0) { return new { State = 1, Message = "删除成功!" }; } else { return new { State = 0, Message = "没有要删除的数据!" }; } } } /// /// 获取申请列表 /// /// /// /// /// public List GetJmsqList(string lx, string jmlx, string xm, string sqsjb, string sqsje) { StringBuilder u = new StringBuilder("select a.*,b.chargeid from jmsq a join YMDJ b on a.ymdjid=b.id where 1=1"); if (jmlx != "-1") { u.Append(" and a.jmlx=@jmlx"); } if (!string.IsNullOrEmpty(lx)) { u.Append(" and a.lx=@lx"); } if (!string.IsNullOrEmpty(xm)) { u.Append(" and a.xm like @xm"); } if (!string.IsNullOrEmpty(sqsjb)) { u.Append(" and a.sqsj >'" + sqsjb + "'"); } if (!string.IsNullOrEmpty(sqsje)) { u.Append(" and a.sqsj <'" + sqsje + "'"); } u.Append(" order by a.sqsj desc"); using (IDbConnection conn = CommHelper.GetSqlConnection()) { return conn.Query(u.ToString(), new { lx, jmlx, xm = "%" + xm + "%" }).ToList(); } } public List GetJmsqList2(string xm, string shrid) { StringBuilder u = new StringBuilder("select a.*,b.chargeid from jmsq a join YMDJ b on a.ymdjid=b.id where 1=1"); if (!string.IsNullOrEmpty(xm)) { u.Append(" and a.xm like @xm"); } if (!string.IsNullOrEmpty(shrid)) { u.Append(" and a.shrid = @shrid"); } u.Append(" order by a.sqsj desc"); using (IDbConnection conn = CommHelper.GetSqlConnection()) { return conn.Query(u.ToString(), new { xm = "%" + xm + "%", shrid = shrid }).ToList(); } } public DataTable expJMJL(string lx, string jmlx, string xm, string sqsjb, string sqsje) { StringBuilder u = new StringBuilder("select * from jmsq where 1=1"); DataTable dt = new DataTable(); dt.Columns.Add("申请人"); dt.Columns.Add("申请时间"); dt.Columns.Add("审核人"); dt.Columns.Add("审核时间"); dt.Columns.Add("减免内容"); dt.Columns.Add("减免金额"); if (jmlx != "-1") { u.Append(" and jmlx=@jmlx"); } if (!string.IsNullOrEmpty(lx)) { u.Append(" and lx=@lx"); } if (!string.IsNullOrEmpty(xm)) { u.Append(" and xm like @xm"); } if (!string.IsNullOrEmpty(sqsjb)) { u.Append(" and sqsj >'" + sqsjb + "'"); } if (!string.IsNullOrEmpty(sqsje)) { u.Append(" and sqsj <'" + sqsje + "'"); } using (IDbConnection conn = CommHelper.GetSqlConnection()) { var list = conn.Query(u.ToString(), new { lx, jmlx, xm = "%" + xm + "%" }).ToList(); foreach (var v in list) { DataRow dr = dt.NewRow(); dr["申请人"] = v.sqrxm; dr["申请时间"] = v.sqsj; dr["审核人"] = v.shr; dr["审核时间"] = v.shsj; string sql = "select a.jmdj,a.jmsl,b.charge_project_name from jmmx a join charge_project_maintain b on a.sfxmid=b.id where a.jmsqid=" + v.id; var jmmxlist = conn.Query(sql).ToList(); string jmnr = ""; decimal jmje = 0; for (int i = 0; i < jmmxlist.Count; i++) { jmnr += jmmxlist[i].charge_project_name + ";"; jmje += jmmxlist[i].jmsl * jmmxlist[i].jmdj; } dr["减免内容"] = jmnr; dr["减免金额"] = jmje; dt.Rows.Add(dr); } } return dt; } /// /// 根据主键修改减免申请状态 /// /// /// 0:申请,1:通过,2:未通过 /// public Models.DTO.ymshjg Updatelx(string id, string lx, ERPUser erpUser) { using (IDbConnection conn = CommHelper.GetSqlConnection()) { string sql = @"update jmsq set lx=@lx,shsj=convert(varchar(50),getdate(),121),shrid=@shrid,shr=@shr where id=@id"; Models.DTO.ymshjg ym = new Models.DTO.ymshjg(); if (lx == "1") { string sql1 = ""; sql1 = "select * from jmsq where id=@id"; var jmsq = conn.Query(sql1, new { id = id }).FirstOrDefault(); ym.jz = jmsq.xm; sql1 = "select sum(jmsl*jmdj) from jmmx where jmsqid=@id"; decimal jmje = conn.ExecuteScalar(sql1, new { id }); sql1 = " select money from charge where id = ( select j.chargeid from jmsq q inner join YMDJ j on q.ymdjid=j.id and q.id=@id) "; decimal yjje = conn.ExecuteScalar(sql1, new { id }); ym.yj = yjje.ToString(); if (jmsq.jmlx == 1) { sql1 = @"select count(1) from jmsq q inner join YMDJ j on q.ymdjid=j.id join charge_detail c on c.chargeid=j.chargeid where q.id =@id"; int jydjc = conn.ExecuteScalar(sql1, new { id = id }); sql1 = " select count(1) from jmmx where jmsqid = @id"; int jmc = conn.ExecuteScalar(sql1, new { id = id }); if (jmc == jydjc) { sql1 = "update charge set status='免费' where id = ( select j.chargeid from jmsq q inner join YMDJ j on q.ymdjid=j.id where q.id=@id)"; conn.Execute(sql1, new { id }); sql1 = "update ymdj set jfzt='已缴费' where id=@id"; conn.Execute(sql1, new { id = jmsq.ymdjid }); ym.sj = "0"; } else { sql1 = "select * from jmmx where jmsqid=@id"; List jmmxs = conn.Query(sql1, new { id = id }).ToList(); var jehj = 0.0m; foreach (var mx in jmmxs) { sql1 = "delete from charge_detail where id=@id"; int c = conn.Execute(sql1, new { id = mx.detailid }); if (c > 0) { jehj += mx.jmdj * mx.jmsl; } } sql1 = "update charge set status='未缴费',money=money-@money where id = ( select j.chargeid from jmsq q inner join YMDJ j on q.ymdjid=j.id where q.id=@id)"; conn.Execute(sql1, new { id, money = jehj }); ym.sj = (yjje - jmje).ToString(); } } else { sql1 = "select * from jmmx where jmsqid=@id"; List jmmxs = conn.Query(sql1, new { id = id }).ToList(); var jehj = 0.0m; foreach (var mx in jmmxs) { //jehj += mx.jmdj * mx.jmsl; sql1 = "delete from charge_detail where id=@id"; int c = conn.Execute(sql1, new { id = mx.detailid }); if (c > 0) { jehj += mx.jmdj * mx.jmsl; } } sql1 = "update charge set status='未缴费',money=money-@money where id = ( select j.chargeid from jmsq q inner join YMDJ j on q.ymdjid=j.id where q.id=@id)"; conn.Execute(sql1, new { id, money = jehj }); ym.sj = (yjje - jmje).ToString(); } } else if (lx == "2") { string sql1 = "update charge set status='未缴费' where id = ( select j.chargeid from jmsq q inner join YMDJ j on q.ymdjid=j.id where q.id=@id)"; conn.Execute(sql1, new { id }); ym.jz = ""; } conn.Execute(sql, new { id, lx, shrid = erpUser.ID, shr = erpUser.TrueName }); return ym; } } } }