package com.idega.block.reports.business;
import java.sql.SQLException;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import com.idega.block.category.business.CategoryFinder;
import com.idega.block.category.data.CategoryEntityBMPBean;
import com.idega.block.category.data.ICCategory;
import com.idega.block.reports.data.Report;
import com.idega.block.reports.data.ReportCategory;
import com.idega.block.reports.data.ReportColumnInfo;
import com.idega.block.reports.data.ReportInfo;
import com.idega.block.reports.data.ReportItem;
import com.idega.core.component.data.ICObject;
import com.idega.core.component.data.ICObjectInstance;
import com.idega.data.EntityFinder;
import com.idega.data.GenericEntity;
import com.lowagie.text.PageSize;
import com.lowagie.text.Rectangle;
/**
* Title: idegaclasses
* Description:
* Copyright: Copyright (c) 2001
* Company: idega
* @author <a href="aron@idega.is">Aron Birkir</a>
* @version 1.0
*/
public class ReportFinder {
public ReportFinder() {
}
public static int countReportsInCategory(int iCategoryId){
try {
Report eReport = (Report)GenericEntity.getStaticInstance(Report.class);
return eReport.getNumberOfRecords(CategoryEntityBMPBean.getColumnCategoryId(),String.valueOf(iCategoryId));
}
catch (SQLException ex) {
}
return 0;
}
public static ICCategory getCategory(int iCategoryId){
return CategoryFinder.getInstance().getCategory(iCategoryId);
}
public static Report getReport(int iReportId){
return (Report) GenericEntity.getEntityInstance(Report.class,iReportId);
}
public static ReportInfo getReportInfo(int iReportInfoId){
return (ReportInfo) GenericEntity.getEntityInstance(ReportInfo.class,iReportInfoId);
}
public static ReportColumnInfo getReportColumnInfo(int iReportColumnInfoId){
return (ReportColumnInfo) GenericEntity.getEntityInstance(ReportColumnInfo.class,iReportColumnInfoId);
}
public static ReportColumnInfo getReportInfoFromReport(int iReportId){
try {
List l = EntityFinder.findAllByColumn(((com.idega.block.reports.data.ReportColumnInfoHome)com.idega.data.IDOLookup.getHomeLegacy(ReportColumnInfo.class)).createLegacy(),com.idega.block.reports.data.ReportColumnInfoBMPBean.getColumnReportId(),iReportId);
if(l!=null) {
return (ReportColumnInfo)l.get(0);
}
}
catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
public static int getObjectInstanceCategoryId(int iObjectInstanceId,boolean CreateNew){
return CategoryFinder.getInstance().getObjectInstanceCategoryId(iObjectInstanceId,CreateNew,((com.idega.block.reports.data.ReportCategoryHome)com.idega.data.IDOLookup.getHomeLegacy(ReportCategory.class)).createLegacy().getCategoryType());
}
public static int getObjectInstanceCategoryId(ICObjectInstance eObjectInstance){
return CategoryFinder.getInstance().getObjectInstanceCategoryId(eObjectInstance);
}
public static int getObjectInstanceCategoryId(int iObjectInstanceId){
return CategoryFinder.getInstance().getObjectInstanceCategoryId(iObjectInstanceId);
}
public static int getObjectInstanceIdFromCategoryId(int iCategoryId){
return CategoryFinder.getInstance().getObjectInstanceIdFromCategoryId(iCategoryId);
}
public static List listOfCategories(){
try {
return EntityFinder.findAll(((com.idega.block.reports.data.ReportCategoryHome)com.idega.data.IDOLookup.getHomeLegacy(ReportCategory.class)).createLegacy());
}
catch (SQLException ex) {
}
return null;
}
public static List listOfReports(int iCategoryId){
try {
return EntityFinder.findAllByColumn(((com.idega.block.reports.data.ReportHome)com.idega.data.IDOLookup.getHomeLegacy(Report.class)).createLegacy(),CategoryEntityBMPBean.getColumnCategoryId(),iCategoryId);
}
catch (Exception ex) {
}
return null;
}
public static List listOfEntityForObjectInstanceId(int instanceid){
return CategoryFinder.getInstance().listOfCategoryForObjectInstanceId(instanceid);
}
public static List listOfEntityForObjectInstanceId( ICObjectInstance obj){
return CategoryFinder.getInstance().listOfCategoryForObjectInstanceId(obj);
}
public static List listOfReportItems(int iCatId){
List L = null;
try {
L = EntityFinder.findAllByColumnOrdered(((com.idega.block.reports.data.ReportItemHome)com.idega.data.IDOLookup.getHomeLegacy(ReportItem.class)).createLegacy(),CategoryEntityBMPBean.getColumnCategoryId(),iCatId,com.idega.block.reports.data.ReportItemBMPBean.getColumnNameDisplayOrder());
}
catch (SQLException ex) {
ex.printStackTrace();
L = null;
}
return L;
}
public static List listOfDataClasses(){
try {
return EntityFinder.findAllByColumn(((com.idega.core.component.data.ICObjectHome)com.idega.data.IDOLookup.getHomeLegacy(ICObject.class)).createLegacy(),com.idega.core.component.data.ICObjectBMPBean.getObjectTypeColumnName(),com.idega.core.component.data.ICObjectBMPBean.COMPONENT_TYPE_DATA);
}
catch (SQLException ex) {
}
return null;
}
public static List listOfReportColumnInfo(int iReportId){
try {
return EntityFinder.findAllByColumnOrdered(((com.idega.block.reports.data.ReportColumnInfoHome)com.idega.data.IDOLookup.getHomeLegacy(ReportColumnInfo.class)).createLegacy(),com.idega.block.reports.data.ReportColumnInfoBMPBean.getColumnReportId(),iReportId,com.idega.block.reports.data.ReportColumnInfoBMPBean.getColumnColNumber());
}
catch (Exception ex) {
}
return null;
}
public static Map mapOfReportColumnInfoByColumnNumber(int iReportId){
List L = listOfReportColumnInfo(iReportId) ;
if(L!=null){
Iterator iter = L.iterator();
ReportColumnInfo info;
Hashtable H = new Hashtable(L.size());
while (iter.hasNext()) {
info = (ReportColumnInfo) iter.next();
if(!H.containsKey(new Integer(info.getColumnNumber()))) {
H.put(new Integer(info.getColumnNumber()),info);
}
}
return H;
}
return null;
}
public static List listOfReportInfo(int iCategoryId,String type){
try {
ReportInfo info = ((com.idega.block.reports.data.ReportInfoHome)com.idega.data.IDOLookup.getHomeLegacy(ReportInfo.class)).createLegacy();
StringBuffer sql = new StringBuffer("select * from ").append(com.idega.block.reports.data.ReportInfoBMPBean.getEntityTableName());
sql.append(" where ").append(CategoryEntityBMPBean.getColumnCategoryId()).append(" = ").append(iCategoryId);
sql.append(" and ").append(com.idega.block.reports.data.ReportInfoBMPBean.getColumnType()).append(" = '").append(type).append("'");
return EntityFinder.findAll(info,sql.toString());
}
catch (Exception ex) {
}
return null;
}
public static List listOfReportInfo(String type){
try {
ReportInfo info = ((com.idega.block.reports.data.ReportInfoHome)com.idega.data.IDOLookup.getHomeLegacy(ReportInfo.class)).createLegacy();
StringBuffer sql = new StringBuffer("select * from ").append(com.idega.block.reports.data.ReportInfoBMPBean.getEntityTableName());
if(type!=null) {
sql.append(" where ").append(com.idega.block.reports.data.ReportInfoBMPBean.getColumnType()).append(" = '").append(type).append("'");
}
else {
sql.append(" order by ").append(com.idega.block.reports.data.ReportInfoBMPBean.getColumnType());
}
return EntityFinder.findAll(info,sql.toString());
}
catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
public static List listOfRelatedReportInfo(Report eReport){
try {
return EntityFinder.findRelated(eReport,((com.idega.block.reports.data.ReportInfoHome)com.idega.data.IDOLookup.getHomeLegacy(ReportInfo.class)).createLegacy());
}
catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
/*
public static List listOfReportColumnInfo(int iReportId){
try {
ReportInfo info = ((com.idega.block.reports.data.ReportInfoHome)com.idega.data.IDOLookup.getHomeLegacy(ReportInfo.class)).createLegacy();
StringBuffer sql = new StringBuffer("select * from ").append(info.getEntityTableName());
sql.append(" where ").append(info.getColumnCategoryId()).append(" = ").append(iCategoryId);
sql.append(" and ").append(info.getColumnType()).append(" = '").append(type).append("'");
return EntityFinder.findAll(info,sql.toString());
}
catch (Exception ex) {
}
return null;
}
*/
public static String[] pageSizes = { "A4","A3","A2" };
public static Rectangle getPageSize(String page){
if(page.equals("A4")) {
return PageSize.A4;
}
else if(page.equals("A3")) {
return PageSize.A3;
}
else if(page.equals("A2")) {
return PageSize.A2;
}
else {
return PageSize.A4;
}
}
}