-
Notifications
You must be signed in to change notification settings - Fork 0
/
bamazoncustomer.js
118 lines (82 loc) · 3.61 KB
/
bamazoncustomer.js
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
var mysql = require('mysql');
var inquirer = require('inquirer');
var colors = require('colors');
//creates a connection to sql
var connection = mysql.createConnection({
host: "localhost",
port: 3306,
user: "root", //Your username
password: "Ridhaan123@", //Your password
database: "Bamazon"
});
connection.connect(function(err) {
if (err) throw err;
console.log("connected as id " + connection.threadId);
});
connection.query("SELECT * FROM products", function(err, res) {
console.log('======================Welcome to BAMAZON============================='.red)
console.log("");
console.log("");
for (var i = 0; i < res.length; i++) {
console.log("ID: " + res[i].ItemID + " | " + "Product: " + res[i].ProductName + " | " + "Department: " + res[i].DepartmentName + " | " + "Price: " + res[i].Price + " | " + "QTY: " + res[i].StockQuantity);
console.log('--------------------------------------------------------------------------------------------------')
}
console.log("");
start();
});
var start = function() {
inquirer.prompt([{
name: "id",
type: "input",
message: "Which ID of the product would you like to buy?".green,
validate: function(value) {
if (isNaN(value) === false && value <= 10) {
return true;
} else {
return false;
}
}
}, {
name: "quantity",
type: "input",
message: "How much would you like to purchase?".blue,
validate: function(value) {
if (isNaN(value)) {
return false;
} else {
return true;
}
}
}
]).then(function(answer) {
var query = "SELECT DepartmentName, StockQuantity, Price FROM products WHERE ?"
connection.query(query, { ItemID: answer.id }, function(err, res) {
if (res[0].StockQuantity >= answer.quantity) {
var dept = res[0].DepartmentName;
var adjustedQuantity = res[0].StockQuantity - answer.quantity;
var purchasePrice = (answer.quantity * res[0].Price).toFixed(2);
var query2 = " UPDATE products SET ? WHERE ?";
connection.query(query2, [{ StockQuantity: adjustedQuantity }, { ItemID: answer.id }],
function(err, res) {
if (err) throw err;
console.log("Success! Your total is $".red.bold + purchasePrice.red.bold + "\nYour item(s) will be shipped to you in 3-5 business days.".bold);
});
var query3 = "SELECT TotalSales FROM Departments WHERE ?"
connection.query(query3, { DepartmentName: dept }, function(err, data) {
if (err) throw err
var currentSales = data[0].TotalSales;
var adjustedSales = currentSales + parseFloat(purchasePrice);
var query4 = "UPDATE Departments SET ? WHERE ? "
connection.query(query4, [{ TotalSales: adjustedSales }, { DepartmentName: dept }], function(err, data) {
if (err) throw err
start();
})
})
} else {
console.log("Sorry, there are ".bold + res[0].StockQuantity + " units in stock for this product".bold);
console.log("\n-----------------------------------------\n");
start();
}
})
})
}