def categoria_producto_lista(request): #from api_pollo.models import Personal #Codigo de verificacion de asignacion de modulo user = Usuario.objects.get(auth_user_id=request.user.id) modulos = [8] modulo_valido = validar_modulos(user.perfil.id, user.empresa.id, modulos) #print(modulo_valido) if modulo_valido['error'] == 1: errors = { "error": "No tiene permisos suficientes, para realizar operaciones en este modulo" } return Response(errors, status=status.HTTP_400_BAD_REQUEST) bd = modulo_valido['bd'] #print(bd) # termina verificaciond e modulo if request.method == 'GET': categorias = ProductoCategoria.objects.using(bd).filter( es_nodo_principal=True, estado=True).order_by("numero") texto = '<ul class="dropdown-menu inner selectpicker" style="max-height: 220px; overflow-y: auto; min-height: 81px;" role="menu">' texto = texto + '<li class="btn-group open"><a data-cat="-1" data-text="Sin categoría"><span class="text">Sin categoría</span></a></li>' texto = texto + '<li class="btn-group open active">' + '<a data-cat="0" data-text="Todas"><span class="text">Todas</span></a>' num = 1 array = [] arbol = crearArbolLista(categorias, bd, num, 0, array) texto = texto + arbol + '</li></ul>' respuesta = {'arbol': texto} return Response(respuesta)
def caracteristica_listado(request): #from api_pollo.models import Personal #Codigo de verificacion de asignacion de modulo user = Usuario.objects.get(auth_user_id=request.user.id) modulos = [9] modulo_valido = validar_modulos(user.perfil.id, user.empresa.id, modulos) #print(modulo_valido) if modulo_valido['error'] == 1: errors = { "error": "No tiene permisos suficientes, para realizar operaciones en este modulo" } return Response(errors, status=status.HTTP_400_BAD_REQUEST) bd = modulo_valido['bd'] #print(bd) # termina verificaciond e modulo if request.method == 'GET': if request.QUERY_PARAMS.get('param') is not None: param = request.QUERY_PARAMS.get('param') caracteristicas = Caracteristica.objects.using(bd).filter( Q(estado=True), (Q(nombre__icontains=param) | Q(id__icontains=param))) else: caracteristicas = Caracteristica.objects.using(bd).filter( estado=True) #print(len(personal)) numRegistros = request.QUERY_PARAMS.get('per_page') paginator = Paginator(caracteristicas, numRegistros) page = request.QUERY_PARAMS.get('page') try: registros = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. registros = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), # deliver last page of results. registros = paginator.page(paginator.num_pages) serializer_context = {'request': request} serializer = PaginatedCaracteristicaSerializer( registros, context=serializer_context) return Response(serializer.data) elif request.method == 'POST': data = {} for dato in request.DATA: if request.DATA[dato] != '': data[dato] = request.DATA[dato] else: data[dato] = None caracteristica = Caracteristica(nombre=data['nombre'], estado=True) caracteristica.save(using=bd) respuesta = {"id": caracteristica.id} return Response(respuesta, status=status.HTTP_201_CREATED)
def caracteristica_detalle(request, pk): user = Usuario.objects.get(auth_user_id=request.user.id) modulos = [9] modulo_valido = validar_modulos(user.perfil.id, user.empresa.id, modulos) if modulo_valido['error'] == 1: errors = { "error": "No tiene permisos suficientes, para realizar operaciones en este modulo" } return Response(errors, status=status.HTTP_400_BAD_REQUEST) bd = modulo_valido['bd'] if request.method == 'PUT': data = {} if Caracteristica.objects.using(bd).filter( id=pk, estado=True).exists() is not True: errors = { "error": "El registro ha sido borrado, o no existe en el sistema" } return Response(errors, status=status.HTTP_400_BAD_REQUEST) caracteristica = Caracteristica.objects.using(bd).get(id=pk) #print(personal['apellidos']) for dato in request.DATA: if request.DATA[dato] != '': data[dato] = request.DATA[dato] else: data[dato] = None caracteristica.nombre = data['nombre'] #print(data) if caracteristica.has_changed == True: caracteristica.save(using=bd) respuesta = {"respuesta": 1} return Response(respuesta, status=status.HTTP_200_OK) else: respuesta = {"respuesta": 2} return Response(respuesta, status=status.HTTP_200_OK) errors = {"error": ""} return Response(errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': if Caracteristica.objects.using(bd).filter( id=pk, estado=True).exists() is not True: errors = { "error": "El registro ha sido borrado, o no existe en el sistema" } return Response(errors, status=status.HTTP_400_BAD_REQUEST) caracteristica = Caracteristica.objects.using(bd).get(id=pk) caracteristica.estado = False caracteristica.save(using=bd) respuesta = {"": ""} return Response(respuesta, status=status.HTTP_200_OK)
def proveedor_detalle(request,pk): user=Usuario.objects.get(auth_user_id=request.user.id) modulos=[10] modulo_valido=validar_modulos(user.perfil.id,user.empresa.id,modulos) print(modulo_valido) if modulo_valido['error']==1: errors={"error":"No tiene permisos suficientes, para realizar operaciones en este modulo"} return Response(errors, status=status.HTTP_400_BAD_REQUEST) bd=modulo_valido['bd'] if request.method == 'PUT': data={} if Personal.objects.using(bd).filter(id=pk, estado=True,tipo=1).exists() is not True: errors={"error":"El cliente ha sido borrado, o no esta registrado en el sistema"} return Response(errors, status=status.HTTP_400_BAD_REQUEST) personal=Personal.objects.using(bd).get(id=pk) #print(personal['apellidos']) for dato in request.DATA: if request.DATA[dato]!='': if dato=='nit': data[dato]=int(request.DATA[dato]) else: data[dato]=request.DATA[dato] else: data[dato]=None personal.nombres=data['nombres'] personal.apellidos=data['apellidos'] personal.empresa=data['empresa'] personal.telefono=data['telefono'] personal.direccion=data['direccion'] personal.nit=data['nit'] print(personal.has_changed) if personal.has_changed==True: personal.save(using=bd) respuesta={"respuesta":1} return Response(respuesta, status=status.HTTP_200_OK) else: respuesta={"respuesta":2} return Response(respuesta, status=status.HTTP_200_OK) errors={"error":""} return Response(errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': if Personal.objects.using(bd).filter(id=pk, estado=True,tipo=1).exists() is not True: errors={"error":"El cliente ha sido borrado, o no esta registrado en el sistema"} return Response(errors, status=status.HTTP_400_BAD_REQUEST) personal=Personal.objects.using(bd).get(id=pk) personal.estado=False personal.save(using=bd) respuesta={"":""} return Response(respuesta, status=status.HTTP_200_OK)
def atributo_producto_detalle(request,pk): user=Usuario.objects.get(auth_user_id=request.user.id) modulos=[8] modulo_valido=validar_modulos(user.perfil.id,user.empresa.id,modulos) if modulo_valido['error']==1: errors={"error":"No tiene permisos suficientes, para realizar operaciones en este modulo"} return Response(errors, status=status.HTTP_400_BAD_REQUEST) bd=modulo_valido['bd'] if request.method == 'PUT': data={} if ProductoAtributo.objects.using(bd).filter(id=pk, estado=True).exists() is not True: errors={"error":"El registro ha sido borrado, o no existe en el sistema"} return Response(errors, status=status.HTTP_400_BAD_REQUEST) atributo=ProductoAtributo.objects.using(bd).get(id=pk) #print(personal['apellidos']) for dato in request.DATA: if request.DATA[dato]!='': data[dato]=request.DATA[dato] else: data[dato]=None atributo.atributo_id=data['atributo'] atributo.tipo_control_id=data['tipo_control'] #print(data) if atributo.has_changed==True: atributo.save(using=bd) respuesta={"respuesta":1,'tipo_control_lb':atributo.tipo_control.nombre,'atributo_lb':atributo.atributo.nombre} return Response(respuesta, status=status.HTTP_200_OK) else: respuesta={"respuesta":2} return Response(respuesta, status=status.HTTP_200_OK) errors={"error":""} return Response(errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': if ProductoAtributo.objects.using(bd).filter(id=pk, estado=True).exists() is not True: errors={"error":"El registro ha sido borrado, o no existe en el sistema"} return Response(errors, status=status.HTTP_400_BAD_REQUEST) atributo=ProductoAtributo.objects.using(bd).get(id=pk) atributo.estado=False atributo.save(using=bd) respuesta={"":""} return Response(respuesta, status=status.HTTP_200_OK)
def proveedor_listado(request): #from api_pollo.models import Personal #Codigo de verificacion de asignacion de modulo user=Usuario.objects.get(auth_user_id=request.user.id) modulos=[10] modulo_valido=validar_modulos(user.perfil.id,user.empresa.id,modulos) #print(modulo_valido) if modulo_valido['error']==1: errors={"error":"No tiene permisos suficientes, para realizar operaciones en este modulo"} return Response(errors, status=status.HTTP_400_BAD_REQUEST) bd=modulo_valido['bd'] #print(bd) # termina verificaciond e modulo if request.method=='GET': #print(request.QUERY_PARAMS) if request.QUERY_PARAMS.get('param') is not None: param=request.QUERY_PARAMS.get('param') personal = Personal.objects.using(bd).filter(Q(estado=True), Q(tipo=1), Q(cliente_proveedor=True), Q(id__icontains=param) | Q(nombres__icontains = param) | Q(apellidos__icontains=param) | Q(empresa__icontains=param) | Q(telefono__icontains=param)) if len(personal)==0: param="%"+param+"%" personal = Personal.objects.using(bd).extra(where=["(CONCAT(CONCAT(nombres,' '),apellidos)) LIKE %s and cliente_proveedor=1 "], params=[param]) else: personal = Personal.objects.using(bd).filter(estado=True, tipo=1, cliente_proveedor=True) #print(len(personal)) paginator = Paginator(personal, 10) page = request.QUERY_PARAMS.get('page') try: registros = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. registros = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), # deliver last page of results. registros = paginator.page(paginator.num_pages) serializer_context = {'request': request} #print(registros) serializer = PaginatedPersonalSerializer(registros, context=serializer_context) return Response(serializer.data) elif request.method=='POST': fecha=datetime.now().strftime("%Y-%m-%d") data={} for dato in request.DATA: if request.DATA[dato]!='': if dato=='nit': data[dato]=int(request.DATA[dato]) else: data[dato]=request.DATA[dato] else: data[dato]=None personal=Personal(nombres=data['nombres'], apellidos=data['apellidos'], empresa=data['empresa'], telefono=data['telefono'], direccion=data['direccion'], nit=data['nit'], usuario_sistema_id=user.id, estado=True, tipo=1, empresa_id=user.empresa.id, fecha=fecha, cliente_proveedor=True) personal.save(using=bd) respuesta={"id":personal.id} return Response(respuesta, status=status.HTTP_201_CREATED)
def categoria_producto(request): #from api_pollo.models import Personal #Codigo de verificacion de asignacion de modulo user = Usuario.objects.get(auth_user_id=request.user.id) modulos = [9] modulo_valido = validar_modulos(user.perfil.id, user.empresa.id, modulos) #print(modulo_valido) if modulo_valido['error'] == 1: errors = { "error": "No tiene permisos suficientes, para realizar operaciones en este modulo" } return Response(errors, status=status.HTTP_400_BAD_REQUEST) bd = modulo_valido['bd'] #print(bd) # termina verificaciond e modulo if request.method == 'GET': id_prod = 0 if request.QUERY_PARAMS.get('id') is not None: id_prod = int(request.QUERY_PARAMS.get('id')) categorias = ProductoCategoria.objects.using(bd).filter( es_nodo_principal=True, estado=True).order_by("numero") cat = ProdCatAsig.objects.using(bd).values( 'producto_categoria_id').filter(estado=True, producto_id=id_prod) cats = [] for c in cat: cats.append(c['producto_categoria_id']) texto = '<ul>' texto = texto + '<li>' + '<span><i class="fa fa-folder-open"></i> Principal</span>' arbol = crearArbolProducto(categorias, bd, cats) texto = texto + arbol + '</li></ul>' respuesta = {'Arbol': texto} return Response(respuesta) elif request.method == 'POST': #print(request.DATA) data = {} resp = 0 for dato in request.DATA: if request.DATA[dato] != '': data[dato] = request.DATA[dato] else: data[dato] = None if request.DATA.get('cats') != None: cats = '' if data['cats'] != None: cats = data['cats'].split(',') cats_tmp = cats cs = ProdCatAsig.objects.using(bd).filter( producto_id=data['id_prod']) for c in cs: ca = str(c.producto_categoria.id) if ca in cats_tmp: cats.remove(ca) if c.estado == False: c.estado = True c.save(using=bd) resp = 1 elif c.estado == True: c.estado = False c.save(using=bd) resp = 1 for c in cats: ca = ProdCatAsig(estado=True, producto_id=data['id_prod'], producto_categoria_id=c) ca.save(using=bd) resp = 1 #if cat!=None: print(cats) respuesta = {"respuesta": resp} return Response(respuesta, status=status.HTTP_201_CREATED)
def categoria_listado(request): #from api_pollo.models import Personal #Codigo de verificacion de asignacion de modulo user = Usuario.objects.get(auth_user_id=request.user.id) modulos = [9] modulo_valido = validar_modulos(user.perfil.id, user.empresa.id, modulos) #print(modulo_valido) if modulo_valido['error'] == 1: errors = { "error": "No tiene permisos suficientes, para realizar operaciones en este modulo" } return Response(errors, status=status.HTTP_400_BAD_REQUEST) bd = modulo_valido['bd'] #print(bd) # termina verificaciond e modulo if request.method == 'GET': id_cat = 0 if request.QUERY_PARAMS.get('id') is not None: id_cat = int(request.QUERY_PARAMS.get('id')) categorias = ProductoCategoria.objects.using(bd).filter( es_nodo_principal=True, estado=True).order_by("numero") texto = '<ul>' if id_cat == 0: texto = texto + '<li>' + '<input checked="checked" type="radio" name="categoria" value="0" data-radio="Principal"/>\n\ <span style="box-shadow: 0.2px 0.2px 6.2px #16a085;"><i class="fa fa-folder-open"></i> Principal</span>' else: texto = texto + '<li>' + '<input type="radio" name="categoria" value="0" data-radio="Principal"/>\n\ <span><i class="fa fa-folder-open"></i> Principal</span>' arbol = crearArbol(categorias, bd, id_cat) texto = texto + arbol + '</li></ul>' respuesta = {'Arbol': texto} return Response(respuesta) elif request.method == 'POST': #print(request.DATA) data = {} for dato in request.DATA: if request.DATA[dato] != '': if dato == 'categoria': data[dato] = int(request.DATA[dato]) else: data[dato] = request.DATA[dato] else: data[dato] = None conn = connections[bd] if conn.connection is None: cursor = conn.cursor() cursor = conn.connection.cursor() numero = 0 es_nodo_principal = False producto_categoria = None if data['categoria'] == 0: query = 'select count(producto_categoria.id) \n\ from producto_categoria where producto_categoria.estado=1\n\ and producto_categoria.es_nodo_principal=1' cursor.execute(query) row = cursor.fetchone() if row[0] != None: numero = int(row[0]) + 1 cursor.close() es_nodo_principal = True else: query = 'select count(producto_categoria.id) \n\ from producto_categoria where producto_categoria.estado=1\n\ and producto_categoria.producto_categoria_id=%s' cursor.execute(query, [data['categoria']]) row = cursor.fetchone() if row[0] != None: numero = int(row[0]) + 1 cursor.close() producto_categoria = data['categoria'] categoria = ProductoCategoria(nombre=data['nombre'], numero=numero, estado=True, es_nodo_principal=es_nodo_principal, producto_categoria_id=producto_categoria) categoria.save(using=bd) respuesta = {"id": categoria.id} return Response(respuesta, status=status.HTTP_201_CREATED)
def categoria_detalle(request, pk): user = Usuario.objects.get(auth_user_id=request.user.id) modulos = [9] modulo_valido = validar_modulos(user.perfil.id, user.empresa.id, modulos) if modulo_valido['error'] == 1: errors = { "error": "No tiene permisos suficientes, para realizar operaciones en este modulo" } return Response(errors, status=status.HTTP_400_BAD_REQUEST) bd = modulo_valido['bd'] if request.method == 'PUT': data = {} if ProductoCategoria.objects.using(bd).filter( id=pk, estado=True).exists() is not True: errors = { "error": "El registro ha sido borrado, o no existe en el sistema" } return Response(errors, status=status.HTTP_400_BAD_REQUEST) categoria = ProductoCategoria.objects.using(bd).get(id=pk) #print(personal['apellidos']) for dato in request.DATA: if request.DATA[dato] != '': data[dato] = request.DATA[dato] else: data[dato] = None if data['numero'] == 0: categoria.nombre = data['nombre'] #print(data) if categoria.has_changed == True: categoria.save(using=bd) respuesta = {"respuesta": 1} return Response(respuesta, status=status.HTTP_200_OK) else: respuesta = {"respuesta": 2} return Response(respuesta, status=status.HTTP_200_OK) elif data['numero'] == 1: numero = categoria.numero if numero != 1: numero = numero - 1 if categoria.producto_categoria == None: cats = ProductoCategoria.objects.using(bd).filter( es_nodo_principal=True, estado=True, numero=numero) for cat in cats: cat.numero = numero + 1 cat.save(using=bd) else: cats = ProductoCategoria.objects.using(bd).filter( estado=True, numero=numero, producto_categoria_id=categoria.producto_categoria.id) for cat in cats: cat.numero = numero + 1 cat.save(using=bd) #print(cat) categoria.numero = numero categoria.save(using=bd) respuesta = {"respuesta": 1} return Response(respuesta, status=status.HTTP_200_OK) else: respuesta = {"respuesta": 2} return Response(respuesta, status=status.HTTP_200_OK) elif data['numero'] == 2: numero = categoria.numero numero = numero + 1 cats = [] if categoria.producto_categoria == None: cats = ProductoCategoria.objects.using(bd).filter( es_nodo_principal=True, estado=True, numero=numero) for cat in cats: cat.numero = numero - 1 cat.save(using=bd) else: cats = ProductoCategoria.objects.using(bd).filter( estado=True, numero=numero, producto_categoria_id=categoria.producto_categoria.id) for cat in cats: cat.numero = numero - 1 cat.save(using=bd) #print(cat) if len(cats) > 0: categoria.numero = numero categoria.save(using=bd) respuesta = {"respuesta": 1} else: respuesta = {"respuesta": 3} return Response(respuesta, status=status.HTTP_200_OK) #return Response(respuesta, status=status.HTTP_200_OK) errors = {"error": ""} return Response(errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': if ProductoCategoria.objects.using(bd).filter( id=pk, estado=True).exists() is not True: errors = { "error": "El registro ha sido borrado, o no existe en el sistema" } return Response(errors, status=status.HTTP_400_BAD_REQUEST) categoria = ProductoCategoria.objects.using(bd).get(id=pk) categoria.estado = False categoria.save(using=bd) numero = categoria.numero cats = [] if categoria.producto_categoria == None: cats = ProductoCategoria.objects.using(bd).filter( es_nodo_principal=True, estado=True, numero__gt=numero) for cat in cats: cat.numero = cat.numero - 1 cat.save(using=bd) else: cats = ProductoCategoria.objects.using(bd).filter( estado=True, numero__gt=numero, producto_categoria_id=categoria.producto_categoria.id) for cat in cats: cat.numero = cat.numero - 1 cat.save(using=bd) #print(cat) respuesta = {"": ""} return Response(respuesta, status=status.HTTP_200_OK)
def atributo_producto_listado(request): #from api_pollo.models import Personal #Codigo de verificacion de asignacion de modulo user=Usuario.objects.get(auth_user_id=request.user.id) modulos=[8] modulo_valido=validar_modulos(user.perfil.id,user.empresa.id,modulos) #print(modulo_valido) if modulo_valido['error']==1: errors={"error":"No tiene permisos suficientes, para realizar operaciones en este modulo"} return Response(errors, status=status.HTTP_400_BAD_REQUEST) bd=modulo_valido['bd'] #print(bd) # termina verificaciond e modulo if request.method=='GET': id_prod=request.QUERY_PARAMS.get('id') if request.QUERY_PARAMS.get('param') is not None: param=request.QUERY_PARAMS.get('param') atributos = ProductoAtributo.objects.using(bd).filter(Q(estado=True), Q(atributo__estado=True), Q(producto_id=id_prod), Q(id__icontains = param)| Q(atributo__nombre__icontains = param)| Q(tipo_control__nombre__icontains=param)) else: atributos = ProductoAtributo.objects.using(bd).filter(estado=True, atributo__estado=True, producto_id=id_prod) #print(len(personal)) numPages=request.QUERY_PARAMS.get('per_page') paginator = Paginator(atributos,numPages) page = request.QUERY_PARAMS.get('page') try: registros = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. registros = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), # deliver last page of results. registros = paginator.page(paginator.num_pages) serializer_context = {'request': request} #print(registros) serializer = PaginatedProductoAtributoSerializer(registros, context=serializer_context) return Response(serializer.data) elif request.method=='POST': data={} for dato in request.DATA: if request.DATA[dato]!='': data[dato]=request.DATA[dato] else: data[dato]=None atributo=ProductoAtributo(atributo_id=data['atributo'], estado=True, tipo_control_id=data['tipo_control'], producto_id=data['producto']) atributo.save(using=bd) respuesta={"id":atributo.id,'tipo_control_lb':atributo.tipo_control.nombre,'atributo_lb':atributo.atributo.nombre} return Response(respuesta, status=status.HTTP_201_CREATED)