Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop
This commit is contained in:
commit
51ce4804dd
@ -121,6 +121,7 @@ NEW: When emailing is not sent completely, show progression.
|
||||
|
||||
For developers:
|
||||
|
||||
NEW: Add a css class style called 'reposition', so when clicking on a link with this class will move scrollbarr to be placed at same page location.
|
||||
NEW: TimeZone can be supplied to mktime
|
||||
NEW: hook in shipment card
|
||||
NEW: Deprecated Societe::set_prospect_level, Societe::set_commnucation_level, Societe::set_OutstandingBill functions
|
||||
|
||||
@ -138,7 +138,7 @@ if ($action == 'display' || $action == 'delete') {
|
||||
if(!empty($obj)){
|
||||
foreach ( $obj as $cpt ) {
|
||||
$var = ! $var;
|
||||
print "<tr $bc[$var]>";
|
||||
print '<tr'. $bc[$var].'>';
|
||||
print '<td>' . length_accountg($cpt->account_number) . '</td>';
|
||||
print '<td>' . $cpt->label . '</td>';
|
||||
print $form->formconfirm($_SERVER["PHP_SELF"]."?account_category=$cat_id&cptid=".$cpt->rowid, $langs->trans("DeleteCptCategory"), $langs->trans("ConfirmDeleteCptCategory"), "delete", '', 0, "action-delete".$j);
|
||||
|
||||
@ -138,7 +138,7 @@ if ($result) {
|
||||
while ( $i < min($num_lines, $limit) ) {
|
||||
$objp = $db->fetch_object($result);
|
||||
$var = ! $var;
|
||||
print "<tr $bc[$var]>";
|
||||
print '<tr'. $bc[$var].'>';
|
||||
|
||||
print '<td align="left">';
|
||||
print $objp->accounting;
|
||||
|
||||
@ -328,10 +328,10 @@ if ($result) {
|
||||
|
||||
$product_static = new Product($db);
|
||||
|
||||
print "<tr $bc[$var]>";
|
||||
print '<tr'. $bc[$var].'>';
|
||||
|
||||
print "</tr>";
|
||||
print "<tr $bc[$var]>";
|
||||
print '<tr'. $bc[$var].'>';
|
||||
// Ref produit as link
|
||||
$product_static->ref = $obj->ref;
|
||||
$product_static->id = $obj->rowid;
|
||||
|
||||
@ -223,7 +223,7 @@ else {
|
||||
if(empty($description)){
|
||||
$link = '<a href="../admin/card.php?action=create&compte=' . length_accountg($line->numero_compte) . '">' . img_edit_add() .'</a>';
|
||||
}
|
||||
print "<tr $bc[$var]>";
|
||||
print '<tr'. $bc[$var].'>';
|
||||
|
||||
print '<td>' . length_accountg($line->numero_compte) . '</td>';
|
||||
print '<td>' . $description . '</td>';
|
||||
|
||||
@ -346,7 +346,7 @@ if ($action == 'create') {
|
||||
|
||||
foreach ( $book->linesmvt as $line ) {
|
||||
$var = ! $var;
|
||||
print "<tr $bc[$var]>";
|
||||
print '<tr'. $bc[$var].'>';
|
||||
|
||||
$total_debit += $line->debit;
|
||||
$total_credit += $line->credit;
|
||||
@ -400,7 +400,7 @@ if ($action == 'create') {
|
||||
|
||||
if ($action == "" || $action == 'add') {
|
||||
$var = ! $var;
|
||||
print "<tr $bc[$var]>";
|
||||
print '<tr'. $bc[$var].'>';
|
||||
print '<td>';
|
||||
print $formventilation->select_account($account_number, 'account_number', 0, array (), 1, 1, '');
|
||||
print '</td>';
|
||||
|
||||
@ -368,7 +368,7 @@ foreach ( $object->lines as $line ) {
|
||||
$total_debit += $line->debit;
|
||||
$total_credit += $line->credit;
|
||||
|
||||
print "<tr $bc[$var]>";
|
||||
print '<tr'. $bc[$var].'>';
|
||||
|
||||
print '<td><a href="./card.php?piece_num=' . $line->piece_num . '">' . $line->piece_num . '</a></td>';
|
||||
print '<td align="center">' . dol_print_date($line->doc_date, 'day') . '</td>';
|
||||
|
||||
@ -269,7 +269,7 @@ $var = True;
|
||||
foreach ( $object->lines as $line ) {
|
||||
$var = ! $var;
|
||||
|
||||
print "<tr $bc[$var]>";
|
||||
print '<tr'. $bc[$var].'>';
|
||||
print '<td>' . $line->piece_num . '</td>' . "\n";
|
||||
print '<td>' . $line->doc_type . '</td>' . "\n";
|
||||
print '<td>' . dol_print_date($line->doc_date) . '</td>';
|
||||
|
||||
@ -288,7 +288,7 @@ if ($result) {
|
||||
$var = ! $var;
|
||||
$codecompta = length_accountg($objp->account_number) . ' - ' . $objp->label_compte;
|
||||
|
||||
print "<tr $bc[$var]>";
|
||||
print '<tr'. $bc[$var].'>';
|
||||
|
||||
// Ref Invoice
|
||||
$facture_static->ref = $objp->facnumber;
|
||||
|
||||
@ -302,7 +302,7 @@ if ($result) {
|
||||
if ($objp->code_sell_l != $objp->code_sell_p)
|
||||
$code_sell_p_l_differ = 'color:red';
|
||||
|
||||
print "<tr $bc[$var]>";
|
||||
print '<tr'. $bc[$var].'>';
|
||||
|
||||
// Ref Invoice
|
||||
$facture_static->ref = $objp->facnumber;
|
||||
|
||||
@ -127,7 +127,7 @@ if(!empty($cats))
|
||||
$resultN = $AccCat->getResult($cpt['account_number'], 0, $year_current, $cpt['dc']);
|
||||
$sommes[$code]['NP'] += $resultNP;
|
||||
$sommes[$code]['N'] += $resultN;
|
||||
print "<tr $bc[$var]>";
|
||||
print '<tr'. $bc[$var].'>';
|
||||
print '<td>' . $cpt['account_number'] . '</td>';
|
||||
print '<td>' . $cpt['name_cpt'] . '</td>';
|
||||
print '<td>' . price($resultNP) . '</td>';
|
||||
|
||||
@ -236,7 +236,7 @@ if ($result) {
|
||||
$var = ! $var;
|
||||
$codeCompta = length_accountg($objp->account_number) . ' - ' . $objp->label;
|
||||
|
||||
print "<tr $bc[$var]>";
|
||||
print '<tr'. $bc[$var].'>';
|
||||
|
||||
// Ref Invoice
|
||||
$facturefournisseur_static->ref = $objp->facnumber;
|
||||
|
||||
@ -314,7 +314,7 @@ if ($result) {
|
||||
if ($objp->code_buy_l != $objp->code_buy_p)
|
||||
$code_buy_p_l_differ = 'color:red';
|
||||
|
||||
print "<tr $bc[$var]>";
|
||||
print '<tr'. $bc[$var].'>';
|
||||
|
||||
// Ref Invoice
|
||||
$facturefourn_static->ref = $objp->ref;
|
||||
|
||||
@ -200,7 +200,7 @@ if (! empty($conf->paybox->enabled) || ! empty($conf->paypal->enabled))
|
||||
print '<tr '.$bc[$var].' id="tremail"><td>';
|
||||
print $langs->trans("MEMBER_PAYONLINE_SENDEMAIL");
|
||||
print '</td><td align="right">';
|
||||
print '<input type="text" id="MEMBER_PAYONLINE_SENDEMAIL" name="MEMBER_PAYONLINE_SENDEMAIL" size="24" value="'.(! empty($conf->global->MEMBER_PAYONLINE_SENDEMAIL)?$conf->global->MEMBER_PAYONLINE_SENDEMAIL:'').'">';
|
||||
print '<input type="text" id="MEMBER_PAYONLINE_SENDEMAIL" name="MEMBER_PAYONLINE_SENDEMAIL" size="24" value="'.(! empty($conf->global->MEMBER_PAYONLINE_SENDEMAIL)?$conf->global->MEMBER_PAYONLINE_SENDEMAIL:'').'">';
|
||||
print "</td></tr>\n";
|
||||
}
|
||||
|
||||
|
||||
@ -253,7 +253,8 @@ if (empty($reshook))
|
||||
}
|
||||
$lastname=$_POST["lastname"];
|
||||
$firstname=$_POST["firstname"];
|
||||
$morphy=$morphy=$_POST["morphy"];
|
||||
$morphy=$_POST["morphy"];
|
||||
$login=$_POST["login"];
|
||||
if ($morphy != 'mor' && empty($lastname)) {
|
||||
$error++;
|
||||
$langs->load("errors");
|
||||
@ -264,7 +265,19 @@ if (empty($reshook))
|
||||
$langs->load("errors");
|
||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Firstname")), null, 'errors');
|
||||
}
|
||||
|
||||
if ($morphy == 'mor' && empty($societe)) {
|
||||
$error++;
|
||||
$langs->load("errors");
|
||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Company")), null, 'errors');
|
||||
}
|
||||
// Test si le login existe deja
|
||||
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
|
||||
{
|
||||
if (empty($login)) {
|
||||
$error++;
|
||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->trans("Login")), null, 'errors');
|
||||
}
|
||||
}
|
||||
// Create new object
|
||||
if ($result > 0 && ! $error)
|
||||
{
|
||||
@ -506,6 +519,11 @@ if (empty($reshook))
|
||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Password")), null, 'errors');
|
||||
}
|
||||
}
|
||||
if ($morphy == 'mor' && empty($societe)) {
|
||||
$error++;
|
||||
$langs->load("errors");
|
||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Company")), null, 'errors');
|
||||
}
|
||||
if ($morphy != 'mor' && empty($lastname)) {
|
||||
$error++;
|
||||
$langs->load("errors");
|
||||
|
||||
@ -272,7 +272,7 @@ if ($action == 'create')
|
||||
</script>';
|
||||
|
||||
print load_fiche_titre($langs->trans("NewMenu"),'','title_setup');
|
||||
|
||||
|
||||
print '<form action="./edit.php?action=add&menuId='.$_GET['menuId'].'" method="post" name="formmenucreate">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
|
||||
@ -284,7 +284,7 @@ if ($action == 'create')
|
||||
$parent_rowid = $_GET['menuId'];
|
||||
if ($_GET['menuId'])
|
||||
{
|
||||
$sql = "SELECT m.rowid, m.mainmenu, m.level, m.langs FROM ".MAIN_DB_PREFIX."menu as m WHERE m.rowid = ".$_GET['menuId'];
|
||||
$sql = "SELECT m.rowid, m.mainmenu, m.leftmenu, m.level, m.langs FROM ".MAIN_DB_PREFIX."menu as m WHERE m.rowid = ".$_GET['menuId'];
|
||||
$res = $db->query($sql);
|
||||
if ($res)
|
||||
{
|
||||
@ -293,6 +293,7 @@ if ($action == 'create')
|
||||
{
|
||||
$parent_rowid = $menu['rowid'];
|
||||
$parent_mainmenu = $menu['mainmenu'];
|
||||
$parent_leftmenu = $menu['leftmenu'];
|
||||
$parent_langs = $menu['langs'];
|
||||
$parent_level = $menu['level'];
|
||||
}
|
||||
@ -343,7 +344,9 @@ if ($action == 'create')
|
||||
{
|
||||
print '<td><input type="text" size="20" id="menuId" name="menuId" value="'.($_POST["menuId"]?$_POST["menuId"]:'').'"></td>';
|
||||
}
|
||||
print '<td>'.$langs->trans('DetailMenuIdParent').'</td></tr>';
|
||||
print '<td>'.$langs->trans('DetailMenuIdParent');
|
||||
print ', '.$langs->trans("Example").': fk_mainmenu=abc&fk_leftmenu=def';
|
||||
print '</td></tr>';
|
||||
|
||||
// Title
|
||||
print '<tr><td class="fieldrequired">'.$langs->trans('Title').'</td><td><input type="text" size="30" name="titre" value="'.$_POST["titre"].'"></td><td>'.$langs->trans('DetailTitre').'</td></tr>';
|
||||
@ -423,9 +426,10 @@ elseif ($action == 'edit')
|
||||
|
||||
// MenuId Parent
|
||||
print '<tr><td class="fieldrequired">'.$langs->trans('MenuIdParent').'</td>';
|
||||
print '<td><input type="text" name="fk_menu" value="'.$menu->fk_menu.'" size=10></td>';
|
||||
//$menu_handler
|
||||
//print '<td><input type="text" size="50" name="handler" value="all"></td>';
|
||||
$valtouse=$menu->fk_menu;
|
||||
if ($menu->fk_mainmenu) $valtouse='fk_mainmenu='.$menu->fk_mainmenu;
|
||||
if ($menu->fk_leftmenu) $valtouse.='&fk_leftmenu='.$menu->fk_leftmenu;
|
||||
print '<td><input type="text" name="fk_menu" value="'.$valtouse.'" size="10"></td>';
|
||||
print '<td>'.$langs->trans('DetailMenuIdParent').'</td></tr>';
|
||||
|
||||
// Niveau
|
||||
|
||||
@ -289,17 +289,18 @@ if ($conf->use_javascript_ajax)
|
||||
- la chaine a afficher
|
||||
ie: data[]= array (index, index parent, chaine )
|
||||
*/
|
||||
|
||||
//il faut d'abord declarer un element racine de l'arbre
|
||||
|
||||
$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'=>'');
|
||||
|
||||
//puis tous les elements enfants
|
||||
|
||||
$sql = "SELECT m.rowid, m.titre, m.langs, m.mainmenu, m.leftmenu, m.fk_menu, m.fk_mainmenu, m.fk_leftmenu";
|
||||
$sql = "SELECT m.rowid, m.titre, m.langs, m.mainmenu, m.leftmenu, m.fk_menu, m.fk_mainmenu, m.fk_leftmenu, m.module";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."menu as m";
|
||||
$sql.= " WHERE menu_handler = '".$menu_handler_to_search."'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
$sql.= " AND fk_menu >= 0";
|
||||
//$sql.= " AND fk_menu >= 0";
|
||||
$sql.= " ORDER BY m.position, m.rowid"; // Order is position then rowid (because we need a sort criteria when position is same)
|
||||
|
||||
$res = $db->query($sql);
|
||||
@ -314,9 +315,10 @@ if ($conf->use_javascript_ajax)
|
||||
$titre = $langs->trans($menu['titre']);
|
||||
$data[] = array(
|
||||
'rowid'=>$menu['rowid'],
|
||||
'module'=>$menu['module'],
|
||||
'fk_menu'=>$menu['fk_menu'],
|
||||
'title'=>$titre,
|
||||
'mainmenu'=>$menu['mainmenu'],
|
||||
'mainmenu'=>$menu['mainmenu'],
|
||||
'leftmenu'=>$menu['leftmenu'],
|
||||
'fk_mainmenu'=>$menu['fk_mainmenu'],
|
||||
'fk_leftmenu'=>$menu['fk_leftmenu'],
|
||||
@ -334,17 +336,54 @@ if ($conf->use_javascript_ajax)
|
||||
}
|
||||
}
|
||||
|
||||
global $tree_recur_alreadyadded; // This var was def into tree_recur
|
||||
|
||||
// Appelle de la fonction recursive (ammorce)
|
||||
// avec recherche depuis la racine.
|
||||
//var_dump($data);
|
||||
tree_recur($data,$data[0],0);
|
||||
tree_recur($data, $data[0], 0, 'iddivjstree'); // $data[0] is virtual record 'racine'
|
||||
|
||||
|
||||
print '</td>';
|
||||
|
||||
|
||||
print '</tr>';
|
||||
|
||||
|
||||
print '</table>';
|
||||
|
||||
|
||||
|
||||
// Process remaining records (records that are not linked to root by any path)
|
||||
$remainingdata = array();
|
||||
foreach($data as $datar)
|
||||
{
|
||||
if (empty($datar['rowid']) || $tree_recur_alreadyadded[$datar['rowid']]) continue;
|
||||
$remainingdata[] = $datar;
|
||||
}
|
||||
|
||||
if (count($remainingdata))
|
||||
{
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>'.$langs->trans("NotTopTreeMenuPersonalized").'</td>';
|
||||
print '<td align="right"></td>';
|
||||
print '</tr>';
|
||||
|
||||
print '<tr>';
|
||||
print '<td colspan="2">';
|
||||
|
||||
foreach($remainingdata as $datar)
|
||||
{
|
||||
$father = array('rowid'=>$datar['rowid'],'title'=>"???",'mainmenu'=>$datar['fk_mainmenu'],'leftmenu'=>$datar['fk_leftmenu'],'fk_mainmenu'=>'','fk_leftmenu'=>'');
|
||||
//print 'Start with rowid='.$datar['rowid'].' mainmenu='.$father ['mainmenu'].' leftmenu='.$father ['leftmenu'].'<br>'."\n";
|
||||
tree_recur($data, $father, 0, 'iddivjstree'.$datar['rowid'], 1, 1);
|
||||
}
|
||||
|
||||
print '</td>';
|
||||
|
||||
print '</tr>';
|
||||
|
||||
print '</table>';
|
||||
}
|
||||
|
||||
print '</div>';
|
||||
|
||||
|
||||
@ -77,20 +77,20 @@ if (preg_match('/del_(.*)/',$action,$reg))
|
||||
|
||||
if ($action == 'add_currency')
|
||||
{
|
||||
$code = GETPOST('code', 'alpha');
|
||||
$name = GETPOST('name', 'alpha');
|
||||
$rate = GETPOST('rate', 'alpha');
|
||||
$langs->loadCacheCurrencies('');
|
||||
|
||||
$code = GETPOST('code', 'alpha');
|
||||
$rate = GETPOST('rate', 'alpha');
|
||||
$currency = new MultiCurrency($db);
|
||||
$currency->code = $code;
|
||||
$currency->name = $name;
|
||||
$currency->name = !empty($langs->cache_currencies[$code]['label']) ? $langs->cache_currencies[$code]['label'].' ('.$langs->getCurrencySymbol($code).')' : $code;
|
||||
|
||||
if ($currency->create($user) > 0)
|
||||
{
|
||||
if ($currency->addRate($rate)) setEventMessages($langs->trans('RecordSaved'), array());
|
||||
else setEventMessages($langs->trans('ErrorAddRateFail'), array(), 'errors');
|
||||
}
|
||||
else setEventMessages($langs->trans('ErrorAddCurrencyFail'), array());
|
||||
else setEventMessages($langs->trans('ErrorAddCurrencyFail'), $currency->errors, 'errors');
|
||||
}
|
||||
elseif ($action == 'update_currency')
|
||||
{
|
||||
@ -182,6 +182,7 @@ print '<td>'.$langs->trans("Parameters").'</td>'."\n";
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="center" width="100">'.$langs->trans("Value").'</td>'."\n";
|
||||
|
||||
/* TODO uncomment when the functionality will integrated
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td>'.$langs->transnoentitiesnoconv("multicurrency_useRateOnInvoiceDate").'</td>';
|
||||
@ -194,6 +195,7 @@ print $form->selectyesno("MULTICURRENCY_USE_RATE_ON_INVOICE_DATE",$conf->global-
|
||||
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
||||
print '</form>';
|
||||
print '</td></tr>';
|
||||
*/
|
||||
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
@ -208,6 +210,7 @@ print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">'
|
||||
print '</form>';
|
||||
print '</td></tr>';
|
||||
|
||||
/* TODO uncomment when the functionality will integrated
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td>'.$langs->transnoentitiesnoconv("multicurrency_buyPriceInCurrency").'</td>';
|
||||
@ -220,7 +223,9 @@ print $form->selectyesno("MULTICURRENCY_BUY_PRICE_IN_CURRENCY",$conf->global->MU
|
||||
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
||||
print '</form>';
|
||||
print '</td></tr>';
|
||||
*/
|
||||
|
||||
/* TODO uncomment when the functionality will integrated
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td>'.$langs->transnoentitiesnoconv("multicurrency_modifyRateApplication").'</td>';
|
||||
@ -234,71 +239,75 @@ print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">'
|
||||
print '</form>';
|
||||
print '</td></tr>';
|
||||
|
||||
print '</table>';
|
||||
print '<br />';
|
||||
|
||||
$var=false;
|
||||
print '<table class="noborder" width="100%">';
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>'.$langs->trans("CurrencyLayerAccount").'</td>'."\n";
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="right" width="100">';
|
||||
print '<form id="form_sync" action="" method="POST">';
|
||||
print '<input type="hidden" name="action" value="synchronize" />';
|
||||
print '<textarea id="response" class="hideobject" name="response"></textarea>';
|
||||
print $langs->trans("Value").' <input type="button" id="bt_sync" class="button" onclick="javascript:getRates();" value="'.$langs->trans('Synchronize').'" />';
|
||||
print '</form>';
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td><a target="_blank" href="https://currencylayer.com">'.$langs->transnoentitiesnoconv("multicurrency_appId").'</a></td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="right" width="400">';
|
||||
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<input type="hidden" name="action" value="set_MULTICURRENCY_APP_ID">';
|
||||
print '<input type="text" name="MULTICURRENCY_APP_ID" value="'.$conf->global->MULTICURRENCY_APP_ID.'" size="28" /> ';
|
||||
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
||||
print '</form>';
|
||||
print '</td></tr>';
|
||||
|
||||
/* This property seems not used in code, so i comment it
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td>'.$langs->transnoentitiesnoconv("multicurrency_appCurrencySource").'</td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="right" width="400">';
|
||||
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<input type="hidden" name="action" value="set_MULTICURRENCY_APP_SOURCE">';
|
||||
print '<input type="text" name="MULTICURRENCY_APP_SOURCE" value="'.$conf->global->MULTICURRENCY_APP_SOURCE.'" size="10" placeholder="USD" /> '; // Default: USD
|
||||
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
||||
print '</form>';
|
||||
print '</td></tr>';
|
||||
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td>'.$langs->transnoentitiesnoconv("multicurrency_alternateCurrencySource").'</td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="right" width="400">';
|
||||
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<input type="hidden" name="action" value="set_MULTICURRENCY_ALTERNATE_SOURCE">';
|
||||
print '<input type="text" name="MULTICURRENCY_ALTERNATE_SOURCE" value="'.$conf->global->MULTICURRENCY_ALTERNATE_SOURCE.'" size="10" placeholder="EUR" /> '; // Example: EUR
|
||||
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
||||
print '</form>';
|
||||
print '</td></tr>';
|
||||
*/
|
||||
|
||||
print '</table>';
|
||||
print '<br />';
|
||||
|
||||
if (!empty($conf->global->MAIN_MULTICURRENCY_ALLOW_SYNCHRONIZATION))
|
||||
{
|
||||
$var=false;
|
||||
print '<table class="noborder" width="100%">';
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>'.$form->textwithpicto($langs->trans("CurrencyLayerAccount"), $langs->trans("CurrencyLayerAccount_help_to_synchronize")).'</td>'."\n";
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="right" width="100">';
|
||||
print '<form id="form_sync" action="" method="POST">';
|
||||
print '<input type="hidden" name="action" value="synchronize" />';
|
||||
print '<textarea id="response" class="hideobject" name="response"></textarea>';
|
||||
print $langs->trans("Value").' <input type="button" id="bt_sync" class="button" onclick="javascript:getRates();" value="'.$langs->trans('Synchronize').'" />';
|
||||
print '</form>';
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td><a target="_blank" href="https://currencylayer.com">'.$langs->transnoentitiesnoconv("multicurrency_appId").'</a></td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="right" width="400">';
|
||||
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<input type="hidden" name="action" value="set_MULTICURRENCY_APP_ID">';
|
||||
print '<input type="text" name="MULTICURRENCY_APP_ID" value="'.$conf->global->MULTICURRENCY_APP_ID.'" size="28" /> ';
|
||||
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
||||
print '</form>';
|
||||
print '</td></tr>';
|
||||
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td>'.$langs->transnoentitiesnoconv("multicurrency_appCurrencySource").'</td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="right" width="400">';
|
||||
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<input type="hidden" name="action" value="set_MULTICURRENCY_APP_SOURCE">';
|
||||
print '<input type="text" name="MULTICURRENCY_APP_SOURCE" value="'.$conf->global->MULTICURRENCY_APP_SOURCE.'" size="10" placeholder="USD" /> '; // Default: USD
|
||||
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
||||
print '</form>';
|
||||
print '</td></tr>';
|
||||
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td>'.$langs->transnoentitiesnoconv("multicurrency_alternateCurrencySource").'</td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="right" width="400">';
|
||||
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<input type="hidden" name="action" value="set_MULTICURRENCY_ALTERNATE_SOURCE">';
|
||||
print '<input type="text" name="MULTICURRENCY_ALTERNATE_SOURCE" value="'.$conf->global->MULTICURRENCY_ALTERNATE_SOURCE.'" size="10" placeholder="EUR" /> '; // Example: EUR
|
||||
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
||||
print '</form>';
|
||||
print '</td></tr>';
|
||||
|
||||
print '</table>';
|
||||
print '<br />';
|
||||
}
|
||||
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>'.$langs->trans("Currencies").'</td>'."\n";
|
||||
print '<td>'.$form->textwithpicto($langs->trans("CurrenciesUsed"), $langs->transnoentitiesnoconv("CurrenciesUsed_help_to_add")).'</td>'."\n";
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="center" width="100">'.$langs->trans("Rate").'</td>'."\n";
|
||||
|
||||
@ -307,7 +316,7 @@ print '<tr '.$bc[$var].'>';
|
||||
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<input type="hidden" name="action" value="add_currency">';
|
||||
print '<td><input type="text" name="code" value="" size="5" placeholder="'.$langs->trans('code').'" /> - <input type="text" name="name" value="" size="35" placeholder="'.$langs->trans('name').'" /></td>';
|
||||
print '<td>'.$form->selectCurrency('', 'code').'</td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="right" width="300">';
|
||||
print '<input type="text" name="rate" value="" size="13" placeholder="'.$langs->trans('rate').'" /> ';
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013-2016 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2015 Frederic France <frederic.france@free.fr>
|
||||
* Copyright (C) 2016 Juanjo Menent <jmenent@2byte.es>
|
||||
*
|
||||
* 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
|
||||
@ -377,7 +378,8 @@ if ($mode == 'template' && $user->admin)
|
||||
if ($ret > 0) {
|
||||
setEventMessages($printer->error, $printer->errors, 'errors');
|
||||
} else {
|
||||
for ($line=0; $line < count($printer->listprinterstemplates); $line++) {
|
||||
$max = count($printer->listprinterstemplates);
|
||||
for ($line=0; $line < $max; $line++) {
|
||||
$var = !$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
if ($action=='edittemplate' && $printer->listprinterstemplates[$line]['rowid']==$templateid) {
|
||||
@ -422,7 +424,8 @@ if ($mode == 'template' && $user->admin)
|
||||
print '<th>'.$langs->trans("Tag").'</th>';
|
||||
print '<th>'.$langs->trans("Description").'</th>';
|
||||
print "</tr>\n";
|
||||
for ($tag=0; $tag < count($printer->tags); $tag++) {
|
||||
$max = count($printer->tags);
|
||||
for ($tag=0; $tag < $max; $tag++) {
|
||||
$var = !$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td><'.$printer->tags[$tag].'></td><td>'.$langs->trans(strtoupper($printer->tags[$tag])).'</td>';
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2003 Eric Seigne <erics@rycks.com>
|
||||
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2004-2016 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -199,7 +199,7 @@ if ($status == 'todo') { $sql.= " AND ((a.percent >= 0 AND a.percent < 100) OR (
|
||||
if ($filtert > 0 || $usergroup > 0)
|
||||
{
|
||||
$sql.= " AND (";
|
||||
if ($filtert > 0) $sql.= "(ar.fk_element = ".$filtert." OR a.fk_user_action=".$filtert.")";
|
||||
if ($filtert > 0) $sql.= "(ar.fk_element = ".$filtert." OR (ar.fk_element IS NULL AND a.fk_user_action=".$filtert."))"; // The OR is for backward compatibility
|
||||
if ($usergroup > 0) $sql.= ($filtert>0?" OR ":"")." ugu.fk_usergroup = ".$usergroup;
|
||||
$sql.= ")";
|
||||
}
|
||||
@ -368,7 +368,7 @@ if ($resql)
|
||||
$actionstatic->type_code=$obj->type_code;
|
||||
$actionstatic->type_label=$obj->type_label;
|
||||
$actionstatic->label=$obj->label;
|
||||
print $actionstatic->getNomUrl(1,28);
|
||||
print $actionstatic->getNomUrl(1,36);
|
||||
print '</td>';
|
||||
|
||||
if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
|
||||
|
||||
@ -1433,7 +1433,7 @@ if ($action == 'create')
|
||||
print '<td>'.fieldLabel('Currency','multicurrency_code').'</td>';
|
||||
print '<td colspan="3" class="maxwidthonsmartphone">';
|
||||
$currency_code = (!empty($soc->multicurrency_code) ? $soc->multicurrency_code : ($object->multicurrency_code ? $object->multicurrency_code : $conf->currency));
|
||||
print $form->selectMultiCurrency($currency_code, 'multicurrency_code', 1);
|
||||
print $form->selectMultiCurrency($currency_code, 'multicurrency_code', 0);
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
|
||||
@ -2570,7 +2570,7 @@ class Propal extends CommonObject
|
||||
$response = new WorkboardResponse();
|
||||
$response->warning_delay = $delay_warning/60/60/24;
|
||||
$response->label = $label;
|
||||
$response->url = DOL_URL_ROOT.'/comm/propal/list.php?viewstatut='.$statut;
|
||||
$response->url = DOL_URL_ROOT.'/comm/propal/list.php?viewstatut='.$statut.'&mainmenu=commercial&leftmenu=propals';
|
||||
$response->img = img_object($langs->trans("Propals"),"propal");
|
||||
|
||||
// This assignment in condition is not a bug. It allows walking the results.
|
||||
@ -2674,9 +2674,12 @@ class Propal extends CommonObject
|
||||
$line->remise_percent=00;
|
||||
}
|
||||
|
||||
$prodid = mt_rand(1, $num_prods);
|
||||
$line->fk_product=$prodids[$prodid];
|
||||
|
||||
if ($num_prods > 0)
|
||||
{
|
||||
$prodid = mt_rand(1, $num_prods);
|
||||
$line->fk_product=$prodids[$prodid];
|
||||
}
|
||||
|
||||
$this->lines[$xnbp]=$line;
|
||||
|
||||
$this->total_ht += $line->total_ht;
|
||||
|
||||
@ -2974,7 +2974,7 @@ class Commande extends CommonOrder
|
||||
$response = new WorkboardResponse();
|
||||
$response->warning_delay=$conf->commande->client->warning_delay/60/60/24;
|
||||
$response->label=$langs->trans("OrdersToProcess");
|
||||
$response->url=DOL_URL_ROOT.'/commande/list.php?viewstatut=-3';
|
||||
$response->url=DOL_URL_ROOT.'/commande/list.php?viewstatut=-3&mainmenu=commercial&leftmenu=orders';
|
||||
$response->img=img_object($langs->trans("Orders"),"order");
|
||||
|
||||
$generic_commande = new Commande($this->db);
|
||||
@ -3278,9 +3278,12 @@ class Commande extends CommonOrder
|
||||
$line->total_tva=19.6;
|
||||
$line->remise_percent=0;
|
||||
}
|
||||
$prodid = mt_rand(1, $num_prods);
|
||||
$line->fk_product=$prodids[$prodid];
|
||||
|
||||
if ($num_prods > 0)
|
||||
{
|
||||
$prodid = mt_rand(1, $num_prods);
|
||||
$line->fk_product=$prodids[$prodid];
|
||||
}
|
||||
|
||||
$this->lines[$xnbp]=$line;
|
||||
|
||||
$this->total_ht += $line->total_ht;
|
||||
|
||||
@ -206,7 +206,7 @@ class CommandeStats extends Stats
|
||||
|
||||
$sql = "SELECT product.ref, COUNT(product.ref) as nb, SUM(tl.".$this->field_line.") as total, AVG(tl.".$this->field_line.") as avg";
|
||||
$sql.= " FROM ".$this->from.", ".$this->from_line.", ".MAIN_DB_PREFIX."product as product";
|
||||
//if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
||||
if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
||||
$sql.= " WHERE ".$this->where;
|
||||
$sql.= " AND c.rowid = tl.fk_commande AND tl.fk_product = product.rowid";
|
||||
$sql.= " AND c.date_commande BETWEEN '".$this->db->idate(dol_get_first_day($year,1,false))."' AND '".$this->db->idate(dol_get_last_day($year,12,false))."'";
|
||||
|
||||
@ -46,7 +46,16 @@ foreach($linkedObjectBlock as $key => $objectlink)
|
||||
echo price($objectlink->total_ht);
|
||||
} ?></td>
|
||||
<td align="right"><?php echo $objectlink->getLibStatut(3); ?></td>
|
||||
<td align="right"><a href="<?php echo $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=dellink&dellinkid='.$key; ?>"><?php echo img_delete($langs->transnoentitiesnoconv("RemoveLink")); ?></a></td>
|
||||
<td align="right">
|
||||
<?php
|
||||
// For now, shipments must stay linked to order, so link is not deletable
|
||||
if($object->element != 'shipping') {
|
||||
?>
|
||||
<a href="<?php echo $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=dellink&dellinkid='.$key; ?>"><?php echo img_delete($langs->transnoentitiesnoconv("RemoveLink")); ?></a>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
|
||||
@ -863,7 +863,7 @@ if (empty($reshook))
|
||||
}
|
||||
}
|
||||
|
||||
// Standard invoice or Deposit invoice created from a Predefined invoice
|
||||
// Standard invoice or Deposit invoice created from a Predefined template invoice
|
||||
if (($_POST['type'] == Facture::TYPE_STANDARD || $_POST['type'] == Facture::TYPE_DEPOSIT) && GETPOST('fac_rec') > 0)
|
||||
{
|
||||
$dateinvoice = dol_mktime(12, 0, 0, $_POST['remonth'], $_POST['reday'], $_POST['reyear']);
|
||||
@ -2036,7 +2036,7 @@ if ($action == 'create')
|
||||
if (!empty($conf->multicurrency->enabled) && !empty($soc->multicurrency_code)) $currency_code = $soc->multicurrency_code;
|
||||
}
|
||||
|
||||
$absolute_discount = $soc->getAvailableDiscounts();
|
||||
if(!empty($soc->id)) $absolute_discount = $soc->getAvailableDiscounts();
|
||||
|
||||
if (! empty($conf->use_javascript_ajax))
|
||||
{
|
||||
|
||||
@ -666,7 +666,7 @@ class FactureRec extends CommonInvoice
|
||||
$facture->fac_rec = $facturerec->id; // We will create $facture from this recurring invoice
|
||||
$facture->type = self::TYPE_STANDARD;
|
||||
$facture->brouillon = 1;
|
||||
$facture->date = $now;
|
||||
$facture->date = $facturerec->date_when; // We could also use dol_now here but we prefer date_when so invoice has real date when we would like even if we generate later.
|
||||
$facture->socid = $facturerec->socid;
|
||||
|
||||
$invoiceidgenerated = $facture->create($user); // This will also update fields of recurring invoice
|
||||
@ -962,6 +962,7 @@ class FactureRec extends CommonInvoice
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
$this->date_when = $date;
|
||||
if ($increment_nb_gen_done>0) $_facrec->nb_gen_done++;
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
|
||||
@ -309,13 +309,12 @@ class Facture extends CommonInvoice
|
||||
|
||||
$forceduedate = $this->calculate_date_lim_reglement();
|
||||
|
||||
// Update date and number of last generation of recurring template invoice, before inserting new invoice
|
||||
// For recurrn invoices, update date and number of last generation of recurring template invoice, before inserting new invoice
|
||||
if ($_facrec->frequency > 0)
|
||||
{
|
||||
$_facrec->nb_gen_done++;
|
||||
$next_date = $_facrec->getNextDate(); // Calculate next date
|
||||
$_facrec->setValueFrom('date_last_gen', $now, '', null, 'date');
|
||||
$_facrec->setValueFrom('nb_gen_done', $_facrec->nb_gen_done + 1);
|
||||
//$_facrec->setValueFrom('nb_gen_done', $_facrec->nb_gen_done + 1); // Not required, +1 already included into setNextDate when second param is 1.
|
||||
$_facrec->setNextDate($next_date,1);
|
||||
}
|
||||
}
|
||||
@ -3465,7 +3464,7 @@ class Facture extends CommonInvoice
|
||||
$response = new WorkboardResponse();
|
||||
$response->warning_delay=$conf->facture->client->warning_delay/60/60/24;
|
||||
$response->label=$langs->trans("CustomerBillsUnpaid");
|
||||
$response->url=DOL_URL_ROOT.'/compta/facture/list.php?search_status=1';
|
||||
$response->url=DOL_URL_ROOT.'/compta/facture/list.php?search_status=1&mainmenu=accountancy&leftmenu=customers_bills';
|
||||
$response->img=img_object($langs->trans("Bills"),"bill");
|
||||
|
||||
$generic_facture = new Facture($this->db);
|
||||
|
||||
@ -1256,8 +1256,13 @@ else
|
||||
|
||||
print '<br>';
|
||||
|
||||
// Frequencry/Recurring section
|
||||
if ($object->frequency > 0)
|
||||
{
|
||||
if (empty($conf->cron->enabled))
|
||||
{
|
||||
print info_admin($langs->trans("EnableAndSetupModuleCron", $langs->transnoentitiesnoconv("Module2300Name")));
|
||||
}
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
|
||||
@ -182,7 +182,7 @@ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'e
|
||||
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
||||
|
||||
// Do we click on purge search criteria ?
|
||||
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
||||
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter") || GETPOST("button_removefilter.x")) // Both test are required to be compatible with all browsers
|
||||
{
|
||||
$search_user='';
|
||||
$search_sale='';
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2005-2015 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2015 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2015-2016 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
||||
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||
* Copyright (C) 2016 Marcos García <marcosgdf@gmail.com>
|
||||
@ -877,7 +877,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture-
|
||||
if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
|
||||
if ($socid) $sql.= " AND ff.fk_soc = ".$socid;
|
||||
$sql.= " GROUP BY ff.rowid, ff.ref, ff.fk_statut, ff.libelle, ff.total_ht, ff.tva, ff.total_tva, ff.total_ttc, ff.paye,";
|
||||
$sql.= " s.nom, s.rowid, s.code_client, s.code_fournisseur";
|
||||
$sql.= " s.nom, s.rowid, s.code_client, s.code_fournisseur, ff.date_lim_reglement";
|
||||
$sql.= " ORDER BY ff.date_lim_reglement ASC";
|
||||
|
||||
$resql=$db->query($sql);
|
||||
|
||||
@ -2147,8 +2147,11 @@ class Contrat extends CommonObject
|
||||
$line->total_ht=90;
|
||||
$line->total_ttc=107.64; // 90 * 1.196
|
||||
$line->total_tva=17.64;
|
||||
$prodid = mt_rand(1, $num_prods);
|
||||
$line->fk_product=$prodids[$prodid];
|
||||
if ($num_prods > 0)
|
||||
{
|
||||
$prodid = mt_rand(1, $num_prods);
|
||||
$line->fk_product=$prodids[$prodid];
|
||||
}
|
||||
$this->lines[$xnbp]=$line;
|
||||
$xnbp++;
|
||||
}
|
||||
|
||||
@ -256,7 +256,7 @@ if ($resql)
|
||||
print '<input type="text" class="flat" size="3" name="search_contract" value="'.dol_escape_htmltag($search_contract).'">';
|
||||
print '</td>';
|
||||
print '<td class="liste_titre">';
|
||||
print '<input type="text" class="flat" size="6" name="search_ref_customer value="'.dol_escape_htmltag($search_ref_supplier).'">';
|
||||
print '<input type="text" class="flat" size="6" name="search_ref_customer value="'.dol_escape_htmltag($search_ref_customer).'">';
|
||||
print '</td>';
|
||||
print '<td class="liste_titre">';
|
||||
print '<input type="text" class="flat" size="6" name="search_ref_supplier value="'.dol_escape_htmltag($search_ref_supplier).'">';
|
||||
|
||||
@ -240,7 +240,10 @@ if ($section)
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
|
||||
$useglobalvars=1;
|
||||
$form = new Form($db);
|
||||
$formquestion=array('urlfile'=>array('type'=>'hidden','value'=>$urlfile,'name'=>'urlfile'));
|
||||
$formquestion=array(
|
||||
'urlfile'=>array('type'=>'hidden','value'=>$urlfile,'name'=>'urlfile'),
|
||||
'section'=>array('type'=>'hidden','value'=>$section,'name'=>'section')
|
||||
);
|
||||
print $form->formconfirm($url,$langs->trans("DeleteFile"),$langs->trans("ConfirmDeleteFile"),'confirm_deletefile',$formquestion,"no",($useajax?'deletefile':0));
|
||||
}
|
||||
|
||||
|
||||
@ -744,7 +744,8 @@ abstract class CommonObject
|
||||
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."element_contact";
|
||||
$sql.= " WHERE element_id = ".$this->id;
|
||||
$sql.= " AND fk_c_type_contact IN (".$listId.")";
|
||||
if ($listId)
|
||||
$sql.= " AND fk_c_type_contact IN (".$listId.")";
|
||||
|
||||
dol_syslog(get_class($this)."::delete_linked_contact", LOG_DEBUG);
|
||||
if ($this->db->query($sql))
|
||||
|
||||
@ -1133,7 +1133,7 @@ class ExtraFields
|
||||
if ($InfoFieldList[0] && class_exists($InfoFieldList[0]))
|
||||
{
|
||||
$object = new $InfoFieldList[0]($this->db);
|
||||
$object->fetch($value);
|
||||
if (!empty($value)) $object->fetch($value);
|
||||
$valuetoshow=$object->ref;
|
||||
if ($object->element == 'societe') $valuetoshow=$object->name; // Special case for thirdparty because ref is id because name is not unique
|
||||
$out.='<input type="text" class="flat" name="'.$keysuffix.'options_'.$key.$keyprefix.'" size="20" value="'.$valuetoshow.'" >';
|
||||
|
||||
@ -2329,7 +2329,7 @@ class Form
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."product as p";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_fournisseur_price as pfp ON p.rowid = pfp.fk_product";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON pfp.fk_soc = s.rowid";
|
||||
$sql.= " WHERE p.entity IN (".getEntity('product', 1).")";
|
||||
$sql.= " WHERE p.entity IN (".getEntity('productprice', 1).")";
|
||||
$sql.= " AND p.tobuy = 1";
|
||||
$sql.= " AND s.fournisseur = 1";
|
||||
$sql.= " AND p.rowid = ".$productid;
|
||||
@ -3812,7 +3812,7 @@ class Form
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<table class="nobordernopadding" cellpadding="0" cellspacing="0">';
|
||||
print '<tr><td>';
|
||||
print $this->selectMultiCurrency($selected, $htmlname, 1);
|
||||
print $this->selectMultiCurrency($selected, $htmlname, 0);
|
||||
print '</td>';
|
||||
print '<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
|
||||
print '</tr></table></form>';
|
||||
@ -4091,7 +4091,7 @@ class Form
|
||||
|
||||
$out='';
|
||||
$out.= '<select class="flat" name="'.$htmlname.'" id="'.$htmlname.'">';
|
||||
if ($useempty) $out .= '<option value="'.$conf->currency.'"'.((empty($selected) || $selected == $conf->currency)?' selected="selected"':'').'>'.$langs->cache_currencies[$conf->currency]['label'].'</option>';
|
||||
if ($useempty) $out .= '<option value=""></option>';
|
||||
if (count($TCurrency) > 0)
|
||||
{
|
||||
foreach ($langs->cache_currencies as $code_iso => $currency)
|
||||
|
||||
@ -162,68 +162,52 @@ class Ldap
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (! function_exists('ldap_connect'))
|
||||
if (! function_exists("ldap_connect"))
|
||||
{
|
||||
$this->error='Your PHP need extension ldap';
|
||||
$this->error='LDAPFunctionsNotAvailableOnPHP';
|
||||
dol_syslog(get_class($this)."::connect_bind ".$this->error, LOG_WARNING);
|
||||
return -1;
|
||||
$return=-1;
|
||||
}
|
||||
|
||||
// Loop on each ldap server
|
||||
foreach ($this->server as $key => $host)
|
||||
|
||||
if (empty($this->error))
|
||||
{
|
||||
if ($connected) break;
|
||||
if (empty($host)) continue;
|
||||
|
||||
if (preg_match('/^ldap/',$host))
|
||||
// Loop on each ldap server
|
||||
foreach ($this->server as $key => $host)
|
||||
{
|
||||
$this->connection = ldap_connect($host);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->connection = ldap_connect($host,$this->serverPort);
|
||||
}
|
||||
|
||||
if (is_resource($this->connection))
|
||||
{
|
||||
// Begin TLS if requested by the configuration
|
||||
if (! empty($conf->global->LDAP_SERVER_USE_TLS))
|
||||
{
|
||||
if (! ldap_start_tls($this->connection))
|
||||
{
|
||||
dol_syslog(get_class($this)."::connect_bind failed to start tls", LOG_WARNING);
|
||||
$connected = 0;
|
||||
$this->close();
|
||||
}
|
||||
}
|
||||
|
||||
// Execute the ldap_set_option here (after connect and before bind)
|
||||
$this->setVersion();
|
||||
ldap_set_option($this->connection, LDAP_OPT_SIZELIMIT, 0); // no limit here. should return true.
|
||||
|
||||
|
||||
if ($this->serverType == "activedirectory")
|
||||
if ($connected) break;
|
||||
if (empty($host)) continue;
|
||||
|
||||
if (preg_match('/^ldap/',$host))
|
||||
{
|
||||
$result=$this->setReferrals();
|
||||
dol_syslog(get_class($this)."::connect_bind try bindauth for activedirectory on ".$host." user=".$this->searchUser." password=".preg_replace('/./','*',$this->searchPassword),LOG_DEBUG);
|
||||
$this->result=$this->bindauth($this->searchUser,$this->searchPassword);
|
||||
if ($this->result)
|
||||
{
|
||||
$this->bind=$this->result;
|
||||
$connected=2;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=ldap_errno($this->connection).' '.ldap_error($this->connection);
|
||||
}
|
||||
$this->connection = ldap_connect($host);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Try in auth mode
|
||||
if ($this->searchUser && $this->searchPassword)
|
||||
$this->connection = ldap_connect($host,$this->serverPort);
|
||||
}
|
||||
|
||||
if (is_resource($this->connection))
|
||||
{
|
||||
// Begin TLS if requested by the configuration
|
||||
if (! empty($conf->global->LDAP_SERVER_USE_TLS))
|
||||
{
|
||||
if (! ldap_start_tls($this->connection))
|
||||
{
|
||||
dol_syslog(get_class($this)."::connect_bind failed to start tls", LOG_WARNING);
|
||||
$connected = 0;
|
||||
$this->close();
|
||||
}
|
||||
}
|
||||
|
||||
// Execute the ldap_set_option here (after connect and before bind)
|
||||
$this->setVersion();
|
||||
ldap_set_option($this->connection, LDAP_OPT_SIZELIMIT, 0); // no limit here. should return true.
|
||||
|
||||
|
||||
if ($this->serverType == "activedirectory")
|
||||
{
|
||||
dol_syslog(get_class($this)."::connect_bind try bindauth on ".$host." user=".$this->searchUser." password=".preg_replace('/./','*',$this->searchPassword),LOG_DEBUG);
|
||||
$result=$this->setReferrals();
|
||||
dol_syslog(get_class($this)."::connect_bind try bindauth for activedirectory on ".$host." user=".$this->searchUser." password=".preg_replace('/./','*',$this->searchPassword),LOG_DEBUG);
|
||||
$this->result=$this->bindauth($this->searchUser,$this->searchPassword);
|
||||
if ($this->result)
|
||||
{
|
||||
@ -236,26 +220,45 @@ class Ldap
|
||||
$this->error=ldap_errno($this->connection).' '.ldap_error($this->connection);
|
||||
}
|
||||
}
|
||||
// Try in anonymous
|
||||
if (! $this->bind)
|
||||
else
|
||||
{
|
||||
dol_syslog(get_class($this)."::connect_bind try bind on ".$host,LOG_DEBUG);
|
||||
$result=$this->bind();
|
||||
if ($result)
|
||||
// Try in auth mode
|
||||
if ($this->searchUser && $this->searchPassword)
|
||||
{
|
||||
$this->bind=$this->result;
|
||||
$connected=1;
|
||||
break;
|
||||
dol_syslog(get_class($this)."::connect_bind try bindauth on ".$host." user=".$this->searchUser." password=".preg_replace('/./','*',$this->searchPassword),LOG_DEBUG);
|
||||
$this->result=$this->bindauth($this->searchUser,$this->searchPassword);
|
||||
if ($this->result)
|
||||
{
|
||||
$this->bind=$this->result;
|
||||
$connected=2;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=ldap_errno($this->connection).' '.ldap_error($this->connection);
|
||||
}
|
||||
}
|
||||
else
|
||||
// Try in anonymous
|
||||
if (! $this->bind)
|
||||
{
|
||||
$this->error=ldap_errno($this->connection).' '.ldap_error($this->connection);
|
||||
dol_syslog(get_class($this)."::connect_bind try bind on ".$host,LOG_DEBUG);
|
||||
$result=$this->bind();
|
||||
if ($result)
|
||||
{
|
||||
$this->bind=$this->result;
|
||||
$connected=1;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=ldap_errno($this->connection).' '.ldap_error($this->connection);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (! $connected) $this->close();
|
||||
}
|
||||
|
||||
if (! $connected) $this->close();
|
||||
}
|
||||
|
||||
if ($connected)
|
||||
|
||||
@ -264,6 +264,8 @@ class Menubase
|
||||
$sql.= " t.mainmenu,";
|
||||
$sql.= " t.leftmenu,";
|
||||
$sql.= " t.fk_menu,";
|
||||
$sql.= " t.fk_mainmenu,";
|
||||
$sql.= " t.fk_leftmenu,";
|
||||
$sql.= " t.position,";
|
||||
$sql.= " t.url,";
|
||||
$sql.= " t.target,";
|
||||
@ -293,6 +295,8 @@ class Menubase
|
||||
$this->mainmenu = $obj->mainmenu;
|
||||
$this->leftmenu = $obj->leftmenu;
|
||||
$this->fk_menu = $obj->fk_menu;
|
||||
$this->fk_mainmenu = $obj->fk_mainmenu;
|
||||
$this->fk_leftmenu = $obj->fk_leftmenu;
|
||||
$this->position = $obj->position;
|
||||
$this->url = $obj->url;
|
||||
$this->target = $obj->target;
|
||||
|
||||
@ -736,17 +736,24 @@ function activateModule($value,$withdeps=1)
|
||||
if (isset($objMod->depends) && is_array($objMod->depends) && ! empty($objMod->depends))
|
||||
{
|
||||
// Activation des modules dont le module depend
|
||||
$TError=array();
|
||||
$num = count($objMod->depends);
|
||||
for ($i = 0; $i < $num; $i++)
|
||||
{
|
||||
$activate = false;
|
||||
foreach ($modulesdir as $dir)
|
||||
{
|
||||
if (file_exists($dir.$objMod->depends[$i].".class.php"))
|
||||
{
|
||||
activateModule($objMod->depends[$i]);
|
||||
$activate = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$activate) $TError[] = $langs->trans('activateModuleDependNotSatisfied', $objMod->name, $objMod->depends[$i]);
|
||||
}
|
||||
|
||||
setEventMessages('', $TError, 'errors');
|
||||
}
|
||||
|
||||
if (isset($objMod->conflictwith) && is_array($objMod->conflictwith) && ! empty($objMod->conflictwith))
|
||||
|
||||
@ -436,7 +436,7 @@ function dol_size($size,$type='')
|
||||
*/
|
||||
function dol_sanitizeFileName($str,$newstr='_',$unaccent=1)
|
||||
{
|
||||
$filesystem_forbidden_chars = array('<','>',':','/','\\','?','*','|','"');
|
||||
$filesystem_forbidden_chars = array('<','>',':','/','\\','?','*','|','"','°');
|
||||
return dol_string_nospecial($unaccent?dol_string_unaccent($str):$str, $newstr, $filesystem_forbidden_chars);
|
||||
}
|
||||
|
||||
@ -902,8 +902,15 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r
|
||||
if ($showimage) $morehtmlleft.='<div class="floatleft inline-block valignmiddle divphotoref">'.$object->show_photos($conf->product->multidir_output[$object->entity],'small',-$maxvisiblephotos,0,0,0,$width,0).'</div>';
|
||||
else
|
||||
{
|
||||
$nophoto='/public/theme/common/nophoto.png';
|
||||
$morehtmlleft.='<div class="floatleft inline-block valignmiddle divphotoref"><img class="photo'.$modulepart.($cssclass?' '.$cssclass:'').'" alt="No photo" border="0"'.($width?' width="'.$width.'"':'').($height?' height="'.$height.'"':'').' src="'.DOL_URL_ROOT.$nophoto.'"></div>';
|
||||
if (!empty($conf->global->PRODUCT_NODISPLAYIFNOPHOTO)) {
|
||||
$nophoto='';
|
||||
$morehtmlleft.='<div class="floatleft inline-block valignmiddle divphotoref"></div>';
|
||||
}
|
||||
else {
|
||||
$nophoto='/public/theme/common/nophoto.png';
|
||||
$morehtmlleft.='<div class="floatleft inline-block valignmiddle divphotoref"><img class="photo'.$modulepart.($cssclass?' '.$cssclass:'').'" alt="No photo" border="0"'.($width?' width="'.$width.'"':'').($height?' height="'.$height.'"':'').' src="'.DOL_URL_ROOT.$nophoto.'"></div>';
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@ -109,15 +109,17 @@ function tree_showpad(&$fulltree,$key,$silent=0)
|
||||
* @param int $pere Array with parent ids ('rowid'=>,'mainmenu'=>,'leftmenu'=>,'fk_mainmenu=>,'fk_leftmenu=>)
|
||||
* @param int $rang Level of element
|
||||
* @param string $iddivjstree Id to use for parent ul element
|
||||
* @param int $donoresetalreadyloaded Do not reset global array $donoresetalreadyloaded used to avoid to go down on an aleady processed record
|
||||
* @param int $showfk Show fk links to parent into label
|
||||
* @return void
|
||||
*/
|
||||
function tree_recur($tab, $pere, $rang, $iddivjstree='iddivjstree')
|
||||
function tree_recur($tab, $pere, $rang, $iddivjstree='iddivjstree', $donoresetalreadyloaded=0, $showfk=0)
|
||||
{
|
||||
global $tree_recur_alreadyadded;
|
||||
|
||||
if ($rang == 0) $tree_recur_alreadyadded=array();
|
||||
if ($rang == 0 && empty($donoresetalreadyloaded)) $tree_recur_alreadyadded=array();
|
||||
|
||||
if (empty($pere['rowid']))
|
||||
if ($rang == 0)
|
||||
{
|
||||
// Test also done with jstree and dynatree (not able to have <a> inside label)
|
||||
print '<script type="text/javascript" language="javascript">
|
||||
@ -161,7 +163,9 @@ function tree_recur($tab, $pere, $rang, $iddivjstree='iddivjstree')
|
||||
}
|
||||
print "\n".'<li '.($tab[$x]['statut']?' class="liuseractive"':'class="liuserdisabled"').'>';
|
||||
print $tab[$x]['entry'];
|
||||
$tree_recur_alreadyadded[$tab[$x]['rowid']]=$rang;
|
||||
if ($showfk) print ' (fk_mainmenu='.$tab[$x]['fk_mainmenu'].' fk_leftmenu='.$tab[$x]['fk_leftmenu'].')';
|
||||
//print ' -> A '.$tab[$x]['rowid'].' mainmenu='.$tab[$x]['mainmenu'].' leftmenu='.$tab[$x]['leftmenu'].' fk_mainmenu='.$tab[$x]['fk_mainmenu'].' fk_leftmenu='.$tab[$x]['fk_leftmenu'].'<br>'."\n";
|
||||
$tree_recur_alreadyadded[$tab[$x]['rowid']]=($rang + 1);
|
||||
// And now we search all its sons of lower level
|
||||
tree_recur($tab,$tab[$x],$rang+1);
|
||||
print '</li>';
|
||||
@ -173,7 +177,8 @@ function tree_recur($tab, $pere, $rang, $iddivjstree='iddivjstree')
|
||||
{
|
||||
if (! empty($tree_recur_alreadyadded[$tab[$x]['rowid']]))
|
||||
{
|
||||
dol_syslog('Error, record with id '.$tab[$x]['rowid'].' seems to be a child of record with id '.$pere['rowid'].' but it was already output. Complete field "leftmenu" and "mainmenu" on ALL records to avoid ambiguity.', LOG_WARNING);
|
||||
dol_syslog('Error, record with id '.$tab[$x]['rowid'].' seems to be a child of record with id '.$pere['rowid'].' but it was already output. Complete field "leftmenu" and "mainmenu" on ALL records to avoid ambiguity.', LOG_WARNING);
|
||||
//print 'Error, record with id '.$tab[$x]['rowid'].' seems to be a child of record with id '.$pere['rowid'].' but it was already output. Complete field "leftmenu" and "mainmenu" on ALL records to avoid ambiguity.';
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -181,15 +186,17 @@ function tree_recur($tab, $pere, $rang, $iddivjstree='iddivjstree')
|
||||
}
|
||||
print "\n".'<li '.($tab[$x]['statut']?' class="liuseractive"':'class="liuserdisabled"').'>';
|
||||
print $tab[$x]['entry'];
|
||||
$tree_recur_alreadyadded[$tab[$x]['rowid']]=$rang;
|
||||
if ($showfk) print ' (fk_mainmenu='.$tab[$x]['fk_mainmenu'].' fk_leftmenu='.$tab[$x]['fk_leftmenu'].')';
|
||||
//print ' -> B '.$tab[$x]['rowid'].' mainmenu='.$tab[$x]['mainmenu'].' leftmenu='.$tab[$x]['leftmenu'].' fk_mainmenu='.$tab[$x]['fk_mainmenu'].' fk_leftmenu='.$tab[$x]['fk_leftmenu'].'<br>'."\n";
|
||||
$tree_recur_alreadyadded[$tab[$x]['rowid']]=($rang + 1);
|
||||
// And now we search all its sons of lower level
|
||||
//print 'Appel de tree_recur pour x='.$x.' rowid='.$tab[$x]['rowid']." fk_mainmenu pere = ".$tab[$x]['fk_mainmenu']." fk_leftmenu pere = ".$tab[$x]['fk_leftmenu']."<br>\n";
|
||||
//print 'Call tree_recur for x='.$x.' rowid='.$tab[$x]['rowid']." fk_mainmenu pere = ".$tab[$x]['fk_mainmenu']." fk_leftmenu pere = ".$tab[$x]['fk_leftmenu']."<br>\n";
|
||||
tree_recur($tab,$tab[$x],$rang+1);
|
||||
print '</li>';
|
||||
}
|
||||
}
|
||||
if (! empty($ulprinted) && ! empty($pere['rowid'])) { print '</ul>'."\n"; }
|
||||
|
||||
if (empty($pere['rowid'])) print '</ul>';
|
||||
if ($rang == 0) print '</ul>';
|
||||
}
|
||||
|
||||
|
||||
@ -788,8 +788,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
||||
if (! empty($conf->facture->enabled))
|
||||
{
|
||||
$langs->load("bills");
|
||||
$newmenu->add("/compta/facture/list.php",$langs->trans("BillsCustomers"),0,$user->rights->facture->lire, '', $mainmenu, 'customers_bills');
|
||||
$newmenu->add("/compta/facture.php?action=create",$langs->trans("NewBill"),1,$user->rights->facture->creer);
|
||||
$newmenu->add("/compta/facture/list.php?leftmenu=customers_bills",$langs->trans("BillsCustomers"),0,$user->rights->facture->lire, '', $mainmenu, 'customers_bills');
|
||||
$newmenu->add("/compta/facture.php?action=create&leftmenu=customers_bills",$langs->trans("NewBill"),1,$user->rights->facture->creer);
|
||||
$newmenu->add("/compta/facture/list.php?leftmenu=customers_bills",$langs->trans("List"),1,$user->rights->facture->lire);
|
||||
|
||||
if (empty($leftmenu) || ($leftmenu == 'customers_bills'))
|
||||
|
||||
@ -397,6 +397,7 @@ class doc_generic_proposal_odt extends ModelePDFPropales
|
||||
|
||||
$tmparray = array_merge($array_user,$array_soc,$array_thirdparty,$array_objet,$array_other,$array_thirdparty_contact);
|
||||
complete_substitutions_array($tmparray, $outputlangs, $object);
|
||||
$object->fetch_optionals();
|
||||
// Call the ODTSubstitution hook
|
||||
$parameters=array('odfHandler'=>&$odfHandler,'file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs,'substitutionarray'=>&$tmparray);
|
||||
$reshook=$hookmanager->executeHooks('ODTSubstitution',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
|
||||
|
||||
@ -711,7 +711,7 @@ class pdf_azur extends ModelePDFPropales
|
||||
if (file_exists($infile) && is_readable($infile)) {
|
||||
$pagecount = $pdf->setSourceFile($infile);
|
||||
for($i = 1; $i <= $pagecount; $i ++) {
|
||||
$tplIdx = $pdf->importPage(1);
|
||||
$tplIdx = $pdf->importPage($i);
|
||||
if ($tplIdx!==false) {
|
||||
$s = $pdf->getTemplatesize($tplIdx);
|
||||
$pdf->AddPage($s['h'] > $s['w'] ? 'P' : 'L');
|
||||
|
||||
@ -175,10 +175,9 @@ if ($action == 'confirm_deletefile')
|
||||
dol_print_error($db,$ecmdir->error);
|
||||
exit;
|
||||
}
|
||||
$relativepath=$ecmdir->getRelativePath();
|
||||
}
|
||||
else $relativepath='';
|
||||
$upload_dir = $conf->ecm->dir_output.($relativepath?'/'.$relativepath:'');
|
||||
$upload_dir = $conf->ecm->dir_output;
|
||||
$file = $upload_dir . "/" . GETPOST('urlfile'); // Do not use urldecode here ($_GET and $_POST are already decoded by PHP).
|
||||
|
||||
$ret=dol_delete_file($file);
|
||||
|
||||
@ -41,12 +41,20 @@ foreach($linkedObjectBlock as $key => $objectlink)
|
||||
<td></td>
|
||||
<td align="center"><?php echo dol_print_date($objectlink->date_delivery,'day'); ?></td>
|
||||
<td align="right"><?php
|
||||
/*if ($user->rights->expedition->lire) {
|
||||
if ($user->rights->expedition->lire) {
|
||||
$total = $total + $objectlink->total_ht;
|
||||
echo price($objectlink->total_ht);
|
||||
}*/ ?></td>
|
||||
} ?></td>
|
||||
<td align="right"><?php echo $objectlink->getLibStatut(3); ?></td>
|
||||
<td align="right"><a href="<?php echo $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=dellink&dellinkid='.$key; ?>"><?php echo img_delete($langs->transnoentitiesnoconv("RemoveLink")); ?></a></td>
|
||||
<td align="right">
|
||||
<?php
|
||||
// For now, shipments must stay linked to order, so link is not deletable
|
||||
if($object->element != 'commande') {
|
||||
?>
|
||||
<a href="<?php echo $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=dellink&dellinkid='.$key; ?>"><?php echo img_delete($langs->transnoentitiesnoconv("RemoveLink")); ?></a></td>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
|
||||
@ -819,7 +819,7 @@ if ($action == 'set_paid' && $id > 0 && $user->rights->expensereport->to_paid)
|
||||
}
|
||||
}
|
||||
|
||||
if ($action == "addline")
|
||||
if ($action == "addline" && $user->rights->expensereport->creer)
|
||||
{
|
||||
$error = 0;
|
||||
|
||||
@ -911,7 +911,7 @@ if ($action == "addline")
|
||||
$action='';
|
||||
}
|
||||
|
||||
if ($action == 'confirm_delete_line' && GETPOST("confirm") == "yes")
|
||||
if ($action == 'confirm_delete_line' && GETPOST("confirm") == "yes" && $user->rights->expensereport->creer)
|
||||
{
|
||||
$object = new ExpenseReport($db);
|
||||
$object->fetch($id);
|
||||
@ -954,7 +954,7 @@ if ($action == 'confirm_delete_line' && GETPOST("confirm") == "yes")
|
||||
}
|
||||
}
|
||||
|
||||
if ($action == "updateligne" )
|
||||
if ($action == "updateligne" && $user->rights->expensereport->creer)
|
||||
{
|
||||
$object = new ExpenseReport($db);
|
||||
$object->fetch($id);
|
||||
@ -1640,8 +1640,11 @@ else
|
||||
print '<td style="text-align:right;">'.$langs->trans('AmountHT').'</td>';
|
||||
print '<td style="text-align:right;">'.$langs->trans('AmountTTC').'</td>';
|
||||
}
|
||||
print '<td style="text-align:right;"></td>';
|
||||
|
||||
// Ajout des boutons de modification/suppression
|
||||
if (($object->fk_statut < 2 || $object->fk_statut == 99) && $user->rights->expensereport->creer)
|
||||
{
|
||||
print '<td style="text-align:right;"></td>';
|
||||
}
|
||||
print '</tr>';
|
||||
|
||||
$var=true;
|
||||
@ -1682,7 +1685,7 @@ else
|
||||
|
||||
// Ajout des boutons de modification/suppression
|
||||
print '<td style="text-align:right;" class="nowrap">';
|
||||
if($object->fk_statut<2 OR $object->fk_statut==99)
|
||||
if (($object->fk_statut < 2 || $object->fk_statut == 99) && $user->rights->expensereport->creer)
|
||||
{
|
||||
print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=editline&rowid='.$objp->rowid.'#'.$objp->rowid.'">';
|
||||
print img_edit();
|
||||
@ -1768,7 +1771,7 @@ else
|
||||
//print '</div>';
|
||||
|
||||
// Add a line
|
||||
if (($object->fk_statut==0 || $object->fk_statut==99) && $action != 'editline')
|
||||
if (($object->fk_statut==0 || $object->fk_statut==99) && $action != 'editline' && $user->rights->expensereport->creer)
|
||||
{
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td colspan="2"></td>';
|
||||
|
||||
@ -165,7 +165,7 @@ else:
|
||||
while($i<$num):
|
||||
$objp = $db->fetch_object($resql);
|
||||
$var=!$var;
|
||||
print "<tr $bc[$var]>";
|
||||
print '<tr'. $bc[$var].'>';
|
||||
print '<td>'.$objp->ref.'</td>';
|
||||
print '<td>'.dol_print_date($db->jdate($objp->date_valid),'day').'</td>';
|
||||
print '<td><a href="'.DOL_URL_ROOT.'/user/card.php?id='.$objp->fk_user_author.'">'.img_object($langs->trans("ShowUser"),"user").' '.$objp->declarant_NDF.'</a></td>';
|
||||
|
||||
@ -494,7 +494,7 @@ if (empty($reshook))
|
||||
|
||||
$desc=GETPOST('np_desc');
|
||||
$date_intervention = dol_mktime(GETPOST('dihour','int'), GETPOST('dimin','int'), 0, GETPOST('dimonth','int'), GETPOST('diday','int'), GETPOST('diyear','int'));
|
||||
$duration = empty($conf->global->FICHINTER_WITHOUT_DURATION)?0:convertTime2Seconds(GETPOST('durationhour','int'), GETPOST('durationmin','int'));
|
||||
$duration = empty($conf->global->FICHINTER_WITHOUT_DURATION)?convertTime2Seconds(GETPOST('durationhour','int'), GETPOST('durationmin','int')) : 0;
|
||||
|
||||
|
||||
// Extrafields
|
||||
@ -1553,7 +1553,7 @@ else if ($id > 0 || ! empty($ref))
|
||||
$selectmode = 'select';
|
||||
if (!empty($conf->global->INTERVENTION_ADDLINE_FREEDUREATION))
|
||||
$selectmode = 'text';
|
||||
$form->select_duration('duration', $objp->duree, $selectmode);
|
||||
$form->select_duration('duration', $objp->duree, 0, $selectmode);
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
|
||||
@ -89,7 +89,18 @@ if (! $result && ! empty($_SERVER["GATEWAY_INTERFACE"])) // If install not do
|
||||
{
|
||||
// Note: If calling page was not into htdocs (index.php, ...), then this redirect will fails.
|
||||
// There is no real solution, because the only way to know the apache url relative path is to have into conf file.
|
||||
header("Location: install/index.php");
|
||||
$TDir = explode('/', $_SERVER['PHP_SELF']);
|
||||
$path = '';
|
||||
$i = count($TDir);
|
||||
while ($i--)
|
||||
{
|
||||
if (empty($TDir[$i]) || $TDir[$i] == 'htdocs') break;
|
||||
if (substr($TDir[$i], -4, 4) == '.php') continue;
|
||||
|
||||
$path .= '../';
|
||||
}
|
||||
|
||||
header("Location: ".$path."install/index.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
@ -92,13 +92,16 @@ if ($idprod > 0)
|
||||
}
|
||||
}
|
||||
|
||||
// Add price for pmp
|
||||
$price=$producttmp->pmp;
|
||||
$prices[] = array("id" => 'pmpprice', "price" => price2num($price), "label" => $langs->trans("PMPValueShort").': '.price($price,0,$langs,0,0,-1,$conf->currency), "title" => $langs->trans("PMPValueShort").': '.price($price,0,$langs,0,0,-1,$conf->currency)); // For price field, we must use price2num(), for label or title, price()
|
||||
|
||||
// Add price for costprice
|
||||
$price=$producttmp->cost_price;
|
||||
$prices[] = array("id" => 'costprice', "price" => price2num($price), "label" => $langs->trans("CostPrice").': '.price($price,0,$langs,0,0,-1,$conf->currency), "title" => $langs->trans("PMPValueShort").': '.price($price,0,$langs,0,0,-1,$conf->currency)); // For price field, we must use price2num(), for label or title, price()
|
||||
|
||||
if(!empty($conf->stock->enabled))
|
||||
{
|
||||
// Add price for pmp
|
||||
$price=$producttmp->pmp;
|
||||
$prices[] = array("id" => 'pmpprice', "price" => price2num($price), "label" => $langs->trans("PMPValueShort").': '.price($price,0,$langs,0,0,-1,$conf->currency), "title" => $langs->trans("PMPValueShort").': '.price($price,0,$langs,0,0,-1,$conf->currency)); // For price field, we must use price2num(), for label or title, price()
|
||||
}
|
||||
}
|
||||
|
||||
echo json_encode($prices);
|
||||
|
||||
@ -1458,12 +1458,10 @@ class CommandeFournisseur extends CommonOrder
|
||||
//print $sql;
|
||||
if ($resql)
|
||||
{
|
||||
$this->rowid = $this->db->last_insert_id(MAIN_DB_PREFIX.'commande_fournisseurdet');
|
||||
|
||||
if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
|
||||
{
|
||||
$linetmp = new CommandeFournisseurLigne($this->db);
|
||||
$linetmp->id=$this->rowid;
|
||||
$linetmp->id=$this->db->last_insert_id(MAIN_DB_PREFIX.'commande_fournisseurdet');
|
||||
$linetmp->array_options = $array_options;
|
||||
$result=$linetmp->insertExtraFields();
|
||||
if ($result < 0)
|
||||
@ -2494,7 +2492,7 @@ class CommandeFournisseur extends CommonOrder
|
||||
$response = new WorkboardResponse();
|
||||
$response->warning_delay=$conf->commande->fournisseur->warning_delay/60/60/24;
|
||||
$response->label=$langs->trans("SuppliersOrdersToProcess");
|
||||
$response->url=DOL_URL_ROOT.'/fourn/commande/list.php?statut=1,2,3';
|
||||
$response->url=DOL_URL_ROOT.'/fourn/commande/list.php?statut=1,2,3&mainmenu=commercial&leftmenu=orders_suppliers';
|
||||
$response->img=img_object($langs->trans("Orders"),"order");
|
||||
|
||||
while ($obj=$this->db->fetch_object($resql))
|
||||
|
||||
@ -1507,7 +1507,7 @@ class FactureFournisseur extends CommonInvoice
|
||||
$response = new WorkboardResponse();
|
||||
$response->warning_delay=$conf->facture->fournisseur->warning_delay/60/60/24;
|
||||
$response->label=$langs->trans("SupplierBillsToPay");
|
||||
$response->url=DOL_URL_ROOT.'/fourn/facture/list.php?filtre=fac.fk_statut:1,paye:0';
|
||||
$response->url=DOL_URL_ROOT.'/fourn/facture/list.php?filtre=fac.fk_statut:1,paye:0&mainmenu=accountancy&leftmenu=suppliers_bills';
|
||||
$response->img=img_object($langs->trans("Bills"),"bill");
|
||||
|
||||
$facturestatic = new FactureFournisseur($this->db);
|
||||
@ -1708,8 +1708,11 @@ class FactureFournisseur extends CommonInvoice
|
||||
$line->remise_percent=0;
|
||||
}
|
||||
|
||||
$prodid = mt_rand(1, $num_prods);
|
||||
$line->fk_product=$prodids[$prodid];
|
||||
if ($num_prods > 0)
|
||||
{
|
||||
$prodid = mt_rand(1, $num_prods);
|
||||
$line->fk_product=$prodids[$prodid];
|
||||
}
|
||||
$line->product_type=0;
|
||||
|
||||
$this->lines[$xnbp]=$line;
|
||||
|
||||
@ -445,7 +445,7 @@ class ProductFournisseur extends Product
|
||||
$sql.= " pfp.price, pfp.quantity, pfp.unitprice, pfp.remise_percent, pfp.remise, pfp.tva_tx, pfp.fk_availability, pfp.charges, pfp.unitcharges, pfp.info_bits, pfp.delivery_time_days, pfp.supplier_reputation";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp";
|
||||
$sql.= ", ".MAIN_DB_PREFIX."societe as s";
|
||||
$sql.= " WHERE pfp.entity IN (".getEntity('product', 1).")";
|
||||
$sql.= " WHERE pfp.entity IN (".getEntity('productprice', 1).")";
|
||||
$sql.= " AND pfp.fk_soc = s.rowid";
|
||||
$sql.= " AND s.status=1"; // only enabled company selected
|
||||
$sql.= " AND pfp.fk_product = ".$prodid;
|
||||
|
||||
@ -1030,7 +1030,7 @@ if (empty($reshook))
|
||||
$num = count($lines);
|
||||
|
||||
$productsupplier = new ProductFournisseur($db);
|
||||
|
||||
|
||||
for($i = 0; $i < $num; $i ++)
|
||||
{
|
||||
|
||||
@ -1040,7 +1040,7 @@ if (empty($reshook))
|
||||
$label = (! empty($lines[$i]->label) ? $lines[$i]->label : '');
|
||||
$desc = (! empty($lines[$i]->desc) ? $lines[$i]->desc : $lines[$i]->libelle);
|
||||
$product_type = (! empty($lines[$i]->product_type) ? $lines[$i]->product_type : 0);
|
||||
|
||||
|
||||
// Reset fk_parent_line for no child products and special product
|
||||
if (($lines[$i]->product_type != 9 && empty($lines[$i]->fk_parent_line)) || $lines[$i]->product_type == 9) {
|
||||
$fk_parent_line = 0;
|
||||
@ -1055,7 +1055,7 @@ if (empty($reshook))
|
||||
}
|
||||
|
||||
$result = $productsupplier->find_min_price_product_fournisseur($lines[$i]->fk_product, $lines[$i]->qty);
|
||||
if ($result>0)
|
||||
if ($result>=0)
|
||||
{
|
||||
$tva_tx = $lines[$i]->tva_tx;
|
||||
|
||||
@ -1073,7 +1073,7 @@ if (empty($reshook))
|
||||
$tva_tx,
|
||||
$lines[$i]->localtax1_tx,
|
||||
$lines[$i]->localtax2_tx,
|
||||
$lines[$i]->fk_product,
|
||||
$lines[$i]->fk_product > 0 ? $lines[$i]->fk_product : 0,
|
||||
$productsupplier->product_fourn_price_id,
|
||||
$productsupplier->ref_supplier,
|
||||
$lines[$i]->remise_percent,
|
||||
@ -1088,6 +1088,7 @@ if (empty($reshook))
|
||||
$lines[$i]->fk_unit
|
||||
);
|
||||
}
|
||||
|
||||
if ($result < 0) {
|
||||
$error++;
|
||||
break;
|
||||
|
||||
@ -252,7 +252,7 @@ if ($status)
|
||||
if ($status == '6,7') $title.=' - '.$langs->trans("StatusOrderCanceled");
|
||||
else $title.=' - '.$langs->trans($commandestatic->statuts[$status]);
|
||||
}
|
||||
if ($billed) $title.=' - '.$langs->trans("Billed");
|
||||
if ($billed > 0) $title.=' - '.$langs->trans("Billed");
|
||||
|
||||
//$help_url="EN:Module_Customers_Orders|FR:Module_Commandes_Clients|ES:Módulo_Pedidos_de_clientes";
|
||||
$help_url='';
|
||||
|
||||
@ -1869,8 +1869,8 @@ else
|
||||
print '</td></tr>';
|
||||
|
||||
// Label
|
||||
print '<tr><td>'.$form->editfieldkey("Label",'label',$object->label,$object,($user->rights->fournisseur->facture->creer)).'</td>';
|
||||
print '<td colspan="3">'.$form->editfieldval("Label",'label',$object->label,$object,($user->rights->fournisseur->facture->creer)).'</td>';
|
||||
print '<tr><td>'.$form->editfieldkey("Label",'libelle',$object->label,$object,($user->rights->fournisseur->facture->creer)).'</td>';
|
||||
print '<td colspan="3">'.$form->editfieldval("Label",'libelle',$object->label,$object,($user->rights->fournisseur->facture->creer)).'</td>';
|
||||
|
||||
/*
|
||||
* List of payments
|
||||
|
||||
@ -82,10 +82,9 @@ $year = GETPOST("year","int");
|
||||
$day_lim = GETPOST('day_lim','int');
|
||||
$month_lim = GETPOST('month_lim','int');
|
||||
$year_lim = GETPOST('year_lim','int');
|
||||
$filter = GETPOST("filtre");
|
||||
$optioncss = GETPOST('optioncss','alpha');
|
||||
|
||||
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test must be present to be compatible with all browsers
|
||||
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter") || GETPOST("button_removefilter.x")) // All test must be present to be compatible with all browsers
|
||||
{
|
||||
$search_all="";
|
||||
$search_ref="";
|
||||
@ -225,7 +224,7 @@ if ($search_amount_all_tax != '')
|
||||
$sql .= natural_search('fac.total_ttc', $search_amount_all_tax, 1);
|
||||
}
|
||||
|
||||
if ($search_status != '' && $search_status>=0)
|
||||
if ($search_status != '' && $search_status >= 0)
|
||||
{
|
||||
$sql.= " AND fac.fk_statut = ".$search_status;
|
||||
}
|
||||
@ -273,7 +272,6 @@ if ($resql)
|
||||
if ($search_company) $param.='&search_company='.urlencode($search_company);
|
||||
if ($search_amount_no_tax) $param.='&search_amount_no_tax='.urlencode($search_amount_no_tax);
|
||||
if ($search_amount_all_tax) $param.='&search_amount_all_tax='.urlencode($search_amount_all_tax);
|
||||
if ($filter && $filter != -1) $param.='&filtre='.urlencode($filter);
|
||||
if ($optioncss != '') $param.='&optioncss='.$optioncss;
|
||||
if ($search_status >= 0) $param.="&search_status=".$search_status;
|
||||
|
||||
@ -347,7 +345,7 @@ if ($resql)
|
||||
print '<input class="flat" type="text" size="6" name="search_amount_all_tax" value="'.$search_amount_all_tax.'">';
|
||||
print '</td><td class="liste_titre" align="right">';
|
||||
$liststatus=array('0'=>$langs->trans("Draft"),'1'=>$langs->trans("Unpaid"), '2'=>$langs->trans("Paid"));
|
||||
print $form->selectarray('filtre', $liststatus, $search_status, 1);
|
||||
print $form->selectarray('search_status', $liststatus, $search_status, 1);
|
||||
print '</td>';
|
||||
print '<td class="liste_titre" align="right">';
|
||||
$searchpitco=$form->showFilterAndCheckAddButtons(0);
|
||||
|
||||
@ -634,6 +634,10 @@ if ($step == 4 && $datatoimport)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (GETPOST('update')) {
|
||||
$array_match_file_to_database=array();
|
||||
}
|
||||
|
||||
// Load source fields in input file
|
||||
$fieldssource=array();
|
||||
@ -757,7 +761,7 @@ if ($step == 4 && $datatoimport)
|
||||
print '<input type="text" size="1" name="separator" value="'.htmlentities($separator).'"/>';
|
||||
print ' '.$langs->trans("Enclosure").' : ';
|
||||
print '<input type="text" size="1" name="enclosure" value="'.htmlentities($enclosure).'"/>';
|
||||
print '<input type="submit" value="'.$langs->trans('Update').'" class="button" />';
|
||||
print '<input name="update" type="submit" value="'.$langs->trans('Update').'" class="button" />';
|
||||
print '</form>';
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
@ -610,3 +610,4 @@ INSERT INTO llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) VALUES (14
|
||||
|
||||
-- VMYSQL4.1 ALTER TABLE llx_c_type_resource CHANGE COLUMN rowid rowid integer NOT NULL AUTO_INCREMENT;
|
||||
|
||||
ALTER TABLE llx_import_model MODIFY COLUMN type varchar(50);
|
||||
|
||||
@ -501,3 +501,5 @@ CREATE TABLE llx_oauth_state (
|
||||
fk_adherent integer,
|
||||
entity integer
|
||||
)ENGINE=InnoDB;
|
||||
|
||||
ALTER TABLE llx_import_model MODIFY COLUMN type varchar(50);
|
||||
@ -23,6 +23,6 @@ create table llx_import_model
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
fk_user integer DEFAULT 0 NOT NULL,
|
||||
label varchar(50) NOT NULL,
|
||||
type varchar(20) NOT NULL,
|
||||
type varchar(50) NOT NULL,
|
||||
field text NOT NULL
|
||||
)ENGINE=innodb;
|
||||
@ -3,9 +3,9 @@ ACCOUNTING_EXPORT_SEPARATORCSV=Column separator for export file
|
||||
ACCOUNTING_EXPORT_DATE=Date format for export file
|
||||
ACCOUNTING_EXPORT_PIECE=Export the number of piece
|
||||
ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export with global account
|
||||
ACCOUNTING_EXPORT_LABEL=Export the label
|
||||
ACCOUNTING_EXPORT_AMOUNT=Export the amount
|
||||
ACCOUNTING_EXPORT_DEVISE=Export the devise
|
||||
ACCOUNTING_EXPORT_LABEL=Export label
|
||||
ACCOUNTING_EXPORT_AMOUNT=Export amount
|
||||
ACCOUNTING_EXPORT_DEVISE=Export currency
|
||||
Selectformat=Select the format for the file
|
||||
ACCOUNTING_EXPORT_PREFIX_SPEC=Specify the prefix for the file name
|
||||
|
||||
@ -183,4 +183,4 @@ Formula=Formula
|
||||
|
||||
## Error
|
||||
ErrorNoAccountingCategoryForThisCountry=No accounting category are available for this country
|
||||
ExportNotSupported=The export format setuped is not supported into this page
|
||||
ExportNotSupported=The export format setuped is not supported into this page
|
||||
|
||||
@ -2,8 +2,8 @@
|
||||
Foundation=Foundation
|
||||
Version=Version
|
||||
VersionProgram=Version program
|
||||
VersionLastInstall=Version initial install
|
||||
VersionLastUpgrade=Version last upgrade
|
||||
VersionLastInstall=Initial install version
|
||||
VersionLastUpgrade=Latest version upgrade
|
||||
VersionExperimental=Experimental
|
||||
VersionDevelopment=Development
|
||||
VersionUnknown=Unknown
|
||||
@ -145,8 +145,8 @@ Boxes=Widgets
|
||||
MaxNbOfLinesForBoxes=Max number of lines for widgets
|
||||
PositionByDefault=Default order
|
||||
Position=Position
|
||||
MenusDesc=Menus managers define content of the 2 menu bars (horizontal bar and vertical bar).
|
||||
MenusEditorDesc=The menu editor allow you to define personalized entries in menus. Use it carefully to avoid making dolibarr unstable and menu entries permanently unreachable.<br>Some modules add entries in the menus (in menu <b>All</b> in most cases). If you removed some of these entries by mistake, you can restore them by disabling and reenabling the module.
|
||||
MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical).
|
||||
MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.<br />Some modules add menu entries (in menu <b>All</b> mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module.
|
||||
MenuForUsers=Menu for users
|
||||
LangFile=.lang file
|
||||
System=System
|
||||
@ -154,13 +154,13 @@ SystemInfo=System information
|
||||
SystemToolsArea=System tools area
|
||||
SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
|
||||
Purge=Purge
|
||||
PurgeAreaDesc=This page allows you to delete all files built or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files built by the web server.
|
||||
PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk to loose data)
|
||||
PurgeDeleteTemporaryFiles=Delete all temporary files (no risk to loose data)
|
||||
PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
|
||||
PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
|
||||
PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
|
||||
PurgeDeleteTemporaryFilesShort=Delete temporary files
|
||||
PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
|
||||
PurgeRunNow=Purge now
|
||||
PurgeNothingToDelete=No directory or file to delete.
|
||||
PurgeNothingToDelete=No directory or files to delete.
|
||||
PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
|
||||
PurgeAuditEvents=Purge all security events
|
||||
ConfirmPurgeAuditEvents=Are you sure you want to purge all security events ? All security logs will be deleted, no other data will be removed.
|
||||
@ -210,12 +210,12 @@ OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> a
|
||||
ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off in column "Status" to enable a module/feature.
|
||||
ModulesInterfaceDesc=The Dolibarr modules interface allows you to add features depending on external software, systems or services.
|
||||
ModulesSpecialDesc=Special modules are very specific or seldom used modules.
|
||||
ModulesJobDesc=Business modules provide simple predefined setup of Dolibarr for a particular business.
|
||||
ModulesMarketPlaceDesc=You can find more modules to download on external web sites on the Internet...
|
||||
ModulesJobDesc=Business modules provide simple preconfigured setup of Dolibarr for specific businesses.
|
||||
ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
|
||||
ModulesMarketPlaces=More modules...
|
||||
DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
|
||||
DoliPartnersDesc=List with some companies that can provide/develop on-demand modules or features (Note: any Open Source company knowning PHP language can provide you specific development)
|
||||
WebSiteDesc=Web site providers you can search to find more modules...
|
||||
DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
|
||||
WebSiteDesc=Reference websites to find more modules...
|
||||
URL=Link
|
||||
BoxesAvailable=Widgets available
|
||||
BoxesActivated=Widgets activated
|
||||
@ -312,8 +312,8 @@ InfDirAlt=Since version 3 it is possible to define an alternative root directory
|
||||
InfDirExample=<br>Then declare it in the file conf.php<br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>*These lines are commented with "#", to uncomment only remove the character.
|
||||
YouCanSubmitFile=For this step, you can send package using this tool: Select module file
|
||||
CurrentVersion=Dolibarr current version
|
||||
CallUpdatePage=Go to the page that updates the database structure and datas: %s.
|
||||
LastStableVersion=Last stable version
|
||||
CallUpdatePage=Go to the page that updates the database structure and data: %s.
|
||||
LastStableVersion=Latest stable version
|
||||
UpdateServerOffline=Update server offline
|
||||
GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:<br><b>{000000}</b> corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask. <br><b>{000000+000}</b> same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s. <br><b>{000000@x}</b> same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required. <br><b>{dd}</b> day (01 to 31).<br><b>{mm}</b> month (01 to 12).<br><b>{yy}</b>, <b>{yyyy}</b> or <b>{y}</b> year over 2, 4 or 1 numbers. <br>
|
||||
GenericMaskCodes2=<b>{cccc}</b> the client code on n characters<br><b>{cccc000}</b> the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.<br><b>{tttt}</b> The code of thirdparty type on n characters (see dictionary-thirdparty types).<br>
|
||||
@ -367,7 +367,7 @@ PDFAddressForging=Rules to forge address boxes
|
||||
HideAnyVATInformationOnPDF=Hide all information related to VAT on generated PDF
|
||||
HideDescOnPDF=Hide products description on generated PDF
|
||||
HideRefOnPDF=Hide products ref. on generated PDF
|
||||
HideDetailsOnPDF=Hide products lines details on generated PDF
|
||||
HideDetailsOnPDF=Hide product lines details on generated PDF
|
||||
PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position
|
||||
Library=Library
|
||||
UrlGenerationParameters=Parameters to secure URLs
|
||||
@ -401,8 +401,8 @@ ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value<br><br> fo
|
||||
ExtrafieldParamHelpradio=Parameters list have to be like key,value<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||
ExtrafieldParamHelpsellist=Parameters list comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
|
||||
ExtrafieldParamHelpchkbxlst=Parameters list comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
|
||||
ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath<br>Syntax : ObjectName:Classpath<br>Example : Societe:societe/class/societe.class.php
|
||||
LibraryToBuildPDF=Library used to build PDF
|
||||
ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath<br>Syntax : ObjectName:Classpath<br>Example : Societe:societe/class/societe.class.php
|
||||
LibraryToBuildPDF=Library used for PDF generation
|
||||
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 (localtax is calculated on amount without tax)<br>2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)<br>3 : local tax apply on products without vat (localtax is calculated on amount without tax)<br>4 : local tax apply on products including vat (localtax is calculated on amount + main vat)<br>5 : local tax apply on services without vat (localtax is calculated on amount without tax)<br>6 : local tax apply on services including vat (localtax is calculated on amount + tax)
|
||||
SMS=SMS
|
||||
@ -424,12 +424,13 @@ AllBarcodeReset=All barcode values have been removed
|
||||
NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
|
||||
NoRecordWithoutBarcodeDefined=No record with no barcode value defined.
|
||||
EnableFileCache=Enable file cache
|
||||
ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, capital and VAT number).
|
||||
ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
|
||||
NoDetails=No more details in footer
|
||||
DisplayCompanyInfo=Display company address
|
||||
DisplayCompanyManager=Display manager names
|
||||
DisplayCompanyInfoAndManagers=Display company and manager names
|
||||
|
||||
DisplayCompanyInfoAndManagers=Display company and manager names
|
||||
EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
|
||||
|
||||
# Modules
|
||||
Module0Name=Users & groups
|
||||
Module0Desc=Users and groups management
|
||||
@ -492,15 +493,15 @@ Module200Desc=LDAP directory synchronisation
|
||||
Module210Name=PostNuke
|
||||
Module210Desc=PostNuke integration
|
||||
Module240Name=Data exports
|
||||
Module240Desc=Tool to export Dolibarr datas (with assistants)
|
||||
Module240Desc=Tool to export Dolibarr data (with assistants)
|
||||
Module250Name=Data imports
|
||||
Module250Desc=Tool to import datas in Dolibarr (with assistants)
|
||||
Module250Desc=Tool to import data in Dolibarr (with assistants)
|
||||
Module310Name=Members
|
||||
Module310Desc=Foundation members management
|
||||
Module320Name=RSS Feed
|
||||
Module320Desc=Add RSS feed inside Dolibarr screen pages
|
||||
Module330Name=Bookmarks
|
||||
Module330Desc=Bookmark management
|
||||
Module330Desc=Bookmarks management
|
||||
Module400Name=Projects/Opportunities/Leads
|
||||
Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
|
||||
Module410Name=Webcalendar
|
||||
@ -549,7 +550,7 @@ Module2800Desc=FTP Client
|
||||
Module2900Name=GeoIPMaxmind
|
||||
Module2900Desc=GeoIP Maxmind conversions capabilities
|
||||
Module3100Name=Skype
|
||||
Module3100Desc=Add a Skype button into card of users / third parties / contacts / members
|
||||
Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
|
||||
Module4000Name=HRM
|
||||
Module4000Desc=Human resources management
|
||||
Module5000Name=Multi-company
|
||||
@ -607,7 +608,7 @@ Permission71=Read members
|
||||
Permission72=Create/modify members
|
||||
Permission74=Delete members
|
||||
Permission75=Setup types of membership
|
||||
Permission76=Export datas
|
||||
Permission76=Export data
|
||||
Permission78=Read subscriptions
|
||||
Permission79=Create/modify subscriptions
|
||||
Permission81=Read customers orders
|
||||
@ -817,15 +818,15 @@ Permission55002=Create/modify polls
|
||||
Permission59001=Read commercial margins
|
||||
Permission59002=Define commercial margins
|
||||
Permission59003=Read every user margin
|
||||
DictionaryCompanyType=Thirdparties type
|
||||
DictionaryCompanyJuridicalType=Juridical kinds of thirdparties
|
||||
DictionaryCompanyType=Types of thirdparties
|
||||
DictionaryCompanyJuridicalType=Legal forms of thirdparties
|
||||
DictionaryProspectLevel=Prospect potential level
|
||||
DictionaryCanton=State/Province
|
||||
DictionaryRegion=Regions
|
||||
DictionaryCountry=Countries
|
||||
DictionaryCurrency=Currencies
|
||||
DictionaryCivility=Civility title
|
||||
DictionaryActions=Type of agenda events
|
||||
DictionaryCivility=Personal and professional titles
|
||||
DictionaryActions=Types of agenda events
|
||||
DictionarySocialContributions=Social or fiscal taxes types
|
||||
DictionaryVAT=VAT Rates or Sales Tax Rates
|
||||
DictionaryRevenueStamp=Amount of revenue stamps
|
||||
@ -834,7 +835,7 @@ DictionaryPaymentModes=Payment modes
|
||||
DictionaryTypeContact=Contact/Address types
|
||||
DictionaryEcotaxe=Ecotax (WEEE)
|
||||
DictionaryPaperFormat=Paper formats
|
||||
DictionaryFees=Type of fees
|
||||
DictionaryFees=Types of fees
|
||||
DictionarySendingMethods=Shipping methods
|
||||
DictionaryStaff=Staff
|
||||
DictionaryAvailability=Delivery delay
|
||||
@ -845,14 +846,14 @@ DictionaryAccountancysystem=Models for chart of accounts
|
||||
DictionaryEMailTemplates=Emails templates
|
||||
DictionaryUnits=Units
|
||||
DictionaryProspectStatus=Prospection status
|
||||
DictionaryHolidayTypes=Type of leaves
|
||||
DictionaryHolidayTypes=Types of leaves
|
||||
DictionaryOpportunityStatus=Opportunity status for project/lead
|
||||
SetupSaved=Setup saved
|
||||
BackToModuleList=Back to modules list
|
||||
BackToDictionaryList=Back to dictionaries list
|
||||
VATReceivedOnly=Special rate not charged
|
||||
VATManagement=VAT Management
|
||||
VATIsUsedDesc=The VAT rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to VAT, then VAT by default=0. End of rule.<br>If the (selling country= buying country), then the VAT by default=VAT of the product in the selling country. End of rule. <br>If seller and buyer in the European Community and goods are transport products (car, ship, plane), the default VAT=0 ( The VAT should be paid by the buyer at the customoffice of his country and not at the seller). End of rule.<br>If seller and buyer in the European Community and buyer is not a company, then the VAT by default=VAT of product sold. End of rule.<br>If seller and buyer in the European Community and buyer is a company, then the VAT by default=0. End of rule.<br>Else the proposed default VAT=0. End of rule.
|
||||
VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
|
||||
VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
|
||||
VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared.
|
||||
VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
|
||||
@ -978,10 +979,10 @@ DelayBeforeWarning=Delay before warning
|
||||
DelaysBeforeWarning=Delays before warning
|
||||
DelaysOfToleranceBeforeWarning=Tolerance delays before warning
|
||||
DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element.
|
||||
Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events not yet realised
|
||||
Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks not yet realised
|
||||
Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not yet processed
|
||||
Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not yet processed
|
||||
Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events not completed yet
|
||||
Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks not completed yet
|
||||
Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
|
||||
Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet
|
||||
Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close
|
||||
Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed
|
||||
Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate
|
||||
@ -992,21 +993,21 @@ Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before al
|
||||
Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee
|
||||
Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do
|
||||
Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
|
||||
SetupDescription1=All parameters available in the setup area allow you to setup Dolibarr before starting using it.
|
||||
SetupDescription2=The 2 most important setup steps are the 2 first ones in the left setup menu, this means Company/foundation setup page and Modules setup page:
|
||||
SetupDescription3=Parameters in menu <a href="%s">Setup -> Company/foundation</a> are required because input information is used on Dolibarr displays and to modify Dolibarr behaviour (for example for features related to your country).
|
||||
SetupDescription4=Parameters in menu <a href="%s">Setup -> Modules</a> are required because Dolibarr is not a fixed ERP/CRM but a sum of several modules, all more or less independant. It's only after activating modules you're interesting in that you will see features appeared in menus.
|
||||
SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
|
||||
SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page:
|
||||
SetupDescription3=Parameters in menu <a href="%s">Setup -> Company/foundation</a> are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example).
|
||||
SetupDescription4=Parameters in menu <a href="%s">Setup -> Modules</a> are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable.
|
||||
SetupDescription5=Other menu entries manage optional parameters.
|
||||
EventsSetup=Setup for events logs
|
||||
LogEvents=Security audit events
|
||||
Audit=Audit
|
||||
InfoDolibarr=Infos Dolibarr
|
||||
InfoBrowser=Infos Browser
|
||||
InfoOS=Infos OS
|
||||
InfoWebServer=Infos web server
|
||||
InfoDatabase=Infos database
|
||||
InfoPHP=Infos PHP
|
||||
InfoPerf=Infos performances
|
||||
InfoDolibarr=About Dolibarr
|
||||
InfoBrowser=About Browser
|
||||
InfoOS=About OS
|
||||
InfoWebServer=About Web Server
|
||||
InfoDatabase=About Database
|
||||
InfoPHP=About PHP
|
||||
InfoPerf=About Performances
|
||||
BrowserName=Browser name
|
||||
BrowserOS=Browser OS
|
||||
ListEvents=Audit events
|
||||
@ -1030,10 +1031,10 @@ TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>
|
||||
TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
|
||||
TriggerActiveAsModuleActive=Triggers in this file are active as module <b>%s</b> is enabled.
|
||||
GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password
|
||||
DictionaryDesc=Define here all reference datas. You can complete predefined value with yours.
|
||||
ConstDesc=This page allows you to edit all other parameters not available in previous pages. They are reserved parameters for advanced developers or for troubleshouting.
|
||||
DictionaryDesc=Insert all reference data. You can add your values to the default.
|
||||
ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting.
|
||||
OnceSetupFinishedCreateUsers=Warning, you are a Dolibarr administrator user. Administrator users are used to setup Dolibarr. For a usual usage of Dolibarr, it is recommended to use a non administrator user created from Users & Groups menu.
|
||||
MiscellaneousDesc=Define here all other parameters related to security.
|
||||
MiscellaneousDesc=All other security related parameters are defined here.
|
||||
LimitsSetup=Limits/Precision setup
|
||||
LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
|
||||
MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices
|
||||
@ -1103,8 +1104,8 @@ PathToDocuments=Path to documents
|
||||
PathDirectory=Directory
|
||||
SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
|
||||
TranslationSetup=Configuration de la traduction
|
||||
TranslationDesc=Choice of language visible on screen can be modified:<br>* Globally from menu <strong>Home - Setup - Display</strong><br>* For user only from tab <strong>User display</strong> of user card (click on login on top of screen).
|
||||
TranslationOverwriteDesc=You can also overwrite some value by completing/editing the following table. You must use for "%s" the language code, for "%s" the key found into file langs/xx_XX/somefile.lang and "%s" the new value you want to use as new translation.
|
||||
TranslationDesc=How to set displayed application language<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: <strong>User display setup</strong> tab of user card (click on username at the top of the screen).
|
||||
TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the key string found in the lang file (langs/xx_XX/somefile.lang) into "%s" and your new translation into "%s".
|
||||
TotalNumberOfActivatedModules=Total number of activated feature modules: <b>%s</b> / <b>%s</b>
|
||||
YouMustEnableOneModule=You must at least enable 1 module
|
||||
ClassNotFoundIntoPathWarning=Class %s not found into PHP path
|
||||
@ -1526,6 +1527,7 @@ MenuDeleted=Menu deleted
|
||||
TreeMenu=Tree menus
|
||||
Menus=Menus
|
||||
TreeMenuPersonalized=Personalized menus
|
||||
NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry
|
||||
NewMenu=New menu
|
||||
MenuConf=Menus setup
|
||||
Menu=Selection of menu
|
||||
@ -1750,4 +1752,5 @@ AddModels=Add document or numbering templates
|
||||
AddSubstitutions=Add keys substitutions
|
||||
DetectionNotPossible=Detection not possible
|
||||
UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and will be checked on each future access)
|
||||
ListOfAvailableAPIs=List of available APIs
|
||||
ListOfAvailableAPIs=List of available APIs
|
||||
activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
|
||||
|
||||
@ -81,8 +81,8 @@ AgendaUrlOptions2=<b>login=%s</b> to restrict output to actions created by or as
|
||||
AgendaUrlOptions3=<b>logina=%s</b> to restrict output to actions owned by a user <b>%s</b>.
|
||||
AgendaUrlOptions4=<b>logint=%s</b> to restrict output to actions assigned to user <b>%s</b>.
|
||||
AgendaUrlOptionsProject=<b>project=PROJECT_ID</b> to restrict output to actions associated to project <b>PROJECT_ID</b>.
|
||||
AgendaShowBirthdayEvents=Show birthday's contacts
|
||||
AgendaHideBirthdayEvents=Hide birthday's contacts
|
||||
AgendaShowBirthdayEvents=Show birthdays of contacts
|
||||
AgendaHideBirthdayEvents=Hide birthdays of contacts
|
||||
Busy=Busy
|
||||
ExportDataset_event1=List of agenda events
|
||||
DefaultWorkingDays=Default working days range in week (Example: 1-5, 1-6)
|
||||
@ -110,4 +110,4 @@ EveryWeek=Every week
|
||||
EveryMonth=Every month
|
||||
DayOfMonth=Day of month
|
||||
DayOfWeek=Day of week
|
||||
DateStartPlusOne=Date start + 1 hour
|
||||
DateStartPlusOne=Date start + 1 hour
|
||||
|
||||
@ -127,7 +127,7 @@ ConfirmValidateCheckReceipt=Are you sure you want to validate this check receipt
|
||||
DeleteCheckReceipt=Delete this check receipt ?
|
||||
ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt ?
|
||||
BankChecks=Bank checks
|
||||
BankChecksToReceipt=Checks waiting for deposit
|
||||
BankChecksToReceipt=Checks awaiting deposit
|
||||
ShowCheckReceipt=Show check deposit receipt
|
||||
NumberOfCheques=Nb of check
|
||||
DeleteTransaction=Delete transaction
|
||||
@ -141,9 +141,9 @@ ExportDataset_banque_1=Bank transactions and account statement
|
||||
ExportDataset_banque_2=Deposit slip
|
||||
TransactionOnTheOtherAccount=Transaction on the other account
|
||||
TransactionWithOtherAccount=Account transfer
|
||||
PaymentNumberUpdateSucceeded=Payment number updated succesfully
|
||||
PaymentNumberUpdateSucceeded=Payment number updated successfully
|
||||
PaymentNumberUpdateFailed=Payment number could not be updated
|
||||
PaymentDateUpdateSucceeded=Payment date update succesfully
|
||||
PaymentDateUpdateSucceeded=Payment date updated successfully
|
||||
PaymentDateUpdateFailed=Payment date could not be updated
|
||||
Transactions=Transactions
|
||||
BankTransactionLine=Bank transaction
|
||||
|
||||
@ -11,7 +11,7 @@ BillsSuppliersUnpaidForCompany=Unpaid supplier's invoices for %s
|
||||
BillsLate=Late payments
|
||||
BillsStatistics=Customers invoices statistics
|
||||
BillsStatisticsSuppliers=Suppliers invoices statistics
|
||||
DisabledBecauseNotErasable=Disabled because can not be erased
|
||||
DisabledBecauseNotErasable=Disabled because cannot be erased
|
||||
InvoiceStandard=Standard invoice
|
||||
InvoiceStandardAsk=Standard invoice
|
||||
InvoiceStandardDesc=This kind of invoice is the common invoice.
|
||||
@ -319,27 +319,27 @@ FrequencyPer_m=Every %s months
|
||||
FrequencyPer_y=Every %s years
|
||||
toolTipFrequency=Examples:<br /><b>Set 7 / day</b>: give a new invoice every 7 days<br /><b>Set 3 / month</b>: give a new invoice every 3 month
|
||||
NextDateToExecution=Date for next invoice generation
|
||||
DateLastGeneration=Date of last generation
|
||||
DateLastGeneration=Date of latest generation
|
||||
MaxPeriodNumber=Max nb of invoice generation
|
||||
NbOfGenerationDone=Nb of invoice generation already done
|
||||
InvoiceAutoValidate=Automatically validate invoice
|
||||
InvoiceAutoValidate=Validate invoices automatically
|
||||
GeneratedFromRecurringInvoice=Generated from template recurring invoice %s
|
||||
DateIsNotEnough=Date not yet reached
|
||||
DateIsNotEnough=Date not reached yet
|
||||
InvoiceGeneratedFromTemplate=Invoice %s generated from recurring template invoice %s
|
||||
# PaymentConditions
|
||||
PaymentConditionShortRECEP=Immediate
|
||||
PaymentConditionRECEP=Immediate
|
||||
PaymentConditionShort30D=30 days
|
||||
PaymentCondition30D=30 days
|
||||
PaymentConditionShort30DENDMONTH=30 days end of month
|
||||
PaymentCondition30DENDMONTH=30 days end of month
|
||||
PaymentConditionShort30DENDMONTH=30 days of month-end
|
||||
PaymentCondition30DENDMONTH=Within 30 days following the end of the month
|
||||
PaymentConditionShort60D=60 days
|
||||
PaymentCondition60D=60 days
|
||||
PaymentConditionShort60DENDMONTH=60 days end of month
|
||||
PaymentCondition60DENDMONTH=60 days end of month
|
||||
PaymentConditionShort60DENDMONTH=60 days of month-end
|
||||
PaymentCondition60DENDMONTH=Within 60 days following the end of the month
|
||||
PaymentConditionShortPT_DELIVERY=Delivery
|
||||
PaymentConditionPT_DELIVERY=On delivery
|
||||
PaymentConditionShortPT_ORDER=On order
|
||||
PaymentConditionShortPT_ORDER=Order
|
||||
PaymentConditionPT_ORDER=On order
|
||||
PaymentConditionShortPT_5050=50-50
|
||||
PaymentConditionPT_5050=50%% in advance, 50%% on delivery
|
||||
@ -356,12 +356,12 @@ PaymentTypeCB=Credit card
|
||||
PaymentTypeShortCB=Credit card
|
||||
PaymentTypeCHQ=Check
|
||||
PaymentTypeShortCHQ=Check
|
||||
PaymentTypeTIP=Interbank Payment
|
||||
PaymentTypeShortTIP=Interbank Payment
|
||||
PaymentTypeTIP=TIP (Documents against Payment)
|
||||
PaymentTypeShortTIP=TIP Payment
|
||||
PaymentTypeVAD=On line payment
|
||||
PaymentTypeShortVAD=On line payment
|
||||
PaymentTypeTRA=Traite
|
||||
PaymentTypeShortTRA=Traite
|
||||
PaymentTypeTRA=Bank draft
|
||||
PaymentTypeShortTRA=Draft
|
||||
PaymentTypeFAC=Factor
|
||||
PaymentTypeShortFAC=Factor
|
||||
BankDetails=Bank details
|
||||
@ -369,7 +369,7 @@ BankCode=Bank code
|
||||
DeskCode=Desk code
|
||||
BankAccountNumber=Account number
|
||||
BankAccountNumberKey=Key
|
||||
Residence=Domiciliation
|
||||
Residence=Direct debit
|
||||
IBANNumber=IBAN number
|
||||
IBAN=IBAN
|
||||
BIC=BIC/SWIFT
|
||||
@ -425,7 +425,7 @@ ExpectedToPay=Expected payment
|
||||
CantRemoveConciliatedPayment=Can't remove conciliated payment
|
||||
PayedByThisPayment=Paid by this payment
|
||||
ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid.
|
||||
ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
|
||||
ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
|
||||
AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid".
|
||||
ToMakePayment=Pay
|
||||
ToMakePaymentBack=Pay back
|
||||
@ -459,7 +459,7 @@ SituationDeduction=Situation subtraction
|
||||
Progress=Progress
|
||||
ModifyAllLines=Modify all lines
|
||||
CreateNextSituationInvoice=Create next situation
|
||||
NotLastInCycle=This invoice in not the last in cycle and must not be modified.
|
||||
NotLastInCycle=This invoice is not the latest in cycle and must not be modified.
|
||||
DisabledBecauseNotLastInCycle=The next situation already exists.
|
||||
DisabledBecauseFinal=This situation is final.
|
||||
CantBeLessThanMinPercent=The progress can't be smaller than its value in the previous situation.
|
||||
|
||||
@ -14,6 +14,6 @@ BehaviourOnClick=Behaviour when a URL is clicked
|
||||
CreateBookmark=Create bookmark
|
||||
SetHereATitleForLink=Set a title for the bookmark
|
||||
UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external http URL or a relative Dolibarr URL
|
||||
ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if a page opened by link must appear on current or new window
|
||||
ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if linked page must open in new window or not
|
||||
BookmarksManagement=Bookmarks management
|
||||
ListOfBookmarks=List of bookmarks
|
||||
|
||||
@ -1,69 +1,69 @@
|
||||
# Dolibarr language file - Source file is en_US - boxes
|
||||
BoxLastRssInfos=Rss information
|
||||
BoxLastProducts=Last %s products/services
|
||||
BoxProductsAlertStock=Products in stock alert
|
||||
BoxLastProductsInContract=Last %s contracted products/services
|
||||
BoxLastSupplierBills=Last supplier's invoices
|
||||
BoxLastCustomerBills=Last customer's invoices
|
||||
BoxOldestUnpaidCustomerBills=Oldest unpaid customer's invoices
|
||||
BoxOldestUnpaidSupplierBills=Oldest unpaid supplier's invoices
|
||||
BoxLastProposals=Last commercial proposals
|
||||
BoxLastProspects=Last modified prospects
|
||||
BoxLastCustomers=Last modified customers
|
||||
BoxLastSuppliers=Last modified suppliers
|
||||
BoxLastCustomerOrders=Last customer orders
|
||||
BoxLastValidatedCustomerOrders=Last validated customer orders
|
||||
BoxLastBooks=Last books
|
||||
BoxLastActions=Last actions
|
||||
BoxLastContracts=Last contracts
|
||||
BoxLastContacts=Last contacts/addresses
|
||||
BoxLastMembers=Last members
|
||||
BoxFicheInter=Last interventions
|
||||
BoxLastProducts=Latest %s products/services
|
||||
BoxProductsAlertStock=Stock alerts for products
|
||||
BoxLastProductsInContract=Latest %s contracted products/services
|
||||
BoxLastSupplierBills=Latest supplier invoices
|
||||
BoxLastCustomerBills=Latest customer invoices
|
||||
BoxOldestUnpaidCustomerBills=Oldest unpaid customer invoices
|
||||
BoxOldestUnpaidSupplierBills=Oldest unpaid supplier invoices
|
||||
BoxLastProposals=Latest commercial proposals
|
||||
BoxLastProspects=Latest modified prospects
|
||||
BoxLastCustomers=Latest modified customers
|
||||
BoxLastSuppliers=Latest modified suppliers
|
||||
BoxLastCustomerOrders=Latest customer orders
|
||||
BoxLastValidatedCustomerOrders=Latest validated customer orders
|
||||
BoxLastBooks=Latest bookmarks
|
||||
BoxLastActions=Latest actions
|
||||
BoxLastContracts=Latest contracts
|
||||
BoxLastContacts=Latest contacts/addresses
|
||||
BoxLastMembers=Latest members
|
||||
BoxFicheInter=Latest interventions
|
||||
BoxCurrentAccounts=Open accounts balance
|
||||
BoxSalesTurnover=Sales turnover
|
||||
BoxTotalUnpaidCustomerBills=Total unpaid customer's invoices
|
||||
BoxTotalUnpaidSuppliersBills=Total unpaid supplier's invoices
|
||||
BoxTitleLastBooks=Last %s recorded books
|
||||
BoxTitleLastBooks=Latest %s recorded bookmarks
|
||||
BoxTitleNbOfCustomers=Number of clients
|
||||
BoxTitleLastRssInfos=Last %s news from %s
|
||||
BoxTitleLastProducts=Last %s modified products/services
|
||||
BoxTitleLastRssInfos=Latest %s news from %s
|
||||
BoxTitleLastProducts=Latest %s modified products/services
|
||||
BoxTitleProductsAlertStock=Products in stock alert
|
||||
BoxTitleLastCustomerOrders=Last %s customer orders
|
||||
BoxTitleLastModifiedCustomerOrders=Last %s modified customer orders
|
||||
BoxTitleLastSuppliers=Last %s recorded suppliers
|
||||
BoxTitleLastCustomers=Last %s recorded customers
|
||||
BoxTitleLastModifiedSuppliers=Last %s modified suppliers
|
||||
BoxTitleLastModifiedCustomers=Last %s modified customers
|
||||
BoxTitleLastCustomersOrProspects=Last %s customers or prospects
|
||||
BoxTitleLastPropals=Last %s proposals
|
||||
BoxTitleLastModifiedPropals=Last %s modified proposals
|
||||
BoxTitleLastCustomerBills=Last %s customer's invoices
|
||||
BoxTitleLastModifiedCustomerBills=Last %s modified customer invoices
|
||||
BoxTitleLastSupplierBills=Last %s supplier's invoices
|
||||
BoxTitleLastModifiedSupplierBills=Last %s modified supplier invoices
|
||||
BoxTitleLastModifiedProspects=Last %s modified prospects
|
||||
BoxTitleLastProductsInContract=Last %s products/services in a contract
|
||||
BoxTitleLastModifiedMembers=Last %s members
|
||||
BoxTitleLastFicheInter=Last %s modified intervention
|
||||
BoxTitleLastCustomerOrders=Latest %s customer orders
|
||||
BoxTitleLastModifiedCustomerOrders=Latest %s modified customer orders
|
||||
BoxTitleLastSuppliers=Latest %s recorded suppliers
|
||||
BoxTitleLastCustomers=Latest %s recorded customers
|
||||
BoxTitleLastModifiedSuppliers=Latest %s modified suppliers
|
||||
BoxTitleLastModifiedCustomers=Latest %s modified customers
|
||||
BoxTitleLastCustomersOrProspects=Latest %s customers or prospects
|
||||
BoxTitleLastPropals=Latest %s proposals
|
||||
BoxTitleLastModifiedPropals=Latest %s modified proposals
|
||||
BoxTitleLastCustomerBills=Latest %s customer's invoices
|
||||
BoxTitleLastModifiedCustomerBills=Latest %s modified customer invoices
|
||||
BoxTitleLastSupplierBills=Latest %s supplier's invoices
|
||||
BoxTitleLastModifiedSupplierBills=Latest %s modified supplier invoices
|
||||
BoxTitleLastModifiedProspects=Latest %s modified prospects
|
||||
BoxTitleLastProductsInContract=Latest %s products/services in a contract
|
||||
BoxTitleLastModifiedMembers=Latest %s members
|
||||
BoxTitleLastFicheInter=Latest %s modified interventions
|
||||
BoxTitleOldestUnpaidCustomerBills=Oldest %s unpaid customer invoices
|
||||
BoxTitleOldestUnpaidSupplierBills=Oldest %s unpaid supplier invoices
|
||||
BoxTitleCurrentAccounts=Open accounts balances
|
||||
BoxTitleSalesTurnover=Sales turnover
|
||||
BoxTitleTotalUnpaidCustomerBills=Unpaid customer invoices
|
||||
BoxTitleTotalUnpaidSuppliersBills=Unpaid supplier invoices
|
||||
BoxTitleLastModifiedContacts=Last %s modified contacts/addresses
|
||||
BoxMyLastBookmarks=My last %s bookmarks
|
||||
BoxTitleLastModifiedContacts=Latest %s modified contacts/addresses
|
||||
BoxMyLastBookmarks=My latest %s bookmarks
|
||||
BoxOldestExpiredServices=Oldest active expired services
|
||||
BoxLastExpiredServices=Last %s oldest contacts with active expired services
|
||||
BoxTitleLastActionsToDo=Last %s actions to do
|
||||
BoxTitleLastContracts=Last %s contracts
|
||||
BoxTitleLastModifiedDonations=Last %s modified donations
|
||||
BoxTitleLastModifiedExpenses=Last %s modified expense reports
|
||||
BoxLastExpiredServices=Latest %s oldest contacts with active expired services
|
||||
BoxTitleLastActionsToDo=Latest %s actions to do
|
||||
BoxTitleLastContracts=Latest %s contracts
|
||||
BoxTitleLastModifiedDonations=Latest %s modified donations
|
||||
BoxTitleLastModifiedExpenses=Latest %s modified expense reports
|
||||
BoxGlobalActivity=Global activity (invoices, proposals, orders)
|
||||
BoxGoodCustomers=Good customers
|
||||
BoxTitleGoodCustomers=%s Good customers
|
||||
FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Last successfull refresh date: %s
|
||||
LastRefreshDate=Last refresh date
|
||||
FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Latest successfull refresh date: %s
|
||||
LastRefreshDate=Latest refresh date
|
||||
NoRecordedBookmarks=No bookmarks defined.
|
||||
ClickToAdd=Click here to add.
|
||||
NoRecordedCustomers=No recorded customers
|
||||
@ -82,8 +82,8 @@ NoContractedProducts=No products/services contracted
|
||||
NoRecordedContracts=No recorded contracts
|
||||
NoRecordedInterventions=No recorded interventions
|
||||
BoxLatestSupplierOrders=Latest supplier orders
|
||||
BoxTitleLatestSupplierOrders=Last %s supplier orders
|
||||
BoxTitleLatestModifiedSupplierOrders=Last %s modified supplier orders
|
||||
BoxTitleLatestSupplierOrders=Latest %s supplier orders
|
||||
BoxTitleLatestModifiedSupplierOrders=Latest %s modified supplier orders
|
||||
NoSupplierOrder=No recorded supplier order
|
||||
BoxCustomersInvoicesPerMonth=Customer invoices per month
|
||||
BoxSuppliersInvoicesPerMonth=Supplier invoices per month
|
||||
@ -96,5 +96,5 @@ BoxProductDistributionFor=Distribution of %s for %s
|
||||
ForCustomersInvoices=Customers invoices
|
||||
ForCustomersOrders=Customers orders
|
||||
ForProposals=Proposals
|
||||
LastXMonthRolling=The last %s month rolling
|
||||
LastXMonthRolling=The latest %s month rolling
|
||||
ChooseBoxToAdd=Add widget to your dashboard...
|
||||
|
||||
@ -16,8 +16,8 @@ Rendez-Vous=Rendezvous
|
||||
ConfirmDeleteAction=Are you sure you want to delete this event ?
|
||||
CardAction=Event card
|
||||
PercentDone=Percentage complete
|
||||
ActionOnCompany=Event about company
|
||||
ActionOnContact=Event about contact
|
||||
ActionOnCompany=Related company
|
||||
ActionOnContact=Related contact
|
||||
TaskRDV=Meetings
|
||||
TaskRDVWith=Meeting with %s
|
||||
ShowTask=Show task
|
||||
@ -35,9 +35,9 @@ ShowCustomer=Show customer
|
||||
ShowProspect=Show prospect
|
||||
ListOfProspects=List of prospects
|
||||
ListOfCustomers=List of customers
|
||||
LastDoneTasks=Last %s completed tasks
|
||||
LastRecordedTasks=Last recorded tasks
|
||||
LastActionsToDo=Last %s oldest actions not completed
|
||||
LastDoneTasks=Latest %s completed tasks
|
||||
LastRecordedTasks=Latest recorded tasks
|
||||
LastActionsToDo=Oldest %s not completed actions
|
||||
DoneAndToDoActionsFor=Completed and To do events for %s
|
||||
DoneAndToDoActions=Completed and To do events
|
||||
DoneActions=Completed events
|
||||
@ -94,4 +94,4 @@ StatusProsp=Prospect status
|
||||
DraftPropals=Draft commercial proposals
|
||||
SearchPropal=Search a commercial proposal
|
||||
CommercialDashboard=Commercial summary
|
||||
NoLimit=No limit
|
||||
NoLimit=No limit
|
||||
|
||||
@ -302,7 +302,7 @@ RequiredIfCustomer=Required if third party is a customer or prospect
|
||||
RequiredIfSupplier=Required if third party is a supplier
|
||||
ValidityControledByModule=Validity controled by module
|
||||
ThisIsModuleRules=This is rules for this module
|
||||
LastProspect=Last
|
||||
LastProspect=Latest
|
||||
ProspectToContact=Prospect to contact
|
||||
CompanyDeleted=Company "%s" deleted from database.
|
||||
ListOfContacts=List of contacts/addresses
|
||||
@ -328,7 +328,7 @@ NoContactForAnyContract=This contact is not a contact for any contract
|
||||
NoContactForAnyInvoice=This contact is not a contact for any invoice
|
||||
NewContact=New contact
|
||||
NewContactAddress=New contact/address
|
||||
LastContacts=Last contacts
|
||||
LastContacts=Latest contacts
|
||||
MyContacts=My contacts
|
||||
Phones=Phones
|
||||
Capital=Capital
|
||||
@ -343,7 +343,7 @@ VATIntraCheckableOnEUSite=Check Intracomunnautary VAT on European commision site
|
||||
VATIntraManualCheck=You can also check manually from european web site <a href="%s" target="_blank">%s</a>
|
||||
ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s).
|
||||
NorProspectNorCustomer=Nor prospect, nor customer
|
||||
JuridicalStatus=Juridical status
|
||||
JuridicalStatus=Legal form
|
||||
Staff=Staff
|
||||
ProspectLevelShort=Potential
|
||||
ProspectLevel=Prospect potential
|
||||
@ -370,12 +370,12 @@ TE_PRIVATE=Private individual
|
||||
TE_OTHER=Other
|
||||
StatusProspect-1=Do not contact
|
||||
StatusProspect0=Never contacted
|
||||
StatusProspect1=To contact
|
||||
StatusProspect1=To be contacted
|
||||
StatusProspect2=Contact in process
|
||||
StatusProspect3=Contact done
|
||||
ChangeDoNotContact=Change status to 'Do not contact'
|
||||
ChangeNeverContacted=Change status to 'Never contacted'
|
||||
ChangeToContact=Change status to 'To contact'
|
||||
ChangeToContact=Change status to 'To be contacted'
|
||||
ChangeContactInProcess=Change status to 'Contact in process'
|
||||
ChangeContactDone=Change status to 'Contact done'
|
||||
ProspectsByStatus=Prospects by status
|
||||
@ -400,28 +400,28 @@ DeliveriesAddress=Delivery addresses
|
||||
DeliveryAddress=Delivery address
|
||||
DeliveryAddressLabel=Delivery address label
|
||||
DeleteDeliveryAddress=Delete a delivery address
|
||||
ConfirmDeleteDeliveryAddress=Are you sure you want to delete this delivery address?
|
||||
ConfirmDeleteDeliveryAddress=Are you sure you want to delete this delivery address ?
|
||||
NewDeliveryAddress=New delivery address
|
||||
AddDeliveryAddress=Create address
|
||||
AddAddress=Create address
|
||||
AddDeliveryAddress=Add delivery address
|
||||
AddAddress=Add address
|
||||
NoOtherDeliveryAddress=No alternative delivery address defined
|
||||
SupplierCategory=Supplier category
|
||||
JuridicalStatus200=Independant
|
||||
JuridicalStatus200=Independent
|
||||
DeleteFile=Delete file
|
||||
ConfirmDeleteFile=Are you sure you want to delete this file?
|
||||
AllocateCommercial=Assigned to sale representative
|
||||
AllocateCommercial=Assigned to sales representative
|
||||
SelectCountry=Select a country
|
||||
SelectCompany=Select a third party
|
||||
Organization=Organization
|
||||
AutomaticallyGenerated=Automatically generated
|
||||
FiscalYearInformation=Information on the fiscal year
|
||||
FiscalMonthStart=Starting month of the fiscal year
|
||||
YouMustCreateContactFirst=You must create emails contacts for third party first to be able to add emails notifications.
|
||||
YouMustCreateContactFirst=To be able to add email notifications, you must first insert email contacts for the third party
|
||||
ListSuppliersShort=List of suppliers
|
||||
ListProspectsShort=List of prospects
|
||||
ListCustomersShort=List of customers
|
||||
ThirdPartiesArea=Third parties and contact area
|
||||
LastModifiedThirdParties=Last %s modified third parties
|
||||
LastModifiedThirdParties=Latest %s modified third parties
|
||||
UniqueThirdParties=Total of unique third parties
|
||||
InActivity=Open
|
||||
ActivityCeased=Closed
|
||||
@ -429,7 +429,7 @@ ActivityStateFilter=Activity status
|
||||
ProductsIntoElements=List of products/services into %s
|
||||
CurrentOutstandingBill=Current outstanding bill
|
||||
OutstandingBill=Max. for outstanding bill
|
||||
OutstandingBillReached=Reached max. for outstanding bill
|
||||
OutstandingBillReached=Max. for outstanding bill reached
|
||||
MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for supplier code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
|
||||
LeopardNumRefModelDesc=The code is free. This code can be modified at any time.
|
||||
ManagingDirectors=Manager(s) name (CEO, director, president...)
|
||||
@ -440,8 +440,8 @@ MergeThirdparties=Merge third parties
|
||||
ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one ? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one.
|
||||
ThirdpartiesMergeSuccess=Thirdparties have been merged
|
||||
ErrorThirdpartiesMerge=There was an error when deleting the thirdparties. Please check the log. Changes have been reverted.
|
||||
SaleRepresentativeLogin=Login of sale representative
|
||||
SaleRepresentativeFirstname=Firstname of sale representative
|
||||
SaleRepresentativeLastname=Lastname of sale representative
|
||||
SaleRepresentativeLogin=Login of sales representative
|
||||
SaleRepresentativeFirstname=Firstname of sales representative
|
||||
SaleRepresentativeLastname=Lastname of sales representative
|
||||
ModelModulesContact=Document Models of contact
|
||||
ModelModulesThirdParties=Document models of third party
|
||||
|
||||
@ -121,11 +121,11 @@ ErrorWrongAccountancyCodeForCompany=Bad customer accountancy code for %s
|
||||
SuppliersProductsSellSalesTurnover=The generated turnover by the sales of supplier's products.
|
||||
CheckReceipt=Check deposit
|
||||
CheckReceiptShort=Check deposit
|
||||
LastCheckReceiptShort=Last %s check receipts
|
||||
LastCheckReceiptShort=Latest %s check receipts
|
||||
NewCheckReceipt=New discount
|
||||
NewCheckDeposit=New check deposit
|
||||
NewCheckDepositOn=Create receipt for deposit on account: %s
|
||||
NoWaitingChecks=No checks waiting for deposit.
|
||||
NoWaitingChecks=No checks awaiting deposit.
|
||||
DateChequeReceived=Check reception date
|
||||
NbOfCheques=Nb of checks
|
||||
PaySocialContribution=Pay a social/fiscal tax
|
||||
@ -225,4 +225,5 @@ BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Based on t
|
||||
SameCountryCustomersWithVAT=National customers report
|
||||
BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Based on the two first letters of the VAT number being the same as your own company's country code
|
||||
LinkedFichinter=Link to an intervention
|
||||
ImportDataset_tax_1=Import social/fiscal taxes
|
||||
ImportDataset_tax_1=Import social/fiscal taxes
|
||||
ErrorBankAccountNotFound=Error: Bank account not found
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# Dolibarr language file - Source file is en_US - contracts
|
||||
ContractsArea=Contracts area
|
||||
ListOfContracts=List of contracts
|
||||
LastModifiedContracts=Last %s modified contracts
|
||||
LastModifiedContracts=Latest %s modified contracts
|
||||
AllContracts=All contracts
|
||||
ContractCard=Contract card
|
||||
ContractStatus=Contract status
|
||||
@ -58,9 +58,9 @@ ListOfRunningContractsLines=List of running contract lines
|
||||
ListOfRunningServices=List of running services
|
||||
NotActivatedServices=Inactive services (among validated contracts)
|
||||
BoardNotActivatedServices=Services to activate among validated contracts
|
||||
LastContracts=Last %s contracts
|
||||
LastActivatedServices=Last %s activated services
|
||||
LastModifiedServices=Last %s modified services
|
||||
LastContracts=Latest %s contracts
|
||||
LastActivatedServices=Latest %s activated services
|
||||
LastModifiedServices=Latest %s modified services
|
||||
EditServiceLine=Edit service line
|
||||
ContractStartDate=Start date
|
||||
ContractEndDate=End date
|
||||
|
||||
@ -40,8 +40,8 @@ CronNone=None
|
||||
CronDtStart=Not before
|
||||
CronDtEnd=Not after
|
||||
CronDtNextLaunch=Next execution
|
||||
CronDtLastLaunch=Start date of last execution
|
||||
CronDtLastResult=End date of last execution
|
||||
CronDtLastLaunch=Start date of latest execution
|
||||
CronDtLastResult=End date of latest execution
|
||||
CronFrequency=Frequency
|
||||
CronClass=Class
|
||||
CronMethod=Method
|
||||
@ -63,7 +63,7 @@ CronHourStart= Start hour and date of job
|
||||
CronEvery=Execute job each
|
||||
CronObject=Instance/Object to create
|
||||
CronArgs=Parameters
|
||||
CronSaveSucess=Save succesfully
|
||||
CronSaveSucess=Save successfully
|
||||
CronNote=Comment
|
||||
CronFieldMandatory=Fields %s is mandatory
|
||||
CronErrEndDateStartDt=End date cannot be before start date
|
||||
|
||||
@ -138,7 +138,7 @@ CountryLS=Lesotho
|
||||
CountryLR=Liberia
|
||||
CountryLY=Libyan
|
||||
CountryLI=Liechtenstein
|
||||
CountryLT=Lituania
|
||||
CountryLT=Lithuania
|
||||
CountryLU=Luxembourg
|
||||
CountryMO=Macao
|
||||
CountryMK=Macedonia, the former Yugoslav of
|
||||
|
||||
@ -29,7 +29,7 @@ ValidPromess=Validate promise
|
||||
DonationReceipt=Donation receipt
|
||||
BuildDonationReceipt=Build receipt
|
||||
DonationsModels=Documents models for donation receipts
|
||||
LastModifiedDonations=Last %s modified donations
|
||||
LastModifiedDonations=Latest %s modified donations
|
||||
SearchADonation=Search a donation
|
||||
DonationRecipient=Donation recipient
|
||||
ThankYou=Thank You
|
||||
|
||||
@ -17,7 +17,7 @@ ErrorFailToCreateFile=Failed to create file '<b>%s</b>'.
|
||||
ErrorFailToRenameDir=Failed to rename directory '<b>%s</b>' into '<b>%s</b>'.
|
||||
ErrorFailToCreateDir=Failed to create directory '<b>%s</b>'.
|
||||
ErrorFailToDeleteDir=Failed to delete directory '<b>%s</b>'.
|
||||
ErrorFailedToDeleteJoinedFiles=Can not delete environment because there is some joined files. Remove join files first.
|
||||
ErrorFailedToDeleteJoinedFiles=Cannot delete environment because joined files are present. Remove joined files first.
|
||||
ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type.
|
||||
ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only.
|
||||
ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different.
|
||||
@ -41,7 +41,7 @@ ErrorBadDateFormat=Value '%s' has wrong date format
|
||||
ErrorWrongDate=Date is not correct!
|
||||
ErrorFailedToWriteInDir=Failed to write in directory %s
|
||||
ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s)
|
||||
ErrorUserCannotBeDelete=User can not be deleted. May be it is associated on Dolibarr entities.
|
||||
ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
|
||||
ErrorFieldsRequired=Some required fields were not filled.
|
||||
ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter <b>safe_mode</b> is enabled on this PHP, check that Dolibarr php files owns to web server user (or group).
|
||||
ErrorNoMailDefinedForThisUser=No mail defined for this user
|
||||
@ -129,7 +129,7 @@ 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.
|
||||
ErrorToConnectToMysqlCheckInstance=Connect to database fails. Check Mysql server is running (in most cases, you can launch it from command line with 'sudo /etc/init.d/mysql start').
|
||||
ErrorFailedToAddContact=Failed to add contact
|
||||
ErrorDateMustBeBeforeToday=The date can not be greater than today
|
||||
ErrorDateMustBeBeforeToday=The date cannot be greater than today
|
||||
ErrorPaymentModeDefinedToWithoutSetup=A payment mode was set to type %s but setup of module Invoice was not completed to define information to show for this payment mode.
|
||||
ErrorPHPNeedModule=Error, your PHP must have module <b>%s</b> installed to use this feature.
|
||||
ErrorOpenIDSetupNotComplete=You setup Dolibarr config file to allow OpenID authentication, but URL of OpenID service is not defined into constant %s
|
||||
|
||||
@ -80,7 +80,7 @@ alreadyCPexist=A leave request has already been done on this period.
|
||||
UserName=Name
|
||||
FirstDayOfHoliday=First day of vacation
|
||||
LastDayOfHoliday=Last day of vacation
|
||||
BoxTitleLastLeaveRequests=Last %s modified leave requests
|
||||
BoxTitleLastLeaveRequests=Latest %s modified leave requests
|
||||
HolidaysMonthlyUpdate=Monthly update
|
||||
ManualUpdate=Manual update
|
||||
HolidaysCancelation=Leave request cancelation
|
||||
@ -91,8 +91,8 @@ DescOptionCP=Description of the option
|
||||
ValueOptionCP=Value
|
||||
GroupToValidateCP=Group with the ability to approve leave requests
|
||||
ConfirmConfigCP=Validate the configuration
|
||||
LastUpdateCP=Last automatic update of leaves allocation
|
||||
MonthOfLastMonthlyUpdate=Month of last automatic update of leaves allocation
|
||||
LastUpdateCP=Latest automatic update of leaves allocation
|
||||
MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
|
||||
UpdateConfCPOK=Updated successfully.
|
||||
ErrorUpdateConfCP=An error occurred during the update, please try again.
|
||||
AddCPforUsers=Please add the balance of leaves allocation of users by <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">clicking here</a>.
|
||||
@ -143,4 +143,4 @@ NewByMonth=Added per month
|
||||
Affect=Followed by a counter
|
||||
FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
|
||||
NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
|
||||
GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
|
||||
GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
|
||||
|
||||
@ -82,7 +82,7 @@ SetupEnd=End of setup
|
||||
SystemIsInstalled=This installation is complete.
|
||||
SystemIsUpgraded=Dolibarr has been upgraded successfully.
|
||||
YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (appearance, features, ...). To do this, please follow the link below:
|
||||
AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfuly.
|
||||
AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
|
||||
GoToDolibarr=Go to Dolibarr
|
||||
GoToSetupArea=Go to Dolibarr (setup area)
|
||||
MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
|
||||
@ -159,7 +159,7 @@ MigrationSupplierOrder=Data migration for supplier's orders
|
||||
MigrationProposal=Data migration for commercial proposals
|
||||
MigrationInvoice=Data migration for customer's invoices
|
||||
MigrationContract=Data migration for contracts
|
||||
MigrationSuccessfullUpdate=Upgrade successful
|
||||
MigrationSuccessfullUpdate=Upgrade successfull
|
||||
MigrationUpdateFailed=Failed upgrade process
|
||||
MigrationRelationshipTables=Data migration for relationship tables (%s)
|
||||
MigrationPaymentsUpdate=Payment data correction
|
||||
@ -173,7 +173,7 @@ MigrationContractsLineCreation=Create contract line for contract ref %s
|
||||
MigrationContractsNothingToUpdate=No more things to do
|
||||
MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
|
||||
MigrationContractsEmptyDatesUpdate=Contract empty date correction
|
||||
MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfuly
|
||||
MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
|
||||
MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
|
||||
MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
|
||||
MigrationContractsInvalidDatesUpdate=Bad value date contract correction
|
||||
@ -181,7 +181,7 @@ MigrationContractsInvalidDateFix=Correct contract %s (Contract date=%s, Starting
|
||||
MigrationContractsInvalidDatesNumber=%s contracts modified
|
||||
MigrationContractsInvalidDatesNothingToUpdate=No date with bad value to correct
|
||||
MigrationContractsIncoherentCreationDateUpdate=Bad value contract creation date correction
|
||||
MigrationContractsIncoherentCreationDateUpdateSuccess=Bad value contract creation date correction done succesfuly
|
||||
MigrationContractsIncoherentCreationDateUpdateSuccess=Bad value contract creation date correction done successfully
|
||||
MigrationContractsIncoherentCreationDateNothingToUpdate=No bad value for contract creation date to correct
|
||||
MigrationReopeningContracts=Open contract closed by error
|
||||
MigrationReopenThisContract=Reopen contract %s
|
||||
@ -205,4 +205,4 @@ MigrationEvents=Migration of events to add event owner into assignement table
|
||||
MigrationReloadModule=Reload module %s
|
||||
ShowNotAvailableOptions=Show not available options
|
||||
HideNotAvailableOptions=Hide not available options
|
||||
ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
|
||||
ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
|
||||
|
||||
@ -7,7 +7,7 @@ AddIntervention=Create intervention
|
||||
ListOfInterventions=List of interventions
|
||||
EditIntervention=Edit intervention
|
||||
ActionsOnFicheInter=Actions on intervention
|
||||
LastInterventions=Last %s interventions
|
||||
LastInterventions=Latest %s interventions
|
||||
AllInterventions=All interventions
|
||||
CreateDraftIntervention=Create draft
|
||||
CustomerDoesNotHavePrefix=Customer does not have a prefix
|
||||
@ -41,7 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted
|
||||
SearchAnIntervention=Search an intervention
|
||||
InterventionsArea=Interventions area
|
||||
DraftFichinter=Draft interventions
|
||||
LastModifiedInterventions=Last %s modified interventions
|
||||
LastModifiedInterventions=Latest %s modified interventions
|
||||
##### Types de contacts #####
|
||||
TypeContact_fichinter_internal_INTERREPFOLL=Representative following-up intervention
|
||||
TypeContact_fichinter_internal_INTERVENING=Intervening
|
||||
|
||||
@ -3,8 +3,8 @@ MailmanSpipSetup=Mailman and SPIP module Setup
|
||||
MailmanTitle=Mailman mailing list system
|
||||
TestSubscribe=To test subscription to Mailman lists
|
||||
TestUnSubscribe=To test unsubscribe from Mailman lists
|
||||
MailmanCreationSuccess=Subscription test was executed succesfully
|
||||
MailmanDeletionSuccess=Unsubscription test was executed succesfully
|
||||
MailmanCreationSuccess=Subscription test was executed successfully
|
||||
MailmanDeletionSuccess=Unsubscription test was executed successfully
|
||||
SynchroMailManEnabled=A Mailman update will be performed
|
||||
SynchroSpipEnabled=A Spip update will be performed
|
||||
DescADHERENT_MAILMAN_ADMINPW=Mailman administrator password
|
||||
@ -23,5 +23,5 @@ DeleteIntoSpip=Remove from SPIP
|
||||
DeleteIntoSpipConfirmation=Are you sure you want to remove this member from SPIP?
|
||||
DeleteIntoSpipError=Failed to suppress the user from 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
|
||||
SuccessToAddToMailmanList=%s successfully added to mailman list %s or SPIP database
|
||||
SuccessToRemoveToMailmanList=%s successfully removed from mailman list %s or SPIP database
|
||||
|
||||
@ -70,7 +70,7 @@ CloneEMailing=Clone Emailing
|
||||
ConfirmCloneEMailing=Are you sure you want to clone this emailing ?
|
||||
CloneContent=Clone message
|
||||
CloneReceivers=Cloner recipients
|
||||
DateLastSend=Date of last sending
|
||||
DateLastSend=Date of latest sending
|
||||
DateSending=Date sending
|
||||
SentTo=Sent to <b>%s</b>
|
||||
MailingStatusRead=Read
|
||||
@ -170,4 +170,4 @@ AdvTgtSaveFilter=Save filter
|
||||
AdvTgtCreateFilter=Create filter
|
||||
AdvTgtOrCreateNewFilter=Name of new filter
|
||||
NoContactWithCategoryFound=No contact/address with a category found
|
||||
NoContactLinkedToThirdpartieWithCategoryFound=No contact/address with a category found
|
||||
NoContactLinkedToThirdpartieWithCategoryFound=No contact/address with a category found
|
||||
|
||||
@ -36,8 +36,8 @@ ErrorFieldRequired=Field '%s' is required
|
||||
ErrorFieldFormat=Field '%s' has a bad value
|
||||
ErrorFileDoesNotExists=File %s does not exist
|
||||
ErrorFailedToOpenFile=Failed to open file %s
|
||||
ErrorCanNotCreateDir=Can not create dir %s
|
||||
ErrorCanNotReadDir=Can not read dir %s
|
||||
ErrorCanNotCreateDir=Cannot create dir %s
|
||||
ErrorCanNotReadDir=Cannot read dir %s
|
||||
ErrorConstantNotDefined=Parameter %s not defined
|
||||
ErrorUnknown=Unknown error
|
||||
ErrorSQL=SQL Error
|
||||
@ -73,7 +73,7 @@ FileNotUploaded=The file was not uploaded
|
||||
FileUploaded=The file was successfully uploaded
|
||||
FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
|
||||
NbOfEntries=Nb of entries
|
||||
GoToWikiHelpPage=Read online help (need Internet access)
|
||||
GoToWikiHelpPage=Read online help (Internet access needed)
|
||||
GoToHelpPage=Read help
|
||||
RecordSaved=Record saved
|
||||
RecordDeleted=Record deleted
|
||||
@ -94,12 +94,12 @@ ConnectedSince=Connected since
|
||||
AuthenticationMode=Authentification mode
|
||||
RequestedUrl=Requested Url
|
||||
DatabaseTypeManager=Database type manager
|
||||
RequestLastAccess=Request for last database access
|
||||
RequestLastAccessInError=Request for last database access in error
|
||||
ReturnCodeLastAccessInError=Return code for last database access in error
|
||||
InformationLastAccessInError=Information for last database access in error
|
||||
RequestLastAccess=Latest database access request
|
||||
RequestLastAccessInError=Latest database access request error
|
||||
ReturnCodeLastAccessInError=Return code for latest database access request error
|
||||
InformationLastAccessInError=Information for latest database access request error
|
||||
DolibarrHasDetectedError=Dolibarr has detected a technical error
|
||||
InformationToHelpDiagnose=This is information that can help diagnostic
|
||||
InformationToHelpDiagnose=This information can be useful for diagnostic
|
||||
MoreInformation=More information
|
||||
TechnicalInformation=Technical information
|
||||
TechnicalID=Technical ID
|
||||
@ -142,7 +142,7 @@ Update=Update
|
||||
AddActionToDo=Add event to do
|
||||
AddActionDone=Add event done
|
||||
Close=Close
|
||||
CloseBox=Remove box of your dashboard
|
||||
CloseBox=Remove box from your dashboard
|
||||
Confirm=Confirm
|
||||
ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b> ?
|
||||
Delete=Delete
|
||||
@ -158,6 +158,7 @@ Save=Save
|
||||
SaveAs=Save As
|
||||
TestConnection=Test connection
|
||||
ToClone=Clone
|
||||
ConfirmCloneAction=Are you sure you want to clone this event ?
|
||||
ConfirmClone=Choose data you want to clone :
|
||||
NoCloneOptionsSpecified=No data to clone defined.
|
||||
Of=of
|
||||
@ -176,7 +177,6 @@ Upload=Send file
|
||||
ToLink=Link
|
||||
Select=Select
|
||||
Choose=Choose
|
||||
ChooseLangage=Please choose your language
|
||||
Resize=Resize
|
||||
Recenter=Recenter
|
||||
Author=Author
|
||||
@ -530,7 +530,7 @@ ReportName=Report name
|
||||
ReportPeriod=Report period
|
||||
ReportDescription=Description
|
||||
Report=Report
|
||||
Keyword=Mot clé
|
||||
Keyword=Keyword
|
||||
Legend=Legend
|
||||
FillTownFromZip=Fill city from zip
|
||||
Fill=Fill
|
||||
@ -550,8 +550,8 @@ NbOfCustomers=Number of customers
|
||||
NbOfLines=Number of lines
|
||||
NbOfObjects=Number of objects
|
||||
NbOfReferers=Number of referrers
|
||||
NbOfObjectReferers=Number of refering objects
|
||||
Referers=Refering objects
|
||||
NbOfObjectReferers=Number of related items
|
||||
Referers=Related items
|
||||
TotalQuantity=Total quantity
|
||||
DateFromTo=From %s to %s
|
||||
DateFrom=From %s
|
||||
@ -594,7 +594,7 @@ Priority=Priority
|
||||
SendByMail=Send by EMail
|
||||
MailSentBy=Email sent by
|
||||
TextUsedInTheMessageBody=Email body
|
||||
SendAcknowledgementByMail=Send Ack. by email
|
||||
SendAcknowledgementByMail=Send confirmation email
|
||||
EMail=E-mail
|
||||
NoEMail=No email
|
||||
NoMobilePhone=No mobile phone
|
||||
@ -746,7 +746,7 @@ Sincerely=Sincerely
|
||||
DeleteLine=Delete line
|
||||
ConfirmDeleteLine=Are you sure you want to delete this line ?
|
||||
NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records
|
||||
TooManyRecordForMassAction=Too many records selected for mass action. Such action are restriced to a list of %s records.
|
||||
TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
|
||||
MassFilesArea=Area for files built by mass actions
|
||||
HideTempMassFilesArea=Hide area of files built by mass actions
|
||||
ShowTempMassFilesArea=Show area of files built by mass actions
|
||||
@ -804,4 +804,4 @@ SearchIntoSupplierProposals=Supplier proposals
|
||||
SearchIntoInterventions=Interventions
|
||||
SearchIntoContracts=Contracts
|
||||
SearchIntoExpenseReports=Expense reports
|
||||
SearchIntoCustomerShipments=Customer shipments
|
||||
SearchIntoCustomerShipments=Customer shipments
|
||||
|
||||
@ -114,9 +114,9 @@ EnablePublicSubscriptionForm=Enable the public auto-subscription form
|
||||
MemberPublicLinks=Public links/pages
|
||||
ExportDataset_member_1=Members and subscriptions
|
||||
ImportDataset_member_1=Members
|
||||
LastMembers=Last %s members
|
||||
LastMembersModified=Last %s modified members
|
||||
LastSubscriptionsModified=Last %s modified subscriptions
|
||||
LastMembers=Latest %s members
|
||||
LastMembersModified=Latest %s modified members
|
||||
LastSubscriptionsModified=Latest %s modified subscriptions
|
||||
AttributeName=Attribute name
|
||||
String=String
|
||||
Text=Text
|
||||
@ -204,4 +204,4 @@ MembersByRegion=This screen show you statistics on members by region.
|
||||
VATToUseForSubscriptions=VAT rate to use for subscriptions
|
||||
NoVatOnSubscription=No TVA for subscriptions
|
||||
MEMBER_PAYONLINE_SENDEMAIL=Email to use for email warning when Dolibarr receive a confirmation of a validated payment for a subscription (Example: paymentdone@example.com)
|
||||
ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Product used for subscription line into invoice: %s
|
||||
ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Product used for subscription line into invoice: %s
|
||||
|
||||
17
htdocs/langs/en_US/multicurrency.lang
Normal file
17
htdocs/langs/en_US/multicurrency.lang
Normal file
@ -0,0 +1,17 @@
|
||||
# ADMIN
|
||||
RecordSaved=Currency rate added
|
||||
RecordDeleted=Currency rate deleted
|
||||
ErrorAddRateFail=Error in added rate
|
||||
ErrorAddCurrencyFail=Error in added currency
|
||||
ErrorDeleteCurrencyFail=Error delete fail
|
||||
multicurrency_syncronize_error=Error in synchronization
|
||||
multicurrency_useOriginTx=Use the origin rate
|
||||
CurrencyLayerAccount=CurrencyLayer API
|
||||
CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality<br />Get your <b>API key</b><br />If you use a free account you can't change the <b>currency source</b> (USD by default)<br />But if your main currency isn't USD you can use the <b>alternate currency source</b> to force you main currency<br /><br />You are limited at 1000 synchronizations per month
|
||||
multicurrency_appId=API key
|
||||
multicurrency_appCurrencySource=Currency source
|
||||
multicurrency_alternateCurrencySource= Alternate currency souce
|
||||
CurrenciesUsed=Currencies used
|
||||
CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you <b>proposals</b>, <b>orders</b>, etc.
|
||||
Rate=Rate
|
||||
rate=rate
|
||||
@ -87,11 +87,11 @@ NoDraftOrders=No draft orders
|
||||
NoOrder=No order
|
||||
NoSupplierOrder=No supplier order
|
||||
OtherOrders=Other orders
|
||||
LastOrders=Last %s customer orders
|
||||
LastCustomerOrders=Last %s customer orders
|
||||
LastSupplierOrders=Last %s supplier orders
|
||||
LastModifiedOrders=Last %s modified orders
|
||||
LastClosedOrders=Last %s closed orders
|
||||
LastOrders=Latest %s customer orders
|
||||
LastCustomerOrders=Latest %s customer orders
|
||||
LastSupplierOrders=Latest %s supplier orders
|
||||
LastModifiedOrders=Latest %s modified orders
|
||||
LastClosedOrders=Latest %s closed orders
|
||||
AllOrders=All orders
|
||||
NbOfOrders=Number of orders
|
||||
OrdersStatistics=Order's statistics
|
||||
|
||||
@ -3,12 +3,12 @@ SecurityCode=Security code
|
||||
Calendar=Calendar
|
||||
NumberingShort=N°
|
||||
Tools=Tools
|
||||
ToolsDesc=This area is dedicated to group miscellaneous tools not available into other menu entries.<br><br>Those tools can be reached from menu on the side.
|
||||
ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br /><br />All the tools can be reached in the left menu.
|
||||
Birthday=Birthday
|
||||
BirthdayDate=Birthday
|
||||
BirthdayDate=Birthday date
|
||||
DateToBirth=Date of birth
|
||||
BirthdayAlertOn= birthday alert active
|
||||
BirthdayAlertOff= birthday alert inactive
|
||||
BirthdayAlertOn=birthday alert active
|
||||
BirthdayAlertOff=birthday alert inactive
|
||||
Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
|
||||
Notify_FICHINTER_VALIDATE=Intervention validated
|
||||
Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
|
||||
@ -69,8 +69,8 @@ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find her
|
||||
PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
|
||||
PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
|
||||
PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__
|
||||
DemoDesc=Dolibarr is a compact ERP/CRM composed by several functional modules. A demo that includes all modules does not mean anything as this never occurs. So, several demo profiles are available.
|
||||
ChooseYourDemoProfil=Choose the demo profile that match your activity...
|
||||
DemoDesc=Dolibarr is a compact ERP/CRM supporting several functional modules. A demo showcasing all modules makes no sense as this scenario never occurs. So, several demo profiles are available.
|
||||
ChooseYourDemoProfil=Choose the demo profile that best suits your needs...
|
||||
DemoFundation=Manage members of a foundation
|
||||
DemoFundation2=Manage members and bank account of a foundation
|
||||
DemoCompanyServiceOnly=Manage a freelance activity selling service only
|
||||
@ -84,22 +84,22 @@ ValidatedBy=Validated by %s
|
||||
CanceledBy=Canceled by %s
|
||||
ClosedBy=Closed by %s
|
||||
CreatedById=User id who created
|
||||
ModifiedById=User id who made last change
|
||||
ModifiedById=User id who made latest change
|
||||
ValidatedById=User id who validated
|
||||
CanceledById=User id who canceled
|
||||
ClosedById=User id who closed
|
||||
CreatedByLogin=User login who created
|
||||
ModifiedByLogin=User login who made last change
|
||||
ModifiedByLogin=User login who made latest change
|
||||
ValidatedByLogin=User login who validated
|
||||
CanceledByLogin=User login who canceled
|
||||
ClosedByLogin=User login who closed
|
||||
FileWasRemoved=File %s was removed
|
||||
DirWasRemoved=Directory %s was removed
|
||||
FeatureNotYetAvailableShort=Available in a next version
|
||||
FeatureNotYetAvailable=Feature not yet available in this version
|
||||
FeatureExperimental=Experimental feature. Not stable in this version
|
||||
FeatureDevelopment=Development feature. Not stable in this version
|
||||
FeaturesSupported=Features supported
|
||||
FeatureNotYetAvailableShort=Available in a future version
|
||||
FeatureNotYetAvailable=Feature not yet available in the current version
|
||||
FeatureExperimental=Experimental feature. Not stable in the current version
|
||||
FeatureDevelopment=Development feature. Not stable in the current version
|
||||
FeaturesSupported=Supported features
|
||||
Width=Width
|
||||
Height=Height
|
||||
Depth=Depth
|
||||
@ -111,7 +111,7 @@ CalculatedWeight=Calculated weight
|
||||
CalculatedVolume=Calculated volume
|
||||
Weight=Weight
|
||||
TotalWeight=Total weight
|
||||
WeightUnitton=tonnes
|
||||
WeightUnitton=tonne
|
||||
WeightUnitkg=kg
|
||||
WeightUnitg=g
|
||||
WeightUnitmg=mg
|
||||
@ -147,27 +147,27 @@ SizeUnitinch=inch
|
||||
SizeUnitfoot=foot
|
||||
SizeUnitpoint=point
|
||||
BugTracker=Bug tracker
|
||||
SendNewPasswordDesc=This form allows you to request a new password. It will be send to your email address.<br>Change will be effective only after clicking on confirmation link inside this email.<br>Check your email reader software.
|
||||
SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.<br />Change will become effective once you click on the confirmation link in the email.<br />Check your inbox.
|
||||
BackToLoginPage=Back to login page
|
||||
AuthenticationDoesNotAllowSendNewPassword=Authentication mode is <b>%s</b>.<br>In this mode, Dolibarr can't know nor change your password.<br>Contact your system administrator if you want to change your password.
|
||||
EnableGDLibraryDesc=Install or enable GD library with your PHP for use this option.
|
||||
AuthenticationDoesNotAllowSendNewPassword=Authentication mode is <b>%s</b>.<br />In this mode, Dolibarr can't know nor change your password.<br />Contact your system administrator if you want to change your password.
|
||||
EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option.
|
||||
EnablePhpAVModuleDesc=You need to install a module compatible with your anti-virus. (Clamav : php4-clamavlib ou php5-clamavlib)
|
||||
ProfIdShortDesc=<b>Prof Id %s</b> is an information depending on third party country.<br>For example, for country <b>%s</b>, it's code <b>%s</b>.
|
||||
ProfIdShortDesc=<b>Prof Id %s</b> is an information depending on third party country.<br>For example, for country <b>%s</b>, it's code <b>%s</b>.
|
||||
DolibarrDemo=Dolibarr ERP/CRM demo
|
||||
StatsByNumberOfUnits=Statistics in number of products/services units
|
||||
StatsByNumberOfEntities=Statistics in number of referring entities
|
||||
NumberOfProposals=Number of proposals on last 12 month
|
||||
NumberOfCustomerOrders=Number of customer orders on last 12 month
|
||||
NumberOfCustomerInvoices=Number of customer invoices on last 12 month
|
||||
NumberOfSupplierProposals=Number of supplier proposals on last 12 month
|
||||
NumberOfSupplierOrders=Number of supplier orders on last 12 month
|
||||
NumberOfSupplierInvoices=Number of supplier invoices on last 12 month
|
||||
NumberOfUnitsProposals=Number of units on proposals on last 12 month
|
||||
NumberOfUnitsCustomerOrders=Number of units on customer orders on last 12 month
|
||||
NumberOfUnitsCustomerInvoices=Number of units on customer invoices on last 12 month
|
||||
NumberOfUnitsSupplierProposals=Number of units on supplier proposals on last 12 month
|
||||
NumberOfUnitsSupplierOrders=Number of units on supplier orders on last 12 month
|
||||
NumberOfUnitsSupplierInvoices=Number of units on supplier invoices on last 12 month
|
||||
NumberOfProposals=Number of proposals in past 12 months
|
||||
NumberOfCustomerOrders=Number of customer orders in past 12 months
|
||||
NumberOfCustomerInvoices=Number of customer invoices in past 12 months
|
||||
NumberOfSupplierProposals=Number of supplier proposals in past 12 months
|
||||
NumberOfSupplierOrders=Number of supplier orders in past 12 months
|
||||
NumberOfSupplierInvoices=Number of supplier invoices in past 12 months
|
||||
NumberOfUnitsProposals=Number of units on proposals in past 12 months
|
||||
NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months
|
||||
NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months
|
||||
NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months
|
||||
NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months
|
||||
NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months
|
||||
EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
|
||||
EMailTextInterventionValidated=The intervention %s has been validated.
|
||||
EMailTextInvoiceValidated=The invoice %s has been validated.
|
||||
|
||||
@ -36,12 +36,12 @@ ServicesOnSell=Services for sale or for purchase
|
||||
ServicesNotOnSell=Services not for sale
|
||||
ServicesOnSellAndOnBuy=Services for sale and for purchase
|
||||
InternalRef=Internal reference
|
||||
LastRecorded=Last products/services on sell recorded
|
||||
LastRecordedProductsAndServices=Last %s recorded products/services
|
||||
LastModifiedProductsAndServices=Last %s modified products/services
|
||||
LastRecordedProducts=Last %s products recorded
|
||||
LastRecordedServices=Last %s services recorded
|
||||
LastProducts=Last products
|
||||
LastRecorded=Latest recorded products/services on sell
|
||||
LastRecordedProductsAndServices=Latest %s recorded products/services
|
||||
LastModifiedProductsAndServices=Latest %s modified products/services
|
||||
LastRecordedProducts=Latest %s recorded products
|
||||
LastRecordedServices=Latest %s recorded services
|
||||
LastProducts=Latest products
|
||||
CardProduct0=Product card
|
||||
CardProduct1=Service card
|
||||
CardContract=Contract card
|
||||
|
||||
@ -8,7 +8,7 @@ Projects=Projects
|
||||
ProjectsArea=Projects Area
|
||||
ProjectStatus=Project status
|
||||
SharedProject=Everybody
|
||||
PrivateProject=Contacts of project
|
||||
PrivateProject=Project contacts
|
||||
MyProjectsDesc=This view is limited to projects you are a contact for (whatever is the type).
|
||||
ProjectsPublicDesc=This view presents all projects you are allowed to read.
|
||||
ProjectsPublicTaskDesc=This view presents all projects and tasks you are allowed to read.
|
||||
@ -28,11 +28,11 @@ DeleteATask=Delete a task
|
||||
ConfirmDeleteAProject=Are you sure you want to delete this project ?
|
||||
ConfirmDeleteATask=Are you sure you want to delete this task ?
|
||||
OfficerProject=Officer project
|
||||
LastProjects=Last %s projects
|
||||
LastProjects=Latest %s projects
|
||||
AllProjects=All projects
|
||||
OpenedProjects=Opened projects
|
||||
OpenedTasks=Opened tasks
|
||||
OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status
|
||||
OpenedProjects=Open projects
|
||||
OpenedTasks=Open tasks
|
||||
OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
|
||||
OpportunitiesStatusForProjects=Opportunities amount of projects by status
|
||||
ProjectsList=List of projects
|
||||
ShowProject=Show project
|
||||
@ -159,14 +159,14 @@ DocumentModelBaleine=Project report template for tasks
|
||||
PlannedWorkload=Planned workload
|
||||
PlannedWorkloadShort=Workload
|
||||
WorkloadOccupation=Workload assignation
|
||||
ProjectReferers=Refering objects
|
||||
ProjectReferers=Related items
|
||||
SearchAProject=Search a project
|
||||
SearchATask=Search a task
|
||||
ProjectMustBeValidatedFirst=Project must be validated first
|
||||
ProjectDraft=Draft projects
|
||||
FirstAddRessourceToAllocateTime=Associate a resource to allocate time
|
||||
InputPerDay=Input per day
|
||||
InputPerWeek=Input per week
|
||||
InputPerDay=Input per day
|
||||
InputPerWeek=Input per week
|
||||
InputPerAction=Input per action
|
||||
TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s
|
||||
ProjectsWithThisUserAsContact=Projects with this user as contact
|
||||
@ -182,14 +182,14 @@ ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
|
||||
ProjectNbProjectByMonth=Nb of created projects by month
|
||||
ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
|
||||
ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
|
||||
ProjectOpenedProjectByOppStatus=Opened project/lead by opportunity status
|
||||
ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
|
||||
ProjectsStatistics=Statistics on projects/leads
|
||||
TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
|
||||
IdTaskTime=Id task time
|
||||
YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label.
|
||||
OpenedProjectsByThirdparties=Opened projects by thirdparties
|
||||
OpenedProjectsByThirdparties=Open projects by thirdparties
|
||||
OnlyOpportunitiesShort=Only opportunities
|
||||
OpenedOpportunitiesShort=Opened opportunities
|
||||
OpenedOpportunitiesShort=Open opportunities
|
||||
NotAnOpportunityShort=Not an opportunity
|
||||
OpportunityTotalAmount=Opportunities total amount
|
||||
OpportunityPonderatedAmount=Opportunities weighted amount
|
||||
@ -201,4 +201,4 @@ OppStatusNEGO=Negociation
|
||||
OppStatusPENDING=Pending
|
||||
OppStatusWON=Won
|
||||
OppStatusLOST=Lost
|
||||
Budget=Budget
|
||||
Budget=Budget
|
||||
|
||||
@ -19,11 +19,11 @@ ValidateProp=Validate commercial proposal
|
||||
AddProp=Create proposal
|
||||
ConfirmDeleteProp=Are you sure you want to delete this commercial proposal ?
|
||||
ConfirmValidateProp=Are you sure you want to validate this commercial proposal under name <b>%s</b> ?
|
||||
LastPropals=Last %s proposals
|
||||
LastClosedProposals=Last %s closed proposals
|
||||
LastModifiedProposals=Last %s modified proposals
|
||||
LastPropals=Latest %s proposals
|
||||
LastClosedProposals=Latest %s closed proposals
|
||||
LastModifiedProposals=Latest %s modified proposals
|
||||
AllPropals=All proposals
|
||||
LastProposals=Last proposals
|
||||
LastProposals=Latest proposals
|
||||
SearchAProposal=Search a proposal
|
||||
NoProposal=No proposal
|
||||
ProposalsStatistics=Commercial proposal's statistics
|
||||
@ -102,4 +102,4 @@ DefaultModelPropalCreate=Default model creation
|
||||
DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
|
||||
DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
|
||||
ProposalCustomerSignature=Written acceptance, company stamp, date and signature
|
||||
ProposalsStatisticsSuppliers=Supplier proposals statistics
|
||||
ProposalsStatisticsSuppliers=Supplier proposals statistics
|
||||
|
||||
@ -11,7 +11,7 @@ SendingsArea=Shipments area
|
||||
ListOfSendings=List of shipments
|
||||
SendingMethod=Shipping method
|
||||
SendingReceipt=Shipping receipt
|
||||
LastSendings=Last %s shipments
|
||||
LastSendings=Latest %s shipments
|
||||
SearchASending=Search for shipment
|
||||
StatisticsOfSendings=Statistics for shipments
|
||||
NbOfSendings=Number of shipments
|
||||
|
||||
@ -116,7 +116,7 @@ WarehouseForStockDecrease=The warehouse <b>%s</b> will be used for stock decreas
|
||||
WarehouseForStockIncrease=The warehouse <b>%s</b> will be used for stock increase
|
||||
ForThisWarehouse=For this warehouse
|
||||
ReplenishmentStatusDesc=This is a list of all products with a stock lower than desired stock (or lower than alert value if checkbox "alert only" is checked). Using the checkbox, you can create supplier orders to fill the difference.
|
||||
ReplenishmentOrdersDesc=This is a list of all opened supplier orders including predefined products. Only opened orders with predefined products, so orders that may affect stocks, are visible here.
|
||||
ReplenishmentOrdersDesc=This is a list of all open supplier orders including predefined products. Only open orders with predefined products, so orders that may affect stocks, are visible here.
|
||||
Replenishments=Replenishments
|
||||
NbOfProductBeforePeriod=Quantity of product %s in stock before selected period (< %s)
|
||||
NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s)
|
||||
@ -143,4 +143,4 @@ ThisSerialAlreadyExistWithDifferentDate=This lot/serial number (<strong>%s</stro
|
||||
OpenAll=Open for all actions
|
||||
OpenInternal=Open for internal actions
|
||||
OpenShipping=Open for shippings
|
||||
OpenDispatch=Open for dispatch
|
||||
OpenDispatch=Open for dispatch
|
||||
|
||||
@ -7,7 +7,7 @@ CommRequests=Price requests
|
||||
SearchRequest=Find a request
|
||||
DraftRequests=Draft requests
|
||||
SupplierProposalsDraft=Draft supplier proposals
|
||||
LastModifiedRequests=Last %s modified price requests
|
||||
LastModifiedRequests=Latest %s modified price requests
|
||||
RequestsOpened=Open price requests
|
||||
SupplierProposalArea=Supplier proposals area
|
||||
SupplierProposalShort=Supplier proposal
|
||||
@ -58,4 +58,4 @@ DefaultModelSupplierProposalToBill=Default template when closing a price request
|
||||
DefaultModelSupplierProposalClosed=Default template when closing a price request (refused)
|
||||
ListOfSupplierProposal=List of supplier proposal requests
|
||||
SupplierProposalsToClose=Supplier proposals to close
|
||||
SupplierProposalsToProcess=Supplier proposals to process
|
||||
SupplierProposalsToProcess=Supplier proposals to process
|
||||
|
||||
@ -48,7 +48,7 @@ AdministratorDescEntity=Administrator (for its company)
|
||||
DefaultRights=Default permissions
|
||||
DefaultRightsDesc=Define here <u>default</u> permissions that are automatically granted to a <u>new created</u> user (Go on user card to change permission of an existing user).
|
||||
DolibarrUsers=Dolibarr users
|
||||
LastName=Name
|
||||
LastName=Last Name
|
||||
FirstName=First name
|
||||
ListOfGroups=List of groups
|
||||
NewGroup=New group
|
||||
@ -58,8 +58,8 @@ PasswordChangedAndSentTo=Password changed and sent to <b>%s</b>.
|
||||
PasswordChangeRequestSent=Request to change password for <b>%s</b> sent to <b>%s</b>.
|
||||
MenuUsersAndGroups=Users & Groups
|
||||
MenuMyUserCard=My user card
|
||||
LastGroupsCreated=Last %s created groups
|
||||
LastUsersCreated=Last %s users created
|
||||
LastGroupsCreated=Latest %s created groups
|
||||
LastUsersCreated=Latest %s users created
|
||||
ShowGroup=Show group
|
||||
ShowUser=Show user
|
||||
NonAffectedUsers=Non assigned users
|
||||
@ -122,4 +122,4 @@ LoginUsingOpenID=Use OpenID to login
|
||||
WeeklyHours=Weekly hours
|
||||
ColorUser=Color of the user
|
||||
DisabledInMonoUserMode=Disabled in maintenance mode
|
||||
UserAccountancyCode=User accountancy code
|
||||
UserAccountancyCode=User accountancy code
|
||||
|
||||
@ -11,8 +11,8 @@ Withdrawal=Withdrawal
|
||||
WithdrawalsReceipts=Withdrawal receipts
|
||||
WithdrawalReceipt=Withdrawal receipt
|
||||
WithdrawalReceiptShort=Receipt
|
||||
LastWithdrawalReceipts=Last %s withdrawal receipts
|
||||
WithdrawedBills=Withdrawn invoices
|
||||
LastWithdrawalReceipts=Latest %s withdrawal receipts
|
||||
WithdrawedBills=Withdrawal invoices
|
||||
WithdrawalsLines=Withdrawal lines
|
||||
RequestStandingOrderToTreat=Request for standing orders to process
|
||||
RequestStandingOrderTreated=Request for standing orders processed
|
||||
@ -29,7 +29,7 @@ ResponsibleUser=Responsible user
|
||||
WithdrawalsSetup=Withdrawal setup
|
||||
WithdrawStatistics=Withdraw's statistics
|
||||
WithdrawRejectStatistics=Withdraw reject's statistics
|
||||
LastWithdrawalReceipt=Last %s withdrawing receipts
|
||||
LastWithdrawalReceipt=Latest %s withdrawal receipts
|
||||
MakeWithdrawRequest=Make a withdraw request
|
||||
ThirdPartyBankCode=Third party bank code
|
||||
ThirdPartyDeskCode=Third party desk code
|
||||
|
||||
@ -107,12 +107,19 @@ class MultiCurrency extends CommonObject
|
||||
*/
|
||||
public function create(User $user, $trigger = true)
|
||||
{
|
||||
global $conf;
|
||||
global $conf,$langs;
|
||||
|
||||
dol_syslog('Currency::create', LOG_DEBUG);
|
||||
|
||||
$error = 0;
|
||||
|
||||
if (self::checkCodeAlreadyExists($this->code))
|
||||
{
|
||||
$error++;
|
||||
$this->errors[] = $langs->trans('multicurrency_code_already_added');
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (empty($this->entity) || $this->entity <= 0) $this->entity = $conf->entity;
|
||||
$now=date('Y-m-d H:i:s');
|
||||
|
||||
@ -505,9 +512,10 @@ class MultiCurrency extends CommonObject
|
||||
{
|
||||
$sql = 'SELECT m.rowid, mc.rate FROM '.MAIN_DB_PREFIX.'multicurrency m';
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'multicurrency_rate mc ON (m.rowid = mc.fk_multicurrency)';
|
||||
// FIXME Is this comptible with SQL ?
|
||||
$sql.= ' WHERE m.code = "'.$db->escape($code).'" AND mc.date_sync >= ALL (SELECT date_sync FROM '.MAIN_DB_PREFIX.'multicurrency_rate)';
|
||||
$sql.= " AND m.entity IN '".getEntity('multicurrency', 1)."'";
|
||||
$sql.= ' WHERE m.code = "'.$db->escape($code).'"';
|
||||
$sql.= " AND m.entity IN (".getEntity('multicurrency', 1).")";
|
||||
$sql.= ' ORDER BY mc.date_sync DESC LIMIT 1';
|
||||
|
||||
$resql = $db->query($sql);
|
||||
if ($resql && $obj = $db->fetch_object($resql)) return array($obj->rowid, $obj->rate);
|
||||
else return array(0, 1);
|
||||
@ -616,6 +624,21 @@ class MultiCurrency extends CommonObject
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check in database if the current code already exists
|
||||
*
|
||||
* @param string $code current code to search
|
||||
* @return true if exists, false if not exists
|
||||
*/
|
||||
public static function checkCodeAlreadyExists($code)
|
||||
{
|
||||
global $db;
|
||||
|
||||
$currency = new MultiCurrency($db);
|
||||
if ($currency->fetch('', $code) > 0) return true;
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -1121,7 +1121,7 @@ else
|
||||
else if ($object->id > 0)
|
||||
{
|
||||
// Fiche en mode edition
|
||||
if ($action == 'edit' && ($user->rights->produit->creer || $user->rights->service->creer))
|
||||
if ($action == 'edit' && ((($object->type == Product::TYPE_PRODUCT && $user->rights->produit->creer) || ($object->type == Product::TYPE_SERVICE && $user->rights->service->creer))))
|
||||
{
|
||||
//WYSIWYG Editor
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||
@ -1733,7 +1733,8 @@ if (empty($reshook))
|
||||
{
|
||||
if ($action == '' || $action == 'view')
|
||||
{
|
||||
if ($user->rights->produit->creer || $user->rights->service->creer)
|
||||
if (($object->type == Product::TYPE_PRODUCT && $user->rights->produit->creer ) ||
|
||||
($object->type == Product::TYPE_SERVICE && $user->rights->service->creer))
|
||||
{
|
||||
if (! isset($object->no_button_edit) || $object->no_button_edit <> 1) print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit&id='.$object->id.'">'.$langs->trans("Modify").'</a></div>';
|
||||
|
||||
|
||||
@ -2666,7 +2666,7 @@ class Product extends CommonObject
|
||||
$sql.= " WHERE fk_soc = ".$id_fourn;
|
||||
$sql.= " AND ref_fourn = '".$this->db->escape($ref_fourn)."'";
|
||||
$sql.= " AND fk_product != ".$this->id;
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
$sql.= " AND entity IN (".getEntity('productprice', 1).")";
|
||||
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
@ -2689,7 +2689,7 @@ class Product extends CommonObject
|
||||
else $sql.= " AND (ref_fourn = '' OR ref_fourn IS NULL)";
|
||||
$sql.= " AND quantity = '".$quantity."'";
|
||||
$sql.= " AND fk_product = ".$this->id;
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
$sql.= " AND entity IN (".getEntity('productprice', 1).")";
|
||||
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
|
||||
@ -155,7 +155,7 @@ if (empty($reshook))
|
||||
{
|
||||
$error++;
|
||||
$langs->load("errors");
|
||||
setEventMessages($langs->trans("ErrorFieldMustBeANumeric",'eeee'), null, 'errors');
|
||||
setEventMessages($langs->trans("ErrorFieldMustBeANumeric",$langs->transnoentities("VATRateForSupplierProduct")), null, 'errors');
|
||||
}
|
||||
if (empty($quantity))
|
||||
{
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user