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

Conflicts:
	htdocs/webservices/server_user.php
This commit is contained in:
Laurent Destailleur 2013-03-12 14:55:13 +01:00
commit fc3483a4bb
22 changed files with 73 additions and 69 deletions

View File

@ -49,6 +49,7 @@ For developers:
WARNING: If you used external modules, some of them may need to be upgraded due to:
- fields of classes were renamed to be normalized (nom, prenom, cp, ville, adresse were
renamed into lastname, firstname, zip, town, address).
This may also be true for some fields into web services.
- if module use hook pdf_writelinedesc, module may have to add return 1 at end of
function to keep same behaviour.
@ -80,6 +81,7 @@ WARNING: If you used external modules, some of them may need to be upgraded due
- Fix: Package for launchpad
- Fix: [ bug #736 ] Missing column in llx_c_chargesociales
- Fix: Localtax2 for Spain must be based into buyer
- Fix: [ bug #762 ] Bad profit calculation in Reporting

2
README
View File

@ -108,7 +108,7 @@ Other modules:
- RSS
Miscellanous:
- Mutli-user, with several permissions levels for each feature.
- Multi-user, with several permissions levels for each feature.
- Serveral menu managers (can be used by internal users, as a back-office,
with a particular menu, or by external users, as a front-office, with
another menu and permissions).

View File

@ -122,7 +122,7 @@ V - CE QUE DOLIBARR NE PEUT PAS FAIRE (TACHES A FAIRE)
Voici un liste de fonctionnalites pas encore gérées par Dolibarr:
- Pas de compta analytique (uniquement gestion de trésorerie).
- Dolibarr ne gère qu'une seule monnaie à la fois (mono-devise).
- Dolibarr ne gère en standard qu'une société/institution/association (mono-société). Pour en gérer plusieurs (comme vos filiales), il faut, soit faire plusieurs installations de Dolibarr, soit installer le module MutliCompany qui permet de gérer n société/institutions/associations dans une seule instance par une isolation logique des données.
- Dolibarr ne gère en standard qu'une société/institution/association (mono-société). Pour en gérer plusieurs (comme vos filiales), il faut, soit faire plusieurs installations de Dolibarr, soit installer le module MultiCompany qui permet de gérer n société/institutions/associations dans une seule instance par une isolation logique des données.
- Ne gère pas la double tva (Fédérale / provinciale) du canada.
- Dolibarr ne contient pas de module de Gestion de la paie.
- Les taches du module de gestion de projets n'ont pas de dépendance entre elle.

View File

@ -105,7 +105,7 @@ See ChangeLog file found into package.
### Miscellanous:
- Mutli-user, with several permissions levels for each feature.
- Multi-user, with several permissions levels for each feature.
- Serveral menu managers (can be used by internal users, as a back-office, with a particular menu, or by external users, as a front-office, with another menu and permissions).
- Very user friendly and easy to use.
- Optional WYSIWYG forms, optional Ajax forms.

View File

@ -555,7 +555,7 @@ for ($annee = $year_start ; $annee <= $year_end ; $annee++)
if (isset($totentrees[$annee]) || isset($totsorties[$annee]))
{
$in=(isset($totentrees[$annee])?price2num($totentrees[$annee], 'MT'):0);
$out=(isset($totsorties[$annee])?price2num($totsorties[$annee],' MT'):0);
$out=(isset($totsorties[$annee])?price2num($totsorties[$annee],'MT'):0);
print price($in-$out).'</td>';
// print '<td>&nbsp;</td>';
}

View File

@ -925,3 +925,5 @@ UPDATE llx_c_action_trigger SET code='FICHINTER_VALIDATE' WHERE code='FICHEINTER
UPDATE llx_c_departements SET ncc='ALAVA', nom='Álava' WHERE code_departement='01' AND fk_region=419;
ALTER TABLE llx_product_fournisseur_price DROP FOREIGN KEY fk_product_fournisseur;
UPDATE llx_const set name='PRODUIT_MULTI_PRICES' where name='PRODUIT_MUTLI_PRICES';

View File

@ -213,7 +213,7 @@ ModuleFamilyProducts=إدارة المنتجات
ModuleFamilyHr=إدارة الموارد البشرية
ModuleFamilyProjects=مشاريع / العمل التعاوني
ModuleFamilyOther=أخرى
ModuleFamilyTechnic=Mutli بين وحدات وأدوات
ModuleFamilyTechnic=Multi بين وحدات وأدوات
ModuleFamilyExperimental=نماذج تجريبية
ModuleFamilyFinancial=الوحدات المالية (المحاسبة / الخزانة)
ModuleFamilyECM=إدارة المحتوى في المؤسسة

View File

@ -199,7 +199,7 @@ ModuleFamilyProducts=Produkter Management
ModuleFamilyHr=Human Resource Management
ModuleFamilyProjects=Projekter / samarbejde
ModuleFamilyOther=Anden
ModuleFamilyTechnic=Mutli-moduler værktøjer
ModuleFamilyTechnic=Multi-moduler værktøjer
ModuleFamilyExperimental=Eksperimentel moduler
ModuleFamilyFinancial=Finansielle Modules (Regnskabsmæssig / Treasury)
ModuleFamilyECM=ECM

View File

@ -262,7 +262,7 @@ ModuleFamilyProducts=Products Management
ModuleFamilyHr=Human Resource Management
ModuleFamilyProjects=Projects/Collaborative work
ModuleFamilyOther=Other
ModuleFamilyTechnic=Mutli-modules tools
ModuleFamilyTechnic=Multi-modules tools
ModuleFamilyExperimental=Experimental modules
ModuleFamilyFinancial=Financial Modules (Accounting/Treasury)
ModuleFamilyECM=Electronic Content Management (ECM)
@ -1398,4 +1398,4 @@ ProjectsSetup=Project module setup
ProjectsModelModule=Project reports document model
##### ECM (GED) #####
ECMSetup = GED Setup
ECMAutoTree = Automatic tree folder and document
ECMAutoTree = Automatic tree folder and document

View File

@ -259,7 +259,7 @@ ModuleFamilyProducts=Tooted juhtimine
ModuleFamilyHr=Human Resource Management
ModuleFamilyProjects=Projektid / koostööprojektid töö
ModuleFamilyOther=Teine
ModuleFamilyTechnic=Mutli-moodulid tööriistad
ModuleFamilyTechnic=Multi-moodulid tööriistad
ModuleFamilyExperimental=Eksperimentaalse moodulid
ModuleFamilyFinancial=Financial Modules (Raamatupidamine / Treasury)
ModuleFamilyECM=Electronic sisuhaldus (ECM)

View File

@ -221,7 +221,7 @@ ModuleFamilyProducts= سیسیتم کالاها
ModuleFamilyHr= سیستم استخدامی
ModuleFamilyProjects= سیستم پروژه ها
ModuleFamilyOther= دیگر سیستم ها
ModuleFamilyTechnic=Mutli بين وحدات وأدوات
ModuleFamilyTechnic=Multi بين وحدات وأدوات
ModuleFamilyExperimental=نماذج تجريبية
ModuleFamilyFinancial=الوحدات المالية (المحاسبة / الخزانة)
ModuleFamilyECM=تولید محتوی الکترونیکی

View File

@ -197,7 +197,7 @@ ModuleFamilyProducts=Tuotteet Management
ModuleFamilyHr=Human Resource Management
ModuleFamilyProjects=Projektit / Yhteistyöhankkeet työn
ModuleFamilyOther=Muu
ModuleFamilyTechnic=Mutli-modules työkalut
ModuleFamilyTechnic=Multi-modules työkalut
ModuleFamilyExperimental=Kokeellinen modules
ModuleFamilyFinancial=Financial Modules (kirjanpidon / Treasury)
ModuleFamilyECM=ECM

View File

@ -259,7 +259,7 @@ ModuleFamilyProducts=מוצרי ניהול
ModuleFamilyHr=ניהול משאבי אנוש
ModuleFamilyProjects=פרויקטים / עבודה שיתופית
ModuleFamilyOther=אחר
ModuleFamilyTechnic=Mutli מודולים כלים
ModuleFamilyTechnic=Multi מודולים כלים
ModuleFamilyExperimental=הניסוי מודולים
ModuleFamilyFinancial=מודולים פיננסיים (חשבונאות / משרד האוצר)
ModuleFamilyECM=ניהול תוכן אלקטרוני (ECM)

View File

@ -259,7 +259,7 @@ ModuleFamilyProducts=Termékek kezelése
ModuleFamilyHr=Az emberi erőforrás menedzsment
ModuleFamilyProjects=Projektek / kollaboratív munkát
ModuleFamilyOther=Más
ModuleFamilyTechnic=Mutli-modulok eszközök
ModuleFamilyTechnic=Multi-modulok eszközök
ModuleFamilyExperimental=Kísérleti modulok
ModuleFamilyFinancial=Pénzügyi modulok (Számviteli / Kincstár)
ModuleFamilyECM=Elektronikus Content Management (ECM)

View File

@ -234,7 +234,7 @@ ModuleFamilyProducts=Vörur Stjórn
ModuleFamilyHr=Mannauðsstjórnun
ModuleFamilyProjects=Verkefni / samvinna vinna
ModuleFamilyOther=Önnur
ModuleFamilyTechnic=Mutli-einingar verkfæri
ModuleFamilyTechnic=Multi-einingar verkfæri
ModuleFamilyExperimental=Experimental mát
ModuleFamilyFinancial=Financial einingar (Bókhald / ríkissjóðs)
ModuleFamilyECM=ECM

View File

@ -259,7 +259,7 @@ ModuleFamilyProducts=製品の管理
ModuleFamilyHr=人的資源管理
ModuleFamilyProjects=プロジェクト/共同作業
ModuleFamilyOther=その他
ModuleFamilyTechnic=Mutli-モジュールツール
ModuleFamilyTechnic=Multi-モジュールツール
ModuleFamilyExperimental=実験的なモジュール
ModuleFamilyFinancial=金融モジュール(会計/財務)
ModuleFamilyECM=電子コンテンツ管理ECM

View File

@ -200,7 +200,7 @@ ModuleFamilyProducts=Produkty Management
ModuleFamilyHr=Zarządzanie zasobami ludzkimi
ModuleFamilyProjects=Projekty / współpracy
ModuleFamilyOther=Inny
ModuleFamilyTechnic=Mutli-modules narzędzia
ModuleFamilyTechnic=Multi-modules narzędzia
ModuleFamilyExperimental=Eksperymentalne modules
ModuleFamilyFinancial=Moduły finansowe (Księgowość / Skarbu)
ModuleFamilyECM=ECM

View File

@ -198,7 +198,7 @@ ModuleFamilyProducts=Produse de Management
ModuleFamilyHr=Managementul resurselor umane
ModuleFamilyProjects=Proiecte / Colaborativă munca
ModuleFamilyOther=Alt
ModuleFamilyTechnic=Mutli-module de unelte
ModuleFamilyTechnic=Multi-module de unelte
ModuleFamilyExperimental=Experimentale module
ModuleFamilyFinancial=Module financiar (Contabilitate / Trezoreriei)
ModuleFamilyECM=ECM

View File

@ -197,7 +197,7 @@ ModuleFamilyProducts=Продукты управления
ModuleFamilyHr=Кадровый менеджмент
ModuleFamilyProjects=Проекты / Совместная работа
ModuleFamilyOther=Другой
ModuleFamilyTechnic=Mutli-модулей инструменты
ModuleFamilyTechnic=Multi-модулей инструменты
ModuleFamilyExperimental=Экспериментальный модуль
ModuleFamilyFinancial=Финансовые модули (Бухгалтерия / Казначейство)
ModuleFamilyECM=ECM

View File

@ -539,11 +539,11 @@ if ($resql)
print '<td align="right">'.(price2num($obj->pmp)?price(price2num($obj->pmp*$obj->reel,'MT')):'').'</td>'; // Ditto : Show PMP from movement or from product
// Sell price
print '<td align="right">';
if (empty($conf->global->PRODUIT_MUTLI_PRICES)) print price(price2num($product->price,'MU'));
if (empty($conf->global->PRODUIT_MULTI_PRICES)) print price(price2num($product->price,'MU'));
else print $langs->trans("Variable");
print '</td>'; // Ditto : Show PMP from movement or from product
print '<td align="right">';
if (empty($conf->global->PRODUIT_MUTLI_PRICES)) print price(price2num($product->price*$obj->reel,'MT')).'</td>'; // Ditto : Show PMP from movement or from product
if (empty($conf->global->PRODUIT_MULTI_PRICES)) print price(price2num($product->price*$obj->reel,'MT')).'</td>'; // Ditto : Show PMP from movement or from product
else print $langs->trans("Variable");
print '</tr>'; ;
$total += $obj->reel;
@ -564,11 +564,11 @@ print '<td class="liste_total" align="right">';
print price(price2num($totalvalue,'MT'));
print '</td>';
print '<td class="liste_total" align="right">';
if (empty($conf->global->PRODUIT_MUTLI_PRICES)) print ($total?price($totalvaluesell/$total):'&nbsp;');
if (empty($conf->global->PRODUIT_MULTI_PRICES)) print ($total?price($totalvaluesell/$total):'&nbsp;');
else print $langs->trans("Variable");
print '</td>';
print '<td class="liste_total" align="right">';
if (empty($conf->global->PRODUIT_MUTLI_PRICES)) print price(price2num($totalvaluesell,'MT'));
if (empty($conf->global->PRODUIT_MULTI_PRICES)) print price(price2num($totalvaluesell,'MT'));
else print $langs->trans("Variable");
print '</td>';
print "</tr>";

View File

@ -1,5 +1,5 @@
<?php
/* Copyright (C) 2005-2011 Laurent Destailleur <eldy@users.sourceforge.net>
/* Copyright (C) 2005-2013 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
*
* This program is free software; you can redistribute it and/or modify
@ -96,7 +96,7 @@ print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
$max=10;
$sql = "SELECT u.rowid, u.lastname, u.firstname, u.admin, u.login, u.fk_societe, u.datec, u.statut, u.entity, u.ldap_sid,";
$sql.= " s.nom, s.canvas";
$sql.= " s.nom as name, s.canvas";
$sql.= " FROM ".MAIN_DB_PREFIX."user as u";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON u.fk_societe = s.rowid";
if (! empty($conf->multicompany->enabled) && $conf->entity == 1 && ($conf->multicompany->transverse_mode || ($user->admin && ! $user->entity)))
@ -126,7 +126,7 @@ if ($resql)
$var=!$var;
print "<tr $bc[$var]>";
print '<td><a href="'.DOL_URL_ROOT.'/user/fiche.php?id='.$obj->rowid.'">'.img_object($langs->trans("ShowUser"),"user").' '.$obj->firstname.' '.$obj->name.'</a>';
print '<td><a href="'.DOL_URL_ROOT.'/user/fiche.php?id='.$obj->rowid.'">'.img_object($langs->trans("ShowUser"),"user").' '.dolGetFirstLastname($obj->firstname,$obj->lastname).'</a>';
if (! empty($conf->multicompany->enabled) && $obj->admin && ! $obj->entity)
{
print img_picto($langs->trans("SuperAdministrator"),'redstar');
@ -141,7 +141,7 @@ if ($resql)
if ($obj->fk_societe)
{
$companystatic->id=$obj->fk_societe;
$companystatic->nom=$obj->nom;
$companystatic->name=$obj->name;
$companystatic->canvas=$obj->canvas;
print $companystatic->getNomUrl(1);
}

View File

@ -111,7 +111,7 @@ $server->wsdl->addComplexType(
'datec' => array('name'=>'datec','type'=>'xsd:dateTime'),
'datem' => array('name'=>'datem','type'=>'xsd:dateTime'),
'fk_thirdparty' => array('name'=>'fk_thirdparty','type'=>'xsd:string'),
'fk_socpeople' => array('name'=>'fk_socpeople','type'=>'xsd:string'),
'fk_contact' => array('name'=>'fk_contact','type'=>'xsd:string'),
'fk_member' => array('name'=>'fk_member','type'=>'xsd:string'),
'datelastlogin' => array('name'=>'datelastlogin','type'=>'xsd:dateTime'),
'datepreviouslogin' => array('name'=>'datepreviouslogin','type'=>'xsd:dateTime'),
@ -132,7 +132,7 @@ $server->wsdl->addComplexType(
'all',
'',
array(
'nom' => array('name'=>'nom','type'=>'xsd:string'),
'name' => array('name'=>'name','type'=>'xsd:string'),
'id' => array('name'=>'id','type'=>'xsd:string'),
'datec' => array('name'=>'datec','type'=>'xsd:string'),
'nb' => array('name'=>'nb','type'=>'xsd:string')
@ -264,26 +264,26 @@ $server->register(
);
$server->register(
'CreateUserFromThirdparty',
'createUserFromThirdparty',
// Entry values
array('authentication'=>'tns:authentication','thirdpartywithuser'=>'tns:thirdpartywithuser'),
// Exit values
array('result'=>'tns:result','id'=>'xsd:string'),
$ns,
$ns.'#CreateUserFromThirdparty',
$ns.'#createUserFromThirdparty',
$styledoc,
$styleuse,
'WS to create an external user with thirdparty and contact'
);
$server->register(
'SetUserPassword',
'setUserPassword',
// Entry values
array('authentication'=>'tns:authentication','shortuser'=>'tns:shortuser'),
// Exit values
array('result'=>'tns:result','id'=>'xsd:string'),
$ns,
$ns.'#SetUserPassword',
$ns.'#setUserPassword',
$styledoc,
$styleuse,
'WS to change password of an user'
@ -338,36 +338,36 @@ function getUser($authentication,$id,$ref='',$ref_ext='')
$objectresp = array(
'result'=>array('result_code'=>'OK', 'result_label'=>''),
'user'=>array(
'id' => $user->id,
'lastname' => $user->lastname,
'firstname' => $user->firstname,
'note' => $user->note,
'email' => $user->email,
'signature' => $user->signature,
'office_phone' => $user->office_phone,
'office_fax' => $user->office_fax,
'user_mobile' => $user->user_mobile,
'admin' => $user->admin,
'login' => $user->login,
'entity' => $user->entity,
'pass_indatabase' => $user->pass_indatabase,
'pass_indatabase_crypted' => $user->pass_indatabase_crypted,
'datec' => dol_print_date($user->datec,'dayhourrfc'),
'datem' => dol_print_date($user->datem,'dayhourrfc'),
'fk_thirdparty' => $user->societe_id,
'fk_socpeople' => $user->contact_id,
'fk_member' => $user->fk_member,
'webcal_login' => $user->webcal_login,
'phenix_login' => $user->phenix_login,
'phenix_pass' => $user->phenix_pass,
'phenix_pass_crypted' => $user->phenix_pass_crypted,
'datelastlogin' => dol_print_date($user->datelastlogin,'dayhourrfc'),
'datepreviouslogin' => dol_print_date($user->datepreviouslogin,'dayhourrfc'),
'statut' => $user->statut,
'photo' => $user->photo,
'lang' => $user->lang,
//'rights' => $user->rights,
'canvas' => $user->canvas
'id' => $user->id,
'lastname' => $user->lastname,
'firstname' => $user->firstname,
'note' => $user->note,
'email' => $user->email,
'signature' => $user->signature,
'office_phone' => $user->office_phone,
'office_fax' => $user->office_fax,
'user_mobile' => $user->user_mobile,
'admin' => $user->admin,
'login' => $user->login,
'entity' => $user->entity,
'pass_indatabase' => $user->pass_indatabase,
'pass_indatabase_crypted' => $user->pass_indatabase_crypted,
'datec' => dol_print_date($user->datec,'dayhourrfc'),
'datem' => dol_print_date($user->datem,'dayhourrfc'),
'fk_thirdparty' => $user->societe_id,
'fk_contact' => $user->contact_id,
'fk_member' => $user->fk_member,
'webcal_login' => $user->webcal_login,
'phenix_login' => $user->phenix_login,
'phenix_pass' => $user->phenix_pass,
'phenix_pass_crypted' => $user->phenix_pass_crypted,
'datelastlogin' => dol_print_date($user->datelastlogin,'dayhourrfc'),
'datepreviouslogin' => dol_print_date($user->datepreviouslogin,'dayhourrfc'),
'statut' => $user->statut,
'photo' => $user->photo,
'lang' => $user->lang,
//'rights' => $user->rights,
'canvas' => $user->canvas
)
);
}
@ -418,7 +418,7 @@ function getListOfGroups($authentication)
if (! $error)
{
$sql = "SELECT g.rowid, g.nom, g.entity, g.datec, COUNT(DISTINCT ugu.fk_user) as nb";
$sql = "SELECT g.rowid, g.nom as name, g.entity, g.datec, COUNT(DISTINCT ugu.fk_user) as nb";
$sql.= " FROM ".MAIN_DB_PREFIX."usergroup as g";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."usergroup_user as ugu ON ugu.fk_usergroup = g.rowid";
if (! empty($conf->multicompany->enabled) && $conf->entity == 1 && ($conf->multicompany->transverse_mode || ($user->admin && ! $user->entity)))
@ -439,7 +439,7 @@ function getListOfGroups($authentication)
while ($i < $num)
{
$obj=$db->fetch_object($resql);
$arraygroups[]=array('id'=>$obj->rowid,'nom'=>$obj->nom,'datec'=>$obj->datec,'nb'=>$obj->nb);
$arraygroups[]=array('id'=>$obj->rowid,'name'=>$obj->name,'datec'=>$obj->datec,'nb'=>$obj->nb);
$i++;
}
}
@ -477,11 +477,11 @@ function getListOfGroups($authentication)
* @param array $thirdpartywithuser Datas
* @return mixed
*/
function CreateUserFromThirdparty($authentication,$thirdpartywithuser)
function createUserFromThirdparty($authentication,$thirdpartywithuser)
{
global $db,$conf,$langs;
dol_syslog("Function: CreateUserFromThirdparty login=".$authentication['login']." id=".$id." ref=".$ref." ref_ext=".$ref_ext);
dol_syslog("Function: createUserFromThirdparty login=".$authentication['login']." id=".$id." ref=".$ref." ref_ext=".$ref_ext);
if ($authentication['entity']) $conf->entity=$authentication['entity'];
@ -518,7 +518,7 @@ function CreateUserFromThirdparty($authentication,$thirdpartywithuser)
$resql = $db->query($sql);
if ($resql)
{
// If a company or socpeopel is found with the same email we return an error
// If a company or contact is found with the same email we return an error
$row = $db->fetch_object($resql);
if ($row)
{
@ -665,11 +665,11 @@ function CreateUserFromThirdparty($authentication,$thirdpartywithuser)
* @param array $shortuser Array of login/password info
* @return mixed
*/
function SetUserPassword($authentication,$shortuser) {
function setUserPassword($authentication,$shortuser) {
global $db,$conf,$langs;
dol_syslog("Function: SetUserPassword login=".$authentication['login']." id=".$id." ref=".$ref." ref_ext=".$ref_ext);
dol_syslog("Function: setUserPassword login=".$authentication['login']." id=".$id." ref=".$ref." ref_ext=".$ref_ext);
if ($authentication['entity']) $conf->entity=$authentication['entity'];