<commit_before># -*- coding: utf-8 -*-
# Copyright 2012 KMEE - <NAME>
# Copyright 2017 KMEE - <NAME> <<EMAIL>>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from __future__ import division, print_function, unicode_literals

from openerp import api, models, fields
from ..constantes import TIPO_SERVICO, FORMA_LANCAMENTO, \
    INDICATIVO_FORMA_PAGAMENTO, TIPO_MOVIMENTO, CODIGO_INSTRUCAO_MOVIMENTO


class PaymentOrder(models.Model):
    _inherit = b'payment.order'

    file_number = fields.Integer(u'Número sequencial do arquivo')
    # TODO adicionar domain para permitir o modo de pagamento correspondente
    # ao mode

    serie_id = fields.Many2one(
        'l10n_br_cnab.sequence',
        u'Sequencia interna'
    )

    sufixo_arquivo = fields.Integer(u'Sufixo do arquivo')

    serie_sufixo_arquivo = fields.Many2one(
        u'Série do Sufixo do arquivo',
        'l10n_br_cnab_file_sufix.sequence',
    )

    tipo_servico = fields.Selection(
        selection=TIPO_SERVICO,
        string=u'Tipo de Serviço',
        help=u'Campo G025 do CNAB'
    )
    forma_lancamento = fields.Selection(
        selection=FORMA_LANCAMENTO,
        string=u'Forma Lançamento',
        help=u'Campo G029 do CNAB'
    )
    codigo_convenio = fields.Char(
        size=20,
        string=u'Código do Convênio no Banco',
        help=u'Campo G007 do CNAB'
    )
    indicativo_forma_pagamento = fields.Selection(
        selection=INDICATIVO_FORMA_PAGAMENTO,
        string=u'Indicativo de Forma de Pagamento',
        help='Campo P014 do CNAB',
        default='01'
    )
    tipo_movimento = fields.Selection(
        selection=TIPO_MOVIMENTO,
        string=u'Tipo de Movimento',
        help=u'Campo G060 do CNAB',
    )
    codigo_instrucao_movimento = fields.Selection(
        selection=CODIGO_INSTRUCAO_MOVIMENTO,
        string=u'Código da Instrução para Movimento',
        help=u'Campo G061 do CNAB'
    )

    @api.multi
    def get_next_number(self):
        for ord in self:
            sequence = self.env['ir.sequence']
            # sequence_read = sequence.read(
            #     cr, uid, ord.serie_id.internal_sequence_id.id,
            #     ['number_next'])
            seq_no = sequence.get_id(ord.serie_id.internal_sequence_id.id)
            ord.write({'file_number': seq_no})
        return seq_no

    # TODO: funcao a ser chamada por ação automatizada para resetar o sufixo
    #     diariamente

    @api.multi
    def get_next_sufixo(self):
        for ord in self:
            sequence = self.env['ir.sequence']
            # sequence_read = sequence.read(
            #     cr, uid, ord.serie_id.internal_sequence_id.id,
            #     ['number_next'])
            seq_no = sequence.get_id(
                ord.serie_sufixo_arquivo.internal_sequence_id.id)
            ord.write({'sufixo_arquivo': seq_no})
        return seq_no

    # @api.multi
    # def set_to_draft(self, *args):
    #     super(PaymentOrder, self).set_to_draft(*args)
    #
    #     for order in self:
    #         for line in order.line_ids:
    #             self.write_added_state_to_move_line(line.move_line_id)
    #     return True

    # @api.multi
    # def write_added_state_to_move_line(self, mov_line):
    #     mov_line.state_cnab = 'added'<commit_msg>[FIX] get_next_sufixo <commit_after># -*- coding: utf-8 -*-
# Copyright 2012 KMEE - <NAME>
# Copyright 2017 KMEE - <NAME> <<EMAIL>>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from __future__ import division, print_function, unicode_literals

from openerp import api, models, fields
from ..constantes import TIPO_SERVICO, FORMA_LANCAMENTO, \
    INDICATIVO_FORMA_PAGAMENTO, TIPO_MOVIMENTO, CODIGO_INSTRUCAO_MOVIMENTO


class PaymentOrder(models.Model):
    _inherit = b'payment.order'

    file_number = fields.Integer(u'Número sequencial do arquivo')
    # TODO adicionar domain para permitir o modo de pagamento correspondente
    # ao mode

    serie_id = fields.Many2one(
        'l10n_br_cnab.sequence',
        u'Sequencia interna'
    )

    sufixo_arquivo = fields.Integer(u'Sufixo do arquivo')

    serie_sufixo_arquivo = fields.Many2one(
        u'Série do Sufixo do arquivo',
        'l10n_br_cnab_file_sufix.sequence',
    )

    tipo_servico = fields.Selection(
        selection=TIPO_SERVICO,
        string=u'Tipo de Serviço',
        help=u'Campo G025 do CNAB'
    )
    forma_lancamento = fields.Selection(
        selection=FORMA_LANCAMENTO,
        string=u'Forma Lançamento',
        help=u'Campo G029 do CNAB'
    )
    codigo_convenio = fields.Char(
        size=20,
        string=u'Código do Convênio no Banco',
        help=u'Campo G007 do CNAB'
    )
    indicativo_forma_pagamento = fields.Selection(
        selection=INDICATIVO_FORMA_PAGAMENTO,
        string=u'Indicativo de Forma de Pagamento',
        help='Campo P014 do CNAB',
        default='01'
    )
    tipo_movimento = fields.Selection(
        selection=TIPO_MOVIMENTO,
        string=u'Tipo de Movimento',
        help=u'Campo G060 do CNAB',
    )
    codigo_instrucao_movimento = fields.Selection(
        selection=CODIGO_INSTRUCAO_MOVIMENTO,
        string=u'Código da Instrução para Movimento',
        help=u'Campo G061 do CNAB'
    )

    @api.multi
    def get_next_number(self):
        for ord in self:
            sequence = self.env['ir.sequence']
            # sequence_read = sequence.read(
            #     cr, uid, ord.serie_id.internal_sequence_id.id,
            #     ['number_next'])
            seq_no = sequence.get_id(ord.serie_id.internal_sequence_id.id)
            ord.write({'file_number': seq_no})
        return seq_no

    # TODO: funcao a ser chamada por ação automatizada para resetar o sufixo
    #     diariamente

    @api.multi
    def get_next_sufixo(self):
        # for ord in self:
        #     sequence = self.env['ir.sequence']
        #     # sequence_read = sequence.read(
        #     #     cr, uid, ord.serie_id.internal_sequence_id.id,
        #     #     ['number_next'])
        #     seq_no = sequence.get_id(
        #         ord.serie_sufixo_arquivo.internal_sequence_id.id)
        #     ord.write({'sufixo_arquivo': seq_no})
        # return seq_no
        return 'CNAB01'

    # @api.multi
    # def set_to_draft(self, *args):
    #     super(PaymentOrder, self).set_to_draft(*args)
    #
    #     for order in self:
    #         for line in order.line_ids:
    #             self.write_added_state_to_move_line(line.move_line_id)
    #     return True

    # @api.multi
    # def write_added_state_to_move_line(self, mov_line):
    #     mov_line.state_cnab = 'added'
{'fraction_non_alphanumeric': 0.09515910119137384, 'fraction_numerical': 0.012064545317448348, 'mean_word_length': 2.4868559411146163, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3748081', 'n_tokens_mistral': 2421, 'n_tokens_neox': 2356, 'n_words': 443}