Qual: Uniformisation du code php pour grer les lignes de propal, facture et commande.

This commit is contained in:
Laurent Destailleur 2006-06-17 18:12:46 +00:00
parent e9833091a7
commit 39a24aa1d4
8 changed files with 135 additions and 137 deletions

View File

@ -1529,9 +1529,9 @@ class Commande
$sql.= ",remise_percent='".price2num($remise_percent)."'";
$sql.= ",tva_tx='".price2num($txtva)."'";
$sql.= ",qty='".price2num($qty)."'";
//if ($datestart) { $sql.= ",date_start='$datestart'"; }
//if ($date_end) { $sql.= ",date_start='$date_end'"; }
//else { $sql.=',date_start=null'; }
//if ($dateend) { $sql.= ",date_end='$dateend'"; }
//if ($date_end) { $sql.= ",date_end='$date_end'"; }
//else { $sql.=',date_end=null'; }
//$sql.= " info_bits=".$info_bits.",";
$sql.= ",total_ht='".price2num($total_ht)."'";
@ -2135,22 +2135,26 @@ class CommandeLigne
*/
function fetch($rowid)
{
$sql = 'SELECT fk_commande, fk_product, description, price, qty, rowid, tva_tx,';
$sql.= ' label,';
$sql.= ' remise, remise_percent, fk_remise_except, subprice,';
$sql.= ' info_bits, total_ht, total_tva, total_ttc, coef, rang';
$sql.= ' FROM '.MAIN_DB_PREFIX.'commandedet WHERE rowid = '.$rowid;
$sql = 'SELECT cd.rowid, cd.fk_commande, cd.fk_product, cd.description, cd.price, cd.qty, cd.tva_tx,';
$sql.= ' cd.label,';
$sql.= ' cd.remise, cd.remise_percent, cd.fk_remise_except, cd.subprice,';
$sql.= ' cd.info_bits, cd.total_ht, cd.total_tva, cd.total_ttc, cd.coef, cd.rang,';
$sql.= ' p.ref as product_ref, p.label as product_libelle, p.description as product_desc';
$sql.= ' FROM '.MAIN_DB_PREFIX.'commandedet as cd';
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON cd.fk_product = p.rowid';
$sql.= ' WHERE cd.rowid = '.$rowid;
$result = $this->db->query($sql);
if ($result)
{
$objp = $this->db->fetch_object($result);
$this->rowid = $objp->rowid;
$this->fk_propal = $objp->fk_propal;
$this->label = $objp->label;
$this->desc = $objp->description;
$this->qty = $objp->qty;
$this->price = $objp->price;
$this->subprice = $objp->subprice;
$this->tva_taux = $objp->tva_taux;
$this->tva_tx = $objp->tva_tx;
$this->remise = $objp->remise;
$this->remise_percent = $objp->remise_percent;
$this->fk_remise_except = $objp->fk_remise_except;
@ -2161,6 +2165,11 @@ class CommandeLigne
$this->total_ttc = $objp->total_ttc;
$this->coef = $objp->coef;
$this->rang = $objp->rang;
$this->ref = $objp->product_ref;
$this->libelle = $objp->product_libelle;
$this->product_desc = $objp->product_desc;
$this->db->free($result);
}
else
@ -2187,7 +2196,7 @@ class CommandeLigne
$sql.= " '".addslashes($this->desc)."',";
$sql.= " '".price2num($this->price)."',";
$sql.= " '".price2num($this->qty)."',";
$sql.= " '".price2num($this->txtva)."',";
$sql.= " '".price2num($this->tva_tx)."',";
if ($this->fk_product) { $sql.= "'".$this->fk_product."',"; }
else { $sql.='0,'; }
$sql.= " '".price2num($this->remise_percent)."',";
@ -2239,7 +2248,7 @@ class CommandeLigne
$sql.= ",remise_percent='".price2num($this->remise_percent)."'";
if ($fk_remise_except) $sql.= ",fk_remise_except=".$this->fk_remise_except;
else $sql.= ",fk_remise_except=null";
$sql.= ",tva_taux='".price2num($this->txtva)."'";
$sql.= ",tva_tx='".price2num($this->tva_tx)."'";
$sql.= ",qty='".price2num($this->qty)."'";
$sql.= ",rang='".$this->rang."'";
$sql.= ",coef='".$this->coef."'";

View File

@ -374,18 +374,18 @@ if (($_POST['action'] == 'addligne' || $_POST['action'] == 'addligne_predef') &&
$soc = new Societe($db);
$ret=$soc->fetch($fac->socidp);
$datestart='';
$dateend='';
$date_start='';
$date_end='';
// Si ajout champ produit libre
if ($_POST['action'] == 'addligne')
{
if ($_POST['date_startyear'] && $_POST['date_startmonth'] && $_POST['date_startday'])
{
$datestart=$_POST['date_startyear'].'-'.$_POST['date_startmonth'].'-'.$_POST['date_startday'];
$date_start=$_POST['date_startyear'].'-'.$_POST['date_startmonth'].'-'.$_POST['date_startday'];
}
if ($_POST['date_endyear'] && $_POST['date_endmonth'] && $_POST['date_endday'])
{
$dateend=$_POST['date_endyear'].'-'.$_POST['date_endmonth'].'-'.$_POST['date_endday'];
$date_end=$_POST['date_endyear'].'-'.$_POST['date_endmonth'].'-'.$_POST['date_endday'];
}
}
// Si ajout champ produit prédéfini
@ -393,11 +393,11 @@ if (($_POST['action'] == 'addligne' || $_POST['action'] == 'addligne_predef') &&
{
if ($_POST['date_start_predefyear'] && $_POST['date_start_predefmonth'] && $_POST['date_start_predefday'])
{
$datestart=$_POST['date_start_predefyear'].'-'.$_POST['date_start_predefmonth'].'-'.$_POST['date_start_predefday'];
$date_start=$_POST['date_start_predefyear'].'-'.$_POST['date_start_predefmonth'].'-'.$_POST['date_start_predefday'];
}
if ($_POST['date_end_predefyear'] && $_POST['date_end_predefmonth'] && $_POST['date_end_predefday'])
{
$dateend=$_POST['date_end_predefyear'].'-'.$_POST['date_end_predefmonth'].'-'.$_POST['date_end_predefday'];
$date_end=$_POST['date_end_predefyear'].'-'.$_POST['date_end_predefmonth'].'-'.$_POST['date_end_predefday'];
}
}
@ -445,8 +445,8 @@ if (($_POST['action'] == 'addligne' || $_POST['action'] == 'addligne_predef') &&
$tva_tx,
$_POST['idprod'],
$_POST['remise_percent'],
$datestart,
$dateend
$date_start,
$date_end
);
}
@ -458,13 +458,13 @@ if ($_POST['action'] == 'updateligne' && $user->rights->facture->creer && $_POST
$fac = new Facture($db,'',$_POST['facid']);
if (! $fac->fetch($_POST['facid']) > 0) dolibarr_print_error($db);
$datestart='';
$dateend='';
$date_start='';
$date_end='';
if ($_POST['date_startyear'] && $_POST['date_startmonth'] && $_POST['date_startday']) {
$datestart=$_POST['date_startyear'].'-'.$_POST['date_startmonth'].'-'.$_POST['date_startday'];
$date_start=$_POST['date_startyear'].'-'.$_POST['date_startmonth'].'-'.$_POST['date_startday'];
}
if ($_POST['date_endyear'] && $_POST['date_endmonth'] && $_POST['date_endday']) {
$dateend=$_POST['date_endyear'].'-'.$_POST['date_endmonth'].'-'.$_POST['date_endday'];
$date_end=$_POST['date_endyear'].'-'.$_POST['date_endmonth'].'-'.$_POST['date_endday'];
}
$result = $fac->updateline($_POST['rowid'],
@ -472,8 +472,8 @@ if ($_POST['action'] == 'updateligne' && $user->rights->facture->creer && $_POST
$_POST['price'],
$_POST['qty'],
$_POST['remise_percent'],
$datestart,
$dateend,
$date_start,
$date_end,
$_POST['tva_tx']
);

View File

@ -87,10 +87,10 @@ class Contrat
* \param user Objet User qui avtice le contrat
* \param line_id Id de la ligne de detail à activer
* \param date Date d'ouverture
* \param dateend Date fin prévue
* \param date_end Date fin prévue
* \return int < 0 si erreur, > 0 si ok
*/
function active_line($user, $line_id, $date, $dateend='')
function active_line($user, $line_id, $date, $date_end='')
{
global $langs,$conf;
@ -98,7 +98,7 @@ class Contrat
$sql = "UPDATE ".MAIN_DB_PREFIX."contratdet SET statut = 4,";
$sql.= " date_ouverture = '".$this->db->idate($date)."',";
if ($dateend) $sql.= " date_fin_validite = '".$this->db->idate($dateend)."',";
if ($date_end) $sql.= " date_fin_validite = '".$this->db->idate($date_end)."',";
$sql.= " fk_user_ouverture = ".$user->id;
$sql.= " WHERE rowid = ".$line_id . " AND (statut = 0 OR statut = 3) ";
@ -125,17 +125,17 @@ class Contrat
* \brief Active une ligne detail d'un contrat
* \param user Objet User qui avtice le contrat
* \param line_id Id de la ligne de detail à activer
* \param dateend Date fin
* \param date_end Date fin
* \return int <0 si erreur, >0 si ok
*/
function close_line($user, $line_id, $dateend)
function close_line($user, $line_id, $date_end)
{
global $langs,$conf;
// statut actif : 4
$sql = "UPDATE ".MAIN_DB_PREFIX."contratdet SET statut = 5,";
$sql.= " date_cloture = '".$this->db->idate($dateend)."',";
$sql.= " date_cloture = '".$this->db->idate($date_end)."',";
$sql.= " fk_user_cloture = ".$user->id;
$sql.= " WHERE rowid = ".$line_id . " AND statut = 4";
@ -567,16 +567,16 @@ class Contrat
* \param txtva Taux tva
* \param fk_product Id produit
* \param remise_percent Pourcentage de remise de la ligne
* \param datestart Date de debut prévue
* \param dateend Date de fin prévue
* \param date_start Date de debut prévue
* \param date_end Date de fin prévue
* \return int <0 si erreur, >0 si ok
*/
function addline($desc, $pu, $qty, $txtva, $fk_product=0, $remise_percent=0, $datestart, $dateend)
function addline($desc, $pu, $qty, $txtva, $fk_product=0, $remise_percent=0, $date_start, $date_end)
{
global $langs;
global $conf;
dolibarr_syslog("contrat.class.php::addline $desc, $pu, $qty, $txtva, $fk_product, $remise_percent, $datestart, $dateend");
dolibarr_syslog("contrat.class.php::addline $desc, $pu, $qty, $txtva, $fk_product, $remise_percent, $date_start, $date_end");
if ($this->statut == 0)
{
@ -611,13 +611,13 @@ class Contrat
$sql = "INSERT INTO ".MAIN_DB_PREFIX."contratdet";
$sql.= " (fk_contrat, label, description, fk_product, price_ht, qty, tva_tx,";
$sql.= " remise_percent, subprice, remise";
if ($datestart > 0) { $sql.= ",date_ouverture_prevue"; }
if ($dateend > 0) { $sql.= ",date_fin_validite"; }
if ($date_start > 0) { $sql.= ",date_ouverture_prevue"; }
if ($date_end > 0) { $sql.= ",date_fin_validite"; }
$sql.= ") VALUES ($this->id, '" . addslashes($label) . "','" . addslashes($desc) . "',";
$sql.= ($fk_product>0 ? $fk_product : "null");
$sql.= ",".price2num($price).", '$qty', $txtva, $remise_percent,'".price2num($subprice)."','".price2num( $remise)."'";
if ($datestart > 0) { $sql.= ",".$this->db->idate($datestart); }
if ($dateend > 0) { $sql.= ",".$this->db->idate($dateend); }
if ($date_start > 0) { $sql.= ",".$this->db->idate($date_start); }
if ($date_end > 0) { $sql.= ",".$this->db->idate($date_end); }
$sql.= ");";
if ( $this->db->query($sql) )
@ -644,15 +644,15 @@ class Contrat
* \param pu Prix unitaire
* \param qty Quantité
* \param remise_percent Pourcentage de remise de la ligne
* \param datestart Date de debut prévue
* \param dateend Date de fin prévue
* \param date_start Date de debut prévue
* \param date_end Date de fin prévue
* \param tvatx Taux TVA
* \param date_debut_reel Date de debut réelle
* \param date_fin_reel Date de fin réelle
* \return int < 0 si erreur, > 0 si ok
*/
function updateline($rowid, $desc, $pu, $qty, $remise_percent=0,
$datestart='', $dateend='', $tvatx,
$date_start='', $date_end='', $tvatx,
$date_debut_reel='', $date_fin_reel='')
{
// Nettoyage parametres
@ -673,7 +673,7 @@ class Contrat
$remise_percent=0;
}
dolibarr_syslog("Contrat::UpdateLine $rowid, $desc, $pu, $qty, $remise_percent, $datestart, $dateend, $tvatx");
dolibarr_syslog("Contrat::UpdateLine $rowid, $desc, $pu, $qty, $remise_percent, $date_start, $date_end, $tvatx");
$this->db->begin();
@ -685,9 +685,9 @@ class Contrat
$sql .= ",qty='$qty'";
$sql .= ",tva_tx='". price2num($tvatx)."'";
if ($datestart > 0) { $sql.= ",date_ouverture_prevue=".$this->db->idate($datestart); }
if ($date_start > 0) { $sql.= ",date_ouverture_prevue=".$this->db->idate($date_start); }
else { $sql.=",date_ouverture_prevue=null"; }
if ($dateend > 0) { $sql.= ",date_fin_validite=".$this->db->idate($dateend); }
if ($date_end > 0) { $sql.= ",date_fin_validite=".$this->db->idate($date_end); }
else { $sql.=",date_fin_validite=null"; }
if ($date_debut_reel > 0) { $sql.= ",date_ouverture=".$this->db->idate($date_debut_reel); }
else { $sql.=",date_ouverture=null"; }

View File

@ -976,10 +976,10 @@ class Facture
* \param idproduct
* \param qty
* \param remise_percent
* \param datestart
* \param dateend
* \param date_start
* \param date_end
*/
function add_product($idproduct, $qty, $remise_percent, $datestart='', $dateend='')
function add_product($idproduct, $qty, $remise_percent, $date_start='', $date_end='')
{
if ($idproduct > 0)
{
@ -991,32 +991,32 @@ class Facture
}
$this->products_qty[$i] = $qty;
$this->products_remise_percent[$i] = $remise_percent;
if ($datestart) { $this->products_date_start[$i] = $datestart; }
if ($dateend) { $this->products_date_end[$i] = $dateend; }
if ($date_start) { $this->products_date_start[$i] = $date_start; }
if ($date_end) { $this->products_date_end[$i] = $date_end; }
}
}
/**
* \brief Ajoute une ligne de facture (associé à un produit/service prédéfini ou non)
* \param facid id de la facture
* \param desc description de la ligne
* \param pu prix unitaire
* \param qty quantité
* \param txtva taux de tva forcé, sinon -1
* \param fk_product id du produit/service predéfini
* \param remise_percent pourcentage de remise de la ligne
* \param datestart date de debut de validité du service
* \param dateend date de fin de validité du service
* \param ventil code de ventilation comptable
* \param facid Id de la facture
* \param desc Description de la ligne
* \param pu Prix unitaire
* \param qty Quantité
* \param txtva Taux de tva forcé, sinon -1
* \param fk_product Id du produit/service predéfini
* \param remise_percent Pourcentage de remise de la ligne
* \param date_start Date de debut de validité du service
* \param date_end Date de fin de validité du service
* \param ventil Code de ventilation comptable
* \remarks Les parametres sont deja censé etre juste et avec valeurs finales a l'appel
* de cette methode. Aussi, pour le taux tva, il doit deja avoir ete défini
* par l'appelant par la methode get_default_tva(societe_vendeuse,societe_acheteuse,taux_produit)
* et le desc doit deja avoir la bonne valeur (a l'appelant de gerer le multilangue)
*/
function addline($facid, $desc, $pu, $qty, $txtva, $fk_product=0, $remise_percent=0, $datestart='', $dateend='', $ventil = 0)
function addline($facid, $desc, $pu, $qty, $txtva, $fk_product=0, $remise_percent=0, $date_start='', $date_end='', $ventil = 0)
{
global $conf;
dolibarr_syslog("facture.class.php::addline($facid,$desc,$pu,$qty,$txtva,$fk_product,$remise_percent,$datestart,$dateend,$ventil)");
dolibarr_syslog("facture.class.php::addline($facid,$desc,$pu,$qty,$txtva,$fk_product,$remise_percent,$date_start,$date_end,$ventil)");
include_once(DOL_DOCUMENT_ROOT.'/lib/price.lib.php');
if ($this->brouillon)
@ -1079,8 +1079,8 @@ class Facture
$ligne->remise_percent=$remise_percent;
$ligne->subprice=$subprice;
$ligne->remise=$remise;
$ligne->datestart=$datestart;
$ligne->dateend=$dateend;
$ligne->date_start=$date_start;
$ligne->date_end=$date_end;
$ligne->ventil=$ventil;
$ligne->rang=($rangmax+1);
$ligne->info_bits=$info_bits;
@ -1122,14 +1122,14 @@ class Facture
* \param pu Prix unitaire
* \param qty Quantité
* \param remise_percent Pourcentage de remise de la ligne
* \param datestart Date de debut de validité du service
* \param dateend Date de fin de validité du service
* \param date_start Date de debut de validité du service
* \param date_end Date de fin de validité du service
* \param tva_tx Taux TVA
* \return int < 0 si erreur, > 0 si ok
*/
function updateline($rowid, $desc, $pu, $qty, $remise_percent=0, $datestart, $dateend, $txtva)
function updateline($rowid, $desc, $pu, $qty, $remise_percent=0, $date_start, $date_end, $txtva)
{
dolibarr_syslog("Facture::UpdateLine $rowid, $desc, $pu, $qty, $remise_percent, $datestart, $dateend, $txtva");
dolibarr_syslog("Facture::UpdateLine $rowid, $desc, $pu, $qty, $remise_percent, $date_start, $date_end, $txtva");
include_once(DOL_DOCUMENT_ROOT.'/lib/price.lib.php');
if ($this->brouillon)
@ -1176,8 +1176,8 @@ class Facture
$ligne->remise_percent=$remise_percent;
$ligne->subprice=$subprice;
$ligne->remise=$remise;
$ligne->datestart=$datestart;
$ligne->dateend=$dateend;
$ligne->date_start=$date_start;
$ligne->date_end=$date_end;
$ligne->total_ht=$total_ht;
$ligne->total_tva=$total_tva;
$ligne->total_ttc=$total_ttc;
@ -2430,6 +2430,7 @@ class FactureLigne
if ($result)
{
$objp = $this->db->fetch_object($result);
$this->rowid = $objp->rowid;
$this->fk_facture = $objp->fk_facture;
$this->desc = $objp->description;
$this->qty = $objp->qty;
@ -2490,9 +2491,9 @@ class FactureLigne
$sql.= " '".price2num($this->remise)."',";
if ($this->fk_remise_except) $sql.= $this->fk_remise_except.",";
else $sql.= 'null,';
if ($this->datestart) { $sql.= "'".$this->datestart."',"; }
if ($this->date_start) { $sql.= "'".$this->date_start."',"; }
else { $sql.='null,'; }
if ($this->dateend) { $sql.= "'".$this->dateend."',"; }
if ($this->date_end) { $sql.= "'".$this->date_end."',"; }
else { $sql.='null,'; }
$sql.= ' '.$this->fk_code_ventilation.',';
$sql.= ' '.$this->fk_export_compta.',';
@ -2536,13 +2537,13 @@ class FactureLigne
$sql.= ",subprice='".price2num($this->subprice)."'";
$sql.= ",remise='".price2num($this->remise)."'";
$sql.= ",remise_percent='".price2num($this->remise_percent)."'";
if ($fk_remise_except) $sql.= ",fk_remise_except=".$this->fk_remise_except;
if ($this->fk_remise_except) $sql.= ",fk_remise_except=".$this->fk_remise_except;
else $sql.= ",fk_remise_except=null";
$sql.= ",tva_taux='".price2num($this->txtva)."'";
$sql.= ",tva_taux='".price2num($this->tva_taux)."'";
$sql.= ",qty='".price2num($this->qty)."'";
if ($this->datestart) { $sql.= ",date_start='".$this->datestart."'"; }
if ($this->date_start) { $sql.= ",date_start='".$this->date_start."'"; }
else { $sql.=',date_start=null'; }
if ($this->dateend) { $sql.= ",date_end='".$this->dateend."'"; }
if ($this->date_end) { $sql.= ",date_end='".$this->date_end."'"; }
else { $sql.=',date_end=null'; }
$sql.= ",rang='".$this->rang."'";
$sql.= ",info_bits='".$this->info_bits."'";

View File

@ -26,12 +26,22 @@
\version $Revision$
*/
define('DOL_DOCUMENT_ROOT','../');
require_once('../translate.class.php');
require_once('../lib/functions.inc.php');
$docurl = '<a href="doc/dolibarr-install.html">documentation</a>';
$conffile = "../conf/conf.php";
define('DOL_DOCUMENT_ROOT','../');
// Forcage du log pour les install et mises a jour
$conf->syslog->enabled=1;
define('SYSLOG_FILE','/tmp/dolibarr_install.log');
define('SYSLOG_FILE_NO_ERROR',1);
// Forcage du parametrage PHP magic_quots_gpc (Sinon il faudrait a chaque POST, conditionner
// la lecture de variable par stripslashes selon etat de get_magic_quotes).
@ -50,9 +60,6 @@ if (get_magic_quotes_gpc())
@set_magic_quotes_runtime(0);
$docurl = '<a href="doc/dolibarr-install.html">documentation</a>';
$conffile = "../conf/conf.php";
// Defini objet langs
$langs = new Translate('../langs');
$langs->setDefaultLang('auto');
@ -61,6 +68,7 @@ $langs->setPhpLang();
$bc[false]=' class="bg1"';
$bc[true]=' class="bg2"';
function pHeader($soutitre,$next,$action='set')
{
global $langs;
@ -112,38 +120,7 @@ function pFooter($nonext=0,$setuplang='')
function dolibarr_install_syslog($message)
{
// Ajout user a la log
$login='install';
$message=sprintf("%-8s",$login)." ".$message;
$fileinstall="/tmp/dolibarr_install.log";
$file=@fopen($fileinstall,"a+");
if ($file) {
fwrite($file,strftime("%Y-%m-%d %H:%M:%S",time())." ".$level." ".$message."\n");
fclose($file);
}
}
/**
\brief Compare 2 versions
\param versionarray1 Tableau de version (vermajeur,vermineur,autre)
\param versionarray2 Tableau de version (vermajeur,vermineur,autre)
\return int <0 si versionarray1<versionarray2, 0 si =, >0 si versionarray1>versionarray2
*/
function aaversioncompare($versionarray1,$versionarray2)
{
$ret=0;
$i=0;
while ($i < max(sizeof($versionarray1),sizeof($versionarray1)))
{
$operande1=isset($versionarray1[$i])?$versionarray1[$i]:0;
$operande2=isset($versionarray2[$i])?$versionarray2[$i]:0;
if ($operande1 < $operande2) { $ret = -1; break; }
if ($operande1 > $operande2) { $ret = 1; break; }
$i++;
}
return $ret;
dolibarr_syslog($message);
}
?>

View File

@ -170,17 +170,15 @@ if (isset($_POST['action']) && $_POST['action'] == 'upgrade')
migrate_modeles($db,$langs,$conf);
migrate_price_commande($db,$langs,$conf);
// migrate_price_propal($db,$langs,$conf);
migrate_price_propal($db,$langs,$conf);
// migrate_price_commande($db,$langs,$conf);
// migrate_price_facture($db,$langs,$conf);
// On commit dans tous les cas.
// La procédure etant conçue pour pouvoir passer plusieurs fois quelquesoit la situation.
$db->commit();
migrate_price_facture($db,$langs,$conf);
$db->close();
}
@ -617,7 +615,7 @@ function migrate_price_facture($db,$langs,$conf)
$sql.= " f.rowid as facid, f.remise_percent as remise_percent_global";
$sql.= " FROM ".MAIN_DB_PREFIX."facturedet as fd, ".MAIN_DB_PREFIX."facture as f";
$sql.= " WHERE fd.fk_facture = f.rowid";
$sql.= " AND (fd.total_ttc = 0 or fd.total_ttc IS NULL) AND fd.remise_percent != 100";
$sql.= " AND (fd.total_ttc = 0 AND fd.remise_percent != 100) or fd.total_ttc IS NULL";
$resql=$db->query($sql);
if ($resql)
{
@ -651,7 +649,7 @@ function migrate_price_facture($db,$langs,$conf)
dolibarr_install_syslog("Line $rowid: facid=$obj->facid pu=$pu qty=$qty tva_taux=$txtva remise_percent=$remise_percent remise_global=$remise_percent_global -> $total_ht, $total_tva, $total_ttc");
print ". ";
// $facligne->update($rowid);
$facligne->update();
/* On touche pas a facture mere
@ -720,7 +718,7 @@ function migrate_price_propal($db,$langs,$conf)
$sql.= " p.rowid as propalid, p.remise_percent as remise_percent_global";
$sql.= " FROM ".MAIN_DB_PREFIX."propaldet as pd, ".MAIN_DB_PREFIX."propal as p";
$sql.= " WHERE pd.fk_propal = p.rowid";
$sql.= " AND (pd.total_ttc = 0 or pd.total_ttc IS NULL) AND pd.remise_percent != 100";
$sql.= " AND (pd.total_ttc = 0 AND pd.remise_percent != 100) or pd.total_ttc IS NULL";
$resql=$db->query($sql);
if ($resql)
{
@ -754,7 +752,7 @@ function migrate_price_propal($db,$langs,$conf)
dolibarr_install_syslog("Line $rowid: propalid=$obj->facid pu=$pu qty=$qty tva_taux=$txtva remise_percent=$remise_percent remise_global=$remise_percent_global -> $total_ht, $total_tva, $total_ttc");
print ". ";
// $propalligne->update($rowid);
$propalligne->update($rowid);
/* On touche pas a propal mere
@ -822,7 +820,7 @@ function migrate_price_commande($db,$langs,$conf)
$sql.= " c.rowid as commandeid, c.remise_percent as remise_percent_global";
$sql.= " FROM ".MAIN_DB_PREFIX."commandedet as cd, ".MAIN_DB_PREFIX."commande as c";
$sql.= " WHERE cd.fk_commande = c.rowid";
$sql.= " AND (cd.total_ttc = 0 or cd.total_ttc IS NULL) AND cd.remise_percent != 100";
$sql.= " AND (cd.total_ttc = 0 AND cd.remise_percent != 100) or cd.total_ttc IS NULL";
$resql=$db->query($sql);
if ($resql)
{
@ -856,7 +854,7 @@ function migrate_price_commande($db,$langs,$conf)
dolibarr_install_syslog("Line $rowid: commandeid=$obj->facid pu=$pu qty=$qty tva_taux=$txtva remise_percent=$remise_percent remise_global=$remise_percent_global -> $total_ht, $total_tva, $total_ttc");
print ". ";
// $commandeligne->update($rowid);
$commandeligne->update($rowid);
/* On touche pas a facture mere
$commande = new Commande($db);

View File

@ -151,15 +151,16 @@ function sanitize_string($str)
/**
\brief Envoi des messages dolibarr dans syslog ou dans un fichier
Pour syslog: facility défini par SYSLOG_FACILITY
\brief Envoi des messages dolibarr dans un fichier ou dans syslog
Pour fichier: fichier défini par SYSLOG_FILE
\param message Message a envoyer a syslog
Pour syslog: facility défini par SYSLOG_FACILITY
\param message Message a tracer
\param level Niveau de l'erreur
\remarks Cette fonction n'a un effet que si le module syslog est activé.
Warning, les fonctions syslog sont buggués sous Windows et génèrent des
fautes de protection mémoire. Pour résoudre, utiliser le loggage fichier,
au lieu du loggage syslog (configuration du module).
Si SYSLOG_FILE_NO_ERROR défini, on ne gère pas erreur ecriture log
*/
function dolibarr_syslog($message, $level=LOG_ERR)
{
@ -174,12 +175,15 @@ function dolibarr_syslog($message, $level=LOG_ERR)
if (defined("SYSLOG_FILE") && SYSLOG_FILE)
{
$file=fopen(SYSLOG_FILE,"a+");
if ($file) {
if (defined("SYSLOG_FILE_NO_ERROR")) $file=@fopen(SYSLOG_FILE,"a+");
else $file=fopen(SYSLOG_FILE,"a+");
if ($file)
{
fwrite($file,strftime("%Y-%m-%d %H:%M:%S",time())." ".$level." ".$message."\n");
fclose($file);
}
else {
elseif (! defined("SYSLOG_FILE_NO_ERROR"))
{
$langs->load("main");
print $langs->trans("ErrorFailedToOpenFile",SYSLOG_FILE);
}

View File

@ -2378,20 +2378,24 @@ class PropaleLigne
*/
function fetch($rowid)
{
$sql = 'SELECT fk_propal, fk_product, description, price, qty, rowid, tva_tx,';
$sql.= ' remise, remise_percent, fk_remise_except, subprice,';
$sql.= ' info_bits, total_ht, total_tva, total_ttc, coef, rang';
$sql.= ' FROM '.MAIN_DB_PREFIX.'propaldet WHERE rowid = '.$rowid;
$sql = 'SELECT pd.rowid, pd.fk_propal, pd.fk_product, pd.description, pd.price, pd.qty, pd.tva_tx,';
$sql.= ' pd.remise, pd.remise_percent, pd.fk_remise_except, pd.subprice,';
$sql.= ' pd.info_bits, pd.total_ht, pd.total_tva, pd.total_ttc, pd.coef, pd.rang,';
$sql.= ' p.ref as product_ref, p.label as product_libelle, p.description as product_desc';
$sql.= ' FROM '.MAIN_DB_PREFIX.'propaldet as pd';
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pd.fk_product = p.rowid';
$sql.= ' WHERE pd.rowid = '.$rowid;
$result = $this->db->query($sql);
if ($result)
{
$objp = $this->db->fetch_object($result);
$this->rowid = $objp->rowid;
$this->fk_propal = $objp->fk_propal;
$this->desc = $objp->description;
$this->qty = $objp->qty;
$this->price = $objp->price;
$this->subprice = $objp->subprice;
$this->tva_taux = $objp->tva_taux;
$this->tva_tx = $objp->tva_tx;
$this->remise = $objp->remise;
$this->remise_percent = $objp->remise_percent;
$this->fk_remise_except = $objp->fk_remise_except;
@ -2402,6 +2406,11 @@ class PropaleLigne
$this->total_ttc = $objp->total_ttc;
$this->coef = $objp->coef;
$this->rang = $objp->rang;
$this->ref = $objp->product_ref;
$this->libelle = $objp->product_libelle;
$this->product_desc = $objp->product_desc;
$this->db->free($result);
}
else
@ -2428,7 +2437,7 @@ class PropaleLigne
$sql.= " '".addslashes($this->desc)."',";
$sql.= " '".price2num($this->price)."',";
$sql.= " '".price2num($this->qty)."',";
$sql.= " '".price2num($this->txtva)."',";
$sql.= " '".price2num($this->tva_tx)."',";
if ($this->fk_product) { $sql.= "'".$this->fk_product."',"; }
else { $sql.='0,'; }
$sql.= " '".price2num($this->remise_percent)."',";
@ -2472,7 +2481,7 @@ class PropaleLigne
$this->db->begin();
// Mise a jour ligne en base
$sql = "UPDATE ".MAIN_DB_PREFIX."propaledet SET";
$sql = "UPDATE ".MAIN_DB_PREFIX."propaldet SET";
$sql.= " description='".addslashes($this->desc)."'";
$sql.= ",price='".price2num($this->price)."'";
$sql.= ",subprice='".price2num($this->subprice)."'";
@ -2480,7 +2489,7 @@ class PropaleLigne
$sql.= ",remise_percent='".price2num($this->remise_percent)."'";
if ($fk_remise_except) $sql.= ",fk_remise_except=".$this->fk_remise_except;
else $sql.= ",fk_remise_except=null";
$sql.= ",tva_taux='".price2num($this->txtva)."'";
$sql.= ",tva_tx='".price2num($this->tva_tx)."'";
$sql.= ",qty='".price2num($this->qty)."'";
$sql.= ",rang='".$this->rang."'";
$sql.= ",coef='".$this->coef."'";