Merge remote-tracking branch 'refs/remotes/Dolibarr/develop' into develop
This commit is contained in:
commit
48f0e60014
30
README-FR.md
30
README-FR.md
@ -77,50 +77,56 @@ Voir fichier ChangeLog.
|
|||||||
|
|
||||||
## CE QUE DOLIBARR PEUT FAIRE
|
## CE QUE DOLIBARR PEUT FAIRE
|
||||||
|
|
||||||
Modules principaux:
|
### Modules principaux (tous optionnels):
|
||||||
|
|
||||||
- Annuaires des prospects et/ou client et/ou fournisseurs
|
- Annuaires des prospects et/ou client et/ou fournisseurs
|
||||||
- Gestion de catalogue de produits et services
|
- Gestion de catalogue de produits et services
|
||||||
- Gestion de stock
|
- Gestion des devis, propositions commerciales
|
||||||
|
- Gestion des commandes
|
||||||
|
- Gestion des factures clients/fournisseurs et paiements
|
||||||
|
- Gestion des virements bancaires SEPA
|
||||||
- Gestion des comptes bancaires
|
- Gestion des comptes bancaires
|
||||||
- Agenda partagé
|
- Agenda partagé
|
||||||
- Gestion des commandes
|
- Suivi des opportunités et/ou projets (suivi de rentabilité incluant les factures, notes de frais, temps consommé valorisé, ...)
|
||||||
- Gestion des devis, propositions commerciales
|
|
||||||
- Gestion des factures clients et fournisseurs
|
|
||||||
- Gestion de contrats de services
|
- Gestion de contrats de services
|
||||||
- Gestion des paiements
|
- Gestion de stock
|
||||||
- Gestion des virements bancaires
|
|
||||||
- Gestion des expéditions
|
- Gestion des expéditions
|
||||||
- GED (Gestion Electronique de Documents)
|
- GED (Gestion Electronique de Documents)
|
||||||
- EMailings de masse
|
- EMailings de masse
|
||||||
- Réalisation de sondages
|
- Réalisation de sondages
|
||||||
- Point de vente/Caisse enregistreuse
|
- Point de vente/Caisse enregistreuse
|
||||||
|
- …
|
||||||
|
|
||||||
|
### Autres modules:
|
||||||
|
|
||||||
Autres modules:
|
|
||||||
- Gestion de marque-pages
|
- Gestion de marque-pages
|
||||||
- Gestion des promesses de dons
|
- Gestion des promesses de dons
|
||||||
- Gestion de la TVA NPR (non perçue récupérable - pour les utilisateurs français des DOM-TOM)
|
- Gestion de la TVA NPR (non perçue récupérable - pour les utilisateurs français des DOM-TOM)
|
||||||
- Rapports
|
- Rapports
|
||||||
- Imports/Exports des données
|
- Imports/Exports des données
|
||||||
- Connectivité LDAP
|
- Connectivité LDAP
|
||||||
- Export PDF de tous les éléments (factures, propositions commerciales, commandes, bons expéditions, etc...)
|
|
||||||
- De nombreuses autres fonctionnalités issues de modules officiels ou non (AWStats, Bittorrent, Gravatar, Google, Webcalendar...)
|
- De nombreuses autres fonctionnalités issues de modules officiels ou non (AWStats, Bittorrent, Gravatar, Google, Webcalendar...)
|
||||||
|
- …
|
||||||
|
|
||||||
|
### Divers:
|
||||||
|
|
||||||
Divers:
|
|
||||||
- Application multi-utilisateurs avec différents niveaux de permissions par module.
|
- Application multi-utilisateurs avec différents niveaux de permissions par module.
|
||||||
|
- Peux être multi-société par ajout du module externe multi-société.
|
||||||
|
- Peux-être multi-devise par ajout du module externe multi-devise.
|
||||||
- Plusieurs gestionnaires de menus (possibilité de différencier les menus pour les utilisateurs internes ou externes comme les clients ou fournisseurs).
|
- Plusieurs gestionnaires de menus (possibilité de différencier les menus pour les utilisateurs internes ou externes comme les clients ou fournisseurs).
|
||||||
- Application simple à utiliser.
|
- Application simple à utiliser.
|
||||||
- Plusieurs thèmes visuels.
|
- Plusieurs thèmes visuels.
|
||||||
- Code simple et facilement personnalisable.
|
- Code simple et facilement personnalisable.
|
||||||
- Requiert PHP et Mysql ou Postgresql (Voir versions exactes sur http://wiki.dolibarr.org/index.php/Prérequis).
|
- Requiert PHP et Mysql ou Postgresql (Voir versions exactes sur http://wiki.dolibarr.org/index.php/Prérequis).
|
||||||
- Compatible avec toutes les offres Cloud du marché respectant les prérequis MySQL et PHP ou Postgresql.
|
- Compatible avec toutes les offres Cloud du marché respectant les prérequis MySQL et PHP ou Postgresql.
|
||||||
|
- Export PDF de tous les éléments (factures, propositions commerciales, commandes, bons expéditions, etc...)
|
||||||
|
|
||||||
|
|
||||||
## CE QUE DOLIBARR NE PEUT PAS FAIRE (TACHES A FAIRE)
|
## CE QUE DOLIBARR NE PEUT PAS FAIRE (TACHES A FAIRE)
|
||||||
|
|
||||||
Voici un liste de fonctionnalites pas encore gérées par Dolibarr:
|
Voici un liste de fonctionnalites pas encore gérées par Dolibarr:
|
||||||
- Pas de compta analytique double-partie (uniquement gestion de trésorerie).
|
- Pas encore de compta analytique double-partie (uniquement gestion de trésorerie).
|
||||||
- Dolibarr ne gère qu'une seule monnaie à la fois (mono-devise).
|
- Dolibarr ne gère qu'une seule monnaie à la fois (mono-devise).
|
||||||
- Dolibarr ne gère en standard qu'une société/institution/association mère (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.
|
|
||||||
- Dolibarr ne contient pas de module de Gestion de la paie.
|
- Dolibarr ne contient pas de module de Gestion de la paie.
|
||||||
- Les tâches du module de gestion de projets n'ont pas de dépendance entre elle.
|
- Les tâches du module de gestion de projets n'ont pas de dépendance entre elle.
|
||||||
- Dolibarr ne contient pas de Webmail.
|
- Dolibarr ne contient pas de Webmail.
|
||||||
|
|||||||
57
README.md
57
README.md
@ -69,39 +69,22 @@ See the [ChangeLog](ChangeLog) file.
|
|||||||
|
|
||||||
## FEATURES
|
## FEATURES
|
||||||
|
|
||||||
### General features
|
### Main modules (all optional)
|
||||||
- Users and groups with finely grained rights
|
|
||||||
- Localization in most major languages
|
|
||||||
- Very user friendly and easy to use
|
|
||||||
- Highly customizable: enable only the modules you need, add user personalized fields, choose your skin, several 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 one)
|
|
||||||
- Works with PHP 5.3+ and MySQL 4.1+ or PostgreSQL 8.1. (See requirements on the [Wiki](http://wiki.dolibarr.org/index.php/Prerequisite))
|
|
||||||
- Compatible with all Cloud solutions that match MySQL, PHP or PostgreSQL prerequisites.
|
|
||||||
- An easy to understand, maintain and code interfaces with your own information system (PHP with no heavy framework; trigger and hook architecture)
|
|
||||||
- Support for country specific features:
|
|
||||||
- Spanish Tax RE and ISPF
|
|
||||||
- French NPR VAT rate (VAT called "Non Perçue Récupérable" for DOM-TOM)
|
|
||||||
- Canadian double taxes (federal/province) and other countries using cumulative VAT
|
|
||||||
- Tunisian tax stamp
|
|
||||||
- Compatible with [European directives](http://europa.eu/legislation_summaries/taxation/l31057_en.htm) (2006/112/CE ... 2010/45/UE)
|
|
||||||
- ...
|
|
||||||
|
|
||||||
### Main modules
|
|
||||||
|
|
||||||
- Customers, Prospects and/or Suppliers directory
|
- Customers, Prospects and/or Suppliers directory
|
||||||
- Products and/or Services catalog
|
- Products and/or Services catalog
|
||||||
- Bank accounts management
|
|
||||||
- Customer and Supplier Orders management
|
|
||||||
- Commercial proposals management
|
- Commercial proposals management
|
||||||
- Contracts management
|
- Customer and Supplier Orders management
|
||||||
- Invoices management
|
- Invoices and payment management
|
||||||
|
- Standing orders management (European SEPA)
|
||||||
|
- Bank accounts management
|
||||||
|
- Shared calendar
|
||||||
|
- Opportunities and/or project management (following project benefit including invoices, expense reports, time spent, ...)
|
||||||
- Projects management
|
- Projects management
|
||||||
- Events management
|
- Contracts management
|
||||||
- Payments management
|
|
||||||
- Standing orders management
|
|
||||||
- Stock management
|
- Stock management
|
||||||
- Shipping management
|
- Shipping management
|
||||||
- Interventions management
|
- Interventions management
|
||||||
- PDF or ODT generation for invoice, proposals, orders...
|
|
||||||
- Agenda with ical and vcal export for third party tools integration
|
- Agenda with ical and vcal export for third party tools integration
|
||||||
- Electronic Document Management (EDM)
|
- Electronic Document Management (EDM)
|
||||||
- Foundations members management
|
- Foundations members management
|
||||||
@ -127,6 +110,25 @@ See the [ChangeLog](ChangeLog) file.
|
|||||||
- Payment platforms integration (PayBox, PayPal)
|
- Payment platforms integration (PayBox, PayPal)
|
||||||
- …
|
- …
|
||||||
|
|
||||||
|
### Other general features
|
||||||
|
- Multi-Users and groups with finely grained rights
|
||||||
|
- Localization in most major languages
|
||||||
|
- Can manage several companies by adding external module multi-company.
|
||||||
|
- Can manage several currencies by adding external module multi-currency.
|
||||||
|
- Very user friendly and easy to use
|
||||||
|
- Highly customizable: enable only the modules you need, add user personalized fields, choose your skin, several 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 one)
|
||||||
|
- Works with PHP 5.3+ and MySQL 4.1+ or PostgreSQL 8.1. (See requirements on the [Wiki](http://wiki.dolibarr.org/index.php/Prerequisite))
|
||||||
|
- Compatible with all Cloud solutions that match MySQL, PHP or PostgreSQL prerequisites.
|
||||||
|
- An easy to understand, maintain and code interfaces with your own information system (PHP with no heavy framework; trigger and hook architecture)
|
||||||
|
- Support for country specific features:
|
||||||
|
- Spanish Tax RE and ISPF
|
||||||
|
- French NPR VAT rate (VAT called "Non Perçue Récupérable" for DOM-TOM)
|
||||||
|
- Canadian double taxes (federal/province) and other countries using cumulative VAT
|
||||||
|
- Tunisian tax stamp
|
||||||
|
- Compatible with [European directives](http://europa.eu/legislation_summaries/taxation/l31057_en.htm) (2006/112/CE ... 2010/45/UE)
|
||||||
|
- PDF or ODT generation for invoice, proposals, orders...
|
||||||
|
- …
|
||||||
|
|
||||||
### Extending
|
### Extending
|
||||||
|
|
||||||
Dolibarr can be extended with a lot of other external modules from third party developers available at the [DoliStore](http://www.dolistore.com).
|
Dolibarr can be extended with a lot of other external modules from third party developers available at the [DoliStore](http://www.dolistore.com).
|
||||||
@ -135,10 +137,7 @@ Dolibarr can be extended with a lot of other external modules from third party d
|
|||||||
|
|
||||||
These are features that Dolibarr does **not** yet fully support:
|
These are features that Dolibarr does **not** yet fully support:
|
||||||
|
|
||||||
- Double-entry bookkeeping (only bank and treasury management)
|
- Double-entry bookkeeping yet (only bank and treasury management)
|
||||||
- Multiple currencies
|
|
||||||
- Multiple companies
|
|
||||||
If you want to manage several companies or foundations, you must install the software several times (on same server or not) or use the MultiCompany addon module that allows to manage several companies in one Dolibarr instance (one database but with a logical isolation of datas)
|
|
||||||
- Tasks dependencies in projects
|
- Tasks dependencies in projects
|
||||||
- Payroll module
|
- Payroll module
|
||||||
- Webmail
|
- Webmail
|
||||||
|
|||||||
@ -96,11 +96,11 @@ if ($object->id > 0)
|
|||||||
// Login
|
// Login
|
||||||
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
|
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
|
||||||
{
|
{
|
||||||
print '<tr><td>'.$langs->trans("Login").' / '.$langs->trans("Id").'</td><td class="valeur">'.$object->login.' </td></tr>';
|
print '<tr><td class="titlefield">'.$langs->trans("Login").' / '.$langs->trans("Id").'</td><td class="valeur">'.$object->login.' </td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Type
|
// Type
|
||||||
print '<tr><td>'.$langs->trans("Type").'</td><td class="valeur">'.$adht->getNomUrl(1)."</td></tr>\n";
|
print '<tr><td class="titlefield">'.$langs->trans("Type").'</td><td class="valeur">'.$adht->getNomUrl(1)."</td></tr>\n";
|
||||||
|
|
||||||
// Morphy
|
// Morphy
|
||||||
print '<tr><td>'.$langs->trans("Nature").'</td><td class="valeur" >'.$object->getmorphylib().'</td>';
|
print '<tr><td>'.$langs->trans("Nature").'</td><td class="valeur" >'.$object->getmorphylib().'</td>';
|
||||||
@ -116,16 +116,6 @@ if ($object->id > 0)
|
|||||||
print '<tr><td>'.$langs->trans("UserTitle").'</td><td class="valeur">'.$object->getCivilityLabel().' </td>';
|
print '<tr><td>'.$langs->trans("UserTitle").'</td><td class="valeur">'.$object->getCivilityLabel().' </td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// Lastname
|
|
||||||
print '<tr><td>'.$langs->trans("Lastname").'</td><td class="valeur" colspan="3">'.$object->lastname.' </td>';
|
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
// Firstname
|
|
||||||
print '<tr><td>'.$langs->trans("Firstname").'</td><td class="valeur" colspan="3">'.$object->firstname.' </td></tr>';
|
|
||||||
|
|
||||||
// Status
|
|
||||||
print '<tr><td>'.$langs->trans("Status").'</td><td class="valeur">'.$object->getLibStatut(4).'</td></tr>';
|
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|||||||
@ -1432,13 +1432,6 @@ else
|
|||||||
print '<tr><td>'.$langs->trans("UserTitle").'</td><td class="valeur">'.$object->getCivilityLabel().' </td>';
|
print '<tr><td>'.$langs->trans("UserTitle").'</td><td class="valeur">'.$object->getCivilityLabel().' </td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// Lastname
|
|
||||||
print '<tr><td>'.$langs->trans("Lastname").'</td><td class="valeur">'.$object->lastname.' </td>';
|
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
// Firstname
|
|
||||||
print '<tr><td>'.$langs->trans("Firstname").'</td><td class="valeur">'.$object->firstname.' </td></tr>';
|
|
||||||
|
|
||||||
// Password
|
// Password
|
||||||
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
|
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
|
||||||
{
|
{
|
||||||
@ -1559,6 +1552,22 @@ else
|
|||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
// Date end subscription
|
||||||
|
print '<tr><td>'.$langs->trans("SubscriptionEndDate").'</td><td class="valeur">';
|
||||||
|
if ($object->datefin)
|
||||||
|
{
|
||||||
|
print dol_print_date($object->datefin,'day');
|
||||||
|
if ($object->hasDelay()) {
|
||||||
|
print " ".img_warning($langs->trans("Late"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print $langs->trans("SubscriptionNotReceived");
|
||||||
|
if ($object->statut > 0) print " ".img_warning($langs->trans("Late")); // Affiche picto retard uniquement si non brouillon et non resilie
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
|
||||||
print "</div></div></div>\n";
|
print "</div></div></div>\n";
|
||||||
|
|||||||
@ -572,46 +572,150 @@ if ($rowid > 0)
|
|||||||
dol_banner_tab($object, 'rowid', $linkback);
|
dol_banner_tab($object, 'rowid', $linkback);
|
||||||
|
|
||||||
print '<div class="fichecenter">';
|
print '<div class="fichecenter">';
|
||||||
|
print '<div class="fichehalfleft">';
|
||||||
|
|
||||||
print '<div class="underbanner clearboth"></div>';
|
print '<div class="underbanner clearboth"></div>';
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
// Login
|
// Login
|
||||||
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
|
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
|
||||||
{
|
{
|
||||||
print '<tr><td class="titlefield">'.$langs->trans("Login").' / '.$langs->trans("Id").'</td><td class="valeur">'.$object->login.' </td>';
|
print '<tr><td>'.$langs->trans("Login").' / '.$langs->trans("Id").'</td><td class="valeur">'.$object->login.' </td></tr>';
|
||||||
print $showphoto; $showphoto='';
|
}
|
||||||
print '</tr>';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Type
|
// Type
|
||||||
print '<tr><td class="titlefield">'.$langs->trans("Type").'</td><td class="valeur">'.$adht->getNomUrl(1)."</td></tr>\n";
|
print '<tr><td>'.$langs->trans("Type").'</td><td class="valeur">'.$adht->getNomUrl(1)."</td></tr>\n";
|
||||||
|
|
||||||
// Morphy
|
// Morphy
|
||||||
print '<tr><td>'.$langs->trans("Nature").'</td><td class="valeur" >'.$object->getmorphylib().'</td>';
|
print '<tr><td>'.$langs->trans("Nature").'</td><td class="valeur" >'.$object->getmorphylib().'</td>';
|
||||||
print $showphoto; $showphoto='';
|
print '</tr>';
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
// Company
|
// Company
|
||||||
print '<tr><td>'.$langs->trans("Company").'</td><td class="valeur">'.$object->societe.'</td></tr>';
|
print '<tr><td>'.$langs->trans("Company").'</td><td class="valeur">'.$object->societe.'</td></tr>';
|
||||||
|
|
||||||
// Civility
|
// Civility
|
||||||
print '<tr><td>'.$langs->trans("UserTitle").'</td><td class="valeur">'.$object->getCivilityLabel().' </td>';
|
print '<tr><td>'.$langs->trans("UserTitle").'</td><td class="valeur">'.$object->getCivilityLabel().' </td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// Lastname
|
// Password
|
||||||
print '<tr><td>'.$langs->trans("Lastname").'</td><td class="valeur">'.$object->lastname.' </td>';
|
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
|
||||||
print '</tr>';
|
{
|
||||||
|
print '<tr><td>'.$langs->trans("Password").'</td><td>'.preg_replace('/./i','*',$object->pass);
|
||||||
|
if ((! empty($object->pass) || ! empty($object->pass_crypted)) && empty($object->user_id))
|
||||||
|
{
|
||||||
|
$langs->load("errors");
|
||||||
|
$htmltext=$langs->trans("WarningPasswordSetWithNoAccount");
|
||||||
|
print ' '.$form->textwithpicto('', $htmltext,1,'warning');
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
|
}
|
||||||
|
|
||||||
// Firstname
|
// Skype
|
||||||
print '<tr><td>'.$langs->trans("Firstname").'</td><td class="valeur">'.$object->firstname.' </td>';
|
if (! empty($conf->skype->enabled))
|
||||||
print '</tr>';
|
{
|
||||||
|
print '<tr><td>'.$langs->trans("Skype").'</td><td class="valeur">'.dol_print_skype($object->skype,0,$object->fk_soc,1).'</td></tr>';
|
||||||
|
}
|
||||||
|
|
||||||
// EMail
|
print '</table>';
|
||||||
print '<tr><td>'.$langs->trans("EMail").'</td><td class="valeur">'.dol_print_email($object->email,0,$object->fk_soc,1).'</td></tr>';
|
|
||||||
|
print '</div>';
|
||||||
|
print '<div class="fichehalfright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
|
print '<div class="underbanner clearboth"></div>';
|
||||||
|
print '<table class="border tableforfield" width="100%">';
|
||||||
|
|
||||||
|
// Birthday
|
||||||
|
print '<tr><td>'.$langs->trans("Birthday").'</td><td class="valeur">'.dol_print_date($object->birth,'day').'</td></tr>';
|
||||||
|
|
||||||
// Status
|
// Public
|
||||||
print '<tr><td>'.$langs->trans("Status").'</td><td class="valeur">'.$object->getLibStatut(4).'</td></tr>';
|
print '<tr><td>'.$langs->trans("Public").'</td><td class="valeur">'.yn($object->public).'</td></tr>';
|
||||||
|
|
||||||
|
// Categories
|
||||||
|
if (! empty($conf->categorie->enabled) && ! empty($user->rights->categorie->lire))
|
||||||
|
{
|
||||||
|
print '<tr><td>' . $langs->trans("Categories") . '</td>';
|
||||||
|
print '<td colspan="2">';
|
||||||
|
print $form->showCategories($object->id, 'member', 1);
|
||||||
|
print '</td></tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Other attributes
|
||||||
|
$parameters=array('colspan'=>2);
|
||||||
|
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
|
||||||
|
if (empty($reshook) && ! empty($extrafields->attribute_label))
|
||||||
|
{
|
||||||
|
print $object->showOptionals($extrafields, 'view', $parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Third party Dolibarr
|
||||||
|
if (! empty($conf->societe->enabled))
|
||||||
|
{
|
||||||
|
print '<tr><td>';
|
||||||
|
print '<table class="nobordernopadding" width="100%"><tr><td>';
|
||||||
|
print $langs->trans("LinkedToDolibarrThirdParty");
|
||||||
|
print '</td>';
|
||||||
|
if ($action != 'editthirdparty' && $user->rights->adherent->creer) print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editthirdparty&rowid='.$object->id.'">'.img_edit($langs->trans('SetLinkToThirdParty'),1).'</a></td>';
|
||||||
|
print '</tr></table>';
|
||||||
|
print '</td><td colspan="2" class="valeur">';
|
||||||
|
if ($action == 'editthirdparty')
|
||||||
|
{
|
||||||
|
$htmlname='socid';
|
||||||
|
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'" name="form'.$htmlname.'">';
|
||||||
|
print '<input type="hidden" name="rowid" value="'.$object->id.'">';
|
||||||
|
print '<input type="hidden" name="action" value="set'.$htmlname.'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<table class="nobordernopadding" cellpadding="0" cellspacing="0">';
|
||||||
|
print '<tr><td>';
|
||||||
|
print $form->select_company($object->fk_soc,'socid','',1);
|
||||||
|
print '</td>';
|
||||||
|
print '<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
|
||||||
|
print '</tr></table></form>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ($object->fk_soc)
|
||||||
|
{
|
||||||
|
$company=new Societe($db);
|
||||||
|
$result=$company->fetch($object->fk_soc);
|
||||||
|
print $company->getNomUrl(1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print $langs->trans("NoThirdPartyAssociatedToMember");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Login Dolibarr
|
||||||
|
print '<tr><td>';
|
||||||
|
print '<table class="nobordernopadding" width="100%"><tr><td>';
|
||||||
|
print $langs->trans("LinkedToDolibarrUser");
|
||||||
|
print '</td>';
|
||||||
|
if ($action != 'editlogin' && $user->rights->adherent->creer)
|
||||||
|
{
|
||||||
|
print '<td align="right">';
|
||||||
|
if ($user->rights->user->user->creer)
|
||||||
|
{
|
||||||
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=editlogin&rowid='.$object->id.'">'.img_edit($langs->trans('SetLinkToUser'),1).'</a>';
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
print '</tr></table>';
|
||||||
|
print '</td><td colspan="2" class="valeur">';
|
||||||
|
if ($action == 'editlogin')
|
||||||
|
{
|
||||||
|
$form->form_users($_SERVER['PHP_SELF'].'?rowid='.$object->id,$object->user_id,'userid','');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ($object->user_id)
|
||||||
|
{
|
||||||
|
$form->form_users($_SERVER['PHP_SELF'].'?rowid='.$object->id,$object->user_id,'none');
|
||||||
|
}
|
||||||
|
else print $langs->trans("NoDolibarrAccess");
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
// Date end subscription
|
// Date end subscription
|
||||||
print '<tr><td>'.$langs->trans("SubscriptionEndDate").'</td><td class="valeur">';
|
print '<tr><td>'.$langs->trans("SubscriptionEndDate").'</td><td class="valeur">';
|
||||||
@ -629,76 +733,10 @@ if ($rowid > 0)
|
|||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Third party Dolibarr
|
|
||||||
if (! empty($conf->societe->enabled))
|
|
||||||
{
|
|
||||||
print '<tr><td>';
|
|
||||||
print '<table class="nobordernopadding" width="100%"><tr><td>';
|
|
||||||
print $langs->trans("LinkedToDolibarrThirdParty");
|
|
||||||
print '</td>';
|
|
||||||
if ($action != 'editthirdparty' && $user->rights->adherent->creer) print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editthirdparty&rowid='.$object->id.'">'.img_edit($langs->trans('SetLinkToThirdParty'),1).'</a></td>';
|
|
||||||
print '</tr></table>';
|
|
||||||
print '</td><td class="valeur">';
|
|
||||||
if ($action == 'editthirdparty')
|
|
||||||
{
|
|
||||||
$htmlname='socid';
|
|
||||||
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'" name="form'.$htmlname.'">';
|
|
||||||
print '<input type="hidden" name="rowid" value="'.$object->id.'">';
|
|
||||||
print '<input type="hidden" name="action" value="set'.$htmlname.'">';
|
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
|
||||||
print '<table class="nobordernopadding" cellpadding="0" cellspacing="0">';
|
|
||||||
print '<tr><td>';
|
|
||||||
print $form->select_company($object->fk_soc,'socid','',1);
|
|
||||||
print '</td>';
|
|
||||||
print '<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
|
|
||||||
print '</tr></table></form>';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if ($object->fk_soc)
|
|
||||||
{
|
|
||||||
$company=new Societe($db);
|
|
||||||
$result=$company->fetch($object->fk_soc);
|
|
||||||
print $company->getNomUrl(1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print $langs->trans("NoThirdPartyAssociatedToMember");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
print '</td></tr>';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Login Dolibarr
|
|
||||||
print '<tr><td>';
|
|
||||||
print '<table class="nobordernopadding" width="100%"><tr><td>';
|
|
||||||
print $langs->trans("LinkedToDolibarrUser");
|
|
||||||
print '</td>';
|
|
||||||
if ($action != 'editlogin' && $user->rights->adherent->creer) print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editlogin&rowid='.$object->id.'">'.img_edit($langs->trans('SetLinkToUser'),1).'</a></td>';
|
|
||||||
print '</tr></table>';
|
|
||||||
print '</td><td class="valeur">';
|
|
||||||
if ($action == 'editlogin')
|
|
||||||
{
|
|
||||||
/*$include=array();
|
|
||||||
if (empty($user->rights->user->user->creer)) // If can edit only itself user, we can link to itself only
|
|
||||||
{
|
|
||||||
$include=array($object->user_id,$user->id);
|
|
||||||
}*/
|
|
||||||
$form->form_users($_SERVER['PHP_SELF'].'?rowid='.$object->id,$object->user_id,'userid','');
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if ($object->user_id)
|
|
||||||
{
|
|
||||||
$form->form_users($_SERVER['PHP_SELF'].'?rowid='.$object->id,$object->user_id,'none');
|
|
||||||
}
|
|
||||||
else print $langs->trans("NoDolibarrAccess");
|
|
||||||
}
|
|
||||||
print '</td></tr>';
|
|
||||||
|
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
|
||||||
print '</div>';
|
print "</div></div></div>\n";
|
||||||
|
print '<div style="clear:both"></div>';
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
|
|||||||
@ -83,6 +83,7 @@ include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_pre_headers.tpl.php
|
|||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
$form = new Form($db);
|
||||||
|
|
||||||
llxHeader();
|
llxHeader();
|
||||||
|
|
||||||
@ -91,19 +92,7 @@ if ($id > 0)
|
|||||||
$result=$membert->fetch($object->typeid);
|
$result=$membert->fetch($object->typeid);
|
||||||
if ($result > 0)
|
if ($result > 0)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
* Affichage onglets
|
|
||||||
*/
|
|
||||||
if (! empty($conf->notification->enabled))
|
|
||||||
$langs->load("mails");
|
|
||||||
|
|
||||||
$head = member_prepare_head($object);
|
|
||||||
|
|
||||||
$form=new Form($db);
|
|
||||||
|
|
||||||
dol_fiche_head($head, 'document', $langs->trans("Member"),0,'user');
|
|
||||||
|
|
||||||
|
|
||||||
// Construit liste des fichiers
|
// Construit liste des fichiers
|
||||||
$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
|
$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
|
||||||
$totalsize=0;
|
$totalsize=0;
|
||||||
@ -111,34 +100,41 @@ if ($id > 0)
|
|||||||
{
|
{
|
||||||
$totalsize+=$file['size'];
|
$totalsize+=$file['size'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (! empty($conf->notification->enabled))
|
||||||
|
$langs->load("mails");
|
||||||
|
|
||||||
|
$head = member_prepare_head($object);
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
dol_fiche_head($head, 'document', $langs->trans("Member"),0,'user');
|
||||||
|
|
||||||
|
$linkback = '<a href="'.DOL_URL_ROOT.'/adherents/list.php">'.$langs->trans("BackToList").'</a>';
|
||||||
|
|
||||||
|
dol_banner_tab($object, 'rowid', $linkback);
|
||||||
|
|
||||||
|
print '<div class="fichecenter">';
|
||||||
|
|
||||||
|
print '<div class="underbanner clearboth"></div>';
|
||||||
|
print '<table class="border centpercent">';
|
||||||
|
|
||||||
$linkback = '<a href="'.DOL_URL_ROOT.'/adherents/list.php">'.$langs->trans("BackToList").'</a>';
|
$linkback = '<a href="'.DOL_URL_ROOT.'/adherents/list.php">'.$langs->trans("BackToList").'</a>';
|
||||||
|
|
||||||
// Ref
|
|
||||||
print '<tr><td width="20%">'.$langs->trans("Ref").'</td>';
|
|
||||||
print '<td class="valeur">';
|
|
||||||
print $form->showrefnav($object, 'rowid', $linkback);
|
|
||||||
print '</td></tr>';
|
|
||||||
|
|
||||||
// Login
|
// Login
|
||||||
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
|
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
|
||||||
{
|
{
|
||||||
print '<tr><td>'.$langs->trans("Login").' / '.$langs->trans("Id").'</td><td class="valeur">'.$object->login.' </td></tr>';
|
print '<tr><td class="titlefield">'.$langs->trans("Login").' / '.$langs->trans("Id").'</td><td class="valeur">'.$object->login.' </td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Type
|
||||||
|
print '<tr><td>'.$langs->trans("Type").'</td><td class="valeur">'.$membert->getNomUrl(1)."</td></tr>\n";
|
||||||
|
|
||||||
// Morphy
|
// Morphy
|
||||||
print '<tr><td>'.$langs->trans("Nature").'</td><td class="valeur" >'.$object->getmorphylib().'</td>';
|
print '<tr><td class="titlefield">'.$langs->trans("Nature").'</td><td class="valeur" >'.$object->getmorphylib().'</td>';
|
||||||
/*print '<td rowspan="'.$rowspan.'" align="center" valign="middle" width="25%">';
|
/*print '<td rowspan="'.$rowspan.'" align="center" valign="middle" width="25%">';
|
||||||
print $form->showphoto('memberphoto',$object);
|
print $form->showphoto('memberphoto',$object);
|
||||||
print '</td>';*/
|
print '</td>';*/
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// Type
|
|
||||||
print '<tr><td>'.$langs->trans("Type").'</td><td class="valeur">'.$membert->getNomUrl(1)."</td></tr>\n";
|
|
||||||
|
|
||||||
// Company
|
// Company
|
||||||
print '<tr><td>'.$langs->trans("Company").'</td><td class="valeur">'.$object->societe.'</td></tr>';
|
print '<tr><td>'.$langs->trans("Company").'</td><td class="valeur">'.$object->societe.'</td></tr>';
|
||||||
|
|
||||||
@ -146,17 +142,6 @@ if ($id > 0)
|
|||||||
print '<tr><td>'.$langs->trans("UserTitle").'</td><td class="valeur">'.$object->getCivilityLabel().' </td>';
|
print '<tr><td>'.$langs->trans("UserTitle").'</td><td class="valeur">'.$object->getCivilityLabel().' </td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// Lastname
|
|
||||||
print '<tr><td>'.$langs->trans("Lastname").'</td><td class="valeur">'.$object->lastname.' </td>';
|
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
// Firstname
|
|
||||||
print '<tr><td>'.$langs->trans("Firstname").'</td><td class="valeur">'.$object->firstname.' </td>';
|
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
// Status
|
|
||||||
print '<tr><td>'.$langs->trans("Status").'</td><td class="valeur">'.$object->getLibStatut(4).'</td></tr>';
|
|
||||||
|
|
||||||
// Nbre fichiers
|
// Nbre fichiers
|
||||||
print '<tr><td>'.$langs->trans("NbOfAttachedFiles").'</td><td colspan="3">'.count($filearray).'</td></tr>';
|
print '<tr><td>'.$langs->trans("NbOfAttachedFiles").'</td><td colspan="3">'.count($filearray).'</td></tr>';
|
||||||
|
|
||||||
@ -166,6 +151,8 @@ if ($id > 0)
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
|
||||||
$modulepart = 'member';
|
$modulepart = 'member';
|
||||||
$permission = $user->rights->adherent->creer;
|
$permission = $user->rights->adherent->creer;
|
||||||
|
|||||||
@ -180,18 +180,24 @@ if ($user->rights->adherent->cotisation->creer && $action == 'edit')
|
|||||||
$head[$h][2] = 'info';
|
$head[$h][2] = 'info';
|
||||||
$h++;
|
$h++;
|
||||||
|
|
||||||
dol_fiche_head($head, 'general', $langs->trans("Subscription"), 0, 'payment');
|
|
||||||
|
|
||||||
print "\n";
|
|
||||||
print '<form name="update" action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
print '<form name="update" action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print "<input type=\"hidden\" name=\"action\" value=\"update\">";
|
print "<input type=\"hidden\" name=\"action\" value=\"update\">";
|
||||||
print "<input type=\"hidden\" name=\"rowid\" value=\"$rowid\">";
|
print "<input type=\"hidden\" name=\"rowid\" value=\"$rowid\">";
|
||||||
print "<input type=\"hidden\" name=\"fk_bank\" value=\"".$subscription->fk_bank."\">";
|
print "<input type=\"hidden\" name=\"fk_bank\" value=\"".$subscription->fk_bank."\">";
|
||||||
|
|
||||||
|
dol_fiche_head($head, 'general', $langs->trans("Subscription"), 0, 'payment');
|
||||||
|
|
||||||
|
print "\n";
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
|
$linkback = '<a href="'.DOL_URL_ROOT.'/adherents/cotisations.php">'.$langs->trans("BackToList").'</a>';
|
||||||
|
|
||||||
// Ref
|
// Ref
|
||||||
print '<tr><td width="20%">'.$langs->trans("Ref").'</td><td class="valeur" colspan="2">'.$subscription->ref.' </td></tr>';
|
print '<tr><td width="20%">'.$langs->trans("Ref").'</td>';
|
||||||
|
print '<td class="valeur" colspan="3">';
|
||||||
|
print $form->showrefnav($subscription, 'rowid', $linkback, 1);
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
// Member
|
// Member
|
||||||
$adh->ref=$adh->getFullName($langs);
|
$adh->ref=$adh->getFullName($langs);
|
||||||
@ -239,18 +245,18 @@ if ($user->rights->adherent->cotisation->creer && $action == 'edit')
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<tr><td colspan="3" align="center">';
|
print '</table>';
|
||||||
print '<input type="submit" class="button" name="submit" value="'.$langs->trans("Save").'">';
|
|
||||||
|
dol_fiche_end();
|
||||||
|
|
||||||
|
print '<div class="center">';
|
||||||
|
print '<input type="submit" class="button" name="submit" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</td></tr>';
|
print '</div>';
|
||||||
|
|
||||||
print '</table>';
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
print "\n";
|
print "\n";
|
||||||
|
|
||||||
print '</div>';
|
|
||||||
print "\n";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($rowid && $action != 'edit')
|
if ($rowid && $action != 'edit')
|
||||||
@ -355,8 +361,7 @@ if ($rowid && $action != 'edit')
|
|||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
print "</div>\n";
|
dol_fiche_end();
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Barre d'actions
|
* Barre d'actions
|
||||||
@ -388,6 +393,6 @@ if ($rowid && $action != 'edit')
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$db->close();
|
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|
||||||
|
$db->close();
|
||||||
|
|||||||
@ -125,29 +125,32 @@ if ($result)
|
|||||||
//print '<tr><td width="30%" class="notopnoleft" valign="top">';
|
//print '<tr><td width="30%" class="notopnoleft" valign="top">';
|
||||||
print '<div class="fichecenter"><div class="fichethirdleft">';
|
print '<div class="fichecenter"><div class="fichethirdleft">';
|
||||||
|
|
||||||
|
// Search contact/address
|
||||||
|
if (! empty($conf->adherent->enabled) && $user->rights->adherent->lire)
|
||||||
|
{
|
||||||
|
$listofsearchfields['search_member']=array('text'=>'Member');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count($listofsearchfields))
|
||||||
|
{
|
||||||
|
print '<form method="post" action="'.DOL_URL_ROOT.'/core/search.php">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<table class="noborder nohover centpercent">';
|
||||||
|
$i=0;
|
||||||
|
foreach($listofsearchfields as $key => $value)
|
||||||
|
{
|
||||||
|
if ($i == 0) print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("Search").'</td></tr>';
|
||||||
|
print '<tr>';
|
||||||
|
print '<td class="nowrap"><label for="'.$key.'">'.$langs->trans($value["text"]).'</label>:</td><td><input type="text" class="flat" name="'.$key.'" id="'.$key.'" size="18"></td>';
|
||||||
|
if ($i == 0) print '<td rowspan="'.count($listofsearchfields).'"><input type="submit" value="'.$langs->trans("Search").'" class="button"></td>';
|
||||||
|
print '</tr>';
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
print '</table>';
|
||||||
|
print '</form>';
|
||||||
|
print '<br>';
|
||||||
|
}
|
||||||
|
|
||||||
// Formulaire recherche adherent
|
|
||||||
print '<form action="list.php" method="post">';
|
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
|
||||||
print '<input type="hidden" name="action" value="search">';
|
|
||||||
print '<table class="noborder nohover" width="100%">';
|
|
||||||
print '<tr class="liste_titre">';
|
|
||||||
print '<td colspan="3">'.$langs->trans("SearchAMember").'</td>';
|
|
||||||
print "</tr>\n";
|
|
||||||
$var=false;
|
|
||||||
print "<tr ".$bc[$var].">";
|
|
||||||
print '<td>';
|
|
||||||
print '<label for="search_ref">'.$langs->trans("Ref").'</label>:</td><td><input type="text" name="search_ref" id="search_ref" class="flat" size="16">';
|
|
||||||
print '</td><td rowspan="3"><input class="button" type="submit" value="'.$langs->trans("Search").'"></td></tr>';
|
|
||||||
print "<tr ".$bc[$var].">";
|
|
||||||
print '<td>';
|
|
||||||
print '<label for="search_lastname">'.$langs->trans("Name").'</label>:</td><td><input type="text" name="search_lastname" id="search_lastname" class="flat" size="16">';
|
|
||||||
print '</td></tr>';
|
|
||||||
print "<tr ".$bc[$var].">";
|
|
||||||
print '<td>';
|
|
||||||
print '<label for="sall">'.$langs->trans("Other").'</label>:</td><td><input type="text" name="sall" id="sall" class="flat" size="16">';
|
|
||||||
print '</td></tr>';
|
|
||||||
print "</table></form>";
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -156,7 +159,6 @@ print "</table></form>";
|
|||||||
|
|
||||||
if ($conf->use_javascript_ajax)
|
if ($conf->use_javascript_ajax)
|
||||||
{
|
{
|
||||||
print '<br>';
|
|
||||||
print '<table class="noborder nohover" width="100%">';
|
print '<table class="noborder nohover" width="100%">';
|
||||||
print '<tr class="liste_titre"><td colspan="2">'.$langs->trans("Statistics").'</td></tr>';
|
print '<tr class="liste_titre"><td colspan="2">'.$langs->trans("Statistics").'</td></tr>';
|
||||||
print '<tr '.$bc[0].'><td align="center" colspan="2">';
|
print '<tr '.$bc[0].'><td align="center" colspan="2">';
|
||||||
|
|||||||
@ -42,23 +42,34 @@ $result=restrictedArea($user,'adherent',$id);
|
|||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
$form = new Form($db);
|
||||||
|
|
||||||
llxHeader('',$langs->trans("Member"),'EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros');
|
llxHeader('',$langs->trans("Member"),'EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros');
|
||||||
|
|
||||||
$adh = new Adherent($db);
|
$object = new Adherent($db);
|
||||||
$adh->fetch($id);
|
$object->fetch($id);
|
||||||
$adh->info($id);
|
$object->info($id);
|
||||||
|
|
||||||
$head = member_prepare_head($adh);
|
$head = member_prepare_head($object);
|
||||||
|
|
||||||
dol_fiche_head($head, 'info', $langs->trans("Member"), 0, 'user');
|
dol_fiche_head($head, 'info', $langs->trans("Member"), 0, 'user');
|
||||||
|
|
||||||
|
|
||||||
print '<table width="100%"><tr><td>';
|
$linkback = '<a href="'.DOL_URL_ROOT.'/adherents/list.php">'.$langs->trans("BackToList").'</a>';
|
||||||
dol_print_object_info($adh);
|
|
||||||
print '</td></tr></table>';
|
dol_banner_tab($object, 'rowid', $linkback);
|
||||||
|
|
||||||
|
print '<div class="fichecenter">';
|
||||||
|
|
||||||
|
print '<div class="underbanner clearboth"></div>';
|
||||||
|
|
||||||
|
print '<br>';
|
||||||
|
dol_print_object_info($object);
|
||||||
|
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
$db->close();
|
$db->close();
|
||||||
|
|||||||
@ -44,12 +44,11 @@ if ($user->societe_id > 0)
|
|||||||
$socid = $user->societe_id;
|
$socid = $user->societe_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
$adh = new Adherent($db);
|
$object = new Adherent($db);
|
||||||
$adh->id = $rowid;
|
$result=$object->fetch($rowid);
|
||||||
$result=$adh->fetch($rowid);
|
|
||||||
if (! $result)
|
if (! $result)
|
||||||
{
|
{
|
||||||
dol_print_error($db,"Failed to get adherent: ".$adh->error);
|
dol_print_error($db,"Failed to get adherent: ".$object->error);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,8 +64,8 @@ if ($action == 'dolibarr2ldap')
|
|||||||
$ldap=new Ldap();
|
$ldap=new Ldap();
|
||||||
$result=$ldap->connect_bind();
|
$result=$ldap->connect_bind();
|
||||||
|
|
||||||
$info=$adh->_load_ldap_info();
|
$info=$object->_load_ldap_info();
|
||||||
$dn=$adh->_load_ldap_dn($info);
|
$dn=$object->_load_ldap_dn($info);
|
||||||
$olddn=$dn; // We can say that old dn = dn as we force synchro
|
$olddn=$dn; // We can say that old dn = dn as we force synchro
|
||||||
|
|
||||||
$result=$ldap->update($dn,$info,$user,$olddn);
|
$result=$ldap->update($dn,$info,$user,$olddn);
|
||||||
@ -93,35 +92,27 @@ llxHeader('',$langs->trans("Member"),'EN:Module_Foundations|FR:Module_Adhé
|
|||||||
|
|
||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
|
|
||||||
$head = member_prepare_head($adh);
|
$head = member_prepare_head($object);
|
||||||
|
|
||||||
dol_fiche_head($head, 'ldap', $langs->trans("Member"), 0, 'user');
|
dol_fiche_head($head, 'ldap', $langs->trans("Member"), 0, 'user');
|
||||||
|
|
||||||
|
$linkback = '<a href="'.DOL_URL_ROOT.'/adherents/list.php">'.$langs->trans("BackToList").'</a>';
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
dol_banner_tab($object, 'rowid', $linkback);
|
||||||
|
|
||||||
// Ref
|
print '<div class="fichecenter">';
|
||||||
print '<tr><td width="20%">'.$langs->trans("Ref").'</td>';
|
|
||||||
print '<td class="valeur">';
|
|
||||||
print $form->showrefnav($adh,'id');
|
|
||||||
print '</td></tr>';
|
|
||||||
|
|
||||||
// Lastname
|
print '<div class="underbanner clearboth"></div>';
|
||||||
print '<tr><td>'.$langs->trans("Lastname").'</td><td class="valeur">'.$adh->lastname.' </td>';
|
print '<table class="border centpercent">';
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
// Firstname
|
|
||||||
print '<tr><td width="15%">'.$langs->trans("Firstname").'</td><td class="valeur">'.$adh->firstname.' </td>';
|
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
// Login
|
// Login
|
||||||
print '<tr><td>'.$langs->trans("Login").'</td><td class="valeur">'.$adh->login.' </td></tr>';
|
print '<tr><td class="titlefield">'.$langs->trans("Login").'</td><td class="valeur">'.$object->login.' </td></tr>';
|
||||||
|
|
||||||
// Password not crypted
|
// Password not crypted
|
||||||
if (! empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD))
|
if (! empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD))
|
||||||
{
|
{
|
||||||
print '<tr><td>'.$langs->trans("LDAPFieldPasswordNotCrypted").'</td>';
|
print '<tr><td>'.$langs->trans("LDAPFieldPasswordNotCrypted").'</td>';
|
||||||
print '<td class="valeur">'.$adh->pass.'</td>';
|
print '<td class="valeur">'.$object->pass.'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -129,12 +120,12 @@ if (! empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD))
|
|||||||
if (! empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED))
|
if (! empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED))
|
||||||
{
|
{
|
||||||
print '<tr><td>'.$langs->trans("LDAPFieldPasswordCrypted").'</td>';
|
print '<tr><td>'.$langs->trans("LDAPFieldPasswordCrypted").'</td>';
|
||||||
print '<td class="valeur">'.$adh->pass_crypted.'</td>';
|
print '<td class="valeur">'.$object->pass_crypted.'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Type
|
// Type
|
||||||
print '<tr><td>'.$langs->trans("Type").'</td><td class="valeur">'.$adh->type."</td></tr>\n";
|
print '<tr><td>'.$langs->trans("Type").'</td><td class="valeur">'.$object->type."</td></tr>\n";
|
||||||
|
|
||||||
$langs->load("admin");
|
$langs->load("admin");
|
||||||
|
|
||||||
@ -155,6 +146,8 @@ print '</table>';
|
|||||||
|
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Barre d'actions
|
* Barre d'actions
|
||||||
*/
|
*/
|
||||||
@ -163,7 +156,7 @@ print '<div class="tabsAction">';
|
|||||||
|
|
||||||
if (! empty($conf->global->LDAP_MEMBER_ACTIVE) && $conf->global->LDAP_MEMBER_ACTIVE != 'ldap2dolibarr')
|
if (! empty($conf->global->LDAP_MEMBER_ACTIVE) && $conf->global->LDAP_MEMBER_ACTIVE != 'ldap2dolibarr')
|
||||||
{
|
{
|
||||||
print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$adh->id.'&action=dolibarr2ldap">'.$langs->trans("ForceSynchronize").'</a></div>';
|
print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=dolibarr2ldap">'.$langs->trans("ForceSynchronize").'</a></div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
print "</div>\n";
|
print "</div>\n";
|
||||||
@ -187,9 +180,9 @@ $ldap=new Ldap();
|
|||||||
$result=$ldap->connect_bind();
|
$result=$ldap->connect_bind();
|
||||||
if ($result > 0)
|
if ($result > 0)
|
||||||
{
|
{
|
||||||
$info=$adh->_load_ldap_info();
|
$info=$object->_load_ldap_info();
|
||||||
$dn=$adh->_load_ldap_dn($info,1);
|
$dn=$object->_load_ldap_dn($info,1);
|
||||||
$search = "(".$adh->_load_ldap_dn($info,2).")";
|
$search = "(".$object->_load_ldap_dn($info,2).")";
|
||||||
|
|
||||||
if (empty($dn))
|
if (empty($dn))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -78,6 +78,21 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
|
|||||||
$hookmanager->initHooks(array('memberlist'));
|
$hookmanager->initHooks(array('memberlist'));
|
||||||
$extrafields = new ExtraFields($db);
|
$extrafields = new ExtraFields($db);
|
||||||
|
|
||||||
|
// List of fields to search into when doing a "search in all"
|
||||||
|
$fieldstosearchall = array(
|
||||||
|
'd.rowid'=>'Ref',
|
||||||
|
//'d.ref'=>'Ref',
|
||||||
|
'd.lastname'=>'Lastname',
|
||||||
|
'd.firstname'=>'Firstname',
|
||||||
|
'd.societe'=>"Company",
|
||||||
|
'd.email'=>'EMail',
|
||||||
|
'd.address'=>'Address',
|
||||||
|
'd.zip'=>'Zip',
|
||||||
|
'd.town'=>'Town',
|
||||||
|
'd.note_public'=>'NotePublic',
|
||||||
|
'd.note_private'=>'NotePrivate',
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
@ -111,7 +126,7 @@ if ($catid == -2) $sql.= " AND cm.fk_categorie IS NULL";
|
|||||||
if ($search_categ > 0) $sql.= " AND cm.fk_categorie = ".$db->escape($search_categ);
|
if ($search_categ > 0) $sql.= " AND cm.fk_categorie = ".$db->escape($search_categ);
|
||||||
if ($search_categ == -2) $sql.= " AND cm.fk_categorie IS NULL";
|
if ($search_categ == -2) $sql.= " AND cm.fk_categorie IS NULL";
|
||||||
$sql.= " AND d.entity IN (".getEntity('adherent', 1).")";
|
$sql.= " AND d.entity IN (".getEntity('adherent', 1).")";
|
||||||
if ($sall) $sql.=natural_search(array("d.rowid", "d.firstname", "d.lastname", "d.societe", "d.email", "d.login", "d.address", "d.town", "d.note_public", "d.note_private"), $sall);
|
if ($sall) $sql.=natural_search(array_keys($fieldstosearchall), $sall);
|
||||||
if ($type > 0) $sql.=" AND t.rowid=".$db->escape($type);
|
if ($type > 0) $sql.=" AND t.rowid=".$db->escape($type);
|
||||||
if (isset($_GET["statut"]) || isset($_POST["statut"])) $sql.=" AND d.statut in (".$db->escape($statut).")"; // Peut valoir un nombre ou liste de nombre separes par virgules
|
if (isset($_GET["statut"]) || isset($_POST["statut"])) $sql.=" AND d.statut in (".$db->escape($statut).")"; // Peut valoir un nombre ou liste de nombre separes par virgules
|
||||||
if ($search_ref)
|
if ($search_ref)
|
||||||
@ -180,16 +195,16 @@ if ($resql)
|
|||||||
if ($optioncss != '') $param.='&optioncss='.$optioncss;
|
if ($optioncss != '') $param.='&optioncss='.$optioncss;
|
||||||
print_barre_liste($titre,$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords);
|
print_barre_liste($titre,$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords);
|
||||||
|
|
||||||
if ($sall)
|
|
||||||
{
|
|
||||||
print $langs->trans("Filter")." (".$langs->trans("Ref").", ".$langs->trans("Lastname").", ".$langs->trans("Firstname").", ".$langs->trans("EMail").", ".$langs->trans("Address")." ".$langs->trans("or")." ".$langs->trans("Town")."): ";
|
|
||||||
print '<strong>'.$sall.'</strong>';
|
|
||||||
}
|
|
||||||
|
|
||||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].($param?'?'.$param:'').'">';
|
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].($param?'?'.$param:'').'">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
|
||||||
|
if ($sall)
|
||||||
|
{
|
||||||
|
foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
|
||||||
|
print $langs->trans("FilterOnInto", $sall, join(', ',$fieldstosearchall));
|
||||||
|
}
|
||||||
|
|
||||||
// Filter on categories
|
// Filter on categories
|
||||||
$moreforfilter='';
|
$moreforfilter='';
|
||||||
if (! empty($conf->categorie->enabled))
|
if (! empty($conf->categorie->enabled))
|
||||||
|
|||||||
@ -73,33 +73,31 @@ if ($id)
|
|||||||
print "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">";
|
print "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">";
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
$linkback = '<a href="'.DOL_URL_ROOT.'/adherents/list.php">'.$langs->trans("BackToList").'</a>';
|
||||||
|
|
||||||
$linkback = '<a href="'.DOL_URL_ROOT.'/adherents/list.php">'.$langs->trans("BackToList").'</a>';
|
dol_banner_tab($object, 'rowid', $linkback);
|
||||||
|
|
||||||
// Reference
|
print '<div class="fichecenter">';
|
||||||
print '<tr><td width="20%">'.$langs->trans('Ref').'</td>';
|
|
||||||
print '<td colspan="3">';
|
print '<div class="underbanner clearboth"></div>';
|
||||||
print $form->showrefnav($object, 'id', $linkback);
|
print '<table class="border centpercent">';
|
||||||
print '</td>';
|
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
// Login
|
// Login
|
||||||
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
|
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
|
||||||
{
|
{
|
||||||
print '<tr><td>'.$langs->trans("Login").' / '.$langs->trans("Id").'</td><td class="valeur">'.$object->login.' </td></tr>';
|
print '<tr><td class="titlefield">'.$langs->trans("Login").' / '.$langs->trans("Id").'</td><td class="valeur">'.$object->login.' </td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Type
|
||||||
|
print '<tr><td>'.$langs->trans("Type").'</td><td class="valeur">'.$adht->getNomUrl(1)."</td></tr>\n";
|
||||||
|
|
||||||
// Morphy
|
// Morphy
|
||||||
print '<tr><td>'.$langs->trans("Nature").'</td><td class="valeur" >'.$object->getmorphylib().'</td>';
|
print '<tr><td class="titlefield">'.$langs->trans("Nature").'</td><td class="valeur" >'.$object->getmorphylib().'</td>';
|
||||||
/*print '<td rowspan="'.$rowspan.'" align="center" valign="middle" width="25%">';
|
/*print '<td rowspan="'.$rowspan.'" align="center" valign="middle" width="25%">';
|
||||||
print $form->showphoto('memberphoto',$member);
|
print $form->showphoto('memberphoto',$member);
|
||||||
print '</td>';*/
|
print '</td>';*/
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// Type
|
|
||||||
print '<tr><td>'.$langs->trans("Type").'</td><td class="valeur">'.$adht->getNomUrl(1)."</td></tr>\n";
|
|
||||||
|
|
||||||
// Company
|
// Company
|
||||||
print '<tr><td>'.$langs->trans("Company").'</td><td class="valeur">'.$object->societe.'</td></tr>';
|
print '<tr><td>'.$langs->trans("Company").'</td><td class="valeur">'.$object->societe.'</td></tr>';
|
||||||
|
|
||||||
@ -107,21 +105,13 @@ if ($id)
|
|||||||
print '<tr><td>'.$langs->trans("UserTitle").'</td><td class="valeur">'.$object->getCivilityLabel().' </td>';
|
print '<tr><td>'.$langs->trans("UserTitle").'</td><td class="valeur">'.$object->getCivilityLabel().' </td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// Lastname
|
|
||||||
print '<tr><td>'.$langs->trans("Lastname").'</td><td class="valeur" colspan="3">'.$object->lastname.' </td>';
|
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
// Firstname
|
|
||||||
print '<tr><td>'.$langs->trans("Firstname").'</td><td class="valeur" colspan="3">'.$object->firstname.' </td></tr>';
|
|
||||||
|
|
||||||
// Status
|
|
||||||
print '<tr><td>'.$langs->trans("Status").'</td><td class="valeur">'.$object->getLibStatut(4).'</td></tr>';
|
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
|
||||||
|
print '</div>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
|
||||||
$colwidth='20';
|
$cssclass='titlefield';
|
||||||
$permission = $user->rights->adherent->creer; // Used by the include of notes.tpl.php
|
$permission = $user->rights->adherent->creer; // Used by the include of notes.tpl.php
|
||||||
include DOL_DOCUMENT_ROOT.'/core/tpl/notes.tpl.php';
|
include DOL_DOCUMENT_ROOT.'/core/tpl/notes.tpl.php';
|
||||||
|
|
||||||
|
|||||||
@ -108,7 +108,7 @@ if (count($listofsearchfields))
|
|||||||
{
|
{
|
||||||
if ($i == 0) print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("Search").'</td></tr>';
|
if ($i == 0) print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("Search").'</td></tr>';
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td class="nowrap"><label for="search_contract">'.$langs->trans($value["text"]).'</label>:</td><td><input type="text" class="flat" name="'.$key.'" id="'.$key.'" size="18"></td>';
|
print '<td class="nowrap"><label for="'.$key.'">'.$langs->trans($value["text"]).'</label>:</td><td><input type="text" class="flat" name="'.$key.'" id="'.$key.'" size="18"></td>';
|
||||||
if ($i == 0) print '<td rowspan="'.count($listofsearchfields).'"><input type="submit" value="'.$langs->trans("Search").'" class="button"></td>';
|
if ($i == 0) print '<td rowspan="'.count($listofsearchfields).'"><input type="submit" value="'.$langs->trans("Search").'" class="button"></td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
$i++;
|
$i++;
|
||||||
|
|||||||
@ -108,6 +108,15 @@ $viewstatut=$object_statut;
|
|||||||
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
|
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
|
||||||
$hookmanager->initHooks(array('propallist'));
|
$hookmanager->initHooks(array('propallist'));
|
||||||
|
|
||||||
|
// List of fields to search into when doing a "search in all"
|
||||||
|
$fieldstosearchall = array(
|
||||||
|
'p.ref'=>'Ref',
|
||||||
|
'p.ref_client'=>'CustomerRef',
|
||||||
|
'pd.description'=>'Description',
|
||||||
|
's.nom'=>"ThirdParty",
|
||||||
|
'p.note_public'=>'NotePublic',
|
||||||
|
);
|
||||||
|
if (empty($user->socid)) $fieldstosearchall["p.note_private"]="NotePrivate";
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -192,7 +201,7 @@ if ($search_montant_ht != '')
|
|||||||
$sql.= natural_search("p.total_ht", $search_montant_ht, 1);
|
$sql.= natural_search("p.total_ht", $search_montant_ht, 1);
|
||||||
}
|
}
|
||||||
if ($sall) {
|
if ($sall) {
|
||||||
$sql .= natural_search(array('s.nom', 'p.note_private', 'p.note_public', 'pd.description'), $sall);
|
$sql .= natural_search(array_keys($fieldstosearchall), $sall);
|
||||||
}
|
}
|
||||||
if ($search_product_category > 0) $sql.=" AND cp.fk_categorie = ".$search_product_category;
|
if ($search_product_category > 0) $sql.=" AND cp.fk_categorie = ".$search_product_category;
|
||||||
if ($socid > 0) $sql.= ' AND s.rowid = '.$socid;
|
if ($socid > 0) $sql.= ' AND s.rowid = '.$socid;
|
||||||
@ -262,8 +271,19 @@ if ($result)
|
|||||||
|
|
||||||
// Lignes des champs de filtre
|
// Lignes des champs de filtre
|
||||||
print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="action" value="list">';
|
||||||
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
|
||||||
|
if ($sall)
|
||||||
|
{
|
||||||
|
foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
|
||||||
|
//sort($fieldstosearchall);
|
||||||
|
print $langs->trans("FilterOnInto", $sall, join(', ',$fieldstosearchall));
|
||||||
|
}
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
$moreforfilter='';
|
$moreforfilter='';
|
||||||
|
|||||||
@ -76,7 +76,7 @@ $limit = $conf->liste_limit;
|
|||||||
$viewstatut=GETPOST('viewstatut');
|
$viewstatut=GETPOST('viewstatut');
|
||||||
|
|
||||||
// Purge search criteria
|
// Purge search criteria
|
||||||
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
||||||
{
|
{
|
||||||
$search_categ='';
|
$search_categ='';
|
||||||
$search_user='';
|
$search_user='';
|
||||||
@ -95,6 +95,17 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
|
|||||||
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
|
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
|
||||||
$hookmanager->initHooks(array('orderlist'));
|
$hookmanager->initHooks(array('orderlist'));
|
||||||
|
|
||||||
|
// List of fields to search into when doing a "search in all"
|
||||||
|
$fieldstosearchall = array(
|
||||||
|
'c.ref'=>'Ref',
|
||||||
|
'c.ref_client'=>'RefCustomerOrder',
|
||||||
|
'pd.description'=>'Description',
|
||||||
|
's.nom'=>"ThirdParty",
|
||||||
|
'c.note_public'=>'NotePublic',
|
||||||
|
);
|
||||||
|
if (empty($user->socid)) $fieldstosearchall["c.note_private"]="NotePrivate";
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
@ -139,7 +150,7 @@ if ($search_product_category > 0) $sql.=" AND cp.fk_categorie = ".$search_produc
|
|||||||
if ($socid > 0) $sql.= ' AND s.rowid = '.$socid;
|
if ($socid > 0) $sql.= ' AND s.rowid = '.$socid;
|
||||||
if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
|
if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
|
||||||
if ($search_ref) $sql .= natural_search('c.ref', $search_ref);
|
if ($search_ref) $sql .= natural_search('c.ref', $search_ref);
|
||||||
if ($sall) $sql .= natural_search(array('c.ref', 'c.note_private'), $sall);
|
if ($sall) $sql .= natural_search(array_keys($fieldstosearchall), $sall);
|
||||||
if ($viewstatut <> '')
|
if ($viewstatut <> '')
|
||||||
{
|
{
|
||||||
if ($viewstatut < 4 && $viewstatut > -3)
|
if ($viewstatut < 4 && $viewstatut > -3)
|
||||||
@ -259,9 +270,19 @@ if ($resql)
|
|||||||
|
|
||||||
// Lignes des champs de filtre
|
// Lignes des champs de filtre
|
||||||
print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="action" value="list">';
|
||||||
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
print '<input type="hidden" name="viewstatut" value="'.$viewstatut.'">';
|
print '<input type="hidden" name="viewstatut" value="'.$viewstatut.'">';
|
||||||
|
|
||||||
|
if ($sall)
|
||||||
|
{
|
||||||
|
foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
|
||||||
|
print $langs->trans("FilterOnInto", $sall, join(', ',$fieldstosearchall));
|
||||||
|
}
|
||||||
|
|
||||||
$moreforfilter='';
|
$moreforfilter='';
|
||||||
|
|
||||||
// If the user can view prospects other than his'
|
// If the user can view prospects other than his'
|
||||||
@ -305,7 +326,7 @@ if ($resql)
|
|||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print_liste_field_titre($langs->trans('Ref'),$_SERVER["PHP_SELF"],'c.ref','',$param,'width="25%"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans('Ref'),$_SERVER["PHP_SELF"],'c.ref','',$param,'width="25%"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans('RefCustomerOrder'),$_SERVER["PHP_SELF"],'c.ref_client','',$param,'',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans('RefCustomerOrder'),$_SERVER["PHP_SELF"],'c.ref_client','',$param,'',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans('Company'),$_SERVER["PHP_SELF"],'s.nom','',$param,'',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans('ThirdParty'),$_SERVER["PHP_SELF"],'s.nom','',$param,'',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans('OrderDate'),$_SERVER["PHP_SELF"],'c.date_commande','',$param, 'align="center"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans('OrderDate'),$_SERVER["PHP_SELF"],'c.date_commande','',$param, 'align="center"',$sortfield,$sortorder);
|
||||||
if (empty($conf->global->ORDER_DISABLE_DELIVERY_DATE)) print_liste_field_titre($langs->trans('DeliveryDate'),$_SERVER["PHP_SELF"],'c.date_livraison','',$param, 'align="center"',$sortfield,$sortorder);
|
if (empty($conf->global->ORDER_DISABLE_DELIVERY_DATE)) print_liste_field_titre($langs->trans('DeliveryDate'),$_SERVER["PHP_SELF"],'c.date_livraison','',$param, 'align="center"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans('AmountHT'),$_SERVER["PHP_SELF"],'c.total_ht','',$param, 'align="right"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans('AmountHT'),$_SERVER["PHP_SELF"],'c.total_ht','',$param, 'align="right"',$sortfield,$sortorder);
|
||||||
|
|||||||
@ -200,7 +200,7 @@ if ($id > 0 || !empty($ref)) {
|
|||||||
* Confirmation suppression fichier
|
* Confirmation suppression fichier
|
||||||
*/
|
*/
|
||||||
if ($action == 'delete') {
|
if ($action == 'delete') {
|
||||||
$ret = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id . '&urlfile=' . urlencode($_GET["urlfile"]),
|
$ret = $form->form_confirm($_SERVER["PHP_SELF"] . '?id=' . $object->id . '&urlfile=' . urlencode($_GET["urlfile"]),
|
||||||
$langs->trans('DeleteFile'),
|
$langs->trans('DeleteFile'),
|
||||||
$langs->trans('ConfirmDeleteFile'), 'confirm_deletefile',
|
$langs->trans('ConfirmDeleteFile'), 'confirm_deletefile',
|
||||||
'', 0, 1);
|
'', 0, 1);
|
||||||
|
|||||||
@ -107,6 +107,16 @@ $hookmanager->initHooks(array('invoicelist'));
|
|||||||
|
|
||||||
$now=dol_now();
|
$now=dol_now();
|
||||||
|
|
||||||
|
// List of fields to search into when doing a "search in all"
|
||||||
|
$fieldstosearchall = array(
|
||||||
|
'f.facnumber'=>'Ref',
|
||||||
|
'f.ref_client'=>'RefCustomer',
|
||||||
|
'fd.description'=>'Description',
|
||||||
|
's.nom'=>"ThirdParty",
|
||||||
|
'f.note_public'=>'NotePublic',
|
||||||
|
);
|
||||||
|
if (empty($user->socid)) $fieldstosearchall["f.note_private"]="NotePrivate";
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
@ -134,6 +144,7 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
|
|||||||
$month='';
|
$month='';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
@ -232,7 +243,7 @@ if (! $sall)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$sql .= natural_search(array('s.nom', 'f.facnumber', 'f.note_public', 'fd.description'), $sall);
|
$sql .= natural_search(array_keys($fieldstosearchall), $sall);
|
||||||
}
|
}
|
||||||
$sql.= ' ORDER BY ';
|
$sql.= ' ORDER BY ';
|
||||||
$listfield=explode(',',$sortfield);
|
$listfield=explode(',',$sortfield);
|
||||||
@ -275,7 +286,19 @@ if ($resql)
|
|||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">'."\n";
|
print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">'."\n";
|
||||||
|
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="action" value="list">';
|
||||||
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
print '<input type="hidden" name="viewstatut" value="'.$viewstatut.'">';
|
||||||
|
|
||||||
|
if ($sall)
|
||||||
|
{
|
||||||
|
foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
|
||||||
|
print $langs->trans("FilterOnInto", $sall, join(', ',$fieldstosearchall));
|
||||||
|
}
|
||||||
|
|
||||||
// If the user can view prospects other than his'
|
// If the user can view prospects other than his'
|
||||||
$moreforfilter='';
|
$moreforfilter='';
|
||||||
if ($user->rights->societe->client->voir || $socid)
|
if ($user->rights->societe->client->voir || $socid)
|
||||||
|
|||||||
@ -71,37 +71,40 @@ print load_fiche_titre($langs->trans("HRMArea"),'', 'title_hrm.png');
|
|||||||
|
|
||||||
print '<div class="fichecenter"><div class="fichethirdleft">';
|
print '<div class="fichecenter"><div class="fichethirdleft">';
|
||||||
|
|
||||||
/*
|
|
||||||
* Search expenses
|
if (! empty($conf->holiday->enabled) && $user->rights->holiday->read)
|
||||||
*/
|
{
|
||||||
|
$langs->load("holiday");
|
||||||
|
$listofsearchfields['search_holiday']=array('text'=>'TitreRequestCP');
|
||||||
|
}
|
||||||
if (! empty($conf->deplacement->enabled) && $user->rights->deplacement->lire)
|
if (! empty($conf->deplacement->enabled) && $user->rights->deplacement->lire)
|
||||||
{
|
{
|
||||||
$langs->load("trips");
|
$langs->load("trips");
|
||||||
print '<form method="post" action="'.DOL_URL_ROOT.'/compta/deplacement/list.php">';
|
$listofsearchfields['search_deplacement']=array('text'=>'ExpenseReport');
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
|
||||||
print '<table class="noborder nohover" width="100%">';
|
|
||||||
print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("SearchATripAndExpense").'</td></tr>';
|
|
||||||
print "<tr ".$bc[0].">";
|
|
||||||
print "<td><label for=\"search_ref\">".$langs->trans("Ref").'</label>:</td><td><input type="text" name="search_ref" id="search_ref" class="flat" size="18"></td>';
|
|
||||||
print '<td><input type="submit" value="'.$langs->trans("Search").'" class="button"></td>';
|
|
||||||
//print "<tr ".$bc[0]."><td><label for=\"sall\">".$langs->trans("Other").'</label>:</td><td><input type="text" name="sall" id="sall" class="flat" size="18"></td>';
|
|
||||||
print '</tr>';
|
|
||||||
print "</table></form><br>";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! empty($conf->expensereport->enabled) && $user->rights->expensereport->lire)
|
if (! empty($conf->expensereport->enabled) && $user->rights->expensereport->lire)
|
||||||
{
|
{
|
||||||
$langs->load("trips");
|
$langs->load("trips");
|
||||||
print '<form method="post" action="'.DOL_URL_ROOT.'/expensereport/list.php">';
|
$listofsearchfields['search_expensereport']=array('text'=>'ExpenseReport');
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
}
|
||||||
print '<table class="noborder nohover" width="100%">';
|
if (count($listofsearchfields))
|
||||||
print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("SearchATripAndExpense").'</td></tr>';
|
{
|
||||||
print "<tr ".$bc[0].">";
|
print '<form method="post" action="'.DOL_URL_ROOT.'/core/search.php">';
|
||||||
print "<td><label for=\"search_ref\">".$langs->trans("Ref").'</label>:</td><td><input type="text" name="search_ref" id="search_ref" class="flat" size="18"></td>';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<td><input type="submit" value="'.$langs->trans("Search").'" class="button"></td>';
|
print '<table class="noborder nohover centpercent">';
|
||||||
//print "<tr ".$bc[0]."><td><label for=\"sall\">".$langs->trans("Other").'</label>:</td><td><input type="text" name="sall" id="sall" class="flat" size="18"></td>';
|
$i=0;
|
||||||
print '</tr>';
|
foreach($listofsearchfields as $key => $value)
|
||||||
print "</table></form><br>";
|
{
|
||||||
|
if ($i == 0) print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("Search").'</td></tr>';
|
||||||
|
print '<tr>';
|
||||||
|
print '<td class="nowrap"><label for="'.$key.'">'.$langs->trans($value["text"]).'</label>:</td><td><input type="text" class="flat" name="'.$key.'" id="'.$key.'" size="18"></td>';
|
||||||
|
if ($i == 0) print '<td rowspan="'.count($listofsearchfields).'"><input type="submit" value="'.$langs->trans("Search").'" class="button"></td>';
|
||||||
|
print '</tr>';
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
print '</table>';
|
||||||
|
print '</form>';
|
||||||
|
print '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -90,56 +90,40 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
|
|||||||
$max=3;
|
$max=3;
|
||||||
|
|
||||||
|
|
||||||
/*
|
// Search customer invoices
|
||||||
* Search invoices
|
|
||||||
*/
|
|
||||||
if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
|
if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
|
||||||
{
|
{
|
||||||
print '<form method="post" action="'.DOL_URL_ROOT.'/compta/facture/list.php">';
|
$listofsearchfields['search_invoice']=array('text'=>'CustomerInvoice');
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
|
||||||
print '<table class="noborder nohover" width="100%">';
|
|
||||||
print "<tr class=\"liste_titre\">";
|
|
||||||
print '<td colspan="3">'.$langs->trans("SearchACustomerInvoice").'</td></tr>';
|
|
||||||
print "<tr ".$bc[0]."><td><label for=\"sf_ref\">".$langs->trans("Ref").'</label>:</td><td><input type="text" name="sf_ref" id="sf_ref" class="flat" size="18"></td>';
|
|
||||||
print '<td rowspan="2"><input type="submit" value="'.$langs->trans("Search").'" class="button"></td></tr>';
|
|
||||||
print "<tr ".$bc[0]."><td><label for=\"sall\">".$langs->trans("Other").'</label>:</td><td><input type="text" name="sall" id="sall" class="flat" size="18"></td>';
|
|
||||||
print '</tr>';
|
|
||||||
print "</table></form><br>";
|
|
||||||
}
|
}
|
||||||
|
// Search supplier invoices
|
||||||
/*
|
|
||||||
* Search supplier invoices
|
|
||||||
*/
|
|
||||||
if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->lire)
|
if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->lire)
|
||||||
{
|
{
|
||||||
print '<form method="post" action="'.DOL_URL_ROOT.'/fourn/facture/list.php">';
|
$listofsearchfields['search_supplier_invoice']=array('text'=>'SupplierInvoice');
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
|
||||||
print '<table class="noborder nohover" width="100%">';
|
|
||||||
print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("SearchASupplierInvoice").'</td></tr>';
|
|
||||||
print "<tr ".$bc[0].">";
|
|
||||||
print "<td><label for=\"search_ref\">".$langs->trans("Ref").'</label>:</td><td><input type="text" name="search_ref" id="search_ref" class="flat" size="18"></td>';
|
|
||||||
print '<td rowspan="2"><input type="submit" value="'.$langs->trans("Search").'" class="button"></td></tr>';
|
|
||||||
print "<tr ".$bc[0]."><td><label for=\"search_ref_supplier\">".$langs->trans("RefSupplier").'</label>:</td><td><input type="text" name="search_ref_supplier" id="search_ref_supplier" class="flat" size="18"></td>';
|
|
||||||
print '</tr>';
|
|
||||||
print "</table></form><br>";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Search donations
|
|
||||||
*/
|
|
||||||
if (! empty($conf->don->enabled) && $user->rights->don->lire)
|
if (! empty($conf->don->enabled) && $user->rights->don->lire)
|
||||||
{
|
{
|
||||||
$langs->load("donations");
|
$langs->load("donations");
|
||||||
print '<form method="post" action="'.DOL_URL_ROOT.'/don/list.php">';
|
$listofsearchfields['search_donation']=array('text'=>'Donation');
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
}
|
||||||
print '<table class="noborder nohover" width="100%">';
|
|
||||||
print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("SearchADonation").'</td></tr>';
|
if (count($listofsearchfields))
|
||||||
print "<tr ".$bc[0].">";
|
{
|
||||||
print "<td><label for=\"search_ref\">".$langs->trans("Ref").'</label>:</td><td><input type="text" name="search_ref" id="search_ref" class="flat" size="18"></td>';
|
print '<form method="post" action="'.DOL_URL_ROOT.'/core/search.php">';
|
||||||
print '<td><input type="submit" value="'.$langs->trans("Search").'" class="button"></td>';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
//print "<tr ".$bc[0]."><td><label for=\"sall\"".$langs->trans("Other").'</label>:</td><td><input type="text" name="sall" id="sall" class="flat" size="18"></td>';
|
print '<table class="noborder nohover centpercent">';
|
||||||
print '</tr>';
|
$i=0;
|
||||||
print "</table></form><br>";
|
foreach($listofsearchfields as $key => $value)
|
||||||
|
{
|
||||||
|
if ($i == 0) print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("Search").'</td></tr>';
|
||||||
|
print '<tr>';
|
||||||
|
print '<td class="nowrap"><label for="'.$key.'">'.$langs->trans($value["text"]).'</label>:</td><td><input type="text" class="flat" name="'.$key.'" id="'.$key.'" size="18"></td>';
|
||||||
|
if ($i == 0) print '<td rowspan="'.count($listofsearchfields).'"><input type="submit" value="'.$langs->trans("Search").'" class="button"></td>';
|
||||||
|
print '</tr>';
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
print '</table>';
|
||||||
|
print '</form>';
|
||||||
|
print '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -95,6 +95,8 @@ if ($object->id)
|
|||||||
$totalsize+=$file['size'];
|
$totalsize+=$file['size'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$linkback = '<a href="'.DOL_URL_ROOT.'/contact/list.php">'.$langs->trans("BackToList").'</a>';
|
||||||
|
|
||||||
dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', '');
|
dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', '');
|
||||||
|
|
||||||
print '<div class="fichecenter">';
|
print '<div class="fichecenter">';
|
||||||
|
|||||||
@ -40,6 +40,7 @@ $contactid = GETPOST('id','int');
|
|||||||
if ($user->societe_id) $socid=$user->societe_id;
|
if ($user->societe_id) $socid=$user->societe_id;
|
||||||
$result = restrictedArea($user, 'contact', $contactid,'');
|
$result = restrictedArea($user, 'contact', $contactid,'');
|
||||||
|
|
||||||
|
$sall=GETPOST("sall");
|
||||||
$search_firstlast_only=GETPOST("search_firstlast_only");
|
$search_firstlast_only=GETPOST("search_firstlast_only");
|
||||||
$search_lastname=GETPOST("search_lastname");
|
$search_lastname=GETPOST("search_lastname");
|
||||||
$search_firstname=GETPOST("search_firstname");
|
$search_firstname=GETPOST("search_firstname");
|
||||||
@ -56,13 +57,13 @@ $search_priv=GETPOST("search_priv");
|
|||||||
$search_categ=GETPOST("search_categ",'int');
|
$search_categ=GETPOST("search_categ",'int');
|
||||||
$search_status=GETPOST("search_status",'int');
|
$search_status=GETPOST("search_status",'int');
|
||||||
if ($search_status=='') $search_status=1; // always display activ customer first
|
if ($search_status=='') $search_status=1; // always display activ customer first
|
||||||
|
|
||||||
$optioncss = GETPOST('optioncss','alpha');
|
$optioncss = GETPOST('optioncss','alpha');
|
||||||
|
|
||||||
|
|
||||||
$type=GETPOST("type");
|
$type=GETPOST("type");
|
||||||
$view=GETPOST("view");
|
$view=GETPOST("view");
|
||||||
|
|
||||||
$sall=GETPOST("contactname");
|
|
||||||
$sortfield = GETPOST('sortfield', 'alpha');
|
$sortfield = GETPOST('sortfield', 'alpha');
|
||||||
$sortorder = GETPOST('sortorder', 'alpha');
|
$sortorder = GETPOST('sortorder', 'alpha');
|
||||||
$page = GETPOST('page', 'int');
|
$page = GETPOST('page', 'int');
|
||||||
@ -98,8 +99,9 @@ else if ($type == "o")
|
|||||||
$urlfiche="";
|
$urlfiche="";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GETPOST('button_removefilter_x') || GETPOST('button_removefilter')) // Both tests are required to be compatible with all browsers
|
if (GETPOST('button_removefilter_x') || GETPOST('button_removefilter.x') || GETPOST('button_removefilter')) // All tests are required to be compatible with all browsers
|
||||||
{
|
{
|
||||||
|
$sall="";
|
||||||
$search_firstlast_only="";
|
$search_firstlast_only="";
|
||||||
$search_lastname="";
|
$search_lastname="";
|
||||||
$search_firstname="";
|
$search_firstname="";
|
||||||
@ -113,11 +115,17 @@ if (GETPOST('button_removefilter_x') || GETPOST('button_removefilter')) // Both
|
|||||||
$search_email="";
|
$search_email="";
|
||||||
$search_skype="";
|
$search_skype="";
|
||||||
$search_priv="";
|
$search_priv="";
|
||||||
$sall="";
|
|
||||||
$seach_status=1;
|
$seach_status=1;
|
||||||
}
|
}
|
||||||
if ($search_priv < 0) $search_priv='';
|
if ($search_priv < 0) $search_priv='';
|
||||||
|
|
||||||
|
// List of fields to search into when doing a "search in all"
|
||||||
|
$fieldstosearchall = array(
|
||||||
|
'p.lastname'=>'Lastname',
|
||||||
|
'p.firstname'=>'Firstname',
|
||||||
|
'p.email'=>'EMail',
|
||||||
|
's.nom'=>"ThirdParty",
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -225,7 +233,7 @@ else if ($type == "p") // filtre sur type
|
|||||||
}
|
}
|
||||||
if ($sall)
|
if ($sall)
|
||||||
{
|
{
|
||||||
$sql .= natural_search(array('p.lastname', 'p.firstname', 'p.email', 's.nom'), $sall);
|
$sql .= natural_search(array_keys($fieldstosearchall), $sall);
|
||||||
}
|
}
|
||||||
if (! empty($socid))
|
if (! empty($socid))
|
||||||
{
|
{
|
||||||
@ -241,13 +249,13 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
|||||||
// Add order and limit
|
// Add order and limit
|
||||||
if($view == "recent")
|
if($view == "recent")
|
||||||
{
|
{
|
||||||
$sql.= " ORDER BY p.datec DESC ";
|
$sql.= $db->order("p.datec","DESC");
|
||||||
$sql.= " ".$db->plimit($conf->liste_limit+1, $offset);
|
$sql.= $db->plimit($conf->liste_limit+1, $offset);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$sql.= " ORDER BY $sortfield $sortorder ";
|
$sql.= $db->order($sortfield,$sortorder);
|
||||||
$sql.= " ".$db->plimit($conf->liste_limit+1, $offset);
|
$sql.= $db->plimit($conf->liste_limit+1, $offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
//print $sql;
|
//print $sql;
|
||||||
@ -278,11 +286,12 @@ if ($result)
|
|||||||
|
|
||||||
if ($sall)
|
if ($sall)
|
||||||
{
|
{
|
||||||
print $langs->trans("Filter")." (".$langs->trans("Lastname").", ".$langs->trans("Firstname").", ".$langs->trans("ThirdParty")." ".$langs->trans("or")." ".$langs->trans("EMail")."): ".$sall;
|
foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
|
||||||
|
print $langs->trans("FilterOnInto", $sall, join(', ',$fieldstosearchall));
|
||||||
}
|
}
|
||||||
if ($search_firstlast_only)
|
if ($search_firstlast_only)
|
||||||
{
|
{
|
||||||
print $langs->trans("Filter")." (".$langs->trans("Lastname").", ".$langs->trans("Firstname")."): ".$search_firstlast_only;
|
print $langs->trans("FilterOnInto", $search_firstlast_only, $langs->trans("Lastname").", ".$langs->trans("Firstname"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! empty($conf->categorie->enabled))
|
if (! empty($conf->categorie->enabled))
|
||||||
|
|||||||
@ -237,6 +237,7 @@ if (empty($reshook))
|
|||||||
$object->fk_project = GETPOST('projectid','int');
|
$object->fk_project = GETPOST('projectid','int');
|
||||||
$object->remise_percent = GETPOST('remise_percent','alpha');
|
$object->remise_percent = GETPOST('remise_percent','alpha');
|
||||||
$object->ref = GETPOST('ref','alpha');
|
$object->ref = GETPOST('ref','alpha');
|
||||||
|
$object->ref_customer = GETPOST('ref_customer','alpha');
|
||||||
$object->ref_supplier = GETPOST('ref_supplier','alpha');
|
$object->ref_supplier = GETPOST('ref_supplier','alpha');
|
||||||
|
|
||||||
// If creation from another object of another module (Example: origin=propal, originid=1)
|
// If creation from another object of another module (Example: origin=propal, originid=1)
|
||||||
@ -747,7 +748,9 @@ if (empty($reshook))
|
|||||||
{
|
{
|
||||||
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("RefNewContract")),'errors');
|
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("RefNewContract")),'errors');
|
||||||
}
|
}
|
||||||
} else if ($action == 'update_extras') {
|
}
|
||||||
|
else if ($action == 'update_extras')
|
||||||
|
{
|
||||||
// Fill array 'array_options' with data from update form
|
// Fill array 'array_options' with data from update form
|
||||||
$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
|
$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
|
||||||
$ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute'));
|
$ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute'));
|
||||||
@ -767,9 +770,10 @@ if (empty($reshook))
|
|||||||
$action = 'edit_extras';
|
$action = 'edit_extras';
|
||||||
setEventMessage($object->error,'errors');
|
setEventMessage($object->error,'errors');
|
||||||
}
|
}
|
||||||
} elseif ($action=='setref_supplier') {
|
}
|
||||||
|
elseif ($action=='setref_supplier')
|
||||||
|
{
|
||||||
$cancelbutton = GETPOST('cancel');
|
$cancelbutton = GETPOST('cancel');
|
||||||
|
|
||||||
if (!$cancelbutton) {
|
if (!$cancelbutton) {
|
||||||
|
|
||||||
$result = $object->fetch($id);
|
$result = $object->fetch($id);
|
||||||
@ -790,7 +794,34 @@ if (empty($reshook))
|
|||||||
header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $id);
|
header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $id);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
} elseif ($action=='setref') {
|
}
|
||||||
|
elseif ($action=='setref_customer')
|
||||||
|
{
|
||||||
|
$cancelbutton = GETPOST('cancel');
|
||||||
|
|
||||||
|
if (!$cancelbutton)
|
||||||
|
{
|
||||||
|
$result = $object->fetch($id);
|
||||||
|
if ($result < 0) {
|
||||||
|
setEventMessage($object->errors, 'errors');
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = $object->setValueFrom('ref_customer',GETPOST('ref_customer','alpha'));
|
||||||
|
if ($result < 0) {
|
||||||
|
setEventMessage($object->errors, 'errors');
|
||||||
|
$action = 'editref_customer';
|
||||||
|
} else {
|
||||||
|
header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $id);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif ($action=='setref')
|
||||||
|
{
|
||||||
$cancelbutton = GETPOST('cancel');
|
$cancelbutton = GETPOST('cancel');
|
||||||
|
|
||||||
if (!$cancelbutton) {
|
if (!$cancelbutton) {
|
||||||
@ -1001,14 +1032,18 @@ if ($action == 'create')
|
|||||||
}
|
}
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans('Ref').'</td><td colspan="2">'.$tmpcode.'</td></tr>';
|
print '<tr><td class="fieldrequired">'.$langs->trans('Ref').'</td><td colspan="2">'.$tmpcode.'</td></tr>';
|
||||||
|
|
||||||
|
// Ref customer
|
||||||
|
print '<tr><td>'.$langs->trans('RefCustomer').'</td>';
|
||||||
|
print '<td colspan="2"><input type="text" size="5" name="ref_customer" id="ref_customer" value="'.GETPOST('ref_customer','alpha').'"></td></tr>';
|
||||||
|
|
||||||
// Ref supplier
|
// Ref supplier
|
||||||
print '<tr><td>'.$langs->trans('RefSupplier').'</td>';
|
print '<tr><td>'.$langs->trans('RefSupplier').'</td>';
|
||||||
print '<td colspan="2"><input type="text" size="5" name="ref_supplier" id="ref_supplier" value="'.GETPOST('ref_supplier','alpha').'"></td></tr>';
|
print '<td colspan="2"><input type="text" size="5" name="ref_supplier" id="ref_supplier" value="'.GETPOST('ref_supplier','alpha').'"></td></tr>';
|
||||||
|
|
||||||
// Customer
|
// Thirdparty
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td class="fieldrequired">'.$langs->trans('Customer').'</td>';
|
print '<td class="fieldrequired">'.$langs->trans('Thirdparty').'</td>';
|
||||||
if($socid>0)
|
if ($socid>0)
|
||||||
{
|
{
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
print $soc->getNomUrl(1);
|
print $soc->getNomUrl(1);
|
||||||
@ -1018,7 +1053,7 @@ if ($action == 'create')
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
print $form->select_company('','socid','s.client = 1 OR s.client = 3',1);
|
print $form->select_company('','socid','',1);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
print '</tr>'."\n";
|
print '</tr>'."\n";
|
||||||
@ -1206,6 +1241,14 @@ else
|
|||||||
}
|
}
|
||||||
|
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
|
print '<td width="20%">';
|
||||||
|
print $form->editfieldkey("RefCustomer",'ref_customer',$object->ref_customer,$object,$user->rights->contrat->creer);
|
||||||
|
print '</td><td>';
|
||||||
|
print $form->editfieldval("RefCustomer",'ref_customer',$object->ref_customer,$object,$user->rights->contrat->creer);
|
||||||
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
print '<tr>';
|
||||||
print '<td width="20%">';
|
print '<td width="20%">';
|
||||||
print $form->editfieldkey("RefSupplier",'ref_supplier',$object->ref_supplier,$object,$user->rights->contrat->creer);
|
print $form->editfieldkey("RefSupplier",'ref_supplier',$object->ref_supplier,$object,$user->rights->contrat->creer);
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
@ -1592,7 +1635,7 @@ else
|
|||||||
'text' => $langs->trans("ConfirmMoveToAnotherContractQuestion"),
|
'text' => $langs->trans("ConfirmMoveToAnotherContractQuestion"),
|
||||||
array('type' => 'select', 'name' => 'newcid', 'values' => $arraycontractid));
|
array('type' => 'select', 'name' => 'newcid', 'values' => $arraycontractid));
|
||||||
|
|
||||||
$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$object->id."&lineid=".GETPOST('rowid'),$langs->trans("MoveToAnotherContract"),$langs->trans("ConfirmMoveToAnotherContract"),"confirm_move",$formquestion);
|
$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$object->id."&lineid=".GETPOST('rowid'),$langs->trans("MoveToAnotherContract"),$langs->trans("ConfirmMoveToAnotherContract"),"confirm_move",$formquestion);
|
||||||
print '<table class="notopnoleftnoright" width="100%"><tr '.$bc[$var].' height="6"><td></td></tr></table>';
|
print '<table class="notopnoleftnoright" width="100%"><tr '.$bc[$var].' height="6"><td></td></tr></table>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1604,7 +1647,7 @@ else
|
|||||||
$dateactstart = dol_mktime(12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear'));
|
$dateactstart = dol_mktime(12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear'));
|
||||||
$dateactend = dol_mktime(12, 0, 0, GETPOST('endmonth'), GETPOST('endday'), GETPOST('endyear'));
|
$dateactend = dol_mktime(12, 0, 0, GETPOST('endmonth'), GETPOST('endday'), GETPOST('endyear'));
|
||||||
$comment = GETPOST('comment');
|
$comment = GETPOST('comment');
|
||||||
$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$object->id."&ligne=".GETPOST('ligne')."&date=".$dateactstart."&dateend=".$dateactend."&comment=".urlencode($comment),$langs->trans("ActivateService"),$langs->trans("ConfirmActivateService",dol_print_date($dateactstart,"%A %d %B %Y")),"confirm_active", '', 0, 1);
|
$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$object->id."&ligne=".GETPOST('ligne')."&date=".$dateactstart."&dateend=".$dateactend."&comment=".urlencode($comment),$langs->trans("ActivateService"),$langs->trans("ConfirmActivateService",dol_print_date($dateactstart,"%A %d %B %Y")),"confirm_active", '', 0, 1);
|
||||||
print '<table class="notopnoleftnoright" width="100%"><tr '.$bc[$var].' height="6"><td></td></tr></table>';
|
print '<table class="notopnoleftnoright" width="100%"><tr '.$bc[$var].' height="6"><td></td></tr></table>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1616,7 +1659,7 @@ else
|
|||||||
$dateactstart = dol_mktime(12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear'));
|
$dateactstart = dol_mktime(12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear'));
|
||||||
$dateactend = dol_mktime(12, 0, 0, GETPOST('endmonth'), GETPOST('endday'), GETPOST('endyear'));
|
$dateactend = dol_mktime(12, 0, 0, GETPOST('endmonth'), GETPOST('endday'), GETPOST('endyear'));
|
||||||
$comment = GETPOST('comment');
|
$comment = GETPOST('comment');
|
||||||
$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$object->id."&ligne=".GETPOST('ligne')."&date=".$dateactstart."&dateend=".$dateactend."&comment=".urlencode($comment), $langs->trans("CloseService"), $langs->trans("ConfirmCloseService",dol_print_date($dateactend,"%A %d %B %Y")), "confirm_closeline", '', 0, 1);
|
$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$object->id."&ligne=".GETPOST('ligne')."&date=".$dateactstart."&dateend=".$dateactend."&comment=".urlencode($comment), $langs->trans("CloseService"), $langs->trans("ConfirmCloseService",dol_print_date($dateactend,"%A %d %B %Y")), "confirm_closeline", '', 0, 1);
|
||||||
print '<table class="notopnoleftnoright" width="100%"><tr '.$bc[$var].' height="6"><td></td></tr></table>';
|
print '<table class="notopnoleftnoright" width="100%"><tr '.$bc[$var].' height="6"><td></td></tr></table>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -50,6 +50,12 @@ class Contrat extends CommonObject
|
|||||||
*/
|
*/
|
||||||
protected $table_ref_field = 'ref';
|
protected $table_ref_field = 'ref';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Customer reference of the contract
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
var $ref_customer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Supplier reference of the contract
|
* Supplier reference of the contract
|
||||||
* @var string
|
* @var string
|
||||||
@ -476,13 +482,13 @@ class Contrat extends CommonObject
|
|||||||
function fetch($id,$ref='')
|
function fetch($id,$ref='')
|
||||||
{
|
{
|
||||||
$sql = "SELECT rowid, statut, ref, fk_soc, mise_en_service as datemise,";
|
$sql = "SELECT rowid, statut, ref, fk_soc, mise_en_service as datemise,";
|
||||||
|
$sql.= " ref_supplier, ref_customer,";
|
||||||
|
$sql.= " ref_ext,";
|
||||||
$sql.= " fk_user_mise_en_service, date_contrat as datecontrat,";
|
$sql.= " fk_user_mise_en_service, date_contrat as datecontrat,";
|
||||||
$sql.= " fk_user_author,";
|
$sql.= " fk_user_author,";
|
||||||
$sql.= " fk_projet,";
|
$sql.= " fk_projet,";
|
||||||
$sql.= " fk_commercial_signature, fk_commercial_suivi,";
|
$sql.= " fk_commercial_signature, fk_commercial_suivi,";
|
||||||
$sql.= " note_private, note_public, model_pdf, extraparams";
|
$sql.= " note_private, note_public, model_pdf, extraparams";
|
||||||
$sql.= " ,ref_supplier";
|
|
||||||
$sql.= " ,ref_ext";
|
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."contrat";
|
$sql.= " FROM ".MAIN_DB_PREFIX."contrat";
|
||||||
if ($ref)
|
if ($ref)
|
||||||
{
|
{
|
||||||
@ -501,6 +507,7 @@ class Contrat extends CommonObject
|
|||||||
{
|
{
|
||||||
$this->id = $result["rowid"];
|
$this->id = $result["rowid"];
|
||||||
$this->ref = (!isset($result["ref"]) || !$result["ref"]) ? $result["rowid"] : $result["ref"];
|
$this->ref = (!isset($result["ref"]) || !$result["ref"]) ? $result["rowid"] : $result["ref"];
|
||||||
|
$this->ref_customer = $result["ref_customer"];
|
||||||
$this->ref_supplier = $result["ref_supplier"];
|
$this->ref_supplier = $result["ref_supplier"];
|
||||||
$this->ref_ext = $result["ref_ext"];
|
$this->ref_ext = $result["ref_ext"];
|
||||||
$this->statut = $result["statut"];
|
$this->statut = $result["statut"];
|
||||||
@ -839,7 +846,7 @@ class Contrat extends CommonObject
|
|||||||
// Insert contract
|
// Insert contract
|
||||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."contrat (datec, fk_soc, fk_user_author, date_contrat,";
|
$sql = "INSERT INTO ".MAIN_DB_PREFIX."contrat (datec, fk_soc, fk_user_author, date_contrat,";
|
||||||
$sql.= " fk_commercial_signature, fk_commercial_suivi, fk_projet,";
|
$sql.= " fk_commercial_signature, fk_commercial_suivi, fk_projet,";
|
||||||
$sql.= " ref, entity, note_private, note_public, ref_supplier, ref_ext)";
|
$sql.= " ref, entity, note_private, note_public, ref_customer, ref_supplier, ref_ext)";
|
||||||
$sql.= " VALUES ('".$this->db->idate($now)."',".$this->socid.",".$user->id;
|
$sql.= " VALUES ('".$this->db->idate($now)."',".$this->socid.",".$user->id;
|
||||||
$sql.= ", '".$this->db->idate($this->date_contrat)."'";
|
$sql.= ", '".$this->db->idate($this->date_contrat)."'";
|
||||||
$sql.= ",".($this->commercial_signature_id>0?$this->commercial_signature_id:"NULL");
|
$sql.= ",".($this->commercial_signature_id>0?$this->commercial_signature_id:"NULL");
|
||||||
@ -849,6 +856,7 @@ class Contrat extends CommonObject
|
|||||||
$sql.= ", ".$conf->entity;
|
$sql.= ", ".$conf->entity;
|
||||||
$sql.= ", ".(!empty($this->note_private)?("'".$this->db->escape($this->note_private)."'"):"NULL");
|
$sql.= ", ".(!empty($this->note_private)?("'".$this->db->escape($this->note_private)."'"):"NULL");
|
||||||
$sql.= ", ".(!empty($this->note_public)?("'".$this->db->escape($this->note_public)."'"):"NULL");
|
$sql.= ", ".(!empty($this->note_public)?("'".$this->db->escape($this->note_public)."'"):"NULL");
|
||||||
|
$sql.= ", ".(!empty($this->ref_customer)?("'".$this->db->escape($this->ref_customer)."'"):"NULL");
|
||||||
$sql.= ", ".(!empty($this->ref_supplier)?("'".$this->db->escape($this->ref_supplier)."'"):"NULL");
|
$sql.= ", ".(!empty($this->ref_supplier)?("'".$this->db->escape($this->ref_supplier)."'"):"NULL");
|
||||||
$sql.= ", ".(!empty($this->ref_ext)?("'".$this->db->escape($this->ref_ext)."'"):"NULL");
|
$sql.= ", ".(!empty($this->ref_ext)?("'".$this->db->escape($this->ref_ext)."'"):"NULL");
|
||||||
$sql.= ")";
|
$sql.= ")";
|
||||||
@ -1101,6 +1109,7 @@ class Contrat extends CommonObject
|
|||||||
// Clean parameters
|
// Clean parameters
|
||||||
|
|
||||||
if (isset($this->ref)) $this->ref=trim($this->ref);
|
if (isset($this->ref)) $this->ref=trim($this->ref);
|
||||||
|
if (isset($this->ref_customer)) $this->ref_customer=trim($this->ref_customer);
|
||||||
if (isset($this->ref_supplier)) $this->ref_supplier=trim($this->ref_supplier);
|
if (isset($this->ref_supplier)) $this->ref_supplier=trim($this->ref_supplier);
|
||||||
if (isset($this->ref_ext)) $this->ref_ext=trim($this->ref_ext);
|
if (isset($this->ref_ext)) $this->ref_ext=trim($this->ref_ext);
|
||||||
if (isset($this->entity)) $this->entity=trim($this->entity);
|
if (isset($this->entity)) $this->entity=trim($this->entity);
|
||||||
@ -1125,6 +1134,7 @@ class Contrat extends CommonObject
|
|||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."contrat SET";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."contrat SET";
|
||||||
|
|
||||||
$sql.= " ref=".(isset($this->ref)?"'".$this->db->escape($this->ref)."'":"null").",";
|
$sql.= " ref=".(isset($this->ref)?"'".$this->db->escape($this->ref)."'":"null").",";
|
||||||
|
$sql.= " ref_customer=".(isset($this->ref_customer)?"'".$this->db->escape($this->ref_customer)."'":"null").",";
|
||||||
$sql.= " ref_supplier=".(isset($this->ref_supplier)?"'".$this->db->escape($this->ref_supplier)."'":"null").",";
|
$sql.= " ref_supplier=".(isset($this->ref_supplier)?"'".$this->db->escape($this->ref_supplier)."'":"null").",";
|
||||||
$sql.= " ref_ext=".(isset($this->ref_ext)?"'".$this->db->escape($this->ref_ext)."'":"null").",";
|
$sql.= " ref_ext=".(isset($this->ref_ext)?"'".$this->db->escape($this->ref_ext)."'":"null").",";
|
||||||
$sql.= " entity=".$conf->entity.",";
|
$sql.= " entity=".$conf->entity.",";
|
||||||
@ -2024,6 +2034,8 @@ class Contrat extends CommonObject
|
|||||||
$this->specimen=1;
|
$this->specimen=1;
|
||||||
|
|
||||||
$this->ref = 'SPECIMEN';
|
$this->ref = 'SPECIMEN';
|
||||||
|
$this->ref_customer = 'SPECIMENCUST';
|
||||||
|
$this->ref_supplier = 'SPECIMENSUPP';
|
||||||
$this->socid = 1;
|
$this->socid = 1;
|
||||||
$this->statut= 0;
|
$this->statut= 0;
|
||||||
$this->date_contrat = dol_now();
|
$this->date_contrat = dol_now();
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
|
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
|
||||||
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
|
* Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
|
||||||
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -80,6 +80,17 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
|
|||||||
|
|
||||||
if ($search_status == '') $search_status=1;
|
if ($search_status == '') $search_status=1;
|
||||||
|
|
||||||
|
// List of fields to search into when doing a "search in all"
|
||||||
|
$fieldstosearchall = array(
|
||||||
|
'c.ref'=>'Ref',
|
||||||
|
'c.ref_customer'=>'RefCustomer',
|
||||||
|
'c.ref_supplier'=>'RefSupplier',
|
||||||
|
's.nom'=>"ThirdParty",
|
||||||
|
'cd.description'=>'Description',
|
||||||
|
'c.note_public'=>'NotePublic',
|
||||||
|
);
|
||||||
|
if (empty($user->socid)) $fieldstosearchall["c.note_private"]="NotePrivate";
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
@ -93,7 +104,7 @@ $socstatic = new Societe($db);
|
|||||||
llxHeader();
|
llxHeader();
|
||||||
|
|
||||||
$sql = 'SELECT';
|
$sql = 'SELECT';
|
||||||
$sql.= " c.rowid as cid, c.ref, c.datec, c.date_contrat, c.statut, c.ref_supplier,";
|
$sql.= " c.rowid as cid, c.ref, c.datec, c.date_contrat, c.statut, c.ref_customer, c.ref_supplier,";
|
||||||
$sql.= " s.nom as name, s.rowid as socid,";
|
$sql.= " s.nom as name, s.rowid as socid,";
|
||||||
$sql.= ' SUM('.$db->ifsql("cd.statut=0",1,0).') as nb_initial,';
|
$sql.= ' SUM('.$db->ifsql("cd.statut=0",1,0).') as nb_initial,';
|
||||||
$sql.= ' SUM('.$db->ifsql("cd.statut=4 AND (cd.date_fin_validite IS NULL OR cd.date_fin_validite >= '".$db->idate($now)."')",1,0).') as nb_running,';
|
$sql.= ' SUM('.$db->ifsql("cd.statut=4 AND (cd.date_fin_validite IS NULL OR cd.date_fin_validite >= '".$db->idate($now)."')",1,0).') as nb_running,';
|
||||||
@ -132,7 +143,7 @@ if ($search_sale > 0)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($sall) {
|
if ($sall) {
|
||||||
$sql .= natural_search(array('s.nom', 'cd.label', 'cd.description'), $sall);
|
$sql .= natural_search(array_keys($fieldstosearchall), $sall);
|
||||||
}
|
}
|
||||||
if ($search_user > 0) $sql.= " AND ec.fk_c_type_contact = tc.rowid AND tc.element='contrat' AND tc.source='internal' AND ec.element_id = c.rowid AND ec.fk_socpeople = ".$search_user;
|
if ($search_user > 0) $sql.= " AND ec.fk_c_type_contact = tc.rowid AND tc.element='contrat' AND tc.source='internal' AND ec.element_id = c.rowid AND ec.fk_socpeople = ".$search_user;
|
||||||
$sql.= " GROUP BY c.rowid, c.ref, c.datec, c.date_contrat, c.statut, c.ref_supplier, s.nom, s.rowid";
|
$sql.= " GROUP BY c.rowid, c.ref, c.datec, c.date_contrat, c.statut, c.ref_supplier, s.nom, s.rowid";
|
||||||
@ -149,7 +160,17 @@ if ($resql)
|
|||||||
|
|
||||||
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
|
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="action" value="list">';
|
||||||
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
|
||||||
|
if ($sall)
|
||||||
|
{
|
||||||
|
foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
|
||||||
|
print $langs->trans("FilterOnInto", $sall, join(', ',$fieldstosearchall));
|
||||||
|
}
|
||||||
|
|
||||||
// If the user can view prospects other than his'
|
// If the user can view prospects other than his'
|
||||||
$moreforfilter='';
|
$moreforfilter='';
|
||||||
if ($user->rights->societe->client->voir || $socid)
|
if ($user->rights->societe->client->voir || $socid)
|
||||||
@ -199,8 +220,9 @@ if ($resql)
|
|||||||
if ($optioncss != '') $param.='&optioncss='.$optioncss;
|
if ($optioncss != '') $param.='&optioncss='.$optioncss;
|
||||||
|
|
||||||
print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "c.rowid","","$param",'',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "c.rowid","","$param",'',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("RefCustomer"), $_SERVER["PHP_SELF"], "c.ref_supplier","","$param",'',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("RefCustomer"), $_SERVER["PHP_SELF"], "c.ref_customer","","$param",'',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("Company"), $_SERVER["PHP_SELF"], "s.nom","","$param",'',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("RefSupplier"), $_SERVER["PHP_SELF"], "c.ref_supplier","","$param",'',$sortfield,$sortorder);
|
||||||
|
print_liste_field_titre($langs->trans("ThirdParty"), $_SERVER["PHP_SELF"], "s.nom","","$param",'',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("SalesRepresentative"), $_SERVER["PHP_SELF"], "","","$param",'',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("SalesRepresentative"), $_SERVER["PHP_SELF"], "","","$param",'',$sortfield,$sortorder);
|
||||||
//print_liste_field_titre($langs->trans("DateCreation"), $_SERVER["PHP_SELF"], "c.datec","","$param",'align="center"',$sortfield,$sortorder);
|
//print_liste_field_titre($langs->trans("DateCreation"), $_SERVER["PHP_SELF"], "c.datec","","$param",'align="center"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("DateContract"), $_SERVER["PHP_SELF"], "c.date_contrat","","$param",'align="center"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("DateContract"), $_SERVER["PHP_SELF"], "c.date_contrat","","$param",'align="center"',$sortfield,$sortorder);
|
||||||
@ -218,10 +240,13 @@ if ($resql)
|
|||||||
print '<input type="text" class="flat" size="3" name="search_contract" value="'.dol_escape_htmltag($search_contract).'">';
|
print '<input type="text" class="flat" size="3" name="search_contract" value="'.dol_escape_htmltag($search_contract).'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
print '<input type="text" class="flat" size="7" name="search_ref_supplier value="'.dol_escape_htmltag($search_ref_supplier).'">';
|
print '<input type="text" class="flat" size="6" name="search_ref_customer value="'.dol_escape_htmltag($search_ref_supplier).'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
print '<input type="text" class="flat" size="24" name="search_name" value="'.dol_escape_htmltag($search_name).'">';
|
print '<input type="text" class="flat" size="6" name="search_ref_supplier value="'.dol_escape_htmltag($search_ref_supplier).'">';
|
||||||
|
print '</td>';
|
||||||
|
print '<td class="liste_titre">';
|
||||||
|
print '<input type="text" class="flat" size="12" name="search_name" value="'.dol_escape_htmltag($search_name).'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="liste_titre"> </td>';
|
print '<td class="liste_titre"> </td>';
|
||||||
//print '<td class="liste_titre"> </td>';
|
//print '<td class="liste_titre"> </td>';
|
||||||
@ -240,6 +265,7 @@ if ($resql)
|
|||||||
print img_object($langs->trans("ShowContract"),"contract").' '.(isset($obj->ref) ? $obj->ref : $obj->cid) .'</a>';
|
print img_object($langs->trans("ShowContract"),"contract").' '.(isset($obj->ref) ? $obj->ref : $obj->cid) .'</a>';
|
||||||
if ($obj->nb_late) print img_warning($langs->trans("Late"));
|
if ($obj->nb_late) print img_warning($langs->trans("Late"));
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
print '<td>'.$obj->ref_customer.'</td>';
|
||||||
print '<td>'.$obj->ref_supplier.'</td>';
|
print '<td>'.$obj->ref_supplier.'</td>';
|
||||||
print '<td><a href="../comm/card.php?socid='.$obj->socid.'">'.img_object($langs->trans("ShowCompany"),"company").' '.$obj->name.'</a></td>';
|
print '<td><a href="../comm/card.php?socid='.$obj->socid.'">'.img_object($langs->trans("ShowCompany"),"company").' '.$obj->name.'</a></td>';
|
||||||
//print '<td align="center">'.dol_print_date($obj->datec).'</td>';
|
//print '<td align="center">'.dol_print_date($obj->datec).'</td>';
|
||||||
|
|||||||
@ -3238,7 +3238,7 @@ class Form
|
|||||||
$formconfirm.= ($question ? '<div class="confirmmessage">'.img_help('','').' '.$question . '</div>': '');
|
$formconfirm.= ($question ? '<div class="confirmmessage">'.img_help('','').' '.$question . '</div>': '');
|
||||||
$formconfirm.= '</div>'."\n";
|
$formconfirm.= '</div>'."\n";
|
||||||
|
|
||||||
$formconfirm.= "\n<!-- begin ajax formconfirm page=".$page." -->\n";
|
$formconfirm.= "\n<!-- begin ajax form_confirm page=".$page." -->\n";
|
||||||
$formconfirm.= '<script type="text/javascript">'."\n";
|
$formconfirm.= '<script type="text/javascript">'."\n";
|
||||||
$formconfirm.= 'jQuery(document).ready(function() {
|
$formconfirm.= 'jQuery(document).ready(function() {
|
||||||
$(function() {
|
$(function() {
|
||||||
@ -3309,11 +3309,11 @@ class Form
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>';
|
</script>';
|
||||||
$formconfirm.= "<!-- end ajax formconfirm -->\n";
|
$formconfirm.= "<!-- end ajax form_confirm -->\n";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$formconfirm.= "\n<!-- begin formconfirm page=".$page." -->\n";
|
$formconfirm.= "\n<!-- begin form_confirm page=".$page." -->\n";
|
||||||
|
|
||||||
$formconfirm.= '<form method="POST" action="'.$page.'" class="notoptoleftroright">'."\n";
|
$formconfirm.= '<form method="POST" action="'.$page.'" class="notoptoleftroright">'."\n";
|
||||||
$formconfirm.= '<input type="hidden" name="action" value="'.$action.'">'."\n";
|
$formconfirm.= '<input type="hidden" name="action" value="'.$action.'">'."\n";
|
||||||
@ -3346,7 +3346,7 @@ class Form
|
|||||||
$formconfirm.= "</form>\n";
|
$formconfirm.= "</form>\n";
|
||||||
$formconfirm.= '<br>';
|
$formconfirm.= '<br>';
|
||||||
|
|
||||||
$formconfirm.= "<!-- end formconfirm -->\n";
|
$formconfirm.= "<!-- end form_confirm -->\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
return $formconfirm;
|
return $formconfirm;
|
||||||
@ -5265,9 +5265,9 @@ class Form
|
|||||||
$dir=$conf->societe->multidir_output[$entity];
|
$dir=$conf->societe->multidir_output[$entity];
|
||||||
$smallfile=$object->logo;
|
$smallfile=$object->logo;
|
||||||
$smallfile=preg_replace('/(\.png|\.gif|\.jpg|\.jpeg|\.bmp)/i','_small\\1',$smallfile);
|
$smallfile=preg_replace('/(\.png|\.gif|\.jpg|\.jpeg|\.bmp)/i','_small\\1',$smallfile);
|
||||||
if ($object->logo) $file=$id.'/logos/thumbs/'.$smallfile;
|
if (! empty($object->logo)) $file=$id.'/logos/thumbs/'.$smallfile;
|
||||||
}
|
}
|
||||||
if ($modulepart=='contact')
|
else if ($modulepart=='contact')
|
||||||
{
|
{
|
||||||
$dir=$conf->societe->multidir_output[$entity].'/contact';
|
$dir=$conf->societe->multidir_output[$entity].'/contact';
|
||||||
$file=$id.'/photos/'.$object->photo;
|
$file=$id.'/photos/'.$object->photo;
|
||||||
@ -5275,19 +5275,19 @@ class Form
|
|||||||
else if ($modulepart=='userphoto')
|
else if ($modulepart=='userphoto')
|
||||||
{
|
{
|
||||||
$dir=$conf->user->dir_output;
|
$dir=$conf->user->dir_output;
|
||||||
if ($object->photo) $file=get_exdir($id, 2, 0, 0, $object, 'user').$object->photo;
|
if (! empty($object->photo)) $file=get_exdir($id, 2, 0, 0, $object, 'user').$object->photo;
|
||||||
if (! empty($conf->global->MAIN_OLD_IMAGE_LINKS)) $altfile=$object->id.".jpg"; // For backward compatibility
|
if (! empty($conf->global->MAIN_OLD_IMAGE_LINKS)) $altfile=$object->id.".jpg"; // For backward compatibility
|
||||||
$email=$object->email;
|
$email=$object->email;
|
||||||
}
|
}
|
||||||
else if ($modulepart=='memberphoto')
|
else if ($modulepart=='memberphoto')
|
||||||
{
|
{
|
||||||
$dir=$conf->adherent->dir_output;
|
$dir=$conf->adherent->dir_output;
|
||||||
if ($object->photo) $file=get_exdir($id, 2, 0, 0, $object, 'invoice_supplier').'photos/'.$object->photo;
|
if (! empty($object->photo)) $file=get_exdir($id, 2, 0, 0, $object, 'invoice_supplier').'photos/'.$object->photo;
|
||||||
if (! empty($conf->global->MAIN_OLD_IMAGE_LINKS)) $altfile=$object->id.".jpg"; // For backward compatibility
|
if (! empty($conf->global->MAIN_OLD_IMAGE_LINKS)) $altfile=$object->id.".jpg"; // For backward compatibility
|
||||||
$email=$object->email;
|
$email=$object->email;
|
||||||
} else {
|
} else {
|
||||||
$dir=$conf->$modulepart->dir_output;
|
$dir=$conf->$modulepart->dir_output;
|
||||||
if ($object->photo) $file=get_exdir($id, 2, 0, 0, $adherent, 'member').'photos/'.$object->photo;
|
if (! empty($object->photo)) $file=get_exdir($id, 2, 0, 0, $object, 'member').'photos/'.$object->photo;
|
||||||
if (! empty($conf->global->MAIN_OLD_IMAGE_LINKS)) $altfile=$object->id.".jpg"; // For backward compatibility
|
if (! empty($conf->global->MAIN_OLD_IMAGE_LINKS)) $altfile=$object->id.".jpg"; // For backward compatibility
|
||||||
$email=$object->email;
|
$email=$object->email;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -64,7 +64,69 @@ if (GETPOST('search_contract') != '')
|
|||||||
header("Location: ".DOL_URL_ROOT.'/contrat/list.php?sall='.urlencode(GETPOST('search_contract')));
|
header("Location: ".DOL_URL_ROOT.'/contrat/list.php?sall='.urlencode(GETPOST('search_contract')));
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
if (GETPOST('search_invoice') != '')
|
||||||
|
{
|
||||||
|
header("Location: ".DOL_URL_ROOT.'/compta/facture/list.php?sall='.urlencode(GETPOST('search_invoice')));
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
if (GETPOST('search_supplier_invoice') != '')
|
||||||
|
{
|
||||||
|
header("Location: ".DOL_URL_ROOT.'/fourn/facture/list.php?sall='.urlencode(GETPOST('search_supplier_invoice')));
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
if (GETPOST('search_donation') != '')
|
||||||
|
{
|
||||||
|
header("Location: ".DOL_URL_ROOT.'/don/list.php?sall='.urlencode(GETPOST('search_donation')));
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
if (GETPOST('search_product') != '')
|
||||||
|
{
|
||||||
|
header("Location: ".DOL_URL_ROOT.'/product/list.php?sall='.urlencode(GETPOST('search_product')));
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
if (GETPOST('search_thirdparty') != '')
|
||||||
|
{
|
||||||
|
header("Location: ".DOL_URL_ROOT.'/societe/list.php?mode=search&sall='.urlencode(GETPOST('search_thirdparty')));
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
if (GETPOST('search_contact') != '')
|
||||||
|
{
|
||||||
|
header("Location: ".DOL_URL_ROOT.'/contact/list.php?mode=search&sall='.urlencode(GETPOST('search_contact')));
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
if (GETPOST('search_deplacement') != '')
|
||||||
|
{
|
||||||
|
header("Location: ".DOL_URL_ROOT.'/compta/deplacement/list.php?mode=search&sall='.urlencode(GETPOST('search_deplacement')));
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
if (GETPOST('search_expensereport') != '')
|
||||||
|
{
|
||||||
|
header("Location: ".DOL_URL_ROOT.'/expensereport/list.php?mode=search&sall='.urlencode(GETPOST('search_expensereport')));
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
if (GETPOST('search_holiday') != '')
|
||||||
|
{
|
||||||
|
header("Location: ".DOL_URL_ROOT.'/holiday/list.php?mode=search&sall='.urlencode(GETPOST('search_holiday')));
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
if (GETPOST('search_member') != '')
|
||||||
|
{
|
||||||
|
header("Location: ".DOL_URL_ROOT.'/adherents/list.php?mode=search&sall='.urlencode(GETPOST('search_member')));
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
if (GETPOST('search_project') != '')
|
||||||
|
{
|
||||||
|
header("Location: ".DOL_URL_ROOT.'/projet/list.php?mode=search&search_all='.urlencode(GETPOST('search_project')));
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
if (GETPOST('search_task') != '')
|
||||||
|
{
|
||||||
|
header("Location: ".DOL_URL_ROOT.'/projet/tasks/index.php?mode=search&search_all='.urlencode(GETPOST('search_task')));
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// If we are here, search was called with no supported criteria
|
// If we are here, search was called with no supported criteria
|
||||||
if (! empty($_SERVER['HTTP_REFERER']))
|
if (! empty($_SERVER['HTTP_REFERER']))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -70,14 +70,14 @@ $searchform = '';
|
|||||||
if ((( ! empty($conf->societe->enabled) && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))) || ! empty($conf->fournisseur->enabled)) && ! empty($conf->global->MAIN_SEARCHFORM_SOCIETE) && $user->rights->societe->lire)
|
if ((( ! empty($conf->societe->enabled) && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))) || ! empty($conf->fournisseur->enabled)) && ! empty($conf->global->MAIN_SEARCHFORM_SOCIETE) && $user->rights->societe->lire)
|
||||||
{
|
{
|
||||||
$langs->load("companies");
|
$langs->load("companies");
|
||||||
$searchform.=printSearchForm(DOL_URL_ROOT.'/societe/list.php', DOL_URL_ROOT.'/societe/list.php', img_object('','company').' '.$langs->trans("ThirdParties"), 'soc', 'socname');
|
$searchform.=printSearchForm(DOL_URL_ROOT.'/societe/list.php', DOL_URL_ROOT.'/societe/list.php', img_object('','company').' '.$langs->trans("ThirdParties"), 'soc', 'sall', '', 'company');
|
||||||
$nbofsearch++;
|
$nbofsearch++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! empty($conf->societe->enabled) && ! empty($conf->global->MAIN_SEARCHFORM_CONTACT) && $user->rights->societe->lire)
|
if (! empty($conf->societe->enabled) && ! empty($conf->global->MAIN_SEARCHFORM_CONTACT) && $user->rights->societe->lire)
|
||||||
{
|
{
|
||||||
$langs->load("companies");
|
$langs->load("companies");
|
||||||
$searchform.=printSearchForm(DOL_URL_ROOT.'/contact/list.php', DOL_URL_ROOT.'/contact/list.php', img_object('','contact').' '.$langs->trans("Contacts"), 'contact', 'contactname');
|
$searchform.=printSearchForm(DOL_URL_ROOT.'/contact/list.php', DOL_URL_ROOT.'/contact/list.php', img_object('','contact').' '.$langs->trans("Contacts"), 'contact', 'sall', '', 'contact');
|
||||||
$nbofsearch++;
|
$nbofsearch++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,7 +85,7 @@ if (((! empty($conf->product->enabled) && $user->rights->produit->lire) || (! em
|
|||||||
&& ! empty($conf->global->MAIN_SEARCHFORM_PRODUITSERVICE))
|
&& ! empty($conf->global->MAIN_SEARCHFORM_PRODUITSERVICE))
|
||||||
{
|
{
|
||||||
$langs->load("products");
|
$langs->load("products");
|
||||||
$searchform.=printSearchForm(DOL_URL_ROOT.'/product/list.php', DOL_URL_ROOT.'/product/list.php', img_object('','product').' '.$langs->trans("Products")."/".$langs->trans("Services"), 'products', 'sall', '', 'sall'.rand(0,10));
|
$searchform.=printSearchForm(DOL_URL_ROOT.'/product/list.php', DOL_URL_ROOT.'/product/list.php', img_object('','product').' '.$langs->trans("Products")."/".$langs->trans("Services"), 'products', 'sall', '', 'product');
|
||||||
$nbofsearch++;
|
$nbofsearch++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,7 +100,7 @@ if (((! empty($conf->product->enabled) && $user->rights->produit->lire) || (! em
|
|||||||
if (! empty($conf->adherent->enabled) && ! empty($conf->global->MAIN_SEARCHFORM_ADHERENT) && $user->rights->adherent->lire)
|
if (! empty($conf->adherent->enabled) && ! empty($conf->global->MAIN_SEARCHFORM_ADHERENT) && $user->rights->adherent->lire)
|
||||||
{
|
{
|
||||||
$langs->load("members");
|
$langs->load("members");
|
||||||
$searchform.=printSearchForm(DOL_URL_ROOT.'/adherents/list.php', DOL_URL_ROOT.'/adherents/list.php', img_object('','user').' '.$langs->trans("Members"), 'member', 'sall', 'sall'.rand(0,10));
|
$searchform.=printSearchForm(DOL_URL_ROOT.'/adherents/list.php', DOL_URL_ROOT.'/adherents/list.php', img_object('','user').' '.$langs->trans("Members"), 'member', 'sall', '', 'member');
|
||||||
$nbofsearch++;
|
$nbofsearch++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -28,7 +28,7 @@ if (empty($relativepathwithnofile)) $relativepathwithnofile='';
|
|||||||
if ($action == 'delete')
|
if ($action == 'delete')
|
||||||
{
|
{
|
||||||
$langs->load("companies"); // Need for string DeleteFile+ConfirmDeleteFiles
|
$langs->load("companies"); // Need for string DeleteFile+ConfirmDeleteFiles
|
||||||
$ret = $form->formconfirm(
|
$ret = $form->form_confirm(
|
||||||
$_SERVER["PHP_SELF"] . '?id=' . $object->id . '&urlfile=' . urlencode(GETPOST("urlfile")) . '&linkid=' . GETPOST('linkid', 'int') . (empty($param)?'':$param),
|
$_SERVER["PHP_SELF"] . '?id=' . $object->id . '&urlfile=' . urlencode(GETPOST("urlfile")) . '&linkid=' . GETPOST('linkid', 'int') . (empty($param)?'':$param),
|
||||||
$langs->trans('DeleteFile'),
|
$langs->trans('DeleteFile'),
|
||||||
$langs->trans('ConfirmDeleteFile'),
|
$langs->trans('ConfirmDeleteFile'),
|
||||||
|
|||||||
@ -43,6 +43,7 @@ if (! $sortfield) $sortfield="d.datedon";
|
|||||||
$limit = $conf->liste_limit;
|
$limit = $conf->liste_limit;
|
||||||
|
|
||||||
$statut=isset($_GET["statut"])?$_GET["statut"]:"-1";
|
$statut=isset($_GET["statut"])?$_GET["statut"]:"-1";
|
||||||
|
$search_all=GETPOST('sall','alpha');
|
||||||
$search_ref=GETPOST('search_ref','alpha');
|
$search_ref=GETPOST('search_ref','alpha');
|
||||||
$search_company=GETPOST('search_company','alpha');
|
$search_company=GETPOST('search_company','alpha');
|
||||||
$search_name=GETPOST('search_name','alpha');
|
$search_name=GETPOST('search_name','alpha');
|
||||||
@ -51,14 +52,29 @@ $optioncss = GETPOST('optioncss','alpha');
|
|||||||
|
|
||||||
if (!$user->rights->don->lire) accessforbidden();
|
if (!$user->rights->don->lire) accessforbidden();
|
||||||
|
|
||||||
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
||||||
{
|
{
|
||||||
$search_ref="";
|
$search_all="";
|
||||||
|
$search_ref="";
|
||||||
$search_company="";
|
$search_company="";
|
||||||
$search_name="";
|
$search_name="";
|
||||||
$search_amount="";
|
$search_amount="";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
|
||||||
|
$hookmanager->initHooks(array('orderlist'));
|
||||||
|
|
||||||
|
|
||||||
|
// List of fields to search into when doing a "search in all"
|
||||||
|
$fieldstosearchall = array(
|
||||||
|
'd.rowid'=>'Id',
|
||||||
|
'd.ref'=>'Ref',
|
||||||
|
'd.lastname'=>'Lastname',
|
||||||
|
'd.firstname'=>'Firstname',
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
@ -83,6 +99,10 @@ if (trim($search_ref) != '')
|
|||||||
{
|
{
|
||||||
$sql.= ' AND d.rowid LIKE \'%'.$db->escape(trim($search_ref)) . '%\'';
|
$sql.= ' AND d.rowid LIKE \'%'.$db->escape(trim($search_ref)) . '%\'';
|
||||||
}
|
}
|
||||||
|
if (trim($search_all) != '')
|
||||||
|
{
|
||||||
|
$sql .= natural_search(array_keys($fieldstosearchall), $search_all);
|
||||||
|
}
|
||||||
if (trim($search_company) != '')
|
if (trim($search_company) != '')
|
||||||
{
|
{
|
||||||
$sql .= natural_search('d.societe', $search_company);
|
$sql .= natural_search('d.societe', $search_company);
|
||||||
@ -120,6 +140,18 @@ if ($resql)
|
|||||||
|
|
||||||
print '<form method="get" action="'.$_SERVER["PHP_SELF"].'">'."\n";
|
print '<form method="get" action="'.$_SERVER["PHP_SELF"].'">'."\n";
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="action" value="list">';
|
||||||
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
print '<input type="hidden" name="type" value="'.$type.'">';
|
||||||
|
|
||||||
|
if ($search_all)
|
||||||
|
{
|
||||||
|
foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
|
||||||
|
print $langs->trans("FilterOnInto", $search_all, join(', ',$fieldstosearchall));
|
||||||
|
}
|
||||||
|
|
||||||
print "<table class=\"noborder\" width=\"100%\">";
|
print "<table class=\"noborder\" width=\"100%\">";
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"d.rowid","", $param,"",$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"d.rowid","", $param,"",$sortfield,$sortorder);
|
||||||
|
|||||||
@ -1100,13 +1100,13 @@ if ($action == 'create')
|
|||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
print '<tbody>';
|
print '<tbody>';
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td>'.$langs->trans("DateStart").'</td>';
|
print '<td class="fieldrequired">'.$langs->trans("DateStart").'</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$form->select_date($date_start?$date_start:-1,'date_debut',0,0,0,'',1,1);
|
$form->select_date($date_start?$date_start:-1,'date_debut',0,0,0,'',1,1);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td>'.$langs->trans("DateEnd").'</td>';
|
print '<td class="fieldrequired">'.$langs->trans("DateEnd").'</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$form->select_date($date_end?$date_end:-1,'date_fin',0,0,0,'',1,1);
|
$form->select_date($date_end?$date_end:-1,'date_fin',0,0,0,'',1,1);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -1321,56 +1321,56 @@ else
|
|||||||
|
|
||||||
if ($action == 'save')
|
if ($action == 'save')
|
||||||
{
|
{
|
||||||
$ret=$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("SaveTrip"),$langs->trans("ConfirmSaveTrip"),"confirm_validate","","",1);
|
$ret=$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("SaveTrip"),$langs->trans("ConfirmSaveTrip"),"confirm_validate","","",1);
|
||||||
if ($ret == 'html') print '<br>';
|
if ($ret == 'html') print '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'save_from_refuse')
|
if ($action == 'save_from_refuse')
|
||||||
{
|
{
|
||||||
$ret=$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("SaveTrip"),$langs->trans("ConfirmSaveTrip"),"confirm_save_from_refuse","","",1);
|
$ret=$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("SaveTrip"),$langs->trans("ConfirmSaveTrip"),"confirm_save_from_refuse","","",1);
|
||||||
if ($ret == 'html') print '<br>';
|
if ($ret == 'html') print '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'delete')
|
if ($action == 'delete')
|
||||||
{
|
{
|
||||||
$ret=$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("DeleteTrip"),$langs->trans("ConfirmDeleteTrip"),"confirm_delete","","",1);
|
$ret=$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("DeleteTrip"),$langs->trans("ConfirmDeleteTrip"),"confirm_delete","","",1);
|
||||||
if ($ret == 'html') print '<br>';
|
if ($ret == 'html') print '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'validate')
|
if ($action == 'validate')
|
||||||
{
|
{
|
||||||
$ret=$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("ValideTrip"),$langs->trans("ConfirmValideTrip"),"confirm_approve","","",1);
|
$ret=$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("ValideTrip"),$langs->trans("ConfirmValideTrip"),"confirm_approve","","",1);
|
||||||
if ($ret == 'html') print '<br>';
|
if ($ret == 'html') print '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'paid')
|
if ($action == 'paid')
|
||||||
{
|
{
|
||||||
$ret=$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("PaidTrip"),$langs->trans("ConfirmPaidTrip"),"confirm_paid","","",1);
|
$ret=$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("PaidTrip"),$langs->trans("ConfirmPaidTrip"),"confirm_paid","","",1);
|
||||||
if ($ret == 'html') print '<br>';
|
if ($ret == 'html') print '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'cancel')
|
if ($action == 'cancel')
|
||||||
{
|
{
|
||||||
$array_input = array('text'=>$langs->trans("ConfirmCancelTrip"), array('type'=>"text",'label'=>$langs->trans("Comment"),'name'=>"detail_cancel",'size'=>"50",'value'=>""));
|
$array_input = array('text'=>$langs->trans("ConfirmCancelTrip"), array('type'=>"text",'label'=>$langs->trans("Comment"),'name'=>"detail_cancel",'size'=>"50",'value'=>""));
|
||||||
$ret=$form->formconfirm($_SEVER["PHP_SELF"]."?id=".$id,$langs->trans("Cancel"),"","confirm_cancel",$array_input,"",1);
|
$ret=$form->form_confirm($_SEVER["PHP_SELF"]."?id=".$id,$langs->trans("Cancel"),"","confirm_cancel",$array_input,"",1);
|
||||||
if ($ret == 'html') print '<br>';
|
if ($ret == 'html') print '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'brouillonner'):
|
if ($action == 'brouillonner'):
|
||||||
$ret=$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("BrouillonnerTrip"),$langs->trans("ConfirmBrouillonnerTrip"),"confirm_brouillonner","","",1);
|
$ret=$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("BrouillonnerTrip"),$langs->trans("ConfirmBrouillonnerTrip"),"confirm_brouillonner","","",1);
|
||||||
if ($ret == 'html') print '<br>';
|
if ($ret == 'html') print '<br>';
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
if ($action == 'refuse') // Deny
|
if ($action == 'refuse') // Deny
|
||||||
{
|
{
|
||||||
$array_input = array('text'=>$langs->trans("ConfirmRefuseTrip"), array('type'=>"text",'label'=>$langs->trans("Comment"),'name'=>"detail_refuse",'size'=>"50",'value'=>""));
|
$array_input = array('text'=>$langs->trans("ConfirmRefuseTrip"), array('type'=>"text",'label'=>$langs->trans("Comment"),'name'=>"detail_refuse",'size'=>"50",'value'=>""));
|
||||||
$ret=$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("Deny"),'',"confirm_refuse",$array_input,"yes",1);
|
$ret=$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("Deny"),'',"confirm_refuse",$array_input,"yes",1);
|
||||||
if ($ret == 'html') print '<br>';
|
if ($ret == 'html') print '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'delete_line')
|
if ($action == 'delete_line')
|
||||||
{
|
{
|
||||||
$ret=$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id."&rowid=".GETPOST('rowid'),$langs->trans("DeleteLine"),$langs->trans("ConfirmDeleteLine"),"confirm_delete_line",'','yes',1);
|
$ret=$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$id."&rowid=".GETPOST('rowid'),$langs->trans("DeleteLine"),$langs->trans("ConfirmDeleteLine"),"confirm_delete_line",'','yes',1);
|
||||||
if ($ret == 'html') print '<br>';
|
if ($ret == 'html') print '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -39,6 +39,7 @@ $socid = $_GET["socid"]?$_GET["socid"]:'';
|
|||||||
if ($user->societe_id) $socid=$user->societe_id;
|
if ($user->societe_id) $socid=$user->societe_id;
|
||||||
$result = restrictedArea($user, 'expensereport','','');
|
$result = restrictedArea($user, 'expensereport','','');
|
||||||
|
|
||||||
|
$sall = GETPOST('sall');
|
||||||
$search_ref = GETPOST('search_ref');
|
$search_ref = GETPOST('search_ref');
|
||||||
$search_user = GETPOST('search_user','int');
|
$search_user = GETPOST('search_user','int');
|
||||||
$search_amount_ht = GETPOST('search_amount_ht','alpha');
|
$search_amount_ht = GETPOST('search_amount_ht','alpha');
|
||||||
@ -66,6 +67,14 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
|
|||||||
if ($search_status == '') $search_status=-1;
|
if ($search_status == '') $search_status=-1;
|
||||||
if ($search_user == '') $search_user=-1;
|
if ($search_user == '') $search_user=-1;
|
||||||
|
|
||||||
|
// List of fields to search into when doing a "search in all"
|
||||||
|
$fieldstosearchall = array(
|
||||||
|
'd.ref'=>'Ref',
|
||||||
|
'u.lastname'=>'Lastname',
|
||||||
|
'u.firstname'=>"Firstname",
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
@ -101,6 +110,11 @@ $sql.= " FROM ".MAIN_DB_PREFIX."expensereport as d";
|
|||||||
$sql.= " INNER JOIN ".MAIN_DB_PREFIX."user as u ON d.fk_user_author = u.rowid";
|
$sql.= " INNER JOIN ".MAIN_DB_PREFIX."user as u ON d.fk_user_author = u.rowid";
|
||||||
$sql.= " WHERE d.entity = ".$conf->entity;
|
$sql.= " WHERE d.entity = ".$conf->entity;
|
||||||
|
|
||||||
|
// Search all
|
||||||
|
if (!empty($sall))
|
||||||
|
{
|
||||||
|
$sql.= natural_search(array_keys($fieldstosearchall), $sall);
|
||||||
|
}
|
||||||
// Ref
|
// Ref
|
||||||
if(!empty($search_ref)){
|
if(!empty($search_ref)){
|
||||||
$sql.= " AND d.ref LIKE '%".$db->escape($search_ref)."%'";
|
$sql.= " AND d.ref LIKE '%".$db->escape($search_ref)."%'";
|
||||||
@ -183,6 +197,16 @@ if ($resql)
|
|||||||
print_barre_liste($langs->trans("ListTripsAndExpenses"), $page, $_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords);
|
print_barre_liste($langs->trans("ListTripsAndExpenses"), $page, $_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords);
|
||||||
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">'."\n";
|
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">'."\n";
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="action" value="list">';
|
||||||
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
|
||||||
|
if ($sall)
|
||||||
|
{
|
||||||
|
foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
|
||||||
|
print $langs->trans("FilterOnInto", $sall, join(', ',$fieldstosearchall));
|
||||||
|
}
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print "<tr class=\"liste_titre\">";
|
print "<tr class=\"liste_titre\">";
|
||||||
|
|||||||
@ -211,7 +211,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
|
|||||||
// Show filter box
|
// Show filter box
|
||||||
print '<form name="stats" method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form name="stats" method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
print '<input type="hidden" name="mode" value="'.$mode.'">';
|
print '<input type="hidden" name="mode" value="'.$mode.'">';
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><td class="liste_titre" colspan="2">'.$langs->trans("Filter").'</td></tr>';
|
print '<tr class="liste_titre"><td class="liste_titre" colspan="2">'.$langs->trans("Filter").'</td></tr>';
|
||||||
// Company
|
// Company
|
||||||
/*
|
/*
|
||||||
@ -237,8 +237,8 @@ print '</table>';
|
|||||||
print '</form>';
|
print '</form>';
|
||||||
print '<br><br>';
|
print '<br><br>';
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr height="24">';
|
print '<tr class="liste_titre" height="24">';
|
||||||
print '<td align="center">'.$langs->trans("Year").'</td>';
|
print '<td align="center">'.$langs->trans("Year").'</td>';
|
||||||
print '<td align="center">'.$langs->trans("Number").'</td>';
|
print '<td align="center">'.$langs->trans("Number").'</td>';
|
||||||
print '<td align="center">'.$langs->trans("AmountTotal").'</td>';
|
print '<td align="center">'.$langs->trans("AmountTotal").'</td>';
|
||||||
|
|||||||
@ -108,13 +108,13 @@ dol_fiche_head('');
|
|||||||
|
|
||||||
if ($_GET["action"] == 'ndfTOaccount'):
|
if ($_GET["action"] == 'ndfTOaccount'):
|
||||||
$idTrip = $_GET['idTrip'];
|
$idTrip = $_GET['idTrip'];
|
||||||
$ret=$html->formconfirm($_SERVER["PHP_SELF"]."?idTrip=".$idTrip."&account=".$idAccount,$langs->trans("ndfToAccount"),$langs->trans("ConfirmNdfToAccount"),"confirm_ndf_to_account","","",1);
|
$ret=$html->form_confirm($_SERVER["PHP_SELF"]."?idTrip=".$idTrip."&account=".$idAccount,$langs->trans("ndfToAccount"),$langs->trans("ConfirmNdfToAccount"),"confirm_ndf_to_account","","",1);
|
||||||
if ($ret == 'html') print '<br />';
|
if ($ret == 'html') print '<br />';
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
if ($_GET["action"] == 'accountTOndf'):
|
if ($_GET["action"] == 'accountTOndf'):
|
||||||
$idTrip = $_GET['idTrip'];
|
$idTrip = $_GET['idTrip'];
|
||||||
$ret=$html->formconfirm($_SERVER["PHP_SELF"]."?idTrip=".$idTrip."&account=".$idAccount,$langs->trans("AccountToNdf"),$langs->trans("ConfirmAccountToNdf"),"confirm_account_to_ndf","","",1);
|
$ret=$html->form_confirm($_SERVER["PHP_SELF"]."?idTrip=".$idTrip."&account=".$idAccount,$langs->trans("AccountToNdf"),$langs->trans("ConfirmAccountToNdf"),"confirm_account_to_ndf","","",1);
|
||||||
if ($ret == 'html') print '<br />';
|
if ($ret == 'html') print '<br />';
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
@ -212,4 +212,4 @@ dol_fiche_end();
|
|||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|
||||||
$db->close();
|
$db->close();
|
||||||
@ -64,7 +64,7 @@ $search_status=GETPOST('search_status');
|
|||||||
$sall=GETPOST('sall');
|
$sall=GETPOST('sall');
|
||||||
$optioncss = GETPOST('optioncss','alpha');
|
$optioncss = GETPOST('optioncss','alpha');
|
||||||
|
|
||||||
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
||||||
{
|
{
|
||||||
$search_ref="";
|
$search_ref="";
|
||||||
$search_company="";
|
$search_company="";
|
||||||
@ -72,6 +72,17 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
|
|||||||
$search_status="";
|
$search_status="";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// List of fields to search into when doing a "search in all"
|
||||||
|
$fieldstosearchall = array(
|
||||||
|
'f.ref'=>'Ref',
|
||||||
|
's.nom'=>"ThirdParty",
|
||||||
|
'f.description'=>'Description',
|
||||||
|
'f.note_public'=>'NotePublic',
|
||||||
|
);
|
||||||
|
if (empty($user->socid)) $fieldstosearchall["f.note_private"]="NotePrivate";
|
||||||
|
if (! empty($conf->global->FICHINTER_DISABLE_DETAILS)) unset($fieldstosearchall['f.description']);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
@ -110,9 +121,7 @@ if (! $user->rights->societe->client->voir && empty($socid))
|
|||||||
if ($socid)
|
if ($socid)
|
||||||
$sql.= " AND s.rowid = " . $socid;
|
$sql.= " AND s.rowid = " . $socid;
|
||||||
if ($sall) {
|
if ($sall) {
|
||||||
$arraytosearch=array('f.ref', 'f.description', 's.nom');
|
$sql .= natural_search(array_keys($fieldstosearchall), $sall);
|
||||||
if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) $arraytosearch=array('f.ref', 'f.description', 's.nom', 'fd.description');
|
|
||||||
$sql .= natural_search($arraytosearch, $sall);
|
|
||||||
}
|
}
|
||||||
$sql.= $db->order($sortfield,$sortorder);
|
$sql.= $db->order($sortfield,$sortorder);
|
||||||
$sql.= $db->plimit($limit+1, $offset);
|
$sql.= $db->plimit($limit+1, $offset);
|
||||||
@ -135,11 +144,22 @@ if ($result)
|
|||||||
|
|
||||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">'."\n";
|
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">'."\n";
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="action" value="list">';
|
||||||
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
|
||||||
|
if ($sall)
|
||||||
|
{
|
||||||
|
foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
|
||||||
|
print $langs->trans("FilterOnInto", $sall, join(', ',$fieldstosearchall));
|
||||||
|
}
|
||||||
|
|
||||||
|
print '<table class="noborder" width="100%">';
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"f.ref","",$urlparam,'width="15%"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"f.ref","",$urlparam,'width="15%"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$urlparam,'',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom","",$urlparam,'',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("Description"),$_SERVER["PHP_SELF"],"f.description","",$urlparam,'',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("Description"),$_SERVER["PHP_SELF"],"f.description","",$urlparam,'',$sortfield,$sortorder);
|
||||||
if (empty($conf->global->FICHINTER_DISABLE_DETAILS))
|
if (empty($conf->global->FICHINTER_DISABLE_DETAILS))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -74,6 +74,17 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
|
|||||||
|
|
||||||
if ($search_status == '') $search_status=-1;
|
if ($search_status == '') $search_status=-1;
|
||||||
|
|
||||||
|
// List of fields to search into when doing a "search in all"
|
||||||
|
$fieldstosearchall = array(
|
||||||
|
'cf.ref'=>'Ref',
|
||||||
|
'cf.ref_supplier'=>'RefSupplier',
|
||||||
|
//'pd.description'=>'Description',
|
||||||
|
's.nom'=>"ThirdParty",
|
||||||
|
'cf.note_public'=>'NotePublic',
|
||||||
|
);
|
||||||
|
if (empty($user->socid)) $fieldstosearchall["cf.note_private"]="NotePrivate";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
@ -141,7 +152,7 @@ if ($search_ttc != '')
|
|||||||
}
|
}
|
||||||
if ($sall)
|
if ($sall)
|
||||||
{
|
{
|
||||||
$sql .= natural_search(array('cf.ref', 'cf.ref_supplier', 'cf.note_public', 'cf.note_private'), $sall);
|
$sql .= natural_search(array_keys($fieldstosearchall), $sall);
|
||||||
}
|
}
|
||||||
if ($socid) $sql.= " AND s.rowid = ".$socid;
|
if ($socid) $sql.= " AND s.rowid = ".$socid;
|
||||||
|
|
||||||
@ -190,6 +201,19 @@ if ($resql)
|
|||||||
|
|
||||||
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords);
|
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords);
|
||||||
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
||||||
|
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="action" value="list">';
|
||||||
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
print '<input type="hidden" name="viewstatut" value="'.$viewstatut.'">';
|
||||||
|
|
||||||
|
if ($sall)
|
||||||
|
{
|
||||||
|
foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
|
||||||
|
print $langs->trans("FilterOnInto", $sall, join(', ',$fieldstosearchall));
|
||||||
|
}
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"cf.ref","",$param,'',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"cf.ref","",$param,'',$sortfield,$sortorder);
|
||||||
|
|||||||
@ -68,6 +68,7 @@ $pagenext = $page + 1;
|
|||||||
if (! $sortorder) $sortorder="DESC";
|
if (! $sortorder) $sortorder="DESC";
|
||||||
if (! $sortfield) $sortfield="fac.datef,fac.rowid";
|
if (! $sortfield) $sortfield="fac.datef,fac.rowid";
|
||||||
|
|
||||||
|
$search_all = GETPOST('sall');
|
||||||
$search_ref = GETPOST("search_ref","int");
|
$search_ref = GETPOST("search_ref","int");
|
||||||
$search_ref_supplier = GETPOST("search_ref_supplier","alpha");
|
$search_ref_supplier = GETPOST("search_ref_supplier","alpha");
|
||||||
$search_label = GETPOST("search_label","alpha");
|
$search_label = GETPOST("search_label","alpha");
|
||||||
@ -86,6 +87,7 @@ $optioncss = GETPOST('optioncss','alpha');
|
|||||||
|
|
||||||
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test must be present to be compatible with all browsers
|
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test must be present to be compatible with all browsers
|
||||||
{
|
{
|
||||||
|
$search_all="";
|
||||||
$search_ref="";
|
$search_ref="";
|
||||||
$search_ref_supplier="";
|
$search_ref_supplier="";
|
||||||
$search_label="";
|
$search_label="";
|
||||||
@ -97,6 +99,18 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
|
|||||||
$filter="";
|
$filter="";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// List of fields to search into when doing a "search in all"
|
||||||
|
$fieldstosearchall = array(
|
||||||
|
'fac.ref'=>'Ref',
|
||||||
|
'fac.ref_supplier'=>'RefSupplier',
|
||||||
|
//'fd.description'=>'Description',
|
||||||
|
's.nom'=>"ThirdParty",
|
||||||
|
'fac.note_public'=>'NotePublic',
|
||||||
|
);
|
||||||
|
if (empty($user->socid)) $fieldstosearchall["fac.note_private"]="NotePrivate";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
@ -157,7 +171,10 @@ if ($filter && $filter != -1) // GETPOST('filtre') may be a string
|
|||||||
$sql .= " AND " . $filt[0] . " = " . $filt[1];
|
$sql .= " AND " . $filt[0] . " = " . $filt[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($search_all)
|
||||||
|
{
|
||||||
|
$sql.= natural_search(array_keys($fieldstosearchall), $search_all);
|
||||||
|
}
|
||||||
if ($search_ref)
|
if ($search_ref)
|
||||||
{
|
{
|
||||||
if (is_numeric($search_ref)) $sql .= natural_search(array('fac.ref'), $search_ref);
|
if (is_numeric($search_ref)) $sql .= natural_search(array('fac.ref'), $search_ref);
|
||||||
@ -255,6 +272,18 @@ if ($resql)
|
|||||||
print_barre_liste($langs->trans("BillsSuppliers").($socid?" $soc->name.":""),$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords);
|
print_barre_liste($langs->trans("BillsSuppliers").($socid?" $soc->name.":""),$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords);
|
||||||
print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="action" value="list">';
|
||||||
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
print '<input type="hidden" name="viewstatut" value="'.$viewstatut.'">';
|
||||||
|
|
||||||
|
if ($search_all)
|
||||||
|
{
|
||||||
|
foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
|
||||||
|
print $langs->trans("FilterOnInto", $search_all, join(', ',$fieldstosearchall));
|
||||||
|
}
|
||||||
|
|
||||||
print '<table class="liste" width="100%">';
|
print '<table class="liste" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"fac.ref,fac.rowid","",$param,"",$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"fac.ref,fac.rowid","",$param,"",$sortfield,$sortorder);
|
||||||
|
|||||||
@ -84,20 +84,26 @@ if ($action == 'create')
|
|||||||
$description = trim(GETPOST('description'));
|
$description = trim(GETPOST('description'));
|
||||||
$userID = GETPOST('userID');
|
$userID = GETPOST('userID');
|
||||||
|
|
||||||
|
// If no start date
|
||||||
|
if ($type <= 0)
|
||||||
|
{
|
||||||
|
setEventMessage($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), 'errors');
|
||||||
|
$error++;
|
||||||
|
$action='create';
|
||||||
|
}
|
||||||
|
|
||||||
// If no start date
|
// If no start date
|
||||||
if (empty($date_debut))
|
if (empty($date_debut))
|
||||||
{
|
{
|
||||||
header('Location: card.php?action=request&error=nodatedebut');
|
header('Location: card.php?action=request&error=nodatedebut');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If no end date
|
// If no end date
|
||||||
if (empty($date_fin))
|
if (empty($date_fin))
|
||||||
{
|
{
|
||||||
header('Location: card.php?action=request&error=nodatefin');
|
header('Location: card.php?action=request&error=nodatefin');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If start date after end date
|
// If start date after end date
|
||||||
if ($date_debut > $date_fin)
|
if ($date_debut > $date_fin)
|
||||||
{
|
{
|
||||||
@ -128,22 +134,27 @@ if ($action == 'create')
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$cp->fk_user = $userid;
|
$result = 0;
|
||||||
$cp->description = $description;
|
|
||||||
$cp->date_debut = $date_debut;
|
if (! $error)
|
||||||
$cp->date_fin = $date_fin;
|
{
|
||||||
$cp->fk_validator = $valideur;
|
$cp->fk_user = $userid;
|
||||||
$cp->halfday = $halfday;
|
$cp->description = $description;
|
||||||
$cp->fk_type = $type;
|
$cp->date_debut = $date_debut;
|
||||||
|
$cp->date_fin = $date_fin;
|
||||||
$verif = $cp->create($user);
|
$cp->fk_validator = $valideur;
|
||||||
|
$cp->halfday = $halfday;
|
||||||
|
$cp->fk_type = $type;
|
||||||
|
|
||||||
|
$result = $cp->create($user);
|
||||||
|
}
|
||||||
|
|
||||||
// If no SQL error we redirect to the request card
|
// If no SQL error we redirect to the request card
|
||||||
if ($verif > 0)
|
if ($result > 0)
|
||||||
{
|
{
|
||||||
$db->commit();
|
$db->commit();
|
||||||
|
|
||||||
header('Location: card.php?id='.$verif);
|
header('Location: card.php?id='.$result);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -151,7 +162,7 @@ if ($action == 'create')
|
|||||||
$db->rollback();
|
$db->rollback();
|
||||||
|
|
||||||
// Otherwise we display the request form with the SQL error message
|
// Otherwise we display the request form with the SQL error message
|
||||||
header('Location: card.php?action=request&error=SQL_Create&msg='.$cp->error);
|
header('Location: card.php?action=request');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -53,6 +53,7 @@ $pagenext = $page + 1;
|
|||||||
|
|
||||||
$id = GETPOST('id','int');
|
$id = GETPOST('id','int');
|
||||||
|
|
||||||
|
$sall = GETPOST('sall');
|
||||||
$search_ref = GETPOST('search_ref');
|
$search_ref = GETPOST('search_ref');
|
||||||
$month_create = GETPOST('month_create');
|
$month_create = GETPOST('month_create');
|
||||||
$year_create = GETPOST('year_create');
|
$year_create = GETPOST('year_create');
|
||||||
@ -64,7 +65,7 @@ $search_employe = GETPOST('search_employe');
|
|||||||
$search_valideur = GETPOST('search_valideur');
|
$search_valideur = GETPOST('search_valideur');
|
||||||
$search_statut = GETPOST('select_statut');
|
$search_statut = GETPOST('select_statut');
|
||||||
|
|
||||||
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
||||||
{
|
{
|
||||||
$search_ref="";
|
$search_ref="";
|
||||||
$month_create="";
|
$month_create="";
|
||||||
@ -78,6 +79,12 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
|
|||||||
$search_statut="";
|
$search_statut="";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// List of fields to search into when doing a "search in all"
|
||||||
|
$fieldstosearchall = array(
|
||||||
|
'cp.rowid'=>'Ref',
|
||||||
|
'cp.description'=>'Description',
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
@ -171,6 +178,12 @@ if(!empty($search_valideur) && $search_valideur != -1) {
|
|||||||
if(!empty($search_statut) && $search_statut != -1) {
|
if(!empty($search_statut) && $search_statut != -1) {
|
||||||
$filter.= " AND cp.statut = '".$db->escape($search_statut)."'\n";
|
$filter.= " AND cp.statut = '".$db->escape($search_statut)."'\n";
|
||||||
}
|
}
|
||||||
|
// Search all
|
||||||
|
if (!empty($sall))
|
||||||
|
{
|
||||||
|
$filter.= natural_search(array_keys($fieldstosearchall), $sall);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
* Fin des filtres de recherche
|
* Fin des filtres de recherche
|
||||||
@ -252,6 +265,18 @@ if ($id > 0) print '</br>';
|
|||||||
|
|
||||||
|
|
||||||
print '<form method="get" action="'.$_SERVER["PHP_SELF"].'">'."\n";
|
print '<form method="get" action="'.$_SERVER["PHP_SELF"].'">'."\n";
|
||||||
|
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="action" value="list">';
|
||||||
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
|
||||||
|
if ($sall)
|
||||||
|
{
|
||||||
|
foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
|
||||||
|
print $langs->trans("FilterOnInto", $sall, join(', ',$fieldstosearchall));
|
||||||
|
}
|
||||||
|
|
||||||
print '<table class="noborder" width="100%;">';
|
print '<table class="noborder" width="100%;">';
|
||||||
print "<tr class=\"liste_titre\">";
|
print "<tr class=\"liste_titre\">";
|
||||||
print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"cp.rowid","",'','',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"cp.rowid","",'','',$sortfield,$sortorder);
|
||||||
|
|||||||
@ -66,4 +66,5 @@ ALTER TABLE llx_prelevement_facture_demande MODIFY COLUMN code_banque varchar(12
|
|||||||
ALTER TABLE llx_prelevement_lignes MODIFY COLUMN code_banque varchar(128);
|
ALTER TABLE llx_prelevement_lignes MODIFY COLUMN code_banque varchar(128);
|
||||||
ALTER TABLE llx_societe_rib MODIFY COLUMN code_banque varchar(128);
|
ALTER TABLE llx_societe_rib MODIFY COLUMN code_banque varchar(128);
|
||||||
|
|
||||||
|
ALTER TABLE llx_contrat ADD COLUMN ref_customer varchar(30);
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,8 @@ create table llx_contrat
|
|||||||
(
|
(
|
||||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||||
ref varchar(30), -- contrat reference
|
ref varchar(30), -- contrat reference
|
||||||
ref_supplier varchar(30), -- suplier contract ref
|
ref_customer varchar(30), -- customer contract ref
|
||||||
|
ref_supplier varchar(30), -- supplier contract ref
|
||||||
ref_ext varchar(30), -- external contract ref
|
ref_ext varchar(30), -- external contract ref
|
||||||
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||||
tms timestamp,
|
tms timestamp,
|
||||||
@ -44,6 +45,5 @@ create table llx_contrat
|
|||||||
model_pdf varchar(255),
|
model_pdf varchar(255),
|
||||||
import_key varchar(14),
|
import_key varchar(14),
|
||||||
extraparams varchar(255)
|
extraparams varchar(255)
|
||||||
|
|
||||||
)ENGINE=innodb;
|
)ENGINE=innodb;
|
||||||
|
|
||||||
|
|||||||
@ -58,7 +58,7 @@ BoxLastExpiredServices=Last %s oldest contacts with active expired services
|
|||||||
BoxTitleLastActionsToDo=Last %s actions to do
|
BoxTitleLastActionsToDo=Last %s actions to do
|
||||||
BoxTitleLastContracts=Last %s contracts
|
BoxTitleLastContracts=Last %s contracts
|
||||||
BoxTitleLastModifiedDonations=Last %s modified donations
|
BoxTitleLastModifiedDonations=Last %s modified donations
|
||||||
BoxTitleLastModifiedExpenses=Last %s modified expenses
|
BoxTitleLastModifiedExpenses=Last %s modified expense reports
|
||||||
BoxGlobalActivity=Global activity (invoices, proposals, orders)
|
BoxGlobalActivity=Global activity (invoices, proposals, orders)
|
||||||
FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Last successfull refresh date: %s
|
FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Last successfull refresh date: %s
|
||||||
LastRefreshDate=Last refresh date
|
LastRefreshDate=Last refresh date
|
||||||
|
|||||||
@ -110,7 +110,7 @@ ProfId2Short=Prof. id 2
|
|||||||
ProfId3Short=Prof. id 3
|
ProfId3Short=Prof. id 3
|
||||||
ProfId4Short=Prof. id 4
|
ProfId4Short=Prof. id 4
|
||||||
ProfId5Short=Prof. id 5
|
ProfId5Short=Prof. id 5
|
||||||
ProfId6Short=Prof. id 5
|
ProfId6Short=Prof. id 6
|
||||||
ProfId1=Professional ID 1
|
ProfId1=Professional ID 1
|
||||||
ProfId2=Professional ID 2
|
ProfId2=Professional ID 2
|
||||||
ProfId3=Professional ID 3
|
ProfId3=Professional ID 3
|
||||||
@ -285,6 +285,8 @@ PersonalInformations=Personal data
|
|||||||
AccountancyCode=Accountancy code
|
AccountancyCode=Accountancy code
|
||||||
CustomerCode=Customer code
|
CustomerCode=Customer code
|
||||||
SupplierCode=Supplier code
|
SupplierCode=Supplier code
|
||||||
|
CustomerCodeShort=Customer code
|
||||||
|
SupplierCodeShort=Supplier code
|
||||||
CustomerAccount=Customer account
|
CustomerAccount=Customer account
|
||||||
SupplierAccount=Supplier account
|
SupplierAccount=Supplier account
|
||||||
CustomerCodeDesc=Customer code, unique for all customers
|
CustomerCodeDesc=Customer code, unique for all customers
|
||||||
|
|||||||
@ -99,6 +99,8 @@ TotalToPay=Total to pay
|
|||||||
TotalVATReceived=Total VAT received
|
TotalVATReceived=Total VAT received
|
||||||
CustomerAccountancyCode=Customer accountancy code
|
CustomerAccountancyCode=Customer accountancy code
|
||||||
SupplierAccountancyCode=Supplier accountancy code
|
SupplierAccountancyCode=Supplier accountancy code
|
||||||
|
CustomerAccountancyCodeShort=Cust. account. code
|
||||||
|
SupplierAccountancyCodeShort=Sup. account. code
|
||||||
AccountNumberShort=Account number
|
AccountNumberShort=Account number
|
||||||
AccountNumber=Account number
|
AccountNumber=Account number
|
||||||
NewAccount=New account
|
NewAccount=New account
|
||||||
|
|||||||
@ -386,6 +386,7 @@ NActions=%s events
|
|||||||
NActionsLate=%s late
|
NActionsLate=%s late
|
||||||
RequestAlreadyDone=Request already recorded
|
RequestAlreadyDone=Request already recorded
|
||||||
Filter=Filter
|
Filter=Filter
|
||||||
|
FilterOnInto=Search criteria '<strong>%s</strong>' into fields %s
|
||||||
RemoveFilter=Remove filter
|
RemoveFilter=Remove filter
|
||||||
ChartGenerated=Chart generated
|
ChartGenerated=Chart generated
|
||||||
ChartNotGenerated=Chart not generated
|
ChartNotGenerated=Chart not generated
|
||||||
@ -576,6 +577,7 @@ SendByMail=Send by EMail
|
|||||||
MailSentBy=Email sent by
|
MailSentBy=Email sent by
|
||||||
TextUsedInTheMessageBody=Email body
|
TextUsedInTheMessageBody=Email body
|
||||||
SendAcknowledgementByMail=Send Ack. by email
|
SendAcknowledgementByMail=Send Ack. by email
|
||||||
|
EMail=E-mail
|
||||||
NoEMail=No email
|
NoEMail=No email
|
||||||
NoMobilePhone=No mobile phone
|
NoMobilePhone=No mobile phone
|
||||||
Owner=Owner
|
Owner=Owner
|
||||||
|
|||||||
@ -1,6 +1,9 @@
|
|||||||
# Dolibarr language file - Source file is en_US - products
|
# Dolibarr language file - Source file is en_US - products
|
||||||
ProductRef=Product ref.
|
ProductRef=Product ref.
|
||||||
ProductLabel=Product label
|
ProductLabel=Product label
|
||||||
|
ProductLabelTranslated=Translated product label
|
||||||
|
ProductDescriptionTranslated=Translated product description
|
||||||
|
ProductNoteTranslated=Translated product note
|
||||||
ProductServiceCard=Products/Services card
|
ProductServiceCard=Products/Services card
|
||||||
Products=Products
|
Products=Products
|
||||||
Services=Services
|
Services=Services
|
||||||
|
|||||||
@ -1575,13 +1575,13 @@ function left_menu($menu_array_before, $helppagename='', $moresearchform='', $me
|
|||||||
if ((( ! empty($conf->societe->enabled) && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))) || ! empty($conf->fournisseur->enabled)) && ! empty($conf->global->MAIN_SEARCHFORM_SOCIETE) && $user->rights->societe->lire)
|
if ((( ! empty($conf->societe->enabled) && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))) || ! empty($conf->fournisseur->enabled)) && ! empty($conf->global->MAIN_SEARCHFORM_SOCIETE) && $user->rights->societe->lire)
|
||||||
{
|
{
|
||||||
$langs->load("companies");
|
$langs->load("companies");
|
||||||
$searchform.=printSearchForm(DOL_URL_ROOT.'/societe/list.php', DOL_URL_ROOT.'/societe/list.php', $langs->trans("ThirdParties"), 'soc', 'socname', 'T', 'searchleftt', img_object('','company'));
|
$searchform.=printSearchForm(DOL_URL_ROOT.'/societe/list.php', DOL_URL_ROOT.'/societe/list.php', $langs->trans("ThirdParties"), 'soc', 'sall', 'T', 'searchleftt', img_object('','company'));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! empty($conf->societe->enabled) && ! empty($conf->global->MAIN_SEARCHFORM_CONTACT) && $user->rights->societe->lire)
|
if (! empty($conf->societe->enabled) && ! empty($conf->global->MAIN_SEARCHFORM_CONTACT) && $user->rights->societe->lire)
|
||||||
{
|
{
|
||||||
$langs->load("companies");
|
$langs->load("companies");
|
||||||
$searchform.=printSearchForm(DOL_URL_ROOT.'/contact/list.php', DOL_URL_ROOT.'/contact/list.php', $langs->trans("Contacts"), 'contact', 'contactname', '', 'searchleftc', img_object('','contact'));
|
$searchform.=printSearchForm(DOL_URL_ROOT.'/contact/list.php', DOL_URL_ROOT.'/contact/list.php', $langs->trans("Contacts"), 'contact', 'sall', 'A', 'searchleftc', img_object('','contact'));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((! empty($conf->product->enabled) && $user->rights->produit->lire) || (! empty($conf->service->enabled) && $user->rights->service->lire))
|
if (((! empty($conf->product->enabled) && $user->rights->produit->lire) || (! empty($conf->service->enabled) && $user->rights->service->lire))
|
||||||
@ -1607,7 +1607,7 @@ function left_menu($menu_array_before, $helppagename='', $moresearchform='', $me
|
|||||||
if (! empty($conf->projet->enabled) && ! empty($conf->global->MAIN_SEARCHFORM_PROJECT) && $user->rights->projet->lire)
|
if (! empty($conf->projet->enabled) && ! empty($conf->global->MAIN_SEARCHFORM_PROJECT) && $user->rights->projet->lire)
|
||||||
{
|
{
|
||||||
$langs->load("members");
|
$langs->load("members");
|
||||||
$searchform.=printSearchForm(DOL_URL_ROOT.'/projet/list.php', DOL_URL_ROOT.'/projet/list.php', $langs->trans("Projects"), 'project', 'search_all', 'M', 'searchleftproj', img_object('','projectpub'));
|
$searchform.=printSearchForm(DOL_URL_ROOT.'/projet/list.php', DOL_URL_ROOT.'/projet/list.php', $langs->trans("Projects"), 'project', 'search_all', 'Q', 'searchleftproj', img_object('','projectpub'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Execute hook printSearchForm
|
// Execute hook printSearchForm
|
||||||
@ -1851,11 +1851,11 @@ function getHelpParamFor($helppagename,$langs)
|
|||||||
* @param string $htmlmodesearch Value to set into parameter "mode_search" ('soc','contact','products','member',...)
|
* @param string $htmlmodesearch Value to set into parameter "mode_search" ('soc','contact','products','member',...)
|
||||||
* @param string $htmlinputname Field Name input form
|
* @param string $htmlinputname Field Name input form
|
||||||
* @param string $accesskey Accesskey
|
* @param string $accesskey Accesskey
|
||||||
* @param string $idname Complement for id to avoid multiple same id in the page
|
* @param string $prefhtmlinputname Complement for id to avoid multiple same id in the page
|
||||||
* @param string $img Image to use
|
* @param string $img Image to use
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function printSearchForm($urlaction,$urlobject,$title,$htmlmodesearch,$htmlinputname,$accesskey='', $idname='',$img='')
|
function printSearchForm($urlaction,$urlobject,$title,$htmlmodesearch,$htmlinputname,$accesskey='', $prefhtmlinputname='',$img='')
|
||||||
{
|
{
|
||||||
global $conf,$langs;
|
global $conf,$langs;
|
||||||
|
|
||||||
@ -1868,7 +1868,7 @@ function printSearchForm($urlaction,$urlobject,$title,$htmlmodesearch,$htmlinput
|
|||||||
$ret.='<div class="menu_titre menu_titre_search"';
|
$ret.='<div class="menu_titre menu_titre_search"';
|
||||||
if (! empty($conf->global->MAIN_HTML5_PLACEHOLDER)) $ret.=' style="display: inline-block"';
|
if (! empty($conf->global->MAIN_HTML5_PLACEHOLDER)) $ret.=' style="display: inline-block"';
|
||||||
$ret.='>';
|
$ret.='>';
|
||||||
$ret.='<label for="'.$idname.$htmlinputname.'">';
|
$ret.='<label for="'.$prefhtmlinputname.$htmlinputname.'">';
|
||||||
$ret.='<a class="vsmenu" href="'.$urlobject.'">';
|
$ret.='<a class="vsmenu" href="'.$urlobject.'">';
|
||||||
if ($img && ! empty($conf->global->MAIN_HTML5_PLACEHOLDER)) $ret.=$img;
|
if ($img && ! empty($conf->global->MAIN_HTML5_PLACEHOLDER)) $ret.=$img;
|
||||||
else $ret.=$img.' '.$title;
|
else $ret.=$img.' '.$title;
|
||||||
@ -1882,7 +1882,7 @@ function printSearchForm($urlaction,$urlobject,$title,$htmlmodesearch,$htmlinput
|
|||||||
$ret.=($accesskey?' accesskey="'.$accesskey.'"':'');
|
$ret.=($accesskey?' accesskey="'.$accesskey.'"':'');
|
||||||
if (! empty($conf->global->MAIN_HTML5_PLACEHOLDER)) $ret.=' placeholder="'.strip_tags($title).'"'; // Will work only if MAIN_HTML5_PLACEHOLDER is set to 1
|
if (! empty($conf->global->MAIN_HTML5_PLACEHOLDER)) $ret.=' placeholder="'.strip_tags($title).'"'; // Will work only if MAIN_HTML5_PLACEHOLDER is set to 1
|
||||||
else $ret.=' title="'.$langs->trans("SearchOf").''.strip_tags($title).'"';
|
else $ret.=' title="'.$langs->trans("SearchOf").''.strip_tags($title).'"';
|
||||||
$ret.=' name="'.$htmlinputname.'" id="'.$idname.$htmlinputname.'" size="10" />';
|
$ret.=' name="'.$htmlinputname.'" id="'.$prefhtmlinputname.$htmlinputname.'" size="10" />';
|
||||||
$ret.='<input type="submit" class="button" style="padding-top: 4px; padding-bottom: 4px; padding-left: 6px; padding-right: 6px" value="'.$langs->trans("Go").'">';
|
$ret.='<input type="submit" class="button" style="padding-top: 4px; padding-bottom: 4px; padding-left: 6px; padding-right: 6px" value="'.$langs->trans("Go").'">';
|
||||||
$ret.="</form>\n";
|
$ret.="</form>\n";
|
||||||
return $ret;
|
return $ret;
|
||||||
|
|||||||
@ -78,29 +78,32 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
|
|||||||
/*
|
/*
|
||||||
* Search Area of product/service
|
* Search Area of product/service
|
||||||
*/
|
*/
|
||||||
$rowspan=2;
|
|
||||||
if (! empty($conf->barcode->enabled)) $rowspan++;
|
// Search contract
|
||||||
print '<form method="post" action="'.DOL_URL_ROOT.'/product/list.php">';
|
if ((! empty($conf->product->enabled) || ! empty($conf->service->enabled)) && ($user->rights->produit->lire || $user->rights->service->lire))
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
|
||||||
print '<table class="noborder nohover" width="100%">';
|
|
||||||
print "<tr class=\"liste_titre\">";
|
|
||||||
print '<td colspan="3">'.$langs->trans("Search").'</td></tr>';
|
|
||||||
print "<tr ".$bc[false]."><td>";
|
|
||||||
print '<label for="sref">'.$langs->trans("Ref").'</label>:</td><td><input class="flat" type="text" size="14" name="sref" id="sref"></td>';
|
|
||||||
print '<td rowspan="'.$rowspan.'"><input type="submit" class="button" value="'.$langs->trans("Search").'"></td></tr>';
|
|
||||||
if (! empty($conf->barcode->enabled))
|
|
||||||
{
|
{
|
||||||
print "<tr ".$bc[false]."><td>";
|
$listofsearchfields['search_product']=array('text'=>'ProductOrService');
|
||||||
print '<label for="barcode">'.$langs->trans("BarCode").'</label>:</td><td><input class="flat" type="text" size="14" name="sbarcode" id="barcode"></td>';
|
|
||||||
//print '<td><input type="submit" class="button" value="'.$langs->trans("Search").'"></td>';
|
|
||||||
print '</tr>';
|
|
||||||
}
|
}
|
||||||
print "<tr ".$bc[false]."><td>";
|
|
||||||
print '<label for="sall">'.$langs->trans("Other").'</label>:</td><td><input class="flat" type="text" size="14" name="sall" id="sall"></td>';
|
|
||||||
//print '<td><input type="submit" class="button" value="'.$langs->trans("Search").'"></td>';
|
|
||||||
print '</tr>';
|
|
||||||
print "</table></form><br>";
|
|
||||||
|
|
||||||
|
if (count($listofsearchfields))
|
||||||
|
{
|
||||||
|
print '<form method="post" action="'.DOL_URL_ROOT.'/core/search.php">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<table class="noborder nohover centpercent">';
|
||||||
|
$i=0;
|
||||||
|
foreach($listofsearchfields as $key => $value)
|
||||||
|
{
|
||||||
|
if ($i == 0) print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("Search").'</td></tr>';
|
||||||
|
print '<tr>';
|
||||||
|
print '<td class="nowrap"><label for="'.$key.'">'.$langs->trans($value["text"]).'</label>:</td><td><input type="text" class="flat" name="'.$key.'" id="'.$key.'" size="18"></td>';
|
||||||
|
if ($i == 0) print '<td rowspan="'.count($listofsearchfields).'"><input type="submit" value="'.$langs->trans("Search").'" class="button"></td>';
|
||||||
|
print '</tr>';
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
print '</table>';
|
||||||
|
print '</form>';
|
||||||
|
print '<br>';
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Number of products and/or services
|
* Number of products and/or services
|
||||||
|
|||||||
@ -84,6 +84,24 @@ if ($type=='0') $result=restrictedArea($user,'produit','','','','','',$objcanvas
|
|||||||
else if ($type=='1') $result=restrictedArea($user,'service','','','','','',$objcanvas);
|
else if ($type=='1') $result=restrictedArea($user,'service','','','','','',$objcanvas);
|
||||||
else $result=restrictedArea($user,'produit|service','','','','','',$objcanvas);
|
else $result=restrictedArea($user,'produit|service','','','','','',$objcanvas);
|
||||||
|
|
||||||
|
// List of fields to search into when doing a "search in all"
|
||||||
|
$fieldstosearchall = array(
|
||||||
|
'p.ref'=>"Ref",
|
||||||
|
'p.label'=>"ProductLabel",
|
||||||
|
'p.description'=>"Description",
|
||||||
|
"p.note"=>"Note",
|
||||||
|
);
|
||||||
|
// multilang
|
||||||
|
if (! empty($conf->global->MAIN_MULTILANGS))
|
||||||
|
{
|
||||||
|
$fieldstosearchall['pl.label']='ProductLabelTranslated';
|
||||||
|
$fieldstosearchall['pl.description']='ProductDescriptionTranslated';
|
||||||
|
$fieldstosearchall['pl.note']='ProductNoteTranslated';
|
||||||
|
}
|
||||||
|
if (! empty($conf->barcode->enabled)) {
|
||||||
|
$fieldstosearchall['p.barcode']='Gencod';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
@ -92,6 +110,7 @@ else $result=restrictedArea($user,'produit|service','','','','','',$objcanvas);
|
|||||||
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
||||||
{
|
{
|
||||||
$sref="";
|
$sref="";
|
||||||
|
$sall="";
|
||||||
$sbarcode="";
|
$sbarcode="";
|
||||||
$snom="";
|
$snom="";
|
||||||
$search_categ=0;
|
$search_categ=0;
|
||||||
@ -131,8 +150,6 @@ else
|
|||||||
{
|
{
|
||||||
$texte = $langs->trans("ProductsAndServices");
|
$texte = $langs->trans("ProductsAndServices");
|
||||||
}
|
}
|
||||||
// Add what we are searching for
|
|
||||||
if (! empty($sall)) $texte.= " - ".$sall;
|
|
||||||
|
|
||||||
$sql = 'SELECT DISTINCT p.rowid, p.ref, p.label, p.barcode, p.price, p.price_ttc, p.price_base_type,';
|
$sql = 'SELECT DISTINCT p.rowid, p.ref, p.label, p.barcode, p.price, p.price_ttc, p.price_base_type,';
|
||||||
$sql.= ' p.fk_product_type, p.tms as datem,';
|
$sql.= ' p.fk_product_type, p.tms as datem,';
|
||||||
@ -146,19 +163,7 @@ else
|
|||||||
$sql.= ' WHERE p.entity IN ('.getEntity('product', 1).')';
|
$sql.= ' WHERE p.entity IN ('.getEntity('product', 1).')';
|
||||||
if ($sall)
|
if ($sall)
|
||||||
{
|
{
|
||||||
// For natural search
|
$sql .= natural_search(array_keys($fieldstosearchall), $sall);
|
||||||
$params = array('p.ref', 'p.label', 'p.description', 'p.note');
|
|
||||||
// multilang
|
|
||||||
if (! empty($conf->global->MAIN_MULTILANGS))
|
|
||||||
{
|
|
||||||
$params[] = 'pl.label';
|
|
||||||
$params[] = 'pl.description';
|
|
||||||
$params[] = 'pl.note';
|
|
||||||
}
|
|
||||||
if (! empty($conf->barcode->enabled)) {
|
|
||||||
$params[] = 'p.barcode';
|
|
||||||
}
|
|
||||||
$sql .= natural_search($params, $sall);
|
|
||||||
}
|
}
|
||||||
// if the type is not 1, we show all products (type = 0,2,3)
|
// if the type is not 1, we show all products (type = 0,2,3)
|
||||||
if (dol_strlen($type))
|
if (dol_strlen($type))
|
||||||
@ -168,16 +173,6 @@ else
|
|||||||
}
|
}
|
||||||
if ($sref) $sql .= natural_search('p.ref', $sref);
|
if ($sref) $sql .= natural_search('p.ref', $sref);
|
||||||
if ($sbarcode) $sql .= natural_search('p.barcode', $sbarcode);
|
if ($sbarcode) $sql .= natural_search('p.barcode', $sbarcode);
|
||||||
if ($snom)
|
|
||||||
{
|
|
||||||
$params = array('p.label');
|
|
||||||
// multilang
|
|
||||||
if (! empty($conf->global->MAIN_MULTILANGS))
|
|
||||||
{
|
|
||||||
$params[] = 'pl.label';
|
|
||||||
}
|
|
||||||
$sql .= natural_search($params, $snom);
|
|
||||||
}
|
|
||||||
if (isset($tosell) && dol_strlen($tosell) > 0 && $tosell!=-1) $sql.= " AND p.tosell = ".$db->escape($tosell);
|
if (isset($tosell) && dol_strlen($tosell) > 0 && $tosell!=-1) $sql.= " AND p.tosell = ".$db->escape($tosell);
|
||||||
if (isset($tobuy) && dol_strlen($tobuy) > 0 && $tobuy!=-1) $sql.= " AND p.tobuy = ".$db->escape($tobuy);
|
if (isset($tobuy) && dol_strlen($tobuy) > 0 && $tobuy!=-1) $sql.= " AND p.tobuy = ".$db->escape($tobuy);
|
||||||
if (dol_strlen($canvas) > 0) $sql.= " AND p.canvas = '".$db->escape($canvas)."'";
|
if (dol_strlen($canvas) > 0) $sql.= " AND p.canvas = '".$db->escape($canvas)."'";
|
||||||
@ -188,8 +183,7 @@ else
|
|||||||
if ($fourn_id > 0) $sql.= " AND pfp.fk_soc = ".$fourn_id;
|
if ($fourn_id > 0) $sql.= " AND pfp.fk_soc = ".$fourn_id;
|
||||||
$sql.= " GROUP BY p.rowid, p.ref, p.label, p.barcode, p.price, p.price_ttc, p.price_base_type,";
|
$sql.= " GROUP BY p.rowid, p.ref, p.label, p.barcode, p.price, p.price_ttc, p.price_base_type,";
|
||||||
$sql.= " p.fk_product_type, p.tms,";
|
$sql.= " p.fk_product_type, p.tms,";
|
||||||
$sql.= " p.duration, p.tosell, p.tobuy, p.seuil_stock_alerte";
|
$sql.= " p.duration, p.tosell, p.tobuy, p.seuil_stock_alerte, p.desiredstock";
|
||||||
$sql .= ', p.desiredstock';
|
|
||||||
//if (GETPOST("toolowstock")) $sql.= " HAVING SUM(s.reel) < p.seuil_stock_alerte"; // Not used yet
|
//if (GETPOST("toolowstock")) $sql.= " HAVING SUM(s.reel) < p.seuil_stock_alerte"; // Not used yet
|
||||||
|
|
||||||
$nbtotalofrecords = 0;
|
$nbtotalofrecords = 0;
|
||||||
@ -242,7 +236,7 @@ else
|
|||||||
$param.=isset($type)?"&type=".$type:"";
|
$param.=isset($type)?"&type=".$type:"";
|
||||||
if ($optioncss != '') $param.='&optioncss='.$optioncss;
|
if ($optioncss != '') $param.='&optioncss='.$optioncss;
|
||||||
|
|
||||||
print_barre_liste($texte, $page, "list.php", $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords,'title_products.png');
|
print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords,'title_products.png');
|
||||||
|
|
||||||
if (! empty($catid))
|
if (! empty($catid))
|
||||||
{
|
{
|
||||||
@ -281,6 +275,12 @@ else
|
|||||||
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
print '<input type="hidden" name="type" value="'.$type.'">';
|
print '<input type="hidden" name="type" value="'.$type.'">';
|
||||||
|
|
||||||
|
if ($sall)
|
||||||
|
{
|
||||||
|
foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
|
||||||
|
print $langs->trans("FilterOnInto", $sall, join(', ',$fieldstosearchall));
|
||||||
|
}
|
||||||
|
|
||||||
// Filter on categories
|
// Filter on categories
|
||||||
$moreforfilter='';
|
$moreforfilter='';
|
||||||
$colspan=6;
|
$colspan=6;
|
||||||
|
|||||||
@ -68,30 +68,35 @@ else
|
|||||||
|
|
||||||
print '<div class="fichecenter"><div class="fichethirdleft">';
|
print '<div class="fichecenter"><div class="fichethirdleft">';
|
||||||
|
|
||||||
|
// Search project
|
||||||
// Search task
|
|
||||||
if (! empty($conf->projet->enabled) && $user->rights->projet->lire)
|
if (! empty($conf->projet->enabled) && $user->rights->projet->lire)
|
||||||
{
|
{
|
||||||
$var=false;
|
$listofsearchfields['search_task']=array('text'=>'Task');
|
||||||
print '<form method="post" action="'.DOL_URL_ROOT.'/projet/tasks/index.php">';
|
}
|
||||||
|
|
||||||
|
if (count($listofsearchfields))
|
||||||
|
{
|
||||||
|
print '<form method="post" action="'.DOL_URL_ROOT.'/core/search.php">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="mode" value="'.$mine.'">';
|
print '<table class="noborder nohover centpercent">';
|
||||||
print '<input type="hidden" name="search_status" value="-1">'; // All status
|
$i=0;
|
||||||
print '<table class="noborder nohover" width="100%">';
|
foreach($listofsearchfields as $key => $value)
|
||||||
print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("SearchATask").'</td></tr>';
|
{
|
||||||
print '<tr '.$bc[$var].'>';
|
if ($i == 0) print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("Search").'</td></tr>';
|
||||||
print '<td class="nowrap"><label for="sf_ref">'.$langs->trans("Ref").'</label>:</td><td><input type="text" class="flat" name="search_task_ref" id="sf_ref" size="18"></td>';
|
print '<tr>';
|
||||||
print '<td rowspan="3"><input type="submit" value="'.$langs->trans("Search").'" class="button"></td></tr>';
|
print '<td class="nowrap"><label for="'.$key.'">'.$langs->trans($value["text"]).'</label>:</td><td><input type="text" class="flat" name="'.$key.'" id="'.$key.'" size="18"></td>';
|
||||||
//print '<tr '.$bc[$var].'><td class="nowrap"><label for="syear">'.$langs->trans("Year").'</label>:</td><td><input type="text" class="flat" name="search_year" id="search_year" size="18"></td>';
|
if ($i == 0) print '<td rowspan="'.count($listofsearchfields).'"><input type="submit" value="'.$langs->trans("Search").'" class="button"></td>';
|
||||||
print '<tr '.$bc[$var].'><td class="nowrap"><label for="sall">'.$langs->trans("Other").'</label>:</td><td><input type="text" class="flat" name="search_task_label" id="search_task_label" size="18"></td>';
|
print '</tr>';
|
||||||
print '</tr>';
|
$i++;
|
||||||
print "</table></form>\n";
|
}
|
||||||
print "<br>\n";
|
print '</table>';
|
||||||
|
print '</form>';
|
||||||
|
print '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Affichage de la liste des projets d'aujourd'hui */
|
/* Affichage de la liste des projets d'aujourd'hui */
|
||||||
print '<br><table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td width="50%">'.$langs->trans('ActivityOnProjectToday').'</td>';
|
print '<td width="50%">'.$langs->trans('ActivityOnProjectToday').'</td>';
|
||||||
print '<td width="50%" align="right">'.$langs->trans("Time").'</td>';
|
print '<td width="50%" align="right">'.$langs->trans("Time").'</td>';
|
||||||
|
|||||||
@ -101,19 +101,27 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
|
|||||||
// Search project
|
// Search project
|
||||||
if (! empty($conf->projet->enabled) && $user->rights->projet->lire)
|
if (! empty($conf->projet->enabled) && $user->rights->projet->lire)
|
||||||
{
|
{
|
||||||
$var=false;
|
$listofsearchfields['search_project']=array('text'=>'Project');
|
||||||
print '<form method="post" action="'.DOL_URL_ROOT.'/projet/list.php">';
|
}
|
||||||
|
|
||||||
|
if (count($listofsearchfields))
|
||||||
|
{
|
||||||
|
print '<form method="post" action="'.DOL_URL_ROOT.'/core/search.php">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<table class="noborder nohover" width="100%">';
|
print '<table class="noborder nohover centpercent">';
|
||||||
print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("SearchAProject").'</td></tr>';
|
$i=0;
|
||||||
print '<tr '.$bc[$var].'>';
|
foreach($listofsearchfields as $key => $value)
|
||||||
print '<td class="nowrap"><label for="sf_ref">'.$langs->trans("Ref").'</label>:</td><td><input type="text" class="flat" name="search_ref" id="sf_ref" size="18"></td>';
|
{
|
||||||
print '<td rowspan="3"><input type="submit" value="'.$langs->trans("Search").'" class="button"></td></tr>';
|
if ($i == 0) print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("Search").'</td></tr>';
|
||||||
print '<tr '.$bc[$var].'><td class="nowrap"><label for="syear">'.$langs->trans("Year").'</label>:</td><td><input type="text" class="flat" name="search_year" id="search_year" size="18"></td>';
|
print '<tr>';
|
||||||
print '<tr '.$bc[$var].'><td class="nowrap"><label for="sall">'.$langs->trans("Other").'</label>:</td><td><input type="text" class="flat" name="search_all" id="search_all" size="18"></td>';
|
print '<td class="nowrap"><label for="'.$key.'">'.$langs->trans($value["text"]).'</label>:</td><td><input type="text" class="flat" name="'.$key.'" id="'.$key.'" size="18"></td>';
|
||||||
print '</tr>';
|
if ($i == 0) print '<td rowspan="'.count($listofsearchfields).'"><input type="submit" value="'.$langs->trans("Search").'" class="button"></td>';
|
||||||
print "</table></form>\n";
|
print '</tr>';
|
||||||
print "<br>\n";
|
$i++;
|
||||||
|
}
|
||||||
|
print '</table>';
|
||||||
|
print '</form>';
|
||||||
|
print '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -109,6 +109,14 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
|
|||||||
$hookmanager->initHooks(array('projectlist'));
|
$hookmanager->initHooks(array('projectlist'));
|
||||||
$extrafields = new ExtraFields($db);
|
$extrafields = new ExtraFields($db);
|
||||||
|
|
||||||
|
// List of fields to search into when doing a "search in all"
|
||||||
|
$fieldstosearchall = array(
|
||||||
|
'p.ref'=>"Ref",
|
||||||
|
'p.title'=>"Label",
|
||||||
|
's.nom'=>"ThirdPartyName",
|
||||||
|
"p.note_public"=>"NotePublic"
|
||||||
|
);
|
||||||
|
if (empty($user->socid)) $fieldstosearchall["p.note_private"]="NotePrivate";
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -182,7 +190,7 @@ else if ($year > 0)
|
|||||||
{
|
{
|
||||||
$sql.= " AND p.datee BETWEEN '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'";
|
$sql.= " AND p.datee BETWEEN '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'";
|
||||||
}
|
}
|
||||||
if ($search_all) $sql .= natural_search(array('p.ref','p.title','s.nom'), $search_all);
|
if ($search_all) $sql .= natural_search(array_keys($fieldstosearchall), $search_all);
|
||||||
if ($search_status >= 0) $sql .= " AND p.fk_statut = ".$db->escape($search_status);
|
if ($search_status >= 0) $sql .= " AND p.fk_statut = ".$db->escape($search_status);
|
||||||
if ($search_opp_status)
|
if ($search_opp_status)
|
||||||
{
|
{
|
||||||
@ -234,8 +242,13 @@ if ($resql)
|
|||||||
|
|
||||||
print '<form method="GET" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form method="GET" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="action" value="list">';
|
||||||
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
print '<input type="hidden" name="type" value="'.$type.'">';
|
||||||
|
|
||||||
// Show description of content
|
// Show description of content
|
||||||
if ($mine) print $langs->trans("MyProjectsDesc").'<br><br>';
|
if ($mine) print $langs->trans("MyProjectsDesc").'<br><br>';
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -245,8 +258,8 @@ if ($resql)
|
|||||||
|
|
||||||
if ($search_all)
|
if ($search_all)
|
||||||
{
|
{
|
||||||
print $langs->trans("Filter")." (".$langs->trans("Ref").", ".$langs->trans("Label")." ".$langs->trans("or")." ".$langs->trans("ThirdParty")."): ";
|
foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
|
||||||
print '<strong>'.$search_all.'</strong>';
|
print $langs->trans("FilterOnInto", $search_all, join(', ',$fieldstosearchall));
|
||||||
}
|
}
|
||||||
|
|
||||||
$colspan=8;
|
$colspan=8;
|
||||||
|
|||||||
@ -33,6 +33,8 @@ $langs->load('projects');
|
|||||||
$langs->load('users');
|
$langs->load('users');
|
||||||
|
|
||||||
$id=GETPOST('id','int');
|
$id=GETPOST('id','int');
|
||||||
|
|
||||||
|
$search_all=GETPOST('search_all');
|
||||||
$search_project=GETPOST('search_project');
|
$search_project=GETPOST('search_project');
|
||||||
if (! isset($_GET['search_status']) && ! isset($_POST['search_status'])) $search_status=1;
|
if (! isset($_GET['search_status']) && ! isset($_POST['search_status'])) $search_status=1;
|
||||||
else $search_status=GETPOST('search_status');
|
else $search_status=GETPOST('search_status');
|
||||||
@ -55,8 +57,9 @@ $page = $page == -1 ? 0 : $page;
|
|||||||
$mine = $_REQUEST['mode']=='mine' ? 1 : 0;
|
$mine = $_REQUEST['mode']=='mine' ? 1 : 0;
|
||||||
|
|
||||||
// Purge criteria
|
// Purge criteria
|
||||||
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
||||||
{
|
{
|
||||||
|
$search_all="";
|
||||||
$search_project="";
|
$search_project="";
|
||||||
$search_status="";
|
$search_status="";
|
||||||
$search_task_ref="";
|
$search_task_ref="";
|
||||||
@ -64,6 +67,12 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
|
|||||||
}
|
}
|
||||||
if (empty($search_status) && $search_status == '') $search_status=1;
|
if (empty($search_status) && $search_status == '') $search_status=1;
|
||||||
|
|
||||||
|
// List of fields to search into when doing a "search in all"
|
||||||
|
$fieldstosearchall = array(
|
||||||
|
't.ref'=>"Ref",
|
||||||
|
't.label'=>"Label",
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
@ -107,6 +116,7 @@ $projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,1,$so
|
|||||||
// Get list of tasks in tasksarray and taskarrayfiltered
|
// Get list of tasks in tasksarray and taskarrayfiltered
|
||||||
// We need all tasks (even not limited to a user because a task assigned to a user can have a parent that is not assigned to him and we need such parents).
|
// We need all tasks (even not limited to a user because a task assigned to a user can have a parent that is not assigned to him and we need such parents).
|
||||||
$morewherefilter='';
|
$morewherefilter='';
|
||||||
|
if ($search_all) $morewherefilter.=natural_search(array_keys($fieldstosearchall), $search_all);
|
||||||
if ($search_task_ref) $morewherefilter.=natural_search('t.ref', $search_task_ref);
|
if ($search_task_ref) $morewherefilter.=natural_search('t.ref', $search_task_ref);
|
||||||
if ($search_task_label) $morewherefilter.=natural_search('t.label', $search_task_label);
|
if ($search_task_label) $morewherefilter.=natural_search('t.label', $search_task_label);
|
||||||
$tasksarray=$taskstatic->getTasksArray(0, 0, $projectstatic->id, $socid, 0, $search_project, $search_status, $morewherefilter, $search_project_user, $search_task_user);
|
$tasksarray=$taskstatic->getTasksArray(0, 0, $projectstatic->id, $socid, 0, $search_project, $search_status, $morewherefilter, $search_project_user, $search_task_user);
|
||||||
@ -114,8 +124,21 @@ $tasksarray=$taskstatic->getTasksArray(0, 0, $projectstatic->id, $socid, 0, $sea
|
|||||||
$tasksrole=($mine ? $taskstatic->getUserRolesForProjectsOrTasks(0,$user,$projectstatic->id,0) : '');
|
$tasksrole=($mine ? $taskstatic->getUserRolesForProjectsOrTasks(0,$user,$projectstatic->id,0) : '');
|
||||||
|
|
||||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
|
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="action" value="list">';
|
||||||
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
print '<input type="hidden" name="type" value="'.$type.'">';
|
||||||
print '<input type="hidden" name="mode" value="'.GETPOST('mode').'">';
|
print '<input type="hidden" name="mode" value="'.GETPOST('mode').'">';
|
||||||
|
|
||||||
|
if ($search_all)
|
||||||
|
{
|
||||||
|
foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
|
||||||
|
print $langs->trans("FilterOnInto", $search_all, join(', ',$fieldstosearchall));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// If the user can view users
|
// If the user can view users
|
||||||
if ($user->rights->user->user->lire)
|
if ($user->rights->user->user->lire)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -56,54 +56,43 @@ print load_fiche_titre($transAreaType,$linkback,'title_companies.png');
|
|||||||
print '<div class="fichecenter"><div class="fichethirdleft">';
|
print '<div class="fichecenter"><div class="fichethirdleft">';
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Search area
|
|
||||||
*/
|
|
||||||
$rowspan=2;
|
|
||||||
if (! empty($conf->barcode->enabled)) $rowspan++;
|
|
||||||
print '<form method="post" action="'.DOL_URL_ROOT.'/societe/list.php">';
|
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
|
||||||
print '<table class="noborder nohover" width="100%">'."\n";
|
|
||||||
print '<tr class="liste_titre">';
|
|
||||||
print '<th colspan="3">'.$langs->trans("SearchThirdparty").'</th></tr>';
|
|
||||||
print "<tr ".$bc[false]."><td>";
|
|
||||||
print '<label for="search_nom_only">'.$langs->trans("Name").'</label>:</td><td><input class="flat" type="text" size="14" name="search_nom_only" id="search_nom_only"></td>';
|
|
||||||
print '<td rowspan="'.$rowspan.'"><input type="submit" class="button" value="'.$langs->trans("Search").'"></td></tr>';
|
|
||||||
if (! empty($conf->barcode->enabled))
|
|
||||||
{
|
|
||||||
print "<tr ".$bc[false]."><td ".$bc[false].">";
|
|
||||||
print '<label for="sbarcode">'.$langs->trans("BarCode").'</label>:</td><td><input class="flat" type="text" size="14" name="sbarcode" id="sbarcode"></td>';
|
|
||||||
//print '<td><input type="submit" class="button" value="'.$langs->trans("Search").'"></td>';
|
|
||||||
print '</tr>';
|
|
||||||
}
|
|
||||||
print "<tr ".$bc[false]."><td ".$bc[false].">";
|
|
||||||
print '<label for="search_all">'.$langs->trans("Other").'</label>:</td><td '.$bc[false].'><input class="flat" type="text" size="14" name="search_all" id="search_all"></td>';
|
|
||||||
//print '<td><input type="submit" class="button" value="'.$langs->trans("Search").'"></td>';
|
|
||||||
print '</tr>'."\n";
|
|
||||||
print "</table></form><br>\n";
|
|
||||||
|
|
||||||
/*
|
// Search thirdparty
|
||||||
* Search contact
|
if (! empty($conf->societe->enabled) && $user->rights->societe->lire)
|
||||||
*/
|
{
|
||||||
$rowspan=2;
|
$listofsearchfields['search_thirdparty']=array('text'=>'Thirdparty');
|
||||||
if (! empty($conf->barcode->enabled)) $rowspan++;
|
}
|
||||||
print '<form method="post" action="'.DOL_URL_ROOT.'/contact/list.php">';
|
// Search contact/address
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'."\n";
|
if (! empty($conf->societe->enabled) && $user->rights->societe->lire)
|
||||||
print '<table class="noborder nohover" width="100%">'."\n";
|
{
|
||||||
print '<tr class="liste_titre">';
|
$listofsearchfields['search_contact']=array('text'=>'Contact');
|
||||||
print '<th colspan="3">'.$langs->trans("SearchContact").'</th></tr>'."\n";
|
}
|
||||||
print "<tr ".$bc[false]."><td>";
|
|
||||||
print '<label for="search_nom_only">'.$langs->trans("Name").'</label>:</td><td><input class="flat" type="text" size="14" name="search_firstlast_only" id="search_firstlast_only"></td>';
|
if (count($listofsearchfields))
|
||||||
print '<td rowspan="'.$rowspan.'"><input type="submit" class="button" value="'.$langs->trans("Search").'"></td></tr>'."\n";
|
{
|
||||||
print "<tr ".$bc[false]."><td ".$bc[false].">";
|
print '<form method="post" action="'.DOL_URL_ROOT.'/core/search.php">';
|
||||||
print '<label for="search_all">'.$langs->trans("Other").'</label>:</td><td '.$bc[false].'><input class="flat" type="text" size="14" name="contactname" id="contactname"></td>';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
//print '<td><input type="submit" class="button" value="'.$langs->trans("Search").'"></td>';
|
print '<table class="noborder nohover centpercent">';
|
||||||
print '</tr>'."\n";
|
$i=0;
|
||||||
print "</table></form><br>\n";
|
foreach($listofsearchfields as $key => $value)
|
||||||
|
{
|
||||||
|
if ($i == 0) print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("Search").'</td></tr>';
|
||||||
|
print '<tr>';
|
||||||
|
print '<td class="nowrap"><label for="'.$key.'">'.$langs->trans($value["text"]).'</label>:</td><td><input type="text" class="flat" name="'.$key.'" id="'.$key.'" size="18"></td>';
|
||||||
|
if ($i == 0) print '<td rowspan="'.count($listofsearchfields).'"><input type="submit" value="'.$langs->trans("Search").'" class="button"></td>';
|
||||||
|
print '</tr>';
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
print '</table>';
|
||||||
|
print '</form>';
|
||||||
|
print '<br>';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Statistics area
|
* Statistics area
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$third = array(
|
$third = array(
|
||||||
'customer' => 0,
|
'customer' => 0,
|
||||||
'prospect' => 0,
|
'prospect' => 0,
|
||||||
|
|||||||
@ -41,13 +41,16 @@ $socid = GETPOST('socid','int');
|
|||||||
if ($user->societe_id) $socid=$user->societe_id;
|
if ($user->societe_id) $socid=$user->societe_id;
|
||||||
$result = restrictedArea($user,'societe',$socid,'');
|
$result = restrictedArea($user,'societe',$socid,'');
|
||||||
|
|
||||||
|
$search_all=trim(GETPOST("sall"));
|
||||||
$search_nom=trim(GETPOST("search_nom"));
|
$search_nom=trim(GETPOST("search_nom"));
|
||||||
$search_nom_only=trim(GETPOST("search_nom_only"));
|
$search_nom_only=trim(GETPOST("search_nom_only"));
|
||||||
$search_all=trim(GETPOST("search_all"));
|
$search_barcode=trim(GETPOST("sbarcode"));
|
||||||
$sbarcode=trim(GETPOST("sbarcode"));
|
$search_customer_code=trim(GETPOST('search_customer_code'));
|
||||||
|
$search_supplier_code=trim(GETPOST('search_supplier_code'));
|
||||||
|
$search_account_customer_code=trim(GETPOST('search_account_customer_code'));
|
||||||
|
$search_account_supplier_code=trim(GETPOST('search_account_supplier_code'));
|
||||||
$search_town=trim(GETPOST("search_town"));
|
$search_town=trim(GETPOST("search_town"));
|
||||||
$search_zip=trim(GETPOST("search_zip"));
|
$search_zip=trim(GETPOST("search_zip"));
|
||||||
$socname=trim(GETPOST("socname"));
|
|
||||||
$search_idprof1=trim(GETPOST('search_idprof1'));
|
$search_idprof1=trim(GETPOST('search_idprof1'));
|
||||||
$search_idprof2=trim(GETPOST('search_idprof2'));
|
$search_idprof2=trim(GETPOST('search_idprof2'));
|
||||||
$search_idprof3=trim(GETPOST('search_idprof3'));
|
$search_idprof3=trim(GETPOST('search_idprof3'));
|
||||||
@ -63,7 +66,6 @@ $search_status=GETPOST("search_status",'int');
|
|||||||
|
|
||||||
$optioncss=GETPOST('optioncss','alpha');
|
$optioncss=GETPOST('optioncss','alpha');
|
||||||
$mode=GETPOST("mode");
|
$mode=GETPOST("mode");
|
||||||
$modesearch=GETPOST("mode_search");
|
|
||||||
|
|
||||||
$sortfield=GETPOST("sortfield",'alpha');
|
$sortfield=GETPOST("sortfield",'alpha');
|
||||||
$sortorder=GETPOST("sortorder",'alpha');
|
$sortorder=GETPOST("sortorder",'alpha');
|
||||||
@ -84,6 +86,24 @@ $extrafields = new ExtraFields($db);
|
|||||||
$extralabels = $extrafields->fetch_name_optionals_label('thirdparty');
|
$extralabels = $extrafields->fetch_name_optionals_label('thirdparty');
|
||||||
$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
|
$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
|
||||||
|
|
||||||
|
// List of fields to search into when doing a "search in all"
|
||||||
|
$fieldstosearchall = array(
|
||||||
|
's.nom'=>"ThirdPartyName",
|
||||||
|
's.name_alias'=>"AliasNameShort",
|
||||||
|
's.code_client'=>"CustomerCode",
|
||||||
|
"s.code_fournisseur"=>"SupplierCode",
|
||||||
|
's.email'=>"EMail",
|
||||||
|
's.url'=>"URL",
|
||||||
|
's.tva_intra'=>"VATIntra",
|
||||||
|
's.siren'=>"ProfId1",
|
||||||
|
's.siret'=>"ProfId2",
|
||||||
|
's.ape'=>"ProfId3",
|
||||||
|
);
|
||||||
|
if (($tmp = $langs->transnoentities("ProfId4".$mysoc->country_code)) && $tmp != "ProfId4".$mysoc->country_code && $tmp != '-') $fieldstosearchall['s.idprof4']='ProfId4';
|
||||||
|
if (($tmp = $langs->transnoentities("ProfId5".$mysoc->country_code)) && $tmp != "ProfId5".$mysoc->country_code && $tmp != '-') $fieldstosearchall['s.idprof5']='ProfId5';
|
||||||
|
if (($tmp = $langs->transnoentities("ProfId6".$mysoc->country_code)) && $tmp != "ProfId6".$mysoc->country_code && $tmp != '-') $fieldstosearchall['s.idprof6']='ProfId6';
|
||||||
|
if (!empty($conf->barcode->enabled)) $fieldstosearchall['s.barcode']='Gencod';
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
@ -94,34 +114,14 @@ include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
|||||||
// special search
|
// special search
|
||||||
if ($mode == 'search')
|
if ($mode == 'search')
|
||||||
{
|
{
|
||||||
$search_nom=$socname;
|
|
||||||
|
|
||||||
$sql = "SELECT s.rowid";
|
$sql = "SELECT s.rowid";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."societe as s";
|
$sql.= " FROM ".MAIN_DB_PREFIX."societe as s";
|
||||||
if ($search_sale || (!$user->rights->societe->client->voir && !$socid)) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
if ($search_sale || (!$user->rights->societe->client->voir && !$socid)) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
||||||
// We'll need this table joined to the select in order to filter by categ
|
// We'll need this table joined to the select in order to filter by categ
|
||||||
if ($search_categ) $sql.= ", ".MAIN_DB_PREFIX."categorie_societe as cs";
|
if ($search_categ) $sql.= ", ".MAIN_DB_PREFIX."categorie_societe as cs";
|
||||||
$sql.= " WHERE s.entity IN (".getEntity('societe', 1).")";
|
$sql.= " WHERE s.entity IN (".getEntity('societe', 1).")";
|
||||||
|
// sall criteria
|
||||||
// For natural search
|
$sql.= natural_search($fields, $sall);
|
||||||
$scrit = explode(' ', $socname);
|
|
||||||
|
|
||||||
$fields = array(
|
|
||||||
's.nom',
|
|
||||||
's.code_client',
|
|
||||||
's.email',
|
|
||||||
's.url',
|
|
||||||
's.siren',
|
|
||||||
's.name_alias'
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!empty($conf->barcode->enabled)) {
|
|
||||||
$fields[] = 's.barcode';
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($scrit as $crit) {
|
|
||||||
$sql.= natural_search($fields, $crit);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
|
if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
|
||||||
if ($socid) $sql.= " AND s.rowid = ".$socid;
|
if ($socid) $sql.= " AND s.rowid = ".$socid;
|
||||||
@ -180,15 +180,19 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETP
|
|||||||
{
|
{
|
||||||
$search_categ='';
|
$search_categ='';
|
||||||
$search_sale='';
|
$search_sale='';
|
||||||
$socname="";
|
$search_barcode="";
|
||||||
$search_nom="";
|
$search_customer_code='';
|
||||||
$sbarcode="";
|
$search_supplier_code='';
|
||||||
|
$search_account_customer_code='';
|
||||||
|
$search_account_supplier_code='';
|
||||||
$search_town="";
|
$search_town="";
|
||||||
$search_zip="";
|
$search_zip="";
|
||||||
$search_idprof1='';
|
$search_idprof1='';
|
||||||
$search_idprof2='';
|
$search_idprof2='';
|
||||||
$search_idprof3='';
|
$search_idprof3='';
|
||||||
$search_idprof4='';
|
$search_idprof4='';
|
||||||
|
$search_idprof5='';
|
||||||
|
$search_idprof6='';
|
||||||
$search_type='';
|
$search_type='';
|
||||||
$search_country='';
|
$search_country='';
|
||||||
$search_type_thirdparty='';
|
$search_type_thirdparty='';
|
||||||
@ -198,11 +202,6 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETP
|
|||||||
|
|
||||||
if ($search_status=='') $search_status=1; // always display active thirdparty first
|
if ($search_status=='') $search_status=1; // always display active thirdparty first
|
||||||
|
|
||||||
if ($socname)
|
|
||||||
{
|
|
||||||
$search_nom=$socname;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Mode List
|
* Mode List
|
||||||
@ -251,9 +250,13 @@ if ($search_categ) $sql.= " AND s.rowid = cs.fk_soc"; // Join for the neede
|
|||||||
if (! $user->rights->fournisseur->lire) $sql.=" AND (s.fournisseur <> 1 OR s.client <> 0)"; // client=0, fournisseur=0 must be visible
|
if (! $user->rights->fournisseur->lire) $sql.=" AND (s.fournisseur <> 1 OR s.client <> 0)"; // client=0, fournisseur=0 must be visible
|
||||||
if ($search_sale) $sql.= " AND sc.fk_user = ".$db->escape($search_sale);
|
if ($search_sale) $sql.= " AND sc.fk_user = ".$db->escape($search_sale);
|
||||||
if ($search_categ) $sql.= " AND cs.fk_categorie = ".$db->escape($search_categ);
|
if ($search_categ) $sql.= " AND cs.fk_categorie = ".$db->escape($search_categ);
|
||||||
|
if ($search_all) $sql.= natural_search(array_keys($fieldstosearchall), $search_all);
|
||||||
|
if ($search_nom) $sql.= natural_search("s.nom",$search_nom);
|
||||||
if ($search_nom_only) $sql.= natural_search("s.nom",$search_nom_only);
|
if ($search_nom_only) $sql.= natural_search("s.nom",$search_nom_only);
|
||||||
if ($search_all) $sql.= natural_search(array("s.nom", "s.name_alias", "s.code_client", "s.code_fournisseur", "s.email", "s.url","s.siren","s.siret","s.ape","s.idprof4","s.idprof5","s.idprof6"), $search_all);
|
if ($search_customer_code) $sql.= natural_search("s.code_client",$search_customer_code);
|
||||||
if ($search_nom) $sql.= natural_search(array("s.nom", "s.name_alias", "s.code_client", "s.code_fournisseur", "s.email", "s.url","s.siren","s.siret","s.ape","s.idprof4","s.idprof5","s.idprof6"), $search_nom);
|
if ($search_supplier_code) $sql.= natural_search("s.code_fournisseur",$search_supplier_code);
|
||||||
|
if ($search_account_customer_code) $sql.= natural_search("s.code_compta",$search_account_customer_code);
|
||||||
|
if ($search_account_supplier_code) $sql.= natural_search("s.code_compta_fournisseur",$search_account_supplier_code);
|
||||||
if ($search_town) $sql.= natural_search("s.town",$search_town);
|
if ($search_town) $sql.= natural_search("s.town",$search_town);
|
||||||
if ($search_zip) $sql.= natural_search("s.zip",$search_zip);
|
if ($search_zip) $sql.= natural_search("s.zip",$search_zip);
|
||||||
if ($search_idprof1) $sql.= natural_search("s.siren",$search_idprof1);
|
if ($search_idprof1) $sql.= natural_search("s.siren",$search_idprof1);
|
||||||
@ -267,7 +270,7 @@ if ($search_type > 0 && in_array($search_type,array('1,3','2,3'))) $sql .= " AND
|
|||||||
if ($search_type > 0 && in_array($search_type,array('4'))) $sql .= " AND s.fournisseur = 1";
|
if ($search_type > 0 && in_array($search_type,array('4'))) $sql .= " AND s.fournisseur = 1";
|
||||||
if ($search_type == '0') $sql .= " AND s.client = 0 AND s.fournisseur = 0";
|
if ($search_type == '0') $sql .= " AND s.client = 0 AND s.fournisseur = 0";
|
||||||
if ($search_status!='') $sql .= " AND s.status = ".$db->escape($search_status);
|
if ($search_status!='') $sql .= " AND s.status = ".$db->escape($search_status);
|
||||||
if (!empty($conf->barcode->enabled) && $sbarcode) $sql.= " AND s.barcode LIKE '%".$db->escape($sbarcode)."%'";
|
if (!empty($conf->barcode->enabled) && $search_barcode) $sql.= " AND s.barcode LIKE '%".$db->escape($search_barcode)."%'";
|
||||||
if ($search_country) $sql .= " AND s.fk_pays IN (".$search_country.')';
|
if ($search_country) $sql .= " AND s.fk_pays IN (".$search_country.')';
|
||||||
if ($search_type_thirdparty) $sql .= " AND s.fk_typent IN (".$search_type_thirdparty.')';
|
if ($search_type_thirdparty) $sql .= " AND s.fk_typent IN (".$search_type_thirdparty.')';
|
||||||
// Add where from extra fields
|
// Add where from extra fields
|
||||||
@ -305,11 +308,15 @@ if ($resql)
|
|||||||
$num = $db->num_rows($resql);
|
$num = $db->num_rows($resql);
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
$param = "&socname=".urlencode($socname);
|
$param = "&sall=".urlencode($sall);
|
||||||
$param.= "&search_nom=".urlencode($search_nom);
|
$param.= "&search_nom=".urlencode($search_nom);
|
||||||
$param.= "&search_town=".urlencode($search_town);
|
$param.= "&search_town=".urlencode($search_town);
|
||||||
$param.= "&search_zip=".urlencode($search_zip);
|
$param.= "&search_zip=".urlencode($search_zip);
|
||||||
$param.= ($sbarcode?"&sbarcode=".urlencode($sbarcode):"");
|
$param.= "&search_customer_code=".urlencode($search_customer_code);
|
||||||
|
$param.= "&search_supplier_code=".urlencode($search_supplier_code);
|
||||||
|
$param.= "&search_account_customer_code=".urlencode($search_account_customer_code);
|
||||||
|
$param.= "&search_account_supplier_code=".urlencode($search_account_supplier_code);
|
||||||
|
$param.= ($search_barcode?"&sbarcode=".urlencode($search_barcode):"");
|
||||||
$param.= '&search_idprof1='.urlencode($search_idprof1);
|
$param.= '&search_idprof1='.urlencode($search_idprof1);
|
||||||
$param.= '&search_idprof2='.urlencode($search_idprof2);
|
$param.= '&search_idprof2='.urlencode($search_idprof2);
|
||||||
$param.= '&search_idprof3='.urlencode($search_idprof3);
|
$param.= '&search_idprof3='.urlencode($search_idprof3);
|
||||||
@ -336,7 +343,7 @@ if ($resql)
|
|||||||
|
|
||||||
$langs->load("other");
|
$langs->load("other");
|
||||||
$textprofid=array();
|
$textprofid=array();
|
||||||
foreach(array(1,2,3,4) as $key)
|
foreach(array(1,2,3,4,5,6) as $key)
|
||||||
{
|
{
|
||||||
$label=$langs->transnoentities("ProfId".$key.$mysoc->country_code);
|
$label=$langs->transnoentities("ProfId".$key.$mysoc->country_code);
|
||||||
$textprofid[$key]='';
|
$textprofid[$key]='';
|
||||||
@ -354,7 +361,13 @@ if ($resql)
|
|||||||
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
|
||||||
// Filter on categories
|
if ($search_all)
|
||||||
|
{
|
||||||
|
foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
|
||||||
|
print $langs->trans("FilterOnInto", $search_all, join(', ',$fieldstosearchall));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filter on categories
|
||||||
/* Not possible in this page because list is for ALL third parties type
|
/* Not possible in this page because list is for ALL third parties type
|
||||||
$moreforfilter='';
|
$moreforfilter='';
|
||||||
if (! empty($conf->categorie->enabled))
|
if (! empty($conf->categorie->enabled))
|
||||||
@ -384,17 +397,27 @@ if ($resql)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Define list of fields to show into list
|
// Define list of fields to show into list
|
||||||
|
$checkedcustomercode=1;
|
||||||
|
$checkedsuppliercode=1;
|
||||||
|
$checkedcustomeraccountcode=0;
|
||||||
|
$checkedsupplieraccountcode=0;
|
||||||
$arrayfields=array(
|
$arrayfields=array(
|
||||||
's.nom'=>array('label'=>$langs->trans("Company"), 'checked'=>1),
|
's.nom'=>array('label'=>$langs->trans("Company"), 'checked'=>1),
|
||||||
's.barcode'=>array('label'=>$langs->trans("BarCode"), 'checked'=>1, 'enabled'=>(! empty($conf->barcode->enabled))),
|
's.barcode'=>array('label'=>$langs->trans("Gencod"), 'checked'=>1, 'enabled'=>(! empty($conf->barcode->enabled))),
|
||||||
|
's.code_client'=>array('label'=>$langs->trans("CustomerCodeShort"), 'checked'=>$checkedcustomercode),
|
||||||
|
's.code_fournisseur'=>array('label'=>$langs->trans("SupplierCodeShort"), 'checked'=>$checkedsuppliercode, 'enabled'=>(! empty($conf->fournisseur->enabled))),
|
||||||
|
's.code_compta'=>array('label'=>$langs->trans("CustomerAccountancyCodeShort"), 'checked'=>$checkedcustomeraccountcode),
|
||||||
|
's.code_compta_fournisseur'=>array('label'=>$langs->trans("SupplierAccountancyCodeShort"), 'checked'=>$checkedsupplieraccountcode, 'enabled'=>(! empty($conf->fournisseur->enabled))),
|
||||||
's.town'=>array('label'=>$langs->trans("Town"), 'checked'=>1),
|
's.town'=>array('label'=>$langs->trans("Town"), 'checked'=>1),
|
||||||
's.zip'=>array('label'=>$langs->trans("Zip"), 'checked'=>1),
|
's.zip'=>array('label'=>$langs->trans("Zip"), 'checked'=>1),
|
||||||
'country.code_iso'=>array('label'=>$langs->trans("Country"), 'checked'=>1),
|
'country.code_iso'=>array('label'=>$langs->trans("Country"), 'checked'=>0),
|
||||||
'typent.code'=>array('label'=>$langs->trans("ThirdPartyType"), 'checked'=>1),
|
'typent.code'=>array('label'=>$langs->trans("ThirdPartyType"), 'checked'=>1),
|
||||||
's.siren'=>array('label'=>$langs->trans("ProfId1Short"), 'checked'=>1),
|
's.siren'=>array('label'=>$langs->trans("ProfId1Short"), 'checked'=>1),
|
||||||
's.siret'=>array('label'=>$langs->trans("ProfId2Short"), 'checked'=>1),
|
's.siret'=>array('label'=>$langs->trans("ProfId2Short"), 'checked'=>1),
|
||||||
's.ape'=>array('label'=>$langs->trans("ProfId3Short"), 'checked'=>1),
|
's.ape'=>array('label'=>$langs->trans("ProfId3Short"), 'checked'=>1),
|
||||||
's.idprof4'=>array('label'=>$langs->trans("ProfId4Short"), 'checked'=>1),
|
's.idprof4'=>array('label'=>$langs->trans("ProfId4Short"), 'checked'=>((($tmp = $langs->transnoentities("ProfId4".$mysoc->country_code)) && $tmp != "ProfId4".$mysoc->country_code && $tmp != '-') ? 1 : 0)),
|
||||||
|
's.idprof5'=>array('label'=>$langs->trans("ProfId5Short"), 'checked'=>((($tmp = $langs->transnoentities("ProfId5".$mysoc->country_code)) && $tmp != "ProfId5".$mysoc->country_code && $tmp != '-') ? 1 : 0)),
|
||||||
|
's.idprof6'=>array('label'=>$langs->trans("ProfId6Short"), 'checked'=>((($tmp = $langs->transnoentities("ProfId6".$mysoc->country_code)) && $tmp != "ProfId6".$mysoc->country_code && $tmp != '-') ? 1 : 0)),
|
||||||
's.status'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>200),
|
's.status'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>200),
|
||||||
's.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500),
|
's.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500),
|
||||||
's.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500),
|
's.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500),
|
||||||
@ -405,7 +428,11 @@ if ($resql)
|
|||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
if (! empty($arrayfields['s.nom']['checked'])) print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
|
if (! empty($arrayfields['s.nom']['checked'])) print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
|
||||||
if (! empty($arrayfields['s.barcode']['checked'])) print_liste_field_titre($langs->trans("BarCode"), $_SERVER["PHP_SELF"], "s.barcode",$param,'','',$sortfield,$sortorder);
|
if (! empty($arrayfields['s.barcode']['checked'])) print_liste_field_titre($langs->trans("Gencod"), $_SERVER["PHP_SELF"], "s.barcode",$param,'','',$sortfield,$sortorder);
|
||||||
|
if (! empty($arrayfields['s.code_client']['checked'])) print_liste_field_titre($arrayfields['s.code_client']['label'],$_SERVER["PHP_SELF"],"s.code_client","",$param,'',$sortfield,$sortorder);
|
||||||
|
if (! empty($arrayfields['s.code_fournisseur']['checked'])) print_liste_field_titre($arrayfields['s.code_fournisseur']['label'],$_SERVER["PHP_SELF"],"s.code_fournisseur","",$param,'',$sortfield,$sortorder);
|
||||||
|
if (! empty($arrayfields['s.code_compta']['checked'])) print_liste_field_titre($arrayfields['s.code_compta']['label'],$_SERVER["PHP_SELF"],"s.code_compta","",$param,'',$sortfield,$sortorder);
|
||||||
|
if (! empty($arrayfields['s.code_compta_fournisseur']['checked'])) print_liste_field_titre($arrayfields['s.code_compta_fournisseur']['label'],$_SERVER["PHP_SELF"],"s.code_compta_fournisseur","",$param,'',$sortfield,$sortorder);
|
||||||
if (! empty($arrayfields['s.town']['checked'])) print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.town","",$param,'',$sortfield,$sortorder);
|
if (! empty($arrayfields['s.town']['checked'])) print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.town","",$param,'',$sortfield,$sortorder);
|
||||||
if (! empty($arrayfields['s.zip']['checked'])) print_liste_field_titre($langs->trans("Zip"),$_SERVER["PHP_SELF"],"s.zip","",$param,'',$sortfield,$sortorder);
|
if (! empty($arrayfields['s.zip']['checked'])) print_liste_field_titre($langs->trans("Zip"),$_SERVER["PHP_SELF"],"s.zip","",$param,'',$sortfield,$sortorder);
|
||||||
if (! empty($arrayfields['country.code_iso']['checked'])) print_liste_field_titre($langs->trans("Country"),$_SERVER["PHP_SELF"],"country.code_iso","",$param,'align="center"',$sortfield,$sortorder);
|
if (! empty($arrayfields['country.code_iso']['checked'])) print_liste_field_titre($langs->trans("Country"),$_SERVER["PHP_SELF"],"country.code_iso","",$param,'align="center"',$sortfield,$sortorder);
|
||||||
@ -414,6 +441,8 @@ if ($resql)
|
|||||||
if (! empty($arrayfields['s.siret']['checked'])) print_liste_field_titre($form->textwithpicto($langs->trans("ProfId2Short"),$textprofid[2],1,0),$_SERVER["PHP_SELF"],"s.siret","",$param,'class="nowrap"',$sortfield,$sortorder);
|
if (! empty($arrayfields['s.siret']['checked'])) print_liste_field_titre($form->textwithpicto($langs->trans("ProfId2Short"),$textprofid[2],1,0),$_SERVER["PHP_SELF"],"s.siret","",$param,'class="nowrap"',$sortfield,$sortorder);
|
||||||
if (! empty($arrayfields['s.ape']['checked'])) print_liste_field_titre($form->textwithpicto($langs->trans("ProfId3Short"),$textprofid[3],1,0),$_SERVER["PHP_SELF"],"s.ape","",$param,'class="nowrap"',$sortfield,$sortorder);
|
if (! empty($arrayfields['s.ape']['checked'])) print_liste_field_titre($form->textwithpicto($langs->trans("ProfId3Short"),$textprofid[3],1,0),$_SERVER["PHP_SELF"],"s.ape","",$param,'class="nowrap"',$sortfield,$sortorder);
|
||||||
if (! empty($arrayfields['s.idprof4']['checked'])) print_liste_field_titre($form->textwithpicto($langs->trans("ProfId4Short"),$textprofid[4],1,0),$_SERVER["PHP_SELF"],"s.idprof4","",$param,'class="nowrap"',$sortfield,$sortorder);
|
if (! empty($arrayfields['s.idprof4']['checked'])) print_liste_field_titre($form->textwithpicto($langs->trans("ProfId4Short"),$textprofid[4],1,0),$_SERVER["PHP_SELF"],"s.idprof4","",$param,'class="nowrap"',$sortfield,$sortorder);
|
||||||
|
if (! empty($arrayfields['s.idprof5']['checked'])) print_liste_field_titre($form->textwithpicto($langs->trans("ProfId5Short"),$textprofid[4],1,0),$_SERVER["PHP_SELF"],"s.idprof5","",$param,'class="nowrap"',$sortfield,$sortorder);
|
||||||
|
if (! empty($arrayfields['s.idprof6']['checked'])) print_liste_field_titre($form->textwithpicto($langs->trans("ProfId6Short"),$textprofid[4],1,0),$_SERVER["PHP_SELF"],"s.idprof6","",$param,'class="nowrap"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre(''); // type of customer
|
print_liste_field_titre(''); // type of customer
|
||||||
// Extra fields
|
// Extra fields
|
||||||
if (is_array($extrafields->attribute_list) && count($extrafields->attribute_list))
|
if (is_array($extrafields->attribute_list) && count($extrafields->attribute_list))
|
||||||
@ -449,10 +478,38 @@ if ($resql)
|
|||||||
if (! empty($arrayfields['s.barcode']['checked']))
|
if (! empty($arrayfields['s.barcode']['checked']))
|
||||||
{
|
{
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
print '<input class="flat" type="text" name="sbarcode" size="6" value="'.dol_escape_htmltag($sbarcode).'">';
|
print '<input class="flat" type="text" name="sbarcode" size="6" value="'.dol_escape_htmltag($search_barcode).'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
// Town
|
// Customer code
|
||||||
|
if (! empty($arrayfields['s.code_client']['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="liste_titre">';
|
||||||
|
print '<input class="flat" size="8" type="text" name="search_customer_code" value="'.dol_escape_htmltag($search_customer_code).'">';
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
// Supplier code
|
||||||
|
if (! empty($arrayfields['s.code_fournisseur']['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="liste_titre">';
|
||||||
|
print '<input class="flat" size="8" type="text" name="search_supplier_code" value="'.dol_escape_htmltag($search_supplier_code).'">';
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
// Account Customer code
|
||||||
|
if (! empty($arrayfields['s.code_compta']['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="liste_titre">';
|
||||||
|
print '<input class="flat" size="8" type="text" name="search_account_customer_code" value="'.dol_escape_htmltag($search_account_customer_code).'">';
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
// Account Supplier code
|
||||||
|
if (! empty($arrayfields['s.code_compta_fournisseur']['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="liste_titre">';
|
||||||
|
print '<input class="flat" size="8" type="text" name="search_account_supplier_code" value="'.dol_escape_htmltag($search_account_supplier_code).'">';
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
// Town
|
||||||
if (! empty($arrayfields['s.town']['checked']))
|
if (! empty($arrayfields['s.town']['checked']))
|
||||||
{
|
{
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
@ -508,7 +565,21 @@ if ($resql)
|
|||||||
print '<input class="flat" size="4" type="text" name="search_idprof4" value="'.dol_escape_htmltag($search_idprof4).'">';
|
print '<input class="flat" size="4" type="text" name="search_idprof4" value="'.dol_escape_htmltag($search_idprof4).'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
// Type (customer/prospect/supplier)
|
if (! empty($arrayfields['s.idprof5']['checked']))
|
||||||
|
{
|
||||||
|
// IdProf5
|
||||||
|
print '<td class="liste_titre">';
|
||||||
|
print '<input class="flat" size="4" type="text" name="search_idprof5" value="'.dol_escape_htmltag($search_idprof5).'">';
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
if (! empty($arrayfields['s.idprof6']['checked']))
|
||||||
|
{
|
||||||
|
// IdProf6
|
||||||
|
print '<td class="liste_titre">';
|
||||||
|
print '<input class="flat" size="4" type="text" name="search_idprof6" value="'.dol_escape_htmltag($search_idprof6).'">';
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
// Type (customer/prospect/supplier)
|
||||||
print '<td class="liste_titre" align="middle">';
|
print '<td class="liste_titre" align="middle">';
|
||||||
print '<select class="flat" name="search_type">';
|
print '<select class="flat" name="search_type">';
|
||||||
print '<option value="-1"'.($search_type==''?' selected':'').'> </option>';
|
print '<option value="-1"'.($search_type==''?' selected':'').'> </option>';
|
||||||
@ -573,7 +644,27 @@ if ($resql)
|
|||||||
// Barcode
|
// Barcode
|
||||||
if (! empty($arrayfields['s.barcode']['checked']))
|
if (! empty($arrayfields['s.barcode']['checked']))
|
||||||
{
|
{
|
||||||
print '<td>'.$objp->barcode.'</td>';
|
print '<td>'.$obj->barcode.'</td>';
|
||||||
|
}
|
||||||
|
// Customer code
|
||||||
|
if (! empty($arrayfields['s.code_client']['checked']))
|
||||||
|
{
|
||||||
|
print '<td>'.$obj->code_client.'</td>';
|
||||||
|
}
|
||||||
|
// Supplier code
|
||||||
|
if (! empty($arrayfields['s.code_fournisseur']['checked']))
|
||||||
|
{
|
||||||
|
print '<td>'.$obj->code_fournisseur.'</td>';
|
||||||
|
}
|
||||||
|
// Account customer code
|
||||||
|
if (! empty($arrayfields['s.code_compta']['checked']))
|
||||||
|
{
|
||||||
|
print '<td>'.$obj->code_compta.'</td>';
|
||||||
|
}
|
||||||
|
// Account supplier code
|
||||||
|
if (! empty($arrayfields['s.code_compta_fournisseur']['checked']))
|
||||||
|
{
|
||||||
|
print '<td>'.$obj->code_compta_fournisseur.'</td>';
|
||||||
}
|
}
|
||||||
// Town
|
// Town
|
||||||
if (! empty($arrayfields['s.town']['checked']))
|
if (! empty($arrayfields['s.town']['checked']))
|
||||||
@ -613,9 +704,17 @@ if ($resql)
|
|||||||
{
|
{
|
||||||
print "<td>".$obj->idprof3."</td>\n";
|
print "<td>".$obj->idprof3."</td>\n";
|
||||||
}
|
}
|
||||||
if (! empty($arrayfields['s.idprof4']['checked']))
|
if (! empty($arrayfields['s.idprof4']['checked']))
|
||||||
{
|
{
|
||||||
print "<td>".$obj->idprof4."</td>\n";
|
print "<td>".$obj->idprof4."</td>\n";
|
||||||
|
}
|
||||||
|
if (! empty($arrayfields['s.idprof5']['checked']))
|
||||||
|
{
|
||||||
|
print "<td>".$obj->idprof5."</td>\n";
|
||||||
|
}
|
||||||
|
if (! empty($arrayfields['s.idprof6']['checked']))
|
||||||
|
{
|
||||||
|
print "<td>".$obj->idprof6."</td>\n";
|
||||||
}
|
}
|
||||||
print '<td align="center">';
|
print '<td align="center">';
|
||||||
$s='';
|
$s='';
|
||||||
|
|||||||
@ -107,186 +107,184 @@ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'e
|
|||||||
|
|
||||||
if (empty($reshook)) {
|
if (empty($reshook)) {
|
||||||
|
|
||||||
if ($action == 'confirm_disable' && $confirm == "yes" && $candisableuser) {
|
if ($action == 'confirm_disable' && $confirm == "yes" && $candisableuser) {
|
||||||
if ($id <> $user->id) {
|
if ($id <> $user->id) {
|
||||||
$object->fetch($id);
|
$object->fetch($id);
|
||||||
$object->setstatus(0);
|
$object->setstatus(0);
|
||||||
header("Location: ".$_SERVER['PHP_SELF'].'?id='.$id);
|
header("Location: ".$_SERVER['PHP_SELF'].'?id='.$id);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($action == 'confirm_enable' && $confirm == "yes" && $candisableuser) {
|
if ($action == 'confirm_enable' && $confirm == "yes" && $candisableuser) {
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
if ($id <> $user->id) {
|
if ($id <> $user->id) {
|
||||||
$object->fetch($id);
|
$object->fetch($id);
|
||||||
|
|
||||||
if (!empty($conf->file->main_limit_users)) {
|
if (!empty($conf->file->main_limit_users)) {
|
||||||
$nb = $object->getNbOfUsers("active");
|
$nb = $object->getNbOfUsers("active");
|
||||||
if ($nb >= $conf->file->main_limit_users) {
|
if ($nb >= $conf->file->main_limit_users) {
|
||||||
$error ++;
|
$error ++;
|
||||||
setEventMessage($langs->trans("YourQuotaOfUsersIsReached"), 'errors');
|
setEventMessage($langs->trans("YourQuotaOfUsersIsReached"), 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
$object->setstatus(1);
|
$object->setstatus(1);
|
||||||
header("Location: ".$_SERVER['PHP_SELF'].'?id='.$id);
|
header("Location: ".$_SERVER['PHP_SELF'].'?id='.$id);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'confirm_delete' && $confirm == "yes" && $candisableuser) {
|
if ($action == 'confirm_delete' && $confirm == "yes" && $candisableuser) {
|
||||||
if ($id <> $user->id) {
|
if ($id <> $user->id) {
|
||||||
$object = new User($db);
|
$object = new User($db);
|
||||||
$object->id = $id;
|
$object->id = $id;
|
||||||
$result = $object->delete();
|
$result = $object->delete();
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
setEventMessage($langs->trans("ErrorUserCannotBeDelete"), 'errors');
|
setEventMessage($langs->trans("ErrorUserCannotBeDelete"), 'errors');
|
||||||
} else {
|
} else {
|
||||||
header("Location: index.php");
|
header("Location: index.php");
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Action Add user
|
// Action Add user
|
||||||
if ($action == 'add' && $canadduser) {
|
if ($action == 'add' && $canadduser) {
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
if (!$_POST["lastname"]) {
|
if (!$_POST["lastname"]) {
|
||||||
$error ++;
|
$error ++;
|
||||||
setEventMessage($langs->trans("NameNotDefined"), 'errors');
|
setEventMessage($langs->trans("NameNotDefined"), 'errors');
|
||||||
$action = "create"; // Go back to create page
|
$action = "create"; // Go back to create page
|
||||||
}
|
}
|
||||||
if (!$_POST["login"]) {
|
if (!$_POST["login"]) {
|
||||||
$error ++;
|
$error ++;
|
||||||
setEventMessage($langs->trans("LoginNotDefined"), 'errors');
|
setEventMessage($langs->trans("LoginNotDefined"), 'errors');
|
||||||
$action = "create"; // Go back to create page
|
$action = "create"; // Go back to create page
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($conf->file->main_limit_users)) // If option to limit users is set
|
if (!empty($conf->file->main_limit_users)) { // If option to limit users is set
|
||||||
{
|
$nb = $object->getNbOfUsers("active");
|
||||||
$nb = $object->getNbOfUsers("active");
|
if ($nb >= $conf->file->main_limit_users) {
|
||||||
if ($nb >= $conf->file->main_limit_users) {
|
$error ++;
|
||||||
$error ++;
|
setEventMessage($langs->trans("YourQuotaOfUsersIsReached"), 'errors');
|
||||||
setEventMessage($langs->trans("YourQuotaOfUsersIsReached"), 'errors');
|
$action = "create"; // Go back to create page
|
||||||
$action = "create"; // Go back to create page
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
$object->lastname = GETPOST("lastname", 'alpha');
|
$object->lastname = GETPOST("lastname", 'alpha');
|
||||||
$object->firstname = GETPOST("firstname", 'alpha');
|
$object->firstname = GETPOST("firstname", 'alpha');
|
||||||
$object->login = GETPOST("login", 'alpha');
|
$object->login = GETPOST("login", 'alpha');
|
||||||
$object->api_key = GETPOST("api_key", 'alpha');
|
$object->api_key = GETPOST("api_key", 'alpha');
|
||||||
$object->gender = GETPOST("gender", 'alpha');
|
$object->gender = GETPOST("gender", 'alpha');
|
||||||
$object->admin = GETPOST("admin", 'alpha');
|
$object->admin = GETPOST("admin", 'alpha');
|
||||||
$object->office_phone = GETPOST("office_phone", 'alpha');
|
$object->office_phone = GETPOST("office_phone", 'alpha');
|
||||||
$object->office_fax = GETPOST("office_fax", 'alpha');
|
$object->office_fax = GETPOST("office_fax", 'alpha');
|
||||||
$object->user_mobile = GETPOST("user_mobile");
|
$object->user_mobile = GETPOST("user_mobile");
|
||||||
$object->skype = GETPOST("skype");
|
$object->skype = GETPOST("skype");
|
||||||
$object->email = GETPOST("email", 'alpha');
|
$object->email = GETPOST("email", 'alpha');
|
||||||
$object->job = GETPOST("job", 'alpha');
|
$object->job = GETPOST("job", 'alpha');
|
||||||
$object->signature = GETPOST("signature");
|
$object->signature = GETPOST("signature");
|
||||||
$object->accountancy_code = GETPOST("accountancy_code");
|
$object->accountancy_code = GETPOST("accountancy_code");
|
||||||
$object->note = GETPOST("note");
|
$object->note = GETPOST("note");
|
||||||
$object->ldap_sid = GETPOST("ldap_sid");
|
$object->ldap_sid = GETPOST("ldap_sid");
|
||||||
$object->fk_user = GETPOST("fk_user") > 0 ? GETPOST("fk_user") : 0;
|
$object->fk_user = GETPOST("fk_user") > 0 ? GETPOST("fk_user") : 0;
|
||||||
|
|
||||||
$object->thm = GETPOST("thm") != '' ? GETPOST("thm") : '';
|
$object->thm = GETPOST("thm") != '' ? GETPOST("thm") : '';
|
||||||
$object->tjm = GETPOST("tjm") != '' ? GETPOST("tjm") : '';
|
$object->tjm = GETPOST("tjm") != '' ? GETPOST("tjm") : '';
|
||||||
$object->salary = GETPOST("salary") != '' ? GETPOST("salary") : '';
|
$object->salary = GETPOST("salary") != '' ? GETPOST("salary") : '';
|
||||||
$object->salaryextra = GETPOST("salaryextra") != '' ? GETPOST("salaryextra") : '';
|
$object->salaryextra = GETPOST("salaryextra") != '' ? GETPOST("salaryextra") : '';
|
||||||
$object->weeklyhours = GETPOST("weeklyhours") != '' ? GETPOST("weeklyhours") : '';
|
$object->weeklyhours = GETPOST("weeklyhours") != '' ? GETPOST("weeklyhours") : '';
|
||||||
|
|
||||||
$object->color = GETPOST("color") != '' ? GETPOST("color") : '';
|
$object->color = GETPOST("color") != '' ? GETPOST("color") : '';
|
||||||
|
|
||||||
// Fill array 'array_options' with data from add form
|
// Fill array 'array_options' with data from add form
|
||||||
$ret = $extrafields->setOptionalsFromPost($extralabels, $object);
|
$ret = $extrafields->setOptionalsFromPost($extralabels, $object);
|
||||||
if ($ret < 0) {
|
if ($ret < 0) {
|
||||||
$error ++;
|
$error ++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set entity property
|
// Set entity property
|
||||||
$entity = GETPOST('entity', 'int');
|
$entity = GETPOST('entity', 'int');
|
||||||
if (!empty($conf->multicompany->enabled)) {
|
if (!empty($conf->multicompany->enabled)) {
|
||||||
if (!empty($_POST["superadmin"])) {
|
if (!empty($_POST["superadmin"])) {
|
||||||
$object->entity = 0;
|
$object->entity = 0;
|
||||||
} else {
|
} else {
|
||||||
if ($conf->multicompany->transverse_mode) {
|
if ($conf->multicompany->transverse_mode) {
|
||||||
$object->entity = 1; // all users are forced into master entity
|
$object->entity = 1; // all users are forced into master entity
|
||||||
} else {
|
} else {
|
||||||
$object->entity = ($entity == '' ? 1 : $entity);
|
$object->entity = ($entity == '' ? 1 : $entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$object->entity = ($entity == '' ? 1 : $entity);
|
$object->entity = ($entity == '' ? 1 : $entity);
|
||||||
/*if ($user->admin && $user->entity == 0 && GETPOST("admin",'alpha'))
|
/*if ($user->admin && $user->entity == 0 && GETPOST("admin",'alpha'))
|
||||||
{
|
{
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
$id = $object->create($user);
|
$id = $object->create($user);
|
||||||
if ($id > 0) {
|
if ($id > 0) {
|
||||||
if (isset($_POST['password']) && trim($_POST['password'])) {
|
if (isset($_POST['password']) && trim($_POST['password'])) {
|
||||||
$object->setPassword($user, trim($_POST['password']));
|
$object->setPassword($user, trim($_POST['password']));
|
||||||
}
|
}
|
||||||
|
|
||||||
$db->commit();
|
$db->commit();
|
||||||
|
|
||||||
header("Location: ".$_SERVER['PHP_SELF'].'?id='.$id);
|
header("Location: ".$_SERVER['PHP_SELF'].'?id='.$id);
|
||||||
exit;
|
exit;
|
||||||
} else {
|
} else {
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
if (is_array($object->errors) && count($object->errors)) {
|
if (is_array($object->errors) && count($object->errors)) {
|
||||||
setEventMessage($object->errors, 'errors');
|
setEventMessage($object->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
setEventMessage($object->error, 'errors');
|
setEventMessage($object->error, 'errors');
|
||||||
}
|
}
|
||||||
$action = "create"; // Go back to create page
|
$action = "create"; // Go back to create page
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
// Action add usergroup
|
||||||
}
|
if (($action == 'addgroup' || $action == 'removegroup') && $caneditfield)
|
||||||
|
{
|
||||||
|
if ($group)
|
||||||
|
{
|
||||||
|
$editgroup = new UserGroup($db);
|
||||||
|
$editgroup->fetch($group);
|
||||||
|
$editgroup->oldcopy=clone $editgroup;
|
||||||
|
|
||||||
// Action add usergroup
|
$object->fetch($id);
|
||||||
if (($action == 'addgroup' || $action == 'removegroup') && $caneditfield)
|
if ($action == 'addgroup') {
|
||||||
{
|
$object->SetInGroup($group, ($conf->multicompany->transverse_mode ? GETPOST("entity") : $editgroup->entity));
|
||||||
if ($group)
|
}
|
||||||
{
|
if ($action == 'removegroup') {
|
||||||
$editgroup = new UserGroup($db);
|
$object->RemoveFromGroup($group, ($conf->multicompany->transverse_mode ? GETPOST("entity") : $editgroup->entity));
|
||||||
$editgroup->fetch($group);
|
}
|
||||||
$editgroup->oldcopy=clone $editgroup;
|
|
||||||
|
|
||||||
$object->fetch($id);
|
if ($result > 0) {
|
||||||
if ($action == 'addgroup') {
|
header("Location: ".$_SERVER['PHP_SELF'].'?id='.$id);
|
||||||
$object->SetInGroup($group, ($conf->multicompany->transverse_mode ? GETPOST("entity") : $editgroup->entity));
|
exit;
|
||||||
}
|
} else {
|
||||||
if ($action == 'removegroup') {
|
setEventMessage($object->error, 'errors');
|
||||||
$object->RemoveFromGroup($group, ($conf->multicompany->transverse_mode ? GETPOST("entity") : $editgroup->entity));
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($result > 0) {
|
if ($action == 'update' && !$_POST["cancel"]) {
|
||||||
header("Location: ".$_SERVER['PHP_SELF'].'?id='.$id);
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
exit;
|
|
||||||
} else {
|
|
||||||
setEventMessage($object->error, 'errors');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($action == 'update' && !$_POST["cancel"]) {
|
if ($caneditfield) // Case we can edit all field
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
{
|
||||||
|
$error = 0;
|
||||||
if ($caneditfield) // Case we can edit all field
|
|
||||||
{
|
|
||||||
$error = 0;
|
|
||||||
|
|
||||||
if (!$_POST["lastname"]) {
|
if (!$_POST["lastname"]) {
|
||||||
setEventMessage($langs->trans("NameNotDefined"), 'errors');
|
setEventMessage($langs->trans("NameNotDefined"), 'errors');
|
||||||
@ -493,9 +491,8 @@ if (($action == 'addgroup' || $action == 'removegroup') && $caneditfield)
|
|||||||
setEventMessage($object->error, 'errors');
|
setEventMessage($object->error, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Change password with a new generated one
|
// Change password with a new generated one
|
||||||
if ((($action == 'confirm_password' && $confirm == 'yes')
|
if ((($action == 'confirm_password' && $confirm == 'yes')
|
||||||
|| ($action == 'confirm_passwordsend' && $confirm == 'yes')) && $caneditpassword
|
|| ($action == 'confirm_passwordsend' && $confirm == 'yes')) && $caneditpassword
|
||||||
) {
|
) {
|
||||||
@ -519,7 +516,7 @@ if (($action == 'addgroup' || $action == 'removegroup') && $caneditfield)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Action initialisation donnees depuis record LDAP
|
// Action initialisation donnees depuis record LDAP
|
||||||
if ($action == 'adduserldap') {
|
if ($action == 'adduserldap') {
|
||||||
$selecteduser = $_POST['users'];
|
$selecteduser = $_POST['users'];
|
||||||
|
|
||||||
@ -1154,14 +1151,14 @@ else
|
|||||||
dol_fiche_head($head, 'user', $title, 0, 'user');
|
dol_fiche_head($head, 'user', $title, 0, 'user');
|
||||||
|
|
||||||
dol_banner_tab($object,'id','',$user->rights->user->user->lire || $user->admin);
|
dol_banner_tab($object,'id','',$user->rights->user->user->lire || $user->admin);
|
||||||
|
|
||||||
|
|
||||||
print '<div class="fichecenter">';
|
print '<div class="fichecenter">';
|
||||||
print '<div class="fichehalfleft">';
|
print '<div class="fichehalfleft">';
|
||||||
|
|
||||||
print '<div class="underbanner clearboth"></div>';
|
print '<div class="underbanner clearboth"></div>';
|
||||||
print '<table class="border tableforfield" width="100%">';
|
print '<table class="border tableforfield" width="100%">';
|
||||||
|
|
||||||
// Login
|
// Login
|
||||||
print '<tr><td>'.$langs->trans("Login").'</td>';
|
print '<tr><td>'.$langs->trans("Login").'</td>';
|
||||||
if (! empty($object->ldap_sid) && $object->statut==0)
|
if (! empty($object->ldap_sid) && $object->statut==0)
|
||||||
@ -1345,13 +1342,13 @@ else
|
|||||||
}
|
}
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '</div>';
|
print '</div>';
|
||||||
print '<div class="fichehalfright"><div class="ficheaddleft">';
|
print '<div class="fichehalfright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
print '<div class="underbanner clearboth"></div>';
|
print '<div class="underbanner clearboth"></div>';
|
||||||
print '<table class="border tableforfield" width="100%">';
|
print '<table class="border tableforfield" width="100%">';
|
||||||
|
|
||||||
print '<tr><td>'.$langs->trans("LastConnexion").'</td>';
|
print '<tr><td>'.$langs->trans("LastConnexion").'</td>';
|
||||||
print '<td>'.dol_print_date($object->datelastlogin,"dayhour").'</td>';
|
print '<td>'.dol_print_date($object->datelastlogin,"dayhour").'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
@ -1445,10 +1442,10 @@ else
|
|||||||
|
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</div></div>';
|
print '</div></div>';
|
||||||
print '<div style="clear:both"></div>';
|
print '<div style="clear:both"></div>';
|
||||||
|
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
@ -1694,7 +1691,7 @@ else
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lastname
|
// Lastname
|
||||||
print "<tr>";
|
print "<tr>";
|
||||||
print '<td class="fieldrequired">'.$langs->trans("Lastname").'</td>';
|
print '<td class="fieldrequired">'.$langs->trans("Lastname").'</td>';
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user