def abonos_clientes(request): if request.method == 'POST': if len(request.POST) == 2 and "DNI" in request.POST: clientes = Clientes.objects.filter( DNI__icontains=request.POST.get('DNI')) if len(clientes) > 0: direccion = get_first_direccion(clientes[0].id) full_data = dict( model_to_dict(direccion).items() + model_to_dict(clientes[0]).items()) form = CPClientesForm(full_data, instance=clientes[0]) titulo = 'Cliente existente' tipo = "abonar" request.session["accion_abonos_dni"] = request.POST.get('DNI') request.session["accion_abonos_pk_cliente"] = clientes[0].pk else: form = CPClientesForm(request.POST) titulo = 'Cliente no existe' tipo = "no_existe" return render(request, 'tienda/compras/clientes.html', { 'form': form, 'titulo': titulo, 'tipo': tipo }) if len(request.POST) > 2: clientes = Clientes.objects.filter( DNI__icontains=request.POST.get('DNI')) request.session["accion_abonos_dni"] = request.POST.get('DNI') tipo = "abonar" if len(clientes) > 0: form = CPClientesForm(request.POST, instance=clientes[0]) else: form = CPClientesForm(request.POST) if form.is_valid(): cliente = form.save() direccion = set_first_direccion(request.POST, cliente.pk) direccion.cliente_id = cliente.pk direccion.save() else: return render( request, 'tienda/compras/clientes.html', { 'form': form, 'titulo': "Error al guradar el cliente", 'tipo': tipo, "form_error": form.errors }) request.session["accion_abonos_pk_cliente"] = cliente.pk return render( request, 'tienda/compras/clientes.html', { 'form': form, 'titulo': "Cliente guardado o modificado", 'tipo': tipo }) return redirect("find_cliente")
def clientes(request, id_cliente=-1): if not request.method == "POST" and id_cliente == -1: f_cliente = CPClientesForm() return render(request, 'gestion/clientes/clientes.html', { "form": f_cliente, "titulo": "Cliente nuevo" }) elif not request.method == "POST" and id_cliente > 0: f_cliente = CPClientesForm() try: clientes = Clientes.objects.filter(pk=id_cliente) if len(clientes) > 0: cliente = clientes[0] else: cliente = Clientes() direccion = get_first_direccion(id_cliente) full_data = dict( model_to_dict(direccion).items() + model_to_dict(cliente).items()) f_cliente = CPClientesForm(full_data, instance=cliente) except: print("Error al enviar formulario") return render( request, 'gestion/clientes/clientes.html', { "form": f_cliente, "id_cliente": id_cliente, "titulo": "Editar cliente" }) elif id_cliente > 0: cliente = None clientes = Clientes.objects.filter(pk=id_cliente) if len(clientes) > 0: cliente = clientes[0] cliente = modificar_cliente(request.POST, cliente) return redirect("lista_clientes") else: cliente = modificar_cliente(request.POST) return redirect("lista_clientes")
def ch_find_cliente(request): if request.method == "POST": filter = request.POST["filter"] filter_query = Clientes.objects.filter( Q(nombre_completo__contains=filter) | Q(DNI__contains=filter) | Q(telefono__contains=filter)) f_cliente = CPClientesForm() return render(request, "tienda/ventas/lista_cliente_ajax.html", { 'query': filter_query, 'form': f_cliente }) return redirect("gestion")
def modificar_cliente(datos, cliente=None): if cliente != None: form = CPClientesForm(datos, instance=cliente) else: form = CPClientesForm(datos) if form.is_valid(): cliente = form.save() direccion = set_first_direccion(datos, cliente.pk) direccion.cliente_id = cliente.pk direccion.save() else: print(form.errors) return cliente