mirror of
https://github.com/bringout/oca-ocb-accounting.git
synced 2026-04-21 16:02:01 +02:00
19.0 vanilla
This commit is contained in:
parent
ba20ce7443
commit
768b70e05e
2357 changed files with 1057103 additions and 712486 deletions
|
|
@ -1,11 +1,78 @@
|
|||
from odoo import models
|
||||
from odoo import api, Command, fields, models
|
||||
|
||||
|
||||
class BaseDocumentLayout(models.TransientModel):
|
||||
_inherit = 'base.document.layout'
|
||||
|
||||
from_invoice = fields.Boolean()
|
||||
qr_code = fields.Boolean(related='company_id.qr_code', readonly=False)
|
||||
vat = fields.Char(related='company_id.vat', readonly=False,)
|
||||
account_number = fields.Char(compute='_compute_account_number', inverse='_inverse_account_number',)
|
||||
|
||||
def document_layout_save(self):
|
||||
"""Save layout and onboarding step progress, return super() result"""
|
||||
res = super(BaseDocumentLayout, self).document_layout_save()
|
||||
for wizard in self:
|
||||
wizard.company_id.action_save_onboarding_invoice_layout()
|
||||
if step := self.env.ref('account.onboarding_onboarding_step_base_document_layout', raise_if_not_found=False):
|
||||
for company_id in self.company_id:
|
||||
step.with_company(company_id).action_set_just_done()
|
||||
# When we finish the configuration of the layout, we want the dialog size to be reset to large
|
||||
# which is the default behaviour.
|
||||
if res.get('context'):
|
||||
res['context']['dialog_size'] = 'large'
|
||||
return res
|
||||
|
||||
def _get_preview_template(self):
|
||||
if (
|
||||
self.env.context.get('active_model') == 'account.move'
|
||||
and self.env.context.get('active_id')
|
||||
):
|
||||
return 'account.report_invoice_wizard_iframe'
|
||||
return super()._get_preview_template()
|
||||
|
||||
def _get_render_information(self, styles):
|
||||
res = super()._get_render_information(styles)
|
||||
|
||||
if (
|
||||
self.env.context.get('active_model') == 'account.move'
|
||||
and (active_id := self.env.context.get('active_id'))
|
||||
):
|
||||
res['o'] = self.env['account.move'].browse(active_id)
|
||||
|
||||
if self._get_preview_template() in [
|
||||
'web.report_invoice_wizard_preview',
|
||||
'account.report_invoice_wizard_iframe'
|
||||
]:
|
||||
res.update({
|
||||
'qr_code': self.qr_code,
|
||||
'account_number': self.account_number,
|
||||
})
|
||||
|
||||
return res
|
||||
|
||||
@api.depends('partner_id', 'account_number')
|
||||
def _compute_account_number(self):
|
||||
for record in self:
|
||||
if record.partner_id.bank_ids:
|
||||
record.account_number = record.partner_id.bank_ids[0].acc_number or ''
|
||||
else:
|
||||
record.account_number = ''
|
||||
|
||||
@api.depends('qr_code', 'account_number')
|
||||
def _compute_preview(self):
|
||||
# EXTENDS 'web' to add dependencies
|
||||
super()._compute_preview()
|
||||
|
||||
def _inverse_account_number(self):
|
||||
for record in self:
|
||||
if record.partner_id.bank_ids and record.account_number:
|
||||
bank = record.partner_id.bank_ids[0]
|
||||
if bank.acc_number != record.account_number:
|
||||
bank.allow_out_payment = False
|
||||
bank.acc_number = record.account_number
|
||||
bank.allow_out_payment = True
|
||||
elif record.account_number:
|
||||
record.partner_id.bank_ids += self.env['res.partner.bank']._find_or_create_bank_account(
|
||||
account_number=record.account_number,
|
||||
partner=record.partner_id, allow_company_account_creation=True,
|
||||
company=record.company_id,
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue