Exemplo n.º 1
0
def EditarCliente(request, dni):
    try:
        cliente_form = None
        cliente = Cliente.objects.get(dni=dni)
        if request.method == 'GET':
            cliente_form = ClienteForm(instance=cliente)
        else:
            cliente_form = ClienteForm(request.POST, instance=cliente)
            if cliente_form.is_valid():
                cliente_form.save()
            return redirect('cliente:cliente_home')
    except ObjectDoesNotExist as e:
        error = e

    #Notificaciones
    pedidos = Pedido.objects.all().exclude(confirmado=False)
    envios_noti = []
    for pedido in pedidos:
        envio_temp = Detalle_envio.objects.filter(pedido=pedido).exclude(
            visto=True).first()
        if envio_temp:
            envios_noti.append(envio_temp)
    envios_not = envios_noti[:3]
    envio_count = len(envios_noti)

    return render(
        request, 'cliente/crear_cliente.html', {
            'envios_not': envios_not,
            'envio_count': envio_count,
            'cliente_form': cliente_form
        })
Exemplo n.º 2
0
def CrearCliente(request):
    if request.method == 'POST':
        cliente_form = ClienteForm(request.POST)
        print("ALTO ERROR WACHO")
        print(cliente_form.errors)
        if cliente_form.is_valid():
            cliente_form.save()
            messages.success(request, 'Sea agregó correctamente el cliente')
            return ClienteHome(request)
        else:
            messages.error(request,
                           'Ocurrió un error al tratar de agregar el cliente')
    else:
        cliente_form = ClienteForm()

    #Notificaciones
    pedidos = Pedido.objects.all().exclude(confirmado=False)
    envios_noti = []
    for pedido in pedidos:
        envio_temp = Detalle_envio.objects.filter(pedido=pedido).exclude(
            visto=True).first()
        if envio_temp:
            envios_noti.append(envio_temp)
    envios_not = envios_noti[:3]
    envio_count = len(envios_noti)

    return render(
        request, 'cliente/crear_cliente.html', {
            'envios_not': envios_not,
            'envio_count': envio_count,
            'cliente_form': cliente_form
        })
Exemplo n.º 3
0
def EditarPedido(request, id_pedido):
    #Notificaciones
    pedidos = Pedido.objects.all().exclude(confirmado=False)
    envios_noti = []
    for pedido in pedidos:
        envio_temp = Detalle_envio.objects.filter(pedido=pedido).exclude(
            visto=True).first()
        if envio_temp:
            envios_noti.append(envio_temp)
    envios_not = envios_noti[:3]
    envio_count = len(envios_noti)

    pedido_form = None
    pedido = get_object_or_404(Pedido, id_pedido=id_pedido)
    pedidos = Pedido.objects.all()
    detalles = Detalle.objects.filter(
        pedido_id=id_pedido).select_related('prenda')
    if request.method == 'GET':
        pedido_form = PedidoForm(instance=pedido)
    else:
        if 'boton_agregar' in request.POST:
            pedido_form = PedidoForm(request.POST, instance=pedido)
            if pedido_form.is_valid():
                pedido_form.save()
            return redirect('/prenda/crear_prenda/' + str(id_pedido))
        if 'boton_finalizar' in request.POST:
            pedido_form = PedidoForm(request.POST, instance=pedido)
            pedido = pedido_form.save(commit=False)
            if pedido.precio_total != None:
                pedido.save()
                return redirect('/pedido/listar_pedido/')
            else:
                cliente_form = ClienteForm(request.POST)
                messages.error(request, 'Debe agregar prendas')
    return render(
        request, 'pedido/editar_pedido.html', {
            'envios_not': envios_not,
            'envio_count': envio_count,
            'pedido_form': pedido_form,
            'detalles': detalles
        })
Exemplo n.º 4
0
def NuevoPedido(request):
    #Notificaciones
    pedidos = Pedido.objects.all().exclude(confirmado=False)
    envios_noti = []
    for pedido in pedidos:
        envio_temp = Detalle_envio.objects.filter(pedido=pedido).exclude(
            visto=True).first()
        if envio_temp:
            envios_noti.append(envio_temp)
    envios_not = envios_noti[:3]
    envio_count = len(envios_noti)

    if request.method == 'POST':
        if 'boton_crear_cliente' in request.POST:
            cliente_form = ClienteForm(request.POST)
            if cliente_form.is_valid():
                cliente_form.save()
                messages.success(request, 'Se agregó correctamente el cliente')
            else:
                messages.error(request, 'Error al crear el cliente')
        if 'boton_agregar' in request.POST:
            pedido_form = PedidoForm(request.POST)
            prenda_form = PrendaForm(
                request.POST
            )  # lupy estubo aki peligro borre este mensaje para su comodidad
            if pedido_form.is_valid():
                pedido = pedido_form.save()
                id_pedido = pedido.id_pedido
                return redirect('/prenda/crear_prenda/' + str(id_pedido))
            else:
                messages.error(request,
                               'No se puede introducir valores negativos')
    else:
        pedido_form = PedidoForm()
        cliente_form = ClienteForm()
    pedido_form = PedidoForm()
    return render(
        request, 'pedido/nuevo_pedido.html', {
            'envios_not': envios_not,
            'envio_count': envio_count,
            'pedido_form': pedido_form,
            'cliente_form': cliente_form
        })
Exemplo n.º 5
0
def VolverPedido(request, id_pedido):
    #Notificaciones
    pedidos = Pedido.objects.all().exclude(confirmado=False)
    envios_noti = []
    for pedido in pedidos:
        envio_temp = Detalle_envio.objects.filter(pedido=pedido).exclude(
            visto=True).first()
        if envio_temp:
            envios_noti.append(envio_temp)
    envios_not = envios_noti[:3]
    envio_count = len(envios_noti)

    detalles = None
    pedido_form = None
    pedido = Pedido.objects.get(id_pedido=id_pedido)
    pedido_id = pedido.id_pedido
    detalles = Detalle.objects.filter(
        pedido_id=id_pedido).select_related('prenda')
    mensaje = ConfiguracionMensaje.objects.all().last()
    reporte = Configuracion.objects.all().last()

    if request.method == 'GET':
        if not detalles:
            pedido.delete()
            return redirect('/pedido/nuevo_pedido')
        pedido_form = PedidoForm(instance=pedido)
    else:
        if 'boton_agregar' in request.POST:
            pedido_form = PedidoForm(request.POST, instance=pedido)
            if pedido_form.is_valid():
                pedido_form.save()
            return redirect('/prenda/crear_prenda/' + str(id_pedido))

        if 'boton_cancelar' in request.POST:
            detalles = Detalle.objects.filter(pedido=pedido)
            for detalle in detalles:
                detalle.delete()
                detalle.prenda.delete()
            pedido.delete()
            return redirect('/pedido/nuevo_pedido')

        if 'boton_finalizar' in request.POST:
            pedido_form = PedidoForm(request.POST, instance=pedido)
            pedido = pedido_form.save(commit=False)

            estado_enespera = Estado.objects.get(id_estado=6)

            estado_pedido = Estado_pedido.objects.create(
                fecha=date.today(), estado=estado_enespera, pedido=pedido)

            pedido.confirmado = True

            from django.template.loader import render_to_string
            from django.core.mail import EmailMultiAlternatives
            #
            text_content = 'Detalle de pedido'
            msg_html = render_to_string('recibo.html', {
                'pedido': pedido,
                'reporte': reporte,
                'detalles': detalles
            })
            html_content = msg_html
            msg = EmailMultiAlternatives('PROYECTO SOFTWARE',
                                         text_content,
                                         to=[pedido.cliente.correo])
            msg.attach_alternative(html_content, "text/html")
            try:
                msg.send()
            except Exception as e:
                print(e)
            id_pedido = pedido.id_pedido

            if pedido.seña != None:
                pedido.save()
                estado_pedido.save()
                messages.success(request, 'Todo ocurrió correctamente')
                return redirect('/pedido/listar_pedido/' + str(id_pedido))

            else:
                cliente_form = ClienteForm(request.POST)
                messages.error(request, 'Debe agregar prendas')
    cliente_form = ClienteForm(request.POST)

    return render(
        request, 'pedido/crear_pedido.html', {
            'envios_not': envios_not,
            'envio_count': envio_count,
            'pedido': pedido,
            'pedido_form': pedido_form,
            'detalles': detalles,
            'cliente_form': cliente_form
        })
Exemplo n.º 6
0
def CrearPedido(request):
    #Notificaciones
    pedidos = Pedido.objects.all().exclude(confirmado=False)
    envios_noti = []
    for pedido in pedidos:
        envio_temp = Detalle_envio.objects.filter(pedido=pedido).exclude(
            visto=True).first()
        if envio_temp:
            envios_noti.append(envio_temp)
    envios_not = envios_noti[:3]
    envio_count = len(envios_noti)

    if request.method == 'POST':
        if 'boton_crear_cliente' in request.POST:
            cliente_form = ClienteForm(request.POST)
            if cliente_form.is_valid():
                cliente_form.save()
                messages.success(request, 'Se agregó correctamente el cliente')
            else:
                messages.error(request, 'Error al crear el cliente')
        if 'boton_agregar' in request.POST:
            pedido_form = PedidoForm(request.POST)
            prenda_form = PrendaForm(
                request.POST
            )  # lupy estubo aki peligro borre este mensaje para su comodidad
            if pedido_form.is_valid():
                pedido = pedido_form.save(commit=False)
                if pedido.fecha_entrega != None:
                    fecha = datetime.datetime.strptime(
                        str(pedido.fecha_entrega), '%Y-%m-%d')
                    if fecha.date() > datetime.date.today():
                        pedido = pedido_form.save()
                        id_pedido = pedido.id_pedido
                        return redirect('/prenda/crear_prenda/' +
                                        str(id_pedido))
                    else:
                        messages.error(
                            request, 'La fecha debe ser posterior a la actual')
                else:
                    pedido = pedido_form.save()
                    id_pedido = pedido.id_pedido
                    return redirect('/prenda/crear_prenda/' + str(id_pedido))
            else:
                messages.error(request,
                               'No se puede introducir valores negativos')
        if 'boton_finalizar' in request.POST:
            pedido_form = PedidoForm(request.POST)
            pedido = pedido_form.save(commit=False)
            id_pedido = pedido.id_pedido
            print(id_pedido)
            if pedido.seña != None:
                pedido.save()
                return redirect('pedido/listar_pedido/' + str(id_pedido))

            else:
                cliente_form = ClienteForm(request.POST)
                messages.error(request, 'Debe agregar prendas')
    else:
        pedido_form = PedidoForm()
        cliente_form = ClienteForm()
    pedido_form = PedidoForm()
    return render(
        request, 'pedido/crear_pedido.html', {
            'envios_not': envios_not,
            'envio_count': envio_count,
            'pedido_form': pedido_form,
            'cliente_form': cliente_form
        })
Exemplo n.º 7
0
def ClienteHome(request):
    #Notificaciones
    pedidos = Pedido.objects.all().exclude(confirmado=False)
    envios_noti = []
    for pedido in pedidos:
        envio_temp = Detalle_envio.objects.filter(pedido=pedido).exclude(
            visto=True).first()
        if envio_temp:
            envios_noti.append(envio_temp)
    envios_not = envios_noti[:3]
    envio_count = len(envios_noti)

    clientes = Cliente.objects.all().exclude(activo=False)
    cliente_form = ClienteForm()
    reporte = Configuracion.objects.all().last()
    if request.method == 'POST':
        cliente_form = ClienteForm(request.POST)

        if cliente_form.is_valid():
            cliente_form.save()
            messages.success(request, 'Sea agregó correctamente el cliente')
            cliente_form = ClienteForm()
            return render(
                request, 'cliente/index_cliente.html', {
                    'envios_not': envios_not,
                    'envio_count': envio_count,
                    'clientes': clientes,
                    'cliente_form': cliente_form
                })
        else:
            errores = cliente_form.errors.values(
            )  #Obtengo los valores devueltos en el diccionario
            errores = list(errores)  #Los casteo a lista porque no es iterable
            for error in errores:
                error = str(
                    error
                )  #Casteo el error a str (solo para eliminar el PUNTITO del <li>)
                error = error.replace('<ul class="errorlist"><li>',
                                      '')  #Borro la parte esta jaja
                error = error.replace('</li></ul>', '')  # y la parte esta jiji
                messages.error(
                    request, error)  # PAAAaaaaa un mensajito de error to lindo
            cliente_form = ClienteForm(request.POST)
    else:
        cliente_form = ClienteForm()
    return render(
        request, 'cliente/index_cliente.html', {
            'envios_not': envios_not,
            'envio_count': envio_count,
            'reporte': reporte,
            'clientes': clientes,
            'cliente_form': cliente_form
        })