atg.commerce.csr.order.scheduled
Class DuplicateAndSubmit

java.lang.Object
  extended by atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
      extended by atg.nucleus.GenericService
          extended by atg.droplet.EmptyFormHandler
              extended by atg.droplet.GenericFormHandler
                  extended by atg.svc.agent.environment.EnvironmentChangeFormHandler
                      extended by atg.commerce.csr.environment.ChangeOrder
                          extended by atg.commerce.csr.order.DuplicateOrder
                              extended by atg.commerce.csr.order.scheduled.DuplicateAndSubmit
All Implemented Interfaces:
atg.commerce.util.PipelineErrorHandler, atg.droplet.DropletFormHandler, atg.naming.NameContextBindingListener, atg.naming.NameContextElement, atg.naming.NameResolver, atg.nucleus.AdminableService, atg.nucleus.logging.ApplicationLogging, atg.nucleus.logging.ApplicationLoggingSender, atg.nucleus.logging.TraceApplicationLogging, atg.nucleus.logging.VariableArgumentApplicationLogging, atg.nucleus.naming.ComponentNameResolver, atg.nucleus.Service, atg.nucleus.ServiceListener, java.util.EventListener

public class DuplicateAndSubmit
extends DuplicateOrder
implements atg.commerce.util.PipelineErrorHandler

This form handler will execute the submit now action against a scheduled order template.

The difference is that this extension creates the duplicate order by calling ScheduledOrderTools and also reprices the order using ScheduledOrderTools before it is submitted.


Field Summary
static java.lang.String CLASS_VERSION
          Class version string
protected  boolean mAutoSendEmail
           
protected  ConfirmationInfo mConfirmationInfo
           
protected  CSRScheduledOrderTools mCSRScheduledOrderTools
           
 
Fields inherited from class atg.commerce.csr.order.DuplicateOrder
mDuplicateOrderExcludedOrderPropertiesMap, mDuplicateOrderExcludedProperties, ORDER_TO_DUPLICATE_INPUT_PARAMETER_NAME
 
Fields inherited from class atg.commerce.csr.environment.ChangeOrder
ENVRESOURCES, mCSREnvironmentTools
 
Fields inherited from class atg.svc.agent.environment.EnvironmentChangeFormHandler
AGENTRESOURCES, AGENTUSERRESOURCES, mApplicationName, mDoTicketDispositionPrompt, mDoWarnings, mEnvironmentChangeKey, mEnvironmentChangeState, mEnvironmentTools, mInitChangeState, mInputParameters, mMessageTools, mTicketDispositionChangeHandler, mTicketDispositionOptions, mTicketingTools, mTransactionManager, sBundle
 
Fields inherited from class atg.droplet.GenericFormHandler
PARAM_DEFER_FORWARD_OR_REDIRECT, PARAM_USE_FORWARDS
 
Fields inherited from class atg.nucleus.GenericService
SERVICE_INFO_KEY
 
Fields inherited from interface atg.nucleus.logging.TraceApplicationLogging
DEFAULT_LOG_TRACE_STATUS
 
Fields inherited from interface atg.nucleus.logging.ApplicationLogging
DEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS
 
Constructor Summary
DuplicateAndSubmit()
           
 
Method Summary
protected  boolean changeEnvironment(atg.servlet.DynamoHttpServletRequest pRequest, atg.servlet.DynamoHttpServletResponse pResponse)
          Extends the change environment to submit the duplicate order
protected  atg.commerce.order.Order createDuplicateOrder(atg.commerce.order.Order pOrder)
          Overrides the base behavior to create the order using ScheduledOrderTools.
protected  java.util.HashMap generatePriceOrderParameterMap(atg.commerce.order.Order pOrder, atg.servlet.DynamoHttpServletRequest pRequest, atg.servlet.DynamoHttpServletResponse pResponse)
          Generates the extra parameter map passed into the price order processing.
protected  java.util.HashMap generateSubmitOrderParameterMap(atg.commerce.order.Order pOrder, atg.servlet.DynamoHttpServletRequest pRequest, atg.servlet.DynamoHttpServletResponse pResponse)
          Generates the extra parameter map passed into the submit order processing.
 ConfirmationInfo getConfirmationInfo()
          Returns the confirmation info object used for sending email confirmations.
 CSRScheduledOrderTools getCSRScheduledOrderTools()
          Returns a reference to the CSRScheduledOrderTools component
 void handlePipelineError(java.lang.Object pError, java.lang.String pErrorKey)
          Add a pipeline error to the list of form exceptions.
protected  void initializeConfirmationInfoForNewOrder(atg.servlet.DynamoHttpServletRequest pRequest, atg.servlet.DynamoHttpServletResponse pResponse)
          Initializes the confirmation info object when a new order is submitted
 boolean isAutoSendEmail()
          Gets the AutoSendEmail
protected  boolean postChangeEnvironment(atg.servlet.DynamoHttpServletRequest pRequest, atg.servlet.DynamoHttpServletResponse pResponse)
          Executes post change environment handling.
 void setAutoSendEmail(boolean pAutoSendEmail)
          Sets the AutoSendEmail
 void setConfirmationInfo(ConfirmationInfo pConfirmationInfo)
           
 void setCSRScheduledOrderTools(CSRScheduledOrderTools pCSRScheduledOrderTools)
           
protected  void submitDuplicateOrder(atg.servlet.DynamoHttpServletRequest pRequest, atg.servlet.DynamoHttpServletResponse pResponse)
          Processes the duplicate order that was created from the template.
 
Methods inherited from class atg.commerce.csr.order.DuplicateOrder
createDuplicateOrderPropExceptionsMap, getDuplicateOrderExcludedOrderPropertiesMap, getDuplicateOrderExcludedProperties, resetPaymentGroupRelationshipAmounts, setDuplicateOrderExcludedProperties, setupInputParameters
 
Methods inherited from class atg.commerce.csr.environment.ChangeOrder
getCsrEnvironmentTools, setCsrEnvironmentTools
 
Methods inherited from class atg.svc.agent.environment.EnvironmentChangeFormHandler
addRedirectURLParams, conformRedirectURL, getApplicationName, getConfirmPromptURL, getConfirmURL, getEnvironmentChangeKey, getEnvironmentChangeState, getEnvironmentTools, getErrorURL, getInputParameters, getMessageTools, getSuccessURL, getTicketDispositionChangeHandler, getTicketDispositionOptions, getTicketingTools, getTransactionManager, getUserLocale, getUserMessage, getUserMessage, handleChangeEnvironment, initChangeState, initChangeState, isDoTicketDispositionPrompt, isDoWarnings, isInitChangeState, isShowDispositionPrompt, preChangeEnvironment, setApplicationName, setConfirmPromptURL, setConfirmURL, setDoTicketDispositionPrompt, setDoWarnings, setEnvironmentChangeKey, setEnvironmentChangeState, setEnvironmentTools, setErrorURL, setInitChangeState, setInputParameters, setMessageTools, setSuccessURL, setTicketDispositionChangeHandler, setTicketDispositionOptions, setTicketingTools, setTransactionManager
 
Methods inherited from class atg.droplet.GenericFormHandler
addFormException, addUncheckedFormException, afterSet, beforeSet, checkFormRedirect, createFormSubmissionMessage, getCancelURL, getCheckForValidSession, getFormError, getFormExceptions, getFormName, getMessagePort, getMessageSource, getMessageType, getPropertyExceptions, getSendMessages, getUncheckedFormExceptions, handleCancel, handleFormException, handleUncheckedFormException, hasUncheckedFormExceptions, isDeferForwardsAndRedirects, isRestorableForm, isUseForwards, isValidSession, redirectOrForward, resetFormExceptions, setCancelURL, setCheckForValidSession, setDeferForwardsAndRedirects, setFormName, setMessagePort, setMessageSource, setMessageType, setRestorableForm, setSendMessages, setUseForwards
 
Methods inherited from class atg.droplet.EmptyFormHandler
afterGet, beforeGet
 
Methods inherited from class atg.nucleus.GenericService
addLogListener, createAdminServlet, doStartService, doStopService, getAbsoluteName, getAdminServlet, getAdminServletOutputStreamEncoding, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, isAdminServletUseServletOutputStream, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, isRunning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, nameContextElementBound, nameContextElementUnbound, removeLogListener, reResolveThis, resolveName, resolveName, resolveName, resolveName, sendLogEvent, setAdminServletOutputStreamEncoding, setAdminServletUseServletOutputStream, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, startService, stopService
 
Methods inherited from class atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLASS_VERSION

public static java.lang.String CLASS_VERSION
Class version string


mCSRScheduledOrderTools

protected CSRScheduledOrderTools mCSRScheduledOrderTools

mConfirmationInfo

protected ConfirmationInfo mConfirmationInfo

mAutoSendEmail

protected boolean mAutoSendEmail
Constructor Detail

DuplicateAndSubmit

public DuplicateAndSubmit()
Method Detail

getCSRScheduledOrderTools

public CSRScheduledOrderTools getCSRScheduledOrderTools()
Returns a reference to the CSRScheduledOrderTools component


setCSRScheduledOrderTools

public void setCSRScheduledOrderTools(CSRScheduledOrderTools pCSRScheduledOrderTools)

getConfirmationInfo

public ConfirmationInfo getConfirmationInfo()
Returns the confirmation info object used for sending email confirmations.

Returns:
ConfirmationInfo

setConfirmationInfo

public void setConfirmationInfo(ConfirmationInfo pConfirmationInfo)

isAutoSendEmail

public boolean isAutoSendEmail()
Gets the AutoSendEmail

Returns:
the AutoSendEmail

setAutoSendEmail

public void setAutoSendEmail(boolean pAutoSendEmail)
Sets the AutoSendEmail

Parameters:
pAutoSendEmail - The AutoSendEmail to set

changeEnvironment

protected boolean changeEnvironment(atg.servlet.DynamoHttpServletRequest pRequest,
                                    atg.servlet.DynamoHttpServletResponse pResponse)
                             throws javax.servlet.ServletException,
                                    java.io.IOException
Extends the change environment to submit the duplicate order

Overrides:
changeEnvironment in class atg.svc.agent.environment.EnvironmentChangeFormHandler
Throws:
javax.servlet.ServletException
java.io.IOException

submitDuplicateOrder

protected void submitDuplicateOrder(atg.servlet.DynamoHttpServletRequest pRequest,
                                    atg.servlet.DynamoHttpServletResponse pResponse)
                             throws atg.commerce.CommerceException
Processes the duplicate order that was created from the template.

This method reprices the order and submits it

Parameters:
pRequest -
pResponse -
Throws:
atg.commerce.CommerceException
See Also:
ScheduledOrderTools.repriceCloneOrder(Order, Order, RepositoryItem, Locale)

postChangeEnvironment

protected boolean postChangeEnvironment(atg.servlet.DynamoHttpServletRequest pRequest,
                                        atg.servlet.DynamoHttpServletResponse pResponse)
                                 throws javax.servlet.ServletException,
                                        java.io.IOException
Executes post change environment handling.

This implementation will send the submit order agent event and initialize the confirmation info object for the submitted order.

If autoSendEmail is true, CSRAgentTools will be called to send the automatic email confirmation.

Lastly, a new order is loaded into global context and pricing model holder is re-initialized.

Overrides:
postChangeEnvironment in class ChangeOrder
Throws:
javax.servlet.ServletException
java.io.IOException
See Also:
initializeConfirmationInfoForNewOrder(DynamoHttpServletRequest, DynamoHttpServletResponse), CSRAgentTools.sendAutomaticConfirmation(ConfirmationInfo)

initializeConfirmationInfoForNewOrder

protected void initializeConfirmationInfoForNewOrder(atg.servlet.DynamoHttpServletRequest pRequest,
                                                     atg.servlet.DynamoHttpServletResponse pResponse)
Initializes the confirmation info object when a new order is submitted

Parameters:
pRequest -
pResponse -

handlePipelineError

public void handlePipelineError(java.lang.Object pError,
                                java.lang.String pErrorKey)
Add a pipeline error to the list of form exceptions.

Specified by:
handlePipelineError in interface atg.commerce.util.PipelineErrorHandler
Parameters:
pError - the error reported by the pipeline.
pErrorKey - the key of the error, used for localization.

generateSubmitOrderParameterMap

protected java.util.HashMap generateSubmitOrderParameterMap(atg.commerce.order.Order pOrder,
                                                            atg.servlet.DynamoHttpServletRequest pRequest,
                                                            atg.servlet.DynamoHttpServletResponse pResponse)
Generates the extra parameter map passed into the submit order processing.

Parameters:
pOrder -
pRequest -
pResponse -
Returns:
HashMap

generatePriceOrderParameterMap

protected java.util.HashMap generatePriceOrderParameterMap(atg.commerce.order.Order pOrder,
                                                           atg.servlet.DynamoHttpServletRequest pRequest,
                                                           atg.servlet.DynamoHttpServletResponse pResponse)
Generates the extra parameter map passed into the price order processing.

Parameters:
pOrder -
pRequest -
pResponse -
Returns:
HashMap

createDuplicateOrder

protected atg.commerce.order.Order createDuplicateOrder(atg.commerce.order.Order pOrder)
                                                 throws atg.commerce.CommerceException
Overrides the base behavior to create the order using ScheduledOrderTools.

Overrides:
createDuplicateOrder in class DuplicateOrder
Returns:
Order
Throws:
atg.commerce.CommerceException
See Also:
ScheduledOrderTools.cloneOrderObject(String)