def criando_pessoas(quantidade_de_pessoas): fake = Faker('pt-BR') Faker.seed(10) for _ in range(quantidade_de_pessoas): cpf = CPF() nome = fake.name() email = '{}@{}'.format(nome.lower(), fake.free_email_domain()) email = email.replace(' ', '') cpf = cpf.generate() rg = "{}{}{}{}".format(random.randrange(10, 99), random.randrange(100, 999), random.randrange(100, 999), random.randrange(0, 9)) celular = "{} 9{}-{}".format( random.randrange(10, 21), random.randrange(4000, 9999), random.randrange(4000, 9999), ) ativo = random.choice([True, False]) p = Cliente(nome=nome, email=email, cpf=cpf, rg=rg, celular=celular, ativo=ativo) p.save()
def guardarC(request): n = request.POST["nombre"] a = request.POST["apellido"] ce = request.POST["cedula"] c = request.POST["correo"] cl = Cliente(cedula=ce, nombre=n, apellido=a, correo=c) cl.save() return render(request, 'principal.html', {'mensaje': 'cliente guardado'})
def salvar(request): form = (request.POST) perfil = Cliente(id=form['id'], cpf_cnpj=form['cpf_cnpj'], nm_costume=form['nm_costume'], is_active=form['is_active'], vl_total=form['valor']) perfil.save() return redirect('/')
def clienteAdicionar(request): if request.method == 'POST': try: cliente = Cliente.objects.get(email=request.POST['email']) raise PermissionDenied except (Cliente.DoesNotExist): cliente = Cliente(email=request.POST['email'], telefone=request.POST['telefone'], senha="123") cliente.save() return redirect('/clientes/%d' % cliente.id) else: raise PermissionDenied
def agregar(request): if request.method == 'POST': documento = request.POST['documento'] tipo_doc = request.POST['tipo_doc'] nombres = request.POST['nombres'] apellidos = request.POST['apellidos'] genero = int(request.POST['genero']) fecha_nacimiento = request.POST['fecha_nacimiento'] estado_civil = request.POST['estado_civil'] correo = request.POST['correo'] direccion = request.POST['direccion'] telefono = request.POST['telefono'] ciudad = request.POST['ciudad'] observaciones = request.POST['observaciones'] var = fecha_nacimiento.split('/') fecha_nacimiento = var[2] + "-" + var[0] + '-' + var[1] departamentos = Departamento.objects.all() try: persona_reg = Cliente.objects.get(pk=documento) return render( request, 'clientes/agregar.html', { 'mensaje_error': 'El documento ' + documento + ' ya se encuentra registrado', 'departamentos': departamentos }) except Exception, e: try: cliente = Cliente(documento=documento, tipo_documento=tipo_doc, nombres=nombres, apellidos=apellidos, genero=genero, fecha_nacimiento=fecha_nacimiento, estado_civil=estado_civil, telefono=telefono, correo=correo, direccion=direccion, ciudad=Municipio.objects.get(pk=ciudad), observaciones=observaciones) cliente.save() return render( request, 'clientes/agregar.html', { 'mensaje_exito': 'Se agrego el cliente exitosamente', 'departamentos': departamentos }) except Exception, e: raise e return render( request, 'clientes/agregar.html', { 'mensaje_error': 'No se logro completar la operacion', 'departamentos': departamentos })
def importarArchivoCsv(request): if request.method == 'POST': delimitador = ";" linea = 1 contenido = request.FILES['file'].read().split("\r\n") nuevos_clientes = [] mensaje_exito = "" mensaje_error = "" for c in contenido[1:]: linea = linea + 1 row = c.split(delimitador) if len(row[0]) == 0: break else: genero = True if row[4] == "0": genero = False try: cliente = Cliente(documento=row[0], tipo_documento=row[1], nombres=row[2], apellidos=row[3], genero=genero, fecha_nacimiento=date( randint(1930, 2003), randint(1, 12), randint(1, 28)), estado_civil=row[6], telefono=row[7], correo=row[8], direccion=row[9], ciudad=Municipio.objects.get( nombre__icontains=row[10]), observaciones="") nuevos_clientes.append(cliente) mensaje_exito = "Base de datos almacenada" except Exception, e: mensaje_error = "Error al leer el archivo en la linea " + str( linea ) + ". Favor verifique sus datos y vuelva a intentarlo." # Una vez que se leyo el archivo y no genero problemas se inicia con el almacenamiento if mensaje_error: mensaje_exito = None else: for nc in nuevos_clientes: try: nc.save() except Exception, e: mensaje_warning = "No se pudieron almacenar algunos registros. Es posible que ya se encuentren almacenados en la base de datos"
def registroCliente(request): if request.method =='POST': documento= request.POST['documento'] #obtenemos ahora la campania a la que se va a registrar la factura #independientemente del registro del cliente campania_id= request.POST['campania'] #Ahora buscamos los almacenes que hacer parte de la campania seleccionada campania= Campania.objects.get(pk=campania_id) campania_almacen= CampaniaAlmacen.objects.filter(campania_id=campania_id,participa=1) almacen= Almacen.objects.get(pk=request.POST['almacen']) #ahora se busca en la base de datos si se encuentra registrado o no try: #Esto en caso de la opcion de que al verificar el documento si se #encuentre el cliente cliente= Cliente.objects.get(documento=documento) #Si todo marcha a la perfeccion procedemos a agregar la factura como paso final return render(request, 'boletas/agregarFactura.html',{'campania':campania,'cliente':cliente,'almacen':almacen,'campania_almacen':campania_almacen}) except Exception, e: #si no se encuentra, entonces quiere decir que se va a agregar #Por tanto recolectamos todos los datos documento= request.POST['documento'] tipo_doc= request.POST['tipo_doc'] nombres= request.POST['nombres'] apellidos= request.POST['apellidos'] genero= int(request.POST['genero']) fecha_nacimiento= request.POST['fecha_nacimiento'] estado_civil= request.POST['estado_civil'] correo= request.POST['correo'] direccion= request.POST['direccion'] telefono= request.POST['telefono'] ciudad= request.POST['ciudad'] observaciones= request.POST['observaciones'] if observaciones == "": observaciones = "Ninguna" var= fecha_nacimiento.split('/') #para la fecha, tenemos que trasformarla en el formato que mysql recibe fecha_nacimiento= var[2]+"-"+var[0]+'-'+var[1] departamentos= Departamento.objects.all() nombre_usuario = request.user.username.capitalize() try: cliente= Cliente(documento,tipo_doc,nombres,apellidos,genero,fecha_nacimiento,estado_civil,telefono,correo,direccion,ciudad,observaciones) cliente.save() #Si todo marcha a la perfeccion procedemos a agregar la factura como paso final return render(request, 'boletas/agregarFactura.html',{'campania':campania,'cliente':cliente,'campania_almacen':campania_almacen}) except Exception, e: raise e return render(request,'boletas/registroCliente.html',{'mensaje_error':'No se logro completar la operacion. Favor verifique sus datos','campania':campania,'departamentos':departamentos})
def registroCurso(request): dic = {'Error': True} if request.is_ajax(): if request.POST: from clientes.models import Cliente, ClientesTiendas, Contrato try: Cliente.objects.get(mail=request.POST['mail']) except ObjectDoesNotExist: cliente = Cliente() cliente.nombre = request.POST['nombreCliente'] cliente.telefono = 'Desconocido' cliente.mail = request.POST['mail'] cliente.sexo = 'N' cliente.fecha = date.today() cliente.activo = 0 cliente.save() dic['Error'] = False return HttpResponse(json.dumps(dic), content_type='application/json;charset=utf8') else: raise Http404
def test_crearcliente(self): cliente1 = Cliente() self.assertIsNotNone(cliente1)
def create(self, request): cliente = Cliente(**request.data) cliente.usuario_creacion = request.user cliente.save() return Response(status=status.HTTP_200_OK)
# TODO 0: python manage.py shell # TODO 1: import django # TODO 2: django.setup() # TODO 3. Importar o modelo que vai ser criado from clientes.models import Cliente # TODO 4. Criar o tenant public tenant = Cliente( # don't add your port or www here! on a local server you'll want to use localhost here domain_url='usesoft-saas.com', schema_name='public', nome='Usesoft do Brasil', pago_ate='3000-12-31', em_teste=False).save() # TODO 4.1: >>> from django.contrib.sites.models import Site # TODO 4.2: >>> Site.objects.create(name='usesoft-saas.com', domain='usesoft-saas.com.com') # TODO 5. Criar o tenant sem ser public tenant1 = Cliente(domain_url='comercialtoes-saas.com', schema_name='comercial_toes', nome='Comercial Toes', pago_ate='2018-12-31', em_teste=False).save() # TODO 5.1: >>> from django.contrib.sites.models import Site # TODO 5.2: >>> Site.objects.create(name='comercialtoes-saas.com', domain='comercialtoes-saas.com') # TODO 6. Criar o outro tenant ser public
def crearTienda(request): datos = {} if request.is_ajax(): if request.POST: from clientes.models import Cliente, ClientesTiendas, Contrato, Privilegios import re if re.match('^[(a-z0-9\_\-\.)]+@[(a-z0-9\_\-\.)]+\.[(a-z)]{2,4}$', request.POST['mail'].lower()) and re.match( '|^[a-zA-Z]*$|', request.POST['subdominio'].lower()): try: site = Site.objects.get(domain=request.POST['subdominio'] + '.mindoncloud.com') datos['Error'] = True datos[ 'letras'] = 'La tienda ya existe intena con otro Nombre' except ObjectDoesNotExist: try: cliente = Cliente.objects.get( mail__exact=request.POST['mail']) print('test') datos['Error'] = True datos['letras'] = 'Correo no válido1' except ObjectDoesNotExist: try: Tienda.objects.get( nombre=request.POST['nombreTienda'], activo=1) datos['Error'] = True datos['letras'] = 'Nombre de tienda en uso' except ObjectDoesNotExist: try: Site.objects.get( domain=request.POST['subdominio'] + '.wido.mx') datos['Error'] = True datos['letras'] = 'Direccion de tienda en uso' except ObjectDoesNotExist: datos['Error'] = False if datos['Error'] == False: from datetime import date, timedelta url = urllib.urlopen( "https://api.digitalocean.com/v1/domains/new?client_id=30c316cd106ea8d3aec887283db8dd24&api_key=972292751ed197d894365b2df49c771e&name=" + request.POST['subdominio'] + ".wido.com.mx&ip_address=104.236.24.225") url = urllib.urlopen( "https://api.digitalocean.com/v1/domains/new?client_id=30c316cd106ea8d3aec887283db8dd24&api_key=972292751ed197d894365b2df49c771e&name=www." + request.POST['subdominio'] + ".wido.com.mx&ip_address=104.236.24.225") site = Site() site.domain = request.POST[ 'subdominio'] + '.wido.com.mx' site.name = request.POST['subdominio'] site.save() cliente = Cliente() cliente.nombre = request.POST['nombreCliente'] cliente.telefono = 'Desconocido' cliente.mail = request.POST['mail'] cliente.sexo = 'N' cliente.fecha = date.today() cliente.usuario = 0 cliente.activo = 1 cliente.save() admin = Administrador() admin.nombre = request.POST['nombreCliente'] admin.login = request.POST['subdominio'] + str( uuid.uuid4().hex)[:3] admin.password = str(uuid.uuid4().hex)[:8] admin.cliente = str(cliente.idclientes) admin.activo = 1 admin.save() tienda = Tienda() tienda.nombre = request.POST['nombreTienda'] tienda.rfc = 'RFC Desconocido' tienda.logo = 'Subir logo' tienda.ubicacion = 'Domicilio Desconocido' tienda.direccion = 'Domicilio Desconocido' tienda.mail = 'mail Desconocido' tienda.telefono = 'telefono desconocido' tienda.descripcion = 'Desconocido' tienda.activo = 0 tienda.administrador = admin tienda.site_id = int(site.id) tienda.save() parametros = { 'mailreceptor': request.POST['mail'], 'mailemisor': '*****@*****.**', 'asunto': 'Bienvenido a WIDO', 'texto': '<h1>Nuevo cliente</h1> <p>Nuevo Cliente con plan simple</p><p>Nombre ' + str(cliente.nombre) + '<br>Datos de acceso:<br> usuario:' + admin.login + '<br>clave: ' + admin.password } setMensaje(parametros) stock = Stock() stock.fecha = date.today() stock.descripcion = 'Stock de la tienda ' + request.POST[ 'nombreTienda'] stock.tienda = tienda stock.save() tp = Tipocliente() tp.nombre = 'Casual' tp.descripcion = 'Cliente Casual de tienda ' + unicode( request.POST['subdominio']) tp.prioridad = 1 tp.stock_idstock = stock tp.save() contrato = Contrato() contrato.inicio = date.today() current_date = date.today() """new_month=divmod(current_date.month-1+1, 12) new_month+=1 current_date=current_date.replace(year=current_date.year+carry, month=new_month)""" contrato.fin = date.today() + timedelta(days=7) contrato.fecha = date.today() contrato.tienda = str(tienda.idtienda) contrato.clientes_idclientes = cliente contrato.activo = 1 contrato.save() privilegio = Privilegios() #privilegio.nivel=request.POST['planes'] privilegio.nivel = 'Bronce' privilegio.descripcion = 'Conocida' privilegio.activo = 1 privilegio.contrato = contrato privilegio.save() ct = ClientesTiendas() ct.clientes = cliente ct.tiendas = str(tienda.idtienda) ct.activo = 1 ct.save() conjunto = Conjunto() conjunto.tienda = int(tienda.idtienda) conjunto.fecha = date.today() conjunto.activo = 1 conjunto.cms = Cms.objects.get(idcms=1) conjunto.save() secciones = Secciones() secciones.nombre = 'Pie' secciones.titulo = 'Pie de Pagina' secciones.contenido = 'plantilla1/footer.html' secciones.activo = 1 secciones.conjunto = conjunto secciones.save() secciones = Secciones() secciones.nombre = 'Cabecera' secciones.titulo = 'Cabecera de Pagina' secciones.contenido = 'plantilla1/header.html' secciones.activo = 1 secciones.conjunto = conjunto secciones.save() secciones = Secciones() secciones.nombre = 'Cuerpo' secciones.titulo = 'Cuerpo de Pagina' secciones.contenido = 'Conocido' secciones.activo = 1 secciones.conjunto = conjunto secciones.save() os.mkdir( '/opt/wido/Plataforma/storeapp/static/imagenes/tiendas/' + unicode(request.POST['nombreTienda']).replace( ' ', '-')) #parametros={ # 'mailreceptor':'*****@*****.**', # 'mailemisor':request.POST['mail'], # 'asunto':'Nuevo Cliente', # 'texto':'<h1>Nuevo cliente</h1> <p>Nuevo Cliente con plan simple</p><p>Nombre '+str(cliente.nombre)+'</p><p>Referencia '+str(cliente.idclientes)+'</p>', # } #setMensaje(parametros) #plan=request.POST['planes'] #total=0 #if plan == 'Bronce': # total=200 #elif plan=='Plata': # total=300 #else: # total=400 #parametros={ # 'mailreceptor':request.POST['mail'], # 'mailemisor':'*****@*****.**', # 'asunto':'Nuevo Cliente', # 'texto':'<!DOCTYPE html> <html lang="es"> <style type="text/css"> h1 {font-size: 2.7em; margin: 0; } h2 {font-size: 2em; } ul {list-style: none; width: 80%; margin-left: 25px; } #todo {padding: 40px; width: 800px; } #logo {width: 25%; height: 300px; display: inline-block; margin-right: 32px; } #logo img {width: 100%; } #derecha {width: 70%; height: auto; display: inline-block; vertical-align: top; } #derecha img {width: 60%; } #total {font-size:2em; font-weight: bold; } #nota {font-size: 18px; } #contenedor-total {margin-left: 40px; margin-bottom: 30px; margin-top: 20px; } .etiqueta {font-size: 18px; } </style> <head> <meta charset="utf-8" /> <title>Pago bancario</title> </head> <body> <header> </header> <div id="todo"> <div id="logo"> <img src="http://subdominios.wido.mx/wido.png"> </div> <div id="derecha"> <h1>Agradecemos tu preferencia</h1> <h2>Información de pago</h2> <img src="http://proyectopuente.com.mx/Content/images/posts/banamex.gif"> <ul> <li> <label class="etiqueta" >Beneficiario: Juan Perez</label> </li> <li> <label class="etiqueta" >Sucursal: 0706</label> </li> <li> <label class="etiqueta" >Cuenta: 2331512</label> </li> <li> <label class="etiqueta" >Clabe Interbancaria: 002357070623315125</label> </li> <li> <label class="etiqueta" >Referencia: '+str(cliente.idclientes)+'</label> </li> </ul> </div> <div id="contenedor-total"> <label id="total">Total a pagar: $'+str(total)+'.00</label> </div> <p id="nota"> Nota: Para poder identificar tu pago es importante coloques el numero de referencia a tu deposito. <br> Los pagos salvo buen cobro demoran 72 horas hábiles. </p> </div> <footer> </footer> </body> </html>', # } #setMensaje(parametros)""" #params = urllib.urlencode({'user':'******','clave':'30UmjCz90m','subdominio':request.POST['subdominio']}) #url=urllib.urlopen("http://subdominios.wido.mx/crear.php",params) else: datos['Error'] = True datos['letras'] = 'Correo inválido' return HttpResponse(json.dumps(datos), content_type='application/json;charset=utf8') else: raise Http404