Beispiel #1
0
def producto_index(request, field="descripcion", value="None", order="-id"):
    """
    Página principal para trabajar con productos
    """
    try:
        headquar = get_object_or_404(Headquar, id=DataAccessToken.get_headquar_id(request.session))
    except:
        Message.error(request, ("Sede no seleccionado o no se encuentra en la base de datos."))
        return Redirect.to(request, "/home/choice_headquar/")

    field = (field if not request.REQUEST.get("field") else request.REQUEST.get("field")).strip()
    value = (value if not request.REQUEST.get("value") else request.REQUEST.get("value")).strip()
    order = (order if not request.REQUEST.get("order") else request.REQUEST.get("order")).strip()

    producto_page = None
    try:
        value_f = "" if value == "None" else value
        column_contains = u"%s__%s" % (field, "contains")
        producto_list = Producto.objects.filter(headquar=headquar).filter(**{ column_contains: value_f }).order_by(order)
        paginator = Paginator(producto_list, 20)
        try:
            producto_page = paginator.page(request.GET.get("page"))
        except PageNotAnInteger:
            producto_page = paginator.page(1)
        except EmptyPage:
            producto_page = paginator.page(paginator.num_pages)
    except Exception, e:
        Message.error(request, e)
Beispiel #2
0
    def decorator(view_func):
        @wraps(view_func, assigned=available_attrs(view_func))
        def _wrapped_view(request, *args, **kwargs):
            if not request.user.id:
                Message.warning(request, ("Tu no estás autenticado"))
                raise PermissionDenied  #403.html
                #return render_to_response("403.html", {'': ''}, context_instance=RequestContext(request))
            permiso = ""
            recurso = "/"
            response = HttpResponse()
            response.write('<script type="text/javascript">')
            response.write('alert("Hola")')
            response.write('</script>')
            try:
                path = request.path.strip(
                    "/"
                )  # request.get_full_path().strip("/") #"/apps/controller/action/" to "apps/controller/action"

            except Exception, e:
                raise Exception(
                    "%s. Asigne adecuadamente el parámetro template_denied_name "
                    % e)

            path_list = path.split('/')
            permiso = "%s." % (path_list[0])
            recurso = "/%s/" % (path_list[0])
            if not isinstance(permiso, (list, tuple)):
                perms = (permiso, )
            else:
                perms = permiso

            if not request.user.has_perms(perms) and len(path_list) > 1:
                permiso = "%s.%s" % (path_list[0], path_list[1])
                recurso = "/%s/%s/" % (path_list[0], path_list[1])

            if not isinstance(permiso, (list, tuple)):
                perms = (permiso, )
            else:
                perms = permiso
            if not request.user.has_perms(perms) and len(path_list) > 2:
                permiso = "%s.%s_%s" % (path_list[0], path_list[1],
                                        path_list[2])
                recurso = "/%s/%s/%s/" % (path_list[0], path_list[1],
                                          path_list[2])

            if not isinstance(permiso, (list, tuple)):
                perms = (permiso, )
            else:
                perms = permiso
            if request.user.has_perms(perms):
                return view_func(request, *args, **kwargs)
            else:
                Message.warning(
                    request,
                    ("Tu no posees permisos para acceder a <b>%(route)s</b>") %
                    {'route': recurso})
                #raise PermissionDenied
                return render_to_response(
                    template_denied_name, {'': ''},
                    context_instance=RequestContext(request))
Beispiel #3
0
def headquar_add(request):
    """
    Agrega sede
    """
    d = Headquar()
    d.phone = ""
    d.address = ""
    if request.method == "POST":
        try:
            sid = transaction.savepoint()
            d.name = request.POST.get("name")
            d.phone = request.POST.get("phone")
            d.address = request.POST.get("address")
            d.is_main = False
            d.locality_name = request.POST.get("locality_name")
            if request.POST.get("locality_name"):
                d.locality, is_locality_created = Locality.objects.get_or_create(
                    name=request.POST.get("locality_name"),  # name__iexact
                    )
            d.association_id = DataAccessToken.get_association_id(request.session)
            d.enterprise_id = DataAccessToken.get_enterprise_id(request.session)

            if normalize("NFKD", u"%s" % d.name).encode("ascii", "ignore").lower() in list(
                normalize("NFKD", u"%s" % col["name"]).encode("ascii", "ignore").lower() for col in Headquar.objects.values("name").exclude(id=d.id).filter(enterprise_id=d.enterprise_id)
                ):
                raise Exception("La sede <b>%s</b> ya existe " % (d.name))
            d.save()
            if d.id:
                Message.info(request, ("Sede <b>%(name)s</b> ha sido registrado correctamente.") % {"name":d.name})
                return Redirect.to_action(request, "index")
        except Exception, e:
            transaction.savepoint_rollback(sid)
            Message.error(request, e)
Beispiel #4
0
def enterprise_index(request):
    """
    Página principal para trabajar con empresas
    """
    try:
        d = get_object_or_404(Association,
                              id=DataAccessToken.get_association_id(
                                  request.session))
    except:
        Message.error(request, (
            "Asociación no seleccionada o no se encuentra en la base de datos."
        ))
        return Redirect.to(request, "/home/choice_headquar/")
    enterprise_list = None
    try:
        subq = "SELECT COUNT(*) as count_sedes FROM space_headquar WHERE space_headquar.enterprise_id = space_enterprise.id"  # mejor usar {{ d.headquar_set.all.count }} y listo, trate de no usar {{ d.num_sedes_all }}
        # enterprise_list = Enterprise.objects.filter(headquar__association_id=DataAccessToken.get_association_id(request.session)).annotate(num_sedes=Count("headquar")).order_by("-id").distinct().extra(select={"num_sedes_all": subq})
        enterprise_list = Enterprise.objects.filter(
            headquar__association_id=DataAccessToken.get_association_id(
                request.session)).annotate(
                    num_sedes=Count("headquar")).order_by("-id").distinct()
        # enterprise_list2= Enterprise.objects.filter(headquar__enterprise_id=DataAccessToken.get_enterprise_id(request.session)).annotate(num_sedes_all=Count("headquar")).distinct()
        # enterprise_list =enterprise_list1.add(num_sedes_all="e")
        # enterprise_list = chain(enterprise_list1, enterprise_list2)
        # enterprise_list= [s.id for s in sets.Set(enterprise_list1).intersection(sets.Set(enterprise_list2))]
        # enterprise_list=enterprise_list.distinct()
    except Exception, e:
        Message.error(request, e)
Beispiel #5
0
def locality_add(request):
    d = Locality()
    d.msnm = 0
    d.date_create =""
    if request.method == "POST":
        try:
            # Aquí asignar los datos
            d.name = request.POST.get("name")
            d.msnm = request.POST.get("msnm")
            d.date_create = None
            if request.POST.get("date_create"):
                d.date_create = request.POST.get("date_create")
            if request.POST.get("locality_type_id"):
                d.locality_type = LocalityType.objects.get(id=request.POST.get("locality_type_id"))

            if normalize("NFKD", u"%s" % d.name).encode("ascii", "ignore").lower() in list(
                normalize("NFKD", u"%s" % col["name"]).encode("ascii", "ignore").lower() for col in Locality.objects.values("name").exclude(id=d.id)  # puede .filter()
                ):
                raise Exception(_("Locality <b>%(name)s</b> name's already in use.") % {"name":d.name})  # El nombre x para localidad ya existe.
            # salvar registro
            d.save()
            if d.id:
                Message.info(request, ("Localidad <b>%(name)s</b> ha sido registrado correctamente.") % {"name":d.name}, True)
                # return Redirect.to(request, "/params/locality/index/")#usar to(...) cuando la acción está implementada en otra app, ver sad.views.user_index
                return Redirect.to_action(request, "index")  # usar to_action(...) cuando la acción está implementada en este archivo
        except Exception, e:
            Message.error(request, e)
Beispiel #6
0
def producto_add(request):
    """
    Agrega Producto
    """
    d = Producto()
    d.descripcion = ""
    d.fecha_venc = ""
    if request.method == "POST":
        try:
            sid = transaction.savepoint()
            d.codigo = request.POST.get("codigox")
            d.descripcion = request.POST.get("descripcion")
            d.precio_venta = request.POST.get("precio_venta")
            d.headquar_id = DataAccessToken.get_headquar_id(request.session)

            if request.POST.get("fecha_venc"):
                d.fecha_venc = request.POST.get("fecha_venc")

            if request.POST.get("categoria_nombre"):
                d.categoria, is_created = Categoria.objects.get_or_create(
                    nombre=request.POST.get("categoria_nombre"), )

            if Producto.objects.filter(codigo=d.codigo).exclude(
                    id=d.id, headquar_id=d.headquar_id).count() > 0:
                raise Exception("El producto <b>%s</b> ya existe " % d.codigo)
            d.save()
            if d.id:
                Message.info(request, (
                    "Producto <b>%(name)s</b> ha sido registrado correctamente."
                ) % {"name": d.codigo}, True)
                return Redirect.to_action(request, "index")
        except Exception, e:
            transaction.savepoint_rollback(sid)
            Message.error(request, e)
Beispiel #7
0
def producto_add(request):
    """
    Agrega Producto
    """
    d = Producto()
    d.descripcion = ""
    d.fecha_venc=""
    if request.method == "POST":
        try:
            sid = transaction.savepoint()
            d.codigo = request.POST.get("codigox")
            d.descripcion = request.POST.get("descripcion")
            d.precio_venta = request.POST.get("precio_venta")
            d.headquar_id = DataAccessToken.get_headquar_id(request.session)
            
            if request.POST.get("fecha_venc"):
                d.fecha_venc = request.POST.get("fecha_venc")
                
            if request.POST.get("categoria_nombre"):
                d.categoria, is_created = Categoria.objects.get_or_create(
                    nombre=request.POST.get("categoria_nombre"),
                    )

            if Producto.objects.filter(codigo=d.codigo).exclude(id=d.id, headquar_id=d.headquar_id).count() > 0:
                raise Exception("El producto <b>%s</b> ya existe " % d.codigo)
            d.save()
            if d.id:
                Message.info(request, ("Producto <b>%(name)s</b> ha sido registrado correctamente.") % {"name":d.codigo}, True)
                return Redirect.to_action(request, "index")
        except Exception, e:
            transaction.savepoint_rollback(sid)
            Message.error(request, e)
Beispiel #8
0
def solution_index(request):
    """
    Página principal para trabajar con soluciones
    """
    try:
        solution_list = Solution.objects.all().order_by("-id")
    except Exception, e:
        Message.error(request, e)
Beispiel #9
0
def enterprise_add(request):
    """
    Agrega empresa dentro de una asociación, para ello deberá agregarse con una sede Principal
    """
    d = Enterprise()
    d.sede = "Principal"
    if request.method == "POST":
        try:
            sid = transaction.savepoint()
            d.name = request.POST.get("name")
            d.tax_id = request.POST.get("tax_id")
            d.type_e = request.POST.get("type_e")
            d.solution_id = request.POST.get("solution_id")
            # solution=Solution.objects.get(id=d.solution_id) #no es necesario
            if normalize("NFKD", u"%s" % d.name).encode(
                    "ascii", "ignore").lower() in list(
                        normalize("NFKD", u"%s" % col["name"]).encode(
                            "ascii", "ignore").lower()
                        for col in Enterprise.objects.values("name").exclude(
                            id=d.id)):
                raise Exception(
                    ("Empresa <b>%(name)s</b> ya existe.") % {"name": d.name})

            if Enterprise.objects.exclude(id=d.id).filter(
                    tax_id=d.tax_id).count() > 0:
                raise Exception("La empresa con RUC <b>%s</b> ya existe " %
                                (d.tax_id))

            d.save()

            headquar = Headquar()
            headquar.name = request.POST.get("sede")
            headquar.association_id = DataAccessToken.get_association_id(
                request.session)
            headquar.enterprise = d

            if normalize("NFKD", u"%s" % headquar.name).encode(
                    "ascii", "ignore").lower() in list(
                        normalize("NFKD", u"%s" % col["name"]).encode(
                            "ascii", "ignore").lower()
                        for col in Headquar.objects.values("name").exclude(
                            id=headquar.id).filter(
                                enterprise_id=headquar.enterprise_id)):
                raise Exception("La sede <b>%s</b> ya existe " %
                                (headquar.name))

            headquar.save()

            if d.id:
                Message.info(request, (
                    "Empresa <b>%(name)s</b> ha sido registrado correctamente."
                ) % {"name": d.name})
                return Redirect.to_action(request, "index")
        except Exception, e:
            transaction.savepoint_rollback(sid)
            Message.error(request, e)
Beispiel #10
0
def enterprise_upload(request):
    """
    Sube logo
    """
    data = {}
    try:
        filename = Upload.save_file(request.FILES["logo"], "empresas/")
        data ["name"] = "%s" % filename
    except Exception, e:
        Message.error(request, e)
Beispiel #11
0
def association_upload(request):
    """
    Sube logo
    """
    data = {}
    try:
        filename = Upload.save_file(request.FILES["logo"], "asociaciones/")
        data ["name"] = "%s" % filename
    except Exception, e:
        Message.error(request, e)
Beispiel #12
0
def enterprise_upload(request):
    """
    Sube logo
    """
    data = {}
    try:
        filename = Upload.save_file(request.FILES["logo"], "empresas/")
        data["name"] = "%s" % filename
    except Exception, e:
        Message.error(request, e)
Beispiel #13
0
def locality_report(request, field="name", value="None", order="-id"):
    field = (field if not request.REQUEST.get("field") else request.REQUEST.get("field")).strip()
    value = (value if not request.REQUEST.get("value") else request.REQUEST.get("value")).strip()
    order = (order if not request.REQUEST.get("order") else request.REQUEST.get("order")).strip()
    
    try:
        value = "" if value == "None" else value
        column_contains = u"%s__%s" % (field, "contains")

        locality_list = Locality.objects.filter(**{ column_contains: value }).order_by(order)
    except Exception, e:
        Message.error(request, e)
Beispiel #14
0
def headquar_index(request):
    """
    Página principal para trabajar con sedes
    """
    try:
        enterprise = get_object_or_404(Enterprise, id=DataAccessToken.get_enterprise_id(request.session))
    except:
        Message.error(request, ("Empresa no seleccionada o no se encuentra en la base de datos."))
        return Redirect.to(request, "/home/choice_headquar/")
    try:
        headquar_list = Headquar.objects.filter(enterprise_id=DataAccessToken.get_enterprise_id(request.session)).order_by("-id")
    except Exception, e:
        Message.error(request, e)
    def decorator(view_func):
        @wraps(view_func, assigned=available_attrs(view_func))
        def _wrapped_view(request, *args, **kwargs) :
            if not request.user.id:
                Message.warning(request, ("Tu no estás autenticado"))
                raise PermissionDenied #403.html
                #return render_to_response("403.html", {'': ''}, context_instance=RequestContext(request))
            permiso = ""
            recurso = "/"
            response = HttpResponse()
            response.write('<script type="text/javascript">')
            response.write('alert("Hola")')
            response.write('</script>')
            try:
                path = request.path.strip("/")  # request.get_full_path().strip("/") #"/apps/controller/action/" to "apps/controller/action"
                
            except Exception, e:
                raise Exception("%s. Asigne adecuadamente el parámetro template_denied_name " % e)
            
            path_list = path.split('/')
            permiso = "%s." % (path_list[0])
            recurso = "/%s/" % (path_list[0])
            if not isinstance(permiso, (list, tuple)):
                perms = (permiso,)
            else:
                perms = permiso

            if not request.user.has_perms(perms) and len(path_list) > 1:
                permiso = "%s.%s" % (path_list[0], path_list[1])
                recurso = "/%s/%s/" % (path_list[0], path_list[1])
                
            if not isinstance(permiso, (list, tuple)):
                perms = (permiso,)
            else:
                perms = permiso
            if not request.user.has_perms(perms) and len(path_list) > 2:
                permiso = "%s.%s_%s" % (path_list[0], path_list[1], path_list[2])
                recurso = "/%s/%s/%s/" % (path_list[0], path_list[1], path_list[2])
 
            if not isinstance(permiso, (list, tuple)):
	            perms = (permiso,)
            else:
	            perms = permiso
            if request.user.has_perms(perms):
	            return view_func(request, *args, **kwargs)
            else:
                Message.warning(request, ("Tu no posees permisos para acceder a <b>%(route)s</b>") % {'route':recurso})
                #raise PermissionDenied
                return render_to_response(template_denied_name, {'': ''}, context_instance=RequestContext(request))
 def _wrapped_view(request, *args, **kwargs) :
     if not request.user.id:
         Message.warning(request, ("Tu no estás autenticado"))
         raise PermissionDenied #403.html
         #return render_to_response("403.html", {'': ''}, context_instance=RequestContext(request))
     permiso = ""
     recurso = "/"
     response = HttpResponse()
     response.write('<script type="text/javascript">')
     response.write('alert("Hola")')
     response.write('</script>')
     try:
         path = request.path.strip("/")  # request.get_full_path().strip("/") #"/apps/controller/action/" to "apps/controller/action"
         
     except Exception, e:
         raise Exception("%s. Asigne adecuadamente el parámetro template_denied_name " % e)
Beispiel #17
0
def solution_add(request):
    """
    Agrega solución
    """
    d = Solution()
    d.description = ""
    if request.method == "POST":
        try:
            d.name = request.POST.get("name")
            d.description = request.POST.get("description")
            if Solution.objects.exclude(id=d.id).filter(name=d.name).count() > 0:
                raise Exception(("Solución <b>%(name)s</b> ya existe.") % {"name":d.name})
            d.save()
            if d.id:
                Message.info(request, ("Solución <b>%(name)s</b> ha sido registrado correctamente.") % {"name":d.name})
                return Redirect.to_action(request, "index")
        except Exception, e:
            Message.error(request, e)
Beispiel #18
0
def locality_index(request, field="name", value="None", order="-id"):
    """
    Lista paginada de locality
    """
    #admin.site.add_action(locality_index)
    
    #Message.error(request, "eeeú3")
        
    #logger.warning("mgeésaaa ")
    #Logger.warning(request, "Mi error oculto")
    
    
    field = (field if not request.REQUEST.get("field") else request.REQUEST.get("field")).strip()
    value = (value if not request.REQUEST.get("value") else request.REQUEST.get("value")).strip()
    order = (order if not request.REQUEST.get("order") else request.REQUEST.get("order")).strip()
    
    print datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")
    print time.time()
    print locale.getlocale() #('Spanish_Peru', '1252')
    print locale.getdefaultlocale()#('es_PE', 'cp1252')
    print translation.get_language()# es-pe
    print translation.to_locale(translation.get_language())#es_PE
    print datetime.datetime.now().strftime("%a, %d %b %y")#mié, 16 abr 14
    
    locality_page = None
    try:
        value_f = "" if value == "None" else value  # (true or false) ? value1:value2
        column_contains = u"%s__%s" % (field, "contains")  # SEL-- WHERE name LIKE %an%

        if field == "is_active":
            value_f = "0" if value.lower() == "no" else value
            column_contains = u"%s" % (field) #.filter(is_active=True)
            
        locality_list = Locality.objects.filter(**{ column_contains: value_f }).order_by(order)
        paginator = Paginator(locality_list, 25)  # Show num_rows=25 contacts per page
        try:
            locality_page = paginator.page(request.GET.get("page"))
        except PageNotAnInteger:
            locality_page = paginator.page(1)
        except EmptyPage:
            locality_page = paginator.page(paginator.num_pages)
    except Exception, e:
        Message.error(request, e)
Beispiel #19
0
def headquar_index(request):
    """
    Página principal para trabajar con sedes
    """
    try:
        enterprise = get_object_or_404(Enterprise,
                                       id=DataAccessToken.get_enterprise_id(
                                           request.session))
    except:
        Message.error(
            request,
            ("Empresa no seleccionada o no se encuentra en la base de datos."))
        return Redirect.to(request, "/home/choice_headquar/")
    try:
        headquar_list = Headquar.objects.filter(
            enterprise_id=DataAccessToken.get_enterprise_id(
                request.session)).order_by("-id")
    except Exception, e:
        Message.error(request, e)
Beispiel #20
0
def enterprise_add(request):
    """
    Agrega empresa dentro de una asociación, para ello deberá agregarse con una sede Principal
    """
    d = Enterprise()
    d.sede = "Principal"
    if request.method == "POST":
        try:
            sid = transaction.savepoint()
            d.name = request.POST.get("name")
            d.tax_id = request.POST.get("tax_id")
            d.type_e = request.POST.get("type_e")
            d.solution_id = request.POST.get("solution_id")
            # solution=Solution.objects.get(id=d.solution_id) #no es necesario
            if normalize("NFKD", u"%s" % d.name).encode("ascii", "ignore").lower() in list(
                normalize("NFKD", u"%s" % col["name"]).encode("ascii", "ignore").lower() for col in Enterprise.objects.values("name").exclude(id=d.id)
                ):
                raise Exception(("Empresa <b>%(name)s</b> ya existe.") % {"name":d.name})

            if Enterprise.objects.exclude(id=d.id).filter(tax_id=d.tax_id).count() > 0:
                raise Exception("La empresa con RUC <b>%s</b> ya existe " % (d.tax_id))

            d.save()

            headquar = Headquar()
            headquar.name = request.POST.get("sede")
            headquar.association_id = DataAccessToken.get_association_id(request.session)
            headquar.enterprise = d

            if normalize("NFKD", u"%s" % headquar.name).encode("ascii", "ignore").lower() in list(
                normalize("NFKD", u"%s" % col["name"]).encode("ascii", "ignore").lower() for col in Headquar.objects.values("name").exclude(id=headquar.id).filter(enterprise_id=headquar.enterprise_id)
                ):
                raise Exception("La sede <b>%s</b> ya existe " % (headquar.name))

            headquar.save()

            if d.id:
                Message.info(request, ("Empresa <b>%(name)s</b> ha sido registrado correctamente.") % {"name":d.name})
                return Redirect.to_action(request, "index")
        except Exception, e:
            transaction.savepoint_rollback(sid)
            Message.error(request, e)
Beispiel #21
0
def user_profile_edit(request):
    """
    Actualiza perfil del usuario
    """
    d = None
    try:
        d = request.user
        try:
            profile = Profile.objects.get(user_id=d.id)
            if profile.id:
                d.first_name = d.profile.person.first_name
                d.last_name = d.profile.person.last_name
                d.photo = d.profile.person.photo
                d.identity_type = d.profile.person.identity_type
                d.identity_num = d.profile.person.identity_num
        except:
            pass
        
    except Exception, e:
        Message.error(request, ("Usuario no se encuentra en la base de datos. %s" % e))
Beispiel #22
0
        def _wrapped_view(request, *args, **kwargs):
            if not request.user.id:
                Message.warning(request, ("Tu no estás autenticado"))
                raise PermissionDenied  #403.html
                #return render_to_response("403.html", {'': ''}, context_instance=RequestContext(request))
            permiso = ""
            recurso = "/"
            response = HttpResponse()
            response.write('<script type="text/javascript">')
            response.write('alert("Hola")')
            response.write('</script>')
            try:
                path = request.path.strip(
                    "/"
                )  # request.get_full_path().strip("/") #"/apps/controller/action/" to "apps/controller/action"

            except Exception, e:
                raise Exception(
                    "%s. Asigne adecuadamente el parámetro template_denied_name "
                    % e)
Beispiel #23
0
def headquar_add(request):
    """
    Agrega sede
    """
    d = Headquar()
    d.phone = ""
    d.address = ""
    if request.method == "POST":
        try:
            sid = transaction.savepoint()
            d.name = request.POST.get("name")
            d.phone = request.POST.get("phone")
            d.address = request.POST.get("address")
            d.is_main = False
            d.locality_name = request.POST.get("locality_name")
            if request.POST.get("locality_name"):
                d.locality, is_locality_created = Locality.objects.get_or_create(
                    name=request.POST.get("locality_name"),  # name__iexact
                )
            d.association_id = DataAccessToken.get_association_id(
                request.session)
            d.enterprise_id = DataAccessToken.get_enterprise_id(
                request.session)

            if normalize("NFKD", u"%s" % d.name).encode(
                    "ascii", "ignore").lower() in list(
                        normalize("NFKD", u"%s" % col["name"]).encode(
                            "ascii", "ignore").lower()
                        for col in Headquar.objects.values("name").exclude(
                            id=d.id).filter(enterprise_id=d.enterprise_id)):
                raise Exception("La sede <b>%s</b> ya existe " % (d.name))
            d.save()
            if d.id:
                Message.info(
                    request,
                    ("Sede <b>%(name)s</b> ha sido registrado correctamente.")
                    % {"name": d.name})
                return Redirect.to_action(request, "index")
        except Exception, e:
            transaction.savepoint_rollback(sid)
            Message.error(request, e)
Beispiel #24
0
def producto_edit(request, key):
    """
    Actualiza Producto
    """
    id = SecurityKey.is_valid_key(request, key, "producto_upd")
    if not id:
        return Redirect.to_action(request, "index")
    d = None
    try:
        d = get_object_or_404(Producto, id=id)
        try:
            categoria = Categoria.objects.get(id=d.categoria.id)
            if categoria.id:
                d.categoria_nombre = d.categoria.nombre
        except:
            pass

    except Exception, e:
        Message.error(request,
                      ("Usuario no se encuentra en la base de datos. %s" % e))
        return Redirect.to_action(request, "index")
Beispiel #25
0
def producto_edit(request, key):
    """
    Actualiza Producto
    """
    id = SecurityKey.is_valid_key(request, key, "producto_upd")
    if not id:
        return Redirect.to_action(request, "index")
    d = None
    try:
        d = get_object_or_404(Producto, id=id)
        try:
            categoria = Categoria.objects.get(id=d.categoria.id)
            if categoria.id:
                d.categoria_nombre = d.categoria.nombre
        except:
            pass
        
        
    except Exception, e:
        Message.error(request, ("Usuario no se encuentra en la base de datos. %s" % e))
        return Redirect.to_action(request, "index")
Beispiel #26
0
def enterprise_index(request):
    """
    Página principal para trabajar con empresas
    """
    try:
        d = get_object_or_404(Association, id=DataAccessToken.get_association_id(request.session))
    except:
        Message.error(request, ("Asociación no seleccionada o no se encuentra en la base de datos."))
        return Redirect.to(request, "/home/choice_headquar/")
    enterprise_list = None
    try:
        subq = "SELECT COUNT(*) as count_sedes FROM space_headquar WHERE space_headquar.enterprise_id = space_enterprise.id"  # mejor usar {{ d.headquar_set.all.count }} y listo, trate de no usar {{ d.num_sedes_all }}
        # enterprise_list = Enterprise.objects.filter(headquar__association_id=DataAccessToken.get_association_id(request.session)).annotate(num_sedes=Count("headquar")).order_by("-id").distinct().extra(select={"num_sedes_all": subq})
        enterprise_list = Enterprise.objects.filter(headquar__association_id=DataAccessToken.get_association_id(request.session)).annotate(num_sedes=Count("headquar")).order_by("-id").distinct()
        # enterprise_list2= Enterprise.objects.filter(headquar__enterprise_id=DataAccessToken.get_enterprise_id(request.session)).annotate(num_sedes_all=Count("headquar")).distinct()
        # enterprise_list =enterprise_list1.add(num_sedes_all="e")
        # enterprise_list = chain(enterprise_list1, enterprise_list2)
        # enterprise_list= [s.id for s in sets.Set(enterprise_list1).intersection(sets.Set(enterprise_list2))]
        # enterprise_list=enterprise_list.distinct()
    except Exception, e:
        Message.error(request, e)
Beispiel #27
0
def solution_delete(request, key):
    """
    Elimina solución
    """
    id = SecurityKey.is_valid_key(request, key, "solution_del")
    if not id:
        return Redirect.to_action(request, "index")
    try:
        d = get_object_or_404(Solution, id=id)
    except:
        Message.error(request, ("Solución no se encuentra en la base de datos."))
        return Redirect.to_action(request, "index")
    try:
        # rastreando dependencias
        if d.module_set.count() > 0:
            raise Exception(("Solución <b>%(name)s</b> tiene módulos asignados.") % {"name":d.name})
        if d.association_set.count() > 0:
            raise Exception(("Solución <b>%(name)s</b> está asignado en asociaciones.") % {"name":d.name})
        if d.enterprise_set.count() > 0:
            raise Exception(("Solución <b>%(name)s</b> está asignado en empresas.") % {"name":d.name})
        d.delete()
        if not d.id:
            Message.info(request, ("Solución <b>%(name)s</b> ha sido eliminado correctamente.") % {"name":d.name}, True)
            return Redirect.to_action(request, "index")
    except Exception, e:
        Message.error(request, e)
        return Redirect.to_action(request, "index")
# endregion solution
Beispiel #28
0
def solution_edit(request, key):
    """
    Actualiza solución
    """
    id = SecurityKey.is_valid_key(request, key, "solution_upd")
    if not id:
        return Redirect.to_action(request, "index")
    d = None

    try:
        d = get_object_or_404(Solution, id=id)
    except:
        Message.error(request, ("Solución no se encuentra en la base de datos."))
        return Redirect.to_action(request, "index")

    if request.method == "POST":
        try:
            d.name = request.POST.get("name")
            d.description = request.POST.get("description")
            if Solution.objects.exclude(id=d.id).filter(name=d.name).count() > 0:
                raise Exception(("Solución <b>%(name)s</b> ya existe.") % {"name":d.name})

            # salvar registro
            d.save()
            if d.id:
                Message.info(request, ("Solución <b>%(name)s</b> ha sido actualizado correctamente.") % {"name":d.name})
                return Redirect.to_action(request, "index")

        except Exception, e:
            Message.error(request, e)
Beispiel #29
0
def association_edit_current(request):
    """
    Actualiza datos de la asociación a la que ingresó el usuario
    """
    d = Association()
    try:
        d = get_object_or_404(Association, id=DataAccessToken.get_association_id(request.session))
    except:
        Message.error(request, ("Asociación no seleccionada o no se encuentra en la base de datos."))
        return Redirect.to(request, "/home/choice_headquar/")

    if request.method == "POST":
        try:
            sid = transaction.savepoint()
            d.name = request.POST.get("name")
            d.type_a = request.POST.get("type_a")
            d.solution_id = request.POST.get("solution_id")
            # solution=Solution.objects.get(id=d.solution_id) #no es necesario
            d.logo = request.POST.get("asociacion_logo")
            if normalize("NFKD", u"%s" % d.name).encode("ascii", "ignore").lower() in list(
                normalize("NFKD", u"%s" % col["name"]).encode("ascii", "ignore").lower() for col in Association.objects.values("name").exclude(id=d.id)
                ):
                raise Exception(("Asociación <b>%(name)s</b> ya existe.") % {"name":d.name})

            # salvar registro
            d.save()
            raise Exception(("Asociación <b>%(name)s</b> ya existe.") % {"name":d.name})
            if d.id:
                Message.info(request, ("Asociación <b>%(name)s</b> ha sido actualizado correctamente.") % {"name":d.name})

        except Exception, e:
            transaction.savepoint_rollback(sid)
            Message.error(request, e)
Beispiel #30
0
def headquar_delete(request, key):
    """
    Elimina sede
    """
    id = SecurityKey.is_valid_key(request, key, "headquar_del")
    if not id:
        return Redirect.to_action(request, "index")
    try:
        d = get_object_or_404(Headquar, id=id)
    except:
        Message.error(request, ("Sede no se encuentra en la base de datos."))
        return Redirect.to_action(request, "index")
    try:
        if d.enterprise.headquar_set.count() == 1:
            raise Exception(("Empresa <b>%(name)s</b> no puede quedar sin ninguna sede.") % {"name":d.enterprise.name})
        if d.userprofileheadquar_set.count() > 0:
            raise Exception(("Sede <b>%(name)s de %(empresa)s</b> tiene usuarios y grupos asignados.") % {"name":d.name, "empresa":d.enterprise.name})
        
        # agregue aquí sus otras relgas de negocio
        d.delete()
        if not d.id:
            Message.info(request, ("Sede <b>%(name)s de %(empresa)s</b> ha sido eliminado correctamente.") % {"name":d.name, "empresa":d.enterprise.name}, True)
            return Redirect.to_action(request, "index")
    except Exception, e:
        Message.error(request, e)
        return Redirect.to_action(request, "index")
Beispiel #31
0
def enterprise_delete(request, key):
    """
    Elimina empresa con todas sus sedes
    """
    id = SecurityKey.is_valid_key(request, key, "enterprise_del")
    if not id:
        return Redirect.to_action(request, "index")
    try:
        d = get_object_or_404(Enterprise, id=id)
    except:
        Message.error(request, ("Empresa no se encuentra en la base de datos."))
        return Redirect.to_action(request, "index")
    try:
        sid = transaction.savepoint()
        association = Association.objects.get(id=DataAccessToken.get_association_id(request.session))
        if Enterprise.objects.filter(headquar__association_id=DataAccessToken.get_association_id(request.session)).count() == 1:
            raise Exception(("Asociación <b>%(name)s</b> no puede quedar sin ninguna sede asociada.") % {"name":association.name})        
        if d.userprofileenterprise_set.count() > 0:
            raise Exception(("Empresa <b>%(name)s</b> tiene usuarios y grupos asignados.") % {"name":d.name})
        # agregue aquí sus otras relgas de negocio
        d.delete()
        if not d.id:
            Message.info(request, ("Empresa <b>%(name)s</b> ha sido eliminado correctamente.") % {"name":d.name}, True)
            return Redirect.to_action(request, "index")
    except Exception, e:
        transaction.savepoint_rollback(sid)
        Message.error(request, e)
        return Redirect.to_action(request, "index")
Beispiel #32
0
def producto_delete(request, key):
    """
    Elimina producto
    """
    id = SecurityKey.is_valid_key(request, key, "producto_del")
    if not id:
        return Redirect.to_action(request, "index")
    try:
        d = get_object_or_404(Producto, id=id)
    except:
        Message.error(request,
                      ("Producto no se encuentra en la base de datos."))
        return Redirect.to_action(request, "index")
    try:
        # sid = transaction.savepoint()
        d.delete()
        if not d.id:
            Message.info(
                request,
                ("Producto <b>%(codigo)s</b> ha sido eliminado correctamente.")
                % {"codigo": d.codigo}, True)
            return Redirect.to_action(request, "index")
    except Exception, e:
        # transaction.savepoint_rollback(sid)
        Message.error(request, e)
        return Redirect.to_action(request, "index")
Beispiel #33
0
def headquar_change_association(request, key):
    """
    Cambia de asociación a la sede
    """
    id = SecurityKey.is_valid_key(request, key, "headquar_cha")
    if not id:
        return Redirect.to_action(request, "index")
    d = None

    try:
        d = get_object_or_404(Headquar, id=id)
        if d.association:
            d.association_name = d.association.name
    except:
        Message.error(request, ("Sede no se encuentra en la base de datos."))
        return Redirect.to_action(request, "index")

    if request.method == "POST":
        try:
            # d.association_id = DataAccessToken.get_association_id(request.session)
            d.association_name = request.POST.get("association_name")
            try:
                d.association = Association.objects.get(name=d.association_name)
            except:
                raise Exception("La asociación <b>%s</b> no existe, vuelva a intentar " % (request.POST.get("association_name")))
            # salvar registro
            d.save()
            if d.id:
                Message.info(request, ("Sede <b>%(name)s</b> ha sido cambiado de asociación correctamente.") % {"name":d.name})
                return Redirect.to_action(request, "index")

        except Exception, e:
            
            Message.error(request, e)
Beispiel #34
0
def producto_index(request, field="descripcion", value="None", order="-id"):
    """
    Página principal para trabajar con productos
    """
    try:
        headquar = get_object_or_404(Headquar,
                                     id=DataAccessToken.get_headquar_id(
                                         request.session))
    except:
        Message.error(
            request,
            ("Sede no seleccionado o no se encuentra en la base de datos."))
        return Redirect.to(request, "/home/choice_headquar/")

    field = (field if not request.REQUEST.get("field") else
             request.REQUEST.get("field")).strip()
    value = (value if not request.REQUEST.get("value") else
             request.REQUEST.get("value")).strip()
    order = (order if not request.REQUEST.get("order") else
             request.REQUEST.get("order")).strip()

    producto_page = None
    try:
        value_f = "" if value == "None" else value
        column_contains = u"%s__%s" % (field, "contains")
        producto_list = Producto.objects.filter(headquar=headquar).filter(
            **{
                column_contains: value_f
            }).order_by(order)
        paginator = Paginator(producto_list, 20)
        try:
            producto_page = paginator.page(request.GET.get("page"))
        except PageNotAnInteger:
            producto_page = paginator.page(1)
        except EmptyPage:
            producto_page = paginator.page(paginator.num_pages)
    except Exception, e:
        Message.error(request, e)
Beispiel #35
0
	def is_valid_key(request, key_value, action_name):
		""" 
		Genera una llave de seguridad válida durante todo el día %Y-%m-%d

		Entrada::

			key_value=1.dfad09debee34f8e85fccc5adaa2dadb
			action_name="user_upd"

		Salida::

			1
	    """
		key = key_value.split('.')
		_id = key[0]
		valid_key = SecurityKey.get_key(_id, action_name)
		valid = (True if valid_key == key_value else False)
		if not valid:
			# raise Exception(("Acceso denegado. La llave de seguridad es incorrecta."))
			Message.error(request, ('Acceso denegado. La llave de seguridad es incorrecta.'))
			return False
		# print 'key_value(%s) = valid_key(%s)' % (key_value, valid_key)
		# Message.info(request,('key_value(%s) = valid_key(%s)' % (key_value, valid_key)))
		return _id
Beispiel #36
0
def enterprise_edit(request, key):
    """
    Actualiza empresa
    """
    id = SecurityKey.is_valid_key(request, key, "enterprise_upd")
    if not id:
        return Redirect.to_action(request, "index")
    d = None

    try:
        d = get_object_or_404(Enterprise, id=id)
    except:
        Message.error(request,
                      ("Empresa no se encuentra en la base de datos."))
        return Redirect.to_action(request, "index")

    if request.method == "POST":
        try:
            sid = transaction.savepoint()
            d.name = request.POST.get("name")
            d.tax_id = request.POST.get("tax_id")
            d.type_e = request.POST.get("type_e")
            d.solution_id = request.POST.get("solution_id")
            # solution=Solution.objects.get(id=d.solution_id) #no es necesario

            if normalize("NFKD", u"%s" % d.name).encode(
                    "ascii", "ignore").lower() in list(
                        normalize("NFKD", u"%s" % col["name"]).encode(
                            "ascii", "ignore").lower()
                        for col in Enterprise.objects.values("name").exclude(
                            id=d.id)):
                raise Exception(
                    ("Empresa <b>%(name)s</b> ya existe.") % {"name": d.name})

            if Enterprise.objects.exclude(id=d.id).filter(
                    tax_id=d.tax_id).count() > 0:
                raise Exception("La empresa con RUC <b>%s</b> ya existe " %
                                (d.tax_id))

            # salvar registro
            d.save()
            if d.id:
                Message.info(request, (
                    "Empresa <b>%(name)s</b> ha sido actualizado correctamente."
                ) % {"name": d.name})
                return Redirect.to_action(request, "index")

        except Exception, e:
            transaction.savepoint_rollback(sid)
            Message.error(request, e)
Beispiel #37
0
def enterprise_edit_current(request):
    """
    Actualiza datos de la empresa a la que ingresó el usuario
    """
    d = Enterprise()
    try:
        d = get_object_or_404(Enterprise,
                              id=DataAccessToken.get_enterprise_id(
                                  request.session))
    except:
        Message.error(
            request,
            ("Empresa no seleccionada o no se encuentra en la base de datos."))
        return Redirect.to(request, "/home/choice_headquar/")

    if request.method == "POST":
        try:
            sid = transaction.savepoint()
            d.name = request.POST.get("name")
            d.tax_id = request.POST.get("tax_id")
            d.type_e = request.POST.get("type_e")
            d.solution_id = request.POST.get("solution_id")
            d.logo = request.POST.get("empresa_logo")
            # solution=Solution.objects.get(id=d.solution_id) #no es necesario
            if normalize("NFKD", u"%s" % d.name).encode(
                    "ascii", "ignore").lower() in list(
                        normalize("NFKD", u"%s" % col["name"]).encode(
                            "ascii", "ignore").lower()
                        for col in Enterprise.objects.values("name").exclude(
                            id=d.id)):
                raise Exception(
                    ("Empresa <b>%(name)s</b> ya existe.") % {"name": d.name})

            if Enterprise.objects.exclude(id=d.id).filter(
                    tax_id=d.tax_id).count() > 0:
                raise Exception("La empresa con RUC <b>%s</b> ya existe " %
                                (d.tax_id))

            # salvar registro
            d.save()
            if d.id:
                Message.info(request, (
                    "Empresa <b>%(name)s</b> ha sido actualizado correctamente."
                ) % {"name": d.name})

        except Exception, e:
            transaction.savepoint_rollback(sid)
            Message.error(request, e)
Beispiel #38
0
def headquar_edit(request, key):
    """
    Actualiza sede
    """
    id = SecurityKey.is_valid_key(request, key, "headquar_upd")
    if not id:
        return Redirect.to_action(request, "index")
    d = None
    try:
        d = get_object_or_404(Headquar, id=id)
        if d.locality:
            d.locality_name = d.locality.name
    except:
        Message.error(request, ("Sede no se encuentra en la base de datos."))
        return Redirect.to_action(request, "index")

    if request.method == "POST":
        try:
            sid = transaction.savepoint()
            d.name = request.POST.get("name")
            d.phone = request.POST.get("phone")
            d.address = request.POST.get("address")
            d.locality_name = request.POST.get("locality_name").strip()
            if request.POST.get("locality_name").strip():
                d.locality, is_locality_created = Locality.objects.get_or_create(
                    name=request.POST.get(
                        "locality_name").strip(),  # name__iexact
                )
            if normalize("NFKD", u"%s" % d.name).encode(
                    "ascii", "ignore").lower() in list(
                        normalize("NFKD", u"%s" % col["name"]).encode(
                            "ascii", "ignore").lower()
                        for col in Headquar.objects.values("name").exclude(
                            id=d.id).filter(enterprise_id=d.enterprise_id)):
                raise Exception("La sede <b>%s</b> ya existe " % (d.name))

            # salvar registro
            d.save()
            if d.id:
                Message.info(
                    request,
                    ("Sede <b>%(name)s</b> ha sido actualizado correctamente.")
                    % {"name": d.name})
                return Redirect.to_action(request, "index")

        except Exception, e:
            transaction.savepoint_rollback(sid)
            Message.error(request, e)
Beispiel #39
0
def locality_edit(request, key):
    id = SecurityKey.is_valid_key(request, key, "locality_upd")
    if not id:
        return Redirect.to_action(request, "index")
    d = None
    try:
        d = get_object_or_404(Locality, id=id)  # Locality.objects.get(id=id)
    except:  # Locality.DoesNotExist
        Message.error(request, _("Locality not found in the database."))
        return Redirect.to_action(request, "index")

    if request.method == "POST":
        try:
            sid = transaction.savepoint()  # begin transaction, no amerita el decorador @transaction.atomic pero dejadlo para las nuevas version 

            # Aquí asignar los datos
            d.name = request.POST.get("name")
            d.msnm = request.POST.get("msnm")
            if request.POST.get("date_create"):
                d.date_create = request.POST.get("date_create")
            d.is_active = True

            # para probar transaction 
            # locality_type=LocalityType()
            # locality_type.name="Rural5"
            # if LocalityType.objects.filter(name = locality_type.name).count() > 0:
            #     raise Exception(_("LocalityType <b>%(name)s</b> name's already in use.") % {"name":locality_type.name}) #trhow new Exception("msg")
            # locality_type.save()
            # d.locality_type=locality_type

            if normalize("NFKD", u"%s" % d.name).encode("ascii", "ignore").lower() in list(
                normalize("NFKD", u"%s" % col["name"]).encode("ascii", "ignore").lower() for col in Locality.objects.values("name").exclude(id=d.id)  # puede .filter()
                ):
                raise Exception(_("Locality <b>%(name)s</b> name's already in use.") % {"name":d.name})  # trhow new Exception("msg")
            # salvar registro
            d.save()
            # para probar transaction
            # raise Exception("Error para no salvar. Si funciona")
            if d.id:
                # transaction.savepoint_commit(sid) se colocaría solo al final, pero no amerita pk ya está decorado con @transaction.atomic
                Message.info(request, ("Localidad <b>%(name)s</b> ha sido actualizado correctamente.") % {"name":d.name}, True)
                return Redirect.to_action(request, "index")
        except Exception, e:
            transaction.savepoint_rollback(sid)  # para reversar en caso de error en alguna de las tablas
            Message.error(request, e)
Beispiel #40
0
def enterprise_edit(request, key):
    """
    Actualiza empresa
    """
    id = SecurityKey.is_valid_key(request, key, "enterprise_upd")
    if not id:
        return Redirect.to_action(request, "index")
    d = None

    try:
        d = get_object_or_404(Enterprise, id=id)
    except:
        Message.error(request, ("Empresa no se encuentra en la base de datos."))
        return Redirect.to_action(request, "index")

    if request.method == "POST":
        try:
            sid = transaction.savepoint()
            d.name = request.POST.get("name")
            d.tax_id = request.POST.get("tax_id")
            d.type_e = request.POST.get("type_e")
            d.solution_id = request.POST.get("solution_id")
            # solution=Solution.objects.get(id=d.solution_id) #no es necesario

            if normalize("NFKD", u"%s" % d.name).encode("ascii", "ignore").lower() in list(
                normalize("NFKD", u"%s" % col["name"]).encode("ascii", "ignore").lower() for col in Enterprise.objects.values("name").exclude(id=d.id)
                ):
                raise Exception(("Empresa <b>%(name)s</b> ya existe.") % {"name":d.name})

            if Enterprise.objects.exclude(id=d.id).filter(tax_id=d.tax_id).count() > 0:
                raise Exception("La empresa con RUC <b>%s</b> ya existe " % (d.tax_id))

            # salvar registro
            d.save()
            if d.id:
                Message.info(request, ("Empresa <b>%(name)s</b> ha sido actualizado correctamente.") % {"name":d.name})
                return Redirect.to_action(request, "index")

        except Exception, e:
            transaction.savepoint_rollback(sid)
            Message.error(request, e)
Beispiel #41
0
def headquar_edit(request, key):
    """
    Actualiza sede
    """
    id = SecurityKey.is_valid_key(request, key, "headquar_upd")
    if not id:
        return Redirect.to_action(request, "index")
    d = None
    try:
        d = get_object_or_404(Headquar, id=id)
        if d.locality:
            d.locality_name = d.locality.name
    except:
        Message.error(request, ("Sede no se encuentra en la base de datos."))
        return Redirect.to_action(request, "index")

    if request.method == "POST":
        try:
            sid = transaction.savepoint()
            d.name = request.POST.get("name")
            d.phone = request.POST.get("phone")
            d.address = request.POST.get("address")
            d.locality_name = request.POST.get("locality_name").strip()
            if request.POST.get("locality_name").strip():
                d.locality, is_locality_created = Locality.objects.get_or_create(
                    name=request.POST.get("locality_name").strip(),  # name__iexact
                    )
            if normalize("NFKD", u"%s" % d.name).encode("ascii", "ignore").lower() in list(
                normalize("NFKD", u"%s" % col["name"]).encode("ascii", "ignore").lower() for col in Headquar.objects.values("name").exclude(id=d.id).filter(enterprise_id=d.enterprise_id)
                ):
                raise Exception("La sede <b>%s</b> ya existe " % (d.name))

            # salvar registro
            d.save()
            if d.id:
                Message.info(request, ("Sede <b>%(name)s</b> ha sido actualizado correctamente.") % {"name":d.name})
                return Redirect.to_action(request, "index")

        except Exception, e:
            transaction.savepoint_rollback(sid)
            Message.error(request, e)
Beispiel #42
0
def locality_delete(request, key):
    id = SecurityKey.is_valid_key(request, key, "locality_del")
    if not id:
        return Redirect.to_action(request, "index")
    try:
        d = get_object_or_404(Locality, id=id)  # Locality.objects.get(id=id)
    except:  # Locality.DoesNotExist
        Message.error(request, _("Locality not found in the database."))
        return Redirect.to_action(request, "index")
    try:
        # rastreando dependencias
        if d.headquart_set.count() > 0:
            raise Exception(("Localidad <b>%(name)s</b> está asignado en headquart.") % {"name":d.name})
        
        d.delete()
        if not d.id:
            Message.info(request, ("Localidad <b>%(name)s</b> ha sido eliminado correctamente.") % {"name":d.name}, True)
            return Redirect.to_action(request, "index")
    except Exception, e:
        Message.error(request, e)
        return Redirect.to_action(request, "index")
Beispiel #43
0
def headquar_change_association(request, key):
    """
    Cambia de asociación a la sede
    """
    id = SecurityKey.is_valid_key(request, key, "headquar_cha")
    if not id:
        return Redirect.to_action(request, "index")
    d = None

    try:
        d = get_object_or_404(Headquar, id=id)
        if d.association:
            d.association_name = d.association.name
    except:
        Message.error(request, ("Sede no se encuentra en la base de datos."))
        return Redirect.to_action(request, "index")

    if request.method == "POST":
        try:
            # d.association_id = DataAccessToken.get_association_id(request.session)
            d.association_name = request.POST.get("association_name")
            try:
                d.association = Association.objects.get(
                    name=d.association_name)
            except:
                raise Exception(
                    "La asociación <b>%s</b> no existe, vuelva a intentar " %
                    (request.POST.get("association_name")))
            # salvar registro
            d.save()
            if d.id:
                Message.info(request, (
                    "Sede <b>%(name)s</b> ha sido cambiado de asociación correctamente."
                ) % {"name": d.name})
                return Redirect.to_action(request, "index")

        except Exception, e:

            Message.error(request, e)
Beispiel #44
0
def producto_delete(request, key):
    """
    Elimina producto
    """
    id = SecurityKey.is_valid_key(request, key, "producto_del")
    if not id:
        return Redirect.to_action(request, "index")
    try:
        d = get_object_or_404(Producto, id=id)
    except:
        Message.error(request, ("Producto no se encuentra en la base de datos."))
        return Redirect.to_action(request, "index")
    try:
        # sid = transaction.savepoint()
        d.delete()
        if not d.id:
            Message.info(request, ("Producto <b>%(codigo)s</b> ha sido eliminado correctamente.") % {"codigo":d.codigo}, True)
            return Redirect.to_action(request, "index")
    except Exception, e:
        # transaction.savepoint_rollback(sid)
        Message.error(request, e)
        return Redirect.to_action(request, "index")
Beispiel #45
0
def enterprise_edit_current(request):
    """
    Actualiza datos de la empresa a la que ingresó el usuario
    """
    d = Enterprise()
    try:
        d = get_object_or_404(Enterprise, id=DataAccessToken.get_enterprise_id(request.session))
    except:
        Message.error(request, ("Empresa no seleccionada o no se encuentra en la base de datos."))
        return Redirect.to(request, "/home/choice_headquar/")

    if request.method == "POST":
        try:
            sid = transaction.savepoint()
            d.name = request.POST.get("name")
            d.tax_id = request.POST.get("tax_id")
            d.type_e = request.POST.get("type_e")
            d.solution_id = request.POST.get("solution_id")
            d.logo = request.POST.get("empresa_logo")
            # solution=Solution.objects.get(id=d.solution_id) #no es necesario
            if normalize("NFKD", u"%s" % d.name).encode("ascii", "ignore").lower() in list(
                normalize("NFKD", u"%s" % col["name"]).encode("ascii", "ignore").lower() for col in Enterprise.objects.values("name").exclude(id=d.id)
                ):
                raise Exception(("Empresa <b>%(name)s</b> ya existe.") % {"name":d.name})

            if Enterprise.objects.exclude(id=d.id).filter(tax_id=d.tax_id).count() > 0:
                raise Exception("La empresa con RUC <b>%s</b> ya existe " % (d.tax_id))

            # salvar registro
            d.save()
            if d.id:
                Message.info(request, ("Empresa <b>%(name)s</b> ha sido actualizado correctamente.") % {"name":d.name})

        except Exception, e:
            transaction.savepoint_rollback(sid)
            Message.error(request, e)