#encoding:utf-8 # Create your views here. #encoding:utf-8 from django.db.models import Q from django.template.response import TemplateResponse from django.contrib.auth import authenticate, login, logout from django.contrib import messages from registro.forms import * from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect, HttpResponse from django.template import RequestContext, loader from django.shortcuts import get_object_or_404, render, render_to_response, redirect from django.core.urlresolvers import reverse from django.forms import ModelForm from django.forms.formsets import formset_factory from django.db.models import Count from django.contrib import messages from django.forms import ModelForm from django.contrib import auth from django.contrib.auth.decorators import login_required from django.template.response import TemplateResponse from datetime import datetime from django.core.paginator import Paginator, InvalidPage, EmptyPage from django.views.decorators.csrf import csrf_exempt from asignacion.views import * from random import * from django.contrib.auth.models import User from django.contrib.auth.forms import UserCreationForm from django.contrib.auth.forms import AuthenticationForm from django.contrib.auth import login, authenticate, logout from django.contrib.auth.decorators import login_required from asignacion.models import * def RegistroEstatus(request): if request.method=='POST': form = EstatusForm(request.POST) if form.is_valid(): form.save() messages.success(request, 'Lote registrado') return HttpResponseRedirect('/index') else: form = EstatusForm() return render_to_response('RegistroEstatus.html',{'form':form,'configuracion':'active','no_activo':'closed','registro_revision':'closed','activo':'closed','asignacion_activo':'closed','devolucion':'closed'},context_instance=RequestContext(request)) @login_required(login_url='/registro/lote/') def lote(request): lote=Lote.objects.all().count() if lote==0: if request.method=='POST': form = LoteForm(request.POST) if form.is_valid(): form.save() messages.success(request, 'Lote registrado') return HttpResponseRedirect('/registro/CatalogoUbicacion') else: LoteForm.base_fields['estatus'] = forms.ModelChoiceField( queryset = Estatus.objects.filter( nombre = 'Registro' ) ) form = LoteForm(initial={'numero': (lote+1)}) return render_to_response('RegistroLote.html',{'form':form,'activo':'active','asignacion_activo':'closed','registro_revision':'closed','configuracion':'closed','devolucion':'closed'},context_instance=RequestContext(request)) else: LoteE=Lote.objects.get(numero=lote) estatusRegistro=Estatus.objects.get( nombre ='Revisión') print (LoteE.estatus) print (estatusRegistro) #lote=equipo.lote if LoteE.estatus==estatusRegistro: # equipos=Equipo.objects.all().filter(lote__numero=lote.numero) # total=LoteE.numero if request.method=='POST': form = LoteForm(request.POST) if form.is_valid(): form.save() messages.success(request, 'Lote registrado') return HttpResponseRedirect('/registro/CatalogoUbicacion') else: form = LoteForm(initial={'numero': (lote+1)}) return render_to_response('RegistroLote.html',{'form':form,'activo':'active','asignacion_activo':'closed','registro_revision':'closed','configuracion':'closed','devolucion':'closed'},context_instance=RequestContext(request)) else: messages.error(request, 'No puede ingresar un nuevo lote hasta concluir con el registro de equipos ') return HttpResponseRedirect('/registro/Equipo') def genera_ubicaciones(lote, filas, tarimas, espacios): for i in range(int(filas)): for j in range(int(tarimas)): for k in range(int(espacios)): ins = UbicacionEquipo(lote = lote, fila = i+1, tarima = j+1, lugar = k+1) ins.save() @login_required(login_url='/login/') def RegistroCatalogoUbicacion(request): espacio = CatalogoUbicacion.objects.all().count try: lote = Lote.objects.all().order_by('-numero')[0] except Exception, e: messages.warning(request, 'Ingrese un Lote para poder tener un catalogo de ubicaciones') return HttpResponseRedirect('/index') form = CatalogoUbicacionForm(request.POST) or CatalogoUbicacionForm(initial={'numero': (espacio)}) if form.is_valid(): inst = form.save() genera_ubicaciones ( lote, inst.filas, inst.tarima, inst.espacio ) messages.success(request, 'Catalogo registrado') return HttpResponseRedirect('/registro/CartaPorte') return render_to_response('RegistroCatalogoUbicacion.html',{'form':form,'lote':lote.id,'mostrar':lote,'configuracion':'active','no_activo':'closed','registro_revision':'closed','activo':'closed','asignacion_activo':'closed','devolucion':'closed'},context_instance=RequestContext(request)) @login_required(login_url='/login/') def RegistroUbicacionEquipo(request): if request.method=='POST': form = UbicacionEquipoForm(request.POST) if form.is_valid(): form.save() messages.success(request, 'Ubicacion registrada') return HttpResponseRedirect('/index') else: form = UbicacionEquipoForm() return render_to_response('RegistroUbicacionEquipo.html',{'form':form,'activo':'active','asignacion_activo':'closed','registro_revision':'closed','configuracion':'closed','devolucion':'closed'},context_instance=RequestContext(request)) @login_required(login_url='/login/') def RegistroEquipo(request): listaEstatus= Estatus.objects.filter(Q(nombre = 'Registro') | Q(nombre = 'Revisión') ) equipo=Equipo.objects.all().order_by('-numero').count() estatusRevision=Estatus.objects.get( nombre ='Revisión') estatusRegistro=Estatus.objects.get( nombre ='Registro') loteC=Lote.objects.all().count() if loteC==0: messages.error(request, 'Ingrese un Lote para poder registrar equipos') return HttpResponseRedirect('/registro/lote') mi_lote=Lote.objects.all().order_by('-numero')[0] # lote = Lote.objects.all().order_by('-numero')[0]# no se que hace , pero por si la dudas no quitar total=mi_lote.total muestraRevision=(total*1.385)/100 EquiposRevision=Equipo.objects.all().filter(lote=mi_lote, estatus=estatusRevision).count() equipos=Equipo.objects.all().filter(lote__numero=mi_lote.numero).count() if equipos muestraRevision: status=estatusRegistro else: r=choice(listaEstatus) status=r if request.method=='POST': form = EquipoForm(request.POST) if form.is_valid(): x= form.cleaned_data["valor"] y= form.cleaned_data["estatus"] if y==estatusRevision: if EquiposRevision > muestraRevision: messages.success(request, 'Los equipos con estatus Revisión han llegado al limite') else: try: form.save() except Exception, e: messages.error(request, e.message) return HttpResponseRedirect('/registro/Equipo') messages.success(request, 'Este equipo va a revision') messages.success(request, 'Equipo registrado') if x == '1': return HttpResponseRedirect('/registro/Equipo') else: return HttpResponseRedirect('/index') else: try: form.save() except Exception, e: messages.error(request, e.message) return HttpResponseRedirect('/registro/Equipo') messages.success(request, 'Equipo registrado') if x == '1': return HttpResponseRedirect('/registro/Equipo') else: return HttpResponseRedirect('/index') else: messages.error(request,'Error ya Existe el numero de serie ingresado') return HttpResponseRedirect('/registro/Equipo/') else: ultimaUbicacion = UbicacionEquipo.objects.all().exclude( id__in = ( Equipo.objects.values_list('ubicacion_id') ) ).order_by('id') if ultimaUbicacion.count() != 0: EquipoForm.base_fields['ubicacion'] = forms.ModelChoiceField( queryset = UbicacionEquipo.objects.filter( pk = ultimaUbicacion[0].id ) ) form = EquipoForm(initial={'numero': (equipo+1)}) return render_to_response('RegistroEquipo.html',{'form':form,'status':status.id,'mostrarestatus':status,'equipo':equipo,'lote':mi_lote.id,'mostrar':mi_lote,'activo':'active','asignacion_activo':'closed','registro_revision':'closed','configuracion':'closed','devolucion':'closed'},context_instance=RequestContext(request)) else: messages.error(request, 'Ingrese un nuevo Lote para poder registrar nuevos equipos') mi_lote.estatus=estatusRevision mi_lote.save() #return HttpResponse(mi_lote.estatus) return HttpResponseRedirect('/registro/lote') #messages.success(request, 'El total de Equipo de lote ha sido registrado') @login_required(login_url='/login/') def RegistroCartaPorte(request): mi_lote=Lote.objects.all().order_by('-numero')[0] lote = Lote.objects.all().order_by('-numero')[0] if request.method=='POST': form = CartaPorteForm(request.POST) if form.is_valid(): form.save() messages.success(request, 'Carta Porte registrada') return HttpResponseRedirect('/registro/Equipo') else: form = CartaPorteForm() return render_to_response('registroCartaPorte.html',{'form':form,'lote':mi_lote.id,'mostrar':lote,'activo':'active','asignacion_activo':'closed','registro_revision':'closed'},context_instance=RequestContext(request)) @login_required(login_url='/login/') def RegistroPerfil(request): if request.method=='POST': form = PerfilForm(request.POST) if form.is_valid(): form.save() messages.success(request, 'Perfil registrada') return HttpResponseRedirect('/index') else: form = PerfilForm() return render_to_response('registroPerfil.html',{'form':form,'configuracion':'active','no_activo':'closed','registro_revision':'closed','activo':'closed','asignacion_activo':'closed','devolucion':'closed'},context_instance=RequestContext(request)) @csrf_exempt def VerificarEquipo(request): results="" if request.is_ajax(): equipo=request.POST['q'] #q = request.GET.get( 'q' ) if equipo is not None: try: estatus = Estatus.objects.get(nombre = 'Pendiente') print(estatus.id) id_e = Equipo.objects.get(numero_serie = equipo , estatus = estatus) results = Asignacion.objects.filter(equipo_id = id_e.id).count() if results == 0: valor = 1 else: valor = 0 return render_to_response('verEquipo.html',{'resultado':valor},context_instance = RequestContext( request ) ) except Exception, e: valor = 2 return render_to_response('verEquipo.html',{'resultado':valor},context_instance = RequestContext( request ) ) def test(request): pk_ = Lote.objects.all().order_by('-numero')[0].id lote1 = Lote.objects.get(pk = pk_) for i in range( lote1.total - 1 ): r = Equipo( numero = i, marca = 'patito1', modelo = 'quack1', numero_serie = str(1000000026 + i), ubicacion_id = str(1+i), estatus_id = 6, lote_id = pk_ ) r.save() # lote2 = Lote.objects.get(pk = 2) # for i in range( lote2.total ): # r = Equipo( # numero = i, # marca = 'patito2', # modelo= 'quack2', # numero_serie = str(1000025000 + i), # ubicacion_id = str(25000+i), # estatus_id = 1, # lote_id = 2 ) # r.save() return HttpResponse('ok %s' % str(i) ) @csrf_exempt def CancelarEquipo(request): results="" if request.is_ajax(): equipo=request.POST['q'] #q = request.GET.get( 'q' ) if equipo is not None: try: id_e = Equipo.objects.get(numero_serie = equipo) results = Asignacion.objects.filter(equipo_id = id_e.id).count() estatus = Estatus.objects.get(nombre = 'Pendiente') if results == 0: valor = 0 else: valor = 1 Asignacion.objects.get(equipo_id = id_e.id).delete() id_e.estatus=estatus id_e.save() return render_to_response('cancelarajax.html',{'valor':valor},context_instance = RequestContext( request ) ) except Exception, e: valor = 2 return render_to_response('cancelarajax.html',{'valor':valor},context_instance = RequestContext( request ) ) @login_required(login_url='/login/') def mostrarEquipo(request): if request.method=='POST': form = EquipoBusqueda(request.POST) if form.is_valid(): serie=form.cleaned_data["equipo"] try: equipo=Equipo.objects.get(numero_serie=serie) return render_to_response('Equipo.html',{'equipo':equipo,'activo':'active','asignacion_activo':'closed','registro_revision':'closed'},context_instance=RequestContext(request)) except Exception, e: messages.warning(request, 'Equipo No existe') else: form = EquipoBusqueda() return render_to_response('mostrarEquipo.html',{'form':form,'activo':'active','asignacion_activo':'closed','registro_revision':'closed'},context_instance=RequestContext(request)) @login_required(login_url='/login/') def editarEquipo(request,equipo_id): equipo=Equipo.objects.get(pk=equipo_id) if request.method=='POST': form = EditarForm(request.POST, instance=equipo) if form.is_valid(): try: equipo.save() messages.success(request, 'Equipo Editado') return HttpResponseRedirect('/registro/buscar') except Exception, e: messages.error(request, 'Error al Editar el equipo') else: form=EditarForm(instance=equipo) return render_to_response('editarE.html',{'form':form,'activo':'active','asignacion_activo':'closed','registro_revision':'closed'},context_instance=RequestContext(request)) @login_required(login_url='/login/') def registrarUsuario(request): if request.method == "POST": formulario = UserCreationForm(request.POST) datos = FormDatos(request.POST) perfil = FormPerfil(request.POST) if formulario.is_valid() and datos.is_valid() and perfil.is_valid(): nombre = datos.cleaned_data['Nombre'] apellido = datos.cleaned_data['Apellido'] id_p = perfil.cleaned_data['perfil'] perfil = Perfil.objects.filter(nombre = id_p) print(perfil) usuario_ = formulario.save() consulta_usuario = User.objects.all().get(pk = usuario_.id) consulta_usuario.first_name = nombre consulta_usuario.last_name = str((apellido).encode('utf-8')) consulta_usuario.save() i= Persona_perfil(user= usuario_, perfil = id_p) i.save() messages.success(request, 'Usuario Registrado') return HttpResponseRedirect('/registro/registrarUsuario/') else: formulario = UserCreationForm() perfil = FormPerfil() datos = FormDatos() contexto = {'formulario':formulario,'perfil':perfil,'datos':datos} return render_to_response('registro_usuario.html', contexto, context_instance=RequestContext(request))