Merge branch 'develop' of git://github.com/Dolibarr/dolibarr.git into extrafields
Conflicts: htdocs/comm/propal.php
This commit is contained in:
commit
cf6f4405cb
@ -27,6 +27,7 @@ For users:
|
|||||||
- New: [ task #748 ] Add a link "Dolibarr" into left menu
|
- New: [ task #748 ] Add a link "Dolibarr" into left menu
|
||||||
- New: Script email_unpaid_invoices_to_representative accepts now a parameter test
|
- New: Script email_unpaid_invoices_to_representative accepts now a parameter test
|
||||||
and a delay.
|
and a delay.
|
||||||
|
- New: Can define a different clicktodial setup per user.
|
||||||
- First change to prepare feature click to print for PDF.
|
- First change to prepare feature click to print for PDF.
|
||||||
|
|
||||||
For translators:
|
For translators:
|
||||||
|
|||||||
@ -1,15 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#------------------------------------------------------
|
|
||||||
# Script to find files that are not Unix encoded
|
|
||||||
#
|
|
||||||
# Laurent Destailleur - eldy@users.sourceforge.net
|
|
||||||
#------------------------------------------------------
|
|
||||||
# Usage: finddosfiles.sh
|
|
||||||
#------------------------------------------------------
|
|
||||||
|
|
||||||
# To detec
|
|
||||||
find . -type f -iname "*.php" -exec file "{}" + | grep CRLF
|
|
||||||
|
|
||||||
# To convert
|
|
||||||
#find . -type f -iname "*.php" -exec dos2unix "{}" +;
|
|
||||||
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Checks if files contains UTF-8 BOM
|
|
||||||
# in dolibarr source tree excluding
|
|
||||||
# git repository, custom modules and incuded libraries
|
|
||||||
#
|
|
||||||
# Raphaël Doursenaud - rdoursenaud@gpcsolutions.fr
|
|
||||||
grep -rlI \
|
|
||||||
--exclude-dir='.git' --exclude-dir='includes' --exclude-dir='custom' \
|
|
||||||
$'\xEF\xBB\xBF' .
|
|
||||||
30
dev/fixdosfiles.sh
Executable file
30
dev/fixdosfiles.sh
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#------------------------------------------------------
|
||||||
|
# Script to find files that are not Unix encoded
|
||||||
|
#
|
||||||
|
# Laurent Destailleur - eldy@users.sourceforge.net
|
||||||
|
#------------------------------------------------------
|
||||||
|
# Usage: fixdosfiles.sh [list|fix]
|
||||||
|
#------------------------------------------------------
|
||||||
|
|
||||||
|
# Syntax
|
||||||
|
if [ "x$1" != "xlist" -a "x$1" != "xfix" ]
|
||||||
|
then
|
||||||
|
echo "Usage: fixdosfiles.sh [list|fix]"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# To detec
|
||||||
|
if [ "x$1" = "xlist" ]
|
||||||
|
then
|
||||||
|
find . -iname "*.php" -o -iname "*.sh" -o -iname "*.pl" -o -iname "*.lang" -o -iname "*.txt" -exec file "{}" + | grep -v 'htdocs\/includes' | grep CRLF
|
||||||
|
fi
|
||||||
|
|
||||||
|
# To convert
|
||||||
|
if [ "x$1" = "xfix" ]
|
||||||
|
then
|
||||||
|
for fic in `find . -iname "*.php" -o -iname "*.sh" -o -iname "*.pl" -o -iname "*.lang" -o -iname "*.txt" -exec file "{}" + | grep -v 'htdocs\/includes' | grep CRLF | awk -F':' '{ print $1 }' `
|
||||||
|
do
|
||||||
|
echo "Fix file $fic"
|
||||||
|
dos2unix $fic
|
||||||
|
done;
|
||||||
|
fi
|
||||||
33
dev/fixutf8bomfiles.sh
Executable file
33
dev/fixutf8bomfiles.sh
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Checks of fix files contains UTF-8 BOM in dolibarr source tree,
|
||||||
|
# excluding git repository, custom modules and included libraries.
|
||||||
|
#
|
||||||
|
# Raphaël Doursenaud - rdoursenaud@gpcsolutions.fr
|
||||||
|
# Laurent Destailleur eldy@users.sourceforge.net
|
||||||
|
#------------------------------------------------------
|
||||||
|
# Usage: fixutf8bomfiles.sh [list|fix]
|
||||||
|
#------------------------------------------------------
|
||||||
|
|
||||||
|
# Syntax
|
||||||
|
if [ "x$1" != "xlist" -a "x$1" != "xfix" ]
|
||||||
|
then
|
||||||
|
echo "Usage: fixutf8bomfiles.sh [list|fix]"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# To detec
|
||||||
|
if [ "x$1" = "xlist" ]
|
||||||
|
then
|
||||||
|
#find . -iname '*.php' -print0 -o -iname '*.sh' -print0 -o -iname '*.pl' -print0 -o -iname '*.lang' -print0 -o -iname '*.txt' -print0 | xargs -0 awk '/^\xEF\xBB\xBF/ {print FILENAME} {nextfile}'
|
||||||
|
grep -rlIZ --include='*.php' --include='*.sh' --include='*.pl' --include='*.lang' --include='*.txt' --exclude-dir='.git' --exclude-dir='includes' --exclude-dir='custom' . . | xargs -0 awk '/^\xEF\xBB\xBF/ {print FILENAME} {nextfile}'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# To convert
|
||||||
|
if [ "x$1" = "xfix" ]
|
||||||
|
then
|
||||||
|
for fic in `grep -rlIZ --include='*.php' --include='*.sh' --include='*.pl' --include='*.lang' --include='*.txt' --exclude-dir='.git' --exclude-dir='includes' --exclude-dir='custom' . . | xargs -0 awk '/^\xEF\xBB\xBF/ {print FILENAME} {nextfile}'`
|
||||||
|
do
|
||||||
|
echo "Fixing $fic"
|
||||||
|
sed -i '1s/^\xEF\xBB\xBF//' $fic
|
||||||
|
done;
|
||||||
|
fi
|
||||||
@ -1,15 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Removes UTF-8 BOM from a file list on STDIN
|
|
||||||
# Use by piping the output of a findutf8bom script
|
|
||||||
#
|
|
||||||
# Raphaël Doursenaud - rdoursenaud@gpcsolutions.fr
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# cd dirwithfiles
|
|
||||||
# ls | /path/dev/removeutf8bom.sh
|
|
||||||
|
|
||||||
while read f; do
|
|
||||||
echo "Fixing $f"
|
|
||||||
sed -i '1s/^\xEF\xBB\xBF//' $f
|
|
||||||
done
|
|
||||||
@ -40,8 +40,8 @@ $error=0;
|
|||||||
|
|
||||||
|
|
||||||
// -------------------- START OF YOUR CODE HERE --------------------
|
// -------------------- START OF YOUR CODE HERE --------------------
|
||||||
@set_time_limit(0); // No timeout for this script
|
@set_time_limit(0); // No timeout for this script
|
||||||
define('EVEN_IF_ONLY_LOGIN_ALLOWED',1); // Set this define to 0 if you want to lock your script when dolibarr setup is "locked to admin user only".
|
define('EVEN_IF_ONLY_LOGIN_ALLOWED',1); // Set this define to 0 if you want to lock your script when dolibarr setup is "locked to admin user only".
|
||||||
|
|
||||||
// Include and load Dolibarr environment variables
|
// Include and load Dolibarr environment variables
|
||||||
require_once($path."../../htdocs/master.inc.php");
|
require_once($path."../../htdocs/master.inc.php");
|
||||||
|
|||||||
@ -169,7 +169,7 @@ print $form->selectyesno('constvalue',(! empty($conf->global->ADHERENT_DEFAULT_S
|
|||||||
print '</td><td align="center" width="80">';
|
print '</td><td align="center" width="80">';
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans("Update").'" name="Button">';
|
print '<input type="submit" class="button" value="'.$langs->trans("Update").'" name="Button">';
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
// Insert subscription into bank account
|
// Insert subscription into bank account
|
||||||
$var=!$var;
|
$var=!$var;
|
||||||
@ -179,41 +179,41 @@ print '<input type="hidden" name="action" value="update">';
|
|||||||
print '<input type="hidden" name="constname" value="ADHERENT_BANK_USE">';
|
print '<input type="hidden" name="constname" value="ADHERENT_BANK_USE">';
|
||||||
print '<tr '.$bc[$var].'><td>'.$langs->trans("MoreActionsOnSubscription").'</td>';
|
print '<tr '.$bc[$var].'><td>'.$langs->trans("MoreActionsOnSubscription").'</td>';
|
||||||
$arraychoices=array('0'=>$langs->trans("None"));
|
$arraychoices=array('0'=>$langs->trans("None"));
|
||||||
if (! empty($conf->banque->enabled)) $arraychoices['bankdirect']=$langs->trans("MoreActionBankDirect");
|
if (! empty($conf->banque->enabled)) $arraychoices['bankdirect']=$langs->trans("MoreActionBankDirect");
|
||||||
if (! empty($conf->banque->enabled) && ! empty($conf->societe->enabled) && ! empty($conf->facture->enabled)) $arraychoices['invoiceonly']=$langs->trans("MoreActionInvoiceOnly");
|
if (! empty($conf->banque->enabled) && ! empty($conf->societe->enabled) && ! empty($conf->facture->enabled)) $arraychoices['invoiceonly']=$langs->trans("MoreActionInvoiceOnly");
|
||||||
if (! empty($conf->banque->enabled) && ! empty($conf->societe->enabled) && ! empty($conf->facture->enabled)) $arraychoices['bankviainvoice']=$langs->trans("MoreActionBankViaInvoice");
|
if (! empty($conf->banque->enabled) && ! empty($conf->societe->enabled) && ! empty($conf->facture->enabled)) $arraychoices['bankviainvoice']=$langs->trans("MoreActionBankViaInvoice");
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print $form->selectarray('constvalue',$arraychoices,$conf->global->ADHERENT_BANK_USE,0);
|
print $form->selectarray('constvalue',$arraychoices,$conf->global->ADHERENT_BANK_USE,0);
|
||||||
print '</td><td align="center" width="80">';
|
print '</td><td align="center" width="80">';
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans("Update").'" name="Button">';
|
print '<input type="submit" class="button" value="'.$langs->trans("Update").'" name="Button">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
// Use vat for invoice creation
|
// Use vat for invoice creation
|
||||||
if ($conf->facture->enabled)
|
if ($conf->facture->enabled)
|
||||||
{
|
{
|
||||||
$var=!$var;
|
$var=!$var;
|
||||||
print '<form action="adherent.php" method="POST">';
|
print '<form action="adherent.php" method="POST">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="action" value="update">';
|
print '<input type="hidden" name="action" value="update">';
|
||||||
print '<input type="hidden" name="constname" value="ADHERENT_VAT_FOR_SUBSCRIPTIONS">';
|
print '<input type="hidden" name="constname" value="ADHERENT_VAT_FOR_SUBSCRIPTIONS">';
|
||||||
print '<tr '.$bc[$var].'><td>'.$langs->trans("VATToUseForSubscriptions").'</td>';
|
print '<tr '.$bc[$var].'><td>'.$langs->trans("VATToUseForSubscriptions").'</td>';
|
||||||
if (! empty($conf->banque->enabled))
|
if (! empty($conf->banque->enabled))
|
||||||
{
|
{
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print $form->selectarray('constvalue', array('0'=>$langs->trans("NoVatOnSubscription"),'defaultforfoundationcountry'=>$langs->trans("Default")), (empty($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS)?'0':$conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS), 0);
|
print $form->selectarray('constvalue', array('0'=>$langs->trans("NoVatOnSubscription"),'defaultforfoundationcountry'=>$langs->trans("Default")), (empty($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS)?'0':$conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS), 0);
|
||||||
print '</td><td align="center" width="80">';
|
print '</td><td align="center" width="80">';
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans("Update").'" name="Button">';
|
print '<input type="submit" class="button" value="'.$langs->trans("Update").'" name="Button">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print '<td align="right" colspan="2">';
|
print '<td align="right" colspan="2">';
|
||||||
print $langs->trans("WarningModuleNotActive",$langs->transnoentities("Module85Name"));
|
print $langs->trans("WarningModuleNotActive",$langs->transnoentities("Module85Name"));
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
print '</form>';
|
print '</form>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -362,7 +362,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'cotisation' && ! $
|
|||||||
|
|
||||||
// Add line to draft invoice
|
// Add line to draft invoice
|
||||||
$idprodsubscription=0;
|
$idprodsubscription=0;
|
||||||
$vattouse=0;
|
$vattouse=0;
|
||||||
if (isset($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS) && $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS == 'defaultforfoundationcountry')
|
if (isset($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS) && $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS == 'defaultforfoundationcountry')
|
||||||
{
|
{
|
||||||
$vattouse=get_default_tva($mysoc, $mysoc, $idprodsubscription);
|
$vattouse=get_default_tva($mysoc, $mysoc, $idprodsubscription);
|
||||||
|
|||||||
@ -41,6 +41,10 @@ class Adherent extends CommonObject
|
|||||||
public $table_element='adherent';
|
public $table_element='adherent';
|
||||||
protected $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
|
protected $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
|
||||||
|
|
||||||
|
var $error;
|
||||||
|
var $errors;
|
||||||
|
var $mesgs;
|
||||||
|
|
||||||
var $id;
|
var $id;
|
||||||
var $ref;
|
var $ref;
|
||||||
var $civilite_id;
|
var $civilite_id;
|
||||||
@ -1370,10 +1374,10 @@ class Adherent extends CommonObject
|
|||||||
*/
|
*/
|
||||||
function add_to_abo()
|
function add_to_abo()
|
||||||
{
|
{
|
||||||
global $conf;
|
global $conf,$langs;
|
||||||
|
|
||||||
include_once DOL_DOCUMENT_ROOT.'/mailmanspip/class/mailmanspip.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/mailmanspip/class/mailmanspip.class.php';
|
||||||
$mailmanspip=new MailmanSpip($db);
|
$mailmanspip=new MailmanSpip($this->db);
|
||||||
|
|
||||||
$err=0;
|
$err=0;
|
||||||
|
|
||||||
@ -1386,6 +1390,16 @@ class Adherent extends CommonObject
|
|||||||
$this->error=$mailmanspip->error;
|
$this->error=$mailmanspip->error;
|
||||||
$err+=1;
|
$err+=1;
|
||||||
}
|
}
|
||||||
|
foreach ($mailmanspip->mladded_ko as $tmplist => $tmpemail)
|
||||||
|
{
|
||||||
|
$langs->load("errors");
|
||||||
|
$this->errors[]=$langs->trans("ErrorFailedToAddToMailmanList",$tmpemail,$tmplist);
|
||||||
|
}
|
||||||
|
foreach ($mailmanspip->mladded_ok as $tmplist => $tmpemail)
|
||||||
|
{
|
||||||
|
$langs->load("mailmanspip");
|
||||||
|
$this->mesgs[]=$langs->trans("SuccessToAddToMailmanList",$tmpemail,$tmplist);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// spip
|
// spip
|
||||||
@ -1400,11 +1414,10 @@ class Adherent extends CommonObject
|
|||||||
}
|
}
|
||||||
if ($err)
|
if ($err)
|
||||||
{
|
{
|
||||||
// error
|
|
||||||
return -$err;
|
return -$err;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1418,10 +1431,10 @@ class Adherent extends CommonObject
|
|||||||
*/
|
*/
|
||||||
function del_to_abo()
|
function del_to_abo()
|
||||||
{
|
{
|
||||||
global $conf;
|
global $conf,$langs;
|
||||||
|
|
||||||
include_once DOL_DOCUMENT_ROOT.'/mailmanspip/class/mailmanspip.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/mailmanspip/class/mailmanspip.class.php';
|
||||||
$mailmanspip=new MailmanSpip($db);
|
$mailmanspip=new MailmanSpip($this->db);
|
||||||
|
|
||||||
$err=0;
|
$err=0;
|
||||||
|
|
||||||
@ -1431,8 +1444,20 @@ class Adherent extends CommonObject
|
|||||||
$result=$mailmanspip->del_to_mailman($this);
|
$result=$mailmanspip->del_to_mailman($this);
|
||||||
if ($result < 0)
|
if ($result < 0)
|
||||||
{
|
{
|
||||||
|
$this->error=$mailmanspip->error;
|
||||||
$err+=1;
|
$err+=1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach ($mailmanspip->mlremoved_ko as $tmplist => $tmpemail)
|
||||||
|
{
|
||||||
|
$langs->load("errors");
|
||||||
|
$this->errors[]=$langs->trans("ErrorFailedToRemoveToMailmanList",$tmpemail,$tmplist);
|
||||||
|
}
|
||||||
|
foreach ($mailmanspip->mlremoved_ok as $tmplist => $tmpemail)
|
||||||
|
{
|
||||||
|
$langs->load("mailmanspip");
|
||||||
|
$this->mesgs[]=$langs->trans("SuccessToRemoveToMailmanList",$tmpemail,$tmplist);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($conf->global->ADHERENT_USE_SPIP && ! empty($conf->mailmanspip->enabled))
|
if ($conf->global->ADHERENT_USE_SPIP && ! empty($conf->mailmanspip->enabled))
|
||||||
|
|||||||
@ -353,15 +353,24 @@ if ($action == 'update' && ! $_POST["cancel"] && $user->rights->adherent->creer)
|
|||||||
{
|
{
|
||||||
if ($object->oldcopy->del_to_abo() < 0)
|
if ($object->oldcopy->del_to_abo() < 0)
|
||||||
{
|
{
|
||||||
// error
|
if (! empty($object->oldcopy->error)) setEventMessage($langs->trans("ErrorFailedToRemoveToMailmanList").': '.$object->oldcopy->error, 'errors');
|
||||||
$errmsgs[]= $langs->trans("FailedToCleanMailmanList").': '.$object->error."<br>\n";
|
setEventMessage($object->oldcopy->errors, 'errors');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
setEventMessage($object->oldcopy->mesgs,'mesgs');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($object->add_to_abo() < 0) // We add subscription if new email or new type (new type may means more mailing-list to subscribe)
|
// We add subscription if new email or new type (new type may means more mailing-list to subscribe)
|
||||||
|
if ($object->add_to_abo() < 0)
|
||||||
|
{
|
||||||
|
if (! empty($object->error)) setEventMessage($langs->trans("ErrorFailedToAddToMailmanList").': '.$object->error, 'errors');
|
||||||
|
setEventMessage($object->errors, 'errors');
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
// error
|
setEventMessage($object->mesgs, 'mesgs');
|
||||||
$errmsgs[]= $langs->trans("FailedToAddToMailmanList").': '.$object->error."<br>\n";
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$rowid=$object->id;
|
$rowid=$object->id;
|
||||||
|
|||||||
@ -197,7 +197,7 @@ if ($conf->use_javascript_ajax)
|
|||||||
|
|
||||||
|
|
||||||
//print '</td><td class="notopnoleftnoright" valign="top">';
|
//print '</td><td class="notopnoleftnoright" valign="top">';
|
||||||
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
|
|
||||||
$var=true;
|
$var=true;
|
||||||
@ -419,7 +419,7 @@ print "</tr>\n";
|
|||||||
print "</table><br>\n";
|
print "</table><br>\n";
|
||||||
|
|
||||||
//print '</td></tr></table>';
|
//print '</td></tr></table>';
|
||||||
print '<div></div></div>';
|
print '</div></div></div>';
|
||||||
|
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|||||||
@ -139,9 +139,9 @@ $head=agenda_prepare_head();
|
|||||||
|
|
||||||
dol_fiche_head($head, 'autoactions', $langs->trans("Agenda"));
|
dol_fiche_head($head, 'autoactions', $langs->trans("Agenda"));
|
||||||
|
|
||||||
print $langs->trans("AgendaAutoActionDesc")."<br>\n";
|
print $langs->trans("AgendaAutoActionDesc")."<br>\n";
|
||||||
print $langs->trans("OnlyActiveElementsAreShown").'<br>';
|
print $langs->trans("OnlyActiveElementsAreShown").'<br>';
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
|
|
||||||
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
|||||||
@ -64,8 +64,8 @@ if ($actionsave)
|
|||||||
{
|
{
|
||||||
$name=trim(GETPOST('agenda_ext_name'.$i),'alpha');
|
$name=trim(GETPOST('agenda_ext_name'.$i),'alpha');
|
||||||
$src=trim(GETPOST('agenda_ext_src'.$i,'alpha'));
|
$src=trim(GETPOST('agenda_ext_src'.$i,'alpha'));
|
||||||
$color=trim(GETPOST('agenda_ext_color'.$i,'alpha'));
|
$color=trim(GETPOST('agenda_ext_color'.$i,'alpha'));
|
||||||
if ($color=='-1') $color='';
|
if ($color=='-1') $color='';
|
||||||
|
|
||||||
if (! empty($src) && ! preg_match('/^(http\s*|ftp\s*):/', $src))
|
if (! empty($src) && ! preg_match('/^(http\s*|ftp\s*):/', $src))
|
||||||
{
|
{
|
||||||
@ -148,32 +148,32 @@ $var=!$var;
|
|||||||
print "<tr ".$bc[$var].">";
|
print "<tr ".$bc[$var].">";
|
||||||
print "<td>".$langs->trans("ExtSitesEnableThisTool")."</td>";
|
print "<td>".$langs->trans("ExtSitesEnableThisTool")."</td>";
|
||||||
print '<td align="center">';
|
print '<td align="center">';
|
||||||
if ($conf->use_javascript_ajax)
|
if ($conf->use_javascript_ajax)
|
||||||
{
|
{
|
||||||
print ajax_constantonoff('AGENDA_DISABLE_EXT',array('enabled'=>array(0=>'.hideifnotset')),null,1);
|
print ajax_constantonoff('AGENDA_DISABLE_EXT',array('enabled'=>array(0=>'.hideifnotset')),null,1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if($conf->global->AGENDA_DISABLE_EXT == 0)
|
if($conf->global->AGENDA_DISABLE_EXT == 0)
|
||||||
{
|
{
|
||||||
print '<a href="'.$_SERVER['PHP_SELF'].'?save=1&AGENDA_DISABLE_EXT=1">'.img_picto($langs->trans("Enabled"),'on').'</a>';
|
print '<a href="'.$_SERVER['PHP_SELF'].'?save=1&AGENDA_DISABLE_EXT=1">'.img_picto($langs->trans("Enabled"),'on').'</a>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print '<a href="'.$_SERVER['PHP_SELF'].'?save=1&AGENDA_DISABLE_EXT=0">'.img_picto($langs->trans("Disabled"),'off').'</a>';
|
print '<a href="'.$_SERVER['PHP_SELF'].'?save=1&AGENDA_DISABLE_EXT=0">'.img_picto($langs->trans("Disabled"),'off').'</a>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print "</td>";
|
print "</td>";
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
|
|
||||||
// Nb of agenda
|
// Nb of agenda
|
||||||
$var=!$var;
|
$var=!$var;
|
||||||
print "<tr ".$bc[$var].">";
|
print "<tr ".$bc[$var].">";
|
||||||
print "<td>".$langs->trans("ExtSitesNbOfAgenda")."</td>";
|
print "<td>".$langs->trans("ExtSitesNbOfAgenda")."</td>";
|
||||||
print '<td align="center">';
|
print '<td align="center">';
|
||||||
print '<input class="flat hideifnotset" type="text" size="2" id="AGENDA_EXT_NB" name="AGENDA_EXT_NB" value="'.$conf->global->AGENDA_EXT_NB.'">';
|
print '<input class="flat hideifnotset" type="text" size="2" id="AGENDA_EXT_NB" name="AGENDA_EXT_NB" value="'.$conf->global->AGENDA_EXT_NB.'">';
|
||||||
print "</td>";
|
print "</td>";
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
print "<br>";
|
print "<br>";
|
||||||
|
|||||||
@ -80,8 +80,8 @@ $head=agenda_prepare_head();
|
|||||||
|
|
||||||
dol_fiche_head($head, 'xcal', $langs->trans("Agenda"));
|
dol_fiche_head($head, 'xcal', $langs->trans("Agenda"));
|
||||||
|
|
||||||
print $langs->trans("AgendaSetupOtherDesc")."<br>\n";
|
print $langs->trans("AgendaSetupOtherDesc")."<br>\n";
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
|
|
||||||
print '<form name="agendasetupform" action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
print '<form name="agendasetupform" action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
|||||||
@ -38,7 +38,7 @@ $action = GETPOST("action");
|
|||||||
*/
|
*/
|
||||||
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_URL", GETPOST("url"), 'chaine', 0, '', $conf->entity);
|
||||||
if ($result >= 0)
|
if ($result >= 0)
|
||||||
{
|
{
|
||||||
$mesg = "<font class=\"ok\">".$langs->trans("SetupSaved")."</font>";
|
$mesg = "<font class=\"ok\">".$langs->trans("SetupSaved")."</font>";
|
||||||
@ -54,6 +54,8 @@ if ($action == 'setvalue' && $user->admin)
|
|||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
$user->fetch_clicktodial();
|
||||||
|
|
||||||
$wikihelp='EN:Module_ClickToDial_En|FR:Module_ClickToDial|ES:Módulo_ClickTodial_Es';
|
$wikihelp='EN:Module_ClickToDial_En|FR:Module_ClickToDial|ES:Módulo_ClickTodial_Es';
|
||||||
llxHeader('',$langs->trans("ClickToDialSetup"),$wikihelp);
|
llxHeader('',$langs->trans("ClickToDialSetup"),$wikihelp);
|
||||||
|
|
||||||
@ -69,33 +71,67 @@ print '<input type="hidden" name="action" value="setvalue">';
|
|||||||
|
|
||||||
$var=true;
|
$var=true;
|
||||||
|
|
||||||
print '<table class="nobordernopadding" 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 width="120">'.$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 valign="top">';
|
||||||
print $langs->trans("URL").'</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="url" 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__';
|
||||||
|
|
||||||
|
//if (! empty($user->clicktodial_url))
|
||||||
|
//{
|
||||||
|
print '<br>';
|
||||||
|
print info_admin($langs->trans("ValueOverwrittenByUserSetup"));
|
||||||
|
//}
|
||||||
|
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '<tr><td colspan="3" align="center"><br><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td></tr>';
|
print '</table>';
|
||||||
print '</table></form>';
|
|
||||||
|
|
||||||
/*if (! empty($conf->global->CLICKTODIAL_URL))
|
print '<center><br><input type="submit" class="button" value="'.$langs->trans("Modify").'"></center>';
|
||||||
{
|
|
||||||
print $langs->trans("Test");
|
print '</form><br><br>';
|
||||||
// Add a phone number to test
|
|
||||||
}
|
|
||||||
*/
|
if (! empty($conf->global->CLICKTODIAL_URL))
|
||||||
|
{
|
||||||
|
$user->fetch_clicktodial();
|
||||||
|
|
||||||
|
$phonefortest=$mysoc->phone;
|
||||||
|
if (GETPOST('phonefortest')) $phonefortest=GETPOST('phonefortest');
|
||||||
|
|
||||||
|
print '<form action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
|
print $langs->trans("LinkToTestClickToDial",$user->login).' : ';
|
||||||
|
print '<input class="flat" type="text" name="phonefortest" value="'.dol_escape_htmltag($phonefortest).'">';
|
||||||
|
print '<input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans("RefreshPhoneLink")).'">';
|
||||||
|
print '</form>';
|
||||||
|
|
||||||
|
$setupcomplete=1;
|
||||||
|
if (preg_match('/__LOGIN__/',$conf->global->CLICKTODIAL_URL) && empty($user->clicktodial_login)) $setupcomplete=0;
|
||||||
|
if (preg_match('/__PASSWORD__/',$conf->global->CLICKTODIAL_URL) && empty($user->clicktodial_password)) $setupcomplete=0;
|
||||||
|
if (preg_match('/__PHONEFROM__/',$conf->global->CLICKTODIAL_URL) && empty($user->clicktodial_poste)) $setupcomplete=0;
|
||||||
|
|
||||||
|
if ($setupcomplete)
|
||||||
|
{
|
||||||
|
print $langs->trans("LinkToTest",$user->login).': '.dol_print_phone($phonefortest, '', 0, 0, 'AC_TEL');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$langs->load("errors");
|
||||||
|
print '<div class="warning">'.$langs->trans("WarningClickToDialUserSetupNotComplete").'</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
dol_htmloutput_mesg($mesg);
|
dol_htmloutput_mesg($mesg);
|
||||||
|
|
||||||
$db->close();
|
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
?>
|
|
||||||
|
$db->close();
|
||||||
|
?>
|
||||||
@ -122,7 +122,7 @@ if (! empty($consts) && $action == 'delete')
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($nbdeleted > 0) setEventMessage($langs->trans("RecordDeleted"));
|
if ($nbdeleted > 0) setEventMessage($langs->trans("RecordDeleted"));
|
||||||
$action='';
|
$action='';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete line from delete picto
|
// Delete line from delete picto
|
||||||
@ -130,7 +130,7 @@ if ($action == 'delete')
|
|||||||
{
|
{
|
||||||
if (dolibarr_del_const($db, $rowid, $entity) >= 0)
|
if (dolibarr_del_const($db, $rowid, $entity) >= 0)
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("RecordDeleted"));
|
setEventMessage($langs->trans("RecordDeleted"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -222,8 +222,8 @@ print '</form>';
|
|||||||
print "\n";
|
print "\n";
|
||||||
|
|
||||||
print '<form action="'.$_SERVER["PHP_SELF"].((empty($user->entity) && $debug)?'?debug=1':'').'" method="POST">';
|
print '<form action="'.$_SERVER["PHP_SELF"].((empty($user->entity) && $debug)?'?debug=1':'').'" method="POST">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" id="action" name="action" value="">';
|
print '<input type="hidden" id="action" name="action" value="">';
|
||||||
|
|
||||||
// Show constants
|
// Show constants
|
||||||
$sql = "SELECT";
|
$sql = "SELECT";
|
||||||
|
|||||||
@ -125,8 +125,8 @@ $tablib[20]= "DictionnaryOrderMethods";
|
|||||||
$tablib[21]= "DictionnaryAvailability";
|
$tablib[21]= "DictionnaryAvailability";
|
||||||
$tablib[22]= "DictionnarySource";
|
$tablib[22]= "DictionnarySource";
|
||||||
$tablib[23]= "DictionnaryAccountancyplan";
|
$tablib[23]= "DictionnaryAccountancyplan";
|
||||||
$tablib[24]= "DictionnaryAccountancysystem";
|
$tablib[24]= "DictionnaryAccountancysystem";
|
||||||
$tablib[25]= "DictionnaryRevenueStamp";
|
$tablib[25]= "DictionnaryRevenueStamp";
|
||||||
|
|
||||||
// Requete pour extraction des donnees des dictionnaires
|
// Requete pour extraction des donnees des dictionnaires
|
||||||
$tabsql=array();
|
$tabsql=array();
|
||||||
@ -153,8 +153,8 @@ $tabsql[20]= "SELECT rowid as rowid, code, libelle, active FROM ".MAIN_DB_PREF
|
|||||||
$tabsql[21]= "SELECT c.rowid as rowid, code, label, active FROM ".MAIN_DB_PREFIX."c_availability AS c";
|
$tabsql[21]= "SELECT c.rowid as rowid, code, label, active FROM ".MAIN_DB_PREFIX."c_availability AS c";
|
||||||
$tabsql[22]= "SELECT rowid as rowid, code, label, active FROM ".MAIN_DB_PREFIX."c_input_reason";
|
$tabsql[22]= "SELECT rowid as rowid, code, label, active FROM ".MAIN_DB_PREFIX."c_input_reason";
|
||||||
$tabsql[23]= "SELECT rowid as rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number as accountancy_code, account_parent, label, active FROM ".MAIN_DB_PREFIX."accountingaccount";
|
$tabsql[23]= "SELECT rowid as rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number as accountancy_code, account_parent, label, active FROM ".MAIN_DB_PREFIX."accountingaccount";
|
||||||
$tabsql[24]= "SELECT s.rowid as rowid, pcg_version, s.fk_pays as country_id, p.code as country_code, p.libelle as pays, s.label, s.active FROM ".MAIN_DB_PREFIX."accounting_system as s, ".MAIN_DB_PREFIX."c_pays as p WHERE s.fk_pays=p.rowid and p.active=1";
|
$tabsql[24]= "SELECT s.rowid as rowid, pcg_version, s.fk_pays as country_id, p.code as country_code, p.libelle as pays, s.label, s.active FROM ".MAIN_DB_PREFIX."accounting_system as s, ".MAIN_DB_PREFIX."c_pays as p WHERE s.fk_pays=p.rowid and p.active=1";
|
||||||
$tabsql[25]= "SELECT t.rowid, t.taux, p.libelle as country, p.code as country_code, t.fk_pays as country_id, t.note, t.active, t.accountancy_code_sell, t.accountancy_code_buy FROM ".MAIN_DB_PREFIX."c_revenuestamp as t, llx_c_pays as p WHERE t.fk_pays=p.rowid";
|
$tabsql[25]= "SELECT t.rowid, t.taux, p.libelle as country, p.code as country_code, t.fk_pays as country_id, t.note, t.active, t.accountancy_code_sell, t.accountancy_code_buy FROM ".MAIN_DB_PREFIX."c_revenuestamp as t, llx_c_pays as p WHERE t.fk_pays=p.rowid";
|
||||||
|
|
||||||
// Critere de tri du dictionnaire
|
// Critere de tri du dictionnaire
|
||||||
$tabsqlsort=array();
|
$tabsqlsort=array();
|
||||||
@ -181,8 +181,8 @@ $tabsqlsort[20]="code ASC, libelle ASC";
|
|||||||
$tabsqlsort[21]="code ASC, label ASC";
|
$tabsqlsort[21]="code ASC, label ASC";
|
||||||
$tabsqlsort[22]="code ASC, label ASC";
|
$tabsqlsort[22]="code ASC, label ASC";
|
||||||
$tabsqlsort[23]="fk_pcg_version ASC, accountancy_code ASC";
|
$tabsqlsort[23]="fk_pcg_version ASC, accountancy_code ASC";
|
||||||
$tabsqlsort[24]="pcg_version ASC";
|
$tabsqlsort[24]="pcg_version ASC";
|
||||||
$tabsqlsort[25]="country ASC, taux ASC";
|
$tabsqlsort[25]="country ASC, taux ASC";
|
||||||
|
|
||||||
// Nom des champs en resultat de select pour affichage du dictionnaire
|
// Nom des champs en resultat de select pour affichage du dictionnaire
|
||||||
$tabfield=array();
|
$tabfield=array();
|
||||||
@ -209,8 +209,8 @@ $tabfield[20]= "code,libelle";
|
|||||||
$tabfield[21]= "code,label";
|
$tabfield[21]= "code,label";
|
||||||
$tabfield[22]= "code,label";
|
$tabfield[22]= "code,label";
|
||||||
$tabfield[23]= "fk_pcg_version,accountancy_code,account_parent,pcg_type,pcg_subtype,label";
|
$tabfield[23]= "fk_pcg_version,accountancy_code,account_parent,pcg_type,pcg_subtype,label";
|
||||||
$tabfield[24]= "pcg_version,country_id,country,label";
|
$tabfield[24]= "pcg_version,country_id,country,label";
|
||||||
$tabfield[25]= "country_id,country,taux,accountancy_code_sell,accountancy_code_buy,note";
|
$tabfield[25]= "country_id,country,taux,accountancy_code_sell,accountancy_code_buy,note";
|
||||||
|
|
||||||
// Nom des champs d'edition pour modification d'un enregistrement
|
// Nom des champs d'edition pour modification d'un enregistrement
|
||||||
$tabfieldvalue=array();
|
$tabfieldvalue=array();
|
||||||
@ -237,8 +237,8 @@ $tabfieldvalue[20]= "code,libelle";
|
|||||||
$tabfieldvalue[21]= "code,label";
|
$tabfieldvalue[21]= "code,label";
|
||||||
$tabfieldvalue[22]= "code,label";
|
$tabfieldvalue[22]= "code,label";
|
||||||
$tabfieldvalue[23]= "fk_pcg_version,accountancy_code,account_parent,pcg_type,pcg_subtype,label";
|
$tabfieldvalue[23]= "fk_pcg_version,accountancy_code,account_parent,pcg_type,pcg_subtype,label";
|
||||||
$tabfieldvalue[24]= "pcg_version,country,label";
|
$tabfieldvalue[24]= "pcg_version,country,label";
|
||||||
$tabfieldvalue[25]= "country,taux,accountancy_code_sell,accountancy_code_buy,note";
|
$tabfieldvalue[25]= "country,taux,accountancy_code_sell,accountancy_code_buy,note";
|
||||||
|
|
||||||
// Nom des champs dans la table pour insertion d'un enregistrement
|
// Nom des champs dans la table pour insertion d'un enregistrement
|
||||||
$tabfieldinsert=array();
|
$tabfieldinsert=array();
|
||||||
@ -265,8 +265,8 @@ $tabfieldinsert[20]= "code,libelle";
|
|||||||
$tabfieldinsert[21]= "code,label";
|
$tabfieldinsert[21]= "code,label";
|
||||||
$tabfieldinsert[22]= "code,label";
|
$tabfieldinsert[22]= "code,label";
|
||||||
$tabfieldinsert[23]= "fk_pcg_version,account_number,account_parent,pcg_type,pcg_subtype,label";
|
$tabfieldinsert[23]= "fk_pcg_version,account_number,account_parent,pcg_type,pcg_subtype,label";
|
||||||
$tabfieldinsert[24]= "pcg_version,fk_pays,label";
|
$tabfieldinsert[24]= "pcg_version,fk_pays,label";
|
||||||
$tabfieldinsert[25]= "fk_pays,taux,accountancy_code_sell,accountancy_code_buy,note";
|
$tabfieldinsert[25]= "fk_pays,taux,accountancy_code_sell,accountancy_code_buy,note";
|
||||||
|
|
||||||
// Nom du rowid si le champ n'est pas de type autoincrement
|
// Nom du rowid si le champ n'est pas de type autoincrement
|
||||||
// Example: "" if id field is "rowid" and has autoincrement on
|
// Example: "" if id field is "rowid" and has autoincrement on
|
||||||
@ -295,8 +295,8 @@ $tabrowid[20]= "";
|
|||||||
$tabrowid[21]= "rowid";
|
$tabrowid[21]= "rowid";
|
||||||
$tabrowid[22]= "rowid";
|
$tabrowid[22]= "rowid";
|
||||||
$tabrowid[23]= "";
|
$tabrowid[23]= "";
|
||||||
$tabrowid[24]= "";
|
$tabrowid[24]= "";
|
||||||
$tabrowid[25]= "";
|
$tabrowid[25]= "";
|
||||||
|
|
||||||
// Condition to show dictionnary in setup page
|
// Condition to show dictionnary in setup page
|
||||||
$tabcond=array();
|
$tabcond=array();
|
||||||
@ -323,8 +323,8 @@ $tabcond[20]= ! empty($conf->fournisseur->enabled);
|
|||||||
$tabcond[21]= ! empty($conf->propal->enabled);
|
$tabcond[21]= ! empty($conf->propal->enabled);
|
||||||
$tabcond[22]= (! empty($conf->commande->enabled) || ! empty($conf->propal->enabled));
|
$tabcond[22]= (! empty($conf->commande->enabled) || ! empty($conf->propal->enabled));
|
||||||
$tabcond[23]= (! empty($conf->global->ACCOUNTING_USEDICTTOEDIT) && ! empty($conf->accounting->enabled)); // The accountancy plan should be edited with specific pages. You can set ACCOUNTING_USEDICTTOEDIT to 1 if you want to use dictionnary editor.
|
$tabcond[23]= (! empty($conf->global->ACCOUNTING_USEDICTTOEDIT) && ! empty($conf->accounting->enabled)); // The accountancy plan should be edited with specific pages. You can set ACCOUNTING_USEDICTTOEDIT to 1 if you want to use dictionnary editor.
|
||||||
$tabcond[24]= (! empty($conf->global->ACCOUNTING_USEDICTTOEDIT) && ! empty($conf->accounting->enabled)); // The accountancy system should be edited with specific pages. You can set ACCOUNTING_USEDICTTOEDIT to 1 if you want to use dictionnary editor.
|
$tabcond[24]= (! empty($conf->global->ACCOUNTING_USEDICTTOEDIT) && ! empty($conf->accounting->enabled)); // The accountancy system should be edited with specific pages. You can set ACCOUNTING_USEDICTTOEDIT to 1 if you want to use dictionnary editor.
|
||||||
$tabcond[25]= true;
|
$tabcond[25]= true;
|
||||||
|
|
||||||
// List of help for fields
|
// List of help for fields
|
||||||
$tabhelp=array();
|
$tabhelp=array();
|
||||||
@ -351,8 +351,8 @@ $tabhelp[20] = array();
|
|||||||
$tabhelp[21] = array();
|
$tabhelp[21] = array();
|
||||||
$tabhelp[22] = array();
|
$tabhelp[22] = array();
|
||||||
$tabhelp[23] = array();
|
$tabhelp[23] = array();
|
||||||
$tabhelp[24] = array();
|
$tabhelp[24] = array();
|
||||||
$tabhelp[25] = array();
|
$tabhelp[25] = array();
|
||||||
|
|
||||||
// Complete all arrays with entries found into modules
|
// Complete all arrays with entries found into modules
|
||||||
complete_dictionnary_with_modules($taborder,$tabname,$tablib,$tabsql,$tabsqlsort,$tabfield,$tabfieldvalue,$tabfieldinsert,$tabrowid,$tabcond,$tabhelp);
|
complete_dictionnary_with_modules($taborder,$tabname,$tablib,$tabsql,$tabsqlsort,$tabfield,$tabfieldvalue,$tabfieldinsert,$tabrowid,$tabcond,$tabhelp);
|
||||||
|
|||||||
@ -77,21 +77,21 @@ if ($action == 'update' && empty($_POST["cancel"]))
|
|||||||
|
|
||||||
// Define list of menu handlers to initialize
|
// Define list of menu handlers to initialize
|
||||||
$listofmenuhandler=array();
|
$listofmenuhandler=array();
|
||||||
$listofmenuhandler[preg_replace('/(_backoffice|_frontoffice|_menu)?\.php/i','',$_POST["MAIN_MENU_STANDARD"])]=1;
|
$listofmenuhandler[preg_replace('/(_backoffice|_frontoffice|_menu)?\.php/i','',$_POST["MAIN_MENU_STANDARD"])]=1;
|
||||||
$listofmenuhandler[preg_replace('/(_backoffice|_frontoffice|_menu)?\.php/i','',$_POST["MAIN_MENUFRONT_STANDARD"])]=1;
|
$listofmenuhandler[preg_replace('/(_backoffice|_frontoffice|_menu)?\.php/i','',$_POST["MAIN_MENUFRONT_STANDARD"])]=1;
|
||||||
if (isset($_POST["MAIN_MENU_SMARTPHONE"])) $listofmenuhandler[preg_replace('/(_backoffice|_frontoffice|_menu)?\.php/i','',$_POST["MAIN_MENU_SMARTPHONE"])]=1;
|
if (isset($_POST["MAIN_MENU_SMARTPHONE"])) $listofmenuhandler[preg_replace('/(_backoffice|_frontoffice|_menu)?\.php/i','',$_POST["MAIN_MENU_SMARTPHONE"])]=1;
|
||||||
if (isset($_POST["MAIN_MENUFRONT_SMARTPHONE"])) $listofmenuhandler[preg_replace('/(_backoffice|_frontoffice|_menu)?\.php/i','',$_POST["MAIN_MENUFRONT_SMARTPHONE"])]=1;
|
if (isset($_POST["MAIN_MENUFRONT_SMARTPHONE"])) $listofmenuhandler[preg_replace('/(_backoffice|_frontoffice|_menu)?\.php/i','',$_POST["MAIN_MENUFRONT_SMARTPHONE"])]=1;
|
||||||
|
|
||||||
// Initialize menu handlers
|
// Initialize menu handlers
|
||||||
foreach ($listofmenuhandler as $key => $val)
|
foreach ($listofmenuhandler as $key => $val)
|
||||||
{
|
{
|
||||||
// Load sql init_menu_handler.sql file
|
// Load sql init_menu_handler.sql file
|
||||||
$dirmenus=array_merge(array("/core/menus/"),(array) $conf->modules_parts['menus']);
|
$dirmenus=array_merge(array("/core/menus/"),(array) $conf->modules_parts['menus']);
|
||||||
foreach($dirmenus as $dirmenu)
|
foreach($dirmenus as $dirmenu)
|
||||||
{
|
{
|
||||||
$file='init_menu_'.$key.'.sql';
|
$file='init_menu_'.$key.'.sql';
|
||||||
$fullpath=dol_buildpath($dirmenu.$file);
|
$fullpath=dol_buildpath($dirmenu.$file);
|
||||||
//print 'action='.$action.' Search menu into fullpath='.$fullpath.'<br>';exit;
|
//print 'action='.$action.' Search menu into fullpath='.$fullpath.'<br>';exit;
|
||||||
|
|
||||||
if (file_exists($fullpath))
|
if (file_exists($fullpath))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -57,7 +57,7 @@ $menu_handler=$menu_handler_top;
|
|||||||
if (GETPOST("handler_origine")) $menu_handler=GETPOST("handler_origine");
|
if (GETPOST("handler_origine")) $menu_handler=GETPOST("handler_origine");
|
||||||
if (GETPOST("menu_handler")) $menu_handler=GETPOST("menu_handler");
|
if (GETPOST("menu_handler")) $menu_handler=GETPOST("menu_handler");
|
||||||
|
|
||||||
$menu_handler_to_search=preg_replace('/(_backoffice|_frontoffice|_menu)?(\.php)?/i','',$menu_handler);
|
$menu_handler_to_search=preg_replace('/(_backoffice|_frontoffice|_menu)?(\.php)?/i','',$menu_handler);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -207,8 +207,8 @@ elseif ($action == 'confirm_delete' && $confirm == 'yes')
|
|||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
$formadmin=new FormAdmin($db);
|
$formadmin=new FormAdmin($db);
|
||||||
|
|
||||||
$arrayofjs=array('/includes/jquery/plugins/jquerytreeview/jquery.treeview.js', '/includes/jquery/plugins/jquerytreeview/lib/jquery.cookie.js');
|
$arrayofjs=array('/includes/jquery/plugins/jquerytreeview/jquery.treeview.js', '/includes/jquery/plugins/jquerytreeview/lib/jquery.cookie.js');
|
||||||
$arrayofcss=array('/includes/jquery/plugins/jquerytreeview/jquery.treeview.css');
|
$arrayofcss=array('/includes/jquery/plugins/jquerytreeview/jquery.treeview.css');
|
||||||
|
|
||||||
llxHeader('',$langs->trans("Menus"),'','',0,0,$arrayofjs,$arrayofcss);
|
llxHeader('',$langs->trans("Menus"),'','',0,0,$arrayofjs,$arrayofcss);
|
||||||
|
|
||||||
@ -324,14 +324,14 @@ if ($conf->use_javascript_ajax)
|
|||||||
'leftmenu'=>$menu['leftmenu'],
|
'leftmenu'=>$menu['leftmenu'],
|
||||||
'fk_mainmenu'=>$menu['fk_mainmenu'],
|
'fk_mainmenu'=>$menu['fk_mainmenu'],
|
||||||
'fk_leftmenu'=>$menu['fk_leftmenu'],
|
'fk_leftmenu'=>$menu['fk_leftmenu'],
|
||||||
'entry'=>'<table class="nobordernopadding centpercent"><tr><td>'.
|
'entry'=>'<table class="nobordernopadding centpercent"><tr><td>'.
|
||||||
'<strong> <a href="edit.php?menu_handler='.$menu_handler_to_search.'&action=edit&menuId='.$menu['rowid'].'">'.$titre.'</a></strong>'.
|
'<strong> <a href="edit.php?menu_handler='.$menu_handler_to_search.'&action=edit&menuId='.$menu['rowid'].'">'.$titre.'</a></strong>'.
|
||||||
'</td><td align="right">'.
|
'</td><td align="right">'.
|
||||||
'<a href="edit.php?menu_handler='.$menu_handler_to_search.'&action=edit&menuId='.$menu['rowid'].'">'.img_edit('default',0,'class="menuEdit" id="edit'.$menu['rowid'].'"').'</a> '.
|
'<a href="edit.php?menu_handler='.$menu_handler_to_search.'&action=edit&menuId='.$menu['rowid'].'">'.img_edit('default',0,'class="menuEdit" id="edit'.$menu['rowid'].'"').'</a> '.
|
||||||
'<a href="edit.php?menu_handler='.$menu_handler_to_search.'&action=create&menuId='.$menu['rowid'].'">'.img_edit_add('default',0,'class="menuNew" id="new'.$menu['rowid'].'"').'</a> '.
|
'<a href="edit.php?menu_handler='.$menu_handler_to_search.'&action=create&menuId='.$menu['rowid'].'">'.img_edit_add('default',0,'class="menuNew" id="new'.$menu['rowid'].'"').'</a> '.
|
||||||
'<a href="index.php?menu_handler='.$menu_handler_to_search.'&action=delete&menuId='.$menu['rowid'].'">'.img_delete('default',0,'class="menuDel" id="del'.$menu['rowid'].'"').'</a> '.
|
'<a href="index.php?menu_handler='.$menu_handler_to_search.'&action=delete&menuId='.$menu['rowid'].'">'.img_delete('default',0,'class="menuDel" id="del'.$menu['rowid'].'"').'</a> '.
|
||||||
'<a href="index.php?menu_handler='.$menu_handler_to_search.'&action=up&menuId='.$menu['rowid'].'">'.img_picto("Monter","1uparrow").'</a><a href="index.php?menu_handler='.$menu_handler_to_search.'&action=down&menuId='.$menu['rowid'].'">'.img_picto("Descendre","1downarrow").'</a>'.
|
'<a href="index.php?menu_handler='.$menu_handler_to_search.'&action=up&menuId='.$menu['rowid'].'">'.img_picto("Monter","1uparrow").'</a><a href="index.php?menu_handler='.$menu_handler_to_search.'&action=down&menuId='.$menu['rowid'].'">'.img_picto("Descendre","1downarrow").'</a>'.
|
||||||
'</td></tr></table>'
|
'</td></tr></table>'
|
||||||
);
|
);
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -197,14 +197,14 @@ $moreinfo=$langs->trans("TotalNumberOfActivatedModules",($nbofactivatedmodules-1
|
|||||||
|
|
||||||
print load_fiche_titre($langs->trans("ModulesSetup"),$moreinfo,'setup');
|
print load_fiche_titre($langs->trans("ModulesSetup"),$moreinfo,'setup');
|
||||||
|
|
||||||
// Start to show page
|
// Start to show page
|
||||||
if (empty($mode)) $mode='common';
|
if (empty($mode)) $mode='common';
|
||||||
if ($mode==='common') print $langs->trans("ModulesDesc")."<br>\n";
|
if ($mode==='common') print $langs->trans("ModulesDesc")."<br>\n";
|
||||||
if ($mode==='other') print $langs->trans("ModulesSpecialDesc")."<br>\n";
|
if ($mode==='other') print $langs->trans("ModulesSpecialDesc")."<br>\n";
|
||||||
if ($mode==='interfaces') print $langs->trans("ModulesInterfaceDesc")."<br>\n";
|
if ($mode==='interfaces') print $langs->trans("ModulesInterfaceDesc")."<br>\n";
|
||||||
if ($mode==='functional') print $langs->trans("ModulesJobDesc")."<br>\n";
|
if ($mode==='functional') print $langs->trans("ModulesJobDesc")."<br>\n";
|
||||||
if ($mode==='marketplace') print $langs->trans("ModulesMarketPlaceDesc")."<br>\n";
|
if ($mode==='marketplace') print $langs->trans("ModulesMarketPlaceDesc")."<br>\n";
|
||||||
if ($mode==='expdev') print $langs->trans("ModuleFamilyExperimental")."<br>\n";
|
if ($mode==='expdev') print $langs->trans("ModuleFamilyExperimental")."<br>\n";
|
||||||
|
|
||||||
if ($nbofactivatedmodules <= 1) print ' '.img_warning($langs->trans("YouMustEnableOneModule"));
|
if ($nbofactivatedmodules <= 1) print ' '.img_warning($langs->trans("YouMustEnableOneModule"));
|
||||||
//print '<br>'."\n";
|
//print '<br>'."\n";
|
||||||
@ -499,8 +499,8 @@ else
|
|||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
|
|
||||||
// Show warning about external users
|
// Show warning about external users
|
||||||
if ($mode != 'marketplace') print showModulesExludedForExternal($modules).'<br>'."\n";
|
if ($mode != 'marketplace') print showModulesExludedForExternal($modules).'<br>'."\n";
|
||||||
|
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|||||||
@ -68,19 +68,19 @@ if ($action == 'update')
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'activate_pdfsecurity')
|
if ($action == 'activate_pdfsecurity')
|
||||||
{
|
{
|
||||||
dolibarr_set_const($db, "PDF_SECURITY_ENCRYPTION", "1",'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "PDF_SECURITY_ENCRYPTION", "1",'chaine',0,'',$conf->entity);
|
||||||
header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
|
header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
else if ($action == 'disable_pdfsecurity')
|
else if ($action == 'disable_pdfsecurity')
|
||||||
{
|
{
|
||||||
dolibarr_del_const($db, "PDF_SECURITY_ENCRYPTION",$conf->entity);
|
dolibarr_del_const($db, "PDF_SECURITY_ENCRYPTION",$conf->entity);
|
||||||
header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
|
header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -161,7 +161,7 @@ if ($action == 'edit')
|
|||||||
{
|
{
|
||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
|
|
||||||
if (! count($listofmethods)) print '<div class="warning">'.$langs->trans("NoSmsEngine",'<a href="http://www.dolistore.com/search.php?orderby=position&orderway=desc&search_query=sms_manager">DoliStore</a>').'</div>';
|
if (! count($listofmethods)) print '<div class="warning">'.$langs->trans("NoSmsEngine",'<a href="http://www.dolistore.com/search.php?orderby=position&orderway=desc&search_query=smsmanager">DoliStore</a>').'</div>';
|
||||||
|
|
||||||
print '<form method="post" action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form method="post" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
@ -217,7 +217,7 @@ else
|
|||||||
{
|
{
|
||||||
$var=true;
|
$var=true;
|
||||||
|
|
||||||
if (! count($listofmethods)) print '<div class="warning">'.$langs->trans("NoSmsEngine",'<a href="http://www.dolistore.com/search.php?orderby=position&orderway=desc&search_query=sms_manager">DoliStore</a>').'</div>';
|
if (! count($listofmethods)) print '<div class="warning">'.$langs->trans("NoSmsEngine",'<a href="http://www.dolistore.com/search.php?orderby=position&orderway=desc&search_query=smsmanager">DoliStore</a>').'</div>';
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><td>'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td></tr>';
|
print '<tr class="liste_titre"><td>'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td></tr>';
|
||||||
|
|||||||
@ -139,11 +139,11 @@ if ($result)
|
|||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
$param='';
|
$param='';
|
||||||
if ($search_code) $param.='&search_code='.$search_code;
|
if ($search_code) $param.='&search_code='.$search_code;
|
||||||
if ($search_ip) $param.='&search_ip='.$search_ip;
|
if ($search_ip) $param.='&search_ip='.$search_ip;
|
||||||
if ($search_user) $param.='&search_user='.$search_user;
|
if ($search_user) $param.='&search_user='.$search_user;
|
||||||
if ($search_desc) $param.='&search_desc='.$search_desc;
|
if ($search_desc) $param.='&search_desc='.$search_desc;
|
||||||
if ($search_ua) $param.='&search_ua='.$search_ua;
|
if ($search_ua) $param.='&search_ua='.$search_ua;
|
||||||
|
|
||||||
print_barre_liste($langs->trans("ListOfSecurityEvents"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, 0, 'setup');
|
print_barre_liste($langs->trans("ListOfSecurityEvents"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, 0, 'setup');
|
||||||
|
|
||||||
|
|||||||
@ -62,7 +62,7 @@ print_fiche_titre($title);
|
|||||||
|
|
||||||
//print '<table border="0" width="100%" class="notopnoleftnoright">';
|
//print '<table border="0" width="100%" class="notopnoleftnoright">';
|
||||||
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
||||||
print '<div class="fichecenter"><div class="fichethirdleft">';
|
print '<div class="fichecenter"><div class="fichethirdleft">';
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -91,7 +91,7 @@ print '</table></form>';
|
|||||||
|
|
||||||
|
|
||||||
//print '</td><td valign="top" width="70%">';
|
//print '</td><td valign="top" width="70%">';
|
||||||
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -121,12 +121,13 @@ if ($catname || $id > 0)
|
|||||||
}
|
}
|
||||||
print "</table>";
|
print "</table>";
|
||||||
}
|
}
|
||||||
|
else print ' ';
|
||||||
|
|
||||||
|
|
||||||
//print '</td></tr></table>';
|
//print '</td></tr></table>';
|
||||||
print '<div></div></div>';
|
print '</div></div></div>';
|
||||||
|
|
||||||
print '<br>';
|
print '<div class="fichecenter"><br>';
|
||||||
|
|
||||||
|
|
||||||
// Charge tableau des categories
|
// Charge tableau des categories
|
||||||
@ -136,25 +137,25 @@ $cate_arbo = $categstatic->get_full_arbo($type);
|
|||||||
$fulltree=$cate_arbo;
|
$fulltree=$cate_arbo;
|
||||||
|
|
||||||
// Define data (format for treeview)
|
// Define data (format for treeview)
|
||||||
$data=array();
|
$data=array();
|
||||||
$data[] = array('rowid'=>0,'fk_menu'=>-1,'title'=>"racine",'mainmenu'=>'','leftmenu'=>'','fk_mainmenu'=>'','fk_leftmenu'=>'');
|
$data[] = array('rowid'=>0,'fk_menu'=>-1,'title'=>"racine",'mainmenu'=>'','leftmenu'=>'','fk_mainmenu'=>'','fk_leftmenu'=>'');
|
||||||
foreach($fulltree as $key => $val)
|
foreach($fulltree as $key => $val)
|
||||||
{
|
{
|
||||||
$categstatic->id=$val['id'];
|
$categstatic->id=$val['id'];
|
||||||
$categstatic->ref=$val['label'];
|
$categstatic->ref=$val['label'];
|
||||||
$categstatic->type=$type;
|
$categstatic->type=$type;
|
||||||
$li=$categstatic->getNomUrl(1,'',60);
|
$li=$categstatic->getNomUrl(1,'',60);
|
||||||
|
|
||||||
$data[] = array(
|
$data[] = array(
|
||||||
'rowid'=>$val['rowid'],
|
'rowid'=>$val['rowid'],
|
||||||
'fk_menu'=>$val['fk_parent'],
|
'fk_menu'=>$val['fk_parent'],
|
||||||
'entry'=>'<table class="nobordernopadding centpercent"><tr><td>'.$li.
|
'entry'=>'<table class="nobordernopadding centpercent"><tr><td>'.$li.
|
||||||
'</td><td width="50%">'.
|
'</td><td width="50%">'.
|
||||||
' '.$val['description'].'</td>'.
|
' '.$val['description'].'</td>'.
|
||||||
'<td align="right" width="20px;"><a href="'.DOL_URL_ROOT.'/categories/viewcat.php?id='.$val['id'].'&type='.$type.'">'.img_view().'</a></td>'.
|
'<td align="right" width="20px;"><a href="'.DOL_URL_ROOT.'/categories/viewcat.php?id='.$val['id'].'&type='.$type.'">'.img_view().'</a></td>'.
|
||||||
'</tr></table>'
|
'</tr></table>'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
print '<table class="liste" width="100%">';
|
print '<table class="liste" width="100%">';
|
||||||
@ -170,23 +171,24 @@ $nbofentries=(count($data) - 1);
|
|||||||
if ($nbofentries > 0)
|
if ($nbofentries > 0)
|
||||||
{
|
{
|
||||||
print '<tr><td colspan="3">';
|
print '<tr><td colspan="3">';
|
||||||
tree_recur($data,$data[0],0);
|
tree_recur($data,$data[0],0);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td colspan="3"><table class="nobordernopadding"><tr class="nobordernopadding"><td>'.img_picto_common('','treemenu/branchbottom.gif').'</td>';
|
print '<td colspan="3"><table class="nobordernopadding"><tr class="nobordernopadding"><td>'.img_picto_common('','treemenu/branchbottom.gif').'</td>';
|
||||||
print '<td valign="middle">';
|
print '<td valign="middle">';
|
||||||
print $langs->trans("NoCategoryYet");
|
print $langs->trans("NoCategoryYet");
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td> </td>';
|
print '<td> </td>';
|
||||||
print '</table></td>';
|
print '</table></td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|
||||||
|
|||||||
@ -30,8 +30,8 @@ require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/modules/action/rapport.pdf.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/modules/action/rapport.pdf.php';
|
||||||
|
|
||||||
$langs->load("agenda");
|
$langs->load("agenda");
|
||||||
$langs->load("commercial");
|
$langs->load("commercial");
|
||||||
|
|
||||||
$action=GETPOST('action','alpha');
|
$action=GETPOST('action','alpha');
|
||||||
$month=GETPOST('month');
|
$month=GETPOST('month');
|
||||||
|
|||||||
@ -87,7 +87,7 @@ llxHeader();
|
|||||||
|
|
||||||
print_fiche_titre($langs->trans("CustomerArea"));
|
print_fiche_titre($langs->trans("CustomerArea"));
|
||||||
|
|
||||||
print '<div class="fichecenter"><div class="fichethirdleft">';
|
print '<div class="fichecenter"><div class="fichethirdleft">';
|
||||||
/*
|
/*
|
||||||
print '<table border="0" width="100%" class="notopnoleftnoright">';
|
print '<table border="0" width="100%" class="notopnoleftnoright">';
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
@ -270,7 +270,7 @@ else
|
|||||||
{
|
{
|
||||||
print '<td valign="top" width="100%" class="notopnoleftnoright">';
|
print '<td valign="top" width="100%" class="notopnoleftnoright">';
|
||||||
}*/
|
}*/
|
||||||
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
|
|
||||||
$NBMAX=3;
|
$NBMAX=3;
|
||||||
@ -546,7 +546,7 @@ if (! empty($conf->propal->enabled) && $user->rights->propal->lire)
|
|||||||
|
|
||||||
|
|
||||||
//print '</td></tr></table>';
|
//print '</td></tr></table>';
|
||||||
print '<div></div></div>';
|
print '</div></div></div>';
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|
||||||
|
|||||||
@ -1002,9 +1002,9 @@ else
|
|||||||
print '<td colspan="3" bgcolor="'.($object->bgcolor?(preg_match('/^#/',$object->bgcolor)?'':'#').$object->bgcolor:'white').'">';
|
print '<td colspan="3" bgcolor="'.($object->bgcolor?(preg_match('/^#/',$object->bgcolor)?'':'#').$object->bgcolor:'white').'">';
|
||||||
if (empty($object->bgcolor) || strtolower($object->bgcolor) == 'ffffff')
|
if (empty($object->bgcolor) || strtolower($object->bgcolor) == 'ffffff')
|
||||||
{
|
{
|
||||||
// Editeur wysiwyg
|
// Editeur wysiwyg
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor=new DolEditor('body',$object->body,'',320,'dolibarr_readonly','',false,true,empty($conf->global->FCKEDITOR_ENABLE_MAILING)?0:1,20,70);
|
$doleditor=new DolEditor('body',$object->body,'',320,'dolibarr_readonly','',false,true,empty($conf->global->FCKEDITOR_ENABLE_MAILING)?0:1,20,70);
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
}
|
}
|
||||||
else print dol_htmlentitiesbr($object->body);
|
else print dol_htmlentitiesbr($object->body);
|
||||||
@ -1040,7 +1040,7 @@ else
|
|||||||
print '<tr><td width="25%">';
|
print '<tr><td width="25%">';
|
||||||
print $langs->trans("TotalNbOfDistinctRecipients");
|
print $langs->trans("TotalNbOfDistinctRecipients");
|
||||||
print '</td><td colspan="3">';
|
print '</td><td colspan="3">';
|
||||||
$nbemail = ($object->nbemail?$object->nbemail:img_warning('').' <font class="warning">'.$langs->trans("NoTargetYet").'</font>');
|
$nbemail = ($object->nbemail?$object->nbemail:img_warning('').' <font class="warning">'.$langs->trans("NoTargetYet").'</font>');
|
||||||
if (!empty($conf->global->MAILING_LIMIT_SENDBYWEB) && is_numeric($nbemail) && $conf->global->MAILING_LIMIT_SENDBYWEB < $nbemail)
|
if (!empty($conf->global->MAILING_LIMIT_SENDBYWEB) && is_numeric($nbemail) && $conf->global->MAILING_LIMIT_SENDBYWEB < $nbemail)
|
||||||
{
|
{
|
||||||
$text=$langs->trans('LimitSendingEmailing',$conf->global->MAILING_LIMIT_SENDBYWEB);
|
$text=$langs->trans('LimitSendingEmailing',$conf->global->MAILING_LIMIT_SENDBYWEB);
|
||||||
|
|||||||
@ -46,7 +46,7 @@ print_fiche_titre($langs->trans("MailingArea"));
|
|||||||
|
|
||||||
//print '<table class="notopnoleftnoright" width="100%">';
|
//print '<table class="notopnoleftnoright" width="100%">';
|
||||||
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
||||||
print '<div class="fichecenter"><div class="fichethirdleft">';
|
print '<div class="fichecenter"><div class="fichethirdleft">';
|
||||||
|
|
||||||
|
|
||||||
// Recherche emails
|
// Recherche emails
|
||||||
@ -143,7 +143,7 @@ print "</table><br>";
|
|||||||
|
|
||||||
|
|
||||||
//print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
|
//print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
|
||||||
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -201,7 +201,7 @@ else
|
|||||||
|
|
||||||
|
|
||||||
//print '</td></tr></table>';
|
//print '</td></tr></table>';
|
||||||
print '<div></div></div>';
|
print '</div></div></div>';
|
||||||
|
|
||||||
|
|
||||||
if ($langs->file_exists("html/spam.html",0)) {
|
if ($langs->file_exists("html/spam.html",0)) {
|
||||||
@ -216,5 +216,5 @@ if ($langs->file_exists("html/spam.html",0)) {
|
|||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|
||||||
$db->close();
|
$db->close();
|
||||||
?>
|
?>
|
||||||
|
|||||||
@ -1107,7 +1107,7 @@ else if ($action == 'update_extras')
|
|||||||
// Fill array 'array_options' with data from update form
|
// Fill array 'array_options' with data from update form
|
||||||
$extralabels=$extrafields->fetch_name_optionals_label('propal');
|
$extralabels=$extrafields->fetch_name_optionals_label('propal');
|
||||||
$ret = $extrafields->setOptionalsFromPost($extralabels,$object);
|
$ret = $extrafields->setOptionalsFromPost($extralabels,$object);
|
||||||
|
|
||||||
// Actions on extra fields (by external module or standard code)
|
// Actions on extra fields (by external module or standard code)
|
||||||
// FIXME le hook fait double emploi avec le trigger !!
|
// FIXME le hook fait double emploi avec le trigger !!
|
||||||
$hookmanager->initHooks(array('propaldao'));
|
$hookmanager->initHooks(array('propaldao'));
|
||||||
@ -1125,7 +1125,7 @@ else if ($action == 'update_extras')
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ($reshook < 0) $error++;
|
else if ($reshook < 0) $error++;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $user->rights->propal->creer)
|
if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $user->rights->propal->creer)
|
||||||
@ -1823,7 +1823,7 @@ else
|
|||||||
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
|
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
|
||||||
if (empty($reshook) && ! empty($extrafields->attribute_label))
|
if (empty($reshook) && ! empty($extrafields->attribute_label))
|
||||||
{
|
{
|
||||||
|
|
||||||
if ($action == 'edit_extras')
|
if ($action == 'edit_extras')
|
||||||
{
|
{
|
||||||
print '<form enctype="multipart/form-data" action="'.$_SERVER["PHP_SELF"].'" method="post" name="formsoc">';
|
print '<form enctype="multipart/form-data" action="'.$_SERVER["PHP_SELF"].'" method="post" name="formsoc">';
|
||||||
@ -1831,7 +1831,7 @@ else
|
|||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="id" value="'.$object->id.'">';
|
print '<input type="hidden" name="id" value="'.$object->id.'">';
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO : use showOptionals($extrafields) function
|
// TODO : use showOptionals($extrafields) function
|
||||||
foreach($extrafields->attribute_label as $key=>$label)
|
foreach($extrafields->attribute_label as $key=>$label)
|
||||||
{
|
{
|
||||||
@ -1845,13 +1845,13 @@ else
|
|||||||
print '<tr><td';
|
print '<tr><td';
|
||||||
if (! empty($extrafields->attribute_required[$key])) print ' class="fieldrequired"';
|
if (! empty($extrafields->attribute_required[$key])) print ' class="fieldrequired"';
|
||||||
print '>'.$label.'</td><td colspan="3">';
|
print '>'.$label.'</td><td colspan="3">';
|
||||||
|
|
||||||
// Convert date into timestamp format
|
// Convert date into timestamp format
|
||||||
if (in_array($extrafields->attribute_type[$key],array('date','datetime')))
|
if (in_array($extrafields->attribute_type[$key],array('date','datetime')))
|
||||||
{
|
{
|
||||||
$value = isset($_POST["options_".$key])?dol_mktime($_POST["options_".$key."hour"], $_POST["options_".$key."min"], 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]):$object->array_options['options_'.$key];
|
$value = isset($_POST["options_".$key])?dol_mktime($_POST["options_".$key."hour"], $_POST["options_".$key."min"], 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]):$object->array_options['options_'.$key];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'edit_extras' && $user->rights->propal->creer)
|
if ($action == 'edit_extras' && $user->rights->propal->creer)
|
||||||
{
|
{
|
||||||
print $extrafields->showInputField($key,$value);
|
print $extrafields->showInputField($key,$value);
|
||||||
@ -1863,19 +1863,19 @@ else
|
|||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(count($extrafields->attribute_label) > 0) {
|
if(count($extrafields->attribute_label) > 0) {
|
||||||
|
|
||||||
if ($action == 'edit_extras' && $user->rights->propal->creer)
|
if ($action == 'edit_extras' && $user->rights->propal->creer)
|
||||||
{
|
{
|
||||||
print '<tr><td></td><td>';
|
print '<tr><td></td><td>';
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
|
print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
|
||||||
print '</form>';
|
print '</form>';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if ($object->statut == 0 && $user->rights->propal->creer)
|
if ($object->statut == 0 && $user->rights->propal->creer)
|
||||||
{
|
{
|
||||||
print '<tr><td></td><td><a href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&action=edit_extras">'.img_picto('','edit').' '.$langs->trans('Modify').'</a></td></tr>';
|
print '<tr><td></td><td><a href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&action=edit_extras">'.img_picto('','edit').' '.$langs->trans('Modify').'</a></td></tr>';
|
||||||
}
|
}
|
||||||
@ -2165,7 +2165,7 @@ else
|
|||||||
{
|
{
|
||||||
$ref = dol_sanitizeFileName($object->ref);
|
$ref = dol_sanitizeFileName($object->ref);
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
$fileparams = dol_most_recent_file($conf->propal->dir_output . '/' . $ref, preg_quote($object->ref,'/'));
|
$fileparams = dol_most_recent_file($conf->propal->dir_output . '/' . $ref, preg_quote($ref,'/'));
|
||||||
$file=$fileparams['fullname'];
|
$file=$fileparams['fullname'];
|
||||||
|
|
||||||
// Build document if it not exists
|
// Build document if it not exists
|
||||||
@ -2188,7 +2188,7 @@ else
|
|||||||
dol_print_error($db,$result);
|
dol_print_error($db,$result);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
$fileparams = dol_most_recent_file($conf->propal->dir_output . '/' . $ref, preg_quote($object->ref,'/'));
|
$fileparams = dol_most_recent_file($conf->propal->dir_output . '/' . $ref, preg_quote($ref,'/'));
|
||||||
$file=$fileparams['fullname'];
|
$file=$fileparams['fullname'];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2219,12 +2219,12 @@ else
|
|||||||
$formmail->substit['__SIGNATURE__']=$user->signature;
|
$formmail->substit['__SIGNATURE__']=$user->signature;
|
||||||
$formmail->substit['__PERSONALIZED__']='';
|
$formmail->substit['__PERSONALIZED__']='';
|
||||||
$formmail->substit['__CONTACTCIVNAME__']='';
|
$formmail->substit['__CONTACTCIVNAME__']='';
|
||||||
|
|
||||||
//Find the good contact adress
|
//Find the good contact adress
|
||||||
$custcontact='';
|
$custcontact='';
|
||||||
$contactarr=array();
|
$contactarr=array();
|
||||||
$contactarr=$object->liste_contact(-1,'external');
|
$contactarr=$object->liste_contact(-1,'external');
|
||||||
|
|
||||||
if (is_array($contactarr) && count($contactarr)>0) {
|
if (is_array($contactarr) && count($contactarr)>0) {
|
||||||
foreach($contactarr as $contact) {
|
foreach($contactarr as $contact) {
|
||||||
if ($contact['libelle']==$langs->trans('TypeContact_propal_external_CUSTOMER')) {
|
if ($contact['libelle']==$langs->trans('TypeContact_propal_external_CUSTOMER')) {
|
||||||
@ -2233,19 +2233,19 @@ else
|
|||||||
$custcontact=$contactstatic->getFullName($langs,1);
|
$custcontact=$contactstatic->getFullName($langs,1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($custcontact)) {
|
if (!empty($custcontact)) {
|
||||||
$formmail->substit['__CONTACTCIVNAME__']=$custcontact;
|
$formmail->substit['__CONTACTCIVNAME__']=$custcontact;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tableau des parametres complementaires
|
// Tableau des parametres complementaires
|
||||||
$formmail->param['action']='send';
|
$formmail->param['action']='send';
|
||||||
$formmail->param['models']='propal_send';
|
$formmail->param['models']='propal_send';
|
||||||
$formmail->param['id']=$object->id;
|
$formmail->param['id']=$object->id;
|
||||||
$formmail->param['returnurl']=$_SERVER["PHP_SELF"].'?id='.$object->id;
|
$formmail->param['returnurl']=$_SERVER["PHP_SELF"].'?id='.$object->id;
|
||||||
|
|
||||||
|
|
||||||
// Init list of files
|
// Init list of files
|
||||||
if (GETPOST("mode")=='init')
|
if (GETPOST("mode")=='init')
|
||||||
{
|
{
|
||||||
|
|||||||
@ -56,7 +56,7 @@ print_fiche_titre($langs->trans("ProspectionArea"));
|
|||||||
|
|
||||||
//print '<table width="100%" class="notopnoleftnoright">';
|
//print '<table width="100%" class="notopnoleftnoright">';
|
||||||
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
||||||
print '<div class="fichecenter"><div class="fichethirdleft">';
|
print '<div class="fichecenter"><div class="fichethirdleft">';
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -202,7 +202,7 @@ if (! empty($conf->propal->enabled))
|
|||||||
|
|
||||||
|
|
||||||
//print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
|
//print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
|
||||||
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
|
|
||||||
$max=5;
|
$max=5;
|
||||||
@ -513,7 +513,7 @@ if (! empty($conf->propal->enabled))
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
//print '</td></tr></table>';
|
//print '</td></tr></table>';
|
||||||
print '<div></div></div>';
|
print '</div></div></div>';
|
||||||
|
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|||||||
@ -48,7 +48,7 @@ print_fiche_titre($langs->trans("ProspectionArea"));
|
|||||||
|
|
||||||
//print '<table border="0" width="100%" class="notopnoleftnoright">';
|
//print '<table border="0" width="100%" class="notopnoleftnoright">';
|
||||||
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
||||||
print '<div class="fichecenter"><div class="fichethirdleft">';
|
print '<div class="fichecenter"><div class="fichethirdleft">';
|
||||||
|
|
||||||
|
|
||||||
if (! empty($conf->propal->enabled))
|
if (! empty($conf->propal->enabled))
|
||||||
@ -161,7 +161,7 @@ if (! empty($conf->propal->enabled) && $user->rights->propale->lire)
|
|||||||
|
|
||||||
|
|
||||||
//print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
|
//print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
|
||||||
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -279,7 +279,7 @@ if ($resql)
|
|||||||
|
|
||||||
|
|
||||||
//print '</td></tr></table>';
|
//print '</td></tr></table>';
|
||||||
print '<div></div></div>';
|
print '</div></div></div>';
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|
||||||
|
|||||||
@ -657,15 +657,15 @@ else if ($action == 'addline' && $user->rights->commande->creer)
|
|||||||
|
|
||||||
$desc=dol_concatdesc($desc,$product_desc);
|
$desc=dol_concatdesc($desc,$product_desc);
|
||||||
|
|
||||||
// Add custom code and origin country into description
|
// Add custom code and origin country into description
|
||||||
if (empty($conf->global->MAIN_PRODUCT_DISABLE_CUSTOMCOUNTRYCODE) && (! empty($prod->customcode) || ! empty($prod->country_code)))
|
if (empty($conf->global->MAIN_PRODUCT_DISABLE_CUSTOMCOUNTRYCODE) && (! empty($prod->customcode) || ! empty($prod->country_code)))
|
||||||
{
|
{
|
||||||
$tmptxt='(';
|
$tmptxt='(';
|
||||||
if (! empty($prod->customcode)) $tmptxt.=$langs->transnoentitiesnoconv("CustomCode").': '.$prod->customcode;
|
if (! empty($prod->customcode)) $tmptxt.=$langs->transnoentitiesnoconv("CustomCode").': '.$prod->customcode;
|
||||||
if (! empty($prod->customcode) && ! empty($prod->country_code)) $tmptxt.=' - ';
|
if (! empty($prod->customcode) && ! empty($prod->country_code)) $tmptxt.=' - ';
|
||||||
if (! empty($prod->country_code)) $tmptxt.=$langs->transnoentitiesnoconv("CountryOrigin").': '.getCountry($prod->country_code,0,$db,$langs,0);
|
if (! empty($prod->country_code)) $tmptxt.=$langs->transnoentitiesnoconv("CountryOrigin").': '.getCountry($prod->country_code,0,$db,$langs,0);
|
||||||
$tmptxt.=')';
|
$tmptxt.=')';
|
||||||
$desc= dol_concatdesc($desc, $tmptxt);
|
$desc= dol_concatdesc($desc, $tmptxt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2374,7 +2374,7 @@ if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! G
|
|||||||
{
|
{
|
||||||
$ref = dol_sanitizeFileName($object->ref);
|
$ref = dol_sanitizeFileName($object->ref);
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
$fileparams = dol_most_recent_file($conf->commande->dir_output . '/' . $ref, preg_quote($object->ref,'/'));
|
$fileparams = dol_most_recent_file($conf->commande->dir_output . '/' . $ref, preg_quote($ref,'/'));
|
||||||
$file=$fileparams['fullname'];
|
$file=$fileparams['fullname'];
|
||||||
|
|
||||||
// Build document if it not exists
|
// Build document if it not exists
|
||||||
@ -2397,7 +2397,7 @@ if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! G
|
|||||||
dol_print_error($db,$result);
|
dol_print_error($db,$result);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
$fileparams = dol_most_recent_file($conf->commande->dir_output . '/' . $ref, preg_quote($object->ref,'/'));
|
$fileparams = dol_most_recent_file($conf->commande->dir_output . '/' . $ref, preg_quote($ref,'/'));
|
||||||
$file=$fileparams['fullname'];
|
$file=$fileparams['fullname'];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2427,11 +2427,11 @@ if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! G
|
|||||||
$formmail->substit['__SIGNATURE__']=$user->signature;
|
$formmail->substit['__SIGNATURE__']=$user->signature;
|
||||||
$formmail->substit['__PERSONALIZED__']='';
|
$formmail->substit['__PERSONALIZED__']='';
|
||||||
$formmail->substit['__CONTACTCIVNAME__']='';
|
$formmail->substit['__CONTACTCIVNAME__']='';
|
||||||
|
|
||||||
$custcontact='';
|
$custcontact='';
|
||||||
$contactarr=array();
|
$contactarr=array();
|
||||||
$contactarr=$object->liste_contact(-1,'external');
|
$contactarr=$object->liste_contact(-1,'external');
|
||||||
|
|
||||||
if (is_array($contactarr) && count($contactarr)>0) {
|
if (is_array($contactarr) && count($contactarr)>0) {
|
||||||
foreach($contactarr as $contact) {
|
foreach($contactarr as $contact) {
|
||||||
if ($contact['libelle']==$langs->trans('TypeContact_commande_external_CUSTOMER')) {
|
if ($contact['libelle']==$langs->trans('TypeContact_commande_external_CUSTOMER')) {
|
||||||
@ -2440,12 +2440,12 @@ if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! G
|
|||||||
$custcontact=$contactstatic->getFullName($langs,1);
|
$custcontact=$contactstatic->getFullName($langs,1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($custcontact)) {
|
if (!empty($custcontact)) {
|
||||||
$formmail->substit['__CONTACTCIVNAME__']=$custcontact;
|
$formmail->substit['__CONTACTCIVNAME__']=$custcontact;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tableau des parametres complementaires
|
// Tableau des parametres complementaires
|
||||||
$formmail->param['action']='send';
|
$formmail->param['action']='send';
|
||||||
$formmail->param['models']='order_send';
|
$formmail->param['models']='order_send';
|
||||||
|
|||||||
@ -57,7 +57,7 @@ print_fiche_titre($langs->trans("OrdersArea"));
|
|||||||
|
|
||||||
//print '<table width="100%" class="notopnoleftnoright">';
|
//print '<table width="100%" class="notopnoleftnoright">';
|
||||||
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
||||||
print '<div class="fichecenter"><div class="fichethirdleft">';
|
print '<div class="fichecenter"><div class="fichethirdleft">';
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -207,7 +207,7 @@ if (! empty($conf->commande->enabled))
|
|||||||
|
|
||||||
|
|
||||||
//print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
|
//print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
|
||||||
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
|
|
||||||
$max=5;
|
$max=5;
|
||||||
@ -425,7 +425,7 @@ if (! empty($conf->commande->enabled))
|
|||||||
|
|
||||||
|
|
||||||
//print '</td></tr></table>';
|
//print '</td></tr></table>';
|
||||||
print '<div></div></div>';
|
print '</div></div></div>';
|
||||||
|
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|||||||
@ -443,7 +443,7 @@ if ($resql)
|
|||||||
|
|
||||||
print "</table><br>\n";
|
print "</table><br>\n";
|
||||||
|
|
||||||
print '<div align="right"><input class="button" type="submit" value="'.$langs->trans("Conciliate").'"></div><br>';
|
print '<div align="right"><input class="button" type="submit" value="'.$langs->trans("Conciliate").'"></div><br>';
|
||||||
|
|
||||||
print "</form>\n";
|
print "</form>\n";
|
||||||
|
|
||||||
|
|||||||
@ -2267,7 +2267,7 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
|
|
||||||
$soc = new Societe($db);
|
$soc = new Societe($db);
|
||||||
$soc->fetch($object->socid);
|
$soc->fetch($object->socid);
|
||||||
$selleruserevenustamp=$mysoc->useRevenueStamp();
|
$selleruserevenustamp=$mysoc->useRevenueStamp();
|
||||||
|
|
||||||
$totalpaye = $object->getSommePaiement();
|
$totalpaye = $object->getSommePaiement();
|
||||||
$totalcreditnotes = $object->getSumCreditNotesUsed();
|
$totalcreditnotes = $object->getSumCreditNotesUsed();
|
||||||
@ -2738,7 +2738,7 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
if (! empty($conf->banque->enabled)) $nbcols++;
|
if (! empty($conf->banque->enabled)) $nbcols++;
|
||||||
if($mysoc->localtax1_assuj=="1") $nbrows++;
|
if($mysoc->localtax1_assuj=="1") $nbrows++;
|
||||||
if($mysoc->localtax2_assuj=="1") $nbrows++;
|
if($mysoc->localtax2_assuj=="1") $nbrows++;
|
||||||
if ($selleruserevenustamp) $nbrows++;
|
if ($selleruserevenustamp) $nbrows++;
|
||||||
|
|
||||||
print '<td rowspan="'.$nbrows.'" colspan="2" valign="top">';
|
print '<td rowspan="'.$nbrows.'" colspan="2" valign="top">';
|
||||||
|
|
||||||
@ -3027,16 +3027,16 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
|
|
||||||
// Revenue stamp
|
// Revenue stamp
|
||||||
if ($selleruserevenustamp) // Test company use revenue stamp
|
if ($selleruserevenustamp) // Test company use revenue stamp
|
||||||
{
|
{
|
||||||
print '<tr><td>';
|
print '<tr><td>';
|
||||||
print '<table class="nobordernopadding" width="100%"><tr><td>';
|
print '<table class="nobordernopadding" width="100%"><tr><td>';
|
||||||
print $langs->trans('RevenueStamp');
|
print $langs->trans('RevenueStamp');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
if ($action != 'editrevenuestamp' && ! empty($object->brouillon) && $user->rights->facture->creer) print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editrevenuestamp&facid='.$object->id.'">'.img_edit($langs->trans('SetRevenuStamp'),1).'</a></td>';
|
if ($action != 'editrevenuestamp' && ! empty($object->brouillon) && $user->rights->facture->creer) print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editrevenuestamp&facid='.$object->id.'">'.img_edit($langs->trans('SetRevenuStamp'),1).'</a></td>';
|
||||||
print '</tr></table>';
|
print '</tr></table>';
|
||||||
print '</td><td colspan="3" align="right">';
|
print '</td><td colspan="3" align="right">';
|
||||||
if ($action == 'editrevenuestamp')
|
if ($action == 'editrevenuestamp')
|
||||||
{
|
{
|
||||||
print '<form action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'" method="post">';
|
print '<form action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'" method="post">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="action" value="setrevenuestamp">';
|
print '<input type="hidden" name="action" value="setrevenuestamp">';
|
||||||
@ -3044,12 +3044,12 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
//print '<input type="text" class="flat" size="4" name="revenuestamp" value="'.price2num($object->revenuestamp).'">';
|
//print '<input type="text" class="flat" size="4" name="revenuestamp" value="'.price2num($object->revenuestamp).'">';
|
||||||
print ' <input type="submit" class="button" value="'.$langs->trans('Modify').'">';
|
print ' <input type="submit" class="button" value="'.$langs->trans('Modify').'">';
|
||||||
print '</form>';
|
print '</form>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print price($object->revenuestamp,1,'',1,-1,-1,$conf->currency);
|
print price($object->revenuestamp,1,'',1,-1,-1,$conf->currency);
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Total with tax
|
// Total with tax
|
||||||
@ -3122,7 +3122,7 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
{
|
{
|
||||||
$value = isset($_POST["options_".$key])?dol_mktime($_POST["options_".$key."hour"], $_POST["options_".$key."min"], 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]):$object->array_options['options_'.$key];
|
$value = isset($_POST["options_".$key])?dol_mktime($_POST["options_".$key."hour"], $_POST["options_".$key."min"], 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]):$object->array_options['options_'.$key];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'edit_extras' && $user->rights->facture->creer)
|
if ($action == 'edit_extras' && $user->rights->facture->creer)
|
||||||
{
|
{
|
||||||
print $extrafields->showInputField($key,$value);
|
print $extrafields->showInputField($key,$value);
|
||||||
@ -3495,7 +3495,7 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
|
|
||||||
$ref = dol_sanitizeFileName($object->ref);
|
$ref = dol_sanitizeFileName($object->ref);
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
$fileparams = dol_most_recent_file($conf->facture->dir_output . '/' . $ref, preg_quote($object->ref,'/'));
|
$fileparams = dol_most_recent_file($conf->facture->dir_output . '/' . $ref, preg_quote($ref,'/'));
|
||||||
$file=$fileparams['fullname'];
|
$file=$fileparams['fullname'];
|
||||||
|
|
||||||
// Build document if it not exists
|
// Build document if it not exists
|
||||||
@ -3518,7 +3518,7 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
dol_print_error($db,$result);
|
dol_print_error($db,$result);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
$fileparams = dol_most_recent_file($conf->facture->dir_output . '/' . $ref, preg_quote($object->ref,'/'));
|
$fileparams = dol_most_recent_file($conf->facture->dir_output . '/' . $ref, preg_quote($ref,'/'));
|
||||||
$file=$fileparams['fullname'];
|
$file=$fileparams['fullname'];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3547,31 +3547,31 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
$formmail->substit['__FACREF__']=$object->ref;
|
$formmail->substit['__FACREF__']=$object->ref;
|
||||||
$formmail->substit['__SIGNATURE__']=$user->signature;
|
$formmail->substit['__SIGNATURE__']=$user->signature;
|
||||||
$formmail->substit['__PERSONALIZED__']='';
|
$formmail->substit['__PERSONALIZED__']='';
|
||||||
$formmail->substit['__CONTACTCIVNAME__']='';
|
$formmail->substit['__CONTACTCIVNAME__']='';
|
||||||
|
|
||||||
//Find the good contact adress
|
//Find the good contact adress
|
||||||
$custcontact='';
|
$custcontact='';
|
||||||
$contactarr=array();
|
$contactarr=array();
|
||||||
$contactarr=$object->liste_contact(-1,'external');
|
$contactarr=$object->liste_contact(-1,'external');
|
||||||
|
|
||||||
if (is_array($contactarr) && count($contactarr)>0) {
|
if (is_array($contactarr) && count($contactarr)>0) {
|
||||||
foreach($contactarr as $contact) {
|
foreach($contactarr as $contact) {
|
||||||
if ($contact['libelle']==$langs->trans('TypeContact_facture_external_BILLING')) {
|
if ($contact['libelle']==$langs->trans('TypeContact_facture_external_BILLING')) {
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php';
|
require_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php';
|
||||||
|
|
||||||
$contactstatic=new Contact($db);
|
$contactstatic=new Contact($db);
|
||||||
$contactstatic->fetch($contact['id']);
|
$contactstatic->fetch($contact['id']);
|
||||||
$custcontact=$contactstatic->getFullName($langs,1);
|
$custcontact=$contactstatic->getFullName($langs,1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($custcontact)) {
|
if (!empty($custcontact)) {
|
||||||
$formmail->substit['__CONTACTCIVNAME__']=$custcontact;
|
$formmail->substit['__CONTACTCIVNAME__']=$custcontact;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Tableau des parametres complementaires du post
|
// Tableau des parametres complementaires du post
|
||||||
$formmail->param['action']=$action;
|
$formmail->param['action']=$action;
|
||||||
$formmail->param['models']=$modelmail;
|
$formmail->param['models']=$modelmail;
|
||||||
|
|||||||
@ -377,7 +377,7 @@ if ($resql)
|
|||||||
print '<td align="right">';
|
print '<td align="right">';
|
||||||
$cn=$facturestatic->getSumCreditNotesUsed();
|
$cn=$facturestatic->getSumCreditNotesUsed();
|
||||||
if (! empty($objp->am)) print price($objp->am);
|
if (! empty($objp->am)) print price($objp->am);
|
||||||
if (! empty($objp->am) && ! empty($cn)) print '+';
|
if (! empty($objp->am) && ! empty($cn)) print '+';
|
||||||
if (! empty($cn)) print price($cn);
|
if (! empty($cn)) print price($cn);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
|
|||||||
@ -106,7 +106,7 @@ print_fiche_titre($langs->trans("AccountancyTreasuryArea"));
|
|||||||
|
|
||||||
//print '<table border="0" width="100%" class="notopnoleftnoright">';
|
//print '<table border="0" width="100%" class="notopnoleftnoright">';
|
||||||
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
||||||
print '<div class="fichecenter"><div class="fichethirdleft">';
|
print '<div class="fichecenter"><div class="fichethirdleft">';
|
||||||
|
|
||||||
$max=3;
|
$max=3;
|
||||||
|
|
||||||
@ -324,7 +324,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture-
|
|||||||
|
|
||||||
|
|
||||||
//print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
|
//print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
|
||||||
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
|
|
||||||
// Last modified customer invoices
|
// Last modified customer invoices
|
||||||
@ -1033,7 +1033,7 @@ if ($resql)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//print '</td></tr></table>';
|
//print '</td></tr></table>';
|
||||||
print '<div></div></div>';
|
print '</div></div></div>';
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|
||||||
|
|||||||
@ -48,7 +48,7 @@ print_fiche_titre($langs->trans("ChequesArea"));
|
|||||||
|
|
||||||
//print '<table border="0" width="100%" class="notopnoleftnoright">';
|
//print '<table border="0" width="100%" class="notopnoleftnoright">';
|
||||||
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
||||||
print '<div class="fichecenter"><div class="fichethirdleft">';
|
print '<div class="fichecenter"><div class="fichethirdleft">';
|
||||||
|
|
||||||
$sql = "SELECT count(b.rowid)";
|
$sql = "SELECT count(b.rowid)";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b";
|
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b";
|
||||||
@ -87,7 +87,7 @@ else
|
|||||||
|
|
||||||
|
|
||||||
//print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
|
//print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
|
||||||
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
|
|
||||||
$sql = "SELECT bc.rowid, bc.date_bordereau as db, bc.amount, bc.number as ref";
|
$sql = "SELECT bc.rowid, bc.date_bordereau as db, bc.amount, bc.number as ref";
|
||||||
@ -146,7 +146,7 @@ else
|
|||||||
|
|
||||||
|
|
||||||
//print "</td></tr></table>\n";
|
//print "</td></tr></table>\n";
|
||||||
print '<div></div></div>';
|
print '</div></div></div>';
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|
||||||
|
|||||||
@ -63,7 +63,7 @@ print_fiche_titre($langs->trans("CustomersStandingOrdersArea"));
|
|||||||
|
|
||||||
//print '<table border="0" width="100%" class="notopnoleftnoright">';
|
//print '<table border="0" width="100%" class="notopnoleftnoright">';
|
||||||
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
||||||
print '<div class="fichecenter"><div class="fichethirdleft">';
|
print '<div class="fichecenter"><div class="fichethirdleft">';
|
||||||
|
|
||||||
|
|
||||||
$thirdpartystatic=new Societe($db);
|
$thirdpartystatic=new Societe($db);
|
||||||
@ -88,7 +88,7 @@ print '</td></tr></table><br>';
|
|||||||
|
|
||||||
|
|
||||||
//print '</td><td valign="top" width="70%">';
|
//print '</td><td valign="top" width="70%">';
|
||||||
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -221,7 +221,7 @@ else
|
|||||||
|
|
||||||
|
|
||||||
//print '</td></tr></table>';
|
//print '</td></tr></table>';
|
||||||
print '<div></div></div>';
|
print '</div></div></div>';
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|
||||||
|
|||||||
@ -189,8 +189,8 @@ if ($socid > 0)
|
|||||||
print '<td align="right">'.price($solde)."</td>\n";
|
print '<td align="right">'.price($solde)."</td>\n";
|
||||||
|
|
||||||
// Author
|
// Author
|
||||||
$userstatic->id=$objp->userid;
|
$userstatic->id=$objp->userid;
|
||||||
$userstatic->login=$objp->login;
|
$userstatic->login=$objp->login;
|
||||||
print '<td nowrap="nowrap" align="right">';
|
print '<td nowrap="nowrap" align="right">';
|
||||||
print $userstatic->getLoginUrl(1);
|
print $userstatic->getLoginUrl(1);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|||||||
@ -34,7 +34,7 @@ print_fiche_titre("Ventilation Comptable");
|
|||||||
|
|
||||||
//print '<table border="0" width="100%" class="notopnoleftnoright">';
|
//print '<table border="0" width="100%" class="notopnoleftnoright">';
|
||||||
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
||||||
print '<div class="fichecenter"><div class="fichethirdleft">';
|
print '<div class="fichecenter"><div class="fichethirdleft">';
|
||||||
|
|
||||||
$sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."facturedet as fd";
|
$sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."facturedet as fd";
|
||||||
$sql.= " , ".MAIN_DB_PREFIX."facture as f";
|
$sql.= " , ".MAIN_DB_PREFIX."facture as f";
|
||||||
@ -62,7 +62,7 @@ print "</table>\n";
|
|||||||
|
|
||||||
|
|
||||||
//print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
|
//print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
|
||||||
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
@ -94,7 +94,7 @@ if ($resql)
|
|||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
|
||||||
//print '</td></tr></table>';
|
//print '</td></tr></table>';
|
||||||
print '<div></div></div>';
|
print '</div></div></div>';
|
||||||
|
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|||||||
@ -66,9 +66,9 @@ llxHeader();
|
|||||||
print_fiche_titre($langs->trans("ContractsArea"));
|
print_fiche_titre($langs->trans("ContractsArea"));
|
||||||
|
|
||||||
|
|
||||||
//print '<table border="0" width="100%" class="notopnoleftnoright">';
|
//print '<table border="0" width="100%" class="notopnoleftnoright">';
|
||||||
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
||||||
print '<div class="fichecenter"><div class="fichethirdleft">';
|
print '<div class="fichecenter"><div class="fichethirdleft">';
|
||||||
|
|
||||||
|
|
||||||
// Search contract
|
// Search contract
|
||||||
@ -286,8 +286,8 @@ if (! empty($conf->contrat->enabled) && $user->rights->contrat->lire)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
|
//print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
|
||||||
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
|
|
||||||
// Last modified contracts
|
// Last modified contracts
|
||||||
@ -604,7 +604,7 @@ else
|
|||||||
|
|
||||||
|
|
||||||
//print '</td></tr></table>';
|
//print '</td></tr></table>';
|
||||||
print '<div></div></div>';
|
print '</div></div></div>';
|
||||||
|
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|||||||
@ -51,7 +51,14 @@ abstract class CommonDocGenerator
|
|||||||
'myuser_firstname'=>$user->firstname,
|
'myuser_firstname'=>$user->firstname,
|
||||||
'myuser_login'=>$user->login,
|
'myuser_login'=>$user->login,
|
||||||
'myuser_phone'=>$user->office_phone,
|
'myuser_phone'=>$user->office_phone,
|
||||||
'myuser_fax'=>$user->office_fax,
|
'myuser_address'=>$user->address,
|
||||||
|
'myuser_zip'=>$user->zip,
|
||||||
|
'myuser_town'=>$user->town,
|
||||||
|
'myuser_country'=>$user->country,
|
||||||
|
'myuser_country_code'=>$user->country_code,
|
||||||
|
'myuser_state'=>$user->state,
|
||||||
|
'myuser_state_code'=>$user->state_code,
|
||||||
|
'myuser_fax'=>$user->office_fax,
|
||||||
'myuser_mobile'=>$user->user_mobile,
|
'myuser_mobile'=>$user->user_mobile,
|
||||||
'myuser_email'=>$user->email,
|
'myuser_email'=>$user->email,
|
||||||
'myuser_web'=>'' // url not exist in $user object
|
'myuser_web'=>'' // url not exist in $user object
|
||||||
@ -190,6 +197,28 @@ abstract class CommonDocGenerator
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Define array with couple subtitution key => subtitution value
|
||||||
|
*
|
||||||
|
* @param Translate $outputlangs Language object for output
|
||||||
|
* @return array Array of substitution key->code
|
||||||
|
*/
|
||||||
|
function get_substitutionarray_other($outputlangs)
|
||||||
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
|
$now=dol_now('gmt'); // gmt
|
||||||
|
$array_other = array(
|
||||||
|
'current_date'=>dol_print_date($now,'day','tzuser'),
|
||||||
|
'current_datehour'=>dol_print_date($now,'dayhour','tzuser'),
|
||||||
|
'current_server_date'=>dol_print_date($now,'day','tzserver'),
|
||||||
|
'current_server_datehour'=>dol_print_date($now,'dayhour','tzserver'),
|
||||||
|
);
|
||||||
|
|
||||||
|
return $array_other;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Define array with couple substitution key => substitution value
|
* Define array with couple substitution key => substitution value
|
||||||
*
|
*
|
||||||
|
|||||||
@ -1556,8 +1556,8 @@ abstract class CommonObject
|
|||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add revenue stamp to total
|
// Add revenue stamp to total
|
||||||
$this->total_ttc += isset($this->revenuestamp)?$this->revenuestamp:0;
|
$this->total_ttc += isset($this->revenuestamp)?$this->revenuestamp:0;
|
||||||
|
|
||||||
$this->db->free($resql);
|
$this->db->free($resql);
|
||||||
|
|
||||||
@ -2790,12 +2790,12 @@ abstract class CommonObject
|
|||||||
// Product
|
// Product
|
||||||
if ($line->fk_product > 0)
|
if ($line->fk_product > 0)
|
||||||
{
|
{
|
||||||
$product_static = new Product($this->db);
|
$product_static = new Product($this->db);
|
||||||
|
|
||||||
$product_static->type=$line->fk_product_type;
|
$product_static->type=$line->fk_product_type;
|
||||||
$product_static->id=$line->fk_product;
|
$product_static->id=$line->fk_product;
|
||||||
$product_static->ref=$line->ref;
|
$product_static->ref=$line->ref;
|
||||||
$text=$product_static->getNomUrl(1);
|
$text=$product_static->getNomUrl(1);
|
||||||
|
|
||||||
// Define output language (TODO Does this works ?)
|
// Define output language (TODO Does this works ?)
|
||||||
if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE))
|
if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE))
|
||||||
|
|||||||
@ -691,19 +691,19 @@ class Form
|
|||||||
//$minLength = (is_numeric($conf->global->COMPANY_USE_SEARCH_TO_SELECT)?$conf->global->COMPANY_USE_SEARCH_TO_SELECT:2);
|
//$minLength = (is_numeric($conf->global->COMPANY_USE_SEARCH_TO_SELECT)?$conf->global->COMPANY_USE_SEARCH_TO_SELECT:2);
|
||||||
$out.= ajax_combobox($htmlname, $event, $conf->global->COMPANY_USE_SEARCH_TO_SELECT);
|
$out.= ajax_combobox($htmlname, $event, $conf->global->COMPANY_USE_SEARCH_TO_SELECT);
|
||||||
/*
|
/*
|
||||||
if ($selected && empty($selected_input_value))
|
if ($selected && empty($selected_input_value))
|
||||||
{
|
{
|
||||||
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
|
||||||
$product = new Product($this->db);
|
$product = new Product($this->db);
|
||||||
$product->fetch($selected);
|
$product->fetch($selected);
|
||||||
$selected_input_value=$product->ref;
|
$selected_input_value=$product->ref;
|
||||||
}
|
}
|
||||||
// mode=1 means customers products
|
// mode=1 means customers products
|
||||||
$ajaxoptions=array();
|
$ajaxoptions=array();
|
||||||
$urloption='htmlname='.$htmlname.'&outjson=1&filter='.urlencode($filter).'&showtype='.$showtype;
|
$urloption='htmlname='.$htmlname.'&outjson=1&filter='.urlencode($filter).'&showtype='.$showtype;
|
||||||
$out.=ajax_autocompleter($selected, $htmlname, DOL_URL_ROOT.'/societe/ajax/company.php', $urloption, $conf->global->COMPANY_USE_SEARCH_TO_SELECT, 0, $ajaxoptions);
|
$out.=ajax_autocompleter($selected, $htmlname, DOL_URL_ROOT.'/societe/ajax/company.php', $urloption, $conf->global->COMPANY_USE_SEARCH_TO_SELECT, 0, $ajaxoptions);
|
||||||
$out.='<input type="text" size="20" name="search_'.$htmlname.'" id="search_'.$htmlname.'" value="'.$selected_input_value.'" />';
|
$out.='<input type="text" size="20" name="search_'.$htmlname.'" id="search_'.$htmlname.'" value="'.$selected_input_value.'" />';
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
$out.= '<select id="'.$htmlname.'" class="flat" name="'.$htmlname.'">';
|
$out.= '<select id="'.$htmlname.'" class="flat" name="'.$htmlname.'">';
|
||||||
|
|||||||
@ -359,9 +359,9 @@ class FormFile
|
|||||||
}
|
}
|
||||||
// For normalized external modules
|
// For normalized external modules
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$file=dol_buildpath('/'.$modulepart.'/core/modules/'.$modulepart.'/modules_'.$modulepart.'.php',0);
|
$file=dol_buildpath('/'.$modulepart.'/core/modules/'.$modulepart.'/modules_'.$modulepart.'.php',0);
|
||||||
$res=include_once $file;
|
$res=include_once $file;
|
||||||
}
|
}
|
||||||
$class='Modele'.ucfirst($modulepart);
|
$class='Modele'.ucfirst($modulepart);
|
||||||
if (class_exists($class))
|
if (class_exists($class))
|
||||||
|
|||||||
@ -208,59 +208,59 @@ class FormOther
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return list of revenue stamp for country
|
* Return list of revenue stamp for country
|
||||||
*
|
*
|
||||||
* @param string $selected Value of preselected revenue stamp
|
* @param string $selected Value of preselected revenue stamp
|
||||||
* @param string $htmlname Name of combo list
|
* @param string $htmlname Name of combo list
|
||||||
* @return string HTML select list
|
* @return string HTML select list
|
||||||
*/
|
*/
|
||||||
function select_revenue_stamp($selected='',$htmlname='revenuestamp',$country_code='')
|
function select_revenue_stamp($selected='',$htmlname='revenuestamp',$country_code='')
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
|
|
||||||
$out='';
|
$out='';
|
||||||
|
|
||||||
$sql = "SELECT r.taux";
|
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."c_revenuestamp as r,".MAIN_DB_PREFIX."c_pays as p";
|
|
||||||
$sql.= " WHERE r.active = 1 AND r.fk_pays = p.rowid";
|
|
||||||
$sql.= " AND p.code = '".$country_code."'";
|
|
||||||
|
|
||||||
dol_syslog(get_class($this).'::select_revenue_stamp sql='.$sql);
|
$sql = "SELECT r.taux";
|
||||||
$resql=$this->db->query($sql);
|
$sql.= " FROM ".MAIN_DB_PREFIX."c_revenuestamp as r,".MAIN_DB_PREFIX."c_pays as p";
|
||||||
if ($resql)
|
$sql.= " WHERE r.active = 1 AND r.fk_pays = p.rowid";
|
||||||
{
|
$sql.= " AND p.code = '".$country_code."'";
|
||||||
$out.='<select class="flat" name="'.$htmlname.'">';
|
|
||||||
$num = $this->db->num_rows($resql);
|
dol_syslog(get_class($this).'::select_revenue_stamp sql='.$sql);
|
||||||
$i = 0;
|
$resql=$this->db->query($sql);
|
||||||
$out.='<option value="0"> </option>'."\n";
|
if ($resql)
|
||||||
if ($num)
|
{
|
||||||
{
|
$out.='<select class="flat" name="'.$htmlname.'">';
|
||||||
while ($i < $num)
|
$num = $this->db->num_rows($resql);
|
||||||
{
|
$i = 0;
|
||||||
$obj = $this->db->fetch_object($resql);
|
$out.='<option value="0"> </option>'."\n";
|
||||||
if (($selected && $selected == $obj->taux) || $num == 1)
|
if ($num)
|
||||||
{
|
{
|
||||||
$out.='<option value="'.$obj->taux.'" selected="selected">';
|
while ($i < $num)
|
||||||
}
|
{
|
||||||
else
|
$obj = $this->db->fetch_object($resql);
|
||||||
{
|
if (($selected && $selected == $obj->taux) || $num == 1)
|
||||||
$out.='<option value="'.$obj->taux.'">';
|
{
|
||||||
//print '<option onmouseover="showtip(\''.$obj->libelle.'\')" onMouseout="hidetip()" value="'.$obj->rowid.'">';
|
$out.='<option value="'.$obj->taux.'" selected="selected">';
|
||||||
}
|
}
|
||||||
$out.=$obj->taux;
|
else
|
||||||
$out.='</option>';
|
{
|
||||||
$i++;
|
$out.='<option value="'.$obj->taux.'">';
|
||||||
}
|
//print '<option onmouseover="showtip(\''.$obj->libelle.'\')" onMouseout="hidetip()" value="'.$obj->rowid.'">';
|
||||||
}
|
}
|
||||||
$out.='</select>';
|
$out.=$obj->taux;
|
||||||
return $out;
|
$out.='</option>';
|
||||||
}
|
$i++;
|
||||||
else
|
}
|
||||||
{
|
}
|
||||||
dol_print_error($this->db);
|
$out.='</select>';
|
||||||
return '';
|
return $out;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dol_print_error($this->db);
|
||||||
|
return '';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -512,6 +512,7 @@ class Menubase
|
|||||||
if ($type_user == 0) $sql.= " AND m.usertype IN (0,2)";
|
if ($type_user == 0) $sql.= " AND m.usertype IN (0,2)";
|
||||||
if ($type_user == 1) $sql.= " AND m.usertype IN (1,2)";
|
if ($type_user == 1) $sql.= " AND m.usertype IN (1,2)";
|
||||||
$sql.= " ORDER BY m.position, m.rowid";
|
$sql.= " ORDER BY m.position, m.rowid";
|
||||||
|
//print $sql;
|
||||||
|
|
||||||
//$tmp1=dol_microtime_float();
|
//$tmp1=dol_microtime_float();
|
||||||
//print '>>> 1 0<br>';
|
//print '>>> 1 0<br>';
|
||||||
@ -533,17 +534,21 @@ class Menubase
|
|||||||
$perms = true;
|
$perms = true;
|
||||||
if ($menu['perms'])
|
if ($menu['perms'])
|
||||||
{
|
{
|
||||||
$perms = verifCond($menu['perms']);
|
$tmpcond=$menu['perms'];
|
||||||
//print "verifCond rowid=".$menu['rowid']." ".$menu['perms'].":".$perms."<br>\n";
|
if ($leftmenu == 'all') $tmpcond=preg_replace('/\$leftmenu\s*==\s*["\'a-zA-Z]+/','1==1',$tmpcond); // Force part of condition to true
|
||||||
|
$perms = verifCond($tmpcond);
|
||||||
|
//print "verifCond rowid=".$menu['rowid']." ".$tmpcond.":".$perms."<br>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Define $enabled
|
// Define $enabled
|
||||||
$enabled = true;
|
$enabled = true;
|
||||||
if ($menu['enabled'])
|
if ($menu['enabled'])
|
||||||
{
|
{
|
||||||
$enabled = verifCond($menu['enabled']);
|
$tmpcond=$menu['enabled'];
|
||||||
|
if ($leftmenu == 'all') $tmpcond=preg_replace('/\$leftmenu\s*==\s*["\'a-zA-Z]+/','1==1',$tmpcond); // Force part of condition to true
|
||||||
|
$enabled = verifCond($tmpcond);
|
||||||
if ($conf->use_javascript_ajax && ! empty($conf->global->MAIN_MENU_USE_JQUERY_ACCORDION) && preg_match('/^\$leftmenu/',$menu['enabled'])) $enabled=1;
|
if ($conf->use_javascript_ajax && ! empty($conf->global->MAIN_MENU_USE_JQUERY_ACCORDION) && preg_match('/^\$leftmenu/',$menu['enabled'])) $enabled=1;
|
||||||
//print "verifCond rowid=".$menu['rowid']." ".$menu['enabled'].":".$enabled."<br>\n";
|
//print "verifCond rowid=".$menu['rowid']." ".$tmpcond.":".$enabled."<br>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Define $title
|
// Define $title
|
||||||
|
|||||||
@ -886,21 +886,23 @@ class DoliDBMysql
|
|||||||
$sqlfields[$i] = $field_name." ";
|
$sqlfields[$i] = $field_name." ";
|
||||||
$sqlfields[$i] .= $field_desc['type'];
|
$sqlfields[$i] .= $field_desc['type'];
|
||||||
if( preg_match("/^[^\s]/i",$field_desc['value']))
|
if( preg_match("/^[^\s]/i",$field_desc['value']))
|
||||||
$sqlfields[$i] .= "(".$field_desc['value'].")";
|
$sqlfields[$i] .= "(".$field_desc['value'].")";
|
||||||
else if( preg_match("/^[^\s]/i",$field_desc['attribute']))
|
if( preg_match("/^[^\s]/i",$field_desc['attribute']))
|
||||||
$sqlfields[$i] .= " ".$field_desc['attribute'];
|
$sqlfields[$i] .= " ".$field_desc['attribute'];
|
||||||
else if( preg_match("/^[^\s]/i",$field_desc['default']))
|
if( preg_match("/^[^\s]/i",$field_desc['default']))
|
||||||
{
|
{
|
||||||
if(preg_match("/null/i",$field_desc['default']))
|
if(preg_match("/null/i",$field_desc['default']))
|
||||||
$sqlfields[$i] .= " default ".$field_desc['default'];
|
$sqlfields[$i] .= " default ".$field_desc['default'];
|
||||||
|
elseif ($field_desc['default'] == 'CURRENT_TIMESTAMP')
|
||||||
|
$sqlfields[$i] .= " default ".$field_desc['default'];
|
||||||
else
|
else
|
||||||
$sqlfields[$i] .= " default '".$field_desc['default']."'";
|
$sqlfields[$i] .= " default '".$field_desc['default']."'";
|
||||||
}
|
}
|
||||||
else if( preg_match("/^[^\s]/i",$field_desc['null']))
|
if( preg_match("/^[^\s]/i",$field_desc['null']))
|
||||||
$sqlfields[$i] .= " ".$field_desc['null'];
|
$sqlfields[$i] .= " ".$field_desc['null'];
|
||||||
|
|
||||||
else if( preg_match("/^[^\s]/i",$field_desc['extra']))
|
if( preg_match("/^[^\s]/i",$field_desc['extra']))
|
||||||
$sqlfields[$i] .= " ".$field_desc['extra'];
|
$sqlfields[$i] .= " ".$field_desc['extra'];
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
if($primary_key != "")
|
if($primary_key != "")
|
||||||
|
|||||||
@ -879,22 +879,27 @@ class DoliDBMysqli
|
|||||||
{
|
{
|
||||||
$sqlfields[$i] = $field_name." ";
|
$sqlfields[$i] = $field_name." ";
|
||||||
$sqlfields[$i] .= $field_desc['type'];
|
$sqlfields[$i] .= $field_desc['type'];
|
||||||
|
|
||||||
if( preg_match("/^[^\s]/i",$field_desc['value']))
|
if( preg_match("/^[^\s]/i",$field_desc['value']))
|
||||||
$sqlfields[$i] .= "(".$field_desc['value'].")";
|
$sqlfields[$i] .= "(".$field_desc['value'].")";
|
||||||
else if( preg_match("/^[^\s]/i",$field_desc['attribute']))
|
|
||||||
$sqlfields[$i] .= " ".$field_desc['attribute'];
|
if( preg_match("/^[^\s]/i",$field_desc['attribute']))
|
||||||
else if( preg_match("/^[^\s]/i",$field_desc['default']))
|
$sqlfields[$i] .= " ".$field_desc['attribute'];
|
||||||
|
|
||||||
|
if( preg_match("/^[^\s]/i",$field_desc['default']))
|
||||||
{
|
{
|
||||||
if(preg_match("/null/i",$field_desc['default']))
|
if(preg_match("/null/i",$field_desc['default']))
|
||||||
$sqlfields[$i] .= " default ".$field_desc['default'];
|
$sqlfields[$i] .= " default ".$field_desc['default'];
|
||||||
|
elseif ($field_desc['default'] == 'CURRENT_TIMESTAMP')
|
||||||
|
$sqlfields[$i] .= " default ".$field_desc['default'];
|
||||||
else
|
else
|
||||||
$sqlfields[$i] .= " default '".$field_desc['default']."'";
|
$sqlfields[$i] .= " default '".$field_desc['default']."'";
|
||||||
}
|
}
|
||||||
else if( preg_match("/^[^\s]/i",$field_desc['null']))
|
if( preg_match("/^[^\s]/i",$field_desc['null']))
|
||||||
$sqlfields[$i] .= " ".$field_desc['null'];
|
$sqlfields[$i] .= " ".$field_desc['null'];
|
||||||
|
|
||||||
else if( preg_match("/^[^\s]/i",$field_desc['extra']))
|
if( preg_match("/^[^\s]/i",$field_desc['extra']))
|
||||||
$sqlfields[$i] .= " ".$field_desc['extra'];
|
$sqlfields[$i] .= " ".$field_desc['extra'];
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
if($primary_key != "")
|
if($primary_key != "")
|
||||||
|
|||||||
@ -51,44 +51,44 @@ $left=($langs->trans("DIRECTION")=='rtl'?'right':'left');
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// URL http://mydolibarr/core/getmenu_jmobime?mainmenu=mainmenu&leftmenu=leftmenu can be used for tests
|
// URL http://mydolibarr/core/getmenu_jmobime?mainmenu=mainmenu&leftmenu=leftmenu can be used for tests
|
||||||
$arrayofjs=array('/includes/jquery/plugins/mobile/jquery.mobile-latest.min.js');
|
$arrayofjs=array('/includes/jquery/plugins/mobile/jquery.mobile-latest.min.js');
|
||||||
$arrayofcss=array('/includes/jquery/plugins/mobile/jquery.mobile-latest.min.css');
|
$arrayofcss=array('/includes/jquery/plugins/mobile/jquery.mobile-latest.min.css');
|
||||||
top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss);
|
top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss);
|
||||||
|
|
||||||
print '<body>'."\n";
|
print '<body>'."\n";
|
||||||
|
|
||||||
if (empty($user->societe_id)) // If internal user or not defined
|
if (empty($user->societe_id)) // If internal user or not defined
|
||||||
{
|
{
|
||||||
$conf->standard_menu=(empty($conf->global->MAIN_MENU_STANDARD_FORCED)?(empty($conf->global->MAIN_MENU_STANDARD)?'eldy_menu.php':$conf->global->MAIN_MENU_STANDARD):$conf->global->MAIN_MENU_STANDARD_FORCED);
|
$conf->standard_menu=(empty($conf->global->MAIN_MENU_STANDARD_FORCED)?(empty($conf->global->MAIN_MENU_STANDARD)?'eldy_menu.php':$conf->global->MAIN_MENU_STANDARD):$conf->global->MAIN_MENU_STANDARD_FORCED);
|
||||||
$conf->smart_menu=(empty($conf->global->MAIN_MENU_SMARTPHONE_FORCED)?(empty($conf->global->MAIN_MENU_SMARTPHONE)?'smartphone_menu.php':$conf->global->MAIN_MENU_SMARTPHONE):$conf->global->MAIN_MENU_SMARTPHONE_FORCED);
|
$conf->smart_menu=(empty($conf->global->MAIN_MENU_SMARTPHONE_FORCED)?(empty($conf->global->MAIN_MENU_SMARTPHONE)?'smartphone_menu.php':$conf->global->MAIN_MENU_SMARTPHONE):$conf->global->MAIN_MENU_SMARTPHONE_FORCED);
|
||||||
}
|
}
|
||||||
else // If external user
|
else // If external user
|
||||||
{
|
{
|
||||||
$conf->standard_menu=(empty($conf->global->MAIN_MENUFRONT_STANDARD_FORCED)?(empty($conf->global->MAIN_MENUFRONT_STANDARD)?'eldy_menu.php':$conf->global->MAIN_MENUFRONT_STANDARD):$conf->global->MAIN_MENUFRONT_STANDARD_FORCED);
|
$conf->standard_menu=(empty($conf->global->MAIN_MENUFRONT_STANDARD_FORCED)?(empty($conf->global->MAIN_MENUFRONT_STANDARD)?'eldy_menu.php':$conf->global->MAIN_MENUFRONT_STANDARD):$conf->global->MAIN_MENUFRONT_STANDARD_FORCED);
|
||||||
$conf->smart_menu=(empty($conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED)?(empty($conf->global->MAIN_MENUFRONT_SMARTPHONE)?'smartphone_menu.php':$conf->global->MAIN_MENUFRONT_SMARTPHONE):$conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED);
|
$conf->smart_menu=(empty($conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED)?(empty($conf->global->MAIN_MENUFRONT_SMARTPHONE)?'smartphone_menu.php':$conf->global->MAIN_MENUFRONT_SMARTPHONE):$conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load the menu manager (only if not already done)
|
// Load the menu manager (only if not already done)
|
||||||
$file_menu=empty($conf->browser->phone)?$conf->standard_menu:$conf->smart_menu;
|
$file_menu=empty($conf->browser->phone)?$conf->standard_menu:$conf->smart_menu;
|
||||||
if (GETPOST('menu')) $file_menu=GETPOST('menu'); // example: menu=eldy_menu.php
|
if (GETPOST('menu')) $file_menu=GETPOST('menu'); // example: menu=eldy_menu.php
|
||||||
if (! class_exists('MenuManager'))
|
if (! class_exists('MenuManager'))
|
||||||
{
|
{
|
||||||
$menufound=0;
|
$menufound=0;
|
||||||
$dirmenus=array_merge(array("/core/menus/"),(array) $conf->modules_parts['menus']);
|
$dirmenus=array_merge(array("/core/menus/"),(array) $conf->modules_parts['menus']);
|
||||||
foreach($dirmenus as $dirmenu)
|
foreach($dirmenus as $dirmenu)
|
||||||
{
|
{
|
||||||
$menufound=dol_include_once($dirmenu."standard/".$file_menu);
|
$menufound=dol_include_once($dirmenu."standard/".$file_menu);
|
||||||
if ($menufound) break;
|
if ($menufound) break;
|
||||||
}
|
}
|
||||||
if (! $menufound) // If failed to include, we try with standard
|
if (! $menufound) // If failed to include, we try with standard
|
||||||
{
|
{
|
||||||
dol_syslog("You define a menu manager '".$file_menu."' that can not be loaded.", LOG_WARNING);
|
dol_syslog("You define a menu manager '".$file_menu."' that can not be loaded.", LOG_WARNING);
|
||||||
$file_menu='eldy_menu.php';
|
$file_menu='eldy_menu.php';
|
||||||
include_once DOL_DOCUMENT_ROOT."/core/menus/standard/".$file_menu;
|
include_once DOL_DOCUMENT_ROOT."/core/menus/standard/".$file_menu;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$menumanager = new MenuManager($db, empty($user->societe_id)?0:1);
|
$menumanager = new MenuManager($db, empty($user->societe_id)?0:1);
|
||||||
$menumanager->loadMenu();
|
$menumanager->loadMenu('all','all');
|
||||||
|
|
||||||
$menumanager->showmenu('jmobile');
|
$menumanager->showmenu('jmobile');
|
||||||
|
|
||||||
|
|||||||
@ -90,11 +90,11 @@ function societe_prepare_head($object)
|
|||||||
$head[$h][2] = 'note';
|
$head[$h][2] = 'note';
|
||||||
$h++;
|
$h++;
|
||||||
|
|
||||||
$head[$h][0] = DOL_URL_ROOT.'/societe/consumption.php?socid='.$object->id;
|
$head[$h][0] = DOL_URL_ROOT.'/societe/consumption.php?socid='.$object->id;
|
||||||
$head[$h][1] = $langs->trans("Referers");
|
$head[$h][1] = $langs->trans("Referers");
|
||||||
$head[$h][2] = 'consumption';
|
$head[$h][2] = 'consumption';
|
||||||
$h++;
|
$h++;
|
||||||
|
|
||||||
// Attached files
|
// Attached files
|
||||||
$head[$h][0] = DOL_URL_ROOT.'/societe/document.php?socid='.$object->id;
|
$head[$h][0] = DOL_URL_ROOT.'/societe/document.php?socid='.$object->id;
|
||||||
$head[$h][1] = $langs->trans("Documents");
|
$head[$h][1] = $langs->trans("Documents");
|
||||||
|
|||||||
@ -42,7 +42,7 @@ function dol_basename($pathfile)
|
|||||||
* @param string $path Starting path from which to search
|
* @param string $path Starting path from which to search
|
||||||
* @param string $types Can be "directories", "files", or "all"
|
* @param string $types Can be "directories", "files", or "all"
|
||||||
* @param int $recursive Determines whether subdirectories are searched
|
* @param int $recursive Determines whether subdirectories are searched
|
||||||
* @param string $filter Regex for include filter
|
* @param string $filter Regex filter to restrict list. This regex value must be escaped for '/', since this char is used for preg_match function
|
||||||
* @param string $excludefilter Array of Regex for exclude filter (example: array('\.meta$','^\.'))
|
* @param string $excludefilter Array of Regex for exclude filter (example: array('\.meta$','^\.'))
|
||||||
* @param string $sortcriteria Sort criteria ("","fullname","name","date","size")
|
* @param string $sortcriteria Sort criteria ("","fullname","name","date","size")
|
||||||
* @param string $sortorder Sort order (SORT_ASC, SORT_DESC)
|
* @param string $sortorder Sort order (SORT_ASC, SORT_DESC)
|
||||||
@ -65,7 +65,7 @@ function dol_dir_list($path, $types="all", $recursive=0, $filter="", $excludefil
|
|||||||
$path=preg_replace('/([\\/]+)$/i','',$path);
|
$path=preg_replace('/([\\/]+)$/i','',$path);
|
||||||
$newpath=dol_osencode($path);
|
$newpath=dol_osencode($path);
|
||||||
|
|
||||||
if (! $nohook)
|
if (! $nohook)
|
||||||
{
|
{
|
||||||
$hookmanager->initHooks(array('fileslib'));
|
$hookmanager->initHooks(array('fileslib'));
|
||||||
|
|
||||||
@ -1212,11 +1212,11 @@ function dol_uncompress($inputfile,$outputdir)
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return most recent file
|
* Return file(s) into a directory (by default most recent)
|
||||||
*
|
*
|
||||||
* @param string $dir Directory to scan
|
* @param string $dir Directory to scan
|
||||||
* @param string $regexfilter Regexfilter
|
* @param string $regexfilter Regex filter to restrict list. This regex value must be escaped for '/', since this char is used for preg_match function
|
||||||
* @param string $excludefilter Array of Regex for exclude filter (example: array('\.meta$','^\.'))
|
* @param string $excludefilter Array of Regex for exclude filter (example: array('\.meta$','^\.')). This regex value must be escaped for '/', since this char is used for preg_match function
|
||||||
* @param int $nohook Disable all hooks
|
* @param int $nohook Disable all hooks
|
||||||
* @return string Full path to most recent file
|
* @return string Full path to most recent file
|
||||||
*/
|
*/
|
||||||
@ -1225,4 +1225,5 @@ function dol_most_recent_file($dir,$regexfilter='',$excludefilter=array('\.meta$
|
|||||||
$tmparray=dol_dir_list($dir,'files',0,$regexfilter,$excludefilter,'date',SORT_DESC,'',$nohook);
|
$tmparray=dol_dir_list($dir,'files',0,$regexfilter,$excludefilter,'date',SORT_DESC,'',$nohook);
|
||||||
return $tmparray[0];
|
return $tmparray[0];
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
?>
|
||||||
@ -1155,17 +1155,18 @@ function dol_print_email($email,$cid=0,$socid=0,$addlink=0,$max=64,$showinvalid=
|
|||||||
* @param string $country Country code to use for formatting
|
* @param string $country Country code to use for formatting
|
||||||
* @param int $cid Id of contact if known
|
* @param int $cid Id of contact if known
|
||||||
* @param int $socid Id of third party if known
|
* @param int $socid Id of third party if known
|
||||||
* @param int $addlink 0=no link to create action
|
* @param int $addlink ''=no link to create action, 'AC_TEL'=add link to clicktodial (if module enabled) and add link to create event (if conf->global->AGENDA_ADDACTIONFORPHONE set)
|
||||||
* @param string $separ separation between numbers for a better visibility example : xx.xx.xx.xx.xx
|
* @param string $separ Separation between numbers for a better visibility example : xx.xx.xx.xx.xx
|
||||||
* @return string Formated phone number
|
* @return string Formated phone number
|
||||||
*/
|
*/
|
||||||
function dol_print_phone($phone,$country="FR",$cid=0,$socid=0,$addlink=0,$separ=" ")
|
function dol_print_phone($phone,$country='',$cid=0,$socid=0,$addlink='',$separ=" ")
|
||||||
{
|
{
|
||||||
global $conf,$user,$langs;
|
global $conf,$user,$langs,$mysoc;
|
||||||
|
|
||||||
// Clean phone parameter
|
// Clean phone parameter
|
||||||
$phone = preg_replace("/[\s.-]/","",trim($phone));
|
$phone = preg_replace("/[\s.-]/","",trim($phone));
|
||||||
if (empty($phone)) { return ''; }
|
if (empty($phone)) { return ''; }
|
||||||
|
if (empty($country)) $country=$mysoc->country_code;
|
||||||
|
|
||||||
$newphone=$phone;
|
$newphone=$phone;
|
||||||
if (strtoupper($country) == "FR")
|
if (strtoupper($country) == "FR")
|
||||||
@ -1198,8 +1199,11 @@ function dol_print_phone($phone,$country="FR",$cid=0,$socid=0,$addlink=0,$separ=
|
|||||||
{
|
{
|
||||||
if (empty($user->clicktodial_loaded)) $user->fetch_clicktodial();
|
if (empty($user->clicktodial_loaded)) $user->fetch_clicktodial();
|
||||||
|
|
||||||
if (empty($conf->global->CLICKTODIAL_URL)) $urlmask='ErrorClickToDialModuleNotConfigured';
|
// Define urlmask
|
||||||
else $urlmask=$conf->global->CLICKTODIAL_URL;
|
$urlmask='ErrorClickToDialModuleNotConfigured';
|
||||||
|
if (! empty($conf->global->CLICKTODIAL_URL)) $urlmask=$conf->global->CLICKTODIAL_URL;
|
||||||
|
if (! empty($user->clicktodial_url)) $urlmask=$user->clicktodial_url;
|
||||||
|
|
||||||
$clicktodial_poste=(! empty($user->clicktodial_poste)?urlencode($user->clicktodial_poste):'');
|
$clicktodial_poste=(! empty($user->clicktodial_poste)?urlencode($user->clicktodial_poste):'');
|
||||||
$clicktodial_login=(! empty($user->clicktodial_login)?urlencode($user->clicktodial_login):'');
|
$clicktodial_login=(! empty($user->clicktodial_login)?urlencode($user->clicktodial_login):'');
|
||||||
$clicktodial_password=(! empty($user->clicktodial_password)?urlencode($user->clicktodial_password):'');
|
$clicktodial_password=(! empty($user->clicktodial_password)?urlencode($user->clicktodial_password):'');
|
||||||
@ -1223,7 +1227,7 @@ function dol_print_phone($phone,$country="FR",$cid=0,$socid=0,$addlink=0,$separ=
|
|||||||
$type='AC_TEL'; $link='';
|
$type='AC_TEL'; $link='';
|
||||||
if ($addlink == 'AC_FAX') $type='AC_FAX';
|
if ($addlink == 'AC_FAX') $type='AC_FAX';
|
||||||
if (! empty($conf->global->AGENDA_ADDACTIONFORPHONE)) $link='<a href="'.DOL_URL_ROOT.'/comm/action/fiche.php?action=create&backtopage=1&actioncode='.$type.($cid?'&contactid='.$cid:'').($socid?'&socid='.$socid:'').'">'.img_object($langs->trans("AddAction"),"calendar").'</a>';
|
if (! empty($conf->global->AGENDA_ADDACTIONFORPHONE)) $link='<a href="'.DOL_URL_ROOT.'/comm/action/fiche.php?action=create&backtopage=1&actioncode='.$type.($cid?'&contactid='.$cid:'').($socid?'&socid='.$socid:'').'">'.img_object($langs->trans("AddAction"),"calendar").'</a>';
|
||||||
$newphone='<table class="nobordernopadding"><tr><td>'.$newphone.' </td><td> '.$link.'</td></tr></table>';
|
if ($link) $newphone='<table class="nobordernopadding"><tr><td>'.$newphone.' </td><td> '.$link.'</td></tr></table>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2630,9 +2634,9 @@ function price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerou
|
|||||||
{
|
{
|
||||||
$listofcurrenciesbefore=array('USD');
|
$listofcurrenciesbefore=array('USD');
|
||||||
if (in_array($currency_code,$listofcurrenciesbefore)) $cursymbolbefore.=$outlangs->getCurrencySymbol($currency_code);
|
if (in_array($currency_code,$listofcurrenciesbefore)) $cursymbolbefore.=$outlangs->getCurrencySymbol($currency_code);
|
||||||
else $cursymbolafter.=$outlangs->getCurrencySymbol($currency_code);
|
else $cursymbolafter.=$outlangs->getCurrencySymbol($currency_code);
|
||||||
}
|
}
|
||||||
$output.=$cursymbolbefore.$end.$cursymbolafter;
|
$output.=$cursymbolbefore.$end.$cursymbolafter;
|
||||||
|
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
@ -3660,21 +3664,21 @@ function dolGetFirstLastname($firstname,$lastname,$nameorder=-1)
|
|||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
$ret='';
|
$ret='';
|
||||||
// If order not defined, we use the setup
|
// If order not defined, we use the setup
|
||||||
if ($nameorder < 0) $nameorder=(empty($conf->global->MAIN_FIRSTNAME_NAME_POSITION));
|
if ($nameorder < 0) $nameorder=(empty($conf->global->MAIN_FIRSTNAME_NAME_POSITION));
|
||||||
if ($nameorder)
|
if ($nameorder)
|
||||||
{
|
{
|
||||||
$ret.=$firstname;
|
$ret.=$firstname;
|
||||||
if ($firstname && $lastname) $ret.=' ';
|
if ($firstname && $lastname) $ret.=' ';
|
||||||
$ret.=$lastname;
|
$ret.=$lastname;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$ret.=$lastname;
|
$ret.=$lastname;
|
||||||
if ($firstname && $lastname) $ret.=' ';
|
if ($firstname && $lastname) $ret.=' ';
|
||||||
$ret.=$firstname;
|
$ret.=$firstname;
|
||||||
}
|
}
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4293,18 +4297,18 @@ function colorArrayToHex($arraycolor,$colorifnotfound='888888')
|
|||||||
return dechex($arraycolor[0]).dechex($arraycolor[1]).dechex($arraycolor[2]);
|
return dechex($arraycolor[0]).dechex($arraycolor[1]).dechex($arraycolor[2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set focus onto field with selector
|
* Set focus onto field with selector
|
||||||
*
|
*
|
||||||
* @param string $selector Selector ('#id')
|
* @param string $selector Selector ('#id')
|
||||||
* @return string HTML code to set focus
|
* @return string HTML code to set focus
|
||||||
*/
|
*/
|
||||||
function dol_set_focus($selector)
|
function dol_set_focus($selector)
|
||||||
{
|
{
|
||||||
print '<!-- Set focus onto a specific field -->'."\n";
|
print '<!-- Set focus onto a specific field -->'."\n";
|
||||||
print '<script type="text/javascript" language="javascript">jQuery(document).ready(function() { jQuery("'.$selector.'").focus(); });</script>'."\n";
|
print '<script type="text/javascript" language="javascript">jQuery(document).ready(function() { jQuery("'.$selector.'").focus(); });</script>'."\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (! function_exists('getmypid'))
|
if (! function_exists('getmypid'))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -23,7 +23,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
// ------------------------------- Used by ajax tree view -----------------
|
// ------------------------------- Used by ajax tree view -----------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show indent and picto of a tree line. Return array with information of line.
|
* Show indent and picto of a tree line. Return array with information of line.
|
||||||
@ -159,7 +159,7 @@ function tree_recur($tab, $pere, $rang, $iddivjstree='iddivjstree')
|
|||||||
print '</li>';
|
print '</li>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (! empty($ulprinted) && ! empty($pere['rowid'])) { print '</ul>'."\n"; }
|
if (! empty($ulprinted) && ! empty($pere['rowid'])) { print '</ul>'."\n"; }
|
||||||
|
|
||||||
if (empty($pere['rowid'])) print '</ul>';
|
if (empty($pere['rowid'])) print '</ul>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,26 +1,26 @@
|
|||||||
README (english)
|
README (english)
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
Decription of htdocs/core/login directory
|
Decription of htdocs/core/login directory
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
|
|
||||||
This directory contains files that handle way to validate passwords.
|
This directory contains files that handle way to validate passwords.
|
||||||
|
|
||||||
If you want to add a new password checker function, just add a file in
|
If you want to add a new password checker function, just add a file in
|
||||||
this directory that follow example of already existing files.
|
this directory that follow example of already existing files.
|
||||||
This file must be called for example :
|
This file must be called for example :
|
||||||
functions_mypasschecker.php
|
functions_mypasschecker.php
|
||||||
|
|
||||||
Edit function name to call it:
|
Edit function name to call it:
|
||||||
check_user_mypasschecker
|
check_user_mypasschecker
|
||||||
|
|
||||||
Change code of this function to return true if couple
|
Change code of this function to return true if couple
|
||||||
$usertotest / $passwordtotest is ok for you.
|
$usertotest / $passwordtotest is ok for you.
|
||||||
|
|
||||||
Then, you must edit you conf.php file to change the value of
|
Then, you must edit you conf.php file to change the value of
|
||||||
$dolibarr_main_authentication
|
$dolibarr_main_authentication
|
||||||
parameter to set it to :
|
parameter to set it to :
|
||||||
mypasschecker
|
mypasschecker
|
||||||
|
|
||||||
Once this is done, when you log in to Dolibarr, the function
|
Once this is done, when you log in to Dolibarr, the function
|
||||||
check_user_mypasschecker in this file is called.
|
check_user_mypasschecker in this file is called.
|
||||||
If the function return true and login exists, login is accepted.
|
If the function return true and login exists, login is accepted.
|
||||||
|
|||||||
@ -8,16 +8,16 @@ delete from llx_menu where menu_handler=__HANDLER__ and entity=__ENTITY__;
|
|||||||
--
|
--
|
||||||
-- table llx_menu
|
-- table llx_menu
|
||||||
--
|
--
|
||||||
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '1', 1__+MAX_llx_menu__, __HANDLER__, 'top', 'home', '', 0, '/index.php?mainmenu=home&leftmenu=', 'Home', -1, '', '', '', 2, 1, __ENTITY__);
|
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '1', 1__+MAX_llx_menu__, __HANDLER__, 'top', 'home', '', 0, '/index.php?mainmenu=home&leftmenu=', 'Home', -1, '', '', '', 2, 10, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('societe|fournisseur', '$conf->societe->enabled || $conf->fournisseur->enabled', 2__+MAX_llx_menu__, __HANDLER__, 'top', 'companies', '', 0, '/societe/index.php?mainmenu=companies&leftmenu=', 'ThirdParties', -1, 'companies', '$user->rights->societe->lire || $user->rights->societe->contact->lire', '', 2, 2, __ENTITY__);
|
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('societe|fournisseur', '$conf->societe->enabled || $conf->fournisseur->enabled', 2__+MAX_llx_menu__, __HANDLER__, 'top', 'companies', '', 0, '/societe/index.php?mainmenu=companies&leftmenu=', 'ThirdParties', -1, 'companies', '$user->rights->societe->lire || $user->rights->societe->contact->lire', '', 2, 20, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('product|service', '$conf->product->enabled || $conf->service->enabled', 3__+MAX_llx_menu__, __HANDLER__, 'top', 'products', '', 0, '/product/index.php?mainmenu=products&leftmenu=', 'Products/Services', -1, 'products', '$user->rights->produit->lire||$user->rights->service->lire', '', 0, 3, __ENTITY__);
|
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('product|service', '$conf->product->enabled || $conf->service->enabled', 3__+MAX_llx_menu__, __HANDLER__, 'top', 'products', '', 0, '/product/index.php?mainmenu=products&leftmenu=', 'Products/Services', -1, 'products', '$user->rights->produit->lire||$user->rights->service->lire', '', 0, 30, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('propal|commande|fournisseur|contrat|ficheinter', '$conf->comptabilite->enabled || $conf->accounting->enabled || $conf->facture->enabled || $conf->deplacement->enabled || $conf->don->enabled || $conf->tax->enabled', 5__+MAX_llx_menu__, __HANDLER__, 'top', 'commercial', '', 0, '/comm/index.php?mainmenu=commercial&leftmenu=', 'Commercial', -1, 'commercial', '$user->rights->societe->lire || $user->rights->societe->contact->lire', '', 2, 5, __ENTITY__);
|
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('propal|commande|fournisseur|contrat|ficheinter', '$conf->comptabilite->enabled || $conf->accounting->enabled || $conf->facture->enabled || $conf->deplacement->enabled || $conf->don->enabled || $conf->tax->enabled', 5__+MAX_llx_menu__, __HANDLER__, 'top', 'commercial', '', 0, '/comm/index.php?mainmenu=commercial&leftmenu=', 'Commercial', -1, 'commercial', '$user->rights->societe->lire || $user->rights->societe->contact->lire', '', 2, 40, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('comptabilite|accounting|facture|deplacement|don|tax', '$conf->comptabilite->enabled || $conf->accounting->enabled || $conf->facture->enabled || $conf->deplacement->enabled || $conf->don->enabled || $conf->tax->enabled', 6__+MAX_llx_menu__, __HANDLER__, 'top', 'accountancy', '', 0, '/compta/index.php?mainmenu=accountancy&leftmenu=', 'MenuFinancial', -1, 'compta', '$user->rights->compta->resultat->lire || $user->rights->accounting->plancompte->lire || $user->rights->facture->lire|| $user->rights->deplacement->lire || $user->rights->don->lire || $user->rights->tax->charges->lire', '', 2, 6, __ENTITY__);
|
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('comptabilite|accounting|facture|deplacement|don|tax', '$conf->comptabilite->enabled || $conf->accounting->enabled || $conf->facture->enabled || $conf->deplacement->enabled || $conf->don->enabled || $conf->tax->enabled', 6__+MAX_llx_menu__, __HANDLER__, 'top', 'accountancy', '', 0, '/compta/index.php?mainmenu=accountancy&leftmenu=', 'MenuFinancial', -1, 'compta', '$user->rights->compta->resultat->lire || $user->rights->accounting->plancompte->lire || $user->rights->facture->lire|| $user->rights->deplacement->lire || $user->rights->don->lire || $user->rights->tax->charges->lire', '', 2, 50, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('banque|prelevement', '$conf->banque->enabled || $conf->prelevement->enabled', 14__+MAX_llx_menu__, __HANDLER__, 'top', 'bank', '', 0, '/compta/bank/index.php?mainmenu=bank&leftmenu=bank', 'MenuBankCash', -1, 'banks', '$user->rights->banque->lire || $user->rights->prelevement->bons->lire', '', 0, 6, __ENTITY__);
|
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('banque|prelevement', '$conf->banque->enabled || $conf->prelevement->enabled', 14__+MAX_llx_menu__, __HANDLER__, 'top', 'bank', '', 0, '/compta/bank/index.php?mainmenu=bank&leftmenu=bank', 'MenuBankCash', -1, 'banks', '$user->rights->banque->lire || $user->rights->prelevement->bons->lire', '', 0, 60, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('projet', '$conf->projet->enabled', 7__+MAX_llx_menu__, __HANDLER__, 'top', 'project', '', 0, '/projet/index.php?mainmenu=project&leftmenu=', 'Projects', -1, 'projects', '$user->rights->projet->lire', '', 2, 7, __ENTITY__);
|
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('projet', '$conf->projet->enabled', 7__+MAX_llx_menu__, __HANDLER__, 'top', 'project', '', 0, '/projet/index.php?mainmenu=project&leftmenu=', 'Projects', -1, 'projects', '$user->rights->projet->lire', '', 2, 70, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('mailing|export|import', '$conf->mailing->enabled || $conf->export->enabled || $conf->import->enabled', 8__+MAX_llx_menu__, __HANDLER__, 'top', 'tools', '', 0, '/core/tools.php?mainmenu=tools&leftmenu=', 'Tools', -1, 'other', '$user->rights->mailing->lire || $user->rights->export->lire || $user->rights->import->run', '', 2, 8, __ENTITY__);
|
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('mailing|export|import', '$conf->mailing->enabled || $conf->export->enabled || $conf->import->enabled', 8__+MAX_llx_menu__, __HANDLER__, 'top', 'tools', '', 0, '/core/tools.php?mainmenu=tools&leftmenu=', 'Tools', -1, 'other', '$user->rights->mailing->lire || $user->rights->export->lire || $user->rights->import->run', '', 2, 80, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('boutique', '! empty($conf->boutique->enabled)', 11__+MAX_llx_menu__, __HANDLER__, 'top', 'shop', '', 0, '/boutique/index.php?mainmenu=shop&leftmenu=', 'OSCommerce', -1, 'shop', '', '', 0, 11, __ENTITY__);
|
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('boutique', '! empty($conf->boutique->enabled)', 11__+MAX_llx_menu__, __HANDLER__, 'top', 'shop', '', 0, '/boutique/index.php?mainmenu=shop&leftmenu=', 'OSCommerce', -1, 'shop', '', '', 0, 90, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('adherent', '$conf->adherent->enabled', 13__+MAX_llx_menu__, __HANDLER__, 'top', 'members', '', 0, '/adherents/index.php?mainmenu=members&leftmenu=', 'Members', -1, 'members', '$user->rights->adherent->lire', '', 2, 15, __ENTITY__);
|
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('adherent', '$conf->adherent->enabled', 13__+MAX_llx_menu__, __HANDLER__, 'top', 'members', '', 0, '/adherents/index.php?mainmenu=members&leftmenu=', 'Members', -1, 'members', '$user->rights->adherent->lire', '', 2, 100, __ENTITY__);
|
||||||
-- Home - Setup
|
-- Home - Setup
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$user->admin', __HANDLER__, 'left', 100__+MAX_llx_menu__, 'home', 'setup', 1__+MAX_llx_menu__, '/admin/index.php?leftmenu=setup', 'Setup', 0, 'admin', '', '', 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 ('', '$user->admin', __HANDLER__, 'left', 100__+MAX_llx_menu__, 'home', 'setup', 1__+MAX_llx_menu__, '/admin/index.php?leftmenu=setup', 'Setup', 0, 'admin', '', '', 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 ('', '$leftmenu==\'setup\'', __HANDLER__, 'left', 101__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/company.php?leftmenu=setup', 'MenuCompanySetup', 1, 'admin', '', '', 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 ('', '$leftmenu==\'setup\'', __HANDLER__, 'left', 101__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/company.php?leftmenu=setup', 'MenuCompanySetup', 1, 'admin', '', '', 2, 1, __ENTITY__);
|
||||||
@ -30,7 +30,7 @@ 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 ('', '$leftmenu==\'setup\'', __HANDLER__, 'left', 110__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/limits.php?leftmenu=setup', 'MenuLimits', 1, 'admin', '', '', 2, 8, __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 ('', '$leftmenu==\'setup\'', __HANDLER__, 'left', 110__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/limits.php?leftmenu=setup', 'MenuLimits', 1, 'admin', '', '', 2, 8, __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 ('', '$leftmenu==\'setup\'', __HANDLER__, 'left', 107__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/pdf.php?leftmenu=setup', 'PDF', 1, 'admin', '', '', 2, 9, __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 ('', '$leftmenu==\'setup\'', __HANDLER__, 'left', 107__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/pdf.php?leftmenu=setup', 'PDF', 1, 'admin', '', '', 2, 9, __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 ('', '$leftmenu==\'setup\'', __HANDLER__, 'left', 109__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/mails.php?leftmenu=setup', 'Emails', 1, 'admin', '', '', 2, 10, __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 ('', '$leftmenu==\'setup\'', __HANDLER__, 'left', 109__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/mails.php?leftmenu=setup', 'Emails', 1, 'admin', '', '', 2, 10, __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 ('', '$leftmenu==\'setup\'', __HANDLER__, 'left', 113__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/sms.php?leftmenu=setup', 'Sms', 1, 'admin', '', '', 2, 11, __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 ('', '$leftmenu==\'setup\'', __HANDLER__, 'left', 113__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/sms.php?leftmenu=setup', 'SMS', 1, 'admin', '', '', 2, 11, __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 ('', '$leftmenu==\'setup\'', __HANDLER__, 'left', 111__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/dict.php?leftmenu=setup', 'DictionnarySetup', 1, 'admin', '', '', 2, 12, __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 ('', '$leftmenu==\'setup\'', __HANDLER__, 'left', 111__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/dict.php?leftmenu=setup', 'DictionnarySetup', 1, 'admin', '', '', 2, 12, __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 ('', '$leftmenu==\'setup\'', __HANDLER__, 'left', 112__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/const.php?leftmenu=setup', 'OtherSetup', 1, 'admin', '', '', 2, 13, __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 ('', '$leftmenu==\'setup\'', __HANDLER__, 'left', 112__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/const.php?leftmenu=setup', 'OtherSetup', 1, 'admin', '', '', 2, 13, __ENTITY__);
|
||||||
-- Home - Sytem info
|
-- Home - Sytem info
|
||||||
|
|||||||
@ -21,7 +21,7 @@
|
|||||||
* \file htdocs/core/menus/standard/auguria.lib.php
|
* \file htdocs/core/menus/standard/auguria.lib.php
|
||||||
* \brief Library for file auguria menus
|
* \brief Library for file auguria menus
|
||||||
*/
|
*/
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -30,26 +30,27 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';
|
|||||||
*
|
*
|
||||||
* @param DoliDB $db Database handler
|
* @param DoliDB $db Database handler
|
||||||
* @param string $atarget Target
|
* @param string $atarget Target
|
||||||
* @param int $type_user 0=Internal,1=External,2=All
|
* @param int $type_user 0=Menu for backoffice, 1=Menu for front office
|
||||||
* @param array &$tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty)
|
* @param array &$tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty)
|
||||||
* @param array &$menu Object Menu to return back list of menu entries
|
* @param array &$menu Object Menu to return back list of menu entries
|
||||||
|
* @param int $noout Disable output (Initialise &$menu only).
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function print_auguria_menu($db,$atarget,$type_user,&$tabMenu,&$menu)
|
function print_auguria_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0)
|
||||||
{
|
{
|
||||||
global $user,$conf,$langs,$dolibarr_main_db_name;
|
global $user,$conf,$langs,$dolibarr_main_db_name;
|
||||||
|
|
||||||
$mainmenu=$_SESSION["mainmenu"];
|
$mainmenu=$_SESSION["mainmenu"];
|
||||||
$leftmenu=$_SESSION["leftmenu"];
|
$leftmenu=$_SESSION["leftmenu"];
|
||||||
|
|
||||||
$id='mainmenu';
|
$id='mainmenu';
|
||||||
$listofmodulesforexternal=explode(',',$conf->global->MAIN_MODULES_FOR_EXTERNAL);
|
$listofmodulesforexternal=explode(',',$conf->global->MAIN_MODULES_FOR_EXTERNAL);
|
||||||
|
|
||||||
//$tabMenu=array();
|
// Show personalized menus
|
||||||
$menuArbo = new Menubase($db,'auguria');
|
$menuArbo = new Menubase($db,'auguria');
|
||||||
$newTabMenu = $menuArbo->menuTopCharger('', '', $type_user, 'auguria',$tabMenu);
|
$newTabMenu = $menuArbo->menuTopCharger('', '', $type_user, 'auguria',$tabMenu);
|
||||||
|
|
||||||
print_start_menu_array_auguria();
|
if (empty($noout)) print_start_menu_array_auguria();
|
||||||
|
|
||||||
$num = count($newTabMenu);
|
$num = count($newTabMenu);
|
||||||
for($i = 0; $i < $num; $i++)
|
for($i = 0; $i < $num; $i++)
|
||||||
@ -59,23 +60,24 @@ function print_auguria_menu($db,$atarget,$type_user,&$tabMenu,&$menu)
|
|||||||
$showmode=dol_auguria_showmenu($type_user,$newTabMenu[$i],$listofmodulesforexternal);
|
$showmode=dol_auguria_showmenu($type_user,$newTabMenu[$i],$listofmodulesforexternal);
|
||||||
if ($showmode == 1)
|
if ($showmode == 1)
|
||||||
{
|
{
|
||||||
// Define url
|
$url = $shorturl = $newTabMenu[$i]['url'];
|
||||||
if (preg_match("/^(http:\/\/|https:\/\/)/i",$newTabMenu[$i]['url']))
|
if (! preg_match("/^(http:\/\/|https:\/\/)/i",$newTabMenu[$i]['url']))
|
||||||
{
|
{
|
||||||
$url = $newTabMenu[$i]['url'];
|
$param='';
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$url=dol_buildpath($newTabMenu[$i]['url'],1);
|
|
||||||
if (! preg_match('/mainmenu/i',$url) || ! preg_match('/leftmenu/i',$url))
|
if (! preg_match('/mainmenu/i',$url) || ! preg_match('/leftmenu/i',$url))
|
||||||
{
|
{
|
||||||
if (! preg_match('/\?/',$url)) $url.='?';
|
if (! preg_match('/\?/',$url)) $param.='?';
|
||||||
else $url.='&';
|
else $param.='&';
|
||||||
$url.='mainmenu='.$newTabMenu[$i]['mainmenu'].'&leftmenu=';
|
$param.='mainmenu='.$newTabMenu[$i]['mainmenu'].'&leftmenu=';
|
||||||
}
|
}
|
||||||
//$url.="idmenu=".$newTabMenu[$i]['rowid']; // Already done by menuLoad
|
//$url.="idmenu=".$newTabMenu[$i]['rowid']; // Already done by menuLoad
|
||||||
|
$url=dol_buildpath($url,1).$param;
|
||||||
|
$shorturl = $newTabMenu[$i]['url'].$param;
|
||||||
}
|
}
|
||||||
$url=preg_replace('/__LOGIN__/',$user->login,$url);
|
$url=preg_replace('/__LOGIN__/',$user->login,$url);
|
||||||
|
$shorturl=preg_replace('/__LOGIN__/',$user->login,$shorturl);
|
||||||
|
$url=preg_replace('/__USERID__/',$user->id,$url);
|
||||||
|
$shorturl=preg_replace('/__USERID__/',$user->id,$shorturl);
|
||||||
|
|
||||||
// Define the class (top menu selected or not)
|
// Define the class (top menu selected or not)
|
||||||
if (! empty($_SESSION['idmenu']) && $newTabMenu[$i]['rowid'] == $_SESSION['idmenu']) $classname='class="tmenusel"';
|
if (! empty($_SESSION['idmenu']) && $newTabMenu[$i]['rowid'] == $_SESSION['idmenu']) $classname='class="tmenusel"';
|
||||||
@ -84,12 +86,13 @@ function print_auguria_menu($db,$atarget,$type_user,&$tabMenu,&$menu)
|
|||||||
}
|
}
|
||||||
else if ($showmode == 2) $classname='class="tmenu"';
|
else if ($showmode == 2) $classname='class="tmenu"';
|
||||||
|
|
||||||
print_start_menu_entry_auguria($idsel,$classname,$showmode);
|
if (empty($noout)) print_start_menu_entry_auguria($idsel,$classname,$showmode);
|
||||||
print_text_menu_entry_auguria($newTabMenu[$i]['titre'], $showmode, $url, $id, $idsel, $classname, ($newTabMenu[$i]['target']?$newTabMenu[$i]['target']:$atarget));
|
if (empty($noout)) print_text_menu_entry_auguria($newTabMenu[$i]['titre'], $showmode, $url, $id, $idsel, $classname, ($newTabMenu[$i]['target']?$newTabMenu[$i]['target']:$atarget));
|
||||||
print_end_menu_entry_auguria($showmode);
|
if (empty($noout)) print_end_menu_entry_auguria($showmode);
|
||||||
|
$menu->add($shorturl, $newTabMenu[$i]['titre'], 0, $showmode, ($newTabMenu[$i]['target']?$newTabMenu[$i]['target']:$atarget), ($newTabMenu[$i]['mainmenu']?$newTabMenu[$i]['mainmenu']:$newTabMenu[$i]['rowid']), '');
|
||||||
}
|
}
|
||||||
|
|
||||||
print_end_menu_array_auguria();
|
if (empty($noout)) print_end_menu_array_auguria();
|
||||||
|
|
||||||
print "\n";
|
print "\n";
|
||||||
}
|
}
|
||||||
@ -127,7 +130,7 @@ function print_start_menu_entry_auguria($idsel,$classname,$showmode)
|
|||||||
* Output menu entry
|
* Output menu entry
|
||||||
*
|
*
|
||||||
* @param string $text Text
|
* @param string $text Text
|
||||||
* @param int $showmode 1 = allowed or 2 = not allowed
|
* @param int $showmode 0 = hide, 1 = allowed or 2 = not allowed
|
||||||
* @param string $url Url
|
* @param string $url Url
|
||||||
* @param string $id Id
|
* @param string $id Id
|
||||||
* @param string $idsel Id sel
|
* @param string $idsel Id sel
|
||||||
@ -137,23 +140,23 @@ function print_start_menu_entry_auguria($idsel,$classname,$showmode)
|
|||||||
*/
|
*/
|
||||||
function print_text_menu_entry_auguria($text, $showmode, $url, $id, $idsel, $classname, $atarget)
|
function print_text_menu_entry_auguria($text, $showmode, $url, $id, $idsel, $classname, $atarget)
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
|
|
||||||
if ($showmode == 1)
|
if ($showmode == 1)
|
||||||
{
|
{
|
||||||
print '<a class="tmenuimage" href="'.$url.'"'.($atarget?' target="'.$atarget.'"':'').'>';
|
print '<a class="tmenuimage" href="'.$url.'"'.($atarget?' target="'.$atarget.'"':'').'>';
|
||||||
print '<div class="'.$id.' '.$idsel.'"><span class="mainmenu_'.$idsel.' '.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>';
|
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>';
|
||||||
print '</a>';
|
print '</a>';
|
||||||
print '<a '.$classname.' id="mainmenua_'.$idsel.'" href="'.$url.'"'.($atarget?' target="'.$atarget.'"':'').'>';
|
print '<a '.$classname.' id="mainmenua_'.$idsel.'" href="'.$url.'"'.($atarget?' target="'.$atarget.'"':'').'>';
|
||||||
print '<span class="mainmenuaspan">';
|
print '<span class="mainmenuaspan">';
|
||||||
print $text;
|
print $text;
|
||||||
print '</span>';
|
print '</span>';
|
||||||
print '</a>';
|
print '</a>';
|
||||||
}
|
}
|
||||||
if ($showmode == 2)
|
if ($showmode == 2)
|
||||||
{
|
{
|
||||||
print '<div class="'.$id.' '.$idsel.'"><span class="mainmenu_'.$idsel.' '.$id.'" id="mainmenuspan_'.$idsel.'"></span></div>';
|
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.'" id="mainmenuspan_'.$idsel.'"></span></div>';
|
||||||
print '<a class="tmenudisabled" id="mainmenua_'.$idsel.'" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">';
|
print '<a class="tmenudisabled" id="mainmenua_'.$idsel.'" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">';
|
||||||
print '<span class="mainmenuaspan">';
|
print '<span class="mainmenuaspan">';
|
||||||
print $text;
|
print $text;
|
||||||
print '</span>';
|
print '</span>';
|
||||||
@ -172,8 +175,8 @@ function print_end_menu_entry_auguria($showmode)
|
|||||||
if ($showmode)
|
if ($showmode)
|
||||||
{
|
{
|
||||||
print '</div></li>';
|
print '</div></li>';
|
||||||
print "\n";
|
|
||||||
}
|
}
|
||||||
|
print "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -198,20 +201,22 @@ function print_end_menu_array_auguria()
|
|||||||
* @param array $menu_array_after Table of menu entries to show after entries of menu handler
|
* @param array $menu_array_after Table of menu entries to show after entries of menu handler
|
||||||
* @param array &$tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty)
|
* @param array &$tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty)
|
||||||
* @param array &$menu Object Menu to return back list of menu entries
|
* @param array &$menu Object Menu to return back list of menu entries
|
||||||
|
* @param int $noout Disable output (Initialise &$menu only).
|
||||||
|
* @param string $forcemainmenu 'x'=Force mainmenu to mainmenu='x'
|
||||||
|
* @param string $forceleftmenu 'all'=Force leftmenu to '' (= all)
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabMenu,&$menu)
|
function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabMenu,&$menu,$noout=0,$forcemainmenu='',$forceleftmenu='')
|
||||||
{
|
{
|
||||||
global $user,$conf,$langs,$dolibarr_main_db_name,$mysoc;
|
global $user,$conf,$langs,$dolibarr_main_db_name,$mysoc;
|
||||||
|
|
||||||
$overwritemenufor = array();
|
|
||||||
$newmenu = $menu;
|
$newmenu = $menu;
|
||||||
|
|
||||||
$mainmenu=$_SESSION["mainmenu"];
|
$mainmenu=($forcemainmenu?$forcemainmenu:$_SESSION["mainmenu"]);
|
||||||
$leftmenu=$_SESSION["leftmenu"];
|
$leftmenu=($forceleftmenu?'':(empty($_SESSION["leftmenu"])?'none':$_SESSION["leftmenu"]));
|
||||||
|
|
||||||
// Show logo company
|
// Show logo company
|
||||||
if (! empty($conf->global->MAIN_SHOW_LOGO))
|
if (empty($noout) && ! empty($conf->global->MAIN_SHOW_LOGO))
|
||||||
{
|
{
|
||||||
$mysoc->logo_mini=$conf->global->MAIN_INFO_SOCIETE_LOGO_MINI;
|
$mysoc->logo_mini=$conf->global->MAIN_INFO_SOCIETE_LOGO_MINI;
|
||||||
if (! empty($mysoc->logo_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini))
|
if (! empty($mysoc->logo_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini))
|
||||||
@ -242,26 +247,24 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM
|
|||||||
if (is_array($menu_array_before)) $menu_array=array_merge($menu_array_before, $menu_array);
|
if (is_array($menu_array_before)) $menu_array=array_merge($menu_array_before, $menu_array);
|
||||||
if (is_array($menu_array_after)) $menu_array=array_merge($menu_array, $menu_array_after);
|
if (is_array($menu_array_after)) $menu_array=array_merge($menu_array, $menu_array_after);
|
||||||
//var_dump($menu_array);exit;
|
//var_dump($menu_array);exit;
|
||||||
if (! is_array($menu_array)) return 0;
|
if (! is_array($menu_array)) return 0;
|
||||||
|
|
||||||
// Show menu
|
// Show menu
|
||||||
|
if (empty($noout))
|
||||||
|
{
|
||||||
$alt=0;
|
$alt=0;
|
||||||
$num=count($menu_array);
|
$num=count($menu_array);
|
||||||
for ($i = 0; $i < $num; $i++)
|
for ($i = 0; $i < $num; $i++)
|
||||||
{
|
{
|
||||||
|
$showmenu=true;
|
||||||
|
if (! empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($menu_array[$i]['enabled'])) $showmenu=false;
|
||||||
|
|
||||||
$alt++;
|
$alt++;
|
||||||
if (empty($menu_array[$i]['level']))
|
if (empty($menu_array[$i]['level']) && $showmenu)
|
||||||
{
|
{
|
||||||
if (($alt%2==0))
|
if (($alt%2==0))
|
||||||
{
|
{
|
||||||
if ($conf->use_javascript_ajax && ! empty($conf->global->MAIN_MENU_USE_JQUERY_ACCORDION))
|
print '<div class="blockvmenuimpair">'."\n";
|
||||||
{
|
|
||||||
print '<div class="blockvmenupair">'."\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print '<div class="blockvmenuimpair">'."\n";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -282,6 +285,8 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM
|
|||||||
|
|
||||||
// Add mainmenu in GET url. This make to go back on correct menu even when using Back on browser.
|
// Add mainmenu in GET url. This make to go back on correct menu even when using Back on browser.
|
||||||
$url=dol_buildpath($menu_array[$i]['url'],1);
|
$url=dol_buildpath($menu_array[$i]['url'],1);
|
||||||
|
$url=preg_replace('/__LOGIN__/',$user->login,$url);
|
||||||
|
$url=preg_replace('/__USERID__/',$user->id,$url);
|
||||||
|
|
||||||
if (! preg_match('/mainmenu=/i',$menu_array[$i]['url']))
|
if (! preg_match('/mainmenu=/i',$menu_array[$i]['url']))
|
||||||
{
|
{
|
||||||
@ -290,7 +295,7 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM
|
|||||||
$url.='mainmenu='.$mainmenu;
|
$url.='mainmenu='.$mainmenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<!-- Add menu entry with mainmenu='.$menu_array[$i]['mainmenu'].', leftmenu='.$menu_array[$i]['leftmenu'].', level='.$menu_array[$i]['mainmenu'].' -->'."\n";
|
print '<!-- Add menu entry with mainmenu='.$menu_array[$i]['mainmenu'].', leftmenu='.$menu_array[$i]['leftmenu'].', level='.$menu_array[$i]['level'].' -->'."\n";
|
||||||
|
|
||||||
// Menu niveau 0
|
// Menu niveau 0
|
||||||
if ($menu_array[$i]['level'] == 0)
|
if ($menu_array[$i]['level'] == 0)
|
||||||
@ -299,34 +304,41 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM
|
|||||||
{
|
{
|
||||||
print '<div class="menu_titre">'.$tabstring.'<a class="vmenu" href="'.$url.'"'.($menu_array[$i]['target']?' target="'.$menu_array[$i]['target'].'"':'').'>'.$menu_array[$i]['titre'].'</a></div>';
|
print '<div class="menu_titre">'.$tabstring.'<a class="vmenu" href="'.$url.'"'.($menu_array[$i]['target']?' target="'.$menu_array[$i]['target'].'"':'').'>'.$menu_array[$i]['titre'].'</a></div>';
|
||||||
}
|
}
|
||||||
else if (empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED))
|
else if ($showmenu)
|
||||||
{
|
{
|
||||||
print '<div class="menu_titre">'.$tabstring.'<font class="vmenudisabled">'.$menu_array[$i]['titre'].'</font></div>';
|
print '<div class="menu_titre">'.$tabstring.'<font class="vmenudisabled">'.$menu_array[$i]['titre'].'</font></div>'."\n";
|
||||||
}
|
}
|
||||||
print "\n".'<div id="section_content_'.$i.'">'."\n";
|
if ($showmenu)
|
||||||
print '<div class="menu_top"></div>'."\n";
|
print '<div class="menu_top"></div>'."\n";
|
||||||
}
|
}
|
||||||
// Menu niveau > 0
|
// Menu niveau > 0
|
||||||
if ($menu_array[$i]['level'] > 0)
|
if ($menu_array[$i]['level'] > 0)
|
||||||
{
|
{
|
||||||
if ($menu_array[$i]['enabled'])
|
if ($menu_array[$i]['enabled'])
|
||||||
{
|
{
|
||||||
print '<div class="menu_contenu">'.$tabstring.'<a class="vsmenu" href="'.$url.'"'.($menu_array[$i]['target']?' target="'.$menu_array[$i]['target'].'"':'').'>'.$menu_array[$i]['titre'].'</a></div>';
|
print '<div class="menu_contenu">'.$tabstring;
|
||||||
|
if ($menu_array[$i]['url']) print '<a class="vsmenu" href="'.$url.'"'.($menu_array[$i]['target']?' target="'.$menu_array[$i]['target'].'"':'').'>';
|
||||||
|
print $menu_array[$i]['titre'];
|
||||||
|
if ($menu_array[$i]['url']) print '</a>';
|
||||||
|
// If title is not pure text and contains a table, no carriage return added
|
||||||
|
if (! strstr($menu_array[$i]['titre'],'<table')) print '<br>';
|
||||||
|
print '</div>'."\n";
|
||||||
}
|
}
|
||||||
else if (empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED))
|
else if ($showmenu)
|
||||||
{
|
{
|
||||||
print '<div class="menu_contenu">'.$tabstring.'<font class="vsmenudisabled">'.$menu_array[$i]['titre'].'</font></div>';
|
print '<div class="menu_contenu">'.$tabstring.'<font class="vsmenudisabled">'.$menu_array[$i]['titre'].'</font><br></div>'."\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If next is a new block or end
|
// If next is a new block or end
|
||||||
if (empty($menu_array[$i+1]['level']))
|
if (empty($menu_array[$i+1]['level']))
|
||||||
{
|
{
|
||||||
print '<div class="menu_end"></div>'."\n";
|
if ($showmenu)
|
||||||
print "</div><!-- end section content -->\n";
|
print '<div class="menu_end"></div>'."\n";
|
||||||
print "</div><!-- end blockvmenu pair/impair -->\n";
|
print "</div>\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return count($menu_array);
|
return count($menu_array);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -36,7 +36,7 @@ class MenuManager
|
|||||||
var $menu_array;
|
var $menu_array;
|
||||||
var $menu_array_after;
|
var $menu_array_after;
|
||||||
|
|
||||||
var $tabMenu;
|
var $tabMenu;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -51,60 +51,64 @@ class MenuManager
|
|||||||
$this->db=$db;
|
$this->db=$db;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load this->tabMenu
|
* Load this->tabMenu
|
||||||
*
|
*
|
||||||
* @return void
|
* @param string $forcemainmenu To force mainmenu to load
|
||||||
*/
|
* @param string $forceleftmenu To force leftmenu to load
|
||||||
function loadMenu()
|
* @return void
|
||||||
{
|
*/
|
||||||
|
function loadMenu($forcemainmenu='',$forceleftmenu='')
|
||||||
|
{
|
||||||
global $conf, $user, $langs;
|
global $conf, $user, $langs;
|
||||||
|
|
||||||
// On sauve en session le menu principal choisi
|
// On sauve en session le menu principal choisi
|
||||||
if (isset($_GET["mainmenu"])) $_SESSION["mainmenu"]=$_GET["mainmenu"];
|
if (isset($_GET["mainmenu"])) $_SESSION["mainmenu"]=$_GET["mainmenu"];
|
||||||
if (isset($_GET["idmenu"])) $_SESSION["idmenu"]=$_GET["idmenu"];
|
if (isset($_GET["idmenu"])) $_SESSION["idmenu"]=$_GET["idmenu"];
|
||||||
|
|
||||||
// Read mainmenu and leftmenu that define which menu to show
|
// Read mainmenu and leftmenu that define which menu to show
|
||||||
if (isset($_GET["mainmenu"]))
|
if (isset($_GET["mainmenu"]))
|
||||||
{
|
{
|
||||||
// On sauve en session le menu principal choisi
|
// On sauve en session le menu principal choisi
|
||||||
$mainmenu=$_GET["mainmenu"];
|
$mainmenu=$_GET["mainmenu"];
|
||||||
$_SESSION["mainmenu"]=$mainmenu;
|
$_SESSION["mainmenu"]=$mainmenu;
|
||||||
$_SESSION["leftmenuopened"]="";
|
$_SESSION["leftmenuopened"]="";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// On va le chercher en session si non defini par le lien
|
// On va le chercher en session si non defini par le lien
|
||||||
$mainmenu=isset($_SESSION["mainmenu"])?$_SESSION["mainmenu"]:'';
|
$mainmenu=isset($_SESSION["mainmenu"])?$_SESSION["mainmenu"]:'';
|
||||||
}
|
}
|
||||||
|
if (! empty($forcemainmenu)) $mainmenu=$forcemainmenu;
|
||||||
if (isset($_GET["leftmenu"]))
|
|
||||||
{
|
if (isset($_GET["leftmenu"]))
|
||||||
// On sauve en session le menu principal choisi
|
{
|
||||||
$leftmenu=$_GET["leftmenu"];
|
// On sauve en session le menu principal choisi
|
||||||
$_SESSION["leftmenu"]=$leftmenu;
|
$leftmenu=$_GET["leftmenu"];
|
||||||
|
$_SESSION["leftmenu"]=$leftmenu;
|
||||||
if ($_SESSION["leftmenuopened"]==$leftmenu) // To collapse
|
|
||||||
{
|
if ($_SESSION["leftmenuopened"]==$leftmenu) // To collapse
|
||||||
//$leftmenu="";
|
{
|
||||||
$_SESSION["leftmenuopened"]="";
|
//$leftmenu="";
|
||||||
}
|
$_SESSION["leftmenuopened"]="";
|
||||||
else
|
}
|
||||||
{
|
else
|
||||||
$_SESSION["leftmenuopened"]=$leftmenu;
|
{
|
||||||
}
|
$_SESSION["leftmenuopened"]=$leftmenu;
|
||||||
} else {
|
}
|
||||||
// On va le chercher en session si non defini par le lien
|
} else {
|
||||||
$leftmenu=isset($_SESSION["leftmenu"])?$_SESSION["leftmenu"]:'';
|
// On va le chercher en session si non defini par le lien
|
||||||
}
|
$leftmenu=isset($_SESSION["leftmenu"])?$_SESSION["leftmenu"]:'';
|
||||||
|
}
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';
|
if (! empty($forceleftmenu)) $leftmenu=$forceleftmenu;
|
||||||
$tabMenu=array();
|
|
||||||
$menuArbo = new Menubase($this->db,'auguria');
|
require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';
|
||||||
|
$tabMenu=array();
|
||||||
|
$menuArbo = new Menubase($this->db,'auguria');
|
||||||
$menuArbo->menuLoad($mainmenu, $leftmenu, $this->type_user, 'auguria', $tabMenu);
|
$menuArbo->menuLoad($mainmenu, $leftmenu, $this->type_user, 'auguria', $tabMenu);
|
||||||
|
|
||||||
// Modules system tools
|
// Modules system tools
|
||||||
// TODO Find a way to add parent menu only if child menu exists. For the moment, no other method than hard coded methods.
|
// TODO Find a way to add parent menu only if child menu exists. For the moment, no other method than hard coded methods.
|
||||||
if (! empty($conf->product->enabled) || ! empty($conf->service->enabled) || ! empty($conf->global->MAIN_MENU_ENABLE_MODULETOOLS))
|
if (! empty($conf->product->enabled) || ! empty($conf->service->enabled) || ! empty($conf->global->MAIN_MENU_ENABLE_MODULETOOLS))
|
||||||
{
|
{
|
||||||
@ -141,8 +145,8 @@ class MenuManager
|
|||||||
'type'=>'left',
|
'type'=>'left',
|
||||||
'position'=>20
|
'position'=>20
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->tabMenu=$tabMenu;
|
$this->tabMenu=$tabMenu;
|
||||||
}
|
}
|
||||||
@ -151,12 +155,12 @@ class MenuManager
|
|||||||
/**
|
/**
|
||||||
* Show menu
|
* Show menu
|
||||||
*
|
*
|
||||||
* @param string $mode 'top' or 'left'
|
* @param string $mode 'top', 'left', 'jmobile'
|
||||||
* @return int Number of menu entries shown
|
* @return int Number of menu entries shown
|
||||||
*/
|
*/
|
||||||
function showmenu($mode)
|
function showmenu($mode)
|
||||||
{
|
{
|
||||||
global $conf;
|
global $conf, $langs;
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/menus/standard/auguria.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/menus/standard/auguria.lib.php';
|
||||||
|
|
||||||
@ -167,15 +171,69 @@ class MenuManager
|
|||||||
}
|
}
|
||||||
|
|
||||||
$res='ErrorBadParameterForMode';
|
$res='ErrorBadParameterForMode';
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/menu.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/menu.class.php';
|
||||||
$this->menu=new Menu();
|
$this->menu=new Menu();
|
||||||
|
|
||||||
if ($mode == 'top') $res=print_auguria_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu);
|
if ($mode == 'top') $res=print_auguria_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu);
|
||||||
if ($mode == 'left') $res=print_left_auguria_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$this->menu);
|
if ($mode == 'left') $res=print_left_auguria_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$this->menu);
|
||||||
|
if ($mode == 'jmobile')
|
||||||
|
{
|
||||||
|
$res=print_auguria_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu,1);
|
||||||
|
|
||||||
|
foreach($this->menu->liste as $key => $val) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'
|
||||||
|
{
|
||||||
|
print '<ul data-role="listview" data-inset="true">';
|
||||||
|
print '<li data-role="list-divider">';
|
||||||
|
if ($val['enabled'] == 1)
|
||||||
|
{
|
||||||
|
$relurl=dol_buildpath($val['url'],1);
|
||||||
|
|
||||||
|
print '<a href="#">'.$val['titre'].'</a>'."\n";
|
||||||
|
// Search submenu fot this entry
|
||||||
|
$tmpmainmenu=$val['mainmenu'];
|
||||||
|
$tmpleftmenu='all';
|
||||||
|
$submenu=new Menu();
|
||||||
|
//var_dump($tmpmainmenu.' - '.$tmpleftmenu);
|
||||||
|
$res=print_left_auguria_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$submenu,1,$tmpmainmenu,$tmpleftmenu);
|
||||||
|
//var_dump($submenu->liste);
|
||||||
|
$nexturl=dol_buildpath($submenu->liste[0]['url'],1);
|
||||||
|
$canonrelurl=preg_replace('/\?.*$/','',$relurl);
|
||||||
|
$canonnexturl=preg_replace('/\?.*$/','',$nexturl);
|
||||||
|
//var_dump($canonrelurl);
|
||||||
|
//var_dump($canonnexturl);
|
||||||
|
print '<ul>';
|
||||||
|
if ($canonrelurl != $canonnexturl && $val['mainmenu'] != 'home')
|
||||||
|
{
|
||||||
|
// We add sub entry
|
||||||
|
print '<li data-role="list-divider"><a href="'.$relurl.'">'.$langs->trans("MainArea").'-'.$val['titre'].'</a></li>'."\n";
|
||||||
|
}
|
||||||
|
foreach($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'
|
||||||
|
{
|
||||||
|
$relurl2=dol_buildpath($val2['url'],1);
|
||||||
|
$canonurl2=preg_replace('/\?.*$/','',$val2['url']);
|
||||||
|
//var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']);
|
||||||
|
if (in_array($canonurl2,array('/admin/index.php','/admin/tools/index.php'))) $relurl2='';
|
||||||
|
print '<li'.($val2['level']==0?' data-role="list-divider"':'').'>';
|
||||||
|
if ($relurl2) print '<a href="'.$relurl2.'">';
|
||||||
|
print $val2['titre'];
|
||||||
|
if ($relurl2) print '</a>';
|
||||||
|
print '</li>'."\n";
|
||||||
|
}
|
||||||
|
//var_dump($submenu);
|
||||||
|
print '</ul>';
|
||||||
|
}
|
||||||
|
if ($val['enabled'] == 2)
|
||||||
|
{
|
||||||
|
print '<font class="vsmenudisabled">'.$val['titre'].'</font>';
|
||||||
|
}
|
||||||
|
print '</li>';
|
||||||
|
print '</ul>'."\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
unset($this->menu);
|
||||||
|
|
||||||
unset($this->menu);
|
|
||||||
|
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
* \file htdocs/core/menus/standard/eldy.lib.php
|
* \file htdocs/core/menus/standard/eldy.lib.php
|
||||||
* \brief Library for file eldy menus
|
* \brief Library for file eldy menus
|
||||||
*/
|
*/
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -58,7 +58,7 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0)
|
|||||||
if (empty($noout)) print_start_menu_entry($idsel,$classname,$showmode);
|
if (empty($noout)) print_start_menu_entry($idsel,$classname,$showmode);
|
||||||
if (empty($noout)) print_text_menu_entry($langs->trans("Home"), 1, DOL_URL_ROOT.'/index.php?mainmenu=home&leftmenu=', $id, $idsel, $classname, $atarget);
|
if (empty($noout)) print_text_menu_entry($langs->trans("Home"), 1, DOL_URL_ROOT.'/index.php?mainmenu=home&leftmenu=', $id, $idsel, $classname, $atarget);
|
||||||
if (empty($noout)) print_end_menu_entry($showmode);
|
if (empty($noout)) print_end_menu_entry($showmode);
|
||||||
$menu->add('/index.php?mainmenu=home&leftmenu=', $langs->trans("Home"), 0, $showmode, $atarget, "home", '');
|
$menu->add('/index.php?mainmenu=home&leftmenu=', $langs->trans("Home"), 0, $showmode, $atarget, "home", '');
|
||||||
|
|
||||||
// Third parties
|
// Third parties
|
||||||
$tmpentry=array('enabled'=>(! empty($conf->societe->enabled) || ! empty($conf->fournisseur->enabled)), 'perms'=>(! empty($user->rights->societe->lire) || ! empty($user->rights->fournisseur->lire)), 'module'=>'societe|fournisseur');
|
$tmpentry=array('enabled'=>(! empty($conf->societe->enabled) || ! empty($conf->fournisseur->enabled)), 'perms'=>(! empty($user->rights->societe->lire) || ! empty($user->rights->fournisseur->lire)), 'module'=>'societe|fournisseur');
|
||||||
@ -187,9 +187,9 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0)
|
|||||||
else $classname = 'class="tmenu"';
|
else $classname = 'class="tmenu"';
|
||||||
$idsel='project';
|
$idsel='project';
|
||||||
|
|
||||||
if (empty($noout)) print_start_menu_entry($idsel,$classname,$showmode);
|
if (empty($noout)) print_start_menu_entry($idsel,$classname,$showmode);
|
||||||
if (empty($noout)) print_text_menu_entry($langs->trans("Projects"), $showmode, DOL_URL_ROOT.'/projet/index.php?mainmenu=project&leftmenu=', $id, $idsel, $classname, $atarget);
|
if (empty($noout)) print_text_menu_entry($langs->trans("Projects"), $showmode, DOL_URL_ROOT.'/projet/index.php?mainmenu=project&leftmenu=', $id, $idsel, $classname, $atarget);
|
||||||
if (empty($noout)) print_end_menu_entry($showmode);
|
if (empty($noout)) print_end_menu_entry($showmode);
|
||||||
$menu->add('/projet/index.php?mainmenu=project&leftmenu=', $langs->trans("Projects"), 0, $showmode, $atarget, "project", '');
|
$menu->add('/projet/index.php?mainmenu=project&leftmenu=', $langs->trans("Projects"), 0, $showmode, $atarget, "project", '');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -264,10 +264,9 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0)
|
|||||||
$showmode=dol_eldy_showmenu($type_user,$newTabMenu[$i],$listofmodulesforexternal);
|
$showmode=dol_eldy_showmenu($type_user,$newTabMenu[$i],$listofmodulesforexternal);
|
||||||
if ($showmode == 1)
|
if ($showmode == 1)
|
||||||
{
|
{
|
||||||
$url = $newTabMenu[$i]['url'];
|
$url = $shorturl = $newTabMenu[$i]['url'];
|
||||||
if (! preg_match("/^(http:\/\/|https:\/\/)/i",$newTabMenu[$i]['url']))
|
if (! preg_match("/^(http:\/\/|https:\/\/)/i",$newTabMenu[$i]['url']))
|
||||||
{
|
{
|
||||||
$url = $newTabMenu[$i]['url'];
|
|
||||||
$param='';
|
$param='';
|
||||||
if (! preg_match('/mainmenu/i',$url) || ! preg_match('/leftmenu/i',$url))
|
if (! preg_match('/mainmenu/i',$url) || ! preg_match('/leftmenu/i',$url))
|
||||||
{
|
{
|
||||||
@ -280,7 +279,9 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0)
|
|||||||
$shorturl = $newTabMenu[$i]['url'].$param;
|
$shorturl = $newTabMenu[$i]['url'].$param;
|
||||||
}
|
}
|
||||||
$url=preg_replace('/__LOGIN__/',$user->login,$url);
|
$url=preg_replace('/__LOGIN__/',$user->login,$url);
|
||||||
$shorturl=preg_replace('/__LOGIN__/',$user->login,$shorturl);
|
$shorturl=preg_replace('/__LOGIN__/',$user->login,$shorturl);
|
||||||
|
$url=preg_replace('/__USERID__/',$user->id,$url);
|
||||||
|
$shorturl=preg_replace('/__USERID__/',$user->id,$shorturl);
|
||||||
|
|
||||||
// Define the class (top menu selected or not)
|
// Define the class (top menu selected or not)
|
||||||
if (! empty($_SESSION['idmenu']) && $newTabMenu[$i]['rowid'] == $_SESSION['idmenu']) $classname='class="tmenusel"';
|
if (! empty($_SESSION['idmenu']) && $newTabMenu[$i]['rowid'] == $_SESSION['idmenu']) $classname='class="tmenusel"';
|
||||||
@ -345,10 +346,10 @@ function print_text_menu_entry($text, $showmode, $url, $id, $idsel, $classname,
|
|||||||
|
|
||||||
if ($showmode == 1)
|
if ($showmode == 1)
|
||||||
{
|
{
|
||||||
print '<a class="tmenuimage" href="'.$url.'"'.($atarget?' target="'.$atarget.'"':'').'>';
|
print '<a class="tmenuimage" href="'.$url.'"'.($atarget?' target="'.$atarget.'"':'').'>';
|
||||||
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>';
|
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>';
|
||||||
print '</a>';
|
print '</a>';
|
||||||
print '<a '.$classname.' id="mainmenua_'.$idsel.'" href="'.$url.'"'.($atarget?' target="'.$atarget.'"':'').'>';
|
print '<a '.$classname.' id="mainmenua_'.$idsel.'" href="'.$url.'"'.($atarget?' target="'.$atarget.'"':'').'>';
|
||||||
print '<span class="mainmenuaspan">';
|
print '<span class="mainmenuaspan">';
|
||||||
print $text;
|
print $text;
|
||||||
print '</span>';
|
print '</span>';
|
||||||
@ -356,8 +357,8 @@ function print_text_menu_entry($text, $showmode, $url, $id, $idsel, $classname,
|
|||||||
}
|
}
|
||||||
if ($showmode == 2)
|
if ($showmode == 2)
|
||||||
{
|
{
|
||||||
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.'" id="mainmenuspan_'.$idsel.'"></span></div>';
|
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.'" id="mainmenuspan_'.$idsel.'"></span></div>';
|
||||||
print '<a class="tmenudisabled" id="mainmenua_'.$idsel.'" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">';
|
print '<a class="tmenudisabled" id="mainmenua_'.$idsel.'" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">';
|
||||||
print '<span class="mainmenuaspan">';
|
print '<span class="mainmenuaspan">';
|
||||||
print $text;
|
print $text;
|
||||||
print '</span>';
|
print '</span>';
|
||||||
@ -414,7 +415,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
|||||||
$newmenu = $menu;
|
$newmenu = $menu;
|
||||||
|
|
||||||
$mainmenu=($forcemainmenu?$forcemainmenu:$_SESSION["mainmenu"]);
|
$mainmenu=($forcemainmenu?$forcemainmenu:$_SESSION["mainmenu"]);
|
||||||
$leftmenu=($forceleftmenu?'':$_SESSION["leftmenu"]);
|
$leftmenu=($forceleftmenu?'':(empty($_SESSION["leftmenu"])?'none':$_SESSION["leftmenu"]));
|
||||||
|
|
||||||
// Show logo company
|
// Show logo company
|
||||||
if (empty($noout) && ! empty($conf->global->MAIN_SHOW_LOGO))
|
if (empty($noout) && ! empty($conf->global->MAIN_SHOW_LOGO))
|
||||||
@ -436,8 +437,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* On definit newmenu en fonction de mainmenu et leftmenu
|
* We update newmenu with entries found into database
|
||||||
* ------------------------------------------------------
|
* --------------------------------------------------
|
||||||
*/
|
*/
|
||||||
if ($mainmenu)
|
if ($mainmenu)
|
||||||
{
|
{
|
||||||
@ -1169,7 +1170,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
|||||||
if (is_array($menu_array_before)) $menu_array=array_merge($menu_array_before, $menu_array);
|
if (is_array($menu_array_before)) $menu_array=array_merge($menu_array_before, $menu_array);
|
||||||
if (is_array($menu_array_after)) $menu_array=array_merge($menu_array, $menu_array_after);
|
if (is_array($menu_array_after)) $menu_array=array_merge($menu_array, $menu_array_after);
|
||||||
//var_dump($menu_array);exit;
|
//var_dump($menu_array);exit;
|
||||||
if (! is_array($menu_array)) return 0;
|
if (! is_array($menu_array)) return 0;
|
||||||
|
|
||||||
// Show menu
|
// Show menu
|
||||||
if (empty($noout))
|
if (empty($noout))
|
||||||
@ -1207,6 +1208,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
|||||||
|
|
||||||
// For external modules
|
// For external modules
|
||||||
$url = dol_buildpath($menu_array[$i]['url'], 1);
|
$url = dol_buildpath($menu_array[$i]['url'], 1);
|
||||||
|
$url=preg_replace('/__LOGIN__/',$user->login,$url);
|
||||||
|
$url=preg_replace('/__USERID__/',$user->id,$url);
|
||||||
|
|
||||||
print '<!-- Add menu entry with mainmenu='.$menu_array[$i]['mainmenu'].', leftmenu='.$menu_array[$i]['leftmenu'].', level='.$menu_array[$i]['level'].' -->'."\n";
|
print '<!-- Add menu entry with mainmenu='.$menu_array[$i]['mainmenu'].', leftmenu='.$menu_array[$i]['leftmenu'].', level='.$menu_array[$i]['level'].' -->'."\n";
|
||||||
|
|
||||||
|
|||||||
@ -49,14 +49,16 @@ class MenuManager
|
|||||||
$this->type_user=$type_user;
|
$this->type_user=$type_user;
|
||||||
$this->db=$db;
|
$this->db=$db;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load this->tabMenu
|
* Load this->tabMenu
|
||||||
*
|
*
|
||||||
|
* @param string $forcemainmenu To force mainmenu to load
|
||||||
|
* @param string $forceleftmenu To force leftmenu to load
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function loadMenu()
|
function loadMenu($forcemainmenu='',$forceleftmenu='')
|
||||||
{
|
{
|
||||||
// On sauve en session le menu principal choisi
|
// On sauve en session le menu principal choisi
|
||||||
if (isset($_GET["mainmenu"])) $_SESSION["mainmenu"]=$_GET["mainmenu"];
|
if (isset($_GET["mainmenu"])) $_SESSION["mainmenu"]=$_GET["mainmenu"];
|
||||||
@ -75,30 +77,32 @@ class MenuManager
|
|||||||
// On va le chercher en session si non defini par le lien
|
// On va le chercher en session si non defini par le lien
|
||||||
$mainmenu=isset($_SESSION["mainmenu"])?$_SESSION["mainmenu"]:'';
|
$mainmenu=isset($_SESSION["mainmenu"])?$_SESSION["mainmenu"]:'';
|
||||||
}
|
}
|
||||||
|
if (! empty($forcemainmenu)) $mainmenu=$forcemainmenu;
|
||||||
|
|
||||||
if (isset($_GET["leftmenu"]))
|
if (isset($_GET["leftmenu"]))
|
||||||
{
|
{
|
||||||
// On sauve en session le menu principal choisi
|
// On sauve en session le menu principal choisi
|
||||||
$leftmenu=$_GET["leftmenu"];
|
$leftmenu=$_GET["leftmenu"];
|
||||||
$_SESSION["leftmenu"]=$leftmenu;
|
$_SESSION["leftmenu"]=$leftmenu;
|
||||||
|
|
||||||
if ($_SESSION["leftmenuopened"]==$leftmenu) // To collapse
|
if ($_SESSION["leftmenuopened"]==$leftmenu) // To collapse
|
||||||
{
|
{
|
||||||
//$leftmenu="";
|
//$leftmenu="";
|
||||||
$_SESSION["leftmenuopened"]="";
|
$_SESSION["leftmenuopened"]="";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$_SESSION["leftmenuopened"]=$leftmenu;
|
$_SESSION["leftmenuopened"]=$leftmenu;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// On va le chercher en session si non defini par le lien
|
// On va le chercher en session si non defini par le lien
|
||||||
$leftmenu=isset($_SESSION["leftmenu"])?$_SESSION["leftmenu"]:'';
|
$leftmenu=isset($_SESSION["leftmenu"])?$_SESSION["leftmenu"]:'';
|
||||||
}
|
}
|
||||||
|
if (! empty($forceleftmenu)) $leftmenu=$forceleftmenu;
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';
|
||||||
$tabMenu=array();
|
$tabMenu=array();
|
||||||
$menuArbo = new Menubase($this->db,'eldy');
|
$menuArbo = new Menubase($this->db,'eldy');
|
||||||
$menuArbo->menuLoad($mainmenu, $leftmenu, $this->type_user, 'eldy', $tabMenu);
|
$menuArbo->menuLoad($mainmenu, $leftmenu, $this->type_user, 'eldy', $tabMenu);
|
||||||
$this->tabMenu=$tabMenu;
|
$this->tabMenu=$tabMenu;
|
||||||
}
|
}
|
||||||
@ -123,13 +127,13 @@ class MenuManager
|
|||||||
}
|
}
|
||||||
|
|
||||||
$res='ErrorBadParameterForMode';
|
$res='ErrorBadParameterForMode';
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/menu.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/menu.class.php';
|
||||||
$this->menu=new Menu();
|
$this->menu=new Menu();
|
||||||
|
|
||||||
if ($mode == 'top') $res=print_eldy_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu);
|
if ($mode == 'top') $res=print_eldy_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu);
|
||||||
if ($mode == 'left') $res=print_left_eldy_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$this->menu);
|
if ($mode == 'left') $res=print_left_eldy_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$this->menu);
|
||||||
if ($mode == 'jmobile')
|
if ($mode == 'jmobile')
|
||||||
{
|
{
|
||||||
$res=print_eldy_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu,1);
|
$res=print_eldy_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu,1);
|
||||||
|
|
||||||
@ -140,7 +144,7 @@ class MenuManager
|
|||||||
if ($val['enabled'] == 1)
|
if ($val['enabled'] == 1)
|
||||||
{
|
{
|
||||||
$relurl=dol_buildpath($val['url'],1);
|
$relurl=dol_buildpath($val['url'],1);
|
||||||
|
|
||||||
print '<a href="#">'.$val['titre'].'</a>'."\n";
|
print '<a href="#">'.$val['titre'].'</a>'."\n";
|
||||||
// Search submenu fot this entry
|
// Search submenu fot this entry
|
||||||
$tmpmainmenu=$val['mainmenu'];
|
$tmpmainmenu=$val['mainmenu'];
|
||||||
@ -156,7 +160,7 @@ class MenuManager
|
|||||||
if ($canonrelurl != $canonnexturl && $val['mainmenu'] != 'home')
|
if ($canonrelurl != $canonnexturl && $val['mainmenu'] != 'home')
|
||||||
{
|
{
|
||||||
// We add sub entry
|
// We add sub entry
|
||||||
print '<li data-role="list-divider"><a href="'.$relurl.'">'.$langs->trans("MainArea").'-'.$val['titre'].'</a></li>'."\n";
|
print '<li data-role="list-divider"><a href="'.$relurl.'">'.$langs->trans("MainArea").'-'.$val['titre'].'</a></li>'."\n";
|
||||||
}
|
}
|
||||||
foreach($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'
|
foreach($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'
|
||||||
{
|
{
|
||||||
@ -165,19 +169,19 @@ class MenuManager
|
|||||||
print '<li'.($val2['level']==0?' data-role="list-divider"':'').'><a href="'.$relurl2.'">'.$val2['titre'].'</a></li>'."\n";
|
print '<li'.($val2['level']==0?' data-role="list-divider"':'').'><a href="'.$relurl2.'">'.$val2['titre'].'</a></li>'."\n";
|
||||||
}
|
}
|
||||||
//var_dump($submenu);
|
//var_dump($submenu);
|
||||||
print '</ul>';
|
print '</ul>';
|
||||||
}
|
}
|
||||||
if ($val['enabled'] == 2)
|
if ($val['enabled'] == 2)
|
||||||
{
|
{
|
||||||
print '<font class="vsmenudisabled">'.$val['titre'].'</font>';
|
print '<font class="vsmenudisabled">'.$val['titre'].'</font>';
|
||||||
}
|
}
|
||||||
print '</li>';
|
print '</li>';
|
||||||
print '</ul>'."\n";
|
print '</ul>'."\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unset($this->menu);
|
unset($this->menu);
|
||||||
|
|
||||||
//print 'xx'.$mode;
|
//print 'xx'.$mode;
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -46,12 +46,12 @@ class MenuManager
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load this->tabMenu
|
* Load this->tabMenu
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function loadMenu()
|
function loadMenu()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -70,7 +70,7 @@ class MenuManager
|
|||||||
$id='mainmenu';
|
$id='mainmenu';
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/menu.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/menu.class.php';
|
||||||
$this->menu=new Menu();
|
$this->menu=new Menu();
|
||||||
|
|
||||||
if ($mode == 'top')
|
if ($mode == 'top')
|
||||||
{
|
{
|
||||||
@ -183,7 +183,7 @@ class MenuManager
|
|||||||
*/
|
*/
|
||||||
function print_start_menu_array_empty()
|
function print_start_menu_array_empty()
|
||||||
{
|
{
|
||||||
print '<div class="tmenudiv">';
|
print '<div class="tmenudiv">';
|
||||||
print '<ul class="tmenu">';
|
print '<ul class="tmenu">';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -220,21 +220,21 @@ function print_text_menu_entry_empty($text, $showmode, $url, $id, $idsel, $class
|
|||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
if ($showmode == 1)
|
if ($showmode == 1)
|
||||||
{
|
{
|
||||||
print '<a class="tmenuimage" href="'.$url.'"'.($atarget?' target="'.$atarget.'"':'').'>';
|
print '<a class="tmenuimage" href="'.$url.'"'.($atarget?' target="'.$atarget.'"':'').'>';
|
||||||
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>';
|
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>';
|
||||||
print '</a>';
|
print '</a>';
|
||||||
print '<a '.$classname.' id="mainmenua_'.$idsel.'" href="'.$url.'"'.($atarget?' target="'.$atarget.'"':'').'>';
|
print '<a '.$classname.' id="mainmenua_'.$idsel.'" href="'.$url.'"'.($atarget?' target="'.$atarget.'"':'').'>';
|
||||||
print '<span class="mainmenuaspan">';
|
print '<span class="mainmenuaspan">';
|
||||||
print $text;
|
print $text;
|
||||||
print '</span>';
|
print '</span>';
|
||||||
print '</a>';
|
print '</a>';
|
||||||
}
|
}
|
||||||
if ($showmode == 2)
|
if ($showmode == 2)
|
||||||
{
|
{
|
||||||
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.'" id="mainmenuspan_'.$idsel.'"></span></div>';
|
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.'" id="mainmenuspan_'.$idsel.'"></span></div>';
|
||||||
print '<a class="tmenudisabled" id="mainmenua_'.$idsel.'" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">';
|
print '<a class="tmenudisabled" id="mainmenua_'.$idsel.'" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -433,7 +433,7 @@ abstract class DolibarrModules
|
|||||||
if (is_resource($handle))
|
if (is_resource($handle))
|
||||||
{
|
{
|
||||||
$dirfound++;
|
$dirfound++;
|
||||||
|
|
||||||
// Run llx_mytable.sql files
|
// Run llx_mytable.sql files
|
||||||
while (($file = readdir($handle))!==false)
|
while (($file = readdir($handle))!==false)
|
||||||
{
|
{
|
||||||
@ -443,7 +443,7 @@ abstract class DolibarrModules
|
|||||||
if ($result <= 0) $error++;
|
if ($result <= 0) $error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rewinddir($handle);
|
rewinddir($handle);
|
||||||
|
|
||||||
// Run llx_mytable.key.sql files (Must be done after llx_mytable.sql)
|
// Run llx_mytable.key.sql files (Must be done after llx_mytable.sql)
|
||||||
@ -457,7 +457,7 @@ abstract class DolibarrModules
|
|||||||
}
|
}
|
||||||
|
|
||||||
rewinddir($handle);
|
rewinddir($handle);
|
||||||
|
|
||||||
// Run data_xxx.sql files (Must be done after llx_mytable.key.sql)
|
// Run data_xxx.sql files (Must be done after llx_mytable.key.sql)
|
||||||
while (($file = readdir($handle))!==false)
|
while (($file = readdir($handle))!==false)
|
||||||
{
|
{
|
||||||
@ -467,9 +467,9 @@ abstract class DolibarrModules
|
|||||||
if ($result <= 0) $error++;
|
if ($result <= 0) $error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rewinddir($handle);
|
rewinddir($handle);
|
||||||
|
|
||||||
// Run update_xxx.sql files
|
// Run update_xxx.sql files
|
||||||
while (($file = readdir($handle))!==false)
|
while (($file = readdir($handle))!==false)
|
||||||
{
|
{
|
||||||
@ -479,7 +479,7 @@ abstract class DolibarrModules
|
|||||||
if ($result <= 0) $error++;
|
if ($result <= 0) $error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
closedir($handle);
|
closedir($handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -990,7 +990,7 @@ abstract class DolibarrModules
|
|||||||
//print 'xxx'.$this->menu[$key]['fk_menu'];exit;
|
//print 'xxx'.$this->menu[$key]['fk_menu'];exit;
|
||||||
$foundparent=0;
|
$foundparent=0;
|
||||||
$fk_parent=$this->menu[$key]['fk_menu'];
|
$fk_parent=$this->menu[$key]['fk_menu'];
|
||||||
if (preg_match('/r=/',$fk_parent))
|
if (preg_match('/^r=/',$fk_parent)) // old deprecated method
|
||||||
{
|
{
|
||||||
$fk_parent=str_replace('r=','',$fk_parent);
|
$fk_parent=str_replace('r=','',$fk_parent);
|
||||||
if (isset($this->menu[$fk_parent]['rowid']))
|
if (isset($this->menu[$fk_parent]['rowid']))
|
||||||
@ -999,14 +999,14 @@ abstract class DolibarrModules
|
|||||||
$foundparent=1;
|
$foundparent=1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif (preg_match('/fk_mainmenu=(.*),fk_leftmenu=(.*)/',$fk_parent,$reg))
|
elseif (preg_match('/^fk_mainmenu=([a-zA-Z0-9_]+),fk_leftmenu=([a-zA-Z0-9_]+)$/',$fk_parent,$reg))
|
||||||
{
|
{
|
||||||
$menu->fk_menu=-1;
|
$menu->fk_menu=-1;
|
||||||
$menu->fk_mainmenu=$reg[1];
|
$menu->fk_mainmenu=$reg[1];
|
||||||
$menu->fk_leftmenu=$reg[2];
|
$menu->fk_leftmenu=$reg[2];
|
||||||
$foundparent=1;
|
$foundparent=1;
|
||||||
}
|
}
|
||||||
elseif (preg_match('/fk_mainmenu=(.*)/',$fk_parent,$reg))
|
elseif (preg_match('/^fk_mainmenu=([a-zA-Z0-9_]+)$/',$fk_parent,$reg))
|
||||||
{
|
{
|
||||||
$menu->fk_menu=-1;
|
$menu->fk_menu=-1;
|
||||||
$menu->fk_mainmenu=$reg[1];
|
$menu->fk_mainmenu=$reg[1];
|
||||||
|
|||||||
@ -105,8 +105,9 @@ class doc_generic_order_odt extends ModelePDFCommandes
|
|||||||
'object_date'=>dol_print_date($object->date,'day'),
|
'object_date'=>dol_print_date($object->date,'day'),
|
||||||
'object_date_delivery'=>dol_print_date($object->date_livraison,'dayhour'),
|
'object_date_delivery'=>dol_print_date($object->date_livraison,'dayhour'),
|
||||||
'object_date_creation'=>dol_print_date($object->date_creation,'day'),
|
'object_date_creation'=>dol_print_date($object->date_creation,'day'),
|
||||||
'object_date_modification'=>dol_print_date($object->date_modification,'day'),
|
'object_date_modification'=>(! empty($object->date_modification)?dol_print_date($object->date_modification,'day'):''),
|
||||||
'object_date_validation'=>dol_print_date($object->date_validation,'dayhour'),
|
'object_date_validation'=>(! empty($object->date_validation)?dol_print_date($object->date_validation,'dayhour'):''),
|
||||||
|
'object_date_delivery_planed'=>(! empty($object->date_livraison)?dol_print_date($object->date_livraison,'day'):''),
|
||||||
'object_date_close'=>dol_print_date($object->date_cloture,'dayhour'),
|
'object_date_close'=>dol_print_date($object->date_cloture,'dayhour'),
|
||||||
'object_payment_mode_code'=>$object->mode_reglement_code,
|
'object_payment_mode_code'=>$object->mode_reglement_code,
|
||||||
'object_payment_mode'=>($outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code)!='PaymentType'.$object->mode_reglement_code?$outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code):$object->mode_reglement),
|
'object_payment_mode'=>($outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code)!='PaymentType'.$object->mode_reglement_code?$outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code):$object->mode_reglement),
|
||||||
@ -121,12 +122,12 @@ class doc_generic_order_odt extends ModelePDFCommandes
|
|||||||
'object_note'=>$object->note_public,
|
'object_note'=>$object->note_public,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Add vat by rates
|
// Add vat by rates
|
||||||
foreach ($object->lines as $line)
|
foreach ($object->lines as $line)
|
||||||
{
|
{
|
||||||
if (empty($resarray['object_total_vat_'.$line->tva_tx])) $resarray['object_total_vat_'.$line->tva_tx]=0;
|
if (empty($resarray['object_total_vat_'.$line->tva_tx])) $resarray['object_total_vat_'.$line->tva_tx]=0;
|
||||||
$resarray['object_total_vat_'.$line->tva_tx]+=$line->total_tva;
|
$resarray['object_total_vat_'.$line->tva_tx]+=$line->total_tva;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $resarray;
|
return $resarray;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -244,7 +244,7 @@ class ExportCsv extends ModeleExports
|
|||||||
if (empty($alias)) dol_print_error('','Bad value for field with key='.$code.'. Try to redefine export.');
|
if (empty($alias)) dol_print_error('','Bad value for field with key='.$code.'. Try to redefine export.');
|
||||||
|
|
||||||
$newvalue=$outputlangs->convToOutputCharset($objp->$alias);
|
$newvalue=$outputlangs->convToOutputCharset($objp->$alias);
|
||||||
$typefield=isset($array_types[$code])?$array_types[$code]:'';
|
$typefield=isset($array_types[$code])?$array_types[$code]:'';
|
||||||
|
|
||||||
// Translation newvalue
|
// Translation newvalue
|
||||||
if (preg_match('/^\((.*)\)$/i',$newvalue,$reg))
|
if (preg_match('/^\((.*)\)$/i',$newvalue,$reg))
|
||||||
|
|||||||
@ -282,7 +282,7 @@ class ExportExcel extends ModeleExports
|
|||||||
$newvalue=$objp->$alias;
|
$newvalue=$objp->$alias;
|
||||||
|
|
||||||
$newvalue=$this->excel_clean($newvalue);
|
$newvalue=$this->excel_clean($newvalue);
|
||||||
$typefield=isset($array_types[$code])?$array_types[$code]:'';
|
$typefield=isset($array_types[$code])?$array_types[$code]:'';
|
||||||
|
|
||||||
// Traduction newvalue
|
// Traduction newvalue
|
||||||
if (preg_match('/^\((.*)\)$/i',$newvalue,$reg))
|
if (preg_match('/^\((.*)\)$/i',$newvalue,$reg))
|
||||||
@ -342,18 +342,18 @@ class ExportExcel extends ModeleExports
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ($typefield == 'Text')
|
if ($typefield == 'Text')
|
||||||
{
|
{
|
||||||
//$this->workbook->getActiveSheet()->getCellByColumnAndRow($this->col, $this->row+1)->setValueExplicit($newvalue, PHPExcel_Cell_DataType::TYPE_STRING);
|
//$this->workbook->getActiveSheet()->getCellByColumnAndRow($this->col, $this->row+1)->setValueExplicit($newvalue, PHPExcel_Cell_DataType::TYPE_STRING);
|
||||||
$this->workbook->getActiveSheet()->SetCellValueByColumnAndRow($this->col, $this->row+1, (string) $newvalue);
|
$this->workbook->getActiveSheet()->SetCellValueByColumnAndRow($this->col, $this->row+1, (string) $newvalue);
|
||||||
$coord=$this->workbook->getActiveSheet()->getCellByColumnAndRow($this->col, $this->row+1)->getCoordinate();
|
$coord=$this->workbook->getActiveSheet()->getCellByColumnAndRow($this->col, $this->row+1)->getCoordinate();
|
||||||
$this->workbook->getActiveSheet()->getStyle($coord)->getNumberFormat()->setFormatCode('@');
|
$this->workbook->getActiveSheet()->getStyle($coord)->getNumberFormat()->setFormatCode('@');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//$coord=$this->workbook->getActiveSheet()->getCellByColumnAndRow($this->col, $this->row+1)->getCoordinate();
|
//$coord=$this->workbook->getActiveSheet()->getCellByColumnAndRow($this->col, $this->row+1)->getCoordinate();
|
||||||
//if ($typefield == 'Text') $this->workbook->getActiveSheet()->getStyle($coord)->getNumberFormat()->setFormatCode('@');
|
//if ($typefield == 'Text') $this->workbook->getActiveSheet()->getStyle($coord)->getNumberFormat()->setFormatCode('@');
|
||||||
$this->workbook->getActiveSheet()->SetCellValueByColumnAndRow($this->col, $this->row+1, $newvalue);
|
$this->workbook->getActiveSheet()->SetCellValueByColumnAndRow($this->col, $this->row+1, $newvalue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -277,8 +277,8 @@ class ExportExcel2007 extends ExportExcel
|
|||||||
|
|
||||||
foreach($array_selected_sorted as $code => $value)
|
foreach($array_selected_sorted as $code => $value)
|
||||||
{
|
{
|
||||||
if (strpos($code,' as ') == 0) $alias=str_replace(array('.','-'),'_',$code);
|
if (strpos($code,' as ') == 0) $alias=str_replace(array('.','-'),'_',$code);
|
||||||
else $alias=substr($code, strpos($code, ' as ') + 4);
|
else $alias=substr($code, strpos($code, ' as ') + 4);
|
||||||
if (empty($alias)) dol_print_error('','Bad value for field with code='.$code.'. Try to redefine export.');
|
if (empty($alias)) dol_print_error('','Bad value for field with code='.$code.'. Try to redefine export.');
|
||||||
$newvalue=$objp->$alias;
|
$newvalue=$objp->$alias;
|
||||||
|
|
||||||
|
|||||||
@ -219,7 +219,7 @@ class ExportTsv extends ModeleExports
|
|||||||
if (empty($alias)) dol_print_error('','Bad value for field with code='.$code.'. Try to redefine export.');
|
if (empty($alias)) dol_print_error('','Bad value for field with code='.$code.'. Try to redefine export.');
|
||||||
|
|
||||||
$newvalue=$outputlangs->convToOutputCharset($objp->$alias);
|
$newvalue=$outputlangs->convToOutputCharset($objp->$alias);
|
||||||
$typefield=isset($array_types[$code])?$array_types[$code]:'';
|
$typefield=isset($array_types[$code])?$array_types[$code]:'';
|
||||||
|
|
||||||
// Translation newvalue
|
// Translation newvalue
|
||||||
if (preg_match('/^\((.*)\)$/i',$newvalue,$reg))
|
if (preg_match('/^\((.*)\)$/i',$newvalue,$reg))
|
||||||
|
|||||||
@ -116,7 +116,8 @@ class doc_generic_invoice_odt extends ModelePDFFactures
|
|||||||
'object_date_limit'=>dol_print_date($object->date_lim_reglement,'day'),
|
'object_date_limit'=>dol_print_date($object->date_lim_reglement,'day'),
|
||||||
'object_date_creation'=>dol_print_date($object->date_creation,'day'),
|
'object_date_creation'=>dol_print_date($object->date_creation,'day'),
|
||||||
'object_date_modification'=>(! empty($object->date_modification)?dol_print_date($object->date_modification,'day'):''),
|
'object_date_modification'=>(! empty($object->date_modification)?dol_print_date($object->date_modification,'day'):''),
|
||||||
'object_date_validation'=>dol_print_date($object->date_validation,'dayhour'),
|
'object_date_validation'=>(! empty($object->date_validation)?dol_print_date($object->date_validation,'dayhour'):''),
|
||||||
|
'object_date_delivery_planed'=>(! empty($object->date_livraison)?dol_print_date($object->date_livraison,'day'):''),
|
||||||
'object_payment_mode_code'=>$object->mode_reglement_code,
|
'object_payment_mode_code'=>$object->mode_reglement_code,
|
||||||
'object_payment_mode'=>($outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code)!='PaymentType'.$object->mode_reglement_code?$outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code):$object->mode_reglement),
|
'object_payment_mode'=>($outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code)!='PaymentType'.$object->mode_reglement_code?$outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code):$object->mode_reglement),
|
||||||
'object_payment_term_code'=>$object->cond_reglement_code,
|
'object_payment_term_code'=>$object->cond_reglement_code,
|
||||||
@ -415,7 +416,8 @@ class doc_generic_invoice_odt extends ModelePDFFactures
|
|||||||
$array_thirdparty=$this->get_substitutionarray_thirdparty($socobject,$outputlangs);
|
$array_thirdparty=$this->get_substitutionarray_thirdparty($socobject,$outputlangs);
|
||||||
$array_objet=$this->get_substitutionarray_object($object,$outputlangs);
|
$array_objet=$this->get_substitutionarray_object($object,$outputlangs);
|
||||||
$array_propal=is_object($propal_object)?$this->get_substitutionarray_propal($propal_object,$outputlangs,'propal'):array();
|
$array_propal=is_object($propal_object)?$this->get_substitutionarray_propal($propal_object,$outputlangs,'propal'):array();
|
||||||
|
$array_other=$this->get_substitutionarray_other($user,$outputlangs);
|
||||||
|
|
||||||
$tmparray = array_merge($array_user,$array_soc,$array_thirdparty,$array_objet,$array_propal);
|
$tmparray = array_merge($array_user,$array_soc,$array_thirdparty,$array_objet,$array_propal);
|
||||||
complete_substitutions_array($tmparray, $outputlangs, $object);
|
complete_substitutions_array($tmparray, $outputlangs, $object);
|
||||||
|
|
||||||
|
|||||||
@ -731,7 +731,7 @@ class pdf_crabe extends ModelePDFFactures
|
|||||||
// Si mode reglement non force ou si force a CHQ
|
// Si mode reglement non force ou si force a CHQ
|
||||||
if (! empty($conf->global->FACTURE_CHQ_NUMBER))
|
if (! empty($conf->global->FACTURE_CHQ_NUMBER))
|
||||||
{
|
{
|
||||||
$diffsizetitle=(empty($conf->global->PDF_DIFFSIZE_TITLE)?3:$conf->global->PDF_DIFFSIZE_TITLE);
|
$diffsizetitle=(empty($conf->global->PDF_DIFFSIZE_TITLE)?3:$conf->global->PDF_DIFFSIZE_TITLE);
|
||||||
|
|
||||||
if ($conf->global->FACTURE_CHQ_NUMBER > 0)
|
if ($conf->global->FACTURE_CHQ_NUMBER > 0)
|
||||||
{
|
{
|
||||||
@ -1026,8 +1026,8 @@ class pdf_crabe extends ModelePDFFactures
|
|||||||
if (price2num($object->revenuestamp) != 0)
|
if (price2num($object->revenuestamp) != 0)
|
||||||
{
|
{
|
||||||
$index++;
|
$index++;
|
||||||
$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
|
$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
|
||||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("RevenueStamp"), $useborder, 'L', 1);
|
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("RevenueStamp"), $useborder, 'L', 1);
|
||||||
|
|
||||||
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
|
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
|
||||||
$pdf->MultiCell($largcol2, $tab2_hl, price($sign * $object->revenuestamp), $useborder, 'R', 1);
|
$pdf->MultiCell($largcol2, $tab2_hl, price($sign * $object->revenuestamp), $useborder, 'R', 1);
|
||||||
|
|||||||
@ -118,18 +118,18 @@ class modCron extends DolibarrModules
|
|||||||
$this->rights[$r][4] = 'execute';
|
$this->rights[$r][4] = 'execute';
|
||||||
$r++;
|
$r++;
|
||||||
|
|
||||||
// Main menu entries
|
// Main menu entries
|
||||||
$r=0;
|
$r=0;
|
||||||
$this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=home,fk_leftmenu=modulesadmintools', // Use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
|
$this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=home,fk_leftmenu=modulesadmintools', // Use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
|
||||||
'type'=>'left', // This is a Left menu entry
|
'type'=>'left', // This is a Left menu entry
|
||||||
'titre'=>'CronListActive',
|
'titre'=>'CronListActive',
|
||||||
'url'=>'/cron/list.php?status=1',
|
'url'=>'/cron/list.php?status=1',
|
||||||
'langs'=>'cron', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
|
'langs'=>'cron', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
|
||||||
'position'=>200,
|
'position'=>200,
|
||||||
'enabled'=>'$leftmenu==\'modulesadmintools\'', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
|
'enabled'=>'$leftmenu==\'modulesadmintools\'', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
|
||||||
'perms'=>'$user->rights->cron->read', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
|
'perms'=>'$user->rights->cron->read', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
|
||||||
'target'=>'',
|
'target'=>'',
|
||||||
'user'=>2); // 0=Menu for internal users, 1=external users, 2=both
|
'user'=>2); // 0=Menu for internal users, 1=external users, 2=both
|
||||||
$r++;
|
$r++;
|
||||||
|
|
||||||
$this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=home,fk_leftmenu=modulesadmintools', // Use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
|
$this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=home,fk_leftmenu=modulesadmintools', // Use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
|
||||||
|
|||||||
@ -55,52 +55,52 @@ top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss);
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
print '<body style="margin: 40px; text-align: center">'."\n";
|
print '<body style="margin: 40px; text-align: center">'."\n";
|
||||||
print '<center>';
|
print '<center>';
|
||||||
|
|
||||||
// Define $searchform
|
// Define $searchform
|
||||||
if (! empty($conf->societe->enabled) && ! empty($conf->global->MAIN_SEARCHFORM_SOCIETE) && $user->rights->societe->lire)
|
if (! empty($conf->societe->enabled) && ! empty($conf->global->MAIN_SEARCHFORM_SOCIETE) && $user->rights->societe->lire)
|
||||||
{
|
{
|
||||||
$langs->load("companies");
|
$langs->load("companies");
|
||||||
$searchform.=printSearchForm(DOL_URL_ROOT.'/societe/societe.php', DOL_URL_ROOT.'/societe/societe.php', img_object('','company').' '.$langs->trans("ThirdParties"), 'soc', 'socname');
|
$searchform.=printSearchForm(DOL_URL_ROOT.'/societe/societe.php', DOL_URL_ROOT.'/societe/societe.php', img_object('','company').' '.$langs->trans("ThirdParties"), 'soc', 'socname');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! empty($conf->societe->enabled) && ! empty($conf->global->MAIN_SEARCHFORM_CONTACT) && $user->rights->societe->lire)
|
if (! empty($conf->societe->enabled) && ! empty($conf->global->MAIN_SEARCHFORM_CONTACT) && $user->rights->societe->lire)
|
||||||
{
|
{
|
||||||
$langs->load("companies");
|
$langs->load("companies");
|
||||||
$searchform.=printSearchForm(DOL_URL_ROOT.'/contact/list.php', DOL_URL_ROOT.'/contact/list.php', img_object('','contact').' '.$langs->trans("Contacts"), 'contact', 'contactname');
|
$searchform.=printSearchForm(DOL_URL_ROOT.'/contact/list.php', DOL_URL_ROOT.'/contact/list.php', img_object('','contact').' '.$langs->trans("Contacts"), 'contact', 'contactname');
|
||||||
}
|
}
|
||||||
|
|
||||||
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))
|
||||||
{
|
{
|
||||||
$langs->load("products");
|
$langs->load("products");
|
||||||
$searchform.=printSearchForm(DOL_URL_ROOT.'/product/liste.php', DOL_URL_ROOT.'/product/liste.php', img_object('','product').' '.$langs->trans("Products")."/".$langs->trans("Services"), 'products', 'sall');
|
$searchform.=printSearchForm(DOL_URL_ROOT.'/product/liste.php', DOL_URL_ROOT.'/product/liste.php', img_object('','product').' '.$langs->trans("Products")."/".$langs->trans("Services"), 'products', 'sall');
|
||||||
}
|
}
|
||||||
|
|
||||||
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))
|
||||||
{
|
{
|
||||||
$langs->load("products");
|
$langs->load("products");
|
||||||
$searchform.=printSearchForm(DOL_URL_ROOT.'/fourn/product/liste.php', DOL_URL_ROOT.'/fourn/product/liste.php', img_object('','product').' '.$langs->trans("SupplierRef"), 'products', 'srefsupplier');
|
$searchform.=printSearchForm(DOL_URL_ROOT.'/fourn/product/liste.php', DOL_URL_ROOT.'/fourn/product/liste.php', img_object('','product').' '.$langs->trans("SupplierRef"), 'products', 'srefsupplier');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! empty($conf->adherent->enabled) && ! empty($conf->global->MAIN_SEARCHFORM_ADHERENT) && $user->rights->adherent->lire)
|
if (! empty($conf->adherent->enabled) && ! empty($conf->global->MAIN_SEARCHFORM_ADHERENT) && $user->rights->adherent->lire)
|
||||||
{
|
{
|
||||||
$langs->load("members");
|
$langs->load("members");
|
||||||
$searchform.=printSearchForm(DOL_URL_ROOT.'/adherents/liste.php', DOL_URL_ROOT.'/adherents/liste.php', img_object('','user').' '.$langs->trans("Members"), 'member', 'sall');
|
$searchform.=printSearchForm(DOL_URL_ROOT.'/adherents/liste.php', DOL_URL_ROOT.'/adherents/liste.php', img_object('','user').' '.$langs->trans("Members"), 'member', 'sall');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Execute hook printSearchForm
|
// Execute hook printSearchForm
|
||||||
$parameters=array();
|
$parameters=array();
|
||||||
$searchform.=$hookmanager->executeHooks('printSearchForm',$parameters); // Note that $action and $object may have been modified by some hooks
|
$searchform.=$hookmanager->executeHooks('printSearchForm',$parameters); // Note that $action and $object may have been modified by some hooks
|
||||||
|
|
||||||
|
|
||||||
print "\n";
|
print "\n";
|
||||||
print "<!-- Begin SearchForm -->\n";
|
print "<!-- Begin SearchForm -->\n";
|
||||||
print '<div id="blockvmenusearch" class="blockvmenusearch">'."\n";
|
print '<div id="blockvmenusearch" class="blockvmenusearch">'."\n";
|
||||||
print $searchform;
|
print $searchform;
|
||||||
print '</div>'."\n";
|
print '</div>'."\n";
|
||||||
print "<!-- End SearchForm -->\n";
|
print "<!-- End SearchForm -->\n";
|
||||||
|
|
||||||
print '</center>';
|
print '</center>';
|
||||||
|
|||||||
@ -107,10 +107,10 @@ dol_fiche_end();
|
|||||||
print '<br><br>';
|
print '<br><br>';
|
||||||
|
|
||||||
|
|
||||||
// Define $urlwithroot
|
// Define $urlwithroot
|
||||||
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
|
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
|
||||||
$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
|
$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
|
||||||
//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
|
//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
|
||||||
|
|
||||||
// Cron launch
|
// Cron launch
|
||||||
print '<u>'.$langs->trans("URLToLaunchCronJobs").':</u><br>';
|
print '<u>'.$langs->trans("URLToLaunchCronJobs").':</u><br>';
|
||||||
@ -133,11 +133,11 @@ $file='/scripts/cron/cron_run_jobs.php'.' '.(empty($conf->global->CRON_KEY)?'sec
|
|||||||
print '<textarea rows="'.ROWS_2.'" cols="120">..'.$file."</textarea><br>\n";
|
print '<textarea rows="'.ROWS_2.'" cols="120">..'.$file."</textarea><br>\n";
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print $langs->trans("Note").': ';
|
print $langs->trans("Note").': ';
|
||||||
if ($linuxlike) {
|
if ($linuxlike) {
|
||||||
print $langs->trans("CronExplainHowToRunUnix");
|
print $langs->trans("CronExplainHowToRunUnix");
|
||||||
} else {
|
} else {
|
||||||
print $langs->trans("CronExplainHowToRunWin");
|
print $langs->trans("CronExplainHowToRunWin");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -600,7 +600,7 @@ if (($action=="create") || ($action=="edit"))
|
|||||||
}
|
}
|
||||||
else if (empty($object->status))
|
else if (empty($object->status))
|
||||||
{
|
{
|
||||||
print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("TaskDisabled")).'">'.$langs->trans("CronExecute").'</a>';
|
print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("TaskDisabled")).'">'.$langs->trans("CronExecute").'</a>';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?action=execute&id='.$object->id.'">'.$langs->trans("CronExecute").'</a>';
|
print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?action=execute&id='.$object->id.'">'.$langs->trans("CronExecute").'</a>';
|
||||||
|
|||||||
@ -1405,7 +1405,7 @@ else
|
|||||||
{
|
{
|
||||||
$ref = dol_sanitizeFileName($object->ref);
|
$ref = dol_sanitizeFileName($object->ref);
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
$fileparams = dol_most_recent_file($conf->expedition->dir_output . '/sending/' . $ref, preg_quote($object->ref,'/'));
|
$fileparams = dol_most_recent_file($conf->expedition->dir_output . '/sending/' . $ref, preg_quote($ref,'/'));
|
||||||
$file=$fileparams['fullname'];
|
$file=$fileparams['fullname'];
|
||||||
|
|
||||||
// Build document if it not exists
|
// Build document if it not exists
|
||||||
@ -1428,7 +1428,7 @@ else
|
|||||||
dol_print_error($db,$result);
|
dol_print_error($db,$result);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
$fileparams = dol_most_recent_file($conf->expedition->dir_output . '/sending/' . $ref, preg_quote($object->ref,'/'));
|
$fileparams = dol_most_recent_file($conf->expedition->dir_output . '/sending/' . $ref, preg_quote($ref,'/'));
|
||||||
$file=$fileparams['fullname'];
|
$file=$fileparams['fullname'];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1458,7 +1458,7 @@ else
|
|||||||
$formmail->substit['__SIGNATURE__']=$user->signature;
|
$formmail->substit['__SIGNATURE__']=$user->signature;
|
||||||
$formmail->substit['__PERSONALIZED__']='';
|
$formmail->substit['__PERSONALIZED__']='';
|
||||||
$formmail->substit['__CONTACTCIVNAME__']='';
|
$formmail->substit['__CONTACTCIVNAME__']='';
|
||||||
|
|
||||||
//Find the good contact adress
|
//Find the good contact adress
|
||||||
//Find the good contact adress
|
//Find the good contact adress
|
||||||
if ($typeobject == 'commande' && $object->$typeobject->id && ! empty($conf->commande->enabled)) {
|
if ($typeobject == 'commande' && $object->$typeobject->id && ! empty($conf->commande->enabled)) {
|
||||||
@ -1475,22 +1475,22 @@ else
|
|||||||
|
|
||||||
if (is_array($contactarr) && count($contactarr)>0) {
|
if (is_array($contactarr) && count($contactarr)>0) {
|
||||||
foreach($contactarr as $contact) {
|
foreach($contactarr as $contact) {
|
||||||
|
|
||||||
if ($contact['libelle']==$langs->trans('TypeContact_commande_external_CUSTOMER')) {
|
if ($contact['libelle']==$langs->trans('TypeContact_commande_external_CUSTOMER')) {
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php';
|
require_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php';
|
||||||
|
|
||||||
$contactstatic=new Contact($db);
|
$contactstatic=new Contact($db);
|
||||||
$contactstatic->fetch($contact['id']);
|
$contactstatic->fetch($contact['id']);
|
||||||
$custcontact=$contactstatic->getFullName($langs,1);
|
$custcontact=$contactstatic->getFullName($langs,1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($custcontact)) {
|
if (!empty($custcontact)) {
|
||||||
$formmail->substit['__CONTACTCIVNAME__']=$custcontact;
|
$formmail->substit['__CONTACTCIVNAME__']=$custcontact;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tableau des parametres complementaires
|
// Tableau des parametres complementaires
|
||||||
$formmail->param['action']='send';
|
$formmail->param['action']='send';
|
||||||
$formmail->param['models']='shipping_send';
|
$formmail->param['models']='shipping_send';
|
||||||
@ -1522,4 +1522,4 @@ else
|
|||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
$db->close();
|
$db->close();
|
||||||
?>
|
?>
|
||||||
|
|||||||
@ -46,7 +46,7 @@ print_fiche_titre($langs->trans("SendingsArea"));
|
|||||||
|
|
||||||
//print '<table class="notopnoleftnoright" width="100%">';
|
//print '<table class="notopnoleftnoright" width="100%">';
|
||||||
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
||||||
print '<div class="fichecenter"><div class="fichethirdleft">';
|
print '<div class="fichecenter"><div class="fichethirdleft">';
|
||||||
|
|
||||||
|
|
||||||
$var=false;
|
$var=false;
|
||||||
@ -163,7 +163,7 @@ if ($resql)
|
|||||||
|
|
||||||
|
|
||||||
//print '</td><td valign="top" width="70%">';
|
//print '</td><td valign="top" width="70%">';
|
||||||
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -275,7 +275,7 @@ else dol_print_error($db);
|
|||||||
|
|
||||||
|
|
||||||
//print '</td></tr></table>';
|
//print '</td></tr></table>';
|
||||||
print '<div></div></div>';
|
print '</div></div></div>';
|
||||||
|
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|||||||
@ -237,7 +237,7 @@ class Export
|
|||||||
}
|
}
|
||||||
$sql.=$sqlWhere;
|
$sql.=$sqlWhere;
|
||||||
}
|
}
|
||||||
$sql.=$this->array_export_sql_order[$indice];
|
$sql.=$this->array_export_sql_order[$indice];
|
||||||
|
|
||||||
return $sql;
|
return $sql;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/export/modules_export.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
|
|
||||||
$langs->load("exports");
|
$langs->load("exports");
|
||||||
$langs->load("users");
|
$langs->load("users");
|
||||||
|
|
||||||
// Everybody should be able to go on this page
|
// Everybody should be able to go on this page
|
||||||
//if (! $user->admin)
|
//if (! $user->admin)
|
||||||
|
|||||||
@ -1068,7 +1068,7 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
$numref = $object->ref;
|
$numref = $object->ref;
|
||||||
}
|
}
|
||||||
$text=$langs->trans('ConfirmValidateIntervention',$numref);
|
$text=$langs->trans('ConfirmValidateIntervention',$numref);
|
||||||
|
|
||||||
$ret=$form->form_confirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ValidateIntervention'), $text, 'confirm_validate','',0,1);
|
$ret=$form->form_confirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ValidateIntervention'), $text, 'confirm_validate','',0,1);
|
||||||
if ($ret == 'html') print '<br>';
|
if ($ret == 'html') print '<br>';
|
||||||
}
|
}
|
||||||
@ -1465,7 +1465,7 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
{
|
{
|
||||||
$ref = dol_sanitizeFileName($object->ref);
|
$ref = dol_sanitizeFileName($object->ref);
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
$fileparams = dol_most_recent_file($conf->ficheinter->dir_output . '/' . $ref, preg_quote($object->ref,'/'));
|
$fileparams = dol_most_recent_file($conf->ficheinter->dir_output . '/' . $ref, preg_quote($ref,'/'));
|
||||||
$file=$fileparams['fullname'];
|
$file=$fileparams['fullname'];
|
||||||
|
|
||||||
// Build document if it not exists
|
// Build document if it not exists
|
||||||
@ -1488,7 +1488,7 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
dol_print_error($db,$result);
|
dol_print_error($db,$result);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
$fileparams = dol_most_recent_file($conf->ficheinter->dir_output . '/' . $ref, preg_quote($object->ref,'/'));
|
$fileparams = dol_most_recent_file($conf->ficheinter->dir_output . '/' . $ref, preg_quote($ref,'/'));
|
||||||
$file=$fileparams['fullname'];
|
$file=$fileparams['fullname'];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1519,12 +1519,12 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
$formmail->substit['__SIGNATURE__']=$user->signature;
|
$formmail->substit['__SIGNATURE__']=$user->signature;
|
||||||
$formmail->substit['__PERSONALIZED__']='';
|
$formmail->substit['__PERSONALIZED__']='';
|
||||||
$formmail->substit['__CONTACTCIVNAME__']='';
|
$formmail->substit['__CONTACTCIVNAME__']='';
|
||||||
|
|
||||||
//Find the good contact adress
|
//Find the good contact adress
|
||||||
$custcontact='';
|
$custcontact='';
|
||||||
$contactarr=array();
|
$contactarr=array();
|
||||||
$contactarr=$object->liste_contact(-1,'external');
|
$contactarr=$object->liste_contact(-1,'external');
|
||||||
|
|
||||||
if (is_array($contactarr) && count($contactarr)>0) {
|
if (is_array($contactarr) && count($contactarr)>0) {
|
||||||
foreach($contactarr as $contact) {
|
foreach($contactarr as $contact) {
|
||||||
if ($contact['libelle']==$langs->trans('TypeContact_fichinter_external_CUSTOMER')) {
|
if ($contact['libelle']==$langs->trans('TypeContact_fichinter_external_CUSTOMER')) {
|
||||||
@ -1534,12 +1534,12 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
$custcontact=$contactstatic->getFullName($langs,1);
|
$custcontact=$contactstatic->getFullName($langs,1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($custcontact)) {
|
if (!empty($custcontact)) {
|
||||||
$formmail->substit['__CONTACTCIVNAME__']=$custcontact;
|
$formmail->substit['__CONTACTCIVNAME__']=$custcontact;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tableau des parametres complementaires
|
// Tableau des parametres complementaires
|
||||||
$formmail->param['action']='send';
|
$formmail->param['action']='send';
|
||||||
$formmail->param['models']='fichinter_send';
|
$formmail->param['models']='fichinter_send';
|
||||||
|
|||||||
@ -234,7 +234,7 @@ if (! file_exists(DOL_DOCUMENT_ROOT ."/core/lib/functions.lib.php"))
|
|||||||
print "Please run dolibarr setup by calling page <b>/install</b>.<br>\n";
|
print "Please run dolibarr setup by calling page <b>/install</b>.<br>\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Included by default
|
// Included by default
|
||||||
include_once DOL_DOCUMENT_ROOT .'/core/lib/functions.lib.php';
|
include_once DOL_DOCUMENT_ROOT .'/core/lib/functions.lib.php';
|
||||||
|
|||||||
@ -5,6 +5,7 @@
|
|||||||
* Copyright (C) 2005 Marc Barilley <marc@ocebo.com>
|
* Copyright (C) 2005 Marc Barilley <marc@ocebo.com>
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es>
|
||||||
|
* Copyright (C) 2013 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
|
||||||
@ -40,7 +41,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
public $fk_element='fk_facture_fourn';
|
public $fk_element='fk_facture_fourn';
|
||||||
protected $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
|
protected $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
|
||||||
|
|
||||||
var $ref; // TODO deprecated
|
var $ref;
|
||||||
var $product_ref;
|
var $product_ref;
|
||||||
var $ref_supplier;
|
var $ref_supplier;
|
||||||
var $socid;
|
var $socid;
|
||||||
@ -132,7 +133,8 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
$totalht = ($amount - $remise);
|
$totalht = ($amount - $remise);
|
||||||
|
|
||||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."facture_fourn (";
|
$sql = "INSERT INTO ".MAIN_DB_PREFIX."facture_fourn (";
|
||||||
$sql.= "facnumber";
|
$sql.= "ref";
|
||||||
|
$sql.= ", facnumber";
|
||||||
$sql.= ", entity";
|
$sql.= ", entity";
|
||||||
$sql.= ", libelle";
|
$sql.= ", libelle";
|
||||||
$sql.= ", fk_soc";
|
$sql.= ", fk_soc";
|
||||||
@ -144,7 +146,8 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
$sql.= ", date_lim_reglement";
|
$sql.= ", date_lim_reglement";
|
||||||
$sql.= ")";
|
$sql.= ")";
|
||||||
$sql.= " VALUES (";
|
$sql.= " VALUES (";
|
||||||
$sql.= "'".$this->db->escape($number)."'";
|
$sql.= "'(PROV)'";
|
||||||
|
$sql.= ", '".$this->db->escape($number)."'";
|
||||||
$sql.= ", ".$conf->entity;
|
$sql.= ", ".$conf->entity;
|
||||||
$sql.= ", '".$this->db->escape($this->libelle)."'";
|
$sql.= ", '".$this->db->escape($this->libelle)."'";
|
||||||
$sql.= ", ".$this->socid;
|
$sql.= ", ".$this->socid;
|
||||||
@ -259,6 +262,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
|
|
||||||
$sql = "SELECT";
|
$sql = "SELECT";
|
||||||
$sql.= " t.rowid,";
|
$sql.= " t.rowid,";
|
||||||
|
$sql.= " t.ref,";
|
||||||
$sql.= " t.facnumber,";
|
$sql.= " t.facnumber,";
|
||||||
$sql.= " t.entity,";
|
$sql.= " t.entity,";
|
||||||
$sql.= " t.type,";
|
$sql.= " t.type,";
|
||||||
@ -294,7 +298,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
$sql.= ' s.nom as socnom, s.rowid as socid';
|
$sql.= ' s.nom as socnom, s.rowid as socid';
|
||||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'facture_fourn as t,'.MAIN_DB_PREFIX.'societe as s';
|
$sql.= ' FROM '.MAIN_DB_PREFIX.'facture_fourn as t,'.MAIN_DB_PREFIX.'societe as s';
|
||||||
if ($id) $sql.= " WHERE t.rowid=".$id;
|
if ($id) $sql.= " WHERE t.rowid=".$id;
|
||||||
if ($ref) $sql.= " WHERE t.rowid='".$this->db->escape($ref)."'"; // ref is id (facnumber is supplier ref)
|
if ($ref) $sql.= " WHERE t.ref='".$this->db->escape($ref)."'"; // ref is id (facnumber is supplier ref)
|
||||||
$sql.= ' AND t.fk_soc = s.rowid';
|
$sql.= ' AND t.fk_soc = s.rowid';
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::fetch sql=".$sql, LOG_DEBUG);
|
dol_syslog(get_class($this)."::fetch sql=".$sql, LOG_DEBUG);
|
||||||
@ -306,7 +310,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
$obj = $this->db->fetch_object($resql);
|
$obj = $this->db->fetch_object($resql);
|
||||||
|
|
||||||
$this->id = $obj->rowid;
|
$this->id = $obj->rowid;
|
||||||
$this->ref = $obj->rowid;
|
$this->ref = $obj->ref;
|
||||||
|
|
||||||
$this->ref_supplier = $obj->facnumber;
|
$this->ref_supplier = $obj->facnumber;
|
||||||
$this->facnumber = $obj->facnumber;
|
$this->facnumber = $obj->facnumber;
|
||||||
@ -459,6 +463,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
$error=0;
|
$error=0;
|
||||||
|
|
||||||
// Clean parameters
|
// Clean parameters
|
||||||
|
if (isset($this->ref)) $this->ref=trim($this->ref);
|
||||||
if (isset($this->ref_supplier)) $this->ref_supplier=trim($this->ref_supplier);
|
if (isset($this->ref_supplier)) $this->ref_supplier=trim($this->ref_supplier);
|
||||||
if (isset($this->entity)) $this->entity=trim($this->entity);
|
if (isset($this->entity)) $this->entity=trim($this->entity);
|
||||||
if (isset($this->type)) $this->type=trim($this->type);
|
if (isset($this->type)) $this->type=trim($this->type);
|
||||||
@ -495,6 +500,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
|
|
||||||
// Update request
|
// Update request
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."facture_fourn SET";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."facture_fourn SET";
|
||||||
|
$sql.= " ref=".(isset($this->ref)?"'".$this->db->escape($this->ref)."'":"null").",";
|
||||||
$sql.= " facnumber=".(isset($this->facnumber)?"'".$this->db->escape($this->facnumber)."'":"null").",";
|
$sql.= " facnumber=".(isset($this->facnumber)?"'".$this->db->escape($this->facnumber)."'":"null").",";
|
||||||
$sql.= " entity=".(isset($this->entity)?$this->entity:"null").",";
|
$sql.= " entity=".(isset($this->entity)?$this->entity:"null").",";
|
||||||
$sql.= " type=".(isset($this->type)?$this->type:"null").",";
|
$sql.= " type=".(isset($this->type)?$this->type:"null").",";
|
||||||
@ -834,7 +840,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
}
|
}
|
||||||
|
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."facture_fourn";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."facture_fourn";
|
||||||
$sql.= " SET fk_statut = 1, fk_user_valid = ".$user->id;
|
$sql.= " SET ref='".$num."', fk_statut = 1, fk_user_valid = ".$user->id;
|
||||||
$sql.= " WHERE rowid = ".$this->id;
|
$sql.= " WHERE rowid = ".$this->id;
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::validate sql=".$sql);
|
dol_syslog(get_class($this)."::validate sql=".$sql);
|
||||||
@ -1181,17 +1187,17 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
dol_syslog(get_class($this)."::delete rowid=".$rowid, LOG_DEBUG);
|
dol_syslog(get_class($this)."::delete rowid=".$rowid, LOG_DEBUG);
|
||||||
|
|
||||||
$error=0;
|
$error=0;
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
if (! $error && ! $notrigger)
|
if (! $error && ! $notrigger)
|
||||||
{
|
{
|
||||||
// Appel des triggers
|
// Appel des triggers
|
||||||
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
|
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
|
||||||
$interface=new Interfaces($this->db);
|
$interface=new Interfaces($this->db);
|
||||||
$result=$interface->run_triggers('LINEBILL_SUPPLIER_DELETE',$this,$user,$langs,$conf);
|
$result=$interface->run_triggers('LINEBILL_SUPPLIER_DELETE',$this,$user,$langs,$conf);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error++; $this->errors=$interface->errors;
|
$error++; $this->errors=$interface->errors;
|
||||||
}
|
}
|
||||||
// Fin appel triggers
|
// Fin appel triggers
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1213,7 +1219,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
// Mise a jour prix facture
|
// Mise a jour prix facture
|
||||||
$this->update_price();
|
$this->update_price();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
|
|||||||
@ -1855,7 +1855,7 @@ elseif (! empty($object->id))
|
|||||||
{
|
{
|
||||||
$ref = dol_sanitizeFileName($object->ref);
|
$ref = dol_sanitizeFileName($object->ref);
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
$fileparams = dol_most_recent_file($conf->fournisseur->commande->dir_output . '/' . $ref, preg_quote($object->ref,'/'));
|
$fileparams = dol_most_recent_file($conf->fournisseur->commande->dir_output . '/' . $ref, preg_quote($ref,'/'));
|
||||||
$file=$fileparams['fullname'];
|
$file=$fileparams['fullname'];
|
||||||
|
|
||||||
// Build document if it not exists
|
// Build document if it not exists
|
||||||
@ -1878,7 +1878,7 @@ elseif (! empty($object->id))
|
|||||||
dol_print_error($db,$result);
|
dol_print_error($db,$result);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
$fileparams = dol_most_recent_file($conf->fournisseur->commande->dir_output . '/' . $ref, preg_quote($object->ref,'/'));
|
$fileparams = dol_most_recent_file($conf->fournisseur->commande->dir_output . '/' . $ref, preg_quote($ref,'/'));
|
||||||
$file=$fileparams['fullname'];
|
$file=$fileparams['fullname'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -5,6 +5,7 @@
|
|||||||
* Copyright (C) 2005 Marc Barilley <marc@ocebo.fr>
|
* Copyright (C) 2005 Marc Barilley <marc@ocebo.fr>
|
||||||
* Copyright (C) 2005-2013 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2013 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2010-2012 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2010-2012 Juanjo Menent <jmenent@2byte.es>
|
||||||
|
* Copyright (C) 2013 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
|
||||||
@ -49,6 +50,7 @@ $errors=array();
|
|||||||
$id = (GETPOST('facid','int') ? GETPOST('facid','int') : GETPOST('id','int'));
|
$id = (GETPOST('facid','int') ? GETPOST('facid','int') : GETPOST('id','int'));
|
||||||
$action = GETPOST("action");
|
$action = GETPOST("action");
|
||||||
$confirm = GETPOST("confirm");
|
$confirm = GETPOST("confirm");
|
||||||
|
$ref = GETPOST('ref','alpha');
|
||||||
|
|
||||||
//PDF
|
//PDF
|
||||||
$hidedetails = (GETPOST('hidedetails','int') ? GETPOST('hidedetails','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS) ? 1 : 0));
|
$hidedetails = (GETPOST('hidedetails','int') ? GETPOST('hidedetails','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS) ? 1 : 0));
|
||||||
@ -65,6 +67,12 @@ $hookmanager->initHooks(array('invoicesuppliercard'));
|
|||||||
|
|
||||||
$object=new FactureFournisseur($db);
|
$object=new FactureFournisseur($db);
|
||||||
|
|
||||||
|
// Load object
|
||||||
|
if ($id > 0 || ! empty($ref))
|
||||||
|
{
|
||||||
|
$ret=$object->fetch($id, $ref);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -258,7 +266,8 @@ elseif ($action == 'add' && $user->rights->fournisseur->facture->creer)
|
|||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
// Creation facture
|
// Creation facture
|
||||||
$object->ref = $_POST['facnumber'];
|
$object->ref = $_POST['ref'];
|
||||||
|
$object->facnumber = $_POST['facnumber'];
|
||||||
$object->socid = $_POST['socid'];
|
$object->socid = $_POST['socid'];
|
||||||
$object->libelle = $_POST['libelle'];
|
$object->libelle = $_POST['libelle'];
|
||||||
$object->date = $datefacture;
|
$object->date = $datefacture;
|
||||||
@ -1281,6 +1290,22 @@ else
|
|||||||
// Confirmation de la validation
|
// Confirmation de la validation
|
||||||
if ($action == 'valid')
|
if ($action == 'valid')
|
||||||
{
|
{
|
||||||
|
// on verifie si l'objet est en numerotation provisoire
|
||||||
|
$objectref = substr($object->ref, 1, 4);
|
||||||
|
if ($objectref == 'PROV')
|
||||||
|
{
|
||||||
|
$savdate=$object->date;
|
||||||
|
if (! empty($conf->global->FAC_FORCE_DATE_VALIDATION))
|
||||||
|
{
|
||||||
|
$object->date=dol_now();
|
||||||
|
$object->date_lim_reglement=$object->calculate_date_lim_reglement();
|
||||||
|
}
|
||||||
|
$numref = $object->getNextNumRef($soc);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$numref = $object->ref;
|
||||||
|
}
|
||||||
$formquestion=array();
|
$formquestion=array();
|
||||||
if (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL) && $object->hasProductsOrServices(1))
|
if (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL) && $object->hasProductsOrServices(1))
|
||||||
{
|
{
|
||||||
@ -1322,7 +1347,7 @@ else
|
|||||||
|
|
||||||
// Ref
|
// Ref
|
||||||
print '<tr><td nowrap="nowrap" width="20%">'.$langs->trans("Ref").'</td><td colspan="4">';
|
print '<tr><td nowrap="nowrap" width="20%">'.$langs->trans("Ref").'</td><td colspan="4">';
|
||||||
print $form->showrefnav($object, 'id', $linkback, 1, 'rowid', 'ref');
|
print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
@ -2046,7 +2071,7 @@ else
|
|||||||
{
|
{
|
||||||
$ref = dol_sanitizeFileName($object->ref);
|
$ref = dol_sanitizeFileName($object->ref);
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
$fileparams = dol_most_recent_file($conf->fournisseur->facture->dir_output.'/'.get_exdir($object->id,2).$ref, preg_quote($object->ref,'/'));
|
$fileparams = dol_most_recent_file($conf->fournisseur->facture->dir_output.'/'.get_exdir($object->id,2).$ref, preg_quote($ref,'/'));
|
||||||
$file=$fileparams['fullname'];
|
$file=$fileparams['fullname'];
|
||||||
|
|
||||||
// Build document if it not exists
|
// Build document if it not exists
|
||||||
@ -2069,7 +2094,7 @@ else
|
|||||||
dol_print_error($db,$result);
|
dol_print_error($db,$result);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
$fileparams = dol_most_recent_file($conf->fournisseur->facture->dir_output.'/'.get_exdir($object->id,2).$ref, preg_quote($object->ref,'/'));
|
$fileparams = dol_most_recent_file($conf->fournisseur->facture->dir_output.'/'.get_exdir($object->id,2).$ref, preg_quote($ref,'/'));
|
||||||
$file=$fileparams['fullname'];
|
$file=$fileparams['fullname'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
/* Copyright (C) 2002-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2002-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
|
* Copyright (C) 2013 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
|
||||||
@ -102,7 +103,7 @@ $htmlother=new FormOther($db);
|
|||||||
llxHeader('',$langs->trans("SuppliersInvoices"),'EN:Suppliers_Invoices|FR:FactureFournisseur|ES:Facturas_de_proveedores');
|
llxHeader('',$langs->trans("SuppliersInvoices"),'EN:Suppliers_Invoices|FR:FactureFournisseur|ES:Facturas_de_proveedores');
|
||||||
|
|
||||||
$sql = "SELECT s.rowid as socid, s.nom, ";
|
$sql = "SELECT s.rowid as socid, s.nom, ";
|
||||||
$sql.= " fac.rowid as ref, fac.rowid as facid, fac.facnumber, fac.datef, fac.date_lim_reglement as date_echeance,";
|
$sql.= " fac.rowid as facid, fac.ref, fac.facnumber, fac.datef, fac.date_lim_reglement as date_echeance,";
|
||||||
$sql.= " fac.total_ht, fac.total_ttc, fac.paye as paye, fac.fk_statut as fk_statut, fac.libelle";
|
$sql.= " fac.total_ht, fac.total_ttc, fac.paye as paye, fac.fk_statut as fk_statut, fac.libelle";
|
||||||
if (!$user->rights->societe->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.fk_user ";
|
if (!$user->rights->societe->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.fk_user ";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."facture_fourn as fac";
|
$sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."facture_fourn as fac";
|
||||||
|
|||||||
@ -53,7 +53,7 @@ print_fiche_titre($langs->trans("SuppliersArea"));
|
|||||||
|
|
||||||
//print '<table border="0" width="100%" class="notopnoleftnoright">';
|
//print '<table border="0" width="100%" class="notopnoleftnoright">';
|
||||||
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
//print '<tr><td valign="top" width="30%" class="notopnoleft">';
|
||||||
print '<div class="fichecenter"><div class="fichethirdleft">';
|
print '<div class="fichecenter"><div class="fichethirdleft">';
|
||||||
|
|
||||||
|
|
||||||
// Orders
|
// Orders
|
||||||
@ -226,7 +226,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture-
|
|||||||
|
|
||||||
|
|
||||||
//print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
|
//print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
|
||||||
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -321,7 +321,7 @@ if (count($companystatic->SupplierCategories))
|
|||||||
|
|
||||||
|
|
||||||
//print "</td></tr></table>\n";
|
//print "</td></tr></table>\n";
|
||||||
print '<div></div></div>';
|
print '</div></div></div>';
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|
||||||
|
|||||||
@ -82,12 +82,12 @@ class Holiday extends CommonObject
|
|||||||
*/
|
*/
|
||||||
function updateSold()
|
function updateSold()
|
||||||
{
|
{
|
||||||
// Mets à jour les congés payés en début de mois
|
// Mets à jour les congés payés en début de mois
|
||||||
$this->updateSoldeCP();
|
$this->updateSoldeCP();
|
||||||
|
|
||||||
// Vérifie le nombre d'utilisateur et mets à jour si besoin
|
// Vérifie le nombre d'utilisateur et mets à jour si besoin
|
||||||
$this->verifNbUsers($this->countActiveUsers(),$this->getConfCP('nbUser'));
|
$this->verifNbUsers($this->countActiveUsers(),$this->getConfCP('nbUser'));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -267,10 +267,17 @@ class Holiday extends CommonObject
|
|||||||
$sql.= " cp.fk_user_refuse,";
|
$sql.= " cp.fk_user_refuse,";
|
||||||
$sql.= " cp.date_cancel,";
|
$sql.= " cp.date_cancel,";
|
||||||
$sql.= " cp.fk_user_cancel,";
|
$sql.= " cp.fk_user_cancel,";
|
||||||
$sql.= " cp.detail_refuse";
|
$sql.= " cp.detail_refuse,";
|
||||||
|
|
||||||
|
$sql.= " uu.lastname as user_lastname,";
|
||||||
|
$sql.= " uu.firstname as user_firstname,";
|
||||||
|
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."holiday as cp";
|
$sql.= " ua.lastname as validator_lastname,";
|
||||||
$sql.= " WHERE cp.fk_user = '".$user_id."'";
|
$sql.= " ua.firstname as validator_firstname";
|
||||||
|
|
||||||
|
$sql.= " FROM ".MAIN_DB_PREFIX."holiday as cp, ".MAIN_DB_PREFIX."user as uu, ".MAIN_DB_PREFIX."user as ua";
|
||||||
|
$sql.= " WHERE cp.fk_user = uu.rowid AND cp.fk_validator = ua.rowid "; // Hack pour la recherche sur le tableau
|
||||||
|
$sql.= " AND cp.fk_user = '".$user_id."'";
|
||||||
|
|
||||||
// Filtre de séléction
|
// Filtre de séléction
|
||||||
if(!empty($filter)) {
|
if(!empty($filter)) {
|
||||||
@ -320,6 +327,12 @@ class Holiday extends CommonObject
|
|||||||
$tab_result[$i]['fk_user_cancel'] = $obj->fk_user_cancel;
|
$tab_result[$i]['fk_user_cancel'] = $obj->fk_user_cancel;
|
||||||
$tab_result[$i]['detail_refuse'] = $obj->detail_refuse;
|
$tab_result[$i]['detail_refuse'] = $obj->detail_refuse;
|
||||||
|
|
||||||
|
$tab_result[$i]['user_firstname'] = $obj->user_firstname;
|
||||||
|
$tab_result[$i]['user_lastname'] = $obj->user_lastname;
|
||||||
|
|
||||||
|
$tab_result[$i]['validator_firstname'] = $obj->validator_firstname;
|
||||||
|
$tab_result[$i]['validator_lastname'] = $obj->validator_lastname;
|
||||||
|
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -74,10 +74,10 @@ if ($action == 'update' && isset($_POST['update_cp']))
|
|||||||
|
|
||||||
// If it first update of sold, we set date to havoid to have sold incremented by new month
|
// If it first update of sold, we set date to havoid to have sold incremented by new month
|
||||||
$now=dol_now();
|
$now=dol_now();
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."holiday_config SET";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."holiday_config SET";
|
||||||
$sql.= " value = '".dol_print_date($now,'%Y%m%d%H%M%S')."'";
|
$sql.= " value = '".dol_print_date($now,'%Y%m%d%H%M%S')."'";
|
||||||
$sql.= " WHERE name = 'lastUpdate' and value IS NULL"; // Add value IS NULL to be sure to update only at init.
|
$sql.= " WHERE name = 'lastUpdate' and value IS NULL"; // Add value IS NULL to be sure to update only at init.
|
||||||
dol_syslog('define_holiday update lastUpdate entry sql='.$sql);
|
dol_syslog('define_holiday update lastUpdate entry sql='.$sql);
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
|
|
||||||
$mesg='<div class="ok">'.$langs->trans('UpdateConfCPOK').'</div>';
|
$mesg='<div class="ok">'.$langs->trans('UpdateConfCPOK').'</div>';
|
||||||
|
|||||||
@ -30,11 +30,11 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/user/class/usergroup.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/user/class/usergroup.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/holiday/common.inc.php';
|
require_once DOL_DOCUMENT_ROOT.'/holiday/common.inc.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.php';
|
||||||
|
|
||||||
$langs->load('users');
|
$langs->load('users');
|
||||||
$langs->load('holidays');
|
$langs->load('holidays');
|
||||||
|
|
||||||
// Protection if external user
|
// Protection if external user
|
||||||
if ($user->societe_id > 0) accessforbidden();
|
if ($user->societe_id > 0) accessforbidden();
|
||||||
@ -79,7 +79,7 @@ $search_statut = GETPOST('select_statut');
|
|||||||
|
|
||||||
$holiday = new Holiday($db);
|
$holiday = new Holiday($db);
|
||||||
$holidaystatic=new Holiday($db);
|
$holidaystatic=new Holiday($db);
|
||||||
$fuser = new User($db);
|
$fuser = new User($db);
|
||||||
|
|
||||||
// Update sold
|
// Update sold
|
||||||
$holiday->updateSold();
|
$holiday->updateSold();
|
||||||
@ -165,12 +165,12 @@ if(!empty($search_statut) && $search_statut != -1) {
|
|||||||
// Récupération de l'ID de l'utilisateur
|
// Récupération de l'ID de l'utilisateur
|
||||||
$user_id = $user->id;
|
$user_id = $user->id;
|
||||||
|
|
||||||
if ($id > 0)
|
if ($id > 0)
|
||||||
{
|
{
|
||||||
// Charge utilisateur edite
|
// Charge utilisateur edite
|
||||||
$fuser->fetch($id);
|
$fuser->fetch($id);
|
||||||
$fuser->getrights();
|
$fuser->getrights();
|
||||||
$user_id = $fuser->id;
|
$user_id = $fuser->id;
|
||||||
}
|
}
|
||||||
// Récupération des congés payés de l'utilisateur ou de tous les users
|
// Récupération des congés payés de l'utilisateur ou de tous les users
|
||||||
if (!$user->rights->holiday->lire_tous || $id > 0)
|
if (!$user->rights->holiday->lire_tous || $id > 0)
|
||||||
@ -197,38 +197,38 @@ if ($holiday_payes == '-1')
|
|||||||
* Affichage du tableau des congés payés
|
* Affichage du tableau des congés payés
|
||||||
*************************************/
|
*************************************/
|
||||||
|
|
||||||
$var=true; $num = count($holiday->holiday);
|
$var=true; $num = count($holiday->holiday);
|
||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
$formother = new FormOther($db);
|
$formother = new FormOther($db);
|
||||||
|
|
||||||
if ($id > 0)
|
if ($id > 0)
|
||||||
{
|
{
|
||||||
$head = user_prepare_head($fuser);
|
$head = user_prepare_head($fuser);
|
||||||
|
|
||||||
$title = $langs->trans("User");
|
$title = $langs->trans("User");
|
||||||
dol_fiche_head($head, 'paidholidays', $title, 0, 'user');
|
dol_fiche_head($head, 'paidholidays', $title, 0, 'user');
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
// Ref
|
// Ref
|
||||||
print '<tr><td width="25%" valign="top">'.$langs->trans("Ref").'</td>';
|
print '<tr><td width="25%" valign="top">'.$langs->trans("Ref").'</td>';
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
print $form->showrefnav($fuser,'id','',$user->rights->user->user->lire || $user->admin);
|
print $form->showrefnav($fuser,'id','',$user->rights->user->user->lire || $user->admin);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// LastName
|
// LastName
|
||||||
print '<tr><td width="25%" valign="top">'.$langs->trans("LastName").'</td>';
|
print '<tr><td width="25%" valign="top">'.$langs->trans("LastName").'</td>';
|
||||||
print '<td colspan="2">'.$fuser->lastname.'</td>';
|
print '<td colspan="2">'.$fuser->lastname.'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
// FirstName
|
// FirstName
|
||||||
print '<tr><td width="25%" valign="top">'.$langs->trans("FirstName").'</td>';
|
print '<tr><td width="25%" valign="top">'.$langs->trans("FirstName").'</td>';
|
||||||
print '<td colspan="2">'.$fuser->firstname.'</td>';
|
print '<td colspan="2">'.$fuser->firstname.'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
print '</table><br>';
|
print '</table><br>';
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -142,8 +142,8 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i',$action))
|
|||||||
|
|
||||||
$db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
|
$db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
|
||||||
|
|
||||||
// Create the global $hookmanager object
|
// Create the global $hookmanager object
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php';
|
||||||
$hookmanager=new HookManager($db);
|
$hookmanager=new HookManager($db);
|
||||||
|
|
||||||
$ok = 0;
|
$ok = 0;
|
||||||
|
|||||||
@ -314,25 +314,25 @@ function conf($dolibarr_main_document_root)
|
|||||||
//print 'SYSLOG_FILE='.SYSLOG_FILE;exit;
|
//print 'SYSLOG_FILE='.SYSLOG_FILE;exit;
|
||||||
}
|
}
|
||||||
if (! defined('SYSLOG_FILE_NO_ERROR')) define('SYSLOG_FILE_NO_ERROR',1);
|
if (! defined('SYSLOG_FILE_NO_ERROR')) define('SYSLOG_FILE_NO_ERROR',1);
|
||||||
// We init log handler for install
|
// We init log handler for install
|
||||||
$handlers = array('mod_syslog_file');
|
$handlers = array('mod_syslog_file');
|
||||||
foreach ($handlers as $handler)
|
foreach ($handlers as $handler)
|
||||||
{
|
{
|
||||||
$file = DOL_DOCUMENT_ROOT.'/core/modules/syslog/'.$handler.'.php';
|
$file = DOL_DOCUMENT_ROOT.'/core/modules/syslog/'.$handler.'.php';
|
||||||
if (!file_exists($file))
|
if (!file_exists($file))
|
||||||
{
|
{
|
||||||
throw new Exception('Missing log handler file '.$handler.'.php');
|
throw new Exception('Missing log handler file '.$handler.'.php');
|
||||||
}
|
}
|
||||||
|
|
||||||
require_once $file;
|
require_once $file;
|
||||||
$loghandlerinstance = new $handler();
|
$loghandlerinstance = new $handler();
|
||||||
if (!$loghandlerinstance instanceof LogHandlerInterface)
|
if (!$loghandlerinstance instanceof LogHandlerInterface)
|
||||||
{
|
{
|
||||||
throw new Exception('Log handler does not extend LogHandlerInterface');
|
throw new Exception('Log handler does not extend LogHandlerInterface');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($conf->loghandlers[$handler])) $conf->loghandlers[$handler]=$loghandlerinstance;
|
if (empty($conf->loghandlers[$handler])) $conf->loghandlers[$handler]=$loghandlerinstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -48,6 +48,9 @@ alter table llx_contratdet add column buy_price_ht double(24,8) DEFAULT 0 after
|
|||||||
-- serialised array, to store value of select list choices for example
|
-- serialised array, to store value of select list choices for example
|
||||||
alter table llx_extrafields add column param text after pos;
|
alter table llx_extrafields add column param text after pos;
|
||||||
|
|
||||||
|
-- numbering on supplier invoice
|
||||||
|
alter table llx_facture_fourn add column ref varchar(30) NOT NULL after rowid;
|
||||||
|
|
||||||
|
|
||||||
alter table llx_propal CHANGE COLUMN fk_adresse_livraison fk_delivery_address integer;
|
alter table llx_propal CHANGE COLUMN fk_adresse_livraison fk_delivery_address integer;
|
||||||
alter table llx_commande CHANGE COLUMN fk_adresse_livraison fk_delivery_address integer;
|
alter table llx_commande CHANGE COLUMN fk_adresse_livraison fk_delivery_address integer;
|
||||||
@ -206,5 +209,4 @@ ALTER TABLE llx_user ADD COLUMN fk_state integer DEFAULT 0;
|
|||||||
ALTER TABLE llx_user ADD COLUMN fk_country integer DEFAULT 0;
|
ALTER TABLE llx_user ADD COLUMN fk_country integer DEFAULT 0;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE llx_user_clicktodial ADD COLUMN url varchar(255);
|
||||||
|
|
||||||
|
|||||||
@ -22,6 +22,7 @@
|
|||||||
create table llx_user_clicktodial
|
create table llx_user_clicktodial
|
||||||
(
|
(
|
||||||
fk_user integer PRIMARY KEY,
|
fk_user integer PRIMARY KEY,
|
||||||
|
url varchar(255),
|
||||||
login varchar(32),
|
login varchar(32),
|
||||||
pass varchar(64),
|
pass varchar(64),
|
||||||
poste varchar(20)
|
poste varchar(20)
|
||||||
|
|||||||
@ -374,30 +374,30 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action')))
|
|||||||
// Run sql script
|
// Run sql script
|
||||||
$ok=run_sql($dir.$file, 0, '', 1);
|
$ok=run_sql($dir.$file, 0, '', 1);
|
||||||
|
|
||||||
// Scan if there is migration scripts for modules htdocs/module/sql or htdocs/custom/module/sql
|
// Scan if there is migration scripts for modules htdocs/module/sql or htdocs/custom/module/sql
|
||||||
$modulesfile = array();
|
$modulesfile = array();
|
||||||
foreach ($conf->file->dol_document_root as $type => $dirroot)
|
foreach ($conf->file->dol_document_root as $type => $dirroot)
|
||||||
{
|
{
|
||||||
$handlemodule=@opendir($dirroot);
|
$handlemodule=@opendir($dirroot);
|
||||||
if (is_resource($handlemodule))
|
if (is_resource($handlemodule))
|
||||||
{
|
{
|
||||||
while (($filemodule = readdir($handlemodule))!==false)
|
while (($filemodule = readdir($handlemodule))!==false)
|
||||||
{
|
{
|
||||||
if (is_dir($dirroot.'/'.$filemodule.'/sql'))
|
if (is_dir($dirroot.'/'.$filemodule.'/sql'))
|
||||||
{
|
{
|
||||||
//print "Scan for ".$dirroot . '/' . $filemodule . '/sql/'.$file;
|
//print "Scan for ".$dirroot . '/' . $filemodule . '/sql/'.$file;
|
||||||
if (is_file($dirroot . '/' . $filemodule . '/sql/'.$file))
|
if (is_file($dirroot . '/' . $filemodule . '/sql/'.$file))
|
||||||
{
|
{
|
||||||
$modulesfile[$dirroot . '/' . $filemodule . '/sql/'.$file] = '/' . $filemodule . '/sql/'.$file;
|
$modulesfile[$dirroot . '/' . $filemodule . '/sql/'.$file] = '/' . $filemodule . '/sql/'.$file;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
closedir($handlemodule);
|
closedir($handlemodule);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($modulesfile as $modulefilelong => $modulefileshort)
|
foreach ($modulesfile as $modulefilelong => $modulefileshort)
|
||||||
{
|
{
|
||||||
print '<tr><td colspan="2"><hr></td></tr>';
|
print '<tr><td colspan="2"><hr></td></tr>';
|
||||||
print '<tr><td nowrap>'.$langs->trans("ChoosedMigrateScript").' (external modules)</td><td align="right">'.$modulefileshort.'</td></tr>'."\n";
|
print '<tr><td nowrap>'.$langs->trans("ChoosedMigrateScript").' (external modules)</td><td align="right">'.$modulefileshort.'</td></tr>'."\n";
|
||||||
|
|
||||||
|
|||||||
@ -115,7 +115,7 @@ ErrorFileMustBeADolibarrPackage=Файлове %s трябва да бъде ц
|
|||||||
ErrorFileRequired=Отнема файла пакет Dolibarr
|
ErrorFileRequired=Отнема файла пакет Dolibarr
|
||||||
ErrorPhpCurlNotInstalled=PHP навийте не е инсталиран, това е от съществено значение, за да разговаря с Paypal
|
ErrorPhpCurlNotInstalled=PHP навийте не е инсталиран, това е от съществено значение, за да разговаря с Paypal
|
||||||
ErrorFailedToAddToMailmanList=Неуспешно добавяне на запис на пощальона списък или база СПИП
|
ErrorFailedToAddToMailmanList=Неуспешно добавяне на запис на пощальона списък или база СПИП
|
||||||
ErrorNewVaueCantMatchOldValue=Новата стойност не може да бъде равна на стария
|
ErrorNewValueCantMatchOldValue=Новата стойност не може да бъде равна на стария
|
||||||
WarningMandatorySetupNotComplete=Задължителни параметри на настройката все още не са определени
|
WarningMandatorySetupNotComplete=Задължителни параметри на настройката все още не са определени
|
||||||
WarningSafeModeOnCheckExecDir=Внимание, PHP опция <b>защитният режим</b> е включен, така че командата трябва да бъдат съхранени в директория, декларирани с параметър PHP <b>safe_mode_exec_dir.</b>
|
WarningSafeModeOnCheckExecDir=Внимание, PHP опция <b>защитният режим</b> е включен, така че командата трябва да бъдат съхранени в директория, декларирани с параметър PHP <b>safe_mode_exec_dir.</b>
|
||||||
WarningAllowUrlFopenMustBeOn=Параметър <b>allow_url_fopen</b> трябва да бъде поставен <b>в</b> Filer <b>php.ini</b> за това, че този модул да работи напълно. Трябва да промените този файл ръчно.
|
WarningAllowUrlFopenMustBeOn=Параметър <b>allow_url_fopen</b> трябва да бъде поставен <b>в</b> Filer <b>php.ini</b> за това, че този модул да работи напълно. Трябва да промените този файл ръчно.
|
||||||
|
|||||||
@ -116,7 +116,7 @@ ErrorFileMustBeADolibarrPackage=El fitxer %s ha de ser un paquet Dolibarr en for
|
|||||||
ErrorFileRequired=Es requereix un fitxer de paquet Dolibarr en format zip
|
ErrorFileRequired=Es requereix un fitxer de paquet Dolibarr en format zip
|
||||||
ErrorPhpCurlNotInstalled=L'extensió PHP CURL no es troba instal·lada, és indispensable per dialogar amb Paypal.
|
ErrorPhpCurlNotInstalled=L'extensió PHP CURL no es troba instal·lada, és indispensable per dialogar amb Paypal.
|
||||||
ErrorFailedToAddToMailmanList=S'ha produït un error en intentar afegir un registre a la llista Mailman o base de dades SPIP
|
ErrorFailedToAddToMailmanList=S'ha produït un error en intentar afegir un registre a la llista Mailman o base de dades SPIP
|
||||||
ErrorNewVaueCantMatchOldValue=El Nou valor no pot ser igual al antic
|
ErrorNewValueCantMatchOldValue=El Nou valor no pot ser igual al antic
|
||||||
ErrorFailedToValidatePasswordReset=No s'ha pogut restablir la contrasenya. És possible que aquest enllaç ja s'hagi utilitzat (aquest enllaç només es pot utilitzar una vegada). Si no és el cas prova de reiniciar el procés de restabliment de contrasenya des del principi.
|
ErrorFailedToValidatePasswordReset=No s'ha pogut restablir la contrasenya. És possible que aquest enllaç ja s'hagi utilitzat (aquest enllaç només es pot utilitzar una vegada). Si no és el cas prova de reiniciar el procés de restabliment de contrasenya des del principi.
|
||||||
|
|
||||||
# Warnings
|
# Warnings
|
||||||
|
|||||||
@ -360,6 +360,13 @@ ExtrafieldSelect = Select list
|
|||||||
LibraryToBuildPDF=Library used to build PDF
|
LibraryToBuildPDF=Library used to build PDF
|
||||||
WarningUsingFPDF=Warning: Your <b>conf.php</b> contains directive <b>dolibarr_pdf_force_fpdf=1</b>. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.<br>To solve this and have a full support of PDF generation, please download <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, then comment or remove the line <b>$dolibarr_pdf_force_fpdf=1</b>, and add instead <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b>
|
WarningUsingFPDF=Warning: Your <b>conf.php</b> contains directive <b>dolibarr_pdf_force_fpdf=1</b>. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.<br>To solve this and have a full support of PDF generation, please download <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, then comment or remove the line <b>$dolibarr_pdf_force_fpdf=1</b>, and add instead <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b>
|
||||||
LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:<br>1 : local tax apply on products and services without vat (vat is not applied on local tax)<br>2 : local tax apply on products and services before vat (vat is calculated on amount + localtax)<br>3 : local tax apply on products without vat (vat is not applied on local tax)<br>4 : local tax apply on products before vat (vat is calculated on amount + localtax)<br>5 : local tax apply on services without vat (vat is not applied on local tax)<br>6 : local tax apply on services before vat (vat is calculated on amount + localtax)
|
LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:<br>1 : local tax apply on products and services without vat (vat is not applied on local tax)<br>2 : local tax apply on products and services before vat (vat is calculated on amount + localtax)<br>3 : local tax apply on products without vat (vat is not applied on local tax)<br>4 : local tax apply on products before vat (vat is calculated on amount + localtax)<br>5 : local tax apply on services without vat (vat is not applied on local tax)<br>6 : local tax apply on services before vat (vat is calculated on amount + localtax)
|
||||||
|
SMS=SMS
|
||||||
|
LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user <strong>%s</strong>
|
||||||
|
RefreshPhoneLink=Refresh link
|
||||||
|
LinkToTest=Clickable link generated for user <strong>%s</strong> (click phone number to test)
|
||||||
|
KeepEmptyToUseDefault=Keep empty to use default value
|
||||||
|
DefaultLink=Default link
|
||||||
|
ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
|
||||||
|
|
||||||
# Modules
|
# Modules
|
||||||
Module0Name=Users & groups
|
Module0Name=Users & groups
|
||||||
|
|||||||
@ -114,8 +114,9 @@ ErrNoZipEngine=No engine to unzip %s file in this PHP
|
|||||||
ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package
|
ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package
|
||||||
ErrorFileRequired=It takes a package Dolibarr file
|
ErrorFileRequired=It takes a package Dolibarr file
|
||||||
ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal
|
ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal
|
||||||
ErrorFailedToAddToMailmanList=Failed to add record to Mailman list or SPIP base
|
ErrorFailedToAddToMailmanList=Failed to add record %s to Mailman list %s or SPIP base
|
||||||
ErrorNewVaueCantMatchOldValue=New value can't be equal to old one
|
ErrorFailedToRemoveToMailmanList=Failed to remove record %s to Mailman list %s or SPIP base
|
||||||
|
ErrorNewValueCantMatchOldValue=New value can't be equal to old one
|
||||||
ErrorFailedToValidatePasswordReset=Failed to reinit password. May be the reinit was already done (this link can be used only one time). If not, try to restart the reinit process.
|
ErrorFailedToValidatePasswordReset=Failed to reinit password. May be the reinit was already done (this link can be used only one time). If not, try to restart the reinit process.
|
||||||
|
|
||||||
# Warnings
|
# Warnings
|
||||||
@ -131,4 +132,5 @@ WarningNoDocumentModelActivated=No model, for document generation, has been acti
|
|||||||
WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
|
WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
|
||||||
WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other setup).
|
WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other setup).
|
||||||
WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
|
WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
|
||||||
WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
|
WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
|
||||||
|
WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
|
||||||
@ -23,4 +23,6 @@ AddIntoSpipError=Failed to add the user in SPIP
|
|||||||
DeleteIntoSpip=Remove from SPIP
|
DeleteIntoSpip=Remove from SPIP
|
||||||
DeleteIntoSpipConfirmation=Are you sure you want to remove this member from SPIP?
|
DeleteIntoSpipConfirmation=Are you sure you want to remove this member from SPIP?
|
||||||
DeleteIntoSpipError=Failed to suppress the user from SPIP
|
DeleteIntoSpipError=Failed to suppress the user from SPIP
|
||||||
SPIPConnectionFailed=Failed to connect to SPIP
|
SPIPConnectionFailed=Failed to connect to SPIP
|
||||||
|
SuccessToAddToMailmanList=Add of %s to mailman list %s or SPIP database done
|
||||||
|
SuccessToRemoveToMailmanList=Removal of %s from mailman list %s or SPIP database done
|
||||||
@ -116,7 +116,7 @@ ErrorFileMustBeADolibarrPackage=El archivo %s debe ser un paquete Dolibarr en fo
|
|||||||
ErrorFileRequired=Se requiere un archivo de paquete Dolibarr en formato zip
|
ErrorFileRequired=Se requiere un archivo de paquete Dolibarr en formato zip
|
||||||
ErrorPhpCurlNotInstalled=La extensión PHP CURL no se encuentra instalada, es indispensable para dialogar con Paypal.
|
ErrorPhpCurlNotInstalled=La extensión PHP CURL no se encuentra instalada, es indispensable para dialogar con Paypal.
|
||||||
ErrorFailedToAddToMailmanList=Ha ocurrido un error al intentar añadir un registro a la lista Mailman o base de datos SPIP
|
ErrorFailedToAddToMailmanList=Ha ocurrido un error al intentar añadir un registro a la lista Mailman o base de datos SPIP
|
||||||
ErrorNewVaueCantMatchOldValue=El nuevo valor no puede ser igual al antiguo
|
ErrorNewValueCantMatchOldValue=El nuevo valor no puede ser igual al antiguo
|
||||||
ErrorFailedToValidatePasswordReset=No se ha podido restablecer la contraseña. Es posible que este enlace ya se haya utilizado (este enlace sólo puede usarse una vez). Si no es el caso, trate de reiniciar el proceso de restablecimiento de contraseña desde el principio.
|
ErrorFailedToValidatePasswordReset=No se ha podido restablecer la contraseña. Es posible que este enlace ya se haya utilizado (este enlace sólo puede usarse una vez). Si no es el caso, trate de reiniciar el proceso de restablecimiento de contraseña desde el principio.
|
||||||
|
|
||||||
# Warnings
|
# Warnings
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user