fixes for CRM-13476
[civicrm-core.git] / CRM / Batch / Page / AJAX.php
1 <?php
2 /*
3 +--------------------------------------------------------------------+
4 | CiviCRM version 4.3 |
5 +--------------------------------------------------------------------+
6 | Copyright CiviCRM LLC (c) 2004-2013 |
7 +--------------------------------------------------------------------+
8 | This file is a part of CiviCRM. |
9 | |
10 | CiviCRM is free software; you can copy, modify, and distribute it |
11 | under the terms of the GNU Affero General Public License |
12 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
13 | |
14 | CiviCRM is distributed in the hope that it will be useful, but |
15 | WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
17 | See the GNU Affero General Public License for more details. |
18 | |
19 | You should have received a copy of the GNU Affero General Public |
20 | License and the CiviCRM Licensing Exception along |
21 | with this program; if not, contact CiviCRM LLC |
22 | at info[AT]civicrm[DOT]org. If you have questions about the |
23 | GNU Affero General Public License or the licensing of CiviCRM, |
24 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
25 +--------------------------------------------------------------------+
26 */
27
28 /**
29 *
30 * @package CRM
31 * @copyright CiviCRM LLC (c) 2004-2013
32 * $Id$
33 *
34 */
35
36 /**
37 * This class contains functions that are called using AJAX
38 */
39 class CRM_Batch_Page_AJAX {
40
41 /**
42 * Save record
43 */
44 function batchSave() {
45 // save in cache table
46 $batchId = CRM_Utils_Type::escape($_POST['batch_id'], 'Positive');
47
48 $cacheKeyString = CRM_Batch_BAO_Batch::getCacheKeyForBatch($batchId);
49
50 // check if we can retrieve from database cache
51 unset($_POST['qfKey']);
52 CRM_Core_BAO_Cache::setItem($_POST, 'batch entry', $cacheKeyString);
53
54 // return true if saved correctly
55 CRM_Utils_System::civiExit();
56 }
57
58 /**
59 * Retrieve records
60 */
61 static function getBatchList() {
62 $sortMapper = array(
63 0 => 'batch.title',
64 1 => 'batch.type_id',
65 2 => '',
66 3 => 'batch.total',
67 4 => 'batch.status_id',
68 5 => '',
69 );
70
71 $sEcho = CRM_Utils_Type::escape($_REQUEST['sEcho'], 'Integer');
72 $offset =
73 isset($_REQUEST['iDisplayStart']) ? CRM_Utils_Type::escape($_REQUEST['iDisplayStart'], 'Integer') : 0;
74 $rowCount =
75 isset($_REQUEST['iDisplayLength']) ? CRM_Utils_Type::escape($_REQUEST['iDisplayLength'], 'Integer') : 25;
76 $sort =
77 isset($_REQUEST['iSortCol_0']) ?
78 CRM_Utils_Array::value(CRM_Utils_Type::escape($_REQUEST['iSortCol_0'], 'Integer'), $sortMapper) :
79 NULL;
80 $sortOrder =
81 isset($_REQUEST['sSortDir_0']) ? CRM_Utils_Type::escape($_REQUEST['sSortDir_0'], 'String') : 'asc';
82 $context =
83 isset($_REQUEST['context']) ? CRM_Utils_Type::escape($_REQUEST['context'], 'String') : NULL;
84
85 $params = $_REQUEST;
86 if ($sort && $sortOrder) {
87 $params['sortBy'] = $sort . ' ' . $sortOrder;
88 }
89
90 $params['page'] = ($offset / $rowCount) + 1;
91 $params['rp'] = $rowCount;
92
93 if ($context != 'financialBatch') {
94 // data entry status batches
95 $params['status_id'] = 3;
96 }
97
98 $params['context'] = $context;
99
100 // get batch list
101 $batches = CRM_Batch_BAO_Batch::getBatchListSelector($params);
102
103 $iFilteredTotal = $iTotal = $params['total'];
104 $selectorElements = array(
105 'batch_name',
106 'payment_instrument',
107 'item_count',
108 'total',
109 'status',
110 'created_by',
111 'links',
112 );
113
114 if ($context == 'financialBatch') {
115 $selectorElements = array_merge(array('check'), $selectorElements);
116 }
117 echo CRM_Utils_JSON::encodeDataTableSelector($batches, $sEcho, $iTotal, $iFilteredTotal, $selectorElements);
118 CRM_Utils_System::civiExit();
119 }
120 }
121