bean.SlReportExport.java Source code

Java tutorial

Introduction

Here is the source code for bean.SlReportExport.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.math.BigDecimal;
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 SlReportExport implements Serializable {

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

    /*
     * properties
     */
    @ManagedProperty(value = "#{exportData}")
    private ExportData exportData;
    @ManagedProperty(value = "#{financialReportData}")
    private FinancialReportData financialReportData;
    @ManagedProperty(value = "#{slReportData}")
    private SlReportData slReportData;
    @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 SlReportData getSlReportData() {
        return slReportData == null ? slReportData = new SlReportData() : slReportData;
    }

    public void setSlReportData(SlReportData slReportData) {
        this.slReportData = slReportData;
    }

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

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

    /*
     * methods
     */
    public String exportDate() {
        String stringOutput = "";

        try {
            if (getSlReportData().getMonth() == 1) {
                stringOutput = "JANUARY";
            } else if (getSlReportData().getMonth() == 2) {
                stringOutput = "FEBRUARY";
            } else if (getSlReportData().getMonth() == 3) {
                stringOutput = "MARCH";
            } else if (getSlReportData().getMonth() == 4) {
                stringOutput = "APRIL";
            } else if (getSlReportData().getMonth() == 5) {
                stringOutput = "MAY";
            } else if (getSlReportData().getMonth() == 6) {
                stringOutput = "JUNE";
            } else if (getSlReportData().getMonth() == 7) {
                stringOutput = "JULY";
            } else if (getSlReportData().getMonth() == 8) {
                stringOutput = "AUGUST";
            } else if (getSlReportData().getMonth() == 9) {
                stringOutput = "SEPTEMBER";
            } else if (getSlReportData().getMonth() == 10) {
                stringOutput = "OCTOBER";
            } else if (getSlReportData().getMonth() == 11) {
                stringOutput = "NOVEMBER";
            } else if (getSlReportData().getMonth() == 12) {
                stringOutput = "DECEMBER";
            }

            stringOutput = stringOutput + " " + getSlReportData().getYear();

            return stringOutput;
        } catch (NullPointerException e) {
            return "";
        }
    }

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

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

        getExportData().createFolder(null, themeDisplay, "SL 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("SL Report " + exportDate());

            dataRow = sheet.createRow((short) 0);
            columnNo = 0;
            cell = dataRow.createCell(columnNo++);
            cell.setCellValue("SL REPORT");
            cell.setCellStyle(boldStyle);

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

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

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

            columnNo = 1;
            cell = dataRow.createCell(columnNo++);
            cell.setCellValue("Account Title");
            cell.setCellStyle(boldStyle);

            columnNo = 2;
            cell = dataRow.createCell(columnNo++);
            cell.setCellValue("Journal Type");
            cell.setCellStyle(boldStyle);

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

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

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

            for (int i = 0; i < getSlReportData().getSlReport().size(); i++) {
                dataRow = sheet.createRow(dataRow.getRowNum() + 1);

                //DATE
                columnNo = 0;
                cell = dataRow.createCell(columnNo++);
                //                cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
                cell.setCellValue((Date) getSlReportData().getSlReport().get(i)[0]);
                cell.setCellStyle(cellStyle);
                //                
                dataRow.createCell(columnNo++).setCellValue("");

                //ACCOUNT TITLE
                columnNo = 1;
                cell = dataRow.createCell(columnNo++);
                cell.setCellValue((String) getSlReportData().getSlReport().get(i)[1]);
                cell.setCellStyle(cellStyle);

                //JOURNAL TYPE
                columnNo = 2;
                cell = dataRow.createCell(columnNo++);
                cell.setCellValue((String) getSlReportData().getSlReport().get(i)[2]);
                cell.setCellStyle(cellStyle);

                //DEBIT
                columnNo = 3;
                cell = dataRow.createCell(columnNo++);
                cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
                cell.setCellValue(((BigDecimal) getSlReportData().getSlReport().get(i)[3]).doubleValue());
                cell.setCellStyle(cellStyle);

                //CREDIT 
                columnNo = 4;
                cell = dataRow.createCell(columnNo++);
                cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
                cell.setCellValue(((BigDecimal) getSlReportData().getSlReport().get(i)[4]).doubleValue());
                cell.setCellStyle(cellStyle);

                //BALANCE
                columnNo = 5;
                cell = dataRow.createCell(columnNo++);
                cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
                cell.setCellValue(((BigDecimal) getSlReportData().getSlReport().get(i)[5]).doubleValue());
                cell.setCellStyle(cellStyle);

                //                if (i == getSlReportData().getSlReport().size() - 1) {
                //                    dataRow = sheet.createRow(dataRow.getRowNum() + 1);
                //                    dataRow = sheet.createRow(dataRow.getRowNum() + 1);
                //                    columnNo = 0;
                //
                //                    cell = dataRow.createCell(columnNo++);
                //                    cell.setCellValue("TOTAL:");
                //                    cell.setCellStyle(boldStyle);
                //
                //                    dataRow.createCell(columnNo++).setCellValue("");
                //
                //                    columnNo = 3;
                //
                //                    cell = dataRow.createCell(columnNo++);
                //                    cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
                //                    cell.setCellValue(getDataConvert().convertAmount(getTrialBalanceData().getTrialBalanceDebitTotal()));
                //                    cell.setCellStyle(boldStyle);
                //
                //                    columnNo = 4;
                //
                //                    cell = dataRow.createCell(columnNo++);
                //                    cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
                //                    cell.setCellValue(getDataConvert().convertAmount(getTrialBalanceData().getTrialBalanceCreditTotal()));
                //                    cell.setCellStyle(boldStyle);
                //                }
            }
            FileOutputStream fileOutputStream = new FileOutputStream(getExportData().getFilename());
            workbook.write(fileOutputStream);
            fileOutputStream.close();

            getExportData().fileUploadByDL(getExportData().getFilename(), "SL Report", themeDisplay, null);

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

}