package com.idega.block.reports.business;
import java.sql.SQLException;
import java.util.List;
import java.util.Vector;
import com.idega.block.category.data.CategoryEntityBMPBean;
import com.idega.block.reports.data.Report;
import com.idega.block.reports.data.ReportCategory;
import com.idega.block.reports.data.ReportItem;
import com.idega.data.EntityFinder;
/**
* Title:
* Description:
* Copyright: Copyright (c) 2001
* Company: idega multimedia
* @author <a href="mailto:aron@idega.is">aron@idega.is</a>
* @version 1.0
*/
public class ReportEntityHandler {
public ReportEntityHandler(){}
public static ReportCategory[] findCategorys(int iCatId){
try {
if(iCatId > 0){
return (ReportCategory[]) ((com.idega.block.reports.data.ReportCategoryHome)com.idega.data.IDOLookup.getHomeLegacy(ReportCategory.class)).createLegacy().findAllByColumn(CategoryEntityBMPBean.getColumnCategoryId(),iCatId);
}
else{
return new ReportCategory[0];
}
}
catch (SQLException ex) {
return new ReportCategory[0];
}
}
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 ReportItem[] findReportItems(int iCatId){
try {
if(iCatId > 0){
return (ReportItem[]) ((com.idega.block.reports.data.ReportItemHome)com.idega.data.IDOLookup.getHomeLegacy(ReportItem.class)).createLegacy().findAllByColumnOrdered(CategoryEntityBMPBean.getColumnCategoryId(),String.valueOf(iCatId),com.idega.block.reports.data.ReportItemBMPBean.getColumnNameDisplayOrder());
}
else{
return new ReportItem[0];
}
}
catch (SQLException ex) {
ex.printStackTrace();
return new ReportItem[0];
}
}
public static List listOfReports(int iCategoryId){
List L = null;
try {
L = EntityFinder.findAllByColumn(((com.idega.block.reports.data.ReportHome)com.idega.data.IDOLookup.getHomeLegacy(Report.class)).createLegacy(),CategoryEntityBMPBean.getColumnCategoryId(),iCategoryId );
}
catch (SQLException ex) {
ex.printStackTrace();
L = null;
}
return L;
}
public static Report[] findReports(int iCatId){
try {
if(iCatId > 0){
return (Report[]) ((com.idega.block.reports.data.ReportHome)com.idega.data.IDOLookup.getHomeLegacy(Report.class)).createLegacy().findAllByColumn(CategoryEntityBMPBean.getColumnCategoryId(),iCatId);
}
else{
return new Report[0];
}
}
catch (SQLException ex) {
return new Report[0];
}
}
public static ReportCondition[] getConditions(int iCategory){
ReportItem[] RI = findReportItems(iCategory);
ReportCondition[] RC = new ReportCondition[RI.length];
for (int i = 0; i < RI.length; i++) {
RC[i] = new ReportCondition(RI[i]);
}
return RC;
}
public static List listOfReportConditions(int iCategory){
List L = listOfReportItems(iCategory);
if(L!=null){
Vector V = new Vector();
java.util.Iterator I= L.iterator();
while(I.hasNext()) {
V.add(new ReportCondition((ReportItem)I.next()));
}
return V;
}
return null;
}
public static boolean saveReportItem(int catid,String name,String field,String table,
String joins,String jointables,String condtype,
String conddata,String condop,String entity,String info,boolean isFunction){
try {
if(catid > 0){
ReportItem ri = ((com.idega.block.reports.data.ReportItemHome)com.idega.data.IDOLookup.getHomeLegacy(ReportItem.class)).createLegacy();
ri.setCategoryId(catid);
ri.setName(name);
ri.setField(field);
ri.setMainTable(table);
ri.setJoin(joins);
ri.setJoinTables(jointables);
ri.setConditionType(condtype);
ri.setConditionData(conddata);
ri.setConditionOperator(condop);
ri.setEntity(entity);
ri.setInfo(info);
ri.setIsFunction(isFunction);
ri.insert();
return true;
}
else {
return false;
}
}
catch (Exception ex) {
ex.printStackTrace();
return false;
}
}
public static boolean updateReportItem(int id,int catid,String name,String field,String table,
String joins,String jointables,String condtype,
String conddata,String condop,String entity,String info,boolean isFunction){
try {
if(id > 0){
ReportItem ri = ((com.idega.block.reports.data.ReportItemHome)com.idega.data.IDOLookup.getHomeLegacy(ReportItem.class)).findByPrimaryKeyLegacy(id);
ri.setCategoryId(catid);
ri.setName(name);
ri.setField(field);
ri.setMainTable(table);
ri.setJoin(joins);
ri.setJoinTables(jointables);
ri.setConditionType(condtype);
ri.setConditionData(conddata);
ri.setConditionOperator(condop);
ri.setEntity(entity);
ri.setInfo(info);
ri.setIsFunction(isFunction);
ri.update();
return true;
}
else {
return false;
}
}
catch (Exception ex) {
ex.printStackTrace();
return false;
}
}
public static Report saveReport(String name,String info,String[] headers,String sql,int Category){
return saveReport(name,info,"",headers,sql,Category);
}
public static Report saveReport(String name,String info,String colinfo,String[] headers,String sql,int Category){
try {
Report r = ((com.idega.block.reports.data.ReportHome)com.idega.data.IDOLookup.getHomeLegacy(Report.class)).createLegacy();
r.setName(name);
r.setInfo(info);
r.setColInfo(colinfo);
r.setHeaders(headers );
r.setSQL(sql);
r.setCategoryId(Category);
r.insert();
return r;
}
catch (Exception ex) {
ex.printStackTrace();
return null;
}
}
public static Report updateReport(int id,String name,String info,String[] headers,String sql,int Category){
return updateReport(id,name,info,"",headers,sql,Category);
}
public static Report updateReport(int id,String name,String info,String colinfo,String[] headers,String sql,int Category){
try {
if(id != -1){
Report r = ((com.idega.block.reports.data.ReportHome)com.idega.data.IDOLookup.getHomeLegacy(Report.class)).findByPrimaryKeyLegacy(id);
r.setName(name);
r.setInfo(info);
r.setColInfo(colinfo);
r.setHeaders(headers );
r.setSQL(sql);
r.setCategoryId(Category);
r.update();
return r;
}
}
catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
public static boolean deleteReport(int id){
try {
Report r = ((com.idega.block.reports.data.ReportHome)com.idega.data.IDOLookup.getHomeLegacy(Report.class)).findByPrimaryKeyLegacy(id);
r.delete();
return true;
}
catch (Exception ex) {
ex.printStackTrace();
return false;
}
}
public static boolean deleteCategory(int id){
try {
ReportCategory rc = ((com.idega.block.reports.data.ReportCategoryHome)com.idega.data.IDOLookup.getHomeLegacy(ReportCategory.class)).findByPrimaryKeyLegacy(id);
rc.delete();
return true;
}
catch (Exception ex) {
ex.printStackTrace();
return false;
}
}
}