protected static $_taskOptions = [];
+ protected static $_taskToProject = null;
+
public function getOptions()
{
$invoicable = "all";
}
}
- if (null === static::$_projects) {
- static::$_projects = static::_getProjects();
- }
- if (null === static::$_projectTasks) {
- static::$_projectTasks = static::_getTasks();
- }
+ static::_getData();
if (!isset(static::$_taskOptions[$invoicable])) {
static::$_taskOptions[$invoicable] = [];
return static::$_taskOptions[$invoicable];
}
- public static function getInvoiceData($company)
+ protected static function _getData()
{
if (null === static::$_projects) {
static::$_projects = static::_getProjects();
}
if (null === static::$_projectTasks) {
- static::$_projectTasks = static::_getTasks();
+ $t = static::_getTasks();
+ static::$_projectTasks = $t['tasks'];
+ static::$_taskToProject = $t['tasksToProjects'];
}
+ }
+
+ public static function taskToProject($task)
+ {
+ static::_getData();
+ return static::$_taskToProject[$task] ?? false;
+ }
+
+ public static function getInvoiceData($company)
+ {
+ static::_getData();
$res = [];
protected static function _getTasks()
{
return Cache::remember('fluidbook_extranet_tasks', 360, function () {
- $tasks = [];
+ $res = ['tasks' => [], 'tasksToProjects' => []];
foreach (DB::connection('extranet')->table('taches')->orderBy('projet', 'DESC')->orderBy('tache_id', 'ASC')->get()->all() as $task) {
- if (!isset($tasks[$task->projet])) {
- $tasks[$task->projet] = [];
+ $res['tasksToProjects'][$task->tache_id] = $task->projet;
+ if (!isset($res['tasks'][$task->projet])) {
+ $res['tasks'][$task->projet] = [];
}
- $tasks[$task->projet][$task->tache_id] = $task;
+ $res['tasks'][$task->projet][$task->tache_id] = $task;
}
- return $tasks;
+ return $res;
});
}