# Create your views here.
import logging
logger_saves = logging.getLogger('logview.usersaves')
import os
import time
import cx_Oracle
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
from rest_framework.renderers import JSONRenderer
from rest_framework.parsers import JSONParser
from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
from tablas.models import Tabla

class JSONResponse(HttpResponse):
    """
    An HttpResponse that renders it's content into JSON.
    """
    def __init__(self, data, **kwargs):
        content = JSONRenderer().render(data)
        kwargs['content_type'] = 'application/json'
        super(JSONResponse, self).__init__(content, **kwargs)

#---Metodo para Modelo
@csrf_exempt
def servicioconceptos_list(request):
    if request.method == 'POST':
        logger_saves.info("/*********************************************************************************/")
        logger_saves.info("Ejecuta Consulta Concepto Generico")
        id_tabla=request.POST.get('id_tabla')
        logger_saves.info("Que id viene por post: "+id_tabla)
        descripcion_conceptos=request.POST.get('descripcion_conceptos')
        codigo_conceptos=request.POST.get('codigo_conceptos')
        nombre_id=request.POST.get('nombre_id')
        id_conceptos=request.POST.get('id_conceptos')
        tabla=Tabla.objects.get(id_tabla=id_tabla)
        conexion = tabla.id_conexion
        moduloconexionstring=conexion.username+"/"+conexion.password+"@"+conexion.host+":"+str(conexion.puerto)+"/"+conexion.esquema
        logger_saves.info("Conexion Consulta")
        logger_saves.info(moduloconexionstring)
        moduloconexion = cx_Oracle.connect(moduloconexionstring)
        cursormoduloconexion = moduloconexion.cursor()
        if id_conceptos is None:
            consulta="SELECT "+nombre_id+", "+codigo_conceptos+", "+descripcion_conceptos+" FROM "+tabla.nombre;
        else:
            consulta="SELECT "+nombre_id+", "+codigo_conceptos+", "+descripcion_conceptos+" FROM "+tabla.nombre+" WHERE "+nombre_id+"="+id_conceptos;
        cursormoduloconexion.execute(consulta)
        datos=cursormoduloconexion.fetchall()
        response={}
        rta={}
        contenedor=[]
        contador=0
        for concep in datos:
            pruebacon={}
            pruebacon["id_conceptos"]=concep[0]
            pruebacon["codigo_conceptos"]=concep[1]
            pruebacon["descripcion_conceptos"]=concep[2]
            contenedor.append(pruebacon)
            contador=contador+1
        response['status']=0
        response['totalRows']=contador
        response['startRow']=0
        response['endRow']=contador-1
        response['data']=contenedor
        rta['response']=response
        return JSONResponse(rta)
