osbzr/gooderp_addons

View on GitHub
core/models/res_company.py

Summary

Maintainability
A
0 mins
Test Coverage
# -*- coding: utf-8 -*-
from odoo import api, fields, models, tools
from odoo.exceptions import UserError
import os
from odoo.tools import misc
import re
# 成本计算方法,已实现 先入先出

CORE_COST_METHOD = [('average', u'全月一次加权平均法'),
                    ('std',u'定额成本'),
                    ('fifo', u'先进先出法'),
                    ]


class ResCompany(models.Model):
    _inherit = 'res.company'

    @api.one
    @api.constrains('email')
    def _check_email(self):
        ''' 验证 email 合法性 '''
        if self.email:
            res = re.match('^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$', self.email)
            if not res:
                raise UserError(u'请检查邮箱格式是否正确: %s' % self.email)

    start_date = fields.Date(u'启用日期',
                             required=True,
                             default=lambda self: fields.Date.context_today(self))
    cost_method = fields.Selection(CORE_COST_METHOD, u'存货计价方法',
                                   help=u'''GoodERP仓库模块使用先进先出规则匹配
                                   每次出库对应的入库成本和数量,但不实时记账。
                                   财务月结时使用此方法相应调整发出成本''', default='average', required=True)
    draft_invoice = fields.Boolean(u'根据发票确认应收应付',
                                   help=u'勾选这里,所有新建的结算单不会自动记账')
    import_tax_rate = fields.Float(string=u"默认进项税税率")
    output_tax_rate = fields.Float(string=u"默认销项税税率")
    bank_account_id = fields.Many2one('bank.account', string=u'开户行')

    def _get_logo(self):
        return self._get_logo_impl()

    def _get_logo_impl(self):
        ''' 默认取 core/static/description 下的 logo.png 作为 logo'''
        return open(misc.file_open('core/static/description/logo.png').name, 'rb') .read().encode('base64')

    logo = fields.Binary(related='partner_id.image',
                         default=_get_logo, attachment=True)
    company_id = fields.Many2one(
        'res.company',
        string=u'公司',
        change_default=True,
        default=lambda self: self.env['res.company']._company_default_get())