diff --git a/htdocs/commande/commande.class.php b/htdocs/commande/commande.class.php
index f9ededf934085cda81163cba56ff2d77bbf110c8..bcef788a424e7f83a9247c651f399f88167638f7 100644
--- a/htdocs/commande/commande.class.php
+++ b/htdocs/commande/commande.class.php
@@ -40,6 +40,8 @@ class Commande extends CommonObject
   var $error;
   var $element='commande';
   var $table_element='commande';
+  var $table_element_line = 'commandedet';
+  var $fk_element = 'fk_commande';
   
   var $id ;
   
@@ -789,129 +791,6 @@ class Commande extends CommonObject
       }
   }
   
-  /**
-   *      \brief      Stocke un num�ro de rang pour toutes les lignes de
-   *                  detail d'une commande qui n'en ont pas.
-   */
-  function line_order()
-  {
-    $sql = 'SELECT count(rowid) FROM '.MAIN_DB_PREFIX.'commandedet';
-    $sql .= ' WHERE fk_commande='.$this->id;
-    $sql .= ' AND rang = 0';
-    $resql = $this->db->query($sql);
-    if ($resql)
-      {
-	$row = $this->db->fetch_row($resql);
-	$nl = $row[0];
-      }
-    if ($nl > 0)
-      {
-	$sql = 'SELECT rowid FROM '.MAIN_DB_PREFIX.'commandedet';
-	$sql .= ' WHERE fk_commande='.$this->id;
-	$sql .= ' ORDER BY rang ASC, rowid ASC';
-	$resql = $this->db->query($sql);
-	if ($resql)
-	  {
-	    $num = $this->db->num_rows($resql);
-	    $i = 0;
-	    while ($i < $num)
-	      {
-		$row = $this->db->fetch_row($resql);
-		$li[$i] = $row[0];
-		$i++;
-	      }
-	  }
-	for ($i = 0 ; $i < sizeof($li) ; $i++)
-	  {
-	    $sql = 'UPDATE '.MAIN_DB_PREFIX.'commandedet SET rang = '.($i+1);
-	    $sql .= ' WHERE rowid = '.$li[$i];
-	    if (!$this->db->query($sql) )
-	      {
-		dolibarr_syslog($this->db->error());
-	      }
-	  }
-      }
-  }
-  
-  function line_up($rowid)
-  {
-    $this->line_order();
-    
-    /* Lecture du rang de la ligne */
-    $sql = 'SELECT rang FROM '.MAIN_DB_PREFIX.'commandedet';
-    $sql .= ' WHERE rowid ='.$rowid;
-    $resql = $this->db->query($sql);
-    if ($resql)
-      {
-	$row = $this->db->fetch_row($resql);
-	$rang = $row[0];
-      }
-    
-    if ($rang > 1 )
-      {
-	$sql = 'UPDATE '.MAIN_DB_PREFIX.'commandedet SET rang = '.$rang ;
-	$sql .= ' WHERE fk_commande  = '.$this->id;
-	$sql .= ' AND rang = '.($rang - 1);
-	if ($this->db->query($sql) )
-	  {
-	    $sql = 'UPDATE '.MAIN_DB_PREFIX.'commandedet SET rang  = '.($rang - 1);
-	    $sql .= ' WHERE rowid = '.$rowid;
-	    if (! $this->db->query($sql) )
-	      {
-		dolibarr_print_error($this->db);
-	      }
-	  }
-	else
-	  {
-	    dolibarr_print_error($this->db);
-	  }
-      }
-  }
-  
-  function line_down($rowid)
-  {
-    $this->line_order();
-    
-    /* Lecture du rang de la ligne */
-    $sql = 'SELECT rang FROM '.MAIN_DB_PREFIX.'commandedet';
-    $sql .= ' WHERE rowid ='.$rowid;
-    $resql = $this->db->query($sql);
-    if ($resql)
-      {
-	$row = $this->db->fetch_row($resql);
-	$rang = $row[0];
-      }
-    
-    /* Lecture du rang max de la facture */
-    $sql = 'SELECT max(rang) FROM '.MAIN_DB_PREFIX.'commandedet';
-    $sql .= ' WHERE fk_commande ='.$this->id;
-    $resql = $this->db->query($sql);
-    if ($resql)
-      {
-	$row = $this->db->fetch_row($resql);
-	$max = $row[0];
-      }
-    
-    if ($rang < $max )
-      {
-	$sql = 'UPDATE '.MAIN_DB_PREFIX.'commandedet SET rang = '.$rang;
-	$sql .= ' WHERE fk_commande  = '.$this->id;
-	$sql .= ' AND rang = '.($rang+1);
-	if ($this->db->query($sql) )
-	  {
-	    $sql = 'UPDATE '.MAIN_DB_PREFIX.'commandedet SET rang = '.($rang+1);
-	    $sql .= ' WHERE rowid = '.$rowid;
-	    if (! $this->db->query($sql) )
-	      {
-		dolibarr_print_error($this->db);
-	      }
-	  }
-	else
-	  {
-	    dolibarr_print_error($this->db);
-	  }
-      }
-  }
   
   /**
    *    \brief      Recup�re de la base les caract�ristiques d'une commande
diff --git a/htdocs/commonobject.class.php b/htdocs/commonobject.class.php
index 10352d1f11bc794c10fe4fb6eeaaa40e7148bea1..4ec2844f156c6e3461a855e4267a7da04adc008b 100644
--- a/htdocs/commonobject.class.php
+++ b/htdocs/commonobject.class.php
@@ -145,7 +145,6 @@ class CommonObject
      */
     function delete_contact($rowid)
     {
-
         $sql = "DELETE FROM ".MAIN_DB_PREFIX."element_contact";
         $sql.= " WHERE rowid =".$rowid;
         if ($this->db->query($sql))
@@ -503,7 +502,7 @@ class CommonObject
 	{
 		if (! $this->table_element)
 		{
-			dolibarr_syslog("CommonObject::load_previous_next was called on objet with property table_element not defined");
+			dolibarr_syslog("CommonObject::load_previous_next was called on objet with property table_element not defined",LOG_ERR);
 			return -1;
 		}
 
@@ -572,7 +571,7 @@ class CommonObject
 	{
 		if (! $this->table_element)
 		{
-			dolibarr_syslog("CommonObject::setProject was called on objet with property table_element not defined");
+			dolibarr_syslog("CommonObject::setProject was called on objet with property table_element not defined",LOG_ERR);
 			return -1;
 		}
 
@@ -604,7 +603,7 @@ class CommonObject
 	{
 		if (! $this->table_element)
 		{
-			dolibarr_syslog("CommonObject::setDocModel was called on objet with property table_element not defined");
+			dolibarr_syslog("CommonObject::setDocModel was called on objet with property table_element not defined",LOG_ERR);
 			return -1;
 		}
 
@@ -627,6 +626,142 @@ class CommonObject
 			return 0;
 		}
 	}
+	
+	
+	/**
+	*      \brief      Stocke un num�ro de rang pour toutes les lignes de
+	*                  detail d'une facture qui n'en ont pas.
+	*/
+	function line_order()
+	{
+		if (! $this->table_element_line)
+		{
+			dolibarr_syslog("CommonObject::line_order was called on objet with property table_element_line not defined",LOG_ERR);
+			return -1;
+		}
+		if (! $this->fk_element)
+		{
+			dolibarr_syslog("CommonObject::line_order was called on objet with property fk_element not defined",LOG_ERR);
+			return -1;
+		}
+
+		$sql = 'SELECT count(rowid) FROM '.MAIN_DB_PREFIX.$this->table_element_line;
+		$sql.= ' WHERE '.$this->fk_element.'='.$this->id;
+		$sql.= ' AND rang = 0';
+		$resql = $this->db->query($sql);
+		if ($resql)
+		{
+			$row = $this->db->fetch_row($resql);
+			$nl = $row[0];
+		}
+		if ($nl > 0)
+		{
+			$sql = 'SELECT rowid FROM '.MAIN_DB_PREFIX.$this->table_element_line;
+			$sql.= ' WHERE '.$this->fk_element.' = '.$this->id;
+			$sql.= ' ORDER BY rang ASC, rowid ASC';
+			$resql = $this->db->query($sql);
+			if ($resql)
+			{
+				$num = $this->db->num_rows($resql);
+				$i = 0;
+				while ($i < $num)
+				{
+					$row = $this->db->fetch_row($resql);
+					$li[$i] = $row[0];
+					$i++;
+				}
+			}
+			for ($i = 0 ; $i < sizeof($li) ; $i++)
+			{
+				$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET rang = '.($i+1);
+				$sql.= ' WHERE rowid = '.$li[$i];
+				if (!$this->db->query($sql) )
+				{
+					dolibarr_syslog($this->db->error());
+				}
+			}
+		}
+	}
+
+	function line_up($rowid)
+	{
+		$this->line_order();
+
+		/* Lecture du rang de la ligne */
+		$sql = 'SELECT rang FROM '.MAIN_DB_PREFIX.$this->table_element_line;
+		$sql.= ' WHERE rowid ='.$rowid;
+		$resql = $this->db->query($sql);
+		if ($resql)
+		{
+			$row = $this->db->fetch_row($resql);
+			$rang = $row[0];
+		}
+
+		if ($rang > 1 )
+		{
+			$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET rang = '.$rang ;
+			$sql.= ' WHERE '.$this->fk_element.' = '.$this->id;
+			$sql.= ' AND rang = '.($rang - 1);
+			if ($this->db->query($sql) )
+			{
+				$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET rang  = '.($rang - 1);
+				$sql.= ' WHERE rowid = '.$rowid;
+				if (! $this->db->query($sql) )
+				{
+					dolibarr_print_error($this->db);
+				}
+			}
+			else
+			{
+				dolibarr_print_error($this->db);
+			}
+		}
+	}
+
+	function line_down($rowid)
+	{
+		$this->line_order();
+
+		/* Lecture du rang de la ligne */
+		$sql = 'SELECT rang FROM '.MAIN_DB_PREFIX.$this->table_element_line;
+		$sql.= ' WHERE rowid ='.$rowid;
+		$resql = $this->db->query($sql);
+		if ($resql)
+		{
+			$row = $this->db->fetch_row($resql);
+			$rang = $row[0];
+		}
+
+		/* Lecture du rang max de la facture */
+		$sql = 'SELECT max(rang) FROM '.MAIN_DB_PREFIX.$this->table_element_line;
+		$sql.= ' WHERE '.$this->fk_element.' = '.$this->id;
+		$resql = $this->db->query($sql);
+		if ($resql)
+		{
+			$row = $this->db->fetch_row($resql);
+			$max = $row[0];
+		}
+
+		if ($rang < $max)
+		{
+			$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET rang = '.$rang;
+			$sql.= ' WHERE '.$this->fk_element.' = '.$this->id;
+			$sql.= ' AND rang = '.($rang+1);
+			if ($this->db->query($sql) )
+			{
+				$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET rang = '.($rang+1);
+				$sql.= ' WHERE rowid = '.$rowid;
+				if (! $this->db->query($sql) )
+				{
+					dolibarr_print_error($this->db);
+				}
+			}
+			else
+			{
+				dolibarr_print_error($this->db);
+			}
+		}
+	}	
 }
 
 ?>
diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php
index 5aba210fd463e6efbd3f941b935c2f83aeb5f974..d8bc11e98dac12e7176e4fae8e38a75ea2c6272d 100644
--- a/htdocs/compta/facture.php
+++ b/htdocs/compta/facture.php
@@ -937,8 +937,9 @@ if ($_GET['action'] == 'up' && $user->rights->facture->creer)
 		$outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs",$conf);
 		$outputlangs->setDefaultLang($_REQUEST['lang_id']);
 	}
-  facture_pdf_create($db, $fac->id, '', $fac->modelpdf, $outputlangs);
+	facture_pdf_create($db, $fac->id, '', $fac->modelpdf, $outputlangs);
 	Header ('Location: '.$_SERVER["PHP_SELF"].'?facid='.$_GET["facid"].'#'.$_GET['rowid']);
+	exit;
 }
 
 if ($_GET['action'] == 'down' && $user->rights->facture->creer)
@@ -951,8 +952,9 @@ if ($_GET['action'] == 'down' && $user->rights->facture->creer)
 		$outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs",$conf);
 		$outputlangs->setDefaultLang($_REQUEST['lang_id']);
 	}
-  facture_pdf_create($db, $fac->id, '', $fac->modelpdf, $outputlangs);
+	facture_pdf_create($db, $fac->id, '', $fac->modelpdf, $outputlangs);
 	Header ('Location: '.$_SERVER["PHP_SELF"].'?facid='.$_GET["facid"].'#'.$_GET['rowid']);
+	exit;
 }
 
 /*
diff --git a/htdocs/facture.class.php b/htdocs/facture.class.php
index 66c779dfd9c22a394ca1e2dc897e0137d627d564..2fb825bda6fed10cb4efd7d0ce6f5f5f921d7d14 100644
--- a/htdocs/facture.class.php
+++ b/htdocs/facture.class.php
@@ -45,6 +45,8 @@ class Facture extends CommonObject
 	var $error;
 	var $element='facture';
     var $table_element='facture';
+	var $table_element_line = 'facturedet';
+	var $fk_element = 'fk_facture';
 
 	var $table;
 	var $tabledetail;	
@@ -2438,129 +2440,6 @@ class Facture extends CommonObject
       }
   }
 
-  /**
-   *      \brief      Stocke un num�ro de rang pour toutes les lignes de
-   *                  detail d'une facture qui n'en ont pas.
-   */
-  function line_order()
-  {
-    $sql = 'SELECT count(rowid) FROM '.MAIN_DB_PREFIX.'facturedet';
-    $sql.= ' WHERE fk_facture='.$this->id;
-    $sql.= ' AND rang = 0';
-    $resql = $this->db->query($sql);
-    if ($resql)
-      {
-	$row = $this->db->fetch_row($resql);
-	$nl = $row[0];
-      }
-    if ($nl > 0)
-      {
-	$sql = 'SELECT rowid FROM '.MAIN_DB_PREFIX.'facturedet';
-	$sql.= ' WHERE fk_facture='.$this->id;
-	$sql.= ' ORDER BY rang ASC, rowid ASC';
-	$resql = $this->db->query($sql);
-	if ($resql)
-	  {
-	    $num = $this->db->num_rows($resql);
-	    $i = 0;
-	    while ($i < $num)
-	      {
-		$row = $this->db->fetch_row($resql);
-		$li[$i] = $row[0];
-		$i++;
-	      }
-	  }
-	for ($i = 0 ; $i < sizeof($li) ; $i++)
-	  {
-	    $sql = 'UPDATE '.MAIN_DB_PREFIX.'facturedet SET rang = '.($i+1);
-	    $sql.= ' WHERE rowid = '.$li[$i];
-	    if (!$this->db->query($sql) )
-	      {
-		dolibarr_syslog($this->db->error());
-	      }
-	  }
-      }
-  }
-
-  function line_up($rowid)
-  {
-    $this->line_order();
-
-    /* Lecture du rang de la ligne */
-    $sql = 'SELECT rang FROM '.MAIN_DB_PREFIX.'facturedet';
-    $sql.= ' WHERE rowid ='.$rowid;
-    $resql = $this->db->query($sql);
-    if ($resql)
-      {
-	$row = $this->db->fetch_row($resql);
-	$rang = $row[0];
-      }
-
-    if ($rang > 1 )
-      {
-	$sql = 'UPDATE '.MAIN_DB_PREFIX.'facturedet SET rang = '.$rang ;
-	$sql.= ' WHERE fk_facture  = '.$this->id;
-	$sql.= ' AND rang = '.($rang - 1);
-	if ($this->db->query($sql) )
-	  {
-	    $sql = 'UPDATE '.MAIN_DB_PREFIX.'facturedet SET rang  = '.($rang - 1);
-	    $sql.= ' WHERE rowid = '.$rowid;
-	    if (! $this->db->query($sql) )
-	      {
-		dolibarr_print_error($this->db);
-	      }
-	  }
-	else
-	  {
-	    dolibarr_print_error($this->db);
-	  }
-      }
-  }
-
-  function line_down($rowid)
-  {
-    $this->line_order();
-
-    /* Lecture du rang de la ligne */
-    $sql = 'SELECT rang FROM '.MAIN_DB_PREFIX.'facturedet';
-    $sql.= ' WHERE rowid ='.$rowid;
-    $resql = $this->db->query($sql);
-    if ($resql)
-      {
-	$row = $this->db->fetch_row($resql);
-	$rang = $row[0];
-      }
-
-    /* Lecture du rang max de la facture */
-    $sql = 'SELECT max(rang) FROM '.MAIN_DB_PREFIX.'facturedet';
-    $sql.= ' WHERE fk_facture ='.$this->id;
-    $resql = $this->db->query($sql);
-    if ($resql)
-      {
-	$row = $this->db->fetch_row($resql);
-	$max = $row[0];
-      }
-
-    if ($rang < $max )
-      {
-	$sql = 'UPDATE '.MAIN_DB_PREFIX.'facturedet SET rang = '.$rang;
-	$sql.= ' WHERE fk_facture  = '.$this->id;
-	$sql.= ' AND rang = '.($rang+1);
-	if ($this->db->query($sql) )
-	  {
-	    $sql = 'UPDATE '.MAIN_DB_PREFIX.'facturedet SET rang = '.($rang+1);
-	    $sql.= ' WHERE rowid = '.$rowid;
-	    if (! $this->db->query($sql) )
-	      {
-		dolibarr_print_error($this->db);
-	      }
-	  }
-	else
-	  {
-	    dolibarr_print_error($this->db);
-	  }
-      }
-  }
 
   /**
    *      \brief      Charge indicateurs this->nbtodo et this->nbtodolate de tableau de bord
diff --git a/htdocs/fichinter/fichinter.class.php b/htdocs/fichinter/fichinter.class.php
index 012c9970f91d8bcc83ea6692e38dcffa91331d11..98c2e953773b0dd928cbabe31e39777d07c634eb 100644
--- a/htdocs/fichinter/fichinter.class.php
+++ b/htdocs/fichinter/fichinter.class.php
@@ -36,12 +36,15 @@ require_once(DOL_DOCUMENT_ROOT ."/commonobject.class.php");
 class Fichinter extends CommonObject
 {
     var $db;
-	  var $element='fichinter';
+	var $element='fichinter';
+	var $table_element='fichinter';
+	var $fk_element='fk_fichinter';
+	var $table_element_line='fichinterdet';
 
     var $id;
     
-	  var $socid;		// Id client
-	  var $client;		// Objet societe client (a charger par fetch_client)
+	var $socid;		// Id client
+	var $client;		// Objet societe client (a charger par fetch_client)
 
     var $author;
     var $ref;
@@ -601,129 +604,6 @@ class Fichinter extends CommonObject
       }
     }
 
-	/**
-	 *      \brief      Stocke un numero de rang pour toutes les lignes de
-	 *                  detail d'une fiche d'intervention qui n'en ont pas.
-	 */
-	function line_order()
-	{
-		$sql = 'SELECT count(rowid) FROM '.MAIN_DB_PREFIX.'fichinterdet';
-		$sql .= ' WHERE fk_fichinter='.$this->id;
-		$sql .= ' AND rang = 0';
-		$resql = $this->db->query($sql);
-		if ($resql)
-		{
-			$row = $this->db->fetch_row($resql);
-			$nl = $row[0];
-		}
-		if ($nl > 0)
-		{
-			$sql = 'SELECT rowid FROM '.MAIN_DB_PREFIX.'fichinterdet';
-			$sql .= ' WHERE fk_fichinter='.$this->id;
-			$sql .= ' ORDER BY rang ASC, rowid ASC';
-			$resql = $this->db->query($sql);
-			if ($resql)
-			{
-				$num = $this->db->num_rows($resql);
-				$i = 0;
-				while ($i < $num)
-				{
-					$row = $this->db->fetch_row($resql);
-					$li[$i] = $row[0];
-					$i++;
-				}
-			}
-			for ($i = 0 ; $i < sizeof($li) ; $i++)
-			{
-				$sql = 'UPDATE '.MAIN_DB_PREFIX.'fichinterdet SET rang = '.($i+1);
-				$sql .= ' WHERE rowid = '.$li[$i];
-				if (!$this->db->query($sql) )
-				{
-					dolibarr_syslog($this->db->error());
-				}
-			}
-		}
-	}
- 
-	function line_up($rowid)
-	{
-		$this->line_order();
-
-		/* Lecture du rang de la ligne */
-		$sql = 'SELECT rang FROM '.MAIN_DB_PREFIX.'fichinterdet';
-		$sql .= ' WHERE rowid ='.$rowid;
-		$resql = $this->db->query($sql);
-		if ($resql)
-		{
-			$row = $this->db->fetch_row($resql);
-			$rang = $row[0];
-		}
-
-		if ($rang > 1 )
-		{
-			$sql = 'UPDATE '.MAIN_DB_PREFIX.'fichinterdet SET rang = '.$rang ;
-			$sql .= ' WHERE fk_fichinter  = '.$this->id;
-			$sql .= ' AND rang = '.($rang - 1);
-			if ($this->db->query($sql) )
-			{
-				$sql = 'UPDATE '.MAIN_DB_PREFIX.'fichinterdet SET rang  = '.($rang - 1);
-				$sql .= ' WHERE rowid = '.$rowid;
-				if (! $this->db->query($sql) )
-				{
-					dolibarr_print_error($this->db);
-				}
-			}
-			else
-			{
-				dolibarr_print_error($this->db);
-			}
-		}
-	}
-
-	function line_down($rowid)
-	{
-		$this->line_order();
-
-		/* Lecture du rang de la ligne */
-		$sql = 'SELECT rang FROM '.MAIN_DB_PREFIX.'fichinterdet';
-		$sql .= ' WHERE rowid ='.$rowid;
-		$resql = $this->db->query($sql);
-		if ($resql)
-		{
-			$row = $this->db->fetch_row($resql);
-			$rang = $row[0];
-		}
-
-		/* Lecture du rang max de la propale */
-		$sql = 'SELECT max(rang) FROM '.MAIN_DB_PREFIX.'fichinterdet';
-		$sql .= ' WHERE fk_fichinter ='.$this->id;
-		$resql = $this->db->query($sql);
-		if ($resql)
-		{
-			$row = $this->db->fetch_row($resql);
-			$max = $row[0];
-		}
-
-		if ($rang < $max )
-		{
-			$sql = 'UPDATE '.MAIN_DB_PREFIX.'fichinterdet SET rang = '.$rang;
-			$sql .= ' WHERE fk_fichinter  = '.$this->id;
-			$sql .= ' AND rang = '.($rang+1);
-			if ($this->db->query($sql) )
-			{
-				$sql = 'UPDATE '.MAIN_DB_PREFIX.'fichinterdet SET rang = '.($rang+1);
-				$sql .= ' WHERE rowid = '.$rowid;
-				if (! $this->db->query($sql) )
-				{
-					dolibarr_print_error($this->db);
-				}
-			}
-			else
-			{
-				dolibarr_print_error($this->db);
-			}
-		}
-	}
 	
 	/**
 	*		\brief		Initialise la fiche intervention avec valeurs fictives aleatoire
diff --git a/htdocs/propal.class.php b/htdocs/propal.class.php
index eef0c7065cb44de81aebfb608a77094d0cd9cc49..0a13a637dca0c5c2cd160cc5b2418081d0586764 100644
--- a/htdocs/propal.class.php
+++ b/htdocs/propal.class.php
@@ -46,11 +46,13 @@ class Propal extends CommonObject
 	var $error;
 	var $element='propal';
 	var $table_element='propal';
+	var $fk_element='fk_propal';
+	var $table_element_line='propaldet';
 
 	var $id;
 
 	var $socid;		// Id client
-	var $client;		// Objet societe client (� charger par fetch_client)
+	var $client;		// Objet societe client (a charger par fetch_client)
 
 	var $contactid;
 	var $projetidp;
@@ -687,130 +689,6 @@ class Propal extends CommonObject
 	}
 
 
-	/**
-	 *      \brief      Stocke un num�ro de rang pour toutes les lignes de
-	 *                  detail d'une propale qui n'en ont pas.
-	 */
-	function line_order()
-	{
-		$sql = 'SELECT count(rowid) FROM '.MAIN_DB_PREFIX.'propaldet';
-		$sql .= ' WHERE fk_propal='.$this->id;
-		$sql .= ' AND rang = 0';
-		$resql = $this->db->query($sql);
-		if ($resql)
-		{
-			$row = $this->db->fetch_row($resql);
-			$nl = $row[0];
-		}
-		if ($nl > 0)
-		{
-			$sql = 'SELECT rowid FROM '.MAIN_DB_PREFIX.'propaldet';
-			$sql .= ' WHERE fk_propal='.$this->id;
-			$sql .= ' ORDER BY rang ASC, rowid ASC';
-			$resql = $this->db->query($sql);
-			if ($resql)
-			{
-				$num = $this->db->num_rows($resql);
-				$i = 0;
-				while ($i < $num)
-				{
-					$row = $this->db->fetch_row($resql);
-					$li[$i] = $row[0];
-					$i++;
-				}
-			}
-			for ($i = 0 ; $i < sizeof($li) ; $i++)
-			{
-				$sql = 'UPDATE '.MAIN_DB_PREFIX.'propaldet SET rang = '.($i+1);
-				$sql .= ' WHERE rowid = '.$li[$i];
-				if (!$this->db->query($sql) )
-				{
-					dolibarr_syslog($this->db->error());
-				}
-			}
-		}
-	}
-
-	function line_up($rowid)
-	{
-		$this->line_order();
-
-		/* Lecture du rang de la ligne */
-		$sql = 'SELECT rang FROM '.MAIN_DB_PREFIX.'propaldet';
-		$sql .= ' WHERE rowid ='.$rowid;
-		$resql = $this->db->query($sql);
-		if ($resql)
-		{
-			$row = $this->db->fetch_row($resql);
-			$rang = $row[0];
-		}
-
-		if ($rang > 1 )
-		{
-			$sql = 'UPDATE '.MAIN_DB_PREFIX.'propaldet SET rang = '.$rang ;
-			$sql .= ' WHERE fk_propal  = '.$this->id;
-			$sql .= ' AND rang = '.($rang - 1);
-			if ($this->db->query($sql) )
-			{
-				$sql = 'UPDATE '.MAIN_DB_PREFIX.'propaldet SET rang  = '.($rang - 1);
-				$sql .= ' WHERE rowid = '.$rowid;
-				if (! $this->db->query($sql) )
-				{
-					dolibarr_print_error($this->db);
-				}
-			}
-			else
-			{
-				dolibarr_print_error($this->db);
-			}
-		}
-	}
-
-	function line_down($rowid)
-	{
-		$this->line_order();
-
-		/* Lecture du rang de la ligne */
-		$sql = 'SELECT rang FROM '.MAIN_DB_PREFIX.'propaldet';
-		$sql .= ' WHERE rowid ='.$rowid;
-		$resql = $this->db->query($sql);
-		if ($resql)
-		{
-			$row = $this->db->fetch_row($resql);
-			$rang = $row[0];
-		}
-
-		/* Lecture du rang max de la propale */
-		$sql = 'SELECT max(rang) FROM '.MAIN_DB_PREFIX.'propaldet';
-		$sql .= ' WHERE fk_propal ='.$this->id;
-		$resql = $this->db->query($sql);
-		if ($resql)
-		{
-			$row = $this->db->fetch_row($resql);
-			$max = $row[0];
-		}
-
-		if ($rang < $max )
-		{
-			$sql = 'UPDATE '.MAIN_DB_PREFIX.'propaldet SET rang = '.$rang;
-			$sql .= ' WHERE fk_propal  = '.$this->id;
-			$sql .= ' AND rang = '.($rang+1);
-			if ($this->db->query($sql) )
-			{
-				$sql = 'UPDATE '.MAIN_DB_PREFIX.'propaldet SET rang = '.($rang+1);
-				$sql .= ' WHERE rowid = '.$rowid;
-				if (! $this->db->query($sql) )
-				{
-					dolibarr_print_error($this->db);
-				}
-			}
-			else
-			{
-				dolibarr_print_error($this->db);
-			}
-		}
-	}
-
     /**
      *    	\brief      Recup�re de la base les caract�ristiques d'une propale
      *    	\param      rowid       id de la propal � r�cup�rer