diff --git a/htdocs/contrat/fiche.php b/htdocs/contrat/fiche.php
index 16f4d4eb2b3..c276eb01e17 100644
--- a/htdocs/contrat/fiche.php
+++ b/htdocs/contrat/fiche.php
@@ -81,18 +81,13 @@ if ($_POST["action"] == 'add')
$contrat->soc_id = $_POST["soc_id"];
$contrat->date_contrat = $datecontrat;
- $contrat->commercial_suivi_id = $_POST["commercial_suivi_id"];
- $contrat->commercial_signature_id = $_POST["commercial_signature_id"];
+// Remplacé par la fonction des contacts non limités d'un contrat
+// $contrat->commercial_suivi_id = $_POST["commercial_suivi_id"];
+// $contrat->commercial_signature_id = $_POST["commercial_signature_id"];
$contrat->note = $_POST["note"];
$contrat->projetid = $_POST["projetid"];
$contrat->remise_percent = $_POST["remise_percent"];
- /*
- $contrat->add_product($_POST["idprod1"],$_POST["qty1"],$_POST["remise_percent1"]);
- $contrat->add_product($_POST["idprod2"],$_POST["qty2"],$_POST["remise_percent2"]);
- $contrat->add_product($_POST["idprod3"],$_POST["qty3"],$_POST["remise_percent3"]);
- $contrat->add_product($_POST["idprod4"],$_POST["qty4"],$_POST["remise_percent4"]);
- */
$result = $contrat->create($user,$langs,$conf);
if ($result > 0)
{
@@ -270,6 +265,7 @@ if ($_GET["action"] == 'create')
print '
'.$langs->trans("Customer").': '.$obj->nom.' ';
// Commercial suivi
+/* Remplacé par fonction des contacts d'un contrat
print ''.$langs->trans("SalesRepresentativeFollowUp").' ';
print '';
print ' ';
@@ -319,7 +315,7 @@ if ($_GET["action"] == 'create')
}
print ' ';
-
+*/
print ''.$langs->trans("Date").' : ';
$html->select_date();
print " ";
@@ -331,50 +327,7 @@ if ($_GET["action"] == 'create')
$html->select_array("projetid",$proj->liste_array($soc->id),0,1);
print "";
}
-
- /*
- *
- * Liste des elements
- *
- *
- print ''.$langs->trans("Services").'/'.$langs->trans("Products").' ';
- print '';
-
- $sql = "SELECT p.rowid,p.label,p.ref,p.price FROM ".MAIN_DB_PREFIX."product as p ";
- $sql .= " WHERE envente = 1";
- $sql .= " ORDER BY p.nbvente DESC LIMIT 20";
- if ( $db->query($sql) )
- {
- $opt = " ";
- if ($result)
- {
- $num = $db->num_rows(); $i = 0;
- while ($i < $num)
- {
- $objp = $db->fetch_object();
- $opt .= "rowid\">[$objp->ref] $objp->label : $objp->price \n";
- $i++;
- }
- }
- $db->free();
- }
- else
- {
- print $db->error();
- }
-
- print '';
- print ' ';
- */
+
print ''.$langs->trans("Comment").' ';
print ' ';
@@ -586,8 +539,11 @@ else
print "";
}
+/* Remplacer par fonction des contacts de contrat
+ // Commerciaux
print ''.$langs->trans("SalesRepresentativeFollowUp").' '.$commercial_suivi->fullname.' ';
print ''.$langs->trans("SalesRepresentativeSignature").' '.$commercial_signature->fullname.' ';
+*/
print "";
if ($contrat->brouillon == 1 && $user->rights->contrat->creer)
@@ -638,6 +594,7 @@ else
{
print '';
+ // Libelle
if ($objp->fk_product > 0)
{
print '';
@@ -695,43 +652,45 @@ else
print " \n";
- // Dates mise en service
+ // Dates de en service prévues et effectives
+
print '';
print '';
+
+ // Date prévues
+ print $langs->trans("DateStartPlanned").': ';
+ if ($objp->date_debut) {
+ print dolibarr_print_date($objp->date_debut);
+ // Warning si date prevu passée et pas en service
+ if ($objp->statut == 0 && $objp->date_debut < time() - $conf->contrat->warning_delay) { print " ".img_warning($langs->trans("Late")); }
+ }
+ else print $langs->trans("Unknown");
+ print ' - ';
+ print $langs->trans("DateEndPlanned").': ';
+ if ($objp->date_fin) {
+ print dolibarr_print_date($objp->date_fin);
+ if ($objp->statut == 4 && $objp->date_fin < time() - $conf->contrat->warning_delay) { print " ".img_warning($langs->trans("Late")); }
+ }
+ else print $langs->trans("Unknown");
+
+ print ' ';
+
// Si pas encore activé
if (! $objp->date_debut_reelle) {
- print $langs->trans("DateStartPlanned").': ';
- if ($objp->date_debut) print dolibarr_print_date($objp->date_debut);
- else print $langs->trans("Unknown");
- }
- // Si activé
- if ($objp->date_debut_reelle) {
print $langs->trans("DateStartReal").': ';
if ($objp->date_debut_reelle) print dolibarr_print_date($objp->date_debut_reelle);
else print $langs->trans("ContractStatusNotRunning");
}
-
- print ' - ';
-
- // Si pas encore activé
- if (! $objp->date_debut_reelle) {
- print $langs->trans("DateEndPlanned").': ';
- if ($objp->date_fin) {
- print dolibarr_print_date($objp->date_fin);
- }
- else print $langs->trans("Unknown");
- }
- // Si activé
+ // Si activé et en cours
if ($objp->date_debut_reelle && ! $objp->date_fin_reelle) {
- print $langs->trans("DateEndPlanned").': ';
- if ($objp->date_fin) {
- print dolibarr_print_date($objp->date_fin);
- if ($objp->date_fin < time()) { print " ".img_warning($langs->trans("Late")); }
- }
- else print $langs->trans("Unknown");
+ print $langs->trans("DateStartReal").': ';
+ print dolibarr_print_date($objp->date_debut_reelle);
}
// Si désactivé
if ($objp->date_debut_reelle && $objp->date_fin_reelle) {
+ print $langs->trans("DateStartReal").': ';
+ print dolibarr_print_date($objp->date_debut_reelle);
+ print ' - ';
print $langs->trans("DateEndReal").': ';
print dolibarr_print_date($objp->date_fin_reelle);
}
@@ -776,6 +735,18 @@ else
$html->select_date($objp->date_debut,"date_start_update",0,0,($objp->date_debut>0?0:1));
print ' '.$langs->trans("DateEndPlanned").' ';
$html->select_date($objp->date_fin,"date_end_update",0,0,($objp->date_fin>0?0:1));
+ if ($objp->statut >= 4)
+ {
+ print ' ';
+ print $langs->trans("DateStartReal").' ';
+ $html->select_date($objp->date_debut_reelle,"date_start_real_update",0,0,($objp->date_debut_reelle>0?0:1));
+ print ' ';
+ if ($objp->statut == 5)
+ {
+ print $langs->trans("DateEndReal").' ';
+ $html->select_date($objp->date_fin_reelle,"date_end_real_update",0,0,($objp->date_fin_reelle>0?0:1));
+ }
+ }
print ' ';
print ' ';
diff --git a/htdocs/contrat/ligne.php b/htdocs/contrat/ligne.php
index 1b6aec006f7..7513725faa3 100644
--- a/htdocs/contrat/ligne.php
+++ b/htdocs/contrat/ligne.php
@@ -115,6 +115,7 @@ if ($id > 0)
$author->id = $contrat->user_author_id;
$author->fetch();
+/* Remplacé par fonctions des contacts de contrat
$commercial_signature = new User($db);
$commercial_signature->id = $contrat->commercial_signature_id;
$commercial_signature->fetch();
@@ -122,7 +123,7 @@ if ($id > 0)
$commercial_suivi = new User($db);
$commercial_suivi->id = $contrat->commercial_suivi_id;
$commercial_suivi->fetch();
-
+*/
$h = 0;
$head[$h][0] = DOL_URL_ROOT.'/contrat/fiche.php?id='.$contrat->id;
$head[$h][1] = $langs->trans("ContractCard");
@@ -144,15 +145,36 @@ if ($id > 0)
dolibarr_fiche_head($head, $hselected, $langs->trans("Contract").': '.$contrat->id);
+ /*
+ * Confirmation de la validation activation
+ */
+ if ($_GET["action"] == 'active' && $user->rights->contrat->activer)
+ {
+ $dateactstart = mktime(12, 0 , 0, $_POST["remonth"], $_POST["reday"], $_POST["reyear"]);
+ $dateactend = mktime(12, 0 , 0, $_POST["endmonth"], $_POST["endday"], $_POST["endyear"]);
+ $html->form_confirm("ligne.php?id=".$contrat->id."&ligne=".$_GET["ligne"]."&date=".$dateactstart."&dateend=".$dateactend,$langs->trans("ActivateService"),$langs->trans("ConfirmActivateService",strftime("%A %d %B %Y", $dateactstart)),"confirm_active");
+ print ' ';
+ }
/*
- * Contrat
- */
+ * Confirmation de la validation fermeture
+ */
+ if ($_GET["action"] == 'close' && $user->rights->contrat->activer)
+ {
+ $dateactstart = mktime(12, 0 , 0, $_POST["remonth"], $_POST["reday"], $_POST["reyear"]);
+ $dateactend = mktime(12, 0 , 0, $_POST["endmonth"], $_POST["endday"], $_POST["endyear"]);
+ $html->form_confirm("ligne.php?id=".$contrat->id."&ligne=".$_GET["ligne"]."&date=".$dateactstart."&dateend=".$dateactend,$langs->trans("CloseService"),$langs->trans("ConfirmCloseService",strftime("%A %d %B %Y", $dateactstart)),"confirm_close");
+ print ' ';
+ }
+
+ /*
+ * Contrat
+ */
print '';
// Reference du contrat
- print ''.$langs->trans("Ref").' ';
+ print ' '.$langs->trans("Ref").' ';
print $contrat->ref;
print " ";
@@ -168,25 +190,25 @@ if ($id > 0)
// Date
print ''.$langs->trans("Date").' ';
- print ''.dolibarr_print_date($contrat->date_contrat,"%A %d %B %Y")." \n";
+ print ''.dolibarr_print_date($contrat->date_contrat,"%A %d %B %Y")." \n";
// Factures associées
/*
TODO
*/
- // Projet
+ // Projet
if ($conf->projet->enabled)
{
$langs->load("projects");
- print '';
- print '';
- print ' ';
- if ($_GET["action"] == "classer")
+ print ' ';
+ print '';
+ print ' ';
+ if ($_GET["action"] == "classer")
{
$html->form_project($_SERVER["PHP_SELF"]."?id=$id&ligne=".$_GET["ligne"],$contrat->fk_soc,$contrat->fk_projet,"projetid");
}
@@ -197,34 +219,14 @@ if ($id > 0)
print " ";
}
+/* Fonction remplacé par les contacts de contrat
+ // Commerciaux
print ''.$langs->trans("SalesRepresentativeFollowUp").' '.$commercial_suivi->fullname.' ';
print ''.$langs->trans("SalesRepresentativeSignature").' '.$commercial_signature->fullname.' ';
+*/
print "
";
- /*
- * Confirmation de la validation activation
- */
- if ($_GET["action"] == 'active' && $user->rights->contrat->activer)
- {
- print ' ';
- $dateactstart = mktime(12, 0 , 0, $_POST["remonth"], $_POST["reday"], $_POST["reyear"]);
- $dateactend = mktime(12, 0 , 0, $_POST["endmonth"], $_POST["endday"], $_POST["endyear"]);
- $html->form_confirm("ligne.php?id=".$contrat->id."&ligne=".$_GET["ligne"]."&date=".$dateactstart."&dateend=".$dateactend,$langs->trans("ActivateService"),$langs->trans("ConfirmActivateService",strftime("%A %d %B %Y", $dateactstart)),"confirm_active");
- }
-
- /*
- * Confirmation de la validation fermeture
- */
- if ($_GET["action"] == 'close' && $user->rights->contrat->activer)
- {
- print ' ';
- $dateactstart = mktime(12, 0 , 0, $_POST["remonth"], $_POST["reday"], $_POST["reyear"]);
- $dateactend = mktime(12, 0 , 0, $_POST["endmonth"], $_POST["endday"], $_POST["endyear"]);
- $html->form_confirm("ligne.php?id=".$contrat->id."&ligne=".$_GET["ligne"]."&date=".$dateactstart."&dateend=".$dateactend,$langs->trans("CloseService"),$langs->trans("ConfirmCloseService",strftime("%A %d %B %Y", $dateactstart)),"confirm_close");
- }
-
-
/*
* Lignes de contrats
*/
@@ -232,10 +234,12 @@ if ($id > 0)
$sql = "SELECT cd.statut, cd.label, cd.fk_product, cd.description, cd.price_ht, cd.qty, cd.rowid, cd.tva_tx, cd.remise_percent, cd.subprice,";
$sql.= " ".$db->pdate("cd.date_ouverture_prevue")." as date_debut, ".$db->pdate("cd.date_ouverture")." as date_debut_reelle,";
- $sql.= " ".$db->pdate("cd.date_fin_validite")." as date_fin, ".$db->pdate("cd.date_cloture")." as date_fin_reelle";
+ $sql.= " ".$db->pdate("cd.date_fin_validite")." as date_fin, ".$db->pdate("cd.date_cloture")." as date_fin_reelle,";
+ $sql.= " p.ref, p.label";
$sql.= " FROM ".MAIN_DB_PREFIX."contratdet as cd";
+ $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON cd.fk_product = p.rowid";
$sql.= " WHERE cd.fk_contrat = ".$id;
- $sql.= " AND rowid = ".$_GET["ligne"];
+ $sql.= " AND cd.rowid = ".$_GET["ligne"];
$sql.= " ORDER BY cd.rowid";
$result = $db->query($sql);
@@ -253,7 +257,6 @@ if ($id > 0)
print ''.$langs->trans("Qty").' ';
print ''.$langs->trans("Discount").' ';
print ' ';
- print ' ';
print ''.$langs->trans("Status").' ';
print "\n";
}
@@ -265,22 +268,22 @@ if ($id > 0)
$var=!$var;
print "\n";
- // Libell
- if ($objp->fk_product > 0)
- {
- print ''.img_object($langs->trans("ShowService"),"service").' '.$objp->label.' ';
-
- if ($objp->description)
+ // Libelle
+ if ($objp->fk_product > 0)
{
- print ' '.stripslashes(nl2br($objp->description));
+ print '';
+ print '';
+ print img_object($langs->trans("ShowService"),"service").' '.$objp->ref.' ';
+ print $objp->label?' - '.$objp->label:'';
+ if ($objp->description) print ' '.stripslashes(nl2br($objp->description));
+ print ' ';
+ }
+ else
+ {
+ print "".stripslashes(nl2br($objp->description))." \n";
}
- print '';
- }
- else
- {
- print ''.stripslashes(nl2br($objp->description))." \n";
- }
+ // TVA
print ''.$objp->tva_tx.'% ';
print ''.price($objp->subprice)." \n";
@@ -296,7 +299,7 @@ if ($id > 0)
print ' ';
}
- print ' ';
+ print ' ';
// Statut
print ''.img_statut($objp->statut,$langs->trans("ServiceStatusInitial")).' ';
@@ -306,49 +309,50 @@ if ($id > 0)
if ($objp->date_debut) $dateactstart=$objp->date_debut;
if ($objp->date_fin) $dateactend=$objp->date_fin;
- // Dates mise en service
- print ' ';
- print '';
- // Si pas encore activé
- if (! $objp->date_debut_reelle) {
+ // Dates de en service prévues et effectives
+
+ print ' ';
+ print '';
+
+ // Date prévues
print $langs->trans("DateStartPlanned").': ';
- if ($objp->date_debut) print dolibarr_print_date($objp->date_debut);
+ if ($objp->date_debut) {
+ print dolibarr_print_date($objp->date_debut);
+ // Warning si date prevu passée et pas en service
+ if ($objp->statut == 0 && $objp->date_debut < time() - $conf->contrat->warning_delay) { print " ".img_warning($langs->trans("Late")); }
+ }
else print $langs->trans("Unknown");
- }
- // Si activé
- if ($objp->date_debut_reelle) {
- print $langs->trans("DateStartReal").': ';
- if ($objp->date_debut_reelle) print dolibarr_print_date($objp->date_debut_reelle);
- else print $langs->trans("ContractStatusNotRunning");
- }
-
- print ' - ';
-
- // Si pas encore activé
- if (! $objp->date_debut_reelle) {
+ print ' - ';
print $langs->trans("DateEndPlanned").': ';
if ($objp->date_fin) {
print dolibarr_print_date($objp->date_fin);
+ if ($objp->statut == 4 && $objp->date_fin < time() - $conf->contrat->warning_delay) { print " ".img_warning($langs->trans("Late")); }
}
else print $langs->trans("Unknown");
- }
- // Si activé
- if ($objp->date_debut_reelle && ! $objp->date_fin_reelle) {
- print $langs->trans("DateEndPlanned").': ';
- if ($objp->date_fin) {
- print dolibarr_print_date($objp->date_fin);
- if ($objp->date_fin < time()) { print " ".img_warning($langs->trans("Late")); }
+
+ print ' ';
+
+ // Si pas encore activé
+ if (! $objp->date_debut_reelle) {
+ print $langs->trans("DateStartReal").': ';
+ if ($objp->date_debut_reelle) print dolibarr_print_date($objp->date_debut_reelle);
+ else print $langs->trans("ContractStatusNotRunning");
}
- else print $langs->trans("Unknown");
- }
- // Si désactivé
- if ($objp->date_debut_reelle && $objp->date_fin_reelle) {
- print $langs->trans("DateEndReal").': ';
- print dolibarr_print_date($objp->date_fin_reelle);
- }
- print ' ';
- print ' ';
- print ' ';
+ // Si activé et en cours
+ if ($objp->date_debut_reelle && ! $objp->date_fin_reelle) {
+ print $langs->trans("DateStartReal").': ';
+ print dolibarr_print_date($objp->date_debut_reelle);
+ }
+ // Si désactivé
+ if ($objp->date_debut_reelle && $objp->date_fin_reelle) {
+ print $langs->trans("DateStartReal").': ';
+ print dolibarr_print_date($objp->date_debut_reelle);
+ print ' - ';
+ print $langs->trans("DateEndReal").': ';
+ print dolibarr_print_date($objp->date_fin_reelle);
+ }
+ print '';
+ print '';
$i++;
@@ -402,7 +406,7 @@ if ($id > 0)
print '';
- print ''.$langs->trans("Comment").' ';
+ print ''.$langs->trans("Comment").' ';
print '';