Fix: bug #21261 : Monnaie - mauvais nb de colonnes en insert et en update

This commit is contained in:
Laurent Destailleur 2007-10-31 12:17:31 +00:00
parent a23c06f44e
commit e65cc0ab87

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2006 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2007 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be> * Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
* Copyright (C) 2005-2007 Regis Houssin <regis.houssin@cap-networks.com> * Copyright (C) 2005-2007 Regis Houssin <regis.houssin@cap-networks.com>
* *
@ -19,7 +19,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* *
* $Id$ * $Id$
* $Source$
*/ */
/** /**
@ -162,7 +161,7 @@ $tabfieldinsert[5] = "code,civilite";
$tabfieldinsert[6] = "code,libelle,type"; $tabfieldinsert[6] = "code,libelle,type";
$tabfieldinsert[7] = "libelle,deductible"; $tabfieldinsert[7] = "libelle,deductible";
$tabfieldinsert[8] = "code,libelle"; $tabfieldinsert[8] = "code,libelle";
$tabfieldinsert[9] = "code_iso,label"; $tabfieldinsert[9] = "code,code_iso,label";
$tabfieldinsert[10]= "fk_pays,taux,recuperableonly,note"; $tabfieldinsert[10]= "fk_pays,taux,recuperableonly,note";
$tabfieldinsert[11]= "element,source,code,libelle"; $tabfieldinsert[11]= "element,source,code,libelle";
$tabfieldinsert[12]= "code,libelle,libelle_facture,nbjour,fdm,decalage"; $tabfieldinsert[12]= "code,libelle,libelle_facture,nbjour,fdm,decalage";
@ -216,6 +215,7 @@ $sortorder=$_GET["sortorder"];
if ($_POST["actionadd"] || $_POST["actionmodify"]) if ($_POST["actionadd"] || $_POST["actionmodify"])
{ {
$listfield=split(',',$tabfield[$_POST["id"]]); $listfield=split(',',$tabfield[$_POST["id"]]);
$listfieldinsert=split(',',$tabfieldinsert[$_POST["id"]]);
$listfieldmodify=split(',',$tabfieldinsert[$_POST["id"]]); $listfieldmodify=split(',',$tabfieldinsert[$_POST["id"]]);
$listfieldvalue=split(',',$tabfieldvalue[$_POST["id"]]); $listfieldvalue=split(',',$tabfieldvalue[$_POST["id"]]);
@ -256,23 +256,26 @@ if ($_POST["actionadd"] || $_POST["actionmodify"])
// Add new entry // Add new entry
$sql = "INSERT INTO ".$tabname[$_POST["id"]]." ("; $sql = "INSERT INTO ".$tabname[$_POST["id"]]." (";
if ($tabrowid[$_POST["id"]]) $sql.= $tabrowid[$_POST["id"]].","; // List of fields
if ($tabrowid[$_POST["id"]] &&
! in_array($tabrowid[$_POST["id"]],$listfieldinsert)) $sql.= $tabrowid[$_POST["id"]].",";
$sql.= $tabfieldinsert[$_POST["id"]]; $sql.= $tabfieldinsert[$_POST["id"]];
$sql.=",active)"; $sql.=",active)";
$sql.= " VALUES("; $sql.= " VALUES(";
// Ajoute valeur des champs // List of values
if ($tabrowid[$_POST["id"]] && if ($tabrowid[$_POST["id"]] &&
! in_array($tabrowid[$_POST["id"]],$listfield)) $sql.= $newid.","; ! in_array($tabrowid[$_POST["id"]],$listfieldinsert)) $sql.= $newid.",";
$i=0; $i=0;
foreach ($listfieldmodify as $f => $value) { foreach ($listfieldinsert as $f => $value)
{
if ($value == 'price') { $_POST[$listfieldvalue[$i]] = price2num($_POST[$listfieldvalue[$i]],'MU'); } if ($value == 'price') { $_POST[$listfieldvalue[$i]] = price2num($_POST[$listfieldvalue[$i]],'MU'); }
if ($i) $sql.=","; if ($i) $sql.=",";
$sql.="'".addslashes($_POST[$listfieldvalue[$i]])."'"; $sql.="'".addslashes($_POST[$listfieldvalue[$i]])."'";
$i++; $i++;
} }
$sql.=",1)"; $sql.=",1)";
dolibarr_syslog("dict actionadd sql=".$sql); dolibarr_syslog("dict actionadd sql=".$sql);
$result = $db->query($sql); $result = $db->query($sql);
if (!$result) if (!$result)
{ {