diff --git a/index.html b/index.html new file mode 100644 index 0000000..0db2c74 --- /dev/null +++ b/index.html @@ -0,0 +1,106 @@ + + + + + + + Fracionador de Frete + + + + + +
+

Fracionador de Frete

+
+ Pacote +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+ Item 1 +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+ Item 2 +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+ + +
+
+ + + + + \ No newline at end of file diff --git a/script.js b/script.js new file mode 100644 index 0000000..cebe114 --- /dev/null +++ b/script.js @@ -0,0 +1,85 @@ +let itemCounter = 2; + +function adicionarNovoItem() { + itemCounter++; + const novoItemHTML = ` +
+ Item ${itemCounter} +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+`; + const divNovoItem = document.createElement('div'); + divNovoItem.innerHTML = novoItemHTML; + const formGroup = document.querySelector('.form-group'); + formGroup.parentNode.insertBefore(divNovoItem, formGroup); +} + +function calcular() { + var alturaPacote = parseFloat(document.getElementById('altura').value); + var larguraPacote = parseFloat(document.getElementById('largura').value); + var comprimentoPacote = parseFloat(document.getElementById('comprimento').value); + var pesoPacote = parseFloat(document.getElementById('peso').value); + var valorPacote = parseFloat(document.getElementById('valor_pacote').value); + + var volumePacote = alturaPacote * larguraPacote * comprimentoPacote; + + var volumeItens = 0; + var pesoItens = 0; + for (var i = 1; i <= itemCounter; i++) { + var alturaItem = parseFloat(document.getElementById('altura_item' + i).value); + var larguraItem = parseFloat(document.getElementById('largura_item' + i).value); + var comprimentoItem = parseFloat(document.getElementById('comprimento_item' + i).value); + var pesoItem = parseFloat(document.getElementById('peso_item' + i).value); + volumeItens += alturaItem * larguraItem * comprimentoItem; + pesoItens += pesoItem; + } + + if (volumeItens > volumePacote) { + alert("Revise as medidas dos itens"); + return; + } + + if (pesoItens > pesoPacote) { + alert("Revise o peso dos itens"); + return; + } + + for (var i = 1; i <= itemCounter; i++) { + var alturaItem = parseFloat(document.getElementById('altura_item' + i).value); + var larguraItem = parseFloat(document.getElementById('largura_item' + i).value); + var comprimentoItem = parseFloat(document.getElementById('comprimento_item' + i).value); + var pesoItem = parseFloat(document.getElementById('peso_item' + i).value); + + var volumeItem = alturaItem * larguraItem * comprimentoItem; + var proporcaoCubagemItem = volumeItem / volumeItens; + var proporcaoPesoItem = pesoItem / pesoItens; + + var freteItem = (proporcaoCubagemItem * volumePacote + proporcaoPesoItem * pesoPacote) / (volumePacote + pesoPacote) * valorPacote; + + document.getElementById('frete_item' + i).value = freteItem.toLocaleString('pt-BR', { + style: 'currency', + currency: 'BRL' + }); + } +}