一种基于药店POS收银实现药品拆零的方法与流程

文档序号:15696424发布日期:2018-10-19 19:07阅读:1248来源:国知局
本发明涉及web药店系统平台领域,特别涉及一种基于药店pos收银实现药品拆零的方法。
背景技术
::首先我们得了解下什么是拆零药品,所谓拆零药品指的是药店、诊所将完整包装单元(瓶、盒)的药品拆分后予以销售、使用的药品。应《中华人民共和国药品管理法》及其实施条例与《药品经营质量管理规范》及其实施细则,在销售拆零药品时,必须生成相关的拆零记录。在药店销售药品时,如果提前把所有的药品都进行拆零,这样做第一浪费药品,其次拆零后的药品,没有包装信息,养护非常困难;但如果没有提前拆零,销售时使用手工拆零,不仅浪费时间,而且容易出错,严重影响销售的进度;为了解决这些问题,需要实现一种在收银的时候就能对销售药品进行快速地拆零,更新拆零状态、添加拆零商品库存信息等的功能。技术实现要素:本发明解决的技术问题在于提供一种基于药店pos收银实现药品拆零的方法;本发明解决了药品在未销售的情况下提前拆零时会浪费药品,带来养护困难及未拆零的药品不方便销售等方面的问题。本发明解决上述技术问题的技术方案是:1、创建拆零主单表及明细表、药品表及库存批次表,主表用于存储拆零日期、数量、审核状态等信息;2、新建拆零商品资料,设定好拆零后单位、系数、价格等信息并入库;3、在收银页面,选择商品拆零,在拆零页面中输入拆零数量、价格等信息后保存;4、生成主单及明细,新增拆零产品及批次库存,原药品减总库存与批次库存数量;5、更改收银页面的药品为拆零药品进行销售;6、审核拆零单,更新审核状态,生成拆零报表数据。从而本发明解决了药品在未销售的情况下提前拆零时会浪费药品,带来养护困难及未拆零的药品不方便销售等方面的问题。所述的方法具体包括如下步骤:步骤一、创建拆零主单表及明细表、药品表及库存批次表,主表用于存储拆零日期、数量、审核状态等信息;步骤二、新建拆零商品资料,设定好拆零后单位、系数、价格等信息,保存;新增验收入库单,选择药品,填写入库数量,保存审核后增加此药品库存信息;步骤三、在收银页面,选择商品拆零,点击拆零按钮,弹出拆零录入窗口,输入拆零数量、拆零后零售价、会员价等信息后保存;步骤四、通过后台处理,生成主单及明细,如果此药品已经拆零,增加拆零药品总库存,否则新增拆零产品信息及拆零批次库存信息,原药品总库存减数量、对应的批次库存减数量;步骤五、更改收银页面的药品为拆零药品信息,如产品编码、零售价、单位等进行销售,同时发送审核信息到审核人员待办箱;步骤六、审核人员通过待办箱接收到审核信息,点击链接进入拆零单,点击审核按钮弹出审核窗口,输入审核意见等信息,保存,更改拆零单审核状态,生成拆零报表数据。本发明的有益效果:通过在药店pos收银处实现拆零功能,简化了手工拆零的过程,节约了销售拆零药品的时间,达到了在收银时能快速销售拆零药品且不会浪费药品资源的目的。本发明有效地解决了药品在未销售的情况下提前拆零时会浪费药品,带来养护困难及未拆零的药品不方便销售等方面的问题。附图说明下面结合附图对本发明进一步说明:图1为本发明的流程图。具体实施方式如图1所示,本发明采用如下步骤:步骤一、创建拆零主单表及明细表、药品表及库存批次表,主表用于存储拆零日期、数量、审核状态等信息;如://1、主单表createtable`split_order`(`id`varchar(50)notnull,`splitno`varchar(50)defaultnull,`splituser`varchar(30)defaultnull,`splittype`int(11)defaultnull,`splitdate`timestampnulldefaultcurrent_timestamponupdatecurrent_timestamp,`auditstate`int(11)defaultnull,`auditor`varchar(30)defaultnull,`auditorid`varchar(50)defaultnull,……primarykey(`productsplitid`))engine=innodbdefaultcharset=utf8;//2、明细表createtable`split_order_detail`(`id`varchar(50)notnull,`splitno`varchar(50)defaultnull,`productid`varchar(50)defaultnull,`productcode`varchar(20)defaultnull,`productname`varchar(200)defaultnull,`genericname`varchar(200)defaultnull,`scatteredcoefficient`varchar(20)defaultnull,`splitcount`decimal(18,2)defaultnull,`afterscatteredunit`varchar(20)defaultnull,`aftersplitcount`decimal(18,2)defaultnull,`afterretailprice`decimal(18,2)defaultnull,`aftermemberprice`decimal(18,2)defaultnull,`auditstate`int(11)defaultnull,`audituserid`varchar(30)defaultnull,`audituser`varchar(30)defaultnull,……primarykey(`id`))engine=innodbdefaultcharset=utf8;//其它表……步骤二、新建拆零商品资料,设定好拆零后单位、系数、价格等信息,保存;新增验收入库单,选择药品,填写入库数量,保存审核后增加此药品库存信息;步骤三、在收银页面,选择商品拆零,点击拆零按钮,弹出拆零录入窗口,输入拆零数量、拆零后零售价、会员价等信息后保存;步骤四、通过后台处理,生成主单及明细,如果此药品已经拆零,增加拆零药品总库存,否则新增拆零产品信息及拆零批次库存信息,原药品总库存减数量、对应的批次库存减数量;如:publicsplitdetailinsertsplitorderbypos(splitordermodel){//1设置主单基本信息,添加到数据库datenow=dateutil.getcurrdatetime();localuserlocaluser=sessionutil.getlocaluser();if(model==null)thrownewcustomerexception("拆零数据不能为空");if(model.getdetails()==null||model.getdetails().size()==0)thrownewcustomerexception("拆零明细数据不能为空");model.setremark("pos拆零");model.setid(stringutil.getuuid());model.setcreatedate(now);model.setauditstate(status.forbidden.getvalue());……saleproductsplitdao.insert(model);//添加数据库splitdetailresultdetail=null;for(splitdetaildetail:model.getdetails()){resultdetail=detail;//2添加明细baseproductbaseproduct=baseproductservice.findbyid(detail.getproductid());if(baseproduct==null)thrownewcustomerexception("商品表中没有此类产品("+detail.getproductcode()+")");detail.setid(stringutil.getuuid());detail.setproductcode(stockconstant.split_pref);detail.setaftersplitcount(detail.getsplitcount()*long.parselong(detail.getscatteredcoefficient()));detail.setsplitno(model.getsplitno());detail.setauditstate(status.normal.getvalue());detail.setaudituser(model.getauditor());……splitdetaildao.insert(detail);//插入明细//3.进行产品减库存baseproduct.settotalstorage(baseproduct.gettotalstorage().subtract(stockbatchinventory.getstockcount()));list<condition>updatelist=newarraylist<condition>();list<condition>wherelist=newarraylist<condition>();wherelist.add(condition.createeq("productid",baseproduct.getproductid()));updatelist.add(condition.createeq("totalstorage",baseproduct.gettotalstorage()));mapmap=newhashmap<string,object>();map.put("updatelist",updatelist);map.put("wherelist",wherelist);baseproductdao.updatebyparam(map);//4.添加拆零产品到产品表中,如果原来有,就添加baseproductexamplebaseproductexample=newbaseproductexample();baseproductexample.criteriabaseproductexamplecriteria=baseproductexample.createcriteria();baseproductexamplecriteria.andstoreidequalto(localuser.getstoreid());baseproductexamplecriteria.andproductcodeequalto(detail.getproductcode());list<baseproduct>baseproductlist=baseproductdao.selectbyexample(baseproductexample);baseproductnewproduct=newbaseproduct();if(baseproductlist!=null&&baseproductlist.size()>0){//更新原产品baseproductoldproduct=baseproductlist.get(0);oldproduct.settotalstorage(oldproduct.gettotalstorage().add(newbigdecimal(detail.getaftersplitcount())));oldproduct.setretailprice(newbigdecimal(detail.getafterretailprice()));……baseproductdao.insert(newproduct);}//5减少一个批次库存stockbatchinventory.setstockcount(stockbatchinventory.getstockcount().subtract(newbigdecimal(detail.getsplitcount())));updatelist=newarraylist<condition>();wherelist=newarraylist<condition>();wherelist.add(condition.createeq("inventoryid",stockbatchinventory.getinventoryid()));wherelist.add(condition.createeq("storeid",localuser.getstoreid()));updatelist.add(condition.createeq("stockcount",stockbatchinventory.getstockcount()));map=newhashmap<string,object>();map.put("updatelist",updatelist);map.put("wherelist",wherelist);stockbatchinventorydao.updatebyparam(map);//6新增一个批次库存stockbatchinventorynewinventory=newstockbatchinventory();newinventory.setbatchno(model.getsplitno());//用拆零主单的splitno作为新的批号newinventory.setstoreid(model.getstoreid());newinventory.setlotno(model.getsplitno());newinventory.setoperator(localuser.getusername());newinventory.setoperatorid(localuser.getuserid());newinventory.setsuppliername(model.getsplituser());newinventory=setstockbatchinventroy(newinventory,detail,newproduct);stockbatchinventoryservice.insert(newinventory);}步骤五、更改收银页面的药品为拆零药品信息,如产品编码、零售价、单位等进行销售,同时发送审核信息到审核人员待办箱;如://替换成拆零单functioninsertsplit(){$.ajax({url:url,data:para,type:"post",success:function(json){json=json||{};if(json.statuscode==200){//更新detail列表数据varselrows=$table.bootstraptable('getselections');varseldata=selrows[0];vardataall=$table.bootstraptable('getdata');vardata=json.data;$.each(dataall,function(i,obj){if(obj.linenum==seldata.linenum){obj.inventoryid=data.inventoryid;obj.productcode=data.productcode;obj.batchno=data.batchno;obj.salecount=seldata.salecount;obj.retailprice=data.afterretailprice;obj.stockcount=data.aftersplitcount;obj.issplitdrug=1;obj.localretailprice=data.afterretailprice;obj.originalprice=data.afterretailprice;……}});//重新加载$table.bootstraptable('load',dataall);refreshsaleorder();}elseif(json.msg){msgalert("错误",json.msg);}});}步骤六、审核人员通过待办箱接收到审核信息,点击链接进入拆零单,点击审核按钮弹出审核窗口,输入审核意见等信息,保存,更改拆零单审核状态,生成拆零报表数据。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1