Before this change, we bringed to the user the posibility to select the option “Unified Book” (boolean) on journals with type “Sales” and Pre-printed Invoice “AFIP POS System”. This allowed all documents with the same letter document to use the same sequence, and it does not matter if they are invoices, credit notes or debit notes for example. Now that functionality is deleted and all documents will have their own sequence regardless of the letter document of each receipt. closes odoo/odoo#88129 Signed-off-by: Josse Colpaert <jco@odoo.com>
74 lines
3.3 KiB
Python
74 lines
3.3 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import models, api, _
|
|
from odoo.exceptions import UserError
|
|
from odoo.http import request
|
|
|
|
|
|
class AccountChartTemplate(models.Model):
|
|
|
|
_inherit = 'account.chart.template'
|
|
|
|
def _get_fp_vals(self, company, position):
|
|
res = super()._get_fp_vals(company, position)
|
|
if company.country_id.code == "AR":
|
|
res['l10n_ar_afip_responsibility_type_ids'] = [
|
|
(6, False, position.l10n_ar_afip_responsibility_type_ids.ids)]
|
|
return res
|
|
|
|
def _prepare_all_journals(self, acc_template_ref, company, journals_dict=None):
|
|
""" In case of an Argentinean CoA, we modify the default values of the sales journal to be a preprinted journal"""
|
|
res = super()._prepare_all_journals(acc_template_ref, company, journals_dict=journals_dict)
|
|
if company.country_id.code == "AR":
|
|
for vals in res:
|
|
if vals['type'] == 'sale':
|
|
vals.update({
|
|
"name": "Ventas Preimpreso",
|
|
"code": "0001",
|
|
"l10n_ar_afip_pos_number": 1,
|
|
"l10n_ar_afip_pos_partner_id": company.partner_id.id,
|
|
"l10n_ar_afip_pos_system": 'II_IM',
|
|
"refund_sequence": False
|
|
})
|
|
return res
|
|
|
|
@api.model
|
|
def _get_ar_responsibility_match(self, chart_template_id):
|
|
""" return responsibility type that match with the given chart_template_id
|
|
"""
|
|
match = {
|
|
self.env.ref('l10n_ar.l10nar_base_chart_template').id: self.env.ref('l10n_ar.res_RM'),
|
|
self.env.ref('l10n_ar.l10nar_ex_chart_template').id: self.env.ref('l10n_ar.res_IVAE'),
|
|
self.env.ref('l10n_ar.l10nar_ri_chart_template').id: self.env.ref('l10n_ar.res_IVARI'),
|
|
}
|
|
return match.get(chart_template_id)
|
|
|
|
def _load(self, company):
|
|
""" Set companies AFIP Responsibility and Country if AR CoA is installed, also set tax calculation rounding
|
|
method required in order to properly validate match AFIP invoices.
|
|
|
|
Also, raise a warning if the user is trying to install a CoA that does not match with the defined AFIP
|
|
Responsibility defined in the company
|
|
"""
|
|
self.ensure_one()
|
|
coa_responsibility = self._get_ar_responsibility_match(self.id)
|
|
if coa_responsibility:
|
|
company_responsibility = company.l10n_ar_afip_responsibility_type_id
|
|
company.write({
|
|
'l10n_ar_afip_responsibility_type_id': coa_responsibility.id,
|
|
'country_id': self.env['res.country'].search([('code', '=', 'AR')]).id,
|
|
'tax_calculation_rounding_method': 'round_globally',
|
|
})
|
|
# set CUIT identification type (which is the argentinean vat) in the created company partner instead of
|
|
# the default VAT type.
|
|
company.partner_id.l10n_latam_identification_type_id = self.env.ref('l10n_ar.it_cuit')
|
|
|
|
res = super()._load(company)
|
|
|
|
# If Responsable Monotributista remove the default purchase tax
|
|
if self == self.env.ref('l10n_ar.l10nar_base_chart_template') or \
|
|
self == self.env.ref('l10n_ar.l10nar_ex_chart_template'):
|
|
company.account_purchase_tax_id = self.env['account.tax']
|
|
|
|
return res
|