wagwaan.reports.UpdatingStockCountPdf.java Source code

Java tutorial

Introduction

Here is the source code for wagwaan.reports.UpdatingStockCountPdf.java

Source

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

package wagwaan.reports;

import com.lowagie.text.BadElementException;
import wagwaan.config.AMSUtility;
import wagwaan.config.DBObject;
import com.lowagie.text.Font;
import com.lowagie.text.FontFactory;
import com.lowagie.text.PageSize;
import com.lowagie.text.Phrase;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfCell;
import java.awt.Desktop;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import wagwaan.config.ReportUtil;

/**
 *
 * @author Helmut
 */
public class UpdatingStockCountPdf implements java.lang.Runnable {

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

    java.awt.Desktop deskTop = Desktop.getDesktop();

    DBObject dbObject;

    int numberSeq = 0;

    public static java.sql.Connection connectDB = null;

    public java.lang.String dbUserName = null;

    org.netbeans.lib.sql.pool.PooledConnectionSource pConnDB = null;

    boolean threadCheck = true;

    java.lang.Thread threadSample;

    com.lowagie.text.Font pFontHeader = FontFactory.getFont(FontFactory.HELVETICA, 10, Font.BOLD);
    com.lowagie.text.Font pFontHeader1 = FontFactory.getFont(FontFactory.HELVETICA, 9, Font.NORMAL);

    java.lang.Runtime rtThreadSample = java.lang.Runtime.getRuntime();

    java.lang.Process prThread;
    AMSUtility label = new AMSUtility();
    private String receive;

    public void UpdatingStockCountPdf(java.sql.Connection connDb, String receive_no) {
        this.receive = receive_no;
        connectDB = connDb;

        dbObject = new DBObject();

        threadSample = new java.lang.Thread(this, "SampleThread");

        System.out.println("threadSample created");

        threadSample.start();

        System.out.println("threadSample fired");

    }

    public void run() {

        System.out.println("System has entered running mode");

        while (threadCheck) {

            System.out.println("O.K. see how we execute target program");

            this.generatePdf();

            try {

                System.out.println("Right, let's wait for task to complete of fail");

                java.lang.Thread.currentThread().sleep(200);

                System.out.println("It's time for us threads to get back to work after the nap");

            } catch (java.lang.InterruptedException IntExec) {

                System.out.println(IntExec.getMessage());

            }

            threadCheck = false;

            System.out.println("We shall be lucky to get back to start in one piece");

        }

        if (!threadCheck) {

            Thread.currentThread().stop();

        }

    }

    public void generatePdf() {

        try {

            java.io.File tempFile = java.io.File.createTempFile("REP" + label.getDateLable() + "_", ".pdf");

            tempFile.deleteOnExit();

            java.lang.Runtime rt = java.lang.Runtime.getRuntime();

            java.lang.String debitTotal = null;

            java.lang.String creditTotal = null;
            com.lowagie.text.Document docPdf = new com.lowagie.text.Document(PageSize.A4.rotate());

            try {

                try {

                    com.lowagie.text.pdf.PdfWriter.getInstance(docPdf, new java.io.FileOutputStream(tempFile));

                    String date = null;
                    try {
                        java.sql.Statement st4 = connectDB.createStatement();

                        java.sql.ResultSet rset4 = st4.executeQuery("SELECT date(now()) as Date");
                        while (rset4.next())
                            date = rset4.getObject(1).toString();

                        //                        com.lowagie.text.HeaderFooter headerFoter = new com.lowagie.text.HeaderFooter(new Phrase(""+compName+""),false);// FontFactory.getFont(com.lowagie.text.FontFactory.HELVETICA, 14, Font.BOLDITALIC,java.awt.Color.blue)));
                        //                        headerFoter.setAlignment(com.lowagie.text.HeaderFooter.ALIGN_CENTER);
                        //                        headerFoter.setRight(5);
                        //                        docPdf.setHeader(headerFoter);

                    } catch (java.sql.SQLException SqlExec) {

                        javax.swing.JOptionPane.showMessageDialog(new javax.swing.JFrame(), SqlExec.getMessage());

                    }

                    com.lowagie.text.HeaderFooter footer = new com.lowagie.text.HeaderFooter(
                            new Phrase("Updating Stock Count - Page: "), true);// FontFactory.getFont(com.lowagie.text.FontFactory.HELVETICA, 12, Font.BOLDITALIC,java.awt.Color.blue));

                    docPdf.setFooter(footer);

                    docPdf.open();

                    ReportUtil.addCenteredTitlePage(docPdf, connectDB);
                    try {

                        com.lowagie.text.pdf.PdfPTable table = new com.lowagie.text.pdf.PdfPTable(12);

                        int headerwidths[] = { 6, 9, 8, 8, 10, 8, 9, 9, 9, 9, 9, 9 };

                        table.setWidths(headerwidths);

                        table.setWidthPercentage((100));
                        table.getDefaultCell().setBorder(Rectangle.BOTTOM);

                        table.getDefaultCell().setColspan(6);

                        Phrase phrase;

                        java.text.DateFormat dateFormat = java.text.DateFormat
                                .getDateInstance(java.text.DateFormat.MEDIUM);
                        table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT);
                        phrase = new Phrase("Updating Stock Count");
                        table.addCell(phrase);
                        table.getDefaultCell().setColspan(6);
                        table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_RIGHT);
                        phrase = new Phrase("Printed On  :" + date, pFontHeader);
                        table.addCell(phrase);

                        String receive_nuos = null;

                        Statement sta = connectDB.createStatement();
                        ResultSet rst = sta
                                .executeQuery("select receiving_no from st_receiving_issuing where receiving_no='"
                                        + receive + "'");
                        while (rst.next()) {
                            receive_nuos = rst.getString(1);
                        }
                        table.getDefaultCell().setColspan(12);
                        table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT);

                        phrase = new Phrase(receive_nuos, pFontHeader);
                        table.addCell(phrase);
                        table.getDefaultCell().setColspan(1);
                        table.getDefaultCell()
                                .setBorder(PdfCell.TOP | PdfCell.BOTTOM | PdfCell.LEFT | PdfCell.RIGHT);
                        phrase = new Phrase("Count", pFontHeader);
                        table.addCell(phrase);

                        phrase = new Phrase("Item Code", pFontHeader);
                        table.addCell(phrase);

                        phrase = new Phrase("Item Name", pFontHeader);
                        table.addCell(phrase);

                        phrase = new Phrase("Qty ordered", pFontHeader);
                        table.addCell(phrase);

                        phrase = new Phrase("Qty_received", pFontHeader);
                        table.addCell(phrase);

                        phrase = new Phrase("Deficit", pFontHeader);
                        table.addCell(phrase);

                        phrase = new Phrase("Price", pFontHeader);
                        table.addCell(phrase);

                        phrase = new Phrase("Total", pFontHeader);
                        table.addCell(phrase);

                        phrase = new Phrase("Supplier", pFontHeader);
                        table.addCell(phrase);

                        phrase = new Phrase("Delivery Date", pFontHeader);
                        table.addCell(phrase);

                        phrase = new Phrase("Order ID", pFontHeader);
                        table.addCell(phrase);

                        phrase = new Phrase("Fully Delivered", pFontHeader);
                        table.addCell(phrase);

                        table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_RIGHT);

                        table.getDefaultCell().setBackgroundColor(java.awt.Color.WHITE);

                        try {
                            Statement s = connectDB.createStatement();
                            ResultSet r = s.executeQuery(
                                    "SELECT sum(quantity_received*o.price) from stock_orders o,st_receiving_issuing t,stock_items s,stock_suppliers st\n"
                                            + "where t.item_code=o.item_code and t.order_id=o.order_id and t.item_code=s.item_code and st.supplier_id=t.supplier_id and receiving_no='"
                                            + receive + "'");

                            java.sql.Statement st = connectDB.createStatement();

                            java.sql.ResultSet rset = st.executeQuery(
                                    "SELECT t.item_code,s.item_name, quantity_ordered,sum(quantity_received) , "
                                            + "(quantity_ordered-sum(quantity_received)) as def, o.price , (o.price*sum(quantity_received)) as total, st.supplier_names , receiving_date, \n"
                                            + "\n"
                                            + "t.order_id , delivered from stock_orders o,st_receiving_issuing t,stock_items s,stock_suppliers st where t.item_code=o.item_code "
                                            + "and t.order_id=o.order_id and t.item_code=s.item_code and st.supplier_id=t.supplier_id AND RECEIVING_NO='"
                                            + receive + "' group by 1,2,3,6, 8,9, 10, 11");
                            int count = 1;
                            while (rset.next()) {

                                table.getDefaultCell().setColspan(1);
                                table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_CENTER);
                                table.getDefaultCell().setColspan(1);
                                numberSeq += 1;

                                phrase = new Phrase("" + count + "   ", pFontHeader1);
                                table.addCell(phrase);

                                table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT);
                                phrase = new Phrase(dbObject.getDBObject(rset.getObject(1), "-"), pFontHeader1);
                                table.addCell(phrase);

                                table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT);
                                phrase = new Phrase(dbObject.getDBObject(rset.getObject(2), "-"), pFontHeader1);
                                table.addCell(phrase);

                                table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT);
                                phrase = new Phrase(dbObject.getDBObject(rset.getObject(3), "-"), pFontHeader1);
                                table.addCell(phrase);

                                table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT);
                                phrase = new Phrase(dbObject.getDBObject(rset.getObject(4), "-"), pFontHeader1);
                                table.addCell(phrase);

                                table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT);
                                phrase = new Phrase(dbObject.getDBObject(rset.getObject(5), "-"), pFontHeader1);
                                table.addCell(phrase);

                                table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT);
                                phrase = new Phrase(dbObject.getDBObject(rset.getObject(6), "-"), pFontHeader1);
                                table.addCell(phrase);

                                table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT);
                                phrase = new Phrase(dbObject.getDBObject(rset.getObject(7), "-"), pFontHeader1);
                                table.addCell(phrase);

                                table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT);
                                phrase = new Phrase(dbObject.getDBObject(rset.getObject(8), "-"), pFontHeader1);
                                table.addCell(phrase);

                                table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT);
                                phrase = new Phrase(dbObject.getDBObject(rset.getObject(9), "-"), pFontHeader1);
                                table.addCell(phrase);

                                table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT);
                                phrase = new Phrase(dbObject.getDBObject(rset.getObject(10), "-"), pFontHeader1);
                                table.addCell(phrase);

                                table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT);
                                phrase = new Phrase(dbObject.getDBObject(rset.getObject(11), "-"), pFontHeader1);
                                table.addCell(phrase);
                                count++;
                            }
                            table.getDefaultCell().setColspan(12);
                            phrase = new Phrase(" ");
                            table.addCell(phrase);

                            String gt = null;
                            while (r.next()) {
                                gt = dbObject.getDBObject(r.getObject(1), "-");
                            }
                            table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_RIGHT);
                            phrase = new Phrase("GRAND TOTAL: " + gt, pFontHeader1);
                            table.addCell(phrase);
                            System.err.println("grand total");
                            docPdf.add(table);

                        } catch (java.sql.SQLException SqlExec) {

                            javax.swing.JOptionPane.showMessageDialog(new javax.swing.JFrame(),
                                    SqlExec.getMessage());

                        }

                    } catch (com.lowagie.text.BadElementException BadElExec) {

                        javax.swing.JOptionPane.showMessageDialog(new javax.swing.JFrame(), BadElExec.getMessage());

                    } catch (SQLException ex) {
                        Logger.getLogger(OrdersPdf.class.getName()).log(Level.SEVERE, null, ex);
                    }

                } catch (java.io.FileNotFoundException fnfExec) {

                    javax.swing.JOptionPane.showMessageDialog(new javax.swing.JFrame(), fnfExec.getMessage());

                } catch (SQLException ex) {
                    Logger.getLogger(UpdatingStockCountPdf.class.getName()).log(Level.SEVERE, null, ex);
                } catch (BadElementException ex) {
                    Logger.getLogger(UpdatingStockCountPdf.class.getName()).log(Level.SEVERE, null, ex);
                }
            } catch (com.lowagie.text.DocumentException lwDocexec) {

                javax.swing.JOptionPane.showMessageDialog(new javax.swing.JFrame(), lwDocexec.getMessage());

            }

            docPdf.close();

            deskTop.open(tempFile);

        } catch (java.io.IOException IOexec) {

            javax.swing.JOptionPane.showMessageDialog(new javax.swing.JFrame(), IOexec.getMessage());

        }

    }

    public java.lang.Object[] getListofStaffNos() {

        java.lang.Object[] listofStaffNos = null;

        java.util.Vector listStaffNoVector = new java.util.Vector(1, 1);

        listofStaffNos = listStaffNoVector.toArray();
        System.out.println("Done list of Staff Nos ...");
        return listofStaffNos;
    }

}