package br.com.ec.controller.managedbean;
import java.io.Serializable;
import javax.inject.Inject;
import javax.inject.Named;
import org.springframework.context.annotation.Scope;
import br.com.ec.controller.managedbean.consultademanda.PedidoConsultaPorDemanda;
import br.com.ec.core.generic.GenericService;
import br.com.ec.core.util.DataUtils;
import br.com.ec.domain.dto.ParametrosConsultaPedidoDTO;
import br.com.ec.domain.model.Pedido;
import br.com.ec.domain.service.pedido.PedidoService;
import br.com.ec.web.exception.VerificadorLancamentoException;
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
import br.com.ec.web.generic.AbstractBean;
import br.com.ec.web.message.LancadorMensagem;
@Named
@Scope
("view")
public class FaltaBean
extends AbstractBean
<Pedido
> implements Serializable {
private static final long serialVersionUID = 1L
;
private PedidoConsultaPorDemanda lazy
;
private String senhaUsuario
;
private PedidoService pedidoService
;
@Inject
public FaltaBean
(PedidoConsultaPorDemanda lazy, PedidoService pedidoService
) {
this.
lazy = lazy
;
this.
pedidoService = pedidoService
;
}
@
Override
public void preCarregamento
() {
limparEntidade
();
prepararConsultaDemanda
();
}
@
Override
public void limparEntidade
() {
entidade =
new Pedido
();
// entidade.setEmpresa(new Empresa(ConstantesSEC.Empresa.CODIGO_EMPRESA_FARMACIA_3));
parametrosConsulta =
new ParametrosConsultaPedidoDTO
();
parametrosConsulta.
setEntidade(entidade
);
((ParametrosConsultaPedidoDTO
)parametrosConsulta
).
setAtendido(false);
setSenhaUsuario
("");
}
@
Override
public GenericService
<Pedido
> getService
() {
return pedidoService
;
}
@
Override
public Pedido getEntidade
() {
return entidade
;
}
@
Override
public Pedido getId
() {
return getEntidade
();
}
public PedidoConsultaPorDemanda getLazy
() {
return lazy
;
}
public void setLazy
(PedidoConsultaPorDemanda lazy
) {
this.
lazy = lazy
;
}
public void prepararConsultaDemanda
() {
lazy.
setarParametrosConsulta(getParametrosConsulta
());
}
public String getSenhaUsuario
() {
return senhaUsuario
;
}
public void setSenhaUsuario
(String senhaUsuario
) {
this.
senhaUsuario = senhaUsuario
;
}
/***************************************************************/
@
Override
public void cadastrar
() {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
pedidoService.
adicionarPedido(getEntidade
(), senhaUsuario
);
limparEntidade
();
LancadorMensagem.
lancarSucesso("PEDIDO ADICIONADO COM SUCESSO!");
}
});
}
public void atenderPedido
(final Pedido pedido
) {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
pedido.
setDataUltimaAlteracaoSituacao(DataUtils.
getDataAtual());
pedidoService.
alterar(pedido
);
LancadorMensagem.
lancarSucesso("PEDIDO ATENDIDO COM SUCESSO!");
}
});
}
public void excluirPedido
(final Pedido pedido
) {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
pedidoService.
excluir(pedido
);
LancadorMensagem.
lancarSucesso("PEDIDO EXCLUĂDO COM SUCESSO!");
}
});
}
}