0009768: Use ModelConfig for Timetracker models
[tine20] / tine20 / Timetracker / Controller.php
1 <?php
2 /**
3  * Tine 2.0
4  * 
5  * @package     Timetracker
6  * @subpackage  Controller
7  * @license     http://www.gnu.org/licenses/agpl.html AGPL Version 3
8  * @author      Cornelius Weiss <c.weiss@metaways.de>
9  * @copyright   Copyright (c) 2010 Metaways Infosystems GmbH (http://www.metaways.de)
10  *
11  */
12
13 /**
14  * Timetracker Controller
15  * 
16  * @package     Timetracker
17  * @subpackage  Controller
18  */
19 class Timetracker_Controller extends Tinebase_Controller_Abstract
20 {
21     /**
22      * application name
23      *
24      * @var string
25      */
26     protected $_applicationName = 'Timetracker';
27     
28     /**
29      * holds the default Model of this application
30      * @var string
31      */
32     protected static $_defaultModel = 'Timetracker_Model_Timeaccount';
33     
34     /**
35      * the constructor
36      *
37      * don't use the constructor. use the singleton 
38      */
39     private function __construct() {
40     }
41     
42     /**
43      * don't clone. Use the singleton.
44      *
45      */
46     private function __clone() 
47     {
48     }
49     
50     /**
51      * holds self
52      * @var Timetracker_Controller
53      */
54     private static $_instance = NULL;
55     
56     /**
57      * singleton
58      *
59      * @return Timetracker_Controller
60      */
61     public static function getInstance() 
62     {
63         if (self::$_instance === NULL) {
64             self::$_instance = new self();
65         }
66         return self::$_instance;
67     }
68     
69     /**
70      * calls Timetracker_Controller_Timesheet::findTimesheetsByTimeaccountAndPeriod arguments suitable for async job
71      * returns true if cache could be saved.
72      * 
73      * @param array $args
74      * @return boolean
75      */
76     public function findTimesheetsForReport(array $args)
77     {
78         $cache = Tinebase_Core::getCache();
79         $results = Timetracker_Controller_Timesheet::getInstance()->findTimesheetsByTimeaccountAndPeriod($args['timeaccountId'], $args['startDate'], $args['endDate'], $args['destination'], $args['taCostCenter']);
80         $m = str_replace('-','', $args['month']);
81         return $cache->save(array('results' => $results), $args['cacheId'], array($args['cacheId'] . '_' . $m));
82     }
83 }