Example #1
0
def salida_bases_institucion_trader(request):
    fecha_inicial = request.GET.get('fecha_inicial')
    fecha_final = request.GET.get('fecha_final')
    datos = {}
    datos['fecha_inicial'] = fecha_inicial
    datos['fecha_final'] = fecha_final
    datos['bases_prov'] = bases.objects.raw(
        ''' SELECT 1 as linea, * FROM eqder_provisiones_trader(%s,%s,'B') where provision<>0 order by provision desc; ''',
        [fecha_inicial, fecha_final])
    datos['depo_prov'] = bases.objects.raw(
        ''' SELECT 1 as linea, * FROM eqder_provisiones_trader(%s,%s,'F') where provision<>0 order by provision desc; ''',
        [fecha_inicial, fecha_final])
    datos['base_tasa'] = bases.objects.raw(
        ''' SELECT 1 as linea, * FROM eqder_generacion_tasas_trader(%s,%s,'B') where util_tasa<>0 order by util_tasa desc; ''',
        [fecha_inicial, fecha_final])
    datos['depo_tasa'] = bases.objects.raw(
        ''' SELECT 1 as linea, * FROM eqder_generacion_tasas_trader(%s,%s,'F') where util_tasa<>0 order by util_tasa desc; ''',
        [fecha_inicial, fecha_final])
    timbre = actividad(name='BASES',
                       accion='generacion_institucion_trader',
                       usuario=request.user)
    timbre.save()
    return render(request,
                  'salida-bases-institucion-trader.html',
                  context=datos)
Example #2
0
def gen_mensual_cliente_views(request):
    producto = request.GET.get('selectorProductoGen')
    agno = request.GET.get('selectorAgnoGen')
    generacion = bases.objects.raw(
        ''' select 1 as linea,* from eq_bases_generacion_mensual_cliente(true,%s,%s) order by cliente asc ''',
        [agno, producto])
    salida = []
    response = HttpResponse(content_type='text/csv')
    p = 'BASES' if producto == 'b' else 'DEPOSITOS'
    nombre_archivo = "Generacion Mensual año {0} - {1} por cliente".format(
        agno, p)
    response['Content-Disposition'] = 'attachment; filename={0}.csv'.format(
        nombre_archivo)
    writer = csv.writer(response)
    writer.writerow([
        'cliente', 'enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio',
        'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'
    ])
    for r in generacion:
        salida.append([
            r.cliente, r.gen_enero, r.gen_febrero, r.gen_marzo, r.gen_abril,
            r.gen_mayo, r.gen_junio, r.gen_julio, r.gen_agosto,
            r.gen_septiembre, r.gen_octubre, r.gen_noviembre, r.gen_diciembre
        ])
    writer.writerows(salida)
    timbre = actividad(name='BASES',
                       accion='generacion_generaciones_mensuales',
                       usuario=request.user)
    timbre.save()
    return response
Example #3
0
def consolidado_csv_views(request):
    fecha_inicial = request.GET.get('fecha_inicial')
    fecha_final = request.GET.get('fecha_final')
    consolidado = bases.objects.raw(
        ''' with generacion_consolidada as ( select *,round(total/sum(total/100) over(),2) as porcentaje
from eq_der_generacion_total_consolidad(%s,%s)
							)
select 1 as linea,*,sum(porcentaje) over (order by porcentaje desc) as porcentaje_acumulado from generacion_consolidada; ''',
        [fecha_inicial, fecha_final])
    salida = []
    response = HttpResponse(content_type='text/csv')
    nombre_archivo = "Generacion_total_consolidada_entre_el_{0}_y_{1}".format(
        fecha_inicial, fecha_final)
    response['Content-Disposition'] = 'attachment; filename={0}.csv'.format(
        nombre_archivo)
    writer = csv.writer(response)
    writer.writerow([
        'nombre', 'generacion por depositos', 'generacion por bases',
        'provision por bases', 'provision por depos', 'total', 'porcentaje',
        'porentaje acumulado'
    ])
    for r in consolidado:
        salida.append([
            r.nombre, r.gen_depo, r.gen_bases, r.prov_bases, r.prov_depos,
            r.total, r.porcentaje, r.porcentaje_acumulado
        ])
    writer.writerows(salida)
    timbre = actividad(name='BASES',
                       accion='generacion_consolidada',
                       usuario=request.user)
    timbre.save()

    return response
Example #4
0
def consulta_cintas_proceso(request):
    datos = {}
    categoria = request.GET.get('categoria')
    rating = request.GET.get('rating')
    moneda = request.GET.get('moneda')
    duracion_inicial = request.GET.get('duracion_inicial')
    duracion_final = request.GET.get('duracion_final')
    texto = "Bonos {} en {} {} duración entre {} y {}".format(
        categoria, moneda, rating, duracion_inicial, duracion_final)
    datos['titulo'] = texto
    consulta_tr = tr.objects.filter(
        tipo=categoria,
        rating=rating,
        reajuste=moneda,
        duracion__range=(duracion_inicial,
                         duracion_final)).values('instrumento', 'tir_media',
                                                 'duracion', 'rol_tr')
    consulta_rsk = risk.objects.filter(
        tipo=categoria,
        riesgo=rating,
        moneda=moneda,
        monto_outstanding__gt=0,
        duracion__range=(duracion_inicial,
                         duracion_final)).values('nemo', 'tir', 'duracion',
                                                 'rol_rsk')
    #acá creamos la consulta que saca de risk los que están en tr

    datos['c'] = consulta_tr.union(consulta_rsk, all=True)
    ultima_subida = actividad.objects.filter(
        accion='carga_de_datos').latest('fecha')
    timbre = actividad(name='RFL',
                       accion='consulta_cintas',
                       usuario=request.user)
    timbre.save()
    datos['servidor'] = request.get_host()
    if consulta_rsk.exists() and consulta_tr.exists():
        return render(request,
                      'rfl-arbitraje-consultas-salida.html',
                      context=datos)
    elif consulta_rsk.exists() and consulta_tr.exists() == False:
        texto = texto + '.No hay resultado en Telerrenta.'
        datos['titulo'] = texto
        return render(request,
                      'rfl-arbitraje-consultas-salida.html',
                      context=datos)
    elif consulta_rsk.exists() == False and consulta_tr.exists():
        texto = texto + '. No hay resultado en Riskamérica.'
        datos['titulo'] = texto
        return render(request,
                      'rfl-arbitraje-consultas-salida.html',
                      context=datos)
    else:
        texto = texto + '. No hay resultado ni en Riskamérica ni en Telerrenta.'
        datos['titulo'] = texto
        return render(request,
                      'rfl-arbitraje-consultas-salida.html',
                      context=datos)
Example #5
0
def rfi_datos_fena(request):
    """ Esta vista obtiene un excel con los datos de la feña """
    datos = rfi_beta.objects.raw(''' select 1 as linea,* from eq_rfi_tortas_moviles_categorias() order by fecha_salida desc''')
    salida=[]
    response = HttpResponse(content_type='text/csv')
    nombre_archivo = "Generacion Mensual diaria"
    response['Content-Disposition'] = 'attachment; filename={0}.csv'.format(nombre_archivo)
    writer = csv.writer(response)
    writer.writerow(['fecha_salida','cliente','pais','categoria','generacion'])
    for r in datos:
        salida.append([r.fecha_salida,r.cliente,r.pais,r.categoria,r.generacion])
    writer.writerows(salida)
    timbre = actividad(name='RFI',accion='datos_fena',usuario=request.user)
    timbre.save()
    return response
Example #6
0
def rfi_comite_descargar_excel_view(request):
    fechas = request.GET.copy()
    fecha_inicial = parse_date(fechas['fecha_inicial'])
    fecha_final = parse_date(fechas['fecha_final'])
    consulta = rfi_beta.objects.raw(''' SELECT 1 AS linea, * from eq_rfi_generacion(%s,%s) ''',[fecha_inicial,fecha_final])
    salida=[]
    response = HttpResponse(content_type='text/csv')
    nombre_archivo = "Generacion_RFI_entre_el_{0}_y_{1}".format(fecha_inicial,fecha_final)
    response['Content-Disposition'] = 'attachment; filename={0}.csv'.format(nombre_archivo)
    writer = csv.writer(response)
    writer.writerow(['pais','cat','cliente','generacion_brk','generacion_finales','generacion_bancos_brk','generacion_total'])
    for r in consulta:
         salida.append([r.pais,r.cat,r.cliente,r.generacion_brk,r.generacion_finales,r.generacion_bancos_brk,r.generacion_total])
    writer.writerows(salida)
    timbre = actividad(name='BASES',accion='generacion_conciliaciones',usuario=request.user)
    timbre.save()

    return response
Example #7
0
def llegada_lva(request):
    if request.method == 'POST':
        f = formulario_lva(request.POST, request.FILES)
        if f.is_valid():
            archivo_lva = request.FILES['lva']
            p = io.TextIOWrapper(archivo_lva.file, encoding='utf-8-sig')
            #h = f.cleaned_data
            #p = io.TextIOWrapper(h, encoding='utf-8-sig')
            texto = p.read()
            texto = texto.replace(',', '.')
            lva_csv = csv.DictReader(io.StringIO(texto),
                                     delimiter=";",
                                     dialect='excel')
            encabezados = [
                "Fecha", "Familia", "Nemotecnico", "TirLVA", "TipoTir",
                "Precio", "SpreadDuracion", "Duracion", "PlazoDias"
            ]
            lva_csv.fieldnames = encabezados
            next(lva_csv)
            lva_vector.objects.all().delete()
            for r in lva_csv:
                if r["Familia"] == 'BE':
                    a = lva_vector(familia=r["Familia"],
                                   nemo=r["Nemotecnico"],
                                   tir_lva=r["TirLVA"],
                                   tipo_instrumento=r["TipoTir"],
                                   precio=r["Precio"],
                                   duracion=r["Duracion"])
                    a.save()
            actualiza_riesgo_lva()
            supercintas.objects.all().delete()
            c = connection.cursor()
            c.execute('SELECT * from crea_tabla_supercintas();')
            timbre = actividad(name='RFL',
                               accion='carga_de_LVA',
                               usuario=request.user)
            timbre.save()
            return redirect('consulta_cintas')
    return redirect('arbitraje_rfl')
Example #8
0
def consulta_supercintas_proceso(request):
    datos = {}
    categoria = request.GET.get('categoria')
    rating = request.GET.get('rating')
    moneda = request.GET.get('moneda')
    duracion_inicial = request.GET.get('duracion_inicial')
    duracion_final = request.GET.get('duracion_final')
    texto = "Bonos {} en {} {} duración entre {} y {}".format(
        categoria, moneda, rating, duracion_inicial, duracion_final)
    datos['titulo'] = texto
    print('***consulta supercintas', datos)
    datos['c'] = supercintas.objects.raw(
        ''' SELECT 1 AS ID, * from supercintas(%s,%s,%s,%s,%s) where tasa is not null ''',
        [duracion_inicial, duracion_final, rating, moneda, categoria])
    #acá creamos la consulta que saca de risk los que están en tr
    ultima_subida = actividad.objects.filter(
        accion='carga_de_datos').latest('fecha')
    timbre = actividad(name='RFL', accion='consulta_LVA', usuario=request.user)
    timbre.save()
    datos['servidor'] = request.get_host()
    return render(request,
                  'rfl-arbitraje-consultas-salida-supercintas.html',
                  context=datos)
Example #9
0
def llegada_rfl_1(request):
    if request.method == 'POST':
        formularios = lva_1_2(request.POST, request.FILES)
        if formularios.is_valid():
            riskamerica = request.FILES['rsk']
            telerenta = request.FILES['tr']
            f_tr = io.TextIOWrapper(telerenta.file, encoding='utf-8-sig')
            f_rsk = io.TextIOWrapper(riskamerica.file, encoding='utf-8-sig')
            csv_tr = csv.DictReader(f_tr, delimiter=";", dialect='excel')
            csv_rsk = csv.DictReader(f_rsk, delimiter=";", dialect='excel')
            risk.objects.all().delete()
            tr.objects.all().delete()
            if 'Cantidad' not in csv_tr.fieldnames:
                csv_tr.fieldnames = [
                    "Instrumento", "Tipo", "N° Negocios", "Cantidad", "Reaj.",
                    "Monto $", "Precio Mayor", "Precio Menor", "Precio Medio",
                    "TIR Mayor", "TIR Menor", "TIR Media", "Duration",
                    "Precio Cierre", "Fecha de Cierre"
                ]
            for r in csv_tr:
                a = r['Cantidad']
                b = a.split(',')[0]
                b = b.replace('.', '')
                c = r['Duration']
                c = truncar(c, 2)
                d = r['TIR Media']
                d = truncar(d, 2)
                e = tr(instrumento=r['Instrumento'],
                       cantidad=b,
                       reajuste=r['Reaj.'],
                       tir_media=d,
                       duracion=c,
                       tipo=r['Tipo'])
                e.save()
            for s in csv_rsk:
                nemo = s['Nemo']
                tipo = s['Tipo']
                riesgo = s['Riesgo']
                moneda = s['Moneda']
                monto_outstanding = s['Cantidad Out.']
                duracion = truncar(s['Duración'], 2)
                tir = truncar(s['Tir Ult. Val.'], 2)
                if 'E+' in monto_outstanding:
                    y = re.sub(r"\d*,?\d+E\+\d+", "100", monto_outstanding)
                    monto_outstanding = y
                f = risk(nemo=nemo,
                         tipo=tipo,
                         riesgo=riesgo,
                         moneda=moneda,
                         monto_outstanding=monto_outstanding,
                         duracion=duracion,
                         tir=tir)
                f.save()
            f_tr.close()
            f_rsk.close()
            limpia_risk()
            actualiza_riesgo()
            actualiza_tipo()
            timbre = actividad(name='RFL',
                               accion='carga_de_datos',
                               usuario=request.user)
            timbre.save()
            messages.info(request, 'Cargado exitosamente!')
            return redirect('consulta_cintas')
        else:
            messages.error(
                request,
                'El archivo no es correcto,¿tiene formato utf-8 y separado por ; ? '
            )
            return redirect('arbitraje_rfl')

    return HttpResponse("Conectado")
Example #10
0
def salida_bases(request):
    if request.method == 'POST':

        datos = {}
        fechas = request.POST.copy()

        fecha_inicial = fechas['fecha_inicial']
        fecha_final = fechas['fecha_final']
        datos['fecha_inicial'] = parse_date(fecha_inicial)
        datos['fecha_final'] = parse_date(fecha_final)

        #aca comenzamos con las consultas a la db.
        datos['lista_depositos_via_tasa'] = bases.objects.raw(
            ''' select 1 as linea, cliente, util_tasa from eqder_generacion_tasas(%s,%s,'F') where util_tasa<>0 order by util_tasa desc ''',
            [fecha_inicial, fecha_final])
        datos['lista_bases_via_tasa'] = bases.objects.raw(
            ''' select 1 as linea, cliente, util_tasa from eqder_generacion_tasas(%s,%s,'B') where util_tasa<>0 order by util_tasa desc ''',
            [fecha_inicial, fecha_final])
        datos['lista_provisiones_por_bases'] = bases.objects.raw(
            ''' select 1 as linea, cliente,round(provision,0) as pro from eqder_generaciones_bases(%s,%s) where provision<>0 order by provision desc; ''',
            [fecha_inicial, fecha_final])
        datos['lista_provisiones_por_depos'] = bases.objects.raw(
            ''' select 1 as linea, * FROM eqder_provisiones(%s,%s,'F') where provision>0 order by provision desc;''',
            [fecha_inicial, fecha_final])
        datos['mt_otc_bases'] = bases.objects.raw(
            ''' select 1 as linea, * from eqder_montos_transados(%s,%s,'OTC','B') where monto_transado<>0 order by monto_transado desc ''',
            [fecha_inicial, fecha_final])
        datos['mt_tr_bases'] = bases.objects.raw(
            ''' select 1 as linea, * from eqder_montos_transados(%s,%s,'TR','B') where monto_transado<>0 order by monto_transado desc ''',
            [fecha_inicial, fecha_final])
        datos['mt_otc_depos'] = bases.objects.raw(
            ''' select 1 as linea, * from eqder_montos_transados(%s,%s,'OTC','F') where monto_transado<>0 order by monto_transado desc ''',
            [fecha_inicial, fecha_final])
        datos['mt_tr_depos'] = bases.objects.raw(
            ''' select 1 as linea, * from eqder_montos_transados(%s,%s,'TR','F') where monto_transado<>0 order by monto_transado desc ''',
            [fecha_inicial, fecha_final])
        datos['torta_generaciones'] = bases.objects.raw(
            ''' select 1 as linea, * from eqder_torta_generaciones(%s,%s)  ''',
            [fecha_inicial, fecha_final])
        datos['torta_montos_transados'] = bases.objects.raw(
            ''' select 1 as linea, * from eqder_torta_montos_transados(%s,%s)  ''',
            [fecha_inicial, fecha_final])
        datos['serie_generaciones'] = bases.objects.raw(
            ''' select 1 as linea,fecha,sum(util_depo+fee_buyer_clp+fee_seller_clp) as monto from "BASES_bases" where util_depo>0 or fee_buyer_clp>0 or fee_seller_clp>0 group by fecha HAVING fecha BETWEEN %s and %s order by fecha asc  ''',
            [fecha_inicial, fecha_final])
        #datos['serie_generaciones_apiladas'] = bases.objects.raw(''' select 1 as linea,fecha,sum(util_depo) as util_depo, sum(fee_buyer_clp+fee_seller_clp) as provision from "BASES_bases" where (util_depo>0 or fee_buyer_clp>0 or fee_seller_clp>0) and fecha BETWEEN %s and %s group by fecha order by fecha asc   ''',[fecha_inicial,fecha_final])
        datos['serie_generaciones_apiladas'] = bases.objects.raw(
            ''' select 1 as linea,* from eqder_serie_generaciones_categorias(%s,%s) order by fecha_salida asc;   ''',
            [fecha_inicial, fecha_final])
        datos['total_generaciones'] = bases.objects.raw(
            ''' select 1 as linea,COALESCE(sum(util_depo+fee_buyer_clp+fee_seller_clp),0) as monto from "BASES_bases" where (util_depo>0 or fee_buyer_clp>0 or fee_seller_clp>0) and fecha BETWEEN %s and %s  ''',
            [fecha_inicial, fecha_final])[0]
        datos['total_generaciones_bases'] = bases.objects.raw(
            ''' select 1 as linea, COALESCE(sum(fee_buyer_clp+fee_seller_clp+util_depo),0) as monto_bases from "BASES_bases" where fecha between %s and %s and nemo ilike 'B%%' and (fee_buyer_clp>0 or fee_seller_clp>0 OR util_depo>0)  ''',
            [fecha_inicial, fecha_final])[0]
        datos['total_generaciones_depos'] = bases.objects.raw(
            ''' select 1 as linea, COALESCE(sum(fee_buyer_clp+fee_seller_clp+util_depo),0) as monto_depos from "BASES_bases" where fecha between %s and %s and nemo ilike 'F%%' and (fee_buyer_clp>0 or fee_seller_clp>0 OR util_depo>0)  ''',
            [fecha_inicial, fecha_final])[0]

        #datos['cobros'] = bases.objects.raw(''' select 1 as linea,cliente,provision,ida_vuelta,(provision-ida_vuelta)as saldo from generaciones_bases_historico() order by provision desc  ''')
        datos['cobros'] = bases.objects.raw(
            ''' Select 1 as linea,* from cobranzas_view_consolidada where provisiones>0; '''
        )
        datos['saldo_calle'] = bases.objects.raw(
            ''' Select 1 as linea,sum(saldo) as calle from cobranzas_view_consolidada '''
        )[0]
        datos['vencimientos'] = bases.objects.raw(
            ''' select 1 as linea,fecha,nemo,dias,monto,buy,seller,tasa,(fecha+dias) as fecha_final from "BASES_bases" where (fecha+dias)>now() order by fecha_final asc;'''
        )[:10]
        datos['serie_montos_transados'] = bases.objects.raw(
            ''' select 1 as linea, fecha,
sum(CASE WHEN otc_tr='TR' and nemo ilike 'B%%' then valor_clp ELSE 0 END) as monto_tr_base,
sum(CASE WHEN otc_tr='TR' and nemo ilike 'F%%' then valor_clp ELSE 0 END) as monto_tr_depo,
sum(CASE WHEN otc_tr='OTC' and nemo ilike 'B%%' then valor_clp ELSE 0 END) as monto_otc_base,
sum(CASE WHEN otc_tr='OTC' and nemo ilike 'F%%' then valor_clp ELSE 0 END) as monto_otc_depo 
from "BASES_bases" 
where fecha between %s and %s
group by fecha
order by fecha asc''', [fecha_inicial, fecha_final])

        datos['serie_cobranzas'] = bases.objects.raw(
            ''' select 1 as linea,* from serie_cobranzas_view''')
        datos['idayvueltas'] = bases.objects.raw(
            ''' select 1 as linea, * from "BASES_bases" where fecha between %s and %s and (fee_buyer_clp<0 or fee_seller_clp<0) order by fecha desc''',
            [fecha_inicial, fecha_final])
        datos['idayvueltas_total'] = bases.objects.raw(
            ''' select 1 as linea, sum(fee_buyer_clp+fee_seller_clp)::money as total_idavuelta from "BASES_bases" where fecha between %s and %s and (fee_buyer_clp<0 or fee_seller_clp<0) ''',
            [fecha_inicial, fecha_final])[0]
        datos['generaciones_consolidadas'] = bases.objects.raw(
            '''with generacion_consolidada as ( select *,round(total/sum(total/100) over(),2) as porcentaje from eq_der_generacion_total_consolidad(%s,%s)) select 1 as linea,*,sum(porcentaje) over (order by porcentaje desc) as porcentaje_acumulado,row_number() OVER (order by total desc) as ranking from generacion_consolidada where total<>0; ''',
            [fecha_inicial, fecha_final])
        datos['instrumentos'] = bases.objects.raw(
            '''select 1 as linea,* from eq_der_instrumentos(%s,%s) where generacion<>0 ''',
            [fecha_inicial, fecha_final])
        datos['generacion_diaria'] = bases.objects.raw(
            '''select 1 as linea,* from eq_der_serie_generacion_acumulada_diaria_view '''
        )
        datos['generacion_mensual'] = bases.objects.raw(
            '''select 1 as linea,* from "BASES_serie_generacion_mensual" order by fecha asc '''
        )
        datos['clientes_unicos_generacion_diaria'] = [
            "VISION", "FYNSA", "FM SURA", "FM SECURITY", "FM SCOTIABANK",
            "FM SCOTIA", "FM SANTANDER", "FM MONEDA", "FM LARRAINVIAL",
            "FM ITAU", "FM FYNSA", "FM CREDICORP", "FM BTG", "FM BICE",
            "FM BCI", "FM BANCHILE", "CDS PRINCIPAL", "CDS EUROAMERICA",
            "CDS BICE", "CB VECTOR", "CB SCOTIABANK", "CB MERRIL LYNCH",
            "CB LARRAINVIAL", "CB EUROAMERICA", "CB CREDICORP", "CB CONSORCIO",
            "CB BTG", "CB BCI", "CB BANCOESTADO", "CB BANCHILE", "B SECURITY",
            "B SCOTIABANK TRAD", "B SCOTIABANK", "B SANTANDER TRAD",
            "B SANTANDER BCE", "B SANTANDER", "B MERRIL LYNCH", "B JPM",
            "B ITAU", "B INTERNACIONAL", "B HSBC", "B FALABELLA TRAD",
            "B FALABELLA BCE", "B FALABELLA", "B ESTADO TRAD", "B ESTADO BCE",
            "B ESTADO", "B CONSORCIO TRAD", "B CONSORCIO BCE", "B CONSORCIO",
            "B CHILE TRAD", "B CHILE BCE", "B CHILE", "B BTG", "B BICE",
            "B BCI TRAD", "B BCI INV", "B BCI BCE", "B BCI", "AFP PLANVITAL",
            "AFP MODELO", "AFP HABITAT", "AFP CUPRUM", "AFP CAPITAL",
            "AFP AFC", "ADC VISION", "ADC SANTANDER", "ADC NEVASA", "ADC BCI"
        ]
        # datos['instrumentos_total'] = bases.objects.raw('''select 1 as linea,* from eq_der_instrumentos_total(%s,%s) where gen<>0 ''',[fecha_inicial,fecha_final])
        datos['instrumentos_bases'] = bases.objects.raw(
            '''select 1 as linea,* from eq_der_instrumentos_bases(%s,%s) where gen<>0 ''',
            [fecha_inicial, fecha_final])
        datos['instrumentos_depos'] = bases.objects.raw(
            '''select 1 as linea,* from eq_der_instrumentos_depos(%s,%s) where gen<>0 ''',
            [fecha_inicial, fecha_final])
        datos['conteo'] = bases.objects.raw(
            ''' SELECT 1 as linea,* from eq_der_conteo_operaciones(%s,%s)''',
            [fecha_inicial, fecha_final])
        #NO OPERARON Y GENERACION 0 HAY QUE REVISAR
        #datos['no_operaron'] = bases.objects.raw(''' SELECT 1 as linea, nombre FROM "BASES_clientes" where factura=false and nombre not in (SELECT nombre FROM eq_der_generacion_total_consolidad(%s,%s) where total<>0) order by nombre asc ''',[fecha_inicial,fecha_final])
        datos['no_operaron'] = bases.objects.raw(
            ''' SELECT 1 as linea,  nombre FROM eq_der_generacion_total_consolidad(%s,%s) where total<=0 order by nombre asc ''',
            [fecha_inicial, fecha_final])
        datos['facturas'] = facturas_bases.objects.filter(
            fecha_emision__gte=fecha_inicial)
        timbre = actividad(name='BASES',
                           accion='generacion_comite',
                           usuario=request.user)
        timbre.save()
        return render(request, 'salida-bases_copy.html', context=datos)

    return render(request, 'salida-bases.html', {})
Example #11
0
def conciliaciones_views(request):
    print("dentro de concilianciones_views, print request.GET", request.GET)
    cliente = request.GET.get('cliente')
    cliente = cliente + '%'
    fecha_inicial = request.GET.get('fecha_inicial')
    fecha_final = request.GET.get('fecha_final')
    if request.GET.get("en_dolares") == 'on':
        conciliaciones = bases.objects.raw(
            ''' select 1 as linea,fecha,otc_tr,nemo,monto,tipo_de_pago,buy,seller,trader_buy,trader_seller,tasa,
    sum(
        CASE WHEN buy ilike %s THEN
        fee_buyer
        ELSE
        0
        END
        )as fe_buyer, 
    sum(
        CASE WHEN seller ilike %s THEN
        fee_seller
        ELSE
        0
        END)as fe_seller
    from "BASES_bases"
    where (buy ilike %s or seller ilike %s) AND (fee_seller_clp<>0 or fee_buyer_clp<>0) and fecha between %s and %s
    group by fecha,otc_tr,nemo,monto,tipo_de_pago,buy,seller,trader_buy,trader_seller,tasa
    order by fecha asc;''',
            [cliente, cliente, cliente, cliente, fecha_inicial, fecha_final])
    else:
        conciliaciones = bases.objects.raw(
            ''' select 1 as linea,fecha,otc_tr,nemo,monto,tipo_de_pago,buy,seller,trader_buy,trader_seller,tasa,
    sum(
        CASE WHEN buy ilike %s THEN
        fee_buyer_clp
        ELSE
        0
        END
        )as fe_buyer_clp, 
    sum(
        CASE WHEN seller ilike %s THEN
        fee_seller_clp
        ELSE
        0
        END)as fe_seller_clp
    from "BASES_bases"
    where (buy ilike %s or seller ilike %s) AND (fee_seller_clp<>0 or fee_buyer_clp<>0) and fecha between %s and %s
    group by fecha,otc_tr,nemo,monto,tipo_de_pago,buy,seller,trader_buy,trader_seller,tasa
    order by fecha asc;''',
            [cliente, cliente, cliente, cliente, fecha_inicial, fecha_final])

    salida = []
    response = HttpResponse(content_type='text/csv')
    nombre_archivo = "{0}_entre_el_{1}_y_{2}".format(cliente, fecha_inicial,
                                                     fecha_final)
    response['Content-Disposition'] = 'attachment; filename={0}.csv'.format(
        nombre_archivo)
    writer = csv.writer(response)
    writer.writerow([
        'fecha', 'otc_tr', 'nemo', 'monto', 'tipo_de_pago', 'buy', 'seller',
        'trader_buy', 'trader_seller', 'tasa', 'fee_buyer', 'fee_seller'
    ])
    if request.GET.get("en_dolares") == 'on':
        for r in conciliaciones:
            salida.append([
                r.fecha, r.otc_tr, r.nemo, r.monto, r.tipo_de_pago, r.buy,
                r.seller, r.trader_buy, r.trader_seller, r.tasa, r.fe_buyer,
                r.fe_seller
            ])
        writer.writerows(salida)
    else:
        for r in conciliaciones:
            salida.append([
                r.fecha, r.otc_tr, r.nemo, r.monto, r.tipo_de_pago, r.buy,
                r.seller, r.trader_buy, r.trader_seller, r.tasa,
                r.fe_buyer_clp, r.fe_seller_clp
            ])
        writer.writerows(salida)

    timbre = actividad(name='BASES',
                       accion='generacion_conciliaciones',
                       usuario=request.user)
    timbre.save()

    return response