G2A Many GEOs
SHARE
TWEET

Untitled

MagancapMaga Apr 10th, 2020 134 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. }
RAW Paste Data
Ledger Nano X - The secure hardware wallet
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top