Ejemplo n.º 1
0
 def get_context_data(self, **kwargs):
     estilos, clases = renderizado(2, 4)
     ctx = super(ListadoPrestamoList, self).get_context_data(**kwargs)
     ctx['estilos'] = estilos
     ctx['clases'] = clases
     ctx['listado'] = True
     return ctx
Ejemplo n.º 2
0
def editar_equipo(request,id):
	estilos, clases = renderizado(1, 4)
	form = EquipoForm(instance = Equipo.objects.get(pk = id))
	for campo in form.fields:
		form.fields[campo].widget.attrs['class'] = 'form-control'

	form.fields['nombre'].choices= [("","Seleccione el nombre del equipo")] + list(form.fields['nombre'].choices)[1:]
	form.fields['nombre'].widget.attrs['class'] = 'selectpicker form-control'
	form.fields['nombre'].widget.attrs['data-live-search'] = 'true'
	form.fields['tamano'].choices= [("","Seleccione el tamaño del equipo")] + list(form.fields['tamano'].choices)[1:]
	form.fields['tamano'].widget.attrs['class'] = 'selectpicker form-control'
	form.fields['color'].choices= [("","Seleccione el color del equipo")] + list(form.fields['color'].choices)[1:]
	form.fields['color'].widget.attrs['class'] = 'selectpicker form-control'
	form.fields['color'].widget.attrs['data-live-search'] = 'true'
	form.fields['estado'].choices= [("","Seleccione el estado del equipo")] + list(form.fields['estado'].choices)[1:]
	form.fields['estado'].widget.attrs['class'] = 'selectpicker form-control'
	form.fields['codigo_barras'].widget.attrs['readonly'] = True


	eq = Equipo.objects.get(pk = id)
	ctx = {
			"estilos" : estilos,
			"clases"  : clases,
			"form" : form,
			"id_o" : id,
			"informacion": str(eq.nombre)+' Nō '+str(eq.numero),
			'editar':True,
				# "formRemision" : formRemision,
				# "formDRemisionFS" : formDRemisionFS ,
		}
	return render(request,'equipo/equipo.html',ctx)
Ejemplo n.º 3
0
def editar_equipo_base(request,id):
	estilos, clases = renderizado(3, 4)
	form = EquipoBaseForm(instance = BaseEquipo.objects.get(pk = id))
	equipo_base = BaseEquipo.objects.all()
	for campo in form.fields:
		form.fields[campo].widget.attrs['class'] = 'form-control'

	ctx = {
			"estilos" : estilos,
			"clases"  : clases,
			"form" : form,
			"id_o" : id,
			"equipo_base" : equipo_base,
				# "formRemision" : formRemision,
				# "formDRemisionFS" : formDRemisionFS ,
		}
	return render(request,'equipo/equipo.html',ctx)
Ejemplo n.º 4
0
def inicio(request):
	print(request.user.empleado.actualizoContrasena)
	estilos, clases = renderizado(1, 4)

	prestamos = PrestamoEquipo.objects.filter(Q(estadoPrestamo__pk=1)| Q(estadoPrestamo__pk=3)).count()
	remisiones = Remision.objects.filter(Q(estado__pk=1)).count()
	
	ctx = {
			"estilos" : estilos,
			"clases"  : clases,
			"prestamos": prestamos,
			"remisiones": remisiones,
			# "formRemision" : formRemision,
			# "formDRemisionFS" : formDRemisionFS ,
	}
	if request.user.empleado.actualizoContrasena:
		return render(request, 'inicio/inicio.html',ctx)
	else:
		return HttpResponseRedirect(reverse('seguridad:log_out-url'))
Ejemplo n.º 5
0
def CrearPrestamo(request):
    if not request.user.empleado.actualizoContrasena:
        return HttpResponseRedirect(reverse('seguridad:log_out-url'))

    estilos, clases = renderizado(1, 4)

    DetallePrestamoFormSet = formset_factory(
        DetallePrestamoForm, formset=BaseDetallePrestamoFormSet)

    if request.method == 'POST':
        prestamo_form = PrestamoForm(request.POST)  #, user=user

        detallePrestamo_formset = DetallePrestamoFormSet(request.POST)

        if prestamo_form.is_valid() and detallePrestamo_formset.is_valid():

            prestamo = prestamo_form.save(commit=False)
            new_detallesPrestamo = []
            for x in detallePrestamo_formset:
                descripcion = x.cleaned_data.get('descripcion')
                equipo = x.cleaned_data.get('equipo')
                tapadera = x.cleaned_data.get('tapadera')

                if equipo:
                    new_detallesPrestamo.append(
                        DetallePrestamoEquipo(prestamoEquipo=prestamo,
                                              descripcion=descripcion,
                                              equipo=equipo,
                                              tapadera=tapadera))

            try:
                with transaction.atomic():
                    prestamo.save()
                    print("*************************************")
                    print('Conductor asignado: ' + str(prestamo.conductor))
                    conductor = Conductor.objects.get(pk=prestamo.conductor.pk)
                    conductor.disponible = False
                    conductor.save()
                    print('Vehiculo asignado: ' + str(prestamo.placa))
                    placa = Vehiculo.objects.get(pk=prestamo.placa.pk)
                    placa.disponible = False
                    placa.save()
                    print('---------------------------------')
                    DetallePrestamoEquipo.objects.bulk_create(
                        new_detallesPrestamo)
                    var = DetallePrestamoEquipo.objects.filter(
                        prestamoEquipo=prestamo)
                    if var.count() > 0:

                        for e in var:
                            print('Bin prestado: ' + str(e.equipo.id))
                            equipo = Equipo.objects.get(pk=e.equipo.id)
                            equipo.estado = Estado.objects.get(pk=1)
                            equipo.save()
                            print('Tapadera prestada: ' + str(e.tapadera.pk))
                            tapadera = Equipo.objects.get(pk=e.tapadera.pk)
                            tapadera.estado = Estado.objects.get(pk=1)
                            tapadera.save()
                            print('---------------------------------')
                        print("*************************************")
                    #Redireccionamos a la ventana del listado de compras
                    # messages.success(request, 'Usted ha creado el prestamo de equipo.')
                    return redirect(reverse('prestamos:prestamos-url'))

            except IntegrityError:  #If the transaction failed
                messages.error(
                    request,
                    'Ha ocurrido un error al intentar guardar el prestamo de equipo.'
                )
        else:
            messages.error(
                request,
                'Informacion requerida incompleta para crear el prestamo de equipo.'
            )

        # prestamo_form = PrestamoForm()
    else:
        empleado = Empleado.objects.get(usuario=request.user)

        prestamo_form = PrestamoForm(
            initial={
                'empleado': empleado,
                'estadoPrestamo': EstadoPrestamo.objects.get(pk=1)
            })
        detallePrestamo_formset = DetallePrestamoFormSet()

    FormControl(prestamo_form)
    fechaBasico(prestamo_form, 'fechaSalida', '...')
    fechaBasico(prestamo_form, 'fechaEntrada', '...')
    horaBasico(prestamo_form, 'horaSalida', '...')
    em = Compania.objects.filter(tipoCompania=TipoCompania.objects.get(pk=1),
                                 estado=True)
    comboboxBasico(prestamo_form, 'compania', 'Seleccione...', 'true', em)
    ve = Vehiculo.objects.filter(disponible=True)
    comboboxBasico(prestamo_form, 'placa', 'Seleccione...', 'true', ve)
    con = Conductor.objects.filter(activo=True, disponible=True)
    comboboxBasico(prestamo_form, 'conductor', 'Seleccione...', 'true', con)
    comboboxBasico(prestamo_form, 'empleado', 'Seleccione...', 'true', [])
    # capitalize(prestamo_form,'observaciones')

    prestamo_form.fields['fechaSalida'].widget.attrs['value'] = datetime.now(
    ).date()

    print(detallePrestamo_formset.errors)
    print(detallePrestamo_formset.non_form_errors())

    context = {
        'prestamo_form': prestamo_form,
        'estilos': estilos,
        'clases': clases,
        'detallePrestamo_formset': detallePrestamo_formset,
        'crear': True,
    }
    return render(request, 'prestamos/prestamos.html', context)
Ejemplo n.º 6
0
def ModificarPrestamo(request, pk):
    if not request.user.empleado.actualizoContrasena:
        return HttpResponseRedirect(reverse('seguridad:log_out-url'))
    estilos, clases = renderizado(1, 4)
    DetallePrestamoFormSet = formset_factory(
        EditarDetallePrestamoForm, formset=BaseDetallePrestamoFormSet, extra=0)
    prestamo = PrestamoEquipo.objects.get(pk=pk)
    prestamoDetalles = DetallePrestamoEquipo.objects.filter(
        prestamoEquipo=prestamo)  #.order_by('pk')
    prestamoDetalles_data = [{
        'prestamoEquipo': rd.prestamoEquipo,
        'descripcion': rd.descripcion,
        'equipo': rd.equipo,
        'tapadera': rd.tapadera
    } for rd in prestamoDetalles]

    if request.method == 'POST':
        prestamo_form = PrestamoForm(request.POST, instance=prestamo)
        detallePrestamo_formset = DetallePrestamoFormSet(
            request.POST, form_kwargs={'prestamo': pk})
        if prestamo_form.is_valid() and detallePrestamo_formset.is_valid():
            prestamoModificado = prestamo_form.save(commit=False)
            prestamo = PrestamoEquipo.objects.get(
                pk=prestamo_form.cleaned_data.get('numPrestamo'))

            new_detallesPrestamo = []
            for n in detallePrestamo_formset:
                descripcion = n.cleaned_data.get('descripcion')
                equipo = n.cleaned_data.get('equipo')
                tapadera = n.cleaned_data.get('tapadera')
                if equipo:
                    new_detallesPrestamo.append(
                        DetallePrestamoEquipo(prestamoEquipo=prestamo,
                                              descripcion=descripcion,
                                              equipo=equipo,
                                              tapadera=tapadera))
            try:
                with transaction.atomic():
                    print("*************************************")
                    if prestamoModificado.conductor.pk != prestamo.conductor.pk:
                        conductor = Conductor.objects.get(
                            pk=prestamo.conductor.pk)
                        conductor.disponible = True
                        conductor.save()
                        print('Conductor disponible: ' +
                              str(prestamo.conductor))
                        conductorNuevo = Conductor.objects.get(
                            pk=prestamoModificado.conductor.pk)
                        conductorNuevo.disponible = False
                        conductorNuevo.save()
                        print('Conductor asignado: ' +
                              str(prestamoModificado.conductor))
                    if prestamoModificado.placa.pk != prestamo.placa.pk:
                        placa = Vehiculo.objects.get(pk=prestamo.placa.pk)
                        placa.disponible = True
                        placa.save()
                        print('Vehiculo disponible: ' + str(prestamo.placa))
                        placaNueva = Vehiculo.objects.get(
                            pk=prestamoModificado.placa.pk)
                        placaNueva.disponible = False
                        placaNueva.save()
                        print('Vehiculo asignado: ' +
                              str(prestamoModificado.placa))

                    prestamoModificado.save()

                    print('---------------------------------')

                    dpe = DetallePrestamoEquipo.objects.filter(
                        prestamoEquipo=prestamoModificado)
                    for f in dpe:
                        equi = Equipo.objects.get(pk=f.equipo.pk)
                        equi.estado = Estado.objects.get(pk=2)
                        equi.save()
                        tapa = Equipo.objects.get(pk=f.tapadera.pk)
                        tapa.estado = Estado.objects.get(pk=2)
                        tapa.save()
                        print('Disponible equipo: ', equi)
                        print('Disponible tapadera: ', tapa)
                    dpe.delete()
                    DetallePrestamoEquipo.objects.bulk_create(
                        new_detallesPrestamo)

                    var = DetallePrestamoEquipo.objects.filter(
                        prestamoEquipo=prestamoModificado)
                    if var.count() > 0:
                        for e in var:
                            print('Bin prestado: ' + str(e.equipo.id))
                            equipo = Equipo.objects.get(pk=e.equipo.id)
                            equipo.estado = Estado.objects.get(pk=1)
                            equipo.save()
                            print('Tapadera prestada: ' + str(e.tapadera.pk))
                            tapadera = Equipo.objects.get(pk=e.tapadera.pk)
                            tapadera.estado = Estado.objects.get(pk=1)
                            tapadera.save()
                            print('---------------------------------')
                        print("*************************************")

                    #  messages.success(request,'Usted ha actualizado la remision')
                    return redirect(reverse('prestamos:prestamos-url'))

            except IntegrityError:
                messages.error(
                    request,
                    'Ha ocurrido un error al intentar guardar el detalle del prestamo.'
                )
    else:
        prestamo_form = PrestamoForm(instance=prestamo)
        detallePrestamo_formset = DetallePrestamoFormSet(
            initial=prestamoDetalles_data, form_kwargs={'prestamo': pk})

    # dpf = DetallePrestamoForm()
    # dp = DetallePrestamoEquipo.objects.filter(prestamoEquipo = prestamo)
    # cl = []
    # for d in dp:
    # 	x = Equipo.objects.get(pk = d.equipo.id)
    # 	cl.append([(str(x.pk)), str(x)])
    # dpf.fields['equipo'].choices = [("","Seleccione...")] + cl
    # dpf.fields['equipo'].widget.attrs['class'] = 'selectpicker form-control dx'
    # dpf.fields['equipo'].widget.attrs['data-live-search'] = 'true'

    FormControl(prestamo_form)
    # fechaBasico(prestamo_form,'fechaSalida','...')
    # if prestamo_form.fechaEntrada:
    # fechaBasico(prestamo_form,'fechaEntrada','...')
    horaBasico(prestamo_form, 'horaSalida', '...')
    em = Compania.objects.filter(tipoCompania=TipoCompania.objects.get(pk=1))
    comboboxBasico(prestamo_form, 'compania', 'Seleccione...', 'true', em)
    vehiculo = Vehiculo.objects.filter(
        Q(disponible=True) | Q(pk=prestamo.placa.pk))
    comboboxBasico(prestamo_form, 'placa', 'Seleccione...', 'true', vehiculo)
    conductor = Conductor.objects.filter(
        Q(disponible=True) | Q(pk=prestamo.conductor.pk))
    comboboxBasico(prestamo_form, 'conductor', 'Seleccione...', 'true', [])
    comboboxBasico(prestamo_form, 'empleado', 'Seleccione...', 'true', [])

    prestamo_form.fields['numPrestamo'].widget.attrs['readonly'] = 'True'

    context = {
        'prestamo_form': prestamo_form,
        'estilos': estilos,
        'clases': clases,
        'detallePrestamo_formset': detallePrestamo_formset,
        'editar': True,
        'prestamo': pk,
        'entrego': prestamo.empleado,
    }
    return render(request, 'prestamos/prestamos.html', context)
Ejemplo n.º 7
0
def equipo(request,opc):
	user = request.user
	if opc == 1 and user.has_perm('equipo.add_equipo'):
		estilos, clases = renderizado(1, 4)
		form = EquipoForm()
		for campo in form.fields:
			form.fields[campo].widget.attrs['class'] = 'form-control'
		form.fields['nombre'].choices= [("","Seleccione el nombre del equipo")] + list(form.fields['nombre'].choices)[1:]
		form.fields['nombre'].widget.attrs['class'] = 'selectpicker form-control'
		form.fields['nombre'].widget.attrs['data-live-search'] = 'true'
		form.fields['tamano'].choices= [("","Seleccione el tamaño del equipo")] + list(form.fields['tamano'].choices)[1:]
		form.fields['tamano'].widget.attrs['class'] = 'selectpicker form-control'
		form.fields['color'].choices= [("","Seleccione el color del equipo")] + list(form.fields['color'].choices)[1:]
		form.fields['color'].widget.attrs['class'] = 'selectpicker form-control'
		form.fields['color'].widget.attrs['data-live-search'] = 'true'
		form.fields['estado'].choices= [("","Seleccione el estado del equipo")] + list(form.fields['estado'].choices)[1:]
		form.fields['estado'].widget.attrs['class'] = 'selectpicker form-control'
		form.fields['codigo_barras'].widget.attrs['readonly'] = True

		ctx = {
			"estilos" : estilos,
			"clases"  : clases,
			"form" : form,
			'crear':True,
				# "formRemision" : formRemision,
				# "formDRemisionFS" : formDRemisionFS ,
		}
		return render(request,'equipo/equipo.html',ctx)
	elif opc == 2 and user.has_perm('equipo.view_equipo'):
		estilos, clases = renderizado(2, 4)
		equipos = Equipo.objects.all()
		ctx = {
			"estilos" : estilos,
			"clases"  : clases,
			"equipos"    : equipos,
			'listado':True,
				# "formRemision" : formRemision,
				# "formDRemisionFS" : formDRemisionFS ,
		}
		return render(request,'equipo/equipo.html',ctx)
	elif opc == 3 and user.has_perm('equipo.view_baseequipo'):
		estilos, clases = renderizado(3, 4)
		equipo_base = BaseEquipo.objects.all()
		form = EquipoBaseForm()
		for campo in form.fields:
			form.fields[campo].widget.attrs['class'] = 'form-control'
		ctx = {
			"estilos" : estilos,
			"clases"  : clases,
			"equipo_base"    : equipo_base,
			"form" : form,
			'crearEquipoBase':True,
				# "formRemision" : formRemision,
				# "formDRemisionFS" : formDRemisionFS ,
		}
		return render(request,'equipo/equipo.html',ctx)
	elif opc == 4:
		estilos, clases = renderizado(4, 4)
		form = CodigoQRForm()
		for campo in form.fields:
			form.fields[campo].widget.attrs['class'] = 'form-control'
		form.fields['nombre'].choices= [("","Seleccione el nombre del equipo")] + list(form.fields['nombre'].choices)[1:]
		form.fields['nombre'].widget.attrs['class'] = 'selectpicker form-control'
		form.fields['nombre'].widget.attrs['data-live-search'] = 'true'
		form.fields['tamano'].choices= [("","Seleccione el tamaño del equipo")] + list(form.fields['tamano'].choices)[1:]
		form.fields['tamano'].widget.attrs['class'] = 'selectpicker form-control'
		form.fields['color'].choices= [("","Seleccione el color del equipo")] + list(form.fields['color'].choices)[1:]
		form.fields['color'].widget.attrs['class'] = 'selectpicker form-control'
		form.fields['color'].widget.attrs['data-live-search'] = 'true'
		ctx = {
			"estilos" : estilos,
			"clases"  : clases,
			'crearCodigoQR':True,
			'formQR':form,
				# "formRemision" : formRemision,
				# "formDRemisionFS" : formDRemisionFS ,
		}
		return render(request,'equipo/equipo.html',ctx)
	else:
		return render(request,'404.html')