<commit_before># -*- coding: utf-8 -*-
#
# Copyright 2016 Taŭga Tecnologia
#   <NAME> <<EMAIL>>
# License AGPL-3 or later (http://www.gnu.org/licenses/agpl)
#

from __future__ import division, print_function, unicode_literals

from odoo import api, fields, models
from ..constantes import CAMPO_DOCUMENTO_FISCAL_ITEM


class SpedDocumentoItem(models.Model):
    _inherit = 'sped.documento.item'

    def gera_account_move_line(self, account_move, move_template, line_ids,
                               campos_jah_contabilizados=[]):
        for item in self:
            for template_item in move_template.item_ids:
                if not getattr(item, template_item.campo, False):
                    continue

                if template_item.campo in campos_jah_contabilizados:
                    continue

                #
                # Nas notas de entrada por compra ou devolução de venda, se
                # não se vai aproveitar o crédito do imposto, ele não é
                # contabilizado à parte
                #
                if item.documento_id.eh_compra or \
                        item.documento_id.eh_devolucao_venda:
                    if template_item.campo in ('vr_icms', 'vr_icms_sn') and \
                            not item.credita_icms:
                        continue
                    elif template_item.campo == 'vr_icms_st' and \
                            not item.credita_icms_st:
                        continue
                    elif template_item.campo == 'vr_ipi' and \
                            not item.credita_ipi:
                        continue
                    elif template_item.campo in ('vr_pis_proprio',
                                                 'vr_cofins_proprio') and not item.credita_pis_cofins:
                        continue

                dados = {
                    'move_id': account_move.id,
                    'sped_documento_item_id': item.id,
                    'name': item.produto_id.nome,
                    'narration': template_item.campo,
                    'debit': getattr(item, template_item.campo, 0),
                    'currency_id': item.currency_id.id,
                }

                account_debito_id = None
                if template_item.account_debito_id:
                    account_debito_id = template_item.account_debito_id
                elif template_item.campo in CAMPO_DOCUMENTO_FISCAL_ITEM:
                    if item.documento_id.eh_venda:
                        account_debito_id = \
                            item.produto_id.product_id.property_account_income_id
                    elif item.documento_id.eh_compra:
                        account_debito_id = \
                            item.produto_id.product_id.property_account_expense_id
                else:
                    if item.documento_id.eh_venda:
                        account_debito_id = item.documento_id.participante_id.partner_id.property_account_receivable_id
                    elif item.documento_id.eh_compra:
                        account_debito_id = item.documento_id.participante_id.partner_id.property_account_payable_id

                if account_debito_id is None:
                    # raise
                    pass
                else:
                    dados['account_id'] = account_debito_id.id

                line_ids.append([0, 0, dados])

                dados = {
                    'move_id': account_move.id,
                    'sped_documento_item_id': item.id,
                    'name': item.produto_id.nome,
                    'narration': template_item.campo,
                    'credit': getattr(item, template_item.campo, 0),
                    'currency_id': item.currency_id.id,
                }

                account_credito_id = None
                if template_item.account_credito_id:
                    account_credito_id = template_item.account_credito_id
                elif template_item.campo in CAMPO_DOCUMENTO_FISCAL_ITEM:
                    if item.documento_id.eh_venda:
                        account_credito_id = \
                            item.produto_id.product_id.property_account_income_id
                    elif item.documento_id.eh_compra:
                        account_credito_id = \
                            item.produto_id.product_id.property_account_expense_id
                else:
                    if item.documento_id.eh_venda:
                        account_credito_id = item.documento_id.participante_id.partner_id.property_account_receivable_id
                    elif item.documento_id.eh_compra:
                        account_credito_id = item.documento_id.participante_id.partner_id.property_account_payable_id

                if account_credito_id is None:
                    # raise
                    pass
                else:
                    dados['account_id'] = account_credito_id.id

                line_ids.append([0, 0, dados])
                campos_jah_contabilizados.append(template_item.campo)

        if move_template.parent_id:
            self.gera_account_move_line(account_move, move_template.parent_id,
                                        line_ids, campos_jah_contabilizados=campos_jah_contabilizados)

    @api.depends('modelo', 'emissao')
    def _compute_permite_alteracao(self):
        super(SpedDocumentoItem, self)._compute_permite_alteracao()

        for item in self:
            if not item.permite_alteracao:
                continue<commit_msg>[FIX] PEP8<commit_after># -*- coding: utf-8 -*-
#
# Copyright 2016 Taŭga Tecnologia
#   <NAME> <<EMAIL>>
# License AGPL-3 or later (http://www.gnu.org/licenses/agpl)
#

from __future__ import division, print_function, unicode_literals

from odoo import api, fields, models
from ..constantes import CAMPO_DOCUMENTO_FISCAL_ITEM


class SpedDocumentoItem(models.Model):
    _inherit = 'sped.documento.item'

    def gera_account_move_line(self, account_move, move_template, line_ids,
                               campos_jah_contabilizados=[]):
        for item in self:
            for template_item in move_template.item_ids:
                if not getattr(item, template_item.campo, False):
                    continue

                if template_item.campo in campos_jah_contabilizados:
                    continue

                #
                # Nas notas de entrada por compra ou devolução de venda, se
                # não se vai aproveitar o crédito do imposto, ele não é
                # contabilizado à parte
                #
                if item.documento_id.eh_compra or \
                        item.documento_id.eh_devolucao_venda:
                    if template_item.campo in ('vr_icms', 'vr_icms_sn') and \
                            not item.credita_icms:
                        continue
                    elif template_item.campo == 'vr_icms_st' and \
                            not item.credita_icms_st:
                        continue
                    elif template_item.campo == 'vr_ipi' and \
                            not item.credita_ipi:
                        continue
                    elif template_item.campo in ('vr_pis_proprio',
                        'vr_cofins_proprio') and not item.credita_pis_cofins:
                        continue

                valor = getattr(item, template_item.campo, 0)

                if not valor:
                    continue

                dados = {
                    'move_id': account_move.id,
                    'sped_documento_item_id': item.id,
                    'name': item.produto_id.nome,
                    'narration': template_item.campo,
                    'debit': valor,
                    'currency_id': item.currency_id.id,
                }

                account_debito = None
                if template_item.account_debito:
                    account_debito = template_item.account_debito
                elif template_item.campo in CAMPO_DOCUMENTO_FISCAL_ITEM:
                    product = item.produto_id.product_id
                    if item.documento_id.eh_venda:
                        account_debito = product.property_account_income_id
                    elif item.documento_id.eh_compra:
                        account_debito = product.property_account_expense_id
                else:
                    partner = item.documento_id.participante_id.partner_id
                    if item.documento_id.eh_venda:
                        account_debito = partner.property_account_receivable_id
                    elif item.documento_id.eh_compra:
                        account_debito = partner.property_account_payable_id

                if account_debito is None:
                    # raise
                    pass
                else:
                    dados['account_id'] = account_debito.id

                line_ids.append([0, 0, dados])

                dados = {
                    'move_id': account_move.id,
                    'sped_documento_item_id': item.id,
                    'name': item.produto_id.nome,
                    'narration': template_item.campo,
                    'credit': valor,
                    'currency_id': item.currency_id.id,
                }

                account_credito = None
                if template_item.account_credito:
                    account_credito = template_item.account_credito
                elif template_item.campo in CAMPO_DOCUMENTO_FISCAL_ITEM:
                    product = item.produto_id.product_id
                    if item.documento_id.eh_venda:
                        account_credito = product.property_account_income_id
                    elif item.documento_id.eh_compra:
                        account_credito = product.property_account_expense_id
                else:
                    partner = item.documento_id.participante_id.partner_id
                    if item.documento_id.eh_venda:
                        account_credito = partner.property_account_receivable_id
                    elif item.documento_id.eh_compra:
                        account_credito = partner.property_account_payable_id

                if account_credito is None:
                    # raise
                    pass
                else:
                    dados['account_id'] = account_credito.id

                line_ids.append([0, 0, dados])
                campos_jah_contabilizados.append(template_item.campo)

        if move_template.parent_id:
            self.gera_account_move_line(account_move, move_template.parent_id,
                                        line_ids, campos_jah_contabilizados=campos_jah_contabilizados)

    @api.depends('modelo', 'emissao')
    def _compute_permite_alteracao(self):
        super(SpedDocumentoItem, self)._compute_permite_alteracao()

        for item in self:
            if not item.permite_alteracao:
                continue
{'fraction_non_alphanumeric': 0.061956621213507826, 'fraction_numerical': 0.0021963942527683717, 'mean_word_length': 1.4075787618418154, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1785868', 'n_tokens_mistral': 3173, 'n_tokens_neox': 2931, 'n_words': 510}