Example #1
0
        /// <summary>
        /// 确费操作
        /// </summary>
        /// <param name="ids">需要确费处方明细ID</param>
        /// <param name="empId">确费医生ID</param>
        /// <param name="empName">确费医生名称</param>
        /// <param name="systemType">0门诊 1住院</param>
        /// <returns>返回操作异常或成功消息</returns>
        public string ThatFees(string ids, int empId, string empName, int systemType)
        {
            StringBuilder result = new StringBuilder();
            DataTable     dtInfo = NewDao <IThatFeeDao>().ConfigInfo(ids);//获取医技项目详细信息

            for (int i = 0; i < dtInfo.Rows.Count; i++)
            {
                decimal totalFee = Convert.ToDecimal(dtInfo.Rows[i]["TotalFee"]);
                int     presId   = Convert.ToInt32(dtInfo.Rows[i]["PresDetailID"]);
                if (totalFee <= 0)
                {
                    result.Append("项目:" + Convert.ToString(dtInfo.Rows[i]["ItemName"]) + ",结果:金额为0不能确费\n");
                    continue;
                }

                if (systemType == 0 && !GetPayFlag(presId))
                {
                    result.Append("项目:" + Convert.ToString(dtInfo.Rows[i]["ItemName"]) + ",结果:该项目已申请退费\n");
                    continue;
                }

                if (Convert.ToString(dtInfo.Rows[i]["IsReturns"]) != "0")
                {
                    result.Append("项目:" + Convert.ToString(dtInfo.Rows[i]["ItemName"]) + ",结果:该项目已退款\n");
                    continue;
                }

                if (Convert.ToString(dtInfo.Rows[i]["ApplyStatus"]) != "1")
                {
                    result.Append("项目:" + Convert.ToString(dtInfo.Rows[i]["ItemName"]) + ",结果:不能重复确费\n");
                    continue;
                }

                EXA_MedicalConfir medical = NewDao <IThatFeeDao>().GetConfir(presId);
                if (medical != null && medical.CancelFlag == 0)
                {
                    medical.IsCancel = 1;
                    BindDb(medical);
                    medical.save();
                }

                int meid = 0;
                NewDao <IThatFeeDao>().UpdateStatus(presId, 2, 1, systemType); //将费用表以及医技表改为确费状态
                EXA_MedicalConfir medicalconfir = GetMedical(presId, systemType, empId, empName);
                meid = SaveFeeHead(medicalconfir, dtInfo.Rows[i], 1);          //插入确费记录
                DataTable dtfee = GetFeeDt(systemType, presId);
                for (int j = 0; j < dtfee.Rows.Count; j++)
                {
                    EXA_MedicalConfirDetail medicaldetail = new EXA_MedicalConfirDetail();
                    medicaldetail.ConfirID   = meid;
                    medicaldetail.ExamItemID = medicalconfir.ItemID;
                    medicaldetail.MarkFlag   = systemType;
                    SaveFeeDetail(medicaldetail, dtfee.Rows[j], 0, systemType);//插入确费费用明细记录
                }

                result.Append("项目:" + Convert.ToString(dtInfo.Rows[i]["ItemName"]) + ",结果:确费成功\n");
            }

            return(result.ToString());
        }
Example #2
0
        /// <summary>
        /// 生成费用明细
        /// </summary>
        /// <param name="medicaldetail">确费明细实体</param>
        /// <param name="dr">数据行</param>
        /// <param name="type">0新增1修改</param>
        /// <param name="systemType">0门诊 1住院</param>
        private void SaveFeeDetail(EXA_MedicalConfirDetail medicaldetail, DataRow dr, int type, int systemType)
        {
            if (type == 0)
            {
                if (systemType == 0)
                {
                    medicaldetail.FeeDetailID = Convert.ToInt32(dr["PresDetailID"]);
                    medicaldetail.ItemPrice   = Convert.ToDecimal(dr["RetailPrice"]);
                    medicaldetail.Unit        = Convert.ToString(dr["MiniUnit"]);
                }
                else
                {
                    medicaldetail.FeeDetailID = Convert.ToInt32(dr["OrderID"]);
                    medicaldetail.ItemPrice   = Convert.ToDecimal(dr["SellPrice"]);
                    medicaldetail.Unit        = Convert.ToString(dr["Unit"]);
                }

                medicaldetail.ItemID   = Convert.ToInt32(dr["ItemID"]);
                medicaldetail.ItemName = Convert.ToString(dr["ItemName"]);
                medicaldetail.TotalFee = Convert.ToDecimal(dr["TotalFee"]);
                medicaldetail.Amount   = Convert.ToInt32(dr["Amount"]);
            }
            else
            {
                medicaldetail.ConfirDetailID = 0;
                medicaldetail.TotalFee       = -medicaldetail.TotalFee;
                medicaldetail.Amount         = -medicaldetail.Amount;
            }

            BindDb(medicaldetail);
            medicaldetail.save();
        }