Package com.sourcetap.sfa.opportunity

Source Code of com.sourcetap.sfa.opportunity.OpportunityWebEventProcessor

/*
*
* Copyright (c) 2004 SourceTap - www.sourcetap.com
*
*  The contents of this file are subject to the SourceTap Public License
* ("License"); You may not use this file except in compliance with the
* License. You may obtain a copy of the License at http://www.sourcetap.com/license.htm
* 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 above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
*/

package com.sourcetap.sfa.opportunity;

import java.sql.Timestamp;
import java.util.Calendar;

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

import org.ofbiz.base.util.Debug;
import org.ofbiz.entity.GenericDelegator;
import org.ofbiz.entity.GenericEntityException;
import org.ofbiz.entity.GenericValue;

import com.sourcetap.sfa.event.DataMatrix;
import com.sourcetap.sfa.event.GenericEventProcessor;
import com.sourcetap.sfa.event.GenericWebEventProcessor;
import com.sourcetap.sfa.ui.UICache;
import com.sourcetap.sfa.ui.UIScreenSection;
import com.sourcetap.sfa.ui.UIWebScreenSection;
import com.sourcetap.sfa.util.UserInfo;


/**
* DOCUMENT ME!
*
*/
public class OpportunityWebEventProcessor extends GenericWebEventProcessor {
  public static final String module = OpportunityWebEventProcessor.class.getName();

    /**
     * DOCUMENT ME!
     *
     * @param userInfo
     * @param uiWebScreenSection
     * @param request
     * @param response
     * @param delegator
     * @param eventProcessor
     * @param dataMatrix
     * @param uiCache
     *
     * @return
     */
    protected int preInsert(UserInfo userInfo,
        UIWebScreenSection uiWebScreenSection, HttpServletRequest request,
        HttpServletResponse response, GenericDelegator delegator,
        GenericEventProcessor eventProcessor, DataMatrix dataMatrix,
        UICache uiCache) {

        // If the screen section is on the composite account create window, need to copy the account ID
        // from the account to the Opportunity.

        if (request.getAttribute("com.sourcetap.sfa.account.accountId") != null) {

            String accountId = (String) request.getAttribute(
                    "com.sourcetap.sfa.account.accountId");
            GenericValue opportunityGV = dataMatrix.getCurrentBuffer()
                                                   .getGenericValue(0, 0);

            opportunityGV.set("accountId", accountId);
        }

        return STATUS_CONTINUE;
    }

    /**
     * DOCUMENT ME!
     *
     * @param userInfo
     * @param uiWebScreenSection
     * @param request
     * @param response
     * @param delegator
     * @param eventProcessor
     * @param dataMatrix
     * @param uiCache
     *
     * @return
     */
    protected int postInsert(UserInfo userInfo,
        UIWebScreenSection uiWebScreenSection, HttpServletRequest request,
        HttpServletResponse response, GenericDelegator delegator,
        GenericEventProcessor eventProcessor, DataMatrix dataMatrix,
        UICache uiCache) {
        // If the screen section is on the composite account or contact create window, and a contact was created,
        // need to create an opportunity-contact record for the created opportunity and contact.

        if (request.getAttribute("com.sourcetap.sfa.contact.contactId") != null) {

            String contactId = (String) request.getAttribute(
                    "com.sourcetap.sfa.contact.contactId");
            GenericValue dealGV = dataMatrix.getCurrentBuffer().getGenericValue(0,
                    0);
            String dealId = dealGV.getString("dealId");

            // Create the new OpportunityContact generic value.
            GenericValue opportunityContactGV = new GenericValue(delegator.getModelEntity(
                        "OpportunityContact"));
            opportunityContactGV.setDelegator(delegator);
            Timestamp currentTime = new Timestamp(Calendar.getInstance()
                                                          .getTime().getTime());
            opportunityContactGV.set("dealId", dealId);
            opportunityContactGV.set("contactId", contactId);
            opportunityContactGV.set("createdBy", userInfo.getPartyId());
            opportunityContactGV.set("createdDate", currentTime);
            opportunityContactGV.set("modifiedBy", userInfo.getPartyId());
            opportunityContactGV.set("modifiedDate", currentTime);

            // Save the OpportunityContact.
            try {

                delegator.create(opportunityContactGV);
            } catch (GenericEntityException e) {
                Debug.logError(
                    "[OpportunityWebEventProcessor.postInsert] Error inserting new OpportunityContact. Save continued without inserting OpportunityContact.", module);
            }
        }

        return STATUS_CONTINUE;
    }

    /**
     * DOCUMENT ME!
     *
     * @param userInfo
     * @param screenName
     * @param sectionName
     * @param delegator
     * @param uiCache
     *
     * @return
     *
     * @throws GenericEntityException
     */
    protected UIWebScreenSection getUiWebScreenSection(UserInfo userInfo,
        String screenName, String sectionName, GenericDelegator delegator,
        UICache uiCache) throws GenericEntityException {
        // This method is here so a child class can specify a different screen section class.

        UIScreenSection uiScreenSection = uiCache.getUiScreenSection(screenName,
                sectionName, userInfo.getPartyId());

        if (uiScreenSection == null) {

            UIWebScreenSectionOpportunity uiWebScreenSectionOpportunity = new UIWebScreenSectionOpportunity(userInfo,
                    screenName, sectionName, delegator, uiCache);
            uiCache.putUiScreenSection(screenName, sectionName,
                userInfo.getPartyId(),
                (UIScreenSection) uiWebScreenSectionOpportunity);
      return (UIWebScreenSection) uiWebScreenSectionOpportunity;
        } else {
            return (UIWebScreenSection) uiScreenSection;
        }

    }

    /**
     * This function gets the application path to be used to reconstruct the URI when a
     * UI History record is logged.  Example: "/accounts"
     * @author  John Nutting
     * @param url The URL used to open the screen section
     * @return String containing the application path
     */
    protected String getUiHistoryAppPath(String url) {
        return "/deals";
    }

    /**
     * This function gets the description to store in the UI history table.  This description
     * will show up in the UI History drop list.
     * @author  John Nutting
     * @param dataMatrix DataMatrix object containing the data from the screen
     * @param delegator Generic delegator through which the data base is accessed
     * @param action The action being performed on the screen
     * @param uiWebScreenSection The UIWebScreenSection being used to construct the screen section
     * @return String containing the UI History description
     */
    protected String getUiHistoryDescription(DataMatrix dataMatrix,
        GenericDelegator delegator, String action,
        UIWebScreenSection uiWebScreenSection) {
        GenericValue primaryGV = dataMatrix.getCurrentBuffer().getGenericValue(0,
                0);

        return "Opportunity: " + primaryGV.getString("dealName");
    }
}
TOP

Related Classes of com.sourcetap.sfa.opportunity.OpportunityWebEventProcessor

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.