Commit e7032285 by Juan

dcfvb

1 parent 0f659b91
# -*- coding: utf-8 -*-
from . import controllers
from . import altausuario
\ No newline at end of file
# -*- coding: utf-8 -*-
from odoo import http
import random, os, json
TextoAlta = """Hemos resibido su pedido de alta en el sistema.
Pronto se comunicara con usted por este medio un representante de Lappa."""
# Agregar mensaje de numero repetido
class dispositivos(http.Controller):
"""Controlador de acceso a firmas"""
@http.route('/lappa/usuarios/registro', auth='public', type='json' , website=True ,csrf=False, methods = ['POST','GET','OPTIONS'])
def index(self, **kw):
print(kw)
rto = {"error":False}
try:
empresa = kw["nombre"]
cuit = kw["cuit"]
celular = kw["celular"]
id_localidad = kw["localidad"]
email = kw["email"]
except:
return({"error":"Falta algun dato de los obligatorios empresa,cuit,celular,id_localidad"})
self.AltaUsuario(empresa,cuit,celular,email,id_localidad)
return(rto)
def AltaUsuario(self,empresa,cuit,celular,email,id_localidad):
#Hacer chequeo de duplicacion de numero
self.enviar_mensaje(tipo="Mail",mensaje=TextoAlta,email=email,titulo="Bienvenido a Lappa")
self.enviar_mensaje(mensaje=TextoAlta,telefono=celular,titulo="Bienvenido a Lappa")
def enviar_mensaje(self, tipo='Whatsapp', mensaje="mensaje", titulo="Titulo",email="",telefono=""):#Crea mensaje y lo envia
#Hay que agregar al modelo la relacion con los mensajes para tener trazavilidad
vals = {"mensaje_nombre":titulo,
"mensaje_descripcion":mensaje,
"mensaje_numero_whatsapp":telefono,
"mensaje_direccion_mail":email,
"identidad":1}
mensaje = http.request.env['asw.mensaje'].sudo().create(vals)
mensaje.tipo = tipo
mensaje.enviar()
@http.route('/lappa/blank', auth='public', type='http' , website=True ,csrf=False, methods = ['POST','GET','OPTIONS'])
def index6(self, **kw):
return("")
\ No newline at end of file
import unidecode
def arg(texto):
texto = unidecode.unidecode(texto)#saco acentos
texto = texto.lower()#paso a minuscula
texto = texto.replace("ü","u")#Casi no se usa
texto = texto.replace("ñ","n")#Ignoro las ñ
texto = texto.replace("m","n")#Este deberia ser inesesario
texto = texto.replace("cc","s")#todo c z x es s
texto = texto.replace("rr","r")#vurros > buros
texto = texto.replace("pc","s")#descripcion > dessrision
texto = texto.replace("x","s")#todo c z x es s
texto = texto.replace("ll","y")#olvidate de ll
texto = texto.replace("h","")#nadie usa la h
texto = texto.replace("c","s")#todo c z x es s
texto = texto.replace("z","s")#todo c z x es s
texto = texto.replace("v","b")#Esto si que es al repedo
texto = texto.replace("j","g")#Tema fonetico
texto = texto.replace("w","g")#tmb fonetico
texto = texto.replace(",","")#mejora performance de busqueda
texto = texto.replace(" ","")#mejora performance de db
return(texto)
\ No newline at end of file
......@@ -2,6 +2,7 @@
from odoo import http
import random, os, json
from . import argentinidad
class dispositivos(http.Controller):
......@@ -9,14 +10,15 @@ class dispositivos(http.Controller):
@http.route('/lappa/localidades/sugerencia', auth='public', type='json' , website=True ,csrf=False, methods = ['POST','GET'])
def index(self, **kw):
print(kw)
#print(kw)
registro = http.request.env['asw.localidad'].sudo()
dominio = [["name","ilike",kw["localidad"]]]
print(dominio, registro)
palabra = argentinidad.arg(kw["localidad"])#adapto el diccionario de busqueda
dominio = [["buscador","ilike",palabra]]
#print(dominio, registro)
#dominio.append(["active","=",True])
localidades = registro.search(dominio, limit=10)
resultado = []
print(localidades)
#print(localidades)
for localidad in localidades:
loc ={
"name": localidad.name,
......@@ -30,7 +32,8 @@ class dispositivos(http.Controller):
def buscador(self, **kw):
#print(kw)
registro = http.request.env['asw.localidad'].sudo()
dominio = [["name","ilike",kw["localidad"]]]
palabra = argentinidad.arg(kw["localidad"])#adapto el diccionario de busqueda
dominio = [["buscador","ilike",palabra]]
#print(dominio, registro)
#dominio.append(["active","=",True])
localidades = registro.search(dominio, limit=10)
......@@ -56,7 +59,7 @@ class dispositivos(http.Controller):
return(json.dumps({"origen":resultado[1],
"destino":resultado[2],
"total":len(resultado[0]),
"fondo":"http://hgtarg.com/fondo1.jpg",
"fondo":"http://hgtarg.com/fondo1.jpg",# este hay que generar unevo campo o logica de descarga
"pagina":pagina,
"paginas":self.contadorpagianas(resultado[0]),
"transportistas":transportista}))
......@@ -76,7 +79,7 @@ class dispositivos(http.Controller):
tranportistas = []
while not contador == paginado:
try:
print(inicial+contador)
#print(inicial+contador)
tranportistas.append(lista[inicial+contador])
except:
pass
......@@ -141,18 +144,50 @@ class dispositivos(http.Controller):
@http.route('/lappa/transportista/transportista', auth='public', type='http' , website=True ,csrf=False, methods = ['POST','GET'])
@http.route('/lappa/transportista/transportista', auth='public', type='http' , website=False ,csrf=False, methods = ['POST','GET'])
def transportista_extend(self, **kw):
#print(kw)
trans = kw["id_transportista"]
loc_orig = kw["id_localidad_origen"]
loc_dest = kw["id_localidad_destino"]
print(trans, loc_orig, loc_dest)
trans = http.request.env['trans.transportista'].sudo().search([["id","=", kw["id_transportista"]]])
print(trans)
datos = {}
datos["datos_generales"] = {"id": 12, "web": "nan",
"razon": "ALONSO GASTON", "nombre": "ALONSO GASTON",
"telefono": "(011) 4919-4801", "email": "S/D",
"logo": "http://hgtarg.com/logo.jpg", "categoria": False}
datos["datos_origen"] = {"telefono":"-","domicilio":"-","dias_parada":"-","retiro":"-"}
datos["datos_destino"] = {"telefono":"-","domicilio":"-","dias_parada":"-","retiro":"-"}
cat = {"np":False,"p":True}
datos["datos_generales"] = {"id": kw["id_transportista"],
"web": trans.trans_pagina_web,
"razon": trans.trans_razon_social,
"nombre": trans.trans_nombre,
"telefono": trans.trans_telefono,
"email": trans.trans_email,
"logo": "http://hgtarg.com/logo.jpg",
"categoria": cat[trans.trans_categoria]}
datos["datos_origen"] = self.GetDatosPR(kw["id_localidad_origen"], trans.trans_pto_retiro)
datos["datos_destino"] = self.GetDatosPR(kw["id_localidad_destino"], trans.trans_pto_retiro)
return(json.dumps(datos))
def GetDatosPR(self,loc_id,puntos):
rto = {"telefono":"-","domicilio":"-","dias_parada":"-","retiro":"-"}
for pto in puntos:
#print(pto.pr_localidad.id, loc_id)
if pto.pr_localidad.id == int(loc_id):# Agregar la confirmacion de si se muestra la informacion un check
#print("AKA")
rto["telefono"] = str(pto.pr_telefono)
rto["domicilio"] = str(pto.pr_direccion)
rto["retiro"] = str(pto.pr_tipo_serv)
return(rto)
return(rto)
@http.route('/lappa/fondos', auth='public', type='http' , website=False ,csrf=False, methods = ['POST','GET'])
def web_extend(self, **kw):
claro = "https://hgtarg.com/lappa/Principal%20clara.jpg"
oscuro = "https://hgtarg.com/lappa/Principal%20oscuro.jpg"
camion = "https://hgtarg.com/lappa/camion.png"
tilde = "https://hgtarg.com/lappa/tilde.png"
data = {"claro":claro, "oscuro":oscuro, "camion": camion, "tilde": tilde}
data["fondo"] = claro
return(json.dumps(data))
......@@ -8,7 +8,6 @@ class trans_transportista(models.Model):
_rec_name = 'trans_nombre'
_order = 'trans_nombre'
trans_razon_social = fields.Char(
string=u'Razón Social',
)
......@@ -23,7 +22,7 @@ class trans_transportista(models.Model):
trans_nombre = fields.Char(
string=u'Nombre',
required=True,
#required=True,
)
trans_logo = fields.Binary(
......@@ -89,6 +88,12 @@ class trans_transportista(models.Model):
default= lambda self: self.env.user
)
controlar_robot = fields.Boolean(string='Datos sin confianza')
imagen = fields.Binary(string='Logo')
@api.one
@api.constrains('trans_cuit', 'trans_telefono')
def _requerir_valores(self):
......@@ -195,3 +200,42 @@ class trans_transportista(models.Model):
return({"localidad":Localidad, "provincia":Provincia, "Id": localidad.id})
def deduplicar_pr(self):
"""herramenta para mantener los herrores de carga al minimo"""
transportistas = self.search([])
for transportista in transportistas:
#print(transportista)
transportista.deduplicar_punto_retiro()
transportista.marcar_control()
def marcar_control(self):
control = False
if (self.trans_cuit == 0) or (self.trans_cuit == False):
control = True
if (self.trans_telefono == 0) or (self.trans_telefono == False):
control = True
if (self.trans_razon_social == "") or (self.trans_telefono == False):
control = True
if (self.trans_nombre == "") or (self.trans_nombre == False):
control = True
#print(control)
self.controlar_robot = control
def deduplicar_punto_retiro(self):
"""Elimina puntos de retiros duplicados en un transportista"""
puntos = [] # lista de id de localidad en los puntos ya cargados
for punto_retiro in self.trans_pto_retiro:
if punto_retiro.pr_localidad.id in puntos:
self.trans_pto_retiro = [(2,punto_retiro.id)]#Comanndo remover id y eliminar
else:
puntos.append(punto_retiro.pr_localidad.id)#si no esta en la lista agrego la localidad en la lista puntos cargados
#print(puntos)
def publicar(self):
pass
def comprar(self):
pass
\ No newline at end of file
......@@ -23,6 +23,9 @@
<field name="arch" type="xml">
<form>
<header>
<button name="deduplicar_pr" class='btn btn-warning' string="Quitar puntos de retiro duplicados" type="object" />
<button name="publicar" class='btn btn-warning' string="Publicar imagen" type="object" />
<button name="comprar" class='btn btn-info' string="Comprar membresia" type="object" />
</header>
<sheet>
<group col="2" string="Datos generales">
......@@ -30,6 +33,9 @@
<field name="trans_razon_social" colspan="2" required="1"/>
<field name="trans_cuit" colspan="2" required="1"/>
</group>
<group col="2" string="Imagen">
<field name="imagen" widget='image' options="{'preview_image': 'image_small', 'size': [30, 30]}"/>
</group>
<group col="2" string="Datos de contacto">
<field name="trans_telefono" colspan="2" required="1"/>
<field name="trans_email" widget="email" colspan="2"/>
......@@ -61,6 +67,7 @@
<field name="trans_razon_social"/>
<field name="trans_tipo_ent"/>
<field name="trans_tipo"/>
<field name="controlar_robot"/>
</search>
</field>
</record>
......@@ -82,7 +89,3 @@
</data>
</odoo>
\ No newline at end of file
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!