package gcom.gui.cadastro;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import gcom.cadastro.empresa.Empresa;
import gcom.cadastro.empresa.EmpresaCobrancaFaixa;
import gcom.cadastro.empresa.EmpresaContratoCobranca;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* Descri��o da classe
*
* @author Arthur Carvalho
* @date 17/04/2008
*/
public class InserirEmpresaAction extends GcomAction {
/**
* Este caso de uso permite a inclus�o de uma Empresa
*
* [UC0782] Inserir Empresa
*
*
* @author Arthur Carvalho
* @date 14/05/2008
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("telaSucesso");
InserirEmpresaActionForm inserirEmpresaActionForm = (InserirEmpresaActionForm) actionForm;
HttpSession sessao = httpServletRequest.getSession(false);
Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado");
Fachada fachada = Fachada.getInstancia();
String descricao = inserirEmpresaActionForm.getDescricao();
Empresa empresa = new Empresa();
// Nome
if (!"".equals(inserirEmpresaActionForm.getDescricao())) {
empresa.setDescricao(inserirEmpresaActionForm.getDescricao());
}
// Nome Abreviado
if (!"".equals(inserirEmpresaActionForm.getDescricaoAbreviada())) {
empresa.setDescricaoAbreviada(inserirEmpresaActionForm
.getDescricaoAbreviada());
}
// E-mail
if (!"".equals(inserirEmpresaActionForm.getEmail())) {
empresa.setEmail(inserirEmpresaActionForm.getEmail());
}
// Empresa Principal
if (inserirEmpresaActionForm.getIndicadorEmpresaPrincipal() != null
&& !"".equals(inserirEmpresaActionForm
.getIndicadorEmpresaPrincipal())) {
empresa.setIndicadorEmpresaPrincipal(inserirEmpresaActionForm
.getIndicadorEmpresaPrincipal());
}
// Indicador Empresa Contratada Cobranca
if (inserirEmpresaActionForm.getIndicadorEmpresaCobranca() != null
&& !"".equals(inserirEmpresaActionForm
.getIndicadorEmpresaCobranca())) {
empresa.setIndicadorEmpresaContratadaCobranca(new Integer(
inserirEmpresaActionForm.getIndicadorEmpresaCobranca())
.shortValue());
}
if ( inserirEmpresaActionForm.getIndicadorLeitura() != null
&& ! "".equals(inserirEmpresaActionForm.getIndicadorLeitura())){
empresa.setIndicadorLeitura( inserirEmpresaActionForm.getIndicadorLeitura() );
}
// Indicador de Uso
Short iu = ConstantesSistema.INDICADOR_USO_ATIVO;
empresa.setIndicadorUso(iu);
EmpresaContratoCobranca empresaCobranca = null;
// Verifica se a empresa de cobranca
if (inserirEmpresaActionForm.getIndicadorEmpresaCobranca() != null
&& inserirEmpresaActionForm.getIndicadorEmpresaCobranca()
.equals("" + ConstantesSistema.INDICADOR_USO_ATIVO)) {
empresaCobranca = new EmpresaContratoCobranca();
// validar Data Inicio Contrato de Cobran�a
if (inserirEmpresaActionForm.getDataInicioContratoCobranca() != null
&& !inserirEmpresaActionForm
.getDataInicioContratoCobranca().equals("")) {
Date data = Util
.converteStringParaDate(inserirEmpresaActionForm
.getDataInicioContratoCobranca());
empresaCobranca.setDataInicioContrato(data);
} else {
throw new ActionServletException("atencao.informe_campo", null,
" Data do In�cio do Contrato");
}
// Percentual de Cobranca
if (inserirEmpresaActionForm.getPercentualPagamento() != null
&& !inserirEmpresaActionForm.getPercentualPagamento()
.equals("")
&& (inserirEmpresaActionForm.getPercentualDaFaixaInformado() == null
|| !inserirEmpresaActionForm.getPercentualDaFaixaInformado().equalsIgnoreCase("sim"))) {
BigDecimal percentualPagamentoAtual = null;
String percentualPagamento = inserirEmpresaActionForm
.getPercentualPagamento().toString().replace(".", "");
percentualPagamento = percentualPagamento.replace(",", ".");
percentualPagamentoAtual = new BigDecimal(percentualPagamento);
empresaCobranca
.setPercentualContratoCobranca(percentualPagamentoAtual);
empresaCobranca
.setCodigoLayoutTxt(ConstantesSistema.SIM);
}
}
List<EmpresaCobrancaFaixa> colecaoEmpresaCobrancaFaixa = null;
if (sessao.getAttribute("colecaoEmpresaCobrancaFaixa") != null
&& !sessao.getAttribute("colecaoEmpresaCobrancaFaixa").equals("")){
colecaoEmpresaCobrancaFaixa = (List<EmpresaCobrancaFaixa>) sessao.getAttribute("colecaoEmpresaCobrancaFaixa");
empresaCobranca.setCodigoLayoutTxt(ConstantesSistema.NAO);
}
Integer idEmpresa = (Integer) fachada.inserirEmpresa(empresa,
empresaCobranca, usuarioLogado, colecaoEmpresaCobrancaFaixa);
montarPaginaSucesso(httpServletRequest, "Empresa " + descricao
+ " inserido com sucesso.", "Inserir outra Empresa",
"exibirInserirEmpresaAction.do?menu=sim",
"exibirAtualizarEmpresaAction.do?idRegistroAtualizacao="
+ idEmpresa, "Atualizar Empresa Inserida");
sessao.removeAttribute("InserirEmpresaActionForm");
return retorno;
}
}