tijian_jichuang/Code/SOH.BLL.Host/TuiFeiBLL.cs
2025-02-20 11:54:48 +08:00

188 lines
7.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EAS.Data;
using EAS.Services;
using SOH.Entities;
using EAS.Data.Access;
using EAS;
using SOH.Entities.DTO;
using SOH.Data;
using EAS.Data.Linq;
using EAS.Data.ORM;
using System.Data;
namespace SOH.BLL
{
[ServiceObject("退费功能")]
[ServiceBind(typeof(ITuiFei))]
public class TuiFeiBLL : ITuiFei
{
/// <summary>
/// 根据条码、类型、公自费标记、加项公自费标记查询可退费信息
///<param name="tm" >条码号</param>
///<param name="lx" >类型1个检2团检</param>
/// </summary>
//public List<dto_tempdjxm> GetKtfByTm(int tm, short lx, short gzfbj, short jxgzfbj)
public List<dto_tempdjxm> GetKtfByTm(int tm, short lx)
{
List<dto_tempdjxm> ldt = new List<dto_tempdjxm>();
using (DbEntities db = new DbEntities())
{
//个人全自费找t_tempdjxm表中的未进行检查的信息
if (lx == 1) //自检
{
//找t_tempdjxm中ztz=0的 还没检查的项目
var data1 = from a in db.t_tempdjxms join b in db.t_zhxms on a.zhbm equals b.zhbm
where a.tm == tm && a.ztz == 0
select new dto_tempdjxm
{
zhbm=a.zhbm,
zhmc=b.zhmc,
jg= b.jg,
jg_v=b.jg_v,
zhjg=a.zhjg,
zhjg_v=a.zhjg_v
};
if (data1.Any())
{
return data1.ToList();
}
else
{
return null;
}
}
else
{
//团检的套餐不允许退费,加项可以退,找到t_tempdjxm中ztz=0 并且 zhbm在jjx表中的加项信息
var data2 = from a in db.t_tempdjxms
join b in db.t_jjxbs
on a.tm equals b.tm
join c in db.t_zhxms on a.zhbm equals c.zhbm
where a.tm == tm && a.ztz == 0 && b.jjx == 0 && a.zhbm==b.zhbm
select new dto_tempdjxm
{
zhbm = a.zhbm,
zhmc = c.zhmc,
jg = c.jg,
jg_v = c.jg_v,
zhjg = a.zhjg,
zhjg_v = a.zhjg_v
};
if (data2.Any()) //有加项的
{
return data2.ToList();
}
else //无加项的
{
return null;
}
}
}
}
/// <summary>
/// 退费操作
/// </summary>
/// <returns></returns>
public OperationResult TF(short lx, List<t_tfb> ltt, List<t_sfmxb> lts,T_drxpjl td)
{
OperationResult or = new OperationResult();
using (DbEntities db = new DbEntities())
{
var tran = db.CreateTransaction();
try
{
if(ltt==null||ltt.Count==0||lts==null||lts.Count==0||string.IsNullOrEmpty(lts[0].czy)||lts[0].tm==null)
{
or.State = 0;
or.Message = "请求的参数不完整";
return or;
}
string czy = lts[0].czy;
int tm = lts[0].tm;
DateTime tjrq = DateTime.Now;
int tfzje = 0;
BasicBll bb = new BasicBll(); //取各个表的xh用的
//根据sffs - 0现金 1银行 5支票分别向t_sfmxb中插入相关sffs的信息
//"dbo.t_sfmxb" new t_sfmxb().DbTableName
int xh_sfmxb = bb.GetMax(new t_sfmxb().DbTableName, lts.Count);
for (int i = 0; i < lts.Count; i++)
{
t_sfmxb ts = lts[i];
string sfmxb_str = "insert into t_sfmxb (xh,tm,sffs,je,czy,tjrq,sffx) values (" + xh_sfmxb + "," +tm + "," + ts.sffs + "," + ts.je + ",'" + czy + "','" + tjrq + "',1)";
db.DataAccessor.Execute(sfmxb_str);
xh_sfmxb++;
}
int xh_tfb = bb.GetMax("dbo.t_tfb", ltt.Count);
for (int i = 0; i < ltt.Count; i++)
{
tfzje = tfzje + ltt[i].tfje;
t_tfb tt = ltt[i];
//t_tfb多条插入
//insert t_tfb (xh,tm,zhbm,tfje,czy,tjrq) values (113,0020065433,211,3000,'admin','2015/8/31')
string sqltfb = "insert t_tfb (xh,tm,zhbm,tfje,czy,tjrq) values (" + xh_tfb + "," + tm + "," + tt.zhbm + "," + tt.tfje + ",'" + czy + "','" + tjrq + "')";
db.DataAccessor.Execute(sqltfb);
xh_tfb++;
//根据tm和zhbm更改t_jjxb中的jjx、upflag
string sqljjxb = "update t_jjxb set jjx=1,upflag=1 where tm=" + tm + " and zhbm=" + tt.zhbm;
db.DataAccessor.Execute(sqljjxb);
//删除t_tempdjxm中的 tm 和 zhbm
string sqldel = "delete from t_tempdjxm where tm=" + tm + " and zhbm=" + tt.zhbm;
db.DataAccessor.Execute(sqldel);
//删除医生加项表记录
string sqldeljxysjl = "delete from t_jxysjl where tm=" + tm + " and zhbm=" + tt.zhbm;
db.DataAccessor.Execute(sqldeljxysjl);
}
//根据类型 是个检还是团检 更新grgzb和ttgzb中的 tjzje
string upsql = "";
if (lx == 1) //个检
{
upsql = "update t_grgzb set tjzje=tjzje-"+tfzje+" where tm=" + tm;
}
else
{
upsql = "update t_ttgzb set tjzje=tjzje-"+tfzje+" where tm=" + tm;
}
db.DataAccessor.Execute(upsql);
db.T_drxpjls.Insert(td);
//string sqlstr = "insert into t_drxpjl(xh,tm,hyh,xm,dw,tcorfzname,shouldpay,pay,cash,bank,jzcard,jzmoney,tccard,paper,nomoney,checkpaper,sftf,rq,sfjx)" +
// " values ()";
//db.DataAccessor.Execute(sqlstr);
//插入t_drxpjl
//insert into t_drxpjl(xh,tm,hyh,xm,dw,tcorfzname,shouldpay,pay,cash,bank,jzcard,
//jzmoney,tccard,paper,nomoney,checkpaper,sftf,rq,sfjx)
//values(29326,'0020065433','020065296','王雪萍','','2014体检套餐B(女未婚)','40','40',
//'40.00','0.00','','0.00','','0.00','0.00','0.00','1','2015/8/31',0)
tran.Commit();
or.State = 1;
or.Message = "退费成功";
return or;
}
catch (Exception ex)
{
tran.Rollback();
or.State = 0;
or.Message = (ex.InnerException ?? ex).Message;
return or;
}
}
}
}
}