package com.cari.voip.keyboard.soft.model;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
import com.cari.voip.keyboard.soft.model.switchUsers.SwitchUsersSession;
public class cdrFactory {
public static String getQuerryString(String start_time,String end_time,String id){
String sql = "SELECT * FROM cdr";
boolean firstWhere = true;
if(start_time != null){
String start_time_t = start_time.trim();
if(start_time_t != null && start_time_t.length() > 0){
if(firstWhere){
firstWhere = false;
sql = sql.concat(" WHERE");
} else {
sql = sql.concat(" AND");
}
sql = sql.concat(" start_stamp>='"+start_time_t+"'");
}
}
if(end_time != null){
String end_time_t = end_time.trim();
if(end_time_t != null && end_time_t.length() > 0){
if(firstWhere){
firstWhere = false;
sql = sql.concat(" WHERE");
} else {
sql = sql.concat(" AND");
}
sql = sql.concat(" start_stamp<='"+end_time_t+"'");
}
}
if(id != null){
String user = id.trim();
if(user != null && user.length() > 0){
if(firstWhere){
firstWhere = false;
sql = sql.concat(" WHERE");
} else {
sql = sql.concat(" AND");
}
sql = sql.concat(" caller_id_number='"+user+"'");
}
}
sql = sql.concat(" order by caller_id_number,start_stamp");
return sql;
}
public static String getDeldeledString(String start_time,String end_time,String id){
String sql = "DELETE FROM cdr";
boolean firstWhere = true;
if(start_time != null){
String start_time_t = start_time.trim();
if(start_time_t != null && start_time_t.length() > 0){
if(firstWhere){
firstWhere = false;
sql = sql.concat(" WHERE");
} else {
sql = sql.concat(" AND");
}
sql = sql.concat(" start_stamp>='"+start_time_t+"'");
}
}
if(end_time != null){
String end_time_t = end_time.trim();
if(end_time_t != null && end_time_t.length() > 0){
if(firstWhere){
firstWhere = false;
sql = sql.concat(" WHERE");
} else {
sql = sql.concat(" AND");
}
sql = sql.concat(" start_stamp<='"+end_time_t+"'");
}
}
if(id != null){
String user = id.trim();
if(user != null && user.length() > 0){
if(firstWhere){
firstWhere = false;
sql = sql.concat(" WHERE");
} else {
sql = sql.concat(" AND");
}
sql = sql.concat(" caller_id_number='"+user+"'");
}
}
return sql;
}
public static String getDispatcherFailQuerryString(){
String sql = "SELECT * FROM cdr WHERE flags=0 AND context_extension='dispatcher' AND hangup_cause<>'SUCCESS'";
return sql;
}
public static boolean checkAllDispatcherFail(SwitchUsersSession session) throws Exception{
String sql = "UPDATE cdr SET flags=1 WHERE flags=0 AND context_extension='dispatcher' AND hangup_cause<>'SUCCESS'";
Connection con = session.getDBConnection();
Statement st = con.createStatement();
boolean ret = st.execute(sql);
st.close();
return ret;
}
public static boolean deldeled(SwitchUsersSession session,String sql) throws Exception{
Connection con = session.getDBConnection();
Statement st = con.createStatement();
boolean ret = st.execute(sql);
st.close();
return ret;
}
public static List getCDR(SwitchUsersSession session,String sql) throws Exception{
List recordings = new LinkedList();
Connection con = session.getDBConnection();
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
while(rs.next()){
cdr rec = new cdr();
rec.caller_id_name = rs.getString("caller_id_name");
rec.caller_id_number = rs.getString("caller_id_number");
rec.destination_number = rs.getString("destination_number");
rec.dialed_extension = rs.getString("dialed_extension");
rec.context_extension = rs.getString("context_extension");
rec.start_stamp = rs.getString("start_stamp");
rec.billsec = rs.getString("billsec");
rec.hangup_cause = rs.getString("hangup_cause");
recordings.add(rec);
}
rs.close();
st.close();
return recordings;
}
}