# -*- coding: utf-8 -*-

from odoo import models, fields, api


class SgtCuentas(models.Model):
    _inherit = 'sgt_cuentas'

    declaraciones_ids = fields.One2many('sgt_declaraciones', 'cuenta_id', 'Declaraciones')
    declaraciones_count = fields.Integer(string='Declaraciones', compute='calcular_declaraciones')
    liquidaciones_count = fields.Integer(string='Empresas', compute='calcular_liquidaciones')


    @api.multi
    def calcular_liquidaciones(self):
        # Calcular todas las cuentas asociadas a un contribuyente
        self.ensure_one()
        self.liquidaciones_count = len(self.env['sgt_liquidacion'].search([('declaracion_id.partner_id', '=', self.partner_id.id)]))

    @api.multi
    def ver_liquidaciones(self):
        # Función llamada en la vista, retorna la vista de las cuentas asociadas a un contribuyente.
        self.ensure_one()
        return {
            'name': 'Liquidaciones Asociadas',
            'create': False,
            'view_mode': 'tree',
            'view_id': False,
            'view_type': 'form',
            'res_model': 'sgt_liquidacion',
            'type': 'ir.actions.act_window',
            'target': 'new',
            'domain': [('declaracion_id.partner_id', '=', self.partner_id.id)],
            'context': {},
        }

    @api.multi
    def calcular_declaraciones(self):
        # Calcular todas las declaraciones asociadas a una cuenta
        self.ensure_one()
        self.declaraciones_count = self.env['sgt_declaraciones'].search_count([('partner_id', '=', self.partner_id.id)])

    @api.multi
    def ver_declaraciones(self):
        # Función llamada en la vista, retorna la vista de las declaraciones asociadas a una cuenta .
        self.ensure_one()
        return {
            'name': 'Declaraciones Asociadas',
            'create': False,
            'view_mode': 'tree',
            'view_id': False,
            'view_type': 'form',
            'res_model': 'sgt_declaraciones',
            'type': 'ir.actions.act_window',
            'target': 'new',
            'domain': [('partner_id', '=', self.partner_id.id)],
            'context': {},
        }


class SgtMovimientos(models.Model):
    _inherit = 'sgt_movimientos'
    declaracion_id = fields.Many2one('sgt_declaraciones', string='Declaración')
    movimiento_id = fields.Many2one('sgt_movimientos', string='Movimiento')
    pago_id = fields.Many2one('sgt_pagos', string='Pago')
    name = fields.Char(related='declaracion_id.partner_id.name', string='Contribuyente', readonly=True)
    rif = fields.Char(related='declaracion_id.partner_id.rif', string='RIF', readonly=True)
