java.lang.Object | +--CacheableCommandImpl | +--com.ibm.commerce.command.AbstractECTargetableCommand | +--com.ibm.commerce.command.TaskCommandImpl | +--com.ibm.commerce.command.BusinessPolicyCommandImpl | +--com.ibm.commerce.payment.commands.DoRefundPMCmdImpl
This
DoRefundPolicy
business policy command implementation class is
the default implementation class for refunding payment through WebSphere
Commerce Payments.
(The original payment method of the Order may be different)
Parameters:
Parameter Name | Type | Descriptions |
abRMA | RMAAccessBean | The RMAAccessBean for the Return Merchandise Authorization (RMA) record |
abOrder | OrderAccessBean | The OrderAccessBean of the order associated with the RMA |
bdRefundAmount | BigDecimal | The amount of the refund in the currency of the Order. |
errorViewName | String | Optional error view name passed in by the Caller. |
Behavior:
Default Error View Name:
ErrorCodes:
PaymentConstants.ERR_CODE_PM_COMM_ERR
(1950) - Communication
to Payment System failed. (Connection to WebSphere Commerce Payments
Failed.)PaymentConstants.ERR_CODE_ORDER_UNKNOWN
(1951) - Order is not
known to the Payment System (Order does not exist as a WebSphere Commerce
Payments Order.)PaymentConstants.ERR_CODE_PM_REJECTED
(1952) - Payment System
rejected the command due to error. (WebSphere Commerce Payments Operation
"p" for StoreId "s" OrderId "m" failed. WebSphere
Commerce Payments PrimaryRC=x, SecondaryRC=y.)PaymentConstants.ERR_CODE_ORDER_CAN_NOT_REFUND
(1957) - Order
not in the correct state for Refund. (for example, WebSphere Commerce Payments
Order not in "Refundable" state. Refund not allowed.)PaymentConstants.ERR_CODE_REFUND_NOT_SUPPORTED
(1958) -
Payment System does not support Refund. (for example, cassette does not support
Refund). It is expected that the Caller will mark the Return Merchandise
Authorization (RMA) with a special code that indicate
"OfflineRefundRequired" so that a report can be run at the end of the
day for the store administrator to take special action similar to the failure
case.This command uses the following AccessBeans:
AccountAccessBean
OrderAccessBean
OrderPaymentMethodAccessBean
RMAAccessBean
StoreAccessBean
TradingAgreementAccessBean
This command does not call other TaskCommand.
Field Summary |
---|
Fields inherited from class com.ibm.commerce.command. BusinessPolicyCommandImpl |
policyId,
requestProperties |
Fields inherited from class com.ibm.commerce.command. AbstractECTargetableCommand |
commandContext |
Fields inherited from interface com.ibm.commerce.payment.commands. DoRefundPolicyCmd |
COPYRIGHT,
defaultCommandClassName,
ERRTASK_NAME,
NAME |
Fields inherited from interface com.ibm.commerce.command. ECTargetableCommand |
COPYRIGHT |
Fields inherited from interface com.ibm.commerce.command. ECCommand |
defaultCommandClassName |
Constructor Summary | |
---|---|
DoRefundPMCmdImpl() |
Method Summary | |
---|---|
protected
void |
checkCurrencyAndGetChargeAmount() Checks the currency of the Order and the Store default currency. |
protected
AccountAccessBean |
getAccount() Returns the AccountAccessBean representing the Account associated with the trading agreement specified by the RMA (Return Merchandise Authorization). |
protected
java.lang.Long |
getAccountId() Returns the ID of the Account associated with the trading agreement specified by the RMA (Return Merchandise Authorization). |
protected
java.math.BigDecimal |
getChargeAmount() Returns the charge amount. |
protected
java.lang.String |
getChargeAmountCurrency() Returns the currency of the charge amount. |
protected
java.lang.String |
getCurrencyExponent() Returns the currency exponent. |
protected
java.lang.String |
getErrorViewName() Returns the name of the error view to use for reporting error. |
protected
OrderAccessBean |
getOrder() Returns the OrderAccessBean representing the Order. |
protected
java.math.BigInteger |
getPMRefundAmount() Returns the refund amount normalized for input to WebSphere Commerce Payments. |
protected
java.math.BigDecimal |
getRefundAmount() Returns the refund amount. |
protected
RMAAccessBean |
getRMA() Returns the RMA AccessBean representing the Return Merchandise Authorization record that authorizes the return of the merchandise. |
boolean |
isReadyToCallExecute() This method is called by the Command Framework to check if all basic mandatory parameters have been set for this command. |
void |
performExecute() Performs the main business logic of the command. |
void |
reset() Resets the instance variables of the command. |
protected
void |
retrieveActiveAccountIdFromOrder() Retrieves the Account ID from the Trading Agreement associated with the RMA (Return Merchandise Authorization). |
protected
void |
setAccountId(java.lang.Long nAccountId) Sets the accountId property of the command. |
protected
void |
setChargeAmount(java.math.BigDecimal nChargeAmount) Sets the chargeAmount property of the command. |
protected
void |
setChargeAmountCurrency(java.lang.String sCurrency) Sets the chargeAmountCurrency property of the command. |
protected
void |
setCurrencyExponent(java.lang.String astrCurrencyExponent) Sets the currencyExponent. |
void |
setErrorViewName(java.lang.String sEVN) Sets the error view to be used to report error. |
protected
void |
setNumericCurrencyCode(java.lang.String astrCurrencyCode) Sets the numeric currency code |
void |
setOrder(
OrderAccessBean ab) Sets the order property of the command. |
protected
void |
setPMRefundAmount(java.math.BigInteger biPMRefundAmount) Sets the refund amount normalized for input to WebSphere Commerce Payments. |
void |
setRefundAmount(java.math.BigDecimal refundAmount) Sets the refundAmount property of the command. |
void |
setRMA(
RMAAccessBean ab) Sets the RMA AccessBean representing the Return Merchandise Authorization record. |
protected
void |
setupNumericCurrencyCodeAndPMRefundAmount() Retrieves the numeric currency code from the SETCURR Table and converts the refund amount to a normalized form required for input to WebSphere Commerce Payments. |
protected
void |
updateOrderPaymentMethod() Updates ORDPAYMTHD table with refund information. |
Methods inherited from class com.ibm.commerce.command. BusinessPolicyCommandImpl |
getPolicyId,
getRequestProperties,
setPolicyId,
setRequestProperties |
Methods inherited from class com.ibm.commerce.command. AbstractECTargetableCommand |
accessControlCheck,
checkIsAllowed,
checkParameters,
checkResourcePermission,
createCommandExecutionEvent,
execute,
finalize,
getAccCheck,
getCommandContext,
getCommandIfName,
getCommandName,
getCommandStoreId,
getDefaultProperties,
getResources,
getStoreId,
getUser,
getUserId,
setAccCheck,
setCommandContext,
setCommandIfName,
setCommandStoreId,
setDefaultProperties,
validateParameters |
Methods inherited from class java.lang.Object |
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait,
wait, wait |
Methods inherited from interface com.ibm.commerce.command. BusinessPolicyCommand |
getPolicyId,
getRequestProperties,
setPolicyId,
setRequestProperties |
Constructor Detail |
---|
public DoRefundPMCmdImpl()
Method Detail |
---|
protected void checkCurrencyAndGetChargeAmount() throws javax.ejb.CreateException, javax.ejb.FinderException, javax.naming.NamingException, java.rmi.RemoteException, ECException
javax.ejb.CreateException
javax.ejb.FinderException
javax.naming.NamingException
java.rmi.RemoteException
ECException
protected AccountAccessBean getAccount()
protected java.lang.Long getAccountId()
protected java.math.BigDecimal getChargeAmount()
The charge amount is the refund amount converted to the default currency of the Store. If the default currency of the Store is the same as the currency of the order, then the charge amount is the same as the refund amount.
protected java.lang.String getChargeAmountCurrency()
getChargeAmount
protected java.lang.String getCurrencyExponent()
protected java.lang.String getErrorViewName()
protected OrderAccessBean getOrder()
protected java.math.BigInteger getPMRefundAmount()
setPMRefundAmount
protected java.math.BigDecimal getRefundAmount()
protected RMAAccessBean getRMA()
public boolean isReadyToCallExecute()
isReadyToCallExecute
in class
AbstractECTargetableCommand
public void performExecute() throws ECException
performExecute
in interface
ECCommand
performExecute
in class
AbstractECTargetableCommand
ECException
public void reset()
This is useful if the command instance is to be called multiple times with different command parameters.
reset
in class
AbstractECTargetableCommand
protected void retrieveActiveAccountIdFromOrder() throws javax.ejb.CreateException, javax.ejb.FinderException, javax.naming.NamingException, java.rmi.RemoteException, ECException
javax.ejb.CreateException
javax.ejb.FinderException
javax.naming.NamingException
java.rmi.RemoteException
ECException
protected void setAccountId(java.lang.Long nAccountId)
nAccountId
- the Account ID..protected void setChargeAmount(java.math.BigDecimal nChargeAmount)
The chargeAmount is the refund amount converted to the default currency of the Store.
nChargeAmount
- the amount to be refunded converted to the
default currency of the Storeprotected void setChargeAmountCurrency(java.lang.String sCurrency)
sCurrency
- the alpha currency code representing the currency
of the charge amountprotected void setCurrencyExponent(java.lang.String astrCurrencyExponent)
astrCurrencyExponent
- the currency exponent of the currency
used for the orderpublic void setErrorViewName(java.lang.String sEVN)
setErrorViewName
in interface
DoRefundPolicyCmd
sEVN
- the Error View nameDoRefundPolicyCmd.ERRTASK_NAME
protected void setNumericCurrencyCode(java.lang.String astrCurrencyCode)
astrCurrencyCode
- the currency code of the currency used for
the orderpublic void setOrder(OrderAccessBean ab)
setOrder
in interface
DoRefundPolicyCmd
ab
- the OrderAccessBean representing the Order associated
with the Return Merchandise Authorization.protected void setPMRefundAmount(java.math.BigInteger biPMRefundAmount)
The normalized amount is the amount converted to the smallest denomination for the currency. For example, if the refund amount is US $10.95, PMRefundAmount is 1095 in cents, which is the lowest denomination for this currency. If there is no smaller denomination other than the main currency unit for the currency, the normalized amount is the same as the refund amount.
public void setRefundAmount(java.math.BigDecimal refundAmount)
setRefundAmount
in interface
DoRefundPolicyCmd
refundAmount
- the amount to be refunded.public void setRMA(RMAAccessBean ab)
setRMA
in interface
DoRefundPolicyCmd
ab
- the RMAAccessBeanprotected void setupNumericCurrencyCodeAndPMRefundAmount() throws javax.ejb.CreateException, javax.ejb.FinderException, javax.naming.NamingException, java.rmi.RemoteException, ECException
The normalized form of the amount is the amount converted to the lowest denomination of the currency. For example, if the amount is US $10.95, the normalized amount is 1095 in cents, which is the lowest denomination for this currency.
javax.ejb.CreateException
javax.ejb.FinderException
javax.naming.NamingException
java.rmi.RemoteException
ECException
protected void updateOrderPaymentMethod() throws javax.ejb.CreateException, javax.ejb.FinderException, javax.naming.NamingException, java.rmi.RemoteException
Creates a new ORDPAYMTHD record for the order with ORDPAYMTHD.refundNumber set to the RMA ID and ORDPAYMTHD.actualAmount set to the negative of the refund amount. Similarly, ORDPAYMTHD.chargeAmount is set to the negative of the refund amount converted to the default currency of the Store.
javax.ejb.CreateException
javax.ejb.FinderException
javax.naming.NamingException
java.rmi.RemoteException