company.py 2.62 KB
# -*- coding: utf-8 -*-
##############################################################################
#
#    OpenERP, Open Source Management Solution
#    Copyright (C) 2011-2012 Domsense s.r.l. (<http://www.domsense.com>).
#    Copyright (C) 2012-2014 Agile Business Group sagl
#    (<http://www.agilebg.com>)
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU Affero General Public License as
#    published by the Free Software Foundation, either version 3 of the
#    License, or (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU Affero General Public License for more details.
#
#    You should have received a copy of the GNU Affero General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################

from openerp.osv import fields, orm


class ResCompany(orm.Model):
    _inherit = "res.company"
    _columns = {
        'allow_distributing_write_off': fields.boolean(
            'Allow distributing write-off',
            help="If not set, paying several 'cash basis' invoices with same "
                 "voucher with write-off won't be allowed. If set, write-off "
                 "will be distributed equally over invoices"),
    }


class AccountConfigSettings(orm.TransientModel):
    _inherit = 'account.config.settings'
    _columns = {
        'allow_distributing_write_off': fields.related(
            'company_id', 'allow_distributing_write_off',
            type="boolean",
            string="Allow distributing write-off",
            help="If not set, paying several 'cash basis' invoices with same "
                 "voucher with write-off won't be allowed. If set, write-off "
                 "will be distributed equally over invoices"),
    }

    def onchange_company_id(self, cr, uid, ids, company_id, context=None):
        res = super(AccountConfigSettings, self).onchange_company_id(
            cr, uid, ids, company_id, context=context)
        if company_id:
            company = self.pool.get('res.company').browse(
                cr, uid, company_id, context=context)
            res['value'].update({
                'allow_distributing_write_off': (
                    company.allow_distributing_write_off),
            })
        else:
            res['value'].update({
                'allow_distributing_write_off': False,
            })
        return res