package org.appfuse.web; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.appfuse.model.LamTmpUsuariosOid; import org.appfuse.model.LamUsuarios; import org.appfuse.service.CliTarjetasManager; import org.appfuse.service.LamTmpUsuariosOidManager; import org.appfuse.service.LamUsuariosManager; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.beans.propertyeditors.CustomNumberEditor; import org.springframework.beans.propertyeditors.CustomBooleanEditor; import org.springframework.stereotype.Controller; import org.springframework.validation.BindException; import org.springframework.validation.Validator; import org.springframework.web.bind.ServletRequestDataBinder; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.SimpleFormController; import org.appfuse.service.MailEngine; import ar.com.aa2000.webadmin.utils.DateUtils; import ar.com.aa2000.webadmin.utils.GeneratorUsuarios; import javax.servlet.http.HttpServlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.text.SimpleDateFormat; import java.util.Date; import java.io.IOException; import java.io.PrintWriter; import java.io.File; @Controller @RequestMapping("/signupform.*") public class LamTmpUsuariosOidSignupFormController extends SimpleFormController { private final Log log = LogFactory.getLog(LamTmpUsuariosOidFormController.class); @Autowired LamTmpUsuariosOidManager usuariosManager; @Autowired LamUsuariosManager lamUsuManager; @Autowired CliTarjetasManager cliTarjetasManager; @Autowired(required = false) @Qualifier("beanValidator") Validator validator; protected MailEngine mailEngine = new MailEngine(); public LamTmpUsuariosOidSignupFormController() { setCommandName("lamTmpUsuariosOid"); setCommandClass(LamTmpUsuariosOid.class); setFormView("signupForm"); //setSuccessView("redirect:../tca-main/login.jsp"); setSuccessView("redirect:signupexito.jsp"); if (validator != null) setValidator(validator); } public ModelAndView processFormSubmission(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws Exception { //captchaValidate(request); LamTmpUsuariosOid lamTmp =(LamTmpUsuariosOid) command; log.info("processFormSubmission Local"); log.info("lamtmp id "+request.getParameter("id")); if (request.getParameter("cancel") != null || request.getParameter("id") == null) { log.info("Cancelar "); return new ModelAndView(getSuccessView()); } //Setear valores por Defecto. command = lamTmp; return super.processFormSubmission(request, response, command, errors); } protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) { log.info("Entrando Metodo 'initBinder'..."); // convert java.util.Date SimpleDateFormat dateFormat = new SimpleDateFormat(getText("date.format")); dateFormat.setLenient(false); binder.registerCustomEditor(Date.class, null, new CustomDateEditor(dateFormat, true)); // convert java.lang.Long binder.registerCustomEditor(Long.class, null, new CustomNumberEditor(Long.class, null, true)); // convert java.lang.Integer binder.registerCustomEditor(Integer.class, null, new CustomNumberEditor(Integer.class, null, true)); //Convert Boolean binder.registerCustomEditor(Boolean.class, null, new CustomBooleanEditor(true)); } @Override protected void onBindAndValidate(HttpServletRequest request, Object command, BindException errors) throws Exception { //LamTmpUsuariosOid user = (LamTmpUsuariosOid) command; log.info("Entrando Metodo 'onBindAndValidate'..."); } public ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws Exception { log.info("Entrando Metodo 'onSubmit'..."); LamTmpUsuariosOid user = (LamTmpUsuariosOid) command; LamUsuarios lamUser = new LamUsuarios(); if (request.getParameter("delete") != null) { } else { log.info("Agregando"); log.info("Nombre Completo :" + user.getNombre()); if ((request.getParameter("id") != null) && !request.getParameter("id").equals("")) { log.info("ID: " + request.getParameter("id")); log.info("Registro NO SE DEBE ACTUALIZAR"); } else { log.info("Fecha :" + DateUtils.fecha().toString()); // Inicializar Valores x Default String usuAux = GeneratorUsuarios.generateUserName(lamUsuManager, user.getEmail(), user.getNombre(), user.getApellido()); log.info("Usuario :" + usuAux); String strTipoDoc = "81"; String strCadena = user.getTipoDocumento(); if (strCadena.equals("DNI")) strTipoDoc = "96"; if (strCadena.equals("CED")) strTipoDoc = "0"; if (strCadena.equals("PAS")) strTipoDoc = "94"; if (strCadena.equals("CUIL")) strTipoDoc = "81"; if (strCadena.equals("LC")) strTipoDoc = "90"; if (strCadena.equals("LE")) strTipoDoc = "89"; if (strCadena.equals("CUIT")) strTipoDoc = "80"; // Poner Nombres y Apellidos en Mayusculas. user.setNombre(user.getNombre().toUpperCase()); user.setApellido(user.getApellido().toUpperCase()); user.setUserName(usuAux); user.setCusuario(""); user.setUsuarioAdministrador(""); user.setPendienteMigracion(0); user.setPendienteAprobacion(0); user.setTipoDocumento(strTipoDoc); user.setFmodif(DateUtils.fecha()); user.setAprobado(0); usuariosManager.saveLamTmpUsuario(user); log.info("Enviando Mail a: " + user.getEmail()); // el usuario queda pendiente de aprobar por el CAC log.info("el usuario queda pendiente de aprobar por el CAC"); mailEngine.templateName = "signup-ag.vm"; mailEngine.sendConfirmationEmail(user, getText("signup.mail.subject"), getText("signup.from"), getText("signup.email.message")); log.info("Mail Enviado!"); } } return new ModelAndView(getSuccessView()); } public void setMailEngine(MailEngine mailEngine) { this.mailEngine = mailEngine; } protected Object formBackingObject(HttpServletRequest request) throws ServletException { if ((request.getParameter("id") != null) && !request.getParameter("id").equals("")) { Long usuarioId = Long.parseLong(request.getParameter("id")); return usuariosManager.getLamTmpUsuario(usuarioId); } else { return new LamTmpUsuariosOid(); } } public String getText(String msgKey) { return getMessageSourceAccessor().getMessage(msgKey); } public String getText(String msgKey, String arg) { return getText(msgKey, new Object[] { arg }); } public String getText(String msgKey, Object[] args) { return getMessageSourceAccessor().getMessage(msgKey, args); } }