Package com.centraview.activity

Source Code of com.centraview.activity.ActivityHandler

/*
* $RCSfile: ActivityHandler.java,v $    $Revision: 1.6 $  $Date: 2005/10/24 16:19:45 $ - $Author: mcallist $
*
* The contents of this file are subject to the Open Software License
* Version 2.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.centraview.com/opensource/license.html
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
* License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is: CentraView Open Source.
*
* The developer of the Original Code is CentraView.  Portions of the
* Original Code created by CentraView are Copyright (c) 2004 CentraView,
* LLC; All Rights Reserved.  The terms "CentraView" and the CentraView
* logos are trademarks and service marks of CentraView, LLC.
*/

package com.centraview.activity;

import java.text.DateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Locale;
import java.util.TimeZone;
import java.util.Vector;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.centraview.common.CVUtility;
import com.centraview.common.DDNameValue;
import com.centraview.common.UserObject;
import com.centraview.common.UserPrefererences;
import com.centraview.sale.salefacade.SaleFacade;
import com.centraview.sale.salefacade.SaleFacadeHome;
import com.centraview.settings.Settings;

/**
* This ActivityHandler Initialize the PopulateForm Rest the whole Form with
* default values Populate the Default values for the New Activity Form. Collect
* the Type of Activity we are viewing. Set the Request Objects
*/
public class ActivityHandler extends org.apache.struts.action.Action {
  private static Logger logger = Logger.getLogger(ActivityHandler.class);
  public static final String GLOBAL_FORWARD_failure = ".view.error";
  private static final String FORWARD_New = ".view.activities.new_activity";
  private static String FORWARD_final = GLOBAL_FORWARD_failure;

  public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception
  {
    String dataSource = Settings.getInstance().getSiteInfo(
        CVUtility.getHostName(super.getServlet().getServletContext())).getDataSource();

    try {
      HttpSession session = request.getSession();

      PopulateForm populateForm = new PopulateForm();
      // initialize the Activity form to have default blank values
      populateForm.resetForm(request, form);
      ActivityForm activityForm = (ActivityForm)form;
      // set up the date formatter default to the request locale.
      Locale locale = request.getLocale();
      activityForm.setLocale(locale);
      DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
      DateFormat tf = DateFormat.getTimeInstance(DateFormat.SHORT, locale);

      int activityType = 1;

      String unScheduleActivity = "";
      if (request.getParameter("unScheduleActivity") != null) {
        unScheduleActivity = request.getParameter("unScheduleActivity").toString();
      }

      UserObject userObject = (UserObject)session.getAttribute("userobject");
      int individualID = userObject.getIndividualID();
      String userName = userObject.getfirstName() + " " + userObject.getlastName();

      if (request.getParameter("entityID") != null) {
        activityForm.setActivityEntityID(request.getParameter("entityID"));
      }

      if (request.getParameter("entityName") != null) {
        activityForm.setActivityEntityName(request.getParameter("entityName"));
      }

      if (request.getParameter("individualID") != null) {
        activityForm.setActivityIndividualID(request.getParameter("individualID"));
      }

      if (request.getParameter("individualName") != null) {
        activityForm.setActivityIndividualName(request.getParameter("individualName"));
      }

      if (request.getParameter("ProjectID") != null && request.getParameter("ProjectTitle") != null) {
        String projectID = request.getParameter("ProjectID");
        String projectTitle = request.getParameter("ProjectTitle");
        activityForm.setActivityRelatedFieldID(projectID);
        activityForm.setActivityRelatedFieldValue(projectTitle);
        activityForm.setActivityRelatedTypeValue("Project");
        activityForm.setActivityRelatedTypeID("36");
      }

      if (request.getParameter("oppID") != null) {
        String opportunityID = request.getParameter("oppID");
        activityForm.setActivityRelatedFieldID(opportunityID);
        activityForm.setActivityRelatedTypeValue("Opportunity");
        activityForm.setActivityRelatedTypeID("30");

        if (opportunityID != null && !(opportunityID.equals(""))) {
          int oppID = Integer.parseInt(opportunityID);
          SaleFacadeHome saleFacade = (SaleFacadeHome)CVUtility.getHomeObject(
              "com.centraview.sale.salefacade.SaleFacadeHome", "SaleFacade");
          SaleFacade remote = saleFacade.create();
          remote.setDataSource(dataSource);

          HashMap relatedOpportunityInfo = remote.getOpportunityRelatedInfo(individualID, oppID);

          if (relatedOpportunityInfo != null && relatedOpportunityInfo.size() != 0) {
            String title = (String)relatedOpportunityInfo.get("Title");
            if (title != null && !title.equals("") && !title.equals("NULL")) {
              activityForm.setActivityRelatedFieldValue(title);
            }

            if (relatedOpportunityInfo.get("EntityId") != null) {
              int entityid = ((Number)relatedOpportunityInfo.get("EntityId")).intValue();
              if (entityid != 0) {
                activityForm.setActivityEntityID(entityid + "");
                String entityName = (String)relatedOpportunityInfo.get("EntityName");
                if (entityName != null && !entityName.equals("") && !entityName.equals("NULL")) {
                  activityForm.setActivityEntityName(entityName);
                }
              }
            }

            if (relatedOpportunityInfo.get("IndividualId") != null) {
              int individualid = ((Number)relatedOpportunityInfo.get("IndividualId")).intValue();
              if (individualid != 0) {
                activityForm.setActivityIndividualID(individualid + "");
                String individualName = (String)relatedOpportunityInfo.get("individualname");
                if (individualName != null && !individualName.equals("")
                    && !individualName.equals("NULL")) {
                  activityForm.setActivityIndividualName(individualName);
                }
              }
            }
          } // end if (relatedOpportunityInfo != null &&
          // relatedOpportunityInfo.size() != 0)
        } // end if (opportunityID != null && !(opportunityID.equals("")))
      } // end if (request.getParameter("oppID") != null)

      if (request.getParameter("oppName") != null) {
        activityForm.setActivityRelatedFieldValue(request.getParameter("oppName"));
      }

      activityForm.setActivityOwnerID(String.valueOf(individualID));
      activityForm.setActivityOwnerName(userName);
      activityForm.setActivityPriority("2");
      activityForm.setActivityVisibility("PUBLIC");

      // All the following mess is to set a start and end time on the form.
      if ((request.getParameter("DAY") != null) && (request.getParameter("MONTH") != null)
          && (request.getParameter("YEAR") != null)) {
        // to digit
        String startMonthName = request.getParameter("MONTH");
        int startMonth = getCalendarMonth(startMonthName);
        String startDayString = request.getParameter("DAY");
        int startDay = Integer.parseInt(startDayString);
        String startYearString = request.getParameter("YEAR");
        int startYear = Integer.parseInt(startYearString);

        Calendar start = new GregorianCalendar(startYear, startMonth, startDay, 8, 0);
        String startTimeString = tf.format(start.getTime());
        if (CVUtility.notEmpty(request.getParameter("STIME"))) {
          startTimeString = request.getParameter("STIME");
        }
        Calendar passedTime = new GregorianCalendar();
        passedTime.setTime(tf.parse(startTimeString));
        start.set(Calendar.HOUR, passedTime.get(Calendar.HOUR));
        start.set(Calendar.MINUTE, passedTime.get(Calendar.MINUTE));
        start.set(Calendar.AM_PM, passedTime.get(Calendar.AM_PM));

        activityForm.setActivityStartDate(df.format(start.getTime()));
        activityForm.setActivityStartTime(tf.format(start.getTime()));
        // add an hour onto the start time for the default end time.
        Calendar end = new GregorianCalendar();
        end.setTime(start.getTime());
        end.add(Calendar.HOUR, 1);
        String endTimeString = tf.format(end.getTime());
        if (CVUtility.notEmpty(request.getParameter("ETIME"))) {
          endTimeString = request.getParameter("ETIME");
        }
        passedTime.setTime(tf.parse(endTimeString));
        end.set(Calendar.HOUR, passedTime.get(Calendar.HOUR));
        end.set(Calendar.MINUTE, passedTime.get(Calendar.MINUTE));
        end.set(Calendar.AM_PM, passedTime.get(Calendar.AM_PM));
        activityForm.setActivityEndDate(df.format(end.getTime()));
        activityForm.setActivityEndTime(tf.format(end.getTime()));
      } else if (unScheduleActivity != null && !(unScheduleActivity.equals("unSchedule"))) {
        // In the case the start time wasn't requested from the parent window,
        // set the start time to now() rounded up to the nearest hour, and the
        // end time to be the start time plus 1 hour.
        UserPrefererences userPref = userObject.getUserPref();
        String userTimeZoneId = userPref.getTimeZone();
        TimeZone userTimeZone = TimeZone.getTimeZone(userTimeZoneId);
        Calendar now = Calendar.getInstance(userTimeZone, locale);
        // round up the hour if we are at the 1 minute mark of the hour or
        // higher. just clear the second and millisecond fields, its only
        // scheduling not physics.
        now.clear(Calendar.SECOND);
        now.clear(Calendar.MILLISECOND);
        if (now.get(Calendar.MINUTE) > 0) {
          now.clear(Calendar.MINUTE);
          now.add(Calendar.HOUR, 1);
        }
        activityForm.setActivityStartDate(df.format(now.getTime()));
        activityForm.setActivityStartTime(tf.format(now.getTime()));
        // Increment now by 1 hour to get the end time.
        now.add(Calendar.HOUR, 1);
        activityForm.setActivityEndDate(df.format(now.getTime()));
        activityForm.setActivityEndTime(tf.format(now.getTime()));
      }

      String typeOfActivity = "";
      if (request.getParameter(ConstantKeys.TYPEOFACTIVITY) == null) {
        typeOfActivity = ConstantKeys.APPOINTMENT;
      } else if (request.getParameter(ConstantKeys.TYPEOFACTIVITY) != null) {
        if (request.getParameter(ConstantKeys.TYPEOFACTIVITY).equals("MULTIACTIVITY")) {
          typeOfActivity = ConstantKeys.APPOINTMENT;
        } else {
          typeOfActivity = request.getParameter(ConstantKeys.TYPEOFACTIVITY).toUpperCase();
        }
      } else {
        typeOfActivity = ConstantKeys.APPOINTMENT;
      }

      if (typeOfActivity.equals(ConstantKeys.APPOINTMENT)) {
        activityType = 1;
      } else if (typeOfActivity.equals(ConstantKeys.CALL)) {
        activityType = 2;
      } else if (typeOfActivity.equals(ConstantKeys.MEETING)) {
        activityType = 5;
      } else if (typeOfActivity.equals(ConstantKeys.NEXTACTION)) {
        activityType = 7;
      } else if (typeOfActivity.equals(ConstantKeys.TODO)) {
        activityType = 6;
      }

      if (typeOfActivity.equals("NEXT ACTION")) {
        typeOfActivity = ConstantKeys.NEXTACTION;
        activityType = 7;
      } else if (typeOfActivity.equals("TO DO")) {
        typeOfActivity = ConstantKeys.TODO;
        activityType = 6;
      }

      request.setAttribute("actionName", "");
      activityForm.setActivityType(activityType + "");

      // set user as default attendee
      DDNameValue setUserAttendee = new DDNameValue("" + individualID + "#" + userName, userName);
      Vector att_required = new Vector();
      att_required.add(setUserAttendee);

      String[] attRequiredArray = new String[1];
      attRequiredArray[0] = "" + individualID + "#" + userName;
      activityForm.setActivityAttendeesRequired(attRequiredArray);
      activityForm.setActivityAttendeeRequiredVector(att_required);

      session.setAttribute("activityform", form);

      // set request to pass to jsp
      request.setAttribute(ConstantKeys.TYPEOFACTIVITY, typeOfActivity);

      // set default opening window to detail sub-type activity
      request.setAttribute(ConstantKeys.TYPEOFSUBACTIVITY, ConstantKeys.DETAIL);
      request.setAttribute(ConstantKeys.TYPEOFOPERATION, ConstantKeys.ADD);

      FORWARD_final = FORWARD_New;
    } catch (Exception e) {
      logger.error("[execute]: Exception", e);
      FORWARD_final = GLOBAL_FORWARD_failure;
    } // end of catch statement (Exception)
    return (mapping.findForward(FORWARD_final));
  } // end of execute method.

  /**
   * Takes calendar Month name and returns the cannonical month number
   * @param monthName
   * @return
   */
  public int getCalendarMonth(String monthName)
  {
    int monthNumber = 0;
    if (monthName.equalsIgnoreCase("JAN") || monthName.equalsIgnoreCase("JANUARY")) {
      monthNumber = 0;
    } else if (monthName.equalsIgnoreCase("FEB") || monthName.equalsIgnoreCase("FEBRUARY")) {
      monthNumber = 1;
    } else if (monthName.equalsIgnoreCase("MAR") || monthName.equalsIgnoreCase("MARCH")) {
      monthNumber = 2;
    } else if (monthName.equalsIgnoreCase("APR") || monthName.equalsIgnoreCase("APRIL")) {
      monthNumber = 3;
    } else if (monthName.equalsIgnoreCase("MAY")) {
      monthNumber = 4;
    } else if (monthName.equalsIgnoreCase("JUN") || monthName.equalsIgnoreCase("JUNE")) {
      monthNumber = 5;
    } else if (monthName.equalsIgnoreCase("JUL") || monthName.equalsIgnoreCase("JULY")) {
      monthNumber = 6;
    } else if (monthName.equalsIgnoreCase("AUG") || monthName.equalsIgnoreCase("AUGUST")) {
      monthNumber = 7;
    } else if (monthName.equalsIgnoreCase("SEP") || monthName.equalsIgnoreCase("SEPTEMBER")) {
      monthNumber = 8;
    } else if ((monthName.equalsIgnoreCase("OCTOBER")) || monthName.equalsIgnoreCase("OCT")) {
      monthNumber = 9;
    } else if (monthName.equalsIgnoreCase("NOVEMBER") || monthName.equalsIgnoreCase("NOV")) {
      monthNumber = 10;
    } else if (monthName.equalsIgnoreCase("DECEMBER") || monthName.equalsIgnoreCase("DEC")) {
      monthNumber = 11;
    }
    return monthNumber;
  } // end of getCalendarMonth method
} // end of ActivityHandler class
TOP

Related Classes of com.centraview.activity.ActivityHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.