Odoo 中文社区

    • 注册
    • 登录
    • 搜索
    • 版块
    • 标签
    • 热门
    • 用户
    • 群组

    Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

    由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

    本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

    开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

    如果您登录系统碰到问题,请在微信公众号留言:

    请教数据纪录实时保存的问题

    Odoo 开发与实施交流
    4
    8
    5110
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • J
      jerry79 最后由 编辑

      我在修改sales order模块,遇到了一个问题,这个模板下,每此新建订单,会自动生成一个订单号码,此号码是流水号,依次递增,如SO001,SO002等
      我现在在确认订单函数中增加了一段代码,如下:

      <br />if body_text1[0]&#91;&#039;amount_total&#039;]==0.0:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; raise osv.except_osv(_(&#039;错误 !&#039;),<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _(&#039;订单总金额为零,请确认已选择产品或已计算订单总金额&#039;))<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return False<br />
      


      这段代码的意思是,如果订单总金额为零,则不能继续执行,用这段代码控制用户忘记选择产品或者忘记计算总金额。
      现在遇到的问题是,如果用户是忘记选择产品,而直接点击了“订单确认”,那么弹出错误提示后,在重新选择产品时,会提示“订单号已存在”,也就是说刚才的订单已经保存,此时手动修改订单号,可以继续。
      请问这个问题应如何解决呢?
      非常感谢!

      1 条回复 最后回复 回复 引用 0
      • digitalsatori
        digitalsatori 管理员 最后由 编辑

        兄弟你贴出的代码与 “订单号已存在” 错误没有什么关联,问题应该在你的订单号定制部分的代码。

        【上海先安科技】(tony AT openerp.cn)

        1 条回复 最后回复 回复 引用 0
        • J
          jjx 最后由 编辑

          订单确认执行的是工作流 转换

          你这个需求应该在sale_order 的create 中进行

          判断vals的order_line是否是[] 无明细或对其中的记录进行判断来确定

          1 条回复 最后回复 回复 引用 0
          • digitalsatori
            digitalsatori 管理员 最后由 编辑

            @jjx 终于又看到你的身影了,真是久违了
            要寻找大牛的弟兄们,大牛现身了,别再让他跑了 😉

            【上海先安科技】(tony AT openerp.cn)

            1 条回复 最后回复 回复 引用 0
            • mrshelly
              mrshelly 最后由 编辑

              我一般取消  销售单号的 Default . 让销售单号只读. 然后 在create 方法里去给添加订单流水号...

              1 条回复 最后回复 回复 引用 0
              • J
                jjx 最后由 编辑

                [quote author=digitalsatori link=topic=2800.msg9443#msg9443 date=1331214475]
                @jjx 终于又看到你的身影了,真是久违了
                要寻找大牛的弟兄们,大牛现身了,别再让他跑了 😉
                [/quote]

                绝不敢当啊,比在座各位对openerp的理解差远了,现在正在每天看贴子学习呢

                1 条回复 最后回复 回复 引用 0
                • J
                  jerry79 最后由 编辑

                  谢谢大家,不过还是有问题需要请教。
                  我在create中做判断,在新建订单明细的时候就提示错误了,导致无法添加订单明细,代码如下:

                  <br />def create(self, cr, uid, vals, context={}):<br />&nbsp; &nbsp; &nbsp; &nbsp; if not &#039;order_line&#039; in vals or not vals&#91;&#039;order_line&#039;]:&nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; raise osv.except_osv(_(&#039;错误 !&#039;),<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _(&#039;订单总金额为零,请确认已选择产品&#039;))<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return False<br />&nbsp; &nbsp; &nbsp; &nbsp; return super(sales_order,self).create(cr, uid, vals, context)<br />
                  


                  我想这个问题应该是在新建订单明细的时候,就执行了create动作,但是我是希望我点“确认订单”的时候再判断order_line的情况,请问这时我应该如何修改create函数呢?
                  暂时有另外一个解决办法,在确认订单时:

                  <br />if get_order_line==&#91;]:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; raise osv.except_osv(_(&#039;错误 !&#039;),<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _(&#039;订单总金额为零,请确认已选择产品&#039;))<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return False<br />
                  


                  我之前是判断amount_total,改成判断order_line就没有问题了。

                  1 条回复 最后回复 回复 引用 0
                  • First post
                    Last post