%@page import="org.apache.log4j.Logger"%> <%@page import="post.profile.DivisionUnsubscribePage"%> <%@page import="post.profile.State"%> <%@page import="post.profile.State.SubscriptionState"%> <%@page import="post.company.*"%> <%@page import="post.delivery.*"%> <%@ page import="java.io.*"%> <%@ page import="javax.servlet.ServletContext"%> <%@ page import="javax.naming.*"%> <%@ page import="javax.sql.*"%> <%@ page import="java.sql.*"%> <%@ page import="javax.servlet.http.HttpServletRequest"%> <%@ page import="javax.servlet.http.HttpServletResponse"%> <%@ page import="javax.servlet.http.HttpSession"%> <%@page import="java.util.*"%> <%@page import="java.util.Date"%> <%@page import="java.math.*"%> <%@page import="java.text.SimpleDateFormat"%> <%@page import="java.util.regex.Matcher"%> <%@page import="java.util.regex.Pattern"%> <%@page import="java.math.BigInteger"%> <%@page import="java.text.DateFormat"%> <%@page import="java.util.Calendar"%> <%@page import="org.apache.commons.validator.EmailValidator"%> <%@page import="org.apache.commons.lang.WordUtils"%> <%@page import="post.companies.csecommon.ui.HostedPageUtilities" %> <%! public java.sql.Date getCurrentDate(){ java.util.Date today = new java.util.Date(); return new java.sql.Date(today.getTime()); } %> <% /****************************************************************************** Copyright 2015, Yesmail, Inc ******************************************************************************* @CSE Lead : Balaji Naraharisetti @author : Sandeep Pothuri @Company Name : Dollar Tree @Page : subscribe.jsp @Description : This is an signup page. New user will subscribe to Dollar tree division. If existing user and he is unsubsceibed to Dollar tree division , this subscribe page will resubsceibe the existing user to Dollar tree division. If existing is already subscribed to Dollar tree division then a validation message will be displayed to user saying email already exists please use a different email for signup. SVN Last Commit $Author: Sandeep Pothuri $ $Date: $ (DD/MM/YYYY) $Rev: $ $URL: $ Page server Links: $Odyssey Link: $CSEQA Link: http://cseqa.pages.yesmail.com/ui/pages/companies/dollartree/user/signup.jsp $Production Link: *******************************************************************************/ DivisionUnsubscribePage pageOutput = new DivisionUnsubscribePage (request, response); String companyName = "Dollar Tree"; String q1Prompt = "Email Address:"; String q2Prompt = "Zip Code:"; String q3Prompt = "First Name:"; String q4Prompt = "Last Name:"; String q5Prompt = "Dollar Tree Email Preferences"; String firstName = ""; String lastName = ""; String pcode = ""; String email = ""; String c1 = ""; String c2 = ""; String c3 = ""; String c4 = ""; String c5 = ""; String c6 = ""; String c7 = ""; String c8 = ""; String emailopt = ""; String emailProgram = ""; BigInteger divisionSubscriptionStatusVar = new BigInteger("0"); BigInteger divisionMembershipVar = new BigInteger("0"); DivisionEvent divisionEvent = null; int divisionBit = 1; /* D&T */ String redColor = "#D40808"; boolean validationFlag = true; String error_message = ""; String errorPage = "error.html"; String confirmPage = "thankyou.html"; Timestamp currentTime = new Timestamp (System.currentTimeMillis ()); /* * Validate if request if from mobile */ boolean mobileDevice = HostedPageUtilities.isMobileDevice(request); try{ pageOutput.beginPageProcessing ("signup.jsp", null, null, companyName); State state = pageOutput.getState(); state.userState = pageOutput.Authenticated; Company company = Company.fromName (companyName); boolean pageSubmitted = (request.getParameter("submit") != null); //out.println("pageSubmitted:"+pageSubmitted); /* * Form submit */ if (pageSubmitted){ /* * Process all form inputs / request parameters */ firstName = (request.getParameter("firstName")!=null)?(String) request.getParameter("firstName"):""; lastName = (request.getParameter("lastName")!=null)?(String) request.getParameter("lastName"):""; email = (request.getParameter("email")!=null)?(String) request.getParameter("email").toLowerCase():""; pcode = (request.getParameter("pcode")!=null)?(String) request.getParameter("pcode"):""; c1 = (request.getParameter("c1")!=null)?(String) request.getParameter("c1"):""; c2 = (request.getParameter("c2")!=null)?(String) request.getParameter("c2"):""; c3 = (request.getParameter("c3")!=null)?(String) request.getParameter("c3"):""; c4 = (request.getParameter("c4")!=null)?(String) request.getParameter("c4"):""; c5 = (request.getParameter("c5")!=null)?(String) request.getParameter("c5"):""; c6 = (request.getParameter("c6")!=null)?(String) request.getParameter("c6"):""; c7 = (request.getParameter("c7")!=null)?(String) request.getParameter("c7"):""; c8 = (request.getParameter("c8")!=null)?(String) request.getParameter("c8"):""; //out.println("firstName:"+firstName); //out.println("lastName:"+lastName); //out.println("email:"+email); //out.println("pcode:"+pcode); //out.println("c1:"+c1);//out.println("c2:"+c2);//out.println("c3:"+c3);//out.println("c4:"+c4);//out.println("c5:"+c5); //out.println("c6:"+c6);//out.println("c7:"+c7); /* * Mandatory fields validation */ if(email != null && "".equals(email) && email.trim().length()<1){ q1Prompt = ""+q1Prompt+""; validationFlag = false; error_message = "Missing information. Please fill in required fields."; } if(pcode != null && "".equals(pcode) && pcode.trim().length()<1){ q2Prompt = ""+q2Prompt+""; validationFlag = false; error_message = "Missing information. Please fill in required fields."; } if(firstName != null && "".equals(firstName) && firstName.trim().length()<1){ q3Prompt = ""+q3Prompt+""; validationFlag = false; error_message = "Missing information. Please fill in required fields."; }else{ firstName = firstName.substring(0, 1).toUpperCase() + firstName.substring(1); } if(lastName != null && "".equals(lastName) && lastName.trim().length()<1){ q4Prompt = ""+q4Prompt+""; validationFlag = false; error_message = "Missing information. Please fill in required fields."; }else{ lastName = lastName.substring(0, 1).toUpperCase() + lastName.substring(1); } if (validationFlag){ // check email is valid EmailValidator ev = EmailValidator.getInstance(); email = email.trim().toLowerCase(); if (!ev.isValid(email)) { validationFlag = false; q1Prompt = ""+q1Prompt+""; error_message = "Email address is invalid."; } } if( (c1 != null && "".equals(c1) && c1.trim().length()<1) && (c2 != null && "".equals(c2) && c2.trim().length()<1) && (c3 != null && "".equals(c3) && c3.trim().length()<1) && (c4 != null && "".equals(c4) && c4.trim().length()<1) && (c5 != null && "".equals(c5) && c5.trim().length()<1) && (c6 != null && "".equals(c6) && c6.trim().length()<1) && (c7 != null && "".equals(c7) && c7.trim().length()<1) && (c8 != null && "".equals(c8) && c8.trim().length()<1) ){ q5Prompt = ""+q5Prompt+""; validationFlag = false; error_message = "Missing information. Please select at least one Dollar Tree Email."; } /**End Mandatory fields validation **/ /* * All validation success then subsceibe/resubscribe user */ if(validationFlag){ int userid = pageOutput.getIdFromEmail(email); //out.println("userid:"+userid); pageOutput.loadAttributeValues (userid); int currentSubscriptionStatus = pageOutput.subscriptionState(); //out.println("currentSubscriptionStatus:"+currentSubscriptionStatus); // get current divisionsubscriptionstatus and divisionMembership divisionSubscriptionStatusVar = ((BigInteger) pageOutput.attributeValue("divisionSubscriptionStatus")); //out.println("divisionSubscriptionStatusVar:"+divisionSubscriptionStatusVar); if (divisionSubscriptionStatusVar == null) divisionSubscriptionStatusVar = new BigInteger("0"); divisionMembershipVar = ((BigInteger) pageOutput.attributeValue("divisionMembership")); //out.println("divisionMembershipVar:"+divisionMembershipVar); if (divisionMembershipVar == null) divisionMembershipVar = new BigInteger("0"); //Existing user if(userid > 0){//out.println("Existing userid:"+userid); //Existing user is not subscribed to Dollar Tree for DivisionMemberShip attribute if(!divisionMembershipVar.testBit(divisionBit)) { divisionMembershipVar = divisionMembershipVar.setBit(divisionBit); //out.println("divisionMembershipVar:"+divisionMembershipVar); divisionSubscriptionStatusVar = divisionSubscriptionStatusVar.setBit(divisionBit); //out.println("divisionSubscriptionStatusVar:"+divisionSubscriptionStatusVar); pageOutput.attributeValue("divisionSubscriptionStatus", divisionSubscriptionStatusVar); pageOutput.attributeValue("divisionMembership", divisionMembershipVar); pageOutput.attributeValue("lastModifiedOnWebTime", currentTime); pageOutput.attributeValue("firstName",firstName); pageOutput.attributeValue("lastName",lastName); pageOutput.attributeValue("postalCode",pcode); pageOutput.attributeValue ("source", "contest"); pageOutput.attributeValue("email_optin_flag","Y"); if("1".equals(c1)){ pageOutput.attributeValue ("new_merch_category", "Y"); } else { pageOutput.attributeValue ("new_merch_category", "N"); } if("2".equals(c2)){ pageOutput.attributeValue ("loyalty_flag", "1"); }/* else { pageOutput.attributeValue ("loyalty_flag", "0"); }*/ if("3".equals(c3)){ pageOutput.attributeValue ("florist_org", "Y"); } else { pageOutput.attributeValue ("florist_org", "N"); } if("4".equals(c4)){ pageOutput.attributeValue ("education_org", "Y"); } else { pageOutput.attributeValue ("education_org", "N"); } if("5".equals(c5)){ pageOutput.attributeValue ("nonprofit_org", "Y"); } else { pageOutput.attributeValue ("nonprofit_org", "N"); } if("6".equals(c6)){ pageOutput.attributeValue ("restaurant_org", "Y"); } else { pageOutput.attributeValue ("restaurant_org", "N"); } if("7".equals(c7)){ pageOutput.attributeValue ("retailer_org", "Y"); } else { pageOutput.attributeValue ("retailer_org", "N"); } if("8".equals(c8)){ pageOutput.attributeValue ("catering_org", "Y"); } else { pageOutput.attributeValue ("catering_org", "N"); } if(currentSubscriptionStatus != SubscriptionState.Subscribed) { pageOutput.updateUser (Event.SubscribeEC, currentTime); } else { pageOutput.updateUser (Event.ModifyEC, currentTime); } divisionEvent = DivisionEvent.subscribe(state.company, currentTime, userid, state.urlMasterId, divisionBit, divisionBit); divisionEvent.write(); response.sendRedirect(confirmPage); }else{//Existing user is subscribed to Dollar Tree for DivisionMemberShip attribute but not for the DivisionalSubscriptionStatus attribute if(!divisionSubscriptionStatusVar.testBit(divisionBit)) { divisionSubscriptionStatusVar = divisionSubscriptionStatusVar.setBit(divisionBit); pageOutput.attributeValue("divisionSubscriptionStatus", divisionSubscriptionStatusVar); divisionEvent = DivisionEvent.subscribe(state.company, currentTime, userid, state.urlMasterId, divisionBit, divisionBit); divisionEvent.write(); pageOutput.attributeValue("lastModifiedOnWebTime", currentTime); pageOutput.attributeValue("firstName",firstName); pageOutput.attributeValue("lastName",lastName); pageOutput.attributeValue("postalCode",pcode); pageOutput.attributeValue ("source", "contest"); pageOutput.attributeValue("email_optin_flag","Y"); if("1".equals(c1)){ pageOutput.attributeValue ("new_merch_category", "Y"); } else { pageOutput.attributeValue ("new_merch_category", "N"); } if("2".equals(c2)){ pageOutput.attributeValue ("loyalty_flag", "1"); }/* else { pageOutput.attributeValue ("loyalty_flag", "0"); }*/ if("3".equals(c3)){ pageOutput.attributeValue ("florist_org", "Y"); } else { pageOutput.attributeValue ("florist_org", "N"); } if("4".equals(c4)){ pageOutput.attributeValue ("education_org", "Y"); } else { pageOutput.attributeValue ("education_org", "N"); } if("5".equals(c5)){ pageOutput.attributeValue ("nonprofit_org", "Y"); } else { pageOutput.attributeValue ("nonprofit_org", "N"); } if("6".equals(c6)){ pageOutput.attributeValue ("restaurant_org", "Y"); } else { pageOutput.attributeValue ("restaurant_org", "N"); } if("7".equals(c7)){ pageOutput.attributeValue ("retailer_org", "Y"); } else { pageOutput.attributeValue ("retailer_org", "N"); } if("8".equals(c8)){ pageOutput.attributeValue ("catering_org", "Y"); } else { pageOutput.attributeValue ("catering_org", "N"); } if(currentSubscriptionStatus != SubscriptionState.Subscribed) { pageOutput.updateUser (Event.SubscribeEC, currentTime); } else { pageOutput.updateUser (Event.ModifyEC, currentTime); } response.sendRedirect(confirmPage); }else{//Existing user is already subscribed to Dollar tree division validationFlag = false; q1Prompt = ""+q1Prompt+""; error_message = "The email address you entered is already subscribed to Dollar Tree emails. Please enter a different address."; } } // End of existing user functionality }else{//out.println("New userid:"+userid); // New user pageOutput.processInput(); pageOutput.attributeValue ("eMail", email); divisionMembershipVar = divisionMembershipVar.setBit(divisionBit); //out.println("divisionMembershipVar:"+divisionMembershipVar); divisionSubscriptionStatusVar = divisionSubscriptionStatusVar.setBit(divisionBit); //out.println("divisionSubscriptionStatusVar:"+divisionSubscriptionStatusVar); pageOutput.attributeValue("divisionSubscriptionStatus", divisionSubscriptionStatusVar); pageOutput.attributeValue("divisionMembership", divisionMembershipVar); pageOutput.attributeValue("lastModifiedOnWebTime", currentTime); pageOutput.attributeValue("firstName",firstName); pageOutput.attributeValue("lastName",lastName); pageOutput.attributeValue("postalCode",pcode); pageOutput.attributeValue ("source", "contest"); pageOutput.attributeValue("email_optin_flag","Y"); if("1".equals(c1)){ pageOutput.attributeValue ("new_merch_category", "Y"); } else { pageOutput.attributeValue ("new_merch_category", "N"); } if("2".equals(c2)){ pageOutput.attributeValue ("loyalty_flag", "1"); } /*else { pageOutput.attributeValue ("loyalty_flag", "0"); }*/ if("3".equals(c3)){ pageOutput.attributeValue ("florist_org", "Y"); } else { pageOutput.attributeValue ("florist_org", "N"); } if("4".equals(c4)){ pageOutput.attributeValue ("education_org", "Y"); } else { pageOutput.attributeValue ("education_org", "N"); } if("5".equals(c5)){ pageOutput.attributeValue ("nonprofit_org", "Y"); } else { pageOutput.attributeValue ("nonprofit_org", "N"); } if("6".equals(c6)){ pageOutput.attributeValue ("restaurant_org", "Y"); } else { pageOutput.attributeValue ("restaurant_org", "N"); } if("7".equals(c7)){ pageOutput.attributeValue ("retailer_org", "Y"); } else { pageOutput.attributeValue ("retailer_org", "N"); } if("8".equals(c8)){ pageOutput.attributeValue ("catering_org", "Y"); } else { pageOutput.attributeValue ("catering_org", "N"); } pageOutput.updateUser(Event.SubscribeEC, null); userid = ((Integer)pageOutput.attributeValue("id")).intValue(); //out.println("Existing userid:"+userid); divisionEvent = DivisionEvent.subscribe(state.company, currentTime, userid, state.urlMasterId, divisionBit, divisionBit); divisionEvent.write(); response.sendRedirect(confirmPage); } } /**End All validation success then subsceibe/resubscribe user **/ } /**End Form submit **/ %>
Enter now for a chance to win one
of five $100 Dollar Tree shopping sprees!
Restrictions apply.
One entry per household, per week is allowed, from January 13, 2019 to February 2, 2019.
See Rules
This information is required so that we can contact winners, ensure you are a U.S. resident, and meet other eligibility requirements.
Winners will be notified via email.
Find out how your privacy is protected here.
<%=error_message%>