Merge branch 'develop' of github.com:Dolibarr/dolibarr into develop
This commit is contained in:
commit
8e04a3d63a
@ -146,6 +146,12 @@ source_file = htdocs/langs/en_US/holiday.lang
|
|||||||
source_lang = en_US
|
source_lang = en_US
|
||||||
type = MOZILLAPROPERTIES
|
type = MOZILLAPROPERTIES
|
||||||
|
|
||||||
|
[dolibarr.hrm]
|
||||||
|
file_filter = htdocs/langs/<lang>/hrm.lang
|
||||||
|
source_file = htdocs/langs/en_US/hrm.lang
|
||||||
|
source_lang = en_US
|
||||||
|
type = MOZILLAPROPERTIES
|
||||||
|
|
||||||
[dolibarr.incoterm]
|
[dolibarr.incoterm]
|
||||||
file_filter = htdocs/langs/<lang>/incoterm.lang
|
file_filter = htdocs/langs/<lang>/incoterm.lang
|
||||||
source_file = htdocs/langs/en_US/incoterm.lang
|
source_file = htdocs/langs/en_US/incoterm.lang
|
||||||
|
|||||||
@ -19,6 +19,14 @@ Following changes may create regression for some external modules, but were nece
|
|||||||
Dolibarr better:
|
Dolibarr better:
|
||||||
- Deprecated hidden option MAIN_USE_CUSTOM_TRANSLATION has been removed. Use table llx_overwrite_trans instead.
|
- Deprecated hidden option MAIN_USE_CUSTOM_TRANSLATION has been removed. Use table llx_overwrite_trans instead.
|
||||||
- Trigger LINECONTRACT_INSERT has been renamed into LINECONTRACT_CREATE to match common denomination.
|
- Trigger LINECONTRACT_INSERT has been renamed into LINECONTRACT_CREATE to match common denomination.
|
||||||
|
- A lot hooks used into PDF generation were not correctly implemented. We had to fix this. The result si that
|
||||||
|
the following hook were set as hook of type "replace". This means if your module implement such hooks, it must
|
||||||
|
return 0 to execute standard code or 1 to replace standard code (value to output should be set into resPrints instead).
|
||||||
|
This is list of hooks modified:
|
||||||
|
'pdf_getlinenum', 'pdf_getlineref', 'pdf_getlineref_supplier', 'pdf_getlinevatrate', 'pdf_getlineupexcltax',
|
||||||
|
'pdf_getlineupwithtax', 'pdf_getlineqty', 'pdf_getlineqty_asked', 'pdf_getlineqty_shipped', 'pdf_getlineqty_keeptoship',
|
||||||
|
'pdf_getlineunit', 'pdf_getlineremisepercent', 'pdf_getlineprogress', 'pdf_getlinetotalexcltax', 'pdf_getlinetotalwithtax'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 3.8.1 compared to 3.8.0 *****
|
***** ChangeLog for 3.8.1 compared to 3.8.0 *****
|
||||||
|
|||||||
@ -52,7 +52,7 @@ if ($action == "confirm_update") {
|
|||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
if ((floatval($debit)!=0.0) && (floatval($credit)!=0.0)) {
|
if ((floatval($debit)!=0.0) && (floatval($credit)!=0.0)) {
|
||||||
setEventMessage($langs->trans('ErrorDebitCredit'), 'errors');
|
setEventMessages($langs->trans('ErrorDebitCredit'), null, 'errors');
|
||||||
$error ++;
|
$error ++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -61,7 +61,7 @@ if ($action == "confirm_update") {
|
|||||||
|
|
||||||
$result = $book->fetch($id);
|
$result = $book->fetch($id);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessage($book->errors, 'errors');
|
setEventMessages($book->error, $book->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
$book->numero_compte = $numero_compte;
|
$book->numero_compte = $numero_compte;
|
||||||
$book->code_tiers = $code_tiers;
|
$book->code_tiers = $code_tiers;
|
||||||
@ -80,9 +80,9 @@ if ($action == "confirm_update") {
|
|||||||
|
|
||||||
$result = $book->update();
|
$result = $book->update();
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessage($book->errors, 'errors');
|
setEventMessages($book->error, $book->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
setEventMessage($langs->trans('Saved'), 'mesgs');
|
setEventMessages($langs->trans('Saved'), null, 'mesgs');
|
||||||
$action = '';
|
$action = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -93,7 +93,7 @@ else if ($action == "add") {
|
|||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
if ((intval($debit) != 0) && (intval($credit) != 0)) {
|
if ((intval($debit) != 0) && (intval($credit) != 0)) {
|
||||||
setEventMessage($langs->trans('ErrorDebitCredit'), 'errors');
|
setEventMessages($langs->trans('ErrorDebitCredit'), null, 'errors');
|
||||||
$error ++;
|
$error ++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -124,9 +124,9 @@ else if ($action == "add") {
|
|||||||
|
|
||||||
$result = $book->create_std($user);
|
$result = $book->create_std($user);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessage($book->errors, 'errors');
|
setEventMessages($book->error, $book->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
setEventMessage($langs->trans('Saved'), 'mesgs');
|
setEventMessages($langs->trans('Saved'), null, 'mesgs');
|
||||||
$action = '';
|
$action = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -140,11 +140,11 @@ else if ($action == "confirm_delete") {
|
|||||||
$piece_num = $book->piece_num;
|
$piece_num = $book->piece_num;
|
||||||
|
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessage($book->errors, 'errors');
|
setEventMessages($book->error, $book->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
$result = $book->delete($user);
|
$result = $book->delete($user);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessage($book->errors, 'errors');
|
setEventMessages($book->error, $book->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$action = '';
|
$action = '';
|
||||||
@ -168,9 +168,9 @@ else if ($action == "confirm_create") {
|
|||||||
|
|
||||||
$result = $book->create_std($user);
|
$result = $book->create_std($user);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessage($book->errors, 'errors');
|
setEventMessages($book->error, $book->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
setEventMessage($langs->trans('Saved'), 'mesgs');
|
setEventMessages($langs->trans('Saved'), null, 'mesgs');
|
||||||
$action = '';
|
$action = '';
|
||||||
$piece_num = $book->piece_num;
|
$piece_num = $book->piece_num;
|
||||||
}
|
}
|
||||||
@ -246,7 +246,7 @@ if ($action == 'create') {
|
|||||||
$book = new BookKeeping($db);
|
$book = new BookKeeping($db);
|
||||||
$result = $book->fetch_per_mvt($piece_num);
|
$result = $book->fetch_per_mvt($piece_num);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessage($book->errors, 'errors');
|
setEventMessages($book->error, $book->errors, 'errors');
|
||||||
}
|
}
|
||||||
if (! empty($book->piece_num)) {
|
if (! empty($book->piece_num)) {
|
||||||
|
|
||||||
@ -277,7 +277,7 @@ if ($action == 'create') {
|
|||||||
|
|
||||||
$result = $book->fetch_all_per_mvt($piece_num);
|
$result = $book->fetch_all_per_mvt($piece_num);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessage($book->errors, 'errors');
|
setEventMessages($book->error, $book->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
print load_fiche_titre($langs->trans("ListeMvts"));
|
print load_fiche_titre($langs->trans("ListeMvts"));
|
||||||
|
|||||||
@ -74,7 +74,7 @@ if ($action == 'delbookkeeping') {
|
|||||||
$result = $object->delete_by_importkey($import_key);
|
$result = $object->delete_by_importkey($import_key);
|
||||||
Header("Location: list.php");
|
Header("Location: list.php");
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessage($object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} // Export
|
} // Export
|
||||||
@ -86,7 +86,7 @@ else if ($action == 'export_csv') {
|
|||||||
$object = new BookKeeping($db);
|
$object = new BookKeeping($db);
|
||||||
$result = $object->export_bookkeping('ebp');
|
$result = $object->export_bookkeping('ebp');
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessage($object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ( $object->linesexport as $line ) {
|
foreach ( $object->linesexport as $line ) {
|
||||||
|
|||||||
@ -54,7 +54,7 @@ if ($action == 'ventil' && $user->rights->accounting->ventilation->dispatch) {
|
|||||||
dol_syslog("/accounting/customer/card.php sql=" . $sql, LOG_DEBUG);
|
dol_syslog("/accounting/customer/card.php sql=" . $sql, LOG_DEBUG);
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if (! $resql) {
|
if (! $resql) {
|
||||||
setEventMessage($db->lasterror(), 'errors');
|
setEventMessages($db->lasterror(), null, 'errors');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
header("Location: ./lines.php");
|
header("Location: ./lines.php");
|
||||||
|
|||||||
@ -83,10 +83,10 @@ if ($action == 'validatehistory') {
|
|||||||
if (! $resql1) {
|
if (! $resql1) {
|
||||||
$error ++;
|
$error ++;
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
setEventMessage($db->lasterror(), 'errors');
|
setEventMessages($db->lasterror(), null, 'errors');
|
||||||
} else {
|
} else {
|
||||||
$db->commit();
|
$db->commit();
|
||||||
setEventMessage($langs->trans('Dispatched'), 'mesgs');
|
setEventMessages($langs->trans('Dispatched'), null, 'mesgs');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -109,14 +109,14 @@ if (is_array($changeaccount) && count($changeaccount) > 0) {
|
|||||||
$resql1 = $db->query($sql1);
|
$resql1 = $db->query($sql1);
|
||||||
if (! $resql1) {
|
if (! $resql1) {
|
||||||
$error ++;
|
$error ++;
|
||||||
setEventMessage($db->lasterror(), 'errors');
|
setEventMessages($db->lasterror(), null, 'errors');
|
||||||
}
|
}
|
||||||
if (! $error) {
|
if (! $error) {
|
||||||
$db->commit();
|
$db->commit();
|
||||||
setEventMessage($langs->trans('Save'), 'mesgs');
|
setEventMessages($langs->trans('Save'), null, 'mesgs');
|
||||||
} else {
|
} else {
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
setEventMessage($db->lasterror(), 'errors');
|
setEventMessages($db->lasterror(), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -343,7 +343,7 @@ if ($action == 'writeBookKeeping')
|
|||||||
$result = $bookkeeping->create();
|
$result = $bookkeeping->create();
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error ++;
|
$error ++;
|
||||||
setEventMessage($object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Third party
|
// Third party
|
||||||
@ -420,13 +420,13 @@ if ($action == 'writeBookKeeping')
|
|||||||
$result = $bookkeeping->create();
|
$result = $bookkeeping->create();
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error ++;
|
$error ++;
|
||||||
setEventMessage($object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($error)) {
|
if (empty($error)) {
|
||||||
setEventMessage($langs->trans("GeneralLedgerIsWritten"),'mesgs');
|
setEventMessages($langs->trans("GeneralLedgerIsWritten"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Export
|
// Export
|
||||||
|
|||||||
@ -185,7 +185,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
$result = $bookkeeping->create();
|
$result = $bookkeeping->create();
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error ++;
|
$error ++;
|
||||||
setEventMessage($object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -215,7 +215,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
$result = $bookkeeping->create();
|
$result = $bookkeeping->create();
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error ++;
|
$error ++;
|
||||||
setEventMessage($object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -246,14 +246,14 @@ if ($action == 'writebookkeeping') {
|
|||||||
$result = $bookkeeping->create();
|
$result = $bookkeeping->create();
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error ++;
|
$error ++;
|
||||||
setEventMessage($object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($error)) {
|
if (empty($error)) {
|
||||||
setEventMessage($langs->trans("GeneralLedgerIsWritten"),'mesgs');
|
setEventMessages($langs->trans("GeneralLedgerIsWritten"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -220,7 +220,7 @@ if ($action == 'writebookkeeping')
|
|||||||
$result = $bookkeeping->create();
|
$result = $bookkeeping->create();
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error ++;
|
$error ++;
|
||||||
setEventMessage($object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -250,7 +250,7 @@ if ($action == 'writebookkeeping')
|
|||||||
$result = $bookkeeping->create();
|
$result = $bookkeeping->create();
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error ++;
|
$error ++;
|
||||||
setEventMessage($object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -282,14 +282,14 @@ if ($action == 'writebookkeeping')
|
|||||||
$result = $bookkeeping->create();
|
$result = $bookkeeping->create();
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error ++;
|
$error ++;
|
||||||
setEventMessage($object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($error)) {
|
if (empty($error)) {
|
||||||
setEventMessage($langs->trans("GeneralLedgerIsWritten"),'mesgs');
|
setEventMessages($langs->trans("GeneralLedgerIsWritten"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -55,7 +55,7 @@ if ($action == 'ventil' && $user->rights->accounting->ventilation->dispatch) {
|
|||||||
dol_syslog('accountancy/supplier/card.php:: $sql=' . $sql);
|
dol_syslog('accountancy/supplier/card.php:: $sql=' . $sql);
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if (! $resql) {
|
if (! $resql) {
|
||||||
setEventMessage($db->lasterror(), 'errors');
|
setEventMessages($db->lasterror(), null, 'errors');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
header("Location: ./lines.php");
|
header("Location: ./lines.php");
|
||||||
|
|||||||
@ -79,10 +79,10 @@ if ($action == 'validatehistory') {
|
|||||||
if (! $resql1) {
|
if (! $resql1) {
|
||||||
$error ++;
|
$error ++;
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
setEventMessage($db->lasterror(), 'errors');
|
setEventMessages($db->lasterror(), null, 'errors');
|
||||||
} else {
|
} else {
|
||||||
$db->commit();
|
$db->commit();
|
||||||
setEventMessage($langs->trans('Dispatched'), 'mesgs');
|
setEventMessages($langs->trans('Dispatched'), null, 'mesgs');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -115,14 +115,14 @@ if (is_array($changeaccount) && count($changeaccount) > 0) {
|
|||||||
$resql1 = $db->query($sql1);
|
$resql1 = $db->query($sql1);
|
||||||
if (! $resql1) {
|
if (! $resql1) {
|
||||||
$error ++;
|
$error ++;
|
||||||
setEventMessage($db->lasterror(), 'errors');
|
setEventMessages($db->lasterror(), null, 'errors');
|
||||||
}
|
}
|
||||||
if (! $error) {
|
if (! $error) {
|
||||||
$db->commit();
|
$db->commit();
|
||||||
setEventMessage($langs->trans('Save'), 'mesgs');
|
setEventMessages($langs->trans('Save'), null, 'mesgs');
|
||||||
} else {
|
} else {
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
setEventMessage($db->lasterror(), 'errors');
|
setEventMessages($db->lasterror(), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -69,11 +69,11 @@ if ($action == 'update' || $action == 'add')
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error"), 'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -60,11 +60,11 @@ if ($action == 'update')
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error"), 'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2012 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) 2012 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2012 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2012-2013 Philippe Grand <philippe.grand@atoo-net.com>
|
* Copyright (C) 2012-2015 Philippe Grand <philippe.grand@atoo-net.com>
|
||||||
* Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
* Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -133,7 +133,7 @@ if (empty($reshook))
|
|||||||
if ($userid != $user->id && $userid != $object->user_id)
|
if ($userid != $user->id && $userid != $object->user_id)
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessage($langs->trans("ErrorUserPermissionAllowsToLinksToItselfOnly"), 'errors');
|
setEventMessages($langs->trans("ErrorUserPermissionAllowsToLinksToItselfOnly"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -169,7 +169,7 @@ if (empty($reshook))
|
|||||||
$thirdparty=new Societe($db);
|
$thirdparty=new Societe($db);
|
||||||
$thirdparty->fetch($socid);
|
$thirdparty->fetch($socid);
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessage($langs->trans("ErrorMemberIsAlreadyLinkedToThisThirdParty",$othermember->getFullName($langs),$othermember->login,$thirdparty->name), 'errors');
|
setEventMessages($langs->trans("ErrorMemberIsAlreadyLinkedToThisThirdParty",$othermember->getFullName($langs),$othermember->login,$thirdparty->name), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -195,12 +195,12 @@ if (empty($reshook))
|
|||||||
if ($result < 0)
|
if ($result < 0)
|
||||||
{
|
{
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
setEventMessage($langs->trans($nuser->error), 'errors');
|
setEventMessages($langs->trans($nuser->error), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($object->error, 'errors');
|
setEventMessages($object->errors, $object->error, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -216,13 +216,13 @@ if (empty($reshook))
|
|||||||
if ($result < 0)
|
if ($result < 0)
|
||||||
{
|
{
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
setEventMessage($langs->trans($company->error), 'errors');
|
setEventMessages($langs->trans($company->error), null, 'errors');
|
||||||
setEventMessage($company->errors, 'errors');
|
setEventMessages($company->error, $company->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($object->error, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -236,7 +236,7 @@ if (empty($reshook))
|
|||||||
$result=$object->send_an_email($langs->transnoentitiesnoconv("ThisIsContentOfYourCard")."\n\n%INFOS%\n\n",$langs->transnoentitiesnoconv("CardContent"));
|
$result=$object->send_an_email($langs->transnoentitiesnoconv("ThisIsContentOfYourCard")."\n\n%INFOS%\n\n",$langs->transnoentitiesnoconv("CardContent"));
|
||||||
|
|
||||||
$langs->load("mails");
|
$langs->load("mails");
|
||||||
setEventMessage($langs->trans("MailSuccessfulySent", $from, $object->email));
|
setEventMessages($langs->trans("MailSuccessfulySent", $from, $object->email), null, 'mesgs');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -352,7 +352,7 @@ if (empty($reshook))
|
|||||||
$newfile=$dir.'/'.dol_sanitizeFileName($_FILES['photo']['name']);
|
$newfile=$dir.'/'.dol_sanitizeFileName($_FILES['photo']['name']);
|
||||||
if (! dol_move_uploaded_file($_FILES['photo']['tmp_name'],$newfile,1,0,$_FILES['photo']['error']) > 0)
|
if (! dol_move_uploaded_file($_FILES['photo']['tmp_name'],$newfile,1,0,$_FILES['photo']['error']) > 0)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("ErrorFailedToSaveFile"), 'errors');
|
setEventMessages($langs->trans("ErrorFailedToSaveFile"), null, 'errors');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -368,7 +368,7 @@ if (empty($reshook))
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage("ErrorBadImageFormat", 'errors');
|
setEventMessages("ErrorBadImageFormat", null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -397,9 +397,9 @@ if (empty($reshook))
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ($object->error) {
|
if ($object->error) {
|
||||||
setEventMessage($object->error, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
setEventMessage($object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
$action='';
|
$action='';
|
||||||
}
|
}
|
||||||
@ -503,7 +503,7 @@ if (empty($reshook))
|
|||||||
if ($num) {
|
if ($num) {
|
||||||
$error++;
|
$error++;
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
setEventMessage($langs->trans("ErrorLoginAlreadyExists",$login), 'errors');
|
setEventMessages($langs->trans("ErrorLoginAlreadyExists",$login), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (empty($pass)) {
|
if (empty($pass)) {
|
||||||
@ -528,7 +528,7 @@ if (empty($reshook))
|
|||||||
if ($conf->global->ADHERENT_MAIL_REQUIRED && ! isValidEMail($email)) {
|
if ($conf->global->ADHERENT_MAIL_REQUIRED && ! isValidEMail($email)) {
|
||||||
$error++;
|
$error++;
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
setEventMessage($langs->trans("ErrorBadEMail",$email), 'errors');
|
setEventMessages($langs->trans("ErrorBadEMail",$email), null, 'errors');
|
||||||
}
|
}
|
||||||
$public=0;
|
$public=0;
|
||||||
if (isset($public)) $public=1;
|
if (isset($public)) $public=1;
|
||||||
@ -554,9 +554,9 @@ if (empty($reshook))
|
|||||||
$db->rollback();
|
$db->rollback();
|
||||||
|
|
||||||
if ($object->error) {
|
if ($object->error) {
|
||||||
setEventMessage($object->error, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
setEventMessage($object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
$action = 'create';
|
$action = 'create';
|
||||||
@ -609,7 +609,7 @@ if (empty($reshook))
|
|||||||
if ($result < 0)
|
if ($result < 0)
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessage($object->error, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -617,9 +617,9 @@ if (empty($reshook))
|
|||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
if ($object->error) {
|
if ($object->error) {
|
||||||
setEventMessage($object->error, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
setEventMessage($object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -654,7 +654,7 @@ if (empty($reshook))
|
|||||||
if ($result < 0)
|
if ($result < 0)
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessage($object->error, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -662,9 +662,9 @@ if (empty($reshook))
|
|||||||
$error++;
|
$error++;
|
||||||
|
|
||||||
if ($object->error) {
|
if ($object->error) {
|
||||||
setEventMessage($object->error, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
setEventMessage($object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
$action='';
|
$action='';
|
||||||
}
|
}
|
||||||
@ -683,7 +683,7 @@ if (empty($reshook))
|
|||||||
{
|
{
|
||||||
if (!$mailmanspip->del_to_spip($object))
|
if (!$mailmanspip->del_to_spip($object))
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans('DeleteIntoSpipError').': '.$mailmanspip->error, 'errors');
|
setEventMessages($langs->trans('DeleteIntoSpipError').': '.$mailmanspip->error, null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -694,7 +694,7 @@ if (empty($reshook))
|
|||||||
{
|
{
|
||||||
if (!$mailmanspip->add_to_spip($object))
|
if (!$mailmanspip->add_to_spip($object))
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans('AddIntoSpipError').': '.$mailmanspip->error, 'errors');
|
setEventMessages($langs->trans('AddIntoSpipError').': '.$mailmanspip->error, null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -110,7 +110,7 @@ if ($action == 'confirm_create_thirdparty' && $confirm == 'yes' && $user->rights
|
|||||||
{
|
{
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
$errmsg=$langs->trans($company->error);
|
$errmsg=$langs->trans($company->error);
|
||||||
setEventMessage($company->errors, 'errors');
|
setEventMessages($company->error, $company->errors, 'errors');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -131,7 +131,7 @@ if ($action == 'setuserid' && ($user->rights->user->self->creer || $user->rights
|
|||||||
if ($_POST["userid"] != $user->id && $_POST["userid"] != $object->user_id)
|
if ($_POST["userid"] != $user->id && $_POST["userid"] != $object->user_id)
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessage($langs->trans("ErrorUserPermissionAllowsToLinksToItselfOnly"), 'errors');
|
setEventMessages($langs->trans("ErrorUserPermissionAllowsToLinksToItselfOnly"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -167,7 +167,7 @@ if ($action == 'setsocid')
|
|||||||
$thirdparty=new Societe($db);
|
$thirdparty=new Societe($db);
|
||||||
$thirdparty->fetch(GETPOST('socid','int'));
|
$thirdparty->fetch(GETPOST('socid','int'));
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessage($langs->trans("ErrorMemberIsAlreadyLinkedToThisThirdParty",$othermember->getFullName($langs),$othermember->login,$thirdparty->name), 'errors');
|
setEventMessages($langs->trans("ErrorMemberIsAlreadyLinkedToThisThirdParty",$othermember->getFullName($langs),$othermember->login,$thirdparty->name), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1575,7 +1575,7 @@ class Adherent extends CommonObject
|
|||||||
|
|
||||||
$picto='user';
|
$picto='user';
|
||||||
|
|
||||||
if ($withpicto) $result.=($link.img_object($label, $picto, 'class="classfortooltip"').$linkend);
|
if ($withpicto) $result.=($link.img_object('', $picto, 'class="classfortooltip"').$linkend);
|
||||||
if ($withpicto && $withpicto != 2) $result.=' ';
|
if ($withpicto && $withpicto != 2) $result.=' ';
|
||||||
$result.=$link.($maxlen?dol_trunc($this->ref,$maxlen):$this->ref).$linkend;
|
$result.=$link.($maxlen?dol_trunc($this->ref,$maxlen):$this->ref).$linkend;
|
||||||
return $result;
|
return $result;
|
||||||
|
|||||||
@ -72,12 +72,12 @@ if ($action == 'dolibarr2ldap')
|
|||||||
|
|
||||||
if ($result >= 0)
|
if ($result >= 0)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("MemberSynchronized"));
|
setEventMessages($langs->trans("MemberSynchronized"), null, 'mesgs');
|
||||||
$db->commit();
|
$db->commit();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($ldap->error, 'errors');
|
setEventMessages($ldap->errors, $ldap->error, 'errors');
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -86,12 +86,12 @@ if ($action == "save" && empty($cancel))
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
$db->commit();
|
$db->commit();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessages($langs->trans("Error"),null, 'errors');
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -72,7 +72,7 @@ if ($actionsave)
|
|||||||
|
|
||||||
if (! empty($src) && ! dol_is_url($src))
|
if (! empty($src) && ! dol_is_url($src))
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("ErrorParamMustBeAnUrl"),'errors');
|
setEventMessages($langs->trans("ErrorParamMustBeAnUrl"), null, 'errors');
|
||||||
$error++;
|
$error++;
|
||||||
$errorsaved++;
|
$errorsaved++;
|
||||||
break;
|
break;
|
||||||
@ -104,12 +104,12 @@ if ($actionsave)
|
|||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
$db->commit();
|
$db->commit();
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
if (empty($errorsaved)) setEventMessage($langs->trans("Error"),'errors');
|
if (empty($errorsaved)) setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -54,12 +54,12 @@ if ($actionsave)
|
|||||||
if ($i >= 4)
|
if ($i >= 4)
|
||||||
{
|
{
|
||||||
$db->commit();
|
$db->commit();
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
setEventMessage($langs->trans("SaveFailed"), 'errors');
|
setEventMessages($langs->trans("SaveFailed"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -54,11 +54,11 @@ if ($action == 'updateMask')
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,13 +96,13 @@ if ($action == 'specimen')
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($module->error,'errors');
|
setEventMessages($module->error, null, 'errors');
|
||||||
dol_syslog($module->error, LOG_ERR);
|
dol_syslog($module->error, LOG_ERR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("ErrorModuleNotFound"),'errors');
|
setEventMessages($langs->trans("ErrorModuleNotFound"), null, 'errors');
|
||||||
dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
|
dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -116,11 +116,11 @@ if ($action == 'set_ASKPRICESUPPLIER_DRAFT_WATERMARK')
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,11 +134,11 @@ if ($action == 'set_ASKPRICESUPPLIER_FREE_TEXT')
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -150,11 +150,11 @@ if ($action == 'set_BANK_ASK_PAYMENT_BANK_DURING_ASKPRICESUPPLIER')
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -178,12 +178,12 @@ if ($action == 'setModuleOptions')
|
|||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
$db->commit();
|
$db->commit();
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -56,11 +56,11 @@ if ($action == 'set_BANK_CHEQUERECEIPT_FREE_TEXT')
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -97,11 +97,11 @@ if ($action == 'setModuleOptions')
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'msgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -111,11 +111,11 @@ if ($action && $action != 'setcoder' && $action != 'setModuleOptions')
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -85,7 +85,7 @@ if ($action == 'add') {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($db->lasterror(), 'errors');
|
setEventMessages($db->lasterror(), null, 'errors');
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -121,7 +121,7 @@ if ($action == 'add') {
|
|||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if (! $resql)
|
if (! $resql)
|
||||||
{
|
{
|
||||||
setEventMessage($db->lasterror(), 'errors');
|
setEventMessages($db->lasterror(), null, 'errors');
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -36,16 +36,19 @@ $action = GETPOST("action");
|
|||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($action == 'setvalue' && $user->admin)
|
if ($action == 'setvalue' && $user->admin)
|
||||||
{
|
{
|
||||||
$result=dolibarr_set_const($db, "CLICKTODIAL_URL", GETPOST("url"), 'chaine', 0, '', $conf->entity);
|
$result=dolibarr_set_const($db, "CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS", GETPOST("CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS"), 'chaine', 0, '', $conf->entity);
|
||||||
if ($result >= 0)
|
$result=dolibarr_set_const($db, "CLICKTODIAL_URL", GETPOST("CLICKTODIAL_URL"), 'chaine', 0, '', $conf->entity);
|
||||||
|
|
||||||
|
if ($result1 >= 0 && $result2 >= 0)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -73,13 +76,22 @@ $var=true;
|
|||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td width="120">'.$langs->trans("Name").'</td>';
|
print '<td>'.$langs->trans("Name").'</td>';
|
||||||
print '<td>'.$langs->trans("Value").'</td>';
|
print '<td>'.$langs->trans("Value").'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
$var=!$var;
|
$var=!$var;
|
||||||
print '<tr '.$bc[$var].'><td valign="top">';
|
print '<tr '.$bc[$var].'><td>';
|
||||||
|
print $langs->trans("ClickToDialUseTelLink").'</td><td>';
|
||||||
|
print $form->selectyesno("CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS", $conf->global->CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS, 1).'<br>';
|
||||||
|
print '<br>';
|
||||||
|
print $langs->trans("ClickToDialUseTelLinkDesc");
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
$var=!$var;
|
||||||
|
print '<tr '.$bc[$var].'><td>';
|
||||||
print $langs->trans("DefaultLink").'</td><td>';
|
print $langs->trans("DefaultLink").'</td><td>';
|
||||||
print '<input size="92" type="text" name="url" value="'.$conf->global->CLICKTODIAL_URL.'"><br>';
|
print '<input size="92" type="text" name="CLICKTODIAL_URL"'.($conf->global->CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS?' disabled="disabled"':'').' value="'.$conf->global->CLICKTODIAL_URL.'"><br>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print $langs->trans("ClickToDialUrlDesc").'<br>';
|
print $langs->trans("ClickToDialUrlDesc").'<br>';
|
||||||
print $langs->trans("Example").':<br>http://myphoneserver/mypage?login=__LOGIN__&password=__PASS__&caller=__PHONEFROM__&called=__PHONETO__';
|
print $langs->trans("Example").':<br>http://myphoneserver/mypage?login=__LOGIN__&password=__PASS__&caller=__PHONEFROM__&called=__PHONETO__';
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
* Copyright (C) 2005-2014 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2014 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2008 Raphael Bertrand (Resultic) <raphael.bertrand@resultic.fr>
|
* Copyright (C) 2008 Raphael Bertrand (Resultic) <raphael.bertrand@resultic.fr>
|
||||||
* Copyright (C) 2011-2013 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2011-2013 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2011-2013 Philippe Grand <philippe.grand@atoo-net.com>
|
* Copyright (C) 2011-2015 Philippe Grand <philippe.grand@atoo-net.com>
|
||||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -64,11 +64,11 @@ if ($action == 'updateMask')
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -106,13 +106,13 @@ else if ($action == 'specimen')
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($module->error,'errors');
|
setEventMessages($module->error, null, 'errors');
|
||||||
dol_syslog($module->error, LOG_ERR);
|
dol_syslog($module->error, LOG_ERR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("ErrorModuleNotFound"),'errors');
|
setEventMessages($langs->trans("ErrorModuleNotFound"), null, 'errors');
|
||||||
dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
|
dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -137,12 +137,12 @@ if ($action == 'setModuleOptions')
|
|||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
$db->commit();
|
$db->commit();
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,11 +196,11 @@ else if ($action == 'set_COMMANDE_DRAFT_WATERMARK')
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -214,11 +214,11 @@ else if ($action == 'set_ORDER_FREE_TEXT')
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -228,9 +228,9 @@ else if ($action=="setshippableiconinlist") {
|
|||||||
$res = dolibarr_set_const($db, "SHIPPABLE_ORDER_ICON_IN_LIST", $setshippableiconinlist,'yesno',0,'',$conf->entity);
|
$res = dolibarr_set_const($db, "SHIPPABLE_ORDER_ICON_IN_LIST", $setshippableiconinlist,'yesno',0,'',$conf->entity);
|
||||||
if (! $res > 0) $error++;
|
if (! $res > 0) $error++;
|
||||||
if (! $error) {
|
if (! $error) {
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
} else {
|
} else {
|
||||||
setEventMessage($langs->trans("Error"), 'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -243,11 +243,11 @@ else if ($action == 'set_BANK_ASK_PAYMENT_BANK_DURING_ORDER')
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -260,11 +260,11 @@ else if ($action == 'set_WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER')
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
* Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2013 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) 2010-2014 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2011 Philippe Grand <philippe.grand@atoo-net.com>
|
* Copyright (C) 2011-2015 Philippe Grand <philippe.grand@atoo-net.com>
|
||||||
* Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
* Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -125,19 +125,19 @@ if ( ($action == 'update' && empty($_POST["cancel"]))
|
|||||||
$error++;
|
$error++;
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
$tmparray=explode(':',$result);
|
$tmparray=explode(':',$result);
|
||||||
setEventMessage($langs->trans('ErrorFileIsInfectedWithAVirus',$tmparray[1]),'errors');
|
setEventMessages($langs->trans('ErrorFileIsInfectedWithAVirus',$tmparray[1]), null, 'errors');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessage($langs->trans("ErrorFailedToSaveFile"),'errors');
|
setEventMessages($langs->trans("ErrorFailedToSaveFile"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
setEventMessage($langs->trans("ErrorBadImageFormat"),'errors');
|
setEventMessages($langs->trans("ErrorBadImageFormat"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -230,7 +230,7 @@ if ($action == 'addthumb')
|
|||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
setEventMessage($langs->trans("ErrorBadImageFormat"),'errors');
|
setEventMessages($langs->trans("ErrorBadImageFormat"), null, 'errors');
|
||||||
dol_syslog($langs->transnoentities("ErrorBadImageFormat"),LOG_WARNING);
|
dol_syslog($langs->transnoentities("ErrorBadImageFormat"),LOG_WARNING);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -238,7 +238,7 @@ if ($action == 'addthumb')
|
|||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
setEventMessage($langs->trans("ErrorFileDoesNotExists",$_GET["file"]),'errors');
|
setEventMessages($langs->trans("ErrorFileDoesNotExists",$_GET["file"]), null, 'errors');
|
||||||
dol_syslog($langs->transnoentities("ErrorFileDoesNotExists",$_GET["file"]),LOG_WARNING);
|
dol_syslog($langs->transnoentities("ErrorFileDoesNotExists",$_GET["file"]),LOG_WARNING);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2011-2013 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2011-2013 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2013 Philippe Grand <philippe.grand@atoo-net.com>
|
* Copyright (C) 2013-2015 Philippe Grand <philippe.grand@atoo-net.com>
|
||||||
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -87,11 +87,11 @@ if ($action == 'update')
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -68,7 +68,7 @@ if ($action == 'add' || (GETPOST('add') && $action != 'update'))
|
|||||||
{
|
{
|
||||||
if (dolibarr_set_const($db, $constname, $constvalue, 'chaine', 1, $constnote, $entity) >= 0)
|
if (dolibarr_set_const($db, $constname, $constvalue, 'chaine', 1, $constnote, $entity) >= 0)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("RecordSaved"));
|
setEventMessages($langs->trans("RecordSaved"), null, 'mesgs');
|
||||||
$action="";
|
$action="";
|
||||||
$constname="";
|
$constname="";
|
||||||
$constvalue="";
|
$constvalue="";
|
||||||
@ -99,7 +99,7 @@ if (! empty($consts) && $action == 'update')
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($nbmodified > 0) setEventMessage($langs->trans("RecordSaved"));
|
if ($nbmodified > 0) setEventMessages($langs->trans("RecordSaved"), null, 'mesgs');
|
||||||
$action='';
|
$action='';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -122,7 +122,7 @@ if (! empty($consts) && $action == 'delete')
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($nbdeleted > 0) setEventMessage($langs->trans("RecordDeleted"));
|
if ($nbdeleted > 0) setEventMessages($langs->trans("RecordDeleted"), null, 'mesgs');
|
||||||
$action='';
|
$action='';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -131,7 +131,7 @@ if ($action == 'delete')
|
|||||||
{
|
{
|
||||||
if (dolibarr_del_const($db, $rowid, $entity) >= 0)
|
if (dolibarr_del_const($db, $rowid, $entity) >= 0)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("RecordDeleted"));
|
setEventMessages($langs->trans("RecordDeleted"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2011-2013 Juanjo Menent <jmenent@2byte.es>
|
/* Copyright (C) 2011-2013 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2011-2014 Philippe Grand <philippe.grand@atoo-net.com>
|
* Copyright (C) 2011-2015 Philippe Grand <philippe.grand@atoo-net.com>
|
||||||
*
|
*
|
||||||
* 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
|
||||||
@ -59,11 +59,11 @@ if ($action == 'updateMask')
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessage($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,13 +101,13 @@ else if ($action == 'specimen') // For contract
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($obj->error,'errors');
|
setEventMessages($obj->error, $obj->errors, 'errors');
|
||||||
dol_syslog($obj->error, LOG_ERR);
|
dol_syslog($obj->error, LOG_ERR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("ErrorModuleNotFound"),'errors');
|
setEventMessages($langs->trans("ErrorModuleNotFound"), null, 'errors');
|
||||||
dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
|
dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -132,12 +132,12 @@ if ($action == 'setModuleOptions')
|
|||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
$db->commit();
|
$db->commit();
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -194,11 +194,11 @@ else if ($action == 'set_other')
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2011 Philippe Grand <philippe.grand@atoo-net.com>
|
* Copyright (C) 2011-2015 Philippe Grand <philippe.grand@atoo-net.com>
|
||||||
* Copyright (C) 2011 Remy Younes <ryounes@gmail.com>
|
* Copyright (C) 2011 Remy Younes <ryounes@gmail.com>
|
||||||
* Copyright (C) 2012-2015 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2012-2015 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2012 Christophe Battarel <christophe.battarel@ltairis.fr>
|
* Copyright (C) 2012 Christophe Battarel <christophe.battarel@ltairis.fr>
|
||||||
@ -548,20 +548,20 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
|
|||||||
if ($fieldnamekey == 'deductible') $fieldnamekey = 'Deductible';
|
if ($fieldnamekey == 'deductible') $fieldnamekey = 'Deductible';
|
||||||
if ($fieldnamekey == 'sortorder') $fieldnamekey = 'SortOrder';
|
if ($fieldnamekey == 'sortorder') $fieldnamekey = 'SortOrder';
|
||||||
|
|
||||||
setEventMessage($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities($fieldnamekey)),'errors');
|
setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities($fieldnamekey)), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Other checks
|
// Other checks
|
||||||
if ($tabname[$id] == MAIN_DB_PREFIX."c_actioncomm" && isset($_POST["type"]) && in_array($_POST["type"],array('system','systemauto'))) {
|
if ($tabname[$id] == MAIN_DB_PREFIX."c_actioncomm" && isset($_POST["type"]) && in_array($_POST["type"],array('system','systemauto'))) {
|
||||||
$ok=0;
|
$ok=0;
|
||||||
setEventMessage($langs->transnoentities('ErrorReservedTypeSystemSystemAuto'),'errors');
|
setEventMessages($langs->transnoentities('ErrorReservedTypeSystemSystemAuto'), null, 'errors');
|
||||||
}
|
}
|
||||||
if (isset($_POST["code"]))
|
if (isset($_POST["code"]))
|
||||||
{
|
{
|
||||||
if ($_POST["code"]=='0')
|
if ($_POST["code"]=='0')
|
||||||
{
|
{
|
||||||
$ok=0;
|
$ok=0;
|
||||||
setEventMessage($langs->transnoentities('ErrorCodeCantContainZero'),'errors');
|
setEventMessages($langs->transnoentities('ErrorCodeCantContainZero'), null, 'errors');
|
||||||
}
|
}
|
||||||
/*if (!is_numeric($_POST['code'])) // disabled, code may not be in numeric base
|
/*if (!is_numeric($_POST['code'])) // disabled, code may not be in numeric base
|
||||||
{
|
{
|
||||||
@ -578,7 +578,7 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
$ok=0;
|
$ok=0;
|
||||||
setEventMessage($langs->transnoentities("ErrorFieldRequired",$langs->transnoentities("Country")),'errors');
|
setEventMessages($langs->transnoentities("ErrorFieldRequired",$langs->transnoentities("Country")), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -637,13 +637,13 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
|
|||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if ($result) // Add is ok
|
if ($result) // Add is ok
|
||||||
{
|
{
|
||||||
setEventMessage($langs->transnoentities("RecordSaved"));
|
setEventMessages($langs->transnoentities("RecordSaved"), null, 'mesgs');
|
||||||
$_POST=array('id'=>$id); // Clean $_POST array, we keep only
|
$_POST=array('id'=>$id); // Clean $_POST array, we keep only
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ($db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') {
|
if ($db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') {
|
||||||
setEventMessage($langs->transnoentities("ErrorRecordAlreadyExists"),'errors');
|
setEventMessages($langs->transnoentities("ErrorRecordAlreadyExists"), null, 'errors');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
@ -711,7 +711,7 @@ if ($action == 'confirm_delete' && $confirm == 'yes') // delete
|
|||||||
{
|
{
|
||||||
if ($db->errno() == 'DB_ERROR_CHILD_EXISTS')
|
if ($db->errno() == 'DB_ERROR_CHILD_EXISTS')
|
||||||
{
|
{
|
||||||
setEventMessage($langs->transnoentities("ErrorRecordIsUsedByChild"),'errors');
|
setEventMessages($langs->transnoentities("ErrorRecordIsUsedByChild"), null, 'errors');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -37,6 +37,7 @@ $langs->load("companies");
|
|||||||
$langs->load("products");
|
$langs->load("products");
|
||||||
$langs->load("members");
|
$langs->load("members");
|
||||||
$langs->load("projects");
|
$langs->load("projects");
|
||||||
|
$langs->load("hrm");
|
||||||
|
|
||||||
if (! $user->admin) accessforbidden();
|
if (! $user->admin) accessforbidden();
|
||||||
|
|
||||||
@ -46,17 +47,21 @@ $action = GETPOST('action');
|
|||||||
if (! defined("MAIN_MOTD")) define("MAIN_MOTD","");
|
if (! defined("MAIN_MOTD")) define("MAIN_MOTD","");
|
||||||
|
|
||||||
// List of supported permanent search area
|
// List of supported permanent search area
|
||||||
$searchform=array("MAIN_SEARCHFORM_SOCIETE", "MAIN_SEARCHFORM_CONTACT", "MAIN_SEARCHFORM_PRODUITSERVICE", "MAIN_SEARCHFORM_PRODUITSERVICE_SUPPLIER", "MAIN_SEARCHFORM_ADHERENT", "MAIN_SEARCHFORM_PROJECT");
|
$searchform=array();
|
||||||
$searchformconst=array($conf->global->MAIN_SEARCHFORM_SOCIETE,$conf->global->MAIN_SEARCHFORM_CONTACT,$conf->global->MAIN_SEARCHFORM_PRODUITSERVICE,$conf->global->MAIN_SEARCHFORM_PRODUITSERVICE_SUPPLIER,$conf->global->MAIN_SEARCHFORM_ADHERENT,$conf->global->MAIN_SEARCHFORM_PROJECT);
|
if (empty($conf->use_javascript_ajax))
|
||||||
$searchformtitle=array($langs->trans("Companies"), $langs->trans("Contacts"), $langs->trans("ProductsAndServices"), $langs->trans("ProductsAndServices").' ('.$langs->trans("SupplierRef").')', $langs->trans("Members"), $langs->trans("Projects"));
|
{
|
||||||
|
$searchform=array("MAIN_SEARCHFORM_SOCIETE", "MAIN_SEARCHFORM_CONTACT", "MAIN_SEARCHFORM_PRODUITSERVICE", "MAIN_SEARCHFORM_PRODUITSERVICE_SUPPLIER", "MAIN_SEARCHFORM_ADHERENT", "MAIN_SEARCHFORM_PROJECT", "MAIN_SEARCHFORM_EMPLOYEE");
|
||||||
|
$searchformconst=array($conf->global->MAIN_SEARCHFORM_SOCIETE,$conf->global->MAIN_SEARCHFORM_CONTACT,$conf->global->MAIN_SEARCHFORM_PRODUITSERVICE,$conf->global->MAIN_SEARCHFORM_PRODUITSERVICE_SUPPLIER,$conf->global->MAIN_SEARCHFORM_ADHERENT,$conf->global->MAIN_SEARCHFORM_PROJECT,$conf->global->MAIN_SEARCHFORM_EMPLOYEE);
|
||||||
|
$searchformtitle=array($langs->trans("Companies"), $langs->trans("Contacts"), $langs->trans("ProductsAndServices"), $langs->trans("ProductsAndServices").' ('.$langs->trans("SupplierRef").')', $langs->trans("Members"), $langs->trans("Projects"), $langs->trans("Users"));
|
||||||
$searchformmodule=array('Module1Name','Module1Name','Module50Name','Module50Name','Module310Name','Module400Name');
|
$searchformmodule=array('Module1Name','Module1Name','Module50Name','Module50Name','Module310Name','Module400Name');
|
||||||
|
}
|
||||||
|
|
||||||
if ($action == 'update')
|
if ($action == 'update')
|
||||||
{
|
{
|
||||||
dolibarr_set_const($db, "MAIN_LANG_DEFAULT", $_POST["main_lang_default"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_LANG_DEFAULT", $_POST["main_lang_default"],'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_MULTILANGS", $_POST["main_multilangs"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_MULTILANGS", $_POST["main_multilangs"],'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_SIZE_LISTE_LIMIT", $_POST["main_size_liste_limit"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_SIZE_LISTE_LIMIT", $_POST["main_size_liste_limit"],'chaine',0,'',$conf->entity);
|
||||||
|
dolibarr_set_const($db, "MAIN_SIZE_SHORTLISTE_LIMIT", $_POST["main_size_shortliste_limit"],'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_DISABLE_JAVASCRIPT", $_POST["main_disable_javascript"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_DISABLE_JAVASCRIPT", $_POST["main_disable_javascript"],'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_BUTTON_HIDE_UNAUTHORIZED", $_POST["MAIN_BUTTON_HIDE_UNAUTHORIZED"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_BUTTON_HIDE_UNAUTHORIZED", $_POST["MAIN_BUTTON_HIDE_UNAUTHORIZED"],'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_START_WEEK", $_POST["MAIN_START_WEEK"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_START_WEEK", $_POST["MAIN_START_WEEK"],'chaine',0,'',$conf->entity);
|
||||||
@ -76,12 +81,15 @@ if ($action == 'update')
|
|||||||
if ($val == '') dolibarr_del_const($db, 'THEME_ELDY_BACKTITLE1', $conf->entity);
|
if ($val == '') dolibarr_del_const($db, 'THEME_ELDY_BACKTITLE1', $conf->entity);
|
||||||
else dolibarr_set_const($db, 'THEME_ELDY_BACKTITLE1', join(',',colorStringToArray(GETPOST('THEME_ELDY_BACKTITLE1'),array())),'chaine',0,'',$conf->entity);
|
else dolibarr_set_const($db, 'THEME_ELDY_BACKTITLE1', join(',',colorStringToArray(GETPOST('THEME_ELDY_BACKTITLE1'),array())),'chaine',0,'',$conf->entity);
|
||||||
|
|
||||||
|
/*
|
||||||
dolibarr_set_const($db, "MAIN_SEARCHFORM_CONTACT", $_POST["MAIN_SEARCHFORM_CONTACT"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_SEARCHFORM_CONTACT", $_POST["MAIN_SEARCHFORM_CONTACT"],'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_SEARCHFORM_SOCIETE", $_POST["MAIN_SEARCHFORM_SOCIETE"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_SEARCHFORM_SOCIETE", $_POST["MAIN_SEARCHFORM_SOCIETE"],'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_SEARCHFORM_PRODUITSERVICE", $_POST["MAIN_SEARCHFORM_PRODUITSERVICE"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_SEARCHFORM_PRODUITSERVICE", $_POST["MAIN_SEARCHFORM_PRODUITSERVICE"],'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_SEARCHFORM_PRODUITSERVICE_SUPPLIER",$_POST["MAIN_SEARCHFORM_PRODUITSERVICE_SUPPLIER"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_SEARCHFORM_PRODUITSERVICE_SUPPLIER",$_POST["MAIN_SEARCHFORM_PRODUITSERVICE_SUPPLIER"],'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_SEARCHFORM_ADHERENT", $_POST["MAIN_SEARCHFORM_ADHERENT"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_SEARCHFORM_ADHERENT", $_POST["MAIN_SEARCHFORM_ADHERENT"],'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_SEARCHFORM_PROJECT", $_POST["MAIN_SEARCHFORM_PROJECT"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_SEARCHFORM_PROJECT", $_POST["MAIN_SEARCHFORM_PROJECT"],'chaine',0,'',$conf->entity);
|
||||||
|
dolibarr_set_const($db, "MAIN_SEARCHFORM_EMPLOYEE", $_POST["MAIN_SEARCHFORM_EMPLOYEE"],'chaine',0,'',$conf->entity);
|
||||||
|
*/
|
||||||
|
|
||||||
dolibarr_set_const($db, "MAIN_HELPCENTER_DISABLELINK", $_POST["MAIN_HELPCENTER_DISABLELINK"],'chaine',0,'',0); // Param for all entities
|
dolibarr_set_const($db, "MAIN_HELPCENTER_DISABLELINK", $_POST["MAIN_HELPCENTER_DISABLELINK"],'chaine',0,'',0); // Param for all entities
|
||||||
dolibarr_set_const($db, "MAIN_MOTD", dol_htmlcleanlastbr($_POST["main_motd"]),'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_MOTD", dol_htmlcleanlastbr($_POST["main_motd"]),'chaine',0,'',$conf->entity);
|
||||||
@ -161,6 +169,8 @@ if ($action == 'edit') // Edit
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
// Liste des zone de recherche permanantes supportees
|
// Liste des zone de recherche permanantes supportees
|
||||||
|
if (! empty($searchform))
|
||||||
|
{
|
||||||
print '<table summary="search" class="noborder" width="100%">';
|
print '<table summary="search" class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><td width="35%">'.$langs->trans("PermanentLeftSearchForm").'</td><td colspan="2">'.$langs->trans("Activated").'</td></tr>';
|
print '<tr class="liste_titre"><td width="35%">'.$langs->trans("PermanentLeftSearchForm").'</td><td colspan="2">'.$langs->trans("Activated").'</td></tr>';
|
||||||
$var=True;
|
$var=True;
|
||||||
@ -173,6 +183,7 @@ if ($action == 'edit') // Edit
|
|||||||
}
|
}
|
||||||
print '</table>';
|
print '</table>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
}
|
||||||
|
|
||||||
// Other
|
// Other
|
||||||
print '<table summary="edit" class="noborder" width="100%">';
|
print '<table summary="edit" class="noborder" width="100%">';
|
||||||
@ -204,6 +215,12 @@ if ($action == 'edit') // Edit
|
|||||||
print '<td width="20"> </td>';
|
print '<td width="20"> </td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
|
// Max size of short lists on customer card
|
||||||
|
$var=!$var;
|
||||||
|
print '<tr '.$bc[$var].'><td>'.$langs->trans("DefaultMaxSizeShortList").'</td><td><input class="flat" name="main_size_shortliste_limit" size="4" value="' . $conf->global->MAIN_SIZE_SHORTLISTE_LIMIT . '"></td>';
|
||||||
|
print '<td width="20"> </td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
// Disable javascript and ajax
|
// Disable javascript and ajax
|
||||||
$var=!$var;
|
$var=!$var;
|
||||||
print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DisableJavascript").'</td><td>';
|
print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DisableJavascript").'</td><td>';
|
||||||
@ -348,7 +365,9 @@ else // Show
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
|
||||||
// Liste des zone de recherches permanentes supportees
|
// List of search forms to show
|
||||||
|
if (! empty($searchform))
|
||||||
|
{
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><td width="35%">'.$langs->trans("PermanentLeftSearchForm").'</td><td>'.$langs->trans("Activated").'</td><td> </td></tr>';
|
print '<tr class="liste_titre"><td width="35%">'.$langs->trans("PermanentLeftSearchForm").'</td><td>'.$langs->trans("Activated").'</td><td> </td></tr>';
|
||||||
$var=true;
|
$var=true;
|
||||||
@ -356,12 +375,13 @@ else // Show
|
|||||||
{
|
{
|
||||||
$var=!$var;
|
$var=!$var;
|
||||||
print '<tr '.$bc[$var].'><td width="35%">'.$searchformtitle[$key].'</td><td>'.yn($searchformconst[$key]).'</td>';
|
print '<tr '.$bc[$var].'><td width="35%">'.$searchformtitle[$key].'</td><td>'.yn($searchformconst[$key]).'</td>';
|
||||||
print '<td align="left">'.$langs->trans("IfModuleEnabled",$langs->transnoentitiesnoconv($searchformmodule[$key]));
|
print '<td align="left">';
|
||||||
|
if (! empty($searchformmodule[$key])) print $langs->trans("IfModuleEnabled",$langs->transnoentitiesnoconv($searchformmodule[$key]));
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
print '</table>';
|
print '</table>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
}
|
||||||
|
|
||||||
// Other
|
// Other
|
||||||
$var=true;
|
$var=true;
|
||||||
@ -386,6 +406,11 @@ else // Show
|
|||||||
print '<td width="20"> </td>';
|
print '<td width="20"> </td>';
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
|
|
||||||
|
$var=!$var;
|
||||||
|
print '<tr '.$bc[$var].'><td>'.$langs->trans("DefaultMaxSizeShortList").'</td><td>' . $conf->global->MAIN_SIZE_SHORTLISTE_LIMIT . '</td>';
|
||||||
|
print '<td width="20"> </td>';
|
||||||
|
print "</tr>";
|
||||||
|
|
||||||
// Disable javascript/ajax
|
// Disable javascript/ajax
|
||||||
$var=!$var;
|
$var=!$var;
|
||||||
print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DisableJavascript").'</td><td>';
|
print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DisableJavascript").'</td><td>';
|
||||||
|
|||||||
@ -99,7 +99,7 @@ if (($action == 'testsubscribe' || $action == 'testunsubscribe') && ! empty($con
|
|||||||
if (! isValidEmail($email))
|
if (! isValidEmail($email))
|
||||||
{
|
{
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
setEventMessage($langs->trans("ErrorBadEMail",$email),'errors');
|
setEventMessages($langs->trans("ErrorBadEMail",$email), null, 'errors');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -118,11 +118,11 @@ if (($action == 'testsubscribe' || $action == 'testunsubscribe') && ! empty($con
|
|||||||
if ($result < 0)
|
if ($result < 0)
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessage($mailmanspip->error,'errors');
|
setEventMessages($mailmanspip->error,$mailmanspip->errors,'errors');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("MailmanCreationSuccess"));
|
setEventMessages($langs->trans("MailmanCreationSuccess"), null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($action == 'testunsubscribe')
|
if ($action == 'testunsubscribe')
|
||||||
@ -131,11 +131,11 @@ if (($action == 'testsubscribe' || $action == 'testunsubscribe') && ! empty($con
|
|||||||
if ($result < 0)
|
if ($result < 0)
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessage($mailmanspip->error,'errors');
|
setEventMessages($mailmanspip->error,$mailmanspip->errors,'errors');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("MailmanDeletionSuccess"));
|
setEventMessages($langs->trans("MailmanDeletionSuccess"), null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -156,12 +156,15 @@ print load_fiche_titre($langs->trans("MailmanSpipSetup"),$linkback,'title_setup'
|
|||||||
|
|
||||||
$head = mailmanspip_admin_prepare_head();
|
$head = mailmanspip_admin_prepare_head();
|
||||||
|
|
||||||
dol_fiche_head($head, 'mailman', $langs->trans("Setup"), 0, 'user');
|
|
||||||
|
|
||||||
$var=true;
|
$var=true;
|
||||||
|
|
||||||
if (! empty($conf->global->ADHERENT_USE_MAILMAN))
|
if (! empty($conf->global->ADHERENT_USE_MAILMAN))
|
||||||
{
|
{
|
||||||
|
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
||||||
|
|
||||||
|
dol_fiche_head($head, 'mailman', $langs->trans("Setup"), 0, 'user');
|
||||||
|
|
||||||
//$link=img_picto($langs->trans("Active"),'tick').' ';
|
//$link=img_picto($langs->trans("Active"),'tick').' ';
|
||||||
$link='<a href="'.$_SERVER["PHP_SELF"].'?action=unset&value=0&name=ADHERENT_USE_MAILMAN">';
|
$link='<a href="'.$_SERVER["PHP_SELF"].'?action=unset&value=0&name=ADHERENT_USE_MAILMAN">';
|
||||||
//$link.=$langs->trans("Disable");
|
//$link.=$langs->trans("Disable");
|
||||||
@ -200,21 +203,30 @@ if (! empty($conf->global->ADHERENT_USE_MAILMAN))
|
|||||||
});
|
});
|
||||||
</script>';
|
</script>';
|
||||||
|
|
||||||
form_constantes($constantes,1);
|
form_constantes($constantes,2);
|
||||||
|
|
||||||
print '*'.$langs->trans("FollowingConstantsWillBeSubstituted").'<br>';
|
print '*'.$langs->trans("FollowingConstantsWillBeSubstituted").'<br>';
|
||||||
print '%LISTE%, %MAILMAN_ADMINPW%, %EMAIL% <br>';
|
print '%LISTE%, %MAILMAN_ADMINPW%, %EMAIL% <br>';
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
|
||||||
|
print '<div class="center"><input type="submit" class="button" value="'.$langs->trans("Update").'" name="update"></div>';
|
||||||
|
|
||||||
|
print '</form>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
dol_fiche_head($head, 'mailman', $langs->trans("Setup"), 0, 'user');
|
||||||
|
|
||||||
$link='<a href="'.$_SERVER["PHP_SELF"].'?action=set&value=1&name=ADHERENT_USE_MAILMAN">';
|
$link='<a href="'.$_SERVER["PHP_SELF"].'?action=set&value=1&name=ADHERENT_USE_MAILMAN">';
|
||||||
//$link.=img_$langs->trans("Activate")
|
//$link.=img_$langs->trans("Activate")
|
||||||
$link.=img_picto($langs->trans("Disabled"),'switch_off');
|
$link.=img_picto($langs->trans("Disabled"),'switch_off');
|
||||||
$link.='</a>';
|
$link.='</a>';
|
||||||
print load_fiche_titre($langs->trans('MailmanTitle'), $link,'');
|
print load_fiche_titre($langs->trans('MailmanTitle'), $link,'');
|
||||||
}
|
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (! empty($conf->global->ADHERENT_USE_MAILMAN))
|
if (! empty($conf->global->ADHERENT_USE_MAILMAN))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -78,16 +78,16 @@ if ($action == 'update')
|
|||||||
$result=$menu->update($user);
|
$result=$menu->update($user);
|
||||||
if ($result > 0)
|
if ($result > 0)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("RecordModifiedSuccessfully"));
|
setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($menu->error, 'errors');
|
setEventMessages($menu->error, $menu->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($menu->error, 'errors');
|
setEventMessages($menu->error, $menu->errors, 'errors');
|
||||||
}
|
}
|
||||||
$_GET["menuId"] = $_POST['menuId'];
|
$_GET["menuId"] = $_POST['menuId'];
|
||||||
$action = "edit";
|
$action = "edit";
|
||||||
@ -159,13 +159,13 @@ if ($action == 'add')
|
|||||||
}
|
}
|
||||||
if (! $error && $_POST['menuId'] && $_POST['type'] == 'top')
|
if (! $error && $_POST['menuId'] && $_POST['type'] == 'top')
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("ErrorTopMenuMustHaveAParentWithId0"), 'errors');
|
setEventMessages($langs->trans("ErrorTopMenuMustHaveAParentWithId0"), null, 'errors');
|
||||||
$action = 'create';
|
$action = 'create';
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
if (! $error && empty($_POST['menuId']) && $_POST['type'] == 'left')
|
if (! $error && empty($_POST['menuId']) && $_POST['type'] == 'left')
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("ErrorLeftMenuMustHaveAParentId"), 'errors');
|
setEventMessages($langs->trans("ErrorLeftMenuMustHaveAParentId"), null, 'errors');
|
||||||
$action = 'create';
|
$action = 'create';
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
@ -204,7 +204,7 @@ if ($action == 'add')
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
$action = 'create';
|
$action = 'create';
|
||||||
setEventMessage($menu->error, 'errors');
|
setEventMessages($menu->error, $menu->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -222,7 +222,7 @@ if ($action == 'confirm_delete' && $_POST["confirm"] == 'yes')
|
|||||||
$this->db->commit();
|
$this->db->commit();
|
||||||
|
|
||||||
llxHeader();
|
llxHeader();
|
||||||
setEventMessage($langs->trans("MenuDeleted"));
|
setEventMessages($langs->trans("MenuDeleted"), null, 'mesgs');
|
||||||
llxFooter();
|
llxFooter();
|
||||||
exit ;
|
exit ;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -186,7 +186,7 @@ elseif ($action == 'confirm_delete' && $confirm == 'yes')
|
|||||||
{
|
{
|
||||||
$db->commit();
|
$db->commit();
|
||||||
|
|
||||||
setEventMessage($langs->trans("MenuDeleted"));
|
setEventMessages($langs->trans("MenuDeleted"), null, 'mesgs');
|
||||||
|
|
||||||
header("Location: ".DOL_URL_ROOT.'/admin/menus/index.php?menu_handler='.$menu_handler);
|
header("Location: ".DOL_URL_ROOT.'/admin/menus/index.php?menu_handler='.$menu_handler);
|
||||||
exit ;
|
exit ;
|
||||||
@ -359,7 +359,7 @@ if ($conf->use_javascript_ajax)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
setEventMessage($langs->trans("ErrorFeatureNeedJavascript"), 'errors');
|
setEventMessages($langs->trans("ErrorFeatureNeedJavascript"), null, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|||||||
@ -54,19 +54,20 @@ if ($action == 'update' || $action == 'add')
|
|||||||
$constname=GETPOST("constname");
|
$constname=GETPOST("constname");
|
||||||
$constvalue=GETPOST("constvalue");
|
$constvalue=GETPOST("constvalue");
|
||||||
|
|
||||||
if (($constname=='ADHERENT_CARD_TYPE' || $constname=='ADHERENT_ETIQUETTE_TYPE') && $constvalue == -1) $constvalue='';
|
// Action mise a jour ou ajout d'une constante
|
||||||
if ($constname=='ADHERENT_LOGIN_NOT_REQUIRED') // Invert choice
|
if ($action == 'update' || $action == 'add')
|
||||||
{
|
{
|
||||||
if ($constvalue) $constvalue=0;
|
foreach($_POST['constname'] as $key => $val)
|
||||||
else $constvalue=1;
|
{
|
||||||
}
|
$constname=$_POST["constname"][$key];
|
||||||
|
$constvalue=$_POST["constvalue"][$key];
|
||||||
|
$consttype=$_POST["consttype"][$key];
|
||||||
|
$constnote=$_POST["constnote"][$key];
|
||||||
|
|
||||||
if (in_array($constname,array('ADHERENT_MAIL_VALID','ADHERENT_MAIL_COTIS','ADHERENT_MAIL_RESIL'))) $constvalue=$_POST["constvalue".$constname];
|
|
||||||
$consttype=$_POST["consttype"];
|
|
||||||
$constnote=GETPOST("constnote");
|
|
||||||
$res=dolibarr_set_const($db,$constname,$constvalue,$type[$consttype],0,$constnote,$conf->entity);
|
$res=dolibarr_set_const($db,$constname,$constvalue,$type[$consttype],0,$constnote,$conf->entity);
|
||||||
|
|
||||||
if (! $res > 0) $error++;
|
if (! $res > 0) $error++;
|
||||||
|
}
|
||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
@ -77,6 +78,7 @@ if ($action == 'update' || $action == 'add')
|
|||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessage($langs->trans("Error"),'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Action activation d'un sous module du module adherent
|
// Action activation d'un sous module du module adherent
|
||||||
if ($action == 'set')
|
if ($action == 'set')
|
||||||
@ -115,7 +117,6 @@ print load_fiche_titre($langs->trans("MailmanSpipSetup"),$linkback,'title_setup'
|
|||||||
|
|
||||||
$head = mailmanspip_admin_prepare_head();
|
$head = mailmanspip_admin_prepare_head();
|
||||||
|
|
||||||
dol_fiche_head($head, 'spip', $langs->trans("Setup"), 0, 'user');
|
|
||||||
|
|
||||||
$var=true;
|
$var=true;
|
||||||
|
|
||||||
@ -124,6 +125,10 @@ $var=true;
|
|||||||
*/
|
*/
|
||||||
if (! empty($conf->global->ADHERENT_USE_SPIP))
|
if (! empty($conf->global->ADHERENT_USE_SPIP))
|
||||||
{
|
{
|
||||||
|
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
||||||
|
|
||||||
|
dol_fiche_head($head, 'spip', $langs->trans("Setup"), 0, 'user');
|
||||||
|
|
||||||
//$link=img_picto($langs->trans("Active"),'tick').' ';
|
//$link=img_picto($langs->trans("Active"),'tick').' ';
|
||||||
$link='<a href="'.$_SERVER["PHP_SELF"].'?action=unset&value=0&name=ADHERENT_USE_SPIP">';
|
$link='<a href="'.$_SERVER["PHP_SELF"].'?action=unset&value=0&name=ADHERENT_USE_SPIP">';
|
||||||
//$link.=$langs->trans("Disable");
|
//$link.=$langs->trans("Disable");
|
||||||
@ -139,20 +144,27 @@ if (! empty($conf->global->ADHERENT_USE_SPIP))
|
|||||||
|
|
||||||
print load_fiche_titre($langs->trans('SPIPTitle'), $link, '');
|
print load_fiche_titre($langs->trans('SPIPTitle'), $link, '');
|
||||||
print '<br>';
|
print '<br>';
|
||||||
form_constantes($constantes);
|
|
||||||
print '<br>';
|
form_constantes($constantes,2);
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
|
||||||
|
print '<div class="center"><input type="submit" class="button" value="'.$langs->trans("Update").'" name="update"></div>';
|
||||||
|
|
||||||
|
print '</form>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
dol_fiche_head($head, 'spip', $langs->trans("Setup"), 0, 'user');
|
||||||
|
|
||||||
$link='<a href="'.$_SERVER["PHP_SELF"].'?action=set&value=1&name=ADHERENT_USE_SPIP">';
|
$link='<a href="'.$_SERVER["PHP_SELF"].'?action=set&value=1&name=ADHERENT_USE_SPIP">';
|
||||||
//$link.=$langs->trans("Activate");
|
//$link.=$langs->trans("Activate");
|
||||||
$link.=img_picto($langs->trans("Disabled"),'switch_off');
|
$link.=img_picto($langs->trans("Disabled"),'switch_off');
|
||||||
$link.='</a>';
|
$link.='</a>';
|
||||||
print load_fiche_titre($langs->trans('SPIPTitle'), $link, '');
|
print load_fiche_titre($langs->trans('SPIPTitle'), $link, '');
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
}
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|
||||||
|
|||||||
@ -52,8 +52,8 @@ if ($action == 'delete')
|
|||||||
{
|
{
|
||||||
$file=$conf->admin->dir_output.'/'.GETPOST('urlfile');
|
$file=$conf->admin->dir_output.'/'.GETPOST('urlfile');
|
||||||
$ret=dol_delete_file($file, 1);
|
$ret=dol_delete_file($file, 1);
|
||||||
if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile')));
|
if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile')), null, 'mesgs');
|
||||||
else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors');
|
else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), null, 'errors');
|
||||||
$action='';
|
$action='';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -60,8 +60,8 @@ if ($action == 'delete')
|
|||||||
{
|
{
|
||||||
$file=$conf->admin->dir_output.'/'.GETPOST('urlfile');
|
$file=$conf->admin->dir_output.'/'.GETPOST('urlfile');
|
||||||
$ret=dol_delete_file($file, 1);
|
$ret=dol_delete_file($file, 1);
|
||||||
if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile')));
|
if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile')), null, 'mesgs');
|
||||||
else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors');
|
else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), null, 'errors');
|
||||||
$action='';
|
$action='';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -357,7 +357,7 @@ if ($what == 'postgresql')
|
|||||||
//{
|
//{
|
||||||
if ($errormsg)
|
if ($errormsg)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("Error")." : ".$errormsg, 'errors');
|
setEventMessages($langs->trans("Error")." : ".$errormsg, null, 'errors');
|
||||||
|
|
||||||
$resultstring='';
|
$resultstring='';
|
||||||
$resultstring.='<div class="error">'.$langs->trans("Error")." : ".$errormsg.'</div>';
|
$resultstring.='<div class="error">'.$langs->trans("Error")." : ".$errormsg.'</div>';
|
||||||
@ -368,7 +368,7 @@ if ($what == 'postgresql')
|
|||||||
{
|
{
|
||||||
if ($what)
|
if ($what)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("BackupFileSuccessfullyCreated").'.<br>'.$langs->trans("YouCanDownloadBackupFile"));
|
setEventMessages($langs->trans("BackupFileSuccessfullyCreated").'.<br>'.$langs->trans("YouCanDownloadBackupFile"), null, 'mesgs');
|
||||||
|
|
||||||
$resultstring='<div class="ok">';
|
$resultstring='<div class="ok">';
|
||||||
$resultstring.=$langs->trans("BackupFileSuccessfullyCreated").'.<br>';
|
$resultstring.=$langs->trans("BackupFileSuccessfullyCreated").'.<br>';
|
||||||
@ -379,7 +379,7 @@ if ($what == 'postgresql')
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("YouMustRunCommandFromCommandLineAfterLoginToUser",$dolibarr_main_db_user,$dolibarr_main_db_user));
|
setEventMessages($langs->trans("YouMustRunCommandFromCommandLineAfterLoginToUser",$dolibarr_main_db_user,$dolibarr_main_db_user), null, 'mesgs');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//}
|
//}
|
||||||
|
|||||||
@ -34,7 +34,7 @@ $action=GETPOST('action','alpha');
|
|||||||
if (! $user->admin) accessforbidden();
|
if (! $user->admin) accessforbidden();
|
||||||
|
|
||||||
if (GETPOST('msg','alpha')) {
|
if (GETPOST('msg','alpha')) {
|
||||||
setEventMessage(GETPOST('msg','alpha'), 'errors');
|
setEventMessages(GETPOST('msg','alpha'), null, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ if ($action=='install')
|
|||||||
if (! $original_file)
|
if (! $original_file)
|
||||||
{
|
{
|
||||||
$langs->load("Error");
|
$langs->load("Error");
|
||||||
setEventMessage($langs->trans("ErrorFileRequired"), 'warnings');
|
setEventMessages($langs->trans("ErrorFileRequired"), null, 'warnings');
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -71,7 +71,7 @@ if ($action=='install')
|
|||||||
if (! preg_match('/\.zip/i',$original_file))
|
if (! preg_match('/\.zip/i',$original_file))
|
||||||
{
|
{
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
setEventMessage($langs->trans("ErrorFileMustBeADolibarrPackage",$original_file), 'errors');
|
setEventMessages($langs->trans("ErrorFileMustBeADolibarrPackage",$original_file), null, 'errors');
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -99,7 +99,7 @@ if ($action=='install')
|
|||||||
if (! empty($result['error']))
|
if (! empty($result['error']))
|
||||||
{
|
{
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
setEventMessage($langs->trans($result['error'],$original_file), 'errors');
|
setEventMessages($langs->trans($result['error'],$original_file), null, 'errors');
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -116,7 +116,7 @@ if ($action=='install')
|
|||||||
//var_dump($modulenamedir);
|
//var_dump($modulenamedir);
|
||||||
if (! dol_is_dir($modulenamedir))
|
if (! dol_is_dir($modulenamedir))
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("ErrorModuleFileSeemsToHaveAWrongFormat"), 'errors');
|
setEventMessages($langs->trans("ErrorModuleFileSeemsToHaveAWrongFormat"), null, 'errors');
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -128,7 +128,7 @@ if ($action=='install')
|
|||||||
$result=dolCopyDir($modulenamedir, $dirins.'/'.$modulename, '0444', 1);
|
$result=dolCopyDir($modulenamedir, $dirins.'/'.$modulename, '0444', 1);
|
||||||
if ($result <= 0)
|
if ($result <= 0)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("ErrorFailedToCopy"), 'errors');
|
setEventMessages($langs->trans("ErrorFailedToCopy"), null, 'errors');
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -142,7 +142,7 @@ if ($action=='install')
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("SetupIsReadyForUse"));
|
setEventMessages($langs->trans("SetupIsReadyForUse"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -184,7 +184,7 @@ $help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas';
|
|||||||
llxHeader('',$title,$help_url);
|
llxHeader('',$title,$help_url);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
if ($mode == 'search')
|
if ($mode == 'search')
|
||||||
{
|
{
|
||||||
if ($modesearch == 'soc')
|
if ($modesearch == 'soc')
|
||||||
@ -209,7 +209,7 @@ if ($mode == 'search')
|
|||||||
$db->free($resql);
|
$db->free($resql);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
if ($id > 0)
|
if ($id > 0)
|
||||||
{
|
{
|
||||||
@ -226,7 +226,7 @@ if ($id > 0)
|
|||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
// Alias name (commercial, trademark or alias name)
|
// Alias name (commercial, trademark or alias name)
|
||||||
print '<tr><td class="titelfield">'.$langs->trans('AliasNameShort').'</td><td colspan="3">';
|
print '<tr><td class="titelfield">'.$langs->trans('AliasNames').'</td><td colspan="3">';
|
||||||
print $object->name_alias;
|
print $object->name_alias;
|
||||||
print "</td></tr>";
|
print "</td></tr>";
|
||||||
|
|
||||||
@ -376,17 +376,6 @@ if ($id > 0)
|
|||||||
$limit_field_type = (! empty($conf->global->MAIN_USE_JQUERY_JEDITABLE)) ? 'numeric' : 'amount';
|
$limit_field_type = (! empty($conf->global->MAIN_USE_JQUERY_JEDITABLE)) ? 'numeric' : 'amount';
|
||||||
print $form->editfieldval("OutstandingBill",'outstanding_limit',$object->outstanding_limit,$object,$user->rights->societe->creer,$limit_field_type,($object->outstanding_limit != '' ? price($object->outstanding_limit) : ''));
|
print $form->editfieldval("OutstandingBill",'outstanding_limit',$object->outstanding_limit,$object,$user->rights->societe->creer,$limit_field_type,($object->outstanding_limit != '' ? price($object->outstanding_limit) : ''));
|
||||||
if (empty($object->outstanding_limit)) print $langs->trans("NoLimit");
|
if (empty($object->outstanding_limit)) print $langs->trans("NoLimit");
|
||||||
// display amount and link to unpaid bill
|
|
||||||
$outstandingBills = $object->get_OutstandingBill();
|
|
||||||
print ' (' . $langs->trans('CurrentOutstandingBill') . ': ';
|
|
||||||
print price($outstandingBills, '', $langs, 0, 0, - 1, $conf->currency);
|
|
||||||
if ($object->outstanding_limit != '')
|
|
||||||
{
|
|
||||||
if ($outstandingBills > $object->outstanding_limit)
|
|
||||||
print img_warning($langs->trans("OutstandingBillReached"));
|
|
||||||
//print ' / ' . price($soc->outstanding_limit);
|
|
||||||
}
|
|
||||||
print ')';
|
|
||||||
|
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
@ -491,14 +480,24 @@ if ($id > 0)
|
|||||||
|
|
||||||
|
|
||||||
// Nbre max d'elements des petites listes
|
// Nbre max d'elements des petites listes
|
||||||
$MAXLIST=4;
|
$MAXLIST=$conf->global->MAIN_SIZE_SHORTLISTE_LIMIT;
|
||||||
$tableaushown=1;
|
|
||||||
|
|
||||||
// Lien recap
|
// Lien recap
|
||||||
|
$outstandingBills = $object->get_OutstandingBill();
|
||||||
|
$warn = '';
|
||||||
|
if ($object->outstanding_limit != '' && $object->outstanding_limit < $outstandingBills)
|
||||||
|
{
|
||||||
|
$warn = img_warning($langs->trans("OutstandingBillReached"));
|
||||||
|
}
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td colspan="4"><table width="100%" class="nobordernopadding"><tr><td>'.$langs->trans("Summary").'</td>';
|
print '<td>'.$langs->trans("Summary").'</td>';
|
||||||
print '<td align="right"><a href="'.DOL_URL_ROOT.'/compta/recap-compta.php?socid='.$object->id.'">'.$langs->trans("ShowCustomerPreview").'</a></td></tr></table></td>';
|
print '<td align="right"><a href="'.DOL_URL_ROOT.'/compta/recap-compta.php?socid='.$object->id.'">'.$langs->trans("ShowCustomerPreview").'</a></td>';
|
||||||
|
print '</tr>';
|
||||||
|
print '<tr class="impair">';
|
||||||
|
print '<td>'.$langs->trans("CurrentOutstandingBill").'</td>';
|
||||||
|
print '<td align="right">'.price($outstandingBills).$warn.'</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
print '</table>';
|
print '</table>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
@ -684,7 +683,6 @@ if ($id > 0)
|
|||||||
if ($num > 0) {
|
if ($num > 0) {
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
|
|
||||||
$tableaushown=1;
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td colspan="4"><table width="100%" class="nobordernopadding"><tr><td>'.$langs->trans("LastSendings",($num<=$MAXLIST?"":$MAXLIST)).'</td><td align="right"><a href="'.DOL_URL_ROOT.'/expedition/list.php?socid='.$object->id.'">'.$langs->trans("AllSendings").' <span class="badge">'.$num.'</span></a></td>';
|
print '<td colspan="4"><table width="100%" class="nobordernopadding"><tr><td>'.$langs->trans("LastSendings",($num<=$MAXLIST?"":$MAXLIST)).'</td><td align="right"><a href="'.DOL_URL_ROOT.'/expedition/list.php?socid='.$object->id.'">'.$langs->trans("AllSendings").' <span class="badge">'.$num.'</span></a></td>';
|
||||||
print '<td width="20px" align="right"><a href="'.DOL_URL_ROOT.'/expedition/stats/index.php?socid='.$object->id.'">'.img_picto($langs->trans("Statistics"),'stats').'</a></td>';
|
print '<td width="20px" align="right"><a href="'.DOL_URL_ROOT.'/expedition/stats/index.php?socid='.$object->id.'">'.img_picto($langs->trans("Statistics"),'stats').'</a></td>';
|
||||||
@ -868,7 +866,6 @@ if ($id > 0)
|
|||||||
{
|
{
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
|
|
||||||
$tableaushown=1;
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td colspan="4"><table width="100%" class="nobordernopadding"><tr><td>'.$langs->trans("LastCustomersBills",($num<=$MAXLIST?"":$MAXLIST)).'</td><td align="right"><a href="'.DOL_URL_ROOT.'/compta/facture/list.php?socid='.$object->id.'">'.$langs->trans("AllBills").' <span class="badge">'.$num.'</span></a></td>';
|
print '<td colspan="4"><table width="100%" class="nobordernopadding"><tr><td>'.$langs->trans("LastCustomersBills",($num<=$MAXLIST?"":$MAXLIST)).'</td><td align="right"><a href="'.DOL_URL_ROOT.'/compta/facture/list.php?socid='.$object->id.'">'.$langs->trans("AllBills").' <span class="badge">'.$num.'</span></a></td>';
|
||||||
print '<td width="20px" align="right"><a href="'.DOL_URL_ROOT.'/compta/facture/stats/index.php?socid='.$object->id.'">'.img_picto($langs->trans("Statistics"),'stats').'</a></td>';
|
print '<td width="20px" align="right"><a href="'.DOL_URL_ROOT.'/compta/facture/stats/index.php?socid='.$object->id.'">'.img_picto($langs->trans("Statistics"),'stats').'</a></td>';
|
||||||
@ -1024,6 +1021,7 @@ if ($id > 0)
|
|||||||
// List of done actions
|
// List of done actions
|
||||||
show_actions_done($conf,$langs,$db,$object);
|
show_actions_done($conf,$langs,$db,$object);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,348 +0,0 @@
|
|||||||
<?php
|
|
||||||
/* Copyright (C) 2001-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
|
||||||
* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
|
||||||
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
|
|
||||||
* Copyright (C) 2013-2015 Florian Henry <florian.henry@open-concept.pro>
|
|
||||||
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
|
||||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
|
||||||
*
|
|
||||||
* This program is freei software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file htdocs/comm/list.php
|
|
||||||
* \ingroup commercial societe
|
|
||||||
* \brief List of customers
|
|
||||||
*/
|
|
||||||
|
|
||||||
require '../main.inc.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
|
|
||||||
|
|
||||||
$langs->load("companies");
|
|
||||||
$langs->load("customers");
|
|
||||||
$langs->load("suppliers");
|
|
||||||
$langs->load("commercial");
|
|
||||||
|
|
||||||
// Security check
|
|
||||||
$socid = GETPOST('socid','int');
|
|
||||||
if ($user->societe_id) $socid=$user->societe_id;
|
|
||||||
$result = restrictedArea($user,'societe',$socid,'');
|
|
||||||
|
|
||||||
$sortfield = GETPOST('sortfield','alpha');
|
|
||||||
$sortorder = GETPOST('sortorder','alpha');
|
|
||||||
$page=GETPOST('page','int');
|
|
||||||
if ($page == -1) { $page = 0 ; }
|
|
||||||
$offset = $conf->liste_limit * $page;
|
|
||||||
$pageprev = $page - 1;
|
|
||||||
$pagenext = $page + 1;
|
|
||||||
if (! $sortorder) $sortorder="ASC";
|
|
||||||
if (! $sortfield) $sortfield="s.nom";
|
|
||||||
|
|
||||||
$search_company = GETPOST("search_company");
|
|
||||||
$search_zipcode = GETPOST("search_zipcode");
|
|
||||||
$search_town = GETPOST("search_town");
|
|
||||||
$search_code = GETPOST("search_code");
|
|
||||||
$search_compta = GETPOST("search_compta");
|
|
||||||
$search_status = GETPOST("search_status",'int');
|
|
||||||
$search_country = GETPOST("search_country",'int');
|
|
||||||
$search_type_thirdparty = GETPOST("search_type_thirdparty",'int');
|
|
||||||
$optioncss = GETPOST('optioncss','alpha');
|
|
||||||
|
|
||||||
// Load sale and categ filters
|
|
||||||
$search_sale = GETPOST("search_sale",'int');
|
|
||||||
$search_categ = GETPOST("search_categ",'int');
|
|
||||||
$catid = GETPOST("catid",'int');
|
|
||||||
// If the internal user must only see his customers, force searching by him
|
|
||||||
if (!$user->rights->societe->client->voir && !$socid) $search_sale = $user->id;
|
|
||||||
|
|
||||||
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
|
|
||||||
$hookmanager->initHooks(array('customerlist'));
|
|
||||||
$extrafields = new ExtraFields($db);
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Actions
|
|
||||||
*/
|
|
||||||
|
|
||||||
$parameters=array();
|
|
||||||
$reshook=$hookmanager->executeHooks('doActions',$parameters); // Note that $action and $object may have been modified by some hooks
|
|
||||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
|
||||||
|
|
||||||
// Do we click on purge search criteria ?
|
|
||||||
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
|
||||||
{
|
|
||||||
$search_sale="";
|
|
||||||
$search_categ="";
|
|
||||||
$catid="";
|
|
||||||
$search_company="";
|
|
||||||
$search_zipcode="";
|
|
||||||
$search_town="";
|
|
||||||
$search_code='';
|
|
||||||
$search_compta='';
|
|
||||||
$search_status='';
|
|
||||||
$search_country="";
|
|
||||||
$search_type_thirdparty='';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($search_status=='') $search_status=1; // always display activ customer first
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* view
|
|
||||||
*/
|
|
||||||
|
|
||||||
$formother=new FormOther($db);
|
|
||||||
$form = new Form($db);
|
|
||||||
$thirdpartystatic=new Societe($db);
|
|
||||||
$formcompany=new FormCompany($db);
|
|
||||||
|
|
||||||
$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas';
|
|
||||||
llxHeader('',$langs->trans("ThirdParty"),$help_url);
|
|
||||||
|
|
||||||
$sql = "SELECT s.rowid, s.nom as name, s.name_alias, s.client, s.zip, s.town, st.libelle as stcomm, s.prefix_comm, s.code_client, s.code_compta, s.status as status,";
|
|
||||||
$sql.= " s.datec, s.canvas";
|
|
||||||
$sql.= ",s.fk_pays";
|
|
||||||
$sql.= ",typent.code as typent_code";
|
|
||||||
if ((!$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects)
|
|
||||||
// Add fields for extrafields
|
|
||||||
foreach ($extrafields->attribute_list as $key => $val) $sql.=",ef.".$key.' as options_'.$key;
|
|
||||||
// Add fields from hooks
|
|
||||||
$parameters=array();
|
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters); // Note that $action and $object may have been modified by hook
|
|
||||||
$sql.=$hookmanager->resPrint;
|
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."societe as s";
|
|
||||||
if (! empty($search_categ) || ! empty($catid)) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_societe as cs ON s.rowid = cs.fk_soc"; // We need this table joined to the select in order to filter by categ
|
|
||||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays) ";
|
|
||||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent) ";
|
|
||||||
if ((!$user->rights->societe->client->voir && !$socid) || $search_sale) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale
|
|
||||||
$sql.= ", ".MAIN_DB_PREFIX."c_stcomm as st";
|
|
||||||
$sql.= " WHERE s.fk_stcomm = st.id";
|
|
||||||
$sql.= " AND s.client IN (1, 3)";
|
|
||||||
$sql.= ' AND s.entity IN ('.getEntity('societe', 1).')';
|
|
||||||
if ((!$user->rights->societe->client->voir && !$socid) || $search_sale) $sql.= " AND s.rowid = sc.fk_soc";
|
|
||||||
if ($socid) $sql.= " AND s.rowid = ".$socid;
|
|
||||||
if ($search_sale > 0) $sql.= " AND s.rowid = sc.fk_soc"; // Join for the needed table to filter by sale
|
|
||||||
if ($catid > 0) $sql.= " AND cs.fk_categorie = ".$catid;
|
|
||||||
if ($catid == -2) $sql.= " AND cs.fk_categorie IS NULL";
|
|
||||||
if ($search_categ > 0) $sql.= " AND cs.fk_categorie = ".$search_categ;
|
|
||||||
if ($search_categ == -2) $sql.= " AND cs.fk_categorie IS NULL";
|
|
||||||
if ($search_company) $sql.= natural_search(array('s.nom', 's.name_alias'), $search_company);
|
|
||||||
if ($search_zipcode) $sql.= natural_search("s.zip", $search_zipcode);
|
|
||||||
if ($search_town) $sql.= natural_search('s.town', $search_town);
|
|
||||||
if ($search_code) $sql.= natural_search("s.code_client", $search_code);
|
|
||||||
if ($search_compta) $sql.= natural_search("s.code_compta", $search_compta);
|
|
||||||
if ($search_status!='') $sql.= " AND s.status = ".$db->escape($search_status);
|
|
||||||
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_sale > 0) $sql.= " AND sc.fk_user = ".$search_sale;
|
|
||||||
// Add where from hooks
|
|
||||||
$parameters=array();
|
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters); // Note that $action and $object may have been modified by hook
|
|
||||||
$sql.=$hookmanager->resPrint;
|
|
||||||
|
|
||||||
// Count total nb of records
|
|
||||||
$nbtotalofrecords = 0;
|
|
||||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
|
||||||
{
|
|
||||||
$result = $db->query($sql);
|
|
||||||
$nbtotalofrecords = $db->num_rows($result);
|
|
||||||
}
|
|
||||||
|
|
||||||
$sql.= $db->order($sortfield,$sortorder);
|
|
||||||
$sql.= $db->plimit($conf->liste_limit +1, $offset);
|
|
||||||
|
|
||||||
dol_syslog('comm/list.php:', LOG_DEBUG);
|
|
||||||
$result = $db->query($sql);
|
|
||||||
if ($result)
|
|
||||||
{
|
|
||||||
$num = $db->num_rows($result);
|
|
||||||
|
|
||||||
$param = "&search_company=".htmlspecialchars($search_company);
|
|
||||||
$param.="&search_code=".htmlspecialchars($search_code);
|
|
||||||
$param.="&search_zipcode=".htmlspecialchars($search_zipcode);
|
|
||||||
$param.="&search_town=".htmlspecialchars($search_town);
|
|
||||||
if ($search_categ != '') $param.='&search_categ='.htmlspecialchars($search_categ);
|
|
||||||
if ($search_sale > 0) $param.='&search_sale='.htmlspecialchars($search_sale);
|
|
||||||
if ($search_status != '') $param.='&search_status='.htmlspecialchars($search_status);
|
|
||||||
if ($search_country != '') $param.='&search_country='.htmlspecialchars($search_country);
|
|
||||||
if ($search_type_thirdparty != '') $param.='&search_type_thirdparty='.htmlspecialchars($search_type_thirdparty);
|
|
||||||
if ($optioncss != '') $param.='&optioncss='.$optioncss;
|
|
||||||
|
|
||||||
print_barre_liste($langs->trans("ListOfCustomers"), $page, $_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords,'title_companies.png');
|
|
||||||
|
|
||||||
$i = 0;
|
|
||||||
|
|
||||||
print '<form method="GET" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">'."\n";
|
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
|
||||||
|
|
||||||
// Filter on categories
|
|
||||||
$moreforfilter='';
|
|
||||||
if (! empty($conf->categorie->enabled))
|
|
||||||
{
|
|
||||||
$moreforfilter.='<div class="divsearchfield">';
|
|
||||||
$moreforfilter.=$langs->trans('Categories'). ': ';
|
|
||||||
$moreforfilter.=$formother->select_categories(2,$search_categ,'search_categ',1);
|
|
||||||
$moreforfilter.='</div>';
|
|
||||||
}
|
|
||||||
// If the user can view prospects other than his'
|
|
||||||
if ($user->rights->societe->client->voir || $socid)
|
|
||||||
{
|
|
||||||
$moreforfilter.='<div class="divsearchfield">';
|
|
||||||
$moreforfilter.=$langs->trans('SalesRepresentatives'). ': ';
|
|
||||||
$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user);
|
|
||||||
$moreforfilter.='</div>';
|
|
||||||
}
|
|
||||||
if ($moreforfilter)
|
|
||||||
{
|
|
||||||
print '<div class="liste_titre liste_titre_bydiv centpercent">';
|
|
||||||
print $moreforfilter;
|
|
||||||
$parameters=array();
|
|
||||||
$reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters); // Note that $action and $object may have been modified by hook
|
|
||||||
print $hookmanager->resPrint;
|
|
||||||
print '</div>';
|
|
||||||
}
|
|
||||||
|
|
||||||
print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">';
|
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
|
||||||
print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
|
|
||||||
print_liste_field_titre($langs->trans("Zip"),$_SERVER["PHP_SELF"],"s.zip","",$param,"",$sortfield,$sortorder);
|
|
||||||
print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.town","",$param,"",$sortfield,$sortorder);
|
|
||||||
print_liste_field_titre($langs->trans("Country"),$_SERVER["PHP_SELF"],"country.code_iso","",$param,'align="center"',$sortfield,$sortorder);
|
|
||||||
print_liste_field_titre($langs->trans("ThirdPartyType"),$_SERVER["PHP_SELF"],"typent.code","",$param,'align="center"',$sortfield,$sortorder);
|
|
||||||
print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","",$param,"",$sortfield,$sortorder);
|
|
||||||
print_liste_field_titre($langs->trans("AccountancyCode"),$_SERVER["PHP_SELF"],"s.code_compta","",$param,'align="left"',$sortfield,$sortorder);
|
|
||||||
print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"datec","",$param,'align="right"',$sortfield,$sortorder);
|
|
||||||
$parameters=array();
|
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook
|
|
||||||
print $hookmanager->resPrint;
|
|
||||||
print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"s.status","",$param,'align="center"',$sortfield,$sortorder);
|
|
||||||
print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
|
|
||||||
print "</tr>\n";
|
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
|
||||||
|
|
||||||
print '<td class="liste_titre">';
|
|
||||||
print '<input type="text" class="flat" name="search_company" value="'.$search_company.'" size="10">';
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
print '<td class="liste_titre">';
|
|
||||||
print '<input type="text" class="flat" name="search_zipcode" value="'.$search_zipcode.'" size="10">';
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
print '<td class="liste_titre">';
|
|
||||||
print '<input type="text" class="flat" name="search_town" value="'.$search_town.'" size="10">';
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
print '<td class="liste_titre" align="center">';
|
|
||||||
print $form->select_country($search_country,'search_country','',0,'maxwidth100');
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
print '<td class="liste_titre" align="center">';
|
|
||||||
print $form->selectarray("search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 0, 0, 0, '', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT)?'ASC':$conf->global->SOCIETE_SORT_ON_TYPEENT));
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
print '<td class="liste_titre">';
|
|
||||||
print '<input type="text" class="flat" name="search_code" value="'.$search_code.'" size="10">';
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
print '<td align="left" class="liste_titre">';
|
|
||||||
print '<input type="text" class="flat" name="search_compta" value="'.$search_compta.'" size="10">';
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
print '<td class="liste_titre" align="center">';
|
|
||||||
print ' ';
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
$parameters=array();
|
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListOption',$parameters); // Note that $action and $object may have been modified by hook
|
|
||||||
print $hookmanager->resPrint;
|
|
||||||
|
|
||||||
print '<td class="liste_titre" align="center">';
|
|
||||||
print $form->selectarray('search_status', array('0'=>$langs->trans('ActivityCeased'),'1'=>$langs->trans('InActivity')),$search_status);
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
print '<td class="liste_titre" align="right"><input class="liste_titre" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
|
|
||||||
print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
print '</tr>'."\n";
|
|
||||||
|
|
||||||
|
|
||||||
$var=True;
|
|
||||||
|
|
||||||
while ($i < min($num,$conf->liste_limit))
|
|
||||||
{
|
|
||||||
$obj = $db->fetch_object($result);
|
|
||||||
|
|
||||||
$var=!$var;
|
|
||||||
|
|
||||||
print "<tr ".$bc[$var].">";
|
|
||||||
print '<td>';
|
|
||||||
$thirdpartystatic->id=$obj->rowid;
|
|
||||||
$thirdpartystatic->name=$obj->name;
|
|
||||||
$thirdpartystatic->client=$obj->client;
|
|
||||||
$thirdpartystatic->code_client=$obj->code_client;
|
|
||||||
$thirdpartystatic->canvas=$obj->canvas;
|
|
||||||
$thirdpartystatic->status=$obj->status;
|
|
||||||
$thirdpartystatic->name_alias=$obj->name_alias;
|
|
||||||
print $thirdpartystatic->getNomUrl(1);
|
|
||||||
print '</td>';
|
|
||||||
print '<td>'.$obj->zip.'</td>';
|
|
||||||
print '<td>'.$obj->town.'</td>';
|
|
||||||
//Country
|
|
||||||
print '<td align="center">';
|
|
||||||
$tmparray=getCountry($obj->fk_pays,'all');
|
|
||||||
print $tmparray['label'];
|
|
||||||
print '</td>';
|
|
||||||
//Type ent
|
|
||||||
print '<td align="center">';
|
|
||||||
if (count($typenArray)==0) $typenArray = $formcompany->typent_array(1);
|
|
||||||
print $typenArray[$obj->typent_code];
|
|
||||||
print '</td>';
|
|
||||||
print '<td>'.$obj->code_client.'</td>';
|
|
||||||
print '<td>'.$obj->code_compta.'</td>';
|
|
||||||
print '<td align="right">'.dol_print_date($db->jdate($obj->datec),'day').'</td>';
|
|
||||||
|
|
||||||
$parameters=array('obj' => $obj);
|
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListValue',$parameters); // Note that $action and $object may have been modified by hook
|
|
||||||
print $hookmanager->resPrint;
|
|
||||||
|
|
||||||
print '<td align="center">'.$thirdpartystatic->getLibStatut(3);
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
print '<td></td>';
|
|
||||||
|
|
||||||
print "</tr>\n";
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
$db->free($result);
|
|
||||||
|
|
||||||
$parameters=array('sql' => $sql);
|
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListFooter',$parameters); // Note that $action and $object may have been modified by hook
|
|
||||||
print $hookmanager->resPrint;
|
|
||||||
|
|
||||||
print "</table>\n";
|
|
||||||
print "</form>\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dol_print_error($db);
|
|
||||||
}
|
|
||||||
|
|
||||||
llxFooter();
|
|
||||||
$db->close();
|
|
||||||
@ -2181,7 +2181,7 @@ if ($action == 'create')
|
|||||||
}
|
}
|
||||||
|
|
||||||
$arrayofinvoiceforpropal = $object->getInvoiceArrayList();
|
$arrayofinvoiceforpropal = $object->getInvoiceArrayList();
|
||||||
if ((is_array($arrayofinvoiceforpropal) && count($arrayofinvoiceforpropal) > 0) || ! empty($conf->global->WORKFLOW_PROPAL_CAN_CLASSIFIED_BILLED_WITHOUT_INVOICES))
|
if ((is_array($arrayofinvoiceforpropal) && count($arrayofinvoiceforpropal) > 0) || empty($conf->global->WORKFLOW_PROPAL_NEED_INVOICE_TO_BE_CLASSIFIED_BILLED))
|
||||||
{
|
{
|
||||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=classifybilled&socid=' . $object->socid . '">' . $langs->trans("ClassifyBilled") . '</a></div>';
|
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=classifybilled&socid=' . $object->socid . '">' . $langs->trans("ClassifyBilled") . '</a></div>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,613 +0,0 @@
|
|||||||
<?php
|
|
||||||
/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
|
||||||
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
|
||||||
* Copyright (C) 2011 Philippe Grand <philippe.grand@atoo-net.com>
|
|
||||||
* Copyright (C) 2013-2015 Florian Henry <florian.henry@open-concept.pro>
|
|
||||||
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
|
|
||||||
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
|
||||||
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
|
||||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file htdocs/comm/prospect/list.php
|
|
||||||
* \ingroup prospect
|
|
||||||
* \brief Page to list prospects
|
|
||||||
*/
|
|
||||||
|
|
||||||
require '../../main.inc.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/societe/class/client.class.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
|
|
||||||
|
|
||||||
$langs->load("propal");
|
|
||||||
$langs->load("companies");
|
|
||||||
|
|
||||||
// Security check
|
|
||||||
$socid = GETPOST("socid",'int');
|
|
||||||
if ($user->societe_id) $socid=$user->societe_id;
|
|
||||||
$result = restrictedArea($user, 'societe',$socid,'');
|
|
||||||
|
|
||||||
$action = GETPOST('action','alpha');
|
|
||||||
$socname = GETPOST("socname",'alpha');
|
|
||||||
$stcomm = GETPOST("stcomm",'alpha'); // code
|
|
||||||
$search_stcomm = GETPOST("search_stcomm",'int');
|
|
||||||
$search_nom = GETPOST("search_nom");
|
|
||||||
$search_zipcode = GETPOST("search_zipcode");
|
|
||||||
$search_town = GETPOST("search_town");
|
|
||||||
$search_state = GETPOST("search_state");
|
|
||||||
$search_datec = GETPOST("search_datec");
|
|
||||||
$search_categ = GETPOST("search_categ",'int');
|
|
||||||
$search_status = GETPOST("search_status",'int');
|
|
||||||
$catid = GETPOST("catid",'int');
|
|
||||||
$search_country = GETPOST("search_country",'int');
|
|
||||||
$search_type_thirdparty = GETPOST("search_type_thirdparty",'int');
|
|
||||||
|
|
||||||
$sortfield = GETPOST("sortfield",'alpha');
|
|
||||||
$sortorder = GETPOST("sortorder",'alpha');
|
|
||||||
$page = GETPOST("page",'int');
|
|
||||||
if ($page == -1) { $page = 0; }
|
|
||||||
$offset = $conf->liste_limit * $page;
|
|
||||||
$pageprev = $page - 1;
|
|
||||||
$pagenext = $page + 1;
|
|
||||||
if (! $sortorder) $sortorder="ASC";
|
|
||||||
if (! $sortfield) $sortfield="s.nom";
|
|
||||||
|
|
||||||
$search_level_from = GETPOST("search_level_from","alpha");
|
|
||||||
$search_level_to = GETPOST("search_level_to","alpha");
|
|
||||||
|
|
||||||
// If both parameters are set, search for everything BETWEEN them
|
|
||||||
if ($search_level_from != '' && $search_level_to != '')
|
|
||||||
{
|
|
||||||
// Ensure that these parameters are numbers
|
|
||||||
$search_level_from = (int) $search_level_from;
|
|
||||||
$search_level_to = (int) $search_level_to;
|
|
||||||
|
|
||||||
// If from is greater than to, reverse orders
|
|
||||||
if ($search_level_from > $search_level_to)
|
|
||||||
{
|
|
||||||
$tmp = $search_level_to;
|
|
||||||
$search_level_to = $search_level_from;
|
|
||||||
$search_level_from = $tmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Generate the SQL request
|
|
||||||
$sortwhere = '(sortorder BETWEEN '.$search_level_from.' AND '.$search_level_to.') AS is_in_range';
|
|
||||||
}
|
|
||||||
// If only "from" parameter is set, search for everything GREATER THAN it
|
|
||||||
else if ($search_level_from != '')
|
|
||||||
{
|
|
||||||
// Ensure that this parameter is a number
|
|
||||||
$search_level_from = (int) $search_level_from;
|
|
||||||
|
|
||||||
// Generate the SQL request
|
|
||||||
$sortwhere = '(sortorder >= '.$search_level_from.') AS is_in_range';
|
|
||||||
}
|
|
||||||
// If only "to" parameter is set, search for everything LOWER THAN it
|
|
||||||
else if ($search_level_to != '')
|
|
||||||
{
|
|
||||||
// Ensure that this parameter is a number
|
|
||||||
$search_level_to = (int) $search_level_to;
|
|
||||||
|
|
||||||
// Generate the SQL request
|
|
||||||
$sortwhere = '(sortorder <= '.$search_level_to.') AS is_in_range';
|
|
||||||
}
|
|
||||||
// If no parameters are set, dont search for anything
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$sortwhere = '0 as is_in_range';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Select every potentiels, and note each potentiels which fit in search parameters
|
|
||||||
dol_syslog('prospects::prospects_prospect_level',LOG_DEBUG);
|
|
||||||
$sql = "SELECT code, label, sortorder, ".$sortwhere;
|
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."c_prospectlevel";
|
|
||||||
$sql.= " WHERE active > 0";
|
|
||||||
$sql.= " ORDER BY sortorder";
|
|
||||||
|
|
||||||
$resql = $db->query($sql);
|
|
||||||
if ($resql)
|
|
||||||
{
|
|
||||||
$tab_level = array();
|
|
||||||
$search_levels = array();
|
|
||||||
|
|
||||||
while ($obj = $db->fetch_object($resql))
|
|
||||||
{
|
|
||||||
// Compute level text
|
|
||||||
$level=$langs->trans($obj->code);
|
|
||||||
if ($level == $obj->code) $level=$langs->trans($obj->label);
|
|
||||||
|
|
||||||
// Put it in the array sorted by sortorder
|
|
||||||
$tab_level[$obj->sortorder] = $level;
|
|
||||||
|
|
||||||
// If this potentiel fit in parameters, add its code to the $search_levels array
|
|
||||||
if ($obj->is_in_range == 1)
|
|
||||||
{
|
|
||||||
$search_levels[] = '"'.preg_replace('[^A-Za-z0-9_-]', '', $obj->code).'"';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Implode the $search_levels array so that it can be use in a "IN (...)" where clause.
|
|
||||||
// If no paramters was set, $search_levels will be empty
|
|
||||||
$search_levels = implode(',', $search_levels);
|
|
||||||
}
|
|
||||||
else dol_print_error($db);
|
|
||||||
|
|
||||||
// Load sale and categ filters
|
|
||||||
$search_sale = GETPOST('search_sale','int');
|
|
||||||
$search_categ = GETPOST('search_categ','int');
|
|
||||||
// If the internal user must only see his prospect, force searching by him
|
|
||||||
if (!$user->rights->societe->client->voir && !$socid) $search_sale = $user->id;
|
|
||||||
|
|
||||||
// List of available states; we'll need that for each lines (quick changing prospect states) and for search bar (filter by prospect state)
|
|
||||||
$sts = array(-1,0,1,2,3);
|
|
||||||
|
|
||||||
|
|
||||||
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
|
|
||||||
$contextpage='prospectlist';
|
|
||||||
$hookmanager->initHooks(array($contextpage));
|
|
||||||
$extrafields = new ExtraFields($db);
|
|
||||||
|
|
||||||
// fetch optionals attributes and labels
|
|
||||||
$extralabels = $extrafields->fetch_name_optionals_label('thirdparty');
|
|
||||||
$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
|
|
||||||
|
|
||||||
// Do we click on purge search criteria ?
|
|
||||||
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
|
||||||
{
|
|
||||||
$socname="";
|
|
||||||
$stcomm="";
|
|
||||||
$search_stcomm="";
|
|
||||||
$search_nom="";
|
|
||||||
$search_zipcode="";
|
|
||||||
$search_town="";
|
|
||||||
$search_state="";
|
|
||||||
$search_datec="";
|
|
||||||
$search_categ="";
|
|
||||||
$search_status="";
|
|
||||||
$search_country="";
|
|
||||||
$search_type_thirdparty="";
|
|
||||||
$search_array_options=array();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($search_status=='') $search_status=1; // always display active customer first
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Actions
|
|
||||||
*/
|
|
||||||
|
|
||||||
$parameters=array();
|
|
||||||
$reshook=$hookmanager->executeHooks('doActions',$parameters); // Note that $action and $object may have been modified by some hooks
|
|
||||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
|
||||||
|
|
||||||
if (empty($reshook))
|
|
||||||
{
|
|
||||||
if ($action == 'setstcomm')
|
|
||||||
{
|
|
||||||
$object = new Client($db);
|
|
||||||
$result=$object->fetch($socid);
|
|
||||||
$object->stcomm_id=dol_getIdFromCode($db, GETPOST('stcomm','alpha'), 'c_stcomm');
|
|
||||||
$result=$object->set_commnucation_level($user);
|
|
||||||
if ($result < 0) setEventMessages($object->error,$object->errors,'errors');
|
|
||||||
|
|
||||||
$action=''; $socid=0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* View
|
|
||||||
*/
|
|
||||||
|
|
||||||
$formother=new FormOther($db);
|
|
||||||
$form=new Form($db);
|
|
||||||
$formcompany=new FormCompany($db);
|
|
||||||
$prospectstatic=new Client($db);
|
|
||||||
$prospectstatic->client=2;
|
|
||||||
$prospectstatic->loadCacheOfProspStatus();
|
|
||||||
|
|
||||||
$sql = "SELECT s.rowid as socid, s.nom as name, s.name_alias, s.zip, s.town, s.datec, s.status as status, s.code_client, s.client,";
|
|
||||||
$sql.= " s.prefix_comm, s.fk_prospectlevel, s.fk_stcomm as stcomm_id,";
|
|
||||||
$sql.= " st.libelle as stcomm_label,";
|
|
||||||
$sql.= " d.nom as departement";
|
|
||||||
$sql.= " ,s.fk_pays";
|
|
||||||
$sql.= " ,typent.code as typent_code";
|
|
||||||
if ((!$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects)
|
|
||||||
// Add fields for extrafields
|
|
||||||
if (is_array($extrafields->attribute_list) && count($extrafields->attribute_list)) foreach ($extrafields->attribute_list as $key => $val) $sql.=",ef.".$key.' as options_'.$key;
|
|
||||||
// Add fields from hooks
|
|
||||||
$parameters=array();
|
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters); // Note that $action and $object may have been modified by hook
|
|
||||||
$sql.=$hookmanager->resPrint;
|
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."c_stcomm as st";
|
|
||||||
$sql.= ", ".MAIN_DB_PREFIX."societe as s";
|
|
||||||
if (is_array($extrafields->attribute_list) && count($extrafields->attribute_list)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_extrafields as ef on (s.rowid = ef.fk_object)";
|
|
||||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as d on (d.rowid = s.fk_departement)";
|
|
||||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays) ";
|
|
||||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent) ";
|
|
||||||
if (! empty($search_categ) || ! empty($catid)) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_societe as cs ON s.rowid = cs.fk_soc"; // We need this table joined to the select in order to filter by categ
|
|
||||||
if ((!$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale
|
|
||||||
$sql.= " WHERE s.fk_stcomm = st.id";
|
|
||||||
$sql.= " AND s.client IN (2, 3)";
|
|
||||||
$sql.= ' AND s.entity IN ('.getEntity('societe', 1).')';
|
|
||||||
if ((!$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql.= " AND s.rowid = sc.fk_soc";
|
|
||||||
if ($socid) $sql.= " AND s.rowid = " .$socid;
|
|
||||||
if ($search_stcomm != '' && $search_stcomm != -2) $sql.= natural_search("s.fk_stcomm",$search_stcomm,2);
|
|
||||||
if ($catid > 0) $sql.= " AND cs.fk_categorie = ".$catid;
|
|
||||||
if ($catid == -2) $sql.= " AND cs.fk_categorie IS NULL";
|
|
||||||
if ($search_categ > 0) $sql.= " AND cs.fk_categorie = ".$search_categ;
|
|
||||||
if ($search_categ == -2) $sql.= " AND cs.fk_categorie IS NULL";
|
|
||||||
if ($search_nom) $sql .= natural_search(array('s.nom','s.name_alias'), $search_nom);
|
|
||||||
if ($search_zipcode) $sql .= " AND s.zip LIKE '".$db->escape(strtolower($search_zipcode))."%'";
|
|
||||||
if ($search_town) $sql .= natural_search('s.town', $search_town);
|
|
||||||
if ($search_state) $sql .= natural_search('d.nom', $search_state);
|
|
||||||
if ($search_datec) $sql .= " AND s.datec LIKE '%".$db->escape($search_datec)."%'";
|
|
||||||
if ($search_status!='') $sql .= " AND s.status = ".$db->escape($search_status);
|
|
||||||
// Insert levels filters
|
|
||||||
if ($search_levels) $sql .= " AND s.fk_prospectlevel IN (".$search_levels.')';
|
|
||||||
if ($search_country) $sql .= " AND s.fk_pays IN (".$search_country.')';
|
|
||||||
if ($search_type_thirdparty) $sql .= " AND s.fk_typent IN (".$search_type_thirdparty.')';
|
|
||||||
// Insert sale filter
|
|
||||||
if ($search_sale > 0) $sql .= " AND sc.fk_user = ".$db->escape($search_sale);
|
|
||||||
if ($socname)
|
|
||||||
{
|
|
||||||
$sql .= natural_search('s.nom', $search_nom);
|
|
||||||
$sortfield = "s.nom";
|
|
||||||
$sortorder = "ASC";
|
|
||||||
}
|
|
||||||
// Add where from extra fields
|
|
||||||
foreach ($search_array_options as $key => $val)
|
|
||||||
{
|
|
||||||
$crit=$val;
|
|
||||||
$tmpkey=preg_replace('/search_options_/','',$key);
|
|
||||||
$typ=$extrafields->attribute_type[$tmpkey];
|
|
||||||
$mode=0;
|
|
||||||
if (in_array($typ, array('int'))) $mode=1; // Search on a numeric
|
|
||||||
if ($val && ( ($crit != '' && ! in_array($typ, array('select'))) || ! empty($crit)))
|
|
||||||
{
|
|
||||||
$sql .= natural_search('ef.'.$tmpkey, $crit, $mode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Add where from hooks
|
|
||||||
$parameters=array();
|
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters); // Note that $action and $object may have been modified by hook
|
|
||||||
$sql.=$hookmanager->resPrint;
|
|
||||||
// Count total nb of records
|
|
||||||
$nbtotalofrecords = 0;
|
|
||||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
|
||||||
{
|
|
||||||
$result = $db->query($sql);
|
|
||||||
$nbtotalofrecords = $db->num_rows($result);
|
|
||||||
}
|
|
||||||
$sql.= " ORDER BY $sortfield $sortorder, s.nom ASC";
|
|
||||||
$sql.= $db->plimit($conf->liste_limit+1, $offset);
|
|
||||||
//print $sql;
|
|
||||||
|
|
||||||
dol_syslog('comm/prospect/list.php', LOG_DEBUG);
|
|
||||||
$resql = $db->query($sql);
|
|
||||||
if ($resql)
|
|
||||||
{
|
|
||||||
$num = $db->num_rows($resql);
|
|
||||||
|
|
||||||
if ($num == 1 && $socname)
|
|
||||||
{
|
|
||||||
$obj = $db->fetch_object($resql);
|
|
||||||
header("Location: card.php?socid=".$obj->socid);
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas';
|
|
||||||
llxHeader('',$langs->trans("ThirdParty"),$help_url);
|
|
||||||
}
|
|
||||||
|
|
||||||
$param='&search_stcomm='.$search_stcomm;
|
|
||||||
$param.='&search_nom='.urlencode($search_nom);
|
|
||||||
$param.='&search_zipcode='.urlencode($search_zipcode);
|
|
||||||
$param.='&search_town='.urlencode($search_town);
|
|
||||||
// Store the status filter in the URL
|
|
||||||
if (isSet($search_setstcomm))
|
|
||||||
{
|
|
||||||
foreach ($search_setstcomm as $key => $value)
|
|
||||||
{
|
|
||||||
if ($value == 'true')
|
|
||||||
$param.='&search_setstcomm['.((int) $key).']=true';
|
|
||||||
else
|
|
||||||
$param.='&search_setstcomm['.((int) $key).']=false';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($search_level_from != '') $param.='&search_level_from='.$search_level_from;
|
|
||||||
if ($search_level_to != '') $param.='&search_level_to='.$search_level_to;
|
|
||||||
if ($search_categ != '') $param.='&search_categ='.urlencode($search_categ);
|
|
||||||
if ($search_sale > 0) $param.='&search_sale='.$search_sale;
|
|
||||||
if ($search_status != '') $param.='&search_status='.$search_status;
|
|
||||||
if ($search_country != '') $param.='&search_country='.$search_country;
|
|
||||||
if ($search_type_thirdparty != '') $param.='&search_type_thirdparty='.$search_type_thirdparty;
|
|
||||||
// Add $param from extra fields
|
|
||||||
foreach ($search_array_options as $key => $val)
|
|
||||||
{
|
|
||||||
$crit=$val;
|
|
||||||
$tmpkey=preg_replace('/search_options_/','',$key);
|
|
||||||
$param.='&search_options_'.$tmpkey.'='.urlencode($val);
|
|
||||||
}
|
|
||||||
|
|
||||||
print_barre_liste($langs->trans("ListOfProspects"), $page, $_SERVER["PHP_SELF"], $param, $sortfield,$sortorder,'',$num,$nbtotalofrecords,'title_companies.png');
|
|
||||||
|
|
||||||
|
|
||||||
// Print the search-by-sale and search-by-categ filters
|
|
||||||
print '<form method="GET" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
|
||||||
|
|
||||||
// Filter on categories
|
|
||||||
$moreforfilter='';
|
|
||||||
if (! empty($conf->categorie->enabled))
|
|
||||||
{
|
|
||||||
require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
|
|
||||||
$moreforfilter.='<div class="divsearchfield">';
|
|
||||||
$moreforfilter.=$langs->trans('Categories'). ': ';
|
|
||||||
$moreforfilter.=$formother->select_categories(Categorie::TYPE_CUSTOMER,$search_categ,'search_categ',1);
|
|
||||||
$moreforfilter.='</div>';
|
|
||||||
}
|
|
||||||
// If the user can view prospects other than his'
|
|
||||||
if ($user->rights->societe->client->voir || $socid)
|
|
||||||
{
|
|
||||||
$moreforfilter.='<div class="divsearchfield">';
|
|
||||||
$moreforfilter.=$langs->trans('SalesRepresentatives'). ': ';
|
|
||||||
$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user);
|
|
||||||
$moreforfilter.='</div>';
|
|
||||||
}
|
|
||||||
if ($moreforfilter)
|
|
||||||
{
|
|
||||||
print '<div class="liste_titre liste_titre_bydiv centpercent">';
|
|
||||||
print $moreforfilter;
|
|
||||||
$parameters=array();
|
|
||||||
$reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters); // Note that $action and $object may have been modified by hook
|
|
||||||
print $hookmanager->resPrint;
|
|
||||||
print '</div>';
|
|
||||||
}
|
|
||||||
|
|
||||||
print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">';
|
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
|
||||||
print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,'',$sortfield,$sortorder);
|
|
||||||
print_liste_field_titre($langs->trans("Zip"),$_SERVER["PHP_SELF"],"s.zip","",$param,"",$sortfield,$sortorder);
|
|
||||||
print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.town","",$param,"",$sortfield,$sortorder);
|
|
||||||
print_liste_field_titre($langs->trans("StateShort"),$_SERVER["PHP_SELF"],"s.fk_departement","",$param,'align="center"',$sortfield,$sortorder);
|
|
||||||
print_liste_field_titre($langs->trans("Country"),$_SERVER["PHP_SELF"],"country.code_iso","",$param,'align="center"',$sortfield,$sortorder);
|
|
||||||
print_liste_field_titre($langs->trans("ThirdPartyType"),$_SERVER["PHP_SELF"],"typent.code","",$param,'align="center"',$sortfield,$sortorder);
|
|
||||||
print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"s.datec","",$param,'align="center"',$sortfield,$sortorder);
|
|
||||||
print_liste_field_titre($langs->trans("ProspectLevelShort"),$_SERVER["PHP_SELF"],"s.fk_prospectlevel","",$param,'align="center"',$sortfield,$sortorder);
|
|
||||||
print_liste_field_titre($langs->trans("StatusProsp"),$_SERVER["PHP_SELF"],"s.fk_stcomm","",$param,'align="center"',$sortfield,$sortorder);
|
|
||||||
print_liste_field_titre('');
|
|
||||||
|
|
||||||
// Extrafields
|
|
||||||
if (is_array($extrafields->attribute_list) && count($extrafields->attribute_list))
|
|
||||||
{
|
|
||||||
foreach($extrafields->attribute_list as $key => $val)
|
|
||||||
{
|
|
||||||
if ($val)
|
|
||||||
{
|
|
||||||
print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],"ef.".$key,"",$param,"",$sortfield,$sortorder);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Hook fields
|
|
||||||
$parameters=array();
|
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook
|
|
||||||
print $hookmanager->resPrint;
|
|
||||||
|
|
||||||
print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"s.status","",$param,'align="right"',$sortfield,$sortorder);
|
|
||||||
print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
|
|
||||||
print "</tr>\n";
|
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
|
||||||
print '<td class="liste_titre">';
|
|
||||||
print '<input type="text" class="flat" name="search_nom" size="10" value="'.$search_nom.'">';
|
|
||||||
print '</td>';
|
|
||||||
print '<td class="liste_titre">';
|
|
||||||
print '<input type="text" class="flat" name="search_zipcode" size="6" value="'.$search_zipcode.'">';
|
|
||||||
print '</td>';
|
|
||||||
print '<td class="liste_titre">';
|
|
||||||
print '<input type="text" class="flat" name="search_town" size="8" value="'.$search_town.'">';
|
|
||||||
print '</td>';
|
|
||||||
print '<td class="liste_titre" align="center">';
|
|
||||||
print '<input type="text" class="flat" name="search_state" size="8" value="'.$search_state.'">';
|
|
||||||
print '</td>';
|
|
||||||
print '<td class="liste_titre" align="center">';
|
|
||||||
print $form->select_country($search_country,'search_country','',0,'maxwidth100');
|
|
||||||
print '</td>';
|
|
||||||
print '<td class="liste_titre" align="center">';
|
|
||||||
print $form->selectarray("search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 0, 0, 0, '', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT)?'ASC':$conf->global->SOCIETE_SORT_ON_TYPEENT));
|
|
||||||
print '</td>';
|
|
||||||
print '<td align="center" class="liste_titre">';
|
|
||||||
print '<input class="flat" type="text" size="6" name="search_datec" value="'.$search_datec.'">';
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
// Prospect level
|
|
||||||
print '<td class="liste_titre" align="center">';
|
|
||||||
$options_from = '<option value=""> </option>'; // Generate in $options_from the list of each option sorted
|
|
||||||
foreach ($tab_level as $tab_level_sortorder => $tab_level_label)
|
|
||||||
{
|
|
||||||
$options_from .= '<option value="'.$tab_level_sortorder.'"'.($search_level_from == $tab_level_sortorder ? ' selected':'').'>';
|
|
||||||
$options_from .= $langs->trans($tab_level_label);
|
|
||||||
$options_from .= '</option>';
|
|
||||||
}
|
|
||||||
array_reverse($tab_level, true); // Reverse the list
|
|
||||||
$options_to = '<option value=""> </option>'; // Generate in $options_to the list of each option sorted in the reversed order
|
|
||||||
foreach ($tab_level as $tab_level_sortorder => $tab_level_label)
|
|
||||||
{
|
|
||||||
$options_to .= '<option value="'.$tab_level_sortorder.'"'.($search_level_to == $tab_level_sortorder ? ' selected':'').'>';
|
|
||||||
$options_to .= $langs->trans($tab_level_label);
|
|
||||||
$options_to .= '</option>';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Print these two select
|
|
||||||
print $langs->trans("From").' <select class="flat" name="search_level_from">'.$options_from.'</select>';
|
|
||||||
print ' ';
|
|
||||||
print $langs->trans("to").' <select class="flat" name="search_level_to">'.$options_to.'</select>';
|
|
||||||
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
// Prospect status
|
|
||||||
print '<td class="liste_titre" align="center">';
|
|
||||||
$arraystcomm=array();
|
|
||||||
foreach($prospectstatic->cacheprospectstatus as $key => $val)
|
|
||||||
{
|
|
||||||
$arraystcomm[$val['id']]=$val['label'];
|
|
||||||
}
|
|
||||||
print $form->selectarray('search_stcomm', $arraystcomm, $search_stcomm, -2);
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
print '<td class="liste_titre" align="center">';
|
|
||||||
print ' ';
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
// Extrafields
|
|
||||||
if (is_array($extrafields->attribute_list) && count($extrafields->attribute_list))
|
|
||||||
{
|
|
||||||
foreach($extrafields->attribute_list as $key => $val)
|
|
||||||
{
|
|
||||||
if ($val)
|
|
||||||
{
|
|
||||||
$crit=$search_array_options['search_options_'.$key];
|
|
||||||
print '<td class="liste_titre">';
|
|
||||||
print $extrafields->showInputField($key, $crit, '', '', 'search_', 4);
|
|
||||||
print '</td>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Hook fields
|
|
||||||
$parameters=array();
|
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListSearch',$parameters); // Note that $action and $object may have been modified by hook
|
|
||||||
print $hookmanager->resPrint;
|
|
||||||
|
|
||||||
// Status
|
|
||||||
print '<td class="liste_titre" align="right">';
|
|
||||||
print $form->selectarray('search_status', array('0'=>$langs->trans('ActivityCeased'),'1'=>$langs->trans('InActivity')),$search_status);
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
// Print the search button
|
|
||||||
print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
|
|
||||||
print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
|
|
||||||
print "</td></tr>\n";
|
|
||||||
|
|
||||||
print "</tr>\n";
|
|
||||||
|
|
||||||
$i = 0;
|
|
||||||
$var=true;
|
|
||||||
|
|
||||||
while ($i < min($num,$conf->liste_limit))
|
|
||||||
{
|
|
||||||
$obj = $db->fetch_object($resql);
|
|
||||||
|
|
||||||
$var=!$var;
|
|
||||||
|
|
||||||
print '<tr '.$bc[$var].'>';
|
|
||||||
print '<td>';
|
|
||||||
$prospectstatic->id=$obj->socid;
|
|
||||||
$prospectstatic->name=$obj->name;
|
|
||||||
$prospectstatic->status=$obj->status;
|
|
||||||
$prospectstatic->code_client=$obj->code_client;
|
|
||||||
$prospectstatic->client=$obj->client;
|
|
||||||
$prospectstatic->fk_prospectlevel=$obj->fk_prospectlevel;
|
|
||||||
$prospectstatic->name_alias=$obj->name_alias;
|
|
||||||
print $prospectstatic->getNomUrl(1,'prospect');
|
|
||||||
print '</td>';
|
|
||||||
print "<td>".$obj->zip."</td>";
|
|
||||||
print "<td>".$obj->town."</td>";
|
|
||||||
print '<td align="center">'.$obj->departement.'</td>';
|
|
||||||
//Country
|
|
||||||
print '<td align="center">';
|
|
||||||
$tmparray=getCountry($obj->fk_pays,'all');
|
|
||||||
print $tmparray['label'];
|
|
||||||
print '</td>';
|
|
||||||
//Type ent
|
|
||||||
print '<td align="center">';
|
|
||||||
if (count($typenArray)==0) $typenArray = $formcompany->typent_array(1);
|
|
||||||
print $typenArray[$obj->typent_code];
|
|
||||||
print '</td>';
|
|
||||||
// Creation date
|
|
||||||
print '<td align="center">'.dol_print_date($db->jdate($obj->datec)).'</td>';
|
|
||||||
// Level
|
|
||||||
print '<td align="center">';
|
|
||||||
print $prospectstatic->getLibProspLevel();
|
|
||||||
print "</td>";
|
|
||||||
// Statut
|
|
||||||
print '<td align="center" class="nowrap">';
|
|
||||||
print $prospectstatic->LibProspCommStatut($obj->stcomm_id,2,$prospectstatic->cacheprospectstatus[$obj->stcomm_id]['label']);
|
|
||||||
print "</td>";
|
|
||||||
|
|
||||||
print '<td align="center" class="nowrap">';
|
|
||||||
foreach($prospectstatic->cacheprospectstatus as $key => $val)
|
|
||||||
{
|
|
||||||
$titlealt='default';
|
|
||||||
if (! empty($val['code']) && ! in_array($val['code'], array('ST_NO', 'ST_NEVER', 'ST_TODO', 'ST_PEND', 'ST_DONE'))) $titlealt=$val['label'];
|
|
||||||
if ($obj->stcomm_id != $val['id']) print '<a class="pictosubstatus" href="'.$_SERVER["PHP_SELF"].'?socid='.$obj->socid.'&stcomm='.$val['code'].'&action=setstcomm'.$param.($page?'&page='.urlencode($page):'').'">'.img_action($titlealt,$val['code']).'</a>';
|
|
||||||
}
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
// Extrafields
|
|
||||||
if (is_array($extrafields->attribute_list) && count($extrafields->attribute_list))
|
|
||||||
{
|
|
||||||
foreach($extrafields->attribute_list as $key => $val)
|
|
||||||
{
|
|
||||||
if ($val)
|
|
||||||
{
|
|
||||||
print '<td>';
|
|
||||||
$paramkey='options_'.$key;
|
|
||||||
print $extrafields->showOutputField($key, $obj->$paramkey);
|
|
||||||
print '</td>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Hook fields
|
|
||||||
$parameters=array('obj' => $obj);
|
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListValue',$parameters); // Note that $action and $object may have been modified by hook
|
|
||||||
print $hookmanager->resPrint;
|
|
||||||
|
|
||||||
print '<td align="right">';
|
|
||||||
print $prospectstatic->LibStatut($prospectstatic->status,5);
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
print '<td></td>';
|
|
||||||
|
|
||||||
print "</tr>\n";
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($num > $conf->liste_limit || $page > 0) print_barre_liste('', $page, $_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords);
|
|
||||||
|
|
||||||
print "</table>";
|
|
||||||
|
|
||||||
print "</form>";
|
|
||||||
|
|
||||||
$db->free($resql);
|
|
||||||
|
|
||||||
$parameters=array('sql' => $sql);
|
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListFooter',$parameters); // Note that $action and $object may have been modified by hook
|
|
||||||
print $hookmanager->resPrint;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dol_print_error($db);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
llxFooter();
|
|
||||||
$db->close();
|
|
||||||
@ -952,7 +952,7 @@ if ($id > 0 || ! empty($ref))
|
|||||||
if ($sep > 0) print ' '; // If we had at least one line in future
|
if ($sep > 0) print ' '; // If we had at least one line in future
|
||||||
else print $langs->trans("CurrentBalance");
|
else print $langs->trans("CurrentBalance");
|
||||||
print ' '.$object->currency_code.'</td>';
|
print ' '.$object->currency_code.'</td>';
|
||||||
print '<td align="right" class="nowrap"><b>'.price($total, 0, $langs, 0, 0, -1, $object->currency_code).'</b></td>';
|
print '<td align="right" class="nowrap"><b>'.price($total).'</b></td>';
|
||||||
print '<td> </td>';
|
print '<td> </td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
} else {
|
} else {
|
||||||
@ -961,9 +961,9 @@ if ($id > 0 || ! empty($ref))
|
|||||||
if ($sep > 0) print ' '; // If we had at least one line in future
|
if ($sep > 0) print ' '; // If we had at least one line in future
|
||||||
else print $langs->trans("Total");
|
else print $langs->trans("Total");
|
||||||
print ' '.$object->currency_code.'</td>';
|
print ' '.$object->currency_code.'</td>';
|
||||||
print '<td align="right" class="nowrap"><b>'.price($total_deb*-1, 0, $langs, 0, 0, -1, $object->currency_code).'</b></td>';
|
print '<td align="right" class="nowrap"><b>'.price($total_deb*-1).'</b></td>';
|
||||||
print '<td align="right" class="nowrap"><b>'.price($total_cred, 0, $langs, 0, 0, -1, $object->currency_code).'</b></td>';
|
print '<td align="right" class="nowrap"><b>'.price($total_cred).'</b></td>';
|
||||||
print '<td align="right" class="nowrap"><b>'.price($total_cred-($total_deb*-1), 0, $langs, 0, 0, -1, $object->currency_code).'</b></td>';
|
print '<td align="right" class="nowrap"><b>'.price($total_cred-($total_deb*-1)).'</b></td>';
|
||||||
print '<td> </td>';
|
print '<td> </td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1283,7 +1283,8 @@ if (empty($reshook))
|
|||||||
// Ecrase $txtva par celui du produit
|
// Ecrase $txtva par celui du produit
|
||||||
// Ecrase $base_price_type par celui du produit
|
// Ecrase $base_price_type par celui du produit
|
||||||
// Replaces $fk_unit with the product's
|
// Replaces $fk_unit with the product's
|
||||||
if (! empty($idprod)) {
|
if (! empty($idprod))
|
||||||
|
{
|
||||||
$prod = new Product($db);
|
$prod = new Product($db);
|
||||||
$prod->fetch($idprod);
|
$prod->fetch($idprod);
|
||||||
|
|
||||||
@ -1304,9 +1305,12 @@ if (empty($reshook))
|
|||||||
$pu_ttc = $prod->multiprices_ttc[$object->thirdparty->price_level];
|
$pu_ttc = $prod->multiprices_ttc[$object->thirdparty->price_level];
|
||||||
$price_min = $prod->multiprices_min[$object->thirdparty->price_level];
|
$price_min = $prod->multiprices_min[$object->thirdparty->price_level];
|
||||||
$price_base_type = $prod->multiprices_base_type[$object->thirdparty->price_level];
|
$price_base_type = $prod->multiprices_base_type[$object->thirdparty->price_level];
|
||||||
|
if (! empty($conf->global->PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL)) // using this option is a bug. kept for backward compatibility
|
||||||
|
{
|
||||||
if (isset($prod->multiprices_tva_tx[$object->thirdparty->price_level])) $tva_tx=$prod->multiprices_tva_tx[$object->thirdparty->price_level];
|
if (isset($prod->multiprices_tva_tx[$object->thirdparty->price_level])) $tva_tx=$prod->multiprices_tva_tx[$object->thirdparty->price_level];
|
||||||
if (isset($prod->multiprices_recuperableonly[$object->thirdparty->price_level])) $tva_npr=$prod->multiprices_recuperableonly[$object->thirdparty->price_level];
|
if (isset($prod->multiprices_recuperableonly[$object->thirdparty->price_level])) $tva_npr=$prod->multiprices_recuperableonly[$object->thirdparty->price_level];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
elseif (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
|
elseif (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
|
||||||
{
|
{
|
||||||
require_once DOL_DOCUMENT_ROOT . '/product/class/productcustomerprice.class.php';
|
require_once DOL_DOCUMENT_ROOT . '/product/class/productcustomerprice.class.php';
|
||||||
@ -1326,18 +1330,22 @@ if (empty($reshook))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// if price ht is forced (ie: calculated by margin rate and cost price)
|
// if price ht was forced (ie: from gui when calculated by margin rate and cost price)
|
||||||
if (! empty($price_ht)) {
|
if (! empty($price_ht))
|
||||||
|
{
|
||||||
$pu_ht = price2num($price_ht, 'MU');
|
$pu_ht = price2num($price_ht, 'MU');
|
||||||
$pu_ttc = price2num($pu_ht * (1 + ($tva_tx / 100)), 'MU');
|
$pu_ttc = price2num($pu_ht * (1 + ($tva_tx / 100)), 'MU');
|
||||||
}
|
}
|
||||||
|
|
||||||
// On reevalue prix selon taux tva car taux tva transaction peut etre different
|
// On reevalue prix selon taux tva car taux tva transaction peut etre different
|
||||||
// de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur).
|
// de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur).
|
||||||
elseif ($tva_tx != $prod->tva_tx) {
|
elseif ($tva_tx != $prod->tva_tx)
|
||||||
if ($price_base_type != 'HT') {
|
{
|
||||||
|
if ($price_base_type != 'HT')
|
||||||
|
{
|
||||||
$pu_ht = price2num($pu_ttc / (1 + ($tva_tx / 100)), 'MU');
|
$pu_ht = price2num($pu_ttc / (1 + ($tva_tx / 100)), 'MU');
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$pu_ttc = price2num($pu_ht * (1 + ($tva_tx / 100)), 'MU');
|
$pu_ttc = price2num($pu_ht * (1 + ($tva_tx / 100)), 'MU');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1870,7 +1878,7 @@ if ($action == 'create')
|
|||||||
$objectsrc->fetch_lines();
|
$objectsrc->fetch_lines();
|
||||||
$objectsrc->fetch_thirdparty();
|
$objectsrc->fetch_thirdparty();
|
||||||
|
|
||||||
$projectid = (! empty($objectsrc->fk_project) ? $objectsrc->fk_project : '');
|
$projectid = (! empty($projectid) ? $projectid : $objectsrc->fk_project);
|
||||||
$ref_client = (! empty($objectsrc->ref_client) ? $objectsrc->ref_client : '');
|
$ref_client = (! empty($objectsrc->ref_client) ? $objectsrc->ref_client : '');
|
||||||
$ref_int = (! empty($objectsrc->ref_int) ? $objectsrc->ref_int : '');
|
$ref_int = (! empty($objectsrc->ref_int) ? $objectsrc->ref_int : '');
|
||||||
|
|
||||||
@ -2250,9 +2258,6 @@ if ($action == 'create')
|
|||||||
// Project
|
// Project
|
||||||
if (! empty($conf->projet->enabled) && $socid > 0)
|
if (! empty($conf->projet->enabled) && $socid > 0)
|
||||||
{
|
{
|
||||||
$projectid = GETPOST('projectid')?GETPOST('projectid'):0;
|
|
||||||
if ($origin == 'project') $projectid = ($originid ? $originid : 0);
|
|
||||||
|
|
||||||
$langs->load('projects');
|
$langs->load('projects');
|
||||||
print '<tr><td>' . $langs->trans('Project') . '</td><td colspan="2">';
|
print '<tr><td>' . $langs->trans('Project') . '</td><td colspan="2">';
|
||||||
$numprojet = $formproject->select_projects($soc->id, $projectid, 'projectid', 0);
|
$numprojet = $formproject->select_projects($soc->id, $projectid, 'projectid', 0);
|
||||||
|
|||||||
@ -281,7 +281,7 @@ if ($resql)
|
|||||||
if ($search_user > 0) $param.='&search_user=' .$search_user;
|
if ($search_user > 0) $param.='&search_user=' .$search_user;
|
||||||
if ($search_montant_ht != '') $param.='&search_montant_ht='.$search_montant_ht;
|
if ($search_montant_ht != '') $param.='&search_montant_ht='.$search_montant_ht;
|
||||||
if ($search_montant_ttc != '') $param.='&search_montant_ttc='.$search_montant_ttc;
|
if ($search_montant_ttc != '') $param.='&search_montant_ttc='.$search_montant_ttc;
|
||||||
if ($search_status > 0) $param.='&search_status='.$search_status;
|
if ($search_status != '') $param.='&search_status='.$search_status;
|
||||||
print_barre_liste($langs->trans('BillsCustomers').' '.($socid?' '.$soc->name:''),$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords,'title_accountancy.png');
|
print_barre_liste($langs->trans('BillsCustomers').' '.($socid?' '.$soc->name:''),$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords,'title_accountancy.png');
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
|||||||
@ -417,6 +417,7 @@ $search_societe = GETPOST("search_societe");
|
|||||||
$search_paymentmode = GETPOST("search_paymentmode");
|
$search_paymentmode = GETPOST("search_paymentmode");
|
||||||
$search_montant_ht = GETPOST("search_montant_ht");
|
$search_montant_ht = GETPOST("search_montant_ht");
|
||||||
$search_montant_ttc = GETPOST("search_montant_ttc");
|
$search_montant_ttc = GETPOST("search_montant_ttc");
|
||||||
|
$search_status = GETPOST("search_status");
|
||||||
$late = GETPOST("late");
|
$late = GETPOST("late");
|
||||||
|
|
||||||
// Do we click on purge search criteria ?
|
// Do we click on purge search criteria ?
|
||||||
@ -428,6 +429,7 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
|
|||||||
$search_paymentmode='';
|
$search_paymentmode='';
|
||||||
$search_montant_ht='';
|
$search_montant_ht='';
|
||||||
$search_montant_ttc='';
|
$search_montant_ttc='';
|
||||||
|
$search_status='';
|
||||||
}
|
}
|
||||||
|
|
||||||
$sortfield = GETPOST("sortfield",'alpha');
|
$sortfield = GETPOST("sortfield",'alpha');
|
||||||
@ -483,6 +485,7 @@ if ($search_paymentmode) $sql .= " AND f.fk_mode_reglement = ".$search_paymentmo
|
|||||||
if ($search_montant_ht) $sql .= " AND f.total = '".$db->escape($search_montant_ht)."'";
|
if ($search_montant_ht) $sql .= " AND f.total = '".$db->escape($search_montant_ht)."'";
|
||||||
if ($search_montant_ttc) $sql .= " AND f.total_ttc = '".$db->escape($search_montant_ttc)."'";
|
if ($search_montant_ttc) $sql .= " AND f.total_ttc = '".$db->escape($search_montant_ttc)."'";
|
||||||
if (GETPOST('sf_ref')) $sql .= " AND f.facnumber LIKE '%".$db->escape(GETPOST('sf_ref'))."%'";
|
if (GETPOST('sf_ref')) $sql .= " AND f.facnumber LIKE '%".$db->escape(GETPOST('sf_ref'))."%'";
|
||||||
|
if ($search_status) $sql .= " AND f.fk_statut = ".$search_status;
|
||||||
if ($month > 0)
|
if ($month > 0)
|
||||||
{
|
{
|
||||||
if ($year > 0)
|
if ($year > 0)
|
||||||
@ -528,6 +531,7 @@ if ($resql)
|
|||||||
if ($search_societe) $param.='&search_paymentmode='.urlencode($search_paymentmode);
|
if ($search_societe) $param.='&search_paymentmode='.urlencode($search_paymentmode);
|
||||||
if ($search_montant_ht) $param.='&search_montant_ht='.urlencode($search_montant_ht);
|
if ($search_montant_ht) $param.='&search_montant_ht='.urlencode($search_montant_ht);
|
||||||
if ($search_montant_ttc) $param.='&search_montant_ttc='.urlencode($search_montant_ttc);
|
if ($search_montant_ttc) $param.='&search_montant_ttc='.urlencode($search_montant_ttc);
|
||||||
|
if ($search_status) $param.='&search_status='.urlencode($search_status);
|
||||||
if ($late) $param.='&late='.urlencode($late);
|
if ($late) $param.='&late='.urlencode($late);
|
||||||
if ($mode) $param.='&mode='.urlencode($mode);
|
if ($mode) $param.='&mode='.urlencode($mode);
|
||||||
$urlsource=$_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder;
|
$urlsource=$_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder;
|
||||||
|
|||||||
@ -25,6 +25,7 @@
|
|||||||
require '../main.inc.php';
|
require '../main.inc.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
|
||||||
|
|
||||||
$langs->load("companies");
|
$langs->load("companies");
|
||||||
if (! empty($conf->facture->enabled)) $langs->load("bills");
|
if (! empty($conf->facture->enabled)) $langs->load("bills");
|
||||||
@ -43,6 +44,7 @@ if ($user->societe_id > 0)
|
|||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
$form = new Form($db);
|
||||||
$userstatic=new User($db);
|
$userstatic=new User($db);
|
||||||
|
|
||||||
llxHeader();
|
llxHeader();
|
||||||
@ -58,28 +60,7 @@ if ($socid > 0)
|
|||||||
$head = societe_prepare_head($societe);
|
$head = societe_prepare_head($societe);
|
||||||
|
|
||||||
dol_fiche_head($head, 'customer', $langs->trans("ThirdParty"), 0, 'company');
|
dol_fiche_head($head, 'customer', $langs->trans("ThirdParty"), 0, 'company');
|
||||||
|
dol_banner_tab($societe, 'socid', '', ($user->societe_id?0:1), 'rowid', 'nom');
|
||||||
print "<table width=\"100%\">\n";
|
|
||||||
print '<tr><td valign="top" width="50%">';
|
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
|
||||||
|
|
||||||
// Name
|
|
||||||
print '<tr><td width="20%">'.$langs->trans("Name").'</td><td width="80%" colspan="3">'.$societe->name.'</td></tr>';
|
|
||||||
|
|
||||||
// Prefix
|
|
||||||
if (! empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field
|
|
||||||
{
|
|
||||||
print '<tr><td>'.$langs->trans("Prefix").'</td><td colspan="3">';
|
|
||||||
print ($societe->prefix_comm?$societe->prefix_comm:' ');
|
|
||||||
print '</td></tr>';
|
|
||||||
}
|
|
||||||
|
|
||||||
print "</table>";
|
|
||||||
|
|
||||||
print "</td></tr></table>\n";
|
|
||||||
|
|
||||||
print '</div>';
|
|
||||||
|
|
||||||
if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
|
if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
|
||||||
{
|
{
|
||||||
@ -87,6 +68,18 @@ if ($socid > 0)
|
|||||||
print load_fiche_titre($langs->trans("CustomerPreview"));
|
print load_fiche_titre($langs->trans("CustomerPreview"));
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
|
print '<tr class="liste_titre">';
|
||||||
|
print '<td width="100" align="center">'.$langs->trans("Date").'</td>';
|
||||||
|
print '<td>'.$langs->trans("Element").'</td>';
|
||||||
|
print '<td>'.$langs->trans("Status").'</td>';
|
||||||
|
print '<td align="right">'.$langs->trans("Debit").'</td>';
|
||||||
|
print '<td align="right">'.$langs->trans("Credit").'</td>';
|
||||||
|
print '<td align="right">'.$langs->trans("Balance").'</td>';
|
||||||
|
print '<td align="right">'.$langs->trans("Author").'</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
$TData = array();
|
||||||
|
$TDataSort = array();
|
||||||
|
|
||||||
$sql = "SELECT s.nom, s.rowid as socid, f.facnumber, f.amount, f.datef as df,";
|
$sql = "SELECT s.nom, s.rowid as socid, f.facnumber, f.amount, f.datef as df,";
|
||||||
$sql.= " f.paye as paye, f.fk_statut as statut, f.rowid as facid,";
|
$sql.= " f.paye as paye, f.fk_statut as statut, f.rowid as facid,";
|
||||||
@ -95,7 +88,7 @@ if ($socid > 0)
|
|||||||
$sql.= " WHERE f.fk_soc = s.rowid AND s.rowid = ".$societe->id;
|
$sql.= " WHERE f.fk_soc = s.rowid AND s.rowid = ".$societe->id;
|
||||||
$sql.= " AND f.entity = ".$conf->entity;
|
$sql.= " AND f.entity = ".$conf->entity;
|
||||||
$sql.= " AND f.fk_user_valid = u.rowid";
|
$sql.= " AND f.fk_user_valid = u.rowid";
|
||||||
$sql.= " ORDER BY f.datef DESC";
|
$sql.= " ORDER BY f.datef ASC";
|
||||||
|
|
||||||
$resql=$db->query($sql);
|
$resql=$db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
@ -103,23 +96,6 @@ if ($socid > 0)
|
|||||||
$var=true;
|
$var=true;
|
||||||
$num = $db->num_rows($resql);
|
$num = $db->num_rows($resql);
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
|
||||||
print '<td width="100" align="center">'.$langs->trans("Date").'</td>';
|
|
||||||
print '<td> </td>';
|
|
||||||
print '<td>'.$langs->trans("Status").'</td>';
|
|
||||||
print '<td align="right">'.$langs->trans("Debit").'</td>';
|
|
||||||
print '<td align="right">'.$langs->trans("Credit").'</td>';
|
|
||||||
print '<td align="right">'.$langs->trans("Balance").'</td>';
|
|
||||||
print '<td> </td>';
|
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
if (! $num > 0)
|
|
||||||
{
|
|
||||||
print '<tr '.$bc[false].'><td colspan="7">'.$langs->trans("NoInvoice").'</td></tr>';
|
|
||||||
}
|
|
||||||
|
|
||||||
$solde = 0;
|
|
||||||
|
|
||||||
// Boucle sur chaque facture
|
// Boucle sur chaque facture
|
||||||
for ($i = 0 ; $i < $num ; $i++)
|
for ($i = 0 ; $i < $num ; $i++)
|
||||||
{
|
{
|
||||||
@ -134,28 +110,17 @@ if ($socid > 0)
|
|||||||
}
|
}
|
||||||
$totalpaye = $fac->getSommePaiement();
|
$totalpaye = $fac->getSommePaiement();
|
||||||
|
|
||||||
$var=!$var;
|
|
||||||
print "<tr ".$bc[$var].">";
|
|
||||||
|
|
||||||
print "<td align=\"center\">".dol_print_date($fac->date,'day')."</td>\n";
|
|
||||||
print '<td><a href="'.DOL_URL_ROOT.'/compta/facture.php?facid='.$fac->id.'">'.img_object($langs->trans("ShowBill"),"bill")." ".$fac->ref."</a></td>\n";
|
|
||||||
|
|
||||||
print '<td aling="left">'.$fac->getLibStatut(2,$totalpaye).'</td>';
|
|
||||||
print '<td align="right">'.price($fac->total_ttc)."</td>\n";
|
|
||||||
if (($fac->statut == Facture::STATUS_ABANDONED ) || ($fac->statut == Facture::STATUS_CLOSED && ! $fact->close_code) ) $solde = $solde = $solde + $totalpaye;
|
|
||||||
else $solde = $solde + $fac->total_ttc;
|
|
||||||
|
|
||||||
print '<td align="right"> </td>';
|
|
||||||
print '<td align="right">'.price($solde)."</td>\n";
|
|
||||||
|
|
||||||
// Author
|
|
||||||
$userstatic->id=$objf->userid;
|
$userstatic->id=$objf->userid;
|
||||||
$userstatic->login=$objf->login;
|
$userstatic->login=$objf->login;
|
||||||
print '<td class="nowrap" align="right">';
|
|
||||||
print $userstatic->getLoginUrl(1);
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
print "</tr>\n";
|
$TData[] = array(
|
||||||
|
'date' => $fac->date,
|
||||||
|
'link' => $fac->getNomUrl(1),
|
||||||
|
'status' => $fac->getLibStatut(2,$totalpaye),
|
||||||
|
'amount' => $fac->total_ttc,
|
||||||
|
'author' => $userstatic->getLoginUrl(1)
|
||||||
|
);
|
||||||
|
$TDataSort[] = $fac->date;
|
||||||
|
|
||||||
// Paiements
|
// Paiements
|
||||||
$sql = "SELECT p.rowid, p.datep as dp, pf.amount, p.statut,";
|
$sql = "SELECT p.rowid, p.datep as dp, pf.amount, p.statut,";
|
||||||
@ -166,6 +131,7 @@ if ($socid > 0)
|
|||||||
$sql.= " WHERE pf.fk_paiement = p.rowid";
|
$sql.= " WHERE pf.fk_paiement = p.rowid";
|
||||||
$sql.= " AND p.entity = ".$conf->entity;
|
$sql.= " AND p.entity = ".$conf->entity;
|
||||||
$sql.= " AND pf.fk_facture = ".$fac->id;
|
$sql.= " AND pf.fk_facture = ".$fac->id;
|
||||||
|
$sql.= " ORDER BY p.datep ASC";
|
||||||
|
|
||||||
$resqlp = $db->query($sql);
|
$resqlp = $db->query($sql);
|
||||||
if ($resqlp)
|
if ($resqlp)
|
||||||
@ -176,26 +142,21 @@ if ($socid > 0)
|
|||||||
while ($j < $nump)
|
while ($j < $nump)
|
||||||
{
|
{
|
||||||
$objp = $db->fetch_object($resqlp);
|
$objp = $db->fetch_object($resqlp);
|
||||||
//$var=!$var;
|
|
||||||
print "<tr ".$bc[$var].">";
|
|
||||||
print '<td align="center">'.dol_print_date($db->jdate($objp->dp),'day')."</td>\n";
|
|
||||||
print '<td>';
|
|
||||||
print ' '; // Decalage
|
|
||||||
print '<a href="paiement/card.php?id='.$objp->rowid.'">'.img_object($langs->trans("ShowPayment"),"payment").' '.$langs->trans("Payment").' '.$objp->rowid.'</td>';
|
|
||||||
print "<td> </td>\n";
|
|
||||||
print "<td> </td>\n";
|
|
||||||
print '<td align="right">'.price($objp->amount).'</td>';
|
|
||||||
$solde = $solde - $objp->amount;
|
|
||||||
print '<td align="right">'.price($solde)."</td>\n";
|
|
||||||
|
|
||||||
// Author
|
$paymentstatic = new Paiement($db);
|
||||||
|
$paymentstatic->id = $objp->rowid;
|
||||||
|
|
||||||
$userstatic->id=$objp->userid;
|
$userstatic->id=$objp->userid;
|
||||||
$userstatic->login=$objp->login;
|
$userstatic->login=$objp->login;
|
||||||
print '<td class="nowrap" align="right">';
|
|
||||||
print $userstatic->getLoginUrl(1);
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
print '</tr>';
|
$TData[] = array(
|
||||||
|
'date' => $db->jdate($objp->dp),
|
||||||
|
'link' => $langs->trans("Payment") .' '. $paymentstatic->getNomUrl(1),
|
||||||
|
'status' => '',
|
||||||
|
'amount' => -$objp->amount,
|
||||||
|
'author' => $userstatic->getLoginUrl(1)
|
||||||
|
);
|
||||||
|
$TDataSort[] = $db->jdate($objp->dp);
|
||||||
|
|
||||||
$j++;
|
$j++;
|
||||||
}
|
}
|
||||||
@ -212,9 +173,63 @@ if ($socid > 0)
|
|||||||
{
|
{
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(empty($TData)) {
|
||||||
|
print '<tr '.$bc[false].'><td colspan="7">'.$langs->trans("NoInvoice").'</td></tr>';
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Sort array by date
|
||||||
|
asort($TDataSort);
|
||||||
|
array_multisort($TData,$TDataSort);
|
||||||
|
|
||||||
|
// Balance calculation
|
||||||
|
foreach($TData as &$data1) {
|
||||||
|
$balance += $data1['amount'];
|
||||||
|
$data1['balance'] += $balance;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reverse array to have last elements on top
|
||||||
|
$TData = array_reverse($TData);
|
||||||
|
|
||||||
|
$totalDebit = 0;
|
||||||
|
$totalCredit = 0;
|
||||||
|
|
||||||
|
// Display array
|
||||||
|
foreach($TData as $data) {
|
||||||
|
$var=!$var;
|
||||||
|
print "<tr ".$bc[$var].">";
|
||||||
|
|
||||||
|
print "<td align=\"center\">".dol_print_date($data['date'],'day')."</td>\n";
|
||||||
|
print '<td>'.$data['link']."</td>\n";
|
||||||
|
|
||||||
|
print '<td aling="left">'.$data['status'].'</td>';
|
||||||
|
print '<td align="right">'.(($data['amount'] > 0) ? price(abs($data['amount'])) : '')."</td>\n";
|
||||||
|
$totalDebit += ($data['amount'] > 0) ? abs($data['amount']) : 0;
|
||||||
|
print '<td align="right">'.(($data['amount'] > 0) ? '' : price(abs($data['amount'])))."</td>\n";
|
||||||
|
$totalCredit += ($data['amount'] > 0) ? 0 : abs($data['amount']);
|
||||||
|
print '<td align="right">'.price($data['balance'])."</td>\n";
|
||||||
|
|
||||||
|
// Author
|
||||||
|
print '<td class="nowrap" align="right">';
|
||||||
|
print $data['author'];
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
print "</tr>\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
print '<tr class="liste_total">';
|
||||||
|
print '<td colspan="3"> </td>';
|
||||||
|
print '<td align="right">'.price($totalDebit).'</td>';
|
||||||
|
print '<td align="right">'.price($totalCredit).'</td>';
|
||||||
|
print '<td colspan="2"> </td>';
|
||||||
|
print "</tr>\n";
|
||||||
|
}
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
print "<br>";
|
print "<br>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print '</div>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -908,7 +908,7 @@ class Contact extends CommonObject
|
|||||||
*/
|
*/
|
||||||
function getNomUrl($withpicto=0,$option='',$maxlen=0,$moreparam='')
|
function getNomUrl($withpicto=0,$option='',$maxlen=0,$moreparam='')
|
||||||
{
|
{
|
||||||
global $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
$result='';
|
$result='';
|
||||||
$label = '<u>' . $langs->trans("ShowContact") . '</u>';
|
$label = '<u>' . $langs->trans("ShowContact") . '</u>';
|
||||||
@ -923,7 +923,14 @@ class Contact extends CommonObject
|
|||||||
$label.= '<br><b>' . $langs->trans("Phone") . ':</b> '.join(', ',$phonelist);
|
$label.= '<br><b>' . $langs->trans("Phone") . ':</b> '.join(', ',$phonelist);
|
||||||
$label.= '<br><b>' . $langs->trans("Address") . ':</b> '.dol_format_address($this, 1, ' ', $langs);
|
$label.= '<br><b>' . $langs->trans("Address") . ':</b> '.dol_format_address($this, 1, ' ', $langs);
|
||||||
|
|
||||||
$link = '<a href="'.DOL_URL_ROOT.'/contact/card.php?id='.$this->id.$moreparam.'" title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip">';
|
$link = '<a href="'.DOL_URL_ROOT.'/contact/card.php?id='.$this->id.$moreparam.'"';
|
||||||
|
if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
|
||||||
|
{
|
||||||
|
$label=$langs->trans("ShowContact");
|
||||||
|
$link.=' alt="'.dol_escape_htmltag($label, 1).'"';
|
||||||
|
}
|
||||||
|
$link.= ' title="'.dol_escape_htmltag($label, 1).'"';
|
||||||
|
$link.= ' class="classfortooltip">';
|
||||||
$linkend='</a>';
|
$linkend='</a>';
|
||||||
|
|
||||||
if ($option == 'xxx')
|
if ($option == 'xxx')
|
||||||
|
|||||||
@ -246,7 +246,7 @@ if ($resql)
|
|||||||
print '<input type="text" class="flat" size="6" name="search_ref_supplier value="'.dol_escape_htmltag($search_ref_supplier).'">';
|
print '<input type="text" class="flat" size="6" name="search_ref_supplier 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="12" name="search_name" value="'.dol_escape_htmltag($search_name).'">';
|
print '<input type="text" class="flat" size="8" 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>';
|
||||||
@ -292,9 +292,10 @@ if ($resql)
|
|||||||
$userstatic->id=$val['id'];
|
$userstatic->id=$val['id'];
|
||||||
$userstatic->lastname=$val['lastname'];
|
$userstatic->lastname=$val['lastname'];
|
||||||
$userstatic->firstname=$val['firstname'];
|
$userstatic->firstname=$val['firstname'];
|
||||||
print $userstatic->getNomUrl(1);
|
print '<div class="float">'.$userstatic->getNomUrl(1);
|
||||||
$j++;
|
$j++;
|
||||||
if ($j < $nbofsalesrepresentative) print '<br/>';
|
if ($j < $nbofsalesrepresentative) print ', ';
|
||||||
|
print '</div>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else print $langs->trans("NoSalesRepresentativeAffected");
|
else print $langs->trans("NoSalesRepresentativeAffected");
|
||||||
|
|||||||
@ -40,57 +40,65 @@ $search_boxvalue=GETPOST('q');
|
|||||||
$arrayresult=array();
|
$arrayresult=array();
|
||||||
|
|
||||||
// Define $searchform
|
// Define $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_DISABLED) && $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', 'sall', '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'));
|
||||||
$arrayresult['searchintothirdparty']=img_picto('','object_company').' '.$langs->trans("SearchIntoThirdparties", $search_boxvalue);
|
$arrayresult['searchintothirdparty']=array('text'=>img_picto('','object_company').' '.$langs->trans("SearchIntoThirdparties", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/societe/list.php?sall='.urlencode($search_boxvalue));
|
||||||
}
|
}
|
||||||
|
|
||||||
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_DISABLED) && $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', 'sall', 'A', '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'));
|
||||||
$arrayresult['searchintocontact']=img_picto('','object_contact').' '.$langs->trans("SearchIntoContacts", $search_boxvalue);
|
$arrayresult['searchintocontact']=array('text'=>img_picto('','object_contact').' '.$langs->trans("SearchIntoContacts", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/contact/list.php?sall='.urlencode($search_boxvalue));
|
||||||
}
|
}
|
||||||
|
|
||||||
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))
|
||||||
&& ! empty($conf->global->MAIN_SEARCHFORM_PRODUITSERVICE))
|
&& empty($conf->global->MAIN_SEARCHFORM_PRODUITSERVICE_DISABLED))
|
||||||
{
|
{
|
||||||
$langs->load("products");
|
$langs->load("products");
|
||||||
//$searchform.=printSearchForm(DOL_URL_ROOT.'/product/list.php', DOL_URL_ROOT.'/product/list.php', $langs->trans("Products")."/".$langs->trans("Services"), 'products', 'sall', 'P', 'searchleftp', img_object('','product'));
|
//$searchform.=printSearchForm(DOL_URL_ROOT.'/product/list.php', DOL_URL_ROOT.'/product/list.php', $langs->trans("Products")."/".$langs->trans("Services"), 'products', 'sall', 'P', 'searchleftp', img_object('','product'));
|
||||||
$arrayresult['searchintoproduct']=img_picto('','object_product').' '.$langs->trans("SearchIntoProductsOrServices", $search_boxvalue);
|
$arrayresult['searchintoproduct']=array('text'=>img_picto('','object_product').' '.$langs->trans("SearchIntoProductsOrServices", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/product/list.php?sall='.urlencode($search_boxvalue));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*if (((! empty($conf->product->enabled) && $user->rights->produit->lire) || (! empty($conf->service->enabled) && $user->rights->service->lire)) && ! empty($conf->fournisseur->enabled)
|
if (! empty($conf->projet->enabled) && empty($conf->global->MAIN_SEARCHFORM_PROJECT_DISABLED) && $user->rights->projet->lire)
|
||||||
&& ! empty($conf->global->MAIN_SEARCHFORM_PRODUITSERVICE_SUPPLIER))
|
|
||||||
{
|
|
||||||
$langs->load("products");
|
|
||||||
$searchform.=printSearchForm(DOL_URL_ROOT.'/fourn/product/list.php', DOL_URL_ROOT.'/fourn/product/list.php', $langs->trans("SupplierRef"), 'products', 'srefsupplier', '', 'searchlefts', img_object('','product'));
|
|
||||||
}*/
|
|
||||||
|
|
||||||
if (! empty($conf->adherent->enabled) && ! empty($conf->global->MAIN_SEARCHFORM_ADHERENT) && $user->rights->adherent->lire)
|
|
||||||
{
|
|
||||||
$langs->load("members");
|
|
||||||
//$searchform.=printSearchForm(DOL_URL_ROOT.'/adherents/list.php', DOL_URL_ROOT.'/adherents/list.php', $langs->trans("Members"), 'member', 'sall', 'M', 'searchleftm', img_object('','user'));
|
|
||||||
$arrayresult['searchintomember']=img_picto('','object_user').' '.$langs->trans("SearchIntoMembers", $search_boxvalue);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! empty($conf->projet->enabled) && ! empty($conf->global->MAIN_SEARCHFORM_PROJECT) && $user->rights->projet->lire)
|
|
||||||
{
|
{
|
||||||
$langs->load("projects");
|
$langs->load("projects");
|
||||||
//$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'));
|
//$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'));
|
||||||
$arrayresult['searchintoprojects']=img_picto('','object_projectpub').' '.$langs->trans("SearchIntoProjects", $search_boxvalue);
|
$arrayresult['searchintoprojects']=array('text'=>img_picto('','object_projectpub').' '.$langs->trans("SearchIntoProjects", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/projet/list.php?search_all='.urlencode($search_boxvalue));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Execute hook printSearchForm
|
if (! empty($conf->adherent->enabled) && empty($conf->global->MAIN_SEARCHFORM_ADHERENT_DISABLED) && $user->rights->adherent->lire)
|
||||||
|
{
|
||||||
|
$langs->load("members");
|
||||||
|
//$searchform.=printSearchForm(DOL_URL_ROOT.'/adherents/list.php', DOL_URL_ROOT.'/adherents/list.php', $langs->trans("Members"), 'member', 'sall', 'M', 'searchleftm', img_object('','user'));
|
||||||
|
$arrayresult['searchintomember']=array('text'=>img_picto('','object_user').' '.$langs->trans("SearchIntoMembers", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/adherents/list.php?sall='.urlencode($search_boxvalue));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! empty($conf->user->enabled) && empty($conf->global->MAIN_SEARCHFORM_PROJECT_DISABLED) && $user->rights->user->user->lire)
|
||||||
|
{
|
||||||
|
$langs->load("users");
|
||||||
|
//$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'));
|
||||||
|
$arrayresult['searchintouser']=array('text'=>img_picto('','object_user').' '.$langs->trans("SearchIntoUsers", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/user/index.php?sall='.urlencode($search_boxvalue));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Do we really need this. We already have a select for users, and we should be able to filter into user list on employee flag
|
||||||
|
if (! empty($conf->hrm->enabled) && ! empty($conf->global->MAIN_SEARCHFORM_EMPLOYEE) && $user->rights->hrm->employee->read)
|
||||||
|
{
|
||||||
|
$langs->load("hrm");
|
||||||
|
$searchform.=printSearchForm(DOL_URL_ROOT.'/hrm/employee/list.php', DOL_URL_ROOT.'/hrm/employee/list.php', $langs->trans("Employees"), 'employee', 'search_all', 'M', 'searchleftemployee', img_object('','user'));
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Execute hook addSearchEntry
|
||||||
$parameters=array();
|
$parameters=array();
|
||||||
$reshook=$hookmanager->executeHooks('printSearchForm',$parameters); // Note that $action and $object may have been modified by some hooks
|
$reshook=$hookmanager->executeHooks('addSearchEntry',$parameters);
|
||||||
if (empty($reshook))
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
$searchform.=$hookmanager->resPrint;
|
$arrayresult=array_merge($arrayresult, $hookmanager->resArray);
|
||||||
}
|
}
|
||||||
else $searchform=$hookmanager->resPrint;
|
else $arrayresult=$hookmanager->resArray;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -63,8 +63,9 @@ class box_contacts extends ModeleBoxes
|
|||||||
if ($user->rights->societe->lire)
|
if ($user->rights->societe->lire)
|
||||||
{
|
{
|
||||||
$sql = "SELECT sp.rowid as id, sp.lastname, sp.firstname, sp.civility as civility_id, sp.datec, sp.tms, sp.fk_soc, sp.statut as status";
|
$sql = "SELECT sp.rowid as id, sp.lastname, sp.firstname, sp.civility as civility_id, sp.datec, sp.tms, sp.fk_soc, sp.statut as status";
|
||||||
$sql.= ", s.nom as socname";
|
$sql.= ", sp.address, sp.zip, sp.town, sp.phone, sp.phone_perso, sp.phone_mobile";
|
||||||
$sql.= ", s.code_client";
|
$sql.= ", s.nom as socname, s.name_alias";
|
||||||
|
$sql.= ", s.client, s.fournisseur, s.code_client, s.code_fournisseur";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."socpeople as sp";
|
$sql.= " FROM ".MAIN_DB_PREFIX."socpeople as sp";
|
||||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON sp.fk_soc = s.rowid";
|
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON sp.fk_soc = s.rowid";
|
||||||
if (! $user->rights->societe->client->voir && ! $user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
if (! $user->rights->societe->client->voir && ! $user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
||||||
@ -93,9 +94,20 @@ class box_contacts extends ModeleBoxes
|
|||||||
$contactstatic->firstname=$objp->firstname;
|
$contactstatic->firstname=$objp->firstname;
|
||||||
$contactstatic->civility_id=$objp->civility_id;
|
$contactstatic->civility_id=$objp->civility_id;
|
||||||
$contactstatic->statut=$objp->status;
|
$contactstatic->statut=$objp->status;
|
||||||
|
$contactstatic->phone_pro = $objp->phone;
|
||||||
|
$contactstatic->phone_perso = $objp->phone_perso;
|
||||||
|
$contactstatic->phone_mobile = $objp->phone_mobile;
|
||||||
|
$contactstatic->address = $objp->address;
|
||||||
|
$contactstatic->zip = $objp->zip;
|
||||||
|
$contactstatic->town = $objp->town;
|
||||||
|
|
||||||
$societestatic->id = $objp->fk_soc;
|
$societestatic->id = $objp->fk_soc;
|
||||||
$societestatic->code_client = $objp->code_client;
|
|
||||||
$societestatic->name = $objp->socname;
|
$societestatic->name = $objp->socname;
|
||||||
|
$societestatic->name_alias = $objp->name_alias;
|
||||||
|
$societestatic->code_client = $objp->code_client;
|
||||||
|
$societestatic->code_fournisseur = $objp->code_fournisseur;
|
||||||
|
$societestatic->client = $objp->client;
|
||||||
|
$societestatic->fournisseur = $objp->fournisseur;
|
||||||
|
|
||||||
$this->info_box_contents[$line][] = array(
|
$this->info_box_contents[$line][] = array(
|
||||||
'td' => 'align="left"',
|
'td' => 'align="left"',
|
||||||
|
|||||||
@ -388,11 +388,16 @@ abstract class CommonDocGenerator
|
|||||||
// Add vat by rates
|
// Add vat by rates
|
||||||
foreach ($object->lines as $line)
|
foreach ($object->lines as $line)
|
||||||
{
|
{
|
||||||
|
// $line->tva_tx format depends on database field accuraty, no reliable. This is kept for backward comaptibility
|
||||||
if (empty($resarray[$array_key.'_total_vat_'.$line->tva_tx])) $resarray[$array_key.'_total_vat_'.$line->tva_tx]=0;
|
if (empty($resarray[$array_key.'_total_vat_'.$line->tva_tx])) $resarray[$array_key.'_total_vat_'.$line->tva_tx]=0;
|
||||||
$resarray[$array_key.'_total_vat_'.$line->tva_tx]+=$line->total_tva;
|
$resarray[$array_key.'_total_vat_'.$line->tva_tx]+=$line->total_tva;
|
||||||
$resarray[$array_key.'_total_vat_locale_'.$line->tva_tx]=price($resarray[$array_key.'_total_vat_'.$line->tva_tx]);
|
$resarray[$array_key.'_total_vat_locale_'.$line->tva_tx]=price($resarray[$array_key.'_total_vat_'.$line->tva_tx]);
|
||||||
|
// $vatformated is vat without not expected chars (so 20, or 8.5 or 5.99 for example)
|
||||||
|
$vatformated=vatrate($line->tva_tx);
|
||||||
|
if (empty($resarray[$array_key.'_total_vat_'.$vatformated])) $resarray[$array_key.'_total_vat_'.$vatformated]=0;
|
||||||
|
$resarray[$array_key.'_total_vat_'.$vatformated]+=$line->total_tva;
|
||||||
|
$resarray[$array_key.'_total_vat_locale_'.$vatformated]=price($resarray[$array_key.'_total_vat_'.$vatformated]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve extrafields
|
// Retrieve extrafields
|
||||||
if (is_array($object->array_options) && count($object->array_options))
|
if (is_array($object->array_options) && count($object->array_options))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -144,6 +144,21 @@ class HookManager
|
|||||||
'formBuilddocLineOptions',
|
'formBuilddocLineOptions',
|
||||||
'moveUploadedFile',
|
'moveUploadedFile',
|
||||||
'pdf_writelinedesc',
|
'pdf_writelinedesc',
|
||||||
|
'pdf_getlinenum',
|
||||||
|
'pdf_getlineref',
|
||||||
|
'pdf_getlineref_supplier',
|
||||||
|
'pdf_getlinevatrate',
|
||||||
|
'pdf_getlineupexcltax',
|
||||||
|
'pdf_getlineupwithtax',
|
||||||
|
'pdf_getlineqty',
|
||||||
|
'pdf_getlineqty_asked',
|
||||||
|
'pdf_getlineqty_shipped',
|
||||||
|
'pdf_getlineqty_keeptoship',
|
||||||
|
'pdf_getlineunit',
|
||||||
|
'pdf_getlineremisepercent',
|
||||||
|
'pdf_getlineprogress',
|
||||||
|
'pdf_getlinetotalexcltax',
|
||||||
|
'pdf_getlinetotalwithtax',
|
||||||
'paymentsupplierinvoices',
|
'paymentsupplierinvoices',
|
||||||
'printAddress',
|
'printAddress',
|
||||||
'printSearchForm',
|
'printSearchForm',
|
||||||
|
|||||||
@ -4504,23 +4504,30 @@ class Form
|
|||||||
* Note: Do not apply langs->trans function on returned content of Ajax service, content may be entity encoded twice.
|
* Note: Do not apply langs->trans function on returned content of Ajax service, content may be entity encoded twice.
|
||||||
*
|
*
|
||||||
* @param string $htmlname Name of html select area
|
* @param string $htmlname Name of html select area
|
||||||
* @param string $url Url
|
* @param string $url Url. Must return a json_encode of array(key=>array('text'=>'A text', 'url'=>'An url'), ...)
|
||||||
* @param string $id Preselected key
|
* @param string $id Preselected key
|
||||||
* @param string $moreparam Add more parameters onto the select tag
|
* @param string $moreparam Add more parameters onto the select tag
|
||||||
* @param string $moreparamtourl Add more parameters onto the Ajax called URL
|
* @param string $moreparamtourl Add more parameters onto the Ajax called URL
|
||||||
* @param int $disabled Html select box is disabled
|
* @param int $disabled Html select box is disabled
|
||||||
* @param int $minimumInputLength Minimum Input Length
|
* @param int $minimumInputLength Minimum Input Length
|
||||||
* @param string $morecss Add more class to css styles
|
* @param string $morecss Add more class to css styles
|
||||||
|
* @param int $callurlonselect If set to 1, some code is added so an url return by the ajax is called when value is selected.
|
||||||
|
* @param string $placeholder String to use as placeholder
|
||||||
* @return string HTML select string.
|
* @return string HTML select string.
|
||||||
*/
|
*/
|
||||||
static function selectArrayAjax($htmlname, $url, $id='', $moreparam='', $moreparamtourl='', $disabled=0, $minimumInputLength=1, $morecss='')
|
static function selectArrayAjax($htmlname, $url, $id='', $moreparam='', $moreparamtourl='', $disabled=0, $minimumInputLength=1, $morecss='', $callurlonselect=0, $placeholder='')
|
||||||
{
|
{
|
||||||
|
global $langs;
|
||||||
|
|
||||||
$out = '';
|
$out = '';
|
||||||
|
|
||||||
$tmpplugin='select2';
|
$tmpplugin='select2';
|
||||||
$out.='<!-- JS CODE TO ENABLE '.$tmpplugin.' for id '.$htmlname.' -->
|
$out.='<!-- JS CODE TO ENABLE '.$tmpplugin.' for id '.$htmlname.' -->
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
|
|
||||||
|
'.($callurlonselect ? 'var saveRemoteData = [];':'').'
|
||||||
|
|
||||||
$(".'.$htmlname.'").select2({
|
$(".'.$htmlname.'").select2({
|
||||||
ajax: {
|
ajax: {
|
||||||
dir: "ltr",
|
dir: "ltr",
|
||||||
@ -4534,12 +4541,13 @@ class Form
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
results: function (remoteData, pageNumber, query) {
|
results: function (remoteData, pageNumber, query) {
|
||||||
//console.log(remoteData);
|
console.log(remoteData);
|
||||||
|
saveRemoteData = remoteData;
|
||||||
|
/* format json result for select2 */
|
||||||
result = []
|
result = []
|
||||||
$.each( remoteData, function( key, value ) {
|
$.each( remoteData, function( key, value ) {
|
||||||
result.push({id: key, text: value});
|
result.push({id: key, text: value.text});
|
||||||
});
|
});
|
||||||
//console.log(result);
|
|
||||||
//return {results:[{id:\'none\', text:\'aa\'}, {id:\'rrr\', text:\'Red\'},{id:\'bbb\', text:\'Search a into projects\'}], more:false}
|
//return {results:[{id:\'none\', text:\'aa\'}, {id:\'rrr\', text:\'Red\'},{id:\'bbb\', text:\'Search a into projects\'}], more:false}
|
||||||
return {results: result, more:false}
|
return {results: result, more:false}
|
||||||
},
|
},
|
||||||
@ -4554,19 +4562,26 @@ class Form
|
|||||||
},*/
|
},*/
|
||||||
cache: true
|
cache: true
|
||||||
},
|
},
|
||||||
|
placeholder: "'.dol_escape_js($placeholder).'",
|
||||||
escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
|
escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
|
||||||
minimumInputLength: '.$minimumInputLength.',
|
minimumInputLength: '.$minimumInputLength.',
|
||||||
//templateResult: formatRepo, // omitted for brevity, see the source of this page
|
formatResult: function(result, container, query, escapeMarkup) {
|
||||||
//templateSelection: formatRepoSelection // omitted for brevity, see the source of this page
|
return escapeMarkup(result.text);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
'.($callurlonselect ? '
|
||||||
$(".'.$htmlname.'").change(function() {
|
$(".'.$htmlname.'").change(function() {
|
||||||
alert(\'eee\');
|
var selected = $(".'.$htmlname.'").select2("val");
|
||||||
/* $(".'.$htmlname.'").select2("search",""); */
|
$(".'.$htmlname.'").select2("val",""); /* reset visible combo value */
|
||||||
$(".'.$htmlname.'").select2("val",""); /* reset combo box */
|
$.each( saveRemoteData, function( key, value ) {
|
||||||
|
if (key == selected)
|
||||||
|
{
|
||||||
|
console.log("Do a redirect into selectArrayAjax to "+value.url)
|
||||||
|
location.assign(value.url);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
});' : '' ) . '
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
</script>';
|
</script>';
|
||||||
@ -5254,10 +5269,12 @@ class Form
|
|||||||
* @param int $height Height of photo (auto if 0)
|
* @param int $height Height of photo (auto if 0)
|
||||||
* @param int $caneditfield Add edit fields
|
* @param int $caneditfield Add edit fields
|
||||||
* @param string $cssclass CSS name to use on img for photo
|
* @param string $cssclass CSS name to use on img for photo
|
||||||
* @param int $genericifundef Use a generic image if no image avaiable
|
* @param string $imagesize 'mini', 'small' or '' (original)
|
||||||
|
* @param int $addlinktofullsize Add link to fullsize image
|
||||||
|
* @param int $cache 1=Accept to use image in cache
|
||||||
* @return string HTML code to output photo
|
* @return string HTML code to output photo
|
||||||
*/
|
*/
|
||||||
static function showphoto($modulepart, $object, $width=100, $height=0, $caneditfield=0, $cssclass='photowithmargin', $genericifundef=0)
|
static function showphoto($modulepart, $object, $width=100, $height=0, $caneditfield=0, $cssclass='photowithmargin', $imagesize='', $addlinktofullsize=1, $cache=0)
|
||||||
{
|
{
|
||||||
global $conf,$langs;
|
global $conf,$langs;
|
||||||
|
|
||||||
@ -5271,47 +5288,73 @@ 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 (! empty($object->logo)) $file=$id.'/logos/thumbs/'.$smallfile;
|
if (! empty($object->logo))
|
||||||
|
{
|
||||||
|
if ((string) $imagesize == 'mini') $file=$id.'/logos/thumbs/'.getImageFileNameForSize($object->logo, '_mini');
|
||||||
|
else if ((string) $imagesize == 'small') $file=$id.'/logos/thumbs/'.getImageFileNameForSize($object->logo, '_small');
|
||||||
|
else $file=$id.'/logos/thumbs/'.$smallfile;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else 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;
|
if (! empty($object->photo))
|
||||||
|
{
|
||||||
|
if ((string) $imagesize == 'mini') $file=$id.'/photos/thumbs/'.getImageFileNameForSize($object->photo, '_mini');
|
||||||
|
else if ((string) $imagesize == 'small') $file=$id.'/photos/thumbs/'.getImageFileNameForSize($object->photo, '_small');
|
||||||
|
else $file=$id.'/photos/'.$object->photo;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if ($modulepart=='userphoto')
|
else if ($modulepart=='userphoto')
|
||||||
{
|
{
|
||||||
$dir=$conf->user->dir_output;
|
$dir=$conf->user->dir_output;
|
||||||
if (! empty($object->photo)) $file=get_exdir($id, 2, 0, 0, $object, 'user').$object->photo;
|
if (! empty($object->photo))
|
||||||
|
{
|
||||||
|
if ((string) $imagesize == 'mini') $file=get_exdir($id, 2, 0, 0, $object, 'user').getImageFileNameForSize($object->photo, '_mini');
|
||||||
|
else if ((string) $imagesize == 'small') $file=get_exdir($id, 2, 0, 0, $object, 'user').getImageFileNameForSize($object->photo, '_small');
|
||||||
|
else $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 (! empty($object->photo)) $file=get_exdir($id, 2, 0, 0, $object, 'invoice_supplier').'photos/'.$object->photo;
|
if (! empty($object->photo))
|
||||||
|
{
|
||||||
|
if ((string) $imagesize == 'mini') $file=get_exdir($id, 2, 0, 0, $object, 'member').'photos/'.getImageFileNameForSize($object->photo, '_mini');
|
||||||
|
else if ((string) $imagesize == 'small') $file=get_exdir($id, 2, 0, 0, $object, 'member').'photos/'.getImageFileNameForSize($object->photo, '_small');
|
||||||
|
else $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;
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$dir=$conf->$modulepart->dir_output;
|
$dir=$conf->$modulepart->dir_output;
|
||||||
if (! empty($object->photo)) $file=get_exdir($id, 2, 0, 0, $object, 'member').'photos/'.$object->photo;
|
if (! empty($object->photo))
|
||||||
|
{
|
||||||
|
if ((string) $imagesize == 'mini') $file=get_exdir($id, 2, 0, 0, $object, $modulepart).'photos/'.getImageFileNameForSize($object->photo, '_mini');
|
||||||
|
else if ((string) $imagesize == 'small') $file=get_exdir($id, 2, 0, 0, $object, $modulepart).'photos/'.getImageFileNameForSize($object->photo, '_small');
|
||||||
|
else $file=get_exdir($id, 2, 0, 0, $object, $modulepart).'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;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($dir)
|
if ($dir)
|
||||||
{
|
{
|
||||||
$cache='0';
|
|
||||||
if ($file && file_exists($dir."/".$file))
|
if ($file && file_exists($dir."/".$file))
|
||||||
{
|
{
|
||||||
$ret.='<a href="'.DOL_URL_ROOT.'/viewimage.php?modulepart='.$modulepart.'&entity='.$entity.'&file='.urlencode($file).'&cache='.$cache.'">';
|
if ($addlinktofullsize) $ret.='<a href="'.DOL_URL_ROOT.'/viewimage.php?modulepart='.$modulepart.'&entity='.$entity.'&file='.urlencode($file).'&cache='.$cache.'">';
|
||||||
$ret.='<img alt="Photo" id="photologo'.(preg_replace('/[^a-z]/i','_',$file)).'" class="'.$cssclass.'" '.($width?' width="'.$width.'"':'').($height?' height="'.$height.'"':'').' src="'.DOL_URL_ROOT.'/viewimage.php?modulepart='.$modulepart.'&entity='.$entity.'&file='.urlencode($file).'&cache='.$cache.'">';
|
$ret.='<img alt="Photo" id="photologo'.(preg_replace('/[^a-z]/i','_',$file)).'" class="'.$cssclass.'" '.($width?' width="'.$width.'"':'').($height?' height="'.$height.'"':'').' src="'.DOL_URL_ROOT.'/viewimage.php?modulepart='.$modulepart.'&entity='.$entity.'&file='.urlencode($file).'&cache='.$cache.'">';
|
||||||
$ret.='</a>';
|
if ($addlinktofullsize) $ret.='</a>';
|
||||||
}
|
}
|
||||||
else if ($altfile && file_exists($dir."/".$altfile))
|
else if ($altfile && file_exists($dir."/".$altfile))
|
||||||
{
|
{
|
||||||
$ret.='<a href="'.DOL_URL_ROOT.'/viewimage.php?modulepart='.$modulepart.'&entity='.$entity.'&file='.urlencode($file).'&cache='.$cache.'">';
|
if ($addlinktofullsize) $ret.='<a href="'.DOL_URL_ROOT.'/viewimage.php?modulepart='.$modulepart.'&entity='.$entity.'&file='.urlencode($file).'&cache='.$cache.'">';
|
||||||
$ret.='<img alt="Photo alt" id="photologo'.(preg_replace('/[^a-z]/i','_',$file)).'" class="'.$cssclass.'" '.($width?' width="'.$width.'"':'').($height?' height="'.$height.'"':'').' src="'.DOL_URL_ROOT.'/viewimage.php?modulepart='.$modulepart.'&entity='.$entity.'&file='.urlencode($altfile).'&cache='.$cache.'">';
|
$ret.='<img alt="Photo alt" id="photologo'.(preg_replace('/[^a-z]/i','_',$file)).'" class="'.$cssclass.'" '.($width?' width="'.$width.'"':'').($height?' height="'.$height.'"':'').' src="'.DOL_URL_ROOT.'/viewimage.php?modulepart='.$modulepart.'&entity='.$entity.'&file='.urlencode($altfile).'&cache='.$cache.'">';
|
||||||
$ret.='</a>';
|
if ($addlinktofullsize) $ret.='</a>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -176,22 +176,24 @@ class FormFile
|
|||||||
$out .= '<input type="hidden" id="'.$htmlname.'_link_section_id" name="link_section_id" value="'.$sectionid.'">';
|
$out .= '<input type="hidden" id="'.$htmlname.'_link_section_id" name="link_section_id" value="'.$sectionid.'">';
|
||||||
$out .= '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
$out .= '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
|
||||||
$out .= '<table width="100%" class="nobordernopadding">';
|
$out .= '<div>';
|
||||||
$out .= '<tr>';
|
$out .= '<div class="float" style="padding-right: 10px;">';
|
||||||
$out .= '<td valign="middle" class="nowrap">';
|
$out .= '<label for="link">'.$langs->trans("URLToLink") . '</label>: ';
|
||||||
$out .= $langs->trans("URLToLink") . ': ';
|
|
||||||
$out .= '<input type="text" name="link" size="'.$maxlength.'" id="link">';
|
$out .= '<input type="text" name="link" size="'.$maxlength.'" id="link">';
|
||||||
$out .= ' ' . $langs->trans("Label") . ': ';
|
$out .= '</div>';
|
||||||
|
$out .= '<div class="float" style="padding-right: 10px;">';
|
||||||
|
$out .= '<label for="label">'.$langs->trans("Label") . '</label>: ';
|
||||||
$out .= '<input type="text" name="label" id="label">';
|
$out .= '<input type="text" name="label" id="label">';
|
||||||
$out .= '<input type="hidden" name="objecttype" value="' . $object->element . '">';
|
$out .= '<input type="hidden" name="objecttype" value="' . $object->element . '">';
|
||||||
$out .= '<input type="hidden" name="objectid" value="' . $object->id . '">';
|
$out .= '<input type="hidden" name="objectid" value="' . $object->id . '">';
|
||||||
$out .= ' ';
|
$out .= '</div>';
|
||||||
|
$out .= '<div class="float" style="padding-right: 10px;">';
|
||||||
$out .= '<input type="submit" class="button" name="linkit" value="'.$langs->trans("ToLink").'"';
|
$out .= '<input type="submit" class="button" name="linkit" value="'.$langs->trans("ToLink").'"';
|
||||||
$out .= (empty($conf->global->MAIN_UPLOAD_DOC) || empty($perm)?' disabled':'');
|
$out .= (empty($conf->global->MAIN_UPLOAD_DOC) || empty($perm)?' disabled':'');
|
||||||
$out .= '>';
|
$out .= '>';
|
||||||
$out .= '</td></tr>';
|
$out .= '</div>';
|
||||||
$out .= '</table>';
|
$out .= '</div>';
|
||||||
|
$out .= '<div class="clearboth"></div>';
|
||||||
$out .= '</form><br>';
|
$out .= '</form><br>';
|
||||||
$parameters = array('socid'=>(isset($GLOBALS['socid'])?$GLOBALS['socid']:''),'id'=>(isset($GLOBALS['id'])?$GLOBALS['id']:''), 'url'=>$url, 'perm'=>$perm);
|
$parameters = array('socid'=>(isset($GLOBALS['socid'])?$GLOBALS['socid']:''),'id'=>(isset($GLOBALS['id'])?$GLOBALS['id']:''), 'url'=>$url, 'perm'=>$perm);
|
||||||
$res = $hookmanager->executeHooks('formattachOptions',$parameters,$object);
|
$res = $hookmanager->executeHooks('formattachOptions',$parameters,$object);
|
||||||
@ -492,7 +494,7 @@ class FormFile
|
|||||||
$out.= '<input type="hidden" name="action" value="builddoc">';
|
$out.= '<input type="hidden" name="action" value="builddoc">';
|
||||||
$out.= '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
$out.= '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
|
||||||
$out.= '<div class="titre">'.$titletoshow.'</div>';
|
$out.= load_fiche_titre($titletoshow, '', '');
|
||||||
$out.= '<table class="liste formdoc noborder" summary="listofdocumentstable" width="100%">';
|
$out.= '<table class="liste formdoc noborder" summary="listofdocumentstable" width="100%">';
|
||||||
|
|
||||||
$out.= '<tr class="liste_titre">';
|
$out.= '<tr class="liste_titre">';
|
||||||
|
|||||||
@ -302,7 +302,7 @@ class FormOther
|
|||||||
/**
|
/**
|
||||||
* Return select list for categories (to use in form search selectors)
|
* Return select list for categories (to use in form search selectors)
|
||||||
*
|
*
|
||||||
* @param int $type Type of categories (0=product, 1=suppliers, 2=customers, 3=members)
|
* @param int $type Type of categories (0=product, 1=supplier, 2=customer, 3=member, 4=contact)
|
||||||
* @param integer $selected Preselected value
|
* @param integer $selected Preselected value
|
||||||
* @param string $htmlname Name of combo list
|
* @param string $htmlname Name of combo list
|
||||||
* @param int $nocateg Show also an entry "Not categorized"
|
* @param int $nocateg Show also an entry "Not categorized"
|
||||||
|
|||||||
@ -1053,7 +1053,7 @@ function complete_elementList_with_modules(&$elementList)
|
|||||||
* Show array with constants to edit
|
* Show array with constants to edit
|
||||||
*
|
*
|
||||||
* @param array $tableau Array of constants
|
* @param array $tableau Array of constants
|
||||||
* @param int $strictw3c Respect W3C (no form into table)
|
* @param int $strictw3c 0=Include form into table (deprecated), 1=Form is outside table to respect W3C (no form into table), 2=No form nor button at all
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function form_constantes($tableau,$strictw3c=0)
|
function form_constantes($tableau,$strictw3c=0)
|
||||||
@ -1062,7 +1062,7 @@ function form_constantes($tableau,$strictw3c=0)
|
|||||||
|
|
||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
|
|
||||||
if (! empty($strictw3c)) print "\n".'<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
if (! empty($strictw3c) && $strictw3c == 1) print "\n".'<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
@ -1199,7 +1199,7 @@ function form_constantes($tableau,$strictw3c=0)
|
|||||||
}
|
}
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
if (! empty($strictw3c))
|
if (! empty($strictw3c) && $strictw3c == 1)
|
||||||
{
|
{
|
||||||
print '<div align="center"><input type="submit" class="button" value="'.$langs->trans("Update").'" name="update"></div>';
|
print '<div align="center"><input type="submit" class="button" value="'.$langs->trans("Update").'" name="update"></div>';
|
||||||
print "</form>\n";
|
print "</form>\n";
|
||||||
|
|||||||
@ -91,6 +91,13 @@ function societe_prepare_head(Societe $object)
|
|||||||
$head[$h][2] = 'agenda';
|
$head[$h][2] = 'agenda';
|
||||||
$h++;
|
$h++;
|
||||||
}
|
}
|
||||||
|
if (! empty($conf->projet->enabled) && (!empty($user->rights->projet->lire) ))
|
||||||
|
{
|
||||||
|
$head[$h][0] = DOL_URL_ROOT.'/societe/project.php?socid='.$object->id;
|
||||||
|
$head[$h][1] = $langs->trans("Projects");
|
||||||
|
$head[$h][2] = 'project';
|
||||||
|
$h++;
|
||||||
|
}
|
||||||
//show categorie tab
|
//show categorie tab
|
||||||
/*if (! empty($conf->categorie->enabled) && ! empty($user->rights->categorie->lire))
|
/*if (! empty($conf->categorie->enabled) && ! empty($user->rights->categorie->lire))
|
||||||
{
|
{
|
||||||
@ -456,9 +463,10 @@ function getFormeJuridiqueLabel($code)
|
|||||||
* @param DoliDB $db Database handler
|
* @param DoliDB $db Database handler
|
||||||
* @param Object $object Third party object
|
* @param Object $object Third party object
|
||||||
* @param string $backtopage Url to go once contact is created
|
* @param string $backtopage Url to go once contact is created
|
||||||
|
* @param int $nocreatelink 1=Hide create project link
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function show_projects($conf,$langs,$db,$object,$backtopage='')
|
function show_projects($conf, $langs, $db, $object, $backtopage='', $nocreatelink=0)
|
||||||
{
|
{
|
||||||
global $user;
|
global $user;
|
||||||
global $bc;
|
global $bc;
|
||||||
@ -470,7 +478,7 @@ function show_projects($conf,$langs,$db,$object,$backtopage='')
|
|||||||
$langs->load("projects");
|
$langs->load("projects");
|
||||||
|
|
||||||
$buttoncreate='';
|
$buttoncreate='';
|
||||||
if (! empty($conf->projet->enabled) && $user->rights->projet->creer)
|
if (! empty($conf->projet->enabled) && $user->rights->projet->creer && empty($nocreatelink))
|
||||||
{
|
{
|
||||||
//$buttoncreate='<a class="butAction" href="'.DOL_URL_ROOT.'/projet/card.php?socid='.$object->id.'&action=create&backtopage='.urlencode($backtopage).'">'.$langs->trans("AddProject").'</a>';
|
//$buttoncreate='<a class="butAction" href="'.DOL_URL_ROOT.'/projet/card.php?socid='.$object->id.'&action=create&backtopage='.urlencode($backtopage).'">'.$langs->trans("AddProject").'</a>';
|
||||||
$buttoncreate='<a class="addnewrecord" href="'.DOL_URL_ROOT.'/projet/card.php?socid='.$object->id.'&action=create&backtopage='.urlencode($backtopage).'">'.$langs->trans("AddProject");
|
$buttoncreate='<a class="addnewrecord" href="'.DOL_URL_ROOT.'/projet/card.php?socid='.$object->id.'&action=create&backtopage='.urlencode($backtopage).'">'.$langs->trans("AddProject");
|
||||||
|
|||||||
@ -1544,9 +1544,9 @@ function dol_print_phone($phone,$countrycode='',$cid=0,$socid=0,$addlink='',$sep
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! empty($addlink)) // Link on phone number + link to add action (if conf->global->AGENDA_ADDACTIONFORPHONE set)
|
if (! empty($addlink)) // Link on phone number (+ link to add action if conf->global->AGENDA_ADDACTIONFORPHONE set)
|
||||||
{
|
{
|
||||||
if (! empty($conf->browser->phone)) // If phone, we use link of phone
|
if (! empty($conf->browser->phone) || (! empty($conf->clicktodial->enabled) && ! empty($conf->global->CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS))) // If phone or option for, we use link of phone
|
||||||
{
|
{
|
||||||
$newphone ='<a href="tel:'.$phone.'"';
|
$newphone ='<a href="tel:'.$phone.'"';
|
||||||
$newphone.='>'.$phone.'</a>';
|
$newphone.='>'.$phone.'</a>';
|
||||||
@ -5223,3 +5223,32 @@ function natural_search($fields, $value, $mode=0, $nofirstand=0)
|
|||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the filename of file to get the thumbs
|
||||||
|
*
|
||||||
|
* @param string $file Original filename
|
||||||
|
* @param string $extName Extension to differenciate thumb file name ('', '_small', '_mini')
|
||||||
|
* @param string $extImgTarget Force image format for thumbs. Use '' to keep same extension than original image.
|
||||||
|
* @return string New file name
|
||||||
|
*/
|
||||||
|
function getImageFileNameForSize($file, $extName, $extImgTarget='')
|
||||||
|
{
|
||||||
|
$dirName = dirname($file);
|
||||||
|
if ($dirName == '.') $dirName='';
|
||||||
|
|
||||||
|
$fileName = preg_replace('/(\.gif|\.jpeg|\.jpg|\.png|\.bmp)$/i','',$file); // On enleve extension quelquesoit la casse
|
||||||
|
$fileName = basename($fileName);
|
||||||
|
|
||||||
|
if (empty($extImgTarget)) $extImgTarget = (preg_match('/\.jpg$/i',$file)?'.jpg':'');
|
||||||
|
if (empty($extImgTarget)) $extImgTarget = (preg_match('/\.jpeg$/i',$file)?'.jpeg':'');
|
||||||
|
if (empty($extImgTarget)) $extImgTarget = (preg_match('/\.gif$/i',$file)?'.gif':'');
|
||||||
|
if (empty($extImgTarget)) $extImgTarget = (preg_match('/\.png$/i',$file)?'.png':'');
|
||||||
|
if (empty($extImgTarget)) $extImgTarget = (preg_match('/\.bmp$/i',$file)?'.bmp':'');
|
||||||
|
|
||||||
|
if (! $extImgTarget) return $file;
|
||||||
|
|
||||||
|
$subdir='';
|
||||||
|
if ($extName) $subdir = 'thumbs/';
|
||||||
|
|
||||||
|
return $dirName.$subdir.$fileName.$extName.$extImgTarget; // New filename for thumb
|
||||||
|
}
|
||||||
|
|||||||
120
htdocs/core/lib/hrm.lib.php
Normal file
120
htdocs/core/lib/hrm.lib.php
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/core/lib/hrm.lib.php
|
||||||
|
* \ingroup HRM
|
||||||
|
* \brief Library for hrm
|
||||||
|
*/
|
||||||
|
$langs->load('hrm');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return head table for employee tabs screen
|
||||||
|
*
|
||||||
|
* @param object $object contact
|
||||||
|
* @return array head table of tabs
|
||||||
|
*/
|
||||||
|
function employee_prepare_head($object) {
|
||||||
|
global $langs, $conf, $user;
|
||||||
|
|
||||||
|
$h = 0;
|
||||||
|
$head = array ();
|
||||||
|
|
||||||
|
$head [$h] [0] = DOL_URL_ROOT.'/hrm/employee/card.php?id=' . $object->id;
|
||||||
|
$head [$h] [1] = $langs->trans("Card");
|
||||||
|
$head [$h] [2] = 'card';
|
||||||
|
$h ++;
|
||||||
|
|
||||||
|
complete_head_from_modules($conf, $langs, $object, $head, $h, 'employee');
|
||||||
|
|
||||||
|
$head [$h] [0] = DOL_URL_ROOT.'/hrm/employee/info.php?id=' . $object->id;
|
||||||
|
$head [$h] [1] = $langs->trans("Info");
|
||||||
|
$head [$h] [2] = 'info';
|
||||||
|
$h ++;
|
||||||
|
|
||||||
|
complete_head_from_modules($conf, $langs, $object, $head, $h, 'employee', 'remove');
|
||||||
|
|
||||||
|
return $head;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return head table for establishment tabs screen
|
||||||
|
*
|
||||||
|
* @param Establishment $object Object related to tabs
|
||||||
|
* @return array Array of tabs to show
|
||||||
|
*/
|
||||||
|
function establishment_prepare_head($object)
|
||||||
|
{
|
||||||
|
global $langs, $conf;
|
||||||
|
|
||||||
|
$h = 0;
|
||||||
|
$head = array();
|
||||||
|
|
||||||
|
$head[$h][0] = DOL_URL_ROOT.'/hrm/establishment/card.php?id=' . $object->id;
|
||||||
|
$head[$h][1] = $langs->trans("Card");
|
||||||
|
$head[$h][2] = 'card';
|
||||||
|
$h++;
|
||||||
|
|
||||||
|
// Show more tabs from modules
|
||||||
|
// Entries must be declared in modules descriptor with line
|
||||||
|
// $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
|
||||||
|
// $this->tabs = array('entity:-tabname); to remove a tab
|
||||||
|
complete_head_from_modules($conf,$langs,$object,$head,$h,'establishment');
|
||||||
|
|
||||||
|
$head[$h][0] = DOL_URL_ROOT.'/hrm/establishment/info.php?id=' . $object->id;
|
||||||
|
$head[$h][1] = $langs->trans("Info");
|
||||||
|
$head[$h][2] = 'info';
|
||||||
|
$h++;
|
||||||
|
|
||||||
|
complete_head_from_modules($conf,$langs,$object,$head,$h,'establishment','remove');
|
||||||
|
|
||||||
|
return $head;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return array head with list of tabs to view object informations
|
||||||
|
*
|
||||||
|
* @return array head
|
||||||
|
*/
|
||||||
|
function hrm_admin_prepare_head()
|
||||||
|
{
|
||||||
|
global $langs, $conf, $user;
|
||||||
|
|
||||||
|
$h = 0;
|
||||||
|
$head = array();
|
||||||
|
|
||||||
|
$head[$h][0] = DOL_URL_ROOT.'/hrm/admin/admin_hrm.php';
|
||||||
|
$head[$h][1] = $langs->trans("Parameters");
|
||||||
|
$head[$h][2] = 'parameters';
|
||||||
|
$h++;
|
||||||
|
|
||||||
|
$head[$h][0] = DOL_URL_ROOT.'/hrm/admin/admin_establishment.php';
|
||||||
|
$head[$h][1] = $langs->trans("Establishments");
|
||||||
|
$head[$h][2] = 'establishments';
|
||||||
|
$h++;
|
||||||
|
|
||||||
|
// Show more tabs from modules
|
||||||
|
// Entries must be declared in modules descriptor with line
|
||||||
|
// $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
|
||||||
|
// $this->tabs = array('entity:-tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to remove a tab
|
||||||
|
complete_head_from_modules($conf,$langs,'',$head,$h,'hrm_admin');
|
||||||
|
|
||||||
|
complete_head_from_modules($conf,$langs,'',$head,$h,'hrm_admin','remove');
|
||||||
|
|
||||||
|
return $head;
|
||||||
|
}
|
||||||
|
|
||||||
@ -483,7 +483,7 @@ function vignette($file, $maxWidth = 160, $maxHeight = 120, $extName='_small', $
|
|||||||
break;
|
break;
|
||||||
case IMAGETYPE_JPEG: // 2
|
case IMAGETYPE_JPEG: // 2
|
||||||
$trans_colour = imagecolorallocatealpha($imgThumb, 255, 255, 255, 0);
|
$trans_colour = imagecolorallocatealpha($imgThumb, 255, 255, 255, 0);
|
||||||
$extImgTarget = (preg_match('/\.jpeg$/',$file)?'.jpeg':'.jpg');
|
$extImgTarget = (preg_match('/\.jpeg$/i',$file)?'.jpeg':'.jpg');
|
||||||
$newquality=$quality;
|
$newquality=$quality;
|
||||||
break;
|
break;
|
||||||
case IMAGETYPE_PNG: // 3
|
case IMAGETYPE_PNG: // 3
|
||||||
@ -512,7 +512,7 @@ function vignette($file, $maxWidth = 160, $maxHeight = 120, $extName='_small', $
|
|||||||
|
|
||||||
$fileName = preg_replace('/(\.gif|\.jpeg|\.jpg|\.png|\.bmp)$/i','',$file); // On enleve extension quelquesoit la casse
|
$fileName = preg_replace('/(\.gif|\.jpeg|\.jpg|\.png|\.bmp)$/i','',$file); // On enleve extension quelquesoit la casse
|
||||||
$fileName = basename($fileName);
|
$fileName = basename($fileName);
|
||||||
$imgThumbName = $dirthumb.'/'.$fileName.$extName.$extImgTarget; // Chemin complet du fichier de la vignette
|
$imgThumbName = $dirthumb.'/'.getImageFileNameForSize($file, $extName, $extImgTarget); // Chemin complet du fichier de la vignette
|
||||||
|
|
||||||
// Check if permission are ok
|
// Check if permission are ok
|
||||||
//$fp = fopen($imgThumbName, "w");
|
//$fp = fopen($imgThumbName, "w");
|
||||||
|
|||||||
@ -1032,20 +1032,23 @@ function pdf_writeLinkedObjects(&$pdf,$object,$outputlangs,$posx,$posy,$w,$h,$al
|
|||||||
* @param int $hideref Hide reference
|
* @param int $hideref Hide reference
|
||||||
* @param int $hidedesc Hide description
|
* @param int $hidedesc Hide description
|
||||||
* @param int $issupplierline Is it a line for a supplier object ?
|
* @param int $issupplierline Is it a line for a supplier object ?
|
||||||
* @return string|null
|
* @return string
|
||||||
*/
|
*/
|
||||||
function pdf_writelinedesc(&$pdf,$object,$i,$outputlangs,$w,$h,$posx,$posy,$hideref=0,$hidedesc=0,$issupplierline=0)
|
function pdf_writelinedesc(&$pdf,$object,$i,$outputlangs,$w,$h,$posx,$posy,$hideref=0,$hidedesc=0,$issupplierline=0)
|
||||||
{
|
{
|
||||||
global $db, $conf, $langs, $hookmanager;
|
global $db, $conf, $langs, $hookmanager;
|
||||||
|
|
||||||
$reshook=0;
|
$reshook=0;
|
||||||
if (is_object($hookmanager) && ( (isset($object->lines[$i]->product_type) && $object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
//if (is_object($hookmanager) && ( (isset($object->lines[$i]->product_type) && $object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
||||||
|
if (is_object($hookmanager)) // Old code is commented on preceding line. Reproduct this test in the pdf_xxx function if you don't want your hook to run
|
||||||
{
|
{
|
||||||
$special_code = $object->lines[$i]->special_code;
|
$special_code = $object->lines[$i]->special_code;
|
||||||
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
||||||
$parameters = array('pdf'=>$pdf,'i'=>$i,'outputlangs'=>$outputlangs,'w'=>$w,'h'=>$h,'posx'=>$posx,'posy'=>$posy,'hideref'=>$hideref,'hidedesc'=>$hidedesc,'issupplierline'=>$issupplierline,'special_code'=>$special_code);
|
$parameters = array('pdf'=>$pdf,'i'=>$i,'outputlangs'=>$outputlangs,'w'=>$w,'h'=>$h,'posx'=>$posx,'posy'=>$posy,'hideref'=>$hideref,'hidedesc'=>$hidedesc,'issupplierline'=>$issupplierline,'special_code'=>$special_code);
|
||||||
$action='';
|
$action='';
|
||||||
$reshook=$hookmanager->executeHooks('pdf_writelinedesc',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
$reshook=$hookmanager->executeHooks('pdf_writelinedesc',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
|
||||||
|
if (!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
||||||
}
|
}
|
||||||
if (empty($reshook))
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
@ -1054,6 +1057,7 @@ function pdf_writelinedesc(&$pdf,$object,$i,$outputlangs,$w,$h,$posx,$posy,$hide
|
|||||||
$pdf->writeHTMLCell($w, $h, $posx, $posy, $outputlangs->convToOutputCharset($labelproductservice), 0, 1, false, true, 'J',true);
|
$pdf->writeHTMLCell($w, $h, $posx, $posy, $outputlangs->convToOutputCharset($labelproductservice), 0, 1, false, true, 'J',true);
|
||||||
return $labelproductservice;
|
return $labelproductservice;
|
||||||
}
|
}
|
||||||
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1250,22 +1254,25 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl
|
|||||||
* @param int $i Current line number
|
* @param int $i Current line number
|
||||||
* @param Translate $outputlangs Object langs for output
|
* @param Translate $outputlangs Object langs for output
|
||||||
* @param int $hidedetails Hide details (0=no, 1=yes, 2=just special lines)
|
* @param int $hidedetails Hide details (0=no, 1=yes, 2=just special lines)
|
||||||
* @return null|string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function pdf_getlinenum($object,$i,$outputlangs,$hidedetails=0)
|
function pdf_getlinenum($object,$i,$outputlangs,$hidedetails=0)
|
||||||
{
|
{
|
||||||
global $hookmanager;
|
global $hookmanager;
|
||||||
|
|
||||||
if (is_object($hookmanager) && (($object->lines[$i]->product_type == 9 && !empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line)))
|
$reshook=0;
|
||||||
|
//if (is_object($hookmanager) && ( (isset($object->lines[$i]->product_type) && $object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
||||||
|
if (is_object($hookmanager)) // Old code is commented on preceding line. Reproduct this test in the pdf_xxx function if you don't want your hook to run
|
||||||
{
|
{
|
||||||
$special_code = $object->lines[$i]->special_code;
|
$special_code = $object->lines[$i]->special_code;
|
||||||
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
||||||
// TODO add hook function
|
// TODO add hook function
|
||||||
}
|
}
|
||||||
else
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
return dol_htmlentitiesbr($object->lines[$i]->num);
|
return dol_htmlentitiesbr($object->lines[$i]->num);
|
||||||
}
|
}
|
||||||
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1276,22 +1283,25 @@ function pdf_getlinenum($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
* @param int $i Current line number
|
* @param int $i Current line number
|
||||||
* @param Translate $outputlangs Object langs for output
|
* @param Translate $outputlangs Object langs for output
|
||||||
* @param int $hidedetails Hide details (0=no, 1=yes, 2=just special lines)
|
* @param int $hidedetails Hide details (0=no, 1=yes, 2=just special lines)
|
||||||
* @return null|string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function pdf_getlineref($object,$i,$outputlangs,$hidedetails=0)
|
function pdf_getlineref($object,$i,$outputlangs,$hidedetails=0)
|
||||||
{
|
{
|
||||||
global $hookmanager;
|
global $hookmanager;
|
||||||
|
|
||||||
if (is_object($hookmanager) && (($object->lines[$i]->product_type == 9 && !empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line)))
|
$reshook=0;
|
||||||
|
//if (is_object($hookmanager) && ( (isset($object->lines[$i]->product_type) && $object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
||||||
|
if (is_object($hookmanager)) // Old code is commented on preceding line. Reproduct this test in the pdf_xxx function if you don't want your hook to run
|
||||||
{
|
{
|
||||||
$special_code = $object->lines[$i]->special_code;
|
$special_code = $object->lines[$i]->special_code;
|
||||||
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
||||||
// TODO add hook function
|
// TODO add hook function
|
||||||
}
|
}
|
||||||
else
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
return dol_htmlentitiesbr($object->lines[$i]->product_ref);
|
return dol_htmlentitiesbr($object->lines[$i]->product_ref);
|
||||||
}
|
}
|
||||||
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1301,22 +1311,25 @@ function pdf_getlineref($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
* @param int $i Current line number
|
* @param int $i Current line number
|
||||||
* @param Translate $outputlangs Object langs for output
|
* @param Translate $outputlangs Object langs for output
|
||||||
* @param int $hidedetails Hide details (0=no, 1=yes, 2=just special lines)
|
* @param int $hidedetails Hide details (0=no, 1=yes, 2=just special lines)
|
||||||
* @return null|string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function pdf_getlineref_supplier($object,$i,$outputlangs,$hidedetails=0)
|
function pdf_getlineref_supplier($object,$i,$outputlangs,$hidedetails=0)
|
||||||
{
|
{
|
||||||
global $hookmanager;
|
global $hookmanager;
|
||||||
|
|
||||||
if (is_object($hookmanager) && ( ($object->lines[$i]->product_type == 9 && !empty($object->lines[$i]->special_code) ) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
$reshook=0;
|
||||||
|
//if (is_object($hookmanager) && ( (isset($object->lines[$i]->product_type) && $object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
||||||
|
if (is_object($hookmanager)) // Old code is commented on preceding line. Reproduct this test in the pdf_xxx function if you don't want your hook to run
|
||||||
{
|
{
|
||||||
$special_code = $object->lines[$i]->special_code;
|
$special_code = $object->lines[$i]->special_code;
|
||||||
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
||||||
// TODO add hook function
|
// TODO add hook function
|
||||||
}
|
}
|
||||||
else
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
return dol_htmlentitiesbr($object->lines[$i]->ref_supplier);
|
return dol_htmlentitiesbr($object->lines[$i]->ref_supplier);
|
||||||
}
|
}
|
||||||
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1332,7 +1345,9 @@ function pdf_getlinevatrate($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
{
|
{
|
||||||
global $hookmanager;
|
global $hookmanager;
|
||||||
|
|
||||||
if (is_object($hookmanager) && (($object->lines[$i]->product_type == 9 && !empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line)))
|
$reshook=0;
|
||||||
|
//if (is_object($hookmanager) && ( (isset($object->lines[$i]->product_type) && $object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
||||||
|
if (is_object($hookmanager)) // Old code is commented on preceding line. Reproduct this test in the pdf_xxx function if you don't want your hook to run
|
||||||
{
|
{
|
||||||
$special_code = $object->lines[$i]->special_code;
|
$special_code = $object->lines[$i]->special_code;
|
||||||
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
||||||
@ -1341,12 +1356,12 @@ function pdf_getlinevatrate($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
$reshook = $hookmanager->executeHooks('pdf_getlinevatrate',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('pdf_getlinevatrate',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
|
||||||
if (!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
if (!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
||||||
else return $reshook;
|
|
||||||
}
|
}
|
||||||
else
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
if (empty($hidedetails) || $hidedetails > 1) return vatrate($object->lines[$i]->tva_tx,1,$object->lines[$i]->info_bits,1);
|
if (empty($hidedetails) || $hidedetails > 1) return vatrate($object->lines[$i]->tva_tx,1,$object->lines[$i]->info_bits,1);
|
||||||
}
|
}
|
||||||
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1365,7 +1380,9 @@ function pdf_getlineupexcltax($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
$sign=1;
|
$sign=1;
|
||||||
if (isset($object->type) && $object->type == 2 && ! empty($conf->global->INVOICE_POSITIVE_CREDIT_NOTE)) $sign=-1;
|
if (isset($object->type) && $object->type == 2 && ! empty($conf->global->INVOICE_POSITIVE_CREDIT_NOTE)) $sign=-1;
|
||||||
|
|
||||||
if (is_object($hookmanager) && (($object->lines[$i]->product_type == 9 && !empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line)))
|
$reshook=0;
|
||||||
|
//if (is_object($hookmanager) && ( (isset($object->lines[$i]->product_type) && $object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
||||||
|
if (is_object($hookmanager)) // Old code is commented on preceding line. Reproduct this test in the pdf_xxx function if you don't want your hook to run
|
||||||
{
|
{
|
||||||
$special_code = $object->lines[$i]->special_code;
|
$special_code = $object->lines[$i]->special_code;
|
||||||
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
||||||
@ -1373,13 +1390,13 @@ function pdf_getlineupexcltax($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
$action='';
|
$action='';
|
||||||
$reshook = $hookmanager->executeHooks('pdf_getlineupexcltax',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('pdf_getlineupexcltax',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
|
||||||
if(!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
if (!empty($hookmanager->resPrint)) print $hookmanager->resPrint;
|
||||||
else return $reshook;
|
|
||||||
}
|
}
|
||||||
else
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
if (empty($hidedetails) || $hidedetails > 1) return price($sign * $object->lines[$i]->subprice, 0, $outputlangs);
|
if (empty($hidedetails) || $hidedetails > 1) return price($sign * $object->lines[$i]->subprice, 0, $outputlangs);
|
||||||
}
|
}
|
||||||
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1389,25 +1406,29 @@ function pdf_getlineupexcltax($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
* @param int $i Current line number
|
* @param int $i Current line number
|
||||||
* @param Translate $outputlangs Object langs for output
|
* @param Translate $outputlangs Object langs for output
|
||||||
* @param int $hidedetails Hide value (0 = no, 1 = yes, 2 = just special lines)
|
* @param int $hidedetails Hide value (0 = no, 1 = yes, 2 = just special lines)
|
||||||
* @return void
|
* @return string
|
||||||
*/
|
*/
|
||||||
function pdf_getlineupwithtax($object,$i,$outputlangs,$hidedetails=0)
|
function pdf_getlineupwithtax($object,$i,$outputlangs,$hidedetails=0)
|
||||||
{
|
{
|
||||||
global $hookmanager;
|
global $hookmanager;
|
||||||
|
|
||||||
if (is_object($hookmanager) && (($object->lines[$i]->product_type == 9 && !empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line)))
|
$reshook=0;
|
||||||
|
//if (is_object($hookmanager) && ( (isset($object->lines[$i]->product_type) && $object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
||||||
|
if (is_object($hookmanager)) // Old code is commented on preceding line. Reproduct this test in the pdf_xxx function if you don't want your hook to run
|
||||||
{
|
{
|
||||||
$special_code = $object->lines[$i]->special_code;
|
$special_code = $object->lines[$i]->special_code;
|
||||||
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
||||||
foreach($object->hooks as $modules)
|
$parameters = array('i'=>$i,'outputlangs'=>$outputlangs,'hidedetails'=>$hidedetails,'special_code'=>$special_code);
|
||||||
{
|
$action='';
|
||||||
if (method_exists($modules[$special_code],'pdf_getlineupwithtax')) return $modules[$special_code]->pdf_getlineupwithtax($object,$i,$outputlangs,$hidedetails);
|
$reshook = $hookmanager->executeHooks('pdf_getlineupwithtax',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
|
||||||
|
if (!empty($hookmanager->resPrint)) print $hookmanager->resPrint;
|
||||||
}
|
}
|
||||||
}
|
if (empty($reshook))
|
||||||
else
|
|
||||||
{
|
{
|
||||||
if (empty($hidedetails) || $hidedetails > 1) return price(($object->lines[$i]->subprice) + ($object->lines[$i]->subprice)*($object->lines[$i]->tva_tx)/100, 0, $outputlangs);
|
if (empty($hidedetails) || $hidedetails > 1) return price(($object->lines[$i]->subprice) + ($object->lines[$i]->subprice)*($object->lines[$i]->tva_tx)/100, 0, $outputlangs);
|
||||||
}
|
}
|
||||||
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1423,9 +1444,9 @@ function pdf_getlineqty($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
{
|
{
|
||||||
global $hookmanager;
|
global $hookmanager;
|
||||||
|
|
||||||
if ($object->lines[$i]->special_code != 3)
|
$reshook=0;
|
||||||
{
|
//if (is_object($hookmanager) && ( (isset($object->lines[$i]->product_type) && $object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
||||||
if (is_object($hookmanager) && (( $object->lines[$i]->product_type == 9 && !empty($object->lines[$i]->special_code) ) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
if (is_object($hookmanager)) // Old code is commented on preceding line. Reproduct this test in the pdf_xxx function if you don't want your hook to run
|
||||||
{
|
{
|
||||||
$special_code = $object->lines[$i]->special_code;
|
$special_code = $object->lines[$i]->special_code;
|
||||||
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
||||||
@ -1435,13 +1456,13 @@ function pdf_getlineqty($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
|
|
||||||
if(!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
if(!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
||||||
else return $reshook;
|
else return $reshook;
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
|
if ($object->lines[$i]->special_code == 3) return '';
|
||||||
if (empty($hidedetails) || $hidedetails > 1) return $object->lines[$i]->qty;
|
if (empty($hidedetails) || $hidedetails > 1) return $object->lines[$i]->qty;
|
||||||
}
|
}
|
||||||
}
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1457,9 +1478,9 @@ function pdf_getlineqty_asked($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
{
|
{
|
||||||
global $hookmanager;
|
global $hookmanager;
|
||||||
|
|
||||||
if ($object->lines[$i]->special_code != 3)
|
$reshook=0;
|
||||||
{
|
//if (is_object($hookmanager) && ( (isset($object->lines[$i]->product_type) && $object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
||||||
if (is_object($hookmanager) && (( $object->lines[$i]->product_type == 9 && !empty($object->lines[$i]->special_code) ) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
if (is_object($hookmanager)) // Old code is commented on preceding line. Reproduct this test in the pdf_xxx function if you don't want your hook to run
|
||||||
{
|
{
|
||||||
$special_code = $object->lines[$i]->special_code;
|
$special_code = $object->lines[$i]->special_code;
|
||||||
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
||||||
@ -1468,13 +1489,13 @@ function pdf_getlineqty_asked($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
$reshook = $hookmanager->executeHooks('pdf_getlineqty_asked',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('pdf_getlineqty_asked',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
|
||||||
if (!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
if (!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
||||||
else return $reshook;
|
|
||||||
}
|
}
|
||||||
else
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
|
if ($object->lines[$i]->special_code == 3) return '';
|
||||||
if (empty($hidedetails) || $hidedetails > 1) return $object->lines[$i]->qty_asked;
|
if (empty($hidedetails) || $hidedetails > 1) return $object->lines[$i]->qty_asked;
|
||||||
}
|
}
|
||||||
}
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1490,9 +1511,9 @@ function pdf_getlineqty_shipped($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
{
|
{
|
||||||
global $hookmanager;
|
global $hookmanager;
|
||||||
|
|
||||||
if ($object->lines[$i]->special_code != 3)
|
$reshook=0;
|
||||||
{
|
//if (is_object($hookmanager) && ( (isset($object->lines[$i]->product_type) && $object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
||||||
if (is_object($hookmanager) && (( $object->lines[$i]->product_type == 9 && !empty($object->lines[$i]->special_code) ) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
if (is_object($hookmanager)) // Old code is commented on preceding line. Reproduct this test in the pdf_xxx function if you don't want your hook to run
|
||||||
{
|
{
|
||||||
$special_code = $object->lines[$i]->special_code;
|
$special_code = $object->lines[$i]->special_code;
|
||||||
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
||||||
@ -1501,13 +1522,13 @@ function pdf_getlineqty_shipped($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
$reshook = $hookmanager->executeHooks('pdf_getlineqty_shipped',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('pdf_getlineqty_shipped',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
|
||||||
if(!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
if(!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
||||||
else return $reshook;
|
|
||||||
}
|
}
|
||||||
else
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
|
if ($object->lines[$i]->special_code == 3) return '';
|
||||||
if (empty($hidedetails) || $hidedetails > 1) return $object->lines[$i]->qty_shipped;
|
if (empty($hidedetails) || $hidedetails > 1) return $object->lines[$i]->qty_shipped;
|
||||||
}
|
}
|
||||||
}
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1517,15 +1538,15 @@ function pdf_getlineqty_shipped($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
* @param int $i Current line number
|
* @param int $i Current line number
|
||||||
* @param Translate $outputlangs Object langs for output
|
* @param Translate $outputlangs Object langs for output
|
||||||
* @param int $hidedetails Hide details (0=no, 1=yes, 2=just special lines)
|
* @param int $hidedetails Hide details (0=no, 1=yes, 2=just special lines)
|
||||||
* @return void
|
* @return string
|
||||||
*/
|
*/
|
||||||
function pdf_getlineqty_keeptoship($object,$i,$outputlangs,$hidedetails=0)
|
function pdf_getlineqty_keeptoship($object,$i,$outputlangs,$hidedetails=0)
|
||||||
{
|
{
|
||||||
global $hookmanager;
|
global $hookmanager;
|
||||||
|
|
||||||
if ($object->lines[$i]->special_code != 3)
|
$reshook=0;
|
||||||
{
|
//if (is_object($hookmanager) && ( (isset($object->lines[$i]->product_type) && $object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
||||||
if (is_object($hookmanager) && (( $object->lines[$i]->product_type == 9 && !empty($object->lines[$i]->special_code) ) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
if (is_object($hookmanager)) // Old code is commented on preceding line. Reproduct this test in the pdf_xxx function if you don't want your hook to run
|
||||||
{
|
{
|
||||||
$special_code = $object->lines[$i]->special_code;
|
$special_code = $object->lines[$i]->special_code;
|
||||||
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
||||||
@ -1534,13 +1555,13 @@ function pdf_getlineqty_keeptoship($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
$reshook = $hookmanager->executeHooks('pdf_getlineqty_keeptoship',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('pdf_getlineqty_keeptoship',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
|
||||||
if(!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
if(!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
||||||
else return $reshook;
|
|
||||||
}
|
}
|
||||||
else
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
|
if ($object->lines[$i]->special_code == 3) return '';
|
||||||
if (empty($hidedetails) || $hidedetails > 1) return ($object->lines[$i]->qty_asked - $object->lines[$i]->qty_shipped);
|
if (empty($hidedetails) || $hidedetails > 1) return ($object->lines[$i]->qty_asked - $object->lines[$i]->qty_shipped);
|
||||||
}
|
}
|
||||||
}
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1556,8 +1577,11 @@ function pdf_getlineqty_keeptoship($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
function pdf_getlineunit($object, $i, $outputlangs, $hidedetails = 0, $hookmanager = false)
|
function pdf_getlineunit($object, $i, $outputlangs, $hidedetails = 0, $hookmanager = false)
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
if ($object->lines[$i]->special_code != 3) {
|
|
||||||
if (is_object($hookmanager) && (($object->lines[$i]->product_type == 9 && !empty($object->lines[$i]->special_code)) || !empty($object->lines[$i]->fk_parent_line))) {
|
$reshook=0;
|
||||||
|
//if (is_object($hookmanager) && ( (isset($object->lines[$i]->product_type) && $object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
||||||
|
if (is_object($hookmanager)) // Old code is commented on preceding line. Reproduct this test in the pdf_xxx function if you don't want your hook to run
|
||||||
|
{
|
||||||
$special_code = $object->lines[$i]->special_code;
|
$special_code = $object->lines[$i]->special_code;
|
||||||
if (!empty($object->lines[$i]->fk_parent_line)) {
|
if (!empty($object->lines[$i]->fk_parent_line)) {
|
||||||
$special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
$special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
||||||
@ -1569,18 +1593,16 @@ function pdf_getlineunit($object, $i, $outputlangs, $hidedetails = 0, $hookmanag
|
|||||||
'special_code' => $special_code
|
'special_code' => $special_code
|
||||||
);
|
);
|
||||||
$action = '';
|
$action = '';
|
||||||
$reshook = $hookmanager->executeHooks('pdf_getlineunit', $parameters, $object,
|
$reshook = $hookmanager->executeHooks('pdf_getlineunit', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
||||||
$action); // Note that $action and $object may have been modified by some hooks
|
|
||||||
|
|
||||||
if(!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
if(!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
||||||
else return $reshook;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
if (empty($hidedetails) || $hidedetails > 1) {
|
|
||||||
return $langs->transnoentitiesnoconv($object->lines[$i]->getLabelOfUnit('short'));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if (empty($reshook))
|
||||||
|
{
|
||||||
|
if ($object->lines[$i]->special_code == 3) return '';
|
||||||
|
if (empty($hidedetails) || $hidedetails > 1) return $langs->transnoentitiesnoconv($object->lines[$i]->getLabelOfUnit('short'));
|
||||||
}
|
}
|
||||||
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1599,9 +1621,9 @@ function pdf_getlineremisepercent($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
|
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
||||||
|
|
||||||
if ($object->lines[$i]->special_code != 3)
|
$reshook=0;
|
||||||
{
|
//if (is_object($hookmanager) && ( (isset($object->lines[$i]->product_type) && $object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
||||||
if (is_object($hookmanager) && ( ($object->lines[$i]->product_type == 9 && !empty($object->lines[$i]->special_code) ) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
if (is_object($hookmanager)) // Old code is commented on preceding line. Reproduct this test in the pdf_xxx function if you don't want your hook to run
|
||||||
{
|
{
|
||||||
$special_code = $object->lines[$i]->special_code;
|
$special_code = $object->lines[$i]->special_code;
|
||||||
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
||||||
@ -1610,13 +1632,13 @@ function pdf_getlineremisepercent($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
$reshook = $hookmanager->executeHooks('pdf_getlineremisepercent',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('pdf_getlineremisepercent',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
|
||||||
if(!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
if(!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
||||||
else return $reshook;
|
|
||||||
}
|
}
|
||||||
else
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
|
if ($object->lines[$i]->special_code == 3) return '';
|
||||||
if (empty($hidedetails) || $hidedetails > 1) return dol_print_reduction($object->lines[$i]->remise_percent,$outputlangs);
|
if (empty($hidedetails) || $hidedetails > 1) return dol_print_reduction($object->lines[$i]->remise_percent,$outputlangs);
|
||||||
}
|
}
|
||||||
}
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1627,12 +1649,14 @@ function pdf_getlineremisepercent($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
* @param Translate $outputlangs Object langs for output
|
* @param Translate $outputlangs Object langs for output
|
||||||
* @param int $hidedetails Hide details (0=no, 1=yes, 2=just special lines)
|
* @param int $hidedetails Hide details (0=no, 1=yes, 2=just special lines)
|
||||||
* @param HookManager $hookmanager Hook manager instance
|
* @param HookManager $hookmanager Hook manager instance
|
||||||
* @return void
|
* @return string
|
||||||
*/
|
*/
|
||||||
function pdf_getlineprogress($object, $i, $outputlangs, $hidedetails = 0, $hookmanager = null)
|
function pdf_getlineprogress($object, $i, $outputlangs, $hidedetails = 0, $hookmanager = null)
|
||||||
{
|
{
|
||||||
if ($object->lines[$i]->special_code != 3) {
|
$reshook=0;
|
||||||
if (is_object($hookmanager) && (($object->lines[$i]->product_type == 9 && !empty($object->lines[$i]->special_code)) || !empty($object->lines[$i]->fk_parent_line))) {
|
//if (is_object($hookmanager) && ( (isset($object->lines[$i]->product_type) && $object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
||||||
|
if (is_object($hookmanager)) // Old code is commented on preceding line. Reproduct this test in the pdf_xxx function if you don't want your hook to run
|
||||||
|
{
|
||||||
$special_code = $object->lines[$i]->special_code;
|
$special_code = $object->lines[$i]->special_code;
|
||||||
if (!empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
if (!empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
||||||
$parameters = array('i' => $i, 'outputlangs' => $outputlangs, 'hidedetails' => $hidedetails, 'special_code' => $special_code);
|
$parameters = array('i' => $i, 'outputlangs' => $outputlangs, 'hidedetails' => $hidedetails, 'special_code' => $special_code);
|
||||||
@ -1640,11 +1664,13 @@ function pdf_getlineprogress($object, $i, $outputlangs, $hidedetails = 0, $hookm
|
|||||||
$reshook = $hookmanager->executeHooks('pdf_getlineprogress', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('pdf_getlineprogress', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
|
||||||
if(!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
if(!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
||||||
else return $reshook;
|
}
|
||||||
} else {
|
if (empty($reshook))
|
||||||
|
{
|
||||||
|
if ($object->lines[$i]->special_code == 3) return '';
|
||||||
if (empty($hidedetails) || $hidedetails > 1) return $object->lines[$i]->situation_percent . '%';
|
if (empty($hidedetails) || $hidedetails > 1) return $object->lines[$i]->situation_percent . '%';
|
||||||
}
|
}
|
||||||
}
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1663,27 +1689,25 @@ function pdf_getlinetotalexcltax($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
$sign=1;
|
$sign=1;
|
||||||
if (isset($object->type) && $object->type == 2 && ! empty($conf->global->INVOICE_POSITIVE_CREDIT_NOTE)) $sign=-1;
|
if (isset($object->type) && $object->type == 2 && ! empty($conf->global->INVOICE_POSITIVE_CREDIT_NOTE)) $sign=-1;
|
||||||
|
|
||||||
if ($object->lines[$i]->special_code == 3)
|
$reshook=0;
|
||||||
{
|
//if (is_object($hookmanager) && ( (isset($object->lines[$i]->product_type) && $object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
||||||
return $outputlangs->transnoentities("Option");
|
if (is_object($hookmanager)) // Old code is commented on preceding line. Reproduct this test in the pdf_xxx function if you don't want your hook to run
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (is_object($hookmanager) && (($object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line)))
|
|
||||||
{
|
{
|
||||||
$special_code = $object->lines[$i]->special_code;
|
$special_code = $object->lines[$i]->special_code;
|
||||||
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
||||||
$parameters = array('i'=>$i,'outputlangs'=>$outputlangs,'hidedetails'=>$hidedetails,'special_code'=>$special_code);
|
$parameters = array('i'=>$i,'outputlangs'=>$outputlangs,'hidedetails'=>$hidedetails,'special_code'=>$special_code, 'sign'=>$sign);
|
||||||
$action='';
|
$action='';
|
||||||
$reshook = $hookmanager->executeHooks('pdf_getlinetotalexcltax',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('pdf_getlinetotalexcltax',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
|
||||||
if(!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
if(!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
||||||
else return $reshook;
|
|
||||||
}
|
}
|
||||||
else
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
if (empty($hidedetails) || $hidedetails > 1) return price($sign * $object->lines[$i]->total_ht, 0, $outputlangs);
|
if ($object->lines[$i]->special_code == 3)
|
||||||
|
{
|
||||||
|
return $outputlangs->transnoentities("Option");
|
||||||
}
|
}
|
||||||
|
if (empty($hidedetails) || $hidedetails > 1) return price($sign * $object->lines[$i]->total_ht, 0, $outputlangs);
|
||||||
}
|
}
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
@ -1701,13 +1725,9 @@ function pdf_getlinetotalwithtax($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
{
|
{
|
||||||
global $hookmanager;
|
global $hookmanager;
|
||||||
|
|
||||||
if ($object->lines[$i]->special_code == 3)
|
$reshook=0;
|
||||||
{
|
//if (is_object($hookmanager) && ( (isset($object->lines[$i]->product_type) && $object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line) ) )
|
||||||
return $outputlangs->transnoentities("Option");
|
if (is_object($hookmanager)) // Old code is commented on preceding line. Reproduct this test in the pdf_xxx function if you don't want your hook to run
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (is_object($hookmanager) && (($object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code)) || ! empty($object->lines[$i]->fk_parent_line)))
|
|
||||||
{
|
{
|
||||||
$special_code = $object->lines[$i]->special_code;
|
$special_code = $object->lines[$i]->special_code;
|
||||||
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
|
||||||
@ -1716,12 +1736,14 @@ function pdf_getlinetotalwithtax($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
$reshook = $hookmanager->executeHooks('pdf_getlinetotalwithtax',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('pdf_getlinetotalwithtax',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
|
||||||
if(!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
if(!empty($hookmanager->resPrint)) return $hookmanager->resPrint;
|
||||||
else return $reshook;
|
|
||||||
}
|
}
|
||||||
else
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
if (empty($hidedetails) || $hidedetails > 1) return price(($object->lines[$i]->total_ht) + ($object->lines[$i]->total_ht)*($object->lines[$i]->tva_tx)/100, 0, $outputlangs);
|
if ($object->lines[$i]->special_code == 3)
|
||||||
|
{
|
||||||
|
return $outputlangs->transnoentities("Option");
|
||||||
}
|
}
|
||||||
|
if (empty($hidedetails) || $hidedetails > 1) return price(($object->lines[$i]->total_ht) + ($object->lines[$i]->total_ht)*($object->lines[$i]->tva_tx)/100, 0, $outputlangs);
|
||||||
}
|
}
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -91,7 +91,7 @@ function check_user_password_dolibarr($usertotest,$passwordtotest,$entitytotest=
|
|||||||
if (! $passok)
|
if (! $passok)
|
||||||
{
|
{
|
||||||
if ((! $passcrypted || $passtyped)
|
if ((! $passcrypted || $passtyped)
|
||||||
&& ($passtyped == $passclear))
|
&& ($passclear && ($passtyped == $passclear)))
|
||||||
{
|
{
|
||||||
$passok=true;
|
$passok=true;
|
||||||
dol_syslog("functions_dolibarr::check_user_password_dolibarr Authentification ok - found pass in database");
|
dol_syslog("functions_dolibarr::check_user_password_dolibarr Authentification ok - found pass in database");
|
||||||
|
|||||||
@ -71,9 +71,9 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
|
|||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 502__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?action=create', 'List', 1, 'companies', '$user->rights->societe->lire', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 502__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?action=create', 'List', 1, 'companies', '$user->rights->societe->lire', '', 2, 0, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->fournisseur->enabled', __HANDLER__, 'left', 503__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?type=f&leftmenu=suppliers', 'ListSuppliersShort', 1, 'suppliers', '$user->rights->societe->lire && $user->rights->fournisseur->lire', '', 2, 5, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->fournisseur->enabled', __HANDLER__, 'left', 503__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?type=f&leftmenu=suppliers', 'ListSuppliersShort', 1, 'suppliers', '$user->rights->societe->lire && $user->rights->fournisseur->lire', '', 2, 5, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->fournisseur->enabled', __HANDLER__, 'left', 504__+MAX_llx_menu__, 'companies', '', 503__+MAX_llx_menu__, '/societe/soc.php?leftmenu=supplier&action=create&type=f', 'NewSupplier', 2, 'suppliers', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->fournisseur->enabled', __HANDLER__, 'left', 504__+MAX_llx_menu__, 'companies', '', 503__+MAX_llx_menu__, '/societe/soc.php?leftmenu=supplier&action=create&type=f', 'NewSupplier', 2, 'suppliers', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 506__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/comm/prospect/list.php?leftmenu=prospects', 'ListProspectsShort', 1, 'companies', '$user->rights->societe->lire', '', 2, 3, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 506__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?type=p&leftmenu=prospects', 'ListProspectsShort', 1, 'companies', '$user->rights->societe->lire', '', 2, 3, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 507__+MAX_llx_menu__, 'companies', '', 506__+MAX_llx_menu__, '/societe/soc.php?leftmenu=prospects&action=create&type=p', 'MenuNewProspect', 2, 'companies', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 507__+MAX_llx_menu__, 'companies', '', 506__+MAX_llx_menu__, '/societe/soc.php?leftmenu=prospects&action=create&type=p', 'MenuNewProspect', 2, 'companies', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 509__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/comm/list.php?leftmenu=customers', 'ListCustomersShort', 1, 'companies', '$user->rights->societe->lire', '', 2, 4, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 509__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?type=c&leftmenu=customers', 'ListCustomersShort', 1, 'companies', '$user->rights->societe->lire', '', 2, 4, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 510__+MAX_llx_menu__, 'companies', '', 509__+MAX_llx_menu__, '/societe/soc.php?leftmenu=customers&action=create&type=c', 'MenuNewCustomer', 2, 'companies', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 510__+MAX_llx_menu__, 'companies', '', 509__+MAX_llx_menu__, '/societe/soc.php?leftmenu=customers&action=create&type=c', 'MenuNewCustomer', 2, 'companies', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
|
||||||
-- Third parties - Contacts
|
-- Third parties - Contacts
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 600__+MAX_llx_menu__, 'companies', 'contacts', 2__+MAX_llx_menu__, '/contact/list.php?leftmenu=contacts', 'ContactsAddresses', 0, 'companies', '$user->rights->societe->lire', '', 2, 1, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 600__+MAX_llx_menu__, 'companies', 'contacts', 2__+MAX_llx_menu__, '/contact/list.php?leftmenu=contacts', 'ContactsAddresses', 0, 'companies', '$user->rights->societe->lire', '', 2, 1, __ENTITY__);
|
||||||
|
|||||||
@ -590,13 +590,13 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
|||||||
if (! empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS))
|
if (! empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS))
|
||||||
{
|
{
|
||||||
$langs->load("commercial");
|
$langs->load("commercial");
|
||||||
$newmenu->add("/comm/prospect/list.php?leftmenu=prospects", $langs->trans("ListProspectsShort"), 1, $user->rights->societe->lire, '', $mainmenu, 'prospects');
|
$newmenu->add("/societe/list.php?type=p&leftmenu=prospects", $langs->trans("ListProspectsShort"), 1, $user->rights->societe->lire, '', $mainmenu, 'prospects');
|
||||||
/* no more required, there is a filter that can do more
|
/* no more required, there is a filter that can do more
|
||||||
if (empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/comm/prospect/list.php?sortfield=s.datec&sortorder=desc&begin=&search_stcomm=-1", $langs->trans("LastProspectDoNotContact"), 2, $user->rights->societe->lire);
|
if (empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/societe/list.php?type=p&sortfield=s.datec&sortorder=desc&begin=&search_stcomm=-1", $langs->trans("LastProspectDoNotContact"), 2, $user->rights->societe->lire);
|
||||||
if (empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/comm/prospect/list.php?sortfield=s.datec&sortorder=desc&begin=&search_stcomm=0", $langs->trans("LastProspectNeverContacted"), 2, $user->rights->societe->lire);
|
if (empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/societe/list.php?type=p&sortfield=s.datec&sortorder=desc&begin=&search_stcomm=0", $langs->trans("LastProspectNeverContacted"), 2, $user->rights->societe->lire);
|
||||||
if (empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/comm/prospect/list.php?sortfield=s.datec&sortorder=desc&begin=&search_stcomm=1", $langs->trans("LastProspectToContact"), 2, $user->rights->societe->lire);
|
if (empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/societe/list.php?type=p&sortfield=s.datec&sortorder=desc&begin=&search_stcomm=1", $langs->trans("LastProspectToContact"), 2, $user->rights->societe->lire);
|
||||||
if (empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/comm/prospect/list.php?sortfield=s.datec&sortorder=desc&begin=&search_stcomm=2", $langs->trans("LastProspectContactInProcess"), 2, $user->rights->societe->lire);
|
if (empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/societe/list.php?type=p&sortfield=s.datec&sortorder=desc&begin=&search_stcomm=2", $langs->trans("LastProspectContactInProcess"), 2, $user->rights->societe->lire);
|
||||||
if (empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/comm/prospect/list.php?sortfield=s.datec&sortorder=desc&begin=&search_stcomm=3", $langs->trans("LastProspectContactDone"), 2, $user->rights->societe->lire);
|
if (empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/societe/list.php?type=p&sortfield=s.datec&sortorder=desc&begin=&search_stcomm=3", $langs->trans("LastProspectContactDone"), 2, $user->rights->societe->lire);
|
||||||
*/
|
*/
|
||||||
$newmenu->add("/societe/soc.php?leftmenu=prospects&action=create&type=p", $langs->trans("MenuNewProspect"), 2, $user->rights->societe->creer);
|
$newmenu->add("/societe/soc.php?leftmenu=prospects&action=create&type=p", $langs->trans("MenuNewProspect"), 2, $user->rights->societe->creer);
|
||||||
//$newmenu->add("/contact/list.php?leftmenu=customers&type=p", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire);
|
//$newmenu->add("/contact/list.php?leftmenu=customers&type=p", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire);
|
||||||
@ -606,7 +606,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
|||||||
if (! empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))
|
if (! empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))
|
||||||
{
|
{
|
||||||
$langs->load("commercial");
|
$langs->load("commercial");
|
||||||
$newmenu->add("/comm/list.php?leftmenu=customers", $langs->trans("ListCustomersShort"), 1, $user->rights->societe->lire, '', $mainmenu, 'customers');
|
$newmenu->add("/societe/list.php?type=c&leftmenu=customers", $langs->trans("ListCustomersShort"), 1, $user->rights->societe->lire, '', $mainmenu, 'customers');
|
||||||
|
|
||||||
$newmenu->add("/societe/soc.php?leftmenu=customers&action=create&type=c", $langs->trans("MenuNewCustomer"), 2, $user->rights->societe->creer);
|
$newmenu->add("/societe/soc.php?leftmenu=customers&action=create&type=c", $langs->trans("MenuNewCustomer"), 2, $user->rights->societe->creer);
|
||||||
//$newmenu->add("/contact/list.php?leftmenu=customers&type=c", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire);
|
//$newmenu->add("/contact/list.php?leftmenu=customers&type=c", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire);
|
||||||
|
|||||||
250
htdocs/core/modules/modHRM.class.php
Normal file
250
htdocs/core/modules/modHRM.class.php
Normal file
@ -0,0 +1,250 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/core/modules/modHRM.class.php
|
||||||
|
* \ingroup HRM
|
||||||
|
* \brief Description and activation file for module HRM
|
||||||
|
*/
|
||||||
|
include_once (DOL_DOCUMENT_ROOT . "/core/modules/DolibarrModules.class.php");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class to describe and activate the HRM module
|
||||||
|
*/
|
||||||
|
class modHRM extends DolibarrModules
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
* Define names, constants, directories, boxes, permissions
|
||||||
|
*
|
||||||
|
* @param DoliDB $db
|
||||||
|
*/
|
||||||
|
public function __construct($db)
|
||||||
|
{
|
||||||
|
global $langs, $conf;
|
||||||
|
|
||||||
|
$this->db = $db;
|
||||||
|
|
||||||
|
$this->numero = 4000;
|
||||||
|
$this->rights_class = 'hrm';
|
||||||
|
|
||||||
|
$this->family = "hr";
|
||||||
|
// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
|
||||||
|
$this->name = preg_replace ( '/^mod/i', '', get_class ( $this ) );
|
||||||
|
$this->description = "Gestion des ressources humaines";
|
||||||
|
|
||||||
|
// Possible values for version are: 'development', 'experimental', 'dolibarr' or version
|
||||||
|
$this->version = 'development';
|
||||||
|
|
||||||
|
$this->const_name = 'MAIN_MODULE_' . strtoupper ( $this->name );
|
||||||
|
$this->special = 0;
|
||||||
|
// $this->picto = '';
|
||||||
|
|
||||||
|
// define triggers
|
||||||
|
$this->module_parts = array();
|
||||||
|
|
||||||
|
// Data directories to create when module is enabled
|
||||||
|
$this->dirs = array();
|
||||||
|
|
||||||
|
// Config pages
|
||||||
|
$this->config_page_url = array('admin_hrm.php@hrm');
|
||||||
|
|
||||||
|
// Dependencies
|
||||||
|
$this->depends = array();
|
||||||
|
$this->requiredby = array(/*"
|
||||||
|
modSalaries,
|
||||||
|
modExpenseReport,
|
||||||
|
modHoliday
|
||||||
|
"*/);
|
||||||
|
$this->conflictwith = array();
|
||||||
|
$this->phpmin = array (
|
||||||
|
5,
|
||||||
|
3
|
||||||
|
); // Minimum version of PHP required by module
|
||||||
|
$this->need_dolibarr_version = array (
|
||||||
|
3,
|
||||||
|
7
|
||||||
|
); // Minimum version of Dolibarr required by module
|
||||||
|
$this->langfiles = array (
|
||||||
|
"hrm"
|
||||||
|
);
|
||||||
|
|
||||||
|
// Dictionnaries
|
||||||
|
$this->dictionnaries=array(
|
||||||
|
'langs'=>'hrm',
|
||||||
|
'tabname'=>array(
|
||||||
|
MAIN_DB_PREFIX."c_hrm_department",
|
||||||
|
MAIN_DB_PREFIX."c_hrm_function"
|
||||||
|
),
|
||||||
|
'tablib'=>array(
|
||||||
|
"DepartmentDict",
|
||||||
|
"FunctionDict"
|
||||||
|
),
|
||||||
|
'tabsql'=>array(
|
||||||
|
'SELECT rowid, pos, code, label, active FROM '.MAIN_DB_PREFIX.'c_hrm_department',
|
||||||
|
'SELECT rowid, pos, code, label, c_level, active FROM '.MAIN_DB_PREFIX.'c_hrm_department'
|
||||||
|
),
|
||||||
|
'tabsqlsort'=>array(
|
||||||
|
'rowid ASC',
|
||||||
|
'rowid ASC'
|
||||||
|
),
|
||||||
|
'tabfield'=>array(
|
||||||
|
"code,label",
|
||||||
|
"code,label"
|
||||||
|
),
|
||||||
|
'tabfieldvalue'=>array(
|
||||||
|
"code,label",
|
||||||
|
"code,label"
|
||||||
|
),
|
||||||
|
'tabfieldinsert'=>array(
|
||||||
|
"code,label",
|
||||||
|
"code,label"
|
||||||
|
),
|
||||||
|
'tabrowid'=>array(
|
||||||
|
"rowid",
|
||||||
|
"rowid"
|
||||||
|
),
|
||||||
|
'tabcond'=>array(
|
||||||
|
'$conf->hrm->enabled',
|
||||||
|
'$conf->hrm->enabled'
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Constantes
|
||||||
|
$this->const = array ();
|
||||||
|
$r = 0;
|
||||||
|
|
||||||
|
// Boxes
|
||||||
|
$this->boxes = array ();
|
||||||
|
|
||||||
|
// Permissions
|
||||||
|
$this->rights = array(); // Permission array used by this module
|
||||||
|
$r = 0;
|
||||||
|
|
||||||
|
$this->rights[$r][0] = 4001;
|
||||||
|
$this->rights[$r][1] = 'See employees';
|
||||||
|
$this->rights[$r][3] = 1;
|
||||||
|
$this->rights[$r][4] = 'employee';
|
||||||
|
$this->rights[$r][5] = 'read';
|
||||||
|
$r ++;
|
||||||
|
|
||||||
|
$this->rights[$r][0] = 4002;
|
||||||
|
$this->rights[$r][1] = 'Create employees';
|
||||||
|
$this->rights[$r][3] = 1;
|
||||||
|
$this->rights[$r][4] = 'employee';
|
||||||
|
$this->rights[$r][5] = 'write';
|
||||||
|
$r ++;
|
||||||
|
|
||||||
|
$this->rights[$r][0] = 4003;
|
||||||
|
$this->rights[$r][1] = 'Delete employees';
|
||||||
|
$this->rights[$r][3] = 1;
|
||||||
|
$this->rights[$r][4] = 'employee';
|
||||||
|
$this->rights[$r][5] = 'delete';
|
||||||
|
$r ++;
|
||||||
|
|
||||||
|
$this->rights[$r][0] = 4004;
|
||||||
|
$this->rights[$r][1] = 'Export employees';
|
||||||
|
$this->rights[$r][3] = 0;
|
||||||
|
$this->rights[$r][4] = 'employee';
|
||||||
|
$this->rights[$r][5] = 'export';
|
||||||
|
$r ++;
|
||||||
|
|
||||||
|
// Main menu entries
|
||||||
|
$this->menus = array (); // List of menus to add
|
||||||
|
$r = 0;
|
||||||
|
|
||||||
|
$this->menu[$r] = array (
|
||||||
|
'fk_menu' => 'fk_mainmenu=hrm',
|
||||||
|
'type' => 'left',
|
||||||
|
'titre' => 'Employees',
|
||||||
|
'leftmenu' => 'employee',
|
||||||
|
'mainmenu' => 'hrm',
|
||||||
|
'url' => '/hrm/employee/index.php',
|
||||||
|
'langs' => 'hrm',
|
||||||
|
'position' => 100,
|
||||||
|
'enabled' => '$user->rights->hrm->employee->read',
|
||||||
|
'perms' => '$user->rights->hrm->employee->read',
|
||||||
|
'target' => '',
|
||||||
|
'user' => 0
|
||||||
|
);
|
||||||
|
$r ++;
|
||||||
|
|
||||||
|
$this->menu[$r] = array(
|
||||||
|
'fk_menu' => 'fk_mainmenu=hrm,fk_leftmenu=employee',
|
||||||
|
'type' => 'left',
|
||||||
|
'titre' => 'NewEmployee',
|
||||||
|
'mainmenu' => 'hrm',
|
||||||
|
'url' => '/hrm/employee/card.php?action=create',
|
||||||
|
'langs' => 'hrm',
|
||||||
|
'position' => 101,
|
||||||
|
'enabled' => '$user->rights->hrm->employee->write',
|
||||||
|
'perms' => '$user->rights->hrm->employee->write',
|
||||||
|
'target' => '',
|
||||||
|
'user' => 0
|
||||||
|
);
|
||||||
|
$r ++;
|
||||||
|
|
||||||
|
$this->menu[$r] = array(
|
||||||
|
'fk_menu' => 'fk_mainmenu=hrm,fk_leftmenu=employee',
|
||||||
|
'type' => 'left',
|
||||||
|
'titre' => 'List',
|
||||||
|
'mainmenu' => 'hrm',
|
||||||
|
'url' => '/hrm/employee/list.php',
|
||||||
|
'langs' => 'hrm',
|
||||||
|
'position' => 102,
|
||||||
|
'enabled' => '$user->rights->hrm->employee->read',
|
||||||
|
'perms' => '$user->rights->hrm->employee->read',
|
||||||
|
'target' => '',
|
||||||
|
'user' => 0
|
||||||
|
);
|
||||||
|
$r ++;
|
||||||
|
|
||||||
|
$this->menu[$r] = array(
|
||||||
|
'fk_menu' => 'fk_mainmenu=hrm,fk_leftmenu=employee',
|
||||||
|
'type' => 'left',
|
||||||
|
'titre' => 'Statistics',
|
||||||
|
'mainmenu' => 'hrm',
|
||||||
|
'url' => '/hrm/employee/stats.php',
|
||||||
|
'langs' => 'hrm',
|
||||||
|
'position' => 103,
|
||||||
|
'enabled' => '$user->rights->hrm->employee->read',
|
||||||
|
'perms' => '$user->rights->hrm->employee->read',
|
||||||
|
'target' => '',
|
||||||
|
'user' => 0
|
||||||
|
);
|
||||||
|
$r ++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function called when module is enabled.
|
||||||
|
* The init function add constants, boxes, permissions and menus
|
||||||
|
* (defined in constructor) into Dolibarr database.
|
||||||
|
* It also creates data directories
|
||||||
|
*
|
||||||
|
* @param string $options Enabling module ('', 'noboxes')
|
||||||
|
* @return int if OK, 0 if KO
|
||||||
|
*/
|
||||||
|
function init($options='')
|
||||||
|
{
|
||||||
|
// Permissions
|
||||||
|
$this->remove($options);
|
||||||
|
|
||||||
|
$sql = array();
|
||||||
|
|
||||||
|
return $this->_init($sql,$options);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -521,6 +521,7 @@ jQuery(document).ready(function() {
|
|||||||
if (this.id != 'pmpprice')
|
if (this.id != 'pmpprice')
|
||||||
{
|
{
|
||||||
i++;
|
i++;
|
||||||
|
this.price = parseFloat(this.price);//fix this.price >0
|
||||||
|
|
||||||
// If margin is calculated on best supplier price, we set it by defaut (but only if value is not 0)
|
// If margin is calculated on best supplier price, we set it by defaut (but only if value is not 0)
|
||||||
var defaultbuyprice = '<?php echo ((isset($conf->global->MARGIN_TYPE) && $conf->global->MARGIN_TYPE == '1')?'bestsupplierprice':''); ?>';
|
var defaultbuyprice = '<?php echo ((isset($conf->global->MARGIN_TYPE) && $conf->global->MARGIN_TYPE == '1')?'bestsupplierprice':''); ?>';
|
||||||
|
|||||||
@ -520,7 +520,7 @@ if ($action == 'create')
|
|||||||
|
|
||||||
dol_fiche_head('');
|
dol_fiche_head('');
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border centpercent">';
|
||||||
|
|
||||||
// Ref
|
// Ref
|
||||||
print '<tr><td width="30%" class="fieldrequired">';
|
print '<tr><td width="30%" class="fieldrequired">';
|
||||||
@ -662,6 +662,8 @@ if ($action == 'create')
|
|||||||
|
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
|
|
||||||
|
|
||||||
@ -1533,7 +1535,7 @@ else if ($id || $ref)
|
|||||||
*/
|
*/
|
||||||
if ($action != 'presend')
|
if ($action != 'presend')
|
||||||
{
|
{
|
||||||
print '<table width="100%"><tr><td width="50%" valign="top">';
|
print '<div class="fichecenter"><div class="fichehalfleft">';
|
||||||
|
|
||||||
$objectref = dol_sanitizeFileName($object->ref);
|
$objectref = dol_sanitizeFileName($object->ref);
|
||||||
$filedir = $conf->expedition->dir_output . "/sending/" .$objectref;
|
$filedir = $conf->expedition->dir_output . "/sending/" .$objectref;
|
||||||
@ -1552,14 +1554,14 @@ else if ($id || $ref)
|
|||||||
//$linktoelem = $form->showLinkToObjectBlock($object);
|
//$linktoelem = $form->showLinkToObjectBlock($object);
|
||||||
//if ($linktoelem) print '<br>'.$linktoelem;
|
//if ($linktoelem) print '<br>'.$linktoelem;
|
||||||
|
|
||||||
print '</td><td valign="top" width="50%">';
|
print '</div><div class="fichehalfright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
// List of actions on element
|
// List of actions on element
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php';
|
||||||
$formactions=new FormActions($db);
|
$formactions=new FormActions($db);
|
||||||
$somethingshown=$formactions->showactions($object,'shipping',$socid);
|
$somethingshown=$formactions->showactions($object,'shipping',$socid);
|
||||||
|
|
||||||
print '</td></tr></table>';
|
print '</div></div></div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -1534,7 +1534,7 @@ class ExpenseReport extends CommonObject
|
|||||||
$response->warning_delay=$conf->expensereport->payment->warning_delay/60/60/24;
|
$response->warning_delay=$conf->expensereport->payment->warning_delay/60/60/24;
|
||||||
$response->label=$langs->trans("ExpenseReportsToPay");
|
$response->label=$langs->trans("ExpenseReportsToPay");
|
||||||
$response->url=DOL_URL_ROOT.'/expensereport/list.php?mainmenu=hrm&statut=5';
|
$response->url=DOL_URL_ROOT.'/expensereport/list.php?mainmenu=hrm&statut=5';
|
||||||
$response->img=img_object($langs->trans("ExpenseReports"),"user");
|
$response->img=img_object($langs->trans("ExpenseReports"),"trip");
|
||||||
|
|
||||||
while ($obj=$this->db->fetch_object($resql))
|
while ($obj=$this->db->fetch_object($resql))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1575,6 +1575,7 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
$result=$this->call_trigger('ORDER_SUPPLIER_DELETE',$user);
|
$result=$this->call_trigger('ORDER_SUPPLIER_DELETE',$user);
|
||||||
if ($result < 0)
|
if ($result < 0)
|
||||||
{
|
{
|
||||||
|
$this->errors[]='ErrorWhenRunningTrigger';
|
||||||
dol_syslog(get_class($this)."::delete ".$this->error, LOG_ERR);
|
dol_syslog(get_class($this)."::delete ".$this->error, LOG_ERR);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -1587,6 +1588,8 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
dol_syslog(get_class($this)."::delete", LOG_DEBUG);
|
dol_syslog(get_class($this)."::delete", LOG_DEBUG);
|
||||||
if (! $this->db->query($sql) )
|
if (! $this->db->query($sql) )
|
||||||
{
|
{
|
||||||
|
$this->error=$this->db->lasterror();
|
||||||
|
$this->errors[]=$this->db->lasterror();
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1597,12 +1600,14 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
if ($this->db->affected_rows($resql) < 1)
|
if ($this->db->affected_rows($resql) < 1)
|
||||||
{
|
{
|
||||||
$this->error=$this->db->lasterror();
|
$this->error=$this->db->lasterror();
|
||||||
|
$this->errors[]=$this->db->lasterror();
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$this->error=$this->db->lasterror();
|
$this->error=$this->db->lasterror();
|
||||||
|
$this->errors[]=$this->db->lasterror();
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1612,6 +1617,8 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
$result=$this->deleteExtraFields();
|
$result=$this->deleteExtraFields();
|
||||||
if ($result < 0)
|
if ($result < 0)
|
||||||
{
|
{
|
||||||
|
$this->error='FailToDeleteExtraFields';
|
||||||
|
$this->errors[]='FailToDeleteExtraFields';
|
||||||
$error++;
|
$error++;
|
||||||
dol_syslog(get_class($this)."::delete error -4 ".$this->error, LOG_ERR);
|
dol_syslog(get_class($this)."::delete error -4 ".$this->error, LOG_ERR);
|
||||||
}
|
}
|
||||||
@ -1619,7 +1626,11 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
|
|
||||||
// Delete linked object
|
// Delete linked object
|
||||||
$res = $this->deleteObjectLinked();
|
$res = $this->deleteObjectLinked();
|
||||||
if ($res < 0) $error++;
|
if ($res < 0) {
|
||||||
|
$this->error='FailToDeleteObjectLinked';
|
||||||
|
$this->errors[]='FailToDeleteObjectLinked';
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
@ -1634,6 +1645,7 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
if (! dol_delete_file($file,0,0,0,$this)) // For triggers
|
if (! dol_delete_file($file,0,0,0,$this)) // For triggers
|
||||||
{
|
{
|
||||||
$this->error='ErrorFailToDeleteFile';
|
$this->error='ErrorFailToDeleteFile';
|
||||||
|
$this->errors[]='ErrorFailToDeleteFile';
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1643,6 +1655,7 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
if (! $res)
|
if (! $res)
|
||||||
{
|
{
|
||||||
$this->error='ErrorFailToDeleteDir';
|
$this->error='ErrorFailToDeleteDir';
|
||||||
|
$this->errors[]='ErrorFailToDeleteDir';
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -94,9 +94,9 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
|
|||||||
$search_company="";
|
$search_company="";
|
||||||
$search_amount_no_tax="";
|
$search_amount_no_tax="";
|
||||||
$search_amount_all_tax="";
|
$search_amount_all_tax="";
|
||||||
|
$search_status="";
|
||||||
$year="";
|
$year="";
|
||||||
$month="";
|
$month="";
|
||||||
$filter="";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// List of fields to search into when doing a "search in all"
|
// List of fields to search into when doing a "search in all"
|
||||||
@ -162,15 +162,6 @@ if ($socid)
|
|||||||
{
|
{
|
||||||
$sql .= " AND s.rowid = ".$socid;
|
$sql .= " AND s.rowid = ".$socid;
|
||||||
}
|
}
|
||||||
if ($filter && $filter != -1) // GETPOST('filtre') may be a string
|
|
||||||
{
|
|
||||||
$filtrearr = explode(",", $filter);
|
|
||||||
foreach ($filtrearr as $fil)
|
|
||||||
{
|
|
||||||
$filt = explode(":", $fil);
|
|
||||||
$sql .= " AND " . $filt[0] . " = " . $filt[1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($search_all)
|
if ($search_all)
|
||||||
{
|
{
|
||||||
$sql.= natural_search(array_keys($fieldstosearchall), $search_all);
|
$sql.= natural_search(array_keys($fieldstosearchall), $search_all);
|
||||||
@ -232,7 +223,7 @@ if ($search_amount_all_tax != '')
|
|||||||
|
|
||||||
if ($search_status != '')
|
if ($search_status != '')
|
||||||
{
|
{
|
||||||
$sql.= " AND fac.fk_statut = '".$db->escape($search_status)."'";
|
$sql.= " AND fac.fk_statut = ".$search_status;
|
||||||
}
|
}
|
||||||
|
|
||||||
$nbtotalofrecords = 0;
|
$nbtotalofrecords = 0;
|
||||||
@ -268,6 +259,7 @@ if ($resql)
|
|||||||
if ($search_amount_all_tax) $param.='&search_amount_all_tax='.urlencode($search_amount_all_tax);
|
if ($search_amount_all_tax) $param.='&search_amount_all_tax='.urlencode($search_amount_all_tax);
|
||||||
if ($filter && $filter != -1) $param.='&filtre='.urlencode($filter);
|
if ($filter && $filter != -1) $param.='&filtre='.urlencode($filter);
|
||||||
if ($optioncss != '') $param.='&optioncss='.$optioncss;
|
if ($optioncss != '') $param.='&optioncss='.$optioncss;
|
||||||
|
if ($search_status >= 0) $param.="&search_status=".$search_status;
|
||||||
|
|
||||||
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"].'">';
|
||||||
@ -337,8 +329,8 @@ if ($resql)
|
|||||||
print '</td><td class="liste_titre" align="right">';
|
print '</td><td class="liste_titre" align="right">';
|
||||||
print '<input class="flat" type="text" size="6" name="search_amount_all_tax" value="'.$search_amount_all_tax.'">';
|
print '<input class="flat" type="text" size="6" name="search_amount_all_tax" value="'.$search_amount_all_tax.'">';
|
||||||
print '</td><td class="liste_titre" align="right">';
|
print '</td><td class="liste_titre" align="right">';
|
||||||
$liststatus=array('fac.fk_statut:0'=>$langs->trans("Draft"),'fac.fk_statut:1,paye:0'=>$langs->trans("Unpaid"), 'paye:1'=>$langs->trans("Paid"));
|
$liststatus=array('0'=>$langs->trans("Draft"),'1'=>$langs->trans("Unpaid"), '2'=>$langs->trans("Paid"));
|
||||||
print $form->selectarray('filtre', $liststatus, $filter, 1);
|
print $form->selectarray('filtre', $liststatus, $search_status, 1);
|
||||||
print '</td><td class="liste_titre" align="right">';
|
print '</td><td class="liste_titre" align="right">';
|
||||||
print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
|
print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
|
||||||
print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
|
print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
|
||||||
|
|||||||
126
htdocs/hrm/admin/admin_establishment.php
Normal file
126
htdocs/hrm/admin/admin_establishment.php
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/hrm/admin/admin_establishment.php
|
||||||
|
* \ingroup HRM
|
||||||
|
* \brief HRM Establishment module setup page
|
||||||
|
*/
|
||||||
|
require('../../main.inc.php');
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/hrm.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/hrm/class/establishment.class.php';
|
||||||
|
|
||||||
|
$langs->load("admin");
|
||||||
|
$langs->load('hrm');
|
||||||
|
|
||||||
|
if (! $user->admin)
|
||||||
|
accessforbidden();
|
||||||
|
|
||||||
|
$error=0;
|
||||||
|
|
||||||
|
$action = GETPOST('action', 'alpha');
|
||||||
|
|
||||||
|
$object = new Establishment($db);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Actions
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* View
|
||||||
|
*/
|
||||||
|
$page_name = "Establishments";
|
||||||
|
llxHeader('', $langs->trans($page_name));
|
||||||
|
|
||||||
|
$form = new Form($db);
|
||||||
|
|
||||||
|
dol_htmloutput_mesg($mesg);
|
||||||
|
|
||||||
|
// Subheader
|
||||||
|
$linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php">' . $langs->trans("BackToModuleList") . '</a>';
|
||||||
|
print load_fiche_titre($langs->trans($page_name), $linkback);
|
||||||
|
|
||||||
|
// Configuration header
|
||||||
|
$head = hrm_admin_prepare_head();
|
||||||
|
dol_fiche_head($head, 'establishments', $langs->trans("HRM"), 0, "user");
|
||||||
|
|
||||||
|
$sql = "SELECT e.rowid, e.name, e.address, e.zip, e.town, e.status";
|
||||||
|
$sql.= " FROM ".MAIN_DB_PREFIX."establishment as e";
|
||||||
|
$sql.= " WHERE e.entity = ".$conf->entity;
|
||||||
|
|
||||||
|
$result = $db->query($sql);
|
||||||
|
if ($result)
|
||||||
|
{
|
||||||
|
$var=false;
|
||||||
|
$num = $db->num_rows($result);
|
||||||
|
|
||||||
|
$i = 0;
|
||||||
|
|
||||||
|
// Load attribute_label
|
||||||
|
print '<table class="noborder" width="100%">';
|
||||||
|
print '<tr class="liste_titre">';
|
||||||
|
print '<td>'.$langs->trans("Ref").'</td>';
|
||||||
|
print '<td>'.$langs->trans("Name").'</td>';
|
||||||
|
print '<td>'.$langs->trans("Address").'</td>';
|
||||||
|
print '<td>'.$langs->trans("Zipcode").'</td>';
|
||||||
|
print '<td>'.$langs->trans("Town").'</td>';
|
||||||
|
print '<td align="right">'.$langs->trans("Status").'</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
if ($num)
|
||||||
|
{
|
||||||
|
$establishmentstatic=new Establishment($db);
|
||||||
|
|
||||||
|
while ($i < $num && $i < $max)
|
||||||
|
{
|
||||||
|
$obj = $db->fetch_object($result);
|
||||||
|
$fiscalyearstatic->id=$obj->rowid;
|
||||||
|
print '<tr '.$bc[$var].'>';
|
||||||
|
print '<td><a href="admin_establishment_card.php?id='.$obj->rowid.'">'.img_object($langs->trans("ShowEstablishment"),"building").' '.$obj->rowid.'</a></td>';
|
||||||
|
print '<td align="left">'.$obj->name.'</td>';
|
||||||
|
print '<td align="left">'.$obj->address.'</td>';
|
||||||
|
print '<td align="left">'.$obj->zip.'</td>';
|
||||||
|
print '<td align="left">'.$obj->town.'</td>';
|
||||||
|
print '<td align="right">'.$establishmentstatic->LibStatut($obj->status,5).'</td>';
|
||||||
|
print '</tr>';
|
||||||
|
$var=!$var;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<tr '.$bc[$var].'><td colspan="6">'.$langs->trans("None").'</td></tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dol_print_error($db);
|
||||||
|
}
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
|
||||||
|
// Buttons
|
||||||
|
print '<div class="tabsAction">';
|
||||||
|
print '<a class="butAction" href="../establishment/card.php?action=create">'.$langs->trans("NewEstablishment").'</a>';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
llxFooter();
|
||||||
|
$db->close();
|
||||||
58
htdocs/hrm/admin/admin_hrm.php
Normal file
58
htdocs/hrm/admin/admin_hrm.php
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/hrm/admin/admin_hrm.php
|
||||||
|
* \ingroup HRM
|
||||||
|
* \brief HRM module setup page
|
||||||
|
*/
|
||||||
|
require('../../main.inc.php');
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/hrm.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||||
|
|
||||||
|
$langs->load("admin");
|
||||||
|
$langs->load('hrm');
|
||||||
|
|
||||||
|
if (! $user->admin)
|
||||||
|
accessforbidden();
|
||||||
|
|
||||||
|
$action = GETPOST('action', 'alpha');
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Actions
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* View
|
||||||
|
*/
|
||||||
|
$page_name = "Parameters";
|
||||||
|
llxHeader('', $langs->trans($page_name));
|
||||||
|
|
||||||
|
$form = new Form($db);
|
||||||
|
|
||||||
|
dol_htmloutput_mesg($mesg);
|
||||||
|
|
||||||
|
// Subheader
|
||||||
|
$linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php">' . $langs->trans("BackToModuleList") . '</a>';
|
||||||
|
print load_fiche_titre($langs->trans($page_name), $linkback);
|
||||||
|
|
||||||
|
// Configuration header
|
||||||
|
$head = hrm_admin_prepare_head();
|
||||||
|
dol_fiche_head($head, 'parameters', $langs->trans("HRM"), 0, "user");
|
||||||
|
|
||||||
|
llxFooter();
|
||||||
|
$db->close();
|
||||||
0
htdocs/hrm/admin/index.html
Normal file
0
htdocs/hrm/admin/index.html
Normal file
324
htdocs/hrm/class/establishment.class.php
Normal file
324
htdocs/hrm/class/establishment.class.php
Normal file
@ -0,0 +1,324 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/hrm/class/establishment.class.php
|
||||||
|
* \ingroup HRM
|
||||||
|
* \brief File of class to manage establishments
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class to manage establishments
|
||||||
|
*/
|
||||||
|
class Establishment extends CommonObject
|
||||||
|
{
|
||||||
|
public $element='establishment';
|
||||||
|
public $table_element='establishment';
|
||||||
|
public $table_element_line = '';
|
||||||
|
public $fk_element = 'fk_establishment';
|
||||||
|
protected $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
|
||||||
|
|
||||||
|
var $rowid;
|
||||||
|
|
||||||
|
var $name;
|
||||||
|
var $address;
|
||||||
|
var $zip;
|
||||||
|
var $town;
|
||||||
|
var $status; // 0=open, 1=closed
|
||||||
|
var $entity;
|
||||||
|
|
||||||
|
var $statuts=array();
|
||||||
|
var $statuts_short=array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param DoliDB $db Database handler
|
||||||
|
*/
|
||||||
|
function __construct($db)
|
||||||
|
{
|
||||||
|
$this->db = $db;
|
||||||
|
|
||||||
|
$this->statuts_short = array(0 => 'Opened', 1 => 'Closed');
|
||||||
|
$this->statuts = array(0 => 'Opened', 1 => 'Closed');
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create object in database
|
||||||
|
*
|
||||||
|
* @param User $user User making creation
|
||||||
|
* @return int <0 if KO, >0 if OK
|
||||||
|
*/
|
||||||
|
function create($user)
|
||||||
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
|
$error = 0;
|
||||||
|
|
||||||
|
$now=dol_now();
|
||||||
|
|
||||||
|
$this->db->begin();
|
||||||
|
|
||||||
|
$sql = "INSERT INTO ".MAIN_DB_PREFIX."establishment (";
|
||||||
|
$sql.= "name";
|
||||||
|
$sql.= ", address";
|
||||||
|
$sql.= ", zip";
|
||||||
|
$sql.= ", town";
|
||||||
|
$sql.= ", status";
|
||||||
|
$sql.= ", entity";
|
||||||
|
$sql.= ", datec";
|
||||||
|
$sql.= ", fk_user_author";
|
||||||
|
$sql.= ") VALUES (";
|
||||||
|
$sql.= " '".$this->name."'";
|
||||||
|
$sql.= ", '".$this->address."'";
|
||||||
|
$sql.= ", '".$this->zip."'";
|
||||||
|
$sql.= ", '".$this->town."'";
|
||||||
|
$sql.= ", ".$this->status;
|
||||||
|
$sql.= ", ".$conf->entity;
|
||||||
|
$sql.= ", '".$this->db->idate($now)."'";
|
||||||
|
$sql.= ", ". $user->id;
|
||||||
|
$sql.= ")";
|
||||||
|
|
||||||
|
$this->db->begin();
|
||||||
|
|
||||||
|
dol_syslog(get_class($this)."::create", LOG_DEBUG);
|
||||||
|
$resql = $this->db->query($sql);
|
||||||
|
if (! $resql) {
|
||||||
|
$error ++;
|
||||||
|
$this->errors[] = "Error " . $this->db->lasterror();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $error) {
|
||||||
|
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . "establishment");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Commit or rollback
|
||||||
|
if ($error) {
|
||||||
|
foreach ( $this->errors as $errmsg ) {
|
||||||
|
dol_syslog(get_class($this) . "::create " . $errmsg, LOG_ERR);
|
||||||
|
$this->error .= ($this->error ? ', ' . $errmsg : $errmsg);
|
||||||
|
}
|
||||||
|
$this->db->rollback();
|
||||||
|
return - 1 * $error;
|
||||||
|
} else {
|
||||||
|
$this->db->commit();
|
||||||
|
return $this->id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update record
|
||||||
|
*
|
||||||
|
* @param User $user User making update
|
||||||
|
* @return int <0 if KO, >0 if OK
|
||||||
|
*/
|
||||||
|
function update($user)
|
||||||
|
{
|
||||||
|
global $langs;
|
||||||
|
|
||||||
|
// Check parameters
|
||||||
|
if (empty($this->name))
|
||||||
|
{
|
||||||
|
$this->error='ErrorBadParameter';
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->begin();
|
||||||
|
|
||||||
|
$sql = "UPDATE ".MAIN_DB_PREFIX."establishment";
|
||||||
|
$sql .= " SET name = '".$this->name."'";
|
||||||
|
$sql .= ", address = '".$this->address."'";
|
||||||
|
$sql .= ", zip = '".$this->zip."'";
|
||||||
|
$sql .= ", town = '".$this->town."'";
|
||||||
|
$sql .= ", status = '".$this->status."'";
|
||||||
|
$sql .= ", fk_user_mod = " . $user->id;
|
||||||
|
$sql .= " WHERE rowid = ".$this->id;
|
||||||
|
|
||||||
|
dol_syslog(get_class($this) . "::update sql=" . $sql, LOG_DEBUG);
|
||||||
|
$result = $this->db->query($sql);
|
||||||
|
if ($result) {
|
||||||
|
$this->db->commit();
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
$this->error = $this->db->lasterror();
|
||||||
|
$this->db->rollback();
|
||||||
|
return - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load an object from database
|
||||||
|
*
|
||||||
|
* @param int $id Id of record to load
|
||||||
|
* @return int <0 if KO, >0 if OK
|
||||||
|
*/
|
||||||
|
function fetch($id)
|
||||||
|
{
|
||||||
|
$sql = "SELECT rowid, name, address, zip, town, status";
|
||||||
|
$sql.= " FROM ".MAIN_DB_PREFIX."establishment";
|
||||||
|
$sql.= " WHERE rowid = ".$id;
|
||||||
|
|
||||||
|
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
|
||||||
|
$result = $this->db->query($sql);
|
||||||
|
if ( $result )
|
||||||
|
{
|
||||||
|
$obj = $this->db->fetch_object($result);
|
||||||
|
|
||||||
|
$this->id = $obj->rowid;
|
||||||
|
$this->name = $obj->name;
|
||||||
|
$this->address = $obj->address;
|
||||||
|
$this->zip = $obj->zip;
|
||||||
|
$this->town = $obj->town;
|
||||||
|
$this->status = $obj->status;
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->error=$this->db->lasterror();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete record
|
||||||
|
*
|
||||||
|
* @param int $id Id of record to delete
|
||||||
|
* @return int <0 if KO, >0 if OK
|
||||||
|
*/
|
||||||
|
function delete($id)
|
||||||
|
{
|
||||||
|
$this->db->begin();
|
||||||
|
|
||||||
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX."establishment WHERE rowid = ".$id;
|
||||||
|
|
||||||
|
dol_syslog(get_class($this)."::delete", LOG_DEBUG);
|
||||||
|
$result = $this->db->query($sql);
|
||||||
|
if ($result)
|
||||||
|
{
|
||||||
|
$this->db->commit();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->error=$this->db->lasterror();
|
||||||
|
$this->db->rollback();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Give a label from a status
|
||||||
|
*
|
||||||
|
* @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto
|
||||||
|
* @return string Label
|
||||||
|
*/
|
||||||
|
function getLibStatus($mode=0)
|
||||||
|
{
|
||||||
|
return $this->LibStatus($this->status,$mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Give a label from a status
|
||||||
|
*
|
||||||
|
* @param int $status Id status
|
||||||
|
* @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto
|
||||||
|
* @return string Label
|
||||||
|
*/
|
||||||
|
function LibStatus($status,$mode=0)
|
||||||
|
{
|
||||||
|
global $langs;
|
||||||
|
|
||||||
|
if ($mode == 0)
|
||||||
|
{
|
||||||
|
return $langs->trans($this->statuts[$status]);
|
||||||
|
}
|
||||||
|
if ($mode == 1)
|
||||||
|
{
|
||||||
|
return $langs->trans($this->statuts_short[$status]);
|
||||||
|
}
|
||||||
|
if ($mode == 2)
|
||||||
|
{
|
||||||
|
if ($status==0) return img_picto($langs->trans($this->statuts_short[$status]),'status4').' '.$langs->trans($this->statuts_short[$status]);
|
||||||
|
if ($status==1) return img_picto($langs->trans($this->statuts_short[$status]),'status8').' '.$langs->trans($this->statuts_short[$status]);
|
||||||
|
}
|
||||||
|
if ($mode == 3)
|
||||||
|
{
|
||||||
|
if ($status==0 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]),'status4');
|
||||||
|
if ($status==1 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]),'status8');
|
||||||
|
}
|
||||||
|
if ($mode == 4)
|
||||||
|
{
|
||||||
|
if ($status==0 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]),'status4').' '.$langs->trans($this->statuts[$status]);
|
||||||
|
if ($status==1 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]),'status8').' '.$langs->trans($this->statuts[$status]);
|
||||||
|
}
|
||||||
|
if ($mode == 5)
|
||||||
|
{
|
||||||
|
if ($status==0 && ! empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]),'status4');
|
||||||
|
if ($status==1 && ! empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]),'status8');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Information on record
|
||||||
|
*
|
||||||
|
* @param int $id Id of record
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function info($id)
|
||||||
|
{
|
||||||
|
$sql = 'SELECT e.rowid, e.datec, e.fk_user_author, e.tms, e.fk_user_mod';
|
||||||
|
$sql.= ' FROM '.MAIN_DB_PREFIX.'establishment as e';
|
||||||
|
$sql.= ' WHERE e.rowid = '.$id;
|
||||||
|
|
||||||
|
dol_syslog(get_class($this)."::fetch info", LOG_DEBUG);
|
||||||
|
$result = $this->db->query($sql);
|
||||||
|
|
||||||
|
if ($result)
|
||||||
|
{
|
||||||
|
if ($this->db->num_rows($result))
|
||||||
|
{
|
||||||
|
$obj = $this->db->fetch_object($result);
|
||||||
|
$this->id = $obj->rowid;
|
||||||
|
if ($obj->fk_user_author)
|
||||||
|
{
|
||||||
|
$cuser = new User($this->db);
|
||||||
|
$cuser->fetch($obj->fk_user_author);
|
||||||
|
$this->user_creation = $cuser;
|
||||||
|
}
|
||||||
|
if ($obj->fk_user_modif)
|
||||||
|
{
|
||||||
|
$muser = new User($this->db);
|
||||||
|
$muser->fetch($obj->fk_user_mod);
|
||||||
|
$this->user_modification = $muser;
|
||||||
|
}
|
||||||
|
$this->date_creation = $this->db->jdate($obj->datec);
|
||||||
|
$this->date_modification = $this->db->jdate($obj->tms);
|
||||||
|
}
|
||||||
|
$this->db->free($result);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dol_print_error($this->db);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
0
htdocs/hrm/class/index.html
Normal file
0
htdocs/hrm/class/index.html
Normal file
410
htdocs/hrm/establishment/card.php
Normal file
410
htdocs/hrm/establishment/card.php
Normal file
@ -0,0 +1,410 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/hrm/establishment/card.php
|
||||||
|
* \brief Page to show an establishment
|
||||||
|
*/
|
||||||
|
require('../../main.inc.php');
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/hrm.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/hrm/class/establishment.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
|
||||||
|
|
||||||
|
$langs->load("admin");
|
||||||
|
$langs->load("hrm");
|
||||||
|
|
||||||
|
// Security check
|
||||||
|
if (! $user->admin) accessforbidden();
|
||||||
|
|
||||||
|
$error=0;
|
||||||
|
|
||||||
|
$action = GETPOST('action','alpha');
|
||||||
|
$cancel = GETPOST('cancel', 'alpha');
|
||||||
|
$confirm = GETPOST('confirm','alpha');
|
||||||
|
$id = GETPOST('id','int');
|
||||||
|
|
||||||
|
// List of status
|
||||||
|
static $tmpstatus2label=array(
|
||||||
|
'0'=>'OpenEtablishment',
|
||||||
|
'1'=>'CloseEtablishment'
|
||||||
|
);
|
||||||
|
$status2label=array('');
|
||||||
|
foreach ($tmpstatus2label as $key => $val) $status2label[$key]=$langs->trans($val);
|
||||||
|
|
||||||
|
$object = new Establishment($db);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Actions
|
||||||
|
*/
|
||||||
|
|
||||||
|
if ($action == 'confirm_delete' && $confirm == "yes")
|
||||||
|
{
|
||||||
|
$result=$object->delete($id);
|
||||||
|
if ($result >= 0)
|
||||||
|
{
|
||||||
|
header("Location: ../admin/admin_establishment.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
setEventMessage($object->error, 'errors');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else if ($action == 'add')
|
||||||
|
{
|
||||||
|
if (! $cancel)
|
||||||
|
{
|
||||||
|
$error=0;
|
||||||
|
|
||||||
|
$object->name = GETPOST('name', 'alpha');
|
||||||
|
if (empty($object->name))
|
||||||
|
{
|
||||||
|
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Name")), 'errors');
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($error))
|
||||||
|
{
|
||||||
|
$tmparray=getCountry(GETPOST('country_id','int'),'all',$db,$langs,0);
|
||||||
|
if (! empty($tmparray['id']))
|
||||||
|
{
|
||||||
|
$object->country_id =$tmparray['id'];
|
||||||
|
$object->country_code =$tmparray['code'];
|
||||||
|
$object->country_label=$tmparray['label'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$object->address = GETPOST('address', 'alpha');
|
||||||
|
$object->zip = GETPOST('zipcode', 'alpha');
|
||||||
|
$object->town = GETPOST('town', 'alpha');
|
||||||
|
$object->fk_pays = $object->country_id;
|
||||||
|
$object->status = GETPOST('status','int');
|
||||||
|
$object->fk_user_author = $user->id;
|
||||||
|
$object->datec = dol_now();
|
||||||
|
|
||||||
|
$id = $object->create($user);
|
||||||
|
|
||||||
|
if ($id > 0)
|
||||||
|
{
|
||||||
|
header("Location: " . $_SERVER["PHP_SELF"] . "?id=" . $id);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
setEventMessage($object->error, 'errors');
|
||||||
|
$action='create';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$action='create';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
header("Location: ../admin/admin_establishment.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update record
|
||||||
|
else if ($action == 'update')
|
||||||
|
{
|
||||||
|
$error = 0;
|
||||||
|
|
||||||
|
if (! $cancel) {
|
||||||
|
|
||||||
|
$name = GETPOST('name', 'alpha');
|
||||||
|
if (empty($name)) {
|
||||||
|
setEventMessage($langs->trans('ErrorFieldRequired', $langs->trans('NameProperty')), 'errors');
|
||||||
|
$error ++;
|
||||||
|
}
|
||||||
|
$typeid = GETPOST('typeid', 'int');
|
||||||
|
if (empty($typeid)) {
|
||||||
|
setEventMessage($langs->trans('ErrorFieldRequired', $langs->trans('TypeProperty')), 'errors');
|
||||||
|
$error ++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($error)) {
|
||||||
|
$object->name = GETPOST('name', 'alpha');
|
||||||
|
$object->address = GETPOST('address', 'alpha');
|
||||||
|
$object->zip = GETPOST('zipcode', 'alpha');
|
||||||
|
$object->town = GETPOST('town', 'alpha');
|
||||||
|
$object->fk_pays = GETPOST('country_id', 'int');
|
||||||
|
$object->rowid = GETPOST('id');
|
||||||
|
$object->fk_user_mod = $user->id;
|
||||||
|
|
||||||
|
$id = $object->update();
|
||||||
|
|
||||||
|
if ($id > 0)
|
||||||
|
{
|
||||||
|
header("Location: " . $_SERVER["PHP_SELF"] . "?id=" . $id);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
setEventMessage($object->error, 'errors');
|
||||||
|
$action='create';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
header("Location: card.php?id=" . $id);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* View
|
||||||
|
*/
|
||||||
|
|
||||||
|
llxHeader();
|
||||||
|
|
||||||
|
$form = new Form($db);
|
||||||
|
$formcompany = new FormCompany($db);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Action create
|
||||||
|
*/
|
||||||
|
if ($action == 'create')
|
||||||
|
{
|
||||||
|
print load_fiche_titre($langs->trans("NewEstablishment"));
|
||||||
|
|
||||||
|
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="action" value="add">';
|
||||||
|
|
||||||
|
dol_fiche_head();
|
||||||
|
|
||||||
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
|
// Name
|
||||||
|
print '<tr><td class="fieldrequired"><label for="name">'.$langs->trans("Name").'</label></td><td><input name="name" id="name" size="32" value="' . GETPOST("name") . '"></td></tr>';
|
||||||
|
|
||||||
|
// Address
|
||||||
|
print '<tr>';
|
||||||
|
print '<td><label for="address">' . $langs->trans("Address") . '</label></td>';
|
||||||
|
print '<td>';
|
||||||
|
print '<input name="address" id="address" size="32" value="' . $object->address . '">';
|
||||||
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
// Zipcode
|
||||||
|
print '<tr>';
|
||||||
|
print '<td><label for="zipcode">' . $langs->trans('Zip') . '</label></td>';
|
||||||
|
print '<td>';
|
||||||
|
print $formcompany->select_ziptown(GETPOST('zipcode', 'alpha'), 'zipcode', array (
|
||||||
|
'town',
|
||||||
|
'selectcountry_id'
|
||||||
|
), 6);
|
||||||
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
// Town
|
||||||
|
print '<tr>';
|
||||||
|
print '<td><label for="town">' . $langs->trans('Town') . '</label></td>';
|
||||||
|
print '<td>';
|
||||||
|
print $formcompany->select_ziptown(GETPOST('town', 'alpha'), 'town', array (
|
||||||
|
'zipcode',
|
||||||
|
'selectcountry_id'
|
||||||
|
));
|
||||||
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
// Country
|
||||||
|
print '<tr>';
|
||||||
|
print '<td><label for="selectcountry_id">' . $langs->trans("Country") . '</label></td>';
|
||||||
|
print '<td class="maxwidthonsmartphone">';
|
||||||
|
print $form->select_country($mysoc->country_id,'country_id');
|
||||||
|
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
|
||||||
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
// Status
|
||||||
|
print '<tr>';
|
||||||
|
print '<td class="fieldrequired"><label for="status">'.$langs->trans("Status").'</label></td>';
|
||||||
|
print '<td>';
|
||||||
|
print $form->selectarray('status',$status2label,GETPOST('status'));
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
|
||||||
|
print '<div class="center">';
|
||||||
|
print '<input class="button" type="submit" value="'.$langs->trans("Save").'">';
|
||||||
|
print ' ';
|
||||||
|
print '<input class="button" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
print '</form>';
|
||||||
|
}
|
||||||
|
else if ($id)
|
||||||
|
{
|
||||||
|
$result = $object->fetch($id);
|
||||||
|
if ($result > 0)
|
||||||
|
{
|
||||||
|
$head = establishment_prepare_head($object);
|
||||||
|
|
||||||
|
if ($action == 'edit')
|
||||||
|
{
|
||||||
|
dol_fiche_head($head, 'card', $langs->trans("Establishment"), 0, 'building');
|
||||||
|
|
||||||
|
print '<form name="update" action="' . $_SERVER["PHP_SELF"] . '" method="POST">' . "\n";
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="action" value="update">';
|
||||||
|
print '<input type="hidden" name="id" value="'.$id.'">';
|
||||||
|
|
||||||
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
|
// Ref
|
||||||
|
print "<tr>";
|
||||||
|
print '<td width="20%">'.$langs->trans("Ref").'</td><td>';
|
||||||
|
print $object->rowid;
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
// Name
|
||||||
|
print '<tr><td class="fieldrequired"><label for="name">'.$langs->trans("Name").'</label></td><td>';
|
||||||
|
print '<input name="name" id="name" class="flat" size="32" value="'.$object->name.'">';
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
// Address
|
||||||
|
print '<tr>';
|
||||||
|
print '<td><label for="address">' . $langs->trans("Address") . '</label></td>';
|
||||||
|
print '<td>';
|
||||||
|
print '<input name="address" id="address" size="32" value="' . $object->address . '">';
|
||||||
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
// Zipcode / Town
|
||||||
|
print '<tr><td><label for="zipcode">' . $langs->trans('Zip') . '</label></td><td>';
|
||||||
|
print $formcompany->select_ziptown($object->zip, 'zipcode', array (
|
||||||
|
'town',
|
||||||
|
'selectcountry_id'
|
||||||
|
), 6) . '</tr>';
|
||||||
|
print '<tr><td><label for="town">' . $langs->trans('Town') . '</label></td><td>';
|
||||||
|
print $formcompany->select_ziptown($object->town, 'town', array (
|
||||||
|
'zipcode',
|
||||||
|
'selectcountry_id'
|
||||||
|
)) . '</td></tr>';
|
||||||
|
|
||||||
|
// Country
|
||||||
|
print '<tr>';
|
||||||
|
print '<td><label for="selectcountry_id">' . $langs->trans("Country") . '</label></td>';
|
||||||
|
print '<td class="maxwidthonsmartphone">';
|
||||||
|
print $form->select_country($object->fk_pays,'country_id');
|
||||||
|
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
|
||||||
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
// Status
|
||||||
|
print '<tr><td><label for="status">'.$langs->trans("Status").'</label></td><td>';
|
||||||
|
print $form->selectarray('status',$status2label,$object->status);
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
|
||||||
|
print '<div class="center">';
|
||||||
|
print '<input type="submit" class="button" value="'.$langs->trans("Save").'">';
|
||||||
|
print ' ';
|
||||||
|
print '<input type="submit" name="cancel" class="button" value="'.$langs->trans("Cancel").'">';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
print '</form>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Confirm delete
|
||||||
|
*/
|
||||||
|
if ($action == 'delete')
|
||||||
|
{
|
||||||
|
print $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("DeleteEstablishment"),$langs->trans("ConfirmDeleteEstablishment"),"confirm_delete");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
dol_fiche_head($head, 'card', $langs->trans("Establishment"), 0, 'building');
|
||||||
|
|
||||||
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
|
$linkback = '<a href="../admin/admin_establishment.php">'.$langs->trans("BackToList").'</a>';
|
||||||
|
|
||||||
|
// Ref
|
||||||
|
print '<tr><td width="25%">'.$langs->trans("Ref").'</td><td width="50%">';
|
||||||
|
print $object->rowid;
|
||||||
|
print '</td><td width="25%">';
|
||||||
|
print $linkback;
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
// Name
|
||||||
|
print '<tr>';
|
||||||
|
print '<td>'.$langs->trans("Name").'</td>';
|
||||||
|
print '<td colspan="2">'.$object->name.'</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
// Address
|
||||||
|
print '<tr>';
|
||||||
|
print '<td>'.$langs->trans("Address").'</td>';
|
||||||
|
print '<td colspan="2">'.$object->address.'</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
// Zipcode
|
||||||
|
print '<tr>';
|
||||||
|
print '<td>'.$langs->trans("Zipcode").'</td>';
|
||||||
|
print '<td colspan="2">'.$object->zip.'</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
// Town
|
||||||
|
print '<tr>';
|
||||||
|
print '<td>'.$langs->trans("Town").'</td>';
|
||||||
|
print '<td colspan="2">'.$object->town.'</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
// Country
|
||||||
|
print '<tr>';
|
||||||
|
print '<td>'.$langs->trans("Country").'</td>';
|
||||||
|
print '<td colspan="2">'.getCountry($object->fk_pays,1).'</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
// Status
|
||||||
|
print '<tr><td>'.$langs->trans("Status").'</td><td colspan="2">'.$object->getLibStatus(4).'</td></tr>';
|
||||||
|
|
||||||
|
print "</table>";
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Barre d'actions
|
||||||
|
*/
|
||||||
|
|
||||||
|
print '<div class="tabsAction">';
|
||||||
|
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit&id='.$id.'">'.$langs->trans('Modify').'</a>';
|
||||||
|
print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>';
|
||||||
|
print '</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dol_print_error($db);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
llxFooter();
|
||||||
|
|
||||||
|
$db->close();
|
||||||
0
htdocs/hrm/establishment/index.html
Normal file
0
htdocs/hrm/establishment/index.html
Normal file
57
htdocs/hrm/establishment/info.php
Normal file
57
htdocs/hrm/establishment/info.php
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/hrm/establishment/info.php
|
||||||
|
* \brief Page to show info of an establishment
|
||||||
|
*/
|
||||||
|
|
||||||
|
require('../../main.inc.php');
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/hrm.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/hrm/class/establishment.class.php';
|
||||||
|
|
||||||
|
$langs->load("admin");
|
||||||
|
$langs->load("hrm");
|
||||||
|
|
||||||
|
// Security check
|
||||||
|
if (! $user->admin) accessforbidden();
|
||||||
|
|
||||||
|
$id = GETPOST('id','int');
|
||||||
|
|
||||||
|
// View
|
||||||
|
llxHeader();
|
||||||
|
|
||||||
|
if ($id)
|
||||||
|
{
|
||||||
|
$object = new Establishment($db);
|
||||||
|
$object->fetch($id);
|
||||||
|
$object->info($id);
|
||||||
|
|
||||||
|
$head = establishment_prepare_head($object);
|
||||||
|
|
||||||
|
dol_fiche_head($head, 'info', $langs->trans("Establishment"), 0, 'building');
|
||||||
|
|
||||||
|
print '<table width="100%"><tr><td>';
|
||||||
|
dol_print_object_info($object);
|
||||||
|
print '</td></tr></table>';
|
||||||
|
|
||||||
|
print '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$db->close();
|
||||||
|
|
||||||
|
llxFooter();
|
||||||
0
htdocs/hrm/index.html
Normal file
0
htdocs/hrm/index.html
Normal file
@ -103,7 +103,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
|
|||||||
* Informations area
|
* Informations area
|
||||||
*/
|
*/
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table summary="Login info" class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><th class="liste_titre" colspan="2">'.$langs->trans("Informations").'</th></tr>';
|
print '<tr class="liste_titre"><th class="liste_titre" colspan="2">'.$langs->trans("Informations").'</th></tr>';
|
||||||
print '<tr '.$bc[false].'>';
|
print '<tr '.$bc[false].'>';
|
||||||
print '<td class="nowrap">'.$langs->trans("User").'</td><td>'.$user->getNomUrl(0).'</td></tr>';
|
print '<td class="nowrap">'.$langs->trans("User").'</td><td>'.$user->getNomUrl(0).'</td></tr>';
|
||||||
@ -129,7 +129,7 @@ $langs->load("contracts");
|
|||||||
if (empty($user->societe_id))
|
if (empty($user->societe_id))
|
||||||
{
|
{
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table summary="'.$langs->trans("DolibarrStateBoard").'" class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<th class="liste_titre" colspan="2">'.$langs->trans("DolibarrStateBoard").'</th>';
|
print '<th class="liste_titre" colspan="2">'.$langs->trans("DolibarrStateBoard").'</th>';
|
||||||
print '<th class="liste_titre" align="right"> </th>';
|
print '<th class="liste_titre" align="right"> </th>';
|
||||||
@ -231,8 +231,9 @@ if (empty($user->societe_id))
|
|||||||
"SuppliersInvoices",
|
"SuppliersInvoices",
|
||||||
"ExpenseReports");
|
"ExpenseReports");
|
||||||
// Dashboard Link lines
|
// Dashboard Link lines
|
||||||
$links=array(DOL_URL_ROOT.'/comm/list.php',
|
$links=array(
|
||||||
DOL_URL_ROOT.'/comm/prospect/list.php',
|
DOL_URL_ROOT.'/societe/list.php?type=c',
|
||||||
|
DOL_URL_ROOT.'/societe/list.php?type=p',
|
||||||
DOL_URL_ROOT.'/societe/list.php?type=f',
|
DOL_URL_ROOT.'/societe/list.php?type=f',
|
||||||
DOL_URL_ROOT.'/adherents/list.php?statut=1&mainmenu=members',
|
DOL_URL_ROOT.'/adherents/list.php?statut=1&mainmenu=members',
|
||||||
DOL_URL_ROOT.'/product/list.php?type=0&mainmenu=products',
|
DOL_URL_ROOT.'/product/list.php?type=0&mainmenu=products',
|
||||||
|
|||||||
Binary file not shown.
43
htdocs/install/mysql/data/llx_c_hrm_department.sql
Normal file
43
htdocs/install/mysql/data/llx_c_hrm_department.sql
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
-- ============================================================================
|
||||||
|
-- Copyright (C) 2013 Jean-François Ferry <jfefe@aternatik.fr>
|
||||||
|
-- Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
|
--
|
||||||
|
-- This program is free software: you can redistribute it and/or modify
|
||||||
|
-- it under the terms of the GNU General Public License as published by
|
||||||
|
-- the Free Software Foundation, either version 3 of the License, or
|
||||||
|
-- (at your option) any later version.
|
||||||
|
--
|
||||||
|
-- This program is distributed in the hope that it will be useful,
|
||||||
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
-- GNU General Public License for more details.
|
||||||
|
--
|
||||||
|
-- You should have received a copy of the GNU General Public License
|
||||||
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
--
|
||||||
|
-- ============================================================================
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Ne pas placer de commentaire en fin de ligne, ce fichier est parsé lors
|
||||||
|
-- de l'install et tous les sigles '--' sont supprimés.
|
||||||
|
--
|
||||||
|
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(1, 5,'MANAGEMENT', 'Management', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(2, 10,'GESTION', 'Gestion', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(3, 15,'TRAINING', 'Training', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(4, 20,'IT', 'Inform. Technology (IT)', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(5, 25,'MARKETING', 'Marketing', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(6, 30,'SALES', 'Sales', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(7, 35,'LEGAL', 'Legal', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(8, 40,'FINANCIAL', 'Financial accounting', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(9, 45,'HUMANRES', 'Human resources', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(10, 50,'PURCHASING', 'Purchasing', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(11, 55,'SERVICES', 'Services', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(12, 60,'CUSTOMSERV', 'Customer service', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(13, 65,'CONSULTING', 'Consulting', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(14, 70,'LOGISTIC', 'Logistics', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(15, 75,'CONSTRUCT', 'Engineering/design', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(16, 80,'PRODUCTION', 'Manufacturing', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(17, 85,'QUALITY', 'Quality assurance', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(18, 85,'MAINT', 'Plant assurance', 1);
|
||||||
34
htdocs/install/mysql/data/llx_c_hrm_function.sql
Normal file
34
htdocs/install/mysql/data/llx_c_hrm_function.sql
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
-- ============================================================================
|
||||||
|
-- Copyright (C) 2013 Jean-François Ferry <jfefe@aternatik.fr>
|
||||||
|
-- Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
|
--
|
||||||
|
-- This program is free software: you can redistribute it and/or modify
|
||||||
|
-- it under the terms of the GNU General Public License as published by
|
||||||
|
-- the Free Software Foundation, either version 3 of the License, or
|
||||||
|
-- (at your option) any later version.
|
||||||
|
--
|
||||||
|
-- This program is distributed in the hope that it will be useful,
|
||||||
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
-- GNU General Public License for more details.
|
||||||
|
--
|
||||||
|
-- You should have received a copy of the GNU General Public License
|
||||||
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
--
|
||||||
|
-- ============================================================================
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Ne pas placer de commentaire en fin de ligne, ce fichier est parsé lors
|
||||||
|
-- de l'install et tous les sigles '--' sont supprimés.
|
||||||
|
--
|
||||||
|
|
||||||
|
INSERT INTO llx_c_hrm_function (rowid, pos, code, label, c_level, active) VALUES(1, 5,'EXECBOARD', 'Executive board', 0, 1);
|
||||||
|
INSERT INTO llx_c_hrm_function (rowid, pos, code, label, c_level, active) VALUES(2, 10, 'MANAGDIR', 'Managing director', 1, 1);
|
||||||
|
INSERT INTO llx_c_hrm_function (rowid, pos, code, label, c_level, active) VALUES(3, 15, 'ACCOUNTMANAG', 'Account manager', 0, 1);
|
||||||
|
INSERT INTO llx_c_hrm_function (rowid, pos, code, label, c_level, active) VALUES(3, 20, 'ENGAGDIR', 'Engagement director', 1, 1);
|
||||||
|
INSERT INTO llx_c_hrm_function (rowid, pos, code, label, c_level, active) VALUES(4, 25, 'DIRECTOR', 'Director', 1, 1);
|
||||||
|
INSERT INTO llx_c_hrm_function (rowid, pos, code, label, c_level, active) VALUES(5, 30, 'PROJMANAG', 'Project manager', 0, 1);
|
||||||
|
INSERT INTO llx_c_hrm_function (rowid, pos, code, label, c_level, active) VALUES(6, 35, 'DEPHEAD', 'Department head', 0, 1);
|
||||||
|
INSERT INTO llx_c_hrm_function (rowid, pos, code, label, c_level, active) VALUES(7, 40, 'SECRETAR', 'Secretary', 0, 1);
|
||||||
|
INSERT INTO llx_c_hrm_function (rowid, pos, code, label, c_level, active) VALUES(8, 45, 'EMPLOYEE', 'Department employee', 0, 1);
|
||||||
@ -53,6 +53,7 @@ insert into llx_const (name, value, type, note, visible, entity) values ('MAIN_M
|
|||||||
-- IHM
|
-- IHM
|
||||||
--
|
--
|
||||||
insert into llx_const (name, value, type, note, visible, entity) values ('MAIN_SIZE_LISTE_LIMIT','25','chaine','Longueur maximum des listes',0,0);
|
insert into llx_const (name, value, type, note, visible, entity) values ('MAIN_SIZE_LISTE_LIMIT','25','chaine','Longueur maximum des listes',0,0);
|
||||||
|
insert into llx_const (name, value, type, note, visible, entity) values ('MAIN_SIZE_SHORTLISTE_LIMIT','4','chaine','Longueur maximum des listes courtes (fiche client)',0,0);
|
||||||
insert into llx_const (name, value, type, note, visible, entity) values ('MAIN_SHOW_WORKBOARD','1','yesno','Affichage tableau de bord de travail Dolibarr',0,0);
|
insert into llx_const (name, value, type, note, visible, entity) values ('MAIN_SHOW_WORKBOARD','1','yesno','Affichage tableau de bord de travail Dolibarr',0,0);
|
||||||
|
|
||||||
insert into llx_const (name, value, type, note, visible) values ('MAIN_MENU_STANDARD','eldy_menu.php','chaine','Menu manager for internal users',0);
|
insert into llx_const (name, value, type, note, visible) values ('MAIN_MENU_STANDARD','eldy_menu.php','chaine','Menu manager for internal users',0);
|
||||||
|
|||||||
@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
|
|
||||||
INSERT INTO llx_const (name, value, type, note, visible) values (__ENCRYPT('MAIN_DELAY_EXPENSEREPORTS_TO_PAY')__,__ENCRYPT('31')__,'chaine','Tolérance de retard avant alerte (en jours) sur les notes de frais impayées',0);
|
INSERT INTO llx_const (name, value, type, note, visible) values (__ENCRYPT('MAIN_DELAY_EXPENSEREPORTS_TO_PAY')__,__ENCRYPT('31')__,'chaine','Tolérance de retard avant alerte (en jours) sur les notes de frais impayées',0);
|
||||||
|
INSERT INTO llx_const (name, value, type, note, visible) values ('MAIN_SIZE_SHORTLISTE_LIMIT','4','chaine','Longueur maximum des listes courtes (fiche client)',0);
|
||||||
|
|
||||||
ALTER TABLE llx_accounting_system MODIFY COLUMN pcg_version varchar(32);
|
ALTER TABLE llx_accounting_system MODIFY COLUMN pcg_version varchar(32);
|
||||||
ALTER TABLE llx_accountingaccount MODIFY COLUMN fk_pcg_version varchar(32);
|
ALTER TABLE llx_accountingaccount MODIFY COLUMN fk_pcg_version varchar(32);
|
||||||
@ -100,3 +101,12 @@ ALTER TABLE llx_ecm_files ADD UNIQUE INDEX uk_ecm_files (label, entity);
|
|||||||
|
|
||||||
|
|
||||||
ALTER TABLE llx_product ADD COLUMN onportal tinyint DEFAULT 0 after tobuy;
|
ALTER TABLE llx_product ADD COLUMN onportal tinyint DEFAULT 0 after tobuy;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE llx_user ADD COLUMN employee tinyint DEFAULT 1;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE llx_projet_task_time ADD COLUMN invoice_id integer DEFAULT NULL;
|
||||||
|
ALTER TABLE llx_projet_task_time ADD COLUMN invoice_line_id integer DEFAULT NULL;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
88
htdocs/install/mysql/migration/3.9.0-4.0.0.sql
Normal file
88
htdocs/install/mysql/migration/3.9.0-4.0.0.sql
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
--
|
||||||
|
-- Be carefull to requests order.
|
||||||
|
-- This file must be loaded by calling /install/index.php page
|
||||||
|
-- when current version is 3.9.0 or higher.
|
||||||
|
--
|
||||||
|
-- To rename a table: ALTER TABLE llx_table RENAME TO llx_table_new;
|
||||||
|
-- To add a column: ALTER TABLE llx_table ADD COLUMN newcol varchar(60) NOT NULL DEFAULT '0' AFTER existingcol;
|
||||||
|
-- To rename a column: ALTER TABLE llx_table CHANGE COLUMN oldname newname varchar(60);
|
||||||
|
-- To drop a column: ALTER TABLE llx_table DROP COLUMN oldname;
|
||||||
|
-- To change type of field: ALTER TABLE llx_table MODIFY COLUMN name varchar(60);
|
||||||
|
-- To drop a foreign key: ALTER TABLE llx_table DROP FOREIGN KEY fk_name;
|
||||||
|
-- To restrict request to Mysql version x.y use -- VMYSQLx.y
|
||||||
|
-- To restrict request to Pgsql version x.y use -- VPGSQLx.y
|
||||||
|
-- To make pk to be auto increment (mysql): VMYSQL4.3 ALTER TABLE llx_c_shipment_mode CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT;
|
||||||
|
-- To make pk to be auto increment (postgres): VPGSQL8.2 NOT POSSIBLE. MUST DELETE/CREATE TABLE
|
||||||
|
-- To set a field as NULL: VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name DROP NOT NULL;
|
||||||
|
-- To set a field as default NULL: VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET DEFAULT NULL;
|
||||||
|
-- -- VPGSQL8.2 DELETE FROM llx_usergroup_user WHERE fk_user NOT IN (SELECT rowid from llx_user);
|
||||||
|
-- -- VMYSQL4.1 DELETE FROM llx_usergroup_user WHERE fk_usergroup NOT IN (SELECT rowid from llx_usergroup);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS llx_c_hrm_function
|
||||||
|
(
|
||||||
|
rowid integer PRIMARY KEY,
|
||||||
|
pos tinyint DEFAULT 0 NOT NULL,
|
||||||
|
code varchar(16) NOT NULL,
|
||||||
|
label varchar(50),
|
||||||
|
c_level tinyint DEFAULT 0 NOT NULL,
|
||||||
|
active tinyint DEFAULT 1 NOT NULL
|
||||||
|
)ENGINE=innodb;
|
||||||
|
|
||||||
|
INSERT INTO llx_c_hrm_function (rowid, pos, code, label, c_level, active) VALUES(1, 5,'EXECBOARD', 'Executive board', 0, 1);
|
||||||
|
INSERT INTO llx_c_hrm_function (rowid, pos, code, label, c_level, active) VALUES(2, 10, 'MANAGDIR', 'Managing director', 1, 1);
|
||||||
|
INSERT INTO llx_c_hrm_function (rowid, pos, code, label, c_level, active) VALUES(3, 15, 'ACCOUNTMANAG', 'Account manager', 0, 1);
|
||||||
|
INSERT INTO llx_c_hrm_function (rowid, pos, code, label, c_level, active) VALUES(3, 20, 'ENGAGDIR', 'Engagement director', 1, 1);
|
||||||
|
INSERT INTO llx_c_hrm_function (rowid, pos, code, label, c_level, active) VALUES(4, 25, 'DIRECTOR', 'Director', 1, 1);
|
||||||
|
INSERT INTO llx_c_hrm_function (rowid, pos, code, label, c_level, active) VALUES(5, 30, 'PROJMANAG', 'Project manager', 0, 1);
|
||||||
|
INSERT INTO llx_c_hrm_function (rowid, pos, code, label, c_level, active) VALUES(6, 35, 'DEPHEAD', 'Department head', 0, 1);
|
||||||
|
INSERT INTO llx_c_hrm_function (rowid, pos, code, label, c_level, active) VALUES(7, 40, 'SECRETAR', 'Secretary', 0, 1);
|
||||||
|
INSERT INTO llx_c_hrm_function (rowid, pos, code, label, c_level, active) VALUES(8, 45, 'EMPLOYEE', 'Department employee', 0, 1);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS llx_c_hrm_department
|
||||||
|
(
|
||||||
|
rowid integer PRIMARY KEY,
|
||||||
|
pos tinyint DEFAULT 0 NOT NULL,
|
||||||
|
code varchar(16) NOT NULL,
|
||||||
|
label varchar(50),
|
||||||
|
active tinyint DEFAULT 1 NOT NULL
|
||||||
|
)ENGINE=innodb;
|
||||||
|
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(1, 5,'MANAGEMENT', 'Management', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(2, 10,'GESTION', 'Gestion', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(3, 15,'TRAINING', 'Training', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(4, 20,'IT', 'Inform. Technology (IT)', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(5, 25,'MARKETING', 'Marketing', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(6, 30,'SALES', 'Sales', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(7, 35,'LEGAL', 'Legal', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(8, 40,'FINANCIAL', 'Financial accounting', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(9, 45,'HUMANRES', 'Human resources', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(10, 50,'PURCHASING', 'Purchasing', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(11, 55,'SERVICES', 'Services', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(12, 60,'CUSTOMSERV', 'Customer service', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(13, 65,'CONSULTING', 'Consulting', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(14, 70,'LOGISTIC', 'Logistics', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(15, 75,'CONSTRUCT', 'Engineering/design', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(16, 80,'PRODUCTION', 'Manufacturing', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(17, 85,'QUALITY', 'Quality assurance', 1);
|
||||||
|
INSERT INTO llx_c_hrm_department (rowid, pos, code, label, active) VALUES(18, 85,'MAINT', 'Plant assurance', 1);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS llx_establishment (
|
||||||
|
rowid integer NOT NULL auto_increment PRIMARY KEY,
|
||||||
|
entity integer NOT NULL DEFAULT 1,
|
||||||
|
name varchar(50),
|
||||||
|
address varchar(255),
|
||||||
|
zip varchar(25),
|
||||||
|
town varchar(50),
|
||||||
|
fk_state integer DEFAULT 0,
|
||||||
|
fk_country integer DEFAULT 0,
|
||||||
|
profid1 varchar(20),
|
||||||
|
profid2 varchar(20),
|
||||||
|
profid3 varchar(20),
|
||||||
|
phone varchar(20),
|
||||||
|
fk_user_author integer NOT NULL,
|
||||||
|
fk_user_mod integer NOT NULL,
|
||||||
|
datec datetime NOT NULL,
|
||||||
|
tms timestamp NOT NULL,
|
||||||
|
status tinyint DEFAULT 1
|
||||||
|
) ENGINE=InnoDB;
|
||||||
|
|
||||||
@ -16,8 +16,8 @@
|
|||||||
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
--
|
--
|
||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
-- Table used for relations between elements of different types:
|
-- Table used for relations between an action event and a resource (in most cases
|
||||||
-- invoice-propal, propal-order, etc...
|
-- a 'user', but can also be a 'resource' like a room, or a hardware)
|
||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
|
|
||||||
create table llx_actioncomm_resources
|
create table llx_actioncomm_resources
|
||||||
|
|||||||
26
htdocs/install/mysql/tables/llx_c_hrm_department.sql
Normal file
26
htdocs/install/mysql/tables/llx_c_hrm_department.sql
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
--
|
||||||
|
-- Copyright (C) 2013 Jean-François Ferry <jfefe@aternatik.fr>
|
||||||
|
-- Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
|
--
|
||||||
|
-- This program is free software: you can redistribute it and/or modify
|
||||||
|
-- it under the terms of the GNU General Public License as published by
|
||||||
|
-- the Free Software Foundation, either version 3 of the License, or
|
||||||
|
-- (at your option) any later version.
|
||||||
|
--
|
||||||
|
-- This program is distributed in the hope that it will be useful,
|
||||||
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
-- GNU General Public License for more details.
|
||||||
|
--
|
||||||
|
-- You should have received a copy of the GNU General Public License
|
||||||
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
create table llx_c_hrm_department
|
||||||
|
(
|
||||||
|
rowid integer PRIMARY KEY,
|
||||||
|
pos tinyint DEFAULT 0 NOT NULL,
|
||||||
|
code varchar(16) NOT NULL,
|
||||||
|
label varchar(50),
|
||||||
|
active tinyint DEFAULT 1 NOT NULL
|
||||||
|
)ENGINE=innodb;
|
||||||
|
|
||||||
27
htdocs/install/mysql/tables/llx_c_hrm_function.sql
Normal file
27
htdocs/install/mysql/tables/llx_c_hrm_function.sql
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
--
|
||||||
|
-- Copyright (C) 2013 Jean-François Ferry <jfefe@aternatik.fr>
|
||||||
|
-- Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
|
--
|
||||||
|
-- This program is free software: you can redistribute it and/or modify
|
||||||
|
-- it under the terms of the GNU General Public License as published by
|
||||||
|
-- the Free Software Foundation, either version 3 of the License, or
|
||||||
|
-- (at your option) any later version.
|
||||||
|
--
|
||||||
|
-- This program is distributed in the hope that it will be useful,
|
||||||
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
-- GNU General Public License for more details.
|
||||||
|
--
|
||||||
|
-- You should have received a copy of the GNU General Public License
|
||||||
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
create table llx_c_hrm_function
|
||||||
|
(
|
||||||
|
rowid integer PRIMARY KEY,
|
||||||
|
pos tinyint DEFAULT 0 NOT NULL,
|
||||||
|
code varchar(16) NOT NULL,
|
||||||
|
label varchar(50),
|
||||||
|
c_level tinyint DEFAULT 0 NOT NULL,
|
||||||
|
active tinyint DEFAULT 1 NOT NULL
|
||||||
|
)ENGINE=innodb;
|
||||||
|
|
||||||
41
htdocs/install/mysql/tables/llx_establishment.sql
Normal file
41
htdocs/install/mysql/tables/llx_establishment.sql
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
-- ============================================================================
|
||||||
|
-- Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
|
--
|
||||||
|
-- This program is free software; you can redistribute it and/or modify
|
||||||
|
-- it under the terms of the GNU General Public License as published by
|
||||||
|
-- the Free Software Foundation; either version 3 of the License, or
|
||||||
|
-- (at your option) any later version.
|
||||||
|
--
|
||||||
|
-- This program is distributed in the hope that it will be useful,
|
||||||
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
-- GNU General Public License for more details.
|
||||||
|
--
|
||||||
|
-- You should have received a copy of the GNU General Public License
|
||||||
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
--
|
||||||
|
-- ============================================================================
|
||||||
|
--
|
||||||
|
-- Structure de la table llx_establishment
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS llx_establishment (
|
||||||
|
rowid integer NOT NULL auto_increment PRIMARY KEY,
|
||||||
|
entity integer NOT NULL DEFAULT 1,
|
||||||
|
name varchar(50),
|
||||||
|
address varchar(255),
|
||||||
|
zip varchar(25),
|
||||||
|
town varchar(50),
|
||||||
|
fk_state integer DEFAULT 0,
|
||||||
|
fk_country integer DEFAULT 0,
|
||||||
|
profid1 varchar(20),
|
||||||
|
profid2 varchar(20),
|
||||||
|
profid3 varchar(20),
|
||||||
|
phone varchar(20),
|
||||||
|
fk_user_author integer NOT NULL,
|
||||||
|
fk_user_mod integer NOT NULL,
|
||||||
|
datec datetime NOT NULL,
|
||||||
|
tms timestamp NOT NULL,
|
||||||
|
status tinyint DEFAULT 1
|
||||||
|
) ENGINE=InnoDB;
|
||||||
|
|
||||||
@ -26,5 +26,7 @@ create table llx_projet_task_time
|
|||||||
task_duration double,
|
task_duration double,
|
||||||
fk_user integer,
|
fk_user integer,
|
||||||
thm double(24,8),
|
thm double(24,8),
|
||||||
|
invoice_id integer DEFAULT NULL, -- If we need to invoice each line of timespent, we can save invoice id here
|
||||||
|
invoice_line_id integer DEFAULT NULL, -- If we need to invoice each line of timespent, we can save invoice line id here
|
||||||
note text
|
note text
|
||||||
)ENGINE=innodb;
|
)ENGINE=innodb;
|
||||||
|
|||||||
@ -26,6 +26,8 @@ create table llx_user
|
|||||||
ref_ext varchar(50), -- reference into an external system (not used by dolibarr)
|
ref_ext varchar(50), -- reference into an external system (not used by dolibarr)
|
||||||
ref_int varchar(50), -- reference into an internal system (deprecated)
|
ref_int varchar(50), -- reference into an internal system (deprecated)
|
||||||
|
|
||||||
|
employee tinyint DEFAULT 1, -- 1 if user is an employee
|
||||||
|
|
||||||
datec datetime,
|
datec datetime,
|
||||||
tms timestamp,
|
tms timestamp,
|
||||||
fk_user_creat integer,
|
fk_user_creat integer,
|
||||||
|
|||||||
@ -540,6 +540,8 @@ Module2900Name=GeoIPMaxmind
|
|||||||
Module2900Desc=GeoIP Maxmind conversions capabilities
|
Module2900Desc=GeoIP Maxmind conversions capabilities
|
||||||
Module3100Name=Skype
|
Module3100Name=Skype
|
||||||
Module3100Desc=Add a Skype button into card of adherents / third parties / contacts
|
Module3100Desc=Add a Skype button into card of adherents / third parties / contacts
|
||||||
|
Module4000Name=HRM
|
||||||
|
Module4000Desc=Human resources management
|
||||||
Module5000Name=Multi-company
|
Module5000Name=Multi-company
|
||||||
Module5000Desc=Allows you to manage multiple companies
|
Module5000Desc=Allows you to manage multiple companies
|
||||||
Module6000Name=Workflow
|
Module6000Name=Workflow
|
||||||
@ -934,7 +936,8 @@ DefaultMenuSmartphoneManager=Smartphone menu manager
|
|||||||
Skin=Skin theme
|
Skin=Skin theme
|
||||||
DefaultSkin=Default skin theme
|
DefaultSkin=Default skin theme
|
||||||
MaxSizeList=Max length for list
|
MaxSizeList=Max length for list
|
||||||
DefaultMaxSizeList=Default max length for list
|
DefaultMaxSizeList=Default max length for lists
|
||||||
|
DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
|
||||||
MessageOfDay=Message of the day
|
MessageOfDay=Message of the day
|
||||||
MessageLogin=Login page message
|
MessageLogin=Login page message
|
||||||
PermanentLeftSearchForm=Permanent search form on left menu
|
PermanentLeftSearchForm=Permanent search form on left menu
|
||||||
@ -1557,7 +1560,9 @@ AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filt
|
|||||||
AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
|
AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
|
||||||
AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
|
AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
|
||||||
##### ClickToDial #####
|
##### ClickToDial #####
|
||||||
ClickToDialDesc=This module allows to add an icon after phone numbers. A click on this icon will call a server with a particular URL you define below. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
|
ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
|
||||||
|
ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
|
||||||
|
ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or an interface install on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution, you must set this to "No" and fill next field.
|
||||||
##### Point Of Sales (CashDesk) #####
|
##### Point Of Sales (CashDesk) #####
|
||||||
CashDesk=Point of sales
|
CashDesk=Point of sales
|
||||||
CashDeskSetup=Point of sales module setup
|
CashDeskSetup=Point of sales module setup
|
||||||
|
|||||||
@ -216,8 +216,8 @@ DateEcheance=Due date limit
|
|||||||
DateInvoice=Invoice date
|
DateInvoice=Invoice date
|
||||||
NoInvoice=No invoice
|
NoInvoice=No invoice
|
||||||
ClassifyBill=Classify invoice
|
ClassifyBill=Classify invoice
|
||||||
SupplierBillsToPay=Suppliers invoices to pay
|
SupplierBillsToPay=Unpaid supplier invoices
|
||||||
CustomerBillsUnpaid=Unpaid customers invoices
|
CustomerBillsUnpaid=Unpaid customer invoices
|
||||||
NonPercuRecuperable=Non-recoverable
|
NonPercuRecuperable=Non-recoverable
|
||||||
SetConditions=Set payment terms
|
SetConditions=Set payment terms
|
||||||
SetMode=Set payment mode
|
SetMode=Set payment mode
|
||||||
|
|||||||
@ -305,7 +305,7 @@ ListOfCustomersContacts=List of customer contacts
|
|||||||
ListOfSuppliersContacts=List of supplier contacts
|
ListOfSuppliersContacts=List of supplier contacts
|
||||||
ListOfCompanies=List of companies
|
ListOfCompanies=List of companies
|
||||||
ListOfThirdParties=List of third parties
|
ListOfThirdParties=List of third parties
|
||||||
ShowCompany=Show company
|
ShowCompany=Show thirdparty
|
||||||
ShowContact=Show contact
|
ShowContact=Show contact
|
||||||
ContactsAllShort=All (No filter)
|
ContactsAllShort=All (No filter)
|
||||||
ContactType=Contact type
|
ContactType=Contact type
|
||||||
|
|||||||
13
htdocs/langs/en_US/hrm.lang
Normal file
13
htdocs/langs/en_US/hrm.lang
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# Dolibarr language file - en_US - hrm
|
||||||
|
CHARSET=UTF-8
|
||||||
|
|
||||||
|
Establishments=Establishments
|
||||||
|
Establishment=Establishment
|
||||||
|
NewEstablishment=New establishment
|
||||||
|
DeleteEstablishment=Delete establishment
|
||||||
|
ConfirmDeleteEstablishment=Are-you sure to delete this establishment ?
|
||||||
|
OpenEtablishment=Open establishment
|
||||||
|
CloseEtablishment=Close establishment
|
||||||
|
Employees=Employees
|
||||||
|
Employee=Employee
|
||||||
|
NewEmployee=New employee
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user