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

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

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

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

如何删除sql_constraints?



  • HornERP2.0的测试者提出系统不支持负数凭证,这对于中国会计来说是个比较大的问题。经分析发现accoun.py中有
    ('credit_debit2', 'CHECK (credit+debit>=0)', 'Wrong credit or debit value in model !'),
    这样一句,也就是说金额小于零就会报错。
    这样设计估计是为了集成过账方便设计,但总账这边手工输入凭证的话不能负数确实不太合理。所以请大家帮忙想一下如何不修改原有account模块通过继承的方式去掉这个sql_constraints



  • HornERP2.0的测试者提出系统不支持负数凭证,这对于中国会计来说是个比较大的问题。经分析发现accoun.py中有
    ('credit_debit2', 'CHECK (credit+debit>=0)', 'Wrong credit or debit value in model !'),
    这样一句,也就是说金额小于零就会报错。
    这样设计估计是为了集成过账方便设计,但总账这边手工输入凭证的话不能负数确实不太合理。所以请大家帮忙想一下如何不修改原有account模块通过继承的方式去掉这个sql_constraints



  • 试了一下用继承的方式, 没效果, 看了一下orm.py里面对sql_constraint是这么处理的
    [code]
            for (key, con, _) in self.sql_constraints:
                conname = '%s
    %s' % (self._table, key)
                cr.execute("SELECT conname FROM pg_constraint where conname=%s", (conname,))
                if not cr.dictfetchall():
                    query = 'ALTER TABLE "%s" ADD CONSTRAINT "%s" %s' % (self._table, conname, con,)
                    try:
                        cr.execute(query)
                        cr.commit()
                    except:
                        logger.notifyChannel('orm', netsvc.LOG_WARNING, 'unable to add '%s' constraint on table %s !\n If you want to have it, you should update the records and execute manually:\n%s' % (con, self._table, query))
                        cr.rollback()

    [/code]

    就是先前的check如果存在的话是不会被覆盖掉的, 最简单就是改account.py里面的, 然后手动把pg里面的去掉



  • 用ir.actions.todo暴力删除了。
                if o.allow == 'yes':
                    cr.execute("ALTER TABLE account_move_line DROP CONSTRAINT account_move_line_credit_debit2")
                    cr.commit()



  • 暴力删除也是个方案。 呵呵, 俺没想到



  • 这个需求可以到官方发个.


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待