Merge remote-tracking branch 'origin/3.9' into develop

Conflicts:
	htdocs/install/mysql/migration/3.8.0-3.9.0.sql
	htdocs/langs/en_US/products.lang
	htdocs/langs/fr_FR/companies.lang
This commit is contained in:
Laurent Destailleur 2016-02-24 12:13:12 +01:00
commit 371dec8503
15 changed files with 343 additions and 10 deletions

View File

@ -89,7 +89,9 @@ class box_graph_orders_permonth extends ModeleBoxes
if ($user->rights->commande->lire)
{
$param_year='DOLUSERCOOKIE_box_'.$this->boxcode.'_year';
$langs->load("orders");
$param_year='DOLUSERCOOKIE_box_'.$this->boxcode.'_year';
$param_shownb='DOLUSERCOOKIE_box_'.$this->boxcode.'_shownb';
$param_showtot='DOLUSERCOOKIE_box_'.$this->boxcode.'_showtot';

View File

@ -88,7 +88,9 @@ class box_graph_orders_supplier_permonth extends ModeleBoxes
if ($user->rights->fournisseur->commande->lire)
{
$param_year='DOLUSERCOOKIE_box_'.$this->boxcode.'_year';
$langs->load("orders");
$param_year='DOLUSERCOOKIE_box_'.$this->boxcode.'_year';
$param_shownb='DOLUSERCOOKIE_box_'.$this->boxcode.'_shownb';
$param_showtot='DOLUSERCOOKIE_box_'.$this->boxcode.'_showtot';

View File

@ -0,0 +1,305 @@
<?php
/* Copyright (C) 2016 Laurent Destailleur <eldy@users.sourceforge.net>
*
* 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 3 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, see <http://www.gnu.org/licenses/>.
*/
/**
* \file htdocs/core/class/cstate.class.php
* \ingroup core
* \brief This file is a CRUD class file (Create/Read/Update/Delete) for c_departements dictionary
*/
// Put here all includes required by your class file
//require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
//require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
//require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
/**
* Class to manage dictionary States (used by imports)
*/
class Cstate // extends CommonObject
{
var $db; //!< To store db handler
var $error; //!< To return error code (or message)
var $errors=array(); //!< To return several error codes (or messages)
//var $element='cstate'; //!< Id that identify managed objects
//var $table_element='cstate'; //!< Name of table without prefix where object is stored
var $id;
var $code_departement;
var $nom;
var $active;
/**
* Constructor
*
* @param DoliDb $db Database handler
*/
function __construct($db)
{
$this->db = $db;
return 1;
}
/**
* Create object into database
*
* @param User $user User that create
* @param int $notrigger 0=launch triggers after, 1=disable triggers
* @return int <0 if KO, Id of created object if OK
*/
function create($user, $notrigger=0)
{
global $conf, $langs;
$error=0;
// Clean parameters
if (isset($this->code_departement)) $this->code_departement=trim($this->code_departement);
if (isset($this->nom)) $this->nom=trim($this->nom);
if (isset($this->active)) $this->active=trim($this->active);
// Check parameters
// Put here code to add control on parameters values
// Insert request
$sql = "INSERT INTO ".MAIN_DB_PREFIX."c_departements(";
$sql.= "rowid,";
$sql.= "code_departement,";
$sql.= "nom,";
$sql.= "active";
$sql.= ") VALUES (";
$sql.= " ".(! isset($this->rowid)?'NULL':"'".$this->rowid."'").",";
$sql.= " ".(! isset($this->code_departement)?'NULL':"'".$this->db->escape($this->code_departement)."'").",";
$sql.= " ".(! isset($this->nom)?'NULL':"'".$this->db->escape($this->nom)."'").",";
$sql.= " ".(! isset($this->active)?'NULL':"'".$this->active."'")."";
$sql.= ")";
$this->db->begin();
dol_syslog(get_class($this)."::create", LOG_DEBUG);
$resql=$this->db->query($sql);
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
if (! $error)
{
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."c_departements");
if (! $notrigger)
{
// Uncomment this and change MYOBJECT to your own tag if you
// want this action call a trigger.
//// Call triggers
//include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
//$interface=new Interfaces($this->db);
//$result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf);
//if ($result < 0) { $error++; $this->errors=$interface->errors; }
//// End call triggers
}
}
// Commit or rollback
if ($error)
{
foreach($this->errors as $errmsg)
{
dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR);
$this->error.=($this->error?', '.$errmsg:$errmsg);
}
$this->db->rollback();
return -1*$error;
}
else
{
$this->db->commit();
return $this->id;
}
}
/**
* Load object in memory from database
*
* @param int $id Id object
* @param string $code Code
* @return int <0 if KO, >0 if OK
*/
function fetch($id,$code='')
{
global $langs;
$sql = "SELECT";
$sql.= " t.rowid,";
$sql.= " t.code_departement,";
$sql.= " t.nom,";
$sql.= " t.active";
$sql.= " FROM ".MAIN_DB_PREFIX."c_departements as t";
if ($id) $sql.= " WHERE t.rowid = ".$id;
elseif ($code) $sql.= " WHERE t.code_departement = '".$this->db->escape($code)."'";
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
$resql=$this->db->query($sql);
if ($resql)
{
if ($this->db->num_rows($resql))
{
$obj = $this->db->fetch_object($resql);
$this->id = $obj->rowid;
$this->code_departement = $obj->code_departement;
$this->nom = $obj->nom;
$this->active = $obj->active;
}
$this->db->free($resql);
return 1;
}
else
{
$this->error="Error ".$this->db->lasterror();
return -1;
}
}
/**
* Update object into database
*
* @param User $user User that modify
* @param int $notrigger 0=launch triggers after, 1=disable triggers
* @return int <0 if KO, >0 if OK
*/
function update($user=null, $notrigger=0)
{
global $conf, $langs;
$error=0;
// Clean parameters
if (isset($this->code_departement)) $this->code_departement=trim($this->code_departement);
if (isset($this->nom)) $this->nom=trim($this->nom);
if (isset($this->active)) $this->active=trim($this->active);
// Check parameters
// Put here code to add control on parameters values
// Update request
$sql = "UPDATE ".MAIN_DB_PREFIX."c_departements SET";
$sql.= " code_departement=".(isset($this->code_departement)?"'".$this->db->escape($this->code_departement)."'":"null").",";
$sql.= " nom=".(isset($this->nom)?"'".$this->db->escape($this->nom)."'":"null").",";
$sql.= " active=".(isset($this->active)?$this->active:"null")."";
$sql.= " WHERE rowid=".$this->id;
$this->db->begin();
dol_syslog(get_class($this)."::update", LOG_DEBUG);
$resql = $this->db->query($sql);
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
if (! $error)
{
if (! $notrigger)
{
// Uncomment this and change MYOBJECT to your own tag if you
// want this action call a trigger.
//// Call triggers
//include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
//$interface=new Interfaces($this->db);
//$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf);
//if ($result < 0) { $error++; $this->errors=$interface->errors; }
//// End call triggers
}
}
// Commit or rollback
if ($error)
{
foreach($this->errors as $errmsg)
{
dol_syslog(get_class($this)."::update ".$errmsg, LOG_ERR);
$this->error.=($this->error?', '.$errmsg:$errmsg);
}
$this->db->rollback();
return -1*$error;
}
else
{
$this->db->commit();
return 1;
}
}
/**
* Delete object in database
*
* @param User $user User that delete
* @param int $notrigger 0=launch triggers after, 1=disable triggers
* @return int <0 if KO, >0 if OK
*/
function delete($user, $notrigger=0)
{
global $conf, $langs;
$error=0;
$sql = "DELETE FROM ".MAIN_DB_PREFIX."c_departements";
$sql.= " WHERE rowid=".$this->id;
$this->db->begin();
dol_syslog(get_class($this)."::delete", LOG_DEBUG);
$resql = $this->db->query($sql);
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
if (! $error)
{
if (! $notrigger)
{
// Uncomment this and change MYOBJECT to your own tag if you
// want this action call a trigger.
//// Call triggers
//include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
//$interface=new Interfaces($this->db);
//$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf);
//if ($result < 0) { $error++; $this->errors=$interface->errors; }
//// End call triggers
}
}
// Commit or rollback
if ($error)
{
foreach($this->errors as $errmsg)
{
dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR);
$this->error.=($this->error?', '.$errmsg:$errmsg);
}
$this->db->rollback();
return -1*$error;
}
else
{
$this->db->commit();
return 1;
}
}
}

View File

@ -953,7 +953,7 @@ INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, nc
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2306', 2302, '', 0, 'CHACO', 'Chaco', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2307', 2302, '', 0, 'CORRIENTES', 'Corrientes', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2308', 2302, '', 0, 'ENTRE RIOS', 'Entre Ríos', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2309', 2302, '', 0, 'FORMOSA MISIONES', 'Formosa Misiones', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2309', 2302, '', 0, 'FORMOSA', 'Formosa', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2310', 2302, '', 0, 'SANTA FE', 'Santa Fe', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2311', 2303, '', 0, 'LA RIOJA', 'La Rioja', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2312', 2303, '', 0, 'MENDOZA', 'Mendoza', 1);
@ -970,6 +970,7 @@ INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, nc
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2323', 2305, '', 0, 'TIERRA DEL FUEGO', 'Tierra del Fuego', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2324', 2305, '', 0, 'ISLAS MALVINAS', 'Islas Malvinas', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2325', 2305, '', 0, 'ANTARTIDA', 'Antártida', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2326', 2305, '', 0, 'MISIONES', 'Misiones', 1);
-- Parish Barbados (id country=46)
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('CC', 4601, 'Oistins', 0, 'CC', 'Christ Church', 1);

View File

@ -594,3 +594,6 @@ ALTER TABLE llx_accounting_bookkeeping MODIFY COLUMN doc_ref varchar(300) NOT NU
ALTER TABLE llx_holiday ADD COLUMN tms timestamp;
ALTER TABLE llx_holiday ADD COLUMN entity integer DEFAULT 1 NOT NULL;
-- Fix Argentina provences
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2326', 2305, '', 0, 'MISIONES', 'Misiones', 1);
UPDATE llx_c_departements SET ncc = "FORMOSA", nom = "Formosa" WHERE nom = "Formosa Misiones";

View File

@ -320,4 +320,6 @@ NbOfQtyInProposals=Qty in proposals
ClinkOnALinkOfColumn=Click on a link of column %s to get a detailed view...
TranslatedLabel=Translated label
TranslatedDescription=Translated description
TranslatedNote=Translated notes
TranslatedNote=Translated notes
WeightUnits=Weight unit
SizeUnits=Size unit

View File

@ -282,6 +282,7 @@ ModuleSetup=Configuration du module
ModulesSetup=Configuration des modules
ModuleFamilyBase=Système
ModuleFamilyCrm=Gestion de la relation client (GRC)
ModuleFamilySrm=Supplier Relation Management (SRM)
ModuleFamilyProducts=Gestion des Produits/Services (PM)
ModuleFamilyHr=Gestion des Ressources Humaines (RH)
ModuleFamilyProjects=Projets/Travail collaboratif
@ -1090,7 +1091,7 @@ PathDirectory=Répertoire
SendmailOptionMayHurtBuggedMTA=La fonction d'envoi de mails par la méthode "PHP mail directe" génère un message mail qui peut être mal interprété par certains serveurs mal configurés de réception de mail. Cela se traduit par des mails non lisibles chez les personnes hébergés par ces plateformes boguées. C'est le cas des clients de certains fournisseurs d'accès internet (Ex: Orange). Ce n'est pas un problème, ni dans Dolibarr ni dans PHP mais sur le serveur de réception. Vous pouvez toutefois ajouter l'option MAIN_FIX_FOR_BUGGED_MTA à 1 dans configuration - divers pour modifier Dolibarr afin de compenser le bug. Toutefois ce sont les serveurs respectueux du standard d'envoi de mail qui pourront avoir des problèmes. L'autre solution (recommandée) est d'utiliser la méthode d'envoi SMTP socket library qui n'a aucun de ces inconvénients.
TranslationSetup=Configuration de la traduction
TranslationDesc=Le choix de la langue affichée à l'écran se modifie:<br>* Soit de manière globale depuis le menu <strong>Accueil - Configuration - Affichage</strong><br>* Soit de manière spécifique à l'utilisateur depuis l'onglet <strong>Interface utilisateur</strong> de sa fiche utilisateur (cliquer sur l'identifiant en haut de l'écran).
TranslationOverwriteDesc=You can also overwrite some value by completing/editing the following table. You must use for "%s" the language code, for "%s" the key found into file langs/xx_XX/somefile.lang and "%s" the new value you want to use as new translation.
TranslationOverwriteDesc=Vous pouvez aussi écraser des valeurs en complétant/corrigeant le tableau suivant. Vous devez utiliser pour "%s" le code de langue, pour "%s" le code trouvé dans le fichier langs/xx_XX/somefile.lang et "%s" la nouvelle valeur que vous souhaitez utiliser comme nouvelle traduction.
TotalNumberOfActivatedModules=Nombre total de modules/fonctionnalités activés: <b>%s</b> / <b>%s</b>
YouMustEnableOneModule=Vous devez activer au moins une fonctionnalité
ClassNotFoundIntoPathWarning=La classe %s n'a pas été trouvée dans le chemin PHP
@ -1712,4 +1713,4 @@ ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s est disponible. La ver
ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s est disponible. La version %s est une version de maintanance, aussi elle ne contient que des correctifs de bugs. Nous recommandons tout personne utilisant une version plus ancienne de migrer sur celle-ci. En tant que version de maintenance, aucune nouvelle fonctionnalité n'est ajouté, ni modification de format de données. Vous pouvez télécharger cette version à partir de la zone de téléchargement du portail http://www.dolibarr.org (sous-répertoire "Versions stables"). Vous pouvez lire le <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> pour la liste complète des changements.
MultiPriceRuleDesc=Quand l'option « Plusieurs niveaux de prix par produit/service» est activée, vous pouvez définir différents prix (un par niveau de prix) pour chaque produits. Pour sauver du temps, vous pouvez entrer ici une règle pour avoir un prix pour chaque niveau calculé automatiquement. Cette page est ici pour sauver du temps et peut être utile si vos prix pour chaque niveaux sont relatif au premier niveau. Vous pouvez ignorer cette page dans la plupart des cas
ModelModulesProduct=Modèles des documents de produits
ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
ToGenerateCodeDefineAutomaticRuleFirst=Pour pouvoir générer automatiquement des codes, vous devez d'abord définir un gestionnaire pour définir automatiquement le numéro du codebar.

View File

@ -60,8 +60,8 @@ BoxTitleLastContracts=Les %s derniers contrats
BoxTitleLastModifiedDonations=Les %s derniers dons modifiés
BoxTitleLastModifiedExpenses=Les %s dernières notes de frais modifiées
BoxGlobalActivity=Activité globale (factures, propositions, commandes)
BoxGoodCustomers=Good Customers
BoxTitleGoodCustomers=%s Good Customers
BoxGoodCustomers=Good customers
BoxTitleGoodCustomers=%s Good customers
FailedToRefreshDataInfoNotUpToDate=Échec du rafraichissement du flux RSS. Date du dernier rafraichissement : %s
LastRefreshDate=Date dernier rafraichissement
NoRecordedBookmarks=Pas de marques-pages personnels.

View File

@ -203,7 +203,7 @@ ProfId4IN=Id. prof. 4
ProfId5IN=Id. prof. 5
ProfId6IN=-
ProfId1LU=Id. prof. 1 (R.C.S. Luxembourg)
ProfId2LU=Id. prof. 2 (Autorisation d'établissement)
ProfId2LU=Id. prof. 2 (Business permit)
ProfId3LU=-
ProfId4LU=-
ProfId5LU=-
@ -317,10 +317,12 @@ ShowContact=Afficher contact
ContactsAllShort=Tous (pas de filtre)
ContactType=Type de contact
ContactForOrders=Contact de commandes
ContactForOrdersOrShipments=Contact de commandes ou expéditions
ContactForProposals=Contact de propositions
ContactForContracts=Contact de contrats
ContactForInvoices=Contact de factures
NoContactForAnyOrder=Ce contact n'est contact d'aucune commande
NoContactForAnyOrderOrShipment=Ce contact n'est contact d'aucune commande ni expédition
NoContactForAnyProposal=Ce contact n'est contact d'aucune proposition commerciale
NoContactForAnyContract=Ce contact n'est contact d'aucun contrat
NoContactForAnyInvoice=Ce contact n'est contact d'aucune facture

View File

@ -172,6 +172,8 @@ ErrorMandatoryParametersNotProvided=Paramètre(s) obligatoire(s) non fournis
ErrorOppStatusRequiredIfAmount=Vous avez fixé un montant estimé pour cette opportunité/affaire. Aussi, vous devez également entrer son statut
ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Mauvaise définition du tableau Menu dans le descripteur de module (mauvaise valeur pour la clé fk_menu)
ErrorSavingChanges=Une erreur est survenue lors de la sauvegarde des modifications
ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
ErrorFileMustHaveFormat=File must have format %s
# Warnings
WarningPasswordSetWithNoAccount=Un mot de passe a été fixé pour cet adhérent. Cependant, aucun compte d'utilisateur n'a été créé. Donc, ce mot de passe est stocké, mais ne peut être utilisé pour accéder à Dolibarr. Il peut être utilisé par un module/interface externe, mais si vous n'avez pas besoin de définir ni login ni mot de passe pour un adhérent, vous pouvez désactiver l'option «Gérer un login pour chaque adhérent" depuis la configuration du module Adhérents. Si vous avez besoin de gérer un login, mais pas de mot de passe, vous pouvez laisser ce champ vide pour éviter cet avertissement. Remarque: L'email peut également être utilisé comme login si l'adhérent est lié à un utilisateur.

View File

@ -128,6 +128,10 @@ SpecialCode=Code spécial
ExportStringFilter=%% permet de remplacer 1 ou plusieurs caractères dans le texte
ExportDateFilter=AAAA, AAAAMM, AAAAMMJJ: filtre pour une année/mois/jour<br>AAAA+AAAA, AAAAMM+AAAAMM, AAAAMMJJ+AAAAMMJJ: filtre pour une plage année/mois/jour<br> > AAAA, > AAAAMM, > AAAAMMJJ': filtre pour une date supérieure à une année/mois/jour donné<br> < AAAA, < AAAAMM, < AAAAMMJJ: filtre pour une date inférieure à une année/mois/jour donné
ExportNumericFilter='NNNNN' filtres sur une valeur<br>'NNNNN+NNNNN' filtres sur une place de valeurs<br>'&gt;NNNNN' filtres sur les valeurs plus petites<br>'&gt;NNNNN' filtres sur les valeurs plus grandes
ImportFromLine=Import starting from line number
EndAtLineNb=End at line number
SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines
KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file
## filters
SelectFilterFields=Si vous voulez filtrer sur certaines valeurs, saisissez ces valeurs.
FilterableFields=Champs filtrables

View File

@ -318,3 +318,6 @@ WarningSelectOneDocument=Sélectionnez au moins un document
DefaultUnitToShow=Unité
NbOfQtyInProposals=Qté en propositions
ClinkOnALinkOfColumn=Click on a link of column %s to get a detailed view...
TranslatedLabel=Translated label
TranslatedDescription=Translated description
TranslatedNote=Translated notes

View File

@ -1289,7 +1289,7 @@ else
dol_fiche_end();
print '<div class="center">';
print '<input type="submit" class="button" name="submit" value="'.$langs->trans('AddThirdParty').'">';
print '<input type="submit" class="button" name="create" value="'.$langs->trans('AddThirdParty').'">';
if ($backtopage)
{
print ' &nbsp; ';

View File

@ -3629,6 +3629,9 @@ div.dataTables_length select {
/* Select2 */
/* ============================================================================== */
.select2-container .select2-choice {
color: #000;
}
.selectoptiondisabledwhite {
background: #FFFFFF !important;
}

View File

@ -3476,6 +3476,9 @@ div.dataTables_length select {
/* Select2 */
/* ============================================================================== */
.select2-container .select2-choice {
color: #000;
}
.selectoptiondisabledwhite {
background: #FFFFFF !important;
}