new main class

 avatar
chamanEiqbal
java
2 years ago
5.7 kB
6
Indexable
Never
package assignment2;

import java.util.ArrayList;
import java.util.Scanner;

public class Bill {



    public static void setBill(Parts p, ArrayList < Parts > partList) {
        Scanner sc = new Scanner(System.in);
        System.out.println("\n\nEnter Part Name:");
        p.setName(sc.nextLine());
        System.out.println("Enter quantity: ");
        p.setQuantity(sc.nextFloat());
        System.out.println("Enter unit price");
        p.setPrice(sc.nextFloat());
        System.out.println("Enter discount: ");
        p.setDiscount(sc.nextFloat());

        partList.add(p);
    }

    public static void setBill(Labour l, ArrayList < Labour > labourList) {
        Scanner sc = new Scanner(System.in);
        System.out.println("\n\nEnter Name");
        l.setName(sc.nextLine());
        System.out.println("Enter Quantity");
        l.setQuantity(sc.nextFloat());
        System.out.println("Enter Unit Price");
        l.setPrice(sc.nextFloat());

        labourList.add(l);

    }

    public static void setCustomer(Customer c) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter name");
        c.setName(sc.nextLine());
        System.out.println("Enter contact no.");
        c.setContactNo(sc.nextLine());
        System.out.println("Enter vehicle No");
        String vehNo = sc.nextLine();
        System.out.println("Enter vehicle model");
        String vehModel = sc.nextLine();
        c.hasTheVeh(new Vehicle(vehNo, vehModel));
    }

    public static void printReceipt(Customer customer, ArrayList < Parts > partList, ArrayList < Labour > labourList) {
        System.out.println("\n\n\n");
        System.out.println("***********************************************************************************************************************************");
        System.out.printf("%82s", "KARACHI AUTOSERVICES PVT. LTD.\n");
        System.out.println("***********************************************************************************************************************************");
        System.out.printf("Customer Name: %-40s", customer.getName()); // customername);
        System.out.printf("%60s %s\n", "Vehicle No.: ", customer.getVehicle().getVehNo());
        System.out.printf("Contact No.: %-40s", customer.getContactNo());
        System.out.printf("%64s %s\n", "Vehicle Model: ", customer.getVehicle().getModel());
        System.out.println("***********************************************************************************************************************************");
        System.out.printf("%75s", "BILL DESCRIPTION: \n");
        System.out.println("***********************************************************************************************************************************");
        System.out.printf("%-20s%-40s%-20s%-20s%-20s%-20s\n", "Type", "Name", "Price", "Quantity", "Discount", "Total");
        System.out.println("-----------------------------------------------------------------------------------------------------------------------------------");
        float partsTotal = 0.0 f;
        float labourTotal = 0.0 f;
        for (int i = 0; i < partList.size(); i++) {
            float totPart = (partList.get(i).getQuantity() * partList.get(i).getPrice()) - partList.get(i).getDiscount();
            partsTotal += totPart;
            System.out.printf("%-20s%-40s%15.2f%15.2f%15.2f%20.2f\n", "Parts", partList.get(i).getName(), partList.get(i).getPrice(), partList.get(i).getQuantity(), partList.get(i).getDiscount(), totPart);
        }
        for (int i = 0; i < labourList.size(); i++) {
            float totLabour = (labourList.get(i).getQuantity() * labourList.get(i).getPrice());
            labourTotal += totLabour;
            System.out.printf("%-20s%-40s%15.2f%15.2f%15.2s%20.2f\n", "Labour", labourList.get(i).getName(), labourList.get(i).getPrice(), labourList.get(i).getQuantity(), "-", totLabour);
        }

        float netTotal = partsTotal + labourTotal;
        System.out.println("-----------------------------------------------------------------------------------------------------------------------------------");
        System.out.printf("%-80s%45.2f\n", "Parts Total:", partsTotal);
        System.out.printf("%-80s%45.2f\n", "Service Tax (5%):", (partsTotal * 0.05));
        System.out.printf("%-80s%45.2f\n", "Labour Total:", labourTotal);
        System.out.printf("%-80s%45.2f\n", "Grand Total:", netTotal + (partsTotal * 0.05));

        System.out.println("***********************************************************************************************************************************");
    }

    public static void main(String[] args) {
        ArrayList < Parts > partList = new ArrayList < > ();
        ArrayList < Labour > labourList = new ArrayList < > ();
        Customer c = new Customer();
        Scanner sc = new Scanner(System.in);

        String cont;

        setCustomer(c);

        System.out.println("\n\nEnter parts INFO: ");
        do {
            Parts p = new Parts();
            setBill(p, partList);
            System.out.println("do you want continue y/n?");
            cont = sc.next();
        } while (cont.equalsIgnoreCase("YES") || cont.startsWith("y"));


        System.out.println("\n\nEnter Labour INFO: ");
        do {
            Labour l = new Labour();
            setBill(l, labourList);
            System.out.println("do you want to continue y/n");
            cont = sc.next();
        } while (cont.equalsIgnoreCase("YES") || cont.startsWith("y"));



        printReceipt(c, partList, labourList);

    }



}