Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const readline = require('readline-sync');
- const jsonfile = require('jsonfile');
- let produtos = []
- Menu()
- function Menu() {
- let escolha
- console.log("1 - Cadastrar Produto")
- console.log("2 - Deletar Produto ")
- console.log("3 - Editar Produto")
- console.log("4 - Ver todos os produtos")
- console.log("5 - Imprimir Lista de produtos")
- console.log('===============================================================')
- escolha = readline.question('Informe o numero do indice das opcoes do menu : ')
- switch (Number(escolha)) {
- case 1:
- inserirProduto()
- Menu()
- break;
- case 2:
- deletarProduto()
- Menu()
- break;
- case 3:
- editarProduto()
- break;
- case 4:
- listarProdutos()
- Menu()
- break;
- case 5:
- listaJSON()
- break;
- }
- }
- // 1- inserir produto
- function inserirProduto() {
- let resposta = 'ok'
- do {
- let produto = cadastrarProduto()
- if (produto == 'FIM') break;
- produtos.push(produto)
- } while (resposta != 'FIM')
- }
- function cadastrarProduto() {
- let nome, valor, empresa
- nome = nomeProduto()
- if (nome === 'FIM' || nome == false) return 'FIM'
- valor = valorProduto()
- if (valor === 'FIM') return 'FIM'
- empresa = empresaProduto()
- if (empresa === 'FIM') return 'FIM'
- return {
- nome: nome,
- preco: valor,
- empresa: empresa
- }
- }
- function nomeProduto() {
- try {
- let nomeProduto = readline.question('informe o nome do produto : ')
- produtos.forEach(function (produto) {
- if (produto.nome === nomeProduto) {
- throw 'esse produto ja existe'
- }
- })
- return nomeProduto
- }
- catch (erro) {
- console.log('Erro : ' + erro)
- return false
- }
- }
- function valorProduto() {
- let valor = readline.question('informe o valor do produto : ')
- if (valor === 'FIM') return valor
- let valorAprovado = Number(valor)
- return verificarNumero(valorAprovado)
- }
- function verificarNumero(valor) {
- try {
- if (isNaN(valor)) throw ' Nao eh um numero'
- return valor
- }
- catch (erro) {
- console.log('Erro :( ' + erro)
- valorProduto()
- }
- }
- function empresaProduto() {
- return readline.question('informe a empresa em que compra : ')
- }
- // 2- Deletar produto
- function deletarProduto(){
- try{
- console.log('* Para sair dessa opcao digite (FIM) ')
- console.log('Informe o nome do produto que deseja deletar excluir da lista : ')
- let produtoSelecionado = readline.question('nome : ')
- let existencia=false
- produtos.forEach(function(produto,indice,produtos){
- if(produto.nome === produtoSelecionado){
- produtos.splice(indice,1)
- existencia = true
- }
- })
- if(existencia!=true)throw' Esse produto nao existe'
- }
- catch(erro){
- console.log(' ERRO : '+erro)
- }
- }
- function verificarProduto(produtoSelecionado){
- produtos.forEach(function(produto,indice){
- if(produto.nome === produtoSelecionado)return false
- })
- return true
- }
- // 3. Editar Produto
- function alterarProduto(objSelecionado){
- console.log('Digite (FIM) para sair dessa alteracão :')
- console.log('1 - Para alterar o nome')
- console.log('2 - Para alterar o preço')
- console.log('3 - Para alterar a empresa em que compra o produto')
- let escolha = readline.question()
- if (escolha !== 'FIM') {
- switch (Number(escolha)) {
- case 1:
- objSelecionado.nome= nomeProduto()
- return objSelecionado
- case 2:
- objSelecionado.preco= valorProduto()
- return objSelecionado
- case 3:
- objSelecionado.empresa= empresaProduto()
- return objSelecionado
- default:
- alterarProduto()
- }
- }
- }
- function editarProduto() {
- console.log('Digite (FIM) para sair dessa opcao')
- console.log('============================================================')
- let nomeProduto = readline.question('informe o nome do produto que quer editar : ')
- if(nomeProduto==='FIM') Menu()
- produtos.forEach(function (produto,indice) {
- if(produto.nome === nomeProduto) {
- let produtoAlterado=alterarProduto(produto)
- produtos[indice]= produtoAlterado;
- }
- })
- editarProduto()
- }
- // 4- ver todos os produtos
- function listarProdutos() {
- console.log('========================*LISTA*==============================')
- produtos.forEach(function(produto,indice){
- console.log(` ${indice+1}- nome : ${produto.nome} , ${produto.preco} , ${produto.empresa}`)
- console.log('---------------------------------------------------------------')
- })
- console.log('================================================================')
- }
- // 5- imprimir lista de produtos
- function listaJSON(){
- let lista=[]
- produtos.forEach(function(produto,indice){
- let linha =JSON.stringify(produto)
- lista[indice]={linha}
- })
- jsonfile.writeFile('lista.json',lista)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement