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 ''.$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 .= "\n"; - $i++; - } - } - $db->free(); - } - else - { - print $db->error(); - } - - print ''; - print ''; - for ($i = 1 ; $i < 5 ; $i++) - { - print ''; - print ''; - print ''; - } - - print '
20 Produits les plus vendusQuan.Remise
%
'; - 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 '"; @@ -168,25 +190,25 @@ if ($id > 0) // Date print ''; - print '\n"; + print '\n"; // Factures associées /* TODO */ - // Projet + // Projet if ($conf->projet->enabled) { $langs->load("projects"); - print '"; } +/* Fonction remplacé par les contacts de contrat + // Commerciaux print ''; print ''; +*/ print "
'.$langs->trans("Ref").''; + print '
'.$langs->trans("Ref").''; print $contrat->ref; print "
'.$langs->trans("Date").''.dolibarr_print_date($contrat->date_contrat,"%A %d %B %Y")."
'.dolibarr_print_date($contrat->date_contrat,"%A %d %B %Y")."
'; - print ''; - if ($_GET["action"] != "classer") print ''; - print '
'; - print $langs->trans("Project"); - print ''.img_edit($langs->trans("SetProject")).'
'; - print '
'; - if ($_GET["action"] == "classer") + print '
'; + print ''; + if ($_GET["action"] != "classer") print ''; + print '
'; + print $langs->trans("Project"); + print ''.img_edit($langs->trans("SetProject")).'
'; + 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 "
'.$langs->trans("SalesRepresentativeFollowUp").''.$commercial_suivi->fullname.''.$langs->trans("SalesRepresentativeSignature").''.$commercial_signature->fullname.'
"; - /* - * 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 '';