Exemplo n.º 1
0
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")
Exemplo n.º 2
0
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")
Exemplo n.º 3
0
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")
Exemplo n.º 4
0
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