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


from logging import getLogger
from odoo import http, _
from odoo.http import request

from odoo.addons.website_portal.controllers.main import website_account

_logger = getLogger(__name__)


class WebsiteEstadoCuenta(website_account):

    @http.route('/my/cuenta', type='http', auth='user', website=True)
    def cuentas(self, **kw):
        values = self._prepare_portal_layout_values()
        contribuyente = request.env.user.partner_id
        cuentas = request.env['sgt_cuentas'].sudo().search([('partner_id', '=', contribuyente.id)])

        values.update({
            'contribuyente': contribuyente,
            'cuentas': cuentas,
        })

        return request.render("kyb_sgt_website_cuentas.portal_cuenta", values)

    @http.route('/my/cuenta/<int:cuenta_id>', type='http', auth='user', website=True)
    def consulta_cuenta(self, cuenta_id=None, **kw):
        contribuyente = request.env.user.partner_id
        partner = request.env['res.partner'].sudo().browse([contribuyente.id])
        cuenta = request.env['sgt_cuentas'].sudo().browse([cuenta_id])
        if not cuenta.partner_id == contribuyente:
            return request.render("website.403")

        movimientos_ids = cuenta.movimientos_ids
        values = {
            'partner': partner,
            'cuenta': cuenta,
            'movimientos_ids': movimientos_ids,
        }

        return request.render("kyb_sgt_website_cuentas.consulta_cuenta", values)

    @http.route('/my/movimiento/<int:movimiento_id>', type='http', auth='user', website=True)
    def detalles_movimiento(self, movimiento_id=None, cuenta_id=None, **kw):
        contribuyente = request.env.user.partner_id
        movimiento = request.env['sgt_movimientos'].sudo().browse([movimiento_id])
        if not movimiento.partner_id == contribuyente:
            return request.render("website.403")
        values = {
            'contribuyente': contribuyente,
            'movimiento': movimiento,
            'cuenta_id': cuenta_id,
        }

        return request.render("kyb_sgt_website_cuentas.detalles_movimiento", values)
