-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbamazonCustomer.js
More file actions
147 lines (112 loc) · 3.38 KB
/
bamazonCustomer.js
File metadata and controls
147 lines (112 loc) · 3.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
var mysql = require("mysql");
var inquirer = require("inquirer");
const {table} = require("table");
var available = 0;
var price = 0;
var totalCost = 0;
var selection = 0;
var desired = 0;
var data = [["Product ID", "Product Name", "Price"]];
var output;
var connection = mysql.createConnection({
host: "localhost",
port: 3306,
user: 'root',
password: '',
database: 'bamazon'
});
connection.connect(function(err) {
if(err) throw err;
});
function mainMenu(){
console.log("");
console.log("");
inquirer.prompt([
{
type: "input",
name: "selection",
message: "Enter the ID of the product you want to buy.",
},
{
type: "input",
name: "wants",
message: "Enter the quantity you want to purchase.",
}
]).then(function(user) {
selection = user.selection;
desired = user.wants;
getAvailable(selection);
});
}
listItems();
// getAvailable(selection);
// purchaseItem(selection, desired);
function listItems(){
connection.query("SELECT * FROM products", function(err, res) {
for (var i=0; i<res.length; i++) {
printItems(res, i);
}
output = table(data);
console.log(output);
mainMenu();
});
}
function newTransaction(){
inquirer.prompt([
{
type: "list",
message: "Would you like to purchase another item?",
name: "newTxn",
choices: ["Yes", "No"]
}
]).then(function(resp){
switch(resp.newTxn){
case "Yes":
listItems();
break;
default:
break;
}
})
}
function getAvailable(id) {
connection.query("SELECT stock_quantity, price FROM products WHERE ?",
{id: selection}, function(err, res) {
available = res[0].stock_quantity;
price = res[0].price;
purchaseItem(selection, desired);
});
};
function purchaseItem(selection, desired){
if(desired>available) {
console.log("Sorry, we don't have enough of that item in stock to fulfill your order.");
newTransaction();
} else {
totalCost = parseFloat(desired * price).toFixed(2);
completePurchase(selection, desired);
}
};
function printItems(results, i){
var currentRow = [];
currentRow = [results[i].id, results[i].product_name, results[i].price];
data.push(currentRow);
// console.log("ID: " + results[i].id + " | " + results[i].product_name + " | Price: " + results[i].price);
};
function completePurchase(selection, desired){
var newQuantity = available-desired;
connection.query("UPDATE products SET ? WHERE ?", [{stock_quantity: newQuantity}, {id: selection}],
function(err){
if(err) throw err;
});
connection.query("UPDATE products SET product_sales = product_sales + " + totalCost + " WHERE ?", [{id: selection}],
function(err){
if(err) throw err;
});
connection.query(
"UPDATE departments JOIN products ON departments.department_name = products.department_name SET departments.total_sales = departments.total_sales + " + totalCost + "WHERE products.id = " + selection,
function(err){
if(err) throw err;
});
console.log("Thank you for your purchase. Your total cost today is $" + totalCost);
newTransaction();
};