diff --git a/htdocs/charge.class.php3 b/htdocs/charge.class.php3
new file mode 100644
index 00000000000..c38b10bd95c
--- /dev/null
+++ b/htdocs/charge.class.php3
@@ -0,0 +1,176 @@
+
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * $Id$
+ * $Source$
+ *
+ */
+
+class Charge {
+ var $db;
+
+ var $id;
+ var $libelle;
+ var $price;
+ var $tms;
+ var $debut;
+ var $fin;
+
+ var $debut_epoch;
+ var $fin_epoch;
+
+ Function Service($DB, $id=0) {
+ $this->db = $DB;
+ $this->id = $id;
+
+ return 1;
+ }
+ /*
+ *
+ *
+ *
+ */
+ Function create($user) {
+
+ $sql = "INSERT INTO llx_charges (datec, fk_user_author) VALUES (now(), ".$user->id.")";
+
+ if ($this->db->query($sql) ) {
+ $id = $this->db->last_insert_id();
+
+ if ( $this->update($id, $user) ) {
+ return $id;
+ }
+ } else {
+ print $this->db->error() . ' in ' . $sql;
+ }
+ }
+ /*
+ *
+ *
+ *
+ */
+ Function update($id, $user) {
+
+ $sql = "UPDATE llx_service ";
+ $sql .= " SET label = '" . trim($this->libelle) ."'";
+ $sql .= ",ref = '" . trim($this->ref) ."'";
+ $sql .= ",price = " . $this->price ;
+ $sql .= ",description = '" . trim($this->description) ."'";
+ $sql .= ",fk_user_modif = " . $user->id ;
+
+ $sql .= " WHERE rowid = " . $id;
+
+ if ( $this->db->query($sql) ) {
+ return 1;
+ } else {
+ print $this->db->error() . ' in ' . $sql;
+ }
+ }
+ /*
+ *
+ *
+ *
+ */
+ Function start_comm($id, $user, $datedeb=0) {
+
+ $sql = "UPDATE llx_service ";
+ if ($datedeb) {
+ $sql .= " SET debut_comm = '$datedeb'";
+ } else {
+ $sql .= " SET debut_comm = now()";
+ }
+ $sql .= ",fk_user_modif = " . $user->id ;
+
+ $sql .= " WHERE rowid = " . $id;
+
+ if ( $this->db->query($sql) ) {
+ return 1;
+ } else {
+ print $this->db->error() . ' in ' . $sql;
+ }
+ }
+ /*
+ *
+ *
+ *
+ */
+ Function stop_comm($id, $user, $datefin=0) {
+
+ $sql = "UPDATE llx_service ";
+ if ($datefin) {
+ $sql .= " SET fin_comm = '$datefin'";
+ } else {
+ $sql .= " SET fin_comm = now()";
+ }
+ $sql .= ",fk_user_modif = " . $user->id ;
+
+ $sql .= " WHERE rowid = " . $id;
+
+ if ( $this->db->query($sql) ) {
+ return 1;
+ } else {
+ print $this->db->error() . ' in ' . $sql;
+ }
+ }
+ /*
+ *
+ *
+ *
+ */
+ Function fetch($id) {
+
+ $sql = "SELECT s.ref,s.label,s.price,s.tms,s.debut_comm,s.fin_comm,s.description,";
+ $sql .= $this->db->pdate("s.debut_comm") . ' as debut_epoch,';
+ $sql .= $this->db->pdate("s.fin_comm") . ' as fin_epoch';
+ $sql .= " FROM llx_service as s";
+ $sql .= " WHERE s.rowid = $id";
+
+ $result = $this->db->query($sql);
+
+ if ($result) {
+ if ($this->db->num_rows()) {
+ $obj = $this->db->fetch_object($result , 0);
+
+ $this->id = $obj->rowid;
+ $this->ref = $obj->ref;
+ $this->libelle = $obj->label;
+ $this->price = $obj->price;
+ $this->description = $obj->description;
+
+ $this->tms = $obj->tms;
+
+ $this->debut = $obj->debut_comm;
+ $this->fin = $obj->fin_comm;
+
+ $this->debut_epoch = $obj->debut_epoch;
+ $this->fin_epoch = $obj->fin_epoch;
+
+ }
+ $this->db->free();
+
+ } else {
+ print $this->db->error();
+ }
+ }
+
+
+}
+/*
+ * $Id$
+ * $Source$
+ */
+?>
diff --git a/htdocs/compta/charges/fiche.php3 b/htdocs/compta/charges/fiche.php3
new file mode 100644
index 00000000000..1d9babf159c
--- /dev/null
+++ b/htdocs/compta/charges/fiche.php3
@@ -0,0 +1,218 @@
+
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * $Id$
+ * $Source$
+ *
+ */
+
+require("./pre.inc.php3");
+require("../service.class.php3");
+
+llxHeader();
+
+$db = new Db();
+
+if ($action == 'add') {
+ $service = new Service($db);
+
+ $service->ref = $ref;
+ $service->libelle = $label;
+ $service->price = $price;
+ $service->description = $desc;
+
+ $id = $service->create($user);
+
+ if ($comm_now && $id) {
+ $service->start_comm($id, $user);
+ }
+
+}
+
+if ($action == 'set_datedeb') {
+ $service = new Service($db);
+ $service->start_comm($id, $user->id, $datedeb);
+}
+if ($action == 'set_datefin') {
+ $service = new Service($db);
+ $service->stop_comm($id, $user->id, $datefin);
+}
+
+if ($action == 'update') {
+ $service = new Service($db);
+
+ $service->ref = $ref;
+ $service->libelle = $label;
+ $service->price = $price;
+ $service->description = $desc;
+
+ $service->update($id, $user);
+}
+
+
+if ($action == 'create') {
+
+ print_titre("Nouveau service");
+ print '
';
+ }
+ /*
+ *
+ *
+ *
+ */
+ if ($action == 'datefin') {
+ print 'Affectation de la date de fin de commercialisation
';
+ print '
';
+ }
+ /*
+ *
+ * Mode edition
+ *
+ */
+
+ if ($action == 'edit') {
+ print '
Editer la fiche service
';
+ print '