Thursday, May 9, 2013

Voucher.java

package com.epis.action.cashbook;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.validator.DynaValidatorActionForm;

import com.epis.action.CommonServiceAction;
import com.epis.bean.cashbook.BankBook;
import com.epis.bean.cashbook.BankMasterInfo;
import com.epis.bean.cashbook.VoucherDetails;
import com.epis.bean.cashbook.VoucherInfo;
import com.epis.services.cashbook.BankMasterService;
import com.epis.services.cashbook.VoucherService;
import com.epis.utilities.Log;
import com.epis.utilities.StringUtility;
import com.epis.utilities.UserTracking;

public class Voucher extends CommonServiceAction {
   
    /**
     * Method search
     *
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return ActionForward
     */   
   
    public ActionForward search(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) {
        ActionMessages errors = (ActionMessages)request.getAttribute("org.apache.struts.action.ERROR");
        this.setStation(request,response);
        try {
            if(errors == null)
                errors = new ActionMessages();
            DynaValidatorActionForm dyna = (DynaValidatorActionForm) form;
            VoucherInfo info = new VoucherInfo();
            BeanUtils.copyProperties(info,dyna);
            request.setAttribute("VoucherList", VoucherService.getInstance().search(info));
            HttpSession session = request.getSession();
            session.setAttribute("finYearList", VoucherService.getInstance().getFinYears());
        } catch (IllegalAccessException e) {
            errors.add("search",new ActionMessage("errors",e.getMessage()));
        } catch (InvocationTargetException e) {
            errors.add("search",new ActionMessage("errors",e.getMessage()));
        } catch (Exception e) {
            errors.add("search",new ActionMessage("errors",e.getMessage()));
        }
        saveErrors(request,errors);
        return mapping.getInputForward();
    }
   
    /**
     * Method fwdtoNew
     *
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return ActionForward
     * @throws Exception
     */
    public ActionForward fwdtoNew(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) {
        DynaValidatorActionForm dyna = (DynaValidatorActionForm)form;
        String voucherType = (String) dyna.get("voucherType");
        ActionForward forward = null;
        this.setStation(request,response);
        if("P".equals(voucherType)){
            System.out.println("---1---------");
            forward = mapping.findForward("paymentNew");
        }else if("R".equals(voucherType)){
            System.out.println("----2--------");
            forward = mapping.findForward("receiptNew");
        }
        return forward;
    }
   
    Log log = new Log(Voucher.class);

    public void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        VoucherInfo info = new VoucherInfo();
        VoucherService service = VoucherService.getInstance();
        log.info("Voucher : service : Entering Method");
        String dispatch = null;
        String redirect = null;
        this.setStation(request,response);
        if ("addVoucher".equals(request.getParameter("method"))) {
            HttpSession session = request.getSession();
            info.setAccountNo(request.getParameter("accountNo"));
            info.setBankName(request.getParameter("bankName"));
            info.setFinYear(request.getParameter("year"));
            info.setTrustType(request.getParameter("trusttype"));
            info.setVoucherType(request.getParameter("vouchertype"));
            info.setEnteredBy((String) session.getAttribute("userid"));
            info.setPreparedBy((String) session.getAttribute("userid"));
            info.setDetails(request.getParameter("voucherDetails"));
            info.setPreparedDt(request.getParameter("prepDate"));
            info.setDesignation(request.getParameter("edesignation"));
            info.setTransactionType(request.getParameter("transType"));
            String detailRecords[] = request
                    .getParameterValues("detailRecords");
            int length = detailRecords.length;
            List voucherDts = new ArrayList();
            VoucherDetails voucherDt = null;
            for (int i = 0; i < length; i++) {
                StringTokenizer st = new StringTokenizer(detailRecords[i], "|");
                if (st.hasMoreTokens()) {
                    voucherDt = new VoucherDetails();
                    voucherDt.setAccountHead(st.nextToken());
                    voucherDt.setMonthYear(st.nextToken());
                    voucherDt.setDetails(st.nextToken());
                    voucherDt.setChequeNo(st.nextToken());
                    voucherDt.setDebit(Double.parseDouble(st.nextToken()));
                    voucherDt.setCredit(Double.parseDouble(st.nextToken()));
                }
                voucherDts.add(voucherDt);
            }
            info.setVoucherDetails(voucherDts);
            if (!"C".equals(info.getVoucherType())) {
                info.setPartyType(request.getParameter("party"));
                if ("E".equals(info.getPartyType())) {
                    info.setEmpPartyCode(request.getParameter("epfid"));
                    // added three new parameters cpfaccno, region, pfidFlag
                    info.setEmpCpfacno(request.getParameter("ecpfacno"));
                    info.setEmpRegion(request.getParameter("eregion"));
                    info.setPfidFlag(request.getParameter("pfidFlag"));
                    info.setEmployeeName(request.getParameter("eName"));
                    log.info("pfid flag" + info.getPfidFlag());

                } else if ("P".equals(info.getPartyType())) {
                    info.setEmpPartyCode(request.getParameter("pName"));
                }
            } else {
                info.setPartyType("B");
                info.setEmpPartyCode(request.getParameter("contraAccountNo"));
            }
            try {
                String keyNo = service.addVoucherRecord(info);
                redirect = "./jsp/cashbook/voucher/Voucher.jsp?accountNo="
                        + info.getAccountNo() + "&&type="
                        + info.getVoucherType() + "&&keyNo=" + keyNo+"&&bankName="+info.getBankName();
            } catch (Exception e) {
                log.printStackTrace(e);
            }
        } else if ("searchRecords".equals(request.getParameter("method"))) {
            info.setBankName(request.getParameter("bankName") == null ? ""
                    : request.getParameter("bankName"));
            info.setFinYear(request.getParameter("year") == null ? "" : request
                    .getParameter("year"));
            info
                    .setVoucherType(request.getParameter("voucherType") == null ? ""
                            : request.getParameter("voucherType"));
            info.setPartyType(request.getParameter("partyType") == null ? ""
                    : request.getParameter("partyType"));
            info.setAccountNo(request.getParameter("accountNo") == null ? ""
                    : request.getParameter("accountNo"));
            info.setKeyNo(request.getParameter("keyNo") == null ? "" : request
                    .getParameter("keyNo"));
            info.setVoucherNo(request.getParameter("vNo") == null ? ""
                    : request.getParameter("vNo"));
            info.setVoucherDt(request.getParameter("vDate") == null ? ""
                    : request.getParameter("vDate"));
            info.setPreparedDt(request.getParameter("prepDate") == null ? ""
                    : request.getParameter("prepDate"));
            try {
                List dataList = service.searchRecords(info, "");
                request.setAttribute("dataList", dataList);
            } catch (Exception e) {
                log.printStackTrace(e);
            }
            dispatch = "./jsp/cashbook/voucher/VoucherSearch.jsp?keyNo="
                    + info.getKeyNo() + "&&type=" + info.getVoucherType();
        } else if ("getReport".equals(request.getParameter("method"))) {
            info.setKeyNo(request.getParameter("keyNo"));
            try {
                info = service.getReport(info);
                request.setAttribute("info", info);
                if ("approve".equals(request.getParameter("type"))) {
                    BankBook book = service.getOpenBalance(info.getAccountNo(),
                            "01/Jan/9999");
                    request.setAttribute("book", book);
                    dispatch = "./jsp/cashbook/voucher/ApprovedVoucher.jsp";
                } else if ("Contra".equals(info.getVoucherType())) {
                    dispatch = "./jsp/cashbook/voucher/ContraVoucherReport.jsp";
                }    else {
                    dispatch = "./jsp/cashbook/voucher/VoucherReport.jsp";
                }
            } catch (Exception e) {
                log.printStackTrace(e);
            }
        } else if ("getVoucherAppRecords"
                .equals(request.getParameter("method"))) {
            info.setBankName(request.getParameter("bankName") == null ? ""
                    : request.getParameter("bankName"));
            info.setFinYear(request.getParameter("year") == null ? "" : request
                    .getParameter("year"));
            info
                    .setVoucherType(request.getParameter("voucherType") == null ? ""
                            : request.getParameter("voucherType"));
            info.setPartyType(request.getParameter("partyType") == null ? ""
                    : request.getParameter("partyType"));
            info.setPreparedDt(request.getParameter("prepDate") == null ? ""
                    : request.getParameter("prepDate"));
            info.setKeyNo(request.getParameter("prepNo") == null ? "" : request
                    .getParameter("prepNo"));
            try {

                List dataList = service.searchRecords(info, "A");
                request.setAttribute("dataList", dataList);
                dispatch = "./jsp/cashbook/voucher/VoucherApproval.jsp";
                if (request.getParameter("type") != null
                        && "app".equals(request.getParameter("type"))) {
                    dispatch += "?&&keyNo="
                            + (request.getParameter("keyNo") == null ? ""
                                    : request.getParameter("keyNo"));
                }
            } catch (Exception e) {
                log.printStackTrace(e);
            }
        } else if ("getVoucherApproval".equals(request.getParameter("method"))) {

            try {
                info.setVoucherDt(request.getParameter("voucherDate"));
                info.setKeyNo(request.getParameter("keyNo"));
                info.setCheckedBy(request.getParameter("checkedby"));
                info.setApprovedBy(request.getParameter("approved"));
                info.setStatus(request.getParameter("approvalstatus"));
                service.updateApprovalVoucher(info);
                redirect = "./Voucher?method=getVoucherAppRecords&&keyNo="
                        + info.getKeyNo() + "&&type=app";
            } catch (Exception e) {
                log.printStackTrace(e);
            }
        } else if ("getBankBook".equals(request.getParameter("method"))) {
            // info.setAccountNo(request.getParameter("accountNo"));
            info.setAccountHead(request.getParameter("accountCode"));
            info.setFromDate(request.getParameter("fromDate"));
            info.setToDate(request.getParameter("toDate"));
            try {
                List book = service.getBankBook(info);
                request.setAttribute("book", book);
                if(request.getParameter("reportType").equals("html")){
                    dispatch = "./jsp/cashbook/bankbook/BankBook.jsp?fromDate="
                        + info.getFromDate() + "&&toDate=" + info.getToDate()+"&&accountHead="+
                        info.getAccountHead()+"&&reportType="+request.getParameter("reportType")
                        +"&&reportbal="+request.getParameter("reportbal");
                }else{
                    dispatch = "./jsp/cashbook/bankbook/BankBookExcel.jsp?fromDate="
                        + info.getFromDate() + "&&toDate=" + info.getToDate()+"&&accountHead="+
                        info.getAccountHead()+"&&reportType="+request.getParameter("reportType")
                        +"&&reportbal="+request.getParameter("reportbal");
                }
            } catch (Exception e) {
                log.printStackTrace(e);
            }
        } else if ("editVoucher".equals(request.getParameter("method"))) {

            info.setKeyNo(request.getParameter("keyNo"));
            try {
                VoucherInfo editInfo = service.getReport(info);
                request.setAttribute("einfo", editInfo);
                if ("C".equals(request.getParameter("type"))) {
                    dispatch = "./jsp/cashbook/voucher/ContraVoucherEdit.jsp";
                } else {
                    dispatch = "./jsp/cashbook/voucher/VoucherEdit.jsp";
                }
            } catch (Exception e) {
                log.printStackTrace(e);
            }

        } else if ("updateVoucher".equals(request.getParameter("method"))) {
            info.setKeyNo(request.getParameter("keyNo"));
            info.setAccountNo(request.getParameter("accountNo"));
            info.setFinYear(request.getParameter("year"));
            info.setTrustType(request.getParameter("trusttype"));
            info.setDetails(request.getParameter("voucherDetails"));
            info.setVoucherType(request.getParameter("vouchertype"));
            info.setTransactionType(request.getParameter("transType"));
            String detailRecords[] = request
                    .getParameterValues("detailRecords");
            int length = detailRecords.length;
            List voucherDts = new ArrayList();
            VoucherDetails voucherDt = null;
            for (int i = 0; i < length; i++) {
                StringTokenizer st = new StringTokenizer(detailRecords[i], "|");
                if (st.hasMoreTokens()) {
                    voucherDt = new VoucherDetails();
                    voucherDt.setAccountHead(st.nextToken());
                    voucherDt.setMonthYear(st.nextToken());
                    voucherDt.setDetails(st.nextToken());
                    voucherDt.setChequeNo(st.nextToken());
                    voucherDt.setDebit(Double.parseDouble(st.nextToken()));
                    voucherDt.setCredit(Double.parseDouble(st.nextToken()));
                }
                voucherDts.add(voucherDt);
            }
            info.setVoucherDetails(voucherDts);
            if (!"C".equals(info.getVoucherType())) {
                info.setPartyType(request.getParameter("party"));
                if ("E".equals(info.getPartyType())) {
                    info.setEmpPartyCode(request.getParameter("epfid"));
                } else if ("P".equals(info.getPartyType())) {
                    info.setEmpPartyCode(request.getParameter("pName"));
                }
            } else {
                info.setPartyType("B");
                info.setEmpPartyCode(request.getParameter("contraAccountNo"));
            }
            try {
                service.updateVoucherRecord(info);
                redirect = "./Voucher?method=searchRecords&&accountNo="
                        + info.getAccountNo() + "&&voucherType="
                        + request.getParameter("vouchertype");
            } catch (Exception e) {
                log.printStackTrace(e);
            }
        } else if ("deleteVoucher".equals(request.getParameter("method"))) {
            String error = null;
            try {
                String keynos = request.getParameter("keynos");
                String codes = keynos.substring(0, keynos.length() - 1);
                service.deleteVoucher(codes);
                HttpSession session = request.getSession();
                UserTracking.write((String) session.getAttribute("userid"),
                        codes, "D", "CB", "", "Voucher");
            } catch (Exception e) {
                e.printStackTrace();
                error = "Record(s) can not be deleted";
            }
            info.setKeyNo("");
            List dataList;
            try {
                dataList = service.searchRecords(info, "A");
                request.setAttribute("dataList", dataList);
            } catch (Exception e) {
                e.printStackTrace();
            }
            dispatch = "./jsp/cashbook/voucher/VoucherApproval.jsp?error="
                    + error;
        } else if ("addContraRecord".equals(request.getParameter("method"))) {
            HttpSession session = request.getSession();
            info.setAccountNo(request.getParameter("accountNo"));
            info.setFinYear(request.getParameter("year"));
            info.setTrustType(request.getParameter("trusttype"));
            info.setVoucherType("C");
            info.setEnteredBy((String) session.getAttribute("userid"));
            info.setPreparedBy((String) session.getAttribute("userid"));
            info.setDetails(request.getParameter("voucherDetails"));
            info.setPreparedDt(request.getParameter("prepDate"));
            VoucherDetails voucherDt = new VoucherDetails();
            voucherDt.setAccountHead(request.getParameter("accHead"));
            voucherDt.setMonthYear(request.getParameter("monthYear"));
            voucherDt.setDetails(request.getParameter("details"));
            voucherDt.setChequeNo(request.getParameter("chequeNo"));
            voucherDt.setCredit(Double.parseDouble(request.getParameter("amount")));
            List voucherDts = new ArrayList();
            voucherDts.add(voucherDt);
            info.setVoucherDetails(voucherDts);
            info.setPartyType("B");
            info.setEmpPartyCode(request.getParameter("contraAccountNo"));
            try {
                String keyNo = service.addVoucherRecord(info);
                redirect = "./Voucher?method=searchRecords&&accountNo="
                        + info.getAccountNo() + "&&voucherType=C"+ "&&keyNo=" + keyNo;
            } catch (Exception e) {
                log.printStackTrace(e);
            }
        } else if ("getLedgerAccount".equals(request.getParameter("method"))) {
            info.setFromDate(request.getParameter("fromDate"));
            info.setToDate(request.getParameter("toDate"));
            info.setBankCode(request.getParameter("bankCode"));
            info.setTrustType(request.getParameter("trusttype"));
            info.setAccountHead(request.getParameter("accountCode"));
            info.setVoucherType(request.getParameter("voucherType"));
            try {
                List dataList = service.getLedgerAccount(info);
                request.setAttribute("book", dataList);
                dispatch = "./jsp/cashbook/voucher/LedgerAccount.jsp?fromDate"
                        + info.getFromDate() + "&&toDate=" + info.getToDate();
            } catch (Exception e) {
                log.printStackTrace(e);
            }
        } else if ("updateContraRecord".equals(request.getParameter("method"))) {
            HttpSession session = request.getSession();
            info.setKeyNo(request.getParameter("keyNo"));
            info.setAccountNo(request.getParameter("accountNo"));
            info.setFinYear(request.getParameter("year"));
            info.setTrustType(request.getParameter("trusttype"));
            info.setVoucherType("C");
            info.setEnteredBy((String) session.getAttribute("userid"));
            info.setPreparedBy((String) session.getAttribute("userid"));
            info.setDetails(request.getParameter("voucherDetails"));
            info.setPreparedDt(request.getParameter("prepDate"));
            VoucherDetails voucherDt = null;
            voucherDt = new VoucherDetails();
            voucherDt.setAccountHead(request.getParameter("accHead"));
            voucherDt.setMonthYear(request.getParameter("monthYear"));
            voucherDt.setDetails(request.getParameter("details"));
            voucherDt.setChequeNo(request.getParameter("chequeNo"));
            voucherDt.setDebit(Double.parseDouble(request
                    .getParameter("amount")));
            List voucherDts = new ArrayList();
            voucherDts.add(voucherDt);
            info.setVoucherDetails(voucherDts);
            info.setPartyType("B");
            info.setEmpPartyCode(request.getParameter("contraAccountNo"));
            try {
                service.updateVoucherRecord(info);
                redirect = "./Voucher?method=searchRecords&&accountNo="
                        + info.getAccountNo() + "&&voucherType="
                        + request.getParameter("vouchertype");
            } catch (Exception e) {
                log.printStackTrace(e);
            }
        }else if ("getGenLedger".equals(request.getParameter("method"))) {
            info.setFromDate(request.getParameter("fromDate"));
            info.setToDate(request.getParameter("toDate"));
            info.setTrustType(request.getParameter("trusttype"));
            info.setAccountHead(request.getParameter("accHead"));
            info.setVoucherType(request.getParameter("voucherType"));           
            try {
                Map ledger = service.getGenLedger(info);
                Map accounts = service.getAccountHeadsOpeningBalance(info);
                request.setAttribute("ledger", ledger);
                request.setAttribute("accounts",accounts );
                if("html".equals(request.getParameter("reportType"))){
                    dispatch = "./jsp/cashbook/generalledger/GenLedgerAccount.jsp?fromDate"
                        + info.getFromDate() + "&&toDate=" + info.getToDate()
                        +"&&reportContent="+request.getParameter("reportContent")
                        +"&&reportbal="+request.getParameter("reportbal");
                }else{
                    dispatch = "./jsp/cashbook/generalledger/GenLedgerAccountExcel.jsp?fromDate"
                        + info.getFromDate() + "&&toDate=" + info.getToDate()
                        +"&&reportContent="+request.getParameter("reportContent")
                        +"&&reportbal="+request.getParameter("reportbal");
                }
            } catch (Exception e) {
                log.printStackTrace(e);
            }
        }else if ("getTrialBalance".equals(request.getParameter("method"))) {
            info.setFromDate(request.getParameter("fromDate"));
            info.setToDate(request.getParameter("toDate"));
            info.setTrustType(request.getParameter("trusttype"));
            String reportType = request.getParameter("reportType");
            try {
                Map trialbalance = service.getTrialBalance(info);
                request.setAttribute("trailBalance", trialbalance);
                if("html".equals(request.getParameter("report"))){
                    dispatch = "./jsp/cashbook/trialbalance/TrialBalance.jsp?fromDate"
                        + info.getFromDate() + "&&toDate=" + info.getToDate()+"&&reportType="+reportType;
                }else {
                    dispatch = "./jsp/cashbook/trialbalance/TrialBalanceExcel.jsp?fromDate"
                        + info.getFromDate() + "&&toDate=" + info.getToDate()+"&&reportType="+reportType;
                }
            } catch (Exception e) {
                log.printStackTrace(e);
            }
        }else if ("ePaymentSearch".equals(request.getParameter("method"))) {
            info.setFromDate(request.getParameter("fromDate"));
            info.setToDate(request.getParameter("toDate"));
            try {
                List voucherList = service.ePaymentSearch(info);
                request.setAttribute("voucherList", voucherList);
                dispatch = "./jsp/cashbook/voucher/EPaymentTransfersParam.jsp";
            } catch (Exception e) {
                log.printStackTrace(e);
            }
        }else if ("ePaymentTransfers".equals(request.getParameter("method"))) {
            String keynos = request.getParameter("keynos");
            try {
                service.ePaymentTransfers(keynos);
                dispatch = "./Voucher?method=ePaymentSearch";
            } catch (Exception e) {
                log.printStackTrace(e);
            }
        }
        log.info("Voucher : service : Leaving Method");
        if (redirect != null) {
            response.sendRedirect(redirect);
        } else if (dispatch != null) {
            RequestDispatcher rd = request.getRequestDispatcher(dispatch);
            rd.forward(request, response);
        }
    }
   
    public ActionForward unreconcileParam(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) {       
        ActionForward forward = null;   
        this.setStation(request,response);
        forward = mapping.findForward("unreconcileParam");   
        try {
            request.setAttribute("banks",BankMasterService.getInstance().search(new BankMasterInfo()));
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }       
        return forward;
    }
   
    public ActionForward bankReconciliation(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)
    {
        ActionForward forward=null;
        forward=mapping.findForward("bankreconcileStatement");
        this.setStation(request,response);
        try{
            request.setAttribute("banks",BankMasterService.getInstance().search(new BankMasterInfo()));
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        return forward;
    }
   
    public ActionForward bankreconcileReport(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)
    {
        ActionForward forward=null;
       
        VoucherInfo info=new VoucherInfo();
        BankBook book=new BankBook();
        String voucherDt=StringUtility.checknull(request.getParameter("voucherDt"));   
        String accountNo =StringUtility.checknull(request.getParameter("accountNumber"));
        this.setStation(request,response);
       
        ActionMessages errors = new ActionMessages();
        forward = mapping.findForward("bankreconcileReport");
        try {
            info=VoucherService.getInstance().bankreconcileReport(voucherDt,accountNo);
            book=VoucherService.getInstance().getBankReconcileOpenBalance(accountNo,voucherDt);
            request.setAttribute("bankBook",book);
            request.setAttribute("voucherbean",info);
           
        } catch (Exception e) {
            errors.add("Report",new ActionMessage("errors",e.getMessage()));
        }
        saveErrors(request,errors);
       
       
        return forward;
    }
   
    public ActionForward unreconcileVouchers(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) {
        DynaValidatorActionForm dyna = (DynaValidatorActionForm) form;
        List voucherlist = new ArrayList();   
        String voucherDt=dyna.getString("voucherDt");   
        String accountNo = dyna.getString("accountNo");
        ActionMessages errors = new ActionMessages();
        ActionForward forward = mapping.findForward("unreconcileVouchers");
        this.setStation(request,response);
        try {
            voucherlist=VoucherService.getInstance().unreconcileVouchers(voucherDt,accountNo);
            request.setAttribute("voucherlist",voucherlist);
           
        } catch (Exception e) {
            errors.add("Report",new ActionMessage("errors",e.getMessage()));
        }
        saveErrors(request,errors);
       
        return forward;
    }
    public ActionForward genTextFile(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
        log.info("this is calling for text file creation...");
        String uploadpath=request.getSession().getServletContext().getRealPath("/")+""+"uploads\\BankFiles";
        log.info("uploadpath ::::"+uploadpath);
       
        String keyno=StringUtility.checknull(request.getParameter("keyno"));           
        String department=StringUtility.checknull(request.getParameter("department"));
        VoucherInfo infol=new VoucherInfo();
       
        VoucherInfo info2=new VoucherInfo();
        String message="";
        StringBuffer sb=new StringBuffer();
        try{
   
            infol.setPath(uploadpath);
            infol.setKeyNo(keyno);
            infol.setDepartment(department);
            info2=VoucherService.getInstance().generateTextFile(infol);
           
            String path=info2.getPath();
            String    filenames=path.toString();                
            log.info("filenames : "+filenames);
            response.setHeader("Content-Type", "text/plain");
            response.setHeader("Content-Length", String.valueOf(new File(path).length()));
            response.setHeader("Content-Disposition","attachment;filename="+filenames);
            log.info("Path : "+path);
            File file = new File(path);
            FileInputStream fileIn = new FileInputStream(file);
            ServletOutputStream out = response.getOutputStream();
                   
            byte[] outputByte = new byte[1024];
//                copy binary contect to output stream
            while(fileIn.read(outputByte, 0, 1024) != -1)
            {
                out.write(outputByte, 0, 1024);
            }
            fileIn.close();
           
            //message=info1.getPath();
            out.close();
        }
       
        catch(Exception e)
        {
            System.out.println(e.toString());
            e.printStackTrace();
        }   
        return mapping.findForward("null");
    }

}

No comments:

Post a Comment