gastosmobil.py 2.49 KB
# -*- coding: utf-8 -*-
from odoo import models, fields, api, exceptions
from .qr import qrfiscal
from odoo.exceptions import UserError, ValidationError, Warning, RedirectWarning
import base64

class gastos_mobiles(models.Model):
    _name = 'hgt.mobil_gastos_config'
    _description = u'Configuracion carga rapida de Gastos Mobil'
    _inherit = ['asw.action.manager', 'asw.generador_comprobante']

    name = fields.Char(string='Descripcion')
    
    habilitado = fields.Boolean(string='Habilitado', default=True)
    
    talonario = fields.Many2one(
        string = 'Talonario de gasto',
        comodel_name = 'asw.talonario',
        help="Es el talonario que oficia de pseudo factura",
        ondelete = 'set null',
        domain=lambda self: self.get_domain_talonario(), 
    )

    talonario_recibo = fields.Many2one(
        string = 'Resivos de gasto',
        comodel_name = 'asw.talonario',
        help="Es el talonario de Resivos en el que saldra plata de la caja",
        ondelete = 'set null',        
        domain=lambda self: self.get_domain_talonario_recibo(), 
    )


    producto = fields.Many2one(
        string = 'Producto',
        comodel_name = 'asw.producto',
        ondelete = 'set null',        
        domain=lambda self: self.get_domain_producto(), 
    )

    forma_pago = fields.Many2one(
        string = 'Forma de Pago',
        comodel_name = 'asw.tipos_valores',
        ondelete = 'set null',        
    )
    
    def BotonPrueba(self):

        self.registrar("Prueba del sistema", importe=1.0)

    def registrar(self, descripcion="", importe=1.0):

        comprobante = self.generar_comprobante(
            self.talonario,
            False,
            0,
            'Gastos',
            comp_observaciones = "Generado desde la app"
        )

        linea = comprobante.agregar_producto(self.producto, importe)
        caja = self.env.user.caja_default.id
        comprobante.write({'comprobante_caja_ids': caja})
        if descripcion == '' or descripcion == False:
            descripcion = self.producto.prod_descripcion

        linea.lcp_descripcion_producto = descripcion
        
        comprobante.validar()
        comprobante.pago_rapido(self.forma_pago, self.talonario_recibo)
        

        return(True)

    def get_domain_producto(self):
        return [('prod_es_gasto','=', True)]

    def get_domain_talonario(self):
        return [('tal_menu', '=', 'gas')] 

    def get_domain_talonario_recibo(self):
        return [('tal_menu', '=', 'rec'),('tal_tipo','=', 'r')]