Ejemplo n.º 1
0
def cancelar_trato(request, id_producto):
    if request.method == "POST":
        producto = Productos.objects.get(pk=id_producto)
        f_p = FinTratoForm(request.POST, instance=producto)
        if f_p.is_valid():
            p = f_p.save()
            p.estado = "CT"
            p.save()
            clientes = Historial.objects.filter(producto_id=p.pk)
            cliente_id = 1
            if len(clientes) > 0:
                cliente_id = clientes[0].cliente_id

            #guardamos un historial de la accion realizada
            save_historial(request.user.id, p.id, cliente_id,
                           "Rechazada la compra del producto..")

            vaciar_sesison_compra(request)
            return HttpResponse(reverse("tienda"))
    else:
        p = Productos.objects.get(pk=id_producto)
        p.estado = "CT"
        p.save()
        clientes = Historial.objects.filter(producto_id=p.pk)
        cliente_id = 1
        if len(clientes) > 0:
            cliente_id = clientes[0].cliente_id

        #guardamos un historial de la accion realizada
        save_historial(request.user.id, p.id, cliente_id,
                       "Rechazada la compra del producto..")

        vaciar_sesison_compra(request)
        return redirect("lista_productos", estado="TD")
Ejemplo n.º 2
0
def facturar(request):
    if request.method == "POST":
        venta = Ventas()
        if request.session["accion_ventas_dni"] == "ticket":
            venta.cliente = None
        else:
            venta.cliente_id = request.session["accion_ventas_pk_cliente"]
        venta.empleado_id = request.user.pk
        venta.empleado = request.user.get_full_name()
        venta.forma_pago = request.POST["forma_pago"]
        venta.entrega = request.POST["entrega"]
        venta.save()
        lineas = json.loads(request.POST["lineas"])
        for l in lineas:
            producto = Productos.objects.get(ns_imei=l["imei"])
            producto.set_vendido()
            producto.save()
            if producto.es_unico:
                #guardar historial del producto unico
                save_historial(request.user.pk,
                               request.session["accion_ventas_pk_cliente"],
                               producto.pk, "Producto vendido")

            linea = LineasVentas()
            linea.venta_id = venta.id
            linea.ns_imei = l["imei"]
            linea.can = l["can"]
            linea.detalle = producto.get_detalle_factura()
            linea.codigo_compra = l["codigo_compra"]
            linea.descuento = l["descuento"]
            linea.p_unidad = l["total_unidad"]
            linea.save()

    vaciar_session_ventas(request)
    return HttpResponse(reverse("get_factura_by_id", args=[venta.pk]))
Ejemplo n.º 3
0
def cancelar_compra(request):
    if request.method == "POST":
        try:
            producto = Productos.objects.get(
                pk=request.session["accion_comprar_pk_producto"])
            producto.tipo_id = request.POST["tipo"]
            producto.precio_compra = request.POST["precio_compra"]
            producto.estado = "CT"
            producto.save()
        except:
            return HttpResponse(reverse("tienda"))

        estan_todos = True
        estan_todos = estan_todos and "accion_comprar_pk_cliente" in request.session
        estan_todos = estan_todos and "accion_comprar_pk_producto" in request.session
        estan_todos = estan_todos and "accion_comprar_pk_modelo" in request.session

        if estan_todos:
            #Guardamos historial de la cancelacion de la comprar
            save_historial(
                request.user.id, request.session["accion_comprar_pk_cliente"],
                request.session["accion_comprar_pk_producto"],
                "Compra cancelada, producto en posesion del cliente")

            vaciar_sesison_compra(request)
            return HttpResponse(reverse("tienda"))
    else:
        return HttpResponse(reverse("en_construccion"))
Ejemplo n.º 4
0
def cp_productos(request, id_modelo=-1):
    if "accion_comprar_dni" in request.session:
        if request.method != "POST" and id_modelo < 0:
            f_modelo = ModelosForm()
            return render(request, 'tienda/compras/find_modelos.html',
                          {"form": f_modelo})
        elif request.method != "POST" and id_modelo > 0:
            request.session["accion_comprar_pk_modelo"] = id_modelo
            try:
                modelo = Modelos.objects.get(pk=id_modelo)
            except:
                modelo = Modelos()
            tipo = "no_existe"
            form = CPProductosForm()
            return render(
                request, 'tienda/compras/productos.html', {
                    'form': form,
                    'titulo': "Datos del producto",
                    'modelo': modelo,
                    'tipo': tipo
                })
        else:
            try:
                producto = Productos.objects.get(
                    ns_imei=request.POST.get("ns_imei"))
                form = CPProductosForm(request.POST, instance=producto)
            except Exception as p:
                form = CPProductosForm(request.POST)

            if form.is_valid():
                producto = form.save(commit=False)
                if "accion_comprar_pk_modelo" not in request.session:
                    vaciar_sesison_compra(request)
                    return redirect("tienda")
                producto.modelo_id = request.session[
                    "accion_comprar_pk_modelo"]
                producto.estado = "TD"
                #tipos = Tipos.objects.all()
                #if len(tipos) > 0:
                #    tipo = tipos[0].pk
                #else:
                #    tipo = -1
                #producto.tipo_id = tipo
                producto.precio_compra = producto.modelo.precio_usado
                producto.save()
                request.session["accion_comprar_pk_producto"] = producto.pk
                save_historial(request.user.pk,
                               request.session["accion_comprar_pk_cliente"],
                               request.session["accion_comprar_pk_producto"],
                               "Producto comprado sin testear")
                form = ProductosForm(instance=producto)
            return render(
                request, 'tienda/compras/compras.html', {
                    'form': form,
                    'titulo': "Datos del producto",
                    "form_error": form.errors,
                    "id_modelo": request.session["accion_comprar_pk_modelo"]
                })
    else:
        return redirect("tienda")
Ejemplo n.º 5
0
def send_para_tester(request, id_modelo):
    if "accion_comprar_dni" in request.session:
        try:
            producto = Productos.objects.get(
                ns_imei=request.POST.get("ns_imei"))
            form = CPProductosForm(request.POST, instance=producto)
        except Exception as p:
            form = CPProductosForm(request.POST)

        if form.is_valid():
            producto = form.save(commit=False)
            producto.modelo_id = request.session["accion_comprar_pk_modelo"]
            producto.estado = "OS"
            producto.tipo_id = 1
            producto.precio_compra = producto.modelo.precio_usado
            producto.save()
            request.session["accion_comprar_pk_producto"] = producto.pk
            #Guardamos el histarial de la accion Realizada
            save_historial(request.user.pk,
                           request.session["accion_comprar_pk_cliente"],
                           producto.pk, "Entrada para testeo posible compra")
            #Creamos el documento de recepción de terminal.
            doc = save_doc_testeo(request.user.pk,
                                  request.session["accion_comprar_pk_cliente"],
                                  producto.pk)
            #Guradamos el documen to para firmar
            save_doc_firmas(request.user.pk, doc.id, "OS")
            vaciar_sesison_compra(request)
            return JsonResponse({"result": True})
    else:
        return redirect("tienda")
Ejemplo n.º 6
0
def cambiar_estado(request, id):
    if request.method == "POST":
        producto = Productos.objects.get(pk=id)
        form = EstadoProductosForm(request.POST, instance=producto)
        producto = form.save()
        filter_query = Productos.objects.filter(pk=id)
        estado = producto.estado
        h = Historial.objects.filter(producto__id=id)[0]

        save_historial(request.user.pk, h.cliente_id, producto.pk,
                       "Cambio de estado del producto.")

        if estado in ["VT", "ST"]:
            ch = "disponibles"
        elif estado in ["OK", "PD", "RP"]:
            ch = "taller"
        else:
            ch = None

        return render(
            request, "almacen/productos/lista_productos.html", {
                'query': filter_query,
                "estado": 'all',
                "form_estado": EstadoProductosForm(),
                "ch": ch
            })
    else:
        return redirect("tienda")
Ejemplo n.º 7
0
def guardar_compra(cliente_id, producto_id, user_id, detalle):
    compra = Compras()
    compra.vendedor_id = cliente_id
    compra.tipo_vendedor = 'CL'
    compra.producto_id = producto_id
    compra.usuario_id = user_id
    compra.save()
    #Guardamos el historial
    save_historial(user_id, cliente_id, user_id, detalle)

    return compra
Ejemplo n.º 8
0
def modificar_lineas_ventas(request, venta):
    lineas = LineasVentas.objects.filter(venta__pk=venta.pk)
    for l in lineas:
        try:
            producto = Productos.objects.get(ns_imei=l.ns_imei)
            producto.estado = 'VT'
            producto.save()
            if producto.es_unico:
                #guardar historial del producto unico
                save_historial(request.user.pk, venta.cliente_id, producto.pk,
                               "Producto modificado en factura o devuelto")
        except:
            pass
        l.delete()
Ejemplo n.º 9
0
def set_reparado(request, id_producto, estado='OK'):
    pres = Presupuesto.objects.filter(producto__pk=id_producto)
    if len(pres) > 0:
        pres = pres[0]
        cliente = pres.cliente
    producto = Productos.objects.get(pk=id_producto)
    producto.estado = "OK"
    producto.save()
    #Guardamos el historial de la accion
    save_historial(request.user.pk, cliente.pk,
                    id_producto, "Producto reparado...")


    threading.Thread(target=send_men_rep, args=(cliente, estado,)).start()
    return redirect("lista_productos", estado='RP')
Ejemplo n.º 10
0
def modificar_factura(request, id_venta):
    if request.method == "POST":
        lineas = json.loads(request.POST["lineas"])
        venta = Ventas.objects.get(pk=id_venta)
        modificar_lineas_ventas(request, venta)
        if len(lineas) <= 0:
            LineasVentas.objects.filter(venta__pk=venta.pk).delete()
            venta.delete()
        else:
            venta = Ventas.objects.get(pk=id_venta)
            venta.cliente_id = request.POST["cliente_id"]
            venta.forma_pago = request.POST["forma_pago"]
            venta.save()
            for l in lineas:
                try:
                    producto = Productos.objects.get(ns_imei=l["imei"])
                    producto.set_vendido()
                    producto.save()
                    detalle = producto.get_detalle_factura()
                    if producto.es_unico:
                        #guardar historial del producto unico
                        save_historial(request.user.pk,
                                       request.POST["cliente_id"], producto.pk,
                                       "Producto vendido")
                except:
                    if "detalle" in l:
                        detalle = l['detalle']
                    else:
                        detalle = ""

                linea = LineasVentas()
                linea.venta_id = venta.id
                linea.ns_imei = l["imei"]
                linea.can = l["can"]
                linea.detalle = detalle
                linea.codigo_compra = l["codigo_compra"]
                linea.descuento = l["descuento"]
                linea.p_unidad = l["total_unidad"]
                linea.save()

    return HttpResponse(reverse("listado_facturas"))
Ejemplo n.º 11
0
def cp_productos_proveedor(request, id_modelo=-1):
    if "accion_comprar_cif" in request.session:
        if request.method != "POST" and id_modelo < 0:
            f_modelo = ModelosForm()
            return render(request, 'proveedor/find_modelos.html',
                          {"form": f_modelo})
        elif request.method != "POST" and id_modelo > 0:
            request.session["accion_comprar_pro_pk_modelo"] = id_modelo
            try:
                modelo = Modelos.objects.get(pk=id_modelo)
            except:
                modelo = Modelos()
            tipo = "no_existe"
            producto = Productos()
            producto.modelo_id = modelo.pk
            producto.precio_compra = modelo.precio_usado
            tipos = Tipos.objects.all()
            #producto.tipo_id = tipos[0].pk if len(tipos) > 0 else -1
            form = ProductosForm(instance=producto)
            return render(
                request, 'proveedor/productos.html', {
                    'form': form,
                    'titulo': "Datos del producto",
                    'modelo': modelo,
                    'tipo': tipo
                })
        else:
            try:
                producto = Productos.objects.get(
                    ns_imei=request.POST.get("ns_imei"))
                form = ProductosForm(request.POST, instance=producto)
            except Exception as p:
                form = ProductosForm(request.POST)

            producto_str = ""
            if form.is_valid():
                producto = form.save(commit=False)
                if "accion_comprar_pro_pk_modelo" not in request.session:
                    vaciar_sesison_compra_proveedor(request)
                    return redirect("tienda")
                producto.modelo_id = request.session[
                    "accion_comprar_pro_pk_modelo"]
                producto.estado = "ST"
                producto.save()
                request.session["accion_comprar_pro_pk_producto"] = producto.pk
                save_historial(
                    request.user.pk,
                    request.session["accion_comprar_pk_proveedor"],
                    request.session["accion_comprar_pro_pk_producto"],
                    "Producto comprado a un proveedor")

                producto_str = Productos.objects.get(
                    pk=producto.pk).modelo.nombre
                form = ProveedorCompra()

            return render(
                request, 'proveedor/compras.html', {
                    'form': form,
                    'titulo': "Datos del producto",
                    "form_error": form.errors,
                    "producto_str": producto_str,
                    "id_modelo":
                    request.session["accion_comprar_pro_pk_modelo"]
                })

    else:
        return redirect("tienda")