<commit_before># -*- coding: utf-8 -*-
from openerp.osv import fields, osv
from openerp.tools.translate import _
import re


class res_partner(osv.osv):
    _inherit = 'res.partner'

    _columns = {
        'responsability_id': fields.many2one(
            'afip.responsability',
            'Responsability'
        ),
        'document_type_id': fields.many2one(
            'afip.document_type',
            'Document type',
            on_change="onchange_document(vat,document_type_id,document_number)"
        ),
        'document_number': fields.char(
            'Document number',
            size=64, select=1,
            on_change="onchange_document(vat,document_type_id,document_number)"
        ),
        'iibb': fields.char('Ingresos Brutos', size=64),
        'start_date': fields.date('Inicio de actividades'),
    }

    def onchange_document(self, cr, uid, ids, vat, document_type,
                          document_number, context={}):
        v = {}
        m = None
        mod_obj = self.pool.get('ir.model.data')
        if document_number and \
                (u'afip.document_type', document_type) == \
                mod_obj.get_object_reference(
                    cr, uid, 'l10n_ar_invoice', 'dt_CUIT'):
            document_number = re.sub('[^1234567890]', '', str(document_number))
            if not self.check_vat_ar(document_number):
                m = {'title': _('Warning!'),
                     'message': _('VAT Number is wrong.\n'
                                  ' Please verify the number before continue.')}
            if vat is False:
                v['vat'] = 'AR%s' % document_number
            v['document_number'] = document_number
        return {'value': v,
                'warning': m}

    # TODO: v8
    # def onchange_vat(self, cr, uid, ids, vat, document_type, document_number,
    #                  context={}):
    #     """
    #     Not used because is complex to integrate.
    #     Could be associated to country?
    #     """
    #     country_obj = self.pool.get('res.country')
    #     doc_type_obj = self.pool.get('afip.document_type')

    #     cuit_document_type_id = doc_type_obj.search(cr, uid,
    #                                                 [('code', '=', 'CUIT')])

    #     v = {}
    #     if vat[:2].lower() == 'ar' and document_type is False and \
    #             document_number is False:
    #         v['document_type'] = cuit_document_type_id
    #         v['document_number'] = vat[2:]
    #     elif document_type is False and document_number is False:
    #         country_ids = country_obj.search(cr, uid,
    #                                          [('code', '=', vat[:2].upper())])
    #         iva_data = country_obj.read(cr, uid,
    #                                     country_ids,
    #                                     ['cuit_juridica', 'cuit_fisica'])
    #         v['document_type'] = cuit_document_type_id
    #         v['document_number'] = iva_data['cuit_juridica'
    #                                         if is_company else 'cuit_fisica']
    #     return { 'value': v }

    def afip_validation(self, cr, uid, ids, context={}):
        """
        Hay que validar si:
        - el partner no es de tipo 'consumidor final' tenga un CUIT asociado.
        - Si el cuit es extrangero, hay que asignar a document_number y
          document_type los correspondientes a la interpretación argentina del
          CUIT.
        - Si es responsable monotributo hay que asegurarse que tenga vat
          asignado. El documento y número de documento deberían ser DNI.
        - Si es responsable inscripto y persona juridica indicar el cuit copia
          del VAT.

        El objetivo es que en la generación de factura utilice la información de
        document_type y document_number.

        Otra opción es asignar a la argentina los prefijos: 'cuit' 'dni' 'ci',
        etc...

        Del prefijo se toma el número de documento. Que opinanará la comunidad?
        """
<commit_msg>[FIX] Otros errores tipográficos<commit_after># -*- coding: utf-8 -*-
from openerp.osv import fields, osv
from openerp.tools.translate import _
import re


class res_partner(osv.osv):
    _inherit = 'res.partner'

    _columns = {
        'responsability_id': fields.many2one(
            'afip.responsability',
            'Responsability'
        ),
        'document_type_id': fields.many2one(
            'afip.document_type',
            'Document type',
            on_change="onchange_document(vat,document_type_id,document_number)"
        ),
        'document_number': fields.char(
            'Document number',
            size=64, select=1,
            on_change="onchange_document(vat,document_type_id,document_number)"
        ),
        'iibb': fields.char('Ingresos Brutos', size=64),
        'start_date': fields.date('Inicio de actividades'),
    }

    def onchange_document(self, cr, uid, ids, vat, document_type,
                          document_number, context={}):
        v = {}
        m = None
        mod_obj = self.pool.get('ir.model.data')
        if document_number and \
                (u'afip.document_type', document_type) == \
                mod_obj.get_object_reference(
                    cr, uid, 'l10n_ar_invoice', 'dt_CUIT'):
            document_number = re.sub('[^1234567890]', '', str(document_number))
            if not self.check_vat_ar(document_number):
                m = {'title': _('Warning!'),
                     'message': _('VAT Number is wrong.\n'
                                  ' Please verify the number before continue.')}
            if vat is False:
                v['vat'] = 'AR%s' % document_number
            v['document_number'] = document_number
        return {'value': v,
                'warning': m}

    # TODO: v8
    # def onchange_vat(self, cr, uid, ids, vat, document_type, document_number,
    #                  context={}):
    #     """
    #     Not used because is complex to integrate.
    #     Could be associated to country?
    #     """
    #     country_obj = self.pool.get('res.country')
    #     doc_type_obj = self.pool.get('afip.document_type')

    #     cuit_document_type_id = doc_type_obj.search(cr, uid,
    #                                                 [('code', '=', 'CUIT')])

    #     v = {}
    #     if vat[:2].lower() == 'ar' and document_type is False and \
    #             document_number is False:
    #         v['document_type'] = cuit_document_type_id
    #         v['document_number'] = vat[2:]
    #     elif document_type is False and document_number is False:
    #         country_ids = country_obj.search(cr, uid,
    #                                          [('code', '=', vat[:2].upper())])
    #         iva_data = country_obj.read(cr, uid,
    #                                     country_ids,
    #                                     ['cuit_juridica', 'cuit_fisica'])
    #         v['document_type'] = cuit_document_type_id
    #         v['document_number'] = iva_data['cuit_juridica'
    #                                         if is_company else 'cuit_fisica']
    #     return { 'value': v }

    def afip_validation(self, cr, uid, ids, context={}):
        """
        Hay que validar si:
        - El partner no es de tipo 'consumidor final' tenga un CUIT asociado.
        - Si el CUIT es extranjero, hay que asignar a document_number y
          document_type los correspondientes a la interpretación argentina del
          CUIT.
        - Si es responsable monotributo hay que asegurarse que tenga VAT
          asignado. El documento y número de documento deberían ser DNI.
        - Si es Responsable Inscripto y Persona Jurídica indicar el CUIT copia
          del VAT.

        El objetivo es que en la generación de factura utilice la información de
        document_type y document_number.

        Otra opción es asignar a la argentina los prefijos: 'cuit' 'dni' 'ci',
        etc...

        Del prefijo se toma el número de documento. Que opinanará la comunidad?
        """

{'fraction_non_alphanumeric': 0.10666005208979289, 'fraction_numerical': 0.005953119186407045, 'mean_word_length': 1.7787732598208132, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 22, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7037417', 'n_tokens_mistral': 2454, 'n_tokens_neox': 2355, 'n_words': 593}