Untitled

 avatar
unknown
plain_text
2 years ago
4.9 kB
5
Indexable
public Boolean generateSalesReport(SalesReport salesReport){


        try{
            objOs.writeObject("Sales Report");
            objOs.writeObject(salesReport);
            objOs.flush();

            var foundData =(Boolean)objIs.readObject();
            var checkoutArrayList = (ArrayList<Checkout>)objIs.readObject();

            if (foundData){

                Document doc = new Document();


                try{
                    PdfWriter writer = PdfWriter.getInstance(doc,new FileOutputStream("src/salesReport_" + filename + ".pdf"));

                    doc.open();


                    String salesReportHeader = String.format("******************************************************************************************************************\n" +
                                    "     Jan's Wholesale and Retail Management System  \n" +
                                    "            Sales Report\n" +
                                    "******************************************************************************************************************\n" +
                                    "Product Code: %s\nFrom: %s\nTo: %s\n"
                            ,salesReport.getProductCode(),salesReport.getStartDate().toString(),salesReport.getEndDate().toString());

                    doc.add(new Paragraph(salesReportHeader));

                    doc.add(new Paragraph(" "));

                    int totalItemSold = 0;
                    int count = 1;

                    for(Checkout checkout: checkoutArrayList){


                        totalItemSold = totalItemSold + checkout.getQuantityOfItem();

                        String row = count +") Invoice Number: " + checkout.getInvoiceNum() + "  Billing Date: " + checkout.getBillingDate() +  "  Item: " + checkout.getItem() +
                        "  Quantity Of Item: " + checkout.getQuantityOfItem();

                        doc.add(new Paragraph(row));
                        count += 1;

                    }

                    doc.add(new Paragraph(" "));
                    doc.add(new Paragraph("Total items sold: " + totalItemSold));
                    doc.add(new Paragraph(" "));


                    String footer = "******************************************************************************************************************\n" +
                            "             Telephone: 876-934-5632                  \n" +
                            "             23 Priceswright Way                      \n" +
                            "             Kingston 10 Jamaica                      \n" +
                            "******************************************************************************************************************\n";

                    doc.add(new Paragraph(footer));

                    doc.close();
                    writer.close();

                    if(Desktop.isDesktopSupported()){

                        File receipt = new File("src/salesReport_" + filename + ".pdf");

                        try {
                            Desktop.getDesktop().open(receipt);
                        } catch (IOException e) {
                            logger.error("IOException: " +e.getMessage());
                        }catch (IllegalArgumentException e){
                            logger.error("IllegalArgumentException: " +e.getMessage());
                        }catch (NullPointerException e){
                            logger.error("NullPointerException: " +e.getMessage());
                        }catch (UnsupportedOperationException e){
                            logger.error("UnsupportedOperationException: " +e.getMessage());
                        }catch (Exception e) {
                            logger.error("Exception: " + e.getMessage());
                        }
                    }

                }catch (DocumentException e){
                    logger.error("DocumentException: " + e.getMessage());
                }catch (FileNotFoundException e){
                    logger.error("FileNotFoundException: " + e.getMessage());
                }catch (Exception e) {
                    logger.error("Exception: " + e.getMessage());
                }

                return true;
            }
            else{
                logger.error("Cannot load sales data");
                return false;
            }
        }catch(IOException e) {
            logger.error("IOException: " + e.getMessage());
        }catch (ClassNotFoundException e){
            logger.error("ClassNotFoundException: " + e.getMessage());
        }catch (Exception e) {
            logger.error("Exception: " + e.getMessage());
        }

        return false;
    }
Editor is loading...