diff --git a/ChangeLog b/ChangeLog
index a7aff6c423f..aa627126b38 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -49,7 +49,8 @@ For users:
- New: task #11003: checkbox on checks to deposit
- New: Numbering module for invoice use same number for invoice
and credit note if mask is same.
-- New: Add status into export. Add default language into export.
+- New: Add status into export. Add default language into export.
+- New: Can remove a project if project has tasks.
- Fix: Better Postgresql compatibility.
For developers:
diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang
index 6988412f72d..fbc29c2e42b 100755
--- a/htdocs/langs/en_US/projects.lang
+++ b/htdocs/langs/en_US/projects.lang
@@ -83,6 +83,7 @@ NoTasks=No tasks for this project
LinkedToAnotherCompany=Linked to other third party
TaskIsNotAffectedToYou=Task not allocated to you
ErrorTimeSpentIsEmpty=Time spent is empty
+ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (%s tasks at the moment) and all inputs of time spent.
##### Types de contacts #####
TypeContact_project_internal_PROJECTLEADER=Project leader
TypeContact_project_external_PROJECTLEADER=Project leader
diff --git a/htdocs/langs/fr_FR/projects.lang b/htdocs/langs/fr_FR/projects.lang
index 902c9709ea6..f547a466180 100755
--- a/htdocs/langs/fr_FR/projects.lang
+++ b/htdocs/langs/fr_FR/projects.lang
@@ -83,6 +83,7 @@ NoTasks=Aucune tâche pour ce projet
LinkedToAnotherCompany=Liés à autre société
TaskIsNotAffectedToYou=Tâche qui ne vous est pas affectée
ErrorTimeSpentIsEmpty=Le temps consommé n'est pas renseigné
+ThisWillAlsoRemoveTasks=Cette opération détruira également les taches du projet (%s taches actuellement) et le suivi des consommés.
##### Types de contacts #####
TypeContact_project_internal_PROJECTLEADER=Chef de projet
TypeContact_project_external_PROJECTLEADER=Chef de projet
diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php
index bfafaeb57ae..1d92055ae38 100644
--- a/htdocs/projet/class/project.class.php
+++ b/htdocs/projet/class/project.class.php
@@ -281,9 +281,9 @@ class Project extends CommonObject
}
/**
- * \brief Return list of projects
- * \param socid To filter on a particular third party
- * \return array Liste of projects
+ * Return list of projects
+ * @param socid To filter on a particular third party
+ * @return array Liste of projects
*/
function liste_array($socid='')
{
diff --git a/htdocs/projet/fiche.php b/htdocs/projet/fiche.php
index ca0be1c3bd7..1f7d1e46eb7 100644
--- a/htdocs/projet/fiche.php
+++ b/htdocs/projet/fiche.php
@@ -27,6 +27,7 @@
require("../main.inc.php");
require_once(DOL_DOCUMENT_ROOT."/projet/class/project.class.php");
+require_once(DOL_DOCUMENT_ROOT."/projet/class/task.class.php");
require_once(DOL_DOCUMENT_ROOT."/lib/project.lib.php");
require_once(DOL_DOCUMENT_ROOT."/core/class/html.formfile.class.php");
require_once(DOL_DOCUMENT_ROOT."/includes/modules/project/modules_project.php");
@@ -364,7 +365,12 @@ else
// Confirmation delete
if ($_GET["action"] == 'delete')
{
- $ret=$html->form_confirm($_SERVER["PHP_SELF"]."?id=".$project->id,$langs->trans("DeleteAProject"),$langs->trans("ConfirmDeleteAProject"),"confirm_delete",'','',1);
+ $text=$langs->trans("ConfirmDeleteAProject");
+ $task=new Task($db);
+ $taskarray=$task->getTasksArray(0,0,$project->id,0,0);
+ $nboftask=sizeof($taskarray);
+ if ($nboftask) $text.='
'.img_warning().' '.$langs->trans("ThisWillAlsoRemoveTasks",$nboftask);
+ $ret=$html->form_confirm($_SERVER["PHP_SELF"]."?id=".$project->id,$langs->trans("DeleteAProject"),$text,"confirm_delete",'','',1);
if ($ret == 'html') print '
';
}