Skip to content

Sales revenue branch #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: OrderBranch
Choose a base branch
from
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
44 changes: 44 additions & 0 deletions RRPSS/bin/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/Alacarte.class
/AlacarteController.class
/Category.class
/CategoryController.class
/ClosedOrderController.class
/Customer.class
/Discount.class
/DiscountController.class
/DiscountCoupon.class
/DiscountOrder.class
/Invoice.class
/Membership.class
/MenuItem.class
/MenuItemController.class
/OpenOrderController.class
/Order.class
/OrderController.class
/OrderItems.class
/Person.class
/PromoPackage.class
/PromoPackageController.class
/RRPSS_App.class
/Reservation.class
/SaleRevenue.class
/Staff.class
/StaffController.class
/Table.class
/TableController.class
/Tax.class
/TaxOrder.class
/UpdateOrderController.class
/ViewOrderController.class
/iCalculateDiscount.class
/iClosedOrder.class
/iCouponDiscount.class
/iDiscount.class
/iDiscountCalculator.class
/iMemberDiscount.class
/iOpenOrder.class
/iTaxCalculator.class
/iUpdateOrderController.class
/iViewOrderController.class
/SalesRevenueController.class
/SaleRevenueController.class
Binary file modified RRPSS/bin/ClosedOrderController.class
Binary file not shown.
Binary file modified RRPSS/bin/Order.class
Binary file not shown.
Binary file modified RRPSS/bin/OrderController.class
Binary file not shown.
Binary file modified RRPSS/bin/RRPSS_App.class
Binary file not shown.
Binary file modified RRPSS/bin/SaleRevenue.class
Binary file not shown.
2 changes: 1 addition & 1 deletion RRPSS/src/ClosedOrderController.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public double CalculateDiscount(Order order, ArrayList<Discount> membershipDisco

System.out.println("Apply Discount?(Y/N): ");
String isApply = sc.nextLine();
if(isApply == "N")
if(isApply.equalsIgnoreCase("N"))
return 0;

PrintDiscountOption();
Expand Down
10 changes: 10 additions & 0 deletions RRPSS/src/Order.java
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,16 @@ public void addTaxOrder(Tax tax, double taxPrice)
taxOrderArray.add(newTaxOrder);
}

public boolean isOrderClosed()
{
if(endTimeStamp == null)
{
return false;
} else {
return true;
}
}

private boolean isNumeric(String str){
return str != null && str.matches("[0-9.]+");
}
Expand Down
8 changes: 4 additions & 4 deletions RRPSS/src/OrderController.java
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,9 @@ public void CloseOrder(ArrayList<Tax> taxList, ArrayList<Discount> membershipDis
closedOC.CloseOrder(order, taxList, membershipDiscount);
}




public Map<Integer, Order> getAllOrders()
{
return this.orderMap;
}


}
9 changes: 6 additions & 3 deletions RRPSS/src/RRPSS_App.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public class RRPSS_App {
static CategoryController categoryController;
static PromoPackageController promopackagecontroller;
static AlacarteController alacartecontroller;

static SaleRevenue salerevenue;

static ArrayList<Discount> membershipDiscount = new ArrayList<Discount>();
static ArrayList<Discount> couponDiscount = new ArrayList<Discount>();
Expand All @@ -24,9 +24,10 @@ public static void main(String[] args) {
categoryController = new CategoryController();
alacartecontroller = new AlacarteController();
promopackagecontroller = new PromoPackageController();
salerevenue = new SaleRevenue();

int choice;
Scanner sc = new Scanner(System.in);


System.out.println("Restaurant Reservation and Point of Sale System (RRPSS)");
System.out.println("========================================================");
Expand All @@ -36,6 +37,7 @@ public static void main(String[] args) {
for(int i = 0; i < tables.length; i++)
tables[i] = new Table(i+1);
int ordernum = 1;
Scanner sc = new Scanner(System.in);

do{
System.out.println("(1) View/Create/Update/Remove Menu Item");
Expand All @@ -49,7 +51,7 @@ public static void main(String[] args) {
System.out.print("Enter Choice: ");
choice = sc.nextInt();
System.out.println();

switch(choice)
{
case 1:
Expand All @@ -68,6 +70,7 @@ public static void main(String[] args) {
case 6:
break;
case 7:
salerevenue.generateNewSalesReport(sc, orderController.getAllOrders(), alacartecontroller.getAllAlacarteItems(), promopackagecontroller.getAllPromoItems());
break;
case 8:
System.exit(0);
Expand Down
101 changes: 100 additions & 1 deletion RRPSS/src/SaleRevenue.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.time.*;
import java.time.format.DateTimeFormatter;

public class SaleRevenue {
private int reportID;
private String reportName;
private boolean periodByDay;
private double totalRevenue;
private Order[] orderList;


public int getReportID()
{
return reportID;
Expand Down Expand Up @@ -55,4 +60,98 @@ public void setOrderList(Order[] orderList)
{
this.orderList = orderList;
}

public void generateNewSalesReport(Scanner sc, Map<Integer, Order> orders, List<Alacarte> alacarteitem, List<PromoPackage> pp)
{
System.out.println("Enter Report ID: ");
this.reportID = sc.nextInt();

System.out.println("Enter Report Name: ");
this.reportName = sc.next();

System.out.println("Generate report by day or month?");
System.out.println("D - Day, M - Month");
String dayormonth = sc.next();

String inputdate = "";

if(dayormonth.equalsIgnoreCase("D"))
{
this.periodByDay = true;
System.out.println("Enter Date(E.g. 02-Dec): ");
} else {
this.periodByDay = false;
System.out.println("Enter Month(E.g. Dec): ");
}
inputdate = sc.next();

double totalrevenue = 0;

System.out.println("=====================================");
System.out.printf("Report ID: %d\n", this.reportID);
System.out.printf("Report Name: %s\n", this.reportName);
System.out.printf("Report Date: %s\n", inputdate);
System.out.println("=====================================");

System.out.println("Alacarte Name\t\tRevenue($)");
System.out.println("-------------------------------------");
double alrev = 0;
for(Alacarte al: alacarteitem)
{
double itemrev = getItemRevenue(orders, inputdate, al);
totalrevenue += itemrev;
alrev += itemrev;
System.out.printf("%-16s\t%.2f\n",al.getItemName(),itemrev);
}

System.out.println("-------------------------------------");
System.out.println("Alacarte Total: " + alrev);
System.out.println("=====================================");
System.out.println("Promo Name\t\tRevenue($)");
System.out.println("-------------------------------------");
double promorev = 0;
for(PromoPackage promo: pp)
{
double itemrev = getItemRevenue(orders, inputdate, promo);
totalrevenue += itemrev;
promorev += itemrev;
System.out.printf("%-16s\t%.2f\n",promo.getItemName(),itemrev);
}
System.out.println("-------------------------------------");
System.out.println("Promo Total: " + promorev);
System.out.println("=====================================");

System.out.println("Total Revenue: " + totalrevenue);
System.out.println();
}

private double getItemRevenue(Map<Integer, Order> orders, String inputdate, MenuItem mi)
{
DateTimeFormatter bydaydtf = DateTimeFormatter.ofPattern("dd-MMM");
DateTimeFormatter bymondtf = DateTimeFormatter.ofPattern("MMM");
double itemrevenue = 0;
String orderenddate = "";

for(Map.Entry<Integer, Order> e : orders.entrySet())
{
Order currentorder = e.getValue();

if(currentorder.getOrderItem(mi.getItemName()) != null && currentorder.isOrderClosed() == true)
{
if(this.periodByDay == true)
{
orderenddate = currentorder.getEndTimeStamp().format(bydaydtf);
} else {
orderenddate = currentorder.getEndTimeStamp().format(bymondtf);
}

if(currentorder.isOrderClosed() == true && orderenddate.equalsIgnoreCase(inputdate))
{
itemrevenue += currentorder.getOrderItem(mi.getItemName()).getSubTotal();
}
}
}

return itemrevenue;
}
}
12 changes: 12 additions & 0 deletions RRPSS/src/SaleRevenueController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import java.util.Scanner;

public class SaleRevenueController {
private SaleRevenue sr;
private OrderController oc;
private AlacarteController ac;
private PromoPackageController ppc;




}