Advertisement
weiqian1020

core

Jun 21st, 2017
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 37.07 KB | None | 0 0
  1. package assignment;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Scanner;
  5.  
  6. public class core{
  7.     private static Scanner input;
  8.     private String account;
  9.     private ArrayList<String> username = new ArrayList<String>();
  10.     private ArrayList<String> password = new ArrayList<String>();
  11.     private ArrayList<String> userOrder = new ArrayList<String>();
  12.     private ArrayList<String> shipStatus = new ArrayList<String>();
  13.     private ArrayList<String> orderStatus = new ArrayList<String>();
  14.     private ArrayList<Top> top = new ArrayList<Top>();
  15.     private ArrayList<Pant> pant = new ArrayList<Pant>();
  16.     private ArrayList<Dress> dress = new ArrayList<Dress>();
  17.     private ArrayList<Skirt> skirt = new ArrayList<Skirt>();
  18.     private ArrayList<Integer> getUpdate = new ArrayList<>();
  19.     Top tempT = new Top();
  20.     Pant tempP = new Pant();
  21.     Dress tempD = new Dress();
  22.     Skirt tempS = new Skirt();
  23.     public static void main(String[] args) {
  24.         int x = 0;
  25.         boolean bool = true;
  26.         core run = new core();
  27.         input = new Scanner(System.in);
  28.         do{
  29.             switch (x) {
  30.            
  31.             case 0:
  32.                 x = run.mainMenu();
  33.                 break;
  34.             case 1:
  35.                 x = run.admin();
  36.                 break;
  37.             case 2:
  38.                 x = run.user();
  39.                 break;
  40.             case 3:
  41.                 x = run.userLogin();
  42.                 break;
  43.             case 4:
  44.                 x = run.userReg();
  45.                 break;
  46.             case 5:
  47.                 x = run.userMenu();
  48.                 break;
  49.             case 6:
  50.                 x = run.userShop();
  51.                 break;
  52.             case 7:
  53.                 x = run.userStatus();
  54.                 break;
  55.             case 8:
  56.                 x = run.adminMenu();
  57.                 break;
  58.             case 9:
  59.                 x = run.adminNewOrder();
  60.                 break;
  61.             case 10:
  62.                 x = run.adminAllOrder();
  63.                 break;
  64.             default:
  65.                 bool = false;
  66.                 System.out.println(x);
  67.                 break;
  68.             }
  69.         } while (bool);
  70.     }
  71.    
  72.     private int mainMenu(){
  73.         System.out.println("Welcome to FreeStyler Online Apparels");
  74.         System.out.println("Login As:\n(1)Admin\n(2)User");
  75.         boolean bool = true;
  76.         String n;
  77.         do {
  78.             try{
  79.                 n = input.nextLine();
  80.             } catch (Exception e) {
  81.                 System.out.println("Invalid input, " + e);
  82.                 System.out.println("Login As:\n(1)Admin\n(2)User");
  83.                 continue;
  84.             }
  85.             if (n.equals("1")){
  86.                 bool = false;
  87.                 return 1;
  88.             }
  89.             else if (n.equals("2")){
  90.                 bool = false;
  91.                 return 2;
  92.             }
  93.             else {
  94.                 System.out.println("Invalid input, please try again");
  95.                 System.out.println("Login As:\n(1)Admin\n(2)User");
  96.                 continue;
  97.             }
  98.         }while(bool);
  99.         return 0;
  100.     }
  101.     private int admin(){
  102.         boolean bool = true;
  103.         String user, pass = null;
  104.         do {
  105.             System.out.println("-1 to back");
  106.             System.out.print("Username: ");
  107.             try {
  108.                 user = input.nextLine();
  109.             } catch (Exception e){
  110.                 System.out.println("Error: " + e);
  111.                 continue;
  112.             }
  113.             if (backtrack(user)){
  114.                 bool = false;
  115.                 return 0;
  116.             }
  117.             System.out.print("Password: ");
  118.             try{
  119.                 pass = input.nextLine();
  120.             } catch (Exception e){
  121.                 System.out.println("Error: " + e);
  122.             }
  123.            
  124.             if (backtrack(pass)){
  125.                 bool = false;
  126.                 return 0;
  127.             }
  128.             else if (user.equals("admin") && pass.equals("admin")){
  129.                 System.out.println("Login Successfully");
  130.                 System.out.println();
  131.                 bool = false;
  132.                 return 8;
  133.             }
  134.             else {
  135.                 System.out.println("Invalid username or password");
  136.             }
  137.         }while (bool);
  138.         return 0;
  139.     }
  140.    
  141.     private int user(){
  142.         String x;
  143.        
  144.         boolean bool;
  145.         do {
  146.             bool = false;
  147.             System.out.println("-1 to back");
  148.             System.out.println("(1)Login\n(2)Register");
  149.             try{
  150.                 x = input.nextLine();
  151.             }
  152.             catch (Exception e){
  153.                 System.out.println("Invalid input, " + e);
  154.                 continue;
  155.             }
  156.            
  157.             if (x.equals("1")){
  158.                 return 3;
  159.             }
  160.             else if (x.equals("2")){
  161.                 return 4;
  162.             }
  163.             else if (x.equals("-1")){
  164.                 return 0;
  165.             }
  166.             else {
  167.                 System.out.println("Invalid input, please try again");
  168.                 bool = true;
  169.                 continue;
  170.             }
  171.         }while(bool);
  172.         return 0;
  173.     }
  174.    
  175.     private int adminMenu(){
  176.         String x = null;
  177.         int update = 0;
  178.         boolean bool;
  179.        
  180.         do{
  181.             loadOrder();
  182.             bool = true;
  183.             for (int i = 0; i < userOrder.size(); i++) {
  184.                 if (orderStatus.get(i).equals("Pending")){
  185.                     update++;
  186.                 }
  187.             }
  188.             if (update > 0 ){
  189.                 System.out.println(update + " new order! Enter 1 to view new order");
  190.             }
  191.             System.out.println("(1)View new orders [" + update +"]\n(2)View all orders\n(3)Log Out");
  192.             try{
  193.                 x = input.nextLine();
  194.             }
  195.             catch (Exception e){
  196.                 System.out.println("Invalid input, " + e);
  197.             }
  198.             switch (x) {
  199.                 case "1":
  200.                     bool = false;
  201.                     return 9;
  202.                 case "2":
  203.                     bool = false;
  204.                     return 10;
  205.                 case "3":
  206.                     bool = false;
  207.                     return 0;
  208.                 default:
  209.                     bool = true;
  210.                     System.out.println("Invalid input, please try again");
  211.             }
  212.         }while(bool);
  213.         return 0;
  214.     }
  215.    
  216.     private int adminNewOrder(){
  217.         boolean bool, valid, bool2;
  218.         String x;
  219.         int y, total;
  220.         do {
  221.             y = 0;
  222.             valid = false;
  223.             loadOrder();
  224.             bool = true;
  225.             bool2 = false;
  226.             for (int i = 0; i < userOrder.size(); i++) {
  227.                 if (orderStatus.get(i).equals("Pending")){
  228.                 bool2 = true;
  229.                
  230.                 }
  231.             }
  232.             if (bool2){
  233.                 System.out.println("-1 to back");
  234.                 System.out.println("Pending Orders");
  235.                 System.out.println();
  236.             }
  237.             for (int i = 0; i < userOrder.size(); i++) {
  238.                 if (orderStatus.get(i).equals("Pending")){
  239.                     System.out.println("Order Number #" + i);
  240.                     System.out.println("Username that order: " + userOrder.get(i));
  241.                     if(((Top)top.get(i)).amount > 0){
  242.                         System.out.printf("%s %s %s (%s) @RM%d each x %d = RM%d\n", ((Top)top.get(i)).group, ((Top)top.get(i)).type, ((Top)top.get(i)).color, ((Top)top.get(i)).size, tempT.price, ((Top)top.get(i)).amount, (tempT.price * ((Top)top.get(i)).amount));
  243.                     }
  244.                     if(((Pant)pant.get(i)).amount > 0){
  245.                         System.out.printf("%s %s %s (%s) @RM%d each x %d = RM%d\n", ((Pant)pant.get(i)).group, ((Pant)pant.get(i)).type, ((Pant)pant.get(i)).color, ((Pant)pant.get(i)).size, tempP.price, ((Pant)pant.get(i)).amount, (tempP.price * ((Pant)pant.get(i)).amount));
  246.                     }
  247.                     if(((Dress)dress.get(i)).amount > 0){
  248.                         System.out.printf("%s %s %s (%s) @RM%d each x %d = RM%d\n", ((Dress)dress.get(i)).group, ((Dress)dress.get(i)).type, ((Dress)dress.get(i)).color, ((Dress)dress.get(i)).size, tempD.price, ((Dress)dress.get(i)).amount, (tempD.price * ((Dress)dress.get(i)).amount));
  249.                     }
  250.                     if(((Skirt)skirt.get(i)).amount > 0){
  251.                         System.out.printf("%s %s %s (%s) @RM%d each x %d = RM%d\n", ((Skirt)skirt.get(i)).group, ((Skirt)skirt.get(i)).type, ((Skirt)skirt.get(i)).color, ((Skirt)skirt.get(i)).size, tempS.price, ((Skirt)skirt.get(i)).amount, (tempS.price * ((Skirt)skirt.get(i)).amount));
  252.                     }
  253.                     total = (((Top)top.get(i)).amount * tempT.price) + (((Pant)pant.get(i)).amount * tempP.price) + (((Dress)dress.get(i)).amount * tempD.price) + (((Skirt)skirt.get(i)).amount * tempS.price);
  254.                     System.out.print("Discount: ");
  255.                     if (((Top)top.get(i)).amount + ((Pant)pant.get(i)).amount + ((Dress)dress.get(i)).amount + ((Skirt)skirt.get(i)).amount >= 10){
  256.                         System.out.println("10%");
  257.                         System.out.printf("Total = RM%.2f\n", (total * 0.9));
  258.                     }
  259.                     else {
  260.                         System.out.println("0%");
  261.                         System.out.printf("Total = RM%d\n", (total));
  262.                     }
  263.                     System.out.println();
  264.                 }
  265.             }
  266.             if (bool2){
  267.                 System.out.print("Enter the order number to accept order and shipping: #");
  268.                 try{
  269.                     x = input.nextLine();
  270.                     y = Integer.parseInt(x);
  271.                 }
  272.                 catch (Exception e){
  273.                     System.out.println("Invalid input , " + e);
  274.                 }
  275.                 for (int i = 0; i < userOrder.size(); i++) {
  276.                     if (orderStatus.get(i).equals("Pending") && y == i){
  277.                         valid = true;
  278.                         setStatus(i);
  279.                         System.out.println();
  280.                         System.out.println("Order #" + i + " order and shipping accepted");
  281.                         System.out.println();
  282.                         System.out.println("Press Enter to continue");
  283.                         input.nextLine();
  284.                         bool = true;
  285.                         continue;
  286.                     }
  287.                 }
  288.                 if (backtrack(y)){
  289.                     bool = false;
  290.                     return 8;
  291.                 }
  292.                 else if (!valid){
  293.                     System.out.println();
  294.                     System.out.println("Invalid input, please try again");
  295.                     System.out.println();
  296.                     bool = true;
  297.                     continue;
  298.                 }
  299.             }
  300.             else {
  301.                 System.out.println("No new order");
  302.                 System.out.println();
  303.                 System.out.println("Press Enter to continue");
  304.                 input.nextLine();
  305.                 return 8;
  306.             }
  307.         }while (bool);        
  308.         return 0;
  309.     }
  310.    
  311.     private int adminAllOrder(){
  312.         boolean bool;
  313.         String x;
  314.         int y, total;
  315.         do {
  316.             y = 0;
  317.             bool = true;
  318.             System.out.println("List of all orders");
  319.             System.out.println();
  320.             if(userOrder.size() >= 1){
  321.                 for (int i = 0; i < userOrder.size(); i++) {
  322.                     System.out.println("Order #" + i);
  323.                 }
  324.                 System.out.println("-1 to back");
  325.                 System.out.print("Enter order number to view more information of that order: #");
  326.                 try {
  327.                     x = input.nextLine();
  328.                     y = Integer.parseInt(x);
  329.                 }
  330.                 catch (Exception e){
  331.                     System.out.println("Invalid input, " + e);
  332.                 }
  333.                 if (y < userOrder.size() && y >= 0){
  334.                     System.out.println("Order Number #" + y);
  335.                     System.out.println("Username that order: " + userOrder.get(y));
  336.                     if(((Top)top.get(y)).amount > 0){
  337.                         System.out.printf("%s %s %s (%s) @RM%d each x %d = RM%d\n", ((Top)top.get(y)).group, ((Top)top.get(y)).type, ((Top)top.get(y)).color, ((Top)top.get(y)).size, tempT.price, ((Top)top.get(y)).amount, (tempT.price * ((Top)top.get(y)).amount));
  338.                     }
  339.                     if(((Pant)pant.get(y)).amount > 0){
  340.                         System.out.printf("%s %s %s (%s) @RM%d each x %d = RM%d\n", ((Pant)pant.get(y)).group, ((Pant)pant.get(y)).type, ((Pant)pant.get(y)).color, ((Pant)pant.get(y)).size, tempP.price, ((Pant)pant.get(y)).amount, (tempP.price * ((Pant)pant.get(y)).amount));
  341.                     }
  342.                     if(((Dress)dress.get(y)).amount > 0){
  343.                         System.out.printf("%s %s %s (%s) @RM%d each x %d = RM%d\n", ((Dress)dress.get(y)).group, ((Dress)dress.get(y)).type, ((Dress)dress.get(y)).color, ((Dress)dress.get(y)).size, tempD.price, ((Dress)dress.get(y)).amount, (tempD.price * ((Dress)dress.get(y)).amount));
  344.                     }
  345.                     if(((Skirt)skirt.get(y)).amount > 0){
  346.                         System.out.printf("%s %s %s (%s) @RM%d each x %d = RM%d\n", ((Skirt)skirt.get(y)).group, ((Skirt)skirt.get(y)).type, ((Skirt)skirt.get(y)).color, ((Skirt)skirt.get(y)).size, tempS.price, ((Skirt)skirt.get(y)).amount, (tempS.price * ((Skirt)skirt.get(y)).amount));
  347.                     }
  348.                     total = (((Top)top.get(y)).amount * tempT.price) + (((Pant)pant.get(y)).amount * tempP.price) + (((Dress)dress.get(y)).amount * tempD.price) + (((Skirt)skirt.get(y)).amount * tempS.price);
  349.                     System.out.print("Discount: ");
  350.                     if (((Top)top.get(y)).amount + ((Pant)pant.get(y)).amount + ((Dress)dress.get(y)).amount + ((Skirt)skirt.get(y)).amount >= 10){
  351.                         System.out.println("10%");
  352.                         System.out.printf("Total = RM%.2f\n", total * 0.9);
  353.                     }
  354.                     else {
  355.                         System.out.println("0%");
  356.                         System.out.printf("Total = RM%d\n", total);
  357.                     }
  358.                     System.out.println("Order Status: " + orderStatus.get(y));
  359.                     System.out.println("Shipping Status: " + orderStatus.get(y));
  360.                     System.out.println();
  361.                     System.out.println("Press Enter to continue");
  362.                     input.nextLine();
  363.                     bool = true;
  364.                     continue;
  365.                 }
  366.                 else if (backtrack(y)){
  367.                     bool = false;
  368.                     System.out.println();
  369.                     return 8;
  370.                 }
  371.                 else {
  372.                     System.out.println("Invalid input, please try again");
  373.                     bool = true;
  374.                     continue;
  375.                 }
  376.             }
  377.             else {
  378.                 System.out.println("0 order");
  379.                 System.out.println();
  380.                 System.out.println("Press Enter to continue");
  381.                 input.nextLine();
  382.                 return 8;
  383.             }
  384.         }while(bool);
  385.         return 0;
  386.     }
  387.    
  388.     private int userLogin(){
  389.         boolean bool = true;
  390.         String user, pass = null;
  391.         loadDat();
  392.         do{
  393.             System.out.println("-1 to back");
  394.             System.out.print("Username: ");
  395.             try {
  396.                 user = input.nextLine();
  397.             } catch (Exception e){
  398.                 System.out.println("Error: " + e);
  399.                 continue;
  400.             }
  401.             if (backtrack(user)){
  402.                 bool = false;
  403.                 return 2;
  404.             }
  405.             System.out.print("Password: ");
  406.             try{
  407.                 pass = input.nextLine();
  408.             } catch (Exception e){
  409.                 System.out.println("Error: " + e);
  410.             }
  411.             if (backtrack(pass)){
  412.                 bool = false;
  413.                 return 2;
  414.             }
  415.             else {
  416.                 for (int i = 0; i < this.username.size(); i++) {
  417.                     if (user.equals(this.username.get(i)) && pass.equals(this.password.get(i))){
  418.                         System.out.println("Login Successfully");
  419.                         System.out.println();
  420.                         bool = false;
  421.                         account = this.username.get(i);
  422.                         return 5;
  423.                     }
  424.                 }
  425.                 System.out.println("Invalid username or password");
  426.                 System.out.println();
  427.             }  
  428.         }while(bool);
  429.         return 0;
  430.     }
  431.    
  432.     private int userReg(){
  433.         String user, pass;
  434.         boolean bool = true;
  435.         boolean bool2 = false;
  436.         boolean taken;
  437.         loadDat();
  438.         System.out.println("-1 to back");
  439.         System.out.println("Register as");
  440.        
  441.         do{
  442.             taken = false;
  443.             System.out.print("Username: ");
  444.             user = input.nextLine();
  445.             if (backtrack(user)){
  446.                 return 2;
  447.             }
  448.            
  449.             for (int i = 0; i < this.username.size(); i++) {
  450.                 if (user.equals(this.username.get(i))){
  451.                     System.out.println("Username taken, please take different username");
  452.                     System.out.println();
  453.                     taken = true;
  454.                     continue;
  455.                 }
  456.             }
  457.            
  458.             if (taken){
  459.                 continue;
  460.             }
  461.            
  462.             else if(user.contains(" ")){
  463.                 System.out.println("Username or password cannot contain space");
  464.                 System.out.println();
  465.                 continue;
  466.             }
  467.            
  468.             else {
  469.                 do {
  470.                     bool2 = false;
  471.                     System.out.print("Password: ");
  472.                     pass = input.nextLine();
  473.                     if (backtrack(pass)){
  474.                         return 2;
  475.                     }
  476.                     else if (pass.contains(" ")){
  477.                         System.out.println("Username or password cannot contain space");
  478.                         System.out.println();
  479.                         bool2 = true;
  480.                         continue;
  481.                     }
  482.                     else {
  483.                         addDat(user, pass);
  484.                         System.out.println("Account created successfully");
  485.                         System.out.println();
  486.                         bool = false;
  487.                         return 2;
  488.                     }
  489.                 }while(bool2);
  490.             }
  491.         }while(bool);
  492.         return 0;
  493.     }
  494.    
  495.     private int userMenu(){
  496.         boolean bool = true;
  497.         String x = null;
  498.         System.out.println("Welcome back, " + account);
  499.         loadOrder();
  500.         for (int i = 0; i < userOrder.size(); i++) {
  501.             if (userOrder.get(i).equals(account) && getUpdate.get(i) == 1){
  502.                 System.out.println("Your order #" + i + " has been accepted.");
  503.                 System.out.println("Enter 2 to view the order status");
  504.                 setUpdate(i);
  505.             }
  506.         }
  507.         do{
  508.            
  509.             System.out.println("(1)Shop\n(2)Status\n(3)Log Out");
  510.             try {
  511.                 x = input.nextLine();
  512.             } catch (Exception e) {
  513.                 System.out.println("Invalid input, " + e);
  514.             }
  515.             if (x.equals("1")){
  516.                 bool = false;
  517.                 return 6;
  518.             }
  519.             else if (x.equals("2")){
  520.                 bool = false;
  521.                 return 7;
  522.             }
  523.             else if (x.equals("3")){
  524.                 bool = false;
  525.                 return 0;
  526.             }
  527.             else {
  528.                 System.out.println("Invalid input, please try again");
  529.             }
  530.         }while(bool);
  531.         return 0;
  532.     }
  533.    
  534.     private int userShop(){
  535.         boolean bool, bool2, bool3, checkOut;
  536.         int x, color, size = 0, amount, total;
  537.         String in;
  538.         String c, s, g, t;
  539.         do {
  540.             checkOut = false;
  541.             System.out.println("-1 to back, clear cart");
  542.             System.out.println("Men\tWomen\n(1)Top\t(3)Dress\n(2)Pant\t(4)Skirt\n(5)View cart\n(6)Checkout");
  543.             try {
  544.                 in = input.nextLine();
  545.                 x = Integer.parseInt(in);
  546.             }
  547.             catch(Exception e){
  548.                 System.out.println("Invalid input, " + e);
  549.                 System.out.println();
  550.                 continue;
  551.             }
  552.             if (x >= 1 && x <= 4){
  553.                 do{
  554.                     bool = true;
  555.                     System.out.println("-1 to back");
  556.                     System.out.println("Choose a color:");
  557.                     System.out.println("(1)White\n(2)Black\n(3)Red\n(4)Green\n(5)Blue");
  558.                     try {
  559.                         in = input.nextLine();
  560.                         color = Integer.parseInt(in);
  561.                     }
  562.                     catch (Exception e){
  563.                         System.out.println("Invalid input, " + e);
  564.                         System.out.println();
  565.                         continue;
  566.                     }
  567.                     if (color >= 1 && color <= 5){
  568.                         do {
  569.                             bool2 = true;
  570.                             System.out.println("-1 to back");
  571.                             System.out.println("Choose a size:");
  572.                             System.out.println("(1)S\n(2)M\n(3)L");
  573.                             try {
  574.                                 in = input.nextLine();
  575.                                 size = Integer.parseInt(in);
  576.                             }
  577.                             catch (Exception e){
  578.                                 System.out.println("Invalid input, " + e);
  579.                                 System.out.println();
  580.                                 continue;
  581.                             }
  582.                             if (size >= 1 && size <= 3){
  583.                                 do {
  584.                                     bool3 = true;
  585.                                     System.out.println("-1 to back");
  586.                                     System.out.println("Purchase total of 10 pieces will get 10% discount!");
  587.                                     switch (x) {
  588.                                     case 1:
  589.                                         System.out.print("Amount @RM" + tempT.price +" each: ");
  590.                                         break;
  591.                                     case 2:
  592.                                         System.out.print("Amount @RM" + tempP.price +" each: ");
  593.                                         break;
  594.                                     case 3:
  595.                                         System.out.print("Amount @RM" + tempD.price +" each: ");
  596.                                         break;
  597.                                     case 4:
  598.                                         System.out.print("Amount @RM" + tempS.price +" each: ");
  599.                                         break;
  600.                                     }
  601.                                     try {
  602.                                         in = input.nextLine();
  603.                                         amount = Integer.parseInt(in);
  604.                                     }
  605.                                     catch (Exception e){
  606.                                         System.out.println("Invalid input, " + e);
  607.                                         System.out.println();
  608.                                         continue;
  609.                                     }
  610.                                    
  611.                                     if (backtrack(amount)){
  612.                                         System.out.println();
  613.                                         bool3 = false;
  614.                                         break;
  615.                                     }
  616.                                     else if (amount < 1){
  617.                                         System.out.println("Amount cannot less than 1");
  618.                                         System.out.println();
  619.                                         continue;
  620.                                     }
  621.                                     else {
  622.                                         g = gGet(x);
  623.                                         c = cGet(color);
  624.                                         s = sGet(size);
  625.                                         t = tGet(x);
  626.                                         addCart(t, c, s, amount);
  627.                                         System.out.println();
  628.                                         System.out.printf("%s %s %s (%s) x %d added to cart\n", g, t, c, s, amount);
  629.                                         System.out.println();
  630.                                         bool = false;
  631.                                         bool2 = false;
  632.                                         bool3 = false;
  633.                                     }
  634.                                 } while (bool3);
  635.                             }
  636.                             else if(backtrack(size)){
  637.                                 bool2 = false;
  638.                                 break;
  639.                             }
  640.                             else {
  641.                                 System.out.println("Invalid input, please try again");
  642.                                 System.out.println();
  643.                             }
  644.                         }while(bool2);
  645.                     }
  646.                     else if (backtrack(color)){
  647.                         bool = false;
  648.                         break;
  649.                     }
  650.                     else {
  651.                         System.out.println("Invalid input, please try again");
  652.                         System.out.println();
  653.                     }
  654.                 }while(bool);
  655.             }
  656.             else if(x == 5){
  657.                 if (tempT.amount + tempP.amount + tempD.amount + tempS.amount > 0){
  658.                     if (tempT.amount >= 1){
  659.                         System.out.printf("%s %s %s (%s) @RM%d each x %d = RM%d\n", tempT.group, tempT.type, tempT.color, tempT.size, tempT.price, tempT.amount, (tempT.amount * tempT.price));
  660.                     }
  661.                     if (tempP.amount >= 1){
  662.                         System.out.printf("%s %s %s (%s) @RM%d each x %d = RM%d\n", tempP.group, tempP.type, tempP.color, tempP.size, tempP.price, tempP.amount, (tempP.amount * tempP.price));
  663.                     }
  664.                     if (tempD.amount >= 1){
  665.                         System.out.printf("%s %s %s (%s) @RM%d each x %d = RM%d\n", tempD.group, tempD.type, tempD.color, tempD.size, tempD.price, tempD.amount, (tempD.amount * tempD.price));
  666.                     }
  667.                     if (tempS.amount >= 1){
  668.                         System.out.printf("%s %s %s (%s) @RM%d each x %d = RM%d\n", tempS.group, tempS.type, tempS.color, tempS.size, tempS.price, tempS.amount, (tempS.amount * tempS.price));
  669.                     }
  670.                     total = (tempT.amount * tempT.price) + (tempP.amount * tempP.price) + (tempD.amount * tempD.price) + (tempS.amount * tempS.price);
  671.                     System.out.print("Discount: ");
  672.                     if (tempT.amount + tempP.amount + tempD.amount + tempS.amount >= 10){
  673.                         System.out.println("10%");
  674.                         System.out.printf("Total = RM%.2f\n", total * 0.9);
  675.                     }
  676.                     else {
  677.                         System.out.println("0%");
  678.                         System.out.printf("Total = RM%d\n", total);
  679.                     }
  680.                 }
  681.                 else {
  682.                     System.out.println("No item in the cart");
  683.                 }
  684.                 System.out.println();
  685.                 System.out.println("Press Enter to continue");
  686.                 input.nextLine();
  687.             }
  688.             else if(x == 6){
  689.                 if (tempT.amount + tempP.amount + tempD.amount + tempS.amount > 0){
  690.                     addOrder(account);
  691.                     checkOut = true;
  692.                     loadOrder();
  693.                     total = (tempT.amount * tempT.price) + (tempP.amount * tempP.price) + (tempD.amount * tempD.price) + (tempS.amount * tempS.price);
  694.                     System.out.println("The total is :" + total);
  695.                     System.out.println("Thanks\nYour order number is #" + (userOrder.size() - 1) + "\nPlease come again!\n");
  696.                     tempT.amount = 0;
  697.                     tempP.amount = 0;
  698.                     tempD.amount = 0;
  699.                     tempS.amount = 0;
  700.                     return 5;
  701.                 }
  702.                 else {
  703.                     System.out.println("Thanks, please come again\n");
  704.                     return 5;
  705.                 }
  706.             }
  707.             else if(backtrack(x)){
  708.                 tempT.amount = 0;
  709.                 tempP.amount = 0;
  710.                 tempD.amount = 0;
  711.                 tempS.amount = 0;
  712.                 return 5;
  713.             }
  714.             else {
  715.                 System.out.println("Invalid input, try again");
  716.             }
  717.         }while(!checkOut);
  718.         return 0;
  719.     }
  720.    
  721.     private int userStatus(){
  722.         loadOrder();
  723.         boolean order = false;
  724.         int total;
  725.         for (int i = 0; i < this.userOrder.size(); i++) {
  726.             if (this.userOrder.get(i).equals(account)){
  727.                 System.out.println();
  728.                 order = true;
  729.                 System.out.println("Order #" + i);
  730.                 if(((Top)top.get(i)).amount > 0){
  731.                     System.out.printf("%s %s %s (%s) @RM%d each x %d = RM%d\n", ((Top)top.get(i)).group, ((Top)top.get(i)).type, ((Top)top.get(i)).color, ((Top)top.get(i)).size, tempT.price, ((Top)top.get(i)).amount, (tempT.price * ((Top)top.get(i)).amount));
  732.                 }
  733.                 if(((Pant)pant.get(i)).amount > 0){
  734.                     System.out.printf("%s %s %s (%s) @RM%d each x %d = RM%d\n", ((Pant)pant.get(i)).group, ((Pant)pant.get(i)).type, ((Pant)pant.get(i)).color, ((Pant)pant.get(i)).size, tempP.price, ((Pant)pant.get(i)).amount, (tempP.price * ((Pant)pant.get(i)).amount));
  735.                 }
  736.                 if(((Dress)dress.get(i)).amount > 0){
  737.                     System.out.printf("%s %s %s (%s) @RM%d each x %d = RM%d\n", ((Dress)dress.get(i)).group, ((Dress)dress.get(i)).type, ((Dress)dress.get(i)).color, ((Dress)dress.get(i)).size, tempD.price, ((Dress)dress.get(i)).amount, (tempD.price * ((Dress)dress.get(i)).amount));
  738.                 }
  739.                 if(((Skirt)skirt.get(i)).amount > 0){
  740.                     System.out.printf("%s %s %s (%s) @RM%d each x %d = RM%d\n", ((Skirt)skirt.get(i)).group, ((Skirt)skirt.get(i)).type, ((Skirt)skirt.get(i)).color, ((Skirt)skirt.get(i)).size, tempS.price, ((Skirt)skirt.get(i)).amount, (tempS.price * ((Skirt)skirt.get(i)).amount));
  741.                 }
  742.                 total = (((Top)top.get(i)).amount * tempT.price) + (((Pant)pant.get(i)).amount * tempP.price) + (((Dress)dress.get(i)).amount * tempD.price) + (((Skirt)skirt.get(i)).amount * tempS.price);
  743.                 System.out.print("Discount: ");
  744.                 if (((Top)top.get(i)).amount + ((Pant)pant.get(i)).amount + ((Dress)dress.get(i)).amount + ((Skirt)skirt.get(i)).amount >= 10){
  745.                     System.out.println("10%");
  746.                     System.out.printf("Total = RM%.2f\n", total * 0.9);
  747.                 }
  748.                 else {
  749.                     System.out.println("0%");
  750.                     System.out.printf("Total = RM%d\n", total);
  751.                 }
  752.                 System.out.println("Order confirm: " + orderStatus.get(i));
  753.                 System.out.println("Shipping confirm: " + shipStatus.get(i));
  754.             }
  755.         }
  756.         if (!order){
  757.             System.out.println();
  758.             System.out.println("Empty, you did not order anything in the past");
  759.         }
  760.         System.out.println("\nPress Enter to continue");
  761.         input.nextLine();
  762.         return 5;
  763.     }
  764.    
  765.     private void loadDat(){
  766.         readWrite read = new readWrite();
  767.         read.openWrite("login.txt");
  768.         read.openRead("login.txt");
  769.         read.readDat();
  770.         username.clear();
  771.         password.clear();
  772.         for (int i = 0; i < read.user.size(); i++) {
  773.             this.username.add(read.user.get(i));
  774.             this.password.add(read.pass.get(i));
  775.         }
  776.         read.closeRead();
  777.     }
  778.    
  779.    
  780.     private void addDat(String user, String pass){
  781.         readWrite write = new readWrite();
  782.         write.openWrite("login.txt");
  783.         write.openRead("login.txt");
  784.         write.readDat();
  785.         write.closeRead();
  786.         write.user.add(user);
  787.         write.pass.add(pass);
  788.         write.openWrite("login.txt");
  789.         write.writeDat();
  790.         write.closeWrite();
  791.     }
  792.    
  793.     private void loadOrder(){
  794.         readWrite readOrder = new readWrite();
  795.         readOrder.openWrite("order.txt");
  796.         readOrder.openRead("order.txt");
  797.         readOrder.readOrder();
  798.         userOrder.clear();
  799.         orderStatus.clear();
  800.         shipStatus.clear();
  801.         top.clear();
  802.         pant.clear();
  803.         dress.clear();
  804.         skirt.clear();
  805.         getUpdate.clear();
  806.         for (int i = 0; i < readOrder.userOrder.size(); i++) {
  807.             this.userOrder.add(readOrder.userOrder.get(i));
  808.             this.orderStatus.add(readOrder.orderStatus.get(i));
  809.             this.shipStatus.add(readOrder.shipStatus.get(i));
  810.             this.top.add(readOrder.top.get(i));
  811.             this.pant.add(readOrder.pant.get(i));
  812.             this.dress.add(readOrder.dress.get(i));
  813.             this.skirt.add(readOrder.skirt.get(i));
  814.             this.getUpdate.add(readOrder.getUpdate.get(i));
  815.         }
  816.         readOrder.closeRead();
  817.     }
  818.    
  819.     private void addOrder(String user){
  820.         readWrite write = new readWrite();
  821.         write.openWrite("order.txt");
  822.         write.openRead("order.txt");
  823.         write.readOrder();
  824.         write.closeRead();
  825.         write.userOrder.add(user);
  826.         write.orderStatus.add("Pending");
  827.         write.shipStatus.add("Pending");
  828.         write.top.add(tempT);
  829.         write.pant.add(tempP);
  830.         write.dress.add(tempD);
  831.         write.skirt.add(tempS);
  832.         write.getUpdate.add(0);
  833.         write.writeOrder();
  834.         write.closeWrite();
  835.     }
  836.    
  837.     private void setStatus(int orderNumber){
  838.         readWrite write = new readWrite();
  839.         write.openWrite("order.txt");
  840.         write.openRead("order.txt");
  841.         write.readOrder();
  842.         write.closeRead();
  843.         write.orderStatus.set(orderNumber, "Accepted");
  844.         write.shipStatus.set(orderNumber, "Accepted");
  845.         write.getUpdate.set(orderNumber, 1);
  846.         write.writeOrder();
  847.         write.closeWrite();
  848.     }
  849.    
  850.     private void setUpdate(int orderNumber){
  851.         readWrite write = new readWrite();
  852.         write.openWrite("order.txt");
  853.         write.openRead("order.txt");
  854.         write.readOrder();
  855.         write.closeRead();
  856.         write.getUpdate.set(orderNumber, 0);
  857.         write.writeOrder();
  858.         write.closeWrite();
  859.     }
  860.    
  861.     private boolean backtrack(String back){
  862.         if (back.equals("-1")){
  863.             return true;
  864.         }
  865.         else {
  866.             return false;
  867.         }
  868.     }
  869.    
  870.     private boolean backtrack(int back){
  871.         if (back == -1){
  872.             return true;
  873.         }
  874.         else {
  875.             return false;
  876.         }
  877.     }
  878.    
  879.     private String gGet(int x){
  880.         if (x == 1 || x == 2){
  881.             return "Men";
  882.         }
  883.         else if (x == 3 || x == 4){
  884.             return "Women";
  885.         }
  886.         else {
  887.             return "Invalid";
  888.         }
  889.     }
  890.    
  891.     private String tGet(int x){
  892.         if (x == 1){
  893.             return "Top";
  894.         }
  895.         else if (x == 2){
  896.             return "Pant";
  897.         }
  898.         else if (x == 3){
  899.             return "Dress";
  900.         }
  901.         else if (x == 4){
  902.             return "Skirt";
  903.         }
  904.         else {
  905.             return "Invalid";
  906.         }
  907.     }
  908.    
  909.     private String cGet(int x){
  910.         if (x == 1){
  911.             return "White";
  912.         }
  913.         else if (x == 2){
  914.             return "Black";
  915.         }
  916.         else if (x == 3){
  917.             return "Red";
  918.         }
  919.         else if (x == 4){
  920.             return "Green";
  921.         }
  922.         else if (x == 5){
  923.             return "Blue";
  924.         }
  925.         else {
  926.             return "Invalid";
  927.         }
  928.     }
  929.    
  930.     private String sGet(int x){
  931.         if (x == 1){
  932.             return "S";
  933.         }
  934.         else if (x == 2){
  935.             return "M";
  936.         }
  937.         else if (x == 3){
  938.             return "L";
  939.         }
  940.         else {
  941.             return "Invalid";
  942.         }
  943.     }
  944.    
  945.     private void addCart(String t, String c, String s, int amount){
  946.         if (t.equals("Top")){
  947.             tempT.amount = amount;
  948.             tempT.color = c;
  949.             tempT.size = s;
  950.             tempT.group = "Men";
  951.         }
  952.         else if (t.equals("Pant")){
  953.             tempP.amount = amount;
  954.             tempP.color = c;
  955.             tempP.size = s;
  956.             tempP.group = "Men";
  957.         }
  958.         else if (t.equals("Dress")){
  959.             tempD.amount = amount;
  960.             tempD.color = c;
  961.             tempD.size = s;
  962.             tempD.group = "Women";
  963.         }
  964.         else if (t.equals("Skirt")){
  965.             tempS.amount = amount;
  966.             tempS.color = c;
  967.             tempS.size = s;
  968.             tempS.group = "Women";
  969.         }
  970.     }
  971. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement