Otra cosa...

Tenes nil? que dice true si uno objeto es nulo y falso en caso contrario.


saludos

diego


2010/2/22 Pablo Marrero <[email protected]>

> Hola, lo que se me ocurre rapidamente para solucionar el problema desde el
> lado del sql es que uses la funcion NVL(debito,0) y NVL(credito,0), con lo
> cual el sql ya te va a devolver lo que queres...
>
> salute!
>
>
> El 22 de febrero de 2010 16:53, Nestor Rodriguez 
> <[email protected]>escribió:
>
> Hola gente, como andan, aqui peleandome con el array, estoy tratando de
>> hacer un sistema de cuentas corrientes y estoy con eso del DEBITO Y EL
>> CREDITO, así que necesito mostrar el ESTADO DE CUENTAS de un cliente, por lo
>> tanto en el CONTROLADOR escribo esto:
>>
>> @clientes_movimientos = ClienteMovimiento.find_by_sql("Select
>> clientes_movimientos.* " +
>>                    "from clientes_movimientos, solicitudes, clientes " +
>>                    "where clientes_movimientos.solicitud_id =
>> solicitudes.id and " +
>>                    " solicitudes.cliente_id = clientes.id and " +
>>                    " clientes.id = #{params[:id]}")
>> AQUÍ NO ESTA EL PROBLEMA, el problema es que en el array que me genera,
>> vienen dos campos, DEBITO y CREDITO, que quiero sumarlos (cada uno un su
>> columna) para mostrar los totales algo así como:
>>
>> fec mov         Concepto        Debito          Credito         Fec
>> vencimiento         Num cuota Observacion
>> 22/02/2010      Cuota   300,000                 02/02/2010      1/4
>> debito automatico
>> 22/02/2010      Cuota   200,000                 02/04/2010      2/4
>> debito automatico
>> 22/02/2010      Cuota   200,000                 02/05/2010      3/4
>> debito automatico
>> 22/02/2010      Cuota   200,000                 02/06/2010      4/4
>> debito automatico
>> TOTAL                                  1,000,000             0
>>
>> Lo que pasa es que el campo CREDITO, como no se le cargo nada tiene
>> valores nulos, ahora bien mi pregunta es la siguiente:
>> Como le digo a un bloque, que si es nulo el campo, lo tome como 0 (cero).
>> Algo así como
>>
>> @clientes_movimientos.sum {|cm| ifnull(cm.debito,0)}
>> @clientes_movimientos.sum {|cm| ifnull(cm.credito,0)}
>>
>> Obviamente la funcion ifnull no es de ruby que yo sepa. Pero cuando le
>> coloco de la forma que aprendí es decir así:
>> @clientes_movimientos.sum  {|cm| cm.debito}
>> @clientes_movimientos.sum {|cm| cm.credito}
>>
>> Me lanza un error ya que cm.credito es nulo y no lo puede sumar.
>>
>> Alguien sabe una función que transforme un valor nulo aquí en por ejemplo
>> 0 (cero).
>>
>> Desde ya gracias...
>>
>> Néstor R.
>>
>>
>>
>> _______________________________________________
>> Ruby mailing list
>> [email protected]
>> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>>
>
>
>
> --
> Pablo Marrero
> Tel: 099 927 566
>
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
>


-- 
Diego Torres
LIFIA - Laboratorio de Investigación y Formación en Informática Avanzada
Facultad de Informática - Universidad Nacional de La Plata
Calles 50 y 115 La Plata - 1900 Argentina
Phone: +54 221 4228252 Ext: 221
Personal Web Page: http://www.lifia.info.unlp.edu.ar/en/dtorres.htm
e-mail: diego.torres[at]lifia.info.unlp.edu.ar
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a