class AccountApplyPaymentAction extends BaseAction {

    @TransactionDemarcate(joinToken = true)
    public ActionForward load(ActionMapping mapping, ActionForm form, HttpServletRequest request,
            @SuppressWarnings("unused") HttpServletResponse response) throws Exception {
        UserContext userContext = getUserContext(request);
        AccountApplyPaymentActionForm actionForm = (AccountApplyPaymentActionForm) form;
        actionForm.setReceiptDate(null);
        actionForm.setReceiptId(null);
        actionForm.setPaymentTypeId(null);
        actionForm.setTransactionDate(DateUtils.makeDateAsSentFromBrowser());
        actionForm.setPrintReceipt(false);
        actionForm.setTruePrintReceipt(false);

        final AccountReferenceDto accountReferenceDto = new AccountReferenceDto(Integer.valueOf(actionForm.getAccountId()));
        AccountPaymentDto accountPaymentDto = accountServiceFacade.getAccountPaymentInformation(
                accountReferenceDto.getAccountId(), request.getParameter(Constants.INPUT), userContext.getLocaleId(),
                new UserReferenceDto(userContext.getId()), DateUtils.getCurrentJavaDateTime());

        setValuesInSession(request, actionForm, accountPaymentDto);
        actionForm.setLastPaymentDate(accountPaymentDto.getLastPaymentDate());
        actionForm.setAmount(accountPaymentDto.getTotalPaymentDue());
        actionForm.setTransferPaymentTypeId(this.legacyAcceptedPaymentTypeDao.getSavingsTransferId());
        return mapping.findForward(ActionForwards.load_success.toString());
    }

    public  AccountApplyPaymentAction();
    @Deprecated // For unit testing public  AccountApplyPaymentAction(AccountServiceFacade accountServiceFacade,
            LegacyAcceptedPaymentTypeDao legacyAcceptedPaymentTypeDao);

}