Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into develop
Conflicts: htdocs/projet/class/task.class.php
This commit is contained in:
commit
70d255740b
@ -99,6 +99,8 @@ if (GETPOST('roworder', 'alpha', 3) && GETPOST('table_element_line', 'aZ09', 3)
|
|||||||
$perm = 1;
|
$perm = 1;
|
||||||
} elseif ($table_element_line == 'ecm_files' && $fk_element == 'fk_ticket' && !empty($user->rights->ticket->write)) {
|
} elseif ($table_element_line == 'ecm_files' && $fk_element == 'fk_ticket' && !empty($user->rights->ticket->write)) {
|
||||||
$perm = 1;
|
$perm = 1;
|
||||||
|
} elseif ($table_element_line == 'projet_task' && $fk_element == 'fk_projet' && $user->rights->projet->creer) {
|
||||||
|
$perm = 1;
|
||||||
} else {
|
} else {
|
||||||
$tmparray = explode('_', $table_element_line);
|
$tmparray = explode('_', $table_element_line);
|
||||||
$tmpmodule = $tmparray[0]; $tmpobject = preg_replace('/line$/', '', $tmparray[1]);
|
$tmpmodule = $tmparray[0]; $tmpobject = preg_replace('/line$/', '', $tmparray[1]);
|
||||||
@ -111,7 +113,7 @@ if (GETPOST('roworder', 'alpha', 3) && GETPOST('table_element_line', 'aZ09', 3)
|
|||||||
// We should not be here. If we are not allowed to reorder rows, feature should not be visible on script.
|
// We should not be here. If we are not allowed to reorder rows, feature should not be visible on script.
|
||||||
// If we are here, it is a hack attempt, so we report a warning.
|
// If we are here, it is a hack attempt, so we report a warning.
|
||||||
print 'Bad permission to modify position of lines for object in table '.$table_element_line;
|
print 'Bad permission to modify position of lines for object in table '.$table_element_line;
|
||||||
dol_syslog('Bad permission to modify position of lines for object in table '.$table_element_line.', fk_element '.$fk_element, LOG_WARNING);
|
dol_syslog('Bad permission to modify position of lines for object in table='.$table_element_line.', fk_element='.$fk_element, LOG_WARNING);
|
||||||
accessforbidden('Bad permission to modify position of lines for object in table '.$table_element_line);
|
accessforbidden('Bad permission to modify position of lines for object in table '.$table_element_line);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -977,6 +977,7 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Computed progress
|
||||||
if (count($arrayfields) > 0 && !empty($arrayfields['t.progress_calculated']['checked'])) {
|
if (count($arrayfields) > 0 && !empty($arrayfields['t.progress_calculated']['checked'])) {
|
||||||
print '<td class="nowrap liste_total right">';
|
print '<td class="nowrap liste_total right">';
|
||||||
if ($total_projectlinesa_planned) {
|
if ($total_projectlinesa_planned) {
|
||||||
@ -984,6 +985,8 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t
|
|||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Declared progress
|
||||||
if (count($arrayfields) > 0 && !empty($arrayfields['t.progress']['checked'])) {
|
if (count($arrayfields) > 0 && !empty($arrayfields['t.progress']['checked'])) {
|
||||||
print '<td class="nowrap liste_total right">';
|
print '<td class="nowrap liste_total right">';
|
||||||
if ($total_projectlinesa_planned) {
|
if ($total_projectlinesa_planned) {
|
||||||
|
|||||||
@ -101,8 +101,11 @@ class InterfaceEventOrganization extends DolibarrTriggers
|
|||||||
$defaultref = '';
|
$defaultref = '';
|
||||||
}
|
}
|
||||||
$task->ref = $defaultref;
|
$task->ref = $defaultref;
|
||||||
$task->date_start = $object->date_start;
|
|
||||||
$task->date_end = $object->date_end;
|
// TODO Can set offset for start date or endline from setup of task to create when creating event
|
||||||
|
$task->date_start = null;
|
||||||
|
$task->date_end = null;
|
||||||
|
|
||||||
$result = $task->create($user);
|
$result = $task->create($user);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$this->errors=array_merge($this->errors, $task->errors);
|
$this->errors=array_merge($this->errors, $task->errors);
|
||||||
|
|||||||
@ -966,7 +966,7 @@ class EmailCollector extends CommonObject
|
|||||||
|
|
||||||
dol_syslog("EmailCollector::doCollectOneCollector start for id=".$this->id, LOG_DEBUG);
|
dol_syslog("EmailCollector::doCollectOneCollector start for id=".$this->id, LOG_DEBUG);
|
||||||
|
|
||||||
$langs->loadLangs(array("project", "companies", "mails", "errors", "ticket", "agenda"));
|
$langs->loadLangs(array("project", "companies", "mails", "errors", "ticket", "agenda", "commercial"));
|
||||||
|
|
||||||
$error = 0;
|
$error = 0;
|
||||||
$this->output = '';
|
$this->output = '';
|
||||||
|
|||||||
@ -37,8 +37,8 @@ OtherInfo=Other information
|
|||||||
DeleteCptCategory=Remove accounting account from group
|
DeleteCptCategory=Remove accounting account from group
|
||||||
ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group?
|
ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group?
|
||||||
JournalizationInLedgerStatus=Status of journalization
|
JournalizationInLedgerStatus=Status of journalization
|
||||||
AlreadyInGeneralLedger=Already transferred in accounting journals and ledger
|
AlreadyInGeneralLedger=Already transferred to accounting journals and ledger
|
||||||
NotYetInGeneralLedger=Not yet transferred in accouting journals and ledger
|
NotYetInGeneralLedger=Not yet transferred to accouting journals and ledger
|
||||||
GroupIsEmptyCheckSetup=Group is empty, check setup of the personalized accounting group
|
GroupIsEmptyCheckSetup=Group is empty, check setup of the personalized accounting group
|
||||||
DetailByAccount=Show detail by account
|
DetailByAccount=Show detail by account
|
||||||
AccountWithNonZeroValues=Accounts with non-zero values
|
AccountWithNonZeroValues=Accounts with non-zero values
|
||||||
@ -298,7 +298,7 @@ NoNewRecordSaved=No more record to journalize
|
|||||||
ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account
|
ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account
|
||||||
ChangeBinding=Change the binding
|
ChangeBinding=Change the binding
|
||||||
Accounted=Accounted in ledger
|
Accounted=Accounted in ledger
|
||||||
NotYetAccounted=Not yet accounted in the ledger
|
NotYetAccounted=Not yet transferred to accounting
|
||||||
ShowTutorial=Show Tutorial
|
ShowTutorial=Show Tutorial
|
||||||
NotReconciled=Not reconciled
|
NotReconciled=Not reconciled
|
||||||
WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view
|
WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view
|
||||||
|
|||||||
@ -814,7 +814,7 @@ class Project extends CommonObject
|
|||||||
'propal'=>'fk_projet', 'commande'=>'fk_projet', 'facture'=>'fk_projet',
|
'propal'=>'fk_projet', 'commande'=>'fk_projet', 'facture'=>'fk_projet',
|
||||||
'supplier_proposal'=>'fk_projet', 'commande_fournisseur'=>'fk_projet', 'facture_fourn'=>'fk_projet',
|
'supplier_proposal'=>'fk_projet', 'commande_fournisseur'=>'fk_projet', 'facture_fourn'=>'fk_projet',
|
||||||
'expensereport_det'=>'fk_projet', 'contrat'=>'fk_projet', 'fichinter'=>'fk_projet', 'don'=>'fk_projet',
|
'expensereport_det'=>'fk_projet', 'contrat'=>'fk_projet', 'fichinter'=>'fk_projet', 'don'=>'fk_projet',
|
||||||
'actioncomm'=>'fk_project', 'mrp_mo'=>'fk_project'
|
'actioncomm'=>'fk_project', 'mrp_mo'=>'fk_project', 'entrepot'=>'fk_project'
|
||||||
);
|
);
|
||||||
foreach ($listoftables as $key => $value) {
|
foreach ($listoftables as $key => $value) {
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX.$key." SET ".$value." = NULL where ".$value." = ".((int) $this->id);
|
$sql = "UPDATE ".MAIN_DB_PREFIX.$key." SET ".$value." = NULL where ".$value." = ".((int) $this->id);
|
||||||
|
|||||||
@ -181,8 +181,8 @@ class Task extends CommonObject
|
|||||||
$sql .= ", '".$this->db->escape($this->description)."'";
|
$sql .= ", '".$this->db->escape($this->description)."'";
|
||||||
$sql .= ", '".$this->db->idate($now)."'";
|
$sql .= ", '".$this->db->idate($now)."'";
|
||||||
$sql .= ", ".((int) $user->id);
|
$sql .= ", ".((int) $user->id);
|
||||||
$sql .= ", ".($this->date_start != '' ? "'".$this->db->idate($this->date_start)."'" : 'null');
|
$sql .= ", ".($this->date_start ? "'".$this->db->idate($this->date_start)."'" : 'null');
|
||||||
$sql .= ", ".($this->date_end != '' ? "'".$this->db->idate($this->date_end)."'" : 'null');
|
$sql .= ", ".($this->date_end ? "'".$this->db->idate($this->date_end)."'" : 'null');
|
||||||
$sql .= ", ".(($this->planned_workload != '' && $this->planned_workload >= 0) ? ((int) $this->planned_workload) : 'null');
|
$sql .= ", ".(($this->planned_workload != '' && $this->planned_workload >= 0) ? ((int) $this->planned_workload) : 'null');
|
||||||
$sql .= ", ".(($this->progress != '' && $this->progress >= 0) ? ((int) $this->progress) : 'null');
|
$sql .= ", ".(($this->progress != '' && $this->progress >= 0) ? ((int) $this->progress) : 'null');
|
||||||
$sql .= ")";
|
$sql .= ")";
|
||||||
|
|||||||
@ -89,6 +89,7 @@ if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/projectnameonly/', $c
|
|||||||
$title = ($object->ref ? $object->ref.' '.$object->name.' - ' : '').$langs->trans("Gantt");
|
$title = ($object->ref ? $object->ref.' '.$object->name.' - ' : '').$langs->trans("Gantt");
|
||||||
}
|
}
|
||||||
$help_url = "EN:Module_Projects|FR:Module_Projets|ES:Módulo_Proyectos";
|
$help_url = "EN:Module_Projects|FR:Module_Projets|ES:Módulo_Proyectos";
|
||||||
|
|
||||||
llxHeader("", $title, $help_url, '', 0, 0, $arrayofjs, $arrayofcss);
|
llxHeader("", $title, $help_url, '', 0, 0, $arrayofjs, $arrayofcss);
|
||||||
|
|
||||||
if (($id > 0 && is_numeric($id)) || !empty($ref)) {
|
if (($id > 0 && is_numeric($id)) || !empty($ref)) {
|
||||||
@ -136,29 +137,36 @@ if (($id > 0 && is_numeric($id)) || !empty($ref)) {
|
|||||||
print '<table class="border tableforfield centpercent">';
|
print '<table class="border tableforfield centpercent">';
|
||||||
|
|
||||||
// Usage
|
// Usage
|
||||||
print '<tr><td class="tdtop">';
|
if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) {
|
||||||
print $langs->trans("Usage");
|
print '<tr><td class="tdtop">';
|
||||||
print '</td>';
|
print $langs->trans("Usage");
|
||||||
print '<td>';
|
print '</td>';
|
||||||
if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES)) {
|
print '<td>';
|
||||||
print '<input type="checkbox" disabled name="usage_opportunity"'.(GETPOSTISSET('usage_opportunity') ? (GETPOST('usage_opportunity', 'alpha') != '' ? ' checked="checked"' : '') : ($object->usage_opportunity ? ' checked="checked"' : '')).'"> ';
|
if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES)) {
|
||||||
$htmltext = $langs->trans("ProjectFollowOpportunity");
|
print '<input type="checkbox" disabled name="usage_opportunity"'.(GETPOSTISSET('usage_opportunity') ? (GETPOST('usage_opportunity', 'alpha') != '' ? ' checked="checked"' : '') : ($object->usage_opportunity ? ' checked="checked"' : '')).'"> ';
|
||||||
print $form->textwithpicto($langs->trans("ProjectFollowOpportunity"), $htmltext);
|
$htmltext = $langs->trans("ProjectFollowOpportunity");
|
||||||
print '<br>';
|
print $form->textwithpicto($langs->trans("ProjectFollowOpportunity"), $htmltext);
|
||||||
|
print '<br>';
|
||||||
|
}
|
||||||
|
if (empty($conf->global->PROJECT_HIDE_TASKS)) {
|
||||||
|
print '<input type="checkbox" disabled name="usage_task"'.(GETPOSTISSET('usage_task') ? (GETPOST('usage_task', 'alpha') != '' ? ' checked="checked"' : '') : ($object->usage_task ? ' checked="checked"' : '')).'"> ';
|
||||||
|
$htmltext = $langs->trans("ProjectFollowTasks");
|
||||||
|
print $form->textwithpicto($langs->trans("ProjectFollowTasks"), $htmltext);
|
||||||
|
print '<br>';
|
||||||
|
}
|
||||||
|
if (empty($conf->global->PROJECT_HIDE_TASKS) && !empty($conf->global->PROJECT_BILL_TIME_SPENT)) {
|
||||||
|
print '<input type="checkbox" disabled name="usage_bill_time"'.(GETPOSTISSET('usage_bill_time') ? (GETPOST('usage_bill_time', 'alpha') != '' ? ' checked="checked"' : '') : ($object->usage_bill_time ? ' checked="checked"' : '')).'"> ';
|
||||||
|
$htmltext = $langs->trans("ProjectBillTimeDescription");
|
||||||
|
print $form->textwithpicto($langs->trans("BillTime"), $htmltext);
|
||||||
|
print '<br>';
|
||||||
|
}
|
||||||
|
if (!empty($conf->eventorganization->enabled)) {
|
||||||
|
print '<input type="checkbox" disabled name="usage_organize_event"'.(GETPOSTISSET('usage_organize_event') ? (GETPOST('usage_organize_event', 'alpha') != '' ? ' checked="checked"' : '') : ($object->usage_organize_event ? ' checked="checked"' : '')).'"> ';
|
||||||
|
$htmltext = $langs->trans("EventOrganizationDescriptionLong");
|
||||||
|
print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext);
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
if (empty($conf->global->PROJECT_HIDE_TASKS)) {
|
|
||||||
print '<input type="checkbox" disabled name="usage_task"'.(GETPOSTISSET('usage_task') ? (GETPOST('usage_task', 'alpha') != '' ? ' checked="checked"' : '') : ($object->usage_task ? ' checked="checked"' : '')).'"> ';
|
|
||||||
$htmltext = $langs->trans("ProjectFollowTasks");
|
|
||||||
print $form->textwithpicto($langs->trans("ProjectFollowTasks"), $htmltext);
|
|
||||||
print '<br>';
|
|
||||||
}
|
|
||||||
if (!empty($conf->global->PROJECT_BILL_TIME_SPENT)) {
|
|
||||||
print '<input type="checkbox" disabled name="usage_bill_time"'.(GETPOSTISSET('usage_bill_time') ? (GETPOST('usage_bill_time', 'alpha') != '' ? ' checked="checked"' : '') : ($object->usage_bill_time ? ' checked="checked"' : '')).'"> ';
|
|
||||||
$htmltext = $langs->trans("ProjectBillTimeDescription");
|
|
||||||
print $form->textwithpicto($langs->trans("BillTime"), $htmltext);
|
|
||||||
print '<br>';
|
|
||||||
}
|
|
||||||
print '</td></tr>';
|
|
||||||
|
|
||||||
// Visibility
|
// Visibility
|
||||||
print '<tr><td class="titlefield">'.$langs->trans("Visibility").'</td><td>';
|
print '<tr><td class="titlefield">'.$langs->trans("Visibility").'</td><td>';
|
||||||
|
|||||||
@ -555,7 +555,7 @@ if ($id > 0 || !empty($ref)) {
|
|||||||
print '<div class="fichehalfleft">';
|
print '<div class="fichehalfleft">';
|
||||||
print '<div class="underbanner clearboth"></div>';
|
print '<div class="underbanner clearboth"></div>';
|
||||||
|
|
||||||
print '<table class="border tableforfield" width="100%">';
|
print '<table class="border tableforfield centpercent">';
|
||||||
|
|
||||||
// Usage
|
// Usage
|
||||||
if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) {
|
if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || !empty($conf->eventorganization->enabled)) {
|
||||||
@ -628,7 +628,7 @@ if ($id > 0 || !empty($ref)) {
|
|||||||
print '<div class="ficheaddleft">';
|
print '<div class="ficheaddleft">';
|
||||||
print '<div class="underbanner clearboth"></div>';
|
print '<div class="underbanner clearboth"></div>';
|
||||||
|
|
||||||
print '<table class="border tableforfield" width="100%">';
|
print '<table class="border tableforfield centpercent">';
|
||||||
|
|
||||||
// Description
|
// Description
|
||||||
print '<td class="titlefield tdtop">'.$langs->trans("Description").'</td><td>';
|
print '<td class="titlefield tdtop">'.$langs->trans("Description").'</td><td>';
|
||||||
@ -637,7 +637,7 @@ if ($id > 0 || !empty($ref)) {
|
|||||||
|
|
||||||
// Categories
|
// Categories
|
||||||
if ($conf->categorie->enabled) {
|
if ($conf->categorie->enabled) {
|
||||||
print '<tr><td valign="middle">'.$langs->trans("Categories").'</td><td>';
|
print '<tr><td class="valignmiddle">'.$langs->trans("Categories").'</td><td>';
|
||||||
print $form->showCategories($object->id, Categorie::TYPE_PROJECT, 1);
|
print $form->showCategories($object->id, Categorie::TYPE_PROJECT, 1);
|
||||||
print "</td></tr>";
|
print "</td></tr>";
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user