可以说商品的折扣率是连贯整个系统的中枢,每个病人的医疗的费用都要根据该商品是否设置到折扣的问题,按照不同的医疗方式商品设置不同的折扣,在病人消费的时候根据病人的医疗方式进行对应的折扣。

打开设置商品折扣价

界面如(图1):可以对一个商品打勾,点击单个保存,也可以全选点击批量保存,进行设置折扣率如(图2)

(图1)

(图2)

表和关系

表1折扣类型表

列名

数据类型

说明

DiscountTypeID

Int(主键)

折扣类型ID

DiscountTypeName

nchar(20)

折扣类型名称

表2第三方表

说明:第三方表主要是为了让折扣类型表和药品表形成多对多的关系。

列名

数据类型

说明

ThirdPartyID

int(主键)

第三方ID

DiscountTypeID

Int(外键)

折扣类型ID

MedicineID

int(外键)

药品ID

Discountrate

decimal(18, 2)

折扣率

单个保存操作,首先要对哪个商品进行折扣的勾上,再设置折扣,点击单个保存,实现代码

数据库存储过程

if @Type='Frm_ShangPingZheKouSheZhi_InsertZheKou'begininsert     BS_ThirdPartyList(DiscountTypeID, MedicineID, Discountrate)values       (@DiscountTypeID, @MedicineID, @Discountrate) end--新增折扣if @Type='Frm_ShangPingZheKouSheZhi_SelectThirdPartyID'beginSELECT   ThirdPartyID   from BS_ThirdPartyList where BS_ThirdPartyList.MedicineID=@MedicineIDand BS_ThirdPartyList.DiscountTypeID=@DiscountTypeIDend--查询if @Type='Frm_ShangPingZheKouSheZhi_UpdateZheKou'beginupdate BS_ThirdPartyListset Discountrate=@Discountratewhere BS_ThirdPartyList.ThirdPartyID=@ThirdPartyIDend --修改折扣

逻辑层代码

 [OperationContract]public int Frm_ShangPingZheKouSheZhi_InsertZheKou(int DiscountTypeID, int MedicineID, decimal Discountrate){SqlParameter[] mySqlParameters = {new SqlParameter ("@Type",SqlDbType .Char),new SqlParameter ("@DiscountTypeID",SqlDbType .Int),new SqlParameter ("@MedicineID",SqlDbType .Int),new SqlParameter ("@Discountrate",SqlDbType .Decimal),};mySqlParameters[0].Value = "Frm_ShangPingZheKouSheZhi_InsertZheKou";mySqlParameters[1].Value =DiscountTypeID;mySqlParameters[2].Value =MedicineID;mySqlParameters[3].Value = Discountrate;return  myDALMethod.UpdateData("信息设置_Frm_ShangPingZheKouSheZhi", mySqlParameters);}[OperationContract]public DataSet Frm_ShangPingZheKouSheZhi_SelectZheKouHouShuJu(int MedicineID){SqlParameter[] mySqlParameters = {new SqlParameter ("@Type",SqlDbType .Char),new SqlParameter ("@MedicineID",SqlDbType .Int),                                    };mySqlParameters[0].Value = "Frm_ShangPingZheKouSheZhi_SelectZheKouHouShuJu";mySqlParameters[1].Value = MedicineID;DataTable dt = myDALMethod.QueryDataTable("信息设置_Frm_ShangPingZheKouSheZhi", mySqlParameters);DataSet ds = new DataSet();ds.Tables.Add(dt);return ds;}[OperationContract]public DataSet Frm_ShangPingZheKouSheZhi_SelectThirdPartyID(int MedicineID, int DiscountTypeID){SqlParameter[] mySqlParameters = {new SqlParameter ("@Type",SqlDbType .Char),new SqlParameter ("@MedicineID",SqlDbType .Int),   new SqlParameter ("@DiscountTypeID",SqlDbType .Int),   };mySqlParameters[0].Value = "Frm_ShangPingZheKouSheZhi_SelectThirdPartyID";mySqlParameters[1].Value = MedicineID;mySqlParameters[2].Value = DiscountTypeID;DataTable dt = myDALMethod.QueryDataTable("信息设置_Frm_ShangPingZheKouSheZhi", mySqlParameters);DataSet ds = new DataSet();ds.Tables.Add(dt);return ds;}[OperationContract]public int Frm_ShangPingZheKouSheZhi_UpdateZheKou(decimal Discountrate, int ThirdPartyID){SqlParameter[] mySqlParameters = {new SqlParameter ("@Type",SqlDbType .Char),new SqlParameter ("@Discountrate",SqlDbType .Decimal),new SqlParameter ("@ThirdPartyID",SqlDbType .Int),};mySqlParameters[0].Value = "Frm_ShangPingZheKouSheZhi_UpdateZheKou";mySqlParameters[1].Value = Discountrate;mySqlParameters[2].Value = ThirdPartyID;return myDALMethod.UpdateData("信息设置_Frm_ShangPingZheKouSheZhi", mySqlParameters);}

界面层代码

点击单个保存

private void btnDanGeBaoCun_Click(object sender, EventArgs e){   int Z=0;int ChengGong=0;foreach(DataGridViewRow dgv in dgvShangPingXinXi.Rows){if (Convert.ToBoolean(dgv.Cells["选择"].Value)){for (int i = 0; i < dgvZheKouXinXi.Rows.Count; i++){int ZheKouLeiXingID = Convert.ToInt32(dgvZheKouXinXi.Rows[i].Cells["DiscountTypeID"].Value);decimal ZheKouBi = Convert.ToDecimal(dgvZheKouXinXi.Rows[i].Cells["Discountrate"].Value);if (ZheKouBi > 1){MessageBox.Show("折扣比必须在0—1间");return;}//根据药品ID,折扣类型ID,获取数据库的ThirdPartyIDDataTable dtThirdPartyID = myFrm_ShangPingZheKouSheZhiClient.Frm_ShangPingZheKouSheZhi_SelectThirdPartyID(YaoPingID, ZheKouLeiXingID).Tables[0];//如果数据库中存在ThirdPartyIDif (dtThirdPartyID.Rows.Count > 0){//获取ThirdPartyID出来int ThirdPartyID = Convert.ToInt32(dtThirdPartyID.Rows[0][0]);//根据ThirdPartyID修改折扣率ChengGong=  myFrm_ShangPingZheKouSheZhiClient.Frm_ShangPingZheKouSheZhi_UpdateZheKou(ZheKouBi,ThirdPartyID);}else{//否则新增Z= myFrm_ShangPingZheKouSheZhiClient.Frm_ShangPingZheKouSheZhi_InsertZheKou(ZheKouLeiXingID, YaoPingID, ZheKouBi);}}}}if (ChengGong > 0 || Z > 0){MessageBox.Show("保存成功");dgvShangPingXinXi_CellClick(null,null);}}

批量设置折扣

设置窗口的实现,因为折扣类型的不定的变化,根据医院可能会增加或者减少折扣类型,所以为了适应,只能用动态来实现。

 private void plZheKou_Paint(object sender, PaintEventArgs e){dt = myFrm_ShangPingZheKouSheZhiClient.Frm_ShangPingZheKouSheZhi_SelectZheKouLeiXing().Tables[0];for (int i = 0 ,leftX = 10, leftY = 2; i < dt.Rows.Count; i++){leftY += 30; //定义画笔实例Pen mypen = new Pen(Color.Black);//定义画笔实例Graphics myGraphics = e.Graphics;//赋值string Name = dt.Rows[i]["DiscountTypeName"].ToString().Trim();myGraphics.DrawString(Name,new Font("宋体", 10, FontStyle.Regular),SystemBrushes.ControlText, leftX, leftY);}}

在窗体Load事件中给每个折扣类型对应赋值ID

private void Frm_ZheKouBiSheZhiXiaoChuanTi_Load(object sender, EventArgs e){dt = myFrm_ShangPingZheKouSheZhiClient.Frm_ShangPingZheKouSheZhi_SelectZheKouLeiXing().Tables[0];DtCount = dt.Rows.Count;//查询折扣类型IDZheKouShuZhu = new string[DtCount];//定义数组的长度为折扣类型的个数//循环给每个折扣类型赋值IDfor (int i = 0, leftX = 10, leftY = 2; i < dt.Rows.Count; i++){leftY += 30;TextBox txtZheKouLv = new TextBox();txtZheKouLv.Size = new Size(100, 21);txtZheKouLv.Text = "1.00";txtZheKouLv.Tag = dt.Rows[i]["DiscountTypeID"].ToString().Trim();//数组记录一开始的折扣比ZheKouShuZhu[i] = txtZheKouLv.Text.ToString().Trim();txtZheKouLv.Location = new Point(leftX + 120, leftY);//设置文本边框格式txtZheKouLv.BorderStyle = System.Windows.Forms.BorderStyle.None;//设置文本下划线txtZheKouLv.Font=new Font(new Font("宋体",15),FontStyle.Underline);plZheKou.Controls.Add(txtZheKouLv);txtZheKouLv.TextChanged+=new EventHandler(txtZheKouLv_TextChanged);}}

每次编辑折扣率时对应用数组记录下来

 private void Frm_ZheKouBiSheZhiXiaoChuanTi_Load(object sender, EventArgs e){dt = myFrm_ShangPingZheKouSheZhiClient.Frm_ShangPingZheKouSheZhi_SelectZheKouLeiXing().Tables[0];DtCount = dt.Rows.Count;//查询折扣类型IDZheKouShuZhu = new string[DtCount];//定义数组的长度为折扣类型的个数//循环给每个折扣类型赋值IDfor (int i = 0, leftX = 10, leftY = 2; i < dt.Rows.Count; i++){leftY += 30;TextBox txtZheKouLv = new TextBox();txtZheKouLv.Size = new Size(100, 21);txtZheKouLv.Text = "1.00";txtZheKouLv.Tag = dt.Rows[i]["DiscountTypeID"].ToString().Trim();//数组记录一开始的折扣比ZheKouShuZhu[i] = txtZheKouLv.Text.ToString().Trim();txtZheKouLv.Location = new Point(leftX + 120, leftY);//设置文本边框格式txtZheKouLv.BorderStyle = System.Windows.Forms.BorderStyle.None;//设置文本下划线txtZheKouLv.Font=new Font(new Font("宋体",15),FontStyle.Underline);plZheKou.Controls.Add(txtZheKouLv);txtZheKouLv.TextChanged+=new EventHandler(txtZheKouLv_TextChanged);}}

设置好折扣率后点击保存

decimal ZheKouBi;int WangChengCount=0;private void btnSave_Click(object sender, EventArgs e){for (int i = 0; i < Frm_ShangPingZheKouSheZhi.YaoPing.Length; i++){   //获取数组值int YaoPingID = Frm_ShangPingZheKouSheZhi.YaoPing[i];for (int j = 0; j < dt.Rows.Count; j++){ //获取折扣类型IDint ZheKouLeiXingID = Convert.ToInt32(dt.Rows[j]["DiscountTypeID"]);ZheKouBi = Convert.ToDecimal(ZheKouShuZhu[j]);//根据药品ID,折扣类型ID,获取数据库的ThirdPartyIDDataTable dtThirdPartyID = myFrm_ShangPingZheKouSheZhiClient.Frm_ShangPingZheKouSheZhi_SelectThirdPartyID(YaoPingID, ZheKouLeiXingID).Tables[0];//如果数据库中存在ThirdPartyIDif (dtThirdPartyID.Rows.Count > 0){//获取ThirdPartyID出来int ThirdPartyID = Convert.ToInt32(dtThirdPartyID.Rows[0][0]);//根据ThirdPartyID修改折扣率myFrm_ShangPingZheKouSheZhiClient.Frm_ShangPingZheKouSheZhi_UpdateZheKou(ZheKouBi, ThirdPartyID);}else{//否则新增myFrm_ShangPingZheKouSheZhiClient.Frm_ShangPingZheKouSheZhi_InsertZheKou(ZheKouLeiXingID, YaoPingID, ZheKouBi);}}WangChengCount++;//记录成功的数量}//如果完成数量=全选的商品数量if (WangChengCount == Frm_ShangPingZheKouSheZhi.YaoPing.Length){plHuanChong.Visible = false;MessageBox.Show("设置成功!");}}
仅供学习,禁止商业用途!

承志医疗管理系统技术解析设置商品折扣率(九)相关推荐

  1. 承志医疗管理系统技术解析住院管理(六)

    下面是对医生工作站的一些主体的功能进行描述,和解析说明: 医师对分配好床位的病人进行医嘱录入和处方录入还有一些辅助的检查和对病人的信息修改查看等,功能如下图:   医师点击菜单栏-->护理--& ...

  2. 承志医院管理系统项目解析 门诊收费(七)

    1.4门诊收费 用于处方和辅助检查项目的收费,收费有3种情况:分别是现金.记账和刷卡.按照要求,备注填写你收费的类型,在后面收费员交款时好区别.如图(1): 图(1) 从界面上可以看到我们这里用到的控 ...

  3. 承志医院管理系统项目解析 门诊医生工作站—辅助检查项目(六)

    1.33辅助检查 在需要做辅助检查的时候,选择病人,然后选择相关信息的辅助检查项目,如图(1).(2)所示:: 图(1) 图(2) 从界面上可以看到我们这里用到的控件有 控件名称 说明 日期控件(Da ...

  4. 承志医院管理系统项目解析 门诊医生工作站—书写病历(四)

    1.3门诊医生工作站 由门诊医生进行看病,开药与诊疗方案. 1.31书写病历 书写病历这个模块,主要是给病人写病历,如图(1) 图(1) 控件名称 说明 日期控件(DateTimePicker) 控件 ...

  5. WCF医院管理系统技术解析(十)体检报告结果打印(水晶报表)

    WCF医院管理系统技术解析(十)体检报告结果打印(水晶报表) 对于已经完成体检的病人,对其进行体检结果的打印,其体检结果报告打印效果如图: 界面涉及到的控件有: 控件 说明 从工具箱中找到对应的报表控 ...

  6. WCF医院管理系统技术解析(十一)医生体检收入查询(带一定判断的导出Excel)

    WCF医院管理系统技术解析(十一)医生体检收入查询(带一定判断的导出Excel) 医院支持对各个科室的体检收入,同时也可以查询到每个体检科室收入的审核医生.效果如图所示: 界面用到的控件有: 控件 说 ...

  7. WCF医院管理系统技术解析(七)体检登记(六)前台收费

    WCF医院管理系统技术解析(七)体检登记(六)前台收费 设置好病人的体检项目后,病人就要到前台进行支付体检的相关费用,点击体检登记界面中的    前台收费中的界面效果如图所示: 2.9.8(图57) ...

  8. 海马汽车经销商管理系统技术解析(三)应收管理

    海马汽车经销商管理系统技术解析(三)应收管理 应收管理这个模块可以查看所有欠款的客户和每个客户的欠款明细信息,还可以新建欠账单和删除欠账单.可以通过客户姓名.发生日期等条件对欠账单进行筛选查询.还可以 ...

  9. 海马汽车经销商管理系统技术解析(二)维修收银

    海马汽车经销商管理系统技术解析(二)维修收银 维修收银这个模块可以查看已经结算和已经收款的工单.可以通过工单号.车主姓名等条件对工单进行筛选查询.还可以对工单进行收银.刷新操作. 主界面如图(图1)所 ...

最新文章

  1. Asp.Net 动态生成验证码
  2. css的一种预处理器 sass
  3. 【BZOJ4668】冷战 并查集
  4. java 获取 正在执行的方法名
  5. Java中常见流的分类及简单讲解
  6. monkey_使用_脚本编写
  7. 猫眼电影排行榜python爬虫
  8. H5 FormData 表单数据对象详解 与 Json 对象相互转换
  9. MySQL到mongodb中间件_Bifrost: Bifrost ---- 面向生产环境的 MySQL 同步到Redis,MongoDB等服务的异构中间件...
  10. openai-gpt_GPT-3不会承担您的编程工作
  11. django模板-if标签、for标签、自定义标签和过滤器
  12. Raki的读paper小记:PURE:A Frustratingly Easy Approach for Entity and Relation Extraction
  13. dialog下textarea滚动条不显示
  14. 【f1c200s/f1c100s】PWM驱动适配
  15. 小米 线刷 android,小米10 Android 11 Beta 1线刷包已放出,安卓11/MIUI 12二选一
  16. 软件测试的目的和原则
  17. 【JZOJ 省选模拟】6691.六道剑「一念无量劫」
  18. 通过SQL语句数据库简繁体转换
  19. “不老时代”:细说nmn是什么产品?nmn功效与作用是真的吗?
  20. 【Debug】安装labelme过程中出现的问题

热门文章

  1. 深度分析智能垃圾回收站 智慧社区|智能垃圾分类|智慧环卫
  2. 华为云WeLink有多安全?
  3. 微信公众号发送模版消息
  4. 如何解决PHP-FPM报错: server reached max_children
  5. vue中监视$route
  6. 计算工资及所得税java_根据最新税法的相关规定,个人所得税工资、薪金的计算适用( )...
  7. 可穿戴式计算机(Wearable computer)
  8. Email系列(QQ邮箱 + 含附件的邮箱案例 + 项目实战)
  9. 计算机显示器代表品牌和价格,电脑显示器什么品牌好价位是多少
  10. 店铺装修要注意哪些关键点?