controllers.py 5.92 KB
# -*- coding: utf-8 -*-
from odoo import http

import random, os, json


class dispositivos(http.Controller):
    """Controlador de acceso a firmas"""

    @http.route('/lappa/localidades/sugerencia', auth='public', type='json' , website=True ,csrf=False, methods = ['POST','GET'])
    def index(self, **kw):
        print(kw)
        registro = http.request.env['asw.localidad'].sudo()
        dominio = [["name","ilike",kw["localidad"]]]
        print(dominio, registro)
        #dominio.append(["active","=",True])
        localidades = registro.search(dominio, limit=10)
        resultado = []
        print(localidades)
        for localidad in localidades:
            loc ={
                "name": localidad.name,
                "id": localidad.id
            }
            resultado.append(loc)
        return(resultado)


    @http.route('/lappa/localidades/sugerenciaget', auth='public', type='http' , website=True ,csrf=False, methods = ['POST','GET'])
    def buscador(self, **kw):
        #print(kw)
        registro = http.request.env['asw.localidad'].sudo()
        dominio = [["name","ilike",kw["localidad"]]]
        #print(dominio, registro)
        #dominio.append(["active","=",True])
        localidades = registro.search(dominio, limit=10)
        resultado = []
        #print(localidades)
        for localidad in localidades:
            loc ={
                "name": localidad.name,
                "id": localidad.id
            }
            resultado.append(loc)
        return(json.dumps(resultado))

    @http.route('/lappa/transportista/buscadorget', auth='public', type='http' , website=True ,csrf=False, methods = ['POST','GET'])
    def transportista(self, **kw):
        #print(kw)
        try:
            pagina = int(kw["pagina"])
        except:
            pagina = 1
        resultado = self.ArmarListaTrans(kw["loc1"],kw["loc2"])
        transportista = self.paginadoTransportistas(resultado[0],pagina) 
        return(json.dumps({"origen":resultado[1],
            "destino":resultado[2],
            "total":len(resultado[0]),
            "fondo":"http://hgtarg.com/fondo1.jpg",
            "pagina":pagina,
            "paginas":self.contadorpagianas(resultado[0]),
            "transportistas":transportista}))

    def contadorpagianas(self,lista):
        total = len(lista)
        if total == 0:
            return(0)
        elif total < 11:
            return(1)
        elif total > 10:
            return(int((total /10)) + 1)

    def paginadoTransportistas(self,lista,pagina=1, paginado=10):
        contador = 0
        inicial = (pagina * paginado) - paginado
        tranportistas = []
        while not contador == paginado:
            try:
                print(inicial+contador)
                tranportistas.append(lista[inicial+contador])
            except:
                pass
            #tranportistas = []
            #cont = 0
            #for transportista in lista:
            #    cont = cont + 1
            #    tranportistas.append(transportista)
            #    print(contador, transportista)
            #    if cont == paginado:
            #        break
            contador =contador + 1
        return(tranportistas)            


    def ArmarListaTrans(self, loc1, loc2):
        loc1 = self.TransportistaLocalidad(loc1)
        loc2 = self.TransportistaLocalidad(loc2)
        trans_ids = list(set(loc1[0]) & set(loc2[0]))
        origen = loc1[1]
        destino = loc2[1]
        transportistas = http.request.env['trans.transportista'].sudo().browse(trans_ids)
        lista1 = []
        lista2 = []
        for transportista in transportistas:
            if transportista.trans_categoria == "p":
                lista1.append(self.extraerdatosTrans(transportista))
            elif transportista.trans_categoria == "np":
                lista2.append(self.extraerdatosTrans(transportista))
        for dat in lista2:
            lista1.append(dat)
        return(lista1,origen,destino)        

    def extraerdatosTrans(self,transportista):
        #print(transportista)
        cat = {"np":False,"p":True}
        dato = {"id":transportista.id}
        dato["web"] = transportista.trans_pagina_web
        dato["razon"] = transportista.trans_razon_social
        dato["nombre"] = transportista.trans_nombre
        dato["telefono"] = transportista.trans_telefono
        dato["email"] = transportista.trans_email
        dato["logo"] = "http://hgtarg.com/logo.jpg"
        dato["categoria"] = cat[transportista.trans_categoria]
        #dato[""] = ransportista.
        #dato[""] = ransportista.
        #dato[""] = ransportista.
        #dato[""] = ransportista.
        return(dato)

    def TransportistaLocalidad(self, loc_id):
        puntos = http.request.env['trans.punto_retiro'].sudo().search([])
        local = http.request.env['asw.localidad'].sudo().search([["id","=", loc_id]])
        puntos = puntos.filtered(lambda l: l.pr_localidad == local)
        resultado = []
        for punto in puntos:
            try:
                resultado.append(punto.pr_transoportista.ids[0])
            except:
                pass
        return(resultado, local.display_name)
        


    @http.route('/lappa/transportista/transportista', auth='public', type='http' , website=True ,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)
        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":"-"}
        return(json.dumps(datos))