示例#1
0
        private string GetstrWhere(DateTime?Bdate, DateTime?Edate)
        {
            string strWhere = null;

            if (OP_ZYConfigSetting.GetConfigValue("003") == 0)
            {
                if (Bdate != null && Edate != null)
                {
                    strWhere = "  AND CHARGE_FLAG = 1 AND  PRESDATE >= '" + Bdate.Value.ToString() + "' AND  PRESDATE <= '" + Edate.Value.ToString() + "' ";
                }
                else
                {
                    strWhere = "  AND CHARGE_FLAG = 1 ";
                }
            }
            else
            {
                if (Bdate != null && Edate != null)
                {
                    strWhere = "  AND CHARGE_FLAG = 1 AND  COSTDATE >= '" + Bdate.Value.ToString() + "' AND  COSTDATE <= '" + Edate.Value.ToString() + "' ";
                }
                else
                {
                    strWhere = "  AND CHARGE_FLAG = 1 ";
                }
            }
            return(strWhere);
        }
示例#2
0
        /// <summary>
        /// 结算病人
        /// </summary>
        /// <param name="zyCostM">结算主表</param>
        /// <param name="zyCostOList">结算汇总记录</param>
        /// <param name="zyPatL">病人类表对象</param>
        /// <returns></returns>
        public void CostPat(ZY_CostMaster zyCostM, List <ZY_CostOrder> zyCostOList, ZY_PatList zyPatL)
        {
            try
            {
                if (OP_ZYConfigSetting.GetConfigValue("005") == 0)
                {
                    string perfCode    = "";
                    string strticketno = InvoiceManager.InvoiceManager.GetBillNumber(Convert.ToInt32(zyCostM.ChargeCode), false, out perfCode);
                    zyCostM.TicketCode = perfCode + strticketno;
                }

                oleDb.BeginTransaction();
                //中结处理预交金(以前所有正常预交金全识为中结状态,新增一条新的预交金)

                //添加一条结算信息

                BindEntity <ZY_CostMaster> .CreateInstanceDAL(oleDb).Add(zyCostM);

                //添加结算汇总表



                for (int i = 0; i < zyCostOList.Count; i++)
                {
                    zyCostOList[i].CostID = zyCostM.CostMasterID;

                    BindEntity <ZY_CostOrder> .CreateInstanceDAL(oleDb).Add(zyCostOList[i]);
                }
                //更新所有处方记录的结算ID

                IpresDao ipD = DaoFactory.GetObject <IpresDao>(typeof(PresDao));
                ipD.oleDb = oleDb;
                ipD.AlterCostID(zyCostM.PatListID, zyCostM.CostMasterID, zyCostM.Ntype);

                if (zyCostM.Ntype != 1)//add zenghao
                {
                    //更改住院病人登记表病人类型为4,5 出院结算 出院欠费结算

                    BindEntity <ZY_PatList> .CreateInstanceDAL(oleDb).Update(zyPatL);
                }

                //一起更新标识
                string strWhere = "DELETE_FLAG = 0 and PATLISTID =" + zyPatL.PatListID;
                //string str1 = Tables.zy_chargelist.RECORD_FLAG + oleDb.EuqalTo() + "3";//不修改记录状态
                string str2 = "DELETE_FLAG =" + zyCostM.CostMasterID;
                BindEntity <ZY_ChargeList> .CreateInstanceDAL(oleDb).Update(strWhere, str2);


                oleDb.CommitTransaction();
            }
            catch (System.Exception e)
            {
                oleDb.RollbackTransaction();
                throw new Exception(e.Message);
            }
        }
示例#3
0
        /// <summary>
        /// 得到病人费用清单(已记账的),转科病人分开打
        /// </summary>
        /// <param name="patlistid">病人ID</param>
        /// <param name="Bdate">开始日期</param>
        /// <param name="Edate">结束日期</param>
        /// <returns></returns>
        public DataTable GetPresDataTable(int patlistid, string presdeptcode, DateTime?Bdate, DateTime?Edate)
        {
            try
            {
                string strWhere = null;
                strWhere = "PATLISTID" + oleDb.EuqalTo() + patlistid
                           + oleDb.And()
                           + "PRESDEPTCODE" + oleDb.EuqalTo() + "'" + presdeptcode + "'"
                           + oleDb.And()
                           + "CHARGE_FLAG" + oleDb.EuqalTo() + "1 ";

                string date_1_3 = null;
                if (OP_ZYConfigSetting.GetConfigValue("003") == 0)
                {
                    date_1_3 = oleDb.Date("PRESDATE");
                }
                else
                {
                    date_1_3 = oleDb.Date("COSTDATE");
                }
                if (Bdate != null && Edate != null)
                {
                    strWhere += oleDb.And() + date_1_3 + oleDb.GreaterThanAndEqualTo() + "'" + Bdate.Value.Date + "'"
                                + oleDb.And() + date_1_3 + oleDb.LessThanAndEqualTo() + "'" + Edate.Value.Date + "' ";
                }

                strWhere += oleDb.OrderBy("COSTDATE");
                List <ZY_PresOrder> zyPres = BindEntity <ZY_PresOrder> .CreateInstanceDAL(oleDb).GetListArray(strWhere);

                for (int i = 0; i < zyPres.Count; i++)
                {
                    zyPres[i].LoadData();
                }

                return(HIS.SYSTEM.PubicBaseClasses.ApiFunction.ObjToDataTable(zyPres));
            }
            catch (System.Exception e)
            {
                throw new Exception(e.Message);
            }
        }
示例#4
0
        /// <summary>
        /// 打印费用项目加入医保类型
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="sType">1.项目组合2.项目明细3.项目分组</param>
        /// <returns></returns>
        public DataTable GetFeeType(DataTable dtt, string sType, out decimal alldec, out decimal firstFee, out decimal secondFee, out decimal otherFee)
        {
            try
            {
                //DataView dv = dtt.DefaultView;
                //dv.Sort = "itemtypename Asc";
                //dtt = dv.ToTable();

                alldec    = 0;
                firstFee  = 0;
                secondFee = 0;
                otherFee  = 0;
                IfeeBillManager ifbmD = DaoFactory.GetObject <IfeeBillManager>(typeof(FeeBillManagerDao));
                ifbmD.oleDb = oleDb;
                DataTable drugData           = ifbmD.GetBaseData(0);
                DataTable projectData        = ifbmD.GetBaseData(1);
                DataTable projectGroupData   = ifbmD.GetBaseData(2);
                DataTable projectGroupMXData = ifbmD.GetBaseData(3);

                DataTable dt = dtt.Clone();
                if (dtt.Rows.Count == 0)
                {
                    return(dtt);
                }
                dt.Columns["ITEMID"].DataType = typeof(string);
                for (int i = 0; i < dtt.Rows.Count; i++)
                {
                    if (Convert.ToDecimal(dtt.Rows[i]["amount"]) == 0)
                    {
                        continue;
                    }

                    if (Convert.ToInt32(dtt.Rows[i]["PRESTYPE"]) == 4)//项目(基本项目)
                    {
                        #region 基本项目
                        DataRow dr = dt.NewRow();
                        for (int k = 0; k < dt.Columns.Count; k++)
                        {
                            dr[k] = dtt.Rows[i][k];
                        }
                        string    itemid = dr["ITEMID"].ToString();
                        DataRow[] drs    = projectData.Select("itemid=" + itemid);
                        if (drs.Length != 0)
                        {
                            if (drs[0] != null)
                            {
                                dr["itemid"] = drs[0]["d_code"];

                                if (HIS.SYSTEM.PubicBaseClasses.XcConvert.IsNull(drs[0]["insur_type"], "").ToString().Trim() == "甲")
                                {
                                    dr["itemname"] = "★" + dr["itemname"].ToString();
                                    firstFee      += Convert.ToDecimal(dr["tolal_fee"]);
                                }
                                else if (HIS.SYSTEM.PubicBaseClasses.XcConvert.IsNull(drs[0]["insur_type"], "").ToString().Trim() == "乙")
                                {
                                    dr["itemname"] = "☆" + dr["itemname"].ToString();
                                    secondFee     += Convert.ToDecimal(dr["tolal_fee"]);
                                }
                            }
                        }
                        dt.Rows.Add(dr);
                        #endregion
                    }
                    else if (Convert.ToInt32(dtt.Rows[i]["PRESTYPE"]) == 5)//项目(组合项目)
                    {
                        if (OP_ZYConfigSetting.GetConfigValue("001") == 0)
                        {
                            #region 组合项目

                            DataRow dr = dt.NewRow();
                            for (int k = 0; k < dt.Columns.Count; k++)
                            {
                                dr[k] = dtt.Rows[i][k];
                            }
                            string    itemid = dr["ITEMID"].ToString();
                            DataRow[] drs    = projectGroupData.Select("itemid=" + itemid);
                            if (drs.Length != 0)
                            {
                                if (drs[0] != null)
                                {
                                    dr["itemid"] = drs[0]["d_code"];

                                    if (XcConvert.IsNull(drs[0]["insur_type"], "").ToString().Trim() == "甲")
                                    {
                                        dr["itemname"] = "★" + dr["itemname"].ToString();
                                        firstFee      += Convert.ToDecimal(dr["tolal_fee"]);
                                    }
                                    else if (XcConvert.IsNull(drs[0]["insur_type"], "").ToString().Trim() == "乙")
                                    {
                                        dr["itemname"] = "☆" + dr["itemname"].ToString();
                                        secondFee     += Convert.ToDecimal(dr["tolal_fee"]);
                                    }
                                }
                            }
                            dt.Rows.Add(dr);

                            #endregion
                        }
                        else
                        {
                            #region 组合项目明细
                            if (sType == "1")//项目组合
                            {
                                #region 项目组合
                                string    itemid = dtt.Rows[i]["ITEMID"].ToString();
                                DataRow[] drs    = projectGroupMXData.Select("complex_id=" + itemid);
                                if (drs.Length != 0)
                                {
                                    for (int j = 0; j < drs.Length; j++)
                                    {
                                        DataRow dr = dt.NewRow();
                                        for (int k = 0; k < dt.Columns.Count; k++)
                                        {
                                            dr[k] = dtt.Rows[i][k];
                                        }
                                        dr["itemid"]   = drs[j]["STD_CODE"];
                                        dr["prestype"] = '4';
                                        if (XcConvert.IsNull(drs[j]["insur_type"], "").ToString().Trim() == "甲")
                                        {
                                            dr["itemname"] = "★" + drs[j]["Item_name"];
                                            firstFee      += Convert.ToDecimal(dr["tolal_fee"]);
                                        }
                                        else if (XcConvert.IsNull(drs[j]["insur_type"], "").ToString().Trim() == "乙")
                                        {
                                            dr["itemname"] = "☆" + drs[j]["Item_name"];
                                            secondFee     += Convert.ToDecimal(dr["tolal_fee"]);
                                        }
                                        else
                                        {
                                            dr["itemname"] = drs[j]["Item_name"];
                                        }
                                        dr["packunit"]   = drs[j]["item_unit"];
                                        dr["unit"]       = drs[j]["item_unit"];
                                        dr["sell_price"] = drs[j]["price"];
                                        dr["amount"]     = Convert.ToDecimal(drs[j]["num"]) * Convert.ToDecimal(dr["amount"]);
                                        dr["tolal_fee"]  = Convert.ToString(Convert.ToDecimal(dr["sell_price"]) * Convert.ToDecimal(dr["amount"]));
                                        alldec          += Convert.ToDecimal(dr["tolal_fee"]);
                                        dt.Rows.Add(dr);
                                    }
                                    alldec = alldec - Convert.ToDecimal(dtt.Rows[i]["tolal_fee"]);
                                }
                                #endregion
                            }
                            else if (sType == "2")//项目清单
                            {
                                #region 项目清单
                                string    itemid = dtt.Rows[i]["ITEMID"].ToString();
                                DataRow[] drs    = projectGroupMXData.Select("complex_id=" + itemid);
                                if (drs.Length != 0)
                                {
                                    for (int j = 0; j < drs.Length; j++)
                                    {
                                        DataRow dr = dt.NewRow();
                                        for (int k = 0; k < dt.Columns.Count; k++)
                                        {
                                            dr[k] = dtt.Rows[i][k];
                                        }
                                        //dr["itemid"] = drs[j]["STD_CODE"];
                                        //dr["prestype"] = '4';
                                        if (XcConvert.IsNull(drs[j]["insur_type"], "").ToString().Trim() == "甲")
                                        {
                                            dr["itemname"] = "★" + drs[j]["Item_name"];
                                            firstFee      += Convert.ToDecimal(dr["tolal_fee"]);
                                        }
                                        else if (XcConvert.IsNull(drs[j]["insur_type"], "").ToString().Trim() == "乙")
                                        {
                                            dr["itemname"] = "☆" + drs[j]["Item_name"];
                                            secondFee     += Convert.ToDecimal(dr["tolal_fee"]);
                                        }
                                        else
                                        {
                                            dr["itemname"] = drs[j]["Item_name"];
                                        }
                                        dr["packunit"]   = drs[j]["item_unit"];
                                        dr["unit"]       = drs[j]["item_unit"];
                                        dr["sell_price"] = drs[j]["price"];
                                        dr["amount"]     = Convert.ToDecimal(drs[j]["num"]) * Convert.ToDecimal(dr["amount"]);
                                        dr["tolal_fee"]  = Convert.ToString(Convert.ToDecimal(dr["sell_price"]) * Convert.ToDecimal(dr["amount"]));
                                        alldec          += Convert.ToDecimal(dr["tolal_fee"]);
                                        dt.Rows.Add(dr);
                                    }

                                    alldec = alldec - Convert.ToDecimal(dtt.Rows[i]["tolal_fee"]);
                                }
                                #endregion
                            }
                            else if (sType == "3")//项目分组
                            {
                                #region 项目分组
                                string    itemid = dtt.Rows[i]["ITEMID"].ToString();
                                DataRow[] drs    = projectGroupMXData.Select("complex_id=" + itemid);
                                if (drs.Length != 0)
                                {
                                    for (int j = 0; j < drs.Length; j++)
                                    {
                                        DataRow dr = dt.NewRow();
                                        for (int k = 0; k < dt.Columns.Count; k++)
                                        {
                                            dr[k] = dtt.Rows[i][k];
                                        }
                                        dr["itemid"]   = drs[j]["STD_CODE"];
                                        dr["prestype"] = '4';
                                        if (XcConvert.IsNull(drs[j]["insur_type"], "").ToString().Trim() == "甲")
                                        {
                                            dr["itemname"] = "★" + drs[j]["Item_name"];
                                            firstFee      += Convert.ToDecimal(dr["tolal_fee"]);
                                        }
                                        else if (XcConvert.IsNull(drs[j]["insur_type"], "").ToString().Trim() == "乙")
                                        {
                                            dr["itemname"] = "☆" + drs[j]["Item_name"];
                                            secondFee     += Convert.ToDecimal(dr["tolal_fee"]);
                                        }
                                        else
                                        {
                                            dr["itemname"] = drs[j]["Item_name"];
                                        }
                                        dr["packunit"]   = drs[j]["item_unit"];
                                        dr["unit"]       = drs[j]["item_unit"];
                                        dr["sell_price"] = drs[j]["price"];
                                        dr["amount"]     = Convert.ToDecimal(drs[j]["num"]) * Convert.ToDecimal(dr["amount"]);
                                        dr["tolal_fee"]  = Convert.ToString(Convert.ToDecimal(dr["sell_price"]) * Convert.ToDecimal(dr["amount"]));
                                        alldec          += Convert.ToDecimal(dr["tolal_fee"]);
                                        dt.Rows.Add(dr);
                                    }

                                    alldec = alldec - Convert.ToDecimal(dtt.Rows[i]["tolal_fee"]);
                                }
                                #endregion
                            }

                            #endregion
                        }
                    }
                    else//药品
                    {
                        #region 药品
                        DataRow dr = dt.NewRow();
                        for (int k = 0; k < dt.Columns.Count; k++)
                        {
                            dr[k] = dtt.Rows[i][k];
                        }

                        string    itemid = dr["ITEMID"].ToString();
                        DataRow[] drs    = drugData.Select("itemid=" + itemid);
                        if (drs.Length != 0)
                        {
                            if (drs[0] != null)
                            {
                                dr["itemid"] = drs[0]["d_code"];

                                if (HIS.SYSTEM.PubicBaseClasses.XcConvert.IsNull(drs[0]["insur_type"], "").ToString().Trim() == "甲")
                                {
                                    dr["itemname"] = "★" + dr["itemname"].ToString();
                                    firstFee      += Convert.ToDecimal(dr["tolal_fee"]);
                                }
                                else if (HIS.SYSTEM.PubicBaseClasses.XcConvert.IsNull(drs[0]["insur_type"], "").ToString().Trim() == "乙")
                                {
                                    dr["itemname"] = "☆" + dr["itemname"].ToString();
                                    secondFee     += Convert.ToDecimal(dr["tolal_fee"]);
                                }
                            }
                        }
                        dt.Rows.Add(dr);
                        #endregion
                    }
                }
                return(dt);
            }
            catch (Exception err)
            {
                throw new Exception(err.Message);
            }
        }