Skip to content

Commit

Permalink
proporcao funcionando via servidor
Browse files Browse the repository at this point in the history
  • Loading branch information
lucasgueiros committed Sep 15, 2020
1 parent 616ecff commit 60e3585
Show file tree
Hide file tree
Showing 7 changed files with 152 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

public interface MapperReceita {
public List<Receita> selectReceitas();
public Receita selectReceitaPorId(Integer id);
public List<ReceitaInsumo> selectReceitaInsumosPorReceitaId(Integer receita_id);
public List<String> selectReceitaEtapasPorReceitaId(Integer receita_id);
public List<String> selectReceitasNomes();
Expand Down
36 changes: 31 additions & 5 deletions src/main/java/br/com/pastaeriso/receitas/Receita.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

import java.time.LocalDate;
import br.com.pastaeriso.insumos.Insumo;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import br.com.pastaeriso.insumos.unidades.Unidade;
import java.math.BigDecimal;

public class Receita {

Expand All @@ -15,24 +16,48 @@ public class Receita {
private Integer tempoTotal;
private Integer tempoGas;
private Insumo gas;
private Integer rendimento;
private BigDecimal rendimento;
private Unidade rendimentoUnidade;
private String comentarios;
private List<ReceitaInsumo> ingredientes;
private List<String> etapas;
private boolean proporcioanada;

public Receita(Receita original, BigDecimal rendimento) {
super();
this.id = original.id;
this.nome = original.nome;
this.data = original.data;
this.tempoAtivo = original.tempoAtivo;
this.tempoTotal = original.tempoTotal;
this.tempoGas = original.tempoGas;
this.gas = original.gas;
this.rendimento = rendimento;
this.rendimentoUnidade = original.rendimentoUnidade;
this.comentarios = original.comentarios;

BigDecimal proporcao = rendimento.divide(original.rendimento);
this.ingredientes = new LinkedList<>();
original.ingredientes.forEach(receitaInsumoOriginal -> this.ingredientes.add(new ReceitaInsumo(receitaInsumoOriginal,proporcao)));
this.etapas = new LinkedList<>();
this.etapas.addAll(original.etapas);
this.proporcioanada = true;
}

// GENRETED CODE

/**
* Default empty Receita constructor
*/
public Receita() {
super();
this.proporcioanada = false;
}

/**
* Default Receita constructor
*/
public Receita(Integer id, String nome, LocalDate data, Integer tempoAtivo, Integer tempoTotal, Integer tempoGas, Insumo gas, Integer rendimento, Unidade rendimentoUnidade, String comentarios, List<ReceitaInsumo> ingredientes, List<String> etapas) {
public Receita(Integer id, String nome, LocalDate data, Integer tempoAtivo, Integer tempoTotal, Integer tempoGas, Insumo gas, BigDecimal rendimento, Unidade rendimentoUnidade, String comentarios, List<ReceitaInsumo> ingredientes, List<String> etapas) {
super();
this.id = id;
this.nome = nome;
Expand All @@ -46,6 +71,7 @@ public Receita(Integer id, String nome, LocalDate data, Integer tempoAtivo, Inte
this.comentarios = comentarios;
this.ingredientes = ingredientes;
this.etapas = etapas;
this.proporcioanada = false;
}

/**
Expand Down Expand Up @@ -164,15 +190,15 @@ public void setGas(Insumo gas) {
* Returns value of rendimento
* @return
*/
public Integer getRendimento() {
public BigDecimal getRendimento() {
return rendimento;
}

/**
* Sets new value of rendimento
* @param
*/
public void setRendimento(Integer rendimento) {
public void setRendimento(BigDecimal rendimento) {
this.rendimento = rendimento;
}

Expand Down
36 changes: 24 additions & 12 deletions src/main/java/br/com/pastaeriso/receitas/ReceitaInsumo.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,36 @@ public class ReceitaInsumo {
public Insumo insumo;
public Unidade unidade;
public String comentarios;
public boolean proporcionado;

public ReceitaInsumo (ReceitaInsumo original, BigDecimal proporcao) {
super();
this.id = original.id;
this.quantidade = original.quantidade.multiply(proporcao);
this.insumo = original.insumo;
this.unidade = original.unidade;
this.comentarios = original.comentarios;
this.proporcionado = true;
}

/**
* Returns value of comentarios
* @return
*/
public String getComentarios() {
if(this.comentarios == null)
return "";
return comentarios;
}



// GENRETED CODE

/**
* Default empty ReceitaInsumo constructor
*/
public ReceitaInsumo() {
super();
this.proporcionado = false;
}

/**
Expand All @@ -31,6 +52,7 @@ public ReceitaInsumo(Integer id, BigDecimal quantidade, Insumo insumo, Unidade u
this.insumo = insumo;
this.unidade = unidade;
this.comentarios = comentarios;
this.proporcionado = false;
}

/**
Expand Down Expand Up @@ -97,16 +119,6 @@ public void setUnidade(Unidade unidade) {
this.unidade = unidade;
}

/**
* Returns value of comentarios
* @return
*/
public String getComentarios() {
if(this.comentarios == null)
return "";
return comentarios;
}

/**
* Sets new value of comentarios
* @param
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package br.com.pastaeriso.receitas;

import java.util.List;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.RequestDispatcher;
import org.apache.ibatis.session.SqlSession;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import br.com.pastaeriso.servicos.DatabaseConnection;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.io.PrintWriter;

import java.math.BigDecimal;

@WebServlet("/calcularReceita")
public class ServletCalcularReceita extends HttpServlet {

final static Logger logger = LogManager.getLogger(ServletPrepareReceitas.class);

protected void service (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Receita receita = null;
Integer id = -1;
BigDecimal rendimento = new BigDecimal(0);

try {
id = Integer.parseInt(request.getParameter("id"));
rendimento = new BigDecimal(request.getParameter("rendimento"));
} catch(NullPointerException e) {
id = new Integer(1);
rendimento = new BigDecimal(1);
}

try (SqlSession sqlSession = DatabaseConnection.getInstance().getSqlSessionFactory().openSession()) {
MapperReceita mapperReceita = sqlSession.getMapper(MapperReceita.class);
receita = mapperReceita.selectReceitaPorId(id);
}
if(receita != null ) {
receita = new Receita(receita,rendimento);
Gson gson = new GsonBuilder()
.serializeNulls()
.create();
String string = gson.toJson(receita);
response.setContentType("application/json;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print(string);
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<result property="tempoAtivo" column="tempoAtivo" javaType="Integer"/>
<result property="tempoTotal" column="tempoTotal" javaType="Integer"/>
<result property="tempoGas" column="tempo_gas" javaType="Integer"/>
<result property="rendimento" column="rendimento" javaType="Integer"/>
<result property="rendimento" column="rendimento" javaType="BigDecimal"/>
<result property="comentarios" column="comentarios" javaType="String"/>
<association property="gas" column="gas_insumo" javaType="Insumo"
select="br.com.pastaeriso.insumos.MapperInsumo.selectInsumoById"/>
Expand All @@ -32,6 +32,10 @@
select="br.com.pastaeriso.insumos.unidades.MapperUnidade.selectUnidadeById"/>
</resultMap>

<select id="selectReceitaPorId" resultMap="ReceitaMap">
select id,nome,data,tempoTotal,tempoAtivo,tempo_gas,gas_insumo,rendimento,rendimento_uni,comentarios from receitas where id=#{id}
</select>

<select id="selectReceitas" resultMap="ReceitaMap">
select id,nome,data,tempoTotal,tempoAtivo,tempo_gas,gas_insumo,rendimento,rendimento_uni,comentarios from receitas
</select>
Expand Down
28 changes: 18 additions & 10 deletions src/main/webapp/Receitas.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -70,24 +70,32 @@
class="form-control form-control-plaintext" readonly>
</div>
<div class="form-group col-md-6">
<label for="comentarios">Comentarios</label>
<input id="comentarios"
type="text"
class="form-control form-control-plaintext" readonly>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="rendimento">Rendimento</label>
<input id="rendimento"
type="number"
class="form-control form-control-plaintext" readonly>
</div>
<div class="form-group col-md-6">
<label for="rendimentoUnidade">Rendimento Unidade</label>
<input id="rendimentoUnidade"
type="text"
class="form-control form-control-plaintext" readonly>
class="form-control">
</div>
<div class="form-group col-md-6">
<label for="comentarios">Comentarios</label>
<input id="comentarios"
<label for="calcularReceitaButton">Rendimento Unidade</label>
<input id="calcularReceitaButton"
type="text"
class="form-control form-control-plaintext" readonly>
<button id="buttonProporcionarReceita"
onclick="calcularProporcao()"
type="button"
class="btn btn-sm btn-outline-secondary">
Calcular
</button>
</div>
</div>
</div>
<table class="table table-responsive-lg">
<thead>
<tr>
Expand Down
14 changes: 14 additions & 0 deletions src/main/webapp/receitas/receitas.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
function selectReceitaPorNome () {
var receita = JSON.parse(localStorage.getItem($("#nome").val()));
mostrarReceita (receita);
}

function mostrarReceita (receita) {
$("#codigo").val(receita.id);
$("#tempoAtivo").val(receita.tempoAtivo);
$("#tempoTotal").val(receita.tempoTotal);
Expand Down Expand Up @@ -74,6 +78,16 @@ function selectReceitaPorNome () {
$("#etapas").html(string);
}

function calcularProporcao() {
$.ajax({
url: "/calcularReceita?id=" + $("#codigo").val() + "&rendimento=" + $("#rendimento").val(),
type: "post",
success: function(receita) {
mostrarReceita(receita);
}
});
}

$(document).ready(function () {
$.ajax({
url: "/selectReceitas",
Expand Down

0 comments on commit 60e3585

Please sign in to comment.