Stiven Trujillo@strujillodev
products.js
/**
* Lista de productos para el menu del restaurante
*/
const products = [
{
name: 'Hamburguesa simple',
price: 8000,
code: 'H100'
},
{
name: 'Hamburguesa especial',
price: 12000,
code: 'H200'
},
{
name: 'Papas fritas',
price: 3000,
code: 'P100'
},
{
name: 'Coca-Cola',
price: 3000,
code: 'C100'
}
];
scripts.js
// 1. mostrar el menú disponible ✔
// 2. permitir que el usuario pida elementos del menú ✔
// 3. mostrar el costo total que el usuario debe pagar ✔
// 4. cobrar al usuario ✔
// 5. reportar el monto total de ventas realizadas. ✔
// Client
const user = {
name: 'Stiven',
order: [],
totalPay: 0
};
// Restaurant, store sales made.
const restaurant = {
salesMade: 0
}
// Show products list in a nice way
const showMenu = () => {
let menu = 'CODE - PRODUCT NAME - PRICE';
for ( let product of products) {
let {code, name, price} = product;
menu += `\n${code} - ${name} - ${price}`;
}
return menu;
};
// Add a product to client order
const makeOrder = ( productCode ) => {
const found = products.find( product => product.code === productCode );
if ( !found ) return 'Product does not exist.'
user.order.push( found );
user.totalPay += found.price;
return user.order;
};
// Show client's total to pay
const showTotalPay = () => `Total to pay: ${user.totalPay}`;
const payOrder = ( payment ) => {
const pay = () => {
restaurant.salesMade += user.totalPay;
user.order = [];
user.totalPay = 0;
};
if ( payment < user.totalPay ) {
return `insufficient, ${user.totalPay - payment} dollars missing`
} else if ( payment === user.totalPay ) {
pay();
return 'Paid order'
} else {
const rtrn = payment - user.totalPay;
pay();
return `Paid order, your return is ${rtrn}`;
}
};

