package is.idega.idegaweb.campus.block.finance.business;
import is.idega.idegaweb.campus.data.BuildingAccountEntry;
import java.util.List;
import com.idega.block.finance.data.Account;
import com.idega.data.EntityFinder;
import com.idega.data.IDOFinderException;
/**
*
* @author <a href="mailto:aron@idega.is">aron@idega.is</a>
* @version 1.0
*/
public class CampusAccountFinder {
public static List getSSNAccounts(String ssn, String type) {
StringBuffer sql = new StringBuffer("select f.* ");
sql.append(" from cam_contract c,fin_account f,app_applicant a ");
sql.append(" where a.app_applicant_id = c.app_applicant_id ");
sql.append(" and f.ic_user_id = c.ic_user_id ");
sql.append(" and f.account_type = ").append(type);
sql.append(" and a.ssn = '").append(ssn).append("'");
try {
return EntityFinder.getInstance().findAll(Account.class,
sql.toString());
} catch (IDOFinderException ex) {
ex.printStackTrace();
}
return null;
}
public static List getAccountEntryReport(int building_id,
int account_key_id, java.sql.Timestamp from, java.sql.Timestamp to) {
StringBuffer sql = new StringBuffer(" select ");
sql.append(" b.bu_building_id building_id, ");
sql.append(" b.name building_name, ");
sql.append(" k.fin_acc_key_id key_id, ");
sql.append(" k.name key_name, ");
sql.append(" k.info key_info, ");
sql.append(" sum(e.total) total, ");
sql.append(" count(acc.fin_account_id) number ");
sql.append(" from ");
sql.append(" bu_apartment a,bu_building b,bu_floor f, ");
sql
.append(" cam_contract c,fin_account acc,fin_acc_entry e,fin_acc_key k ");
sql.append(" where b.bu_building_id = f.bu_building_id ");
sql.append(" and f.bu_floor_id = a.bu_floor_id ");
sql.append(" and a.bu_apartment_id = c.bu_apartment_id ");
sql.append(" and c.ic_user_id = acc.ic_user_id ");
sql.append(" and e.fin_account_id = acc.fin_account_id ");
sql.append(" and k.fin_acc_key_id = e.fin_acc_key_id ");
boolean and = false;
if (building_id > 0) {
sql.append(" and ");
sql.append(" b.bu_building_id ");
sql.append(" = ");
sql.append(building_id);
and = true;
}
if (account_key_id > 0) {
sql.append(" and ");
sql.append(" k.fin_acc_key_id ");
sql.append(" = ").append(account_key_id);
}
if (from != null) {
sql.append(" and e.payment_date >= '");
sql.append(from.toString());
sql.append("'");
}
if (to != null) {
sql.append(" and e.payment_date <= '");
sql.append(to.toString());
sql.append("'");
}
sql
.append(" group by b.bu_building_id,b.name,k.fin_acc_key_id,k.name,k.info ");
sql.append(" order by b.bu_building_id ");
try {
return EntityFinder.getInstance().findAll(
BuildingAccountEntry.class, sql.toString());
} catch (IDOFinderException ex) {
ex.printStackTrace();
System.err.println(sql.toString());
}
return null;
}
}