Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 105 additions & 0 deletions Ecafe.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
package main;
import java.sql.SQLException;
import java.util.*;

import DAO.databaseHandler;
public class cafe {
private Date openTime = new Date();
private Date closeTime = new Date();
private Menu menu = new Menu();
private Order order;
public int orderTime[] = new int[2];

public cafe() {
openTime.setHours(4);
closeTime.setHours(10);
}
public boolean validOrderTime(int hour, int mint) {
if(openTime.getHours() > hour || closeTime.getHours() <= hour) {
return false;
}
else {
return true;
}
}
public static void main(String[] args) {
databaseHandler db_handler = new databaseHandler();
int itemID = 1, quantity = 0;
Date time = new Date();
Scanner sc=new Scanner(System.in);
cafe cafe = new cafe();
if (time.getHours()<cafe.openTime.getHours() || time.getHours()>=cafe.closeTime.getHours() ) {
System.out.println("=========> Cafe 420 is closed now. <=========");
}
else {
for(;;) {
cafe.order = new Order();
System.out.println("\n\t =========> Welcome to Cafe 420 <=========");
System.out.println();
cafe.menu.showMenu();
System.out.println("=> Type 0 to place the order:-");
for(;;) {
System.out.print("Type the Item ID: ");
itemID = sc.nextInt();
if (itemID == 0)
break;
System.out.print("=> Quantity of Item-"+itemID+": ");
quantity = sc.nextInt();
cafe.order.addItem(itemID, quantity);

}
if (itemID == 0) {
System.out.println("1. Home Delivery");
System.out.println("2. Self Pick-up");
int orderType = sc.nextInt();
if (orderType == 1) {
cafe.order.setOrderType("delivery");
System.out.print("Type the delivery address: ");
cafe.order.deliveryAddress = sc.next();
cafe.order.placeOrder();
System.out.println("Bill = Rs."+cafe.order.getBill());
try {
db_handler.prep_stmt = db_handler.conn.prepareStatement("insert into order_tbl (type, delivery_addr, bill) values (?,?,?);");
db_handler.prep_stmt.setString(1, "delivery");
db_handler.prep_stmt.setString(2, cafe.order.deliveryAddress);
db_handler.prep_stmt.setInt(3, cafe.order.getBill());

int affected_tuples = db_handler.prep_stmt.executeUpdate();
db_handler.prep_stmt.close();

}catch(SQLException se){
se.printStackTrace();
}
}
else if (orderType == 2) {
cafe.order.setOrderType("pickup");
System.out.println("Enter pick up time (24-h format => <hrs mints>):");
cafe.orderTime[0] = sc.nextInt();
cafe.orderTime[1] = sc.nextInt();
if (cafe.validOrderTime(cafe.orderTime[0],cafe.orderTime[1])) {
cafe.order.pickupTime.setHours(cafe.orderTime[0]);
cafe.order.pickupTime.setMinutes(cafe.orderTime[1]);
cafe.order.placeOrder();
System.out.println(cafe.order.getBill());
try {
db_handler.prep_stmt = db_handler.conn.prepareStatement("insert into order_tbl (type, pickupTime, bill) values (?,?,?)");
db_handler.prep_stmt.setString(1, "pickup");
db_handler.prep_stmt.setDate(2, (java.sql.Date) cafe.order.pickupTime);
db_handler.prep_stmt.setInt(3, cafe.order.getBill());

int affected_tuples = db_handler.prep_stmt.executeUpdate();

db_handler.prep_stmt.close();
}catch(SQLException se){
se.printStackTrace();
}
}
else {
System.out.println("Your order cannot be placed at this time");
}
}
}
}
}
}
}
31 changes: 31 additions & 0 deletions Item.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package main;
public class Item {
protected String name;
protected String category;
protected int price
public Item() {
}
public Item(String itemName, String itemCategory, int itemPrice) {
this.name = itemName;
this.category = itemCategory;
this.price = itemPrice;
}
public void setPrice(int itemPrice) {
this.price = itemPrice;
}
public void setName(String itemName) {
this.name = itemName;
}
public void setCategory(String itemCategory) {
this.category = itemCategory;
}
public int getPrice() {
return this.price;
}
public String getName() {
return this.name;
}
public String getCategory() {
return this.category;
}
}
20 changes: 20 additions & 0 deletions ItemPreparation.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package main;

public class ItemPreparation extends Item {
private short cooksAvailable;
private int preparationTime;
public ItemPreparation() {
cooksAvailable = 4;
}
public int getAvailableCooks() {
return this.cooksAvailable;
}
public void prepareItem(String itemName) {
if(getAvailableCooks() > 0) {
cooksAvailable--;
}
else {
System.out.println("No cook is available. Kindly wait");
}
}
}
63 changes: 63 additions & 0 deletions Menu.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package main;
import java.sql.*;
import java.util.Scanner;

import DAO.databaseHandler;

public class Menu {
databaseHandler db_handler = new databaseHandler();
Scanner sc=new Scanner(System.in);
public Menu() {
}
public void addItem() {
System.out.print("Item name: ");
String item_name = sc.nextLine();
System.out.print("Item category: ");
String item_category = sc.nextLine();
System.out.print("Item price: ");
int item_price = sc.nextInt();
try {
db_handler.prep_stmt = db_handler.conn.prepareStatement("insert into items_tbl (name, category, price) values (?,?,?)");
db_handler.prep_stmt.setString(1, item_name);
db_handler.prep_stmt.setString(2, item_category.toString());
db_handler.prep_stmt.setInt(3, item_price);

int affected_tuples = db_handler.prep_stmt.executeUpdate();

db_handler.prep_stmt.close();
}catch(SQLException se){
se.printStackTrace();
}
}
public void removeItem() {
System.out.print("Item name: ");
String item_name = sc.nextLine();
try {
db_handler.call_stmt = db_handler.conn.prepareCall("{call deleteItem(\""+item_name+"\")}");
//db_handler.prep_stmt = db_handler.conn.prepareStatement("delete from items_tbl where name = ?");
//db_handler.prep_stmt.setString(1,item_name);
int affected_tuples = db_handler.call_stmt.executeUpdate();

db_handler.call_stmt.close();
}catch(SQLException se){
se.printStackTrace();
}
}
public void showMenu() {
System.out.println(" MENU ");
System.out.println("Item ID || Item Name || Category || Price");
try {
db_handler.prep_stmt = db_handler.conn.prepareStatement("select * from items_tbl");
ResultSet items = db_handler.prep_stmt.executeQuery();
while(items.next()) {
System.out.printf(" %-12d%-24s%-22s%-10d",items.getInt("item_id"),items.getString("name"),items.getString("category"), items.getInt("price"));
System.out.println();
}
items.close();
db_handler.prep_stmt.close();
}catch(SQLException se){
se.printStackTrace();
}
System.out.println("------------------------------------------------------------------");
}
}
74 changes: 74 additions & 0 deletions Order.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package main;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;

import DAO.databaseHandler;

public class Order {
databaseHandler db_handler = new databaseHandler();
private String type;
private int bill;
private ItemPreparation prepareItem;
public String deliveryAddress;
public Date pickupTime = new Date();
private ArrayList<Integer> itemQuantity = new ArrayList<>();
private ArrayList<Integer> orderItems = new ArrayList<>();
public Order() {
prepareItem = new ItemPreparation();
deliveryAddress = null;
bill = 0;
type = null;
}
public boolean isDelivery() {
return type.equals("delivery") ? true: false;
}
public boolean isPickup() {
return type.equals("pickup") ? true: false;
}
public void addItem(int item, int quantity) {
try {
db_handler.stmt = db_handler.conn.createStatement();
int tuples = db_handler.stmt.executeUpdate("insert into order_items_tbl (item_id, quantity) values ("+item+","+quantity+")");
db_handler.stmt.close();
}catch(SQLException se){
se.printStackTrace();
}
orderItems.add(item);
itemQuantity.add(quantity);
}
public String getOrderType() {
return type;
}
public void setOrderType(String orderType) {
this.type = orderType;
}
public void placeOrder() {
calcBill();
if (prepareItem.getAvailableCooks()!=0) {
System.out.println("Your order is placed");
}
}
public int calcBill() {
for (int i=0; i<orderItems.size(); i++) {
try {
db_handler.prep_stmt = db_handler.conn.prepareStatement("select price from items_tbl where item_id = ?");
db_handler.prep_stmt.setInt(1,orderItems.get(i));
ResultSet items = db_handler.prep_stmt.executeQuery();
if(items.next()) {
bill += items.getInt("price")*itemQuantity.get(i);
}
items.close();
db_handler.prep_stmt.close();
}catch(SQLException se){
se.printStackTrace();
}
}
return bill;
}
public int getBill() {
return bill;
}
}