/*
 * GestionLlamadas.java
 *
 * Created on 20 de noviembre de 2007, 12:54
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package modelo;

import java.sql.*;
import java.util.*;
import javabeans.*;
import java.text.*;
public class GestionLlamadas {
   Datos dt;
   public GestionLlamadas(String driver, String cadenacon) {
        dt=new Datos(driver,cadenacon);
   }
   //obtiene todas las llamadas asociadas a
   //un determinado tel�fono
   public ArrayList<LlamadaBean> getTodasLlamadasTelefono(int telefono){
       String query = "select * from llamadas where ";
       query+="fktelefono="+telefono;
       return getLlamadas(query,telefono); 
   } 
   
   //metodo de apoyo al anterior
   private ArrayList<LlamadaBean> getLlamadas(String sql, int telefono){
        ArrayList<LlamadaBean> llamadas=new ArrayList<LlamadaBean>();
        try{
         Connection cn=dt.getConexion();
         Statement st =cn.createStatement();
         ResultSet rs = st.executeQuery(sql); 
         while(rs.next()){
             //para cada llamada asociada al tel�fono crea
             //un javabean LlamadaBean y lo rellena con los datos 
             //de la misma
             LlamadaBean llamada=new LlamadaBean();
             llamada.setTelefono(telefono);
             llamada.setDestino(rs.getInt("destino"));
             llamada.setDuracion(rs.getInt("duracion"));
             llamada.setTarifa(this.getTarifa(rs.getInt("fkidtipotarifa")));
             llamada.setCoste(rs.getDouble("coste"));
             llamada.setFecha(rs.getString("fecha"));
             llamadas.add(llamada);    
         }
         dt.cierraConexion(cn);
        }
        catch(Exception e){
             e.printStackTrace();
        }
        finally{
            return llamadas;
        }    
   }
   //recupera el nombre de una tarifa en la tabla de
   //tarifas a partir de su identificador
   private String getTarifa(int id){
       String tarifa=null;
       try{
         Connection cn=dt.getConexion();
         String query = "select nombretarifa from tarifas ";
         query +="where idtipotarifa="+id;
         Statement st =cn.createStatement();
         ResultSet rs = st.executeQuery(query);
         if(rs.next()){
             tarifa=rs.getString("nombretarifa");
         }
         dt.cierraConexion(cn);
       }
       catch(Exception e){
            e.printStackTrace();
       }
       finally{
           return tarifa;
       }
   }
}
