From b5c3483d6705ba2bd9cc936bc21638a2cb129b0d Mon Sep 17 00:00:00 2001 From: kurund Date: Mon, 11 Aug 2014 20:56:57 +0530 Subject: [PATCH] redirection fixes after email invoice and code cleanup --- CRM/Contribute/Form/Task/Invoice.php | 36 ++++++++++++++++++++------ CRM/Contribute/xml/Menu/Contribute.xml | 2 +- CRM/Financial/Page/AJAX.php | 12 --------- 3 files changed, 29 insertions(+), 21 deletions(-) diff --git a/CRM/Contribute/Form/Task/Invoice.php b/CRM/Contribute/Form/Task/Invoice.php index bed09c42aa..4affdacaeb 100644 --- a/CRM/Contribute/Form/Task/Invoice.php +++ b/CRM/Contribute/Form/Task/Invoice.php @@ -84,6 +84,14 @@ class CRM_Contribute_Form_Task_Invoice extends CRM_Contribute_Form_Task { $this->_componentClause = " civicrm_contribution.id IN ( $id ) "; $this->_single = TRUE; $this->assign('totalSelectedContributions', 1); + + // set the redirection after actions + $contactId = CRM_Utils_Request::retrieve('cid', 'Positive', $this, FALSE); + $url = CRM_Utils_System::url('civicrm/contact/view/contribution', + "action=view&reset=1&id={$id}&cid={$contactId}&context=contribution&selectedChild=contribute" + ); + + CRM_Core_Session::singleton()->pushUserContext($url); } else { parent::preProcess(); @@ -188,15 +196,15 @@ class CRM_Contribute_Form_Task_Invoice extends CRM_Contribute_Form_Task { 'cols' => 40 )); - if (in_array("email", $this->urlPath)) { + if ($this->_selectedOutput == 'email') { $this->addButtons(array( array( - 'type' => 'next', + 'type' => 'upload', 'name' => ts('Email Invoice'), 'isDefault' => TRUE, ), array( - 'type' => 'back', + 'type' => 'cancel', 'name' => ts('Cancel'), ), ) @@ -205,12 +213,12 @@ class CRM_Contribute_Form_Task_Invoice extends CRM_Contribute_Form_Task { else { $this->addButtons(array( array( - 'type' => 'next', + 'type' => 'upload', 'name' => ts('Process Invoice(s)'), 'isDefault' => TRUE, ), array( - 'type' => 'back', + 'type' => 'cancel', 'name' => ts('Cancel'), ), ) @@ -248,7 +256,7 @@ class CRM_Contribute_Form_Task_Invoice extends CRM_Contribute_Form_Task { */ public function postProcess() { $params = $this->controller->exportValues($this->_name); - $this->printPDF($this->_contributionIds, $params, $this->_contactIds); + $this->printPDF($this->_contributionIds, $params, $this->_contactIds, $this); } /** @@ -257,12 +265,13 @@ class CRM_Contribute_Form_Task_Invoice extends CRM_Contribute_Form_Task { * on click of Print Invoices * * @param array $contribIDs Contribution Id - * @param array $params for pdf or email invoices + * @param array $params associated array of submitted values * @param array $contactIds Contact Id + * @param object $form form object * @static * */ - static function printPDF($contribIDs, $params, $contactIds) { + static function printPDF($contribIDs, &$params, $contactIds, &$form) { // get all the details needed to generate a invoice $messageInvoice = array(); $invoiceTemplate = CRM_Core_Smarty::singleton(); @@ -659,5 +668,16 @@ class CRM_Contribute_Form_Task_Invoice extends CRM_Contribute_Form_Task { file_put_contents($fileName, $html); return $fileName; } + + /** + * Callback to perform action on Print Invoice button. + */ + static function getPrintPDF() { + $contributionId = CRM_Utils_Request::retrieve('id', 'Positive', CRM_Core_DAO::$_nullObject, FALSE); + $contributionIDs = array($contributionId); + $contactId = CRM_Utils_Request::retrieve('cid', 'Positive', CRM_Core_DAO::$_nullObject, FALSE); + $params = array('output' => 'pdf_invoice'); + CRM_Contribute_Form_Task_Invoice::printPDF($contributionIDs, $params, $contactId, CRM_Core_DAO::$_nullObject); + } } diff --git a/CRM/Contribute/xml/Menu/Contribute.xml b/CRM/Contribute/xml/Menu/Contribute.xml index 9dc6a30d15..d3ba01373e 100644 --- a/CRM/Contribute/xml/Menu/Contribute.xml +++ b/CRM/Contribute/xml/Menu/Contribute.xml @@ -303,7 +303,7 @@ civicrm/contribute/invoice CiviContributePdf - CRM_Financial_Page_AJAX::getPrintPDF + CRM_Contribute_Form_Task_Invoice::getPrintPDF access CiviContribute 1 620 diff --git a/CRM/Financial/Page/AJAX.php b/CRM/Financial/Page/AJAX.php index fb6d48fef3..5fd5860585 100644 --- a/CRM/Financial/Page/AJAX.php +++ b/CRM/Financial/Page/AJAX.php @@ -516,16 +516,4 @@ class CRM_Financial_Page_AJAX { echo json_encode($batchSummary); CRM_Utils_System::civiExit(); } - - /** - * Callback to perform action on Print Invoice button. - */ - static function getPrintPDF() { - - $contribIDs = CRM_Utils_Request::retrieve('id', 'Positive', $this, FALSE); - $contributionIDs = array($contribIDs); - $contactIds = CRM_Utils_Request::retrieve('cid', 'Positive', $this, FALSE); - $params = array('output' => 'pdf_invoice'); - CRM_Contribute_Form_Task_Invoice::printPDF($contributionIDs , $params, $contactIds); - } } -- 2.25.1