~marcelo-escobal/geined/Alianza

« back to all changes in this revision

Viewing changes to 111018_bancos.rb

  • Committer: Marcelo Escobal
  • Date: 2010-11-14 01:16:24 UTC
  • Revision ID: mescobal@hp-dm3-20101114011624-m4383lup42vbnz95
productos, balance comparativo en python

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/env ruby
2
 
require 'cgi_exception'
3
 
require 'funciones'
4
 
require 'htm'
5
 
require 'datos'
6
 
require 'csv'
7
 
def listado(frm)
8
 
    pag = Pagina.new("Cobranzas a depositar", 4)
9
 
    boton("Exportar", "111018_bancos.rb?accion=exportar")
10
 
    boton("Volver", "geined.py?accion=contabilidad")
11
 
    filas_por_pagina = 20
12
 
    pagina_actual = 1
13
 
    if frm.has_key?('pagina')
14
 
        pagina_actual = frm['pagina']
15
 
    end
16
 
    cuenta = Cuenta.find(:first, :conditions=>{:rubro=>'111018'})
17
 
    off_set = (pagina_actual.to_i - 1) * filas_por_pagina
18
 
    tot_debe = Transaccion.sum(:debe, :conditions=>{:cuenta_id=>cuenta.id})
19
 
    tot_haber = Transaccion.sum(:haber, :conditions=>{:cuenta_id=>cuenta.id})
20
 
    tot_saldo = tot_haber - tot_debe
21
 
    puts pag.cgi.table{
22
 
        pag.cgi.tr{
23
 
            pag.cgi.th{'Debe'} +
24
 
            pag.cgi.th{'Haber'} +
25
 
            pag.cgi.th{'Saldo'}
26
 
        } +
27
 
        pag.cgi.tr{
28
 
            pag.cgi.td('align'=>'right'){moneda(tot_debe)} +
29
 
            pag.cgi.td('align'=>'right'){moneda(tot_haber)} +
30
 
            pag.cgi.td('align'=>'right'){moneda(tot_saldo)}
31
 
        }
32
 
    }
33
 
    total_filas = Transaccion.find(:all, :conditions=>{:cuenta_id=>cuenta.id}).size
34
 
    total_paginas = total_filas / filas_por_pagina
35
 
    transacciones = Transaccion.find(
36
 
        :all, :conditions=>{:cuenta_id=>cuenta.id},
37
 
        :limit=>filas_por_pagina,
38
 
        :offset=>off_set,
39
 
        :order=>:id)
40
 
    i = 0
41
 
    saldo = 0
42
 
    encabezado_tabla(["Nº", "Fecha", "Detalle", "Debe", "Haber", "Saldo"])
43
 
    transacciones.each do |fila|
44
 
        fila_alterna(i)
45
 
        celda(fila.id)
46
 
        celda(mysql_a_fecha(fila.fecha))
47
 
        celda(fila.detalle)
48
 
        linea_moneda(fila.debe)
49
 
        linea_moneda(fila.haber)
50
 
        saldo = saldo + fila.haber - fila.debe
51
 
        linea_moneda(saldo)
52
 
        i = i + 1
53
 
    end
54
 
    fin_tabla
55
 
    navegador('111018_bancos.rb?accion=listado', pagina_actual, total_paginas)
56
 
    boton('Volver', 'geined.py?accion=direccion')
57
 
    pag.fin
58
 
end
59
 
def exportar
60
 
    cuenta = Cuenta.find(:first, :conditions=>{:rubro=>'111018'})
61
 
    transacciones = Transaccion.find(:all,
62
 
        :conditions=>{:cuenta_id => cuenta.id},
63
 
        :order=>:fecha)
64
 
    filename = StringIO.new
65
 
    saldo = 0
66
 
    sum_debe = 0
67
 
    sum_haber = 0
68
 
    CSV::Writer.generate(filename) do |bancos_csv|
69
 
        bancos_csv <<(["Nº", "Fecha", "Detalle", "Debe", "Haber", "Saldo"])
70
 
        transacciones.each do |fila|
71
 
            saldo = saldo +  fila.haber - fila.debe
72
 
            sum_debe = sum_debe + fila.debe
73
 
            sum_haber = sum_haber + fila.haber
74
 
            bancos_csv << [fila.id,
75
 
                mysql_a_fecha(fila.fecha),
76
 
                fila.detalle,
77
 
                fila.debe.to_s.gsub(".",","),
78
 
                fila.haber.to_s.gsub(".",","),
79
 
                saldo.to_s.gsub(".",",")]
80
 
        end
81
 
        bancos_csv << ["","","Total",
82
 
            sum_debe.to_s.gsub(".",","),
83
 
            sum_haber.to_s.gsub(".",","),
84
 
            saldo.to_s.gsub(".",",")]
85
 
    end
86
 
    filename.rewind
87
 
    puts "Content-Type: text/csv"
88
 
    puts "Content-Disposition: attachment; filename=\"bancos.csv\""
89
 
    puts ""
90
 
    filename.each do |fila|
91
 
        puts fila
92
 
    end
93
 
end
94
 
if __FILE__ == $0
95
 
    form = CGI.new("html4")
96
 
    accion = 'listado'
97
 
    if form.has_key?('accion')
98
 
        accion = form['accion']
99
 
    end
100
 
    case accion
101
 
    when 'listado'
102
 
        listado(form)
103
 
    when 'exportar'
104
 
        exportar
105
 
    end
106
 
end