Commit 543a25f6 by Juan

Genera pre membresia

1 parent fe7781e0
......@@ -22,6 +22,7 @@
'depends': [
'base',
'asw_geografia',
'asw_tpv'
],
......
# -*- coding: utf-8 -*-
from odoo import models, fields, api, exceptions
from odoo.exceptions import ValidationError, Warning
from datetime import datetime
import base64, requests
vista_previa = """<h2>Vista Previa</h2>
......@@ -117,6 +117,37 @@ class trans_transportista(models.Model):
muestra = fields.Html(string='Previsualizador',compute="_compute_prev", sanitize=False)
fac_tipo = fields.Selection(string='Tipo Factura', selection=[('A', 'A'), ('B', 'B'),],
required=True, default="B")
fac_doc = fields.Char(string='Documento Facturacion', default="0", required=True)
fac_documento = fields.Float(string='Documento',
size=15,
digits=(15, 0)
)
fac_doc_tipo = fields.Selection(string='Tipo documento', selection=[('cuit', 'CUIT'), ('dni', 'DNI'),],required=True,default="dni")
cli_doc_tipo = fields.Many2one(comodel_name='asw.tipo_documento', string='Tipo Documnto')
cli_resp = fields.Many2one(comodel_name='asw.responsabilidad', string='Responsabilidad fiscal')
comprobantes = fields.Many2many(comodel_name='asw.comprobante', string='Comprobantes')
cliente = fields.Many2many(comodel_name='asw.cliente', string='Cliente')
cliente_fac = fields.Many2one(comodel_name='asw.cliente', string='Cliente')
cliente_nombre = fields.Char(string='Razon social a facturar')
def _compute_prev(self):
#print(dir(self.trans_logo), self.trans_logo, dir(self.imagen))
......@@ -293,8 +324,43 @@ class trans_transportista(models.Model):
raise exceptions.Warning("No se ha cargado imagen para actualizar")
def comprar(self):
pass
self.ActualizarCliente()
#Armar subscripcion
msubs = self.env['elc.subcripciones'].sudo().browse(1)
rta = msubs.CrearSubscripcionSDK(self.cliente_fac.id)
return(rta)
def ActualizarCliente(self):
try:
from email_validator import validate_email, EmailNotValidError
valid = validate_email(self.trans_email)
except EmailNotValidError as e:
raise Warning(f"El mail es obligatorio para el abono, {self.trans_email} no es valido")
if self.cliente_nombre == False:
raise Warning("Defina razon social de facturacion")
if len(self.cli_doc_tipo) == 0:
raise Warning("Defina tipo de documento")
if len(self.cli_resp) == 0:
raise Warning("Defina responsabilidad")
if self.fac_documento == "0":
raise Warning("Defina numero de documento o cuit")
cliente = self.env["asw.cliente"].sudo().search([["cli_nro_doc","=",int(self.fac_documento)]])
vals = {}
vals["cli_razon_social"] = self.cliente_nombre
vals["cli_celular"] = self.trans_telefono
vals["cli_mail"] = self.trans_email
vals["cli_tipo_documento"] = self.cli_doc_tipo.id
vals["cli_es_cliente"] = True
vals["cli_es_proveedor"] = False
vals["cli_responsabilidad"] = self.cli_resp.id
if len(cliente) == 0:
vals["cli_nro_doc"] = str(int(self.fac_documento))
cliente = self.env["asw.cliente"].sudo().create(vals)
if len(cliente) == 1:
cliente.write(vals)
self.cliente_fac = cliente.id
def publicar(self):
if self.trans_categoria == "np":
raise exceptions.Warning("No se puede publicar si no es un abonado")
......
......@@ -24,9 +24,11 @@
<form>
<header>
<button name="deduplicar_pr" class='btn btn-warning' string="Quitar puntos de retiro duplicados" type="object" />
<button name="comprar" class='btn btn-info' string="Comprar membresia" type="object" />
<button name="comprar" class='btn btn-info' string="Comprar membresia" type="object"
confirm="Se le facturara con los datos indicados en la pestaña de facturacion" attrs="{ 'invisible' : [('trans_categoria','!=','np')]}" />
</header>
<sheet>
<!--<sheet> -->
<group col="2" string="Datos generales">
<field name="trans_nombre" colspan="2"/>
<field name="trans_razon_social" colspan="2" required="1"/>
......@@ -71,10 +73,24 @@
</tree>
</field>
</group>
<group col="2" string="Datos de usuario">
<group col="4" string="Datos de cliente y facturacion">
<field name="cli_resp"/>
<field name="fac_documento"/>
<field name="cli_doc_tipo"/>
<field name="trans_categoria" readonly="0" colspan="2"/>
<field name="cliente_fac" readonly="1"/>
<field name="cliente_nombre" />
<field name="trans_email" widget="email" colspan="2"/>
<button name="ActualizarCliente" class='btn btn-info' string="Actualizar informacion fiscal" type="object"
confirm="¿Esta seguro que quiere modificar sus datos de facturacion?"
attrs="{ 'invisible' : [('cliente_fac','=',False)]}" />
</group>
<group col="4" string="Facturas">
<field name="comprobantes" readonly="1" colspan="4" nolabel="1"/>
</group>
</sheet>
<!--</sheet> -->
</form>
</field>
</record>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!