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
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)
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)
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'))
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)
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)
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')