<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.4 |
+ | CiviCRM version 4.6 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2013 |
+ | Copyright CiviCRM LLC (c) 2004-2014 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
/**
*
* @package CRM
- * @copyright CiviCRM LLC (c) 2004-2013
+ * @copyright CiviCRM LLC (c) 2004-2014
* $Id$
*
*/
*
*/
class CRM_Contribute_Task {
- CONST DELETE_CONTRIBUTIONS = 1, PRINT_CONTRIBUTIONS = 2, EXPORT_CONTRIBUTIONS = 3, BATCH_CONTRIBUTIONS = 4, EMAIL_CONTACTS = 5, UPDATE_STATUS = 6, PDF_RECEIPT = 7;
+ const DELETE_CONTRIBUTIONS = 1, PRINT_CONTRIBUTIONS = 2, EXPORT_CONTRIBUTIONS = 3, BATCH_CONTRIBUTIONS = 4, EMAIL_CONTACTS = 5, UPDATE_STATUS = 6, PDF_RECEIPT = 7;
/**
- * the task array
+ * The task array
*
* @var array
* @static
static $_tasks = NULL;
/**
- * the optional task array
+ * The optional task array
*
* @var array
* @static
*
* @return array the set of tasks for a group of contacts
* @static
- * @access public
*/
- static function &tasks() {
+ public static function &tasks() {
if (!(self::$_tasks)) {
self::$_tasks = array(
- 1 => array('title' => ts('Delete Contributions'),
+ 1 => array(
+ 'title' => ts('Delete Contributions'),
'class' => 'CRM_Contribute_Form_Task_Delete',
'result' => FALSE,
),
- 2 => array('title' => ts('Print Contributions'),
+ 2 => array(
+ 'title' => ts('Print Selected Rows'),
'class' => 'CRM_Contribute_Form_Task_Print',
'result' => FALSE,
),
- 3 => array('title' => ts('Export Contributions'),
+ 3 => array(
+ 'title' => ts('Export Contributions'),
'class' => array(
'CRM_Export_Form_Select',
'CRM_Export_Form_Map',
),
'result' => FALSE,
),
- 4 => array('title' => ts('Batch Update Contributions Via Profile'),
+ 4 => array(
+ 'title' => ts('Batch Update Contributions Via Profile'),
'class' => array(
'CRM_Contribute_Form_Task_PickProfile',
'CRM_Contribute_Form_Task_Batch',
),
'result' => TRUE,
),
- 5 => array('title' => ts('Send Email to Contacts'),
+ 5 => array(
+ 'title' => ts('Send Email to Contacts'),
'class' => 'CRM_Contribute_Form_Task_Email',
'result' => TRUE,
),
- 6 => array('title' => ts('Update Pending Contribution Status'),
+ 6 => array(
+ 'title' => ts('Update Pending Contribution Status'),
'class' => 'CRM_Contribute_Form_Task_Status',
'result' => TRUE,
),
- 7 => array('title' => ts('Print or Email Contribution Receipts'),
+ 7 => array(
+ 'title' => ts('Print or Email Contribution Receipts'),
'class' => 'CRM_Contribute_Form_Task_PDF',
'result' => FALSE,
),
- 8 => array('title' => ts('Thank-you Letters for Contributions'),
+ 8 => array(
+ 'title' => ts('Thank-you Letters for Contributions'),
'class' => 'CRM_Contribute_Form_Task_PDFLetter',
'result' => FALSE,
),
+ 9 => array(
+ 'title' => ts('Print or Email Contribution Invoices'),
+ 'class' => 'CRM_Contribute_Form_Task_Invoice',
+ 'result' => FALSE,
+ ),
);
//CRM-4418, check for delete
if (!CRM_Core_Permission::check('delete in CiviContribute')) {
unset(self::$_tasks[1]);
}
+ //CRM-12920 - check for edit permission
+ if( !CRM_Core_Permission::check('edit contributions') ){
+ unset(self::$_tasks[4], self::$_tasks[6]);
+ }
+ // remove action "Print or Email Contribution Invoices"
+ $invoiceSettings = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::CONTRIBUTE_PREFERENCES_NAME, 'contribution_invoice_settings');
+ $invoicing = CRM_Utils_Array::value('invoicing', $invoiceSettings);
+ if (!$invoicing) {
+ unset(self::$_tasks[9]);
+ }
CRM_Utils_Hook::searchTasks('contribution', self::$_tasks);
asort(self::$_tasks);
}
*
* @return array the set of task titles
* @static
- * @access public
*/
- static function &taskTitles() {
+ public static function &taskTitles() {
self::tasks();
$titles = array();
foreach (self::$_tasks as $id => $value) {
- // skip Print Contribution task
- if ($id != 2) {
- $titles[$id] = $value['title'];
- }
+ $titles[$id] = $value['title'];
}
return $titles;
}
/**
- * show tasks selectively based on the permission level
+ * Show tasks selectively based on the permission level
* of the user
*
* @param int $permission
*
+ * @param bool $softCreditFiltering
+ *
* @return array set of tasks that are valid for the user
- * @access public
*/
- static function &permissionedTaskTitles($permission) {
+ public static function &permissionedTaskTitles($permission, $softCreditFiltering = FALSE) {
$tasks = array();
if (($permission == CRM_Core_Permission::EDIT)
|| CRM_Core_Permission::check('edit contributions')
$tasks[1] = self::$_tasks[1]['title'];
}
}
+ if ($softCreditFiltering) {
+ unset($tasks[4], $tasks[7]);
+ }
return $tasks;
}
*
* @return array the set of tasks for a group of contributors
* @static
- * @access public
*/
- static function getTask($value) {
+ public static function getTask($value) {
self::tasks();
if (!$value || !CRM_Utils_Array::value($value, self::$_tasks)) {
// make the print task by default
);
}
}
-