Untitled
unknown
java
2 years ago
4.2 kB
4
Indexable
package practice; import java.util.ArrayList; import java.util.Scanner; public class Main { private static Scanner scanner = new Scanner(System.in); public static void main(String[] args) { ContractorsRegister contractorRegister = new ContractorsRegister(); boolean flag = false; while (!flag) { printMenu(); System.out.print(">> "); switch(readInput()) { case 1 -> contractorRegister.displayContractorsList(); case 2 -> contractorRegister.addContractor(); case 3 -> System.out.println("Option 3"); case 4 -> System.out.println("Option 4"); case 5 -> System.out.println("Option 5"); case 6 -> System.out.println("Option 6"); case 0 -> flag = true; } } } private static void printMenu() { System.out.println("-".repeat(30)); System.out.println(""" Invoice manager v1.0 [1] Contractors list [2] Add new contractor [3] Add invoice [4] Remove invoice [5] Modify invoice [6] History of transactions [0] EXIT """); } private static int readInput() { int input = 0; try { input = Integer.parseInt(scanner.nextLine().trim()); } catch(NumberFormatException invalidInput) { System.out.printf("WARNING: Invalid input %n"); } if ((input < 1) || (input > 6)) return -1; return input; } } public class ContractorsRegister { private static Scanner scanner = new Scanner(System.in); private ArrayList<Contractor> contractors; public ContractorsRegister() { this.contractors = new ArrayList<>(1000); } private Contractor getContractor(String contractorName) { for (var contractor: contractors) { if (contractor.getName().equalsIgnoreCase(contractorName)) { return contractor; } } System.out.printf("Contractor %s was not found.%n", contractorName); return null; } public void addContractor() { System.out.println("-".repeat(30)); System.out.print("Enter new contractor's name: "); String name = scanner.nextLine().trim(); if (getContractor(name) == null) { Contractor contractor = new Contractor(name); contractors.add(contractor); System.out.printf("Contractor %s was added.%n", name); } else { System.out.printf("Contractor %s already exists.%n", name); } } public void displayContractorsList() { System.out.println("-".repeat(30)); int index = 1; for (Contractor contractor: contractors) { System.out.printf("%d - %s%n", index, contractor.getName()); index++; } System.out.printf("%nPress enter to continue..."); scanner.nextLine(); } } public class Contractor { private static Scanner scanner = new Scanner(System.in); private String name; private ArrayList<Invoice> invoices; public Contractor(String name) { this.name = name.toUpperCase(); this.invoices = new ArrayList<>(1000); } public String getName() { return this.name; } public void addInvoice(Invoice invoice, String contractorName) { if (invoice == null) return; for (var item: invoices) { if (item.number().equalsIgnoreCase(invoice.number())) { System.out.printf("Invoice with number %s already exists on this contractor.", invoice.number()); scanner.nextLine(); } } invoices.add(invoice); } public void displayInvoicesList(String contractorName) { } } public record Invoice(String date, String number, int daysToPay, double amount) { }
Editor is loading...