<%@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 @CSE Lead Updated 2019/04/12 : Dwayne Abbott @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 **/ %> Dollar Tree Email Contest - Winners Circle

Sign Up for Dollar Tree Emails

and be entered for a chance to win a $100 Dollar Tree shopping spree!

$100 gift card
Enter now for a chance to win one
of five $100 Dollar Tree gift cards!

Restrictions apply.

$100 gift card

Enter now for a chance to win one
of five $100 Dollar Tree shopping sprees!

Restrictions apply.

<%=error_message%>





tabindex="5" />

You can also sign up for emails tailored to your business or organization:

tabindex="7" />

Vases & Containers, Floral Supplies, Seasonal Accents & More

tabindex="8" />

Classroom Supplies & Décor, Prizes & Rewards, Workbooks & More

tabindex="9" />

Care Package Supplies, Personal Care, Food, Seasonal & More

tabindex="10" />

Quality Dinnerware & Glassware, Kitchen Supplies, Serveware & More

tabindex="11" />

Seasonal Favorites, Hot New Resale Merchandise, Closeouts & More

tabindex="12" />

Catering Supplies, Centerpiece Supplies, Décor For Any Occasion & More


<% }catch (Exception e) { //out.println(e); pageOutput.unhandledException (e); response.sendRedirect(errorPage); }finally { pageOutput.endPage (); } %>