Merge branch 'develop' of https://github.com/Dolibarr/dolibarr into develop
This commit is contained in:
commit
fbdf438351
17
ChangeLog
17
ChangeLog
@ -25,6 +25,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.
|
||||||
|
- First change to prepare feature click to print for PDF.
|
||||||
|
|
||||||
For translators:
|
For translators:
|
||||||
- Update language files.
|
- Update language files.
|
||||||
@ -43,8 +44,10 @@ For developers:
|
|||||||
into conf->liste_limit).
|
into conf->liste_limit).
|
||||||
- New: Add option dol_hide_topmenu and dol_hide_leftmenu onto login page.
|
- New: Add option dol_hide_topmenu and dol_hide_leftmenu onto login page.
|
||||||
- New: dol_syslog method accept a suffix to use different log files for log.
|
- New: dol_syslog method accept a suffix to use different log files for log.
|
||||||
- New: Type of fields are received by export format handlers
|
- New: Type of fields are received by export format handlers.
|
||||||
- New: when adding an action, we can define a free code to tag it for a specific need.
|
- New: when adding an action, we can define a free code to tag it for a specific need.
|
||||||
|
- New: Enhance Dolibarr migration process to include migration script of external
|
||||||
|
modules.
|
||||||
|
|
||||||
WARNING: If you used external modules, some of them may need to be upgraded due to:
|
WARNING: If you used external modules, some of them may need to be upgraded due to:
|
||||||
- fields of classes were renamed to be normalized (nom, prenom, cp, ville, adresse were
|
- fields of classes were renamed to be normalized (nom, prenom, cp, ville, adresse were
|
||||||
@ -61,17 +64,7 @@ WARNING: If you used external modules, some of them may need to be upgraded due
|
|||||||
- Fix: Package for launchpad
|
- Fix: Package for launchpad
|
||||||
- Fix: [ bug #736 ] Missing column in llx_c_chargesociales
|
- Fix: [ bug #736 ] Missing column in llx_c_chargesociales
|
||||||
- Fix: Localtax2 for Spain must be based into buyer
|
- Fix: Localtax2 for Spain must be based into buyer
|
||||||
|
- Fix: [ bug #762 ] Bad profit calculation in Reporting
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 3.3.1 compared to 3.3 *****
|
|
||||||
|
|
||||||
- Fix: [ bug #733 ] Mass emailing tools do not support <style HTML tag
|
|
||||||
- Fix: Package for launchpad
|
|
||||||
- Fix: [ bug #736 ] Missing column in llx_c_chargesociales
|
|
||||||
- Fix: Localtax2 for Spain must be based into buyer
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -134,13 +134,14 @@ $linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToM
|
|||||||
print_fiche_titre($langs->trans("AgendaSetup"),$linkback,'setup');
|
print_fiche_titre($langs->trans("AgendaSetup"),$linkback,'setup');
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
|
|
||||||
print $langs->trans("AgendaAutoActionDesc")."<br>\n";
|
|
||||||
print "<br>\n";
|
|
||||||
|
|
||||||
$head=agenda_prepare_head();
|
$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("OnlyActiveElementsAreShown").'<br>';
|
||||||
|
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'].'">';
|
||||||
@ -179,8 +180,6 @@ print '</table>';
|
|||||||
|
|
||||||
print '<br><center>';
|
print '<br><center>';
|
||||||
print '<input type="submit" name="save" class="button" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" name="save" class="button" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
|
||||||
print '<input type="submit" name="cancel" class="button" value="'.$langs->trans("Cancel").'">';
|
|
||||||
print "</center>";
|
print "</center>";
|
||||||
|
|
||||||
print "</form>\n";
|
print "</form>\n";
|
||||||
@ -226,12 +225,13 @@ else
|
|||||||
}
|
}
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
|
||||||
print "<br>";
|
print "<br>";
|
||||||
|
|
||||||
dol_htmloutput_mesg($mesg);
|
dol_htmloutput_mesg($mesg);
|
||||||
|
|
||||||
$db->close();
|
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|
||||||
|
$db->close();
|
||||||
?>
|
?>
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
|
* Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
|
||||||
* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2012 Florian Henry <florian.henry@open-concept.pro>
|
* Copyright (C) 2012 Florian Henry <florian.henry@open-concept.pro>
|
||||||
*
|
*
|
||||||
@ -70,8 +70,6 @@ $linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToM
|
|||||||
print_fiche_titre($langs->trans("AgendaSetup"),$linkback,'setup');
|
print_fiche_titre($langs->trans("AgendaSetup"),$linkback,'setup');
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
|
|
||||||
print "<br>\n";
|
|
||||||
|
|
||||||
$head=agenda_prepare_head();
|
$head=agenda_prepare_head();
|
||||||
|
|
||||||
dol_fiche_head($head, 'attributes', $langs->trans("Agenda"));
|
dol_fiche_head($head, 'attributes', $langs->trans("Agenda"));
|
||||||
|
|||||||
@ -54,8 +54,7 @@ if ($actionsave)
|
|||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
$disableext=GETPOST('AGENDA_DISABLE_EXT','alpha');
|
$disableext=GETPOST('AGENDA_DISABLE_EXT','alpha');
|
||||||
if ($disableext) $disableext=0; else $disableext=1;
|
$res=dolibarr_set_const($db,'AGENDA_DISABLE_EXT',$disableext,'chaine',0,'',$conf->entity);
|
||||||
$res=dolibarr_set_const($db,'AGENDA_DISABLE_EXT',$disableext,'chaine',0);
|
|
||||||
|
|
||||||
$i=1; $errorsaved=0;
|
$i=1; $errorsaved=0;
|
||||||
$error=0;
|
$error=0;
|
||||||
@ -67,7 +66,7 @@ if ($actionsave)
|
|||||||
$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))
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("ErrorParamMustBeAnUrl"),'errors');
|
setEventMessage($langs->trans("ErrorParamMustBeAnUrl"),'errors');
|
||||||
@ -75,26 +74,26 @@ if ($actionsave)
|
|||||||
$errorsaved++;
|
$errorsaved++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//print 'color='.$color;
|
//print 'color='.$color;
|
||||||
$res=dolibarr_set_const($db,'AGENDA_EXT_NAME'.$i,$name,'chaine',0);
|
$res=dolibarr_set_const($db,'AGENDA_EXT_NAME'.$i,$name,'chaine',0,'',$conf->entity);
|
||||||
if (! $res > 0) $error++;
|
if (! $res > 0) $error++;
|
||||||
$res=dolibarr_set_const($db,'AGENDA_EXT_SRC'.$i,$src,'chaine',0);
|
$res=dolibarr_set_const($db,'AGENDA_EXT_SRC'.$i,$src,'chaine',0,'',$conf->entity);
|
||||||
if (! $res > 0) $error++;
|
if (! $res > 0) $error++;
|
||||||
$res=dolibarr_set_const($db,'AGENDA_EXT_COLOR'.$i,$color,'chaine',0);
|
$res=dolibarr_set_const($db,'AGENDA_EXT_COLOR'.$i,$color,'chaine',0,'',$conf->entity);
|
||||||
if (! $res > 0) $error++;
|
if (! $res > 0) $error++;
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save nb of agenda
|
// Save nb of agenda
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
$res=dolibarr_set_const($db,'AGENDA_EXT_NB',trim(GETPOST('AGENDA_EXT_NB','alpha')),'chaine',0);
|
$res=dolibarr_set_const($db,'AGENDA_EXT_NB',trim(GETPOST('AGENDA_EXT_NB','alpha')),'chaine',0,'',$conf->entity);
|
||||||
if (! $res > 0) $error++;
|
if (! $res > 0) $error++;
|
||||||
if (empty($conf->global->AGENDA_EXT_NB)) $conf->global->AGENDA_EXT_NB=5;
|
if (empty($conf->global->AGENDA_EXT_NB)) $conf->global->AGENDA_EXT_NB=5;
|
||||||
$MAXAGENDA=empty($conf->global->AGENDA_EXT_NB)?5:$conf->global->AGENDA_EXT_NB;
|
$MAXAGENDA=empty($conf->global->AGENDA_EXT_NB)?5:$conf->global->AGENDA_EXT_NB;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
$db->commit();
|
$db->commit();
|
||||||
@ -124,34 +123,57 @@ $linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToM
|
|||||||
print_fiche_titre($langs->trans("AgendaSetup"),$linkback,'setup');
|
print_fiche_titre($langs->trans("AgendaSetup"),$linkback,'setup');
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print $langs->trans("AgendaExtSitesDesc")."<br>\n";
|
|
||||||
print "<br>\n";
|
|
||||||
|
|
||||||
$head=agenda_prepare_head();
|
$head=agenda_prepare_head();
|
||||||
|
|
||||||
dol_fiche_head($head, 'extsites', $langs->trans("Agenda"));
|
dol_fiche_head($head, 'extsites', $langs->trans("Agenda"));
|
||||||
|
|
||||||
|
print $langs->trans("AgendaExtSitesDesc")."<br>\n";
|
||||||
|
print "<br>\n";
|
||||||
|
|
||||||
print '<form name="extsitesconfig" action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
print '<form name="extsitesconfig" action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
||||||
|
|
||||||
$selectedvalue=(GETPOST('AGENDA_DISABLE_AGENDA','alpha'))?GETPOST('AGENDA_DISABLE_EXT','alpha'):$conf->global->AGENDA_DISABLE_EXT;
|
$selectedvalue=$conf->global->AGENDA_DISABLE_EXT;
|
||||||
if ($selectedvalue==1) $selectedvalue=0; else $selectedvalue=1;
|
if ($selectedvalue==1) $selectedvalue=0; else $selectedvalue=1;
|
||||||
print $langs->trans("ExtSitesEnableThisTool").' '.$form->selectyesno("AGENDA_DISABLE_EXT",$selectedvalue,1).'<br><br>';
|
|
||||||
|
|
||||||
$var=false;
|
$var=true;
|
||||||
print "<table class=\"noborder\" width=\"100%\">";
|
print "<table class=\"noborder\" width=\"100%\">";
|
||||||
|
|
||||||
print "<tr class=\"liste_titre\">";
|
print "<tr class=\"liste_titre\">";
|
||||||
print '<td width="180">'.$langs->trans("Parameter")."</td>";
|
print '<td>'.$langs->trans("Parameter")."</td>";
|
||||||
print "<td>".$langs->trans("Value")."</td>";
|
print '<td align="center">'.$langs->trans("Value")."</td>";
|
||||||
|
print "</tr>";
|
||||||
|
|
||||||
|
// Show external agenda
|
||||||
|
$var=!$var;
|
||||||
|
print "<tr ".$bc[$var].">";
|
||||||
|
print "<td>".$langs->trans("ExtSitesEnableThisTool")."</td>";
|
||||||
|
print '<td align="center">';
|
||||||
|
if ($conf->use_javascript_ajax)
|
||||||
|
{
|
||||||
|
print ajax_constantonoff('AGENDA_DISABLE_EXT',array('enabled'=>array(0=>'.hideifnotset')),null,1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
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>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<a href="'.$_SERVER['PHP_SELF'].'?save=1&AGENDA_DISABLE_EXT=0">'.img_picto($langs->trans("Disabled"),'off').'</a>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print "</td>";
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
|
|
||||||
// Nb of agenda
|
// Nb of agenda
|
||||||
print "<tr ".$bc[$var].">";
|
$var=!$var;
|
||||||
print "<td>".$langs->trans("ExtSitesNbOfAgenda")."</td>";
|
print "<tr ".$bc[$var].">";
|
||||||
print "<td>";
|
print "<td>".$langs->trans("ExtSitesNbOfAgenda")."</td>";
|
||||||
print '<input class="flat" type="text" size="2" name="AGENDA_EXT_NB" value="'.$conf->global->AGENDA_EXT_NB.'">';
|
print '<td align="center">';
|
||||||
print "</td>";
|
print '<input class="flat hideifnotset" type="text" size="2" id="AGENDA_EXT_NB" name="AGENDA_EXT_NB" value="'.$conf->global->AGENDA_EXT_NB.'">';
|
||||||
print "</tr>";
|
print "</td>";
|
||||||
|
print "</tr>";
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
print "<br>";
|
print "<br>";
|
||||||
@ -162,7 +184,7 @@ print "<tr class=\"liste_titre\">";
|
|||||||
print "<td>".$langs->trans("Parameter")."</td>";
|
print "<td>".$langs->trans("Parameter")."</td>";
|
||||||
print "<td>".$langs->trans("Name")."</td>";
|
print "<td>".$langs->trans("Name")."</td>";
|
||||||
print "<td>".$langs->trans("ExtSiteUrlAgenda")." (".$langs->trans("Example").': http://yoursite/agenda/agenda.ics)</td>';
|
print "<td>".$langs->trans("ExtSiteUrlAgenda")." (".$langs->trans("Example").': http://yoursite/agenda/agenda.ics)</td>';
|
||||||
print '<td align="center">'.$langs->trans("Color").'</td>';
|
print '<td align="right">'.$langs->trans("Color").'</td>';
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
|
|
||||||
$i=1;
|
$i=1;
|
||||||
@ -173,19 +195,19 @@ while ($i <= $MAXAGENDA)
|
|||||||
$name='AGENDA_EXT_NAME'.$key;
|
$name='AGENDA_EXT_NAME'.$key;
|
||||||
$src='AGENDA_EXT_SRC'.$key;
|
$src='AGENDA_EXT_SRC'.$key;
|
||||||
$color='AGENDA_EXT_COLOR'.$key;
|
$color='AGENDA_EXT_COLOR'.$key;
|
||||||
|
|
||||||
$var=!$var;
|
$var=!$var;
|
||||||
print "<tr ".$bc[$var].">";
|
print "<tr ".$bc[$var].">";
|
||||||
// Nb
|
// Nb
|
||||||
print '<td width="180" nowrap="nowrap">'.$langs->trans("AgendaExtNb",$key)."</td>";
|
print '<td width="180" nowrap="nowrap">'.$langs->trans("AgendaExtNb",$key)."</td>";
|
||||||
// Name
|
// Name
|
||||||
print '<td><input type="text" class="flat" name="agenda_ext_name'.$key.'" value="'. (GETPOST('agenda_ext_name'.$key)?GETPOST('agenda_ext_name'.$key):$conf->global->$name) . '" size="28"></td>';
|
print '<td><input type="text" class="flat hideifnotset" name="agenda_ext_name'.$key.'" value="'. (GETPOST('agenda_ext_name'.$key)?GETPOST('agenda_ext_name'.$key):$conf->global->$name) . '" size="28"></td>';
|
||||||
// URL
|
// URL
|
||||||
print '<td><input type="url" class="flat" name="agenda_ext_src'.$key.'" value="'. (GETPOST('agenda_ext_src'.$key)?GETPOST('agenda_ext_src'.$key):$conf->global->$src) . '" size="60"></td>';
|
print '<td><input type="url" class="flat hideifnotset" name="agenda_ext_src'.$key.'" value="'. (GETPOST('agenda_ext_src'.$key)?GETPOST('agenda_ext_src'.$key):$conf->global->$src) . '" size="60"></td>';
|
||||||
// Color (Possible colors are limited by Google)
|
// Color (Possible colors are limited by Google)
|
||||||
print '<td nowrap="nowrap" align="center">';
|
print '<td nowrap="nowrap" align="right">';
|
||||||
//print $formadmin->select_colors($conf->global->$color, "google_agenda_color".$key, $colorlist);
|
//print $formadmin->selectColor($conf->global->$color, "google_agenda_color".$key, $colorlist);
|
||||||
print $formother->select_color((GETPOST("agenda_ext_color".$key)?GETPOST("agenda_ext_color".$key):$conf->global->$color), "agenda_ext_color".$key, 'extsitesconfig', 1, '');
|
print $formother->selectColor((GETPOST("agenda_ext_color".$key)?GETPOST("agenda_ext_color".$key):$conf->global->$color), "agenda_ext_color".$key, 'extsitesconfig', 1, '', 'hideifnotset');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
$i++;
|
$i++;
|
||||||
|
|||||||
@ -75,13 +75,13 @@ $linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToM
|
|||||||
print_fiche_titre($langs->trans("AgendaSetup"),$linkback,'setup');
|
print_fiche_titre($langs->trans("AgendaSetup"),$linkback,'setup');
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print $langs->trans("AgendaSetupOtherDesc")."<br>\n";
|
|
||||||
print "<br>\n";
|
|
||||||
|
|
||||||
$head=agenda_prepare_head();
|
$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 "<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'].'">';
|
||||||
|
|||||||
@ -500,7 +500,7 @@ dol_fiche_end();
|
|||||||
|
|
||||||
|
|
||||||
// Show warning about external users
|
// Show warning about external users
|
||||||
print showModulesExludedForExternal($modules).'<br>'."\n";
|
if ($mode != 'marketplace') print showModulesExludedForExternal($modules).'<br>'."\n";
|
||||||
|
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|||||||
@ -195,7 +195,7 @@ print $langs->trans("BackupDescY").'<br><br>';
|
|||||||
|
|
||||||
<div class="formelementrow"><input type="checkbox" name="disable_fk"
|
<div class="formelementrow"><input type="checkbox" name="disable_fk"
|
||||||
value="yes" id="checkbox_disable_fk" checked="checked" /> <label
|
value="yes" id="checkbox_disable_fk" checked="checked" /> <label
|
||||||
for="checkbox_disable_fk"> <?php echo $langs->trans("CommandsToDisableForeignKeysForImport"); ?></label>
|
for="checkbox_disable_fk"> <?php echo $langs->trans("CommandsToDisableForeignKeysForImport"); ?> <?php print img_info($langs->trans('CommandsToDisableForeignKeysForImportWarning')); ?></label>
|
||||||
</div>
|
</div>
|
||||||
<label for="select_sql_compat"> <?php echo $langs->trans("ExportCompatibility"); ?></label>
|
<label for="select_sql_compat"> <?php echo $langs->trans("ExportCompatibility"); ?></label>
|
||||||
|
|
||||||
|
|||||||
@ -676,7 +676,7 @@ if ($action == 'create')
|
|||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
print '<tr><td width="25%" class="fieldrequired">'.$langs->trans("MailTopic").'</td><td><input class="flat" name="sujet" size="60" value="'.$_POST['sujet'].'"></td></tr>';
|
print '<tr><td width="25%" class="fieldrequired">'.$langs->trans("MailTopic").'</td><td><input class="flat" name="sujet" size="60" value="'.$_POST['sujet'].'"></td></tr>';
|
||||||
print '<tr><td width="25%">'.$langs->trans("BackgroundColorByDefault").'</td><td colspan="3">';
|
print '<tr><td width="25%">'.$langs->trans("BackgroundColorByDefault").'</td><td colspan="3">';
|
||||||
$htmlother->select_color($_POST['bgcolor'],'bgcolor','new_mailing',0);
|
print $htmlother->selectColor($_POST['bgcolor'],'bgcolor','new_mailing',0);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
print '<tr><td width="25%" class="fieldrequired" valign="top">'.$langs->trans("MailMessage").'<br>';
|
print '<tr><td width="25%" class="fieldrequired" valign="top">'.$langs->trans("MailMessage").'<br>';
|
||||||
print '<br><i>'.$langs->trans("CommonSubstitutions").':<br>';
|
print '<br><i>'.$langs->trans("CommonSubstitutions").':<br>';
|
||||||
@ -1001,7 +1001,7 @@ else
|
|||||||
|
|
||||||
// Background color
|
// Background color
|
||||||
/*print '<tr><td width="15%">'.$langs->trans("BackgroundColorByDefault").'</td><td colspan="3">';
|
/*print '<tr><td width="15%">'.$langs->trans("BackgroundColorByDefault").'</td><td colspan="3">';
|
||||||
$htmlother->select_color($object->bgcolor,'bgcolor','edit_mailing',0);
|
print $htmlother->selectColor($object->bgcolor,'bgcolor','edit_mailing',0);
|
||||||
print '</td></tr>';*/
|
print '</td></tr>';*/
|
||||||
|
|
||||||
// Message
|
// Message
|
||||||
@ -1124,7 +1124,7 @@ else
|
|||||||
|
|
||||||
// Background color
|
// Background color
|
||||||
print '<tr><td width="25%">'.$langs->trans("BackgroundColorByDefault").'</td><td colspan="3">';
|
print '<tr><td width="25%">'.$langs->trans("BackgroundColorByDefault").'</td><td colspan="3">';
|
||||||
$htmlother->select_color($object->bgcolor,'bgcolor','edit_mailing',0);
|
print $htmlother->selectColor($object->bgcolor,'bgcolor','edit_mailing',0);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Message
|
// Message
|
||||||
|
|||||||
@ -80,8 +80,8 @@ else if ($type == "o")
|
|||||||
$titre.=' ('.$langs->trans("OthersNotLinkedToThirdParty").')';
|
$titre.=' ('.$langs->trans("OthersNotLinkedToThirdParty").')';
|
||||||
$urlfiche="";
|
$urlfiche="";
|
||||||
}
|
}
|
||||||
if ($view == 'phone') { $text=" (Vue Telephones)"; }
|
if ($view == 'phone') { $text=" <b>(Vue Telephones)</b> <a href='".$_SERVER["PHP_SELF"]."?view=mail".($type?'&type='.$type:"")."'>(Vue EMail)</a>"; }
|
||||||
if ($view == 'mail') { $text=" (Vue EMail)"; }
|
if ($view == '' || $view == 'mail') { $text=" <a href='".$_SERVER["PHP_SELF"]."?view=phone".($type?'&type='.$type:"")."'>(Vue Telephones)</a> <b>(Vue EMail)</b>"; }
|
||||||
if ($view == 'recent') { $text=" (Recents)"; }
|
if ($view == 'recent') { $text=" (Recents)"; }
|
||||||
if (! empty($text)) $titre.= " $text";
|
if (! empty($text)) $titre.= " $text";
|
||||||
|
|
||||||
|
|||||||
@ -106,9 +106,9 @@ class CMailFile
|
|||||||
|
|
||||||
// We define end of line (RFC 821).
|
// We define end of line (RFC 821).
|
||||||
$this->eol="\r\n";
|
$this->eol="\r\n";
|
||||||
// We define end of line for header fields (RFC 822bis section 2.3 says header must contains \r\n).
|
// We define end of line for header fields (RFC 822bis section 2.3 says header must contains \r\n).
|
||||||
$this->eol2="\r\n";
|
$this->eol2="\r\n";
|
||||||
if (! empty($conf->global->MAIN_FIX_FOR_BUGGED_MTA))
|
if (! empty($conf->global->MAIN_FIX_FOR_BUGGED_MTA))
|
||||||
{
|
{
|
||||||
$this->eol="\n";
|
$this->eol="\n";
|
||||||
$this->eol2="\n";
|
$this->eol2="\n";
|
||||||
@ -551,7 +551,7 @@ class CMailFile
|
|||||||
/**
|
/**
|
||||||
* Write content of a SMTP request into a dump file (mode = all)
|
* Write content of a SMTP request into a dump file (mode = all)
|
||||||
* Used for debugging.
|
* Used for debugging.
|
||||||
* Note that to see full SMTP protocol, you can use tcpdump -w /tmp/smtp -s 2000 port 25"
|
* Note that to see full SMTP protocol, you can use tcpdump -w /tmp/smtp -s 2000 port 25"
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
@ -572,7 +572,7 @@ class CMailFile
|
|||||||
}
|
}
|
||||||
elseif ($conf->global->MAIN_MAIL_SENDMODE == 'smtps')
|
elseif ($conf->global->MAIN_MAIL_SENDMODE == 'smtps')
|
||||||
{
|
{
|
||||||
fputs($fp, $this->smtps->log);
|
fputs($fp, $this->smtps->log); // this->smtps->log is filled only if MAIN_MAIL_DEBUG was set to on
|
||||||
}
|
}
|
||||||
|
|
||||||
fclose($fp);
|
fclose($fp);
|
||||||
@ -751,7 +751,7 @@ class CMailFile
|
|||||||
{
|
{
|
||||||
$strContent = preg_replace("/\r\n/si", "\n", $strContent);
|
$strContent = preg_replace("/\r\n/si", "\n", $strContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
//$strContent = rtrim(chunk_split($strContent)); // Function chunck_split seems bugged
|
//$strContent = rtrim(chunk_split($strContent)); // Function chunck_split seems bugged
|
||||||
$strContent = rtrim(wordwrap($strContent));
|
$strContent = rtrim(wordwrap($strContent));
|
||||||
|
|
||||||
|
|||||||
@ -188,10 +188,15 @@ class FormActions
|
|||||||
print '<td>'.$ref.'</td>';
|
print '<td>'.$ref.'</td>';
|
||||||
print '<td>'.$label.'</td>';
|
print '<td>'.$label.'</td>';
|
||||||
print '<td>'.dol_print_date($action->datep,'day').'</td>';
|
print '<td>'.dol_print_date($action->datep,'day').'</td>';
|
||||||
$userstatic->id = $action->author->id;
|
print '<td>';
|
||||||
$userstatic->firstname = $action->author->firstname;
|
if (! empty($action->author->id))
|
||||||
$userstatic->lastname = $action->author->lastname;
|
{
|
||||||
print '<td>'.$userstatic->getNomUrl(1).'</td>';
|
$userstatic->id = $action->author->id;
|
||||||
|
$userstatic->firstname = $action->author->firstname;
|
||||||
|
$userstatic->lastname = $action->author->lastname;
|
||||||
|
print $userstatic->getNomUrl(1);
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|||||||
@ -465,6 +465,7 @@ class FormOther
|
|||||||
* @param int $showcolorbox 1=Show color code and color box, 0=Show only color code
|
* @param int $showcolorbox 1=Show color code and color box, 0=Show only color code
|
||||||
* @param array $arrayofcolors Array of colors. Example: array('29527A','5229A3','A32929','7A367A','B1365F','0D7813')
|
* @param array $arrayofcolors Array of colors. Example: array('29527A','5229A3','A32929','7A367A','B1365F','0D7813')
|
||||||
* @return void
|
* @return void
|
||||||
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
function select_color($set_color='', $prefix='f_color', $form_name='objForm', $showcolorbox=1, $arrayofcolors='')
|
function select_color($set_color='', $prefix='f_color', $form_name='objForm', $showcolorbox=1, $arrayofcolors='')
|
||||||
{
|
{
|
||||||
@ -479,9 +480,10 @@ class FormOther
|
|||||||
* @param string $form_name Name of form
|
* @param string $form_name Name of form
|
||||||
* @param int $showcolorbox 1=Show color code and color box, 0=Show only color code
|
* @param int $showcolorbox 1=Show color code and color box, 0=Show only color code
|
||||||
* @param array $arrayofcolors Array of colors. Example: array('29527A','5229A3','A32929','7A367A','B1365F','0D7813')
|
* @param array $arrayofcolors Array of colors. Example: array('29527A','5229A3','A32929','7A367A','B1365F','0D7813')
|
||||||
|
* @param string $morecss Add css style into input field
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function selectColor($set_color='', $prefix='f_color', $form_name='objForm', $showcolorbox=1, $arrayofcolors='')
|
function selectColor($set_color='', $prefix='f_color', $form_name='objForm', $showcolorbox=1, $arrayofcolors='', $morecss='')
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
|
|
||||||
@ -529,7 +531,7 @@ class FormOther
|
|||||||
}
|
}
|
||||||
} ); });
|
} ); });
|
||||||
</script>';
|
</script>';
|
||||||
$out.= '<input id="colorpicker'.$prefix.'" name="'.$prefix.'" size="6" maxlength="7" class="flat" type="text" value="'.$set_color.'" />';
|
$out.= '<input id="colorpicker'.$prefix.'" name="'.$prefix.'" size="6" maxlength="7" class="flat'.($morecss?' '.$morecss:'').'" type="text" value="'.$set_color.'" />';
|
||||||
}
|
}
|
||||||
else // In most cases, this is not used. We used instead function with no specific list of colors
|
else // In most cases, this is not used. We used instead function with no specific list of colors
|
||||||
{
|
{
|
||||||
@ -545,7 +547,7 @@ class FormOther
|
|||||||
});
|
});
|
||||||
</script>';
|
</script>';
|
||||||
|
|
||||||
$out.= '<select id="colorpicker'.$prefix.'" class="flat" name="'.$prefix.'">';
|
$out.= '<select id="colorpicker'.$prefix.'" class="flat'.($morecss?' '.$morecss:'').'" name="'.$prefix.'">';
|
||||||
//print '<option value="-1"> </option>';
|
//print '<option value="-1"> </option>';
|
||||||
foreach ($arrayofcolors as $val)
|
foreach ($arrayofcolors as $val)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -643,16 +643,27 @@ function setConstant(url, code, input, entity) {
|
|||||||
// Enable another element
|
// Enable another element
|
||||||
if (type == "disabled") {
|
if (type == "disabled") {
|
||||||
$.each(data, function(key, value) {
|
$.each(data, function(key, value) {
|
||||||
$("#" + value).removeAttr("disabled");
|
var newvalue=((value.search("^#") < 0 && value.search("^\.") < 0) ? "#" : "") + value;
|
||||||
if ($("#" + value).hasClass("butActionRefused") == true) {
|
$(newvalue).removeAttr("disabled");
|
||||||
$("#" + value).removeClass("butActionRefused");
|
if ($(newvalue).hasClass("butActionRefused") == true) {
|
||||||
$("#" + value).addClass("butAction");
|
$(newvalue).removeClass("butActionRefused");
|
||||||
|
$(newvalue).addClass("butAction");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} else if (type == "enabled") {
|
||||||
|
$.each(data, function(key, value) {
|
||||||
|
var newvalue=((value.search("^#") < 0 && value.search("^\.") < 0) ? "#" : "") + value;
|
||||||
|
$(newvalue).attr("disabled", true);
|
||||||
|
if ($(newvalue).hasClass("butAction") == true) {
|
||||||
|
$(newvalue).removeClass("butAction");
|
||||||
|
$(newvalue).addClass("butActionRefused");
|
||||||
|
}
|
||||||
|
});
|
||||||
// Show another element
|
// Show another element
|
||||||
} else if (type == "showhide" || type == "show") {
|
} else if (type == "showhide" || type == "show") {
|
||||||
$.each(data, function(key, value) {
|
$.each(data, function(key, value) {
|
||||||
$("#" + value).show();
|
var newvalue=((value.search("^#") < 0 && value.search("^\.") < 0) ? "#" : "") + value;
|
||||||
|
$(newvalue).show();
|
||||||
});
|
});
|
||||||
// Set another constant
|
// Set another constant
|
||||||
} else if (type == "set") {
|
} else if (type == "set") {
|
||||||
@ -687,16 +698,27 @@ function delConstant(url, code, input, entity) {
|
|||||||
// Disable another element
|
// Disable another element
|
||||||
if (type == "disabled") {
|
if (type == "disabled") {
|
||||||
$.each(data, function(key, value) {
|
$.each(data, function(key, value) {
|
||||||
$("#" + value).attr("disabled", true);
|
var newvalue=((value.search("^#") < 0 && value.search("^\.") < 0) ? "#" : "") + value;
|
||||||
if ($("#" + value).hasClass("butAction") == true) {
|
$(newvalue).attr("disabled", true);
|
||||||
$("#" + value).removeClass("butAction");
|
if ($(newvalue).hasClass("butAction") == true) {
|
||||||
$("#" + value).addClass("butActionRefused");
|
$(newvalue).removeClass("butAction");
|
||||||
|
$(newvalue).addClass("butActionRefused");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} else if (type == "enabled") {
|
||||||
|
$.each(data, function(key, value) {
|
||||||
|
var newvalue=((value.search("^#") < 0 && value.search("^\.") < 0) ? "#" : "") + value;
|
||||||
|
$(newvalue).removeAttr("disabled");
|
||||||
|
if ($(newvalue).hasClass("butActionRefused") == true) {
|
||||||
|
$(newvalue).removeClass("butActionRefused");
|
||||||
|
$(newvalue).addClass("butAction");
|
||||||
|
}
|
||||||
|
});
|
||||||
// Hide another element
|
// Hide another element
|
||||||
} else if (type == "showhide" || type == "hide") {
|
} else if (type == "showhide" || type == "hide") {
|
||||||
$.each(data, function(key, value) {
|
$.each(data, function(key, value) {
|
||||||
$("#" + value).hide();
|
var newvalue=((value.search("^#") < 0 && value.search("^\.") < 0) ? "#" : "") + value;
|
||||||
|
$(newvalue).hide();
|
||||||
});
|
});
|
||||||
// Delete another constant
|
// Delete another constant
|
||||||
} else if (type == "del") {
|
} else if (type == "del") {
|
||||||
|
|||||||
@ -250,7 +250,7 @@ function run_sql($sqlfile,$silent=1,$entity='',$usesavepoint=1,$handler='',$oker
|
|||||||
$newsql=preg_replace('/__ENTITY__/i',(!empty($entity)?$entity:$conf->entity),$sql);
|
$newsql=preg_replace('/__ENTITY__/i',(!empty($entity)?$entity:$conf->entity),$sql);
|
||||||
|
|
||||||
// Ajout trace sur requete (eventuellement a commenter si beaucoup de requetes)
|
// Ajout trace sur requete (eventuellement a commenter si beaucoup de requetes)
|
||||||
if (! $silent) print '<tr><td valign="top">'.$langs->trans("Request").' '.($i+1)." sql='".$newsql."'</td></tr>\n";
|
if (! $silent) print '<tr><td valign="top">'.$langs->trans("Request").' '.($i+1)." sql='".dol_htmlentities($newsql,ENT_NOQUOTES)."'</td></tr>\n";
|
||||||
dol_syslog('Admin.lib::run_sql Request '.($i+1).' sql='.$newsql, LOG_DEBUG);
|
dol_syslog('Admin.lib::run_sql Request '.($i+1).' sql='.$newsql, LOG_DEBUG);
|
||||||
|
|
||||||
// Replace for encrypt data
|
// Replace for encrypt data
|
||||||
@ -1153,10 +1153,10 @@ function showModulesExludedForExternal($modules)
|
|||||||
$moduleconst=$module->const_name;
|
$moduleconst=$module->const_name;
|
||||||
$modulename=strtolower($module->name);
|
$modulename=strtolower($module->name);
|
||||||
//print 'modulename='.$modulename;
|
//print 'modulename='.$modulename;
|
||||||
|
|
||||||
//if (empty($conf->global->$moduleconst)) continue;
|
//if (empty($conf->global->$moduleconst)) continue;
|
||||||
if (! in_array($modulename,$listofmodules)) continue;
|
if (! in_array($modulename,$listofmodules)) continue;
|
||||||
|
|
||||||
if ($i > 0) $text.=', ';
|
if ($i > 0) $text.=', ';
|
||||||
else $text.=' ';
|
else $text.=' ';
|
||||||
$i++;
|
$i++;
|
||||||
|
|||||||
@ -353,12 +353,13 @@ function ajax_combobox($htmlname, $event=array(), $minLengthToAutocomplete=0)
|
|||||||
/**
|
/**
|
||||||
* On/off button for constant
|
* On/off button for constant
|
||||||
*
|
*
|
||||||
* @param string $code Name of constant
|
* @param string $code Name of constant
|
||||||
* @param array $input Input element (enable/disable or show/hide another element, set/del another constant)
|
* @param array $input Array of type->list of CSS element to switch. Example: array('disabled'=>array(0=>'cssid'))
|
||||||
* @param int $entity Entity to set
|
* @param int $entity Entity to set
|
||||||
|
* @param int $revertonoff Revert on/off
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function ajax_constantonoff($code, $input=array(), $entity=false)
|
function ajax_constantonoff($code, $input=array(), $entity=null, $revertonoff=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
@ -399,8 +400,8 @@ function ajax_constantonoff($code, $input=array(), $entity=false)
|
|||||||
</script>'."\n";
|
</script>'."\n";
|
||||||
|
|
||||||
$out.= '<div id="confirm_'.$code.'" title="" style="display: none;"></div>';
|
$out.= '<div id="confirm_'.$code.'" title="" style="display: none;"></div>';
|
||||||
$out.= '<span id="set_'.$code.'" class="linkobject '.(! empty($conf->global->$code)?'hideobject':'').'">'.img_picto($langs->trans("Disabled"),'switch_off').'</span>';
|
$out.= '<span id="set_'.$code.'" class="linkobject '.(! empty($conf->global->$code)?'hideobject':'').'">'.($revertonoff?img_picto($langs->trans("Enabled"),'switch_on'):img_picto($langs->trans("Disabled"),'switch_off')).'</span>';
|
||||||
$out.= '<span id="del_'.$code.'" class="linkobject '.(! empty($conf->global->$code)?'':'hideobject').'">'.img_picto($langs->trans("Enabled"),'switch_on').'</span>';
|
$out.= '<span id="del_'.$code.'" class="linkobject '.(! empty($conf->global->$code)?'':'hideobject').'">'.($revertonoff?img_picto($langs->trans("Disabled"),'switch_off'):img_picto($langs->trans("Enabled"),'switch_on')).'</span>';
|
||||||
$out.="\n";
|
$out.="\n";
|
||||||
|
|
||||||
return $out;
|
return $out;
|
||||||
|
|||||||
124
htdocs/core/modules/modCron.class.php
Normal file
124
htdocs/core/modules/modCron.class.php
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \defgroup webservices Module webservices
|
||||||
|
* \brief Module to enable the Dolibarr server of web services
|
||||||
|
* \file htdocs/core/modules/modCron.class.php
|
||||||
|
* \ingroup cron
|
||||||
|
* \brief File to describe cron module
|
||||||
|
*/
|
||||||
|
include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class to describe a Cron module
|
||||||
|
*/
|
||||||
|
class modCron extends DolibarrModules
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor. Define names, constants, directories, boxes, permissions
|
||||||
|
*
|
||||||
|
* @param DoliDB $db Database handler
|
||||||
|
*/
|
||||||
|
function __construct($db)
|
||||||
|
{
|
||||||
|
$this->db = $db;
|
||||||
|
$this->numero = 2300;
|
||||||
|
|
||||||
|
// Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
|
||||||
|
// It is used to group modules in module setup page
|
||||||
|
$this->family = "technic";
|
||||||
|
// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
|
||||||
|
$this->name = preg_replace('/^mod/i','',get_class($this));
|
||||||
|
$this->description = "Enable the Dolibarr cron service";
|
||||||
|
$this->version = 'experimental'; // 'experimental' or 'dolibarr' or version
|
||||||
|
// Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase)
|
||||||
|
$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
|
||||||
|
// Where to store the module in setup page (0=common,1=interface,2=others,3=very specific)
|
||||||
|
$this->special = 2;
|
||||||
|
// Name of image file used for this module.
|
||||||
|
$this->picto='technic';
|
||||||
|
|
||||||
|
// Data directories to create when module is enabled
|
||||||
|
$this->dirs = array();
|
||||||
|
|
||||||
|
// Config pages
|
||||||
|
//-------------
|
||||||
|
$this->config_page_url = array("cron.php@cron");
|
||||||
|
|
||||||
|
// Dependancies
|
||||||
|
//-------------
|
||||||
|
$this->depends = array();
|
||||||
|
$this->requiredby = array();
|
||||||
|
$this->langfiles = array("cron");
|
||||||
|
|
||||||
|
// Constantes
|
||||||
|
//-----------
|
||||||
|
$this->const = array();
|
||||||
|
|
||||||
|
// New pages on tabs
|
||||||
|
// -----------------
|
||||||
|
$this->tabs = array();
|
||||||
|
|
||||||
|
// Boxes
|
||||||
|
//------
|
||||||
|
$this->boxes = array();
|
||||||
|
|
||||||
|
// Permissions
|
||||||
|
//------------
|
||||||
|
$this->rights = array();
|
||||||
|
$this->rights_class = 'cron';
|
||||||
|
$r=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function called when module is enabled.
|
||||||
|
* The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.
|
||||||
|
* It also creates data directories
|
||||||
|
*
|
||||||
|
* @param string $options Options when enabling module ('', 'noboxes')
|
||||||
|
* @return int 1 if OK, 0 if KO
|
||||||
|
*/
|
||||||
|
function init($options='')
|
||||||
|
{
|
||||||
|
// Prevent pb of modules not correctly disabled
|
||||||
|
//$this->remove($options);
|
||||||
|
|
||||||
|
$sql = array();
|
||||||
|
|
||||||
|
return $this->_init($sql,$options);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function called when module is disabled.
|
||||||
|
* Remove from database constants, boxes and permissions from Dolibarr database.
|
||||||
|
* Data directories are not deleted
|
||||||
|
*
|
||||||
|
* @param string $options Options when enabling module ('', 'noboxes')
|
||||||
|
* @return int 1 if OK, 0 if KO
|
||||||
|
*/
|
||||||
|
function remove($options='')
|
||||||
|
{
|
||||||
|
$sql = array();
|
||||||
|
|
||||||
|
return $this->_remove($sql,$options);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
||||||
132
htdocs/cron/admin/cron.php
Normal file
132
htdocs/cron/admin/cron.php
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
|
* Copyright (C) 2005-2013 Laurent Destailleur <eldy@users.sourceforge.org>
|
||||||
|
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
|
||||||
|
* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/cron/admin/cron.php
|
||||||
|
* \ingroup cron
|
||||||
|
* \brief Page to setup cron module
|
||||||
|
*/
|
||||||
|
|
||||||
|
require '../../main.inc.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||||
|
|
||||||
|
$langs->load("admin");
|
||||||
|
$langs->load("cron");
|
||||||
|
|
||||||
|
if (! $user->admin)
|
||||||
|
accessforbidden();
|
||||||
|
|
||||||
|
$actionsave=GETPOST("save");
|
||||||
|
|
||||||
|
// Sauvegardes parametres
|
||||||
|
if ($actionsave)
|
||||||
|
{
|
||||||
|
$i=0;
|
||||||
|
|
||||||
|
$db->begin();
|
||||||
|
|
||||||
|
$i+=dolibarr_set_const($db,'CRON_KEY',trim(GETPOST("CRON_KEY")),'chaine',0,'',$conf->entity);
|
||||||
|
|
||||||
|
if ($i >= 1)
|
||||||
|
{
|
||||||
|
$db->commit();
|
||||||
|
setEventMessage($langs->trans("SetupSaved"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$db->rollback();
|
||||||
|
setEventMessage($langs->trans("Error"), 'errors');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* View
|
||||||
|
*/
|
||||||
|
|
||||||
|
llxHeader();
|
||||||
|
|
||||||
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
|
print_fiche_titre($langs->trans("CronSetup"),$linkback,'setup');
|
||||||
|
|
||||||
|
print $langs->trans("CronDesc")."<br>\n";
|
||||||
|
print "<br>\n";
|
||||||
|
|
||||||
|
print '<form name="agendasetupform" action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<table class="noborder" width="100%">';
|
||||||
|
|
||||||
|
print '<tr class="liste_titre">';
|
||||||
|
print "<td>".$langs->trans("Parameter")."</td>";
|
||||||
|
print "<td>".$langs->trans("Value")."</td>";
|
||||||
|
//print "<td>".$langs->trans("Examples")."</td>";
|
||||||
|
print "<td> </td>";
|
||||||
|
print "</tr>";
|
||||||
|
|
||||||
|
print '<tr class="impair">';
|
||||||
|
print '<td class="fieldrequired">'.$langs->trans("KeyForCronAccess").'</td>';
|
||||||
|
print '<td><input type="text" class="flat" id="CRON_KEY" name="CRON_KEY" value="'. (GETPOST('CRON_KEY')?GETPOST('CRON_KEY'):(! empty($conf->global->CRON_KEY)?$conf->global->CRON_KEY:'')) . '" size="40">';
|
||||||
|
if (! empty($conf->use_javascript_ajax))
|
||||||
|
print ' '.img_picto($langs->trans('Generate'), 'refresh', 'id="generate_token" class="linkobject"');
|
||||||
|
print '</td>';
|
||||||
|
print '<td> </td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
|
||||||
|
print '<br><center>';
|
||||||
|
print '<input type="submit" name="save" class="button" value="'.$langs->trans("Save").'">';
|
||||||
|
print '</center>';
|
||||||
|
|
||||||
|
print '</form>';
|
||||||
|
|
||||||
|
print '<br><br>';
|
||||||
|
|
||||||
|
|
||||||
|
// Cron launch
|
||||||
|
print '<u>'.$langs->trans("URLToLaunchCronJobs").':</u><br>';
|
||||||
|
$url=DOL_MAIN_URL_ROOT.'/cron/cron_run_jobs.php'.(empty($conf->global->CRON_KEY)?'':'?securitykey='.$conf->global->CRON_KEY);
|
||||||
|
print img_picto('','object_globe.png').' <a href="'.$url.'" target="_blank">'.$url."</a><br>\n";
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
|
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
|
if (! empty($conf->use_javascript_ajax))
|
||||||
|
{
|
||||||
|
print "\n".'<script type="text/javascript">';
|
||||||
|
print '$(document).ready(function () {
|
||||||
|
$("#generate_token").click(function() {
|
||||||
|
$.get( "'.DOL_URL_ROOT.'/core/ajax/security.php", {
|
||||||
|
action: \'getrandompassword\',
|
||||||
|
generic: true
|
||||||
|
},
|
||||||
|
function(token) {
|
||||||
|
$("#CRON_KEY").val(token);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});';
|
||||||
|
print '</script>';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
llxFooter();
|
||||||
|
$db->close();
|
||||||
|
?>
|
||||||
@ -326,7 +326,7 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action')))
|
|||||||
$dir = "mysql/migration/"; // We use mysql migration scripts whatever is database driver
|
$dir = "mysql/migration/"; // We use mysql migration scripts whatever is database driver
|
||||||
if (! empty($versionmodule)) $dir=dol_buildpath('/'.$versionmodule.'/sql/',0);
|
if (! empty($versionmodule)) $dir=dol_buildpath('/'.$versionmodule.'/sql/',0);
|
||||||
|
|
||||||
// For minor version
|
// Clean last part to exclude minor version x.y.z -> x.y
|
||||||
$newversionfrom=preg_replace('/(\.[0-9]+)$/i','.0',$versionfrom);
|
$newversionfrom=preg_replace('/(\.[0-9]+)$/i','.0',$versionfrom);
|
||||||
$newversionto=preg_replace('/(\.[0-9]+)$/i','.0',$versionto);
|
$newversionto=preg_replace('/(\.[0-9]+)$/i','.0',$versionto);
|
||||||
|
|
||||||
@ -368,13 +368,43 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action')))
|
|||||||
// Loop on each migrate files
|
// Loop on each migrate files
|
||||||
foreach($filelist as $file)
|
foreach($filelist as $file)
|
||||||
{
|
{
|
||||||
print '<tr><td nowrap>';
|
print '<tr><td colspan="2"><hr></td></tr>';
|
||||||
print $langs->trans("ChoosedMigrateScript").'</td><td align="right">'.$file.'</td></tr>'."\n";
|
print '<tr><td nowrap>'.$langs->trans("ChoosedMigrateScript").'</td><td align="right">'.$file.'</td></tr>'."\n";
|
||||||
|
|
||||||
$name = substr($file, 0, dol_strlen($file) - 4);
|
|
||||||
|
|
||||||
// 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
|
||||||
|
$modulesfile = array();
|
||||||
|
foreach ($conf->file->dol_document_root as $type => $dirroot)
|
||||||
|
{
|
||||||
|
$handlemodule=@opendir($dirroot);
|
||||||
|
if (is_resource($handlemodule))
|
||||||
|
{
|
||||||
|
while (($filemodule = readdir($handlemodule))!==false)
|
||||||
|
{
|
||||||
|
if (is_dir($dirroot.'/'.$filemodule.'/sql'))
|
||||||
|
{
|
||||||
|
//print "Scan for ".$dirroot . '/' . $filemodule . '/sql/'.$file;
|
||||||
|
if (is_file($dirroot . '/' . $filemodule . '/sql/'.$file))
|
||||||
|
{
|
||||||
|
$modulesfile[$dirroot . '/' . $filemodule . '/sql/'.$file] = '/' . $filemodule . '/sql/'.$file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
closedir($handlemodule);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($modulesfile as $modulefilelong => $modulefileshort)
|
||||||
|
{
|
||||||
|
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";
|
||||||
|
|
||||||
|
// Run sql script
|
||||||
|
$okmodule=run_sql($modulefilelong, 0, '', 1); // Note: Result of migration of external module should not decide if we continue migration of Dolibarr or not.
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -333,10 +333,6 @@ Module1400Name=المحاسبة
|
|||||||
Module1400Desc=المحاسبة الإدارية (ضعف الأحزاب)
|
Module1400Desc=المحاسبة الإدارية (ضعف الأحزاب)
|
||||||
Module1780Name=الفئات
|
Module1780Name=الفئات
|
||||||
Module1780Desc=الفئات إدارة المنتجات والموردين والزبائن)
|
Module1780Desc=الفئات إدارة المنتجات والموردين والزبائن)
|
||||||
Module2200Name=الإقراض الإنسان
|
|
||||||
Module2200Desc=الإقراض لإدارة الحقوق
|
|
||||||
Module2300Name=القوائم
|
|
||||||
Module2300Desc=القوائم إدارة
|
|
||||||
Module2400Name=جدول الأعمال
|
Module2400Name=جدول الأعمال
|
||||||
Module2400Desc=الأعمال / الإدارة المهام وجدول الأعمال
|
Module2400Desc=الأعمال / الإدارة المهام وجدول الأعمال
|
||||||
Module2500Name=إدارة المحتوى الإلكتروني
|
Module2500Name=إدارة المحتوى الإلكتروني
|
||||||
|
|||||||
@ -438,10 +438,6 @@ Module1780Name=Категории
|
|||||||
Module1780Desc=Категория управление (продукти, доставчици и клиенти)
|
Module1780Desc=Категория управление (продукти, доставчици и клиенти)
|
||||||
Module2000Name=WYSIWYG редактор
|
Module2000Name=WYSIWYG редактор
|
||||||
Module2000Desc=Оставя се да редактирате някакъв текст, чрез използване на усъвършенствана редактор
|
Module2000Desc=Оставя се да редактирате някакъв текст, чрез използване на усъвършенствана редактор
|
||||||
Module2200Name=Кредити права
|
|
||||||
Module2200Desc=Заеми за управление на права
|
|
||||||
Module2300Name=Менюта
|
|
||||||
Module2300Desc=Меню управление
|
|
||||||
Module2400Name=Дневен ред
|
Module2400Name=Дневен ред
|
||||||
Module2400Desc=Събития / задачи и управление на дневен ред
|
Module2400Desc=Събития / задачи и управление на дневен ред
|
||||||
Module2500Name=Управление на електронно съдържание
|
Module2500Name=Управление на електронно съдържание
|
||||||
|
|||||||
@ -450,10 +450,6 @@ Module1780Name=Categories
|
|||||||
Module1780Desc=Gestió de categories (productes, proveïdors i clients)
|
Module1780Desc=Gestió de categories (productes, proveïdors i clients)
|
||||||
Module2000Name=Editor WYSIWYG
|
Module2000Name=Editor WYSIWYG
|
||||||
Module2000Desc=Permet l'edició de certes zones de text mitjançant un editor avançat
|
Module2000Desc=Permet l'edició de certes zones de text mitjançant un editor avançat
|
||||||
Module2200Name=Dret de préstecs
|
|
||||||
Module2200Desc=Gestió dels drets de préstecs
|
|
||||||
Module2300Name=Menús
|
|
||||||
Module2300Desc=Administració dels menús per base de dades
|
|
||||||
Module2400Name=Agenda
|
Module2400Name=Agenda
|
||||||
Module2400Desc=Gestió de l'agenda i de les accions
|
Module2400Desc=Gestió de l'agenda i de les accions
|
||||||
Module2500Name=Gestió Electrònica de Documents
|
Module2500Name=Gestió Electrònica de Documents
|
||||||
|
|||||||
@ -305,10 +305,6 @@ Module1400Name=Regnskabsmæssig ekspert
|
|||||||
Module1400Desc=Regnskabsmæssig forvaltning for eksperter (dobbelt parterne)
|
Module1400Desc=Regnskabsmæssig forvaltning for eksperter (dobbelt parterne)
|
||||||
Module1780Name=Kategorier
|
Module1780Name=Kategorier
|
||||||
Module1780Desc=Kategorier 'forvaltning (produkter, leverandører og kunder)
|
Module1780Desc=Kategorier 'forvaltning (produkter, leverandører og kunder)
|
||||||
Module2200Name=Udlånsrettighederne
|
|
||||||
Module2200Desc=Udlånsrettighederne forvaltning
|
|
||||||
Module2300Name=Menuer
|
|
||||||
Module2300Desc=Menuer 'ledelse
|
|
||||||
Module2400Name=Agenda
|
Module2400Name=Agenda
|
||||||
Module2400Desc=Handlinger / opgaver og dagsorden forvaltning
|
Module2400Desc=Handlinger / opgaver og dagsorden forvaltning
|
||||||
Module2500Name=Elektronisk Content Management
|
Module2500Name=Elektronisk Content Management
|
||||||
|
|||||||
@ -300,10 +300,6 @@ Module1400Name=Buchhaltung
|
|||||||
Module1400Desc=Buchhaltung für Experten (doppelte Buchhaltung)
|
Module1400Desc=Buchhaltung für Experten (doppelte Buchhaltung)
|
||||||
Module1780Name=Kategorien
|
Module1780Name=Kategorien
|
||||||
Module1780Desc=Kategorienverwaltung (Produkte, Lieferanten und Kunden)
|
Module1780Desc=Kategorienverwaltung (Produkte, Lieferanten und Kunden)
|
||||||
Module2200Name=Verleihrechte
|
|
||||||
Module2200Desc=Verleihrechteverwaltung
|
|
||||||
Module2300Name=Menüs
|
|
||||||
Module2300Desc=Menüverwaltung
|
|
||||||
Module2400Name=Agenda
|
Module2400Name=Agenda
|
||||||
Module2400Desc=Maßnahmen/Aufgaben und Agendaverwaltung
|
Module2400Desc=Maßnahmen/Aufgaben und Agendaverwaltung
|
||||||
Module2500Name=Inhaltsverwaltung(ECM)
|
Module2500Name=Inhaltsverwaltung(ECM)
|
||||||
|
|||||||
@ -421,10 +421,6 @@ Module1780Name=Kategorien
|
|||||||
Module1780Desc=Kategorienverwaltung (Produkte, Lieferanten und Kunden)
|
Module1780Desc=Kategorienverwaltung (Produkte, Lieferanten und Kunden)
|
||||||
Module2000Name=FCKeditor
|
Module2000Name=FCKeditor
|
||||||
Module2000Desc=WYSIWYG-Editor
|
Module2000Desc=WYSIWYG-Editor
|
||||||
Module2200Name=Verleihrechte
|
|
||||||
Module2200Desc=Verleihrechteverwaltung
|
|
||||||
Module2300Name=Menüs
|
|
||||||
Module2300Desc=Menüverwaltung
|
|
||||||
Module2400Name=Agenda
|
Module2400Name=Agenda
|
||||||
Module2400Desc=Maßnahmen/Aufgaben und Agendaverwaltung
|
Module2400Desc=Maßnahmen/Aufgaben und Agendaverwaltung
|
||||||
Module2500Name=Inhaltsverwaltung(ECM)
|
Module2500Name=Inhaltsverwaltung(ECM)
|
||||||
|
|||||||
@ -181,7 +181,6 @@ Module330Name=Σελιδοδείκτες
|
|||||||
Module400Name=Έργα
|
Module400Name=Έργα
|
||||||
Module700Name=Δωρεές
|
Module700Name=Δωρεές
|
||||||
Module1780Name=Κατηγορίες
|
Module1780Name=Κατηγορίες
|
||||||
Module2300Name=Μενού
|
|
||||||
Module2400Name=Ατζέντα
|
Module2400Name=Ατζέντα
|
||||||
Module50100Name=Σημείο Πωλήσεων
|
Module50100Name=Σημείο Πωλήσεων
|
||||||
Permission19=Διαγραφή τιμολογίων
|
Permission19=Διαγραφή τιμολογίων
|
||||||
|
|||||||
@ -454,10 +454,8 @@ Module1780Name=Categories
|
|||||||
Module1780Desc=Category management (products, suppliers and customers)
|
Module1780Desc=Category management (products, suppliers and customers)
|
||||||
Module2000Name=WYSIWYG editor
|
Module2000Name=WYSIWYG editor
|
||||||
Module2000Desc=Allow to edit some text area using an advanced editor
|
Module2000Desc=Allow to edit some text area using an advanced editor
|
||||||
Module2200Name=Lending rights
|
Module2300Name=Cron
|
||||||
Module2200Desc=Lending rights management
|
Module2300Desc=Scheduled task management
|
||||||
Module2300Name=Menus
|
|
||||||
Module2300Desc=Menu management
|
|
||||||
Module2400Name=Agenda
|
Module2400Name=Agenda
|
||||||
Module2400Desc=Events/tasks and agenda management
|
Module2400Desc=Events/tasks and agenda management
|
||||||
Module2500Name=Electronic Content Management
|
Module2500Name=Electronic Content Management
|
||||||
|
|||||||
@ -389,6 +389,7 @@ ClosePaidCreditNotesAutomatically=Classify "Payed" all credit notes entierely pa
|
|||||||
AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Payed".
|
AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Payed".
|
||||||
ToMakePayment=Pay
|
ToMakePayment=Pay
|
||||||
ToMakePaymentBack=Pay back
|
ToMakePaymentBack=Pay back
|
||||||
|
ListOfYourUnpaidInvoices=List of unpaid invoices
|
||||||
##### Types de contacts #####
|
##### Types de contacts #####
|
||||||
TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice
|
TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice
|
||||||
TypeContact_facture_external_BILLING=Customer invoice contact
|
TypeContact_facture_external_BILLING=Customer invoice contact
|
||||||
|
|||||||
6
htdocs/langs/en_US/cron.lang
Normal file
6
htdocs/langs/en_US/cron.lang
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# Dolibarr language file - en_US - cron
|
||||||
|
CHARSET=UTF-8
|
||||||
|
CronSetup=Cron scheduler setup
|
||||||
|
CronDesc=This page can be used to setup options of the scheduler manager
|
||||||
|
URLToLaunchCronJobs=URL to launch cron jobs
|
||||||
|
KeyForCronAccess=Security key for URL to launch cron jobs
|
||||||
@ -451,10 +451,6 @@ Module1780Name=Categorías
|
|||||||
Module1780Desc=Gestión de categorías (productos, proveedores y clientes)
|
Module1780Desc=Gestión de categorías (productos, proveedores y clientes)
|
||||||
Module2000Name=Editor WYSIWYG
|
Module2000Name=Editor WYSIWYG
|
||||||
Module2000Desc=Permite la edición de ciertas zonas de texto mediante un editor avanzado
|
Module2000Desc=Permite la edición de ciertas zonas de texto mediante un editor avanzado
|
||||||
Module2200Name=Derecho de préstamos
|
|
||||||
Module2200Desc=Gestión de los derechos de préstamos
|
|
||||||
Module2300Name=Menús
|
|
||||||
Module2300Desc=Administración de los menús por base de datos
|
|
||||||
Module2400Name=Agenda
|
Module2400Name=Agenda
|
||||||
Module2400Desc=Gestión de la agenda y de las acciones
|
Module2400Desc=Gestión de la agenda y de las acciones
|
||||||
Module2500Name=Gestión Electrónica de Documentos
|
Module2500Name=Gestión Electrónica de Documentos
|
||||||
|
|||||||
@ -418,10 +418,6 @@ Module1780Name=Kategooriad
|
|||||||
Module1780Desc=Kategoorias juhtkond (toodete, tarnijate ja tarbijate)
|
Module1780Desc=Kategoorias juhtkond (toodete, tarnijate ja tarbijate)
|
||||||
Module2000Name=WYSIWYG editor
|
Module2000Name=WYSIWYG editor
|
||||||
Module2000Desc=Võimaldavad muuta natuke teksti ala, kasutades täiustatud toimetaja
|
Module2000Desc=Võimaldavad muuta natuke teksti ala, kasutades täiustatud toimetaja
|
||||||
Module2200Name=Laenutusõigust
|
|
||||||
Module2200Desc=Laenutusõigust juhtimine
|
|
||||||
Module2300Name=Menüüd
|
|
||||||
Module2300Desc=Menüü juhtkond
|
|
||||||
Module2400Name=Päevakord
|
Module2400Name=Päevakord
|
||||||
Module2400Desc=Events / ülesanded ja kava haldamise
|
Module2400Desc=Events / ülesanded ja kava haldamise
|
||||||
Module2500Name=Electronic Content Management
|
Module2500Name=Electronic Content Management
|
||||||
|
|||||||
@ -341,10 +341,6 @@ Module1400Name=المحاسبة
|
|||||||
Module1400Desc=المحاسبة الإدارية (ضعف الأحزاب)
|
Module1400Desc=المحاسبة الإدارية (ضعف الأحزاب)
|
||||||
Module1780Name=الفئات
|
Module1780Name=الفئات
|
||||||
Module1780Desc=الفئات إدارة المنتجات والموردين والزبائن)
|
Module1780Desc=الفئات إدارة المنتجات والموردين والزبائن)
|
||||||
Module2200Name=الإقراض الإنسان
|
|
||||||
Module2200Desc=الإقراض لإدارة الحقوق
|
|
||||||
Module2300Name=القوائم
|
|
||||||
Module2300Desc=القوائم إدارة
|
|
||||||
Module2400Name=جدول الأعمال
|
Module2400Name=جدول الأعمال
|
||||||
Module2400Desc=الأعمال / الإدارة المهام وجدول الأعمال
|
Module2400Desc=الأعمال / الإدارة المهام وجدول الأعمال
|
||||||
Module2500Name=إدارة المحتوى الإلكتروني
|
Module2500Name=إدارة المحتوى الإلكتروني
|
||||||
|
|||||||
@ -303,10 +303,6 @@ Module1400Name=Kirjanpidon asiantuntija
|
|||||||
Module1400Desc=Kirjanpidon hallinta asiantuntijoille (double osapuolet)
|
Module1400Desc=Kirjanpidon hallinta asiantuntijoille (double osapuolet)
|
||||||
Module1780Name=Kategoriat
|
Module1780Name=Kategoriat
|
||||||
Module1780Desc=Kategoriat hallintaa (tuotteet, tavarantoimittajat ja asiakkaat)
|
Module1780Desc=Kategoriat hallintaa (tuotteet, tavarantoimittajat ja asiakkaat)
|
||||||
Module2200Name=Lainausoikeuksia
|
|
||||||
Module2200Desc=Luotonanto oikeuksien hallinta
|
|
||||||
Module2300Name=Menut
|
|
||||||
Module2300Desc=Valikot hallinto
|
|
||||||
Module2400Name=Agenda
|
Module2400Name=Agenda
|
||||||
Module2400Desc=Toimet / tehtävät ja esityslistan hallinta
|
Module2400Desc=Toimet / tehtävät ja esityslistan hallinta
|
||||||
Module2500Name=Sähköinen Content Management
|
Module2500Name=Sähköinen Content Management
|
||||||
|
|||||||
@ -25,7 +25,7 @@ HTMLCharset= Charset des pages HTML générées
|
|||||||
DBStoringCharset= Charset base pour stockage données
|
DBStoringCharset= Charset base pour stockage données
|
||||||
DBSortingCharset= Charset base pour tri données
|
DBSortingCharset= Charset base pour tri données
|
||||||
WarningModuleNotActive= Module <b>%s</b> non actif
|
WarningModuleNotActive= Module <b>%s</b> non actif
|
||||||
WarningOnlyPermissionOfActivatedModules= Attention, seules les permissions en rapport avec les modules activés sont affichées ici. Vous pouvez activer les autres modules sur la page Accueil->Configuration->Modules
|
WarningOnlyPermissionOfActivatedModules= Attention, seules les permissions en rapport avec les modules activés sont affichées ici. Vous pouvez activer d'autres modules sur la page Accueil->Configuration->Modules
|
||||||
DolibarrSetup= Installation ou mise à jour de Dolibarr
|
DolibarrSetup= Installation ou mise à jour de Dolibarr
|
||||||
DolibarrUser= Utilisateur Dolibarr
|
DolibarrUser= Utilisateur Dolibarr
|
||||||
InternalUser= Utilisateur interne
|
InternalUser= Utilisateur interne
|
||||||
@ -452,10 +452,8 @@ Module1780Name= Catégories
|
|||||||
Module1780Desc= Gestion des catégories (produits, fournisseurs, clients et adhérents)
|
Module1780Desc= Gestion des catégories (produits, fournisseurs, clients et adhérents)
|
||||||
Module2000Name= Editeur WYSIWYG
|
Module2000Name= Editeur WYSIWYG
|
||||||
Module2000Desc= Permet la saisie de certaines zones de textes grace à un éditeur avancé
|
Module2000Desc= Permet la saisie de certaines zones de textes grace à un éditeur avancé
|
||||||
Module2200Name= Droit de prêts
|
Module2300Name= Cron
|
||||||
Module2200Desc= Gestion du droit de prêts
|
Module2300Desc= Gestionnaire de taches programmées
|
||||||
Module2300Name= Menus
|
|
||||||
Module2300Desc= Administration des menus par base de données
|
|
||||||
Module2400Name= Agenda
|
Module2400Name= Agenda
|
||||||
Module2400Desc= Gestion des actions (événements et tâches) et de l'agenda
|
Module2400Desc= Gestion des actions (événements et tâches) et de l'agenda
|
||||||
Module2500Name= Gestion Electronique de Documents
|
Module2500Name= Gestion Electronique de Documents
|
||||||
@ -1351,7 +1349,7 @@ AccountancyCodeBuy=Code compta achat
|
|||||||
AgendaSetup= Configuration du module actions et agenda
|
AgendaSetup= Configuration du module actions et agenda
|
||||||
PasswordTogetVCalExport= Clé pour autoriser lien export
|
PasswordTogetVCalExport= Clé pour autoriser lien export
|
||||||
PastDelayVCalExport=Ne pas exporter les événements de plus de
|
PastDelayVCalExport=Ne pas exporter les événements de plus de
|
||||||
AGENDA_USE_EVENT_TYPE=Utilisez les type des évenements (administrable dans Configuration->Dictionnary->llx_c_actioncomm)
|
AGENDA_USE_EVENT_TYPE=Utilisez les types des évenements (administrable dans Configuration -> Dictionnaires -> Liste des types d'évenements de l'agenda)
|
||||||
##### ClickToDial #####
|
##### ClickToDial #####
|
||||||
ClickToDialDesc= Ce module permet d'ajouter un petit picto à côté des numéros de téléphones. Un clic sur ce picto provoque l'appel de l'URL définie dans ce paramétrage. Ceci permet de provoquer des appels à un serveur de téléphonie depuis Dolibarr qui peut alors composer le numéro sur un système SIP par exemple.
|
ClickToDialDesc= Ce module permet d'ajouter un petit picto à côté des numéros de téléphones. Un clic sur ce picto provoque l'appel de l'URL définie dans ce paramétrage. Ceci permet de provoquer des appels à un serveur de téléphonie depuis Dolibarr qui peut alors composer le numéro sur un système SIP par exemple.
|
||||||
##### Point Of Sales (CashDesk) #####
|
##### Point Of Sales (CashDesk) #####
|
||||||
|
|||||||
@ -386,6 +386,7 @@ ClosePaidCreditNotesAutomatically=Classer automatiquement à "Payé" les facture
|
|||||||
AllCompletelyPayedInvoiceWillBeClosed=Toutes les factures avec un reste à payer nul seront automatiquement fermées au statut "Payé".
|
AllCompletelyPayedInvoiceWillBeClosed=Toutes les factures avec un reste à payer nul seront automatiquement fermées au statut "Payé".
|
||||||
ToMakePayment=Payer
|
ToMakePayment=Payer
|
||||||
ToMakePaymentBack=Rembourser
|
ToMakePaymentBack=Rembourser
|
||||||
|
ListOfYourUnpaidInvoices=Liste des factures impayées
|
||||||
##### Types de contacts #####
|
##### Types de contacts #####
|
||||||
TypeContact_facture_internal_SALESREPFOLL=Responsable suivi facture client
|
TypeContact_facture_internal_SALESREPFOLL=Responsable suivi facture client
|
||||||
TypeContact_facture_external_BILLING=Contact client facturation
|
TypeContact_facture_external_BILLING=Contact client facturation
|
||||||
|
|||||||
6
htdocs/langs/fr_FR/cron.lang
Normal file
6
htdocs/langs/fr_FR/cron.lang
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# Dolibarr language file - fr_FR - cron
|
||||||
|
CHARSET=UTF-8
|
||||||
|
CronSetup=Configuration du séquenceur de taches
|
||||||
|
CronDesc=Cette page permet de configurer certaines options du séquenceur de taches
|
||||||
|
URLToLaunchCronJobs=URL pour lancer les taches automatiques
|
||||||
|
KeyForCronAccess=Clé de sécurité pour l'URL de lancement des taches automatiques
|
||||||
@ -418,10 +418,6 @@ Module1780Name=קטגוריות
|
|||||||
Module1780Desc=Categorie ההנהלה (מוצרים, ספקים ולקוחות)
|
Module1780Desc=Categorie ההנהלה (מוצרים, ספקים ולקוחות)
|
||||||
Module2000Name=עורך WYSIWYG
|
Module2000Name=עורך WYSIWYG
|
||||||
Module2000Desc=אפשר לערוך כמה אזור הטקסט באמצעות עורך מתקדם
|
Module2000Desc=אפשר לערוך כמה אזור הטקסט באמצעות עורך מתקדם
|
||||||
Module2200Name=ההלוואות זכויות
|
|
||||||
Module2200Desc=זכויות ההלוואות וניהול
|
|
||||||
Module2300Name=תפריטים
|
|
||||||
Module2300Desc=תפריט של ההנהלה
|
|
||||||
Module2400Name=סדר היום
|
Module2400Name=סדר היום
|
||||||
Module2400Desc=אירועים / משימות וניהול סדר היום
|
Module2400Desc=אירועים / משימות וניהול סדר היום
|
||||||
Module2500Name=תוכן אלקטרוני ניהול
|
Module2500Name=תוכן אלקטרוני ניהול
|
||||||
|
|||||||
@ -418,10 +418,6 @@ Module1780Name=Kategóriák
|
|||||||
Module1780Desc=Kategóriában vezetősége (termékek, szállítók és vevők)
|
Module1780Desc=Kategóriában vezetősége (termékek, szállítók és vevők)
|
||||||
Module2000Name=WYSIWYG szerkesztő
|
Module2000Name=WYSIWYG szerkesztő
|
||||||
Module2000Desc=Hagyjuk szerkeszteni egy szöveget terület egy fejlett szerkesztő
|
Module2000Desc=Hagyjuk szerkeszteni egy szöveget terület egy fejlett szerkesztő
|
||||||
Module2200Name=Haszonkölcsönzési jogait
|
|
||||||
Module2200Desc=Hitelezési jogkezelés
|
|
||||||
Module2300Name=Menük
|
|
||||||
Module2300Desc=Menü vezetése
|
|
||||||
Module2400Name=Napirend
|
Module2400Name=Napirend
|
||||||
Module2400Desc=Események / feladatok és napirend menedzsment
|
Module2400Desc=Események / feladatok és napirend menedzsment
|
||||||
Module2500Name=Elektronikus Content Management
|
Module2500Name=Elektronikus Content Management
|
||||||
|
|||||||
@ -369,10 +369,6 @@ Module1780Name=Flokkar
|
|||||||
Module1780Desc=Stjórn Flokkur's (vörur, birgja og viðskiptavina)
|
Module1780Desc=Stjórn Flokkur's (vörur, birgja og viðskiptavina)
|
||||||
Module2000Name=Fckeditor
|
Module2000Name=Fckeditor
|
||||||
Module2000Desc=WYSIWYG Editor
|
Module2000Desc=WYSIWYG Editor
|
||||||
Module2200Name=Útlán réttindi
|
|
||||||
Module2200Desc=Útlán réttindi
|
|
||||||
Module2300Name=Matseðlar
|
|
||||||
Module2300Desc=Valmynd's stjórnun
|
|
||||||
Module2400Name=Dagskrá
|
Module2400Name=Dagskrá
|
||||||
Module2400Desc=Aðgerðir / verkefni og dagskrá stjórnun
|
Module2400Desc=Aðgerðir / verkefni og dagskrá stjórnun
|
||||||
Module2500Name=Rafræn Innihald Stjórnun
|
Module2500Name=Rafræn Innihald Stjórnun
|
||||||
|
|||||||
@ -641,8 +641,6 @@ Module2200Desc =Gestione dei diritti di prestito
|
|||||||
Module2200Name =Diritti di prestito
|
Module2200Name =Diritti di prestito
|
||||||
Module22Desc =Gestione posta massiva
|
Module22Desc =Gestione posta massiva
|
||||||
Module22Name =Posta massiva
|
Module22Name =Posta massiva
|
||||||
Module2300Desc =Gestione dei Menu
|
|
||||||
Module2300Name =Menu
|
|
||||||
Module23Desc =Monitoraggio del consumo energetico
|
Module23Desc =Monitoraggio del consumo energetico
|
||||||
Module23Name =Energia
|
Module23Name =Energia
|
||||||
Module2400Desc =Gestione eventi/compiti e ordine del giorno
|
Module2400Desc =Gestione eventi/compiti e ordine del giorno
|
||||||
|
|||||||
@ -418,10 +418,6 @@ Module1780Name=カテゴリー
|
|||||||
Module1780Desc=Categorieの管理(製品、サプライヤー、顧客)
|
Module1780Desc=Categorieの管理(製品、サプライヤー、顧客)
|
||||||
Module2000Name=WYSIWYGエディタ
|
Module2000Name=WYSIWYGエディタ
|
||||||
Module2000Desc=高度なエディタを使用して、いくつかのテキストエリアを編集することができます
|
Module2000Desc=高度なエディタを使用して、いくつかのテキストエリアを編集することができます
|
||||||
Module2200Name=融資の権限
|
|
||||||
Module2200Desc=貸出権限の管理
|
|
||||||
Module2300Name=メニュー
|
|
||||||
Module2300Desc=メニューの管理
|
|
||||||
Module2400Name=議題
|
Module2400Name=議題
|
||||||
Module2400Desc=イベント/タスクと議題の管理
|
Module2400Desc=イベント/タスクと議題の管理
|
||||||
Module2500Name=電子コンテンツ管理
|
Module2500Name=電子コンテンツ管理
|
||||||
|
|||||||
@ -299,10 +299,6 @@ Module1400Name=Regnskapsekspert
|
|||||||
Module1400Desc=Behandling av regnskapssopplysninger for eksperter (double parties)
|
Module1400Desc=Behandling av regnskapssopplysninger for eksperter (double parties)
|
||||||
Module1780Name=Kategorier
|
Module1780Name=Kategorier
|
||||||
Module1780Desc=Behandling av kategorier (varer, leverandører og kunder)
|
Module1780Desc=Behandling av kategorier (varer, leverandører og kunder)
|
||||||
Module2200Name=Utlånsrettigheter
|
|
||||||
Module2200Desc=Behandling av utlånsrettigheter
|
|
||||||
Module2300Name=Menyer
|
|
||||||
Module2300Desc=Menybehandling
|
|
||||||
Module2400Name=Agenda
|
Module2400Name=Agenda
|
||||||
Module2400Desc=Handlinger/oppgaver og agendabehandling
|
Module2400Desc=Handlinger/oppgaver og agendabehandling
|
||||||
Module2500Name=Electronic Content Management
|
Module2500Name=Electronic Content Management
|
||||||
|
|||||||
@ -413,10 +413,6 @@ Module1780Name = Categorieën
|
|||||||
Module1780Desc = Categorie' beheer (producten, leveranciers en klanten)
|
Module1780Desc = Categorie' beheer (producten, leveranciers en klanten)
|
||||||
Module2000Name =
|
Module2000Name =
|
||||||
Module2000Desc =
|
Module2000Desc =
|
||||||
Module2200Name = Uitleenrechten
|
|
||||||
Module2200Desc = Uitleenrechten beheer
|
|
||||||
Module2300Name = Menu's
|
|
||||||
Module2300Desc = Menu's beheer
|
|
||||||
Module2400Name = Agenda
|
Module2400Name = Agenda
|
||||||
Module2400Desc = Acties / taken en agenda beheer
|
Module2400Desc = Acties / taken en agenda beheer
|
||||||
Module2500Name = Electronic Content Management
|
Module2500Name = Electronic Content Management
|
||||||
|
|||||||
@ -383,10 +383,6 @@ Module1780Name = Categorieën
|
|||||||
Module1780Desc = Categoriebeheer (producten, leveranciers en afnemers)
|
Module1780Desc = Categoriebeheer (producten, leveranciers en afnemers)
|
||||||
Module2000Name = Fckeditor
|
Module2000Name = Fckeditor
|
||||||
Module2000Desc = Een WYSIWYG editor
|
Module2000Desc = Een WYSIWYG editor
|
||||||
Module2200Name = Uitleenrechten
|
|
||||||
Module2200Desc = Uitleenrechtenbeheer
|
|
||||||
Module2300Name = Menu's
|
|
||||||
Module2300Desc = Menubeheer
|
|
||||||
Module2400Name = Agenda
|
Module2400Name = Agenda
|
||||||
Module2400Desc = Acties-, taken- en agendabeheer
|
Module2400Desc = Acties-, taken- en agendabeheer
|
||||||
Module2500Name = Electronic Content Management
|
Module2500Name = Electronic Content Management
|
||||||
|
|||||||
@ -306,10 +306,6 @@ Module1400Name=Księgowość ekspertów
|
|||||||
Module1400Desc=Księgowość zarządzania dla ekspertów (double stron)
|
Module1400Desc=Księgowość zarządzania dla ekspertów (double stron)
|
||||||
Module1780Name=Kategorie
|
Module1780Name=Kategorie
|
||||||
Module1780Desc=Kategorie zarządzania (produktów, dostawców i klientów)
|
Module1780Desc=Kategorie zarządzania (produktów, dostawców i klientów)
|
||||||
Module2200Name=Użyczanie
|
|
||||||
Module2200Desc=Kredyty zarządzania prawami
|
|
||||||
Module2300Name=Menu
|
|
||||||
Module2300Desc=Menu zarządzania
|
|
||||||
Module2400Name=Porządek obrad
|
Module2400Name=Porządek obrad
|
||||||
Module2400Desc=Działania / zadania i porządku zarządzania
|
Module2400Desc=Działania / zadania i porządku zarządzania
|
||||||
Module2500Name=Electronic Content Management
|
Module2500Name=Electronic Content Management
|
||||||
|
|||||||
@ -320,10 +320,6 @@ Module1200Name=Mantis
|
|||||||
Module1200Desc=Interface com o sistema de seguimento de incidências Mantis
|
Module1200Desc=Interface com o sistema de seguimento de incidências Mantis
|
||||||
Module1780Name=Categorias
|
Module1780Name=Categorias
|
||||||
Module1780Desc=Administração de categorias (produtos, Fornecedores e clientes)
|
Module1780Desc=Administração de categorias (produtos, Fornecedores e clientes)
|
||||||
Module2200Name=Direito de emprétimos
|
|
||||||
Module2200Desc=Administração dos direitos de emprétimos
|
|
||||||
Module2300Name=Menus
|
|
||||||
Module2300Desc=Administração dos menus por base de dados
|
|
||||||
Module2400Name=Agenda
|
Module2400Name=Agenda
|
||||||
Module2400Desc=Administração da agenda e das ações
|
Module2400Desc=Administração da agenda e das ações
|
||||||
Module2500Name=Administração Eletrônica de Documentos
|
Module2500Name=Administração Eletrônica de Documentos
|
||||||
|
|||||||
@ -562,8 +562,6 @@ Module2200Desc = Gestão dos direitos de empréstimos
|
|||||||
Module2200Name = Direito de empréstimos
|
Module2200Name = Direito de empréstimos
|
||||||
Module22Desc = Administração e envío de E-Mails massivos
|
Module22Desc = Administração e envío de E-Mails massivos
|
||||||
Module22Name = E-Mailings
|
Module22Name = E-Mailings
|
||||||
Module2300Desc = Administração dos menus por base de dados
|
|
||||||
Module2300Name = Menus
|
|
||||||
Module23Desc = Acompanhamento do consumo de energia
|
Module23Desc = Acompanhamento do consumo de energia
|
||||||
Module23Name = Energia
|
Module23Name = Energia
|
||||||
Module2400Desc = Gestão da agenda e das acções
|
Module2400Desc = Gestão da agenda e das acções
|
||||||
|
|||||||
@ -304,10 +304,6 @@ Module1400Name=Expert contabil
|
|||||||
Module1400Desc=Contabilitate de gestiune pentru experţi (dublu părţi)
|
Module1400Desc=Contabilitate de gestiune pentru experţi (dublu părţi)
|
||||||
Module1780Name=Categorii
|
Module1780Name=Categorii
|
||||||
Module1780Desc=Categorii de "management (produse, furnizori şi clienţi)
|
Module1780Desc=Categorii de "management (produse, furnizori şi clienţi)
|
||||||
Module2200Name=Credite drepturile
|
|
||||||
Module2200Desc=Credite de gestionare a drepturilor
|
|
||||||
Module2300Name=Meniuri
|
|
||||||
Module2300Desc=Meniuri de gestionare
|
|
||||||
Module2400Name=Ordinea de zi
|
Module2400Name=Ordinea de zi
|
||||||
Module2400Desc=Acţiuni / activităţi de ordine de zi şi de gestionare a
|
Module2400Desc=Acţiuni / activităţi de ordine de zi şi de gestionare a
|
||||||
Module2500Name=Electronic Content Management
|
Module2500Name=Electronic Content Management
|
||||||
|
|||||||
@ -303,10 +303,6 @@ Module1400Name=Бухгалтерия эксперт
|
|||||||
Module1400Desc=Бухгалтерия управления для экспертов (двойная сторон)
|
Module1400Desc=Бухгалтерия управления для экспертов (двойная сторон)
|
||||||
Module1780Name=Категории
|
Module1780Name=Категории
|
||||||
Module1780Desc=Категории управления (продукции, поставщиков и заказчиков)
|
Module1780Desc=Категории управления (продукции, поставщиков и заказчиков)
|
||||||
Module2200Name=Кредитование человека
|
|
||||||
Module2200Desc=Кредитование права управления
|
|
||||||
Module2300Name=Меню
|
|
||||||
Module2300Desc=Меню управления
|
|
||||||
Module2400Name=Повестка дня
|
Module2400Name=Повестка дня
|
||||||
Module2400Desc=Деятельность / задачи и программы управления
|
Module2400Desc=Деятельность / задачи и программы управления
|
||||||
Module2500Name=Электронное управление
|
Module2500Name=Электронное управление
|
||||||
|
|||||||
@ -399,10 +399,6 @@ Module1780Name = Kategorije
|
|||||||
Module1780Desc = Upravljanje kategorij (proizvodi, dobavitelji in kupci)
|
Module1780Desc = Upravljanje kategorij (proizvodi, dobavitelji in kupci)
|
||||||
Module2000Name = Fck urejevalnik
|
Module2000Name = Fck urejevalnik
|
||||||
Module2000Desc = WYSIWYG urejevalnik
|
Module2000Desc = WYSIWYG urejevalnik
|
||||||
Module2200Name = Kreditne pravice
|
|
||||||
Module2200Desc = Upravljanje kreditnih pravic
|
|
||||||
Module2300Name = Meniji
|
|
||||||
Module2300Desc = Upravljanje menijev
|
|
||||||
Module2400Name = Dnevni red
|
Module2400Name = Dnevni red
|
||||||
Module2400Desc = Upravljanje aktivnosti/nalog in dnevnih redov
|
Module2400Desc = Upravljanje aktivnosti/nalog in dnevnih redov
|
||||||
Module2500Name = Upravljanje elektronskih vsebin
|
Module2500Name = Upravljanje elektronskih vsebin
|
||||||
|
|||||||
@ -372,10 +372,6 @@ Module1780Name=Kategorier
|
|||||||
Module1780Desc=Categorie ledning (produkter, leverantörer och kunder)
|
Module1780Desc=Categorie ledning (produkter, leverantörer och kunder)
|
||||||
Module2000Name=FCKeditor
|
Module2000Name=FCKeditor
|
||||||
Module2000Desc=WYSIWYG Editor
|
Module2000Desc=WYSIWYG Editor
|
||||||
Module2200Name=Utlåning rättigheter
|
|
||||||
Module2200Desc=Utlåning förvaltning av rättigheter
|
|
||||||
Module2300Name=Menyer
|
|
||||||
Module2300Desc=Meny ledning
|
|
||||||
Module2400Name=Agenda
|
Module2400Name=Agenda
|
||||||
Module2400Desc=Åtgärder / uppgifter och dagordning förvaltning
|
Module2400Desc=Åtgärder / uppgifter och dagordning förvaltning
|
||||||
Module2500Name=Electronic Content Management
|
Module2500Name=Electronic Content Management
|
||||||
|
|||||||
@ -456,10 +456,6 @@ Module1780Name=Kategoriler
|
|||||||
Module1780Desc=Kategorilerin yönetimi (ürünler, tedarikçiler ve müşteriler)
|
Module1780Desc=Kategorilerin yönetimi (ürünler, tedarikçiler ve müşteriler)
|
||||||
Module2000Name=WYSIWYG düzenleyici
|
Module2000Name=WYSIWYG düzenleyici
|
||||||
Module2000Desc=Gelişmiş editör kullanarak bazı metin alanlarının düzenlenmesini sağlar
|
Module2000Desc=Gelişmiş editör kullanarak bazı metin alanlarının düzenlenmesini sağlar
|
||||||
Module2200Name=Kiralama hakları
|
|
||||||
Module2200Desc=Kiralama hakları yönetimi
|
|
||||||
Module2300Name=Menüler
|
|
||||||
Module2300Desc=Menü yönetimi
|
|
||||||
Module2400Name=Gündem
|
Module2400Name=Gündem
|
||||||
Module2400Desc=Etkinlikler/görevler ve gündem yönetimi
|
Module2400Desc=Etkinlikler/görevler ve gündem yönetimi
|
||||||
Module2500Name=Elektronik İçerik Yönetimi
|
Module2500Name=Elektronik İçerik Yönetimi
|
||||||
|
|||||||
@ -366,10 +366,6 @@ Module1780Name=分类
|
|||||||
Module1780Desc=的类别:管理层(产品,供应商和客户)
|
Module1780Desc=的类别:管理层(产品,供应商和客户)
|
||||||
Module2000Name=fckeditor的
|
Module2000Name=fckeditor的
|
||||||
Module2000Desc=所见即所得的编辑器
|
Module2000Desc=所见即所得的编辑器
|
||||||
Module2200Name=贷款的权利
|
|
||||||
Module2200Desc=贷款权限管理
|
|
||||||
Module2300Name=菜单
|
|
||||||
Module2300Desc=菜单的管理
|
|
||||||
Module2400Name=议程
|
Module2400Name=议程
|
||||||
Module2400Desc=行动/任务和议程管理
|
Module2400Desc=行动/任务和议程管理
|
||||||
Module2500Name=电子内容管理
|
Module2500Name=电子内容管理
|
||||||
|
|||||||
@ -371,10 +371,6 @@ Module1780Name=分類
|
|||||||
Module1780Desc=分類的管理(產品,供應商和客戶)
|
Module1780Desc=分類的管理(產品,供應商和客戶)
|
||||||
Module2000Name=fckeditor的
|
Module2000Name=fckeditor的
|
||||||
Module2000Desc=所見即所得的編輯器
|
Module2000Desc=所見即所得的編輯器
|
||||||
Module2200Name=貸款的權利
|
|
||||||
Module2200Desc=貸款權限管理
|
|
||||||
Module2300Name=選單
|
|
||||||
Module2300Desc=選單的管理
|
|
||||||
Module2400Name=議程
|
Module2400Name=議程
|
||||||
Module2400Desc=行動/任務和議程管理
|
Module2400Desc=行動/任務和議程管理
|
||||||
Module2500Name=電子內容管理
|
Module2500Name=電子內容管理
|
||||||
|
|||||||
@ -35,7 +35,7 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! isset($argv[1]) || ! $argv[1] || ! in_array($argv[1],array('test','confirm')))
|
if (! isset($argv[1]) || ! $argv[1] || ! in_array($argv[1],array('test','confirm')))
|
||||||
{
|
{
|
||||||
print "Usage: $script_file [test|confirm] [delay]\n";
|
print "Usage: $script_file [test|confirm] [delay]\n";
|
||||||
print "\n";
|
print "\n";
|
||||||
@ -51,6 +51,7 @@ require($path."../../htdocs/master.inc.php");
|
|||||||
require_once (DOL_DOCUMENT_ROOT."/core/class/CMailFile.class.php");
|
require_once (DOL_DOCUMENT_ROOT."/core/class/CMailFile.class.php");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Main
|
* Main
|
||||||
*/
|
*/
|
||||||
@ -84,7 +85,7 @@ if ($resql)
|
|||||||
print "We found ".$num." couples (unpayed validated invoice/sale representative) qualified\n";
|
print "We found ".$num." couples (unpayed validated invoice/sale representative) qualified\n";
|
||||||
dol_syslog("We found ".$num." couples (unpayed validated invoice/sale representative) qualified");
|
dol_syslog("We found ".$num." couples (unpayed validated invoice/sale representative) qualified");
|
||||||
$message='';
|
$message='';
|
||||||
|
|
||||||
if ($num)
|
if ($num)
|
||||||
{
|
{
|
||||||
while ($i < $num)
|
while ($i < $num)
|
||||||
@ -141,20 +142,23 @@ else
|
|||||||
/**
|
/**
|
||||||
* Send email
|
* Send email
|
||||||
*
|
*
|
||||||
* @param string $oldemail Old email
|
* @param string $mode Mode (test | confirm)
|
||||||
|
* @param string $oldemail Old email
|
||||||
* @param string $message Message to send
|
* @param string $message Message to send
|
||||||
* @param string $total Total amount of unpayed invoices
|
* @param string $total Total amount of unpayed invoices
|
||||||
|
* @param string $userlang Code lang to use for email output.
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function envoi_mail($mode,$oldemail,$message,$total,$userlang)
|
function envoi_mail($mode,$oldemail,$message,$total,$userlang)
|
||||||
{
|
{
|
||||||
global $conf,$langs;
|
global $conf,$langs;
|
||||||
global $db;
|
|
||||||
|
|
||||||
$newlangs=new Translate($db,$conf);
|
$newlangs=new Translate('',$conf);
|
||||||
$newlangs->setDefaultLang($userlang);
|
$newlangs->setDefaultLang($userlang);
|
||||||
|
$newlangs->load("main");
|
||||||
$subject = "[".($conf->global->MAIN_APPLICATION_TITLE)."] ".$newlangs->trans("ListOfYourUnpaidInvoices");
|
$newlangs->load("bills");
|
||||||
|
|
||||||
|
$subject = "[".(empty($conf->global->MAIN_APPLICATION_TITLE)?'Dolibarr':$conf->global->MAIN_APPLICATION_TITLE)."] ".$newlangs->trans("ListOfYourUnpaidInvoices");
|
||||||
$sendto = $oldemail;
|
$sendto = $oldemail;
|
||||||
$from = $conf->global->MAIN_EMAIL_FROM;
|
$from = $conf->global->MAIN_EMAIL_FROM;
|
||||||
$errorsto = $conf->global->MAIN_MAIL_ERRORS_TO;
|
$errorsto = $conf->global->MAIN_MAIL_ERRORS_TO;
|
||||||
@ -163,12 +167,28 @@ function envoi_mail($mode,$oldemail,$message,$total,$userlang)
|
|||||||
print "Send email for ".$oldemail.", total: ".$total."\n";
|
print "Send email for ".$oldemail.", total: ".$total."\n";
|
||||||
dol_syslog("email_unpaid_invoices_to_representatives.php: send mail to ".$oldemail);
|
dol_syslog("email_unpaid_invoices_to_representatives.php: send mail to ".$oldemail);
|
||||||
|
|
||||||
$allmessage = "List of unpaid invoices\n";
|
$usehtml=0;
|
||||||
$allmessage.= "This list contains only invoices for third parties you are linked to as a sales representative.\n";
|
if (dol_textishtml($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_FOOTER)) $usehtml+=1;
|
||||||
$allmessage.= "\n";
|
if (dol_textishtml($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_HEADER)) $usehtml+=1;
|
||||||
$allmessage.= $message;
|
|
||||||
$allmessage.= "\n";
|
$allmessage='';
|
||||||
$allmessage.= $langs->trans("Total")." = ".price($total)."\n";
|
if (! empty($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_HEADER))
|
||||||
|
{
|
||||||
|
$allmessage.=$conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_HEADER;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$allmessage.= "List of unpaid invoices\n\n";
|
||||||
|
$allmessage.= "This list contains only invoices for third parties you are linked to as a sales representative.\n";
|
||||||
|
$allmessage.= "\n";
|
||||||
|
}
|
||||||
|
$allmessage.= $message.($usehtml?"<br>\n":"\n");
|
||||||
|
$allmessage.= $langs->trans("Total")." = ".price($total).($usehtml?"<br>\n":"\n");
|
||||||
|
if (! empty($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_FOOTER))
|
||||||
|
{
|
||||||
|
$allmessage.=$conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_FOOTER;
|
||||||
|
if (dol_textishtml($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_FOOTER)) $usehtml+=1;
|
||||||
|
}
|
||||||
|
|
||||||
$mail = new CMailFile(
|
$mail = new CMailFile(
|
||||||
$subject,
|
$subject,
|
||||||
@ -186,12 +206,17 @@ function envoi_mail($mode,$oldemail,$message,$total,$userlang)
|
|||||||
|
|
||||||
$mail->errors_to = $errorsto;
|
$mail->errors_to = $errorsto;
|
||||||
|
|
||||||
|
// Send or not email
|
||||||
if ($mode == 'confirm')
|
if ($mode == 'confirm')
|
||||||
{
|
{
|
||||||
$result=$mail->sendfile();
|
$result=$mail->sendfile();
|
||||||
}
|
}
|
||||||
else $result=1;
|
else
|
||||||
|
{
|
||||||
|
$mail->dump_mail();
|
||||||
|
$result=1;
|
||||||
|
}
|
||||||
|
|
||||||
if ($result)
|
if ($result)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user