Distribuir valores inseridos em inputs dentro da tabela

2 respostas
java-se
C

Olá Pessoal, boa noite. estou criando um sistema para controle de estoque onde possuo uma tabela com registro com as informaçoes de todos os produtos inclusive a quantidade que entram no deposito, e outra tabela na mesma pagina para criar uma distribuição do produtos de acordo com a quantidade total armazenada. e se caso o valor da dristibuiçao ultrapasse da quantidade total do produto que o usuario receba uma mensagem de erro… talvez seja um calculo simples mais como ainda sou novo no mundo java acabo tendo dificuldade em conseguir uma solução pro problema então se alguém puder me socorrer ficarei muito agradecido.rsrs

seria tipo isso… ai os valores inserido no inputs eles teriam que ser somados e o valor da soma subitraido do total do produto selecionado e serem distribuidos nos campos da tabela Controle de Estoque

meu managerBean

package br.com.deposito.bean;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;

import javax.faces.bean.ManagedBean;

import javax.faces.bean.ViewScoped;

import javax.faces.event.ActionEvent;

import org.omnifaces.util.Messages;

import br.com.deposito.DAO.ControleEstoqueDAO;

import br.com.deposito.DAO.ProdutoDAO;

import br.com.deposito.domain.ControleEstoque;

import br.com.deposito.domain.Produto;

@ManagedBean
@ViewScoped
public class itemDepositoBean {

private Produto produto;

public Produto getProduto() {
	return produto;
}

public void setProduto(Produto produto) {
	this.produto = produto;
}

private ControleEstoque controleEstoque;

private List<Produto> produtos;

private List<ControleEstoque> controlesEstoque;

public List<ControleEstoque> getControlesEstoque() {
	return controlesEstoque;
}

public void setControlesEstoque(List<ControleEstoque> controlesEstoque) {
	this.controlesEstoque = controlesEstoque;
}

public List<Produto> getProdutos() {
	return produtos;
}

public void setProdutos(List<Produto> produtos) {
	this.produtos = produtos;
}

public ControleEstoque getControleEstoque() {
	return controleEstoque;
}

public void setControleEstoque(ControleEstoque controleEstoque) {
	this.controleEstoque = controleEstoque;
}

@PostConstruct
public void listar() {
	try {
		ProdutoDAO produtoDAO = new ProdutoDAO();
		this.produtos = produtoDAO.listar();

		controlesEstoque = new ArrayList<>();
	} catch (RuntimeException erro) {
		Messages.addGlobalError("Ocorreu um erro ao tentar carregar Itens do deposito");
		erro.printStackTrace();
	}
}

public void novo() {
	try {
		controleEstoque = new ControleEstoque();
		ProdutoDAO produtoDAO = new ProdutoDAO();
		produtos = produtoDAO.listar();

		controlesEstoque = new ArrayList<>();
	} catch (RuntimeException erro) {
		Messages.addGlobalError("Ocorreu um erro ao tentar carregar a tela de controle de estoque");
		erro.printStackTrace();
	}
}

public void adicionar(ActionEvent evento) {
	Produto produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado");

	ControleEstoque controleEstoque = new ControleEstoque();
	controleEstoque.setEstadoItem(produto.getEstadoItem());
	controleEstoque.setProduto(produto);
	controlesEstoque.add(controleEstoque);

}

public void remover(ActionEvent evento) {
	ControleEstoque controleEstoque = (ControleEstoque) evento.getComponent().getAttributes().get("itemSelecionado");

	int achou = -1;
	for (int posicao = 0; posicao < controlesEstoque.size(); posicao++) {
		if (controlesEstoque.get(posicao).getProduto().equals(controleEstoque.getProduto())) {
			achou = posicao;
		}
	}

	if (achou > -1) {
		controlesEstoque.remove(achou);
	}
}

public void acaoProduto() {

	try {
		
		ControleEstoqueDAO controleEstoqueDAO = new ControleEstoqueDAO();
		
		produto.getQuantidade();
		
		controleEstoqueDAO.salvar(controleEstoque);
		controlesEstoque = controleEstoqueDAO.listar();
		
		Messages.addGlobalInfo("Funcionario salvo com sucesso");
	} catch (RuntimeException erro) {
		Messages.addGlobalError("Ocorreu um erro ao tentar salvar o funcionario");
		erro.printStackTrace();
	}
	
}

}

Pagina XHTML

<?xml version="1.0" encoding="UTF-8" ?>

<ui:composition xmlns=“http://www.w3.org/1999/xhtml
xmlns:h=“http://xmlns.jcp.org/jsf/html
xmlns:f=“http://xmlns.jcp.org/jsf/core
xmlns:p=“http://primefaces.org/ui
xmlns:ui=“http://xmlns.jcp.org/jsf/facelets
template="/templates/modelo.xhtml">

<ui:define name="conteudo">
	<h:form id="formListagem">
	<p:panel header="Itens do Deposito">
	<!-- rendered="#{itemDepositoBean.controlesEstoque.size() eq 0 }" -->
		<p:dataTable id="deposito" emptyMessage="Nenhum registro encontrado." 
			paginator="true" var="deposito"	rows="3" value="#{itemDepositoBean.produtos}" 
			paginatorPosition="top">

			<p:column headerText="codigo" sortBy="#{deposito.codigoIndetificao}">
				<h:outputText value="#{deposito.codigoIndetificao}" >
					
				</h:outputText>
			</p:column>

			<p:column headerText="Produto" filterBy="#{deposito.nome}"
				sortBy="#{deposito.nome}">
				<h:outputText value="#{deposito.nome}" />
			</p:column>

			<p:column headerText="Quantidade" sortBy="#{deposito.quantidade}">
				<h:outputText value="#{deposito.quantidade}" />
			</p:column>

			<p:column headerText="Data de Entrada"
				filterBy="#{deposito.dataEntrada}"
				sortBy="#{deposito.dataEntrada}">
				<h:outputText value="#{deposito.dataEntrada}" />
			</p:column>

			<p:column  headerText="Opções">
				<p:commandButton icon="ui-icon-plus" actionListener="#{itemDepositoBean.adicionar}"
				update=":formListagem:controleEstoque">
				<f:attribute name="produtoSelecionado" value="#{deposito}" />
				</p:commandButton>
			</p:column>
		</p:dataTable>
	</p:panel>
	
	<!--rendered="#{itemDepositoBean.controlesEstoque.size() >0}"  -->
	<p:panel id="painelControleEstoque" header="Controle de Estoque" >
	
	<p:dataTable id="controleEstoque" emptyMessage="Nenhum registro encontrado."
			paginator="true" value="#{itemDepositoBean.controlesEstoque}" var="deposito"
			rows="4" paginatorPosition="top" update=":formListagem">

			<p:column headerText="Nome">
				<h:outputText value="#{deposito.produto.nome}" />
			</p:column>

			<p:column headerText="Estado">
				<h:outputText value="#{deposito.produto.estadoItem}">
				</h:outputText>
			</p:column>

			<p:column headerText="Disponivel">
				<h:outputText value="#{deposito.produto.quantidade}" />
			</p:column>
			
			<p:column headerText="Doados">
					<h:outputText value="#{deposito.doado}" />
				</p:column>
			
			<p:column headerText="Destruídos">
				<h:outputText value="#{deposito.destruido}">
				</h:outputText>
			</p:column>
			
			<p:column headerText=" Incorporados">
				<h:outputText value="#{deposito.incorporado}">
				</h:outputText>
				</p:column>
				
				<p:column headerText=" Leiloados">
				<h:outputText value="#{ItemDeposito.leiloado}">
				</h:outputText>
			</p:column>
			
			<p:column  headerText="Opções">
				<p:commandButton icon="ui-icon-minus" actionListener="#{itemDepositoBean.remover}"
				update=":formListagem:controleEstoque">
				<f:attribute name="itemSelecionado" value="#{deposito}"/>
				</p:commandButton>
			</p:column>
		</p:dataTable>
	</p:panel>
			<p:panel header="Ações">
		<h:panelGrid id="painelAcoes" columns="3">
			<p:commandButton value="Ação"  
			update=":mensagem :formAcoes:Acoes"	oncomplete="PF('dialogo').show();"/>
		</h:panelGrid>
	</p:panel>
</h:form>

<p:dialog header="Escolher uma açao" widgetVar="dialogo"
	draggable="false" resizable="false" modal="false" closable="false">
	<h:form id="formAcoes">
		<h:panelGrid id="Acoes" columns="2">
			<p:outputLabel  for="produto" value="produto:" />
			<p:selectOneMenu id="produto" converter="omnifaces.SelectItemsConverter" filter="true"
				filterMatchMode="contains" required="true"
				requiredMessage="O campo Produto é obrigatório">
				<f:selectItem noSelectionOption="true"
					itemLabel="Selecione um produto" />
				<f:selectItems value="#{itemDepositoBean.produtos}" var="produto"
					itemValue="#{produto}" itemLabel="#{produto.nome} - #{produto.quantidade}" />
			</p:selectOneMenu>

			<p:outputLabel for="doacao" value="Doação:" />
				<p:inputText id="doacao" maxlength="20" size="15"
					value="#{controleEstoque.doado}"
					 />
					 <p:outputLabel for="destruidos" value="Destuidos:" />
				<p:inputText id="destruidos" maxlength="20" size="15"
					value="#{controleEstoque.destruido}"/>
			
			 <p:outputLabel for="incorporados" value="Incorporados:" />
				<p:inputText id="incorporados" maxlength="20" size="15"
					value="#{controleEstoque.incorporado}"/>
					
					 <p:outputLabel for="leiloados" value="Leiloados:" />
				<p:inputText id="leiloados" maxlength="20" size="15"
					value="#{controleEstoque.leiloado}"/>
		</h:panelGrid>

		<h:panelGrid columns="2">
			<p:commandButton value="Salvar"  actionListener="#{itemDepositoBean.acaoProduto}"
				update=" :formListagem:deposito :formListagem:controleEstoque :formListagem:painelAcoes"
			 oncomplete="PF('dialogo').hide();" />
			<p:commandButton value="Fechar" oncomplete="PF('dialogo').hide();" />
		</h:panelGrid>
	</h:form>
</p:dialog>

</ui:define>
</ui:composition>

2 Respostas

jonathan.sky

Mas qual seria o problema?

C

olá jonathan,boa noite primeiramente obrigado por responder…
Então… o problema e que estou com dificuldade em encontrar uma solução para poder distribuir os valores de uma quatidade total de produtos em 4 campos da minha tabela, onde o usuario atravez de um formulario poderá escolher um produto olhar a quantidade total dentro do estoque e inserir quantos produtos ele quer em cada atividade de dentro da empresa, por exemplo tenho 200 pacotes de arroz, e quero doar 50, vender 20, destruir 10 etc… e que mostre o quanto sobrou do total, e se caso esse valor ultrapasse o total que o sistema informe uma mensagem de erro. entendeu?

Criado 1 de junho de 2017
Ultima resposta 1 de jun. de 2017
Respostas 2
Participantes 2