本发明基于互联网门店系统平台,特别涉及一种一种基于门店系统实现重打小票的方法。
背景技术:
::在门店销售商品的时候,大部份门店都会在销售完成之后立马打印小票顾客,但有些门店会考虑小票纸张的成本,如果顾客没有当场索要,就没有主动打印,如此下来能节省一部份成本。但这样会产生新的问题,如果顾客因某事需要小票进行报销,回到门店索要小票,收银系统却没有提供一种可事后打印小票功能,遇到这种问题,门店收银员就无法处理了。本发明针以上问题,在收银页面提供重打小票的按钮,收银员只需点击按钮,进入到重打小票窗口,勾选顾客购买的商品信息,然后通过右下角的打印按钮就能打印出新的销售小票,解决了顾客遗失小票或者忘记小票回到门店索要小票时,门店系统无法重打小票的问题。技术实现要素:本发明解决的技术问题在于提供一种基于门店系统实现重打小票的方法;本发明解决了顾客遗失小票或者忘记小票回到门店索要小票时,门店系统无法重打小票的问题。本发明解决上述技术问题的技术方案是:一、创建带有订单及明细表格的重打小票的窗口;二、当打开重打小票窗口时自动请求后台加载最近的订单与明细数据;三、收银员通过查询筛选或者直接勾选需要打印的订单,然后点击打印按钮触发页面中的脚本打印函数;四、在打印函数中将所选的数据进行解析与排版,然后通过自定义浏览器提供的打印接口实现重打小票功能。所述的方法具体包括如下步骤:步骤一、创建带有订单及明细表格的重打小票的窗口;所述的具体步骤如下:(1)在项目中引入bootstrap样式与脚本;(2)创建基于bootstrap的redoticketmodal页面,并给modal的id设定为redoticketmodal;(3)在modal页面中添加redotickettable表格,用于加载销售主单据,redoticketdetailtable表格,用于加载销售明细,以及用于查询的form表单,表单中有销售单号输入框、商品名称输入框等控件。步骤二、打开重打小票窗口;所述的具体步骤如下:(1)在收银页添加重打小票按钮;(2)给按钮添加onclick事件,当收银员点击按钮时触发redoticket方法;(3)在modal页中的$(function(){}脚本函数体中通过modal的初始化函数izimodal,初始化modal相关参数,如标题、颜色、窗口大小以及打开事件及关闭事件;(4)在收银页通过$("#redoticketmodal").izimodal("open")方法打开重打小票窗口。步骤三、自动请求后台加载最近的订单与明细数据;所述的具体步骤如下:(1)在重新小票窗口中的onopened方法中调用initredotickettable方法初始化表格;(2)设定表格数据请求url、分页数、排序、展示列等相关参数信息;(3)添加ondblclickrow事件,当进行表格行双击时也可打印当前数据;(4)添加加载明细的loaddetail(row.saleorderid)方法以及bootstraptable("refreshoptions")刷新方法。步骤四、给销售明细添加同样的提成开关与提成比例项,当进行商品销售时,把商品资料的提成信息插入到销售明细中。步骤五、收银员通过查询筛选或者直接勾选需要打印的订单。步骤六、打印按钮触发页面中的脚本打印函数,所述的具体步骤如下:(1)给打印按钮绑定onclick事件printoveric,所需参数有:主表单及明细所对应的表格id号;(2)根据$ordertable.bootstraptable("getselections"),获取所选要打印的表单数据信息,然后进行解析,拼装成符合小票抬头格式规范的字符串;(3)根据$detailtable.bootstraptable("getdata"),获取所选主表单所对应的明细信息,使用jquery的$.each方法,将明细中的数据依次拼状成小票票体部份;(4)将上述生成的字符串做为打印参数,然后调用自定义浏览器提供的打印接口进行打印。步骤七、自定义浏览器提供的打印接口,所述的打印接口具体实现如下:(1)在浏览器中创建打印函数,在函数体内对打印字体、宽度、距离等进行设置,然后创建printdocument对象pd,调用系统的pd.print方法进行打印;(2)通过反射机制将c#打印函数注册到js中,生成对外提供的接口。本发明的有益效果:在收银页面提供重打小票的按钮,收银员只需点击按钮,进入到重打小票窗口,勾选顾客购买的商品信息,然后通过右下角的打印按钮就能打印出新的销售小票,从而实现了一种快速重打销售票据的目的;有效地解决了顾客遗失小票或者忘记小票回到门店索要小票时,门店系统无法重打小票的问题。附图说明下面结合附图对本发明进一步说明:图1为本发明的流程图。具体实施方式如图1所示,本发明采用如下步骤:步骤一、创建带有订单及明细表格的重打小票的窗口;所述的具体步骤如下:(1)在项目中引入bootstrap样式与脚本;(2)创建基于bootstrap的redoticketmodal页面,并给modal的id设定为redoticketmodal;(3)在modal页面中添加redotickettable表格,用于加载销售主单据,redoticketdetailtable表格,用于加载销售明细,以及用于查询的form表单,表单中有销售单号输入框、商品名称输入框等控件。步骤二、打开重打小票窗口;所述的具体步骤如下:(1)在收银页添加重打小票按钮;(2)给按钮添加onclick事件,当收银员点击按钮时触发redoticket方法;(3)在modal页中的$(function(){}脚本函数体中通过modal的初始化函数izimodal,初始化modal相关参数,如标题、颜色、窗口大小以及打开事件及关闭事件;(4)在收银页通过$("#redoticketmodal").izimodal("open")方法打开重打小票窗口。步骤三、自动请求后台加载最近的订单与明细数据;所述的具体步骤如下:(1)在重新小票窗口中的onopened方法中调用initredotickettable方法初始化表格;(2)设定表格数据请求url、分页数、排序、展示列等相关参数信息;(3)添加ondblclickrow事件,当进行表格行双击时也可打印当前数据;(4)添加加载明细的loaddetail(row.saleorderid)方法以及bootstraptable("refreshoptions")刷新方法。步骤四、给销售明细添加同样的提成开关与提成比例项,当进行商品销售时,把商品资料的提成信息插入到销售明细中。步骤五、收银员通过查询筛选或者直接勾选需要打印的订单。步骤六、打印按钮触发页面中的脚本打印函数,所述的具体步骤如下:(1)给打印按钮绑定onclick事件printoveric,所需参数有:主表单及明细所对应的表格id号;(2)根据$ordertable.bootstraptable("getselections"),获取所选要打印的表单数据信息,然后进行解析,拼装成符合小票抬头格式规范的字符串;(3)根据$detailtable.bootstraptable("getdata"),获取所选主表单所对应的明细信息,使用jquery的$.each方法,将明细中的数据依次拼状成小票票体部份;(4)将上述生成的字符串做为打印参数,然后调用自定义浏览器提供的打印接口进行打印。步骤七、自定义浏览器提供的打印接口,所述的打印接口具体实现如下:(1)在浏览器中创建打印函数,在函数体内对打印字体、宽度、距离等进行设置,然后创建printdocument对象pd,调用系统的pd.print方法进行打印;如:publicstaticboolticketprint(printmodel[]pms){boolresult=true;try{printmodels=pms;printdocumentpd=newprintdocument();pd.printcontroller=newsystem.drawing.printing.standardprintcontroller();papersizepagesize=newpapersize("custom",getyc(193),600);pd.defaultpagesettings.margins.top=2;pd.defaultpagesettings.margins.left=5;pd.defaultpagesettings.papersize=pagesize;pd.printersettings.printername=pd.defaultpagesettings.printersettings.printername;//默认打印机pd.printpage =newprintpageeventhandler(pd_printpage1);pd.print();}catch(exceptionex){result=false;}finally{}returnresult;}(2)通过反射机制将c#打印函数注册到js中,生成对外提供的接口。如:publicvoidregisterjs(){jseventjs=newjsevent();cef=newcefjsv8handler(js);stringjavascriptcode=cefjavascriptex.createjscodebyobject(js,"cef");cefruntime.registerextension("cef",javascriptcode,cef);}。当前第1页1 2 3 当前第1页1 2 3 
技术特征:1.一种基于门店系统实现重打小票的方法,其特征在于:一、创建带有订单及明细表格的重打小票的窗口;二、当打开重打小票窗口时自动请求后台加载最近的订单与明细数据;三、收银员通过查询筛选或者直接勾选需要打印的订单,然后点击打印按钮触发页面中的脚本打印函数;四、在打印函数中将所选的数据进行解析与排版,然后通过自定义浏览器提供的打印接口实现重打小票功能。
2.根据权利要求1所述的一种基于门店系统实现重打小票的方法,其特征在于:创建带有订单及明细表格的重打小票的窗口,其具体步骤如下:
第一步,在项目中引入bootstrap样式与脚本;
第二步,创建基于bootstrap的redoticketmodal页面,并给modal的id设定为redoticketmodal;
第三步,在modal页面中添加redotickettable表格,用于加载销售主单据,redoticketdetailtable表格,用于加载销售明细,以及用于查询的form表单,表单中有销售单号输入框、商品名称输入框等控件。
3.根据权利要求1所述的一种基于门店系统实现重打小票的方法,其特征在于:如何打开重打小票窗口,具体实现步骤如下:
第一步,在收银页添加重打小票按钮;
第二步,给按钮添加onclick事件,当收银员点击按钮时触发redoticket方法;
第三步,在modal页中的$(function(){}脚本函数体中通过modal的初始化函数izimodal,初始化modal相关参数,如标题、颜色、窗口大小以及打开事件及关闭事件;
第四步,在收银页通过$("#redoticketmodal").izimodal("open")方法打开重打小票窗口。
4.根据权利要求4所述的一种基于门店系统实现重打小票的方法,其特征在于:自动请求后台加载最近的订单与明细数据,所述加载数据功能实现如下:
第一步,在重新小票窗口中的onopened方法中调用initredotickettable方法初始化表格;
第二步,设定表格数据请求url、分页数、排序、展示列等相关参数信息;
第三步,添加ondblclickrow事件,当进行表格行双击时也可打印当前数据;
第四步,添加加载明细的loaddetail(row.saleorderid)方法以及bootstraptable("refreshoptions")刷新方法。
5.根据权利要求4所述的一种基于门店系统实现重打小票的方法,其特征在于:收银员通过查询筛选或者直接勾选需要打印的订单。
6.根据权利要求1所述的一种基于门店系统实现重打小票的方法,其特征在于:打印按钮触发页面中的脚本打印函数,所述的具体步骤如下:
第一步,给打印按钮绑定onclick事件printoveric,所需参数有:主表单及明细所对应的表格id号;
第二步,根据$ordertable.bootstraptable("getselections"),获取所选要打印的表单数据信息,然后进行解析,拼装成符合小票抬头格式规范的字符串;
第三步,根据$detailtable.bootstraptable("getdata"),获取所选主表单所对应的明细信息,使用jquery的$.each方法,将明细中的数据依次拼状成小票票体部份;
第四步,将上述生成的字符串做为打印参数,然后调用自定义浏览器提供的打印接口进行打印。
7.根据权利要求1所述的一种基于门店系统实现重打小票的方法,其特征在于:自定义浏览器提供的打印接口,所述的打印接口具体实现如下:
第一步,在浏览器中创建打印函数,在函数体内对打印字体、宽度、距离等进行设置,然后创建printdocument对象pd,调用系统的pd.print方法进行打印;
第二步,通过反射机制将c#打印函数注册到js中,生成对外提供的接口。
技术总结本发明基于互联网门店系统平台,特别涉及一种基于门店系统实现重打小票的方法:一、创建带有订单及明细表格的重打小票的窗口;二、当打开重打小票窗口时自动请求后台加载最近的订单与明细数据;三、收银员通过查询筛选或者直接勾选需要打印的订单,然后点击打印按钮触发页面中的脚本打印函数;四、在打印函数中将所选的数据进行解析与排版,然后通过自定义浏览器提供的打印接口实现重打小票功能。本发明解决了顾客遗失小票或者忘记小票回到门店索要小票时,门店系统无法重打的问题。
技术研发人员:陈林;张来卿;庞严冬;文新
受保护的技术使用者:珠海横琴盛达兆业科技投资有限公司
技术研发日:2018.11.29
技术公布日:2020.06.05