Commit a2183523 by Juan

Funciona busqueda de cliente

0 parents
{
"python.analysis.extraPaths": [
"./sop"
]
}
\ No newline at end of file
from sop import laika, config, visualizador
import ipdb
from art import *
app = laika.Laika(
config.DevHost,
config.DevUser,
config.DevPass,
config.Dev
)
config.cls()
config.dprint(app.TOKEN, app.LOGIN,app.APP)
vi = visualizador.visualizador_cliente(app)
tprint(f"""Bienvenido {app.LOGIN['nombre']}""")
vi.BuscarClienteCuit()
import ipdb; ipdb.set_trace()
#config.dprint(vi.BuscarCliente())
import unidecode
#ESTO NO DEBERIA EXISTIR LO SE PERO.....
#NO FUNCINA CON HUMANOS EL SISTEMA SINO
#NO PUEDO NORMALIZAR LA LENGUA
#ES LA PUTA VERDAD
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("pt","t")#descripcion > dessrision
# texto = texto.replace("ps","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
DevHost = "transcontrol.hgtsa.com.ar"
DevUser = "jpdure"
DevPass = "1234"
Dev = "Auditor cmd"
debug = True
def dprint(*kw):
if debug:
text = ""
for ele in kw:
text = f"{text} {str(ele)}"
print(text)
def cls():
import os
os.system('cls' if os.name=='nt' else 'clear')
\ No newline at end of file
def base_trans(
razon,
cuit,
web,
nombre,
telefono,
email,
controlar=True
):
b = {'trans_razon_social': razon,
'trans_cuit': str(cuit),
'trans_pagina_web': web,
'trans_nombre': nombre,
'trans_logo': False,
'trans_logo_nombre': False,
'trans_categoria': 'np',
'trans_telefono': telefono,
'trans_email': email,
'trans_tipo_ent': 'emp',
'trans_restriccion_elem': False,
'trans_posee_ayu': False,
'trans_observ': False,
'controlar_robot': controlar,
'imagen': False,
'url_img': False,
'url_img_publica': False,
'publicada_img': 'sa',
'fac_tipo': 'B',
'fac_doc': '0',
'fac_documento': float(cuit),
'fac_doc_tipo':
'dni',
'cli_doc_tipo': False,
'cli_resp': False,
'cliente_fac': False,
'cliente_nombre': razon,}
return(b)
def base_puntoretiro(
localidad,
transportista,
telefono='-----------'
):
p = {'pr_nombre': False,
'pr_autoelevador': False,
'pr_localidad': localidad,
'pr_direccion': '-----------',
'pr_horario': '-----------',
'pr_feriados': False,
'pr_telefono': telefono,
'pr_observaciones': False,
'pr_tipo_serv': False,
'pr_transoportista': [[6,0,[transportista]]]
}
print(p)
return(p)
\ No newline at end of file
import requests, json
from . import argentinidad, constructor
headers = {'Content-Type': 'application/json'}
class Laika:
def __init__(self,url,user,passw,dev='Migrador') -> None:
self.URL = f"https://{url}"
self.APP = dev
data = {
'params':{'user':user,
'pass':passw,
'dev': self.APP},
}
data_json = json.dumps(data)
r = requests.post(self.URL+ '/app/login', data=data_json, headers=headers)
respuesta = r.json()
self.LOGIN = respuesta['result']
self.TOKEN = self.LOGIN['token']
def CrearRegistro(self,modelo="",vals={}):
data = {
'params':{'token':self.TOKEN,
'dev': self.APP},
}
data['params']['accion'] = 'create'
data['params']['model'] = modelo
data['params']['dominio'] = []
data['params']['val'] = vals
data_json = json.dumps(data)
r = requests.post(self.URL +'/app/data', data=data_json, headers=headers)
return(r.json()['result']['datos'])
def BuscarDominio(self,modelo="",dominio=[]):
data = {
'params':{'token':self.TOKEN,
'dev': self.APP},
}
data['params']['accion'] = 'search'
data['params']['model'] = modelo
data['params']['dominio'] = dominio
data_json = json.dumps(data)
r = requests.post(self.URL +'/app/data', data=data_json, headers=headers)
return(r.json()['result']['datos'])
def LeerDominio(self,modelo="",dominio=[],limit=0):
data = {
'params':{'token':self.TOKEN,
'dev': self.APP},
}
data['params']['accion'] = 'read'
data['params']['model'] = modelo
data['params']['dominio'] = dominio
if limit != 0:
data['params']['limite'] = limit
data_json = json.dumps(data)
r = requests.post(self.URL +'/app/data', data=data_json, headers=headers)
return(r.json()['result']['datos'])
import sop.config as config
import pandas as pd
class panda:
def __init__(self) -> None:
self.df = pd.read_excel(config.Ecxel)
#print(self.df)
self.largo = len(self.df)
self.ultimo = self.largo - 1
a = self.df.iloc[[0]].to_dict()
self.Keys = a.keys()
def test(self):
a = self.df.iloc[[0]]
d = a.to_dict()
print(d.keys())
def Leer(self,row=0):
a = self.df.iloc[[row]]
d = a.to_dict()
res = {"Row":row}
for key in self.Keys:
dat = d[key]
if str(dat[row]) in ["S/D","NaN","nan"]:
res[key] = False
else:
res[key] = dat[row]
return(res)
\ No newline at end of file
from tabulate import tabulate
class visualizador_cliente:
"""Clase para manejo de visualizaciones en consola"""
def __init__(self,consulta) -> None:
self.Laika = consulta
def BuscarClienteCuit(self,cuit=455):
model = "asw.cliente"
asd = self.Laika.LeerDominio(
modelo=model,
dominio=[
['cli_nro_doc',"like",cuit],
]
)
#print(asd[0])
cabecera = ["Razon Social","Documento","Cliente","Proveedor","Moneda","Saldo"]
campos = ['cli_razon_social','cli_nro_doc','cli_es_cliente','cli_es_proveedor','cli_moneda_saldo','cli_saldo']
self.Presentar(cabecera=cabecera,campos=campos,resultado=asd)
#import ipdb; ipdb.set_trace()
def BuscarClienteRazon(self,nombre="juan"):
model = "asw.cliente"
asd = self.Laika.LeerDominio(
modelo=model,
dominio=[
['cli_razon_social',"like",nombre],
]
)
#print(asd[0])
cabecera = ["Razon Social","Documento","Cliente","Proveedor","Moneda","Saldo"]
campos = ['cli_razon_social','cli_nro_doc','cli_es_cliente','cli_es_proveedor','cli_moneda_saldo','cli_saldo']
self.Presentar(cabecera=cabecera,campos=campos,resultado=asd)
#import ipdb; ipdb.set_trace()
def Presentar(self,cabecera,campos,resultado):
d = []
for res in resultado:
temp = []
for campo in campos:
tmp = str(res[0][campo])
temp.append(tmp)
d.append(temp)
print(tabulate(d, headers=cabecera, tablefmt="grid"))
print()
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!