diff --git a/htdocs/contrat/contrat.class.php b/htdocs/contrat/contrat.class.php index 0f7f0ad137e..2f32928f709 100644 --- a/htdocs/contrat/contrat.class.php +++ b/htdocs/contrat/contrat.class.php @@ -21,16 +21,27 @@ * */ +/*! + \file htdocs/contrat/contrat.class.php + \ingroup contrat + \brief Fichier de la classe des contrats + \version $Revision$ +*/ + + +/*! \class Contrat + \brief Classe permettant la gestion des contrats +*/ + class Contrat { var $id; var $db; - /* - * Initialisation - * + /** + * \brief Constructeur de la classe + * \param DB handler accès base de données */ - function Contrat($DB) { $this->db = $DB ; @@ -82,9 +93,10 @@ class Contrat $result = $this->db->query($sql) ; if (!$result) { - print $this->db->error() . "
" . $sql; + dolibarr_print_error($this->db); } } + /* * * @@ -97,6 +109,7 @@ class Contrat $result = $this->db->query($sql) ; } + /* * * @@ -109,6 +122,7 @@ class Contrat $result = $this->db->query($sql) ; } + /* * * @@ -146,11 +160,12 @@ class Contrat } else { - print $this->db->error(); + dolibarr_print_error($this->db); } return $result; } + /* * Crée autant de contrats que de lignes de facture, pour une facture donnée * @@ -185,7 +200,7 @@ class Contrat if (! $this->db->query($sql)) { dolibarr_syslog("Contrat::create_from_facture - 10"); - print "Erreur : ".$this->db->error()."
".$sql; + dolibarr_print_error($this->db,"Contrat::create_from_facture - 10"); } } } @@ -197,15 +212,12 @@ class Contrat else { dolibarr_syslog("Contrat::create_from_facture - 20"); - print $this->db->error(); + dolibarr_print_error($this->db,"Contrat::create_from_facture - 20"); } return $result; } - /* - * - * - */ - + + } ?> diff --git a/htdocs/contrat/fiche.php b/htdocs/contrat/fiche.php index 9c97217c990..cdb1c229674 100644 --- a/htdocs/contrat/fiche.php +++ b/htdocs/contrat/fiche.php @@ -20,11 +20,22 @@ * $Source$ * */ + +/*! + \file htdocs/contrat/fiche.php + \ingroup contrat + \brief Fiche d'un contrat + \version $Revision$ +*/ require("./pre.inc.php"); require("./contrat.class.php"); require("../facture.class.php"); +$langs->load("products"); +$langs->load("companies"); +$langs->load("bills"); + llxHeader(); $id = $_GET["id"]; @@ -33,47 +44,47 @@ $mesg = ''; /* * Sécurité accés client */ -if ($user->societe_id > 0) +if ($user->societe_id > 0) { - $action = ''; - $id = $user->societe_id; + $action = ''; + $id = $user->societe_id; } if ($_POST["action"] == 'miseenservice') { - $contrat = new Contrat($db); - $contrat->id = $id; - $contrat->fetch($id); - $contrat->mise_en_service($user, - mktime($_POST["date_starthour"], - $_POST["date_startmin"], - 0, - $_POST["date_startmonth"], - $_POST["date_startday"], - $_POST["date_startyear"]), - 0, - mktime($_POST["date_endhour"], - $_POST["date_endmin"], - 0, - $_POST["date_endmonth"], - $_POST["date_endday"], - $_POST["date_endyear"]) - ); + $contrat = new Contrat($db); + $contrat->id = $id; + $contrat->fetch($id); + $contrat->mise_en_service($user, + mktime($_POST["date_starthour"], + $_POST["date_startmin"], + 0, + $_POST["date_startmonth"], + $_POST["date_startday"], + $_POST["date_startyear"]), + 0, + mktime($_POST["date_endhour"], + $_POST["date_endmin"], + 0, + $_POST["date_endmonth"], + $_POST["date_endday"], + $_POST["date_endyear"]) + ); } if ($_GET["action"] == 'cloture') { - $contrat = new Contrat($db); - $contrat->id = $id; - $contrat->cloture($user); + $contrat = new Contrat($db); + $contrat->id = $id; + $contrat->cloture($user); } if ($_GET["action"] == 'annule') { - $contrat = new Contrat($db); - $contrat->id = $id; - $contrat->annule($user); + $contrat = new Contrat($db); + $contrat->id = $id; + $contrat->annule($user); } @@ -81,177 +92,182 @@ $html = new Form($db); /* - * Fiche visu/édition + * Fiche contract en mode visu/édition * */ if ($id) { - $contrat = new Contrat($db); - $result = $contrat->fetch($id); - - if ( $result ) - { - $date_start=''; - $date_end=''; - - print $mesg; - - /* - * Affichage onglets - */ - $h = 0; - - $hselected=$h; - $head[$h][0] = DOL_URL_ROOT.'/contrat/fiche.php?id='.$id; - $head[$h][1] = 'Fiche contrat : '.$contrat->id; - $h++; - - dolibarr_fiche_head($head, $hselected); - - - print ''; - print ""; - print ''; - print ''; - if ($contrat->factureid) - { - print ''; - print ''; - } - else - { - print ''; - } - - // Affiche statut contrat - $now=mktime(); - if ($contrat->enservice == 1) - { - if (! $contrat->date_fin_validite || $contrat->date_fin_validite >= $now) { - $class = "normal"; - $statut="En service"; - } - else { - $class = "error"; - $statut="En service, expiré"; - } - } - elseif($contrat->enservice == 2) - { - $class = "normal"; - $statut= "Cloturé"; - } - else - { - $class = "warning"; - $statut= "Ce contrat n'est pas en service"; - } - print "\n"; - - if ($_GET["request"] == 'miseenservice') - { - // Si contrat lié à une ligne de facture, on recherche date debut et fin de la ligne - if ($contrat->facturedetid) { - $facturedet = new FactureLigne($db); - $facturedet->fetch($contrat->facturedetid); - $date_start=$facturedet->date_start; - $date_end=$facturedet->date_end; - } - - // Si date_start et date_end ne sont pas connues de la ligne de facture, on les - // definit à une valeur par défaut en fonction de la durée définie pour le service. - if (! $date_start) { $date_start=mktime(); } - if (! $date_end) { - if ($contrat->product->duration) - { - // Si duree du service connue - $duree_value = substr($contrat->product->duration,0,strlen($contrat->product->duration)-1); - $duree_unit = substr($contrat->product->duration,-1); - - $month = date("m",$date_start); - $day = date("d",$date_start); - $year = date("Y",$date_start); - - switch($duree_unit) - { - case "d": - $day = $day + $duree_value; - break; - case "w": - $day = $day + ($duree_value * 7); - break; - case "m": - $month = $month + $duree_value; - break; - case "y": - $year = $year + $duree_value; - break; - } - $date_end = mktime(date("H",$date_start), date("i",$date_start), 0, $month, $day, $year); - } - } - + $contrat = new Contrat($db); + $result = $contrat->fetch($id); - print ''; - print ''; - - print ''; - - // Date de début de mise en service - print ''; + if ( $result ) + { + $date_start=''; + $date_end=''; - // Date de fin prévue de mise en service - print ''; - - print ''; - print ''; - } - - if ($contrat->enservice > 0) - { - print ""; - $contrat->user_service->fetch(); - print ''; - - print '"; - $contrat->user_cloture->fetch(); - print ''; - } + print $mesg; - - print "
Service'.($contrat->product->ref).' - '.($contrat->product->label_url).'
Société'.$contrat->societe->nom_url.'FactureFactureSociété'.$contrat->societe->nom_url.'
".$langs->trans("Status")."$statut
Durée standard pour ce service'; - print $contrat->product->duration; - print ''; - print '
Date de mise en service'; - print $html->select_date($date_start,'date_start',1,1); - print " "; - print '
Date de fin prévue'; - print $html->select_date($date_end,'date_end',1,1); - print " "; - print '
'; - print ''; - print '
Mis en service".dolibarr_print_date($contrat->mise_en_service,"%d %B %Y à %H:%M"); - print "par'.$contrat->user_service->fullname.'
Fin de validité'.dolibarr_print_date($contrat->date_fin_validite,"%d %B %Y à %H:%M"); - } - - if ($contrat->enservice == 2) - { - print "
Cloturé".dolibarr_print_date($contrat->date_cloture,"%d %B %Y à %H:%M")."par'.$contrat->user_cloture->fullname.'
"; - print '
'; - print ''; + /* + * Affichage onglets + */ + $h = 0; + + $hselected=$h; + $head[$h][0] = DOL_URL_ROOT.'/contrat/fiche.php?id='.$id; + $head[$h][1] = $langs->trans("CardContract").' : '.$contrat->id; + $h++; + + dolibarr_fiche_head($head, $hselected); + + + print ''; + print ""; + print ''; + print ''; + if ($contrat->factureid) + { + print ''; + + $facture=new Facture($db); + $facture->fetch($contrat->factureid); + print ''; + print ''; + } + else + { + print ''; + } + + // Affiche statut contrat + $now=mktime(); + if ($contrat->enservice == 1) + { + if (! $contrat->date_fin_validite || $contrat->date_fin_validite >= $now) { + $class = 'normal'; + $statut=$langs->trans("ContractStatusRunning"); + } + else { + $class = 'error'; + $statut= $langs->trans("ContractStatusRunning").', '.img_warning().' '.$langs->trans("ContractStatusExpired"); + } + } + elseif($contrat->enservice == 2) + { + $class = 'normal'; + $statut= $langs->trans("ContractStatusClosed"); + } + else + { + $class = 'warning'; + $statut= ''.$langs->trans("ContractNotRunning").''; + } + print "\n"; + + if ($_GET["request"] == 'miseenservice') + { + // Si contrat lié à une ligne de facture, on recherche date debut et fin de la ligne + if ($contrat->facturedetid) { + $facturedet = new FactureLigne($db); + $facturedet->fetch($contrat->facturedetid); + $date_start=$facturedet->date_start; + $date_end=$facturedet->date_end; + } + + // Si date_start et date_end ne sont pas connues de la ligne de facture, on les + // definit à une valeur par défaut en fonction de la durée définie pour le service. + if (! $date_start) { $date_start=mktime(); } + if (! $date_end) { + if ($contrat->product->duration) + { + // Si duree du service connue + $duree_value = substr($contrat->product->duration,0,strlen($contrat->product->duration)-1); + $duree_unit = substr($contrat->product->duration,-1); + + $month = date("m",$date_start); + $day = date("d",$date_start); + $year = date("Y",$date_start); + + switch($duree_unit) + { + case "d": + $day = $day + $duree_value; + break; + case "w": + $day = $day + ($duree_value * 7); + break; + case "m": + $month = $month + $duree_value; + break; + case "y": + $year = $year + $duree_value; + break; + } + $date_end = mktime(date("H",$date_start), date("i",$date_start), 0, $month, $day, $year); + } + } + + + print ''; + print ''; + + print ''; + + // Date de début de mise en service + print ''; + + // Date de fin prévue de mise en service + print ''; + + print ''; + print ''; + } + + if ($contrat->enservice > 0) + { + print ""; + $contrat->user_service->fetch(); + print ''; + + print ''; + $contrat->user_cloture->fetch(); + print ''; + } + + + print "
'.$langs->trans("Service").''.($contrat->product->ref).' - '.($contrat->product->label_url).'
'.$langs->trans("Company").''.$contrat->societe->nom_url.'
'.$langs->trans("Bill").''.$facture->ref.''.$langs->trans("BillStatus").''.$facture->get_libStatut().'
'.$langs->trans("Company").''.$contrat->societe->nom_url.'
".$langs->trans("ContractStatus")."$statut
Durée standard pour ce service'; + print $contrat->product->duration; + print ''; + print '
Date de mise en service'; + print $html->select_date($date_start,'date_start',1,1); + print " "; + print '
Date de fin prévue'; + print $html->select_date($date_end,'date_end',1,1); + print " "; + print '
'; + print ''; + print '
Mis en service".dolibarr_print_date($contrat->mise_en_service,"%d %B %Y à %H:%M"); + print "'.$langs->trans("By").''.$contrat->user_service->fullname.'
Fin de validité'.dolibarr_print_date($contrat->date_fin_validite,"%d %B %Y à %H:%M"); + } + + if ($contrat->enservice == 2) + { + print '
'.$langs->trans("Closed").''.dolibarr_print_date($contrat->date_cloture,"%d %B %Y à %H:%M").''.$langs->trans("By").''.$contrat->user_cloture->fullname.'
"; + print '
'; + print ''; } - + } else { - print "Error"; + dolibarr_print_error(0,"Contract id not provided"); + return; } /* ************************************************************************** */ -/* */ -/* Barre d'action */ -/* */ +/* */ +/* Barre d'action */ +/* */ /* ************************************************************************** */ @@ -267,8 +283,8 @@ if (! $contrat->enservice) } elseif ($contrat->enservice == 1) { - print 'Mettre hors service'; - print 'Clôturer'; + print 'Mettre hors service'; + print ''.$langs->trans("Close").''; } print ''; diff --git a/htdocs/contrat/index.php b/htdocs/contrat/index.php index 96c038c2140..54d3bebc114 100644 --- a/htdocs/contrat/index.php +++ b/htdocs/contrat/index.php @@ -20,8 +20,19 @@ * $Source$ * */ + +/*! + \file htdocs/contrat/contrat.class.php + \ingroup contrat + \brief Fichier de la classe des contrats + \version $Revision$ +*/ + require("./pre.inc.php"); +$langs->load("products"); + + llxHeader(); $sortorder=$_GET["sortorder"]; @@ -75,20 +86,22 @@ if ( $db->query($sql) ) print_barre_liste("Liste des contrats", $page, "index.php", "&sref=$sref&snom=$snom", $sortfield, $sortorder,'',$num); - print ''; + print '
'; print ''; print ''; print ''; print "\n"; @@ -109,23 +122,23 @@ if ( $db->query($sql) ) if ($obj->enservice == 1) { if (! $obj->fin_validite || $obj->fin_validite >= $now) { - $class = "normal"; - $statut="En service"; + $class = 'normal'; + $statut= $langs->trans("ContractStatusRunning"); } else { - $class = "error"; - $statut="En service, ".img_warning()." expiré"; + $class = 'error'; + $statut= $langs->trans("ContractStatusRunning").', '.img_warning().' '.$langs->trans("ContractStatusExpired"); } } elseif($obj->enservice == 2) { $class = "normal"; - $statut= "Cloturé"; + $statut= $langs->trans("Closed"); } else { $class = "warning"; - $statut= "A mettre en service"; + $statut= $langs->trans("ContractStatusToRun"); } print "\n"; + + print ''; print "\n"; $i++; @@ -150,7 +167,7 @@ if ( $db->query($sql) ) } else { - print $db->error() . "
" .$sql; + dolibarr_print_error($db); }
'; - print_liste_field_titre("Numéro","index.php", "c.rowid"); + print_liste_field_titre($langs->trans("Ref"),"index.php", "c.rowid"); print ""; print_liste_field_titre($langs->trans("Label"),"index.php", "p.label"); print ""; - print_liste_field_titre("Société","index.php", "s.nom"); + print_liste_field_titre($langs->trans("Company"),"index.php", "s.nom"); print ''; print_liste_field_titre($langs->trans("Status"),"index.php", "c.enservice"); print ''; print_liste_field_titre("Date Fin","index.php", "c.fin_validite"); + print ''; + print_liste_field_titre($langs->trans("Action"),"index.php", "c.next"); print '
"; print "$statut"; @@ -139,6 +152,10 @@ if ( $db->query($sql) ) print " "; } print "'; + // \todo Créer action "Renouveler" + print '