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