package it.acxent.cc.servlet; import it.acxent.anag.Cliente; import it.acxent.anag.Clifor; import it.acxent.anag.DestinazioneDiversa; import it.acxent.anag.Nazione; import it.acxent.anag.NazioneCR; import it.acxent.anag.Users; import it.acxent.anag.UsersCR; import it.acxent.cc.Attivita; import it.acxent.contab.Documento; import it.acxent.db.ApplParmFull; import it.acxent.db.CRAdapter; import it.acxent.db.DBAdapter; import it.acxent.db.ResParm; import it.acxent.reg.EcDc; import it.acxent.util.CodiceFiscale; import it.acxent.util.Vectumerator; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class UsersSvlt extends it.acxent.www.servlet.UsersSvlt { private static final long serialVersionUID = 2411106203332570806L; protected void addRows(HttpServletRequest req, HttpServletResponse res) {} protected void fillComboAfterDetail(DBAdapter bean, HttpServletRequest req, HttpServletResponse res) { NazioneCR nCR = new NazioneCR(); nCR.setLang(getLang(req)); req.setAttribute("listaNazioni", new Nazione(getApFull(req)).findAllAttive(getLang(req))); if (req.getAttribute("msg").equals("Lettura effettuata")) req.setAttribute("msg", ""); } protected void fillComboAfterSearch(CRAdapter CR, HttpServletRequest req, HttpServletResponse res) {} protected DBAdapter getBean(HttpServletRequest req) { return new Users(getApFull(req)); } protected CRAdapter getBeanCR(HttpServletRequest req) { return new UsersCR(getApFull(req)); } protected void prepareNewRecord(HttpServletRequest req, HttpServletResponse res) { ApplParmFull apFull = getApFull(req); NazioneCR nCR = new NazioneCR(); nCR.setLang(getLang(req)); req.setAttribute("listaNazioni", new Nazione(apFull).findAllAttive(getLang(req))); sendMessage(req, ""); Users bean = new Users(apFull); bean.setFlgMl(1L); bean.setId_userProfile(bean.getIdUserProfileWww()); bean.setId_nazione("I"); bean.setCallingJsp(getRequestParameter(req, "callingJsp")); bean.setId_documento(getRequestLongParameter(req, "id_documento")); try { req.getSession().removeAttribute("utenteLogon"); req.getSession().removeAttribute("loginUser_id"); } catch (Exception e) {} req.setAttribute("bean", bean); } protected boolean isSecureServlet(HttpServletRequest req) { return false; } protected String getBeanPageName(HttpServletRequest req) { String temp = super.getBeanPageName(req); Users user = (Users)getLoginUser(req); ApplParmFull apFull = getApFull(req); if (user != null && user.getDBState() == 1 && user.isProfileNoReg()) temp = "usersNoReg"; return temp; } protected String getCmd(HttpServletRequest req) { if (super.getCmd(req).isEmpty()) return "ni"; return super.getCmd(req); } protected String newDispathcerAfterShowBean(DBAdapter beanA, HttpServletRequest req, HttpServletResponse res) { Users bean = (Users)beanA; bean.setCallingJsp(getRequestParameter(req, "callingJsp")); bean.setId_documento(getRequestLongParameter(req, "id_documento")); req.setAttribute("bean", bean); return ""; } private boolean mailConfermaCambiamentoDati(HttpServletRequest req, Users bean) { Attivita attivita = Attivita.getDefaultInstance(getApFull(req)); return attivita.sendUserDataMailMessageCC(bean, getLang(req), req).getStatus(); } protected String getRegistrazioneMailMessage() { return getParm("MAIL_REG").getTesto(); } protected void sqlActions(HttpServletRequest req, HttpServletResponse res) { ApplParmFull apFull = getApFull(req); String l_lang = getLang(req); Users bean = new Users(apFull); long l_id_users = getRequestLongParameter(req, "id_users"); if (l_id_users > 0L) bean.findByPrimaryKey(l_id_users); fillObject(req, bean); bean.setEMail(bean.getLogin()); req.setAttribute("eMail", bean.getLogin()); Cliente cli = new Cliente(getApFull(req)); if (bean.getId_users() > 0L) cli.findByPrimaryKey(bean.getId_clifor()); fillObject(req, cli); DestinazioneDiversa dd = new DestinazioneDiversa(getApFull(req)); fillObject(req, dd); cli.setCurrentDD(dd); bean.setClifor(cli); String msg = bean.translate("Impossibile Registrare un nuovo utente:", l_lang); boolean continuoRegistrazione = true; if (l_id_users == 0L || (l_id_users > 0L && bean.isProfileNoReg())) if (bean.isEmailDuplicated()) { Users userMl = new Users(getApFull(req)); userMl.findUsersByEmail(bean.getEMail()); if (userMl.getId_userProfile() == bean.getIdUserProfileMailingList()) { req.setAttribute("id_users", String.valueOf(userMl.getId_users())); req.setAttribute("flgValido", "S"); req.setAttribute("id_userProfile", Long.valueOf(bean.getIdUserProfileWww())); req.getSession().setAttribute("_sendUserMail", String.valueOf(userMl.getId_users())); saveUserAndClifor(req, res); } else if (userMl.getId_userProfile() == bean.getIdUserProfileNoReg()) { if (userMl.getClifor().getCodFisc().toLowerCase().equals(bean.getCodFisc().toLowerCase())) { req.setAttribute("id_users", String.valueOf(userMl.getId_users())); req.setAttribute("flgValido", "S"); req.setAttribute("id_userProfile", Long.valueOf(bean.getIdUserProfileWww())); req.getSession().setAttribute("_sendUserMail", String.valueOf(userMl.getId_users())); saveUserAndClifor(req, res); } else { msg = msg + " Email associata ad un codice fiscale diverso!"; forceMessage(req, msg); setJspPageRelative(getBeanPageName(req) + ".jsp", req); fillComboAfterDetail((DBAdapter)bean, req, res); req.setAttribute("beanUser", bean); callJsp(req, res); } } else { msg = msg + " " + msg; forceMessage(req, msg); setJspPageRelative(getBeanPageName(req) + ".jsp", req); fillComboAfterDetail((DBAdapter)bean, req, res); req.setAttribute("beanUser", bean); continuoRegistrazione = false; callJsp(req, res); } } else if (cli.isCodFiscDuplicated()) { msg = msg + " " + msg; forceMessage(req, msg); fillComboAfterDetail((DBAdapter)bean, req, res); setJspPageRelative(getBeanPageName(req) + ".jsp", req); cli.setCodFisc(""); bean.setCodFisc(""); bean.setClifor(cli); req.setAttribute("beanUser", bean); continuoRegistrazione = false; callJsp(req, res); } else if (cli.isPIvaDuplicated()) { msg = msg + " " + msg; forceMessage(req, msg); fillComboAfterDetail((DBAdapter)bean, req, res); setJspPageRelative(getBeanPageName(req) + ".jsp", req); bean.setPIva(""); cli.setPIva(""); bean.setPIva(""); bean.setClifor(cli); req.setAttribute("beanUser", bean); continuoRegistrazione = false; callJsp(req, res); } else if (!cli.getCodFisc().isEmpty() && cli.getId_nazione().toLowerCase().equals("i") && !CodiceFiscale.controlloFormale(cli.getCodFisc())) { msg = msg + " " + msg; forceMessage(req, msg); fillComboAfterDetail((DBAdapter)bean, req, res); setJspPageRelative(getBeanPageName(req) + ".jsp", req); cli.setCodFisc(""); bean.setCodFisc(""); bean.setClifor(cli); req.setAttribute("beanUser", bean); continuoRegistrazione = false; callJsp(req, res); } else if (!cli.getPIva().isEmpty() && cli.getId_nazione().toLowerCase().equals("i") && cli.getPIva().length() != 11) { msg = msg + " " + msg; forceMessage(req, msg); fillComboAfterDetail((DBAdapter)bean, req, res); setJspPageRelative(getBeanPageName(req) + ".jsp", req); bean.setPIva(""); cli.setPIva(""); bean.setPIva(""); bean.setClifor(cli); req.setAttribute("beanUser", bean); continuoRegistrazione = false; callJsp(req, res); } if (continuoRegistrazione) { if (bean.isProfileNoReg() || bean.isProfilML()) { req.setAttribute("flgValido", "N"); } else { req.setAttribute("flgValido", "S"); } if (bean.getId_userProfile() == 0L) req.setAttribute("id_userProfile", Long.valueOf(bean.getIdUserProfileWww())); saveUserAndClifor(req, res); } } protected void recordMailingList(HttpServletRequest req, HttpServletResponse res) { ApplParmFull apFull = getApFull(req); Attivita attivita = Attivita.getDefaultInstance(apFull); String l_lang = getLang(req); Users bean = new Users(apFull); fillObject(req, bean); ResParm rp = new ResParm(); String msg = attivita.translate("Impossibile Registrare utente ML:", l_lang); if (bean.isEmailDuplicated()) { msg = msg + " " + msg + " - " + attivita.translate("Email già presente in archivio", l_lang); rp.setStatus(false); rp.setMsg(msg); if (bean.isEmailDuplicatedNoMl()) { rp.setErrorCode(1L); } else { rp.setErrorCode(2L); } req.setAttribute("RP", rp); forceJspPageRelative("mailingListUser.jsp", req); callJsp(req, res); } else { bean.setFlgValido("N"); bean.setFlgMl(1L); bean.setId_userProfile(bean.getIdUserProfileMailingList()); bean.setLangMl(getRequestParameter(req, "langMl")); bean.setLogin(bean.getEMail()); bean.setCognome("MLC_" + bean.getEMail()); bean.setNome("MLN_" + bean.getEMail()); if (bean.getLogin().length() > 30) bean.setLogin(bean.getLogin().substring(0, 30)); if (bean.getCognome().length() > 30) bean.setCognome(bean.getCognome().substring(0, 30)); if (bean.getNome().length() > 30) bean.setNome(bean.getNome().substring(0, 30)); rp = bean.save(); if (rp.getStatus()) { Clifor clifor = new Clifor(apFull); clifor.setFlgTipo("C"); clifor.setCognome(bean.getCognome()); clifor.setNome(bean.getNome()); clifor.setEMail(bean.getEMail()); clifor.setFlgMl(1L); rp = clifor.save(); if (rp.getStatus()) { bean.setId_clifor(clifor.getId_clifor()); rp.append(bean.save()); } if (!rp.getStatus()) handleDebug("recordMailingList: " + rp.getMsg(), 0); attivita.sendMLMailMessage(bean, getLang(req), req); } forceJspPageRelative("mailingListUser.jsp", req); callJsp(req, res); } } protected void checkCc(HttpServletRequest req, HttpServletResponse res) { Users bean = new Users(getApFull(req)); fillObject(req, bean); ResParm rp = new ResParm(); String msg = bean.translate("Impossibile Registrare utente ML:", getLang(req)); if (bean.isEmailDuplicated()) { msg = msg + " Email già presente in archivio - " + msg; rp.setStatus(false); rp.setMsg(msg); if (bean.isEmailDuplicatedNoMl()) { rp.setErrorCode(1L); } else { rp.setErrorCode(2L); } req.setAttribute("RP", rp); forceJspPageRelative("mailingListUser.jsp", req); callJsp(req, res); } else { bean.setFlgValido("N"); bean.setFlgMl(1L); bean.setId_userProfile(bean.getIdUserProfileMailingList()); bean.setLogin("ML_" + bean.getEMail()); bean.setCognome("MLC_" + bean.getEMail()); bean.setNome("MLN_" + bean.getEMail()); rp = bean.save(); if (rp.getStatus()) bean.sendMLMailMessageOLD(req.getRemoteHost() + " " + req.getRemoteHost()); forceJspPageRelative("mailingListUser.jsp", req); callJsp(req, res); } } protected it.acxent.common.Users getUser(HttpServletRequest req) { return new Users(getApFull(req)); } protected ResParm afterSave(DBAdapter beanA, HttpServletRequest req, HttpServletResponse res) { String msg; Users bean = (Users)beanA; ApplParmFull apFull = getApFull(req); String l_lang = getLang(req); Attivita attivita = Attivita.getDefaultInstance(apFull); long l_id_user = getRequestLongParameter(req, "id_users"); if (bean.getDBState() == 1) { msg = attivita.translate("Salvataggio effettuato", l_lang); req.getSession().setAttribute("utenteLogon", bean); req.getSession().setAttribute("loginUser_id", new Long(bean.getId_users())); if (req.getSession().getAttribute("_sendUserMail") != null || l_id_user == 0L) { req.getSession().removeAttribute("_sendUserMail"); if (!mailConfermaCambiamentoDati(req, bean)) { msg = msg + " " + msg; bean.setFlgEmailOk(0L); } else { msg = msg + " Inviata mail di conferma."; bean.setFlgEmailOk(1L); } } else { bean.setFlgEmailOk(1L); } setJspPageRelative(getBeanPageName(req) + "Reg.jsp", req); } else { msg = attivita.translate("ERRORE!. Non è stato possibile salvare. Contattare l'amministratore o immettere login diverso", l_lang); } forceMessage(req, msg); return new ResParm(true); } protected void otherCommands(HttpServletRequest req, HttpServletResponse res) { if (getCmd(req).equals("ML")) { recordMailingList(req, res); } else if (getCmd(req).equals("MLF")) { recordMailingListF(req, res); } else if (getCmd(req).equals("checkCC")) { recordMailingList(req, res); } else if (getCmd(req).equals("checkUCF")) { checkUserCF(req, res); } else { super.otherCommands(req, res); } } protected void saveUserAndClifor(HttpServletRequest req, HttpServletResponse res) { ApplParmFull apFull = getApFull(req); Users user = new Users(apFull); long l_id_users = getRequestLongParameter(req, "id_users"); String l_lang = getLang(req); user.findByPrimaryKey(l_id_users); fillObject(req, user); if (user.getId_nazione().toLowerCase().equals("i")) { user.setLangMl("it"); user.setLang("it"); } else { user.setLangMl("en"); user.setLang("en"); } Clifor cliente = user.getClifor(); fillObject(req, cliente); cliente.setFlgTipo("C"); if (cliente.getFlgAzienda() == 1L) { cliente.setNome(""); cliente.setCognome(getRequestParameter(req, "ragioneSociale")); } cliente.setContatto(user.getCognomeNome()); ResParm rp = cliente.save(); if (rp.getStatus()) { DestinazioneDiversa dd = cliente.getCurrentDD(); fillObject(req, dd); if (dd.getIndirizzoDD().isEmpty()) { if (dd.getId_destinazioneDiversa() != 0L) rp.append(dd.delete()); } else { dd.setId_clifor(cliente.getId_clifor()); dd.setFlgDDDefault(1L); dd.setDescrizioneDD("Sped. WWW"); rp.append(dd.save()); } } if (rp.getStatus()) { user.setId_clifor(cliente.getId_clifor()); if (user.getId_userProfile() == 0L) user.setId_userProfile(user.getIdUserProfileWww()); user.setFlgValido("S"); rp.append(user.save()); } if (rp.getStatus()) { afterSave((DBAdapter)user, req, res); forceMessage(req, user.translate("Record salvato correttamente", l_lang)); String callingJsp = getRequestParameter(req, "callingJsp"); if (callingJsp.isEmpty()) { req.setAttribute("bean", user); forceJspPage("/usersReg.jsp", req); callJsp(req, res); } else { long l_id_documento = getRequestLongParameter(req, "id_documento"); if (l_id_documento > 0L) { Documento documento = new Documento(apFull); documento.findByPrimaryKey(l_id_documento); if (documento.getId_documento() > 0L) { documento.setSpeseTrasporto(documento.getDeliveryCostOrdine(user.getClifor())); rp = documento.save(); } } if (callingJsp.endsWith("html")) { try { res.sendRedirect(callingJsp); } catch (Exception e) { e.printStackTrace(); } } else { forceJspPage("/" + callingJsp, req); callJsp(req, res); } } } else { sendMessage(req, user.translate("Impossibile salvare: ", l_lang) + user.translate("Impossibile salvare: ", l_lang)); forceJspPage("/users.jsp", req); req.setAttribute("listaNazioni", new Nazione(apFull).findAllAttive(getLang(req))); req.setAttribute("bean", user); callJsp(req, res); } } protected void checkUserCF(HttpServletRequest req, HttpServletResponse res) { ApplParmFull apFull = getApFull(req); String l_cf = getRequestParameter(req, "codFiscR"); String l_lang = getLang(req); Attivita attivita = Attivita.getDefaultInstance(apFull); ResParm rp = new ResParm(true); if (l_cf.isEmpty()) { rp.setStatus(false); rp.setMsg("Codice Fiscale errato!"); } else { Clifor clifor = new Clifor(getApFull(req)); clifor.findByCF(l_cf, "C"); if (clifor.getDBState() == 0) { rp.setStatus(false); rp.setMsg(attivita.translate("Il Codice Fiscale richiesto non è nei nostri database.", l_lang)); } else if (clifor.getDBState() == 1 && clifor.getEMail().isEmpty()) { rp.setStatus(false); rp.setMsg( attivita.translate("Il Codice Fiscale è nei nostri database ma l'indirizzo email non è stato comunicato.", l_lang)); } else { Users user = new Users(getApFull(req)); Vectumerator vec = user.findByClifor(clifor.getId_clifor(), 1, 1); if (vec.getTotNumberOfRecords() == 0) { user.setCognome(clifor.getCognome()); user.setNome(clifor.getNome()); if (clifor.getFlgAzienda() == 1L) user.setNominativo(clifor.getCognome()); user.setFlgValido("S"); user.setId_userProfile(user.getIdUserProfileWww()); user.setId_clifor(clifor.getId_clifor()); user.setEMail(clifor.getEMail()); if (!clifor.getCellulare().isEmpty()) { user.setTelefono(clifor.getCellulare()); } else { user.setTelefono(clifor.getTelefono()); } user.setLogin(user.getEMail()); user.setPwd(String.valueOf(Math.random() * 1000000.0D).substring(0, 6)); rp = user.save(); if (rp.getStatus()) { rp = user.sendUserDataMailMessage(); if (rp.getStatus()) rp.setMsg(attivita.translate("Utente creato correttamente. Una Mail ti è stata inviata all'indirizzo email", l_lang) + " " + attivita.translate("Utente creato correttamente. Una Mail ti è stata inviata all'indirizzo email", l_lang)); } else { rp.setStatus(false); rp.setMsg(attivita.translate("Utente creato correttamente ma non è stato possibile inviare l'email di conferma.", l_lang)); } } else { rp.setStatus(false); rp.setMsg(attivita.translate("Attenzione! Il codice fiscale è nei nostri database ma esiste già un utente web associato. Richiedi i dati di accesso attraverso il recupero del login tramite indirizzo email.", l_lang)); } } } if (rp.getStatus()) { forceJspPage("/usersReg.jsp", req); } else { forceJspPage("/usersRegError.jsp", req); } sendMessage(req, rp.getMsg()); callJsp(req, res); } protected void showBean(HttpServletRequest req, HttpServletResponse res) { long l_id_usersDoc = getRequestLongParameter(req, "id_usersDoc"); req.setAttribute("id_users", String.valueOf(getLoginUserId(req))); if (l_id_usersDoc > 0L) req.setAttribute("id_users", Long.valueOf(l_id_usersDoc)); super.showBean(req, res); } protected void recordMailingListF(HttpServletRequest req, HttpServletResponse res) { ApplParmFull apFull = getApFull(req); String l_lang = getLang(req); Attivita attivita = Attivita.getDefaultInstance(apFull); Users bean = new Users(getApFull(req)); String l_eMail = EcDc.decode64String(getRequestParameter(req, "eMail")); ResParm rp = new ResParm(false); String msg = attivita.translate("Impossibile Registrare utente : ", l_lang); bean.findByEmail(l_eMail); if (bean.getDBState() == 1) { if (bean.getFlgValido().equals("N")) { msg = msg + "Email " + msg + l_eMail; rp.setErrorCode(9L); } else if (bean.getFlgMl() == 1L) { msg = msg + "Email " + msg + l_eMail; rp.setErrorCode(9L); } else { bean.setFlgMl(1L); rp = bean.save(); msg = "Email " + l_eMail + " iscritta correttamente alla newsletter."; if (rp.getStatus()) rp.append(bean.sendMLMailMessage(req.getRemoteHost() + " " + req.getRemoteHost(), bean.getLang())); if (!rp.getStatus()) { msg = msg + msg + " " + attivita.translate(" Attenzione. Ci sono stati problemi nella registrazione o nell'invio della mail di conferma: ", l_lang); rp.setErrorCode(9L); } } } else { msg = msg + "Email " + msg + " " + l_eMail; rp.setErrorCode(9L); } sendMessage(req, msg); rp.setMsg(msg); req.setAttribute("RP", rp); forceJspPageRelative("mailingListUser.jsp", req); callJsp(req, res); } protected String getBEANAttribute(HttpServletRequest req) { return super.getBEANAttribute(req) + "User"; } }