diff --git a/htdocs/includes/modules/propale/mod_propale_marbre.php b/htdocs/includes/modules/propale/mod_propale_marbre.php index 243e392f4f3..1863b62a114 100644 --- a/htdocs/includes/modules/propale/mod_propale_marbre.php +++ b/htdocs/includes/modules/propale/mod_propale_marbre.php @@ -21,7 +21,7 @@ /** \file htdocs/includes/modules/propale/mod_propale_marbre.php \ingroup propale - \brief Fichier contenant la classe du mod�le de num�rotation de r�f�rence de propale Marbre + \brief Fichier contenant la classe du modele de numerotation de reference de propale Marbre \version $Id$ */ @@ -29,7 +29,7 @@ require_once(DOL_DOCUMENT_ROOT ."/includes/modules/propale/modules_propale.php") /** \class mod_propale_marbre - \brief Classe du mod�le de num�rotation de r�f�rence de propale Marbre + \brief Classe du modele de numerotation de reference de propale Marbre */ class mod_propale_marbre extends ModeleNumRefPropales @@ -65,10 +65,14 @@ class mod_propale_marbre extends ModeleNumRefPropales */ function canBeActivated() { + global $conf; + $pryymm=''; $sql = "SELECT MAX(ref)"; $sql.= " FROM ".MAIN_DB_PREFIX."propal"; + $sql.= " WHERE entity = ".$conf->entity; + $resql=$db->query($sql); if ($resql) { @@ -81,7 +85,7 @@ class mod_propale_marbre extends ModeleNumRefPropales } else { - $this->error='Une propal commeneant par $pryymm existe en base et est incompatible avec cette numerotation. Supprimer la ou renommer la pour activer ce module.'; + $this->error='Une propal commencant par $pryymm existe en base et est incompatible avec cette numerotation. Supprimer la ou renommer la pour activer ce module.'; return false; } } @@ -93,13 +97,14 @@ class mod_propale_marbre extends ModeleNumRefPropales */ function getNextValue($objsoc,$propal) { - global $db; + global $db,$conf; // D'abord on recupere la valeur max (reponse immediate car champ indexe) $posindice=8; $sql = "SELECT MAX(0+SUBSTRING(ref,".$posindice.")) as max"; $sql.= " FROM ".MAIN_DB_PREFIX."propal"; $sql.= " WHERE ref like '".$this->prefix."%'"; + $sql.= " AND entity = ".$conf->entity; $resql=$db->query($sql); if ($resql) diff --git a/htdocs/includes/modules/propale/mod_propale_saphir.php b/htdocs/includes/modules/propale/mod_propale_saphir.php index 3dd3bc731c5..7035538be7c 100644 --- a/htdocs/includes/modules/propale/mod_propale_saphir.php +++ b/htdocs/includes/modules/propale/mod_propale_saphir.php @@ -1,8 +1,8 @@ - * Copyright (C) 2004-2007 Laurent Destailleur - * Copyright (C) 2005-2007 Regis Houssin - * Copyright (C) 2008 Raphael Bertrand (Resultic) +/* Copyright (C) 2003-2007 Rodolphe Quiedeville + * Copyright (C) 2004-2007 Laurent Destailleur + * Copyright (C) 2005-2007 Regis Houssin + * Copyright (C) 2008 Raphael Bertrand (Resultic) * * 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 diff --git a/htdocs/includes/modules/propale/modules_propale.php b/htdocs/includes/modules/propale/modules_propale.php index 1a8d5a05d63..f252f7574e7 100644 --- a/htdocs/includes/modules/propale/modules_propale.php +++ b/htdocs/includes/modules/propale/modules_propale.php @@ -1,6 +1,7 @@ * Copyright (C) 2004-2008 Laurent Destailleur + * Copyright (C) 2005-2009 Regis Houssin * * 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 @@ -53,31 +54,34 @@ class ModelePDFPropales extends FPDF */ function liste_modeles($db) { - $type='propal'; - $liste=array(); - $sql ="SELECT nom as id, nom as lib"; - $sql.=" FROM ".MAIN_DB_PREFIX."document_model"; - $sql.=" WHERE type = '".$type."'"; + global $conf; + + $type='propal'; + $liste=array(); + $sql = "SELECT nom as id, nom as lib"; + $sql.= " FROM ".MAIN_DB_PREFIX."document_model"; + $sql.= " WHERE type = '".$type."'"; + $sql.= " AND entity = ".$cont->entity; - dol_syslog("modules_propale::liste_modeles sql=".$sql, LOG_DEBUG); - $resql = $db->query($sql); - if ($resql) + dol_syslog("modules_propale::liste_modeles sql=".$sql, LOG_DEBUG); + $resql = $db->query($sql); + if ($resql) + { + $num = $db->num_rows($resql); + $i = 0; + while ($i < $num) { - $num = $db->num_rows($resql); - $i = 0; - while ($i < $num) - { - $row = $db->fetch_row($resql); - $liste[$row[0]]=$row[1]; - $i++; - } + $row = $db->fetch_row($resql); + $liste[$row[0]]=$row[1]; + $i++; } - else - { - $this->error=$db->error(); - return -1; - } - return $liste; + } + else + { + $this->error=$db->error(); + return -1; + } + return $liste; } } @@ -184,12 +188,12 @@ function propale_pdf_create($db, $id, $modele, $outputlangs) // Si model pas encore bon if (! $modelisok) { - $liste=array(); + $liste=array(); $model=new ModelePDFPropales(); $liste=$model->liste_modeles($db); - $modele=key($liste); // Renvoie premiere valeur de clé trouvé dans le tableau - $file = "pdf_propale_".$modele.".modules.php"; - if (file_exists($dir.$file)) $modelisok=1; + $modele=key($liste); // Renvoie premiere valeur de clé trouvé dans le tableau + $file = "pdf_propale_".$modele.".modules.php"; + if (file_exists($dir.$file)) $modelisok=1; } diff --git a/htdocs/lib/functions2.lib.php b/htdocs/lib/functions2.lib.php index b007310b914..85561c1c572 100644 --- a/htdocs/lib/functions2.lib.php +++ b/htdocs/lib/functions2.lib.php @@ -290,6 +290,8 @@ function array2table($data,$tableMarkup=1,$tableoptions='',$troptions='',$tdopti */ function get_next_value($db,$mask,$table,$field,$where='',$valueforccc='',$date='') { + global $conf; + // Clean parameters if ($date == '') $date=mktime(); // We use local year and month of PHP server to search numbers // but we should use local year and month of user @@ -394,6 +396,7 @@ function get_next_value($db,$mask,$table,$field,$where='',$valueforccc='',$date= $sql.= " FROM ".MAIN_DB_PREFIX.$table; // $sql.= " WHERE ".$field." not like '(%'"; $sql.= " WHERE ".$field." like '".$maskLike."'"; + $sql.= " AND entity = ".$conf->entity; if ($where) $sql.=$where; if ($sqlwhere) $sql.=' AND '.$sqlwhere; @@ -664,12 +667,12 @@ function numero_semaine($time) /* * Norme ISO-8601: - * - La semaine 1 de toute ann�e est celle qui contient le 4 janvier ou que la semaine 1 de toute ann�e est celle qui contient le 1er jeudi de janvier. - * - La majorit� des ann�es ont 52 semaines mais les ann�es qui commence un jeudi et les ann�es bissextiles commen�ant un mercredi en poss�de 53. + * - La semaine 1 de toute annee est celle qui contient le 4 janvier ou que la semaine 1 de toute annee est celle qui contient le 1er jeudi de janvier. + * - La majorite des annees ont 52 semaines mais les annees qui commence un jeudi et les annees bissextiles commencant un mercredi en possede 53. * - Le 1er jour de la semaine est le Lundi */ - // D�finition du Jeudi de la semaine + // Definition du Jeudi de la semaine if (date("w",mktime(12,0,0,$mois,$jour,$annee))==0) // Dimanche $jeudiSemaine = mktime(12,0,0,$mois,$jour,$annee)-3*24*60*60; else if (date("w",mktime(12,0,0,$mois,$jour,$annee))<4) // du Lundi au Mercredi @@ -679,7 +682,7 @@ function numero_semaine($time) else // Jeudi $jeudiSemaine = mktime(12,0,0,$mois,$jour,$annee); - // D�finition du premier Jeudi de l'ann�e + // Definition du premier Jeudi de l'annee if (date("w",mktime(12,0,0,1,1,date("Y",$jeudiSemaine)))==0) // Dimanche { $premierJeudiAnnee = mktime(12,0,0,1,1,date("Y",$jeudiSemaine))+4*24*60*60; @@ -697,7 +700,7 @@ function numero_semaine($time) $premierJeudiAnnee = mktime(12,0,0,1,1,date("Y",$jeudiSemaine)); } - // D�finition du num�ro de semaine: nb de jours entre "premier Jeudi de l'ann�e" et "Jeudi de la semaine"; + // D�finition du numero de semaine: nb de jours entre "premier Jeudi de l'annee" et "Jeudi de la semaine"; $numeroSemaine = ( ( date("z",mktime(12,0,0,date("m",$jeudiSemaine),date("d",$jeudiSemaine),date("Y",$jeudiSemaine))) @@ -709,7 +712,7 @@ function numero_semaine($time) // Cas particulier de la semaine 53 if ($numeroSemaine==53) { - // Les ann�es qui commence un Jeudi et les ann�es bissextiles commen�ant un Mercredi en poss�de 53 + // Les annees qui commence un Jeudi et les ann�es bissextiles commencant un Mercredi en possede 53 if (date("w",mktime(12,0,0,1,1,date("Y",$jeudiSemaine)))==4 || (date("w",mktime(12,0,0,1,1,date("Y",$jeudiSemaine)))==3 && date("z",mktime(12,0,0,12,31,date("Y",$jeudiSemaine)))==365)) { $numeroSemaine = 53; diff --git a/htdocs/propal.class.php b/htdocs/propal.class.php index 570fc592fd6..f263a8e30e4 100644 --- a/htdocs/propal.class.php +++ b/htdocs/propal.class.php @@ -527,22 +527,24 @@ class Propal extends CommonObject $this->fetch_client(); // Insertion dans la base - $sql = "INSERT INTO ".MAIN_DB_PREFIX."propal (fk_soc, price,"; - $sql.= " remise, remise_percent, remise_absolue,"; - $sql.= " tva, total, datep, datec, ref, fk_user_author, note, note_public, model_pdf, fin_validite,"; - $sql.= " fk_cond_reglement, fk_mode_reglement, ref_client,"; - $sql.= " date_livraison"; + $sql = "INSERT INTO ".MAIN_DB_PREFIX."propal (fk_soc, price"; + $sql.= ", remise, remise_percent, remise_absolue"; + $sql.= ", tva, total, datep, datec, ref, fk_user_author, note, note_public, model_pdf, fin_validite"; + $sql.= ", fk_cond_reglement, fk_mode_reglement, ref_client"; + $sql.= ", date_livraison"; + $sql.= ", entity"; $sql.= ") "; - $sql.= " VALUES (".$this->socid.", 0,"; - $sql.= " ".$this->remise.", ".($this->remise_percent?$this->remise_percent:'null').", ".($this->remise_absolue?$this->remise_absolue:'null').","; - $sql.= " 0,0,".$this->db->idate($this->datep).", ".$this->db->idate(mktime()).", '".$this->ref."', "; - $sql.= ($user->id > 0 ? "'".$user->id."'":"null").","; - $sql.= "'".addslashes($this->note)."',"; - $sql.= "'".addslashes($this->note_public)."',"; - $sql.= "'".$this->modelpdf."',".$this->db->idate($this->fin_validite).","; - $sql.= " ".$this->cond_reglement_id.", ".$this->mode_reglement_id.","; - $sql.= "'".addslashes($this->ref_client)."',"; - $sql.= " ".($this->date_livraison!=''?$this->db->idate($this->date_livraison):'null'); + $sql.= " VALUES (".$this->socid.", 0"; + $sql.= ", ".$this->remise.", ".($this->remise_percent?$this->remise_percent:'null').", ".($this->remise_absolue?$this->remise_absolue:'null'); + $sql.= ", 0, 0,".$this->db->idate($this->datep).", ".$this->db->idate(mktime()).", '".$this->ref; + $sql.= ", ".($user->id > 0 ? "'".$user->id."'":"null"); + $sql.= ", '".addslashes($this->note); + $sql.= ", '".addslashes($this->note_public)."',"; + $sql.= ", '".$this->modelpdf."',".$this->db->idate($this->fin_validite); + $sql.= ", ".$this->cond_reglement_id.", ".$this->mode_reglement_id; + $sql.= ", '".addslashes($this->ref_client); + $sql.= ", ".($this->date_livraison!=''?$this->db->idate($this->date_livraison):'null'); + $sql.= ", ".$conf->entity; $sql.= ")"; dol_syslog("Propal::create sql=".$sql, LOG_DEBUG); @@ -580,14 +582,20 @@ class Propal extends CommonObject // Affectation au projet if ($resql && $this->projetidp) { - $sql = "UPDATE ".MAIN_DB_PREFIX."propal SET fk_projet=".$this->projetidp." WHERE ref='".$this->ref."'"; + $sql = "UPDATE ".MAIN_DB_PREFIX."propal"; + $sql.= " SET fk_projet=".$this->projetidp; + $sql.= " WHERE ref='".$this->ref."'"; + $sql.= " AND entity = ".$conf->entity; $result=$this->db->query($sql); } // Affectation de l'adresse de livraison if ($resql && $this->adresse_livraison_id) { - $sql = "UPDATE ".MAIN_DB_PREFIX."propal SET fk_adresse_livraison=$this->adresse_livraison_id WHERE ref='$this->ref'"; + $sql = "UPDATE ".MAIN_DB_PREFIX."propal"; + $sql.= " SET fk_adresse_livraison = ".$this->adresse_livraison_id; + $sql.= " WHERE ref = '".$this->ref."'"; + $sql.= " AND entity = ".$conf->entity; $result=$this->db->query($sql); } @@ -712,6 +720,8 @@ class Propal extends CommonObject */ function fetch($rowid,$ref='') { + global $conf; + $sql = "SELECT p.rowid,ref,remise,remise_percent,remise_absolue,fk_soc"; $sql.= ", total, tva, total_ht"; $sql.= ", datec"; @@ -732,6 +742,7 @@ class Propal extends CommonObject $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_paiement as cp ON p.fk_mode_reglement = cp.id'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'cond_reglement as cr ON p.fk_cond_reglement = cr.rowid'; $sql.= " WHERE p.fk_statut = c.id"; + $sql.= " AND p.entity = ".$conf->entity; if ($ref) $sql.= " AND p.ref='".$ref."'"; else $sql.= " AND p.rowid=".$rowid; @@ -1133,14 +1144,14 @@ class Propal extends CommonObject { if ($statut == 2) { - // Propale sign�e + // Propale signee include_once(DOL_DOCUMENT_ROOT."/commande/commande.class.php"); $result=$this->create_commande($user); if ($result >= 0) { - // Classe la soci�t� rattach�e comme client + // Classe la societe rattachee comme client $soc=new Societe($this->db); $soc->id = $this->socid; $result=$soc->set_as_client(); @@ -1186,7 +1197,7 @@ class Propal extends CommonObject } /** - * \brief Classe la propale comme factur�e + * \brief Classe la propale comme facturee * \return int <0 si ko, >0 si ok */ function classer_facturee() @@ -1205,7 +1216,7 @@ class Propal extends CommonObject /** - * \brief Cr�e une commande � partir de la proposition commerciale + * \brief Cree une commande a partir de la proposition commerciale * \param user Utilisateur * \return int <0 si ko, >=0 si ok */ @@ -1217,7 +1228,7 @@ class Propal extends CommonObject { if ($this->statut == 2) { - // Propale sign�e + // Propale signee include_once(DOL_DOCUMENT_ROOT."/commande/commande.class.php"); $commande = new Commande($this->db); $result=$commande->create_from_propale($user, $this->id); @@ -1261,35 +1272,31 @@ class Propal extends CommonObject /** - * \brief Renvoi la liste des propal (�ventuellement filtr�e sur un user) dans un tableau + * \brief Renvoi la liste des propal (eventuellement filtree sur un user) dans un tableau * \param brouillon 0=non brouillon, 1=brouillon * \param user Objet user de filtre - * \return int -1 si erreur, tableau r�sultat si ok + * \return int -1 si erreur, tableau resultat si ok */ function liste_array ($brouillon=0, $user='') { $ga = array(); - $sql = "SELECT rowid, ref FROM ".MAIN_DB_PREFIX."propal"; + $sql = "SELECT rowid, ref"; + $sql.= " FROM ".MAIN_DB_PREFIX."propal"; + $sql.= " WHERE entity = ".$conf->entity; if ($brouillon) { - $sql .= " WHERE fk_statut = 0"; - if ($user) - { - $sql .= " AND fk_user_author".$user; - } + $sql.= " AND fk_statut = 0"; + if ($user) $sql.= " AND fk_user_author".$user; } else { - if ($user) - { - $sql .= " WHERE fk_user_author".$user; - } + if ($user) $sql.= " AND fk_user_author".$user; } - - $sql .= " ORDER BY datep DESC"; + + $sql.= " ORDER BY datep DESC"; $result=$this->db->query($sql); if ($result) @@ -1394,7 +1401,7 @@ class Propal extends CommonObject } /** - * \brief Renvoie un tableau contenant les num�ros de factures associ�es + * \brief Renvoie un tableau contenant les numeros de factures associees * \return array Tableau des id de factures */ function getInvoiceArrayList () @@ -1403,7 +1410,7 @@ class Propal extends CommonObject } /** - * \brief Renvoie un tableau contenant les id et ref des factures associ�es + * \brief Renvoie un tableau contenant les id et ref des factures associees * \param id Id propal * \return array Tableau des id de factures */ @@ -1541,8 +1548,8 @@ class Propal extends CommonObject /** - * \brief Change les conditions de r�glement de la facture - * \param cond_reglement_id Id de la nouvelle condition de r�glement + * \brief Change les conditions de reglement de la facture + * \param cond_reglement_id Id de la nouvelle condition de reglement * \return int >0 si ok, <0 si ko */ function cond_reglement($cond_reglement_id) @@ -1575,7 +1582,7 @@ class Propal extends CommonObject /** - * \brief Change le mode de r�glement + * \brief Change le mode de reglement * \param mode_reglement Id du nouveau mode * \return int >0 si ok, <0 si ko */ @@ -1618,7 +1625,7 @@ class Propal extends CommonObject $sql.= $this->db->pdate("datec")." as datec, ".$this->db->pdate("date_valid")." as datev, ".$this->db->pdate("date_cloture")." as dateo"; $sql.= ", fk_user_author, fk_user_valid, fk_user_cloture"; $sql.= " FROM ".MAIN_DB_PREFIX."propal as c"; - $sql.= " WHERE c.rowid = $id"; + $sql.= " WHERE c.rowid = ".$id; $result = $this->db->query($sql); @@ -1665,9 +1672,9 @@ class Propal extends CommonObject /** - * \brief Retourne le libell� du statut d'une propale (brouillon, valid�e, ...) - * \param mode 0=libell� long, 1=libell� court, 2=Picto + Libell� court, 3=Picto, 4=Picto + Libell� long, 5=Libell� court + Picto - * \return string Libell� + * \brief Retourne le libelle du statut d'une propale (brouillon, validee, ...) + * \param mode 0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto + * \return string Libelle */ function getLibStatut($mode=0) { @@ -1675,10 +1682,10 @@ class Propal extends CommonObject } /** - * \brief Renvoi le libell� d'un statut donn� + * \brief Renvoi le libelle d'un statut donne * \param statut id statut - * \param mode 0=libell� long, 1=libell� court, 2=Picto + Libell� court, 3=Picto, 4=Picto + Libell� long, 5=Libell� court + Picto - * \return string Libell� + * \param mode 0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto + * \return string Libelle */ function LibStatut($statut,$mode=1) { @@ -1743,17 +1750,15 @@ class Propal extends CommonObject $this->nbtodo=$this->nbtodolate=0; $clause = " WHERE"; - $sql ="SELECT p.rowid, p.ref, p.datec as datec, p.fin_validite as datefin"; - $sql.=" FROM ".MAIN_DB_PREFIX."propal as p"; - $sql.= ", ".MAIN_DB_PREFIX."societe as s"; + $sql = "SELECT p.rowid, p.ref, p.datec as datec, p.fin_validite as datefin"; + $sql.= " FROM ".MAIN_DB_PREFIX."propal as p"; if (!$user->rights->societe->client->voir && !$user->societe_id) { $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON p.fk_soc = sc.fk_soc"; $sql.= " WHERE sc.fk_user = " .$user->id; $clause = " AND"; } - $sql.= $clause." p.fk_soc = s.rowid"; - $sql.= " AND s.entity = ".$conf->entity; + $sql.= $clause." p.entity = ".$conf->entity; if ($mode == 'opened') $sql.= " AND p.fk_statut = 1"; if ($mode == 'signed') $sql.= " AND p.fk_statut = 2"; if ($user->societe_id) $sql.= " AND p.fk_soc = ".$user->societe_id; @@ -1793,11 +1798,15 @@ class Propal extends CommonObject */ function initAsSpecimen() { - global $user,$langs; + global $user,$langs,$conf; - // Charge tableau des id de soci�t� socids + // Charge tableau des id de societe socids $socids = array(); - $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe WHERE client=1 LIMIT 10"; + $sql = "SELECT rowid"; + $sql.= " FROM ".MAIN_DB_PREFIX."societe"; + $sql.= " WHERE client = 1"; + $sql.= " AND entity = ".$conf->entity; + $sql.= " LIMIT 10"; $resql = $this->db->query($sql); if ($resql) { @@ -1814,7 +1823,10 @@ class Propal extends CommonObject // Charge tableau des produits prodids $prodids = array(); - $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product WHERE envente=1"; + $sql = "SELECT rowid"; + $sql.= " FROM ".MAIN_DB_PREFIX."product"; + $sql.= " WHERE envente = 1"; + $sql.= " AND entity = ".$conf->entity; $resql = $this->db->query($sql); if ($resql) { @@ -1828,7 +1840,7 @@ class Propal extends CommonObject } } - // Initialise param�tres + // Initialise parametres $this->id=0; $this->ref = 'SPECIMEN'; $this->specimen=1; @@ -1884,7 +1896,7 @@ class Propal extends CommonObject $sql.= " WHERE sc.fk_user = " .$user->id; $clause = "AND"; } - $sql.= " ".$clause." s.entity = ".$conf->entity; + $sql.= " ".$clause." p.entity = ".$conf->entity; $resql=$this->db->query($sql); if ($resql) @@ -1904,13 +1916,15 @@ class Propal extends CommonObject } /** - * \brief V�rifie si la ref n'est pas d�j� utilis�e + * \brief Verifie si la ref n'est pas deja utilisee * \param soc objet societe */ function verifyNumRef($soc) { - $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."propal"; + $sql = "SELECT rowid"; + $sql.= " FROM ".MAIN_DB_PREFIX."propal"; $sql.= " WHERE ref = '".$this->ref."'"; + $sql.= " AND entity = ".$conf->entity; $result = $this->db->query($sql); if ($result) @@ -1925,8 +1939,8 @@ class Propal extends CommonObject /** - * \brief Renvoie la r�f�rence de propale suivante non utilis�e en fonction du module - * de num�rotation actif d�fini dans PROPALE_ADDON + * \brief Renvoie la reference de propale suivante non utilisee en fonction du module + * de numerotation actif defini dans PROPALE_ADDON * \param soc objet societe * \return string reference libre pour la propale */ @@ -1941,7 +1955,7 @@ class Propal extends CommonObject { $file = PROPALE_ADDON.".php"; - // Chargement de la classe de num�rotation + // Chargement de la classe de numerotation $classname = PROPALE_ADDON; require_once($dir.$file); @@ -2244,7 +2258,7 @@ class PropaleLigne /** * \brief Mise a jour en base des champs total_xxx de ligne - * \remarks Utilis� par migration + * \remarks Utilise par migration * \return int <0 si ko, >0 si ok */ function update_total() diff --git a/mysql/migration/2.6.0-2.7.0.sql b/mysql/migration/2.6.0-2.7.0.sql index d7c0eebcae7..19f246d8ee9 100644 --- a/mysql/migration/2.6.0-2.7.0.sql +++ b/mysql/migration/2.6.0-2.7.0.sql @@ -23,6 +23,7 @@ ALTER TABLE llx_menu ADD COLUMN entity integer DEFAULT 1 NOT NULL AFTER menu_han ALTER TABLE llx_ecm_directories ADD COLUMN entity integer DEFAULT 1 NOT NULL AFTER label; ALTER TABLE llx_mailing ADD COLUMN entity integer DEFAULT 1 NOT NULL AFTER titre; ALTER TABLE llx_categorie ADD COLUMN entity integer DEFAULT 1 NOT NULL AFTER label; +ALTER TABLE llx_propal ADD COLUMN entity integer DEFAULT 1 NOT NULL AFTER ref; ALTER TABLE llx_rights_def DROP PRIMARY KEY; ALTER TABLE llx_user_param DROP INDEX fk_user; @@ -34,6 +35,7 @@ ALTER TABLE llx_bank_account DROP INDEX uk_bank_account_label; ALTER TABLE llx_document_model DROP INDEX uk_document_model; ALTER TABLE llx_menu DROP INDEX idx_menu_uk_menu; ALTER TABLE llx_categorie DROP INDEX uk_categorie_ref; +ALTER TABLE llx_propal DROP INDEX ref; ALTER TABLE llx_rights_def ADD PRIMARY KEY (id, entity); ALTER TABLE llx_user_param ADD UNIQUE INDEX uk_user_param (fk_user,param,entity); @@ -44,4 +46,5 @@ ALTER TABLE llx_entrepot ADD UNIQUE INDEX uk_entrepot_label (label, entity); ALTER TABLE llx_bank_account ADD UNIQUE INDEX uk_bank_account_label (label, entity); ALTER TABLE llx_document_model ADD UNIQUE INDEX uk_document_model (nom, type, entity); ALTER TABLE llx_menu ADD UNIQUE INDEX idx_menu_uk_menu (menu_handler, fk_menu, url, entity); -ALTER TABLE llx_categorie ADD UNIQUE INDEX uk_categorie_ref (label, type, entity); \ No newline at end of file +ALTER TABLE llx_categorie ADD UNIQUE INDEX uk_categorie_ref (label, type, entity); +ALTER TABLE llx_propal ADD UNIQUE INDEX uk_propal_ref (ref, entity); \ No newline at end of file diff --git a/mysql/tables/llx_propal.key.sql b/mysql/tables/llx_propal.key.sql index ca94849cf02..fbcff7a504d 100644 --- a/mysql/tables/llx_propal.key.sql +++ b/mysql/tables/llx_propal.key.sql @@ -1,6 +1,7 @@ -- ============================================================================ -- Copyright (C) 2002-2004 Rodolphe Quiedeville -- Copyright (C) 2004-2005 Laurent Destailleur +-- Copyright (C) 2005-2009 Regis Houssin -- -- 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 @@ -20,7 +21,8 @@ -- ============================================================================ +ALTER TABLE llx_propal ADD UNIQUE INDEX uk_propal_ref (ref, entity); + ALTER TABLE llx_propal ADD INDEX idx_propal_fk_soc (fk_soc); - ALTER TABLE llx_propal ADD CONSTRAINT fk_propal_fk_soc FOREIGN KEY (fk_soc) REFERENCES llx_societe (rowid); \ No newline at end of file diff --git a/mysql/tables/llx_propal.sql b/mysql/tables/llx_propal.sql index d10b910227a..5250d140c71 100644 --- a/mysql/tables/llx_propal.sql +++ b/mysql/tables/llx_propal.sql @@ -1,5 +1,6 @@ -- =================================================================== -- Copyright (C) 2001-2003 Rodolphe Quiedeville +-- Copyright (C) 2005-2009 Regis Houssin -- -- 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 @@ -22,35 +23,42 @@ create table llx_propal ( rowid integer AUTO_INCREMENT PRIMARY KEY, fk_soc integer, - fk_projet integer DEFAULT 0, -- projet auquel est rattache la propale - ref varchar(30) NOT NULL, -- propal number - ref_client varchar(30), -- customer order number + fk_projet integer DEFAULT 0, -- projet auquel est rattache la propale + ref varchar(30) NOT NULL, -- propal number + entity integer DEFAULT 1 NOT NULL, -- multi company id + ref_client varchar(30), -- customer order number - datec datetime, -- date de creation - datep date, -- date de la propal - fin_validite datetime, -- date de fin de validite - date_valid datetime, -- date de validation - date_cloture datetime, -- date de cloture - fk_user_author integer, -- createur de la propale - fk_user_valid integer, -- valideur de la propale - fk_user_cloture integer, -- cloture de la propale signee ou non signee - fk_statut smallint DEFAULT 0 NOT NULL, - price real DEFAULT 0, -- (obsolete) - remise_percent real DEFAULT 0, -- remise globale relative en pourcent (obsolete) - remise_absolue real DEFAULT 0, -- remise globale absolue (obsolete) - remise real DEFAULT 0, -- remise calculee (obsolete) - total_ht double(24,8) DEFAULT 0, -- montant total ht apres remise globale - tva double(24,8) DEFAULT 0, -- montant total tva apres remise globale - total double(24,8) DEFAULT 0, -- montant total ttc apres remise globale + datec datetime, -- date de creation + datep date, -- date de la propal + fin_validite datetime, -- date de fin de validite + date_valid datetime, -- date de validation + date_cloture datetime, -- date de cloture + fk_user_author integer, -- createur de la propale + fk_user_valid integer, -- valideur de la propale + fk_user_cloture integer, -- cloture de la propale signee ou non signee + fk_statut smallint DEFAULT 0 NOT NULL, + price real DEFAULT 0, -- (obsolete) + remise_percent real DEFAULT 0, -- remise globale relative en pourcent (obsolete) + remise_absolue real DEFAULT 0, -- remise globale absolue (obsolete) + remise real DEFAULT 0, -- remise calculee (obsolete) + total_ht double(24,8) DEFAULT 0, -- montant total ht apres remise globale + tva double(24,8) DEFAULT 0, -- montant total tva apres remise globale + total double(24,8) DEFAULT 0, -- montant total ttc apres remise globale - fk_cond_reglement integer, -- condition de reglement (30 jours, fin de mois ...) - fk_mode_reglement integer, -- mode de reglement (Virement, Prélèvement) + fk_cond_reglement integer, -- condition de reglement (30 jours, fin de mois ...) + fk_mode_reglement integer, -- mode de reglement (Virement, Prélèvement) note text, note_public text, model_pdf varchar(50), date_livraison date default NULL, - fk_adresse_livraison integer, -- adresse de livraison - - UNIQUE INDEX (ref) + fk_adresse_livraison integer -- adresse de livraison )type=innodb; + +-- +-- List of codes for the field entity +-- +-- 1 : first company propal +-- 2 : second company propal +-- 3 : etc... +-- \ No newline at end of file