atg.commerce.csr.order.scheduled
Class CSRScheduledOrderTools

java.lang.Object
  extended by atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
      extended by atg.nucleus.GenericService
          extended by atg.commerce.csr.order.scheduled.CSRScheduledOrderTools
All Implemented Interfaces:
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 CSRScheduledOrderTools
extends atg.nucleus.GenericService

This class contains api specific to scheduled order features.


Field Summary
static java.lang.String CLASS_VERSION
          Class version string
static java.lang.String DEFAULT_END_TIME
          the time used for all end dates
static java.lang.String DEFAULT_START_TIME
          the time used for all start dates
static long DURATION_DAY
          the number of milliseconds in a day
static long DURATION_WEEK
          the number of milliseconds in a week
protected  CSRAgentTools mCSRAgentTools
           
protected  atg.commerce.order.scheduled.ScheduledOrderTools mScheduledOrderTools
           
protected  java.util.TimeZone mSchedulerTimeZone
           
protected  java.lang.String mSchedulerTimeZoneDisplay
           
static java.lang.String USER_RESOURCE_BUNDLE_NAME
          the user locale specific resource bundle for scheduled orders
 
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
CSRScheduledOrderTools()
           
 
Method Summary
 void activateSchedule(java.lang.String pScheduledOrderId)
          Calculates a new next run time then activates the schedule
protected  long adjustEndTimeForDST(java.util.Date pStartTime, long pCalculateEndTime)
          Util method that will adjust the calculated end time for changing in dst between the start date and calculated end time.
 java.util.Date appendTimeToDate(java.util.Date pDate, java.lang.String pHHMM)
          Returns a new date object with the given date and time.
 java.util.Date calculateEndTimeForOccurrences(atg.service.scheduler.Schedule pSchedule, java.util.Date pStartDate, long pNumberOfOccurrences)
          Calculates and end date for the given schedule based on the given start date and number of occurrences for the schedule.
 long calculateNextRunTime(atg.service.scheduler.Schedule pSchedule, java.util.Date pStartDate)
          Calculates the next runtime for the given schedule and current start date.
 void deactivateSchedule(java.lang.String pScheduledOrderId)
          Deactivates a schedule order item
 CSRAgentTools getCSRAgentTools()
          Returns the cSRAgentTools
 atg.commerce.order.OrderManager getOrderManager()
          The OrderManager component that will be used to create a new, empty order
 java.lang.String getReadableDates(atg.service.scheduler.CalendarSchedule pSchedule, java.util.Locale pLocale)
          Returns the readable string for the schedules dates specification.
 java.lang.String getReadableDays(atg.service.scheduler.CalendarSchedule pSchedule, java.util.Locale pLocale)
          Returns the readable string for the schedules days specification.
 java.lang.String getReadableHours(atg.service.scheduler.CalendarSchedule pSchedule, java.util.Locale pLocale)
          Returns the readable string for the schedules hours specification.
 java.lang.String getReadableInterval(atg.service.scheduler.PeriodicSchedule pSchedule, java.util.Locale pLocale)
          Returns the readable string for the schedules interval period.
 java.lang.String getReadableMinutes(atg.service.scheduler.CalendarSchedule pSchedule, java.util.Locale pLocale)
          Returns the readable string for the schedules minutes specification.
 java.lang.String getReadableMonths(atg.service.scheduler.CalendarSchedule pSchedule, java.util.Locale pLocale)
          Returns the readable string for the schedules months specification.
 java.lang.String getReadableOccurrences(atg.service.scheduler.CalendarSchedule pSchedule, java.util.Locale pLocale)
          Returns the readable string for the schedules occurrences specification.
 atg.commerce.order.scheduled.ScheduledOrderTools getScheduledOrderTools()
          Returns the core Commerce ScheduleOrderTools
 java.util.TimeZone getSchedulerTimeZone()
          Returns the time zone of the scheduler service
 java.lang.String getSchedulerTimeZoneDisplay()
          Returns the display value for the scheduler's time zone in short format.
 java.lang.String getUserResource(java.lang.String pKey, java.lang.Object[] pMsgArgs, java.util.Locale pLocale)
          Returns a resource from the user resource bundle
 java.util.ResourceBundle getUserResourceBundle(java.util.Locale pLocale)
          Returns the resource bundle used to localized user messages
 boolean isScheduledOrderTemplate(atg.commerce.order.Order pOrder)
          Determines if an order is a scheduled order template.
 boolean isScheduledOrderTemplate(atg.repository.RepositoryItem pOrder)
          Determines if an order item is a scheduled order template.
 atg.service.pipeline.PipelineResult processTemplate(atg.commerce.order.Order pOrder, java.util.Locale pLocale, java.lang.String pProcessOrderChainId, java.util.Map pMap)
          Processes an incomplete order that will be used as scheduled order template.
 void repriceScheduledOrderForView(atg.commerce.order.Order pTemplateOrder)
          Prices the given scheduled order template.
 void setCSRAgentTools(CSRAgentTools pAgentTools)
          Sets the cSRAgentTools
 void setOrderManager(atg.commerce.order.OrderManager pOrderManager)
          Sets the OrderManager component that will be used to create a new, empty order
 void setScheduledOrderTools(atg.commerce.order.scheduled.ScheduledOrderTools pScheduledOrderTools)
          Sets the core Commerce ScheduleOrderTools
 boolean shouldRepriceScheduledOrder(atg.commerce.order.Order pTemplateOrder)
          This method decides whether to price the order or not.
 
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


USER_RESOURCE_BUNDLE_NAME

public static final java.lang.String USER_RESOURCE_BUNDLE_NAME
the user locale specific resource bundle for scheduled orders

See Also:
Constant Field Values

DURATION_DAY

public static final long DURATION_DAY
the number of milliseconds in a day

See Also:
Constant Field Values

DURATION_WEEK

public static final long DURATION_WEEK
the number of milliseconds in a week

See Also:
Constant Field Values

DEFAULT_START_TIME

public static final java.lang.String DEFAULT_START_TIME
the time used for all start dates

See Also:
Constant Field Values

DEFAULT_END_TIME

public static final java.lang.String DEFAULT_END_TIME
the time used for all end dates

See Also:
Constant Field Values

mScheduledOrderTools

protected atg.commerce.order.scheduled.ScheduledOrderTools mScheduledOrderTools

mCSRAgentTools

protected CSRAgentTools mCSRAgentTools

mSchedulerTimeZoneDisplay

protected java.lang.String mSchedulerTimeZoneDisplay

mSchedulerTimeZone

protected java.util.TimeZone mSchedulerTimeZone
Constructor Detail

CSRScheduledOrderTools

public CSRScheduledOrderTools()
Method Detail

getScheduledOrderTools

public atg.commerce.order.scheduled.ScheduledOrderTools getScheduledOrderTools()
Returns the core Commerce ScheduleOrderTools


setScheduledOrderTools

public void setScheduledOrderTools(atg.commerce.order.scheduled.ScheduledOrderTools pScheduledOrderTools)
Sets the core Commerce ScheduleOrderTools


setOrderManager

public void setOrderManager(atg.commerce.order.OrderManager pOrderManager)
Sets the OrderManager component that will be used to create a new, empty order

Parameters:
pOrderManager - the OrderManager component that will be used to create a new, empty order

getOrderManager

public atg.commerce.order.OrderManager getOrderManager()
The OrderManager component that will be used to create a new, empty order

Returns:
the OrderManager component that will be used to create a new, empty order

getCSRAgentTools

public CSRAgentTools getCSRAgentTools()
Returns the cSRAgentTools

Returns:
the cSRAgentTools

setCSRAgentTools

public void setCSRAgentTools(CSRAgentTools pAgentTools)
Sets the cSRAgentTools

Parameters:
pAgentTools - the cSRAgentTools to set

isScheduledOrderTemplate

public boolean isScheduledOrderTemplate(atg.commerce.order.Order pOrder)
Determines if an order is a scheduled order template.

Parameters:
pOrder -
Returns:
true if an order is a scheduled order template.
See Also:
ScheduledOrderTools.isScheduledOrderTemplate(Order)

isScheduledOrderTemplate

public boolean isScheduledOrderTemplate(atg.repository.RepositoryItem pOrder)
Determines if an order item is a scheduled order template.

Parameters:
pOrder -
Returns:
true if an order is a scheduled order template.
See Also:
ScheduledOrderTools.isScheduledOrderTemplate(Order)

repriceScheduledOrderForView

public void repriceScheduledOrderForView(atg.commerce.order.Order pTemplateOrder)
                                  throws atg.commerce.CommerceException,
                                         atg.repository.RepositoryException
Prices the given scheduled order template.

This method intentionally does not call updateOrder so the order pricing changes do not get saved to the repository.

This method is primarily used to generate new pricing information before viewing a scheduled order template

If the scheduled order template contains non empty siteId value, then the template order is priced in template order's site context.

Parameters:
pTemplateOrder -
Throws:
atg.commerce.CommerceException
atg.repository.RepositoryException
See Also:
ScheduledOrderTools.repriceScheduledOrder(Order, RepositoryItem, Locale, Map), EnvironmentTools.getSiteContext(Site), SiteContextManager.pushSiteContext(SiteContext)

shouldRepriceScheduledOrder

public boolean shouldRepriceScheduledOrder(atg.commerce.order.Order pTemplateOrder)
This method decides whether to price the order or not.

If the method returns true, then the order needs to be re-priced. Otherwise it does not need to be re-priced.

This method returns false for the following cases:

Parameters:
pTemplateOrder -
Returns:
See Also:
SiteManager.getSite(String), SiteManager.isSiteActive(RepositoryItem)

processTemplate

public atg.service.pipeline.PipelineResult processTemplate(atg.commerce.order.Order pOrder,
                                                           java.util.Locale pLocale,
                                                           java.lang.String pProcessOrderChainId,
                                                           java.util.Map pMap)
                                                    throws atg.commerce.CommerceException
Processes an incomplete order that will be used as scheduled order template.

Parameters:
pOrder -
pLocale -
pProcessOrderChainId -
pMap -
Returns:
PipelineResult
Throws:
atg.commerce.CommerceException

getReadableInterval

public java.lang.String getReadableInterval(atg.service.scheduler.PeriodicSchedule pSchedule,
                                            java.util.Locale pLocale)
Returns the readable string for the schedules interval period.

Parameters:
pSchedule -
pLocale -
Returns:
String

getReadableMonths

public java.lang.String getReadableMonths(atg.service.scheduler.CalendarSchedule pSchedule,
                                          java.util.Locale pLocale)
Returns the readable string for the schedules months specification.

Parameters:
pSchedule -
pLocale -
Returns:
String

getReadableDates

public java.lang.String getReadableDates(atg.service.scheduler.CalendarSchedule pSchedule,
                                         java.util.Locale pLocale)
Returns the readable string for the schedules dates specification.

Parameters:
pSchedule -
pLocale -
Returns:
String

getReadableDays

public java.lang.String getReadableDays(atg.service.scheduler.CalendarSchedule pSchedule,
                                        java.util.Locale pLocale)
Returns the readable string for the schedules days specification.

Parameters:
pSchedule -
pLocale -
Returns:
String

getReadableOccurrences

public java.lang.String getReadableOccurrences(atg.service.scheduler.CalendarSchedule pSchedule,
                                               java.util.Locale pLocale)
Returns the readable string for the schedules occurrences specification.

Parameters:
pSchedule -
pLocale -
Returns:
String

getReadableHours

public java.lang.String getReadableHours(atg.service.scheduler.CalendarSchedule pSchedule,
                                         java.util.Locale pLocale)
Returns the readable string for the schedules hours specification.

Parameters:
pSchedule -
pLocale -
Returns:
String

getReadableMinutes

public java.lang.String getReadableMinutes(atg.service.scheduler.CalendarSchedule pSchedule,
                                           java.util.Locale pLocale)
Returns the readable string for the schedules minutes specification.

Parameters:
pSchedule -
pLocale -
Returns:
String

getUserResource

public java.lang.String getUserResource(java.lang.String pKey,
                                        java.lang.Object[] pMsgArgs,
                                        java.util.Locale pLocale)
Returns a resource from the user resource bundle

Parameters:
pKey -
pMsgArgs - msg arguments
pLocale - the locale
Returns:
String

getSchedulerTimeZoneDisplay

public java.lang.String getSchedulerTimeZoneDisplay()
Returns the display value for the scheduler's time zone in short format.

By default, this returns the JVM's timezone.

Returns:
String

getSchedulerTimeZone

public java.util.TimeZone getSchedulerTimeZone()
Returns the time zone of the scheduler service

Returns:
TimeZone

getUserResourceBundle

public java.util.ResourceBundle getUserResourceBundle(java.util.Locale pLocale)
Returns the resource bundle used to localized user messages

Returns:
ResourceBundle

appendTimeToDate

public java.util.Date appendTimeToDate(java.util.Date pDate,
                                       java.lang.String pHHMM)
Returns a new date object with the given date and time.

Parameters:
pDate -
pHHMM -
Returns:
Date

calculateNextRunTime

public long calculateNextRunTime(atg.service.scheduler.Schedule pSchedule,
                                 java.util.Date pStartDate)
Calculates the next runtime for the given schedule and current start date.

Parameters:
pSchedule - the schedule
pStartDate - the start date for the schedule
Returns:
next run time

adjustEndTimeForDST

protected long adjustEndTimeForDST(java.util.Date pStartTime,
                                   long pCalculateEndTime)
Util method that will adjust the calculated end time for changing in dst between the start date and calculated end time.

Parameters:
pStartTime -
pCalculateEndTime -
Returns:
the new calculated end time

calculateEndTimeForOccurrences

public java.util.Date calculateEndTimeForOccurrences(atg.service.scheduler.Schedule pSchedule,
                                                     java.util.Date pStartDate,
                                                     long pNumberOfOccurrences)
Calculates and end date for the given schedule based on the given start date and number of occurrences for the schedule.

Parameters:
pSchedule -
pStartDate -
pNumberOfOccurrences -
Returns:
the calculated end date

activateSchedule

public void activateSchedule(java.lang.String pScheduledOrderId)
                      throws atg.commerce.CommerceException
Calculates a new next run time then activates the schedule

Throws:
atg.commerce.CommerceException

deactivateSchedule

public void deactivateSchedule(java.lang.String pScheduledOrderId)
                        throws atg.commerce.CommerceException
Deactivates a schedule order item

Parameters:
pScheduledOrderId -
Throws:
atg.commerce.CommerceException
See Also:
ScheduledOrderTools.deactivateSchedule(String)