跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 开发与实施交流
  4. POS的收据打印修改和吐糟

POS的收据打印修改和吐糟

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
13 帖子 4 发布者 12.8k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • O 离线
    O 离线
    old_taoist
    写于 最后由 编辑
    #1

    OPENERP V7的POS模块并没有完全集成入OPENERP,webclient访问pos,/OpenERP/report/pos_receipt.rml并不work,那只是为了pos模块后台打印sales order的需要。所有report/下的
    sxw文件都可通过designer修改。

    POS Web前台的显示和收据打印,主要是修改以下两个文件:
    ../openerp/addons/poinit_of_sale/static/css/pos.css
    ../openerp/addons/poinit_of_sale/static/xml/pos.xml

    显示这里暂时不说,先说打印。
    1、原始收据画蛇添足的加了个框子,走遍中外,我未发现有一家商铺的收据小票是这样的。所以要先改掉。
    ../openerp/addons/poinit_of_sale/static/css/pos.css  的827行

    border: solid 1px black !important;
    


    注销这一行,或改 1px 为 0px,或改 black 为 white

    2、更改打印页面尺寸
    ../openerp/addons/poinit_of_sale/static/css/pos.css  的771行

    width: 300px;
    


    改为相应纸张的宽度,我的是655,对应美国信纸(letter)尺寸,A4略窄 600~650之间,请自行调整。

    3、不知道是否由于纸的尺寸问题,收据中不打单价,每一个客户都在问“xx单价多少”,所以要打单价!
    这里有两个方案:
    A. 单价将显示在品名之后,like this “xx产品 at $15.00 / unit with a %15 discount.”
    B. 象正规发票一样有一专门的栏,放入产品单价和单位,这需要基本的html table开发能力
    原始table分三栏,2:1:1分布。参看第568行。可在578行前后,通过添加栏实现。如:

    &lt;td class=&quot;pos-right-align&quot;&gt;<br />&nbsp; &nbsp; &lt;t t-esc=&quot;orderline.get_unit_price()&quot;/&gt;<br />&lt;/td&gt;
    


    下边的小记、税、总额等要依次修改。


    我使用A方法, 这样改回小票比较方便。
    在572行之后加入:

    <br />At &lt;t t-esc=&quot;widget.format_currency(orderline.get_unit_price())&quot; /&gt; /&lt;t t-esc=&quot;orderline.get_unit().name&quot; /&gt;<br />
    


    然后,在3行之后(</t>之后)加

    <br />&lt;t t-if=&quot;orderline.get_discount() == 0&quot;&gt;<br />	At &lt;t t-esc=&quot;widget.format_currency(orderline.get_unit_price())&quot; /&gt; /&lt;t t-esc=&quot;orderline.get_unit().name&quot; /&gt;<br />&lt;/t&gt;<br />
    



    4、添加公司标志图像
    在558行之后添加

    <br />&lt;div&gt;<br />&nbsp; &nbsp;  &lt;img src=&quot;/point_of_sale/static/src/img/yourlogo.png&quot; /&gt;<br />&lt;/div&gt;<br />
    


    并上传图像文件。

    5. 原始js文件中不支持取地址,要自己开发(或者我未找到),所以简单自己添加在以上公司标志之下。



    基本的功能修改到此为止,下面开始吐糟:
    openerp的pos很诡异的使用html的一个子集在XML文件中实现最基本的格式功能,连最基本的<hr>都不支持。搞得我想要画条线都不行,只能table上画border,还得用css来画,而我的需求写在css文件中还不行。或许应找些开发资料来看,有明眼人或可告诉我。
    openerp每天都在滚动开发,这样的话pos web前端很有可能被覆盖,得搞一个定制模块实现此功能。否则有的改的。

    [attach=1]

    1 条回复 最后回复
    0
    • R 离线
      R 离线
      ryebread
      写于 最后由 编辑
      #2

      很好,正在试这个模块,也改了些东东,不过没你这么详细,也没这么好看,谢谢分享

      1 条回复 最后回复
      0
      • wjfonhandW 离线
        wjfonhandW 离线
        wjfonhand
        写于 最后由 编辑
        #3

        好像还有个打印出来的文字不够清晰的问题,osbzr版改过。

        欢迎具体到代码和解决方案的吐槽,楼主好样的!

        GoodERP -- Odoo China fork

        1 条回复 最后回复
        0
        • O 离线
          O 离线
          old_taoist
          写于 最后由 编辑
          #4

          [quote author=Jeff link=topic=14556.msg25142#msg25142 date=1383904927]
          好像还有个打印出来的文字不够清晰的问题,osbzr版改过。

          欢迎具体到代码和解决方案的吐槽,楼主好样的!
          [/quote]
          谢谢!
          你说的好像是颜色设定的问题(#555555),在热敏打印机上确实不够黑,但我用laserptr,非常好了,不需要改了。

          1 条回复 最后回复
          0
          • R 离线
            R 离线
            ryebread
            写于 最后由 编辑
            #5

            改颜色为black后好一点,但是从浏览器中打印出来还是不怎么清晰,直接使用系统打印就清晰了,这个问题不好解决

            1 条回复 最后回复
            0
            • O 离线
              O 离线
              old_taoist
              写于 最后由 编辑
              #6

              [quote author=ryebread link=topic=14556.msg25174#msg25174 date=1384131020]
              改颜色为black后好一点,但是从浏览器中打印出来还是不怎么清晰,直接使用系统打印就清晰了,这个问题不好解决
              [/quote]说容易也容易,
              还有一种方式是改变打印机模式设置,从raw变成txt,自己加控制符,使用打印机内置字体。没玩过DOS的人可能会抓瞎

              1 条回复 最后回复
              0
              • R 离线
                R 离线
                ryebread
                写于 最后由 编辑
                #7

                [quote author=old_taoist link=topic=14556.msg25186#msg25186 date=1384144822]
                [quote author=ryebread link=topic=14556.msg25174#msg25174 date=1384131020]
                改颜色为black后好一点,但是从浏览器中打印出来还是不怎么清晰,直接使用系统打印就清晰了,这个问题不好解决
                [/quote]说容易也容易,
                还有一种方式是改变打印机模式设置,从raw变成txt,自己加控制符,使用打印机内置字体。没玩过DOS的人可能会抓瞎
                [/quote]
                能说 具体点吗?找了下打印机的资料,TXT模式很少说,再吐下这两天谷哥很不给力呀,度娘基本不用的

                1 条回复 最后回复
                0
                • R 离线
                  R 离线
                  ryebread
                  写于 最后由 编辑
                  #8

                  发现一个简单的方法,chrome 启动时加--disable-print-preview 参数可以关闭打印预览,使用系统直接打印就清楚了

                  1 条回复 最后回复
                  0
                  • O 离线
                    O 离线
                    old_taoist
                    写于 最后由 编辑
                    #9

                    firefox 有一个插件叫AttendPrint,可以关闭对话框。pos中点击打印后对话框不出现,直接开始打印。但目前不兼容v25 or later

                    chrome是否有同样的插件不知道。

                    1 条回复 最后回复
                    0
                    • O 离线
                      O 离线
                      old_taoist
                      写于 最后由 编辑
                      #10

                      [quote author=ryebread link=topic=14556.msg25209#msg25209 date=1384242365]
                      [quote author=old_taoist link=topic=14556.msg25186#msg25186 date=1384144822]
                      [quote author=ryebread link=topic=14556.msg25174#msg25174 date=1384131020]
                      改颜色为black后好一点,但是从浏览器中打印出来还是不怎么清晰,直接使用系统打印就清晰了,这个问题不好解决
                      [/quote]说容易也容易,
                      还有一种方式是改变打印机模式设置,从raw变成txt,自己加控制符,使用打印机内置字体。没玩过DOS的人可能会抓瞎
                      [/quote]
                      能说 具体点吗?找了下打印机的资料,TXT模式很少说,再吐下这两天谷哥很不给力呀,度娘基本不用的
                      [/quote]
                      每种打印机都不同,要看具体的使用手册。通常是在text流中加十六进制控制符。可以在线通过发送指令方式临时切换到text模式。
                      如果想永久关闭raw模式,Windows下,在打印机属性里的-》高级-》打印处理器-》选择text模式。或直接改变打印机设定。

                      同样,打开钱箱,也可使用这种方式,例如规定刷卡时打印收据不开钱箱,收现金就开等。各个钱箱的开箱指令大都相同,个别不一样,要查手册。

                      1 条回复 最后回复
                      0
                      • R 离线
                        R 离线
                        ryebread
                        写于 最后由 编辑
                        #11

                        AttendPrint没找着for chrome的。RAW模式看来有点复杂,先对付着,看看其他的问题

                        1 条回复 最后回复
                        0
                        • P 离线
                          P 离线
                          pingwe
                          写于 最后由 编辑
                          #12

                          感觉这个pos 商品一多起来各种不好用

                          1 条回复 最后回复
                          0

                          • 登录

                          • 没有帐号? 注册

                          • 登录或注册以进行搜索。
                          • 第一个帖子
                            最后一个帖子
                          0
                          • 版块
                          • 标签
                          • 热门
                          • 用户
                          • 群组