예제 #1
0
 def post(self, request, *args, **kwargs):
     data = {}
     action = request.POST['action']
     try:
         if action == 'add':
             f = ClienteForm(request.POST)
             if User.objects.filter(email=f.data['email']):
                 data['error'] = 'Ya existe un cliente con este correo'
             else:
                 data = self.save_data(f)
         elif action == 'edit':
             pk = request.POST['id']
             cliente = User.objects.get(pk=int(pk))
             f = ClienteForm(request.POST, instance=cliente)
             if User.objects.filter(email=f.data['email']):
                 data['error'] = 'Ya existe un cliente con este correo'
             else:
                 data = self.save_data(f)
         elif action == 'delete':
             pk = request.POST['id']
             cli = User.objects.get(pk=pk)
             cli.delete()
             data['resp'] = True
         else:
             data['error'] = 'No ha seleccionado ninguna opción'
     except Exception as e:
         data['error'] = str(e)
     return HttpResponse(json.dumps(data), content_type='application/json')
예제 #2
0
def crearcli(request):
    data = {}
    f = ClienteForm(request.POST)
    try:
        if request.method == 'POST':
            if Proveedor.objects.filter(documento=0, numero_documento=request.POST['cedula']):
                f.add_error("cedula", "Numero de Cedula ya exitente en los Proveedores")
                data['error'] = f.errors
            elif Empleado.objects.filter(cedula=request.POST['cedula']):
                f.add_error("cedula", "Numero de Cedula ya exitente en los Empleados")
                data['error'] = f.errors
            elif verificar(request.POST['cedula']):
                with transaction.atomic():
                    if f.is_valid():
                        var = f.save()
                        data['resp'] = True
                        data['cliente'] = var.toJSON()
                        return JsonResponse(data)
                    else:
                        data['error'] = f.errors
            else:
                f.add_error("cedula", "Numero de Cedula no valido para Ecuador")
                data['error'] = f.errors
    except Exception as e:
        gs = goslate.Goslate()
        data['error'] = gs.translate(str(e), 'es')
    return JsonResponse(data)
예제 #3
0
def crear(request):
    f = ClienteForm(request.POST)
    data = {
        'icono': opc_icono,
        'entidad': opc_entidad,
        'crud': crud,
        'boton': 'Guardar Cliente',
        'action': 'add',
        'titulo': 'Nuevo Registro de un Cliente'
    }
    action = request.POST['action']
    data['action'] = action
    if request.method == 'POST' and 'action' in request.POST:
        if action == 'add':
            f = ClienteForm(request.POST)
            if f.is_valid():
                f.save(commit=False)
                if Proveedor.objects.filter(documento=0,
                                            numero_documento=f.data['cedula']):
                    data[
                        'error'] = 'Numero de Cedula ya exitente en los Proveedores'
                    data['form'] = f
                elif Empleado.objects.filter(cedula=f.data['cedula']):
                    data[
                        'error'] = 'Numero de Cedula ya exitente en los Empleados'
                    data['form'] = f
                elif verificar(f.data['cedula']):
                    f.save()
                    return HttpResponseRedirect('/cliente/lista')
                else:
                    data['error'] = 'Numero de Cedula no valido para Ecuador'
                    data['form'] = f
            else:
                data['form'] = f
            return render(request, 'front-end/cliente/cliente_form.html', data)
예제 #4
0
 def post(self, request):
     print "registrado"
     try:
         cliente_instance = Cliente.objects.get(dni=request.POST['Cliente'])
         form = RecetaForm(request.POST, request.FILES)
         if form.is_valid():
             receta = form.save(commit=False)
             receta.cliente = cliente_instance
             receta.save()
             form.save_m2m()
             form = RecetaForm()
             cliente_form = ClienteForm()
             return redirect("/receta/historialcliente?dni=" +
                             str(cliente_instance.dni))
         else:
             print form.errors
             cliente_form = ClienteForm
             messages.error(
                 request,
                 'No se pudo registrar, se produjeron algunos errores.')
             return render(self.request, self.template_name, locals())
     except Cliente.DoesNotExist:
         messages.error(
             request,
             'No se pudo registrar, el cliente seleccionado no existe.')
         form = RecetaForm()
         cliente_form = ClienteForm
         return render(self.request, self.template_name, locals())
예제 #5
0
def nuevo(request):
    data = {
        'icono': opc_icono, 'entidad': opc_entidad, 'crud': crud, 'empresa': empresa,
        'boton': 'Guardar Cliente', 'action': 'add', 'titulo': 'Nuevo Registro de un Cliente',
    }
    if request.method == 'GET':
        data['form'] = ClienteForm()
    return render(request, 'front-end/cliente/cliente_form.html', data)
예제 #6
0
 def post(self, request, *args, **kwargs):
     data = {}
     action = request.POST['action']
     try:
         print(action)
         if action == 'add':
             f = ClienteForm(request.POST)
             datos = request.POST
             data = self.save_data(f, datos)
         elif action == 'edit':
             pk = request.POST['id']
             cliente = User.objects.get(pk=int(pk))
             f = ClienteForm(request.POST, instance=cliente)
             if f.is_valid():
                 f.edit()
             else:
                 data['error'] = f.errors
         elif action == 'delete':
             pk = request.POST['id']
             cli = Cliente.objects.get(pk=pk)
             cli.delete()
             data['resp'] = True
         else:
             data['error'] = 'No ha seleccionado ninguna opción'
     except Exception as e:
         data['error'] = str(e)
     return HttpResponse(json.dumps(data), content_type='application/json')
예제 #7
0
def cliente_view(request):
    if request.method == 'POST':
        form = clienteForm(request.POST)
        if form.is_valid():
            form.save()
        return redirect('cliente:index')
    else:
        form = ClienteForm()

    return render(request, 'cliente/cliente_form.html', {'form': form})
예제 #8
0
 def get(self,request):
     cliente_form = ClienteForm()
     venta_form = VentaForm()
     ProductoForm = DetalleVentaForm()
     LenteForm = DetalleLenteForm()
     nro_venta = get_venta()
     nro_pedido = get_nota_pedido()
     nro_bloque_venta  = BloqueVenta_last_id()
     nro_bloque_pedido = BloquePedido_last_id()
     return render(request,self.template_name,locals())
예제 #9
0
 def get_context_data(self, **kwargs):
     data = super().get_context_data(**kwargs)
     data['icono'] = opc_icono
     data['entidad'] = opc_entidad
     data['titulo'] = 'Nueva Confeccion'
     data['empresa'] = empresa
     data['form'] = TransaccionForm()
     data['form2'] = Detalle_confeccionform()
     data['detalle'] = []
     user = Cliente.objects.get(cedula=self.request.user.cedula)
     data['formc'] = ClienteForm(instance=user)
     return data
예제 #10
0
def cliente_edit(request, id_cliente):
    cliente = Cliente.objects.get(id=id_cliente)
    if request.method == 'GET':
        form = ClienteForm(instance=cliente)
    else:
        form = ClienteForm(request.POST, instance=cliente)
        if form.is_valid():
            form.save()
        return redirect('cliente:cliente_listar')
    return render(request, 'cliente/cliente_form.html', {'form': form})
예제 #11
0
def formulario_view(request):
    if request.method == 'POST':
        form = ClienteForm(request.POST)
        if form.is_valid():
            form.save()

    else:
        form = ClienteForm()

    return render(request, 'cliente/index.html', {'form': form})
예제 #12
0
 def get_context_data(self, **kwargs):
     data = super().get_context_data(**kwargs)
     data['icono'] = opc_icono
     data['entidad'] = opc_entidad
     data['titulo'] = 'Nuevo Alquiler'
     data['empresa'] = empresa
     data['form'] = TransaccionForm()
     data['form2'] = Detalle_AlquilerForm()
     data['detalle'] = []
     user = User.objects.get(id=self.request.user.id)
     data['formc'] = ClienteForm(instance=user)
     return data
예제 #13
0
 def get_context_data(self, **kwargs):
     data = super().get_context_data(**kwargs)
     data['icono'] = opc_icono
     data['entidad'] = opc_entidad
     data['boton'] = 'Guardar Venta'
     data['titulo'] = 'Nueva Venta'
     data['nuevo'] = '/venta/nuevo'
     data['empresa'] = empresa
     data['form'] = TransaccionForm()
     data['form2'] = Detalle_VentaForm()
     data['detalle'] = []
     data['formc'] = ClienteForm()
     return data
예제 #14
0
 def post(self, request, *args, **kwargs):
     data = {}
     action = request.POST['action']
     try:
         if action == 'add':
             datos = json.loads(request.POST['confeccion'])
             if datos:
                 with transaction.atomic():
                     asig = Asig_recurso()
                     asig.fecha_asig = datos['inicio_produccion']
                     asig.fecha_fin = datos['fin_produccion']
                     asig.user_id = datos['cliente']
                     asig.save()
                     c = Transaccion()
                     c.fecha_trans = datos['fecha_venta']
                     c.user_id = datos['cliente']
                     c.subtotal = float(datos['subtotal'])
                     c.iva = float(datos['iva'])
                     c.total = float(datos['total'])
                     c.tipo = 3
                     c.save()
                     v = Confeccion()
                     v.transaccion_id = c.id
                     v.confeccion_id = asig.id
                     v.save()
                     if datos['productos']:
                         for i in datos['productos']:
                             dtp = Detalle_produccion()
                             dtp.asignacion_id = asig.id
                             dtp.producto_id = int(i['id'])
                             dtp.cantidad = int(i['cantidad_venta'])
                             dtp.save()
                             dv = Detalle_confeccion()
                             dv.producto_id = dtp.id
                             dv.pvp_by_confec = float(i['pvp'])
                             dv.subtotal = float(i['subtotal'])
                             dv.save()
                     data['id'] = v.id
                     data['resp'] = True
             else:
                 data['resp'] = False
                 data['error'] = "Datos Incompletos"
         elif action == 'add_cliente':
             f = ClienteForm(request.POST)
             datos = request.POST
             data = self.save_data(f, datos)
         else:
             data['error'] = 'No ha seleccionado ninguna opción'
     except Exception as e:
         data['error'] = str(e)
     return HttpResponse(json.dumps(data), content_type='application/json')
예제 #15
0
 def get_context_data(self, **kwargs):
     data = super().get_context_data(**kwargs)
     data['icono'] = opc_icono
     data['entidad'] = opc_entidad
     data['boton'] = 'Guardar'
     data['titulo'] = 'Ventas'
     data['titulo_lista'] = 'Listado de Ventas'
     data['titulo_modal_person'] = 'Agregar Cliente'
     data['empresa'] = empresa
     data['form'] = VentaForm
     data['form2'] = Detalle_VentaForm()
     # data['detalle'] = []
     data['formp'] = ClienteForm()
     return data
예제 #16
0
    def post(self, request, *args, **kwargs):
        data = {}
        action = request.POST['action']
        pk = request.POST['id']
        try:
            if action == 'add':
                datos = json.loads(request.POST['ventas'])
                if datos:
                    with transaction.atomic():
                        c = Transaccion()
                        c.fecha_trans = datos['fecha_venta']
                        c.user_id = datos['cliente']
                        c.subtotal = float(datos['subtotal'])
                        c.iva = float(datos['iva'])
                        c.total = float(datos['total'])
                        c.tipo = 2
                        c.save()
                        v = Alquiler()
                        v.transaccion_id = c.id
                        v.fecha_salida = datos['fecha_salida']
                        v.save()
                        if datos['productos']:
                            for i in datos['productos']:
                                stock = Producto.objects.get(id=i['id'])
                                dv = Detalle_alquiler()
                                dv.alquiler_id = v.id
                                dv.inventario_id = int(i['id'])
                                dv.cantidad = int(i['cantidad_venta'])
                                dv.pvp_by_alquiler = stock.pvp_alq
                                dv.subtotal = float(i['subtotal'])
                                dv.save()
                                stock.stock -= int(i['cantidad_venta'])
                                stock.save()
                    data['id'] = v.id
                    data['resp'] = True
            elif action == 'add_user':
                f = ClienteForm(request.POST)
                datos = request.POST
                data = self.save_data(f, datos)
            else:
                data['resp'] = False
                data['error'] = "Datos Incompletos"

        except Exception as e:
            data['error'] = str(e)
        return HttpResponse(json.dumps(data), content_type='application/json')
예제 #17
0
    def post(self, request, *args, **kwargs):
        data = {}
        action = request.POST['action']

        try:
            if action == 'add':
                f = ClienteForm(request.POST)
                data = self.save_data(f)
            if action == 'file':
                f = FileForm(request.POST, request.FILES)
                if f.is_valid():
                    var = f.save()
                    num = pd.read_excel(var.archivo.path)
                    data_dict = num.to_dict('list')
                    celulares = data_dict['celular']
                    key_to_lookup = 'nombre'
                    if key_to_lookup in data_dict:
                        nombres = data_dict['nombre']
                        combo = zip(nombres, celulares)
                        for nombre, celular in combo:
                            c = Cliente()
                            c.nombres = nombre
                            c.telefono = '+' + str(celular)
                            c.save()
                    else:
                        for numero in celulares:
                            c = Cliente()
                            c.nombres = 'Sin nombre'
                            c.telefono = '+' + str(numero)
                            c.save()
                else:
                    data['error'] = f.errors
            elif action == 'edit':
                pk = request.POST['id']
                cliente = Cliente.objects.get(pk=int(pk))
                f = ClienteForm(request.POST, instance=cliente)
                data = self.save_data(f)
            elif action == 'delete':
                pk = request.POST['id']
                cli = Cliente.objects.get(pk=pk)
                cli.delete()
                data['resp'] = True
            else:
                data['error'] = 'No ha seleccionado ninguna opción'
        except Exception as e:
            data['error'] = str(e)
        return HttpResponse(json.dumps(data), content_type='application/json')
예제 #18
0
 def get_context_data(self, **kwargs):
     data = super().get_context_data(**kwargs)
     data['icono'] = opc_icono
     data['entidad'] = opc_entidad
     data['boton'] = 'Guardar Venta'
     data['titulo'] = 'Nueva Venta'
     data['nuevo'] = '/venta/nuevo'
     data['empresa'] = empresa
     data['form'] = VentaForm()
     data['form2'] = Detalle_VentaForm()
     data['detalle'] = []
     data['formc'] = UserForm()
     data['formp'] = ClienteForm()
     data['titulo_modal_person'] = 'Registro de un nuevo Cliente'
     data['boton_fac'] = 'Facturar Venta'
     data['titulo_lista'] = 'Detalle de productos'
     data['titulo_detalle'] = 'Datos de la factura'
     return data
예제 #19
0
 def post(self, request, *args, **kwargs):
     data = {}
     action = request.POST['action']
     pk = request.POST['id']
     try:
         if action == 'add':
             datos = json.loads(request.POST['reparacion'])
             if datos:
                 with transaction.atomic():
                     c = Transaccion()
                     c.fecha_trans = datos['fecha_venta']
                     c.user_id = datos['cliente']
                     c.subtotal = float(datos['subtotal'])
                     c.iva = float(datos['iva'])
                     c.total = float(datos['total'])
                     c.tipo = 1
                     c.save()
                     v = Reparacion()
                     v.transaccion_id = c.id
                     v.fecha_ingreso = datos['fecha_ingreso']
                     v.save()
                     if datos['productos']:
                         for i in datos['productos']:
                             dv = Detalle_reparacion()
                             dv.reparacion_id = v.id
                             dv.producto_id = int(i['id'])
                             dv.cantidad = int(i['cantidad_venta'])
                             dv.pvp_rep_by_prod = float(i['pvp'])
                             dv.subtotal = float(i['subtotal'])
                             dv.save()
                     data['id'] = v.id
                     data['resp'] = True
             else:
                 data['resp'] = False
                 data['error'] = "Datos Incompletos"
         elif action == 'save_user':
             f = ClienteForm(request.POST)
             datos = request.POST
             data = self.save_data(f, datos)
         else:
             data['error'] = 'No ha seleccionado ninguna opción'
     except Exception as e:
         data['error'] = str(e)
     return HttpResponse(json.dumps(data), content_type='application/json')
예제 #20
0
def nuevo(request):
    data = {
        'icono': opc_icono,
        'entidad': opc_entidad,
        'crud': '../venta/get_producto',
        'crudserv': '../venta/get_servicio',
        'empresa': empresa,
        'boton': 'Guardar Venta',
        'action': 'add',
        'titulo': 'Nuevo Registro de una Venta',
        'key': ''
    }
    if request.method == 'GET':
        data['form'] = VentaForm()
        data['form2'] = Detalle_VentaForm()
        data['form3'] = Detalle_VentaForm_serv()
        data['formc'] = ClienteForm()
        data['detalle'] = []
    return render(request, 'front-end/venta/venta_form.html', data)
예제 #21
0
def editar(request, id):
    cargo = Cliente.objects.get(id=id)
    crud = '/cliente/editar/' + str(id)
    data = {
        'icono': opc_icono, 'crud': crud, 'entidad': opc_entidad, 'empresa': empresa,
        'boton': 'Guardar Edicion', 'titulo': 'Editar Registro de un Cliente',
        'option': 'editar'
    }
    if request.method == 'GET':
        form = ClienteForm(instance=cargo)
        data['form'] = form
    else:
        form = ClienteForm(request.POST, instance=cargo)
        if form.is_valid():
            form.save()
        else:
            data['form'] = form
        return HttpResponseRedirect('/cliente/lista')
    return render(request, 'front-end/cliente/cliente_form.html', data)
예제 #22
0
    def post(self,request):
        venta_form = VentaForm(request.POST)
        if venta_form.is_valid():
            venta = venta_form.save(commit=False)
            if request.POST['Cliente']: #El if verifica si existe un cliente
                cliente = Cliente.objects.get(pk=request.POST['Cliente'])
                if cliente:
                    venta.dni_cliente = cliente
            venta.save()
            total = Decimal(0) #variable para calcular el total

            nro_productos = int(request.POST['NumeroProductos']) + 1
            for i in range(1,nro_productos):
                producto_codigo = "producto-codigo-" + str(i)
                producto_precio = "producto-precio-" + str(i)
                producto_cantidad = "producto-cantidad-" + str(i)
                detalle = DetalleVenta()
                producto = Producto.objects.get(pk=request.POST[producto_codigo])
                producto.stock_actual = producto.stock_actual - int(request.POST[producto_cantidad])
                producto.save()
                detalle.producto = producto
                detalle.nro_venta = venta
                detalle.cantidad = int(request.POST[producto_cantidad])
                detalle.precio = Decimal(request.POST[producto_precio])
                detalle.save()
                total = total + Decimal(detalle.precio)*Decimal(detalle.cantidad)

            nro_lentes = int(request.POST['NumeroLentes']) + 1
            for i in range(1,nro_lentes): #Guardar Detalles Lentes
                lente_codigo = "lente-codigo-" + str(i)
                lente_complementos = "lente-complementos-" + str(i)
                lente_precio = "lente-precio-" + str(i)
                item = DetalleLente()
                item.nro_venta = venta
                item.lente = Lente.objects.get( pk=str(request.POST[lente_codigo]) )
                item.precio = Decimal(request.POST[lente_precio])
                item.save()
                id_detalle = item.id
                longitud = len(request.POST.getlist(lente_complementos))
                lista = request.POST.getlist(lente_complementos)
                item = DetalleLente.objects.get(pk=id_detalle)
                for i in range(0,longitud):
                    item.complementos.add(Aditivos.objects.get( pk = lista[i]))
                item.save()
                total = total + Decimal(item.precio)

            venta = Venta.objects.get(pk=venta.id) #Actualizar venta
            venta.nro = get_venta()
            venta.bloque = BloqueVenta_last_id()
            flag = str(request.POST['tipo_recibo'])
            if flag == "True": #Boleta de Venta
                venta.cancelado = True
                venta.importe = Decimal(request.POST['importe'])
                venta.total = Decimal(total)
                venta.saldo = total-venta.importe
                venta.save()
            else:   #Nota de Pedido
                nota = NotaPedido()
                nota.nro = get_nota_pedido()
                nota.bloque = BloquePedido_last_id()
                nota.venta = venta
                nota.importe = Decimal(request.POST['importe'])
                nota.saldo = total - Decimal(request.POST['importe'])
                nota.save()
                venta.cancelado = False
                venta.importe = Decimal(request.POST['importe'])
                venta.total = total
                venta.saldo = total - venta.importe
                venta.save()
            messages.success(request, 'La venta número '+ str(venta.nro) +' se registro con éxito')
            return  redirect('reporte/'+str(venta.id))
        else:
            messages.error(request, 'No se pudo registrar la venta, ocurrio un error en el formulario de venta.')
            cliente_form = ClienteForm()
            venta_form = VentaForm()
            ProductoForm = DetalleVentaForm()
            LenteForm = DetalleLenteForm()
            nro_venta = get_venta()
            nro_pedido = get_nota_pedido()
            nro_bloque_venta  = BloqueVenta_last_id()
            nro_bloque_pedido = BloquePedido_last_id()
            return render(request,self.template_name,locals())