Advertisement
MagancapMaga

Untitled

Apr 10th, 2020
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const readline = require('readline-sync');
  2. const jsonfile = require('jsonfile');
  3.  
  4.  
  5. let produtos = []
  6.  
  7.  
  8.  
  9. Menu()
  10.  
  11. function Menu() {
  12.     let escolha
  13.  
  14.     console.log("1 - Cadastrar Produto")
  15.     console.log("2 - Deletar Produto ")
  16.     console.log("3 - Editar Produto")
  17.     console.log("4 - Ver todos os produtos")
  18.     console.log("5 - Imprimir Lista de produtos")
  19.     console.log('===============================================================')
  20.     escolha = readline.question('Informe o numero do indice das opcoes do menu : ')
  21.  
  22.     switch (Number(escolha)) {
  23.         case 1:
  24.             inserirProduto()
  25.             Menu()
  26.             break;
  27.         case 2:
  28.             deletarProduto()
  29.             Menu()
  30.             break;
  31.         case 3:
  32.             editarProduto()
  33.             break;
  34.         case 4:
  35.             listarProdutos()
  36.             Menu()
  37.             break;
  38.         case 5:
  39.             listaJSON()
  40.             break;
  41.  
  42.     }
  43. }
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51. // 1- inserir produto
  52.  
  53. function inserirProduto() {
  54.  
  55.     let resposta = 'ok'
  56.  
  57.     do {
  58.        
  59.         let produto = cadastrarProduto()
  60.         if (produto == 'FIM') break;
  61.         produtos.push(produto)
  62.  
  63.     } while (resposta != 'FIM')
  64.  
  65.  
  66. }
  67.  
  68. function cadastrarProduto() {
  69.  
  70.     let nome, valor, empresa
  71.     nome = nomeProduto()
  72.     if (nome === 'FIM' || nome == false) return 'FIM'
  73.     valor = valorProduto()
  74.     if (valor === 'FIM') return 'FIM'
  75.     empresa = empresaProduto()
  76.     if (empresa === 'FIM') return 'FIM'
  77.  
  78.  
  79.     return {
  80.         nome: nome,
  81.         preco: valor,
  82.         empresa: empresa
  83.     }
  84. }
  85.  
  86.  
  87.  
  88. function nomeProduto() {
  89.     try {
  90.  
  91.         let nomeProduto = readline.question('informe o nome do produto : ')
  92.         produtos.forEach(function (produto) {
  93.  
  94.             if (produto.nome === nomeProduto) {
  95.                 throw 'esse produto ja existe'
  96.             }
  97.            
  98.         })
  99.         return nomeProduto
  100.     }
  101.     catch (erro) {
  102.         console.log('Erro : ' + erro)
  103.         return false
  104.     }
  105. }
  106.  
  107.  
  108.  
  109. function valorProduto() {
  110.     let valor = readline.question('informe o valor do produto : ')
  111.     if (valor === 'FIM') return valor
  112.     let valorAprovado = Number(valor)
  113.     return verificarNumero(valorAprovado)
  114.  
  115. }
  116.  
  117. function verificarNumero(valor) {
  118.  
  119.     try {
  120.         if (isNaN(valor)) throw ' Nao eh um numero'
  121.         return valor
  122.     }
  123.     catch (erro) {
  124.         console.log('Erro :( ' + erro)
  125.         valorProduto()
  126.     }
  127. }
  128.  
  129. function empresaProduto() {
  130.     return readline.question('informe a empresa em que compra : ')
  131. }
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139. // 2- Deletar produto
  140. function deletarProduto(){
  141.     try{
  142.     console.log('* Para sair dessa opcao digite (FIM) ')  
  143.     console.log('Informe o nome do produto que deseja deletar excluir da lista : ')
  144.     let produtoSelecionado = readline.question('nome : ')
  145.     let existencia=false
  146.     produtos.forEach(function(produto,indice,produtos){
  147.  
  148.         if(produto.nome === produtoSelecionado){
  149.             produtos.splice(indice,1)
  150.             existencia = true
  151.         }
  152.     })
  153.    
  154.     if(existencia!=true)throw' Esse produto nao existe'
  155.    
  156.     }
  157.     catch(erro){
  158.         console.log(' ERRO : '+erro)
  159.     }
  160. }
  161.  
  162. function verificarProduto(produtoSelecionado){
  163.     produtos.forEach(function(produto,indice){
  164.         if(produto.nome === produtoSelecionado)return false
  165.     })
  166.     return true
  167. }
  168.  
  169. // 3. Editar Produto
  170.  
  171.  
  172.  
  173.  
  174. function alterarProduto(objSelecionado){
  175.     console.log('Digite (FIM) para sair dessa alteracão :')
  176.     console.log('1 - Para alterar o nome')
  177.     console.log('2 - Para alterar o preço')
  178.     console.log('3 - Para alterar a empresa em que compra o produto')
  179.     let escolha = readline.question()
  180.     if (escolha !== 'FIM') {
  181.         switch (Number(escolha)) {
  182.  
  183.             case 1:
  184.                 objSelecionado.nome= nomeProduto()
  185.                 return objSelecionado      
  186.  
  187.             case 2:
  188.                 objSelecionado.preco= valorProduto()
  189.                 return objSelecionado    
  190.  
  191.             case 3:
  192.                 objSelecionado.empresa= empresaProduto()
  193.                 return objSelecionado    
  194.  
  195.             default:
  196.                 alterarProduto()
  197.         }
  198.     }
  199.    
  200. }
  201.  
  202. function editarProduto() {
  203.     console.log('Digite (FIM) para sair dessa opcao')
  204.     console.log('============================================================')
  205.  
  206.     let nomeProduto = readline.question('informe o nome do produto que quer editar : ')
  207.     if(nomeProduto==='FIM') Menu()
  208.  
  209.     produtos.forEach(function (produto,indice) {
  210.        
  211.         if(produto.nome === nomeProduto) {
  212.            
  213.             let produtoAlterado=alterarProduto(produto)
  214.            
  215.             produtos[indice]= produtoAlterado;
  216.            
  217.                     }
  218.         })
  219.     editarProduto()    
  220.  
  221. }
  222.  
  223. // 4- ver todos os produtos
  224. function listarProdutos() {
  225.     console.log('========================*LISTA*==============================')
  226.     produtos.forEach(function(produto,indice){
  227.         console.log(` ${indice+1}- nome : ${produto.nome} , ${produto.preco} , ${produto.empresa}`)
  228.         console.log('---------------------------------------------------------------')
  229.     })
  230.     console.log('================================================================')
  231. }
  232.  
  233. // 5- imprimir lista de produtos
  234.  
  235. function listaJSON(){
  236.     let lista=[]
  237.     produtos.forEach(function(produto,indice){
  238.         let linha =JSON.stringify(produto)
  239.         lista[indice]={linha}
  240.        
  241.     })
  242.     jsonfile.writeFile('lista.json',lista)
  243. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement