/* * $Id:$ * * Copyright (C) 2002 Idega hf. All Rights Reserved. * * This software is the proprietary information of Idega hf. * Use is subject to license terms. * */ package is.idega.idegaweb.campus.block.allocation.data; import javax.ejb.FinderException; import com.idega.block.building.data.ApartmentSubcategory; import com.idega.block.building.data.ApartmentSubcategoryHome; import com.idega.data.IDOLookup; import com.idega.data.IDOLookupException; /** * A wrapper class for the resultSet for select * from v_allocation_view * * @author palli * @version 1.0 */ public class AllocationView { protected int _catId; protected int _subcatId; protected int _total; protected int _avail; protected int _choice1; protected int _choice2; protected int _choice3; /** * Constructor for AllocationView. * * @param catId The apartment category id * @param subcatId The apartment subcategory id * @param totalAprt The total number of rentable apartments in with these id's * @param availAprt The number of available apartments, ie free to rent out * @param choice1 The number of applications on the waiting list with this apartmenttype as choice 1 * @param choice2 The number of applications on the waiting list with this apartmenttype as choice 2 * @param choice3 The number of applications on the waiting list with this apartmenttype as choice 3 */ public AllocationView(int catId, int subcatId, int totalAprt, int availAprt, int choice1, int choice2, int choice3) { _catId = catId; _subcatId = subcatId; _total = totalAprt; _avail = availAprt; _choice1 = choice1; _choice2 = choice2; _choice3 = choice3; } public int getCategoryId() { return _catId; } public int getSubcategoryId() { return _subcatId; } public int getTotalNumberOfApartments() { return _total; } public int getNumberOfFreeApartments() { return _avail; } public int getNumberOfChoice1() { return _choice1; } public int getNumberOfChoice2() { return _choice2; } public int getNumberOfChoice3() { return _choice3; } public ApartmentSubcategory getSubcategory() { if (_subcatId > 0) { try { ApartmentSubcategoryHome home = (ApartmentSubcategoryHome) IDOLookup.getHome(ApartmentSubcategory.class); ApartmentSubcategory subcat = home.findByPrimaryKey(new Integer(_subcatId)); return subcat; } catch (IDOLookupException e) { e.printStackTrace(); } catch (FinderException e) { e.printStackTrace(); } } return null; } } /* create view v_available_aprt (bu_aprt_sub_cat_id, total_aprt) as select s.bu_aprt_sub_cat_id, count(*) from bu_apartment a,bu_aprt_type t,bu_aprt_sub_cat s where a.bu_aprt_type_id = t.bu_aprt_type_id and t.bu_aprt_subcat = s.bu_aprt_sub_cat_id group by s.bu_aprt_sub_cat_id; // create view v_rented_aprt (bu_aprt_sub_cat_id, rented_aprt) as select s.bu_aprt_sub_cat_id, count(con.cam_contract_id) from bu_apartment a left join cam_contract con on a.bu_apartment_id = con.bu_apartment_id //and con.status = 'S', bu_aprt_type t, bu_aprt_sub_cat s and con.status in ('S', 'T', 'E', 'U') and con.rented = 'Y', bu_aprt_type t, bu_aprt_sub_cat s where a.bu_aprt_type_id = t.bu_aprt_type_id and t.bu_aprt_subcat = s.bu_aprt_sub_cat_id group by s.bu_aprt_sub_cat_id; // create view v_waiting_lists (bu_aprt_sub_cat_id, choice, applied) as select s.bu_aprt_sub_cat_id, wl.choice_number, count(distinct wl.cam_waiting_list_id) from bu_aprt_sub_cat s left join cam_waiting_list wl on s.bu_aprt_sub_cat_id = wl.bu_subcategory_id group by s.bu_aprt_sub_cat_id, wl.choice_number; // create view v_waiting_list1 (bu_aprt_sub_cat_id, applied1) as select s.bu_aprt_sub_cat_id, sum(wl.applied) from bu_aprt_sub_cat s left join v_waiting_lists wl on s.bu_aprt_sub_cat_id = wl.bu_aprt_sub_cat_id and wl.choice = 1 group by s.bu_aprt_sub_cat_id; // create view v_waiting_list2 (bu_aprt_sub_cat_id, applied2) as select s.bu_aprt_sub_cat_id, sum(wl.applied) from bu_aprt_sub_cat s left join v_waiting_lists wl on s.bu_aprt_sub_cat_id = wl.bu_aprt_sub_cat_id and wl.choice = 2 group by s.bu_aprt_sub_cat_id; // create view v_waiting_list3 (bu_aprt_sub_cat_id, applied3) as select s.bu_aprt_sub_cat_id, sum(wl.applied) from bu_aprt_sub_cat s left join v_waiting_lists wl on s.bu_aprt_sub_cat_id = wl.bu_aprt_sub_cat_id and wl.choice = 3 group by s.bu_aprt_sub_cat_id; // create view v_allocation_view2 (bu_aprt_cat_id, bu_aprt_sub_cat_id, total_aprt, avail_aprt, choice1, choice2, choice3) as select s.aprt_cat, s.bu_aprt_sub_cat_id, avail.total_aprt, avail.total_aprt - rented.rented_aprt, l1.applied1, l2.applied2, l3.applied3 from bu_aprt_sub_cat s, v_available_aprt avail, v_rented_aprt rented, v_waiting_list1 l1, v_waiting_list2 l2, v_waiting_list3 l3 where avail.bu_aprt_sub_cat_id = s.bu_aprt_sub_cat_id and rented.bu_aprt_sub_cat_id = s.bu_aprt_sub_cat_id and l1.bu_aprt_sub_cat_id = s.bu_aprt_sub_cat_id and l2.bu_aprt_sub_cat_id = s.bu_aprt_sub_cat_id and l3.bu_aprt_sub_cat_id = s.bu_aprt_sub_cat_id */