Beispiel #1
0
def get_query_mayor(id_comunidad,codigo_menor,codigo_mayor):
    aux_menor=Cuenta(codigo=codigo_menor)
    aux_mayor=Cuenta(codigo=codigo_mayor)
    
    
    QUERY_MAYOR="with T AS (select c.id,c.cuenta, sum(ad.debe) as debe , sum(ad.haber) as haber, "\
    "sum(ad.debe)-sum(ad.haber)  as saldo,c.codigo,c.codigo_ordenado "\
    "from asientos_contables_asientocontabledetalle ad "\
    "join asientos_contables_asientocontable a on a.id = ad.asiento_contable_id "\
    "join cuentas_cuenta c on c.id = ad.cuenta_id "\
    "join comunidades_comunidad comu on comu.id = a.comunidad_id "\
    "join ejercicios_ejercicio e on e.anho = extract(year from a.fecha) "\
    "where comu.id = "+str(id_comunidad)+" and e.actual is True group by c.id, c.cuenta, c.tipo , "\
    " c.codigo_ordenado,c.codigo order by c.codigo_ordenado) "\
    "select c.codigo,c.cuenta, "\
    "(case when c.tipo like 'AC' then 'ACTIVO' "\
    "when c.tipo like 'PA' then 'PASIVO' "\
    "when c.tipo like 'IN' then 'INGRESO'"\
    "when c.tipo like 'EG' then 'EGRESO' "\
    "else c.tipo end ) as tipo,"\
    "(case when T.debe is null then 0 else T.debe end) as debe, "\
    "(case when T.haber is null then 0 else T.haber end) as haber, "\
    "(case when T.saldo is null then 0 else T.saldo end) as saldo,"\
    "(case when c.numchild > 0 then False else True end) as hijo from cuentas_cuenta c "\
    "full join T on T.id = c.id "\
    " where c.codigo_ordenado >= "+str(aux_menor.codigo_conversion())+" and "\
    " c.codigo_ordenado <= "+str(aux_mayor.codigo_conversion())+"  "\
    "order by c.codigo_ordenado "
    return QUERY_MAYOR
Beispiel #2
0
def mayor_detalle(request,id_comunidad,desde,hasta):
    comunidad=Comunidad.objects.get(pk=id_comunidad)
     # Create the HttpResponse object with the appropriate PDF headers.
    response = HttpResponse(content_type='application/pdf')
    response['Content-Disposition'] = 'attachment; filename="Libro Mayor Detallado - '+comunidad.comunidad+'.pdf"'
 
    buffer = BytesIO()
 
    report = MyPrint(buffer, 'A4')
    if request.user.has_perm(USUARIO_LIMITADO):
       ejercicio_anho = Ejercicio.objects.get(actual=True).anho
    else:
       ejercicio_anho = request.session['ejercicio']
    
    aux_menor=Cuenta(codigo=desde)
    aux_mayor=Cuenta(codigo=hasta)
    
    query = " select distinct c.id,c.cuenta,c.codigo,c.codigo_ordenado from cuentas_cuenta c " \
            " join asientos_contables_asientocontabledetalle ad on ad.cuenta_id = c.id " \
            " join asientos_contables_asientocontable a on a.id=ad.asiento_contable_id " \
            " join ejercicios_ejercicio e on e.anho = extract(year from a.fecha) "\
            " where a.comunidad_id=" + str(id_comunidad) +"  and extract( year from a.fecha) ="+str(ejercicio_anho)+" "\
            " and c.codigo_ordenado >= "+str(aux_menor.codigo_conversion())+" and "\
            " c.codigo_ordenado <= "+str(aux_mayor.codigo_conversion())+"  "\
            " order by c.codigo_ordenado"
            
    cuentas_list = execute_all_query(query)
    asientos=AsientoContableDetalle.objects.filter(asiento_contable__fecha__year=ejercicio_anho,asiento_contable__comunidad_id=id_comunidad).order_by('cuenta__codigo_ordenado')
    cuentas=[]
    for id_cuenta,cuenta,codigo,aux in cuentas_list:
        debe=haber=0
        for asiento in asientos:
            if id_cuenta ==  asiento.cuenta_id:
                debe+=asiento.debe
                haber+=asiento.haber
        cuentas.append([id_cuenta,cuenta,debe-haber,codigo])
    for cuenta in cuentas:
        print cuenta
        
    pdf = report.print_mayor_detalle(cuentas,comunidad.comunidad,asientos)
    response.write(pdf)
    
    return response