Example usage for com.lowagie.text Element ALIGN_CENTER

List of usage examples for com.lowagie.text Element ALIGN_CENTER

Introduction

In this page you can find the example usage for com.lowagie.text Element ALIGN_CENTER.

Prototype

int ALIGN_CENTER

To view the source code for com.lowagie.text Element ALIGN_CENTER.

Click Source Link

Document

A possible value for paragraph alignment.

Usage

From source file:QMSMultiQuoteController.java

License:Open Source License

private ArrayList doPDFGenerationForQuoteGroup(ArrayList mainDtl, HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    String[] contents = null;/*from  w w w.j a  v a 2s.com*/
    String[] levels = null;
    String[] aligns = null;
    String[] headFoot = null;
    Table content = null;
    String[] contactPersons = null;
    String contactName = null;
    ArrayList contactList = new ArrayList();
    ArrayList contactEmailList = new ArrayList();
    ArrayList contactFaxList = new ArrayList();
    ArrayList returnList = new ArrayList();
    ArrayList sentEmailsList = new ArrayList();
    ArrayList unsentEmailsList = new ArrayList();
    ArrayList sentFaxList = new ArrayList();
    ArrayList unsentFaxList = new ArrayList();
    ArrayList filesDOBList = new ArrayList();
    ArrayList filesList = new ArrayList();
    HttpSession session = null;

    try {
        //System.out.println("PDF Generation Startd----------------------------------->");
        MultiQuoteFinalDOB finalDOB = null;
        ESupplyDateUtility eSupplyDateUtility = new ESupplyDateUtility();
        MultiQuoteHeader headerDOB = null;
        MultiQuoteMasterDOB masterDOB = null;
        CostingMasterDOB costingMasterDOB = null;
        CostingChargeDetailsDOB detailsDOB = null;
        CostingLegDetailsDOB legDetails = null;
        CostingRateInfoDOB rateDetailsDOB = null;
        ArrayList rateDetails = new ArrayList();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        String formMailId = "";
        String to_emailIds = "";
        String to_FaxIds = "";
        String faxMailIds = "";
        Document document = new Document(PageSize.A4);
        String PDF_FILE_NAME = "Approved.pdf";
        document.addTitle("Approved Report");
        document.addSubject("Report PDF");
        document.addKeywords("Test, Key Words");
        document.addAuthor("DHL");
        document.addCreator("Auto Generated through 4S DHL");
        document.addCreationDate();
        PdfWriter writer = PdfWriter.getInstance(document, baos);
        document.open();
        Table partCountry;
        Chunk chk;
        Cell cellCountry;
        if (mainDtl != null && mainDtl.size() > 0) {

            finalDOB = (MultiQuoteFinalDOB) mainDtl.get(0);
            headerDOB = finalDOB.getHeaderDOB();
            masterDOB = finalDOB.getMasterDOB();
            formMailId = "webmaster@four-soft.com";
            ESupplyGlobalParameters loginbean = (ESupplyGlobalParameters) request.getSession()
                    .getAttribute("loginbean");
            eSupplyDateUtility.setPatternWithTime("DD-MONTH-YYYY");
            //eSupplyDateUtility.setPatternWithTime(loginbean.getUserPreferences().getDateFormat());

            String[] strDate = eSupplyDateUtility.getDisplayStringArray(headerDOB.getDateOfQuotation());
            String[] effDate = eSupplyDateUtility.getDisplayStringArray(headerDOB.getEffDate());
            String[] validDate;

            // System.out.println("Before Document Objec--------------------------->");

            //document.setMargins(10,10,10,10);

            Table mainT = new Table(8);
            mainT.setWidth(100);
            mainT.setBorderColor(Color.white);
            mainT.setPadding(1);
            mainT.setSpacing(0);

            Phrase headingPhrase = new Phrase("", FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.BLACK));
            Cell cellHeading = new Cell(headingPhrase);
            cellHeading.setBorderColor(new Color(255, 255, 255));
            cellHeading.setHorizontalAlignment(cellHeading.ALIGN_CENTER);
            cellHeading.setColspan(7);
            mainT.addCell(cellHeading);

            Cell imageCell = new Cell();
            java.net.URL url = getServletConfig().getServletContext().getResource("/images/DHLlogo.gif");
            Image img0 = Image.getInstance(url);
            imageCell.add(img0);
            imageCell.setHorizontalAlignment(imageCell.ALIGN_RIGHT);
            imageCell.setBorderWidth(0);
            imageCell.setNoWrap(true);
            mainT.addCell(imageCell);
            mainT.setAlignment(mainT.ALIGN_CENTER);
            document.add(mainT);

            //Default Header Content Starts
            contents = masterDOB.getDefaultContent();
            headFoot = masterDOB.getDefaultHeaderFooter();

            if (contents != null && contents.length > 0) {
                content = new Table(1);
                content.setOffset(5);
                content.setWidth(100);
                content.setPadding(1);
                content.setSpacing(0);
                content.setBackgroundColor(Color.WHITE);
                content.setBorderColor(Color.black);
                content.setBorderWidth(1f);
                Cell cellContent = null;
                chk = null;
                int hFLen = headFoot.length;
                for (int i = 0; i < hFLen; i++) {
                    if (headFoot[i] != null && "H".equalsIgnoreCase(headFoot[i])) {
                        chk = new Chunk(contents[i], FontFactory.getFont("ARIAL", 7, Font.ITALIC, Color.BLACK));
                        cellContent = new Cell(chk);
                        cellContent.setBorder(0);
                        cellContent.setLeading(6.0f);
                        cellContent.setBackgroundColor(Color.LIGHT_GRAY);
                        cellContent.setHorizontalAlignment(cellContent.ALIGN_LEFT);//Default content is left aligned                                    
                        content.addCell(cellContent);
                    }
                }
                document.add(content);
                contents = null;
                headFoot = null;
                content = null;
            }
            //End Default Header Content

            //System.out.println("After Heading --------------------------->");
        }
        String validUptoStr = null;
        String[] strDate = null;
        String[] effDate = null;
        String[] validDate = null;
        StringBuffer attentionTo = null;
        int mainDtlSize = mainDtl.size();
        for (int m = 0; m < mainDtlSize; m++) {

            finalDOB = (MultiQuoteFinalDOB) mainDtl.get(m);
            headerDOB = finalDOB.getHeaderDOB();
            masterDOB = finalDOB.getMasterDOB();
            //formMailId             =   "webmaster@four-soft.com";
            ESupplyGlobalParameters loginbean = (ESupplyGlobalParameters) request.getSession()
                    .getAttribute("loginbean");
            eSupplyDateUtility.setPatternWithTime("DD-MONTH-YYYY");
            //eSupplyDateUtility.setPatternWithTime(loginbean.getUserPreferences().getDateFormat());

            strDate = eSupplyDateUtility.getDisplayStringArray(headerDOB.getDateOfQuotation());
            effDate = eSupplyDateUtility.getDisplayStringArray(headerDOB.getEffDate());
            attentionTo = new StringBuffer("");

            if (headerDOB.getValidUpto() != null) {
                validDate = eSupplyDateUtility.getDisplayStringArray(headerDOB.getValidUpto());
                validUptoStr = validDate[0];
            }
            if (masterDOB.getCustContactNames() != null) {
                for (int i = 0; i < masterDOB.getCustContactNames().length; i++) {
                    // Logger.info(FILE_NAME,"headerDOB.getAttentionTo()::"+masterDOB.getCustomerContacts()[i]);
                    attentionTo.append(
                            masterDOB.getCustContactNames()[i] != null ? masterDOB.getCustContactNames()[i]
                                    : "");
                    if (i != masterDOB.getCustContactNames().length)
                        attentionTo.append(",");
                }
            }
            partCountry = new Table(1, 5);
            partCountry.setBorderWidth(0);
            partCountry.setWidth(100);
            partCountry.setBorderColor(Color.black);
            //partCountry.setBackgroundColor(Color.ORANGE);
            partCountry.setPadding(1);
            partCountry.setBorder(0);//Modified by silpa.p on 3-06-11
            partCountry.setSpacing(0);
            partCountry.setAutoFillEmptyCells(true);
            //partCountry.setTableFitsPage(true);
            partCountry.setAlignment(partCountry.ALIGN_CENTER);
            // partCountry.setWidth(100.0f);

            String shipmentMode = "";
            if (finalDOB.getMasterDOB().getShipmentMode() == 1)
                shipmentMode = "AIR FREIGHT PROPOSAL";
            else if (finalDOB.getMasterDOB().getShipmentMode() == 2)
                shipmentMode = "SEA FREIGHT PROPOSAL";
            else if (finalDOB.getMasterDOB().getShipmentMode() == 4)
                shipmentMode = "TRUCK FREIGHT PROPOSAL";

            chk = new Chunk(shipmentMode, FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setWidth("100");
            cellCountry.setBorderWidth(0);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(10.0f);
            cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
            partCountry.addCell(cellCountry);
            //@@Modified for the WPBN Change Request-71229
            if ("MY".equalsIgnoreCase(masterDOB.getCountryId())) {
                chk = new Chunk(headerDOB.getOriginCountry() + " TO " + headerDOB.getDestinationCountry(),
                        FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.RED));
                cellCountry = new Cell(chk);
                cellCountry.setWidth("100");
                cellCountry.setBorderWidth(0);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(10.0f);
                cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
                partCountry.addCell(cellCountry);

                chk = new Chunk(headerDOB.getCustomerName() == null ? "" : headerDOB.getCustomerName(),
                        FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.RED));
                cellCountry = new Cell(chk);
                cellCountry.setHeader(true);
                cellCountry.setWidth("100");
                cellCountry.setBorderWidth(0);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(10.0f);
                cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
                partCountry.addCell(cellCountry);

                chk = new Chunk("ATTENTION TO: " + toTitleCase(attentionTo.toString()),
                        FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.RED));
                cellCountry = new Cell(chk);
                cellCountry.setWidth("100");
                cellCountry.setBorderWidth(0);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(10.0f);
                cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
                partCountry.addCell(cellCountry);
            } else {
                chk = new Chunk(headerDOB.getOriginCountry() + " TO " + headerDOB.getDestinationCountry(),
                        FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.RED));
                cellCountry = new Cell(chk);
                cellCountry.setWidth("100");
                cellCountry.setBorderWidth(0);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(10.0f);
                cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
                partCountry.addCell(cellCountry);

                chk = new Chunk(headerDOB.getCustomerName() == null ? "" : headerDOB.getCustomerName(),
                        FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.RED));
                cellCountry = new Cell(chk);
                cellCountry.setHeader(true);
                cellCountry.setWidth("100");
                cellCountry.setBorderWidth(0);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(10.0f);
                cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
                partCountry.addCell(cellCountry);

                chk = new Chunk("ATTENTION TO: " + toTitleCase(attentionTo.toString()),
                        FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.RED));
                cellCountry = new Cell(chk);
                cellCountry.setWidth("100");
                cellCountry.setBorderWidth(0);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(10.0f);
                cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
                partCountry.addCell(cellCountry);
            }
            //@@WPBN Change Request-71229
            chk = new Chunk("QUOTE REFERENCE: " + masterDOB.getQuoteId(),
                    FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setWidth("100");
            cellCountry.setBorderWidth(0);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(10.0f);
            cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
            partCountry.addCell(cellCountry);
            chk = new Chunk("DATE OF QUOTATION: " + strDate[0],
                    FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setWidth("100");
            cellCountry.setBorderWidth(0);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(10.0f);
            cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
            partCountry.addCell(cellCountry);

            contents = masterDOB.getContentOnQuote();
            levels = masterDOB.getLevels();
            aligns = masterDOB.getAlign();
            headFoot = masterDOB.getHeaderFooter();

            if (contents != null && contents.length > 0) {
                content = new Table(1);
                content.setOffset(5);
                content.setWidth(100);
                content.setPadding(1);
                content.setSpacing(0);
                content.setBackgroundColor(Color.WHITE);
                content.setBorderColor(Color.black);
                content.setBorderWidth(1f);
                Cell cellContent = null;
                chk = null;
                int hFlen = headFoot.length;
                for (int i = 0; i < hFlen; i++) {
                    if (headFoot[i] != null && "H".equalsIgnoreCase(headFoot[i])) {
                        chk = new Chunk(contents[i], FontFactory.getFont("ARIAL", 7, Font.ITALIC, Color.BLACK));
                        cellContent = new Cell(chk);
                        cellContent.setBorder(0);
                        cellContent.setLeading(6.0f);
                        cellContent.setBackgroundColor(Color.LIGHT_GRAY);
                        if ("L".equalsIgnoreCase(aligns[i]))
                            cellContent.setHorizontalAlignment(cellContent.ALIGN_LEFT);
                        else if ("C".equalsIgnoreCase(aligns[i]))
                            cellContent.setHorizontalAlignment(cellContent.ALIGN_CENTER);
                        else if ("R".equalsIgnoreCase(aligns[i]))
                            cellContent.setHorizontalAlignment(cellContent.ALIGN_RIGHT);
                        content.addCell(cellContent);
                    }
                }
                document.add(content);
            }

            partCountry = new Table(2, 15);
            partCountry.setOffset(2);
            partCountry.setWidth(100);
            partCountry.setPadding(1);
            partCountry.setSpacing(0);
            partCountry.setBackgroundColor(Color.WHITE);
            partCountry.setBorderColor(Color.black);
            partCountry.setBorderWidth(1);
            //added by subrahmanyam for 182516
            partCountry.setTableFitsPage(true);
            partCountry.setCellsFitPage(true);
            //ended for 182516

            chk = new Chunk("SERVICE INFORMATION: ", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cellCountry = new Cell(chk);

            cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
            cellCountry.setBackgroundColor(Color.ORANGE);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            //@@ Commented by subrahmanyam for the enhancement #146970 & #146971            
            /*chk = new Chunk("QUOTE ID:"+new Long(masterDOB.getQuoteId()).toString(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
            cellCountry.setBackgroundColor(Color.ORANGE);
            cellCountry.setNoWrap(true); cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);*/
            //@@ Added by subrahmanyam for the enhancement #146970 & #146971            
            chk = new Chunk("QUOTE ID:" + masterDOB.getQuoteId(),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
            cellCountry.setBackgroundColor(Color.ORANGE);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            /** chk = new Chunk("Origin : ",FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
             cellCountry = new Cell(chk); 
             cellCountry.setBackgroundColor(Color.lightGray);
             cellCountry.setNoWrap(true); cellCountry.setLeading(8.0f);
             partCountry.addCell(cellCountry);
                     
             chk = new Chunk("   "+(headerDOB.getOriginLocName()!=null?headerDOB.getOriginLocName():""),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
             cellCountry = new Cell(chk);
             cellCountry.setNoWrap(true); cellCountry.setLeading(8.0f);
             partCountry.addCell(cellCountry);
                     
             chk = new Chunk("Destination : ",FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
             cellCountry = new Cell(chk); 
             cellCountry.setBackgroundColor(Color.lightGray);
             cellCountry.setNoWrap(true); cellCountry.setLeading(8.0f);
             partCountry.addCell(cellCountry);
                     
             chk = new Chunk("   "+(headerDOB.getDestLocName()!=null?headerDOB.getDestLocName():""),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
             cellCountry = new Cell(chk);
             cellCountry.setNoWrap(true); cellCountry.setLeading(8.0f);
             partCountry.addCell(cellCountry);**/

            chk = new Chunk("Customer : ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("   " + (headerDOB.getCustomerName() != null ? headerDOB.getCustomerName() : ""),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("Agent: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("   " + (headerDOB.getAgent() != null ? headerDOB.getAgent() : ""),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            //@@ Added by subrahmanyam for the WPBN ISSUE: 150460 ON 23/12/2008                

            //@@ Ended by subrahmanyam for the WPBN ISSUE: 150460 ON 23/12/2008  

            // @@Commented by subrahmanyam for the enhancement #148546 on 09/12/2008            
            /* chk = new Chunk("Routing: ",FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
             cellCountry = new Cell(chk);
             cellCountry.setBackgroundColor(Color.lightGray);
             cellCountry.setNoWrap(true); cellCountry.setLeading(8.0f);
             partCountry.addCell(cellCountry);          
             chk = new Chunk("   "+(headerDOB.getRouting()!=null?headerDOB.getRouting():""),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
             cellCountry = new Cell(chk);
             cellCountry.setNoWrap(true); cellCountry.setLeading(8.0f);
             partCountry.addCell(cellCountry);*/
            //@@ Ended by subrahmanyam for the enhanement #148546 on 09/12/2008 

            chk = new Chunk("Commodity or Product: ",
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            //chk = new Chunk("   "+(headerDOB.getCommodity()!=null?toTitleCase(headerDOB.getCommodity()):""),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));//commented by silpa.p on 21-06-11
            chk = new Chunk("   " + (headerDOB.getCommodity() != null ? (headerDOB.getCommodity()) : ""),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));//modified by silpa.p on 21-06-11
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("Type of service quoted: ",
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("   " + (headerDOB.getTypeOfService() != null ? headerDOB.getTypeOfService() : ""),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("Notes: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            //@@ Commented by subrahmanyam for WPBN ISSUE:-145510                                      
            /* chk = new Chunk("   "+(headerDOB.getNotes()!=null?headerDOB.getNotes().toUpperCase()+'\n'+"nnnnnnnnnn":""),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
            Commented by subrahmanyam for WPBN ISSUE:-145510   
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true); cellCountry.setLeading(8.0f);
                    
            partCountry.addCell(cellCountry);
            */
            //@@ Ended by subrahmanyam for WPBN ISSUE:-145510  
            //@@ Added by subrahmanyam for WPBN ISSUE:-145510  
            chk = new Chunk("   " + (headerDOB.getNotes() != null ? headerDOB.getNotes().toUpperCase() : " "),
                    FontFactory.getFont("ARIAL", 7, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);
            //@@ Ended by subrahmanyam for WPBN ISSUE:-145510   

            chk = new Chunk("Date Effective: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("   " + effDate[0], FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("Validity of Quote: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("   " + (validUptoStr != null ? validUptoStr : "VALID UNTIL FURTHER NOTICE"),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            document.add(partCountry);
            partCountry.complete();
        }
        int originCount = 0;
        int freightCount = 0;
        int destCount = 0;
        for (int m = 0; m < mainDtlSize; m++) {

            finalDOB = (MultiQuoteFinalDOB) mainDtl.get(m);
            // added by kiran.v on 16/09/2011
            //added by Anusha V.
            session = request.getSession();
            session.setAttribute("finalDOBPdf", finalDOB);
            headerDOB = finalDOB.getHeaderDOB();
            masterDOB = finalDOB.getMasterDOB();
            // System.out.println("After Page Country-------------------------------->");
            //Origin Charges

            costingMasterDOB = finalDOB.getCostingMasterDOB();

            ArrayList originCharges = (ArrayList) costingMasterDOB.getOriginList();

            int[] originIndices = finalDOB.getSelectedOriginChargesListIndices();
            int originChargesSize = 0;

            if (originCharges != null)
                originChargesSize = originCharges.size();
            else
                originChargesSize = 0;

            //Destination
            ArrayList destCharges = new ArrayList();
            int[] destIndices = finalDOB.getSelctedDestChargesListIndices();
            int destChargesSize = 0;
            if (destIndices != null)
                destChargesSize = destIndices.length;
            else
                destChargesSize = 0;

            ArrayList frieghtChargeDetails = new ArrayList();
            destCharges = (ArrayList) costingMasterDOB.getDestinationList();
            ArrayList costingLegDetailsList = new ArrayList();
            costingLegDetailsList = (ArrayList) costingMasterDOB.getCostingLegDetailsList();
            //////////////////////////////
            int orgChargSize = originCharges.size();
            for (int i = 0; i < orgChargSize; i++) {
                detailsDOB = (CostingChargeDetailsDOB) originCharges.get(i);
                rateDetails = (ArrayList) detailsDOB.getCostingRateInfoDOB();
                int rateDtlSize = rateDetails.size();
                for (int k = 0; k < rateDtlSize; k++) {
                    originCount++;
                }
            }
            int destChargSize = destCharges.size();
            for (int i = 0; i < destChargSize; i++) {
                detailsDOB = (CostingChargeDetailsDOB) destCharges.get(i);
                rateDetails = (ArrayList) detailsDOB.getCostingRateInfoDOB();
                int rateDtlSize = rateDetails.size();
                for (int k = 0; k < rateDtlSize; k++) {
                    destCount++;
                }
            }
            int costLegDtlSize = costingLegDetailsList.size();
            for (int s = 0; s < costLegDtlSize; s++) {
                legDetails = (CostingLegDetailsDOB) costingLegDetailsList.get(s);
                frieghtChargeDetails = (ArrayList) legDetails.getCostingChargeDetailList();
                int frtChargDtlSize = frieghtChargeDetails.size();
                for (int n = 0; n < frtChargDtlSize; n++) {
                    detailsDOB = (CostingChargeDetailsDOB) frieghtChargeDetails.get(n);
                    rateDetails = (ArrayList) detailsDOB.getCostingRateInfoDOB();
                    int rateDtlSize = rateDetails.size();
                    for (int j = 0; j < rateDtlSize; j++) {
                        freightCount++;
                    }
                }
            }

        }

        //////////////////////////////
        ArrayList charges = finalDOB.getLegDetails();
        int chargesSize = charges.size();
        if (originCount > 0) {
            Table chargeCountry = new Table(7, originCount);
            chargeCountry.setWidth(100);
            chargeCountry.setPadding(1);
            chargeCountry.setSpacing(0);
            chargeCountry.setOffset(25);
            chargeCountry.setBackgroundColor(Color.WHITE);
            chargeCountry.setBorderColor(Color.black);
            chargeCountry.setDefaultHorizontalAlignment(Element.ALIGN_CENTER);
            chargeCountry.setBorderWidth(1);
            //@@ Added by subrahmanyam for wpbn id: 181349 on 07-sep-09
            chargeCountry.setTableFitsPage(true);
            chargeCountry.setCellsFitPage(true);
            // @@ Ended for wpbn id: 181349 on 07-sep-09

            Cell cell;
            String wBslab = "";
            chk = new Chunk("QUOTEID ", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell = new Cell(chk);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setNoWrap(true);
            cell.setLeading(8.0f);
            //cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
            chargeCountry.addCell(cell);

            chk = new Chunk("CHARGE NAME ", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell = new Cell(chk);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setNoWrap(true);
            cell.setLeading(8.0f);
            // cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
            chargeCountry.addCell(cell);

            chk = new Chunk("BREAKPOINT", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell = new Cell(chk);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setNoWrap(true);
            cell.setLeading(8.0f);
            // cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
            chargeCountry.addCell(cell);

            chk = new Chunk("CURRENCY", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell = new Cell(chk);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setNoWrap(true);
            cell.setLeading(8.0f);
            // cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
            chargeCountry.addCell(cell);

            chk = new Chunk("RATE", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell = new Cell(chk);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setNoWrap(true);
            cell.setLeading(8.0f);
            // cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
            chargeCountry.addCell(cell);

            chk = new Chunk("BASIS", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell = new Cell(chk);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setNoWrap(true);
            cell.setLeading(8.0f);
            //cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
            chargeCountry.addCell(cell);

            chk = new Chunk("RATIO", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell = new Cell(chk);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setNoWrap(true);
            cell.setLeading(8.0f);
            //cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
            chargeCountry.addCell(cell);

            chk = new Chunk("ORIGIN CHARGES", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell = new Cell(chk);
            cell.setColspan(7);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setNoWrap(true);
            cell.setLeading(8.0f);
            // cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
            chargeCountry.addCell(cell);
            for (int m = 0; m < mainDtlSize; m++) {

                finalDOB = (MultiQuoteFinalDOB) mainDtl.get(m);
                headerDOB = finalDOB.getHeaderDOB();
                masterDOB = finalDOB.getMasterDOB();

                costingMasterDOB = finalDOB.getCostingMasterDOB();
                ArrayList originCharges = (ArrayList) costingMasterDOB.getOriginList();

                MultiQuoteCharges chargesDOB = null;
                ArrayList originChargeInfo = null;
                int originChargesInfoSize = 0;
                MultiQuoteChargeInfo chargeInfo = null;
                if (originCharges.size() > 0) {

                    int orgChargSize = originCharges.size();
                    for (int i = 0; i < orgChargSize; i++) {
                        detailsDOB = (CostingChargeDetailsDOB) originCharges.get(i);
                        rateDetails = (ArrayList) detailsDOB.getCostingRateInfoDOB();

                        originChargesInfoSize = rateDetails.size();
                        for (int k = 0; k < originChargesInfoSize; k++) {
                            CostingRateInfoDOB crateDetailsDOB = (CostingRateInfoDOB) rateDetails.get(k);
                            if (k == 0) {
                                //@@ Commented by subrahmanyam for the enhancement #146971 and #146970 on 10/12/2008                    
                                /*chk = new Chunk(new Long(masterDOB.getQuoteId()).toString(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                                cell = new Cell(chk);
                                //cell.setRowspan(originChargesInfoSize);
                                cell.setBackgroundColor(Color.lightGray);
                                cell.setNoWrap(true); cell.setLeading(8.0f);
                                //cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
                                chargeCountry.addCell(cell);*/
                                //@@ Added by subrahmanyam for the enhancement #146971 and 146970 on 10/12/2008    
                                chk = new Chunk(masterDOB.getQuoteId(),
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                cell = new Cell(chk);
                                cell.setBackgroundColor(Color.lightGray);
                                cell.setNoWrap(true);
                                cell.setLeading(8.0f);
                                chargeCountry.addCell(cell);
                                //@@ Ended by subrahmanyam for the enhanemenet #146971 and #146970 on 10/12/2008 

                                //@@ commented and modified by subrahmanyam for 181349  on 07-sep-09 & 202166 on 7-apr-10
                                // chk = new Chunk(detailsDOB.getChargeDescId(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                                chk = new Chunk(
                                        detailsDOB.getExternalName() != null ? detailsDOB.getExternalName()
                                                : detailsDOB.getChargeDescId(),
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));//ended for 181349
                                cell = new Cell(chk);
                                //cell.setRowspan(originChargesInfoSize);
                                cell.setBackgroundColor(Color.lightGray);
                                // cell.setNoWrap(true); //commented for 181349
                                cell.setLeading(8.0f);
                                //cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
                                chargeCountry.addCell(cell);
                            } else {
                                cell = new Cell("");
                                //cell.setRowspan(originChargesInfoSize);
                                cell.setBackgroundColor(Color.lightGray);
                                cell.setNoWrap(true);
                                cell.setLeading(8.0f);
                                cell.setBorderWidth(0f);
                                //cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
                                chargeCountry.addCell(cell);

                                cell = new Cell("");
                                //cell.setRowspan(originChargesInfoSize);
                                cell.setBackgroundColor(Color.lightGray);
                                cell.setNoWrap(true);
                                cell.setLeading(8.0f);
                                cell.setBorderWidth(0f);
                                //cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
                                chargeCountry.addCell(cell);
                            }
                            chk = new Chunk(crateDetailsDOB.getWeightBreakSlab(),
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell = new Cell(chk);
                            cell.setBackgroundColor(Color.lightGray);
                            cell.setNoWrap(true);
                            cell.setLeading(8.0f);
                            chargeCountry.addCell(cell);

                            chk = new Chunk(detailsDOB.getCurrency(),
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell = new Cell(chk);
                            cell.setBackgroundColor(Color.lightGray);
                            cell.setNoWrap(true);
                            cell.setLeading(8.0f);
                            chargeCountry.addCell(cell);

                            chk = new Chunk(crateDetailsDOB.getRate() + "",
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell = new Cell(chk);
                            cell.setNoWrap(true);
                            cell.setLeading(8.0f);
                            chargeCountry.addCell(cell);

                            //added by subrahmanyam for 183812
                            if (crateDetailsDOB.getWeightBreakSlab().equalsIgnoreCase("Min")
                                    || ("BOTH".equalsIgnoreCase(detailsDOB.getRateType())
                                            && "F".equalsIgnoreCase(crateDetailsDOB.getRateIndicator()))) {
                                wBslab = "MIN";
                            } else
                                wBslab = detailsDOB.getChargeBasisDesc();
                            // @@ Commented & Added by subrahmanyam for the wpbn id: 182516 on 10/09/09
                            //chk = new Chunk(crateDetailsDOB.getWeightBreakSlab().equalsIgnoreCase("Min")?"Pershipment ":detailsDOB.getChargeBasisDesc(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                            //chk = new Chunk(crateDetailsDOB.getWeightBreakSlab().equalsIgnoreCase("Min")?" Per Shipment ":detailsDOB.getChargeBasisDesc(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                            chk = new Chunk(
                                    wBslab.equalsIgnoreCase("Min") ? " Per Shipment "
                                            : detailsDOB.getChargeBasisDesc(),
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell = new Cell(chk);
                            cell.setNoWrap(true);
                            cell.setLeading(8.0f);
                            chargeCountry.addCell(cell);

                            chk = new Chunk(
                                    detailsDOB.getDensityRatio() == null ? "" : detailsDOB.getDensityRatio(),
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell = new Cell(chk);
                            cell.setNoWrap(true);
                            cell.setLeading(8.0f);
                            chargeCountry.addCell(cell);

                        }
                    }
                }
            }
            document.add(chargeCountry);
        }
        if (freightCount > 0) {
            Table chargeCountry1 = new Table(7, freightCount);
            chargeCountry1.setWidth(100);
            chargeCountry1.setPadding(1);
            chargeCountry1.setSpacing(0);
            chargeCountry1.setOffset(25);
            chargeCountry1.setBackgroundColor(Color.WHITE);
            chargeCountry1.setBorderColor(Color.black);
            chargeCountry1.setDefaultHorizontalAlignment(Element.ALIGN_CENTER);
            chargeCountry1.setBorderWidth(1);
            //@@ Added by subrahmanyam for wpbn id: 181349 on 07-sep-09
            chargeCountry1.setTableFitsPage(true);
            chargeCountry1.setCellsFitPage(true);
            // @@ Ended for wpbn id: 181349 on 07-sep-09

            Cell cell1;
            chk = new Chunk(" QUOTEID", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell1 = new Cell(chk);
            cell1.setBackgroundColor(Color.ORANGE);
            cell1.setNoWrap(true);
            cell1.setLeading(8.0f);
            //cell1.setVerticalAlignment(cell1.ALIGN_MIDDLE);
            chargeCountry1.addCell(cell1);
            chk = new Chunk("CHARGE NAME ", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell1 = new Cell(chk);
            cell1.setBackgroundColor(Color.ORANGE);
            cell1.setNoWrap(true);
            cell1.setLeading(8.0f);
            //cell1.setVerticalAlignment(cell1.ALIGN_MIDDLE);
            chargeCountry1.addCell(cell1);

            chk = new Chunk("BREAKPOINT", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell1 = new Cell(chk);
            cell1.setBackgroundColor(Color.ORANGE);
            cell1.setNoWrap(true);
            cell1.setLeading(8.0f);
            //cell1.setVerticalAlignment(cell1.ALIGN_MIDDLE);
            chargeCountry1.addCell(cell1);

            chk = new Chunk("CURRENCY", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell1 = new Cell(chk);
            cell1.setBackgroundColor(Color.ORANGE);
            cell1.setNoWrap(true);
            cell1.setLeading(8.0f);
            //cell1.setVerticalAlignment(cell1.ALIGN_MIDDLE);
            chargeCountry1.addCell(cell1);

            chk = new Chunk("RATE", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell1 = new Cell(chk);
            cell1.setBackgroundColor(Color.ORANGE);
            cell1.setNoWrap(true);
            cell1.setLeading(8.0f);
            // cell1.setVerticalAlignment(cell1.ALIGN_MIDDLE);
            chargeCountry1.addCell(cell1);

            chk = new Chunk("BASIS", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell1 = new Cell(chk);
            cell1.setBackgroundColor(Color.ORANGE);
            cell1.setNoWrap(true);
            cell1.setLeading(8.0f);
            //cell1.setVerticalAlignment(cell1.ALIGN_MIDDLE);
            chargeCountry1.addCell(cell1);

            chk = new Chunk("RATIO", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell1 = new Cell(chk);
            cell1.setBackgroundColor(Color.ORANGE);
            cell1.setNoWrap(true);
            cell1.setLeading(8.0f);
            // cell1.setVerticalAlignment(cell1.ALIGN_MIDDLE);
            chargeCountry1.addCell(cell1);

            chk = new Chunk("FREIGHT CHARGES", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell1 = new Cell(chk);
            cell1.setColspan(7);
            cell1.setNoWrap(true);
            cell1.setLeading(8.0f);
            cell1.setBackgroundColor(Color.ORANGE);
            //cell1.setVerticalAlignment(cell1.ALIGN_MIDDLE);
            chargeCountry1.addCell(cell1);
            //Freight Charges
            // System.out.println("After         Origin Charges --------------------------------->");
            int freightChargesSize = 0;
            int freightChargesInfoSize = 0;
            int[] frtIndices = null;
            MultiQuoteFreightLegSellRates legCharges = null;
            String wBSlab = "";//added by subrahmanyam for 182516 on 10-sep-09             
            int mDtlSize = mainDtl.size();
            for (int m = 0; m < mDtlSize; m++) {

                finalDOB = (MultiQuoteFinalDOB) mainDtl.get(m);
                headerDOB = finalDOB.getHeaderDOB();
                masterDOB = finalDOB.getMasterDOB();
                ArrayList costingLegDetailsList = new ArrayList();
                costingMasterDOB = finalDOB.getCostingMasterDOB();
                costingLegDetailsList = (ArrayList) costingMasterDOB.getCostingLegDetailsList();
                ArrayList frieghtChargeDetails = new ArrayList();
                String rDescription = ""; // Added by subrahmanyam for 182516 on 10/09/09
                if (costingLegDetailsList.size() > 0) {

                    int costLegDtlSize = costingLegDetailsList.size();
                    for (int s = 0; s < costLegDtlSize; s++) {
                        legDetails = (CostingLegDetailsDOB) costingLegDetailsList.get(s);
                        frieghtChargeDetails = (ArrayList) legDetails.getCostingChargeDetailList();
                        int frtLegDtlSize = frieghtChargeDetails.size();
                        int frtChargDtlSize = frieghtChargeDetails.size();
                        for (int n = 0; n < frtChargDtlSize; n++) {
                            detailsDOB = (CostingChargeDetailsDOB) frieghtChargeDetails.get(n);
                            rateDetails = (ArrayList) detailsDOB.getCostingRateInfoDOB();
                            int rateDtlSize = rateDetails.size();
                            for (int j = 0; j < rateDtlSize; j++) {
                                rateDetailsDOB = (CostingRateInfoDOB) rateDetails.get(j);

                                if (j == 0) {

                                    chk = new Chunk(legDetails.getOrigin() + "-" + legDetails.getDestination(),
                                            FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
                                    cell1 = new Cell(chk);
                                    cell1.setColspan(7);
                                    cell1.setBackgroundColor(Color.WHITE);
                                    cell1.setLeading(8.0f);
                                    chargeCountry1.addCell(cell1);

                                    //@@ Commented by subrahmanyam for the enhancement #146971 and 1469710 on 10/12/2008                      
                                    /*chk = new Chunk(new Long(masterDOB.getQuoteId()).toString(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                                    cell1 = new Cell(chk);
                                    //cell1.setRowspan(rateDetails.size());
                                    cell1.setNoWrap(true); cell2.setLeading(8.0f);
                                    cell1.setBackgroundColor(Color.lightGray);
                                    chargeCountry1.addCell(cell1);*/
                                    //@@ Added by subrahmanyam for the enhancement #146971 and #146970 on 10/12/2008
                                    chk = new Chunk(masterDOB.getQuoteId(),
                                            FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                    cell1 = new Cell(chk);
                                    cell1.setNoWrap(true);
                                    cell1.setLeading(8.0f);
                                    cell1.setBackgroundColor(Color.lightGray);
                                    chargeCountry1.addCell(cell1);
                                    //@@ Ended by subrahmanyam for the enhancement #146971 and 146970 on 10/12/2008    
                                    // COMMENTED AND MODIFIED BY SUBRAHMANYAM FOR 182516
                                    //chk = new Chunk(detailsDOB.getChargeDescId()==null?"":detailsDOB.getChargeDescId(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                                    chk = new Chunk(
                                            rateDetailsDOB.getRateDescription() == null ? ""
                                                    : rateDetailsDOB.getRateDescription(),
                                            FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                    cell1 = new Cell(chk);
                                    //cell1.setRowspan(rateDetails.size());
                                    cell1.setNoWrap(true);
                                    cell1.setLeading(8.0f);
                                    cell1.setBackgroundColor(Color.lightGray);
                                    chargeCountry1.addCell(cell1);
                                    rDescription = rateDetailsDOB.getRateDescription();
                                } else {
                                    cell1 = new Cell("");
                                    //cell1.setRowspan(rateDetails.size());
                                    cell1.setNoWrap(true);
                                    cell1.setLeading(8.0f);
                                    cell1.setBorderWidth(0f);
                                    cell1.setBackgroundColor(Color.lightGray);
                                    chargeCountry1.addCell(cell1);

                                    //@@ Commented by subrahmanyam for 182516 on 10/09/09
                                    /*
                                     cell1 = new Cell("");
                                     //cell1.setRowspan(rateDetails.size());
                                     cell1.setNoWrap(true); cell1.setLeading(8.0f);
                                     cell1.setBackgroundColor(Color.lightGray);
                                     cell1.setBorderWidth(0f);
                                     chargeCountry1.addCell(cell1);
                                     */
                                    //@@ added by subrahmanyam for 182516 on 10/09/09
                                    if (rDescription.equalsIgnoreCase(rateDetailsDOB.getRateDescription())) {
                                        chk = new Chunk("",
                                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                        cell1 = new Cell(chk);
                                        //cell1.setRowspan(rateDetails.size());
                                        cell1.setNoWrap(true);
                                        cell1.setLeading(8.0f);
                                        cell1.setBackgroundColor(Color.lightGray);
                                        cell1.setBorderWidth(0f);
                                        chargeCountry1.addCell(cell1);
                                    } else {
                                        chk = new Chunk(
                                                rateDetailsDOB.getRateDescription() == null ? ""
                                                        : rateDetailsDOB.getRateDescription(),
                                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                        cell1 = new Cell(chk);
                                        //cell1.setRowspan(rateDetails.size());
                                        //cell1.setNoWrap(true);
                                        cell1.setLeading(8.0f);
                                        cell1.setBackgroundColor(Color.lightGray);
                                        chargeCountry1.addCell(cell1);
                                        rDescription = rateDetailsDOB.getRateDescription();
                                    }
                                    //ended by subrahmanyam for 182516 on 10/09/09

                                }
                                if ("FSBASIC".equalsIgnoreCase(rateDetailsDOB.getWeightBreakSlab())
                                        || "SSBASIC".equalsIgnoreCase(rateDetailsDOB.getWeightBreakSlab()))
                                    rateDetailsDOB.setWeightBreakSlab("Basic Charge");
                                if ("FSMIN".equalsIgnoreCase(rateDetailsDOB.getWeightBreakSlab())
                                        || "SSMIN".equalsIgnoreCase(rateDetailsDOB.getWeightBreakSlab()))
                                    rateDetailsDOB.setWeightBreakSlab("Minimum");
                                if ("FSKG".equalsIgnoreCase(rateDetailsDOB.getWeightBreakSlab())
                                        || "SSKG".equalsIgnoreCase(rateDetailsDOB.getWeightBreakSlab()))
                                    rateDetailsDOB.setWeightBreakSlab("Flat Rate");

                                chk = new Chunk(rateDetailsDOB.getWeightBreakSlab(),
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                cell1 = new Cell(chk);
                                cell1.setNoWrap(true);
                                cell1.setLeading(8.0f);
                                cell1.setBackgroundColor(Color.lightGray);
                                chargeCountry1.addCell(cell1);

                                chk = new Chunk(detailsDOB.getCurrency(),
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                cell1 = new Cell(chk);
                                cell1.setNoWrap(true);
                                cell1.setLeading(8.0f);
                                cell1.setBackgroundColor(Color.lightGray);
                                chargeCountry1.addCell(cell1);

                                chk = new Chunk(rateDetailsDOB.getRate() + "",
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                cell1 = new Cell(chk);
                                cell1.setNoWrap(true);
                                cell1.setLeading(8.0f);
                                chargeCountry1.addCell(cell1);

                                //@@ Added by subrahmanyam for wpbn id: 182516
                                // MODIFIED BY SUBRAHMANYAM FOR 183812
                                if (rateDetailsDOB.getWeightBreakSlab().equalsIgnoreCase("Min")
                                        || rateDetailsDOB.getWeightBreakSlab().equalsIgnoreCase("Minimum")
                                        || ("BOTH".equalsIgnoreCase(detailsDOB.getRateType()) && "FLAT"
                                                .equalsIgnoreCase(rateDetailsDOB.getRateIndicator()))) {
                                    wBSlab = "MIN";
                                } else {
                                    wBSlab = rateDetailsDOB.getWeightBreakSlab();
                                }
                                //@@ commented by subrahmanyam for wpbn id: 182516
                                //chk = new Chunk(rateDetailsDOB.getWeightBreakSlab().equalsIgnoreCase("Min")?"Pershipment ":detailsDOB.getChargeBasisDesc(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                                //@@ Added by subrahmanyam for wpbn id: 182516
                                chk = new Chunk(
                                        wBSlab.equalsIgnoreCase("Min") ? " Per Shipment "
                                                : detailsDOB.getChargeBasisDesc(),
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                //@@ Ended  for wpbn id: 182516
                                cell1 = new Cell(chk);
                                cell1.setNoWrap(true);
                                cell1.setLeading(8.0f);
                                chargeCountry1.addCell(cell1);

                                chk = new Chunk(
                                        detailsDOB.getDensityRatio() == null ? ""
                                                : detailsDOB.getDensityRatio(),
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                cell1 = new Cell(chk);
                                cell1.setNoWrap(true);
                                cell1.setLeading(8.0f);
                                chargeCountry1.addCell(cell1);

                            }
                        }
                    }
                }
            }
            document.add(chargeCountry1);
        }
        // System.out.println("After Charges--------------------------------->");
        ArrayList destChargeInfo = null;
        //int[]      destChargeInfo        =  null;
        int destChargesInfoSize = 0;
        if (destCount > 0) {
            Table chargeCountry2 = new Table(7, destCount);
            chargeCountry2.setWidth(100);
            chargeCountry2.setPadding(1);
            chargeCountry2.setSpacing(0);
            chargeCountry2.setOffset(25);
            chargeCountry2.setBackgroundColor(Color.WHITE);
            chargeCountry2.setBorderColor(Color.black);
            chargeCountry2.setDefaultHorizontalAlignment(Element.ALIGN_CENTER);
            chargeCountry2.setBorderWidth(1);
            //@@ Added by subrahmanyam for wpbn id: 181349 on 07-sep-09
            chargeCountry2.setTableFitsPage(true);
            chargeCountry2.setCellsFitPage(true);
            // @@ Ended for wpbn id: 181349 on 07-sep-09

            Cell cell2;
            String wBslab = "";
            chk = new Chunk("QUOTEID", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell2 = new Cell(chk);
            cell2.setNoWrap(true);
            cell2.setLeading(8.0f);
            cell2.setBackgroundColor(Color.ORANGE);
            //cell2.setVerticalAlignment(cell2.ALIGN_MIDDLE);
            chargeCountry2.addCell(cell2);

            chk = new Chunk("CHARGE NAME", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell2 = new Cell(chk);
            cell2.setNoWrap(true);
            cell2.setLeading(8.0f);
            cell2.setBackgroundColor(Color.ORANGE);
            //cell2.setVerticalAlignment(cell2.ALIGN_MIDDLE);
            chargeCountry2.addCell(cell2);

            chk = new Chunk("BREAKPOINT", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell2 = new Cell(chk);
            cell2.setNoWrap(true);
            cell2.setLeading(8.0f);
            cell2.setBackgroundColor(Color.ORANGE);
            //cell2.setVerticalAlignment(cell2.ALIGN_MIDDLE);
            chargeCountry2.addCell(cell2);

            chk = new Chunk("CURRENCY", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell2 = new Cell(chk);
            cell2.setNoWrap(true);
            cell2.setLeading(8.0f);
            cell2.setBackgroundColor(Color.ORANGE);
            //cell2.setVerticalAlignment(cell2.ALIGN_MIDDLE);
            chargeCountry2.addCell(cell2);

            chk = new Chunk("RATE", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell2 = new Cell(chk);
            cell2.setNoWrap(true);
            cell2.setLeading(8.0f);
            cell2.setBackgroundColor(Color.ORANGE);
            //cell2.setVerticalAlignment(cell2.ALIGN_MIDDLE);
            chargeCountry2.addCell(cell2);

            chk = new Chunk("BASIS", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell2 = new Cell(chk);
            cell2.setNoWrap(true);
            cell2.setLeading(8.0f);
            cell2.setBackgroundColor(Color.ORANGE);
            //cell2.setVerticalAlignment(cell2.ALIGN_MIDDLE);
            chargeCountry2.addCell(cell2);

            chk = new Chunk("RATIO", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell2 = new Cell(chk);
            cell2.setNoWrap(true);
            cell2.setLeading(8.0f);
            cell2.setBackgroundColor(Color.ORANGE);
            //cell2.setVerticalAlignment(cell2.ALIGN_MIDDLE);
            chargeCountry2.addCell(cell2);

            chk = new Chunk("DESTINATION CHARGES", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell2 = new Cell(chk);
            cell2.setNoWrap(true);
            cell2.setLeading(8.0f);
            cell2.setColspan(7);
            cell2.setBackgroundColor(Color.ORANGE);
            //cell2.setVerticalAlignment(cell2.ALIGN_MIDDLE);
            chargeCountry2.addCell(cell2);
            int mDtlSize = mainDtl.size();
            for (int m = 0; m < mDtlSize; m++) {

                finalDOB = (MultiQuoteFinalDOB) mainDtl.get(m);
                headerDOB = finalDOB.getHeaderDOB();
                masterDOB = finalDOB.getMasterDOB();
                costingMasterDOB = finalDOB.getCostingMasterDOB();
                ArrayList destCharges = (ArrayList) costingMasterDOB.getDestinationList();
                if (destCharges.size() > 0) {

                    int destChargSize = destCharges.size();

                    for (int i = 0; i < destChargSize; i++) {

                        detailsDOB = (CostingChargeDetailsDOB) destCharges.get(i);
                        rateDetails = (ArrayList) detailsDOB.getCostingRateInfoDOB();

                        //originChargesInfoSize   = rateDetails.size();
                        int rDtlSize = rateDetails.size();
                        for (int k = 0; k < rDtlSize; k++) {
                            CostingRateInfoDOB crateDetailsDOB = (CostingRateInfoDOB) rateDetails.get(k);

                            if (k == 0) {

                                //@@ Commented by subrahmanyam for the enhancement #146971 and 1469710 on 10/12/2008                      
                                /*chk = new Chunk(new Long(masterDOB.getQuoteId()).toString(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                                cell2 = new Cell(chk);
                                //cell2.setRowspan(rateDetails.size());
                                cell2.setNoWrap(true); cell2.setLeading(8.0f);
                                cell2.setBackgroundColor(Color.lightGray);
                                chargeCountry2.addCell(cell2);*/
                                //@@ Added by subrahmanyam for the enhancement #146971 and #146970 on 10/12/2008
                                chk = new Chunk(masterDOB.getQuoteId(),
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                cell2 = new Cell(chk);
                                cell2.setNoWrap(true);
                                cell2.setLeading(8.0f);
                                cell2.setBackgroundColor(Color.lightGray);
                                chargeCountry2.addCell(cell2);
                                //@@ Ended by subrahmanyam for the enhancement #146971 and 146970 on 10/12/2008    

                                //  chk = new Chunk(detailsDOB.getChargeDescId(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                                //@@ Added by subrahmanyam for the wpbn id: 181349  on 07-sep-09
                                chk = new Chunk(
                                        detailsDOB.getExternalName() != null ? detailsDOB.getExternalName()
                                                : detailsDOB.getChargeDescId(),
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));//ended for 181349
                                cell2 = new Cell(chk);
                                //cell2.setRowspan(rateDetails.size());
                                //cell2.setNoWrap(true); //commented for 181349
                                cell2.setLeading(8.0f);
                                cell2.setBackgroundColor(Color.lightGray);
                                chargeCountry2.addCell(cell2);
                            } else {
                                cell2 = new Cell("");
                                //cell2.setRowspan(rateDetails.size());
                                cell2.setNoWrap(true);
                                cell2.setLeading(8.0f);
                                cell2.setBackgroundColor(Color.lightGray);
                                cell2.setBorderWidth(0f);
                                chargeCountry2.addCell(cell2);

                                cell2 = new Cell("");
                                //cell2.setRowspan(rateDetails.size());
                                cell2.setNoWrap(true);
                                cell2.setLeading(8.0f);
                                cell2.setBackgroundColor(Color.lightGray);
                                cell2.setBorderWidth(0f);
                                chargeCountry2.addCell(cell2);
                            }
                            chk = new Chunk(crateDetailsDOB.getWeightBreakSlab(),
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell2 = new Cell(chk);
                            cell2.setNoWrap(true);
                            cell2.setLeading(8.0f);
                            cell2.setBackgroundColor(Color.lightGray);
                            chargeCountry2.addCell(cell2);

                            chk = new Chunk(detailsDOB.getCurrency(),
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell2 = new Cell(chk);
                            cell2.setNoWrap(true);
                            cell2.setLeading(8.0f);
                            cell2.setBackgroundColor(Color.lightGray);
                            chargeCountry2.addCell(cell2);

                            chk = new Chunk(crateDetailsDOB.getRate() + "",
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell2 = new Cell(chk);
                            cell2.setNoWrap(true);
                            cell2.setLeading(8.0f);
                            chargeCountry2.addCell(cell2);

                            //@@ Commented & Added  by subrahmanyam for 182516 on 10/09/09
                            // chk = new Chunk(crateDetailsDOB.getWeightBreakSlab().equalsIgnoreCase("Min")?"Pershipment ":detailsDOB.getChargeBasisDesc(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                            //ADDED BY SUBRAHMANYAM FOR 183812
                            if (crateDetailsDOB.getWeightBreakSlab().equalsIgnoreCase("Min")
                                    || ("BOTH".equalsIgnoreCase(detailsDOB.getRateType())
                                            && "F".equalsIgnoreCase(crateDetailsDOB.getRateIndicator()))) {
                                wBslab = "MIN";
                            } else
                                wBslab = detailsDOB.getChargeBasisDesc();
                            // COMMENTED & added FOR 183812 ON 24-09-09
                            //chk = new Chunk(crateDetailsDOB.getWeightBreakSlab().equalsIgnoreCase("Min")?" Per Shipment ":detailsDOB.getChargeBasisDesc(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                            chk = new Chunk(
                                    wBslab.equalsIgnoreCase("Min") ? " Per Shipment "
                                            : detailsDOB.getChargeBasisDesc(),
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell2 = new Cell(chk);
                            cell2.setNoWrap(true);
                            cell2.setLeading(8.0f);
                            chargeCountry2.addCell(cell2);

                            chk = new Chunk(
                                    detailsDOB.getDensityRatio() == null ? "" : detailsDOB.getDensityRatio(),
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell2 = new Cell(chk);
                            cell2.setNoWrap(true);
                            cell2.setLeading(8.0f);
                            chargeCountry2.addCell(cell2);
                        }
                    }
                }
            }
            document.add(chargeCountry2);
        }

        Table notes = new Table(2, mainDtl.size());
        boolean displayFlag = false;
        notes.setWidth(100);
        notes.setPadding(1);
        notes.setSpacing(0);
        notes.setOffset(5);
        notes.setBackgroundColor(Color.WHITE);
        notes.setBorderColor(Color.black);
        notes.setDefaultHorizontalAlignment(Element.ALIGN_CENTER);
        notes.setBorderWidth(1);
        notes.setTableFitsPage(true);// added by subrahmanyam for quoteGrouping issue 184848
        notes.setCellsFitPage(true);// added by subrahmanyam for quoteGrouping issue 184848

        Cell cell3;
        chk = new Chunk("QUOTEID ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cell3 = new Cell(chk);
        cell3.setNoWrap(true);
        cell3.setLeading(8.0f);
        cell3.setBackgroundColor(Color.ORANGE);
        //cell3.setVerticalAlignment(cell3.ALIGN_MIDDLE);
        //cell3.setBackgroundColor(Color.lightGray);
        notes.addCell(cell3);

        chk = new Chunk("NOTES", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cell3 = new Cell(chk);
        cell3.setNoWrap(true);
        cell3.setLeading(8.0f);
        cell3.setBackgroundColor(Color.ORANGE);
        //cell3.setVerticalAlignment(cell3.ALIGN_MIDDLE);

        notes.addCell(cell3);
        int mDtlSize = mainDtl.size();
        for (int m = 0; m < mDtlSize; m++) {

            finalDOB = (MultiQuoteFinalDOB) mainDtl.get(m);
            headerDOB = finalDOB.getHeaderDOB();
            masterDOB = finalDOB.getMasterDOB();
            costingMasterDOB = finalDOB.getCostingMasterDOB();
            if (costingMasterDOB != null) {
            }
            //@@ Commented by subrahmanyam for the enhancement #146971 and 1469710 on 10/12/2008                      
            /*chk = new Chunk(new Long(masterDOB.getQuoteId()).toString(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
            cell3 = new Cell(chk);
            //cell3.setRowspan(rateDetails.size());
            cell3.setNoWrap(true); cell3.setLeading(8.0f);
            cell3.setBackgroundColor(Color.lightGray);
            notes.addCell(cell3);*/
            //@@ Added by subrahmanyam for the enhancement #146971 and #146970 on 10/12/2008
            //commented by subrahmanyam for quote grouping issue
            /*
                 chk = new Chunk(masterDOB.getQuoteId(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
            cell3 = new Cell(chk);
            cell3.setNoWrap(true); cell3.setLeading(8.0f);
            cell3.setBackgroundColor(Color.lightGray);
            notes.addCell(cell3);
                //@@ Ended by subrahmanyam for the enhancement #146971 and 146970 on 10/12/2008
                    
            chk = new Chunk(" ",FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
            cell3 = new Cell(chk);
            //cell3.setRowspan();
            cell3.setNoWrap(true); cell3.setLeading(8.0f);
            cell3.setBackgroundColor(Color.lightGray);
            notes.addCell(cell3);
            */
            //@@ Added by subrahmanyam for Quote Grouping Issue 184848 on 30/sep/09
            if (finalDOB.getExternalNotes() != null && finalDOB.getExternalNotes().length > 0) {
                int notesLength = finalDOB.getExternalNotes().length;
                for (int n = 0; n < notesLength; n++) {
                    if (n == 0) {
                        chk = new Chunk(masterDOB.getQuoteId(),
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell3 = new Cell(chk);
                        cell3.setNoWrap(true);
                        cell3.setLeading(8.0f);
                        cell3.setBackgroundColor(Color.lightGray);
                        notes.addCell(cell3);
                        //@@ Ended by subrahmanyam for the enhancement #146971 and 146970 on 10/12/2008

                        chk = new Chunk(finalDOB.getExternalNotes()[n],
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell3 = new Cell(chk);
                        //cell3.setRowspan();
                        //cell3.setNoWrap(true);
                        cell3.setHorizontalAlignment(cell3.ALIGN_LEFT);
                        cell3.setLeading(8.0f);
                        cell3.setBackgroundColor(Color.lightGray);
                        notes.addCell(cell3);
                    } else {
                        chk = new Chunk("", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell3 = new Cell(chk);
                        cell3.setNoWrap(true);
                        cell3.setLeading(8.0f);
                        cell3.setBackgroundColor(Color.lightGray);
                        notes.addCell(cell3);
                        //@@ Ended by subrahmanyam for the enhancement #146971 and 146970 on 10/12/2008

                        chk = new Chunk(finalDOB.getExternalNotes()[n],
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell3 = new Cell(chk);
                        //cell3.setRowspan();
                        // cell3.setNoWrap(true);
                        cell3.setHorizontalAlignment(cell3.ALIGN_LEFT);
                        cell3.setLeading(8.0f);
                        cell3.setBackgroundColor(Color.lightGray);
                        notes.addCell(cell3);
                    }
                }
            } else {
                chk = new Chunk(masterDOB.getQuoteId(),
                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cell3 = new Cell(chk);
                cell3.setNoWrap(true);
                cell3.setLeading(8.0f);
                cell3.setBackgroundColor(Color.lightGray);
                notes.addCell(cell3);

                chk = new Chunk(" ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cell3 = new Cell(chk);
                //cell3.setRowspan();
                cell3.setNoWrap(true);
                cell3.setLeading(8.0f);
                cell3.setBackgroundColor(Color.lightGray);
                notes.addCell(cell3);
            }
            //@@ Ended by subrahmanyam for Quote Grouping Issue 184848 on 30/09/09

            contents = masterDOB.getContentOnQuote();
            levels = masterDOB.getLevels();
            aligns = masterDOB.getAlign();
            headFoot = masterDOB.getHeaderFooter();

            if (contents != null && contents.length > 0) {
                int hFLen = headFoot.length;
                for (int i = 0; i < hFLen; i++) {
                    if (headFoot[i] != null && "F".equalsIgnoreCase(headFoot[i])) {
                        displayFlag = true;
                        break;
                    }
                }
                if (displayFlag) {
                    content = new Table(1);
                    content.setOffset(5);
                    content.setWidth(100);
                    content.setPadding(1);
                    content.setSpacing(0);
                    content.setBackgroundColor(Color.WHITE);
                    content.setBorderColor(Color.black);
                    content.setBorderWidth(1f);
                    Cell cellContent = null;
                    chk = new Chunk("QUOTEID : " + masterDOB.getQuoteId(),
                            FontFactory.getFont("ARIAL", 7, Font.ITALIC, Color.BLACK));
                    cellContent = new Cell(chk);
                    cellContent.setBorder(0);
                    cellContent.setLeading(6.0f);
                    cellContent.setHorizontalAlignment(cellContent.ALIGN_CENTER);
                    cellContent.setBackgroundColor(Color.ORANGE);
                    content.addCell(cellContent);
                    for (int i = 0; i < hFLen; i++) {
                        if (headFoot[i] != null && "F".equalsIgnoreCase(headFoot[i])) {
                            chk = new Chunk(contents[i] != null ? contents[i].toUpperCase() : "",
                                    FontFactory.getFont("ARIAL", 7, Font.ITALIC, Color.BLACK));
                            cellContent = new Cell(chk);
                            cellContent.setBorder(0);
                            cellContent.setLeading(6.0f);
                            cellContent.setBackgroundColor(Color.LIGHT_GRAY);
                            if ("L".equalsIgnoreCase(aligns[i]))
                                cellContent.setHorizontalAlignment(cellContent.ALIGN_LEFT);
                            else if ("C".equalsIgnoreCase(aligns[i]))
                                cellContent.setHorizontalAlignment(cellContent.ALIGN_CENTER);
                            else if ("R".equalsIgnoreCase(aligns[i]))
                                cellContent.setHorizontalAlignment(cellContent.ALIGN_RIGHT);
                            content.addCell(cellContent);
                        }
                    }
                    document.add(content);
                }
            }
        }
        document.add(notes);
        //Default Footer Content Starts
        contents = masterDOB.getDefaultContent();
        headFoot = masterDOB.getDefaultHeaderFooter();
        int hFLen = 0;
        if (headFoot != null)
            hFLen = headFoot.length;
        if (contents != null && contents.length > 0) {
            content = new Table(1);
            content.setOffset(5);
            content.setWidth(100);
            content.setPadding(1);
            content.setSpacing(0);
            content.setBackgroundColor(Color.WHITE);
            content.setBorderColor(Color.black);
            content.setBorderWidth(1f);
            Cell cellContent = null;
            chk = null;
            for (int i = 0; i < hFLen; i++) {
                if (headFoot[i] != null && "F".equalsIgnoreCase(headFoot[i])) {
                    chk = new Chunk(contents[i], FontFactory.getFont("ARIAL", 7, Font.ITALIC, Color.BLACK));
                    cellContent = new Cell(chk);
                    cellContent.setBorder(0);
                    cellContent.setLeading(6.0f);
                    cellContent.setBackgroundColor(Color.LIGHT_GRAY);
                    cellContent.setHorizontalAlignment(cellContent.ALIGN_LEFT);//Default content is left aligned                                    
                    content.addCell(cellContent);

                }
            }
            document.add(content);
        }
        //End Default Footer Content

        // System.out.println("After     document Close----------------------------------------->");

        document.close();
        // Thread.sleep(100);
        //logger.info("thread");
        //String file_tsmp = ""+new java.sql.Timestamp((new java.util.Date()).getTime()+masterDOB.getQuoteId());  //@@ Commented by subrahmanyam for the Enhancement #146971 on 2/12/08
        // String file_tsmp = ""+new java.sql.Timestamp((new java.util.Date()).getTime()+Long.parseLong(masterDOB.getQuoteId()));  //@@ Added by subrahmanyam for the Enhancement #146971 on 2/12/08
        //Commenetd by Anusha V 
        //String file_tsmp = ""+new java.sql.Timestamp((new java.util.Date()).getTime())+masterDOB.getQuoteId(); //@@ Added by subrahmanyam for the Enhancement #146971 on 2/12/08
        //Added by Anusha V
        String file_tsmp = "" + new java.sql.Timestamp((new java.util.Date()).getTime());
        file_tsmp = file_tsmp.replaceAll("\\:", "");
        file_tsmp = file_tsmp.replaceAll("\\.", "");
        file_tsmp = file_tsmp.replaceAll("\\-", "");
        file_tsmp = file_tsmp.replaceAll(" ", "");
        File f = new File("Quote" + file_tsmp + ".pdf");
        FileOutputStream fileOutputStream = new FileOutputStream(f);
        baos.writeTo(fileOutputStream);
        fileOutputStream.close();
        //  logger.info("masterDOB.getUserId()"+masterDOB.getUserId());
        if ("on".equalsIgnoreCase(request.getParameter("print"))) {

            request.getSession().setAttribute("QuoteOuptutStream", f);
        }
        //  session.setAttribute("UserId",masterDOB.getUserId());

        int noOfQuotes = mainDtl.size();
        StringBuffer quoteIds = new StringBuffer("");
        String quoteType = "";
        String terminalAddress = "";
        String creatorDetails = "";
        String fromEmailId = "";
        String body = "";
        String countryCode = "";
        for (int i = 0; i < noOfQuotes; i++) {
            finalDOB = (MultiQuoteFinalDOB) mainDtl.get(i);
            /*  //@@Added for the WPBN issue-
              filesDOBList           =   finalDOB.getAttachmentDOBList(); 
              for(int j=0;j<filesDOBList.size();j++)
              {
               filesList.add(filesDOBList.get(j));
              } //@@Added for the WPBN issue-*/

            if (i == 0) {
                quoteType = "" + finalDOB.getMasterDOB().getShipmentMode();
                terminalAddress = finalDOB.getMasterDOB().getTerminalAddress();
                creatorDetails = finalDOB.getMasterDOB().getCreatorDetails();
                fromEmailId = finalDOB.getMasterDOB().getUserEmailId();
                countryCode = finalDOB.getHeaderDOB().getCustCountyCode();
                to_FaxIds = finalDOB.getHeaderDOB().getCustFaxNo();
                to_emailIds = finalDOB.getHeaderDOB().getCustEmailId();
            }
            quoteIds.append(finalDOB.getMasterDOB().getQuoteId());
            if (i != noOfQuotes - 1)
                quoteIds.append(",");

            contactPersons = finalDOB.getMasterDOB().getCustContactNames();
            if (contactPersons != null) {
                int contPersLen = contactPersons.length;
                for (int k = 0; k < contPersLen; k++) {
                    if (!contactList.contains(finalDOB.getMasterDOB().getCustContactNames()[k])) {
                        contactList.add(finalDOB.getMasterDOB().getCustContactNames()[k]);
                        contactEmailList.add(finalDOB.getMasterDOB().getCustomerContactsEmailIds()[k]);
                        contactFaxList.add(finalDOB.getMasterDOB().getCustomerContactsFax()[k]);
                    }
                }

            }

        }

        if ("1".equalsIgnoreCase(quoteType))
            quoteType = "Airfreight";
        else if ("2".equalsIgnoreCase(quoteType))
            quoteType = "Seafreight";
        else if ("4".equalsIgnoreCase(quoteType))
            quoteType = "Truckfreight";

        String subject = "DHL Global Forwarding Quotation, Multiple " + quoteType + ", Quote References "
                + quoteIds.toString();
        String message = "";
        //finalDOB.getFlagsDOB().setQuoteStatusFlag("PEN");//@@Quote is Pending
        //ReportsSessionBeanHome home      = (ReportsSessionBeanHome)LookUpBean.getEJBHome("ReportsSessionBean");
        //ReportsSession remote   = (ReportsSession)home.create();
        //if(contactList.size()==0)
        //{
        to_emailIds = to_emailIds.replaceAll(";", ",");
        /*message  = "Dear Customer,\n\nThank you for the opportunity to provide this quotation.  All information is contained within the attachment."+
                    "  Should you have any queries please do not hesitate to contact us.\n\n\nRegards,\n"+creatorDetails+"\n"+terminalAddress;*/
        //message   = "Dear Customer,\n\n"+finalDOB.getEmailText()+"\n\n\nRegards,\n"+creatorDetails+"\n"+terminalAddress+"\n"+;       
        if (finalDOB.getUpdatedReportDOB() != null) {
            body = "Dear Customer,\n\nThis is a replacement quotation reference "
                    + request.getAttribute("quoteId") + ",replacing "
                    + finalDOB.getUpdatedReportDOB().getQuoteId() + ", due to a change in "
                    + (finalDOB.getEmailChargeName() != null ? finalDOB.getEmailChargeName()
                            : finalDOB.getUpdatedReportDOB().getChangeDesc())
                    + ",\n\n" + (finalDOB.getEmailText() != null ? finalDOB.getEmailText() : "") + "\n\n\n"
                    + (masterDOB.getCreatorDetails() != null ? masterDOB.getCreatorDetails() : "") + "\n\n"
                    + (masterDOB.getCompanyName() != null ? masterDOB.getCompanyName() : "") + "\n"
                    + (masterDOB.getTerminalAddress() != null ? masterDOB.getTerminalAddress() : "") + "\n\n"
                    + "Phone  " + (masterDOB.getPhoneNo() != null ? masterDOB.getPhoneNo() : "") + "\n"
                    + "Fax    " + (masterDOB.getFaxNo() != null ? masterDOB.getFaxNo() : "") + "\n" + "Mobile "
                    + (masterDOB.getMobileNo() != null ? masterDOB.getMobileNo() : "") + "\n\nEmail "
                    + (masterDOB.getUserEmailId() != null ? masterDOB.getUserEmailId() : ""); //@@Modified by Kameswari for the WPBN issue-61303
        } else {
            body = "Dear Customer,\n\n" + (finalDOB.getEmailText() != null ? finalDOB.getEmailText() : "")
                    + "\n\n\n" + (masterDOB.getCreatorDetails() != null ? masterDOB.getCreatorDetails() : "")
                    + "\n\n" + (masterDOB.getCompanyName() != null ? masterDOB.getCompanyName() : "") + "\n"
                    + (masterDOB.getTerminalAddress() != null ? masterDOB.getTerminalAddress() : "") + "\n\n"
                    + "Phone  " + (masterDOB.getPhoneNo() != null ? masterDOB.getPhoneNo() : "") + "\n"
                    + "Fax    " + (masterDOB.getFaxNo() != null ? masterDOB.getFaxNo() : "") + "\n" + "Mobile "
                    + (masterDOB.getMobileNo() != null ? masterDOB.getMobileNo() : "") + "\n\nEmail "
                    + (masterDOB.getUserEmailId() != null ? masterDOB.getUserEmailId() : ""); //@@Modified by Kameswari for the WPBN issue-61303
        }
        if ("on".equalsIgnoreCase(request.getParameter("email"))) {
            try {
                sendMail(fromEmailId, to_emailIds, subject, message, "Quote" + file_tsmp + ".pdf", null);
                sentEmailsList.add(to_emailIds);
            } catch (FoursoftException fs) {
                //Logger.error(FILE_NAME,"Error While Sending Mail.."+fs.getMessage());
                logger.error(FILE_NAME + "Error While Sending Mail.." + fs.getMessage());
                fs.printStackTrace();
                unsentEmailsList.add(to_emailIds);
            }
        }
        if ("on".equalsIgnoreCase(request.getParameter("fax"))) {
            if ("SG".equalsIgnoreCase(countryCode))
                faxMailIds = "fax#" + to_FaxIds + "@tcdhl.com";
            else
                faxMailIds = "ifax#" + to_FaxIds + "@tcdhl.com";
            try {
                sendMail(fromEmailId, faxMailIds, subject, message, "Quote" + file_tsmp + ".pdf", null);
                sentFaxList.add(to_FaxIds);
            } catch (FoursoftException fs) {
                //Logger.error(FILE_NAME,"Error While Sending Fax.."+fs.getMessage());
                logger.error(FILE_NAME + "Error While Sending Fax.." + fs.getMessage());
                fs.printStackTrace();
                unsentFaxList.add(to_FaxIds);
            }
        }
        //}
        //else
        //{
        int contactSize = contactList.size();
        for (int i = 0; i < contactSize; i++) {
            contactName = (String) contactList.get(i);
            /*message = "Dear "+contactName+",\n\nThank you for the opportunity to provide this Quotation. All information is contained within the attachment."+
             " Should you have any queries, please do not hesitate to contact us.\n\n\nRegards,\n"+creatorDetails+"\n"+terminalAddress;*/
            // message = "Dear "+contactName+",\n\n"+finalDOB.getEmailText()+"\n\n\nRegards,\n"+creatorDetails+"\n"+terminalAddress;         
            if (finalDOB.getUpdatedReportDOB() != null) {
                body = "Dear " + (contactName != null ? contactName : "")
                        + ",\n\nThis is a replacement quotation reference " + request.getAttribute("quoteId")
                        + ",replacing " + finalDOB.getUpdatedReportDOB().getQuoteId() + ", due to a change in "
                        + (finalDOB.getEmailChargeName() != null ? finalDOB.getEmailChargeName()
                                : finalDOB.getUpdatedReportDOB().getChangeDesc())
                        + ",\n\n" + finalDOB.getEmailText() != null
                                ? finalDOB.getEmailText()
                                : "" + "\n\n\n" + masterDOB.getCreatorDetails() != null
                                        ? masterDOB.getCreatorDetails()
                                        : "" + "\n\n" + masterDOB.getCompanyName() != null
                                                ? masterDOB.getCompanyName()
                                                : "" + "\n" + masterDOB.getTerminalAddress() != null
                                                        ? masterDOB.getTerminalAddress()
                                                        : "" + "\n\n" + "Phone  "
                                                                + masterDOB.getPhoneNo() != null
                                                                        ? masterDOB.getPhoneNo()
                                                                        : "" + "\n" + "Fax    "
                                                                                + masterDOB.getFaxNo() != null
                                                                                        ? masterDOB.getFaxNo()
                                                                                        : "" + "\n" + "Mobile "
                                                                                                + masterDOB
                                                                                                        .getMobileNo() != null
                                                                                                                ? masterDOB
                                                                                                                        .getMobileNo()
                                                                                                                : "" + "\n\nEmail "
                                                                                                                        + masterDOB
                                                                                                                                .getUserEmailId() != null
                                                                                                                                        ? masterDOB
                                                                                                                                                .getUserEmailId()
                                                                                                                                        : ""; //@@Modified by Kameswari for the WPBN issue-61303
            } else {
                body = "Dear " + (contactName != null ? contactName : "") + ",\n\n"
                        + finalDOB.getEmailText() != null
                                ? finalDOB.getEmailText()
                                : "" + "\n\n\n" + masterDOB.getCreatorDetails() != null
                                        ? masterDOB.getCreatorDetails()
                                        : "" + "\n\n" + masterDOB.getCompanyName() != null
                                                ? masterDOB.getCompanyName()
                                                : "" + "\n" + masterDOB.getTerminalAddress() != null
                                                        ? masterDOB.getTerminalAddress()
                                                        : "" + "\n\n" + "Phone  "
                                                                + masterDOB.getPhoneNo() != null
                                                                        ? masterDOB.getPhoneNo()
                                                                        : "" + "\n" + "Fax    "
                                                                                + masterDOB.getFaxNo() != null
                                                                                        ? masterDOB.getFaxNo()
                                                                                        : "" + "\n" + "Mobile "
                                                                                                + masterDOB
                                                                                                        .getMobileNo() != null
                                                                                                                ? masterDOB
                                                                                                                        .getMobileNo()
                                                                                                                : "" + "\n\nEmail "
                                                                                                                        + masterDOB
                                                                                                                                .getUserEmailId() != null
                                                                                                                                        ? masterDOB
                                                                                                                                                .getUserEmailId()
                                                                                                                                        : ""; //@@Modified by Kameswari for the WPBN issue-61303

            }
            if ("on".equalsIgnoreCase(request.getParameter("email"))) {
                try {
                    sendMail(fromEmailId, (String) contactEmailList.get(i), subject, message,
                            "Quote" + file_tsmp + ".pdf", null);
                    sentEmailsList.add(contactEmailList.get(i));
                } catch (FoursoftException fs) {
                    //Logger.error(FILE_NAME,"Error While Sending Mail.."+fs.getMessage());
                    logger.error(FILE_NAME + "Error While Sending Mail.." + fs.getMessage());
                    fs.printStackTrace();
                    unsentEmailsList.add(contactEmailList.get(i));
                }
            }
            if ("on".equalsIgnoreCase(request.getParameter("fax"))) {
                if ("SG".equalsIgnoreCase(countryCode))
                    to_FaxIds = "fax#" + contactFaxList.get(i) + "@tcdhl.com";
                else
                    to_FaxIds = "ifax#" + contactFaxList.get(i) + "@tcdhl.com";
                try {
                    sendMail(fromEmailId, to_FaxIds, subject, message, "Quote" + file_tsmp + ".pdf", null);
                    sentFaxList.add(contactFaxList.get(i));
                } catch (FoursoftException fs) {
                    //Logger.error(FILE_NAME,"Error While Sending Fax.."+fs.getMessage());
                    logger.error(FILE_NAME + "Error While Sending Fax.." + fs.getMessage());
                    fs.printStackTrace();
                    unsentFaxList.add(
                            contactFaxList.get(i) != null ? contactFaxList.get(i) : "No Fax Number Provided");
                }
            }
        }
        //}
        returnList.add(sentEmailsList);
        returnList.add(unsentEmailsList);
        returnList.add(sentFaxList);
        returnList.add(unsentFaxList);

        // System.out.println("Before Sending Mail------------------------------>");

        // System.out.println("End of mail sending and PDF Generation --------------------------------->");

    } catch (Exception e) {
        e.printStackTrace();
        //Logger.error(FILE_NAME,"Error while generating the PDF"+e.toString());
        logger.error(FILE_NAME + "Error while generating the PDF" + e.toString());
        //return 0;
        //throw new Exception("Error while generating PDF format");
    }
    return returnList;
}

From source file:Agenda.java

public void preparaPDF(Object document) throws IOException, BadElementException, DocumentException {
    //criando novo pdf
    Document pdf = (Document) document;

    //abrindo documento
    pdf.open();/* www.  jav a2  s  . c  om*/

    //modificando caracteristicas do documento
    pdf.setPageSize(PageSize.A4);

    //        //VERSAO FUNCIONAL    
    //        //criando paragrafo no texto
    //            Paragraph p = new Paragraph("Relatrio Contatos",            
    //            //editando configuracoes de fontes do texto
    //            FontFactory.getFont(FontFactory.COURIER, 14, Font.BOLD, new Color(255,150,255)));
    //            
    //        //definindo alinhamento
    //            p.setAlignment(Element.ALIGN_CENTER);
    //        
    //        //adiciona as modificaes ao documento
    //            pdf.add(p);

    //VERSAO CORRETA
    Paragraph p = new Paragraph();
    p.setFont(FontFactory.getFont(FontFactory.COURIER, 14, Font.BOLD, new Color(255, 255, 0)));
    p.add(new Phrase("Relatrio Contatos"));
    p.setAlignment(Element.ALIGN_CENTER);
    pdf.add(p);
}

From source file:QMSQuoteController.java

License:Open Source License

private int doPDFGeneration(QuoteFinalDOB finalDOB, HttpServletRequest request, HttpServletResponse response)
        throws Exception {

    int mailFlag = 0;
    int faxFlag = 0;
    int printFlag = 0;
    int returnFlag = 3;
    String transitTime = null;//from w ww.j a  va2  s  .  c om
    String[] contents = null;
    String[] levels = null;
    String[] aligns = null;
    String[] headFoot = null;
    //@@Added by Kameswari for the WPBN issue-61289
    ArrayList dobList = new ArrayList();
    QuoteAttachmentDOB attachmentDOB = null;
    //@@Added by Kameswari for the WPBN issue-146448
    ArrayList charges = null;
    int chargesSize = 0;
    QuoteCharges chargesDOB = null;
    ArrayList freightCharges = null;
    QuoteFreightLegSellRates legCharges = null;
    String str1[] = null;
    ArrayList frequency = new ArrayList();
    ArrayList carrier = new ArrayList();
    ArrayList transittime = new ArrayList();
    ArrayList ratevalidity = new ArrayList();
    ArrayList frequency_o = new ArrayList();
    ArrayList frequency_d = new ArrayList();
    ArrayList carrier_o = new ArrayList();
    ArrayList carrier_d = new ArrayList();
    ArrayList transit_o = new ArrayList();
    ArrayList transit_d = new ArrayList();
    ArrayList validity_o = new ArrayList();
    ArrayList validity_d = new ArrayList();
    int size = 0;
    //@@WPBN issue-146448
    ArrayList filesList = new ArrayList();
    File file = null;
    byte[] buffer = null;
    ArrayList bufferList = new ArrayList();
    ArrayList pdfFilesList = new ArrayList();
    HttpSession session = null;
    String percent = "";//Added by kiranv on 16/11/2011
    PdfWriter writer = null; //Method: doPDFGeneration Defect: PdfWriter is not closedSuggestion: Close and nullify the writer in the finally block.
    //@@ Added by subrahmanyam for the WPBN ISSUE: 146460 on 29/01/2009    
    QMSQuoteSessionHome home = null;
    QMSQuoteSession remote = null;
    //@@ Ended by subrahmanyam for the WPBN ISSUE: 146460 on 29/01/2009   

    //@@ WPBN issue-61289
    try {

        DecimalFormat df = new DecimalFormat("###,###,###,##0.00");
        QuoteHeader headerDOB = finalDOB.getHeaderDOB();
        QuoteMasterDOB masterDOB = finalDOB.getMasterDOB();
        ESupplyDateUtility eSupplyDateUtility = new ESupplyDateUtility();
        ESupplyGlobalParameters loginbean = (ESupplyGlobalParameters) request.getSession()
                .getAttribute("loginbean");
        eSupplyDateUtility.setPatternWithTime("DD-MONTH-YYYY");
        //eSupplyDateUtility.setPatternWithTime(loginbean.getUserPreferences().getDateFormat());
        //@@ Commented & Added by subrahmanyam for the Effective pbn Issue 212006 on # 26-Jul-10
        /* String[] strDate  = eSupplyDateUtility.getDisplayStringArray(headerDOB.getDateOfQuotation());
        String[] effDate  = eSupplyDateUtility.getDisplayStringArray(headerDOB.getEffDate());
        */
        String[] strDate = null;
        String[] effDate = null;
        if ("View".equalsIgnoreCase(request.getParameter("Operation"))) {
            //@@Modified by kiran.v on 05/08/2011 for Wpbn Issue-   256087
            if ("PDF".equalsIgnoreCase(request.getParameter("pdf"))) {
                strDate = eSupplyDateUtility.getDisplayStringArray(masterDOB.getCreatedDate());
                //   effDate  = eSupplyDateUtility.getDisplayStringArray(headerDOB.getEffDate());
                effDate = eSupplyDateUtility.getDisplayStringArray(headerDOB.getEffDate());
            } else {

                strDate = eSupplyDateUtility.getDisplayStringArray(masterDOB.getCreatedDate());
                effDate = eSupplyDateUtility.getDisplayStringArray(headerDOB.getEffDate());

            } //@@Ended by kiran.v

        } else {
            strDate = eSupplyDateUtility.getDisplayStringArray(headerDOB.getDateOfQuotation());
            effDate = eSupplyDateUtility.getDisplayStringArray(headerDOB.getEffDate());

        }

        String[] validDate;
        String validUptoStr = null;
        if (headerDOB.getValidUpto() != null) {
            validDate = eSupplyDateUtility.getDisplayStringArray(headerDOB.getValidUpto());
            validUptoStr = validDate[0];
        }

        StringBuffer attentionTo = new StringBuffer("");
        if (masterDOB.getCustContactNames() != null) {
            for (int i = 0; i < masterDOB.getCustContactNames().length; i++) {
                attentionTo.append(
                        masterDOB.getCustContactNames()[i] != null ? masterDOB.getCustContactNames()[i] : "");
                if (i != (masterDOB.getCustContactNames().length - 1))
                    attentionTo.append(",");
            }
        }
        charges = finalDOB.getLegDetails();

        chargesSize = charges.size();
        // System.out.println("Before Document Objec--------------------------->");
        Document document = new Document(PageSize.A4, 54f, 54f, 68.4f, 68.4f);//@@ 36 points represent 0.5 inch
        String PDF_FILE_NAME = "Approved.pdf";
        document.addTitle("Approved Report");
        document.addSubject("Report PDF");
        document.addKeywords("Test, Key Words");
        document.addAuthor("QuoteShop");
        document.addCreator("QuoteShop");
        document.addCreationDate();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ByteArrayOutputStream baosFile = new ByteArrayOutputStream();
        writer = PdfWriter.getInstance(document, baos);
        // int b = writer.getPageNumber();
        baos.close();

        document.open();
        // PdfFileStamp fileStamp = new PdfFileStamp("Approved.pdf");

        //PdfPageEventHelper helper

        //writer.setPageEvent(new PdfPageEventHelper());

        //document.setMargins(15,15,15,15);            
        // Draw a rectangle inside the page's margins.
        //PdfContentByte cb = writer.getDirectContent();
        //cb.rectangle (document.left (), document.bottom (), document.right ()-document.left (),document.top ()-document.bottom ());
        //cb.stroke ();
        int[] widths = { 12, 12, 12, 12, 12, 12, 28 };
        Table mainT = new Table(7);
        mainT.setWidth(100);
        mainT.setWidths(widths);
        mainT.setBorderColor(Color.white);
        mainT.setPadding(1);
        mainT.setSpacing(0);

        Phrase headingPhrase = new Phrase("", FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.BLACK));
        Cell cellHeading = new Cell(headingPhrase);
        cellHeading.setBorderColor(new Color(255, 255, 255));
        cellHeading.setHorizontalAlignment(cellHeading.ALIGN_CENTER);
        cellHeading.setBorderWidth(0);
        cellHeading.setColspan(6);
        mainT.addCell(cellHeading);

        Cell imageCell = new Cell();
        java.net.URL url = getServletConfig().getServletContext().getResource("/images/DHLlogo.gif");
        Image img0 = Image.getInstance(url);
        img0.setAlignment(Image.ALIGN_RIGHT);

        //imageCell.setWidth("");
        imageCell.setColspan(1);
        imageCell.setHorizontalAlignment(imageCell.ALIGN_RIGHT);
        imageCell.add(img0);
        imageCell.setBorderWidth(0);
        imageCell.setBorderWidth(0);
        imageCell.setNoWrap(true);
        mainT.addCell(imageCell);
        mainT.setAlignment(mainT.ALIGN_CENTER);
        document.add(mainT);

        // System.out.println("After Image && Before Content--------------------------->");

        Table partCountry = new Table(1, 6);
        partCountry.setBorderWidth(0);
        partCountry.setWidth(100);
        partCountry.setBorderColor(Color.black);
        partCountry.setPadding(1);
        partCountry.setSpacing(0);
        partCountry.setAutoFillEmptyCells(true);
        //partCountry.setTableFitsPage(true);
        partCountry.setAlignment(partCountry.ALIGN_CENTER);
        partCountry.setBorderWidth(0);
        ;
        Cell cellCountry;

        String shipmentMode = "";
        if (!finalDOB.isMultiModalQuote()) {
            if (finalDOB.getMasterDOB().getShipmentMode() == 1) {
                shipmentMode = "AIR FREIGHT PROPOSAL";
                transitTime = "Approximate Transit Time";
            } else if (finalDOB.getMasterDOB().getShipmentMode() == 2) {
                shipmentMode = "SEA FREIGHT PROPOSAL";
                transitTime = "Approximate Transit Days";
            } else if (finalDOB.getMasterDOB().getShipmentMode() == 4) {
                shipmentMode = "TRUCK FREIGHT PROPOSAL";
                transitTime = "Approximate Transit Time";
            }
        } else {
            shipmentMode = " MULTI-MODAL FREIGHT PROPOSAL ";
            transitTime = "Approximate Transit time and Days";

        }

        Chunk chk = new Chunk(shipmentMode, FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setWidth("100");
        cellCountry.setBorderWidth(0);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(10.0f);
        cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
        partCountry.addCell(cellCountry);

        if ("MY".equalsIgnoreCase(masterDOB.getCountryId())) {
            chk = new Chunk(
                    (headerDOB.getOriginCountry() != null ? headerDOB.getOriginCountry().toUpperCase() : "")
                            + " TO "
                            + (headerDOB.getDestinationCountry() != null
                                    ? headerDOB.getDestinationCountry().toUpperCase()
                                    : ""),
                    FontFactory.getFont("ARIAL", 16, Font.BOLD, Color.BLUE));
            cellCountry = new Cell(chk);
            cellCountry.setWidth("100");
            cellCountry.setBorderWidth(0);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(13.0f);//@@Do Not Decrease.
            cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
            partCountry.addCell(cellCountry);

            cellCountry = new Cell("");
            cellCountry.setBorderWidth(0);
            cellCountry.setLeading(5.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk(headerDOB.getCustomerName(),
                    FontFactory.getFont("ARIAL", 14, Font.BOLD, Color.BLUE));
            cellCountry = new Cell(chk);
            cellCountry.setHeader(true);
            cellCountry.setWidth("100");
            cellCountry.setBorderWidth(0);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(10.0f);
            cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
            partCountry.addCell(cellCountry);

            chk = new Chunk("ATTENTION TO: " + attentionTo.toString(),
                    FontFactory.getFont("ARIAL", 14, Font.BOLD, Color.BLUE));
            cellCountry = new Cell(chk);
            cellCountry.setWidth("100");
            cellCountry.setBorderWidth(0);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(10.0f);
            cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
            partCountry.addCell(cellCountry);
        } else {
            chk = new Chunk(
                    (headerDOB.getOriginCountry() != null ? headerDOB.getOriginCountry().toUpperCase() : "")
                            + " TO "
                            + (headerDOB.getDestinationCountry() != null
                                    ? headerDOB.getDestinationCountry().toUpperCase()
                                    : ""),
                    FontFactory.getFont("ARIAL", 16, Font.BOLD, Color.RED));
            cellCountry = new Cell(chk);
            cellCountry.setWidth("100");
            cellCountry.setBorderWidth(0);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(13.0f);//@@Do Not Decrease.
            cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
            partCountry.addCell(cellCountry);

            cellCountry = new Cell("");
            cellCountry.setBorderWidth(0);
            cellCountry.setLeading(5.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk(headerDOB.getCustomerName(),
                    FontFactory.getFont("ARIAL", 14, Font.BOLD, Color.RED));
            cellCountry = new Cell(chk);
            cellCountry.setHeader(true);
            cellCountry.setWidth("100");
            cellCountry.setBorderWidth(0);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(10.0f);
            cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
            partCountry.addCell(cellCountry);

            chk = new Chunk("ATTENTION TO: " + attentionTo.toString(),
                    FontFactory.getFont("ARIAL", 14, Font.BOLD, Color.RED));
            cellCountry = new Cell(chk);
            cellCountry.setWidth("100");
            cellCountry.setBorderWidth(0);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(10.0f);
            cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
            partCountry.addCell(cellCountry);
        }
        cellCountry = new Cell("");
        cellCountry.setBorderWidth(0);
        cellCountry.setLeading(5.0f);
        partCountry.addCell(cellCountry);

        chk = new Chunk("QUOTE REFERENCE: " + masterDOB.getQuoteId(),
                FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setWidth("100");
        cellCountry.setBorderWidth(0);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(10.0f);
        cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
        partCountry.addCell(cellCountry);
        chk = new Chunk("DATE OF QUOTATION: " + strDate[0],
                FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setWidth("100");
        cellCountry.setBorderWidth(0);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(10.0f);
        cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
        partCountry.addCell(cellCountry);

        document.add(partCountry);

        contents = masterDOB.getContentOnQuote();
        levels = masterDOB.getLevels();
        aligns = masterDOB.getAlign();
        headFoot = masterDOB.getHeaderFooter();
        Table content = null;
        if (contents != null && contents.length > 0) {
            content = new Table(1);
            content.setOffset(5);
            content.setWidth(100);
            content.setPadding(1);
            content.setSpacing(0);
            content.setBackgroundColor(Color.WHITE);
            content.setBorderColor(Color.black);
            content.setBorderWidth(1f);
            Cell cellContent = null;
            chk = null;
            int headFootLen = headFoot.length;
            for (int i = 0; i < headFootLen; i++) {
                if (headFoot[i] != null && "H".equalsIgnoreCase(headFoot[i])) {
                    chk = new Chunk(contents[i], FontFactory.getFont("ARIAL", 7, Font.ITALIC, Color.BLACK));
                    cellContent = new Cell(chk);
                    cellContent.setBorder(0);
                    cellContent.setLeading(8.0f);
                    cellContent.setBackgroundColor(Color.LIGHT_GRAY);
                    if ("L".equalsIgnoreCase(aligns[i]))
                        cellContent.setHorizontalAlignment(cellContent.ALIGN_LEFT);
                    else if ("C".equalsIgnoreCase(aligns[i]))
                        cellContent.setHorizontalAlignment(cellContent.ALIGN_CENTER);
                    else if ("R".equalsIgnoreCase(aligns[i]))
                        cellContent.setHorizontalAlignment(cellContent.ALIGN_RIGHT);
                    content.addCell(cellContent);
                }
            }
            document.add(content);
        }
        //@@Added by Kameswari for the WPBN issue-146448 on 03/12/08
        for (int i = 0; i < chargesSize; i++) {
            legCharges = (QuoteFreightLegSellRates) charges.get(i);

            freightCharges = legCharges.getFreightChargesList();
            chargesDOB = (QuoteCharges) freightCharges.get(0);
            if (chargesDOB.getValidUpto() != null) {
                str1 = eSupplyDateUtility.getDisplayStringArray(chargesDOB.getValidUpto());
            }
            ///////////////////////////////////////////Second Table////////////////////////////
            if (chargesSize > 1) {
                if ("Y".equalsIgnoreCase(chargesDOB.getFrequencyChecked())
                        || "on".equalsIgnoreCase(chargesDOB.getFrequencyChecked())) {
                    frequency.add(chargesDOB.getFrequency());
                    frequency_o.add(legCharges.getOrigin());
                    frequency_d.add(legCharges.getDestination());
                }
                if ("Y".equalsIgnoreCase(chargesDOB.getTransitTimeChecked())
                        || "on".equalsIgnoreCase(chargesDOB.getTransitTimeChecked())) {
                    transittime.add(chargesDOB.getTransitTime());
                    transit_o.add(legCharges.getOrigin());
                    transit_d.add(legCharges.getDestination());
                }
                if ("Y".equalsIgnoreCase(chargesDOB.getCarrierChecked())
                        || "on".equalsIgnoreCase(chargesDOB.getCarrierChecked())) {
                    carrier.add(chargesDOB.getCarrier());
                    carrier_o.add(legCharges.getOrigin());
                    carrier_d.add(legCharges.getDestination());
                }
                if ("Y".equalsIgnoreCase(chargesDOB.getRateValidityChecked())
                        || "on".equalsIgnoreCase(chargesDOB.getRateValidityChecked())) {
                    if (chargesDOB.getValidUpto() != null) {
                        str1 = eSupplyDateUtility.getDisplayStringArray(chargesDOB.getValidUpto());
                    }
                    ratevalidity.add(str1[0]);
                    validity_o.add(legCharges.getOrigin());
                    validity_d.add(legCharges.getDestination());
                }
            } else {

                if ("Y".equalsIgnoreCase(chargesDOB.getFrequencyChecked())
                        || "on".equalsIgnoreCase(chargesDOB.getFrequencyChecked())) {
                    frequency.add(chargesDOB.getFrequency());
                }
                if ("Y".equalsIgnoreCase(chargesDOB.getTransitTimeChecked())
                        || "on".equalsIgnoreCase(chargesDOB.getTransitTimeChecked())) {
                    transittime.add(chargesDOB.getTransitTime());
                }
                if ("Y".equalsIgnoreCase(chargesDOB.getCarrierChecked())
                        || "on".equalsIgnoreCase(chargesDOB.getCarrierChecked())) {
                    carrier.add(chargesDOB.getCarrier());
                }
                if ("Y".equalsIgnoreCase(chargesDOB.getRateValidityChecked())
                        || "on".equalsIgnoreCase(chargesDOB.getRateValidityChecked())) {
                    if (chargesDOB.getValidUpto() != null) {
                        str1 = eSupplyDateUtility.getDisplayStringArray(chargesDOB.getValidUpto());
                        ratevalidity.add(str1[0]);
                    }

                }

            }
        } // partCountry  =  new Table(2,13);
        size = frequency.size() + transittime.size() + carrier.size() + ratevalidity.size();

        partCountry = new Table(2, 13 + size);
        //@@WPBN issue-146448 on 03/12/08
        partCountry.setOffset(5);
        partCountry.setWidth(100);
        partCountry.setPadding(1);
        partCountry.setSpacing(0);
        partCountry.setBackgroundColor(Color.WHITE);
        partCountry.setBorderColor(Color.black);
        partCountry.setBorderWidth(1f);

        chk = new Chunk("Prepared By: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setBackgroundColor(Color.lightGray);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        chk = new Chunk(
                "   " + (headerDOB.getPreparedBy() != null ? headerDOB.getPreparedBy().toUpperCase() : ""),
                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        chk = new Chunk("SERVICE INFORMATION: ", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setColspan(2);
        cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
        cellCountry.setBackgroundColor(Color.ORANGE);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        chk = new Chunk("Agent: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setBackgroundColor(Color.lightGray);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        chk = new Chunk("   " + (headerDOB.getAgent() != null ? headerDOB.getAgent().toUpperCase() : ""),
                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        //@@ Added by subrahmanyam for the WPBN ISSUE: 150460 ON 23/12/2008                
        if ("EXW".equalsIgnoreCase(headerDOB.getIncoTerms()) || "FAS".equalsIgnoreCase(headerDOB.getIncoTerms())
                || "FCA".equalsIgnoreCase(headerDOB.getIncoTerms())
                || "FOB".equalsIgnoreCase(headerDOB.getIncoTerms())) {
            chk = new Chunk("Place Of Acceptance: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);
        } else {
            chk = new Chunk("Place Of Delivery: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);
        }
        //@@ Ended by subrahmanyam for the WPBN ISSUE: 150460 ON 23/12/2008    

        chk = new Chunk("   " + (headerDOB.getCargoAcceptancePlace() != null
                ? headerDOB.getCargoAcceptancePlace().toUpperCase()
                : ""), FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        chk = new Chunk("Origin Port: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setBackgroundColor(Color.lightGray);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        chk = new Chunk("   "
                + ((headerDOB.getOriginPortName() != null ? headerDOB.getOriginPortName().toUpperCase() + ", "
                        : ""))
                + (headerDOB.getOriginPortCountry() != null ? headerDOB.getOriginPortCountry().toUpperCase()
                        : ""),
                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        chk = new Chunk("Destination Port: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setBackgroundColor(Color.lightGray);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        chk = new Chunk("   "
                + ((headerDOB.getDestPortName() != null ? headerDOB.getDestPortName().toUpperCase() + ", "
                        : ""))
                + (headerDOB.getDestPortCountry() != null ? headerDOB.getDestPortCountry().toUpperCase() : ""),
                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        // @@Commented by subrahmanyam for the enhancement #148546 on 09/12/2008            
        /* chk = new Chunk("Routing: ",FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
         cellCountry = new Cell(chk);
         cellCountry.setBackgroundColor(Color.lightGray);
         cellCountry.setNoWrap(true); cellCountry.setLeading(8.0f);
         partCountry.addCell(cellCountry);          
         chk = new Chunk("   "+(headerDOB.getRouting()!=null?headerDOB.getRouting():""),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
         cellCountry = new Cell(chk);
         cellCountry.setNoWrap(true); cellCountry.setLeading(8.0f);
         partCountry.addCell(cellCountry);
                
                
         chk = new Chunk("   "+(headerDOB.getRouting()!=null?headerDOB.getRouting().toUpperCase():""),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
         cellCountry = new Cell(chk);
         cellCountry.setNoWrap(true); cellCountry.setLeading(8.0f);
         partCountry.addCell(cellCountry);*/
        //@@ Ended by subrahmanyam for the enhanement #148546 on 09/12/2008             

        chk = new Chunk("Commodity or Product: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setBackgroundColor(Color.lightGray);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        chk = new Chunk(
                "   " + (headerDOB.getCommodity() != null ? headerDOB.getCommodity().toUpperCase() : ""),
                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        chk = new Chunk("Type Of Service Quoted: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setBackgroundColor(Color.lightGray);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);
        //@@Added by kiran.v on 04/11/2011 for Wpbn Issue -277534
        int index = headerDOB.getTypeOfService() != null ? headerDOB.getTypeOfService().length() : 0;
        if (index < 47)
            chk = new Chunk("   "
                    + (headerDOB.getTypeOfService() != null ? headerDOB.getTypeOfService().toUpperCase() : ""),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        else
            chk = new Chunk(
                    "   " + (headerDOB.getTypeOfService() != null
                            ? headerDOB.getTypeOfService().toUpperCase().substring(0, 47) + "\n   "
                                    + headerDOB.getTypeOfService().toUpperCase().substring(47)
                            : ""),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        // ended by kiran.v
        cellCountry = new Cell(chk);
        //@@commented by kiran.v on 03/11/2011 for Wpbn Issue
        //cellCountry.setNoWrap(true); 
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        //@@Added by Kameswari for the WPBN issue-146448 on 03/12/08
        int freqSize = frequency.size();
        for (int i = 0; i < freqSize; i++) {
            if (chargesSize > 1) {
                chk = new Chunk("Frequency (" + frequency_o.get(i) + "-" + frequency_d.get(i) + ")",
                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cellCountry = new Cell(chk);
                cellCountry.setBackgroundColor(Color.lightGray);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(8.0f);
                partCountry.addCell(cellCountry);
                chk = new Chunk("   " + frequency.get(i).toString().toUpperCase(),
                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cellCountry = new Cell(chk);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(8.0f);
                partCountry.addCell(cellCountry);
            } else {
                chk = new Chunk("Frequency ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cellCountry = new Cell(chk);
                cellCountry.setBackgroundColor(Color.lightGray);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(8.0f);
                partCountry.addCell(cellCountry);
                chk = new Chunk("   " + frequency.get(i).toString().toUpperCase(),
                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cellCountry = new Cell(chk);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(8.0f);
                partCountry.addCell(cellCountry);
            }
        }
        int carierSize = carrier.size();
        for (int i = 0; i < carierSize; i++) {
            if (chargesSize > 1) {
                chk = new Chunk("Carrier (" + carrier_o.get(i) + "-" + carrier_d.get(i) + ")",
                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cellCountry = new Cell(chk);
                cellCountry.setBackgroundColor(Color.lightGray);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(8.0f);
                partCountry.addCell(cellCountry);
                chk = new Chunk("   " + carrier.get(i).toString().toUpperCase(),
                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cellCountry = new Cell(chk);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(8.0f);
                partCountry.addCell(cellCountry);
            } else {
                chk = new Chunk("Carrier ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cellCountry = new Cell(chk);
                cellCountry.setBackgroundColor(Color.lightGray);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(8.0f);
                partCountry.addCell(cellCountry);
                chk = new Chunk("   " + carrier.get(i).toString().toUpperCase(),
                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cellCountry = new Cell(chk);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(8.0f);
                partCountry.addCell(cellCountry);
            }
        }
        int tTimeSize = transittime.size();
        for (int i = 0; i < tTimeSize; i++) {
            if (chargesSize > 1) {
                chk = new Chunk(transitTime + "(" + transit_o.get(i) + "-" + transit_d.get(i) + ")",
                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cellCountry = new Cell(chk);
                cellCountry.setBackgroundColor(Color.lightGray);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(8.0f);
                partCountry.addCell(cellCountry);
                chk = new Chunk("   " + transittime.get(i).toString().toUpperCase(),
                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cellCountry = new Cell(chk);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(8.0f);
                partCountry.addCell(cellCountry);
            } else {
                chk = new Chunk(transitTime + " ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cellCountry = new Cell(chk);
                cellCountry.setBackgroundColor(Color.lightGray);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(8.0f);
                partCountry.addCell(cellCountry);
                chk = new Chunk("   " + transittime.get(i).toString().toUpperCase(),
                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cellCountry = new Cell(chk);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(8.0f);
                partCountry.addCell(cellCountry);
            }
        }
        int rTvalSize = ratevalidity.size();
        for (int i = 0; i < rTvalSize; i++) {
            if (chargesSize > 1) {
                chk = new Chunk("Freight Rate Validity(" + validity_o.get(i) + "-" + validity_d.get(i) + ")",
                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cellCountry = new Cell(chk);
                cellCountry.setBackgroundColor(Color.lightGray);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(8.0f);
                partCountry.addCell(cellCountry);
                chk = new Chunk("   " + ratevalidity.get(i).toString().toUpperCase(),
                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cellCountry = new Cell(chk);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(8.0f);
                partCountry.addCell(cellCountry);
            } else {
                chk = new Chunk("Freight Rate Validity ",
                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cellCountry = new Cell(chk);
                cellCountry.setBackgroundColor(Color.lightGray);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(8.0f);
                partCountry.addCell(cellCountry);
                chk = new Chunk("   " + ratevalidity.get(i).toString().toUpperCase(),
                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cellCountry = new Cell(chk);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(8.0f);
                partCountry.addCell(cellCountry);
            }
        }
        //@@WPBN issue-146448 on 03/12/08
        chk = new Chunk("Incoterms: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setBackgroundColor(Color.lightGray);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        chk = new Chunk(
                "   " + (headerDOB.getIncoTerms() != null ? headerDOB.getIncoTerms().toUpperCase() : ""),
                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        chk = new Chunk("Notes: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setBackgroundColor(Color.lightGray);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        //@@ COmmented by subrahmanyam for the wpbn issue:145510  on 10/12/2008     
        /*  chk = new Chunk("   "+(headerDOB.getNotes()!=null?headerDOB.getNotes().toUpperCase()+'\n'+"nnnnnnnnnn":""),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setNoWrap(true); cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);*/
        //@@ Added by subrahmanyam for the wpbn issue: 145510on 10/12/2008          
        chk = new Chunk(" " + (headerDOB.getNotes() != null ? headerDOB.getNotes().toUpperCase() + '\n' : ""),
                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);
        //@@ ended by subrahmanyam for the wpbn issue: 145510  on 10/12/2008 

        chk = new Chunk("Date Effective: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setBackgroundColor(Color.lightGray);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        chk = new Chunk("   " + (effDate[0] != null ? effDate[0] : ""),
                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        chk = new Chunk("Validity Of Quote: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setBackgroundColor(Color.lightGray);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        chk = new Chunk("   " + (validUptoStr != null ? validUptoStr : "VALID UNTIL FURTHER NOTICE"),
                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cellCountry = new Cell(chk);
        cellCountry.setNoWrap(true);
        cellCountry.setLeading(8.0f);
        partCountry.addCell(cellCountry);

        if (headerDOB.getPaymentTerms() != null && headerDOB.getPaymentTerms().trim().length() != 0) {
            chk = new Chunk("Payment Terms: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("   " + headerDOB.getPaymentTerms(),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);
        }

        document.add(partCountry);
        partCountry.complete();
        //System.out.println("After Page Country-------------------------------->");
        //Origin Charges
        //document.setMargins(10,10,10,10);
        // b1= writer.getPageNumber();

        ArrayList originCharges = finalDOB.getOriginChargesList();

        int[] originIndices = finalDOB.getSelectedOriginChargesListIndices();
        int originChargesSize = 0;
        if (originIndices != null)
            originChargesSize = originIndices.length;
        else
            originChargesSize = 0;

        //Destination
        ArrayList destCharges = finalDOB.getDestChargesList();
        int[] destIndices = finalDOB.getSelctedDestChargesListIndices();
        int destChargesSize = 0;
        if (destIndices != null)
            destChargesSize = destIndices.length;
        else
            destChargesSize = 0;

        //@@Added by Kameswari for the WPBN issue-146448
        charges = finalDOB.getLegDetails();
        chargesSize = charges.size();

        Table chargeCountry = null;
        //Table chargeCountry1= null;
        Cell cell = null;
        // float cellWidths[]   = {40,20,10,15,25};//@@Added by Kameswari for the WPBN issue - on 12/11/08
        float cellWidths[] = { 40, 20, 10, 15, 25, 15 };
        float cellWidths1 = 40;

        /* chk = new Chunk("Charge Name",FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
         Cell cell = new Cell(chk);
         cell.setHeader(true);
         cell.setBackgroundColor(Color.ORANGE);
         cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
         chargeCountry.addCell(cell);
                 
         chk = new Chunk("Breakpoint",FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
          cell = new Cell(chk);
         cell.setHeader(true);
         cell.setBackgroundColor(Color.ORANGE);
         cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
         chargeCountry.addCell(cell);
                 
         chk = new Chunk("Currency",FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
          cell = new Cell(chk);
         cell.setHeader(true);
         cell.setBackgroundColor(Color.ORANGE);
         cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
         chargeCountry.addCell(cell);
                 
         chk = new Chunk("Rate",FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
          cell = new Cell(chk);
         cell.setHeader(true);
         cell.setBackgroundColor(Color.ORANGE);
         cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
         chargeCountry.addCell(cell);
                 
         chk = new Chunk("Basis",FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
          cell = new Cell(chk);
         cell.setHeader(true);
         cell.setBackgroundColor(Color.ORANGE);
         cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
         chargeCountry.addCell(cell);           
                 
         chargeCountry.endHeaders();
         System.out.println("End of Charge Headers--------------------------------->");
         System.out.println("");*/
        //    boolean b3 = document.newPage();
        //  QuoteCharges chargesDOB           = null;
        ArrayList originChargeInfo = null;
        int originChargesInfoSize = 0;
        QuoteChargeInfo chargeInfo = null;
        if (originChargesSize > 0) {
            /*  if(b1>1)
             {
              chk = new Chunk("QUOTE REFERENCE:"+masterDOB.getQuoteId(),FontFactory.getFont("ARIAL", 10, Font.BOLD,Color.BLACK));
             cell = new Cell(chk);
             cell.setColspan(5);cell.setLeading(10.0f);
             cell.setBackgroundColor(Color.WHITE);                
             cell.setHeader(true);
             cell.setBorder(0);
             chargeCountry.addCell(cell); 
             }*/
            // chargeCountry  = new Table(5);
            chargeCountry = new Table(6);
            chargeCountry.setWidth(100);
            chargeCountry.setWidths(cellWidths);
            chargeCountry.setPadding(1);
            chargeCountry.setSpacing(0);
            chargeCountry.setOffset(5);
            chargeCountry.setBackgroundColor(Color.WHITE);
            chargeCountry.setBorderColor(Color.black);
            chargeCountry.setDefaultHorizontalAlignment(Element.ALIGN_CENTER);
            chargeCountry.setBorderWidth(1f);

            //@@Commented and Modified by Kameswari for the internal issue on 09/04/09
            /*chk = new Chunk("ORIGIN CHARGES",FontFactory.getFont("ARIAL", 8, Font.BOLD,Color.BLACK));
            cell = new Cell(chk);
            //cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
            cell.setColspan(6);
            cell.setLeading(10.0f);
            cell.setBackgroundColor(Color.ORANGE);                
            cell.setHeader(true);
            chargeCountry.addCell(cell);*/
            //   boolean b = document.newPage();

            chk = new Chunk("Origin Charges", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cell = new Cell(chk);
            //cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
            // cell.setColspan(6);
            cell.setLeading(10.0f);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setHeader(true);
            chargeCountry.addCell(cell);
            chk = new Chunk("Weight Break Slab", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cell = new Cell(chk);
            //cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
            // cell.setColspan(6);
            cell.setLeading(10.0f);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setHeader(true);
            chargeCountry.addCell(cell);
            chk = new Chunk("Currency", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cell = new Cell(chk);
            //cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
            // cell.setColspan(6);
            cell.setLeading(10.0f);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setHeader(true);
            chargeCountry.addCell(cell);
            chk = new Chunk("Charge Rate", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cell = new Cell(chk);
            //cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
            // cell.setColspan(6);
            cell.setLeading(10.0f);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setHeader(true);
            chargeCountry.addCell(cell);
            chk = new Chunk("Basis", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell = new Cell(chk);
            //cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
            // cell.setColspan(6);
            cell.setLeading(10.0f);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setHeader(true);
            chargeCountry.addCell(cell);
            chk = new Chunk("Density Ratio", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cell = new Cell(chk);
            //cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
            // cell.setColspan(6);
            cell.setLeading(10.0f);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setHeader(true);
            chargeCountry.addCell(cell);

            //chargeCountry.endHeaders();

            for (int i = 0; i < originChargesSize; i++) {
                if (originIndices[i] != -1) {
                    chargesDOB = (QuoteCharges) originCharges.get(originIndices[i]);
                    logger.info("Origin Charges doPDFGeneration::" + i + ":" + chargesDOB); // newly added                  
                    originChargeInfo = chargesDOB.getChargeInfoList();
                    originChargesInfoSize = originChargeInfo.size();
                    int m = 0;//146455
                    String breakPoint = null;//146455
                    for (int k = 0; k < originChargesInfoSize; k++) {
                        chargeInfo = (QuoteChargeInfo) originChargeInfo.get(k);
                        if (k == 0) {
                            if ("B".equalsIgnoreCase(chargesDOB.getSellBuyFlag())
                                    || "S".equalsIgnoreCase(chargesDOB.getSellBuyFlag()))
                                chk = new Chunk(
                                        chargesDOB.getExternalName() != null ? chargesDOB.getExternalName()
                                                : "",
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            else
                                chk = new Chunk(
                                        chargesDOB.getChargeDescriptionId() != null
                                                ? chargesDOB.getChargeDescriptionId()
                                                : "",
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));

                            cell = new Cell(chk);
                            cell.setLeading(9.0f);
                            //cell.setRowspan(originChargesInfoSize);
                            //cell.setBorderWidth(0);
                            cell.setBackgroundColor(Color.lightGray);
                            cell.setHeader(true);
                            cell.setHorizontalAlignment(cell.ALIGN_LEFT);
                            chargeCountry.addCell(cell);
                        } else {
                            cell = new Cell("");
                            cell.setLeading(8.0f);
                            cell.setBackgroundColor(Color.lightGray);
                            cell.setHeader(true);
                            cell.setBorderWidth(0);
                            chargeCountry.addCell(cell);
                        }
                        //@@ Commented by subrahmanyam for 146455 on 19/02/09
                        /* chk = new Chunk((chargeInfo.getBreakPoint()!=null && !"Absolute".equalsIgnoreCase(chargeInfo.getBreakPoint()) && !"Percent".equalsIgnoreCase(chargeInfo.getBreakPoint()))?chargeInfo.getBreakPoint().toUpperCase():"",FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                         cell = new Cell(chk);cell.setLeading(8.0f);
                         cell.setBackgroundColor(Color.lightGray);
                         cell.setHeader(true);
                         chargeCountry.addCell(cell);*/
                        //@@ Added by subrahmanyam for 146455 on 19/02/09                      

                        if (chargeInfo.getBreakPoint().equalsIgnoreCase("MIN")) {
                            breakPoint = "Min";
                        }

                        else if (chargeInfo.getBreakPoint().equalsIgnoreCase("FLAT")) {
                            breakPoint = "Flat";
                        }

                        else if (chargeInfo.getBreakPoint().equalsIgnoreCase("MAX")) {
                            breakPoint = "Max";
                        } else if (chargeInfo.getBreakPoint().equalsIgnoreCase("CSF")) {
                            breakPoint = "Absolute";
                        } else if (chargeInfo.getBreakPoint().equalsIgnoreCase("SURCHARGE")) {
                            breakPoint = "Percent";
                        } else if (chargeInfo.getBreakPoint().equalsIgnoreCase("BASE")) {
                            breakPoint = "Base";
                        }

                        else {
                            breakPoint = chargeInfo.getBreakPoint();
                        }

                        chk = new Chunk(
                                breakPoint != null && !"Absolute".equalsIgnoreCase(breakPoint)
                                        && !"Percent".equalsIgnoreCase(breakPoint) ? breakPoint : "",
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell = new Cell(chk);
                        cell.setLeading(8.0f);
                        cell.setBackgroundColor(Color.lightGray);
                        cell.setHeader(true);
                        chargeCountry.addCell(cell);
                        //@@ Ended by subrahmanyam for 146455 on 19/02/09                

                        chk = new Chunk(chargeInfo.getCurrency(),
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell = new Cell(chk);
                        cell.setHeader(true);
                        cell.setLeading(8.0f);
                        //cell.setBackgroundColor(Color.lightGray);
                        chargeCountry.addCell(cell);
                        //@@Modified by kiran.v on 03/11/2011 for Wpbn Issue
                        // chk = new Chunk(df.format(chargeInfo.getSellRate())+(chargeInfo.isPercentValue()?" %":""),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                        //@@Added by kiran.v on 16/11/2011
                        percent = chargeInfo.isPercentValue() ? "%" : "";
                        chk = new Chunk(round1(chargeInfo.getSellRate(), percent) + (percent),
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell = new Cell(chk);
                        cell.setHeader(true);
                        cell.setLeading(8.0f);
                        chargeCountry.addCell(cell);

                        chk = new Chunk(chargeInfo.getBasis() != null ? chargeInfo.getBasis() : "",
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell = new Cell(chk);
                        cell.setHeader(true);
                        cell.setLeading(8.0f);
                        cell.setHorizontalAlignment(cell.ALIGN_LEFT);
                        chargeCountry.addCell(cell);

                        //@@Added by Kameswari for the WPBN issue- on 12/11/08
                        chk = new Chunk(chargeInfo.getRatio() != null ? "1:" + chargeInfo.getRatio() : "",
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell = new Cell(chk);
                        cell.setHeader(true);
                        cell.setLeading(8.0f);
                        cell.setHorizontalAlignment(cell.ALIGN_LEFT);
                        chargeCountry.addCell(cell);

                    }
                }
            }
            document.add(chargeCountry);
        }

        // boolean b1 = document.newPage();

        //Freight Charges
        //document.setMargins(10,10,10,10);
        //System.out.println("After         Origin Charges --------------------------------->");
        int freightChargesSize = 0;
        int freightChargesInfoSize = 0;
        int[] frtIndices = null;
        //QuoteFreightLegSellRates       legCharges       = null;
        // ArrayList                      freightCharges = null;
        ArrayList freightChargeInfo = null;
        int m = 0;
        String breakPoint = null;
        String space = "";
        Table country = null;
        // b2= writer.getPageNumber();

        if (chargesSize > 0) {
            // chargeCountry  = new Table(5);//@@Added by Kameswari for the WPBN issue - on 12/11/08
            chargeCountry = new Table(6);
            chargeCountry.setWidth(100);
            chargeCountry.setWidths(cellWidths);
            chargeCountry.setPadding(1);
            chargeCountry.setSpacing(0);
            chargeCountry.setOffset(5);
            chargeCountry.setBackgroundColor(Color.WHITE);
            chargeCountry.setBorderColor(Color.black);
            chargeCountry.setDefaultHorizontalAlignment(Element.ALIGN_CENTER);
            chargeCountry.setBorderWidth(1f);
            chargeCountry.setTableFitsPage(true);//@@Added by kameswari 

            for (int i = 0; i < chargesSize; i++) {
                legCharges = (QuoteFreightLegSellRates) charges.get(i);
                freightCharges = legCharges.getFreightChargesList();

                frtIndices = legCharges.getSelectedFreightChargesListIndices();

                if (frtIndices != null)
                    freightChargesSize = frtIndices.length;
                else
                    freightChargesSize = 0;

                if (i == 0 && freightChargesSize > 0) {
                    //@@Commented and Modified by Kameswari for the internal issue on 09/04/09
                    /* chk = new Chunk("FREIGHT CHARGES",FontFactory.getFont("ARIAL", 8, Font.BOLD,Color.BLACK));
                     cell = new Cell(chk);
                     cell.setLeading(8.0f);
                     cell.setBackgroundColor(Color.ORANGE);
                    //cell.setColspan(5);//@@Added by Kameswari for the WPBN issue - on 12/11/08
                     cell.setColspan(6);
                     cell.setHeader(true);
                     chargeCountry.addCell(cell);*/
                    chk = new Chunk("Freight Charges",
                            FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                    cell = new Cell(chk);
                    //cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
                    // cell.setColspan(6);
                    cell.setLeading(10.0f);
                    cell.setBackgroundColor(Color.ORANGE);
                    cell.setHeader(true);
                    chargeCountry.addCell(cell);
                    chk = new Chunk("Weight Break Slab",
                            FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                    cell = new Cell(chk);
                    //cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
                    // cell.setColspan(6);
                    cell.setLeading(10.0f);
                    cell.setBackgroundColor(Color.ORANGE);
                    cell.setHeader(true);
                    chargeCountry.addCell(cell);
                    chk = new Chunk("Currency", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                    cell = new Cell(chk);
                    //cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
                    // cell.setColspan(6);
                    cell.setLeading(10.0f);
                    cell.setBackgroundColor(Color.ORANGE);
                    cell.setHeader(true);
                    chargeCountry.addCell(cell);
                    chk = new Chunk("Charge Rate", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                    cell = new Cell(chk);
                    //cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
                    // cell.setColspan(6);
                    cell.setLeading(10.0f);
                    cell.setBackgroundColor(Color.ORANGE);
                    cell.setHeader(true);
                    chargeCountry.addCell(cell);
                    chk = new Chunk("Basis", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                    cell = new Cell(chk);
                    //cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
                    // cell.setColspan(6);
                    cell.setLeading(10.0f);
                    cell.setBackgroundColor(Color.ORANGE);
                    cell.setHeader(true);
                    chargeCountry.addCell(cell);
                    chk = new Chunk("Density Ratio", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                    cell = new Cell(chk);
                    //cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
                    // cell.setColspan(6);
                    cell.setLeading(10.0f);
                    cell.setBackgroundColor(Color.ORANGE);
                    cell.setHeader(true);
                    chargeCountry.addCell(cell);

                    //chargeCountry.endHeaders();
                }
                for (int j = 0; j < freightChargesSize; j++) {
                    chargesDOB = (QuoteCharges) freightCharges.get(frtIndices[j]);
                    logger.info("Freight Charges doPDFGeneration::" + j + ":" + chargesDOB); // newly added
                    freightChargeInfo = chargesDOB.getChargeInfoList();
                    freightChargesInfoSize = freightChargeInfo.size();
                    int count = 0; //Added by subrahmanyam for 181430
                    String tempDesc = "";//Added by subrahmanyam for 181430
                    for (int k = 0; k < freightChargesInfoSize; k++) {
                        String temp = "";
                        if (k > 0) {
                            chargeInfo = (QuoteChargeInfo) freightChargeInfo.get(k - 1);
                            temp = chargeInfo.getRateDescription();

                        }
                        chargeInfo = (QuoteChargeInfo) freightChargeInfo.get(k);
                        if (k == 0) {
                            chk = new Chunk(legCharges.getOrigin() + "-" + legCharges.getDestination(),
                                    FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
                            cell = new Cell(chk);
                            // cell.setColspan(5);//@@Added by Kameswari for the WPBN issue - on 12/11/08
                            cell.setColspan(6);
                            cell.setBackgroundColor(Color.WHITE);
                            cell.setLeading(8.0f);
                            chargeCountry.addCell(cell);
                            //@@ Commented by subrahmanyam for 146455 on 19/02/09                      
                            /*//chk = new Chunk(chargesDOB.getChargeDescriptionId()!=null?chargesDOB.getChargeDescriptionId():"Freight Rate",FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                            chk = new Chunk(chargeInfo.getRateDescription(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                            cell = new Cell(chk);cell.setHeader(true);
                            //cell.setRowspan(freightChargesInfoSize);
                            //cell.setBorderWidth(0);
                            cell.setBackgroundColor(Color.lightGray);
                            cell.setHorizontalAlignment(cell.ALIGN_LEFT);
                            cell.setLeading(9.0f);                         
                            chargeCountry.addCell(cell);*/
                            //@@Added by subrahmanyam for 146455 on 18/02/09
                            String fRate = "";
                            if ("FREIGHT RATE".equalsIgnoreCase(chargeInfo.getRateDescription())) {
                                fRate = "Freight Rate";
                            } else
                                fRate = chargeInfo.getRateDescription();
                            chk = new Chunk(fRate != null ? fRate : "",
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell = new Cell(chk);
                            cell.setHeader(true);
                            //cell.setRowspan(freightChargesInfoSize);
                            //cell.setBorderWidth(0);
                            cell.setBackgroundColor(Color.lightGray);
                            cell.setHorizontalAlignment(cell.ALIGN_LEFT);
                            cell.setLeading(9.0f);
                            chargeCountry.addCell(cell);
                            //@@ Ended by subrahmanym for 146455 on 18/02/09
                        } else if (temp.equalsIgnoreCase(chargeInfo.getRateDescription())) {
                            cell = new Cell("");
                            cell.setBackgroundColor(Color.lightGray);
                            cell.setHeader(true);
                            cell.setBorderWidth(0);
                            cell.setLeading(9.0f);
                            chargeCountry.addCell(cell);
                        } else {
                            //@@ Commented by subrahmanyam for 146455 on 19/02/09  
                            /* chk = new Chunk(chargeInfo.getRateDescription(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                               cell = new Cell(chk);cell.setHeader(true);
                               //cell.setRowspan(freightChargesInfoSize);
                               //cell.setBorderWidth(0);
                               cell.setBackgroundColor(Color.lightGray);
                               cell.setHorizontalAlignment(cell.ALIGN_LEFT);
                               cell.setLeading(9.0f);                         
                               chargeCountry.addCell(cell);*/
                            //@@Added by subrahmanyam for 146455 on 18/02/09                          
                            String rateDes = "";
                            if ("FUEL SURCHARGE".equalsIgnoreCase(chargeInfo.getRateDescription())) {
                                rateDes = "Fuel Surcharge";
                            } else if ("SECURITY SURCHARGE".equalsIgnoreCase(chargeInfo.getRateDescription())) {
                                rateDes = "Security Surcharge";
                            } else if ("C.A.F%".equalsIgnoreCase(chargeInfo.getRateDescription())
                                    || "CAF%".equalsIgnoreCase(chargeInfo.getRateDescription())) {
                                rateDes = "C.a.f%";
                            } else if ("B.A.F".equalsIgnoreCase(chargeInfo.getRateDescription())
                                    || "BAF".equalsIgnoreCase(chargeInfo.getRateDescription())) {
                                rateDes = "B.a.f";
                            } else if ("P.S.S".equalsIgnoreCase(chargeInfo.getRateDescription())
                                    || "PSS".equalsIgnoreCase(chargeInfo.getRateDescription())) {
                                rateDes = "P.s.s";
                            } else if ("C.S.F".equalsIgnoreCase(chargeInfo.getRateDescription())
                                    || "CSF".equalsIgnoreCase(chargeInfo.getRateDescription())) {
                                rateDes = "C.s.f";
                            } else {

                                rateDes = chargeInfo.getRateDescription();
                                rateDes = rateDes != null && rateDes.indexOf(".") != -1
                                        ? rateDes.substring(0, rateDes.length() - 3)
                                        : (rateDes != null && rateDes.indexOf("-") == -1) ? rateDes
                                                : rateDes.substring(0, rateDes.length() - 3); // Added by Gowtham to trim surcharge Description
                            }

                            chk = new Chunk(rateDes != null ? rateDes : "",
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell = new Cell(chk);
                            cell.setHeader(true);
                            //cell.setRowspan(freightChargesInfoSize);
                            //cell.setBorderWidth(0);
                            cell.setBackgroundColor(Color.lightGray);
                            cell.setHorizontalAlignment(cell.ALIGN_LEFT);
                            cell.setLeading(9.0f);
                            chargeCountry.addCell(cell);
                            //@@ Ended by subrahmanym for 146455 on 18/02/09
                        }
                        /*if("FSBASIC".equalsIgnoreCase(chargeInfo.getBreakPoint())||"SSBASIC".equalsIgnoreCase(chargeInfo.getBreakPoint()))
                            chargeInfo.setBreakPoint("Basic Charge");
                        if("FSMIN".equalsIgnoreCase(chargeInfo.getBreakPoint())||"SSMIN".equalsIgnoreCase(chargeInfo.getBreakPoint()))
                            chargeInfo.setBreakPoint("Minimum");
                        if("FSKG".equalsIgnoreCase(chargeInfo.getBreakPoint())||"SSKG".equalsIgnoreCase(chargeInfo.getBreakPoint()))
                            chargeInfo.setBreakPoint("Flat Rate");*/

                        if (chargeInfo.getBreakPoint().equalsIgnoreCase("BAFM3")
                                || chargeInfo.getBreakPoint().equalsIgnoreCase("PSSM3")) {
                            //breakPoint = "Or";   // commented by subrahmanyam for the wpbn id: 181430 on 08-sep-09
                            // added by subrahmanyam for the wpbn id: 181430 on 08-sep-09
                            if (count == 0 || (count == 1
                                    && tempDesc.equalsIgnoreCase(chargeInfo.getRateDescription()))) {
                                breakPoint = "Flat";
                                count = 0;
                            } else
                                breakPoint = "Absolute";
                            //ended for 181430

                        } else if (chargeInfo.getBreakPoint().equalsIgnoreCase("CAF%")
                                || chargeInfo.getBreakPoint().equalsIgnoreCase("CAFPFPERCENT")) {
                            if (count == 0 || (count == 1
                                    && tempDesc.equalsIgnoreCase(chargeInfo.getRateDescription()))) {
                                breakPoint = "Percent";
                                count = 0;
                            } else
                                breakPoint = "Absolute";

                        }
                        //@@ Commented by subrahmanyam for 146455 on 19/02/09  
                        /*else if(chargeInfo.getBreakPoint().equalsIgnoreCase("BAFMIN")||chargeInfo.getBreakPoint().equalsIgnoreCase("CAFMIN")
                                   ||chargeInfo.getBreakPoint().equalsIgnoreCase("PSSMIN")||chargeInfo.getBreakPoint().equalsIgnoreCase("FSMIN")||chargeInfo.getBreakPoint().equalsIgnoreCase("SSMIN")
                                   )
                         {
                                breakPoint = "Min";
                         }*/
                        //@@Added by subrahmanyam for 146455 on 18/02/09  
                        else if (chargeInfo.getBreakPoint().equalsIgnoreCase("BAFMIN")
                                || chargeInfo.getBreakPoint().equalsIgnoreCase("CAFMIN")
                                || chargeInfo.getBreakPoint().equalsIgnoreCase("PSSMIN")
                                || chargeInfo.getBreakPoint().equalsIgnoreCase("FSMIN")
                                || chargeInfo.getBreakPoint().equalsIgnoreCase("SSMIN")
                                || chargeInfo.getBreakPoint().equalsIgnoreCase("MIN")
                                || chargeInfo.getBreakPoint().toUpperCase().endsWith("MIN")) // Added by gowtham to show surcharge description as min
                        {
                            // added by subrahmanyam for the wpbn id: 181430 on 08-sep-09
                            if (chargeInfo.getBreakPoint().equalsIgnoreCase("BAFMIN")
                                    || chargeInfo.getBreakPoint().equalsIgnoreCase("CAFMIN")
                                    || chargeInfo.getBreakPoint().equalsIgnoreCase("PSSMIN")) {
                                count = 1;
                                tempDesc = chargeInfo.getRateDescription();
                            }
                            //ended for 181430

                            breakPoint = "Min";
                        } else if (chargeInfo.getBreakPoint().equalsIgnoreCase("FSBASIC")
                                || chargeInfo.getBreakPoint().equalsIgnoreCase("SSBASIC")
                                || chargeInfo.getBreakPoint().toUpperCase().endsWith("BASIC")) //Added by gowtham to show surcharge description as min
                        {
                            breakPoint = "Basic";
                        }
                        /* else if(chargeInfo.getBreakPoint().equalsIgnoreCase("FSKG")||chargeInfo.getBreakPoint().equalsIgnoreCase("SSKG"))
                           {
                                  breakPoint = "Flat";
                        }*/
                        //Added by subrahmanyam for 154381
                        else if (chargeInfo.getBreakPoint().equalsIgnoreCase("FSKG")
                                || chargeInfo.getBreakPoint().equalsIgnoreCase("SSKG")
                                || chargeInfo.getBreakPoint().equalsIgnoreCase("FLAT")
                                || chargeInfo.getBreakPoint().toUpperCase().endsWith("FLAT"))//Added by gowtham to show surcharge description as min
                        {
                            breakPoint = "Flat";
                        } else if (chargeInfo.getBreakPoint().equalsIgnoreCase("CSF")
                                || chargeInfo.getBreakPoint().toUpperCase().endsWith("ABSOLUTE"))// Added by Gowtham on 18-Feb2011
                        {
                            breakPoint = "Absolute";
                        } else if (chargeInfo.getBreakPoint().equalsIgnoreCase("SURCHARGE")
                                || chargeInfo.getBreakPoint().toUpperCase().endsWith("PERCENT"))// Added by Gowtham on 18-Feb2011)
                        {
                            breakPoint = "Percent";
                        } else if (chargeInfo.getBreakPoint().endsWith("CAF")
                                || chargeInfo.getBreakPoint().endsWith("BAF")
                                || chargeInfo.getBreakPoint().endsWith("CSF")
                                || chargeInfo.getBreakPoint().endsWith("PSS")
                                || chargeInfo.getBreakPoint().endsWith("caf")
                                || chargeInfo.getBreakPoint().endsWith("baf")
                                || chargeInfo.getBreakPoint().endsWith("csf")
                                || chargeInfo.getBreakPoint().endsWith("pss")) {
                            m = chargeInfo.getBreakPoint().length() - 3;
                            breakPoint = chargeInfo.getBreakPoint().substring(0, m);

                        }
                        //@@Added by subrahmanyam for 146455 on 18/02/09  
                        else if (chargeInfo.getBreakPoint().toUpperCase().equalsIgnoreCase("MAX")) // Added by Gowtham on18-Feb-2011
                        {
                            breakPoint = "Max";
                        } else {
                            breakPoint = chargeInfo.getBreakPoint().length() > 5
                                    ? chargeInfo.getBreakPoint().substring(0, 4)
                                    : chargeInfo.getBreakPoint(); // Modified by Gowtham for Quote View Issue on 17 Feb2011
                        }
                        /* chk = new Chunk(chargeInfo.getBreakPoint()!=null?chargeInfo.getBreakPoint().toUpperCase():"",FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                         cell = new Cell(chk);cell.setHeader(true);
                         cell.setBackgroundColor(Color.lightGray);cell.setLeading(8.0f);
                         chargeCountry.addCell(cell);*/
                        //chk = new Chunk(breakPoint!=null?breakPoint.toUpperCase():"",FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                        chk = new Chunk(breakPoint != null ? breakPoint : "",
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell = new Cell(chk);
                        cell.setHeader(true);
                        cell.setBackgroundColor(Color.lightGray);
                        cell.setLeading(8.0f);
                        chargeCountry.addCell(cell);

                        chk = new Chunk(chargeInfo.getCurrency(),
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell = new Cell(chk);
                        cell.setHeader(true);
                        cell.setLeading(8.0f);
                        //cell.setBackgroundColor(Color.lightGray);
                        chargeCountry.addCell(cell);

                        chk = new Chunk(df.format(chargeInfo.getSellRate()),
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell = new Cell(chk);
                        cell.setHeader(true);
                        cell.setLeading(8.0f);
                        chargeCountry.addCell(cell);

                        chk = new Chunk(chargeInfo.getBasis() != null ? chargeInfo.getBasis() : "",
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell = new Cell(chk);
                        cell.setHeader(true);
                        cell.setLeading(8.0f);
                        cell.setHorizontalAlignment(cell.ALIGN_LEFT);
                        chargeCountry.addCell(cell);
                        //@@Added by Kameswari for the WPBN issue- on 12/11/08
                        chk = new Chunk(chargeInfo.getRatio() != null ? "1:" + chargeInfo.getRatio() : "",
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell = new Cell(chk);
                        cell.setHeader(true);
                        cell.setLeading(8.0f);
                        cell.setHorizontalAlignment(cell.ALIGN_LEFT);
                        chargeCountry.addCell(cell);

                    }
                }
            }
            document.add(chargeCountry);

        } //end of if(charge)
          //  boolean b2 = document.newPage();

        //System.out.println("After Charges--------------------------------->");
        //document.setMargins(10,10,10,10);
        ArrayList destChargeInfo = null;
        //int[]      destChargeInfo        =  null;
        int destChargesInfoSize = 0;
        if (destChargesSize > 0) {
            //chargeCountry  = new Table(5);
            chargeCountry = new Table(6);
            chargeCountry.setWidth(100);
            chargeCountry.setWidths(cellWidths);
            chargeCountry.setPadding(1);
            chargeCountry.setSpacing(0);
            chargeCountry.setOffset(5);
            chargeCountry.setBackgroundColor(Color.WHITE);
            chargeCountry.setBorderColor(Color.black);
            chargeCountry.setDefaultHorizontalAlignment(Element.ALIGN_CENTER);
            chargeCountry.setBorderWidth(1f);
            chargeCountry.setTableFitsPage(true);

            //    b2 = writer.getPageNumber();

            /*   if(b2-b1>0)
               {
                chk = new Chunk("QUOTE REFERENCE:"+masterDOB.getQuoteId(),FontFactory.getFont("ARIAL", 10, Font.BOLD,Color.BLACK));
               cell = new Cell(chk);
               cell.setColspan(5);cell.setLeading(10.0f);
               cell.setBackgroundColor(Color.WHITE);                
               cell.setHeader(true);
               cell.setBorder(0);
               chargeCountry.addCell(cell); 
               }*/
            //@@Commented and Modified by Kameswari for the internal issue on 09/04/09
            /* chk = new Chunk("DESTINATION CHARGES",FontFactory.getFont("ARIAL", 8, Font.BOLD,Color.BLACK));
            cell = new Cell(chk);
            cell.setBackgroundColor(Color.ORANGE);
            // cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
            cell.setColspan(6);
            cell.setLeading(8.0f);
            cell.setHeader(true);
            chargeCountry.addCell(cell);*/
            //chargeCountry.endHeaders();
            chk = new Chunk("Destination Charges", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cell = new Cell(chk);
            //cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
            // cell.setColspan(6);
            cell.setLeading(10.0f);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setHeader(true);
            chargeCountry.addCell(cell);
            chk = new Chunk("Weight Break Slab", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cell = new Cell(chk);
            //cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
            // cell.setColspan(6);
            cell.setLeading(10.0f);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setHeader(true);
            chargeCountry.addCell(cell);
            chk = new Chunk("Currency", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cell = new Cell(chk);
            //cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
            // cell.setColspan(6);
            cell.setLeading(10.0f);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setHeader(true);
            chargeCountry.addCell(cell);
            chk = new Chunk("Charge Rate", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cell = new Cell(chk);
            //cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
            // cell.setColspan(6);
            cell.setLeading(10.0f);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setHeader(true);
            chargeCountry.addCell(cell);
            chk = new Chunk("Basis", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cell = new Cell(chk);
            //cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
            // cell.setColspan(6);
            cell.setLeading(10.0f);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setHeader(true);
            chargeCountry.addCell(cell);
            chk = new Chunk("Density Ratio", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cell = new Cell(chk);
            //cell.setColspan(5);/@@Added by Kameswari for the WPBN issue - on 12/11/08
            // cell.setColspan(6);
            cell.setLeading(10.0f);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setHeader(true);
            chargeCountry.addCell(cell);

            for (int j = 0; j < destChargesSize; j++) {
                if (destIndices[j] != -1) {
                    chargesDOB = (QuoteCharges) destCharges.get(destIndices[j]);
                    logger.info("Destination Charges doPDFGeneration::" + j + ":" + chargesDOB); // newly added                      
                    destChargeInfo = chargesDOB.getChargeInfoList();
                    destChargesInfoSize = destChargeInfo.size();
                    for (int k = 0; k < destChargesInfoSize; k++) {
                        chargeInfo = (QuoteChargeInfo) destChargeInfo.get(k);
                        if (k == 0) {
                            if ("B".equalsIgnoreCase(chargesDOB.getSellBuyFlag())
                                    || "S".equalsIgnoreCase(chargesDOB.getSellBuyFlag()))
                                chk = new Chunk(
                                        chargesDOB.getExternalName() != null ? chargesDOB.getExternalName()
                                                : "",
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            else
                                chk = new Chunk(
                                        chargesDOB.getChargeDescriptionId() != null
                                                ? chargesDOB.getChargeDescriptionId()
                                                : "",
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell = new Cell(chk);
                            cell.setLeading(9.0f);
                            //cell.setRowspan(destChargesInfoSize);
                            //cell.setBorderWidth(0);
                            cell.setBackgroundColor(Color.lightGray);
                            cell.setHeader(true);
                            cell.setHorizontalAlignment(cell.ALIGN_LEFT);
                            chargeCountry.addCell(cell);
                        } else {
                            cell = new Cell("");
                            cell.setBackgroundColor(Color.lightGray);
                            cell.setHeader(true);
                            cell.setBorderWidth(0);
                            cell.setLeading(9.0f);
                            chargeCountry.addCell(cell);
                        }

                        //@@Commented by subrahmanyam for 146455 on 18/02/09                   
                        /* chk = new Chunk((chargeInfo.getBreakPoint()!=null && !"Absolute".equalsIgnoreCase(chargeInfo.getBreakPoint()) && !"Percent".equalsIgnoreCase(chargeInfo.getBreakPoint()))?chargeInfo.getBreakPoint().toUpperCase():"",FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                         cell = new Cell(chk);cell.setLeading(8.0f);
                         cell.setBackgroundColor(Color.lightGray);
                         cell.setHeader(true);
                         chargeCountry.addCell(cell);*/
                        //@@Added by subrahmanyam for 146455 on 18/02/09                        
                        if (chargeInfo.getBreakPoint().equalsIgnoreCase("MIN")) {
                            breakPoint = "Min";
                        }

                        else if (chargeInfo.getBreakPoint().equalsIgnoreCase("FLAT")) {
                            breakPoint = "Flat";
                        } else if (chargeInfo.getBreakPoint().equalsIgnoreCase("CSF")) {
                            breakPoint = "Absolute";
                        } else if (chargeInfo.getBreakPoint().equalsIgnoreCase("SURCHARGE")) {
                            breakPoint = "Percent";
                        } else if (chargeInfo.getBreakPoint().equalsIgnoreCase("MAX")) {
                            breakPoint = "Max";
                        } else if (chargeInfo.getBreakPoint().equalsIgnoreCase("BASE")) {
                            breakPoint = "Base";
                        }

                        else {
                            breakPoint = chargeInfo.getBreakPoint();
                        }

                        chk = new Chunk(
                                breakPoint != null && !"Absolute".equalsIgnoreCase(breakPoint)
                                        && !"Percent".equalsIgnoreCase(breakPoint) ? breakPoint : "",
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell = new Cell(chk);
                        cell.setLeading(8.0f);
                        cell.setBackgroundColor(Color.lightGray);
                        cell.setHeader(true);
                        chargeCountry.addCell(cell);
                        //@@Ended by subrahmanyam for 146455 on 18/02/09   

                        chk = new Chunk(chargeInfo.getCurrency(),
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell = new Cell(chk);
                        cell.setHeader(true);
                        cell.setLeading(8.0f);
                        //cell.setBackgroundColor(Color.lightGray);
                        chargeCountry.addCell(cell);
                        //@@Modified by kiran.v on 03/11/2011 for Wpbn Issue
                        // chk = new Chunk(df.format(chargeInfo.getSellRate())+(chargeInfo.isPercentValue()?" %":""),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                        //@@Added by kiran.v on 16/11/2011
                        percent = chargeInfo.isPercentValue() ? "%" : "";
                        chk = new Chunk(round1(chargeInfo.getSellRate(), percent) + (percent),
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell = new Cell(chk);
                        cell.setHeader(true);
                        cell.setLeading(8.0f);
                        chargeCountry.addCell(cell);

                        chk = new Chunk(chargeInfo.getBasis() != null ? chargeInfo.getBasis() : "",
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell = new Cell(chk);
                        cell.setHorizontalAlignment(cell.ALIGN_LEFT);
                        cell.setHeader(true);
                        cell.setLeading(8.0f);
                        chargeCountry.addCell(cell);
                        //@@Added by Kameswari for the WPBN issue- on 12/11/08
                        chk = new Chunk(chargeInfo.getRatio() != null ? "1:" + chargeInfo.getRatio() : "",
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell = new Cell(chk);
                        cell.setHeader(true);
                        cell.setLeading(8.0f);
                        cell.setHorizontalAlignment(cell.ALIGN_LEFT);
                        chargeCountry.addCell(cell);
                    }
                }
            }
            document.add(chargeCountry);
        }
        if (finalDOB.getExternalNotes() != null && finalDOB.getExternalNotes().length > 0) {
            Table notes = new Table(1, finalDOB.getExternalNotes().length + 1);
            notes.setWidth(100);
            notes.setPadding(1);
            notes.setSpacing(0);
            notes.setOffset(5);
            notes.setBackgroundColor(Color.WHITE);
            notes.setBorderColor(Color.black);
            //@@Commented and Modified by Kameswari for the internal issue on 08/04/09
            notes.setDefaultHorizontalAlignment(Element.ALIGN_LEFT);
            notes.setBorderWidth(1f);
            Cell notesCell;

            chk = new Chunk("NOTES", FontFactory.getFont("ARIAL", 10, Font.BOLD, Color.BLACK));
            notesCell = new Cell(chk);
            notesCell.setHeader(true);
            notesCell.setLeading(8.0f);
            notesCell.setBackgroundColor(Color.WHITE);
            notes.addCell(notesCell);
            for (int i = 0; i < finalDOB.getExternalNotes().length; i++) {
                chk = new Chunk(finalDOB.getExternalNotes()[i] != null ? finalDOB.getExternalNotes()[i] : "",
                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                notesCell = new Cell(chk);
                notesCell.setLeading(8.0f);
                notes.addCell(notesCell);
            }
            document.add(notes);
        }

        if (contents != null && contents.length > 0) {
            content = new Table(1);
            content.setOffset(5);
            content.setWidth(100);
            content.setPadding(1);
            content.setSpacing(0);
            content.setBackgroundColor(Color.WHITE);
            content.setBorderColor(Color.black);
            content.setBorderWidth(1f);
            content.setTableFitsPage(true);
            Cell cellContent = null;
            int hFLen = headFoot.length;

            for (int i = 0; i < hFLen; i++) {
                if (headFoot[i] != null && "F".equalsIgnoreCase(headFoot[i])) {
                    chk = new Chunk(contents[i], FontFactory.getFont("ARIAL", 7, Font.ITALIC, Color.BLACK));
                    /////////////////chk.setUnderline(+1f,-2f);

                    cellContent = new Cell(chk);
                    cellContent.setBorder(0);
                    cellContent.setLeading(8.0f);
                    cellContent.setBackgroundColor(Color.LIGHT_GRAY);
                    if ("L".equalsIgnoreCase(aligns[i]))
                        cellContent.setHorizontalAlignment(cellContent.ALIGN_LEFT);
                    else if ("C".equalsIgnoreCase(aligns[i]))
                        cellContent.setHorizontalAlignment(cellContent.ALIGN_CENTER);
                    else if ("R".equalsIgnoreCase(aligns[i]))
                        cellContent.setHorizontalAlignment(cellContent.ALIGN_RIGHT);
                    content.addCell(cellContent);
                }
            }
            document.add(content);
        }

        document.close();

        //System.out.println("After     document Close----------------------------------------->");
        // write ByteArrayOutputStream to the ServletOutputStream            
        // ServletOutputStream sout = response.getOutputStream();
        //baos.writeTo(sout);
        //System.out.println("after writer");
        // sout.flush();
        //dataList  = (ArrayList)  remote.sendEmail(dataList);
        // Thread.sleep(1000);

        String file_tsmp = "" + new java.sql.Timestamp((new java.util.Date()).getTime())
                + masterDOB.getQuoteId();
        file_tsmp = file_tsmp.replaceAll("\\:", "");
        file_tsmp = file_tsmp.replaceAll("\\.", "");
        file_tsmp = file_tsmp.replaceAll("\\-", "");
        file_tsmp = file_tsmp.replaceAll(" ", "");
        File f = new File("Quote.pdf");
        FileOutputStream fileOutputStream = new FileOutputStream(f);
        baos.writeTo(fileOutputStream);
        //@@Added by Kameswari for the WPBN issue-80440
        PdfReader reader = new PdfReader("Quote.pdf");
        int n = reader.getNumberOfPages();
        File fs = new File("Quote" + file_tsmp + ".pdf");

        // we create a stamper that will copy the document to a new file
        PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(fs));

        // adding some metadata
        // adding content to each page

        int k = 0;
        PdfContentByte under = null;
        PdfContentByte over = null;
        BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED);
        while (k < n) {
            k++;
            over = stamp.getOverContent(k);
            under = stamp.getOverContent(k);
            over.beginText();
            over.setFontAndSize(bf, 8);
            over.setTextMatrix(15, 15);
            over.showText("page " + k + " of " + n);
            if (k > 1) {
                // over.setFontAndSize(bf, 10);
                over.setFontAndSize(bf, 7);
                over.showText(
                        "                                                                                                    QUOTE REFERENCE:"
                                + masterDOB.getQuoteId());
                //@@ Added by subrahmanyam for WPBN:146452 on 12/12/2008               
                over.endText();
                over.beginText();
                over.showText(
                        "                                                                                                                                CUSTOMER NAME: "
                                + headerDOB.getCustomerName() + "\n\n\n");//subrahmanyam 12/12/2008

                //@@ Ended by subrahmanyam for WPBN ISSUE:146452 on 12/12/2008               

            }
            over.endText();
        }
        stamp.close();
        //@@WPBN issue-80440    
        file = new File("Concatenated.pdf" + file_tsmp);
        pdfFilesList.add((String) file.getName());
        //@@Added by Kameswari for the WPBN issue-61289
        //@@ Added by subrahmanyam for the  WPBN ISSUE:146460 on 29/01/09             
        if (finalDOB.getAttachmentDOBList().size() == 0
                && "View".equalsIgnoreCase(request.getParameter("Operation"))) {

            home = (QMSQuoteSessionHome) LookUpBean.getEJBHome("QMSQuoteSessionBean");//146460
            remote = home.create();//146460
            filesList = remote.getQuoteAttachmentDtls(finalDOB);
            if (filesList != null) {
                finalDOB.setAttachmentDOBList(filesList);
            }
        }
        //@@ Ended by subrahmanyam for the WPBN ISSUE: 146460 on 29/01/09   
        if (finalDOB.getAttachmentDOBList() != null) {
            //filesList = finalDOB.getAttachmentDOBList(); // commented for for 192431 on 16-dec-09
            //@@ Added by subrahmanyam for 192431 on 16-dec-09
            if ("pdf".equalsIgnoreCase(request.getParameter("pdf"))) {
                home = (QMSQuoteSessionHome) LookUpBean.getEJBHome("QMSQuoteSessionBean");
                remote = home.create();//146460
                filesList = remote.getQuoteAttachmentDtls(finalDOB);
            } else
                filesList = finalDOB.getAttachmentDOBList();
            // ended for 192431 on 16-dec-09

            int fileListSize = filesList.size();
            for (int i = 0; i < fileListSize; i++) {
                attachmentDOB = (QuoteAttachmentDOB) filesList.get(i);
                FileOutputStream fileStream = new FileOutputStream(attachmentDOB.getFileName());
                fileStream.write(attachmentDOB.getPdfFile());
                pdfFilesList.add((String) attachmentDOB.getFileName());
            }
        }
        if (pdfFilesList.size() > 1) {
            for (int l = 1; l < pdfFilesList.size(); l++) {
                FileInputStream inputStream = new FileInputStream((String) pdfFilesList.get(l));
                buffer = new byte[inputStream.available()];
                inputStream.read(buffer);
                bufferList.add(buffer);
                inputStream.close();
            }
        }

        // buffer = concatPDF(pdfFilesList);GOVIND COMMENTED 
        //@@WPBN issue-61289  

        //@@ Commented By Subrahmanyam for enhancement 146460           
        /* if("on".equalsIgnoreCase(request.getParameter("print")))
        {     
                
                
                 
                  
            request.getSession().setAttribute("QuoteOuptutStream",fs);
            request.getSession().setAttribute("filepdf",buffer); //@@Added by Kameswari for the WPBN issue-61289
                
                
          }*/
        //@@ Added by subrahmanyam for the enhancement 146460
        if ("PDF".equalsIgnoreCase(request.getParameter("pdf"))
                || "on".equalsIgnoreCase(request.getParameter("print"))) {
            request.getSession().setAttribute("QuoteOuptutStream", fs);
            request.getSession().setAttribute("filepdf", bufferList);
        }
        //@@ Ended by subrahmanyam for the enhancement 146460
        //f.delete();
        //baos.close();

        String[] contactPersons = masterDOB.getCustContactNames();
        String contactName = "";

        String filename = "Annexure" + file_tsmp + ".pdf";
        StringBuffer subject = new StringBuffer("DHL Global Forwarding Quotation,");
        String body = "";

        if (!finalDOB.isMultiModalQuote()) {
            if (masterDOB.getShipmentMode() == 1)
                subject.append(" Airfreight ");
            if (masterDOB.getShipmentMode() == 2)
                subject.append(" Seafreight ");
            else if (masterDOB.getShipmentMode() == 4)
                subject.append(" Truckfreight ");
        } else {
            subject.append(" Multi-Modal ");
        }

        subject.append((headerDOB.getOriginCountry() != null ? headerDOB.getOriginCountry().toUpperCase() : ""))
                .append(" to ")
                .append((headerDOB.getDestinationCountry() != null
                        ? headerDOB.getDestinationCountry().toUpperCase()
                        : ""));
        subject.append(" Quote Reference ");
        if (finalDOB.getUpdatedReportDOB() != null)
            subject.append(request.getAttribute("quoteId")).append(" Replacing ")
                    .append(finalDOB.getUpdatedReportDOB().getQuoteId());
        else
            subject.append(masterDOB.getQuoteId() != null ? masterDOB.getQuoteId() + ""
                    : request.getAttribute("quoteId"));
        //Commented By Kishore Podili For Multiple Zone Codes: 236286
        //if(masterDOB.getShipperZipCode()==null || masterDOB.getConsigneeZipCode()==null)
        // {
        if ((finalDOB.getPickZoneZipMap() != null && finalDOB.getPickZoneZipMap().size() > 0)
                || (finalDOB.getDeliveryZoneZipMap() != null && finalDOB.getDeliveryZoneZipMap().size() > 0))

            doGenerateCartagePDF(filename, finalDOB, request, response);
        //}
        try {
            if ("Y".equalsIgnoreCase(finalDOB.getFlagsDOB().getEmailFlag())) {
                // mailFlag  = 1;
                //finalDOB.getFlagsDOB().setQuoteStatusFlag("PEN");//@@Quote is Pending
                //ReportsSessionBeanHome home      = (ReportsSessionBeanHome)LookUpBean.getEJBHome("ReportsSessionBean");
                //ReportsSession remote   = (ReportsSession)home.create();
                //@@Modified by kameswari for the WPBN issue-61289
                //String to_emailIds = finalDOB.getHeaderDOB().getCustEmailId();
                String to_emailIds = null;
                if ("Y".equalsIgnoreCase(masterDOB.getSalesPersonFlag()))
                    to_emailIds = finalDOB.getHeaderDOB().getCustEmailId() + ','
                            + masterDOB.getSalesPersonEmail();
                else
                    to_emailIds = finalDOB.getHeaderDOB().getCustEmailId();
                //@@WPBN issue-61289
                to_emailIds = to_emailIds.replaceAll(";", ",");

                //System.out.println("Before Sending Mail------------------------------>");

                if (contactPersons != null) {
                    int contPersonLen = contactPersons.length;
                    for (int i = 0; i < contPersonLen; i++) {
                        mailFlag = 1;

                        // if(i<contactPersons.length)//@@Added by Kameswari for the WPBN issue-61289
                        //    {
                        if (masterDOB.getCustomerContactsEmailIds()[i] != null
                                && masterDOB.getCustomerContactsEmailIds()[i].trim().length() != 0) {

                            contactName = masterDOB.getCustContactNames()[i];
                            if (masterDOB.getCustContactNames()[i].indexOf("[") != -1)
                                contactName = contactName.substring(0,
                                        masterDOB.getCustContactNames()[i].indexOf("["));
                            /* if(finalDOB.getUpdatedReportDOB()!=null)
                             {
                                        
                                         
                                body = "Dear "+contactName+",\n\nThis is a replacement quotation reference "+request.getAttribute("quoteId")+",replacing "+finalDOB.getUpdatedReportDOB().getQuoteId()+
                                  ", due to a change in "+(finalDOB.getEmailChargeName()!=null?finalDOB.getEmailChargeName():finalDOB.getUpdatedReportDOB().getChangeDesc())+". All information is contained within the attachment. "+
                                 "Should you have any queries, please do not hesitate to contact us.\n\n\nRegards,\n"+masterDOB.getCreatorDetails()+"\n"+masterDOB.getTerminalAddress();
                             }
                             else
                             {
                               body = "Dear "+contactName+",\n\nThank you for the opportunity to provide this Quotation. All information is contained within the attachment."+
                                    " Should you have any queries, please do not hesitate to contact us.\n\n\nRegards,\n"+masterDOB.getCreatorDetails()+"\n"+masterDOB.getTerminalAddress();
                             }*/
                            //body  = "Dear "+contactName+",\n\n"+finalDOB.getEmailText()+"\n\n\nRegards,\n"+masterDOB.getCreatorDetails()+"\n"+masterDOB.getTerminalAddress();
                            if (finalDOB.getUpdatedReportDOB() != null) {
                                body = "Dear " + (contactName != null ? contactName : "")
                                        + ",\n\nThis is a replacement quotation reference "
                                        + request.getAttribute("quoteId") + ",replacing "
                                        + finalDOB.getUpdatedReportDOB().getQuoteId() + ", due to a change in "
                                        + (finalDOB.getEmailChargeName() != null ? finalDOB.getEmailChargeName()
                                                : finalDOB.getUpdatedReportDOB().getChangeDesc())
                                        + ",\n\n"
                                        + (finalDOB.getEmailText() != null ? finalDOB.getEmailText() : "")
                                        + "\n\n\n"
                                        + (masterDOB.getCreatorDetails() != null ? masterDOB.getCreatorDetails()
                                                : "")
                                        + "\n\n"
                                        + (masterDOB.getCompanyName() != null ? masterDOB.getCompanyName() : "")
                                        + "\n"
                                        + (masterDOB.getTerminalAddress() != null
                                                ? masterDOB.getTerminalAddress()
                                                : "")
                                        + "\n\n" + "Phone  "
                                        + (masterDOB.getPhoneNo() != null ? masterDOB.getPhoneNo() : "") + "\n"
                                        + "Fax    " + (masterDOB.getFaxNo() != null ? masterDOB.getFaxNo() : "")
                                        + "\n" + "Mobile "
                                        + (masterDOB.getMobileNo() != null ? masterDOB.getMobileNo() : "")
                                        + "\n\nEmail "
                                        + (masterDOB.getUserEmailId() != null ? masterDOB.getUserEmailId()
                                                : ""); //@@Modified by Kameswari for the WPBN issue-61303

                            } else {
                                body = "Dear " + (contactName != null ? contactName : "") + ",\n\n"
                                        + (finalDOB.getEmailText() != null ? finalDOB.getEmailText() : "")
                                        + "\n\n\n"
                                        + (masterDOB.getCreatorDetails() != null ? masterDOB.getCreatorDetails()
                                                : "")
                                        + "\n\n"
                                        + (masterDOB.getCompanyName() != null ? masterDOB.getCompanyName() : "")
                                        + "\n"
                                        + (masterDOB.getTerminalAddress() != null
                                                ? masterDOB.getTerminalAddress()
                                                : "")
                                        + "\n\n" + "Phone  "
                                        + (masterDOB.getPhoneNo() != null ? masterDOB.getPhoneNo() : "") + "\n"
                                        + "Fax    " + (masterDOB.getFaxNo() != null ? masterDOB.getFaxNo() : "")
                                        + "\n" + "Mobile "
                                        + (masterDOB.getMobileNo() != null ? masterDOB.getMobileNo() : "")
                                        + "\n\nEmail "
                                        + (masterDOB.getUserEmailId() != null ? masterDOB.getUserEmailId()
                                                : ""); //@@Modified by Kameswari for the WPBN issue-61303

                            }
                            if (masterDOB.getShipperZipCode() == null
                                    || masterDOB.getConsigneeZipCode() == null) {
                                if ((finalDOB.getPickZoneZipMap() != null
                                        && finalDOB.getPickZoneZipMap().size() > 0)
                                        || (finalDOB.getDeliveryZoneZipMap() != null
                                                && finalDOB.getDeliveryZoneZipMap().size() > 0))
                                    sendMail(finalDOB.getMasterDOB().getUserEmailId(),
                                            masterDOB.getCustomerContactsEmailIds()[i], subject.toString(),
                                            body, "Quote" + file_tsmp + ".pdf,Annexure" + file_tsmp + ".pdf",
                                            finalDOB.getAttachmentDOBList());
                                else
                                    sendMail(finalDOB.getMasterDOB().getUserEmailId(),
                                            masterDOB.getCustomerContactsEmailIds()[i], subject.toString(),
                                            body, "Quote" + file_tsmp + ".pdf",
                                            finalDOB.getAttachmentDOBList());
                            } else
                                sendMail(finalDOB.getMasterDOB().getUserEmailId(),
                                        masterDOB.getCustomerContactsEmailIds()[i], subject.toString(), body,
                                        "Quote" + file_tsmp + ".pdf", finalDOB.getAttachmentDOBList());
                            //  }
                            //@@Added by Kameswari for the WPBN issue-61289
                        }
                    }
                    if ("Y".equalsIgnoreCase(masterDOB.getSalesPersonFlag())) {
                        if (masterDOB.getShipperZipCode() == null || masterDOB.getConsigneeZipCode() == null) {
                            if ((finalDOB.getPickZoneZipMap() != null
                                    && finalDOB.getPickZoneZipMap().size() > 0)
                                    || (finalDOB.getDeliveryZoneZipMap() != null
                                            && finalDOB.getDeliveryZoneZipMap().size() > 0))

                                sendMail(finalDOB.getMasterDOB().getUserEmailId(),
                                        masterDOB.getSalesPersonEmail(), subject.toString(), body,
                                        "Quote" + file_tsmp + ".pdf,Annexure" + file_tsmp + ".pdf",
                                        finalDOB.getAttachmentDOBList());
                            else
                                sendMail(finalDOB.getMasterDOB().getUserEmailId(),
                                        masterDOB.getSalesPersonEmail(), subject.toString(), body,
                                        "Quote" + file_tsmp + ".pdf", finalDOB.getAttachmentDOBList());
                        } else
                            sendMail(finalDOB.getMasterDOB().getUserEmailId(), masterDOB.getSalesPersonEmail(),
                                    subject.toString(), body, "Quote" + file_tsmp + ".pdf",
                                    finalDOB.getAttachmentDOBList());

                    }
                    //@@ the WPBN issue-61289

                } else {
                    mailFlag = 0;

                    /*if(finalDOB.getUpdatedReportDOB()!=null)
                    {
                              
                      body = "Dear Customer,\n\nThis is a replacement quotation reference "+request.getAttribute("quoteId")+",replacing "+finalDOB.getUpdatedReportDOB().getQuoteId()+
                      ", due to a change in "+(finalDOB.getEmailChargeName()!=null?finalDOB.getEmailChargeName():finalDOB.getUpdatedReportDOB().getChangeDesc())+". All information is contained within the attachment. "+
                      "Should you have any queries, please do not hesitate to contact us.\n\n\nRegards,\n"+masterDOB.getCreatorDetails()+"\n"+masterDOB.getTerminalAddress();
                    }
                    else
                    {
                      body = "Dear Customer,\n\nThank you for the opportunity to provide this Quotation. All information is contained within the attachment."+
                         " Should you have any queries, please do not hesitate to contact us.\n\n\nRegards,\n"+masterDOB.getCreatorDetails()+"\n"+masterDOB.getTerminalAddress();
                    }*/
                    //
                    //body  ="Dear Customer,\n\n"+finalDOB.getEmailText()+"\n\n\nRegards,\n"+masterDOB.getCreatorDetails()+"\n"+masterDOB.getTerminalAddress();
                    /*body  = "Dear Customer,\n\n"+finalDOB.getEmailText()+"\n\n\n"+masterDOB.getCreatorDetails()+"\n\n"+masterDOB.getCompanyName()+
                    "\n"+masterDOB.getTerminalAddress()+"\n\n"+"Phone  "+masterDOB.getPhoneNo()+"\n"+"Fax    "+masterDOB.getFaxNo()+"\n"+"Mobile "+masterDOB.getMobileNo()+"\n\nEmail "+masterDOB.getUserEmailId(); */
                    //@@Modified by Kameswari for the WPBN issue-61303

                    if (finalDOB.getUpdatedReportDOB() != null) {
                        body = "Dear Customer,\n\nThis is a replacement quotation reference "
                                + request.getAttribute("quoteId") + ",replacing "
                                + finalDOB.getUpdatedReportDOB().getQuoteId() + ", due to a change in "
                                + (finalDOB.getEmailChargeName() != null ? finalDOB.getEmailChargeName()
                                        : finalDOB.getUpdatedReportDOB().getChangeDesc())
                                + ",\n\n" + (finalDOB.getEmailText() != null ? finalDOB.getEmailText() : "")
                                + "\n\n\n"
                                + (masterDOB.getCreatorDetails() != null ? masterDOB.getCreatorDetails() : "")
                                + "\n\n"
                                + (masterDOB.getCompanyName() != null ? masterDOB.getCompanyName() : "") + "\n"
                                + (masterDOB.getTerminalAddress() != null ? masterDOB.getTerminalAddress() : "")
                                + "\n\n" + "Phone  "
                                + (masterDOB.getPhoneNo() != null ? masterDOB.getPhoneNo() : "") + "\n"
                                + "Fax    " + (masterDOB.getFaxNo() != null ? masterDOB.getFaxNo() : "") + "\n"
                                + "Mobile " + (masterDOB.getMobileNo() != null ? masterDOB.getMobileNo() : "")
                                + "\n\nEmail "
                                + (masterDOB.getUserEmailId() != null ? masterDOB.getUserEmailId() : ""); //@@Modified by Kameswari for the WPBN issue-61303
                    } else {
                        body = "Dear Customer,\n\n"
                                + (finalDOB.getEmailText() != null ? finalDOB.getEmailText() : "") + "\n\n\n"
                                + (masterDOB.getCreatorDetails() != null ? masterDOB.getCreatorDetails() : "")
                                + "\n\n"
                                + (masterDOB.getCompanyName() != null ? masterDOB.getCompanyName() : "") + "\n"
                                + (masterDOB.getTerminalAddress() != null ? masterDOB.getTerminalAddress() : "")
                                + "\n\n" + "Phone  "
                                + (masterDOB.getPhoneNo() != null ? masterDOB.getPhoneNo() : "") + "\n"
                                + "Fax    " + (masterDOB.getFaxNo() != null ? masterDOB.getFaxNo() : "") + "\n"
                                + "Mobile " + (masterDOB.getMobileNo() != null ? masterDOB.getMobileNo() : "")
                                + "\n\nEmail "
                                + (masterDOB.getUserEmailId() != null ? masterDOB.getUserEmailId() : ""); //@@Modified by Kameswari for the WPBN issue-61303
                    }
                    if (masterDOB.getShipperZipCode() == null || masterDOB.getConsigneeZipCode() == null) {
                        if ((finalDOB.getPickZoneZipMap() != null && finalDOB.getPickZoneZipMap().size() > 0)
                                || (finalDOB.getDeliveryZoneZipMap() != null
                                        && finalDOB.getDeliveryZoneZipMap().size() > 0))
                            sendMail(finalDOB.getMasterDOB().getUserEmailId(), to_emailIds, subject.toString(),
                                    body, "Quote" + file_tsmp + ".pdf,Annexure" + file_tsmp + ".pdf",
                                    finalDOB.getAttachmentDOBList());
                        else
                            sendMail(finalDOB.getMasterDOB().getUserEmailId(), to_emailIds, subject.toString(),
                                    body, "Quote" + file_tsmp + ".pdf", finalDOB.getAttachmentDOBList());
                    } else
                        sendMail(finalDOB.getMasterDOB().getUserEmailId(), to_emailIds, subject.toString(),
                                body, "Quote" + file_tsmp + ".pdf", finalDOB.getAttachmentDOBList());
                }

                //System.out.println("End of mail sending and PDF Generation --------------------------------->");
            }
        } catch (Exception e) {
            //Logger.error(FILE_NAME,"Error while sending mail "+e); 
            logger.error(FILE_NAME + "Error while sending mail " + e);
            e.printStackTrace();
            mailFlag = 0;
        }
        try {
            if ("Y".equalsIgnoreCase(finalDOB.getFlagsDOB().getFaxFlag())) {
                //faxFlag   = 2;
                //finalDOB.getFlagsDOB().setQuoteStatusFlag("PEN");//@@Quote is Pending
                //ReportsSessionBeanHome home      = (ReportsSessionBeanHome)LookUpBean.getEJBHome("ReportsSessionBean");
                //ReportsSession  remote   = (ReportsSession)home.create();
                String customerFax = headerDOB.getCustFaxNo() != null ? headerDOB.getCustFaxNo() : "";
                String countrycode = headerDOB.getCustCountyCode() != null ? headerDOB.getCustCountyCode() : "";
                String contactFax = null;
                if ("SG".equalsIgnoreCase(countrycode)) {
                    if (customerFax != null && customerFax.length() > 0)
                        customerFax = "fax#" + customerFax + "@tcdhl.com";
                } else {
                    if (customerFax != null && customerFax.length() > 0)
                        customerFax = "ifax#" + customerFax + "@tcdhl.com";
                }

                if (contactPersons != null) {
                    int contPersonLen = contactPersons.length;
                    for (int i = 0; i < contPersonLen; i++) {
                        faxFlag = 2;
                        contactName = masterDOB.getCustContactNames()[i];
                        if (masterDOB.getCustContactNames()[i].indexOf("[") != -1)
                            contactName = contactName.substring(0,
                                    masterDOB.getCustContactNames()[i].indexOf("["));
                        if (masterDOB.getCustomerContactsFax()[i] != null
                                && masterDOB.getCustomerContactsFax()[i].trim().length() != 0) {
                            if ("SG".equalsIgnoreCase(countrycode))
                                contactFax = "fax#" + masterDOB.getCustomerContactsFax()[i] + "@tcdhl.com";
                            else
                                contactFax = "ifax#" + masterDOB.getCustomerContactsFax()[i] + "@tcdhl.com";

                            /*if(finalDOB.getUpdatedReportDOB()!=null)
                            {
                              body = "Dear "+contactName+",\n\nThis is a replacement quotation reference "+request.getAttribute("quoteId")+",replacing "+finalDOB.getUpdatedReportDOB().getQuoteId()+
                                 ", due to a change in "+(finalDOB.getEmailChargeName()!=null?finalDOB.getEmailChargeName():finalDOB.getUpdatedReportDOB().getChangeDesc())+". All information is contained within the attachment. "+
                                "Should you have any queries, please do not hesitate to contact us.\n\n\nRegards,\n"+masterDOB.getCreatorDetails()+"\n"+masterDOB.getTerminalAddress();
                             }
                            else
                            {
                              body = "Dear "+contactName+",\n\nThank you for the opportunity to provide this Quotation. All information is contained within the attachment."+
                                   " Should you have any queries, please do not hesitate to contact us.\n\n\nRegards,\n"+masterDOB.getCreatorDetails()+"\n"+masterDOB.getTerminalAddress();
                            }*/
                            // body  = "Dear "+contactName+",\n\n"+finalDOB.getEmailText()+"\n\n\nRegards,\n"+masterDOB.getCreatorDetails()+"\n"+masterDOB.getTerminalAddress();
                            if (finalDOB.getUpdatedReportDOB() != null) {
                                body = "Dear " + (contactName != null ? contactName : "")
                                        + ",\n\nThis is a replacement quotation reference "
                                        + request.getAttribute("quoteId") + ",replacing "
                                        + finalDOB.getUpdatedReportDOB().getQuoteId() + ", due to a change in "
                                        + (finalDOB.getEmailChargeName() != null ? finalDOB.getEmailChargeName()
                                                : finalDOB.getUpdatedReportDOB().getChangeDesc())
                                        + ",\n\n"
                                        + (finalDOB.getEmailText() != null ? finalDOB.getEmailText() : "")
                                        + "\n\n\n"
                                        + (masterDOB.getCreatorDetails() != null ? masterDOB.getCreatorDetails()
                                                : "")
                                        + "\n\n"
                                        + (masterDOB.getCompanyName() != null ? masterDOB.getCompanyName() : "")
                                        + "\n"
                                        + (masterDOB.getTerminalAddress() != null
                                                ? masterDOB.getTerminalAddress()
                                                : "")
                                        + "\n\n" + "Phone  "
                                        + (masterDOB.getPhoneNo() != null ? masterDOB.getPhoneNo() : "") + "\n"
                                        + "Fax    " + (masterDOB.getFaxNo() != null ? masterDOB.getFaxNo() : "")
                                        + "\n" + "Mobile "
                                        + (masterDOB.getMobileNo() != null ? masterDOB.getMobileNo() : "")
                                        + "\n\nEmail "
                                        + (masterDOB.getUserEmailId() != null ? masterDOB.getUserEmailId()
                                                : ""); //@@Modified by Kameswari for the WPBN issue-61303
                            } else {
                                body = "Dear " + (contactName != null ? contactName : "") + ",\n\n"
                                        + (finalDOB.getEmailText() != null ? finalDOB.getEmailText() : "")
                                        + "\n\n\n"
                                        + (masterDOB.getCreatorDetails() != null ? masterDOB.getCreatorDetails()
                                                : "")
                                        + "\n\n"
                                        + (masterDOB.getCompanyName() != null ? masterDOB.getCompanyName() : "")
                                        + "\n"
                                        + (masterDOB.getTerminalAddress() != null
                                                ? masterDOB.getTerminalAddress()
                                                : "")
                                        + "\n\n" + "Phone  "
                                        + (masterDOB.getPhoneNo() != null ? masterDOB.getPhoneNo() : "") + "\n"
                                        + "Fax    " + (masterDOB.getFaxNo() != null ? masterDOB.getFaxNo() : "")
                                        + "\n" + "Mobile "
                                        + (masterDOB.getMobileNo() != null ? masterDOB.getMobileNo() : "")
                                        + "\n\nEmail "
                                        + (masterDOB.getUserEmailId() != null ? masterDOB.getUserEmailId()
                                                : ""); //@@Modified by Kameswari for the WPBN issue-61303

                            }
                            if (masterDOB.getShipperZipCode() == null
                                    || masterDOB.getConsigneeZipCode() == null) {
                                if ((finalDOB.getPickZoneZipMap() != null
                                        && finalDOB.getPickZoneZipMap().size() > 0)
                                        || (finalDOB.getDeliveryZoneZipMap() != null
                                                && finalDOB.getDeliveryZoneZipMap().size() > 0))
                                    sendMail(finalDOB.getMasterDOB().getUserEmailId(), contactFax,
                                            subject.toString(), body,
                                            "Quote" + file_tsmp + ".pdf,Annexure" + file_tsmp + ".pdf",
                                            finalDOB.getAttachmentDOBList());
                                else
                                    sendMail(finalDOB.getMasterDOB().getUserEmailId(), contactFax,
                                            subject.toString(), body, "Quote" + file_tsmp + ".pdf",
                                            finalDOB.getAttachmentDOBList());
                            } else
                                sendMail(finalDOB.getMasterDOB().getUserEmailId(), contactFax,
                                        subject.toString(), body, "Quote" + file_tsmp + ".pdf",
                                        finalDOB.getAttachmentDOBList());
                        } else
                            faxFlag = 0;
                    }
                } else {
                    if (customerFax != null && customerFax.length() > 0) {
                        /* if(finalDOB.getUpdatedReportDOB()!=null)
                        {
                         body = "Dear Customer,\n\nThis is a replacement quotation reference "+request.getAttribute("quoteId")+",replacing "+finalDOB.getUpdatedReportDOB().getQuoteId()+
                               ", due to a change in "+(finalDOB.getEmailChargeName()!=null?finalDOB.getEmailChargeName():finalDOB.getUpdatedReportDOB().getChangeDesc())+". All information is contained within the attachment. "+
                               "Should you have any queries, please do not hesitate to contact us.\n\n\nRegards,\n"+masterDOB.getCreatorDetails()+"\n"+masterDOB.getTerminalAddress();
                        }
                        else
                        {
                         body = "Dear Customer,\n\nThank you for the opportunity to provide this Quotation. All information is contained within the attachment."+
                         " Should you have any queries, please do not hesitate to contact us.\n\n\nRegards,\n"+masterDOB.getCreatorDetails()+"\n"+masterDOB.getTerminalAddress();
                        }*/
                        // body  = "Dear Customer,\n\n"+finalDOB.getEmailText()+"\n\n\nRegards,\n"+masterDOB.getCreatorDetails()+"\n"+masterDOB.getTerminalAddress(); 
                        if (finalDOB.getUpdatedReportDOB() != null) {
                            body = "Dear Customer,\n\nThis is a replacement quotation reference "
                                    + request.getAttribute("quoteId") + ",replacing "
                                    + finalDOB.getUpdatedReportDOB().getQuoteId() + ", due to a change in "
                                    + (finalDOB.getEmailChargeName() != null ? finalDOB.getEmailChargeName()
                                            : finalDOB.getUpdatedReportDOB().getChangeDesc())
                                    + ",\n\n" + (finalDOB.getEmailText() != null ? finalDOB.getEmailText() : "")
                                    + "\n\n\n"
                                    + (masterDOB.getCreatorDetails() != null ? masterDOB.getCreatorDetails()
                                            : "")
                                    + "\n\n"
                                    + (masterDOB.getCompanyName() != null ? masterDOB.getCompanyName() : "")
                                    + "\n"
                                    + (masterDOB.getTerminalAddress() != null ? masterDOB.getTerminalAddress()
                                            : "")
                                    + "\n\n" + "Phone  "
                                    + (masterDOB.getPhoneNo() != null ? masterDOB.getPhoneNo() : "") + "\n"
                                    + "Fax    " + (masterDOB.getFaxNo() != null ? masterDOB.getFaxNo() : "")
                                    + "\n" + "Mobile "
                                    + (masterDOB.getMobileNo() != null ? masterDOB.getMobileNo() : "")
                                    + "\n\nEmail "
                                    + (masterDOB.getUserEmailId() != null ? masterDOB.getUserEmailId() : ""); //@@Modified by Kameswari for the WPBN issue-61303
                        } else {
                            body = "Dear Customer,\n\n"
                                    + (finalDOB.getEmailText() != null ? finalDOB.getEmailText() : "")
                                    + "\n\n\n"
                                    + (masterDOB.getCreatorDetails() != null ? masterDOB.getCreatorDetails()
                                            : "")
                                    + "\n\n"
                                    + (masterDOB.getCompanyName() != null ? masterDOB.getCompanyName() : "")
                                    + "\n"
                                    + (masterDOB.getTerminalAddress() != null ? masterDOB.getTerminalAddress()
                                            : "")
                                    + "\n\n" + "Phone  "
                                    + (masterDOB.getPhoneNo() != null ? masterDOB.getPhoneNo() : "") + "\n"
                                    + "Fax    " + (masterDOB.getFaxNo() != null ? masterDOB.getFaxNo() : "")
                                    + "\n" + "Mobile "
                                    + (masterDOB.getMobileNo() != null ? masterDOB.getMobileNo() : "")
                                    + "\n\nEmail "
                                    + (masterDOB.getUserEmailId() != null ? masterDOB.getUserEmailId() : ""); //@@Modified by Kameswari for the WPBN issue-61303
                        }
                        if (masterDOB.getShipperZipCode() == null || masterDOB.getConsigneeZipCode() == null) {
                            if ((finalDOB.getPickZoneZipMap() != null
                                    && finalDOB.getPickZoneZipMap().size() > 0)
                                    || (finalDOB.getDeliveryZoneZipMap() != null
                                            && finalDOB.getDeliveryZoneZipMap().size() > 0))
                                sendMail(finalDOB.getMasterDOB().getUserEmailId(), customerFax,
                                        subject.toString(), body,
                                        "Quote" + file_tsmp + ".pdf,Annexure" + file_tsmp + ".pdf",
                                        finalDOB.getAttachmentDOBList());
                            else
                                sendMail(finalDOB.getMasterDOB().getUserEmailId(), customerFax,
                                        subject.toString(), body, "Quote" + file_tsmp + ".pdf",
                                        finalDOB.getAttachmentDOBList());
                        } else
                            sendMail(finalDOB.getMasterDOB().getUserEmailId(), customerFax, subject.toString(),
                                    body, "Quote" + file_tsmp + ".pdf", finalDOB.getAttachmentDOBList());
                    } else
                        faxFlag = 0;
                }
            }
        } catch (Exception e) {
            //Logger.error(FILE_NAME,"Error while sending fax "+e); 
            logger.error(FILE_NAME + "Error while sending fax " + e);
            e.printStackTrace();
            faxFlag = 0;
        }
        if ("Y".equalsIgnoreCase(finalDOB.getFlagsDOB().getPrintFlag())) {
            //finalDOB.getFlagsDOB().setQuoteStatusFlag("PEN");//@@Quote is Pending
            printFlag = 4;
        } else {
            f.delete();
            File annexure = new File(filename);
            annexure.delete();
        }
        returnFlag = mailFlag + faxFlag + printFlag;
    } catch (Exception e) {
        e.printStackTrace();
        //Logger.error(FILE_NAME,"Error while generating the PDF"+e.toString());
        logger.error(FILE_NAME + "Error while generating the PDF" + e.toString());
        returnFlag = 0;
        //throw new Exception("Error while generating PDF format");
    } finally {
        try {
            //Method: doPDFGeneration Defect: PdfWriter is not closedSuggestion: Close and nullify the writer in the finally block.
            if (writer != null) {
                writer.close();
                writer = null;
            }
            charges = null;
            freightCharges = null;
            frequency = null;
            carrier = null;
            transittime = null;
            ratevalidity = null;
            frequency_o = null;
            frequency_d = null;
            carrier_o = null;
            carrier_d = null;
            transit_o = null;
            transit_d = null;
            validity_o = null;
            validity_d = null;
            filesList = null;

        } catch (Exception ex) {
            //Logger.error(FILE_NAME,"Exception caught :: finally :: insertFclValues() " + ex.toString() );
            logger.error(FILE_NAME + "Error while generating the PDF" + ex.toString());
        }
    }
    return returnFlag;
}

From source file:QMSQuoteController.java

License:Open Source License

private ArrayList doPDFGenerationForQuoteGroup(ArrayList mainDtl, HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    String[] contents = null;//w  w w .jav  a2 s.  c o  m
    String[] levels = null;
    String[] aligns = null;
    String[] headFoot = null;
    Table content = null;
    String[] contactPersons = null;
    String contactName = null;
    ArrayList contactList = new ArrayList();
    ArrayList contactEmailList = new ArrayList();
    ArrayList contactFaxList = new ArrayList();
    ArrayList returnList = new ArrayList();
    ArrayList sentEmailsList = new ArrayList();
    ArrayList unsentEmailsList = new ArrayList();
    ArrayList sentFaxList = new ArrayList();
    ArrayList unsentFaxList = new ArrayList();
    ArrayList filesDOBList = new ArrayList();
    ArrayList filesList = new ArrayList();
    HttpSession session = null;

    try {
        //System.out.println("PDF Generation Startd----------------------------------->");
        QuoteFinalDOB finalDOB = null;
        ESupplyDateUtility eSupplyDateUtility = new ESupplyDateUtility();
        QuoteHeader headerDOB = null;
        QuoteMasterDOB masterDOB = null;
        CostingMasterDOB costingMasterDOB = null;
        CostingChargeDetailsDOB detailsDOB = null;
        CostingLegDetailsDOB legDetails = null;
        CostingRateInfoDOB rateDetailsDOB = null;
        ArrayList rateDetails = new ArrayList();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        String formMailId = "";
        String to_emailIds = "";
        String to_FaxIds = "";
        String faxMailIds = "";
        Document document = new Document(PageSize.A4);
        String PDF_FILE_NAME = "Approved.pdf";
        document.addTitle("Approved Report");
        document.addSubject("Report PDF");
        document.addKeywords("Test, Key Words");
        document.addAuthor("DHL");
        document.addCreator("Auto Generated through 4S DHL");
        document.addCreationDate();
        PdfWriter writer = PdfWriter.getInstance(document, baos);
        document.open();
        Table partCountry;
        Chunk chk;
        Cell cellCountry;
        if (mainDtl != null && mainDtl.size() > 0) {

            finalDOB = (QuoteFinalDOB) mainDtl.get(0);
            headerDOB = finalDOB.getHeaderDOB();
            masterDOB = finalDOB.getMasterDOB();
            formMailId = "webmaster@four-soft.com";
            ESupplyGlobalParameters loginbean = (ESupplyGlobalParameters) request.getSession()
                    .getAttribute("loginbean");
            eSupplyDateUtility.setPatternWithTime("DD-MONTH-YYYY");
            //eSupplyDateUtility.setPatternWithTime(loginbean.getUserPreferences().getDateFormat());

            String[] strDate = eSupplyDateUtility.getDisplayStringArray(headerDOB.getDateOfQuotation());
            String[] effDate = eSupplyDateUtility.getDisplayStringArray(headerDOB.getEffDate());
            String[] validDate;

            // System.out.println("Before Document Objec--------------------------->");

            //document.setMargins(10,10,10,10);

            Table mainT = new Table(8);
            mainT.setWidth(100);
            mainT.setBorderColor(Color.white);
            mainT.setPadding(1);
            mainT.setSpacing(0);

            Phrase headingPhrase = new Phrase("", FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.BLACK));
            Cell cellHeading = new Cell(headingPhrase);
            cellHeading.setBorderColor(new Color(255, 255, 255));
            cellHeading.setHorizontalAlignment(cellHeading.ALIGN_CENTER);
            cellHeading.setColspan(7);
            mainT.addCell(cellHeading);

            Cell imageCell = new Cell();
            java.net.URL url = getServletConfig().getServletContext().getResource("/images/DHLlogo.gif");
            Image img0 = Image.getInstance(url);
            imageCell.add(img0);
            imageCell.setHorizontalAlignment(imageCell.ALIGN_RIGHT);
            imageCell.setBorderWidth(0);
            imageCell.setNoWrap(true);
            mainT.addCell(imageCell);
            mainT.setAlignment(mainT.ALIGN_CENTER);
            document.add(mainT);

            //Default Header Content Starts
            contents = masterDOB.getDefaultContent();
            headFoot = masterDOB.getDefaultHeaderFooter();

            if (contents != null && contents.length > 0) {
                content = new Table(1);
                content.setOffset(5);
                content.setWidth(100);
                content.setPadding(1);
                content.setSpacing(0);
                content.setBackgroundColor(Color.WHITE);
                content.setBorderColor(Color.black);
                content.setBorderWidth(1f);
                Cell cellContent = null;
                chk = null;
                int hFLen = headFoot.length;
                for (int i = 0; i < hFLen; i++) {
                    if (headFoot[i] != null && "H".equalsIgnoreCase(headFoot[i])) {
                        chk = new Chunk(contents[i], FontFactory.getFont("ARIAL", 7, Font.ITALIC, Color.BLACK));
                        cellContent = new Cell(chk);
                        cellContent.setBorder(0);
                        cellContent.setLeading(6.0f);
                        cellContent.setBackgroundColor(Color.LIGHT_GRAY);
                        cellContent.setHorizontalAlignment(cellContent.ALIGN_LEFT);//Default content is left aligned                                    
                        content.addCell(cellContent);
                    }
                }
                document.add(content);
                contents = null;
                headFoot = null;
                content = null;
            }
            //End Default Header Content

            //System.out.println("After Heading --------------------------->");
        }
        String validUptoStr = null;
        String[] strDate = null;
        String[] effDate = null;
        String[] validDate = null;
        StringBuffer attentionTo = null;
        int mainDtlSize = mainDtl.size();
        for (int m = 0; m < mainDtlSize; m++) {

            finalDOB = (QuoteFinalDOB) mainDtl.get(m);
            headerDOB = finalDOB.getHeaderDOB();
            masterDOB = finalDOB.getMasterDOB();
            //formMailId             =   "webmaster@four-soft.com";
            ESupplyGlobalParameters loginbean = (ESupplyGlobalParameters) request.getSession()
                    .getAttribute("loginbean");
            eSupplyDateUtility.setPatternWithTime("DD-MONTH-YYYY");
            //eSupplyDateUtility.setPatternWithTime(loginbean.getUserPreferences().getDateFormat());

            strDate = eSupplyDateUtility.getDisplayStringArray(headerDOB.getDateOfQuotation());
            effDate = eSupplyDateUtility.getDisplayStringArray(headerDOB.getEffDate());
            attentionTo = new StringBuffer("");

            if (headerDOB.getValidUpto() != null) {
                validDate = eSupplyDateUtility.getDisplayStringArray(headerDOB.getValidUpto());
                validUptoStr = validDate[0];
            }
            if (masterDOB.getCustContactNames() != null) {
                for (int i = 0; i < masterDOB.getCustContactNames().length; i++) {
                    // Logger.info(FILE_NAME,"headerDOB.getAttentionTo()::"+masterDOB.getCustomerContacts()[i]);
                    attentionTo.append(
                            masterDOB.getCustContactNames()[i] != null ? masterDOB.getCustContactNames()[i]
                                    : "");
                    if (i != masterDOB.getCustContactNames().length)
                        attentionTo.append(",");
                }
            }
            partCountry = new Table(1, 5);
            partCountry.setBorderWidth(0);
            partCountry.setWidth(100);
            partCountry.setBorderColor(Color.black);
            //partCountry.setBackgroundColor(Color.ORANGE);
            partCountry.setPadding(1);
            partCountry.setSpacing(0);
            partCountry.setAutoFillEmptyCells(true);
            //partCountry.setTableFitsPage(true);
            partCountry.setAlignment(partCountry.ALIGN_CENTER);
            // partCountry.setWidth(100.0f);

            String shipmentMode = "";
            if (finalDOB.getMasterDOB().getShipmentMode() == 1)
                shipmentMode = "AIR FREIGHT PROPOSAL";
            else if (finalDOB.getMasterDOB().getShipmentMode() == 2)
                shipmentMode = "SEA FREIGHT PROPOSAL";
            else if (finalDOB.getMasterDOB().getShipmentMode() == 4)
                shipmentMode = "TRUCK FREIGHT PROPOSAL";

            chk = new Chunk(shipmentMode, FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setWidth("100");
            cellCountry.setBorderWidth(0);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(10.0f);
            cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
            partCountry.addCell(cellCountry);
            //@@Modified for the WPBN Change Request-71229
            if ("MY".equalsIgnoreCase(masterDOB.getCountryId())) {
                chk = new Chunk(headerDOB.getOriginCountry() + " TO " + headerDOB.getDestinationCountry(),
                        FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.RED));
                cellCountry = new Cell(chk);
                cellCountry.setWidth("100");
                cellCountry.setBorderWidth(0);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(10.0f);
                cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
                partCountry.addCell(cellCountry);

                chk = new Chunk(headerDOB.getCustomerName() == null ? "" : headerDOB.getCustomerName(),
                        FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.RED));
                cellCountry = new Cell(chk);
                cellCountry.setHeader(true);
                cellCountry.setWidth("100");
                cellCountry.setBorderWidth(0);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(10.0f);
                cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
                partCountry.addCell(cellCountry);

                chk = new Chunk("ATTENTION TO: " + attentionTo.toString(),
                        FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.RED));
                cellCountry = new Cell(chk);
                cellCountry.setWidth("100");
                cellCountry.setBorderWidth(0);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(10.0f);
                cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
                partCountry.addCell(cellCountry);
            } else {
                chk = new Chunk(headerDOB.getOriginCountry() + " TO " + headerDOB.getDestinationCountry(),
                        FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.RED));
                cellCountry = new Cell(chk);
                cellCountry.setWidth("100");
                cellCountry.setBorderWidth(0);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(10.0f);
                cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
                partCountry.addCell(cellCountry);

                chk = new Chunk(headerDOB.getCustomerName() == null ? "" : headerDOB.getCustomerName(),
                        FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.RED));
                cellCountry = new Cell(chk);
                cellCountry.setHeader(true);
                cellCountry.setWidth("100");
                cellCountry.setBorderWidth(0);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(10.0f);
                cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
                partCountry.addCell(cellCountry);

                chk = new Chunk("ATTENTION TO: " + attentionTo.toString(),
                        FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.RED));
                cellCountry = new Cell(chk);
                cellCountry.setWidth("100");
                cellCountry.setBorderWidth(0);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(10.0f);
                cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
                partCountry.addCell(cellCountry);
            }
            //@@WPBN Change Request-71229
            chk = new Chunk("QUOTE REFERENCE: " + masterDOB.getQuoteId(),
                    FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setWidth("100");
            cellCountry.setBorderWidth(0);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(10.0f);
            cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
            partCountry.addCell(cellCountry);
            chk = new Chunk("DATE OF QUOTATION: " + strDate[0],
                    FontFactory.getFont("ARIAL", 12, Font.BOLD, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setWidth("100");
            cellCountry.setBorderWidth(0);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(10.0f);
            cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
            partCountry.addCell(cellCountry);

            contents = masterDOB.getContentOnQuote();
            levels = masterDOB.getLevels();
            aligns = masterDOB.getAlign();
            headFoot = masterDOB.getHeaderFooter();

            if (contents != null && contents.length > 0) {
                content = new Table(1);
                content.setOffset(5);
                content.setWidth(100);
                content.setPadding(1);
                content.setSpacing(0);
                content.setBackgroundColor(Color.WHITE);
                content.setBorderColor(Color.black);
                content.setBorderWidth(1f);
                Cell cellContent = null;
                chk = null;
                int hFlen = headFoot.length;
                for (int i = 0; i < hFlen; i++) {
                    if (headFoot[i] != null && "H".equalsIgnoreCase(headFoot[i])) {
                        chk = new Chunk(contents[i], FontFactory.getFont("ARIAL", 7, Font.ITALIC, Color.BLACK));
                        cellContent = new Cell(chk);
                        cellContent.setBorder(0);
                        cellContent.setLeading(6.0f);
                        cellContent.setBackgroundColor(Color.LIGHT_GRAY);
                        if ("L".equalsIgnoreCase(aligns[i]))
                            cellContent.setHorizontalAlignment(cellContent.ALIGN_LEFT);
                        else if ("C".equalsIgnoreCase(aligns[i]))
                            cellContent.setHorizontalAlignment(cellContent.ALIGN_CENTER);
                        else if ("R".equalsIgnoreCase(aligns[i]))
                            cellContent.setHorizontalAlignment(cellContent.ALIGN_RIGHT);
                        content.addCell(cellContent);
                    }
                }
                document.add(content);
            }

            partCountry = new Table(2, 15);
            partCountry.setOffset(2);
            partCountry.setWidth(100);
            partCountry.setPadding(1);
            partCountry.setSpacing(0);
            partCountry.setBackgroundColor(Color.WHITE);
            partCountry.setBorderColor(Color.black);
            partCountry.setBorderWidth(1);
            //added by subrahmanyam for 182516
            partCountry.setTableFitsPage(true);
            partCountry.setCellsFitPage(true);
            //ended for 182516

            chk = new Chunk("SERVICE INFORMATION: ", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cellCountry = new Cell(chk);

            cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
            cellCountry.setBackgroundColor(Color.ORANGE);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            //@@ Commented by subrahmanyam for the enhancement #146970 & #146971            
            /*chk = new Chunk("QUOTE ID:"+new Long(masterDOB.getQuoteId()).toString(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
            cellCountry.setBackgroundColor(Color.ORANGE);
            cellCountry.setNoWrap(true); cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);*/
            //@@ Added by subrahmanyam for the enhancement #146970 & #146971            
            chk = new Chunk("QUOTE ID:" + masterDOB.getQuoteId(),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setHorizontalAlignment(cellCountry.ALIGN_CENTER);
            cellCountry.setBackgroundColor(Color.ORANGE);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("Origin : ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("   " + (headerDOB.getOriginLocName() != null ? headerDOB.getOriginLocName() : ""),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("Destination : ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("   " + (headerDOB.getDestLocName() != null ? headerDOB.getDestLocName() : ""),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("Customer : ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("   " + (headerDOB.getCustomerName() != null ? headerDOB.getCustomerName() : ""),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("Agent: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("   " + (headerDOB.getAgent() != null ? headerDOB.getAgent() : ""),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            //@@ Added by subrahmanyam for the WPBN ISSUE: 150460 ON 23/12/2008                
            if ("EXW".equalsIgnoreCase(headerDOB.getIncoTerms())
                    || "FAS".equalsIgnoreCase(headerDOB.getIncoTerms())
                    || "FCA".equalsIgnoreCase(headerDOB.getIncoTerms())
                    || "FOB".equalsIgnoreCase(headerDOB.getIncoTerms())) {
                chk = new Chunk("Place Of Acceptance: ",
                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cellCountry = new Cell(chk);
                cellCountry.setBackgroundColor(Color.lightGray);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(8.0f);
                partCountry.addCell(cellCountry);
            } else {
                chk = new Chunk("Place Of Delivery: ",
                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cellCountry = new Cell(chk);
                cellCountry.setBackgroundColor(Color.lightGray);
                cellCountry.setNoWrap(true);
                cellCountry.setLeading(8.0f);
                partCountry.addCell(cellCountry);
            }
            //@@ Ended by subrahmanyam for the WPBN ISSUE: 150460 ON 23/12/2008  

            chk = new Chunk("   " + (headerDOB.getCargoAcceptancePlace() != null
                    ? headerDOB.getCargoAcceptancePlace().toUpperCase()
                    : ""), FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("Origin Port: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("   "
                    + ((headerDOB.getOriginPortName() != null
                            ? headerDOB.getOriginPortName().toUpperCase() + ", "
                            : ""))
                    + (headerDOB.getOriginPortCountry() != null ? headerDOB.getOriginPortCountry().toUpperCase()
                            : ""),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("Destination Port: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("   "
                    + ((headerDOB.getDestPortName() != null ? headerDOB.getDestPortName().toUpperCase() + ", "
                            : ""))
                    + (headerDOB.getDestPortCountry() != null ? headerDOB.getDestPortCountry().toUpperCase()
                            : ""),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            // @@Commented by subrahmanyam for the enhancement #148546 on 09/12/2008            
            /* chk = new Chunk("Routing: ",FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
             cellCountry = new Cell(chk);
             cellCountry.setBackgroundColor(Color.lightGray);
             cellCountry.setNoWrap(true); cellCountry.setLeading(8.0f);
             partCountry.addCell(cellCountry);          
             chk = new Chunk("   "+(headerDOB.getRouting()!=null?headerDOB.getRouting():""),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
             cellCountry = new Cell(chk);
             cellCountry.setNoWrap(true); cellCountry.setLeading(8.0f);
             partCountry.addCell(cellCountry);*/
            //@@ Ended by subrahmanyam for the enhanement #148546 on 09/12/2008 

            chk = new Chunk("Commodity or Product: ",
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("   " + (headerDOB.getCommodity() != null ? headerDOB.getCommodity() : ""),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("Type of service quoted: ",
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("   " + (headerDOB.getTypeOfService() != null ? headerDOB.getTypeOfService() : ""),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("Incoterms: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("   " + (headerDOB.getIncoTerms() != null ? headerDOB.getIncoTerms() : ""),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("Notes: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            //@@ Commented by subrahmanyam for WPBN ISSUE:-145510                                      
            /* chk = new Chunk("   "+(headerDOB.getNotes()!=null?headerDOB.getNotes().toUpperCase()+'\n'+"nnnnnnnnnn":""),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
            Commented by subrahmanyam for WPBN ISSUE:-145510   
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true); cellCountry.setLeading(8.0f);
                    
            partCountry.addCell(cellCountry);
            */
            //@@ Ended by subrahmanyam for WPBN ISSUE:-145510  
            //@@ Added by subrahmanyam for WPBN ISSUE:-145510  
            chk = new Chunk("   " + (headerDOB.getNotes() != null ? headerDOB.getNotes().toUpperCase() : " "),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);
            //@@ Ended by subrahmanyam for WPBN ISSUE:-145510   

            chk = new Chunk("Date Effective: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("   " + effDate[0], FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("Validity of Quote: ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setBackgroundColor(Color.lightGray);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            chk = new Chunk("   " + (validUptoStr != null ? validUptoStr : "VALID UNTIL FURTHER NOTICE"),
                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
            cellCountry = new Cell(chk);
            cellCountry.setNoWrap(true);
            cellCountry.setLeading(8.0f);
            partCountry.addCell(cellCountry);

            document.add(partCountry);
            partCountry.complete();
        }
        int originCount = 0;
        int freightCount = 0;
        int destCount = 0;
        for (int m = 0; m < mainDtlSize; m++) {

            finalDOB = (QuoteFinalDOB) mainDtl.get(m);
            headerDOB = finalDOB.getHeaderDOB();
            masterDOB = finalDOB.getMasterDOB();
            // System.out.println("After Page Country-------------------------------->");
            //Origin Charges

            costingMasterDOB = finalDOB.getCostingMasterDOB();

            ArrayList originCharges = (ArrayList) costingMasterDOB.getOriginList();

            int[] originIndices = finalDOB.getSelectedOriginChargesListIndices();
            int originChargesSize = 0;

            if (originCharges != null)
                originChargesSize = originCharges.size();
            else
                originChargesSize = 0;

            //Destination
            ArrayList destCharges = new ArrayList();
            int[] destIndices = finalDOB.getSelctedDestChargesListIndices();
            int destChargesSize = 0;
            if (destIndices != null)
                destChargesSize = destIndices.length;
            else
                destChargesSize = 0;

            ArrayList frieghtChargeDetails = new ArrayList();
            destCharges = (ArrayList) costingMasterDOB.getDestinationList();
            ArrayList costingLegDetailsList = new ArrayList();
            costingLegDetailsList = (ArrayList) costingMasterDOB.getCostingLegDetailsList();
            //////////////////////////////
            int orgChargSize = originCharges.size();
            for (int i = 0; i < orgChargSize; i++) {
                detailsDOB = (CostingChargeDetailsDOB) originCharges.get(i);
                rateDetails = (ArrayList) detailsDOB.getCostingRateInfoDOB();
                int rateDtlSize = rateDetails.size();
                for (int k = 0; k < rateDtlSize; k++) {
                    originCount++;
                }
            }
            int destChargSize = destCharges.size();
            for (int i = 0; i < destChargSize; i++) {
                detailsDOB = (CostingChargeDetailsDOB) destCharges.get(i);
                rateDetails = (ArrayList) detailsDOB.getCostingRateInfoDOB();
                int rateDtlSize = rateDetails.size();
                for (int k = 0; k < rateDtlSize; k++) {
                    destCount++;
                }
            }
            int costLegDtlSize = costingLegDetailsList.size();
            for (int s = 0; s < costLegDtlSize; s++) {
                legDetails = (CostingLegDetailsDOB) costingLegDetailsList.get(s);
                frieghtChargeDetails = (ArrayList) legDetails.getCostingChargeDetailList();
                int frtChargDtlSize = frieghtChargeDetails.size();
                for (int n = 0; n < frtChargDtlSize; n++) {
                    detailsDOB = (CostingChargeDetailsDOB) frieghtChargeDetails.get(n);
                    rateDetails = (ArrayList) detailsDOB.getCostingRateInfoDOB();
                    int rateDtlSize = rateDetails.size();
                    for (int j = 0; j < rateDtlSize; j++) {
                        freightCount++;
                    }
                }
            }

        }

        //////////////////////////////
        ArrayList charges = finalDOB.getLegDetails();
        int chargesSize = charges.size();
        if (originCount > 0) {
            Table chargeCountry = new Table(7, originCount);
            chargeCountry.setWidth(100);
            chargeCountry.setPadding(1);
            chargeCountry.setSpacing(0);
            chargeCountry.setOffset(25);
            chargeCountry.setBackgroundColor(Color.WHITE);
            chargeCountry.setBorderColor(Color.black);
            chargeCountry.setDefaultHorizontalAlignment(Element.ALIGN_CENTER);
            chargeCountry.setBorderWidth(1);
            //@@ Added by subrahmanyam for wpbn id: 181349 on 07-sep-09
            chargeCountry.setTableFitsPage(true);
            chargeCountry.setCellsFitPage(true);
            // @@ Ended for wpbn id: 181349 on 07-sep-09

            Cell cell;
            String wBslab = "";
            chk = new Chunk("QUOTEID ", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell = new Cell(chk);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setNoWrap(true);
            cell.setLeading(8.0f);
            //cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
            chargeCountry.addCell(cell);

            chk = new Chunk("CHARGE NAME ", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell = new Cell(chk);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setNoWrap(true);
            cell.setLeading(8.0f);
            // cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
            chargeCountry.addCell(cell);

            chk = new Chunk("BREAKPOINT", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell = new Cell(chk);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setNoWrap(true);
            cell.setLeading(8.0f);
            // cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
            chargeCountry.addCell(cell);

            chk = new Chunk("CURRENCY", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell = new Cell(chk);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setNoWrap(true);
            cell.setLeading(8.0f);
            // cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
            chargeCountry.addCell(cell);

            chk = new Chunk("RATE", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell = new Cell(chk);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setNoWrap(true);
            cell.setLeading(8.0f);
            // cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
            chargeCountry.addCell(cell);

            chk = new Chunk("BASIS", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell = new Cell(chk);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setNoWrap(true);
            cell.setLeading(8.0f);
            //cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
            chargeCountry.addCell(cell);

            chk = new Chunk("RATIO", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell = new Cell(chk);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setNoWrap(true);
            cell.setLeading(8.0f);
            //cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
            chargeCountry.addCell(cell);

            chk = new Chunk("ORIGIN CHARGES", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell = new Cell(chk);
            cell.setColspan(7);
            cell.setBackgroundColor(Color.ORANGE);
            cell.setNoWrap(true);
            cell.setLeading(8.0f);
            // cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
            chargeCountry.addCell(cell);
            for (int m = 0; m < mainDtlSize; m++) {

                finalDOB = (QuoteFinalDOB) mainDtl.get(m);
                headerDOB = finalDOB.getHeaderDOB();
                masterDOB = finalDOB.getMasterDOB();

                costingMasterDOB = finalDOB.getCostingMasterDOB();
                ArrayList originCharges = (ArrayList) costingMasterDOB.getOriginList();

                QuoteCharges chargesDOB = null;
                ArrayList originChargeInfo = null;
                int originChargesInfoSize = 0;
                QuoteChargeInfo chargeInfo = null;
                if (originCharges.size() > 0) {

                    int orgChargSize = originCharges.size();
                    for (int i = 0; i < orgChargSize; i++) {
                        detailsDOB = (CostingChargeDetailsDOB) originCharges.get(i);
                        rateDetails = (ArrayList) detailsDOB.getCostingRateInfoDOB();

                        originChargesInfoSize = rateDetails.size();
                        for (int k = 0; k < originChargesInfoSize; k++) {
                            CostingRateInfoDOB crateDetailsDOB = (CostingRateInfoDOB) rateDetails.get(k);
                            if (k == 0) {
                                //@@ Commented by subrahmanyam for the enhancement #146971 and #146970 on 10/12/2008                    
                                /*chk = new Chunk(new Long(masterDOB.getQuoteId()).toString(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                                cell = new Cell(chk);
                                //cell.setRowspan(originChargesInfoSize);
                                cell.setBackgroundColor(Color.lightGray);
                                cell.setNoWrap(true); cell.setLeading(8.0f);
                                //cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
                                chargeCountry.addCell(cell);*/
                                //@@ Added by subrahmanyam for the enhancement #146971 and 146970 on 10/12/2008    
                                chk = new Chunk(masterDOB.getQuoteId(),
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                cell = new Cell(chk);
                                cell.setBackgroundColor(Color.lightGray);
                                cell.setNoWrap(true);
                                cell.setLeading(8.0f);
                                chargeCountry.addCell(cell);
                                //@@ Ended by subrahmanyam for the enhanemenet #146971 and #146970 on 10/12/2008 

                                //@@ commented and modified by subrahmanyam for 181349  on 07-sep-09 & 202166 on 7-apr-10
                                // chk = new Chunk(detailsDOB.getChargeDescId(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                                chk = new Chunk(
                                        detailsDOB.getExternalName() != null ? detailsDOB.getExternalName()
                                                : detailsDOB.getChargeDescId(),
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));//ended for 181349
                                cell = new Cell(chk);
                                //cell.setRowspan(originChargesInfoSize);
                                cell.setBackgroundColor(Color.lightGray);
                                // cell.setNoWrap(true); //commented for 181349
                                cell.setLeading(8.0f);
                                //cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
                                chargeCountry.addCell(cell);
                            } else {
                                cell = new Cell("");
                                //cell.setRowspan(originChargesInfoSize);
                                cell.setBackgroundColor(Color.lightGray);
                                cell.setNoWrap(true);
                                cell.setLeading(8.0f);
                                cell.setBorderWidth(0f);
                                //cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
                                chargeCountry.addCell(cell);

                                cell = new Cell("");
                                //cell.setRowspan(originChargesInfoSize);
                                cell.setBackgroundColor(Color.lightGray);
                                cell.setNoWrap(true);
                                cell.setLeading(8.0f);
                                cell.setBorderWidth(0f);
                                //cell.setVerticalAlignment(cell.ALIGN_MIDDLE);
                                chargeCountry.addCell(cell);
                            }
                            chk = new Chunk(crateDetailsDOB.getWeightBreakSlab(),
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell = new Cell(chk);
                            cell.setBackgroundColor(Color.lightGray);
                            cell.setNoWrap(true);
                            cell.setLeading(8.0f);
                            chargeCountry.addCell(cell);

                            chk = new Chunk(detailsDOB.getCurrency(),
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell = new Cell(chk);
                            cell.setBackgroundColor(Color.lightGray);
                            cell.setNoWrap(true);
                            cell.setLeading(8.0f);
                            chargeCountry.addCell(cell);

                            chk = new Chunk(crateDetailsDOB.getRate() + "",
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell = new Cell(chk);
                            cell.setNoWrap(true);
                            cell.setLeading(8.0f);
                            chargeCountry.addCell(cell);

                            //added by subrahmanyam for 183812
                            if (crateDetailsDOB.getWeightBreakSlab().equalsIgnoreCase("Min")
                                    || ("BOTH".equalsIgnoreCase(detailsDOB.getRateType())
                                            && "F".equalsIgnoreCase(crateDetailsDOB.getRateIndicator()))) {
                                wBslab = "MIN";
                            } else
                                wBslab = detailsDOB.getChargeBasisDesc();
                            // @@ Commented & Added by subrahmanyam for the wpbn id: 182516 on 10/09/09
                            //chk = new Chunk(crateDetailsDOB.getWeightBreakSlab().equalsIgnoreCase("Min")?"Pershipment ":detailsDOB.getChargeBasisDesc(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                            //chk = new Chunk(crateDetailsDOB.getWeightBreakSlab().equalsIgnoreCase("Min")?" Per Shipment ":detailsDOB.getChargeBasisDesc(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                            chk = new Chunk(
                                    wBslab.equalsIgnoreCase("Min") ? " Per Shipment "
                                            : detailsDOB.getChargeBasisDesc(),
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell = new Cell(chk);
                            cell.setNoWrap(true);
                            cell.setLeading(8.0f);
                            chargeCountry.addCell(cell);

                            chk = new Chunk(
                                    detailsDOB.getDensityRatio() == null ? "" : detailsDOB.getDensityRatio(),
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell = new Cell(chk);
                            cell.setNoWrap(true);
                            cell.setLeading(8.0f);
                            chargeCountry.addCell(cell);

                        }
                    }
                }
            }
            document.add(chargeCountry);
        }
        if (freightCount > 0) {
            Table chargeCountry1 = new Table(7, freightCount);
            chargeCountry1.setWidth(100);
            chargeCountry1.setPadding(1);
            chargeCountry1.setSpacing(0);
            chargeCountry1.setOffset(25);
            chargeCountry1.setBackgroundColor(Color.WHITE);
            chargeCountry1.setBorderColor(Color.black);
            chargeCountry1.setDefaultHorizontalAlignment(Element.ALIGN_CENTER);
            chargeCountry1.setBorderWidth(1);
            //@@ Added by subrahmanyam for wpbn id: 181349 on 07-sep-09
            chargeCountry1.setTableFitsPage(true);
            chargeCountry1.setCellsFitPage(true);
            // @@ Ended for wpbn id: 181349 on 07-sep-09

            Cell cell1;
            chk = new Chunk(" QUOTEID", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell1 = new Cell(chk);
            cell1.setBackgroundColor(Color.ORANGE);
            cell1.setNoWrap(true);
            cell1.setLeading(8.0f);
            //cell1.setVerticalAlignment(cell1.ALIGN_MIDDLE);
            chargeCountry1.addCell(cell1);
            chk = new Chunk("CHARGE NAME ", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell1 = new Cell(chk);
            cell1.setBackgroundColor(Color.ORANGE);
            cell1.setNoWrap(true);
            cell1.setLeading(8.0f);
            //cell1.setVerticalAlignment(cell1.ALIGN_MIDDLE);
            chargeCountry1.addCell(cell1);

            chk = new Chunk("BREAKPOINT", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell1 = new Cell(chk);
            cell1.setBackgroundColor(Color.ORANGE);
            cell1.setNoWrap(true);
            cell1.setLeading(8.0f);
            //cell1.setVerticalAlignment(cell1.ALIGN_MIDDLE);
            chargeCountry1.addCell(cell1);

            chk = new Chunk("CURRENCY", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell1 = new Cell(chk);
            cell1.setBackgroundColor(Color.ORANGE);
            cell1.setNoWrap(true);
            cell1.setLeading(8.0f);
            //cell1.setVerticalAlignment(cell1.ALIGN_MIDDLE);
            chargeCountry1.addCell(cell1);

            chk = new Chunk("RATE", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell1 = new Cell(chk);
            cell1.setBackgroundColor(Color.ORANGE);
            cell1.setNoWrap(true);
            cell1.setLeading(8.0f);
            // cell1.setVerticalAlignment(cell1.ALIGN_MIDDLE);
            chargeCountry1.addCell(cell1);

            chk = new Chunk("BASIS", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell1 = new Cell(chk);
            cell1.setBackgroundColor(Color.ORANGE);
            cell1.setNoWrap(true);
            cell1.setLeading(8.0f);
            //cell1.setVerticalAlignment(cell1.ALIGN_MIDDLE);
            chargeCountry1.addCell(cell1);

            chk = new Chunk("RATIO", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell1 = new Cell(chk);
            cell1.setBackgroundColor(Color.ORANGE);
            cell1.setNoWrap(true);
            cell1.setLeading(8.0f);
            // cell1.setVerticalAlignment(cell1.ALIGN_MIDDLE);
            chargeCountry1.addCell(cell1);

            chk = new Chunk("FREIGHT CHARGES", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell1 = new Cell(chk);
            cell1.setColspan(7);
            cell1.setNoWrap(true);
            cell1.setLeading(8.0f);
            cell1.setBackgroundColor(Color.ORANGE);
            //cell1.setVerticalAlignment(cell1.ALIGN_MIDDLE);
            chargeCountry1.addCell(cell1);
            //Freight Charges
            // System.out.println("After         Origin Charges --------------------------------->");
            int freightChargesSize = 0;
            int freightChargesInfoSize = 0;
            int[] frtIndices = null;
            QuoteFreightLegSellRates legCharges = null;
            String wBSlab = "";//added by subrahmanyam for 182516 on 10-sep-09             
            int mDtlSize = mainDtl.size();
            for (int m = 0; m < mDtlSize; m++) {

                finalDOB = (QuoteFinalDOB) mainDtl.get(m);
                headerDOB = finalDOB.getHeaderDOB();
                masterDOB = finalDOB.getMasterDOB();
                ArrayList costingLegDetailsList = new ArrayList();
                costingMasterDOB = finalDOB.getCostingMasterDOB();
                costingLegDetailsList = (ArrayList) costingMasterDOB.getCostingLegDetailsList();
                ArrayList frieghtChargeDetails = new ArrayList();
                String rDescription = ""; // Added by subrahmanyam for 182516 on 10/09/09
                if (costingLegDetailsList.size() > 0) {

                    int costLegDtlSize = costingLegDetailsList.size();
                    for (int s = 0; s < costLegDtlSize; s++) {
                        legDetails = (CostingLegDetailsDOB) costingLegDetailsList.get(s);
                        frieghtChargeDetails = (ArrayList) legDetails.getCostingChargeDetailList();
                        int frtLegDtlSize = frieghtChargeDetails.size();
                        int frtChargDtlSize = frieghtChargeDetails.size();
                        for (int n = 0; n < frtChargDtlSize; n++) {
                            detailsDOB = (CostingChargeDetailsDOB) frieghtChargeDetails.get(n);
                            rateDetails = (ArrayList) detailsDOB.getCostingRateInfoDOB();
                            int rateDtlSize = rateDetails.size();
                            for (int j = 0; j < rateDtlSize; j++) {
                                rateDetailsDOB = (CostingRateInfoDOB) rateDetails.get(j);

                                if (j == 0) {

                                    chk = new Chunk(legDetails.getOrigin() + "-" + legDetails.getDestination(),
                                            FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
                                    cell1 = new Cell(chk);
                                    cell1.setColspan(7);
                                    cell1.setBackgroundColor(Color.WHITE);
                                    cell1.setLeading(8.0f);
                                    chargeCountry1.addCell(cell1);

                                    //@@ Commented by subrahmanyam for the enhancement #146971 and 1469710 on 10/12/2008                      
                                    /*chk = new Chunk(new Long(masterDOB.getQuoteId()).toString(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                                    cell1 = new Cell(chk);
                                    //cell1.setRowspan(rateDetails.size());
                                    cell1.setNoWrap(true); cell2.setLeading(8.0f);
                                    cell1.setBackgroundColor(Color.lightGray);
                                    chargeCountry1.addCell(cell1);*/
                                    //@@ Added by subrahmanyam for the enhancement #146971 and #146970 on 10/12/2008
                                    chk = new Chunk(masterDOB.getQuoteId(),
                                            FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                    cell1 = new Cell(chk);
                                    cell1.setNoWrap(true);
                                    cell1.setLeading(8.0f);
                                    cell1.setBackgroundColor(Color.lightGray);
                                    chargeCountry1.addCell(cell1);
                                    //@@ Ended by subrahmanyam for the enhancement #146971 and 146970 on 10/12/2008    
                                    // COMMENTED AND MODIFIED BY SUBRAHMANYAM FOR 182516
                                    //chk = new Chunk(detailsDOB.getChargeDescId()==null?"":detailsDOB.getChargeDescId(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                                    chk = new Chunk(
                                            rateDetailsDOB.getRateDescription() == null ? ""
                                                    : rateDetailsDOB.getRateDescription(),
                                            FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                    cell1 = new Cell(chk);
                                    //cell1.setRowspan(rateDetails.size());
                                    cell1.setNoWrap(true);
                                    cell1.setLeading(8.0f);
                                    cell1.setBackgroundColor(Color.lightGray);
                                    chargeCountry1.addCell(cell1);
                                    rDescription = rateDetailsDOB.getRateDescription();
                                } else {
                                    cell1 = new Cell("");
                                    //cell1.setRowspan(rateDetails.size());
                                    cell1.setNoWrap(true);
                                    cell1.setLeading(8.0f);
                                    cell1.setBorderWidth(0f);
                                    cell1.setBackgroundColor(Color.lightGray);
                                    chargeCountry1.addCell(cell1);

                                    //@@ Commented by subrahmanyam for 182516 on 10/09/09
                                    /*
                                     cell1 = new Cell("");
                                     //cell1.setRowspan(rateDetails.size());
                                     cell1.setNoWrap(true); cell1.setLeading(8.0f);
                                     cell1.setBackgroundColor(Color.lightGray);
                                     cell1.setBorderWidth(0f);
                                     chargeCountry1.addCell(cell1);
                                     */
                                    //@@ added by subrahmanyam for 182516 on 10/09/09
                                    if (rDescription.equalsIgnoreCase(rateDetailsDOB.getRateDescription())) {
                                        chk = new Chunk("",
                                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                        cell1 = new Cell(chk);
                                        //cell1.setRowspan(rateDetails.size());
                                        cell1.setNoWrap(true);
                                        cell1.setLeading(8.0f);
                                        cell1.setBackgroundColor(Color.lightGray);
                                        cell1.setBorderWidth(0f);
                                        chargeCountry1.addCell(cell1);
                                    } else {
                                        chk = new Chunk(
                                                rateDetailsDOB.getRateDescription() == null ? ""
                                                        : rateDetailsDOB.getRateDescription(),
                                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                        cell1 = new Cell(chk);
                                        //cell1.setRowspan(rateDetails.size());
                                        //cell1.setNoWrap(true);
                                        cell1.setLeading(8.0f);
                                        cell1.setBackgroundColor(Color.lightGray);
                                        chargeCountry1.addCell(cell1);
                                        rDescription = rateDetailsDOB.getRateDescription();
                                    }
                                    //ended by subrahmanyam for 182516 on 10/09/09

                                }
                                if ("FSBASIC".equalsIgnoreCase(rateDetailsDOB.getWeightBreakSlab())
                                        || "SSBASIC".equalsIgnoreCase(rateDetailsDOB.getWeightBreakSlab()))
                                    rateDetailsDOB.setWeightBreakSlab("Basic Charge");
                                if ("FSMIN".equalsIgnoreCase(rateDetailsDOB.getWeightBreakSlab())
                                        || "SSMIN".equalsIgnoreCase(rateDetailsDOB.getWeightBreakSlab()))
                                    rateDetailsDOB.setWeightBreakSlab("Minimum");
                                if ("FSKG".equalsIgnoreCase(rateDetailsDOB.getWeightBreakSlab())
                                        || "SSKG".equalsIgnoreCase(rateDetailsDOB.getWeightBreakSlab()))
                                    rateDetailsDOB.setWeightBreakSlab("Flat Rate");

                                chk = new Chunk(rateDetailsDOB.getWeightBreakSlab(),
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                cell1 = new Cell(chk);
                                cell1.setNoWrap(true);
                                cell1.setLeading(8.0f);
                                cell1.setBackgroundColor(Color.lightGray);
                                chargeCountry1.addCell(cell1);

                                chk = new Chunk(detailsDOB.getCurrency(),
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                cell1 = new Cell(chk);
                                cell1.setNoWrap(true);
                                cell1.setLeading(8.0f);
                                cell1.setBackgroundColor(Color.lightGray);
                                chargeCountry1.addCell(cell1);

                                chk = new Chunk(rateDetailsDOB.getRate() + "",
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                cell1 = new Cell(chk);
                                cell1.setNoWrap(true);
                                cell1.setLeading(8.0f);
                                chargeCountry1.addCell(cell1);

                                //@@ Added by subrahmanyam for wpbn id: 182516
                                // MODIFIED BY SUBRAHMANYAM FOR 183812
                                if (rateDetailsDOB.getWeightBreakSlab().equalsIgnoreCase("Min")
                                        || rateDetailsDOB.getWeightBreakSlab().equalsIgnoreCase("Minimum")
                                        || ("BOTH".equalsIgnoreCase(detailsDOB.getRateType()) && "FLAT"
                                                .equalsIgnoreCase(rateDetailsDOB.getRateIndicator()))) {
                                    wBSlab = "MIN";
                                } else {
                                    wBSlab = rateDetailsDOB.getWeightBreakSlab();
                                }
                                //@@ commented by subrahmanyam for wpbn id: 182516
                                //chk = new Chunk(rateDetailsDOB.getWeightBreakSlab().equalsIgnoreCase("Min")?"Pershipment ":detailsDOB.getChargeBasisDesc(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                                //@@ Added by subrahmanyam for wpbn id: 182516
                                chk = new Chunk(
                                        wBSlab.equalsIgnoreCase("Min") ? " Per Shipment "
                                                : detailsDOB.getChargeBasisDesc(),
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                //@@ Ended  for wpbn id: 182516
                                cell1 = new Cell(chk);
                                cell1.setNoWrap(true);
                                cell1.setLeading(8.0f);
                                chargeCountry1.addCell(cell1);

                                chk = new Chunk(
                                        detailsDOB.getDensityRatio() == null ? ""
                                                : detailsDOB.getDensityRatio(),
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                cell1 = new Cell(chk);
                                cell1.setNoWrap(true);
                                cell1.setLeading(8.0f);
                                chargeCountry1.addCell(cell1);

                            }
                        }
                    }
                }
            }
            document.add(chargeCountry1);
        }
        // System.out.println("After Charges--------------------------------->");
        ArrayList destChargeInfo = null;
        //int[]      destChargeInfo        =  null;
        int destChargesInfoSize = 0;
        if (destCount > 0) {
            Table chargeCountry2 = new Table(7, destCount);
            chargeCountry2.setWidth(100);
            chargeCountry2.setPadding(1);
            chargeCountry2.setSpacing(0);
            chargeCountry2.setOffset(25);
            chargeCountry2.setBackgroundColor(Color.WHITE);
            chargeCountry2.setBorderColor(Color.black);
            chargeCountry2.setDefaultHorizontalAlignment(Element.ALIGN_CENTER);
            chargeCountry2.setBorderWidth(1);
            //@@ Added by subrahmanyam for wpbn id: 181349 on 07-sep-09
            chargeCountry2.setTableFitsPage(true);
            chargeCountry2.setCellsFitPage(true);
            // @@ Ended for wpbn id: 181349 on 07-sep-09

            Cell cell2;
            String wBslab = "";
            chk = new Chunk("QUOTEID", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell2 = new Cell(chk);
            cell2.setNoWrap(true);
            cell2.setLeading(8.0f);
            cell2.setBackgroundColor(Color.ORANGE);
            //cell2.setVerticalAlignment(cell2.ALIGN_MIDDLE);
            chargeCountry2.addCell(cell2);

            chk = new Chunk("CHARGE NAME", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell2 = new Cell(chk);
            cell2.setNoWrap(true);
            cell2.setLeading(8.0f);
            cell2.setBackgroundColor(Color.ORANGE);
            //cell2.setVerticalAlignment(cell2.ALIGN_MIDDLE);
            chargeCountry2.addCell(cell2);

            chk = new Chunk("BREAKPOINT", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell2 = new Cell(chk);
            cell2.setNoWrap(true);
            cell2.setLeading(8.0f);
            cell2.setBackgroundColor(Color.ORANGE);
            //cell2.setVerticalAlignment(cell2.ALIGN_MIDDLE);
            chargeCountry2.addCell(cell2);

            chk = new Chunk("CURRENCY", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell2 = new Cell(chk);
            cell2.setNoWrap(true);
            cell2.setLeading(8.0f);
            cell2.setBackgroundColor(Color.ORANGE);
            //cell2.setVerticalAlignment(cell2.ALIGN_MIDDLE);
            chargeCountry2.addCell(cell2);

            chk = new Chunk("RATE", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell2 = new Cell(chk);
            cell2.setNoWrap(true);
            cell2.setLeading(8.0f);
            cell2.setBackgroundColor(Color.ORANGE);
            //cell2.setVerticalAlignment(cell2.ALIGN_MIDDLE);
            chargeCountry2.addCell(cell2);

            chk = new Chunk("BASIS", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell2 = new Cell(chk);
            cell2.setNoWrap(true);
            cell2.setLeading(8.0f);
            cell2.setBackgroundColor(Color.ORANGE);
            //cell2.setVerticalAlignment(cell2.ALIGN_MIDDLE);
            chargeCountry2.addCell(cell2);

            chk = new Chunk("RATIO", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell2 = new Cell(chk);
            cell2.setNoWrap(true);
            cell2.setLeading(8.0f);
            cell2.setBackgroundColor(Color.ORANGE);
            //cell2.setVerticalAlignment(cell2.ALIGN_MIDDLE);
            chargeCountry2.addCell(cell2);

            chk = new Chunk("DESTINATION CHARGES", FontFactory.getFont("ARIAL", 8, Font.BOLD, Color.BLACK));
            cell2 = new Cell(chk);
            cell2.setNoWrap(true);
            cell2.setLeading(8.0f);
            cell2.setColspan(7);
            cell2.setBackgroundColor(Color.ORANGE);
            //cell2.setVerticalAlignment(cell2.ALIGN_MIDDLE);
            chargeCountry2.addCell(cell2);
            int mDtlSize = mainDtl.size();
            for (int m = 0; m < mDtlSize; m++) {

                finalDOB = (QuoteFinalDOB) mainDtl.get(m);
                headerDOB = finalDOB.getHeaderDOB();
                masterDOB = finalDOB.getMasterDOB();
                costingMasterDOB = finalDOB.getCostingMasterDOB();
                ArrayList destCharges = (ArrayList) costingMasterDOB.getDestinationList();
                if (destCharges.size() > 0) {

                    int destChargSize = destCharges.size();

                    for (int i = 0; i < destChargSize; i++) {

                        detailsDOB = (CostingChargeDetailsDOB) destCharges.get(i);
                        rateDetails = (ArrayList) detailsDOB.getCostingRateInfoDOB();

                        //originChargesInfoSize   = rateDetails.size();
                        int rDtlSize = rateDetails.size();
                        for (int k = 0; k < rDtlSize; k++) {
                            CostingRateInfoDOB crateDetailsDOB = (CostingRateInfoDOB) rateDetails.get(k);

                            if (k == 0) {

                                //@@ Commented by subrahmanyam for the enhancement #146971 and 1469710 on 10/12/2008                      
                                /*chk = new Chunk(new Long(masterDOB.getQuoteId()).toString(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                                cell2 = new Cell(chk);
                                //cell2.setRowspan(rateDetails.size());
                                cell2.setNoWrap(true); cell2.setLeading(8.0f);
                                cell2.setBackgroundColor(Color.lightGray);
                                chargeCountry2.addCell(cell2);*/
                                //@@ Added by subrahmanyam for the enhancement #146971 and #146970 on 10/12/2008
                                chk = new Chunk(masterDOB.getQuoteId(),
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                                cell2 = new Cell(chk);
                                cell2.setNoWrap(true);
                                cell2.setLeading(8.0f);
                                cell2.setBackgroundColor(Color.lightGray);
                                chargeCountry2.addCell(cell2);
                                //@@ Ended by subrahmanyam for the enhancement #146971 and 146970 on 10/12/2008    

                                //  chk = new Chunk(detailsDOB.getChargeDescId(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                                //@@ Added by subrahmanyam for the wpbn id: 181349  on 07-sep-09
                                chk = new Chunk(
                                        detailsDOB.getExternalName() != null ? detailsDOB.getExternalName()
                                                : detailsDOB.getChargeDescId(),
                                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));//ended for 181349
                                cell2 = new Cell(chk);
                                //cell2.setRowspan(rateDetails.size());
                                //cell2.setNoWrap(true); //commented for 181349
                                cell2.setLeading(8.0f);
                                cell2.setBackgroundColor(Color.lightGray);
                                chargeCountry2.addCell(cell2);
                            } else {
                                cell2 = new Cell("");
                                //cell2.setRowspan(rateDetails.size());
                                cell2.setNoWrap(true);
                                cell2.setLeading(8.0f);
                                cell2.setBackgroundColor(Color.lightGray);
                                cell2.setBorderWidth(0f);
                                chargeCountry2.addCell(cell2);

                                cell2 = new Cell("");
                                //cell2.setRowspan(rateDetails.size());
                                cell2.setNoWrap(true);
                                cell2.setLeading(8.0f);
                                cell2.setBackgroundColor(Color.lightGray);
                                cell2.setBorderWidth(0f);
                                chargeCountry2.addCell(cell2);
                            }
                            chk = new Chunk(crateDetailsDOB.getWeightBreakSlab(),
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell2 = new Cell(chk);
                            cell2.setNoWrap(true);
                            cell2.setLeading(8.0f);
                            cell2.setBackgroundColor(Color.lightGray);
                            chargeCountry2.addCell(cell2);

                            chk = new Chunk(detailsDOB.getCurrency(),
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell2 = new Cell(chk);
                            cell2.setNoWrap(true);
                            cell2.setLeading(8.0f);
                            cell2.setBackgroundColor(Color.lightGray);
                            chargeCountry2.addCell(cell2);

                            chk = new Chunk(crateDetailsDOB.getRate() + "",
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell2 = new Cell(chk);
                            cell2.setNoWrap(true);
                            cell2.setLeading(8.0f);
                            chargeCountry2.addCell(cell2);

                            //@@ Commented & Added  by subrahmanyam for 182516 on 10/09/09
                            // chk = new Chunk(crateDetailsDOB.getWeightBreakSlab().equalsIgnoreCase("Min")?"Pershipment ":detailsDOB.getChargeBasisDesc(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                            //ADDED BY SUBRAHMANYAM FOR 183812
                            if (crateDetailsDOB.getWeightBreakSlab().equalsIgnoreCase("Min")
                                    || ("BOTH".equalsIgnoreCase(detailsDOB.getRateType())
                                            && "F".equalsIgnoreCase(crateDetailsDOB.getRateIndicator()))) {
                                wBslab = "MIN";
                            } else
                                wBslab = detailsDOB.getChargeBasisDesc();
                            // COMMENTED & added FOR 183812 ON 24-09-09
                            //chk = new Chunk(crateDetailsDOB.getWeightBreakSlab().equalsIgnoreCase("Min")?" Per Shipment ":detailsDOB.getChargeBasisDesc(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
                            chk = new Chunk(
                                    wBslab.equalsIgnoreCase("Min") ? " Per Shipment "
                                            : detailsDOB.getChargeBasisDesc(),
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell2 = new Cell(chk);
                            cell2.setNoWrap(true);
                            cell2.setLeading(8.0f);
                            chargeCountry2.addCell(cell2);

                            chk = new Chunk(
                                    detailsDOB.getDensityRatio() == null ? "" : detailsDOB.getDensityRatio(),
                                    FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                            cell2 = new Cell(chk);
                            cell2.setNoWrap(true);
                            cell2.setLeading(8.0f);
                            chargeCountry2.addCell(cell2);
                        }
                    }
                }
            }
            document.add(chargeCountry2);
        }

        Table notes = new Table(2, mainDtl.size());
        boolean displayFlag = false;
        notes.setWidth(100);
        notes.setPadding(1);
        notes.setSpacing(0);
        notes.setOffset(5);
        notes.setBackgroundColor(Color.WHITE);
        notes.setBorderColor(Color.black);
        notes.setDefaultHorizontalAlignment(Element.ALIGN_CENTER);
        notes.setBorderWidth(1);
        notes.setTableFitsPage(true);// added by subrahmanyam for quoteGrouping issue 184848
        notes.setCellsFitPage(true);// added by subrahmanyam for quoteGrouping issue 184848

        Cell cell3;
        chk = new Chunk("QUOTEID ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cell3 = new Cell(chk);
        cell3.setNoWrap(true);
        cell3.setLeading(8.0f);
        cell3.setBackgroundColor(Color.ORANGE);
        //cell3.setVerticalAlignment(cell3.ALIGN_MIDDLE);
        //cell3.setBackgroundColor(Color.lightGray);
        notes.addCell(cell3);

        chk = new Chunk("NOTES", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
        cell3 = new Cell(chk);
        cell3.setNoWrap(true);
        cell3.setLeading(8.0f);
        cell3.setBackgroundColor(Color.ORANGE);
        //cell3.setVerticalAlignment(cell3.ALIGN_MIDDLE);

        notes.addCell(cell3);
        int mDtlSize = mainDtl.size();
        for (int m = 0; m < mDtlSize; m++) {

            finalDOB = (QuoteFinalDOB) mainDtl.get(m);
            headerDOB = finalDOB.getHeaderDOB();
            masterDOB = finalDOB.getMasterDOB();
            costingMasterDOB = finalDOB.getCostingMasterDOB();
            if (costingMasterDOB != null) {
            }
            //@@ Commented by subrahmanyam for the enhancement #146971 and 1469710 on 10/12/2008                      
            /*chk = new Chunk(new Long(masterDOB.getQuoteId()).toString(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
            cell3 = new Cell(chk);
            //cell3.setRowspan(rateDetails.size());
            cell3.setNoWrap(true); cell3.setLeading(8.0f);
            cell3.setBackgroundColor(Color.lightGray);
            notes.addCell(cell3);*/
            //@@ Added by subrahmanyam for the enhancement #146971 and #146970 on 10/12/2008
            //commented by subrahmanyam for quote grouping issue
            /*
            chk = new Chunk(masterDOB.getQuoteId(),FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
              cell3 = new Cell(chk);
              cell3.setNoWrap(true); cell3.setLeading(8.0f);
              cell3.setBackgroundColor(Color.lightGray);
              notes.addCell(cell3);
                //@@ Ended by subrahmanyam for the enhancement #146971 and 146970 on 10/12/2008
                    
            chk = new Chunk(" ",FontFactory.getFont("ARIAL", 8, Font.NORMAL,Color.BLACK));
            cell3 = new Cell(chk);
            //cell3.setRowspan();
            cell3.setNoWrap(true); cell3.setLeading(8.0f);
            cell3.setBackgroundColor(Color.lightGray);
            notes.addCell(cell3);
            */
            //@@ Added by subrahmanyam for Quote Grouping Issue 184848 on 30/sep/09
            if (finalDOB.getExternalNotes() != null && finalDOB.getExternalNotes().length > 0) {
                int notesLength = finalDOB.getExternalNotes().length;
                for (int n = 0; n < notesLength; n++) {
                    if (n == 0) {
                        chk = new Chunk(masterDOB.getQuoteId(),
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell3 = new Cell(chk);
                        cell3.setNoWrap(true);
                        cell3.setLeading(8.0f);
                        cell3.setBackgroundColor(Color.lightGray);
                        notes.addCell(cell3);
                        //@@ Ended by subrahmanyam for the enhancement #146971 and 146970 on 10/12/2008

                        chk = new Chunk(finalDOB.getExternalNotes()[n],
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell3 = new Cell(chk);
                        //cell3.setRowspan();
                        //cell3.setNoWrap(true);
                        cell3.setHorizontalAlignment(cell3.ALIGN_LEFT);
                        cell3.setLeading(8.0f);
                        cell3.setBackgroundColor(Color.lightGray);
                        notes.addCell(cell3);
                    } else {
                        chk = new Chunk("", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell3 = new Cell(chk);
                        cell3.setNoWrap(true);
                        cell3.setLeading(8.0f);
                        cell3.setBackgroundColor(Color.lightGray);
                        notes.addCell(cell3);
                        //@@ Ended by subrahmanyam for the enhancement #146971 and 146970 on 10/12/2008

                        chk = new Chunk(finalDOB.getExternalNotes()[n],
                                FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                        cell3 = new Cell(chk);
                        //cell3.setRowspan();
                        // cell3.setNoWrap(true);
                        cell3.setHorizontalAlignment(cell3.ALIGN_LEFT);
                        cell3.setLeading(8.0f);
                        cell3.setBackgroundColor(Color.lightGray);
                        notes.addCell(cell3);
                    }
                }
            } else {
                chk = new Chunk(masterDOB.getQuoteId(),
                        FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cell3 = new Cell(chk);
                cell3.setNoWrap(true);
                cell3.setLeading(8.0f);
                cell3.setBackgroundColor(Color.lightGray);
                notes.addCell(cell3);

                chk = new Chunk(" ", FontFactory.getFont("ARIAL", 8, Font.NORMAL, Color.BLACK));
                cell3 = new Cell(chk);
                //cell3.setRowspan();
                cell3.setNoWrap(true);
                cell3.setLeading(8.0f);
                cell3.setBackgroundColor(Color.lightGray);
                notes.addCell(cell3);
            }
            //@@ Ended by subrahmanyam for Quote Grouping Issue 184848 on 30/09/09

            contents = masterDOB.getContentOnQuote();
            levels = masterDOB.getLevels();
            aligns = masterDOB.getAlign();
            headFoot = masterDOB.getHeaderFooter();

            if (contents != null && contents.length > 0) {
                int hFLen = headFoot.length;
                for (int i = 0; i < hFLen; i++) {
                    if (headFoot[i] != null && "F".equalsIgnoreCase(headFoot[i])) {
                        displayFlag = true;
                        break;
                    }
                }
                if (displayFlag) {
                    content = new Table(1);
                    content.setOffset(5);
                    content.setWidth(100);
                    content.setPadding(1);
                    content.setSpacing(0);
                    content.setBackgroundColor(Color.WHITE);
                    content.setBorderColor(Color.black);
                    content.setBorderWidth(1f);
                    Cell cellContent = null;
                    chk = new Chunk("QUOTEID : " + masterDOB.getQuoteId(),
                            FontFactory.getFont("ARIAL", 7, Font.ITALIC, Color.BLACK));
                    cellContent = new Cell(chk);
                    cellContent.setBorder(0);
                    cellContent.setLeading(6.0f);
                    cellContent.setHorizontalAlignment(cellContent.ALIGN_CENTER);
                    cellContent.setBackgroundColor(Color.ORANGE);
                    content.addCell(cellContent);
                    for (int i = 0; i < hFLen; i++) {
                        if (headFoot[i] != null && "F".equalsIgnoreCase(headFoot[i])) {
                            chk = new Chunk(contents[i] != null ? contents[i].toUpperCase() : "",
                                    FontFactory.getFont("ARIAL", 7, Font.ITALIC, Color.BLACK));
                            cellContent = new Cell(chk);
                            cellContent.setBorder(0);
                            cellContent.setLeading(6.0f);
                            cellContent.setBackgroundColor(Color.LIGHT_GRAY);
                            if ("L".equalsIgnoreCase(aligns[i]))
                                cellContent.setHorizontalAlignment(cellContent.ALIGN_LEFT);
                            else if ("C".equalsIgnoreCase(aligns[i]))
                                cellContent.setHorizontalAlignment(cellContent.ALIGN_CENTER);
                            else if ("R".equalsIgnoreCase(aligns[i]))
                                cellContent.setHorizontalAlignment(cellContent.ALIGN_RIGHT);
                            content.addCell(cellContent);
                        }
                    }
                    document.add(content);
                }
            }
        }
        document.add(notes);
        //Default Footer Content Starts
        contents = masterDOB.getDefaultContent();
        //Added by Anusha V
        int hFLen = 0;
        headFoot = masterDOB.getDefaultHeaderFooter();
        //if(headFoot.length>0){
        //hFLen   =   headFoot.length;}
        //Commented by Anusha V
        //int hFLen = headFoot.length;
        if (contents != null && contents.length > 0) {
            content = new Table(1);
            content.setOffset(5);
            content.setWidth(100);
            content.setPadding(1);
            content.setSpacing(0);
            content.setBackgroundColor(Color.WHITE);
            content.setBorderColor(Color.black);
            content.setBorderWidth(1f);
            Cell cellContent = null;
            chk = null;

            for (int i = 0; i < headFoot.length; i++) {
                if (headFoot[i] != null && "F".equalsIgnoreCase(headFoot[i])) {
                    chk = new Chunk(contents[i], FontFactory.getFont("ARIAL", 7, Font.ITALIC, Color.BLACK));
                    cellContent = new Cell(chk);
                    cellContent.setBorder(0);
                    cellContent.setLeading(6.0f);
                    cellContent.setBackgroundColor(Color.LIGHT_GRAY);
                    cellContent.setHorizontalAlignment(cellContent.ALIGN_LEFT);//Default content is left aligned                                    
                    content.addCell(cellContent);

                }
            }
            document.add(content);
        }
        //End Default Footer Content

        // System.out.println("After     document Close----------------------------------------->");

        document.close();
        // Thread.sleep(100);
        //logger.info("thread");
        //String file_tsmp = ""+new java.sql.Timestamp((new java.util.Date()).getTime()+masterDOB.getQuoteId());  //@@ Commented by subrahmanyam for the Enhancement #146971 on 2/12/08
        // String file_tsmp = ""+new java.sql.Timestamp((new java.util.Date()).getTime()+Long.parseLong(masterDOB.getQuoteId()));  //@@ Added by subrahmanyam for the Enhancement #146971 on 2/12/08
        //Commented by Anusha V
        //String file_tsmp = ""+new java.sql.Timestamp((new java.util.Date()).getTime())+masterDOB.getQuoteId();//@@ Added by subrahmanyam for the Enhancement #146971 on 2/12/08
        //Added by Anusha V
        String file_tsmp = "" + new java.sql.Timestamp((new java.util.Date()).getTime());
        file_tsmp = file_tsmp.replaceAll("\\:", "");
        file_tsmp = file_tsmp.replaceAll("\\.", "");
        file_tsmp = file_tsmp.replaceAll("\\-", "");
        file_tsmp = file_tsmp.replaceAll(" ", "");
        File f = new File("Quote" + file_tsmp + ".pdf");
        FileOutputStream fileOutputStream = new FileOutputStream(f);
        baos.writeTo(fileOutputStream);
        fileOutputStream.close();
        //  logger.info("masterDOB.getUserId()"+masterDOB.getUserId());
        if ("on".equalsIgnoreCase(request.getParameter("print"))) {

            request.getSession().setAttribute("QuoteOuptutStream", f);
        }
        //  session.setAttribute("UserId",masterDOB.getUserId());

        int noOfQuotes = mainDtl.size();
        StringBuffer quoteIds = new StringBuffer("");
        String quoteType = "";
        String terminalAddress = "";
        String creatorDetails = "";
        String fromEmailId = "";
        String body = "";
        String countryCode = "";
        for (int i = 0; i < noOfQuotes; i++) {
            finalDOB = (QuoteFinalDOB) mainDtl.get(i);
            /*  //@@Added for the WPBN issue-
              filesDOBList           =   finalDOB.getAttachmentDOBList(); 
              for(int j=0;j<filesDOBList.size();j++)
              {
               filesList.add(filesDOBList.get(j));
              } //@@Added for the WPBN issue-*/

            if (i == 0) {
                quoteType = "" + finalDOB.getMasterDOB().getShipmentMode();
                terminalAddress = finalDOB.getMasterDOB().getTerminalAddress();
                creatorDetails = finalDOB.getMasterDOB().getCreatorDetails();
                fromEmailId = finalDOB.getMasterDOB().getUserEmailId();
                countryCode = finalDOB.getHeaderDOB().getCustCountyCode();
                to_FaxIds = finalDOB.getHeaderDOB().getCustFaxNo();
                to_emailIds = finalDOB.getHeaderDOB().getCustEmailId();
            }
            quoteIds.append(finalDOB.getMasterDOB().getQuoteId());
            if (i != noOfQuotes - 1)
                quoteIds.append(",");

            contactPersons = finalDOB.getMasterDOB().getCustContactNames();
            if (contactPersons != null) {
                int contPersLen = contactPersons.length;
                for (int k = 0; k < contPersLen; k++) {
                    if (!contactList.contains(finalDOB.getMasterDOB().getCustContactNames()[k])) {
                        contactList.add(finalDOB.getMasterDOB().getCustContactNames()[k]);
                        contactEmailList.add(finalDOB.getMasterDOB().getCustomerContactsEmailIds()[k]);
                        contactFaxList.add(finalDOB.getMasterDOB().getCustomerContactsFax()[k]);
                    }
                }

            }

        }

        if ("1".equalsIgnoreCase(quoteType))
            quoteType = "Airfreight";
        else if ("2".equalsIgnoreCase(quoteType))
            quoteType = "Seafreight";
        else if ("4".equalsIgnoreCase(quoteType))
            quoteType = "Truckfreight";

        String subject = "DHL Global Forwarding Quotation, Multiple " + quoteType + ", Quote References "
                + quoteIds.toString();
        String message = "";
        //finalDOB.getFlagsDOB().setQuoteStatusFlag("PEN");//@@Quote is Pending
        //ReportsSessionBeanHome home      = (ReportsSessionBeanHome)LookUpBean.getEJBHome("ReportsSessionBean");
        //ReportsSession remote   = (ReportsSession)home.create();
        //if(contactList.size()==0)
        //{
        to_emailIds = to_emailIds.replaceAll(";", ",");
        /*message  = "Dear Customer,\n\nThank you for the opportunity to provide this quotation.  All information is contained within the attachment."+
                    "  Should you have any queries please do not hesitate to contact us.\n\n\nRegards,\n"+creatorDetails+"\n"+terminalAddress;*/
        //message   = "Dear Customer,\n\n"+finalDOB.getEmailText()+"\n\n\nRegards,\n"+creatorDetails+"\n"+terminalAddress+"\n"+;       
        if (finalDOB.getUpdatedReportDOB() != null) {
            body = "Dear Customer,\n\nThis is a replacement quotation reference "
                    + request.getAttribute("quoteId") + ",replacing "
                    + finalDOB.getUpdatedReportDOB().getQuoteId() + ", due to a change in "
                    + (finalDOB.getEmailChargeName() != null ? finalDOB.getEmailChargeName()
                            : finalDOB.getUpdatedReportDOB().getChangeDesc())
                    + ",\n\n" + (finalDOB.getEmailText() != null ? finalDOB.getEmailText() : "") + "\n\n\n"
                    + (masterDOB.getCreatorDetails() != null ? masterDOB.getCreatorDetails() : "") + "\n\n"
                    + (masterDOB.getCompanyName() != null ? masterDOB.getCompanyName() : "") + "\n"
                    + (masterDOB.getTerminalAddress() != null ? masterDOB.getTerminalAddress() : "") + "\n\n"
                    + "Phone  " + (masterDOB.getPhoneNo() != null ? masterDOB.getPhoneNo() : "") + "\n"
                    + "Fax    " + (masterDOB.getFaxNo() != null ? masterDOB.getFaxNo() : "") + "\n" + "Mobile "
                    + (masterDOB.getMobileNo() != null ? masterDOB.getMobileNo() : "") + "\n\nEmail "
                    + (masterDOB.getUserEmailId() != null ? masterDOB.getUserEmailId() : ""); //@@Modified by Kameswari for the WPBN issue-61303
        } else {
            body = "Dear Customer,\n\n" + (finalDOB.getEmailText() != null ? finalDOB.getEmailText() : "")
                    + "\n\n\n" + (masterDOB.getCreatorDetails() != null ? masterDOB.getCreatorDetails() : "")
                    + "\n\n" + (masterDOB.getCompanyName() != null ? masterDOB.getCompanyName() : "") + "\n"
                    + (masterDOB.getTerminalAddress() != null ? masterDOB.getTerminalAddress() : "") + "\n\n"
                    + "Phone  " + (masterDOB.getPhoneNo() != null ? masterDOB.getPhoneNo() : "") + "\n"
                    + "Fax    " + (masterDOB.getFaxNo() != null ? masterDOB.getFaxNo() : "") + "\n" + "Mobile "
                    + (masterDOB.getMobileNo() != null ? masterDOB.getMobileNo() : "") + "\n\nEmail "
                    + (masterDOB.getUserEmailId() != null ? masterDOB.getUserEmailId() : ""); //@@Modified by Kameswari for the WPBN issue-61303
        }
        if ("on".equalsIgnoreCase(request.getParameter("email"))) {
            try {
                sendMail(fromEmailId, to_emailIds, subject, message, "Quote" + file_tsmp + ".pdf", null);
                sentEmailsList.add(to_emailIds);
            } catch (FoursoftException fs) {
                //Logger.error(FILE_NAME,"Error While Sending Mail.."+fs.getMessage());
                logger.error(FILE_NAME + "Error While Sending Mail.." + fs.getMessage());
                fs.printStackTrace();
                unsentEmailsList.add(to_emailIds);
            }
        }
        if ("on".equalsIgnoreCase(request.getParameter("fax"))) {
            if ("SG".equalsIgnoreCase(countryCode))
                faxMailIds = "fax#" + to_FaxIds + "@tcdhl.com";
            else
                faxMailIds = "ifax#" + to_FaxIds + "@tcdhl.com";
            try {
                sendMail(fromEmailId, faxMailIds, subject, message, "Quote" + file_tsmp + ".pdf", null);
                sentFaxList.add(to_FaxIds);
            } catch (FoursoftException fs) {
                //Logger.error(FILE_NAME,"Error While Sending Fax.."+fs.getMessage());
                logger.error(FILE_NAME + "Error While Sending Fax.." + fs.getMessage());
                fs.printStackTrace();
                unsentFaxList.add(to_FaxIds);
            }
        }
        //}
        //else
        //{
        int contactSize = contactList.size();
        for (int i = 0; i < contactSize; i++) {
            contactName = (String) contactList.get(i);
            /*message = "Dear "+contactName+",\n\nThank you for the opportunity to provide this Quotation. All information is contained within the attachment."+
             " Should you have any queries, please do not hesitate to contact us.\n\n\nRegards,\n"+creatorDetails+"\n"+terminalAddress;*/
            // message = "Dear "+contactName+",\n\n"+finalDOB.getEmailText()+"\n\n\nRegards,\n"+creatorDetails+"\n"+terminalAddress;         
            if (finalDOB.getUpdatedReportDOB() != null) {
                body = "Dear " + (contactName != null ? contactName : "")
                        + ",\n\nThis is a replacement quotation reference " + request.getAttribute("quoteId")
                        + ",replacing " + finalDOB.getUpdatedReportDOB().getQuoteId() + ", due to a change in "
                        + (finalDOB.getEmailChargeName() != null ? finalDOB.getEmailChargeName()
                                : finalDOB.getUpdatedReportDOB().getChangeDesc())
                        + ",\n\n" + finalDOB.getEmailText() != null
                                ? finalDOB.getEmailText()
                                : "" + "\n\n\n" + masterDOB.getCreatorDetails() != null
                                        ? masterDOB.getCreatorDetails()
                                        : "" + "\n\n" + masterDOB.getCompanyName() != null
                                                ? masterDOB.getCompanyName()
                                                : "" + "\n" + masterDOB.getTerminalAddress() != null
                                                        ? masterDOB.getTerminalAddress()
                                                        : "" + "\n\n" + "Phone  "
                                                                + masterDOB.getPhoneNo() != null
                                                                        ? masterDOB.getPhoneNo()
                                                                        : "" + "\n" + "Fax    "
                                                                                + masterDOB.getFaxNo() != null
                                                                                        ? masterDOB.getFaxNo()
                                                                                        : "" + "\n" + "Mobile "
                                                                                                + masterDOB
                                                                                                        .getMobileNo() != null
                                                                                                                ? masterDOB
                                                                                                                        .getMobileNo()
                                                                                                                : "" + "\n\nEmail "
                                                                                                                        + masterDOB
                                                                                                                                .getUserEmailId() != null
                                                                                                                                        ? masterDOB
                                                                                                                                                .getUserEmailId()
                                                                                                                                        : ""; //@@Modified by Kameswari for the WPBN issue-61303
            } else {
                body = "Dear " + (contactName != null ? contactName : "") + ",\n\n"
                        + finalDOB.getEmailText() != null
                                ? finalDOB.getEmailText()
                                : "" + "\n\n\n" + masterDOB.getCreatorDetails() != null
                                        ? masterDOB.getCreatorDetails()
                                        : "" + "\n\n" + masterDOB.getCompanyName() != null
                                                ? masterDOB.getCompanyName()
                                                : "" + "\n" + masterDOB.getTerminalAddress() != null
                                                        ? masterDOB.getTerminalAddress()
                                                        : "" + "\n\n" + "Phone  "
                                                                + masterDOB.getPhoneNo() != null
                                                                        ? masterDOB.getPhoneNo()
                                                                        : "" + "\n" + "Fax    "
                                                                                + masterDOB.getFaxNo() != null
                                                                                        ? masterDOB.getFaxNo()
                                                                                        : "" + "\n" + "Mobile "
                                                                                                + masterDOB
                                                                                                        .getMobileNo() != null
                                                                                                                ? masterDOB
                                                                                                                        .getMobileNo()
                                                                                                                : "" + "\n\nEmail "
                                                                                                                        + masterDOB
                                                                                                                                .getUserEmailId() != null
                                                                                                                                        ? masterDOB
                                                                                                                                                .getUserEmailId()
                                                                                                                                        : ""; //@@Modified by Kameswari for the WPBN issue-61303

            }
            if ("on".equalsIgnoreCase(request.getParameter("email"))) {
                try {
                    sendMail(fromEmailId, (String) contactEmailList.get(i), subject, message,
                            "Quote" + file_tsmp + ".pdf", null);
                    sentEmailsList.add(contactEmailList.get(i));
                } catch (FoursoftException fs) {
                    //Logger.error(FILE_NAME,"Error While Sending Mail.."+fs.getMessage());
                    logger.error(FILE_NAME + "Error While Sending Mail.." + fs.getMessage());
                    fs.printStackTrace();
                    unsentEmailsList.add(contactEmailList.get(i));
                }
            }
            if ("on".equalsIgnoreCase(request.getParameter("fax"))) {
                if ("SG".equalsIgnoreCase(countryCode))
                    to_FaxIds = "fax#" + contactFaxList.get(i) + "@tcdhl.com";
                else
                    to_FaxIds = "ifax#" + contactFaxList.get(i) + "@tcdhl.com";
                try {
                    sendMail(fromEmailId, to_FaxIds, subject, message, "Quote" + file_tsmp + ".pdf", null);
                    sentFaxList.add(contactFaxList.get(i));
                } catch (FoursoftException fs) {
                    //Logger.error(FILE_NAME,"Error While Sending Fax.."+fs.getMessage());
                    logger.error(FILE_NAME + "Error While Sending Fax.." + fs.getMessage());
                    fs.printStackTrace();
                    unsentFaxList.add(
                            contactFaxList.get(i) != null ? contactFaxList.get(i) : "No Fax Number Provided");
                }
            }
        }
        //}
        returnList.add(sentEmailsList);
        returnList.add(unsentEmailsList);
        returnList.add(sentFaxList);
        returnList.add(unsentFaxList);

        // System.out.println("Before Sending Mail------------------------------>");

        // System.out.println("End of mail sending and PDF Generation --------------------------------->");

    } catch (Exception e) {
        e.printStackTrace();
        //Logger.error(FILE_NAME,"Error while generating the PDF"+e.toString());
        logger.error(FILE_NAME + "Error while generating the PDF" + e.toString());
        //return 0;
        //throw new Exception("Error while generating PDF format");
    }
    return returnList;
}

From source file:airportpainter.util.AirportPainter.java

License:Open Source License

private void createSheetsAddSvg(Airport airport, PdfWriter writer, Document document, String imageFileName) {
    // FREQs Nearest Navaid
    notifyAction("createSheetsAddSvg");
    PdfPTable table = new PdfPTable(1);
    {//from   w  ww  .j  a  v  a 2s .  c  o m
        PdfPCell cell = new PdfPCell();
        cell.setMinimumHeight(height);

        {
            Paragraph p = new Paragraph();
            com.lowagie.text.Font fontWarning = new com.lowagie.text.Font(com.lowagie.text.Font.TIMES_ROMAN,
                    com.lowagie.text.Font.DEFAULTSIZE, com.lowagie.text.Font.BOLD);
            p.add(new Chunk(" ", fontWarning));
            cell.addElement(p);
        }

        cell.setBorderWidth(borderWidth);
        cell.setVerticalAlignment(Element.ALIGN_CENTER);

        table.addCell(cell);
    }

    table.setWidthPercentage(100);
    try {
        document.add(table);
    } catch (DocumentException ex) {
        Logger.getLogger(AirportPainter.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:airportpainter.util.AirportPainter.java

License:Open Source License

private void createSheetsLights(Airport airport, Document document) {
    // FREQs Nearest Navaid
    notifyAction("createSheetsLights");
    PdfPTable table = new PdfPTable(1);
    {//from www.  j  av a  2s . c o m
        PdfPCell cell = new PdfPCell();

        cell.setVerticalAlignment(Element.ALIGN_TOP);
        cell.setMinimumHeight(20);

        Paragraph p = new Paragraph();
        p.setLeading((p.leading() / 2) + 4);
        com.lowagie.text.Font font = new com.lowagie.text.Font(com.lowagie.text.Font.TIMES_ROMAN, 10,
                com.lowagie.text.Font.NORMAL);

        oneLightDone = false;

        try {
            p.add(new Chunk("   ", font));
            p.add(new Chunk(Image.getInstance(getClass().getResource(Main.imgFolder + "light.png")), 0, 0));
            p.add(new Chunk("   ", font));
        } catch (BadElementException ex) {
            Logger.getLogger(AirportPainter.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(AirportPainter.class.getName()).log(Level.SEVERE, null, ex);
        }

        boolean addABN = airport.hasBeacon();
        if (addABN) {
            p.add(addOneLight("ABN", font));
        }

        boolean addALS = false;
        boolean addPAPI = false;
        for (final Runway runway : airport.getRunways()) {
            if ((runway.hasALSF_I(false) || runway.hasALSF_I(true))
                    || (runway.hasALSF_II(false) || runway.hasALSF_II(true))) {
                addALS = true;
            }

            if ((runway.hasPapi(false) || runway.hasPapi(true))) {
                addPAPI = true;
            }
        }
        if (addALS) {
            p.add(addOneLight("ALS", font));
        }

        if (addPAPI) {
            p.add(addOneLight("PAPI ", font));
            String separ = "";
            for (final Runway runway : airport.getRunways()) {
                if (runway.hasPapi(false)) {
                    p.add(new Chunk(separ + runway.getNumber() + " (3.5)" + degrees + " ", font));
                    separ = ", ";
                }
                if (runway.hasPapi(true)) {
                    p.add(new Chunk(separ + runway.getOppositeNumber() + " (3.5)" + degrees + " ", font));
                    separ = ", ";
                }
            }
        }

        cell.addElement(p);

        //cell.setBorder(com.lowagie.text.Rectangle.NO_BORDER);
        cell.setBorderWidth(borderWidth);
        cell.setVerticalAlignment(Element.ALIGN_CENTER);

        table.addCell(cell);
    }

    table.setWidthPercentage(100);
    try {
        document.add(table);
    } catch (DocumentException ex) {
        Logger.getLogger(AirportPainter.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:airportpainter.util.AirportPainter.java

License:Open Source License

private void createSheetsRunways(Airport airport, Document document) {
    notifyAction("createSheetsRunways");

    PdfPTable table = new PdfPTable(6);

    // titles//from  ww w  .  j  a va2s  . c  om
    com.lowagie.text.Font fontTitle = new com.lowagie.text.Font(com.lowagie.text.Font.TIMES_ROMAN, 8,
            com.lowagie.text.Font.NORMAL);
    {
        PdfPCell cell = new PdfPCell();
        cell.setVerticalAlignment(Element.ALIGN_CENTER);
        cell.setBorderWidthTop(borderWidth);
        cell.setBorderWidthBottom(borderWidthThin);
        cell.setBorderWidthRight(borderWidthThin);
        cell.setBorderWidthLeft(borderWidth);
        Paragraph p = new Paragraph("RWY N" + degrees, fontTitle);
        p.setLeading((p.leading() / 2) + 2);
        p.setAlignment(Element.ALIGN_CENTER);
        cell.addElement(p);
        table.addCell(cell);
    }
    {
        PdfPCell cell = new PdfPCell();
        cell.setVerticalAlignment(Element.ALIGN_CENTER);
        cell.setBorderWidthTop(borderWidth);
        cell.setBorderWidthBottom(borderWidthThin);
        cell.setBorderWidthRight(borderWidthThin);
        cell.setBorderWidthLeft(borderWidthThin);
        Paragraph p = new Paragraph("Dimension (ft) - Surface", fontTitle);
        p.setLeading((p.leading() / 2) + 2);
        p.setAlignment(Element.ALIGN_CENTER);
        cell.addElement(p);
        table.addCell(cell);
    }
    {
        PdfPCell cell = new PdfPCell();
        cell.setVerticalAlignment(Element.ALIGN_CENTER);
        cell.setBorderWidthTop(borderWidth);
        cell.setBorderWidthBottom(borderWidthThin);
        cell.setBorderWidthRight(borderWidthThin);
        cell.setBorderWidthLeft(borderWidthThin);
        Paragraph p = new Paragraph("TORA (ft)", fontTitle);
        p.setLeading((p.leading() / 2) + 2);
        p.setAlignment(Element.ALIGN_CENTER);
        cell.addElement(p);
        table.addCell(cell);
    }
    {
        PdfPCell cell = new PdfPCell();
        cell.setVerticalAlignment(Element.ALIGN_CENTER);
        cell.setBorderWidthTop(borderWidth);
        cell.setBorderWidthBottom(borderWidthThin);
        cell.setBorderWidthRight(borderWidthThin);
        cell.setBorderWidthLeft(borderWidthThin);
        Paragraph p = new Paragraph("LDA (ft)", fontTitle);
        p.setLeading((p.leading() / 2) + 2);
        p.setAlignment(Element.ALIGN_CENTER);
        cell.addElement(p);
        table.addCell(cell);
    }
    {
        PdfPCell cell = new PdfPCell();
        cell.setVerticalAlignment(Element.ALIGN_CENTER);
        cell.setBorderWidthTop(borderWidth);
        cell.setBorderWidthBottom(borderWidthThin);
        cell.setBorderWidthRight(borderWidthThin);
        cell.setBorderWidthLeft(borderWidthThin);
        Paragraph p = new Paragraph("Strength", fontTitle);
        p.setLeading((p.leading() / 2) + 2);
        p.setAlignment(Element.ALIGN_CENTER);
        cell.addElement(p);
        table.addCell(cell);

    }
    {
        PdfPCell cell = new PdfPCell();
        cell.setVerticalAlignment(Element.ALIGN_CENTER);
        cell.setBorderWidthTop(borderWidth);
        cell.setBorderWidthBottom(borderWidthThin);
        cell.setBorderWidthRight(borderWidth);
        cell.setBorderWidthLeft(borderWidthThin);
        Paragraph p = new Paragraph("Lights", fontTitle);
        p.setLeading((p.leading() / 2) + 2);
        p.setAlignment(Element.ALIGN_CENTER);
        cell.addElement(p);
        table.addCell(cell);
    }

    // data
    com.lowagie.text.Font fontData = new com.lowagie.text.Font(com.lowagie.text.Font.TIMES_ROMAN, 10,
            com.lowagie.text.Font.NORMAL);
    int rc = 0;
    for (final Runway runway : airport.getRunways()) {
        {
            PdfPCell cell = new PdfPCell();
            cell.setVerticalAlignment(Element.ALIGN_CENTER);
            cell.setBorderWidthLeft(borderWidth);
            if (rc < airport.getRunways().size() - 1) {
                // thin bottom if not last runway
                cell.setBorderWidthBottom(borderWidthThin);
            } else {
                cell.setBorderWidthBottom(borderWidth);
            }
            cell.setBorderWidthRight(borderWidthThin);
            Paragraph p = new Paragraph(runway.getNumber() + "\r\n" + runway.getOppositeNumber(), fontData);
            p.setLeading((p.leading() / 2) + 2);
            p.setAlignment(Element.ALIGN_CENTER);
            cell.addElement(p);
            table.addCell(cell);
        }
        {
            PdfPCell cell = new PdfPCell();
            cell.setVerticalAlignment(Element.ALIGN_CENTER);
            cell.setBorderWidthLeft(borderWidthThin);
            if (rc < airport.getRunways().size() - 1) {
                // thin bottom if not last runway
                cell.setBorderWidthBottom(borderWidthThin);
            } else {
                cell.setBorderWidthBottom(borderWidth);
            }
            cell.setBorderWidthRight(borderWidthThin);
            String runwayLength = new Integer(runway.getLength()).toString() + " x "
                    + new Integer(runway.getWidth()).toString() + " " + runway.getSurfaceName();
            Paragraph p = new Paragraph(runwayLength, fontData);
            p.setLeading((p.leading() / 2) + 2);
            p.setAlignment(Element.ALIGN_CENTER);
            cell.addElement(p);
            table.addCell(cell);

        }
        {
            PdfPCell cell = new PdfPCell();
            cell.setVerticalAlignment(Element.ALIGN_CENTER);
            cell.setBorderWidthLeft(borderWidthThin);
            if (rc < airport.getRunways().size() - 1) {
                // thin bottom if not last runway
                cell.setBorderWidthBottom(borderWidthThin);
            } else {
                cell.setBorderWidthBottom(borderWidth);
            }
            cell.setBorderWidthRight(borderWidthThin);
            Paragraph p = new Paragraph(runway.getLength() + "\r\n" + runway.getLength(), fontData);
            p.setLeading((p.leading() / 2) + 2);
            p.setAlignment(Element.ALIGN_CENTER);
            cell.addElement(p);
            table.addCell(cell);
        }
        {
            PdfPCell cell = new PdfPCell();
            cell.setVerticalAlignment(Element.ALIGN_CENTER);
            cell.setBorderWidthLeft(borderWidthThin);
            if (rc < airport.getRunways().size() - 1) {
                // thin bottom if not last runway
                cell.setBorderWidthBottom(borderWidthThin);
            } else {
                cell.setBorderWidthBottom(borderWidth);
            }
            cell.setBorderWidthRight(borderWidthThin);
            Paragraph p = new Paragraph((runway.getLength() - runway.getDisplacement()) + "\r\n"
                    + (runway.getLength() - runway.getDisplacementOpposite()), fontData);
            p.setLeading((p.leading() / 2) + 2);
            p.setAlignment(Element.ALIGN_CENTER);
            cell.addElement(p);
            table.addCell(cell);
        }
        {
            PdfPCell cell = new PdfPCell();
            cell.setVerticalAlignment(Element.ALIGN_CENTER);
            cell.setBorderWidthLeft(borderWidthThin);
            if (rc < airport.getRunways().size() - 1) {
                // thin bottom if not last runway
                cell.setBorderWidthBottom(borderWidthThin);
            } else {
                cell.setBorderWidthBottom(borderWidth);
            }
            cell.setBorderWidthRight(borderWidthThin);
            Paragraph p = new Paragraph("to do...", fontData);
            p.setLeading((p.leading() / 2) + 2);
            p.setAlignment(Element.ALIGN_CENTER);
            cell.addElement(p);
            table.addCell(cell);
        }
        {
            PdfPCell cell = new PdfPCell();
            cell.setVerticalAlignment(Element.ALIGN_CENTER);
            cell.setBorderWidthLeft(borderWidthThin);
            cell.setBorderWidthRight(borderWidth);
            if (rc < airport.getRunways().size() - 1) {
                // thin bottom if not last runway
                cell.setBorderWidthBottom(borderWidthThin);
            } else {
                cell.setBorderWidthBottom(borderWidth);
            }
            Paragraph p = new Paragraph();
            p.setLeading((p.leading() / 2) + 2);
            p.setAlignment(Element.ALIGN_CENTER);
            try {
                if (runway.hasALSF_I(true) || runway.hasALSF_I(false) || runway.hasALSF_II(true)
                        || runway.hasALSF_II(false) || runway.hasPapi(true) || runway.hasPapi(false)
                        || runway.hasSALSF(true) || runway.hasSALSF(false) || runway.hasSSLP(true)
                        || runway.hasSSLP(false) || runway.hasVasi(true) || runway.hasVasi(false)) {
                    p.add(new Chunk(Image.getInstance(getClass().getResource(Main.imgFolder + "light.png")), 0,
                            0));
                } else {
                    p.add(new Chunk("--", fontData));
                }
            } catch (BadElementException ex) {
                Logger.getLogger(AirportPainter.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IOException ex) {
                Logger.getLogger(AirportPainter.class.getName()).log(Level.SEVERE, null, ex);
            }
            cell.addElement(p);
            table.addCell(cell);
        }

        rc++;

    }

    float[] widths2 = { 1f, 2f, 1f, 1f, 2f, 1f };
    try {
        table.setWidths(widths2);
    } catch (DocumentException ex) {
        Logger.getLogger(AirportPainter.class.getName()).log(Level.SEVERE, null, ex);
    }

    table.setWidthPercentage(100);
    try {
        document.add(table);
    } catch (DocumentException ex) {
        Logger.getLogger(AirportPainter.class.getName()).log(Level.SEVERE, null, ex);
    }

}

From source file:airportpainter.util.AirportPainter.java

License:Open Source License

private void createSheetsNotes(Airport airport, Document document) {
    // FREQs Nearest Navaid
    notifyAction("createSheetsNotes");
    PdfPTable table = new PdfPTable(1);
    {//  w ww.j a  va  2s.  c om
        PdfPCell cell = new PdfPCell();
        cell.setVerticalAlignment(Element.ALIGN_CENTER);

        {
            Paragraph p = new Paragraph();
            com.lowagie.text.Font fontWarning = new com.lowagie.text.Font(com.lowagie.text.Font.TIMES_ROMAN,
                    com.lowagie.text.Font.DEFAULTSIZE, com.lowagie.text.Font.BOLD);
            p.add(new Chunk("Warning !", fontWarning));
            cell.addElement(p);
        }

        {
            Paragraph p = new Paragraph();
            com.lowagie.text.Font fontText = new com.lowagie.text.Font(com.lowagie.text.Font.TIMES_ROMAN,
                    com.lowagie.text.Font.DEFAULTSIZE, com.lowagie.text.Font.NORMAL);
            p.add(new Chunk(
                    "Do not use this chart in real life, this is a chart suitable to be used only for FlightGear !!!",
                    fontText));
            cell.addElement(p);
        }

        cell.setBorderWidth(borderWidth);
        cell.setVerticalAlignment(Element.ALIGN_CENTER);

        table.addCell(cell);
    }

    table.setWidthPercentage(100);
    try {
        document.add(table);
    } catch (DocumentException ex) {
        Logger.getLogger(AirportPainter.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:airportpainter.util.AirportPainter.java

License:Open Source License

private void createSheets2ILS(Airport airport, Document document) {
    // FREQs Nearest Navaid
    notifyAction("createSheets2ILS");
    PdfPTable table = new PdfPTable(2);
    {/*ww w  .j  a  v a2  s .  c  o m*/
        PdfPCell cell = new PdfPCell();
        {
            Paragraph p = new Paragraph("(TWR)", new com.lowagie.text.Font(com.lowagie.text.Font.TIMES_ROMAN, 8,
                    com.lowagie.text.Font.NORMAL));
            p.setLeading((p.leading() / 2) + 2);
            cell.addElement(p);
        }

        List<ATCFreq> tempFreqsTwr = _airport.getATCFreqs("54");
        List<ATCFreq> tempFreqsGnd = _airport.getATCFreqs("53");
        if (tempFreqsTwr.size() > 0 || tempFreqsGnd.size() > 0) {

            if (tempFreqsTwr.size() > 0) {
                Paragraph p = new Paragraph();
                p.setLeading((p.leading() / 2) + 6);
                Chunk c = new Chunk(airport.getName().toUpperCase() + " APPROACH ", new com.lowagie.text.Font(
                        com.lowagie.text.Font.TIMES_ROMAN, 8, com.lowagie.text.Font.NORMAL));
                p.add(c);
                for (final ATCFreq tower : tempFreqsTwr) {
                    Chunk c2 = new Chunk((tower.getFreq() + "        ").substring(0, 9) + " ",
                            new com.lowagie.text.Font(com.lowagie.text.Font.TIMES_ROMAN, 8,
                                    com.lowagie.text.Font.BOLD));
                    p.add(c2);

                }
                cell.addElement(p);

            }

            if (tempFreqsGnd.size() > 0) {
                Paragraph p = new Paragraph();
                p.setLeading((p.leading() / 2) + 6);
                Chunk c = new Chunk("GROUND ", new com.lowagie.text.Font(com.lowagie.text.Font.TIMES_ROMAN, 8,
                        com.lowagie.text.Font.NORMAL));
                p.add(c);
                for (final ATCFreq tower : tempFreqsGnd) {
                    Chunk c2 = new Chunk((tower.getFreq() + "        ").substring(0, 9) + " ",
                            new com.lowagie.text.Font(com.lowagie.text.Font.TIMES_ROMAN, 8,
                                    com.lowagie.text.Font.BOLD));
                    p.add(c2);

                }
                cell.addElement(p);

            }

        }

        cell.setBorderWidth(borderWidth);
        cell.setBorderWidthTop(borderWidthThin);
        cell.setBorderWidthRight(borderWidthThin);

        //cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
        cell.setVerticalAlignment(Element.ALIGN_TOP);
        table.addCell(cell);
    }

    {
        com.lowagie.text.Font font = new com.lowagie.text.Font(com.lowagie.text.Font.TIMES_ROMAN,
                com.lowagie.text.Font.DEFAULTSIZE, com.lowagie.text.Font.NORMAL);
        PdfPCell cell = new PdfPCell();

        Paragraph p = new Paragraph();
        p.setLeading((p.leading()) + 6);
        Chunk c = new Chunk("ATIS ",
                new com.lowagie.text.Font(com.lowagie.text.Font.TIMES_ROMAN, 8, com.lowagie.text.Font.NORMAL));
        p.add(c);

        for (final Atis atis : _airport.getAtises()) {
            Chunk c2 = new Chunk((atis.getFreq() + "        ").substring(0, 9) + " ", new com.lowagie.text.Font(
                    com.lowagie.text.Font.TIMES_ROMAN, 8, com.lowagie.text.Font.BOLD));
            p.add(c2);
        }

        cell.addElement(p);

        /// ILS table
        {
            height1 = 0;
            PdfPTable tableILS = new PdfPTable(4);
            tableILS.setWidthPercentage(100);

            // titles
            com.lowagie.text.Font fontTitle = new com.lowagie.text.Font(com.lowagie.text.Font.TIMES_ROMAN, 8,
                    com.lowagie.text.Font.NORMAL);
            {
                PdfPCell cellTitle = new PdfPCell();
                cellTitle.setVerticalAlignment(Element.ALIGN_CENTER);
                cellTitle.setBorderWidth(borderWidthThin);
                Paragraph pt = new Paragraph("RWY", fontTitle);
                pt.setLeading((pt.leading() / 2) + 2);
                pt.setAlignment(Element.ALIGN_CENTER);
                cellTitle.addElement(pt);
                tableILS.addCell(cellTitle);
            }
            {
                PdfPCell cellTitle = new PdfPCell();
                cellTitle.setVerticalAlignment(Element.ALIGN_CENTER);
                cellTitle.setBorderWidth(borderWidthThin);
                Paragraph pt = new Paragraph("ILS", fontTitle);
                pt.setLeading((pt.leading() / 2) + 2);
                pt.setAlignment(Element.ALIGN_CENTER);
                cellTitle.addElement(pt);
                tableILS.addCell(cellTitle);
            }
            {
                PdfPCell cellTitle = new PdfPCell();
                cellTitle.setVerticalAlignment(Element.ALIGN_CENTER);
                cellTitle.setBorderWidth(borderWidthThin);
                Paragraph pt = new Paragraph("RWY", fontTitle);
                pt.setLeading((pt.leading() / 2) + 2);
                pt.setAlignment(Element.ALIGN_CENTER);
                cellTitle.addElement(pt);
                tableILS.addCell(cellTitle);
            }
            {
                PdfPCell cellTitle = new PdfPCell();
                cellTitle.setVerticalAlignment(Element.ALIGN_CENTER);
                cellTitle.setBorderWidth(borderWidthThin);
                Paragraph pt = new Paragraph("ILS", fontTitle);
                pt.setLeading((pt.leading() / 2) + 2);
                pt.setAlignment(Element.ALIGN_CENTER);
                cellTitle.addElement(pt);
                tableILS.addCell(cellTitle);
            }

            int pos = 0;
            int rs = airport.getRunways().size();
            for (final Runway runway : airport.getRunways()) {
                if (runway.getIlsFreq() != 0) {
                    height1 = height1 + 10;
                    {
                        PdfPCell cellFreq = new PdfPCell();
                        cellFreq.setVerticalAlignment(Element.ALIGN_CENTER);
                        cellFreq.setBorderWidth(borderWidthThin);
                        if (pos > 0) {
                            cellFreq.setBorderWidthTop(0);
                        }
                        if (pos < rs - 1) {
                            cellFreq.setBorderWidthBottom(0);
                        }

                        Paragraph pt = new Paragraph(runway.getNumber(), fontTitle);
                        pt.setLeading((pt.leading() / 2) + 2);
                        pt.setAlignment(Element.ALIGN_CENTER);
                        cellFreq.addElement(pt);
                        tableILS.addCell(cellFreq);
                    }
                    {
                        PdfPCell cellFreq = new PdfPCell();
                        cellFreq.setVerticalAlignment(Element.ALIGN_CENTER);
                        cellFreq.setBorderWidth(borderWidthThin);
                        if (pos > 0) {
                            cellFreq.setBorderWidthTop(0);
                        }
                        if (pos < rs - 1) {
                            cellFreq.setBorderWidthBottom(0);
                        }

                        Paragraph pt = new Paragraph(
                                runway.getIlsFreq() + " " + "... "
                                        + new Integer((int) runway.getHeading()).toString() + degrees,
                                fontTitle);
                        pt.setLeading((pt.leading() / 2) + 2);
                        pt.setAlignment(Element.ALIGN_CENTER);
                        cellFreq.addElement(pt);
                        tableILS.addCell(cellFreq);
                    }
                } /*else {
                  {
                      PdfPCell cellFreq = new PdfPCell();
                      cellFreq.setVerticalAlignment(Element.ALIGN_CENTER);
                      cellFreq.setBorderWidth(borderWidthThin);
                      if (pos>0) {
                          cellFreq.setBorderWidthTop(0);
                      }
                      if (pos<rs-1) {
                          cellFreq.setBorderWidthBottom(0);
                      }
                          
                      Paragraph pt=new Paragraph( "",fontTitle);
                      pt.setLeading((pt.leading()/2)+2);
                      pt.setAlignment(Element.ALIGN_CENTER);
                      cellFreq.addElement(pt);
                      tableILS.addCell(cellFreq);
                  }
                  {
                      PdfPCell cellFreq = new PdfPCell();
                      cellFreq.setVerticalAlignment(Element.ALIGN_CENTER);
                      cellFreq.setBorderWidth(borderWidthThin);
                      if (pos>0) {
                          cellFreq.setBorderWidthTop(0);
                      }
                      if (pos<rs-1) {
                          cellFreq.setBorderWidthBottom(0);
                      }
                          
                      Paragraph pt=new Paragraph( "",fontTitle);
                      pt.setLeading((pt.leading()/2)+2);
                      pt.setAlignment(Element.ALIGN_CENTER);
                      cellFreq.addElement(pt);
                      tableILS.addCell(cellFreq);
                  }
                          
                  }*/

                if (runway.getIlsOppositeFreq() != 0) {
                    {
                        PdfPCell cellFreq = new PdfPCell();
                        cellFreq.setVerticalAlignment(Element.ALIGN_CENTER);
                        cellFreq.setBorderWidth(borderWidthThin);
                        if (pos > 0) {
                            cellFreq.setBorderWidthTop(0);
                        }
                        if (pos < rs - 1) {
                            cellFreq.setBorderWidthBottom(0);
                        }

                        Paragraph pt = new Paragraph(runway.getOppositeNumber(), fontTitle);
                        pt.setLeading((pt.leading() / 2) + 2);
                        pt.setAlignment(Element.ALIGN_CENTER);
                        cellFreq.addElement(pt);
                        tableILS.addCell(cellFreq);
                    }
                    {
                        PdfPCell cellFreq = new PdfPCell();
                        cellFreq.setVerticalAlignment(Element.ALIGN_CENTER);
                        cellFreq.setBorderWidth(borderWidthThin);
                        if (pos > 0) {
                            cellFreq.setBorderWidthTop(0);
                        }
                        if (pos < rs - 1) {
                            cellFreq.setBorderWidthBottom(0);
                        }

                        Paragraph pt = new Paragraph(runway.getIlsOppositeFreq() + " " + "... "
                                + new Integer((int) (runway.getHeading() + 180) % 180).toString() + degrees,
                                fontTitle);
                        pt.setLeading((pt.leading() / 2) + 2);
                        pt.setAlignment(Element.ALIGN_CENTER);
                        cellFreq.addElement(pt);
                        tableILS.addCell(cellFreq);
                    }
                } else {
                    {
                        PdfPCell cellFreq = new PdfPCell();
                        cellFreq.setVerticalAlignment(Element.ALIGN_CENTER);
                        cellFreq.setBorderWidth(borderWidthThin);
                        if (pos > 0) {
                            cellFreq.setBorderWidthTop(0);
                        }
                        if (pos < rs - 1) {
                            cellFreq.setBorderWidthBottom(0);
                        }

                        Paragraph pt = new Paragraph("", fontTitle);
                        pt.setLeading((pt.leading() / 2) + 2);
                        pt.setAlignment(Element.ALIGN_CENTER);
                        cellFreq.addElement(pt);
                        tableILS.addCell(cellFreq);
                    }
                    {
                        PdfPCell cellFreq = new PdfPCell();
                        cellFreq.setVerticalAlignment(Element.ALIGN_CENTER);
                        cellFreq.setBorderWidth(borderWidthThin);
                        if (pos > 0) {
                            cellFreq.setBorderWidthTop(0);
                        }
                        if (pos < rs - 1) {
                            cellFreq.setBorderWidthBottom(0);
                        }

                        Paragraph pt = new Paragraph("", fontTitle);
                        pt.setLeading((pt.leading() / 2) + 2);
                        pt.setAlignment(Element.ALIGN_CENTER);
                        cellFreq.addElement(pt);
                        tableILS.addCell(cellFreq);
                    }

                }

                pos++;

            }

            float[] widths2 = { 1f, 3f, 1f, 3f };
            try {
                tableILS.setWidths(widths2);
            } catch (DocumentException ex) {
                Logger.getLogger(AirportPainter.class.getName()).log(Level.SEVERE, null, ex);
            }

            cell.addElement(tableILS);
        }

        cell.setBorderWidth(borderWidth);
        cell.setVerticalAlignment(Element.ALIGN_TOP);

        table.addCell(cell);
    }

    table.setWidthPercentage(100);
    try {
        document.add(table);
    } catch (DocumentException ex) {
        Logger.getLogger(AirportPainter.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:ambit2.db.reporters.PDFReporter.java

public void header(Document output, Q query) {

    output.addCreationDate();//w  w  w.j  a v  a2  s. c om
    output.addCreator(getClass().getName());
    output.addSubject("");
    output.addAuthor("http://ambit.sourceforge.net");
    output.addHeader("License", getLicenseURI());
    output.addTitle(query.toString());
    output.addKeywords(query.toString());

    if (getLicenseURI() != null) {
        HeaderFooter footer = new HeaderFooter(new Phrase(String.format("License %s", getLicenseURI())), false);
        footer.setAlignment(Element.ALIGN_CENTER);
        output.setFooter(footer);
    }

    output.open();

    font = new Font(Font.TIMES_ROMAN, 10, Font.NORMAL);

    table = new PdfPTable(new float[] { 3f, 5f });
    table.setWidthPercentage(100);

    try {
        writeHeader(output);
    } catch (Exception x) {

    }

}