pago_administracion.py 1.48 KB
# -*- coding: utf-8 -*-

from odoo import models, fields, api
from odoo.exceptions import UserError, ValidationError



class hgt_pago_administracion(models.TransientModel):
    _name = 'hgt.pago_administracion'
    
    registro = fields.Many2one(
        string='Registro',
        comodel_name='hgt.registro_cobros',
        ondelete='set null',
    )

    caja_origen = fields.Many2one(
        related='registro.caja'
    )

    total = fields.Float(
        related = "caja_origen.total_valores"
    )

    caja_destino = fields.Many2one(
        string='Caja Destino',
        comodel_name='asw.caja',
        ondelete='restrict',
    )
    
    linea_valores = fields.Many2many(
        string='Valores a transferir',
        comodel_name='hgt.linea_pago_admin',
        relation='linea_valores_pago_rel',
        column1='hgt_linea_pago_admin_id',
        column2='hgt_pago_administracion_id',
    )

    @api.onchange('linea_valores')
    def restringir_monto(self):
        total = 0
        for line in self.linea_valores:
            total = total + line.monto 
        if total > self.total:
            raise ValidationError('El total ingresado en las líneas de valores es mayor que el monto disponible en caja')

    def pagar_admin(self):
        for line in self.linea_valores:
            self.env['asw.valores'].crear_valor_salida(line.monto,line.val_tipo,self.caja_origen.id)
            self.env['asw.valores'].crear_valor_entrada(line.monto,line.val_tipo,self.caja_destino.id)