bean.StatementOfOperationsExport.java Source code

Java tutorial

Introduction

Here is the source code for bean.StatementOfOperationsExport.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package bean;

import com.liferay.faces.portal.context.LiferayFacesContext;
import com.liferay.portal.theme.ThemeDisplay;
import java.io.File;
import java.io.FileOutputStream;
import java.io.Serializable;
import java.util.Date;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Font;

/**
 *
 * @author misteam
 */
@ManagedBean
@RequestScoped
public class StatementOfOperationsExport implements Serializable {

    /**
     * Creates a new instance of StatementOfOperationsExport
     */
    public StatementOfOperationsExport() {
    }

    /*
     * properties
     */
    @ManagedProperty(value = "#{exportData}")
    private ExportData exportData;
    @ManagedProperty(value = "#{financialReportData}")
    private FinancialReportData financialReportData;
    @ManagedProperty(value = "#{statementOfOperationsData}")
    private StatementOfOperationsData statementOfOperationsData;
    @ManagedProperty(value = "#{dataConvert}")
    private DataConvert dataConvert;

    /*
     * getter setter
     */
    public ExportData getExportData() {
        return exportData == null ? exportData = new ExportData() : exportData;
    }

    public void setExportData(ExportData exportData) {
        this.exportData = exportData;
    }

    public FinancialReportData getFinancialReportData() {
        return financialReportData == null ? financialReportData = new FinancialReportData() : financialReportData;
    }

    public void setFinancialReportData(FinancialReportData financialReportData) {
        this.financialReportData = financialReportData;
    }

    public StatementOfOperationsData getStatementOfOperationsData() {
        return statementOfOperationsData == null ? statementOfOperationsData = new StatementOfOperationsData()
                : statementOfOperationsData;
    }

    public void setStatementOfOperationsData(StatementOfOperationsData statementOfOperationsData) {
        this.statementOfOperationsData = statementOfOperationsData;
    }

    public DataConvert getDataConvert() {
        return dataConvert == null ? dataConvert = new DataConvert() : dataConvert;
    }

    public void setDataConvert(DataConvert dataConvert) {
        this.dataConvert = dataConvert;
    }

    /*
     * methods
     */
    public void export0() {
        Integer columnNo;
        HSSFWorkbook workbook;
        HSSFSheet sheet;
        HSSFRow dataRow;
        HSSFCell cell;
        HSSFCellStyle cellStyle, boldStyle;
        HSSFFont font;

        ThemeDisplay themeDisplay = LiferayFacesContext.getInstance().getThemeDisplay();

        getExportData().createFolder(null, themeDisplay, "Statement of Operations Report", "DESCRIPTION");

        if (getExportData().getFilename() == null || getExportData().getFilename().length() == 0) {
            getExportData().setFilename("Default(" + new Date() + ")");
        }
        getExportData().setFilename(getExportData().getFilename().replace(":", ""));

        try {
            getExportData().setFilename(getExportData().getFilename().concat(".xls"));
            workbook = new HSSFWorkbook();

            cellStyle = workbook.createCellStyle();
            cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00"));

            font = workbook.createFont();
            font.setBoldweight(Font.BOLDWEIGHT_BOLD);

            boldStyle = workbook.createCellStyle();
            boldStyle.setFont(font);

            sheet = workbook.createSheet(
                    "Statement of Operations Report " + getFinancialReportData().getCurrentMonth() != null
                            ? getDataConvert().monthConvert(getFinancialReportData().getCurrentMonth()) + " "
                                    + getFinancialReportData().getCurrentYear().toString()
                            : getFinancialReportData().getCurrentYear().toString());

            dataRow = sheet.createRow((short) 0);
            columnNo = 0;
            cell = dataRow.createCell(columnNo++);
            cell.setCellValue("STATEMENT OF OPERATIONS");
            cell.setCellStyle(boldStyle);

            dataRow = sheet.createRow(dataRow.getRowNum() + 1);
            columnNo = 0;
            cell = dataRow.createCell(columnNo++);
            cell.setCellValue(getFinancialReportData().getCurrentMonth() != null
                    ? getDataConvert().monthConvert(getFinancialReportData().getCurrentMonth()) + " "
                            + getFinancialReportData().getCurrentYear().toString()
                    : getFinancialReportData().getCurrentYear().toString());
            cell.setCellStyle(boldStyle);

            dataRow = sheet.createRow(dataRow.getRowNum() + 1);

            dataRow = sheet.createRow(dataRow.getRowNum() + 1);
            columnNo = 0;
            cell = dataRow.createCell(columnNo++);
            cell.setCellValue("INCOME");
            cell.setCellStyle(boldStyle);
            //                      

            for (int i = 0; i < getStatementOfOperationsData().getIncomeLevel2().size(); i++) {
                dataRow = sheet.createRow(dataRow.getRowNum() + 1);
                columnNo = 0;

                cell = dataRow.createCell(columnNo++);
                cell.setCellValue(getStatementOfOperationsData().getIncomeLevel2().get(i).getAcctTitle());
                cell.setCellStyle(boldStyle);
                //                
                dataRow.createCell(columnNo++).setCellValue("");
                if (getStatementOfOperationsData().getIncomeLevel3().get(i).isEmpty()) {
                    cell = dataRow.createCell(columnNo++);
                    cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
                    cell.setCellValue(
                            getStatementOfOperationsData().getIncomeLevel2().get(i).getAmount().doubleValue());
                    cell.setCellStyle(cellStyle);
                }
                //                
                for (int ii = 0; ii < getStatementOfOperationsData().getIncomeLevel3().get(i).size(); ii++) {
                    dataRow = sheet.createRow(dataRow.getRowNum() + 1);
                    columnNo = 0;

                    dataRow.createCell(columnNo++).setCellValue("");
                    dataRow.createCell(columnNo++).setCellValue(
                            getStatementOfOperationsData().getIncomeLevel3().get(i).get(ii).getAcctTitle());

                    cell = dataRow.createCell(columnNo++);
                    cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
                    cell.setCellValue(getStatementOfOperationsData().getIncomeLevel3().get(i).get(ii).getAmount()
                            .doubleValue());
                    cell.setCellStyle(cellStyle);

                    if (ii == getStatementOfOperationsData().getIncomeLevel3().get(i).size() - 1) {
                        dataRow = sheet.createRow(dataRow.getRowNum() + 1);
                        columnNo = 0;

                        dataRow.createCell(columnNo++).setCellValue("");

                        cell = dataRow.createCell(columnNo++);
                        cell.setCellValue("TOTAL");
                        cell.setCellStyle(boldStyle);

                        cell = dataRow.createCell(columnNo++);
                        cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
                        cell.setCellValue(
                                getStatementOfOperationsData().getIncomeLevel2Total().get(i).doubleValue());
                        cell.setCellStyle(cellStyle);
                    }
                }

                if (i == getStatementOfOperationsData().getIncomeLevel2().size() - 1) {
                    dataRow = sheet.createRow(dataRow.getRowNum() + 1);
                    columnNo = 0;

                    cell = dataRow.createCell(columnNo++);
                    cell.setCellValue("TOTAL INCOME");
                    cell.setCellStyle(boldStyle);

                    dataRow.createCell(columnNo++).setCellValue("");

                    cell = dataRow.createCell(columnNo++);
                    cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
                    //                    cell.setCellValue(getStatementOfOperationsData().getIncomeLevel2Total().get(i).doubleValue());
                    cell.setCellValue(getStatementOfOperationsData().getIncomeLevel1Total().doubleValue());
                    cell.setCellStyle(cellStyle);
                }
            }

            //            
            dataRow = sheet.createRow(dataRow.getRowNum() + 1);

            dataRow = sheet.createRow(dataRow.getRowNum() + 1);
            columnNo = 0;
            cell = dataRow.createCell(columnNo++);
            cell.setCellValue("EXPENSES");
            cell.setCellStyle(boldStyle);
            //            

            for (int i = 0; i < getStatementOfOperationsData().getExpensesLevel2().size(); i++) {
                dataRow = sheet.createRow(dataRow.getRowNum() + 1);
                columnNo = 0;

                cell = dataRow.createCell(columnNo++);
                cell.setCellValue(getStatementOfOperationsData().getExpensesLevel2().get(i).getAcctTitle());
                cell.setCellStyle(boldStyle);
                //                
                dataRow.createCell(columnNo++).setCellValue("");
                if (getStatementOfOperationsData().getExpensesLevel3().get(i).isEmpty()) {
                    cell = dataRow.createCell(columnNo++);
                    cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
                    cell.setCellValue(
                            getStatementOfOperationsData().getExpensesLevel2().get(i).getAmount().doubleValue());
                    cell.setCellStyle(cellStyle);
                }
                //                             
                for (int ii = 0; ii < getStatementOfOperationsData().getExpensesLevel3().get(i).size(); ii++) {
                    dataRow = sheet.createRow(dataRow.getRowNum() + 1);
                    columnNo = 0;

                    dataRow.createCell(columnNo++).setCellValue("");
                    dataRow.createCell(columnNo++).setCellValue(
                            getStatementOfOperationsData().getExpensesLevel3().get(i).get(ii).getAcctTitle());

                    cell = dataRow.createCell(columnNo++);
                    cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
                    cell.setCellValue(getStatementOfOperationsData().getExpensesLevel3().get(i).get(ii).getAmount()
                            .doubleValue());
                    cell.setCellStyle(cellStyle);

                    if (ii == getStatementOfOperationsData().getExpensesLevel3().get(i).size() - 1) {
                        dataRow = sheet.createRow(dataRow.getRowNum() + 1);
                        columnNo = 0;

                        dataRow.createCell(columnNo++).setCellValue("");

                        cell = dataRow.createCell(columnNo++);
                        cell.setCellValue("TOTAL");
                        cell.setCellStyle(boldStyle);

                        cell = dataRow.createCell(columnNo++);
                        cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
                        cell.setCellValue(
                                getStatementOfOperationsData().getExpensesLevel2Total().get(i).doubleValue());
                        cell.setCellStyle(cellStyle);
                    }
                }

                if (i == getStatementOfOperationsData().getExpensesLevel2().size() - 1) {
                    dataRow = sheet.createRow(dataRow.getRowNum() + 1);
                    columnNo = 0;

                    cell = dataRow.createCell(columnNo++);
                    cell.setCellValue("TOTAL EXPENSES");
                    cell.setCellStyle(boldStyle);

                    dataRow.createCell(columnNo++).setCellValue("");

                    cell = dataRow.createCell(columnNo++);
                    cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
                    //                    cell.setCellValue(getStatementOfOperationsData().getExpensesLevel2Total().get(i).doubleValue());
                    cell.setCellValue(getStatementOfOperationsData().getExpenseLevel1Total().doubleValue());
                    cell.setCellStyle(cellStyle);
                }
            }

            FileOutputStream fileOutputStream = new FileOutputStream(getExportData().getFilename());
            workbook.write(fileOutputStream);
            fileOutputStream.close();

            getExportData().fileUploadByDL(getExportData().getFilename(), "Statement of Operations Report",
                    themeDisplay, null);

            File file = new File(getExportData().getFilename());
            if (file.exists()) {
                file.delete();
            }
        } catch (Exception e) {
            System.out.print("statementOfOperationsExport().export0() " + e);
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error",
                    "An error occurred while generating excel file.");
            FacesContext.getCurrentInstance().addMessage(null, message);
        }
    }

}