package gcom.gui.faturamento;
import gcom.faturamento.FaturamentoAtividade;
import gcom.faturamento.FaturamentoAtividadeCronograma;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
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;
public class AtualizarComandoAtividadeFaturamentoDadosAction extends GcomAction {
/**
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
//Seta o mapeamento de retorno
ActionForward retorno = actionMapping.findForward("");
//Carrega a instancia da fachada
// Fachada fachada = Fachada.getInstancia();
//Carrega o objeto sessao
HttpSession sessao = httpServletRequest.getSession(false);
//Inst�ncia do formul�rio que est� sendo utilizado
InserirComandoAtividadeFaturamentoActionForm inserirComandoAtividadeFaturamentoActionForm = (InserirComandoAtividadeFaturamentoActionForm) actionForm;
FaturamentoAtividadeCronograma faturamentoAtividadeCronograma = (FaturamentoAtividadeCronograma) sessao
.getAttribute("faturamentoAtividadeCronograma");
// Para auxiliar na formata��o de uma data
SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy");
// Data corrente para compara��o
// =============================
String dataCorrente = null;
Date dataCorrenteGrupo = null;
if (faturamentoAtividadeCronograma.getFaturamentoAtividade().getId()
.equals(FaturamentoAtividade.FATURAR_GRUPO)
&& sessao.getAttribute("dataCorrente") != null) {
dataCorrente = (String) sessao.getAttribute("dataCorrente");
if (dataCorrente != null && !dataCorrente.equalsIgnoreCase("")) {
try {
dataCorrenteGrupo = formatoData.parse(dataCorrente);
} catch (ParseException ex) {
dataCorrenteGrupo = null;
}
}
}
//Data de vecimento do grupo para compara��o
// =========================================
String dataVencimentoGrupoBase = null;
// Date dataVencimentoGrupoBaseObjeto = null;
if (faturamentoAtividadeCronograma.getFaturamentoAtividade().getId()
.equals(FaturamentoAtividade.FATURAR_GRUPO)
&& sessao.getAttribute("exibirCampoVencimentoGrupo") != null) {
dataVencimentoGrupoBase = (String) sessao.getAttribute("exibirCampoVencimentoGrupo");
if (dataVencimentoGrupoBase != null && !dataVencimentoGrupoBase.equalsIgnoreCase("")) {
/* try {
dataVencimentoGrupoBaseObjeto = formatoData.parse(dataVencimentoGrupoBase);
} catch (ParseException ex) {
dataVencimentoGrupoBaseObjeto = null;
}*/
}
}
// Data de vecimento do grupo informado pelo usu�rio (JSP)
// ========================================================
String dataVencimentoGrupoJSP = inserirComandoAtividadeFaturamentoActionForm
.getVencimentoGrupo();
Date dataVencimentoGrupo = null;
if (faturamentoAtividadeCronograma.getFaturamentoAtividade().getId()
.equals(FaturamentoAtividade.FATURAR_GRUPO)
&& sessao.getAttribute("dataCorrente") != null) {
if (dataVencimentoGrupoJSP != null
&& !dataVencimentoGrupoJSP.equalsIgnoreCase("")) {
try {
dataVencimentoGrupo = formatoData
.parse(dataVencimentoGrupoJSP);
String mesDataVencimentoGrupo = dataVencimentoGrupoJSP
.substring(3, 5);
String anoDataVencimentoGrupo = dataVencimentoGrupoJSP
.substring(6, 10);
String mesDataVencimentoGrupoBase = dataVencimentoGrupoBase.substring(3, 5);
String anoDataVencimentoGrupoBase = dataVencimentoGrupoBase.substring(6, 10);
if (dataCorrenteGrupo.after(dataVencimentoGrupo)) {
throw new ActionServletException(
"atencao.faturamento_data_vencimento_grupo_menor",
null, dataCorrente);
} else if ((!mesDataVencimentoGrupo
.equalsIgnoreCase(mesDataVencimentoGrupoBase))
|| (!anoDataVencimentoGrupo
.equalsIgnoreCase(anoDataVencimentoGrupoBase))) {
throw new ActionServletException(
"atencao.faturamento_data_vencimento_mes_ano_diferente");
}
} catch (ParseException ex) {
throw new ActionServletException(
"atencao.data.invalida");
}
}
}
return retorno;
}
}