Пример #1
0
        public static void Update(TfApplyUpdateSort sort, MZ_TF_Record _mz_tf, RelationalDatabase _DataBase)
        {
            try
            {
                string sql = "";
                if (_mz_tf.TFSQID == Guid.Empty)
                {
                    throw new Exception("退费申请id为空!");
                }
                switch (sort)
                {
                case TfApplyUpdateSort.取消申请:
                    sql = @"update MZ_TFSQRECORD set BSCBZ=1 WHERE TFSQID='" + _mz_tf.TFSQID + "' AND TFBZ=0";
                    break;

                case TfApplyUpdateSort.取消初审:
                    sql = @"update MZ_TFSQRECORD set SHY=null,SHSJ=null,SHBZ=0 WHERE TFSQID='" + _mz_tf.TFSQID + "' AND TFBZ=0";
                    break;

                case TfApplyUpdateSort.取消复审:
                    sql = @"update MZ_TFSQRECORD set FSY=null,FSSJ=null,FSBZ=0 WHERE TFSQID='" + _mz_tf.TFSQID + "' AND TFBZ=0";
                    break;

                case TfApplyUpdateSort.退费初审:
                    sql = @"update MZ_TFSQRECORD set SHY=" + _mz_tf.SHY + ",SHSJ='" + _mz_tf.SHSJ + "',SHBZ=1 WHERE TFSQID='" + _mz_tf.TFSQID + "' AND TFBZ=0";
                    break;

                case TfApplyUpdateSort.退费复审:
                    sql = @"update MZ_TFSQRECORD set FSY=" + _mz_tf.FSY + ",FSSJ='" + _mz_tf.FSSJ + "',FSBZ=1 WHERE TFSQID='" + _mz_tf.TFSQID + "' AND TFBZ=0";
                    break;

                case TfApplyUpdateSort.退费:
                    sql = @"update MZ_TFSQRECORD set TFBZ=1,TFSJ='" + _mz_tf.TFSJ + "',TFY=" + _mz_tf.TFY + ",JSID='" + _mz_tf.JSID + "' WHERE TFSQID='" + _mz_tf.TFSQID + "' AND TFBZ=0";
                    break;
                }
                _DataBase.DoCommand(sql);
            }
            catch (Exception ea)
            {
                throw ea;
            }
        }
Пример #2
0
        //保存退费申请记录 如果是修改则必须给BSCBZ、TFSQID赋值 以及要修改的字段赋值
        public static void Save(ref MZ_TF_Record _mztf, RelationalDatabase _DataBase)
        {
            try
            {
                string sql = "";
                if (_mztf.TFSQID == Guid.Empty)
                {
                    _mztf.TFSQID = Guid.NewGuid();
                    sql          = @"INSERT INTO MZ_TFSQRECORD( TFSQID,CFID,CFMXID,XMMC,XMID,TCID,XMGG,XMDW,YDJ,YSL,YJE,TSL,KDKS,TFSQKS,DJY,GHXXID,KH,FPID,YZID,shbz,shsj,shy)
                    VALUES('" + _mztf.TFSQID + "','" + _mztf.CFID + "','" + _mztf.CFMXID + "','" + _mztf.XMMC + "'," + _mztf.XMID + "," + _mztf.TCID + ",'" + _mztf.XMGG + "','" + _mztf.XMDW + "'," + _mztf.YDJ + @",
                    " + _mztf.YSL + "," + _mztf.YJE + "," + _mztf.TSL + "," + _mztf.KDKS + "," + _mztf.TFSQKS + "," + _mztf.DJY + ",'" + _mztf.GHXXID + "','" + _mztf.KH + "','" + _mztf.FPID + "'," + _mztf.YZID + "," + _mztf.SHBZ +
                                   ",'" + _mztf.SHSJ + "'," + _mztf.SHY + ")";

                    _DataBase.DoCommand(sql);
                }
            }
            catch (Exception ea)
            {
                //_DataBase.RollbackTransaction();
                throw new Exception("保存退费申请记录出现异常!原因:" + ea.Message);
            }
        }
Пример #3
0
 public static bool CheckIsYFy(MZ_TF_Record _mztf, DataRow dr_cf, RelationalDatabase _DataBase)
 {
     try
     {
         /*需要验证 当前费用 是否已在申请表有了记录,如果有记录需要验证数量是否相等 有记录并且
          * 相等 则返回false 否则返回true*/
         string sql = @"SELECT * FROM MZ_TFSQRECORD WHERE BSCBZ=0 AND CFID='" + _mztf.CFID + "' and XMID=" + _mztf.XMID + "";
         if (_mztf.CFMXID != Guid.Empty)
         {
             sql += " AND CFMXID='" + _mztf.CFMXID + "'";
         }
         DataTable dt_tf = _DataBase.GetDataTable(sql);
         if (dt_tf.Rows.Count <= 0)
         {
             return(true);
         }
         else
         {
             /*比较数量 如果数量小于原数量则返回 true 否则返回false*/
             decimal ysl = Convert.ToInt32(dr_cf["数量"]);
             if (_mztf.TSL < ysl)
             {
                 return(true);
             }
             else
             {
                 return(false);
             }
         }
     }
     catch (Exception ea)
     {
         throw new Exception("CheckFee出现异常!原因:" + ea.Message);
     }
     // return false;
 }
Пример #4
0
        /// <summary>
        /// 待审核数据
        /// </summary>
        /// <param name="_mztf"></param>
        /// <param name="_DataBase"></param>
        /// <returns></returns>
        public static DataTable GetDtfCfInfo(MZ_TF_Record _mztf, RelationalDatabase _DataBase, string type, string dt1, string dt2)
        {
            DataTable dt = new DataTable();

            try
            {
                string sql = string.Empty;
                if (type == "1")
                {
                    sql = string.Format(@"
                    SELECT * FROM (  
                        SELECT '取消退费' as 取消退费 ,'复审确认' as 复审确认 ,'' 序号 , 1 选择 ,( CASE WHEN B.MEMO <> '' AND B.MEMO IS NOT NULL THEN b.YZMC + '[' + B.MEMO + ']' WHEN ( B.MEMO = ''  OR B.MEMO IS NULL ) AND a.XMLY = 2 THEN b.YZMC ELSE b.YZMC + '  ' + b.GG END ) AS 医嘱内容 ,
		                        CAST(CAST(b.YL AS FLOAT) AS VARCHAR(30)) 剂量 ,b.YLDW 剂量单位 ,pcmc 频次 ,b.YFMC 用法 ,b.TS 天数 ,CAST(CAST(b.DJ AS FLOAT) AS VARCHAR(30)) 单价 ,CAST(b.JS AS VARCHAR(10)) 剂数 ,(case when b.TJDXMDM ='03' then CAST(CAST(b.JS AS FLOAT) AS VARCHAR(30)) else 
		                        CAST(CAST(b.SL AS FLOAT) AS VARCHAR(30))  end) as  数量 ,h.TSL AS 申请退费数量 ,b.DW 单位 ,CAST(b.JE AS FLOAT) 金额 ,dbo.fun_getempname(a.YSDM) 开嘱医生 ,dbo.fun_getdeptname(a.ZXKS) 执行科室 ,a.hjid ,
		                        b.PYM 拼音码 ,RTRIM(b.BM) 编码 ,RTRIM(b.PM) 项目名称 ,b.SPM 商品名 ,b.GG 规格 ,b.CJ 厂家 ,yldwid 剂量单位编号 ,dwlx ,CAST(b.PCID AS VARCHAR(20)) 频次编号 ,CAST(yfid AS VARCHAR(20)) 用法编号 ,
		                        b.YDWBL ,b.TJDXMDM 统计大项目 ,b.XMID 项目编号 ,b.HJMXID ,a.ZXKS 执行科室编号 ,a.KSDM 科室编号 ,a.YSDM 医生编号 ,a.XMLY 项目来源 ,b.TCID 套餐编号,CFRQ 划价日期 ,d.SFRQ 收费日期, dbo.fun_getempname(a.HJY) 划价员 ,
		                        a.HJY ,b.PFJ 批发价 ,b.PFJE 批发金额 ,b.YZID ,a.GHXXID ,d.CFID ,e.CFMXID ,d.FPID ,g.KH ,h.TFSQID 退费申请id ,h.FSBZ 是否复审,a.KSDM,a.YSDM 
                        from vi_mz_hjb a 
                        inner join vi_mz_hjb_mx b  on a.HJID=b.HJID  
                        left join VI_YP_YPCD c on a.XMLY=1 and b.XMID=c.cjid and b.YZID=c.GGID  
                        inner join MZ_CFB d on a.HJID=d.HJID
                        inner join MZ_CFB_MX e on b.HJMXID=e.HJMXID
                        inner join MZ_FPB  f on d.FPID=f.FPID
                        left join YY_KDJB  g on f.KDJID=g.KDJID
                        inner join MZ_TFSQRECORD h on e.CFMXID=h.CFMXID
                        where a.hjid=b.hjid and a.GHXXID='{0}'  and a.BSCBZ=0  and b.TCID=0 AND  h.TFBZ=0  and h.BSCBZ=0  AND d.ZJE>0
                        union all      
                        select '取消退费' as 取消退费,'复审确认' as 复审确认,'' 序号,1 选择 ,  (CASE WHEN B.MEMO<>'' and  B.MEMO IS NOT NULL THEN  b.YZMC+'  ['+  B.MEMO +']' else  b.YZMC END ) as 医嘱内容,  cast(cast(b.yl as float) as varchar(30)) 剂量,rtrim(item_unit) 剂量单位,pcmc 频次,
		                        b.YFMC 用法,b.TS 天数,  cast(cast(sum(b.JE)/(case when b.JS=0 then 1 else b.JS end) as float) as varchar(30)) 单价, cast(1 as varchar(10)) 剂数,  cast(b.js as varchar(30)) 数量, CAST(h.TSL AS  FLOAT) AS 申请退费数量 ,  
		                        rtrim(item_unit) 单位,sum(b.JE)  金额,  dbo.fun_getempname(a.YSDM) 开嘱医生,dbo.fun_getdeptname(a.ZXKS) 执行科室,  a.hjid,py_code 拼音码,'' 编码,rtrim(item_name) 项目名称,item_name 商品名,ISNULL(B.GG,'') 规格,    
		                        '' 厂家,yldwid 剂量单位id,0 dwlx,    b.PCID 频次id,yfid 用法ID,   1 ydwbl,'' 统计大项目,b.TCID 项目ID,null hjmxid,a.ZXKS 执行科室id,a.KSDM 科室id,a.YSDM 医生id,a.XMLY 项目来源,b.TCID 套餐ID,  CFRQ 划价日期,d.SFRQ 收费日期, 
		                        dbo.fun_getempname(a.HJY) 划价员,a.HJY,0 批发价,0 批发金额 ,  b.yzid,a.GHXXID,d.CFID,null CFMXID,d.FPID,g.KH,h.TFSQID 退费申请id,h.FSBZ,a.KSDM,a.YSDM
                         from vi_mz_hjb a  
                         inner join vi_mz_hjb_mx B on a.hjid=b.hjid    
                         inner join jc_tc_t c on b.tcid=c.item_id     
                         inner join MZ_CFB d on a.HJID=d.HJID
                         inner join MZ_CFB_MX e on b.HJMXID=e.HJMXID
                         inner join MZ_FPB  f on d.FPID=f.FPID
                         left join YY_KDJB  g on f.KDJID=g.KDJID
                         inner join MZ_TFSQRECORD h on B.TCID=h.TCID  and h.BSCBZ=0 and h.CFID =d.CFID and h.YZID=b.YZID  
                         where  a.GHXXID='{0}'  and a.BSCBZ=0 AND b.TCID>0 AND  h.TFBZ=0  
                         group by a.hjid,b.yzid,b.yzmc,c.py_code,item_name,item_unit,b.TCID,b.yl,b.yldwid,b.TS,b.js,a.ZXKS,a.KSDM,a.YSDM,a.ZYKSDM, 
		                        a.XMLY,cfrq,a.HJY,b.YFMC,yfid,pcmc,b.PCID ,bsdbz,b.JSD,B.MEMO,B.GG, a.GHXXID,d.CFID, d.FPID,g.KH,h.TFSQID ,h.TSL,d.SFRQ ,h.FSBZ
                    ) A 
                    where 收费日期>='{1}' and 收费日期<='{2}' ORDER BY HJID", _mztf.GHXXID, dt1, dt2);
                }
                else
                {
                    sql = string.Format(@"
                    SELECT * FROM (  
                        SELECT  '取消退费' as 取消退费 ,'复审确认' as 复审确认 ,'' 序号 ,1 选择 ,( CASE WHEN B.MEMO <> ''  AND B.MEMO IS NOT NULL  THEN b.YZMC + '[' + B.MEMO + ']' WHEN ( B.MEMO = '' OR B.MEMO IS NULL ) AND a.XMLY = 2 THEN b.YZMC ELSE b.YZMC + ' ' + b.GG END ) AS 医嘱内容 ,
	                        CAST(CAST(b.YL AS FLOAT) AS VARCHAR(30)) 剂量 ,b.YLDW 剂量单位 ,pcmc 频次 ,b.YFMC 用法 ,b.TS 天数 ,CAST(CAST(b.DJ AS FLOAT) AS VARCHAR(30)) 单价 ,CAST(b.JS AS VARCHAR(10)) 剂数 ,  (case when b.TJDXMDM ='03' then CAST(CAST(b.JS AS FLOAT) AS VARCHAR(30)) else 
	                        CAST(CAST(b.SL AS FLOAT) AS VARCHAR(30))  end) as  数量 ,h.TSL AS 申请退费数量 ,b.DW 单位 ,CAST(b.JE AS FLOAT) 金额 ,dbo.fun_getempname(a.YSDM) 开嘱医生 ,dbo.fun_getdeptname(a.ZXKS) 执行科室 ,a.hjid ,
	                        b.PYM 拼音码 ,RTRIM(b.BM) 编码 ,RTRIM(b.PM) 项目名称 ,b.SPM 商品名 ,b.GG 规格 ,b.CJ 厂家 ,yldwid 剂量单位编号 ,dwlx ,CAST(b.PCID AS VARCHAR(20)) 频次编号 ,CAST(yfid AS VARCHAR(20)) 用法编号 ,b.YDWBL ,
	                        b.TJDXMDM 统计大项目 ,b.XMID 项目编号 ,b.HJMXID ,a.ZXKS 执行科室编号 ,a.KSDM 科室编号 ,a.YSDM 医生编号 ,a.XMLY 项目来源 ,b.TCID 套餐编号,CFRQ 划价日期 ,d.sfrq as 收费日期,dbo.fun_getempname(a.HJY) 划价员 ,
	                        a.HJY ,b.PFJ 批发价 ,b.PFJE 批发金额 ,b.YZID ,a.GHXXID ,d.CFID ,e.CFMXID ,d.FPID ,g.KH ,h.TFSQID 退费申请id  ,
	                        (CASE WHEN e.TJDXMDM = '01' THEN  d.BFYBZ   WHEN e.TJDXMDM = '02' THEN  d.BFYBZ  WHEN e.TJDXMDM = '03' THEN  d.BFYBZ ELSE e.BQRBZ END ) 是否取消
                        from vi_mz_hjb a 
                        inner join vi_mz_hjb_mx b  on a.HJID=b.HJID  
                        left join VI_YP_YPCD c on a.XMLY=1 and b.XMID=c.cjid and b.YZID=c.GGID  
                        inner join MZ_CFB d on a.HJID=d.HJID
                        inner join MZ_CFB_MX e on b.HJMXID=e.HJMXID
                        inner join MZ_FPB  f on d.FPID=f.FPID
                        left join YY_KDJB  g on f.KDJID=g.KDJID
                        inner join MZ_TFSQRECORD h on e.CFMXID=h.CFMXID and h.BSCBZ=0 and h.tfbz=0 and fsbz=0 
                        where a.hjid=b.hjid and a.GHXXID='{0}' and a.BSCBZ=0  and b.TCID=0 AND  h.TFBZ=0 and isnull(h.shbz,0)=1 AND d.ZJE>0
                        union all      
                        select '取消退费' 取消退费,'复审确认' 复审确认,'' 序号,1 选择 ,  (CASE WHEN B.MEMO<>'' and  B.MEMO IS NOT NULL THEN  b.YZMC+'  ['+  B.MEMO +']' else  b.YZMC END ) as 医嘱内容,  cast(cast(b.yl as float) as varchar(30)) 剂量,
	                        rtrim(item_unit) 剂量单位,pcmc 频次,b.YFMC 用法,b.TS 天数,  cast(cast(sum(b.JE)/(case when b.JS=0 then 1 else b.JS end) as float) as varchar(30)) 单价, cast(1 as varchar(10)) 剂数,  cast(b.js as varchar(30)) 数量, CAST(h.TSL AS  FLOAT) AS 申请退费数量 ,  
	                        rtrim(item_unit) 单位,sum(b.JE)  金额,  dbo.fun_getempname(a.YSDM) 开嘱医生,dbo.fun_getdeptname(a.ZXKS) 执行科室,  a.hjid,py_code 拼音码,'' 编码,rtrim(item_name) 项目名称,item_name 商品名,ISNULL(B.GG,'') 规格,    '' 厂家,yldwid 剂量单位id,
	                        0 dwlx,b.PCID 频次id,yfid 用法ID,   1 ydwbl,'' 统计大项目,b.TCID 项目ID,null hjmxid,a.ZXKS 执行科室id,a.KSDM 科室id,a.YSDM 医生id,a.XMLY 项目来源,b.TCID 套餐ID,  CFRQ 划价日期,d.sfrq as 收费日期,dbo.fun_getempname(a.HJY) 划价员,a.HJY,0 批发价,0 批发金额 ,  
	                        b.yzid,a.GHXXID,d.CFID,null CFMXID,d.FPID,g.KH,h.TFSQID 退费申请id,e.BQRBZ as 是否取消
                        from vi_mz_hjb a  
                        inner join vi_mz_hjb_mx B on a.hjid=b.hjid    
                        inner join jc_tc_t c on b.tcid=c.item_id     
                        inner join MZ_CFB d on a.HJID=d.HJID
                        inner join MZ_CFB_MX e on b.HJMXID=e.HJMXID
                        inner join MZ_FPB  f on d.FPID=f.FPID
                        left join YY_KDJB  g on f.KDJID=g.KDJID
                        inner join MZ_TFSQRECORD h on B.TCID=h.TCID  and h.BSCBZ=0 and h.CFID =d.CFID and h.YZID=b.YZID and h.TFBZ=0 
                        where  a.GHXXID='{0}' and a.BSCBZ=0 AND b.TCID>0 AND  h.TFBZ=0  and h.fsbz=0 and isnull(h.shbz,0)=1
                        group by a.hjid,b.yzid,b.yzmc,c.py_code,item_name,item_unit,b.TCID,b.yl,b.yldwid,b.TS,b.js,a.ZXKS,a.KSDM,a.YSDM,a.ZYKSDM,h.shbz,  
	                        a.XMLY,cfrq,a.HJY,b.YFMC,yfid,pcmc,b.PCID ,bsdbz,b.JSD,B.MEMO,B.GG, a.GHXXID,d.CFID, d.FPID,g.KH,h.TFSQID ,h.TSL,h.fsbz,d.sfrq,d.BFYBZ,e.BQRBZ 
                    ) A  where 收费日期>='{1}' and 收费日期<='{2}' ORDER BY HJID", _mztf.GHXXID, dt1, dt2);
                }
                dt = _DataBase.GetDataTable(sql);
            }
            catch (Exception ea)
            {
                throw ea;
            }
            return(dt);
        }
Пример #5
0
        //通过挂号信息id 获取已收费的处方信息 Add By zp 2014-01-24
        public static DataTable GetYsfCfInfo(MZ_TF_Record _mztf, RelationalDatabase _DataBase, string dt1, string dt2)
        {
            DataTable dt = new DataTable();

            try
            {
                string sql = string.Format(@"
                SELECT * from (
	                select * from (
		                SELECT DISTINCT '申请退费' as 申请退费 ,  '' 序号 ,  1 选择 ,
			                ( CASE WHEN B.MEMO <> '' AND B.MEMO IS NOT NULL THEN b.yzmc + '  [' + B.MEMO + ']' WHEN ( B.MEMO = '' OR B.MEMO IS NULL ) AND a.XMLY = 2 THEN b.YZMC ELSE b.yzmc + '  ' + b.GG END ) AS 医嘱内容 ,
			                CAST(CAST(b.YL AS FLOAT) AS VARCHAR(30)) 剂量 ,b.YLDW 剂量单位 ,  pcmc 频次 ,  b.YFMC 用法 , b.TS 天数 ,CAST(CAST(b.DJ AS FLOAT) AS VARCHAR(30)) 单价 ,CAST(b.JS AS VARCHAR(10)) 剂数 ,
			                case when b.TJDXMDM='03' then CAST(( CASE WHEN h.bscbz = 1 THEN B.js ELSE B.js - ISNULL(h.TSL, 0) END ) AS FLOAT ) else  CAST(( CASE WHEN h.bscbz = 1 THEN B.SL ELSE B.SL - ISNULL(h.TSL, 0) END ) AS FLOAT ) end  可退数量 ,
			                case when  b.TJDXMDM='03' then CAST(CAST(b.js AS FLOAT) AS VARCHAR(30))  else CAST(CAST(b.SL AS FLOAT) AS VARCHAR(30))  end 数量 ,b.DW 单位 ,  CAST(b.JE AS FLOAT) 金额 ,dbo.fun_getempname(a.YSDM) 开嘱医生 ,
			                dbo.fun_getdeptname(a.ZXKS) 执行科室 ,b.PYM 拼音码    ,RTRIM(b.BM) 编码 ,RTRIM(b.PM) 项目名称 ,b.SPM 商品名 ,b.GG 规格 ,b.CJ 厂家 ,yldwid 剂量单位编号 , CAST(b.PCID AS VARCHAR(20)) 频次编号 ,CAST(yfid AS VARCHAR(20)) 用法编号 , 
			                b.TJDXMDM 统计大项目 ,b.XMID 项目编号,a.ZXKS 执行科室编号 ,a.KSDM 科室编号 ,a.YSDM 医生编号 ,a.XMLY 项目来源 ,b.TCID 套餐编号 ,CFRQ 划价日期,d.sfrq as  收费日期, dbo.fun_getempname(a.HJY) 划价员 ,
			                a.HJY  ,b.PFJ 批发价 ,b.PFJE 批发金额 ,a.hjid , b.yzid ,a.GHXXID ,d.CFID ,e.CFMXID ,d.FPID ,g.KH ,  b.YDWBL,f.FPH 发票号 ,b.BPSBZ 皮试, d.BFYBZ 是否发药, e.BQRBZ 是否确认 , a.KSDM, a.YSDM
		                FROM    MZ_CFB d 
		                INNER JOIN MZ_CFB_MX e ON d.CFID = e.CFID
		                LEFT JOIN VI_YP_YPCD c ON d.XMLY = 1 AND e.XMID = c.cjid
		                INNER JOIN MZ_HJB a ON a.HJID = d.HJID
		                INNER JOIN  MZ_HJB_MX b  ON b.HJMXID = e.HJMXID
		                INNER JOIN MZ_FPB f ON d.FPID = f.FPID
		                LEFT JOIN YY_KDJB g ON f.KDJID = g.KDJID
		                LEFT  JOIN ( SELECT SUM(TSL) AS TSL ,CFMXID ,BSCBZ	FROM   dbo.MZ_TFSQRECORD WHERE  ISNULL(BSCBZ, 0) = 0 GROUP BY CFMXID ,BSCBZ ) h ON e.CFMXID = h.CFMXID
		                WHERE   f.ZJE>0   
		                    AND a.GHXXID ='{0}' and f.zje>0 
		                    AND a.BSCBZ = 0
		                    AND b.TCID = 0 and   d.ZJE>0 
	                ) a where 可退数量>0
	                UNION all 
	                SELECT * from (
		                SELECT   '申请退费' as 申请退费 ,'' 序号 ,1 选择 ,( CASE WHEN B.MEMO <> ''AND B.MEMO IS NOT NULL THEN b.yzmc + '  [' + B.MEMO + ']'ELSE b.yzmc END ) AS 医嘱内容 ,
		                    CAST(CAST(b.yl AS FLOAT) AS VARCHAR(30)) 剂量 ,RTRIM(item_unit) 剂量单位 ,pcmc 频次 ,b.YFMC 用法 ,b.TS 天数 ,CAST(CAST(SUM(b.JE) / ( CASE WHEN b.JS = 0 THEN 1 ELSE b.JS END ) AS FLOAT) AS VARCHAR(30)) 单价 ,
		                    CAST(1 AS VARCHAR(10)) 剂数 ,CAST( B.JS - ISNULL(h.yTSL, 0) - ISNULL(h.TSL ,0) AS FLOAT ) 可退数量 ,CAST(CAST(b.JS AS FLOAT) AS VARCHAR(30)) 数量 ,RTRIM(item_unit) 单位 ,
		                    SUM(b.JE) 金额 ,dbo.fun_getempname(a.YSDM) 开嘱医生 ,dbo.fun_getdeptname(a.ZXKS) 执行科室 , py_code 拼音码,'' 编码 ,RTRIM(item_name) 项目名称 ,item_name 商品名 ,ISNULL(B.GG, '') 规格 ,'' 厂家 ,yldwid 剂量单位id , b.PCID 频次id ,
		                    yfid 用法ID , '' 统计大项目 ,b.TCID 项目ID  ,a.ZXKS 执行科室编号 ,  a.KSDM 科室编号 ,a.YSDM 医生编号 ,a.XMLY 项目来源 ,b.TCID 套餐编号 ,CFRQ 划价日期,d.sfrq as  收费日期,dbo.fun_getempname(a.HJY) 划价员 ,
		                    a.HJY ,0 批发价 ,0 批发金额 ,a.hjid , b.yzid ,a.GHXXID ,d.CFID ,NULL CFMXID ,d.FPID ,g.KH ,  b.YDWBL,f.FPH 发票号 ,0 皮试,d.BFYBZ 是否发药, e.BQRBZ 是否确认 , a.KSDM, a.YSDM 
		                FROM  MZ_CFB d
		                INNER JOIN  MZ_CFB_MX e ON d.CFID = e.CFID 
		                INNER JOIN MZ_HJB a ON a.HJID = d.HJID
		                INNER JOIN MZ_HJB_MX B ON b.HJMXID = e.HJMXID
		                INNER JOIN jc_tc_t c ON e.tcid = c.item_id
		                INNER JOIN MZ_FPB f ON d.FPID = f.FPID
		                LEFT JOIN YY_KDJB g ON f.KDJID = g.KDJID
		                LEFT  JOIN ( SELECT SUM( CASE WHEN TFBZ = 0 THEN TSL ELSE 0 END) AS TSL , SUM(CASE WHEN TFBZ=1 THEN TSL ELSE 0 END) AS YTSL, CFID ,YZID,BSCBZ FROM  MZ_TFSQRECORD	WHERE ISNULL(BSCBZ, 0) = 0 GROUP BY CFID, YZID,BSCBZ  ) h ON e.CFID = h.CFID   AND h.YZID = B.YZID
		                WHERE   a.GHXXID = '{0}' and f.zje>0 
		                    AND a.BSCBZ = 0 AND e.BTFBZ=0
		                    AND b.TCID > 0 AND d.ZJE>0
		                GROUP BY a.hjid ,b.yzid ,b.yzmc ,c.py_code ,item_name ,item_unit ,b.TCID ,b.yl ,b.yldwid ,  b.YDWBL,b.TS ,b.js ,a.ZXKS ,a.KSDM ,a.YSDM ,a.ZYKSDM ,a.XMLY ,cfrq ,a.HJY ,b.YFMC ,
		                    yfid ,pcmc ,b.PCID ,bsdbz ,b.JSD ,B.MEMO ,B.GG ,a.GHXXID ,d.CFID ,d.FPID ,g.KH ,f.FPH ,h.BSCBZ ,h.TSL ,h.YTSL,h.BSCBZ ,/*B.SL ,*/d.BFYBZ ,e.BQRBZ,d.sfrq
	                ) a where 可退数量>0  
                ) A where  收费日期>='{1}' and 收费日期 <='{2}' ORDER BY HJID", _mztf.GHXXID, dt1, dt2);
                dt = _DataBase.GetDataTable(sql);
            }
            catch (Exception ea)
            {
                throw new Exception("GetYsfCfInfo异常!原因:" + ea.Message);
            }
            return(dt);
        }
Пример #6
0
        //获取已收费的处方和待退费处方
        public static DataSet GetCf_All(MZ_TF_Record _mztf, long _jgdm, RelationalDatabase _DataBase)
        {
            DataSet dest = new DataSet();
            string  sql  = "";

            try
            {
                if (_mztf.GHXXID == Guid.Empty && (string.IsNullOrEmpty(_mztf.KH)))
                {
                    throw new Exception(" GetCf_All异常卡号和挂号信息id不能为空!");
                }
                #region /*获取已收费的处方(包含已退费的)*/
                sql = @" select *,'申请退费' 申请退费 from ( 
                select '' 序号,
                1 选择,
                isnull(a.fph,'') 发票号,
                a.blh 门诊号,
                brxm 姓名,
                bm 编码,
                rtrim(pm) 项目名称,
                spm 商品名,
                gg 规格,
                cj 厂家,
                dj 单价,
                sl 数量,
                rtrim(dw) 单位,
                js 剂数,
                je 金额,
                (case when bpsbz=-1 then '免试' when bpsbz=0 then '皮试' else '' end) 皮试,
                c.YFMC 用法,
                ksmc 科室,
                ysxm 医生,
                b.ZXKS 执行科室代码,
                zxksmc 执行科室,
                tcid 套餐id,
                hjrq 划价日期,
                hjyxm 划价员,
                a.sfrq 收费日期,
                sfyxm 收费员,
                fyrq 发药日期,
                fyrxm 发药员,
                b.CFID,
                c.cfmxid,
                xmly 项目来源,
                c.XMID,
                b.KSDM 开单科室,
                c.YDWBL,
                c.TS,
                c.PFJ 批发价,
                c.PFJE 批发金额    
                from mz_fpb a 
                inner join mz_cfb b on a.fpid=b.fpid 
                inner join mz_cfb_mx c
                on b.cfid=c.cfid 
                where a.bscbz=0  and tcid=0  and a.ghxxid='" + _mztf.GHXXID + @"' and a.BGHPBZ=0
                union all 
                select '' 序号,
                1 选择,
                isnull(a.fph,'') 发票号,
                a.blh 门诊号,
                brxm 姓名,
                '' 编码,
                rtrim(item_name) 项目名称,
                item_name 商品名,
                '' 规格,
                '' 厂家,
                cast(round(sum(je)/js,2) as decimal(15,2)) 单价,
                (case when sum(je)>0 then js else (-1)*js end) 数量,
                rtrim(item_unit) 单位,
                1 剂数,
                cast(sum(je) as float) 金额,
                '' 皮试,
                c.YFMC 用法,
                ksmc 科室,
                ysxm 医生,
                b.ZXKS 执行科室代码,
                zxksmc 执行科室,
                tcid 套餐id,
                hjrq 划价日期,
                hjyxm 划价员,
                a.sfrq 收费日期,
                sfyxm 收费员,
                fyrq 发药日期,
                fyrxm 发药员,
                b.CFID ,
                null cfmxid ,
                xmly 项目来源,
                c.XMID,
                b.KSDM 开单科室,
                c.YDWBL,
                c.TS,
                c.PFJ 批发价, 
                c.PFJE 批发金额  
                from mz_fpb a 
                inner join mz_cfb b on a.fpid=b.fpid 
                inner join mz_cfb_mx c 
                on b.cfid=c.cfid inner join jc_tc d on c.tcid=d.item_id AND D.JGBM=" + _jgdm + @"   
                where a.bscbz=0  and tcid>0  and a.ghxxid='" + _mztf.GHXXID + @"' 
                group by a.blh,brxm,tcid,item_name,item_unit,c.js,ksmc,ysxm,zxksmc,hjrq,hjyxm,a.fph,a.sfrq,sfyxm,fyrq,fyrxm,b.cfid,xmly,yfmc,c.XMID,b.KSDM,c.YDWBL,c.PFJ,c.PFJE,b.ZXKS,c.ts ) a order by 发票号,划价日期,cfmxid ";
                DataTable dt = _DataBase.GetDataTable(sql);
                dest.Tables.Add(dt);
                #endregion

                #region/*获取已申请还未进行退费的处方*/
                sql = @"select *,'取消退费' 取消退费 from ( 
                select '' 序号,
               1 选择,
               isnull(a.fph,'') 发票号,
               a.blh 门诊号,
               brxm 姓名,
               bm 编码,
               rtrim(pm) 项目名称,
               spm 商品名,
               gg 规格,
               cj 厂家,
               dj 单价,
               sl 数量,
               rtrim(dw) 单位,
               js 剂数,
               je 金额,
              (case when bpsbz=-1 then '免试' when bpsbz=0 then '皮试' else '' end) 皮试,
               c.YFMC 用法,
               ksmc 科室,
               ysxm 医生,
               zxksmc 执行科室,
               c.TCID 套餐id,
               hjrq 划价日期,
               hjyxm 划价员,
               a.sfrq 收费日期,
               sfyxm 收费员,
               fyrq 发药日期,
               fyrxm 发药员,
               b.CFID,
               c.CFMXID,
               xmly 项目来源,
               d.TSL 退数量,
               d.TFSQKS 退费申请科室编码,
               dbo.fun_getdeptname(d.TFSQKS) 退费申请科室,
               d.DJSJ 退费登记时间,
               dbo.fun_getempname(d.DJY) 退费登记员,
               d.DJY 退费登记员编码,
               d.SHBZ 退费审核标志,
               dbo.fun_getempname(d.SHY) 退费审核员,
               d.SHY 退费审核员编码,
               d.SHSJ 退费审核时间,
               d.FSBZ 退费复审标志,
               dbo.fun_getempname(d.FSY) 退费复审员,
               d.FSY 退费复审员编码,
               d.FSSJ 退费复审时间,
               c.xmid,
               d.TFSQID 退费申请id
                from mz_fpb a 
                inner join mz_cfb b on a.fpid=b.fpid 
                inner join mz_cfb_mx c on b.cfid=c.cfid
                inner join MZ_TFSQRECORD d on c.CFMXID=d.CFMXID and d.TCID<=0 and d.BSCBZ=0
                where a.bscbz=0  and c.TCID=0 and a.BGHPBZ=0";
                if (_mztf.GHXXID != Guid.Empty)
                {
                    sql += " and a.ghxxid='" + _mztf.GHXXID + @"'";
                }
                if (!string.IsNullOrEmpty(_mztf.KH))
                {
                    sql += " and d.kh='" + _mztf.KH + "'";
                }
                sql += @" union all 
               select '' 序号,
               1 选择,
               isnull(a.fph,'') 发票号,
               a.blh 门诊号,
               brxm 姓名,
               '' 编码,
               rtrim(item_name) 项目名称,
               item_name 商品名,
               '' 规格,
               '' 厂家,
               cast(round(sum(je)/js,2) as decimal(15,2)) 单价,
               (case when sum(je)>0 then js else (-1)*js end) 数量,
               rtrim(item_unit) 单位,
               1 剂数,
               cast(sum(je) as float) 金额,
               '' 皮试,
               c.YFMC 用法,
               ksmc 科室,
               ysxm 医生,
               zxksmc 执行科室,
               c.TCID 套餐id,
               hjrq 划价日期,
               hjyxm 划价员,
               a.sfrq 收费日期,
               sfyxm 收费员,
               fyrq 发药日期,
               fyrxm 发药员,
               b.CFID ,
               null cfmxid ,
               xmly 项目来源,
               e.TSL 退数量,
               e.TFSQKS 退费申请科室编码,
               dbo.fun_getdeptname(e.TFSQKS) 退费申请科室,
               e.DJSJ 退费登记时间,
               dbo.fun_getempname(e.DJY) 退费登记员,
               e.DJY 退费登记员编码,
               e.SHBZ 退费审核标志,
               dbo.fun_getempname(e.SHY) 退费审核员,
               e.SHY 退费审核员编码,
               e.SHSJ 退费审核时间,
               e.FSBZ 退费复审标志,
               dbo.fun_getempname(e.FSY) 退费复审员,
               e.FSY 退费复审员编码,
               e.FSSJ 退费复审时间,
               c.xmid,
               e.TFSQID 退费申请id
                from mz_fpb a 
                inner join mz_cfb b on a.fpid=b.fpid 
                inner join mz_cfb_mx c on b.cfid=c.cfid 
                inner join jc_tc d on c.tcid=d.item_id AND D.JGBM=1000
                inner join MZ_TFSQRECORD e on c.TCID=e.TCID and b.CFID=e.CFID and e.BSCBZ=0 and d.JGBM=" + _jgdm + @"   
                where a.bscbz=0  and c.TCID>0  and a.BGHPBZ=0";
                if (_mztf.GHXXID != Guid.Empty)
                {
                    sql += " and a.ghxxid='" + _mztf.GHXXID + @"'";
                }
                if (!string.IsNullOrEmpty(_mztf.KH))
                {
                    sql += " and e.kh='" + _mztf.KH + "'";
                }
                if (!string.IsNullOrEmpty(_mztf.FPH))
                {
                    sql += " and a.FPH='" + _mztf.FPH + "'";
                }
                if (!string.IsNullOrEmpty(_mztf.DNLSH))
                {
                    sql += " and a.DNLSH='" + _mztf.DNLSH + "'";
                }
                sql += @" group by a.blh,brxm,c.TCID,item_name,item_unit,c.js,ksmc,ysxm,zxksmc,hjrq,hjyxm,a.fph,a.sfrq,
                sfyxm,fyrq,fyrxm,xmly,yfmc,b.CFID,e.TSL,e.TFSQKS,e.TFSQKS,e.DJSJ,e.DJY,e.SHBZ,e.SHY,e.SHSJ,
                e.FSBZ,e.FSY,e.FSSJ,c.XMID,e.TFSQID) a
                order by 发票号,划价日期,cfmxid";
                DataTable dt_tf = _DataBase.GetDataTable(sql);
                dest.Tables.Add(dt_tf);
                #endregion
            }
            catch (Exception ea)
            {
                throw ea;
            }
            return(dest);
        }
Пример #7
0
        public static void Save(ref MZ_TF_Record _mztf, bool IsQr, RelationalDatabase _DataBase)
        {
            try
            {
                string sql = "";
                if (_mztf.TFSQID == Guid.Empty)
                {
                    _mztf.TFSQID = Guid.NewGuid();
                    sql          = @"INSERT INTO MZ_TFSQRECORD( TFSQID,CFID,CFMXID,XMMC,XMID,TCID,XMGG,XMDW,YDJ,YSL,YJE,TSL,KDKS,TFSQKS,DJY,GHXXID,KH,FPID,YZID,shbz,shsj,shy)
                    VALUES('" + _mztf.TFSQID + "','" + _mztf.CFID + "','" + _mztf.CFMXID + "','" + _mztf.XMMC + "'," + _mztf.XMID + "," + _mztf.TCID + ",'" + _mztf.XMGG + "','" + _mztf.XMDW + "'," + _mztf.YDJ + @",
                    " + _mztf.YSL + "," + _mztf.YJE + "," + _mztf.TSL + "," + _mztf.KDKS + "," + _mztf.TFSQKS + "," + _mztf.DJY + ",'" + _mztf.GHXXID + "','" + _mztf.KH + "','" + _mztf.FPID + "'," + _mztf.YZID + "," + _mztf.SHBZ +
                                   ",'" + _mztf.SHSJ + "'," + _mztf.SHY + ")";
                }
                _DataBase.DoCommand(sql);
                string    strSql = string.Format(@"SELECT  * FROM dbo.mz_cfb_mx 
                                                            where bqrbz=1  and cfid='{0}' and      
                                                             (    
                                                              ( '{1}'=dbo.FUN_GETEMPTYGUID() and tcid={2} )     
                                                              or    
                                                                 cfmxid='{3}'   
                                                             )   and QRKS={4}   ", _mztf.CFID, _mztf.CFMXID, _mztf.TCID, _mztf.CFMXID, _mztf.TFSQKS);
                DataTable td     = _DataBase.GetDataTable(strSql);
                if (td == null)
                {
                    IsQr = false;
                }
                else
                {
                    if (td.Rows.Count > 0)
                    {
                        IsQr = true;
                    }
                    else
                    {
                        IsQr = false;
                    }
                }
                if (IsQr)
                {
                    ParameterEx[] parameters = new ParameterEx[10];
                    parameters[0].Text  = "@CFID";
                    parameters[0].Value = _mztf.CFID;
                    parameters[1].Text  = "@CFMXID";
                    parameters[1].Value = _mztf.CFMXID;
                    parameters[2].Text  = "@TCID";
                    parameters[2].Value = _mztf.TCID;

                    parameters[3].Text  = "@BQRBZ";
                    parameters[3].Value = 0;
                    parameters[4].Text  = "@QRKS";
                    parameters[4].Value = _mztf.TFSQKS;
                    parameters[5].Text  = "@QRRQ";
                    parameters[5].Value = TrasenClasses.GeneralClasses.DateManager.ServerDateTimeByDBType(_DataBase).ToString();

                    parameters[6].Text  = "@QRDJY";
                    parameters[6].Value = _mztf.DJY;

                    parameters[7].Text          = "@err_code";
                    parameters[7].ParaDirection = ParameterDirection.Output;
                    parameters[7].DataType      = DbType.Int32;
                    parameters[7].ParaSize      = 100;

                    parameters[8].Text          = "@err_text";
                    parameters[8].ParaDirection = ParameterDirection.Output;
                    parameters[8].ParaSize      = 100;
                    parameters[9].Text          = "@YQRKS";
                    parameters[9].Value         = _mztf.TFSQKS;
                    _DataBase.DoCommand("SP_YJ_SAVE_QRJL_MZ", parameters, 60);
                    int    err_code = Convert.ToInt32(parameters[7].Value);
                    string err_text = Convert.ToString(parameters[8].Value);
                    if (err_code != 0)
                    {
                        throw new Exception(err_text);
                    }
                }
            }
            catch (Exception ea)
            {
                _DataBase.RollbackTransaction();
                throw new Exception("保存退费申请记录出现异常!原因:" + ea.Message);
            }
        }
Пример #8
0
        public static void Update(TfApplyUpdateSort sort, MZ_TF_Record _mz_tf, bool Isqr, RelationalDatabase _DataBase)
        {
            try
            {
                string sql = "";
                if (_mz_tf.TFSQID == Guid.Empty)
                {
                    throw new Exception("退费申请id为空!");
                }
                switch (sort)
                {
                case TfApplyUpdateSort.取消申请:
                {
                    /*ParameterEx[] parameters = new ParameterEx[10];
                     * parameters[0].Text = "@CFID";
                     * parameters[0].Value = _mz_tf.CFID;
                     * parameters[1].Text = "@CFMXID";
                     * parameters[1].Value = _mz_tf.CFMXID;
                     * parameters[2].Text = "@TCID";
                     * parameters[2].Value = _mz_tf.TCID;
                     *
                     * parameters[3].Text = "@BQRBZ";
                     * parameters[3].Value = 1;
                     * parameters[4].Text = "@QRKS";
                     * parameters[4].Value = InstanceForm.BCurrentDept.DeptId;
                     * parameters[5].Text = "@QRRQ";
                     * parameters[5].Value = TrasenClasses.GeneralClasses.DateManager.ServerDateTimeByDBType(_DataBase).ToString();
                     *
                     * parameters[6].Text = "@QRDJY";
                     * parameters[6].Value = InstanceForm.BCurrentUser.EmployeeId;
                     *
                     * parameters[7].Text = "@err_code";
                     * parameters[7].ParaDirection = ParameterDirection.Output;
                     * parameters[7].DataType = DbType.Int32;
                     * parameters[7].ParaSize = 100;
                     *
                     * parameters[8].Text = "@err_text";
                     * parameters[8].ParaDirection = ParameterDirection.Output;
                     * parameters[8].ParaSize = 100;
                     * parameters[9].Text = "@YQRKS";
                     * parameters[9].Value = InstanceForm.BCurrentUser.EmployeeId;
                     * InstanceForm.BDatabase.GetDataTable("SP_YJ_SAVE_QRJL_MZ", parameters, 60);
                     * int err_code = Convert.ToInt32(parameters[7].Value);
                     * string err_text = Convert.ToString(parameters[8].Value);
                     * if (err_code != 0) throw new Exception(err_text);
                     * */
                    sql = @"update MZ_TFSQRECORD set BSCBZ=1 WHERE TFSQID='" + _mz_tf.TFSQID + "' AND TFBZ=0";
                    break;
                }

                case TfApplyUpdateSort.取消初审:
                    sql = @"update MZ_TFSQRECORD set SHY=null,SHSJ=null,SHBZ=0 WHERE TFSQID='" + _mz_tf.TFSQID + "' AND TFBZ=0";
                    break;

                case TfApplyUpdateSort.取消复审:
                    sql = @"update MZ_TFSQRECORD set FSY=null,FSSJ=null,FSBZ=0 WHERE TFSQID='" + _mz_tf.TFSQID + "' AND TFBZ=0";
                    break;

                case TfApplyUpdateSort.退费初审:
                    sql = @"update MZ_TFSQRECORD set SHY=" + _mz_tf.SHY + ",SHSJ='" + _mz_tf.SHSJ + "',SHBZ=1 WHERE TFSQID='" + _mz_tf.TFSQID + "' AND TFBZ=0";
                    break;

                case TfApplyUpdateSort.退费复审:
                    sql = @"update MZ_TFSQRECORD set FSY=" + _mz_tf.FSY + ",FSSJ='" + _mz_tf.FSSJ + "',FSBZ=1 WHERE TFSQID='" + _mz_tf.TFSQID + "' AND TFBZ=0";
                    break;

                case TfApplyUpdateSort.退费:
                    sql = @"update MZ_TFSQRECORD set TFBZ=1,TFSJ='" + _mz_tf.TFSJ + "',TFY=" + _mz_tf.TFY + ",JSID='" + _mz_tf.JSID + "' WHERE TFSQID='" + _mz_tf.TFSQID + "' AND TFBZ=0";
                    break;
                }
                _DataBase.DoCommand(sql);
            }
            catch (Exception ea)
            {
                throw ea;
            }
        }