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:
|
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: TimeZone can be supplied to mktime
|
||||||
NEW: hook in shipment card
|
NEW: hook in shipment card
|
||||||
NEW: Deprecated Societe::set_prospect_level, Societe::set_commnucation_level, Societe::set_OutstandingBill functions
|
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)){
|
if(!empty($obj)){
|
||||||
foreach ( $obj as $cpt ) {
|
foreach ( $obj as $cpt ) {
|
||||||
$var = ! $var;
|
$var = ! $var;
|
||||||
print "<tr $bc[$var]>";
|
print '<tr'. $bc[$var].'>';
|
||||||
print '<td>' . length_accountg($cpt->account_number) . '</td>';
|
print '<td>' . length_accountg($cpt->account_number) . '</td>';
|
||||||
print '<td>' . $cpt->label . '</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);
|
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) ) {
|
while ( $i < min($num_lines, $limit) ) {
|
||||||
$objp = $db->fetch_object($result);
|
$objp = $db->fetch_object($result);
|
||||||
$var = ! $var;
|
$var = ! $var;
|
||||||
print "<tr $bc[$var]>";
|
print '<tr'. $bc[$var].'>';
|
||||||
|
|
||||||
print '<td align="left">';
|
print '<td align="left">';
|
||||||
print $objp->accounting;
|
print $objp->accounting;
|
||||||
|
|||||||
@ -328,10 +328,10 @@ if ($result) {
|
|||||||
|
|
||||||
$product_static = new Product($db);
|
$product_static = new Product($db);
|
||||||
|
|
||||||
print "<tr $bc[$var]>";
|
print '<tr'. $bc[$var].'>';
|
||||||
|
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
print "<tr $bc[$var]>";
|
print '<tr'. $bc[$var].'>';
|
||||||
// Ref produit as link
|
// Ref produit as link
|
||||||
$product_static->ref = $obj->ref;
|
$product_static->ref = $obj->ref;
|
||||||
$product_static->id = $obj->rowid;
|
$product_static->id = $obj->rowid;
|
||||||
|
|||||||
@ -223,7 +223,7 @@ else {
|
|||||||
if(empty($description)){
|
if(empty($description)){
|
||||||
$link = '<a href="../admin/card.php?action=create&compte=' . length_accountg($line->numero_compte) . '">' . img_edit_add() .'</a>';
|
$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>' . length_accountg($line->numero_compte) . '</td>';
|
||||||
print '<td>' . $description . '</td>';
|
print '<td>' . $description . '</td>';
|
||||||
|
|||||||
@ -346,7 +346,7 @@ if ($action == 'create') {
|
|||||||
|
|
||||||
foreach ( $book->linesmvt as $line ) {
|
foreach ( $book->linesmvt as $line ) {
|
||||||
$var = ! $var;
|
$var = ! $var;
|
||||||
print "<tr $bc[$var]>";
|
print '<tr'. $bc[$var].'>';
|
||||||
|
|
||||||
$total_debit += $line->debit;
|
$total_debit += $line->debit;
|
||||||
$total_credit += $line->credit;
|
$total_credit += $line->credit;
|
||||||
@ -400,7 +400,7 @@ if ($action == 'create') {
|
|||||||
|
|
||||||
if ($action == "" || $action == 'add') {
|
if ($action == "" || $action == 'add') {
|
||||||
$var = ! $var;
|
$var = ! $var;
|
||||||
print "<tr $bc[$var]>";
|
print '<tr'. $bc[$var].'>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print $formventilation->select_account($account_number, 'account_number', 0, array (), 1, 1, '');
|
print $formventilation->select_account($account_number, 'account_number', 0, array (), 1, 1, '');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|||||||
@ -368,7 +368,7 @@ foreach ( $object->lines as $line ) {
|
|||||||
$total_debit += $line->debit;
|
$total_debit += $line->debit;
|
||||||
$total_credit += $line->credit;
|
$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><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>';
|
print '<td align="center">' . dol_print_date($line->doc_date, 'day') . '</td>';
|
||||||
|
|||||||
@ -269,7 +269,7 @@ $var = True;
|
|||||||
foreach ( $object->lines as $line ) {
|
foreach ( $object->lines as $line ) {
|
||||||
$var = ! $var;
|
$var = ! $var;
|
||||||
|
|
||||||
print "<tr $bc[$var]>";
|
print '<tr'. $bc[$var].'>';
|
||||||
print '<td>' . $line->piece_num . '</td>' . "\n";
|
print '<td>' . $line->piece_num . '</td>' . "\n";
|
||||||
print '<td>' . $line->doc_type . '</td>' . "\n";
|
print '<td>' . $line->doc_type . '</td>' . "\n";
|
||||||
print '<td>' . dol_print_date($line->doc_date) . '</td>';
|
print '<td>' . dol_print_date($line->doc_date) . '</td>';
|
||||||
|
|||||||
@ -288,7 +288,7 @@ if ($result) {
|
|||||||
$var = ! $var;
|
$var = ! $var;
|
||||||
$codecompta = length_accountg($objp->account_number) . ' - ' . $objp->label_compte;
|
$codecompta = length_accountg($objp->account_number) . ' - ' . $objp->label_compte;
|
||||||
|
|
||||||
print "<tr $bc[$var]>";
|
print '<tr'. $bc[$var].'>';
|
||||||
|
|
||||||
// Ref Invoice
|
// Ref Invoice
|
||||||
$facture_static->ref = $objp->facnumber;
|
$facture_static->ref = $objp->facnumber;
|
||||||
|
|||||||
@ -302,7 +302,7 @@ if ($result) {
|
|||||||
if ($objp->code_sell_l != $objp->code_sell_p)
|
if ($objp->code_sell_l != $objp->code_sell_p)
|
||||||
$code_sell_p_l_differ = 'color:red';
|
$code_sell_p_l_differ = 'color:red';
|
||||||
|
|
||||||
print "<tr $bc[$var]>";
|
print '<tr'. $bc[$var].'>';
|
||||||
|
|
||||||
// Ref Invoice
|
// Ref Invoice
|
||||||
$facture_static->ref = $objp->facnumber;
|
$facture_static->ref = $objp->facnumber;
|
||||||
|
|||||||
@ -127,7 +127,7 @@ if(!empty($cats))
|
|||||||
$resultN = $AccCat->getResult($cpt['account_number'], 0, $year_current, $cpt['dc']);
|
$resultN = $AccCat->getResult($cpt['account_number'], 0, $year_current, $cpt['dc']);
|
||||||
$sommes[$code]['NP'] += $resultNP;
|
$sommes[$code]['NP'] += $resultNP;
|
||||||
$sommes[$code]['N'] += $resultN;
|
$sommes[$code]['N'] += $resultN;
|
||||||
print "<tr $bc[$var]>";
|
print '<tr'. $bc[$var].'>';
|
||||||
print '<td>' . $cpt['account_number'] . '</td>';
|
print '<td>' . $cpt['account_number'] . '</td>';
|
||||||
print '<td>' . $cpt['name_cpt'] . '</td>';
|
print '<td>' . $cpt['name_cpt'] . '</td>';
|
||||||
print '<td>' . price($resultNP) . '</td>';
|
print '<td>' . price($resultNP) . '</td>';
|
||||||
|
|||||||
@ -236,7 +236,7 @@ if ($result) {
|
|||||||
$var = ! $var;
|
$var = ! $var;
|
||||||
$codeCompta = length_accountg($objp->account_number) . ' - ' . $objp->label;
|
$codeCompta = length_accountg($objp->account_number) . ' - ' . $objp->label;
|
||||||
|
|
||||||
print "<tr $bc[$var]>";
|
print '<tr'. $bc[$var].'>';
|
||||||
|
|
||||||
// Ref Invoice
|
// Ref Invoice
|
||||||
$facturefournisseur_static->ref = $objp->facnumber;
|
$facturefournisseur_static->ref = $objp->facnumber;
|
||||||
|
|||||||
@ -314,7 +314,7 @@ if ($result) {
|
|||||||
if ($objp->code_buy_l != $objp->code_buy_p)
|
if ($objp->code_buy_l != $objp->code_buy_p)
|
||||||
$code_buy_p_l_differ = 'color:red';
|
$code_buy_p_l_differ = 'color:red';
|
||||||
|
|
||||||
print "<tr $bc[$var]>";
|
print '<tr'. $bc[$var].'>';
|
||||||
|
|
||||||
// Ref Invoice
|
// Ref Invoice
|
||||||
$facturefourn_static->ref = $objp->ref;
|
$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 '<tr '.$bc[$var].' id="tremail"><td>';
|
||||||
print $langs->trans("MEMBER_PAYONLINE_SENDEMAIL");
|
print $langs->trans("MEMBER_PAYONLINE_SENDEMAIL");
|
||||||
print '</td><td align="right">';
|
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";
|
print "</td></tr>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -253,7 +253,8 @@ if (empty($reshook))
|
|||||||
}
|
}
|
||||||
$lastname=$_POST["lastname"];
|
$lastname=$_POST["lastname"];
|
||||||
$firstname=$_POST["firstname"];
|
$firstname=$_POST["firstname"];
|
||||||
$morphy=$morphy=$_POST["morphy"];
|
$morphy=$_POST["morphy"];
|
||||||
|
$login=$_POST["login"];
|
||||||
if ($morphy != 'mor' && empty($lastname)) {
|
if ($morphy != 'mor' && empty($lastname)) {
|
||||||
$error++;
|
$error++;
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
@ -264,7 +265,19 @@ if (empty($reshook))
|
|||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Firstname")), null, '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
|
// Create new object
|
||||||
if ($result > 0 && ! $error)
|
if ($result > 0 && ! $error)
|
||||||
{
|
{
|
||||||
@ -506,6 +519,11 @@ if (empty($reshook))
|
|||||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Password")), null, 'errors');
|
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)) {
|
if ($morphy != 'mor' && empty($lastname)) {
|
||||||
$error++;
|
$error++;
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
|
|||||||
@ -284,7 +284,7 @@ if ($action == 'create')
|
|||||||
$parent_rowid = $_GET['menuId'];
|
$parent_rowid = $_GET['menuId'];
|
||||||
if ($_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);
|
$res = $db->query($sql);
|
||||||
if ($res)
|
if ($res)
|
||||||
{
|
{
|
||||||
@ -293,6 +293,7 @@ if ($action == 'create')
|
|||||||
{
|
{
|
||||||
$parent_rowid = $menu['rowid'];
|
$parent_rowid = $menu['rowid'];
|
||||||
$parent_mainmenu = $menu['mainmenu'];
|
$parent_mainmenu = $menu['mainmenu'];
|
||||||
|
$parent_leftmenu = $menu['leftmenu'];
|
||||||
$parent_langs = $menu['langs'];
|
$parent_langs = $menu['langs'];
|
||||||
$parent_level = $menu['level'];
|
$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><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
|
// 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>';
|
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
|
// MenuId Parent
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans('MenuIdParent').'</td>';
|
print '<tr><td class="fieldrequired">'.$langs->trans('MenuIdParent').'</td>';
|
||||||
print '<td><input type="text" name="fk_menu" value="'.$menu->fk_menu.'" size=10></td>';
|
$valtouse=$menu->fk_menu;
|
||||||
//$menu_handler
|
if ($menu->fk_mainmenu) $valtouse='fk_mainmenu='.$menu->fk_mainmenu;
|
||||||
//print '<td><input type="text" size="50" name="handler" value="all"></td>';
|
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>';
|
print '<td>'.$langs->trans('DetailMenuIdParent').'</td></tr>';
|
||||||
|
|
||||||
// Niveau
|
// Niveau
|
||||||
|
|||||||
@ -289,17 +289,18 @@ if ($conf->use_javascript_ajax)
|
|||||||
- la chaine a afficher
|
- la chaine a afficher
|
||||||
ie: data[]= array (index, index parent, chaine )
|
ie: data[]= array (index, index parent, chaine )
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//il faut d'abord declarer un element racine de l'arbre
|
//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
|
//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.= " FROM ".MAIN_DB_PREFIX."menu as m";
|
||||||
$sql.= " WHERE menu_handler = '".$menu_handler_to_search."'";
|
$sql.= " WHERE menu_handler = '".$menu_handler_to_search."'";
|
||||||
$sql.= " AND entity = ".$conf->entity;
|
$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)
|
$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);
|
$res = $db->query($sql);
|
||||||
@ -314,9 +315,10 @@ if ($conf->use_javascript_ajax)
|
|||||||
$titre = $langs->trans($menu['titre']);
|
$titre = $langs->trans($menu['titre']);
|
||||||
$data[] = array(
|
$data[] = array(
|
||||||
'rowid'=>$menu['rowid'],
|
'rowid'=>$menu['rowid'],
|
||||||
|
'module'=>$menu['module'],
|
||||||
'fk_menu'=>$menu['fk_menu'],
|
'fk_menu'=>$menu['fk_menu'],
|
||||||
'title'=>$titre,
|
'title'=>$titre,
|
||||||
'mainmenu'=>$menu['mainmenu'],
|
'mainmenu'=>$menu['mainmenu'],
|
||||||
'leftmenu'=>$menu['leftmenu'],
|
'leftmenu'=>$menu['leftmenu'],
|
||||||
'fk_mainmenu'=>$menu['fk_mainmenu'],
|
'fk_mainmenu'=>$menu['fk_mainmenu'],
|
||||||
'fk_leftmenu'=>$menu['fk_leftmenu'],
|
'fk_leftmenu'=>$menu['fk_leftmenu'],
|
||||||
@ -334,10 +336,13 @@ if ($conf->use_javascript_ajax)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
global $tree_recur_alreadyadded; // This var was def into tree_recur
|
||||||
|
|
||||||
// Appelle de la fonction recursive (ammorce)
|
// Appelle de la fonction recursive (ammorce)
|
||||||
// avec recherche depuis la racine.
|
// avec recherche depuis la racine.
|
||||||
//var_dump($data);
|
//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 '</td>';
|
||||||
|
|
||||||
@ -346,6 +351,40 @@ if ($conf->use_javascript_ajax)
|
|||||||
print '</table>';
|
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>';
|
print '</div>';
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -77,20 +77,20 @@ if (preg_match('/del_(.*)/',$action,$reg))
|
|||||||
|
|
||||||
if ($action == 'add_currency')
|
if ($action == 'add_currency')
|
||||||
{
|
{
|
||||||
$code = GETPOST('code', 'alpha');
|
$langs->loadCacheCurrencies('');
|
||||||
$name = GETPOST('name', 'alpha');
|
|
||||||
$rate = GETPOST('rate', 'alpha');
|
|
||||||
|
|
||||||
|
$code = GETPOST('code', 'alpha');
|
||||||
|
$rate = GETPOST('rate', 'alpha');
|
||||||
$currency = new MultiCurrency($db);
|
$currency = new MultiCurrency($db);
|
||||||
$currency->code = $code;
|
$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->create($user) > 0)
|
||||||
{
|
{
|
||||||
if ($currency->addRate($rate)) setEventMessages($langs->trans('RecordSaved'), array());
|
if ($currency->addRate($rate)) setEventMessages($langs->trans('RecordSaved'), array());
|
||||||
else setEventMessages($langs->trans('ErrorAddRateFail'), array(), 'errors');
|
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')
|
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="20"> </td>';
|
||||||
print '<td align="center" width="100">'.$langs->trans("Value").'</td>'."\n";
|
print '<td align="center" width="100">'.$langs->trans("Value").'</td>'."\n";
|
||||||
|
|
||||||
|
/* TODO uncomment when the functionality will integrated
|
||||||
$var=!$var;
|
$var=!$var;
|
||||||
print '<tr '.$bc[$var].'>';
|
print '<tr '.$bc[$var].'>';
|
||||||
print '<td>'.$langs->transnoentitiesnoconv("multicurrency_useRateOnInvoiceDate").'</td>';
|
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 '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
||||||
print '</form>';
|
print '</form>';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
*/
|
||||||
|
|
||||||
$var=!$var;
|
$var=!$var;
|
||||||
print '<tr '.$bc[$var].'>';
|
print '<tr '.$bc[$var].'>';
|
||||||
@ -208,6 +210,7 @@ print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">'
|
|||||||
print '</form>';
|
print '</form>';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
/* TODO uncomment when the functionality will integrated
|
||||||
$var=!$var;
|
$var=!$var;
|
||||||
print '<tr '.$bc[$var].'>';
|
print '<tr '.$bc[$var].'>';
|
||||||
print '<td>'.$langs->transnoentitiesnoconv("multicurrency_buyPriceInCurrency").'</td>';
|
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 '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
||||||
print '</form>';
|
print '</form>';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* TODO uncomment when the functionality will integrated
|
||||||
$var=!$var;
|
$var=!$var;
|
||||||
print '<tr '.$bc[$var].'>';
|
print '<tr '.$bc[$var].'>';
|
||||||
print '<td>'.$langs->transnoentitiesnoconv("multicurrency_modifyRateApplication").'</td>';
|
print '<td>'.$langs->transnoentitiesnoconv("multicurrency_modifyRateApplication").'</td>';
|
||||||
@ -234,71 +239,75 @@ print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">'
|
|||||||
print '</form>';
|
print '</form>';
|
||||||
print '</td></tr>';
|
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 '</table>';
|
||||||
print '<br />';
|
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 '<table class="noborder" width="100%">';
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
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="20"> </td>';
|
||||||
print '<td align="center" width="100">'.$langs->trans("Rate").'</td>'."\n";
|
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 '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="action" value="add_currency">';
|
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="center" width="20"> </td>';
|
||||||
print '<td align="right" width="300">';
|
print '<td align="right" width="300">';
|
||||||
print '<input type="text" name="rate" value="" size="13" placeholder="'.$langs->trans('rate').'" /> ';
|
print '<input type="text" name="rate" value="" size="13" placeholder="'.$langs->trans('rate').'" /> ';
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2013-2016 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2013-2016 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2015 Frederic France <frederic.france@free.fr>
|
* 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
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -377,7 +378,8 @@ if ($mode == 'template' && $user->admin)
|
|||||||
if ($ret > 0) {
|
if ($ret > 0) {
|
||||||
setEventMessages($printer->error, $printer->errors, 'errors');
|
setEventMessages($printer->error, $printer->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
for ($line=0; $line < count($printer->listprinterstemplates); $line++) {
|
$max = count($printer->listprinterstemplates);
|
||||||
|
for ($line=0; $line < $max; $line++) {
|
||||||
$var = !$var;
|
$var = !$var;
|
||||||
print '<tr '.$bc[$var].'>';
|
print '<tr '.$bc[$var].'>';
|
||||||
if ($action=='edittemplate' && $printer->listprinterstemplates[$line]['rowid']==$templateid) {
|
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("Tag").'</th>';
|
||||||
print '<th>'.$langs->trans("Description").'</th>';
|
print '<th>'.$langs->trans("Description").'</th>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
for ($tag=0; $tag < count($printer->tags); $tag++) {
|
$max = count($printer->tags);
|
||||||
|
for ($tag=0; $tag < $max; $tag++) {
|
||||||
$var = !$var;
|
$var = !$var;
|
||||||
print '<tr '.$bc[$var].'>';
|
print '<tr '.$bc[$var].'>';
|
||||||
print '<td><'.$printer->tags[$tag].'></td><td>'.$langs->trans(strtoupper($printer->tags[$tag])).'</td>';
|
print '<td><'.$printer->tags[$tag].'></td><td>'.$langs->trans(strtoupper($printer->tags[$tag])).'</td>';
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2003 Eric Seigne <erics@rycks.com>
|
* 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>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -199,7 +199,7 @@ if ($status == 'todo') { $sql.= " AND ((a.percent >= 0 AND a.percent < 100) OR (
|
|||||||
if ($filtert > 0 || $usergroup > 0)
|
if ($filtert > 0 || $usergroup > 0)
|
||||||
{
|
{
|
||||||
$sql.= " AND (";
|
$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;
|
if ($usergroup > 0) $sql.= ($filtert>0?" OR ":"")." ugu.fk_usergroup = ".$usergroup;
|
||||||
$sql.= ")";
|
$sql.= ")";
|
||||||
}
|
}
|
||||||
@ -368,7 +368,7 @@ if ($resql)
|
|||||||
$actionstatic->type_code=$obj->type_code;
|
$actionstatic->type_code=$obj->type_code;
|
||||||
$actionstatic->type_label=$obj->type_label;
|
$actionstatic->type_label=$obj->type_label;
|
||||||
$actionstatic->label=$obj->label;
|
$actionstatic->label=$obj->label;
|
||||||
print $actionstatic->getNomUrl(1,28);
|
print $actionstatic->getNomUrl(1,36);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
|
if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
|
||||||
|
|||||||
@ -1433,7 +1433,7 @@ if ($action == 'create')
|
|||||||
print '<td>'.fieldLabel('Currency','multicurrency_code').'</td>';
|
print '<td>'.fieldLabel('Currency','multicurrency_code').'</td>';
|
||||||
print '<td colspan="3" class="maxwidthonsmartphone">';
|
print '<td colspan="3" class="maxwidthonsmartphone">';
|
||||||
$currency_code = (!empty($soc->multicurrency_code) ? $soc->multicurrency_code : ($object->multicurrency_code ? $object->multicurrency_code : $conf->currency));
|
$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>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2570,7 +2570,7 @@ class Propal extends CommonObject
|
|||||||
$response = new WorkboardResponse();
|
$response = new WorkboardResponse();
|
||||||
$response->warning_delay = $delay_warning/60/60/24;
|
$response->warning_delay = $delay_warning/60/60/24;
|
||||||
$response->label = $label;
|
$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");
|
$response->img = img_object($langs->trans("Propals"),"propal");
|
||||||
|
|
||||||
// This assignment in condition is not a bug. It allows walking the results.
|
// This assignment in condition is not a bug. It allows walking the results.
|
||||||
@ -2674,8 +2674,11 @@ class Propal extends CommonObject
|
|||||||
$line->remise_percent=00;
|
$line->remise_percent=00;
|
||||||
}
|
}
|
||||||
|
|
||||||
$prodid = mt_rand(1, $num_prods);
|
if ($num_prods > 0)
|
||||||
$line->fk_product=$prodids[$prodid];
|
{
|
||||||
|
$prodid = mt_rand(1, $num_prods);
|
||||||
|
$line->fk_product=$prodids[$prodid];
|
||||||
|
}
|
||||||
|
|
||||||
$this->lines[$xnbp]=$line;
|
$this->lines[$xnbp]=$line;
|
||||||
|
|
||||||
|
|||||||
@ -2974,7 +2974,7 @@ class Commande extends CommonOrder
|
|||||||
$response = new WorkboardResponse();
|
$response = new WorkboardResponse();
|
||||||
$response->warning_delay=$conf->commande->client->warning_delay/60/60/24;
|
$response->warning_delay=$conf->commande->client->warning_delay/60/60/24;
|
||||||
$response->label=$langs->trans("OrdersToProcess");
|
$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");
|
$response->img=img_object($langs->trans("Orders"),"order");
|
||||||
|
|
||||||
$generic_commande = new Commande($this->db);
|
$generic_commande = new Commande($this->db);
|
||||||
@ -3278,8 +3278,11 @@ class Commande extends CommonOrder
|
|||||||
$line->total_tva=19.6;
|
$line->total_tva=19.6;
|
||||||
$line->remise_percent=0;
|
$line->remise_percent=0;
|
||||||
}
|
}
|
||||||
$prodid = mt_rand(1, $num_prods);
|
if ($num_prods > 0)
|
||||||
$line->fk_product=$prodids[$prodid];
|
{
|
||||||
|
$prodid = mt_rand(1, $num_prods);
|
||||||
|
$line->fk_product=$prodids[$prodid];
|
||||||
|
}
|
||||||
|
|
||||||
$this->lines[$xnbp]=$line;
|
$this->lines[$xnbp]=$line;
|
||||||
|
|
||||||
|
|||||||
@ -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 = "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";
|
$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.= " WHERE ".$this->where;
|
||||||
$sql.= " AND c.rowid = tl.fk_commande AND tl.fk_product = product.rowid";
|
$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))."'";
|
$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);
|
echo price($objectlink->total_ht);
|
||||||
} ?></td>
|
} ?></td>
|
||||||
<td align="right"><?php echo $objectlink->getLibStatut(3); ?></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>
|
</tr>
|
||||||
<?php
|
<?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)
|
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']);
|
$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;
|
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))
|
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->fac_rec = $facturerec->id; // We will create $facture from this recurring invoice
|
||||||
$facture->type = self::TYPE_STANDARD;
|
$facture->type = self::TYPE_STANDARD;
|
||||||
$facture->brouillon = 1;
|
$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;
|
$facture->socid = $facturerec->socid;
|
||||||
|
|
||||||
$invoiceidgenerated = $facture->create($user); // This will also update fields of recurring invoice
|
$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))
|
if ($this->db->query($sql))
|
||||||
{
|
{
|
||||||
$this->date_when = $date;
|
$this->date_when = $date;
|
||||||
|
if ($increment_nb_gen_done>0) $_facrec->nb_gen_done++;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -309,13 +309,12 @@ class Facture extends CommonInvoice
|
|||||||
|
|
||||||
$forceduedate = $this->calculate_date_lim_reglement();
|
$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)
|
if ($_facrec->frequency > 0)
|
||||||
{
|
{
|
||||||
$_facrec->nb_gen_done++;
|
|
||||||
$next_date = $_facrec->getNextDate(); // Calculate next date
|
$next_date = $_facrec->getNextDate(); // Calculate next date
|
||||||
$_facrec->setValueFrom('date_last_gen', $now, '', null, '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);
|
$_facrec->setNextDate($next_date,1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3465,7 +3464,7 @@ class Facture extends CommonInvoice
|
|||||||
$response = new WorkboardResponse();
|
$response = new WorkboardResponse();
|
||||||
$response->warning_delay=$conf->facture->client->warning_delay/60/60/24;
|
$response->warning_delay=$conf->facture->client->warning_delay/60/60/24;
|
||||||
$response->label=$langs->trans("CustomerBillsUnpaid");
|
$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");
|
$response->img=img_object($langs->trans("Bills"),"bill");
|
||||||
|
|
||||||
$generic_facture = new Facture($this->db);
|
$generic_facture = new Facture($this->db);
|
||||||
|
|||||||
@ -1256,8 +1256,13 @@ else
|
|||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
// Frequencry/Recurring section
|
||||||
if ($object->frequency > 0)
|
if ($object->frequency > 0)
|
||||||
{
|
{
|
||||||
|
if (empty($conf->cron->enabled))
|
||||||
|
{
|
||||||
|
print info_admin($langs->trans("EnableAndSetupModuleCron", $langs->transnoentitiesnoconv("Module2300Name")));
|
||||||
|
}
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
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';
|
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
||||||
|
|
||||||
// Do we click on purge search criteria ?
|
// 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_user='';
|
||||||
$search_sale='';
|
$search_sale='';
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2015 Regis Houssin <regis.houssin@capnetworks.com>
|
* 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 Jean-François Ferry <jfefe@aternatik.fr>
|
||||||
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||||
* Copyright (C) 2016 Marcos García <marcosgdf@gmail.com>
|
* 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 (!$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;
|
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.= " 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";
|
$sql.= " ORDER BY ff.date_lim_reglement ASC";
|
||||||
|
|
||||||
$resql=$db->query($sql);
|
$resql=$db->query($sql);
|
||||||
|
|||||||
@ -2147,8 +2147,11 @@ class Contrat extends CommonObject
|
|||||||
$line->total_ht=90;
|
$line->total_ht=90;
|
||||||
$line->total_ttc=107.64; // 90 * 1.196
|
$line->total_ttc=107.64; // 90 * 1.196
|
||||||
$line->total_tva=17.64;
|
$line->total_tva=17.64;
|
||||||
$prodid = mt_rand(1, $num_prods);
|
if ($num_prods > 0)
|
||||||
$line->fk_product=$prodids[$prodid];
|
{
|
||||||
|
$prodid = mt_rand(1, $num_prods);
|
||||||
|
$line->fk_product=$prodids[$prodid];
|
||||||
|
}
|
||||||
$this->lines[$xnbp]=$line;
|
$this->lines[$xnbp]=$line;
|
||||||
$xnbp++;
|
$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 '<input type="text" class="flat" size="3" name="search_contract" value="'.dol_escape_htmltag($search_contract).'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
print '<input type="text" class="flat" size="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>';
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
print '<input type="text" class="flat" size="6" name="search_ref_supplier value="'.dol_escape_htmltag($search_ref_supplier).'">';
|
print '<input type="text" class="flat" size="6" name="search_ref_supplier value="'.dol_escape_htmltag($search_ref_supplier).'">';
|
||||||
|
|||||||
@ -240,7 +240,10 @@ if ($section)
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
|
||||||
$useglobalvars=1;
|
$useglobalvars=1;
|
||||||
$form = new Form($db);
|
$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));
|
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 = "DELETE FROM ".MAIN_DB_PREFIX."element_contact";
|
||||||
$sql.= " WHERE element_id = ".$this->id;
|
$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);
|
dol_syslog(get_class($this)."::delete_linked_contact", LOG_DEBUG);
|
||||||
if ($this->db->query($sql))
|
if ($this->db->query($sql))
|
||||||
|
|||||||
@ -1133,7 +1133,7 @@ class ExtraFields
|
|||||||
if ($InfoFieldList[0] && class_exists($InfoFieldList[0]))
|
if ($InfoFieldList[0] && class_exists($InfoFieldList[0]))
|
||||||
{
|
{
|
||||||
$object = new $InfoFieldList[0]($this->db);
|
$object = new $InfoFieldList[0]($this->db);
|
||||||
$object->fetch($value);
|
if (!empty($value)) $object->fetch($value);
|
||||||
$valuetoshow=$object->ref;
|
$valuetoshow=$object->ref;
|
||||||
if ($object->element == 'societe') $valuetoshow=$object->name; // Special case for thirdparty because ref is id because name is not unique
|
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.'" >';
|
$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.= " 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."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.= " 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 p.tobuy = 1";
|
||||||
$sql.= " AND s.fournisseur = 1";
|
$sql.= " AND s.fournisseur = 1";
|
||||||
$sql.= " AND p.rowid = ".$productid;
|
$sql.= " AND p.rowid = ".$productid;
|
||||||
@ -3812,7 +3812,7 @@ class Form
|
|||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<table class="nobordernopadding" cellpadding="0" cellspacing="0">';
|
print '<table class="nobordernopadding" cellpadding="0" cellspacing="0">';
|
||||||
print '<tr><td>';
|
print '<tr><td>';
|
||||||
print $this->selectMultiCurrency($selected, $htmlname, 1);
|
print $this->selectMultiCurrency($selected, $htmlname, 0);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
|
print '<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
|
||||||
print '</tr></table></form>';
|
print '</tr></table></form>';
|
||||||
@ -4091,7 +4091,7 @@ class Form
|
|||||||
|
|
||||||
$out='';
|
$out='';
|
||||||
$out.= '<select class="flat" name="'.$htmlname.'" id="'.$htmlname.'">';
|
$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)
|
if (count($TCurrency) > 0)
|
||||||
{
|
{
|
||||||
foreach ($langs->cache_currencies as $code_iso => $currency)
|
foreach ($langs->cache_currencies as $code_iso => $currency)
|
||||||
|
|||||||
@ -162,68 +162,52 @@ class Ldap
|
|||||||
return -1;
|
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);
|
dol_syslog(get_class($this)."::connect_bind ".$this->error, LOG_WARNING);
|
||||||
return -1;
|
$return=-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Loop on each ldap server
|
if (empty($this->error))
|
||||||
foreach ($this->server as $key => $host)
|
|
||||||
{
|
{
|
||||||
if ($connected) break;
|
// Loop on each ldap server
|
||||||
if (empty($host)) continue;
|
foreach ($this->server as $key => $host)
|
||||||
|
|
||||||
if (preg_match('/^ldap/',$host))
|
|
||||||
{
|
{
|
||||||
$this->connection = ldap_connect($host);
|
if ($connected) break;
|
||||||
}
|
if (empty($host)) continue;
|
||||||
else
|
|
||||||
{
|
|
||||||
$this->connection = ldap_connect($host,$this->serverPort);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (is_resource($this->connection))
|
if (preg_match('/^ldap/',$host))
|
||||||
{
|
|
||||||
// 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")
|
|
||||||
{
|
{
|
||||||
$result=$this->setReferrals();
|
$this->connection = ldap_connect($host);
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Try in auth mode
|
$this->connection = ldap_connect($host,$this->serverPort);
|
||||||
if ($this->searchUser && $this->searchPassword)
|
}
|
||||||
|
|
||||||
|
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);
|
$this->result=$this->bindauth($this->searchUser,$this->searchPassword);
|
||||||
if ($this->result)
|
if ($this->result)
|
||||||
{
|
{
|
||||||
@ -236,26 +220,45 @@ class Ldap
|
|||||||
$this->error=ldap_errno($this->connection).' '.ldap_error($this->connection);
|
$this->error=ldap_errno($this->connection).' '.ldap_error($this->connection);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Try in anonymous
|
else
|
||||||
if (! $this->bind)
|
|
||||||
{
|
{
|
||||||
dol_syslog(get_class($this)."::connect_bind try bind on ".$host,LOG_DEBUG);
|
// Try in auth mode
|
||||||
$result=$this->bind();
|
if ($this->searchUser && $this->searchPassword)
|
||||||
if ($result)
|
|
||||||
{
|
{
|
||||||
$this->bind=$this->result;
|
dol_syslog(get_class($this)."::connect_bind try bindauth on ".$host." user=".$this->searchUser." password=".preg_replace('/./','*',$this->searchPassword),LOG_DEBUG);
|
||||||
$connected=1;
|
$this->result=$this->bindauth($this->searchUser,$this->searchPassword);
|
||||||
break;
|
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)
|
if ($connected)
|
||||||
|
|||||||
@ -264,6 +264,8 @@ class Menubase
|
|||||||
$sql.= " t.mainmenu,";
|
$sql.= " t.mainmenu,";
|
||||||
$sql.= " t.leftmenu,";
|
$sql.= " t.leftmenu,";
|
||||||
$sql.= " t.fk_menu,";
|
$sql.= " t.fk_menu,";
|
||||||
|
$sql.= " t.fk_mainmenu,";
|
||||||
|
$sql.= " t.fk_leftmenu,";
|
||||||
$sql.= " t.position,";
|
$sql.= " t.position,";
|
||||||
$sql.= " t.url,";
|
$sql.= " t.url,";
|
||||||
$sql.= " t.target,";
|
$sql.= " t.target,";
|
||||||
@ -293,6 +295,8 @@ class Menubase
|
|||||||
$this->mainmenu = $obj->mainmenu;
|
$this->mainmenu = $obj->mainmenu;
|
||||||
$this->leftmenu = $obj->leftmenu;
|
$this->leftmenu = $obj->leftmenu;
|
||||||
$this->fk_menu = $obj->fk_menu;
|
$this->fk_menu = $obj->fk_menu;
|
||||||
|
$this->fk_mainmenu = $obj->fk_mainmenu;
|
||||||
|
$this->fk_leftmenu = $obj->fk_leftmenu;
|
||||||
$this->position = $obj->position;
|
$this->position = $obj->position;
|
||||||
$this->url = $obj->url;
|
$this->url = $obj->url;
|
||||||
$this->target = $obj->target;
|
$this->target = $obj->target;
|
||||||
|
|||||||
@ -736,17 +736,24 @@ function activateModule($value,$withdeps=1)
|
|||||||
if (isset($objMod->depends) && is_array($objMod->depends) && ! empty($objMod->depends))
|
if (isset($objMod->depends) && is_array($objMod->depends) && ! empty($objMod->depends))
|
||||||
{
|
{
|
||||||
// Activation des modules dont le module depend
|
// Activation des modules dont le module depend
|
||||||
|
$TError=array();
|
||||||
$num = count($objMod->depends);
|
$num = count($objMod->depends);
|
||||||
for ($i = 0; $i < $num; $i++)
|
for ($i = 0; $i < $num; $i++)
|
||||||
{
|
{
|
||||||
|
$activate = false;
|
||||||
foreach ($modulesdir as $dir)
|
foreach ($modulesdir as $dir)
|
||||||
{
|
{
|
||||||
if (file_exists($dir.$objMod->depends[$i].".class.php"))
|
if (file_exists($dir.$objMod->depends[$i].".class.php"))
|
||||||
{
|
{
|
||||||
activateModule($objMod->depends[$i]);
|
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))
|
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)
|
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);
|
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>';
|
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
|
else
|
||||||
{
|
{
|
||||||
$nophoto='/public/theme/common/nophoto.png';
|
if (!empty($conf->global->PRODUCT_NODISPLAYIFNOPHOTO)) {
|
||||||
$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>';
|
$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
|
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 $pere Array with parent ids ('rowid'=>,'mainmenu'=>,'leftmenu'=>,'fk_mainmenu=>,'fk_leftmenu=>)
|
||||||
* @param int $rang Level of element
|
* @param int $rang Level of element
|
||||||
* @param string $iddivjstree Id to use for parent ul 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
|
* @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;
|
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)
|
// Test also done with jstree and dynatree (not able to have <a> inside label)
|
||||||
print '<script type="text/javascript" language="javascript">
|
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 "\n".'<li '.($tab[$x]['statut']?' class="liuseractive"':'class="liuserdisabled"').'>';
|
||||||
print $tab[$x]['entry'];
|
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
|
// And now we search all its sons of lower level
|
||||||
tree_recur($tab,$tab[$x],$rang+1);
|
tree_recur($tab,$tab[$x],$rang+1);
|
||||||
print '</li>';
|
print '</li>';
|
||||||
@ -173,7 +177,8 @@ function tree_recur($tab, $pere, $rang, $iddivjstree='iddivjstree')
|
|||||||
{
|
{
|
||||||
if (! empty($tree_recur_alreadyadded[$tab[$x]['rowid']]))
|
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;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -181,15 +186,17 @@ function tree_recur($tab, $pere, $rang, $iddivjstree='iddivjstree')
|
|||||||
}
|
}
|
||||||
print "\n".'<li '.($tab[$x]['statut']?' class="liuseractive"':'class="liuserdisabled"').'>';
|
print "\n".'<li '.($tab[$x]['statut']?' class="liuseractive"':'class="liuserdisabled"').'>';
|
||||||
print $tab[$x]['entry'];
|
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
|
// 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);
|
tree_recur($tab,$tab[$x],$rang+1);
|
||||||
print '</li>';
|
print '</li>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (! empty($ulprinted) && ! empty($pere['rowid'])) { print '</ul>'."\n"; }
|
if (! empty($ulprinted) && ! empty($pere['rowid'])) { print '</ul>'."\n"; }
|
||||||
|
|
||||||
if (empty($pere['rowid'])) print '</ul>';
|
if ($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))
|
if (! empty($conf->facture->enabled))
|
||||||
{
|
{
|
||||||
$langs->load("bills");
|
$langs->load("bills");
|
||||||
$newmenu->add("/compta/facture/list.php",$langs->trans("BillsCustomers"),0,$user->rights->facture->lire, '', $mainmenu, 'customers_bills');
|
$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",$langs->trans("NewBill"),1,$user->rights->facture->creer);
|
$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);
|
$newmenu->add("/compta/facture/list.php?leftmenu=customers_bills",$langs->trans("List"),1,$user->rights->facture->lire);
|
||||||
|
|
||||||
if (empty($leftmenu) || ($leftmenu == 'customers_bills'))
|
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);
|
$tmparray = array_merge($array_user,$array_soc,$array_thirdparty,$array_objet,$array_other,$array_thirdparty_contact);
|
||||||
complete_substitutions_array($tmparray, $outputlangs, $object);
|
complete_substitutions_array($tmparray, $outputlangs, $object);
|
||||||
|
$object->fetch_optionals();
|
||||||
// Call the ODTSubstitution hook
|
// Call the ODTSubstitution hook
|
||||||
$parameters=array('odfHandler'=>&$odfHandler,'file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs,'substitutionarray'=>&$tmparray);
|
$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
|
$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)) {
|
if (file_exists($infile) && is_readable($infile)) {
|
||||||
$pagecount = $pdf->setSourceFile($infile);
|
$pagecount = $pdf->setSourceFile($infile);
|
||||||
for($i = 1; $i <= $pagecount; $i ++) {
|
for($i = 1; $i <= $pagecount; $i ++) {
|
||||||
$tplIdx = $pdf->importPage(1);
|
$tplIdx = $pdf->importPage($i);
|
||||||
if ($tplIdx!==false) {
|
if ($tplIdx!==false) {
|
||||||
$s = $pdf->getTemplatesize($tplIdx);
|
$s = $pdf->getTemplatesize($tplIdx);
|
||||||
$pdf->AddPage($s['h'] > $s['w'] ? 'P' : 'L');
|
$pdf->AddPage($s['h'] > $s['w'] ? 'P' : 'L');
|
||||||
|
|||||||
@ -175,10 +175,9 @@ if ($action == 'confirm_deletefile')
|
|||||||
dol_print_error($db,$ecmdir->error);
|
dol_print_error($db,$ecmdir->error);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
$relativepath=$ecmdir->getRelativePath();
|
|
||||||
}
|
}
|
||||||
else $relativepath='';
|
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).
|
$file = $upload_dir . "/" . GETPOST('urlfile'); // Do not use urldecode here ($_GET and $_POST are already decoded by PHP).
|
||||||
|
|
||||||
$ret=dol_delete_file($file);
|
$ret=dol_delete_file($file);
|
||||||
|
|||||||
@ -41,12 +41,20 @@ foreach($linkedObjectBlock as $key => $objectlink)
|
|||||||
<td></td>
|
<td></td>
|
||||||
<td align="center"><?php echo dol_print_date($objectlink->date_delivery,'day'); ?></td>
|
<td align="center"><?php echo dol_print_date($objectlink->date_delivery,'day'); ?></td>
|
||||||
<td align="right"><?php
|
<td align="right"><?php
|
||||||
/*if ($user->rights->expedition->lire) {
|
if ($user->rights->expedition->lire) {
|
||||||
$total = $total + $objectlink->total_ht;
|
$total = $total + $objectlink->total_ht;
|
||||||
echo price($objectlink->total_ht);
|
echo price($objectlink->total_ht);
|
||||||
}*/ ?></td>
|
} ?></td>
|
||||||
<td align="right"><?php echo $objectlink->getLibStatut(3); ?></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>
|
</tr>
|
||||||
<?php
|
<?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;
|
$error = 0;
|
||||||
|
|
||||||
@ -911,7 +911,7 @@ if ($action == "addline")
|
|||||||
$action='';
|
$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 = new ExpenseReport($db);
|
||||||
$object->fetch($id);
|
$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 = new ExpenseReport($db);
|
||||||
$object->fetch($id);
|
$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('AmountHT').'</td>';
|
||||||
print '<td style="text-align:right;">'.$langs->trans('AmountTTC').'</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>';
|
print '</tr>';
|
||||||
|
|
||||||
$var=true;
|
$var=true;
|
||||||
@ -1682,7 +1685,7 @@ else
|
|||||||
|
|
||||||
// Ajout des boutons de modification/suppression
|
// Ajout des boutons de modification/suppression
|
||||||
print '<td style="text-align:right;" class="nowrap">';
|
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 '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=editline&rowid='.$objp->rowid.'#'.$objp->rowid.'">';
|
||||||
print img_edit();
|
print img_edit();
|
||||||
@ -1768,7 +1771,7 @@ else
|
|||||||
//print '</div>';
|
//print '</div>';
|
||||||
|
|
||||||
// Add a line
|
// 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 '<tr class="liste_titre">';
|
||||||
print '<td colspan="2"></td>';
|
print '<td colspan="2"></td>';
|
||||||
|
|||||||
@ -165,7 +165,7 @@ else:
|
|||||||
while($i<$num):
|
while($i<$num):
|
||||||
$objp = $db->fetch_object($resql);
|
$objp = $db->fetch_object($resql);
|
||||||
$var=!$var;
|
$var=!$var;
|
||||||
print "<tr $bc[$var]>";
|
print '<tr'. $bc[$var].'>';
|
||||||
print '<td>'.$objp->ref.'</td>';
|
print '<td>'.$objp->ref.'</td>';
|
||||||
print '<td>'.dol_print_date($db->jdate($objp->date_valid),'day').'</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>';
|
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');
|
$desc=GETPOST('np_desc');
|
||||||
$date_intervention = dol_mktime(GETPOST('dihour','int'), GETPOST('dimin','int'), 0, GETPOST('dimonth','int'), GETPOST('diday','int'), GETPOST('diyear','int'));
|
$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
|
// Extrafields
|
||||||
@ -1553,7 +1553,7 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
$selectmode = 'select';
|
$selectmode = 'select';
|
||||||
if (!empty($conf->global->INTERVENTION_ADDLINE_FREEDUREATION))
|
if (!empty($conf->global->INTERVENTION_ADDLINE_FREEDUREATION))
|
||||||
$selectmode = 'text';
|
$selectmode = 'text';
|
||||||
$form->select_duration('duration', $objp->duree, $selectmode);
|
$form->select_duration('duration', $objp->duree, 0, $selectmode);
|
||||||
}
|
}
|
||||||
print '</td>';
|
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.
|
// 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.
|
// 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;
|
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
|
// Add price for costprice
|
||||||
$price=$producttmp->cost_price;
|
$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()
|
$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);
|
echo json_encode($prices);
|
||||||
|
|||||||
@ -1458,12 +1458,10 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
//print $sql;
|
//print $sql;
|
||||||
if ($resql)
|
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
|
if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
|
||||||
{
|
{
|
||||||
$linetmp = new CommandeFournisseurLigne($this->db);
|
$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;
|
$linetmp->array_options = $array_options;
|
||||||
$result=$linetmp->insertExtraFields();
|
$result=$linetmp->insertExtraFields();
|
||||||
if ($result < 0)
|
if ($result < 0)
|
||||||
@ -2494,7 +2492,7 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
$response = new WorkboardResponse();
|
$response = new WorkboardResponse();
|
||||||
$response->warning_delay=$conf->commande->fournisseur->warning_delay/60/60/24;
|
$response->warning_delay=$conf->commande->fournisseur->warning_delay/60/60/24;
|
||||||
$response->label=$langs->trans("SuppliersOrdersToProcess");
|
$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");
|
$response->img=img_object($langs->trans("Orders"),"order");
|
||||||
|
|
||||||
while ($obj=$this->db->fetch_object($resql))
|
while ($obj=$this->db->fetch_object($resql))
|
||||||
|
|||||||
@ -1507,7 +1507,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
$response = new WorkboardResponse();
|
$response = new WorkboardResponse();
|
||||||
$response->warning_delay=$conf->facture->fournisseur->warning_delay/60/60/24;
|
$response->warning_delay=$conf->facture->fournisseur->warning_delay/60/60/24;
|
||||||
$response->label=$langs->trans("SupplierBillsToPay");
|
$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");
|
$response->img=img_object($langs->trans("Bills"),"bill");
|
||||||
|
|
||||||
$facturestatic = new FactureFournisseur($this->db);
|
$facturestatic = new FactureFournisseur($this->db);
|
||||||
@ -1708,8 +1708,11 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
$line->remise_percent=0;
|
$line->remise_percent=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
$prodid = mt_rand(1, $num_prods);
|
if ($num_prods > 0)
|
||||||
$line->fk_product=$prodids[$prodid];
|
{
|
||||||
|
$prodid = mt_rand(1, $num_prods);
|
||||||
|
$line->fk_product=$prodids[$prodid];
|
||||||
|
}
|
||||||
$line->product_type=0;
|
$line->product_type=0;
|
||||||
|
|
||||||
$this->lines[$xnbp]=$line;
|
$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.= " 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.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp";
|
||||||
$sql.= ", ".MAIN_DB_PREFIX."societe as s";
|
$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 pfp.fk_soc = s.rowid";
|
||||||
$sql.= " AND s.status=1"; // only enabled company selected
|
$sql.= " AND s.status=1"; // only enabled company selected
|
||||||
$sql.= " AND pfp.fk_product = ".$prodid;
|
$sql.= " AND pfp.fk_product = ".$prodid;
|
||||||
|
|||||||
@ -1055,7 +1055,7 @@ if (empty($reshook))
|
|||||||
}
|
}
|
||||||
|
|
||||||
$result = $productsupplier->find_min_price_product_fournisseur($lines[$i]->fk_product, $lines[$i]->qty);
|
$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;
|
$tva_tx = $lines[$i]->tva_tx;
|
||||||
|
|
||||||
@ -1073,7 +1073,7 @@ if (empty($reshook))
|
|||||||
$tva_tx,
|
$tva_tx,
|
||||||
$lines[$i]->localtax1_tx,
|
$lines[$i]->localtax1_tx,
|
||||||
$lines[$i]->localtax2_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->product_fourn_price_id,
|
||||||
$productsupplier->ref_supplier,
|
$productsupplier->ref_supplier,
|
||||||
$lines[$i]->remise_percent,
|
$lines[$i]->remise_percent,
|
||||||
@ -1088,6 +1088,7 @@ if (empty($reshook))
|
|||||||
$lines[$i]->fk_unit
|
$lines[$i]->fk_unit
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error++;
|
$error++;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -252,7 +252,7 @@ if ($status)
|
|||||||
if ($status == '6,7') $title.=' - '.$langs->trans("StatusOrderCanceled");
|
if ($status == '6,7') $title.=' - '.$langs->trans("StatusOrderCanceled");
|
||||||
else $title.=' - '.$langs->trans($commandestatic->statuts[$status]);
|
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="EN:Module_Customers_Orders|FR:Module_Commandes_Clients|ES:Módulo_Pedidos_de_clientes";
|
||||||
$help_url='';
|
$help_url='';
|
||||||
|
|||||||
@ -1869,8 +1869,8 @@ else
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Label
|
// Label
|
||||||
print '<tr><td>'.$form->editfieldkey("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",'label',$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
|
* List of payments
|
||||||
|
|||||||
@ -82,10 +82,9 @@ $year = GETPOST("year","int");
|
|||||||
$day_lim = GETPOST('day_lim','int');
|
$day_lim = GETPOST('day_lim','int');
|
||||||
$month_lim = GETPOST('month_lim','int');
|
$month_lim = GETPOST('month_lim','int');
|
||||||
$year_lim = GETPOST('year_lim','int');
|
$year_lim = GETPOST('year_lim','int');
|
||||||
$filter = GETPOST("filtre");
|
|
||||||
$optioncss = GETPOST('optioncss','alpha');
|
$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_all="";
|
||||||
$search_ref="";
|
$search_ref="";
|
||||||
@ -225,7 +224,7 @@ if ($search_amount_all_tax != '')
|
|||||||
$sql .= natural_search('fac.total_ttc', $search_amount_all_tax, 1);
|
$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;
|
$sql.= " AND fac.fk_statut = ".$search_status;
|
||||||
}
|
}
|
||||||
@ -273,7 +272,6 @@ if ($resql)
|
|||||||
if ($search_company) $param.='&search_company='.urlencode($search_company);
|
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_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 ($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 ($optioncss != '') $param.='&optioncss='.$optioncss;
|
||||||
if ($search_status >= 0) $param.="&search_status=".$search_status;
|
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 '<input class="flat" type="text" size="6" name="search_amount_all_tax" value="'.$search_amount_all_tax.'">';
|
||||||
print '</td><td class="liste_titre" align="right">';
|
print '</td><td class="liste_titre" align="right">';
|
||||||
$liststatus=array('0'=>$langs->trans("Draft"),'1'=>$langs->trans("Unpaid"), '2'=>$langs->trans("Paid"));
|
$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>';
|
||||||
print '<td class="liste_titre" align="right">';
|
print '<td class="liste_titre" align="right">';
|
||||||
$searchpitco=$form->showFilterAndCheckAddButtons(0);
|
$searchpitco=$form->showFilterAndCheckAddButtons(0);
|
||||||
|
|||||||
@ -635,6 +635,10 @@ if ($step == 4 && $datatoimport)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GETPOST('update')) {
|
||||||
|
$array_match_file_to_database=array();
|
||||||
|
}
|
||||||
|
|
||||||
// Load source fields in input file
|
// Load source fields in input file
|
||||||
$fieldssource=array();
|
$fieldssource=array();
|
||||||
$result=$obj->import_open_file($conf->import->dir_temp.'/'.$filetoimport,$langs);
|
$result=$obj->import_open_file($conf->import->dir_temp.'/'.$filetoimport,$langs);
|
||||||
@ -757,7 +761,7 @@ if ($step == 4 && $datatoimport)
|
|||||||
print '<input type="text" size="1" name="separator" value="'.htmlentities($separator).'"/>';
|
print '<input type="text" size="1" name="separator" value="'.htmlentities($separator).'"/>';
|
||||||
print ' '.$langs->trans("Enclosure").' : ';
|
print ' '.$langs->trans("Enclosure").' : ';
|
||||||
print '<input type="text" size="1" name="enclosure" value="'.htmlentities($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 '</form>';
|
||||||
print '</td></tr>';
|
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;
|
-- 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,
|
fk_adherent integer,
|
||||||
entity integer
|
entity integer
|
||||||
)ENGINE=InnoDB;
|
)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,
|
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||||
fk_user integer DEFAULT 0 NOT NULL,
|
fk_user integer DEFAULT 0 NOT NULL,
|
||||||
label varchar(50) NOT NULL,
|
label varchar(50) NOT NULL,
|
||||||
type varchar(20) NOT NULL,
|
type varchar(50) NOT NULL,
|
||||||
field text NOT NULL
|
field text NOT NULL
|
||||||
)ENGINE=innodb;
|
)ENGINE=innodb;
|
||||||
@ -3,9 +3,9 @@ ACCOUNTING_EXPORT_SEPARATORCSV=Column separator for export file
|
|||||||
ACCOUNTING_EXPORT_DATE=Date format for export file
|
ACCOUNTING_EXPORT_DATE=Date format for export file
|
||||||
ACCOUNTING_EXPORT_PIECE=Export the number of piece
|
ACCOUNTING_EXPORT_PIECE=Export the number of piece
|
||||||
ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export with global account
|
ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export with global account
|
||||||
ACCOUNTING_EXPORT_LABEL=Export the label
|
ACCOUNTING_EXPORT_LABEL=Export label
|
||||||
ACCOUNTING_EXPORT_AMOUNT=Export the amount
|
ACCOUNTING_EXPORT_AMOUNT=Export amount
|
||||||
ACCOUNTING_EXPORT_DEVISE=Export the devise
|
ACCOUNTING_EXPORT_DEVISE=Export currency
|
||||||
Selectformat=Select the format for the file
|
Selectformat=Select the format for the file
|
||||||
ACCOUNTING_EXPORT_PREFIX_SPEC=Specify the prefix for the file name
|
ACCOUNTING_EXPORT_PREFIX_SPEC=Specify the prefix for the file name
|
||||||
|
|
||||||
|
|||||||
@ -2,8 +2,8 @@
|
|||||||
Foundation=Foundation
|
Foundation=Foundation
|
||||||
Version=Version
|
Version=Version
|
||||||
VersionProgram=Version program
|
VersionProgram=Version program
|
||||||
VersionLastInstall=Version initial install
|
VersionLastInstall=Initial install version
|
||||||
VersionLastUpgrade=Version last upgrade
|
VersionLastUpgrade=Latest version upgrade
|
||||||
VersionExperimental=Experimental
|
VersionExperimental=Experimental
|
||||||
VersionDevelopment=Development
|
VersionDevelopment=Development
|
||||||
VersionUnknown=Unknown
|
VersionUnknown=Unknown
|
||||||
@ -145,8 +145,8 @@ Boxes=Widgets
|
|||||||
MaxNbOfLinesForBoxes=Max number of lines for widgets
|
MaxNbOfLinesForBoxes=Max number of lines for widgets
|
||||||
PositionByDefault=Default order
|
PositionByDefault=Default order
|
||||||
Position=Position
|
Position=Position
|
||||||
MenusDesc=Menus managers define content of the 2 menu bars (horizontal bar and vertical bar).
|
MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical).
|
||||||
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.
|
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
|
MenuForUsers=Menu for users
|
||||||
LangFile=.lang file
|
LangFile=.lang file
|
||||||
System=System
|
System=System
|
||||||
@ -154,13 +154,13 @@ SystemInfo=System information
|
|||||||
SystemToolsArea=System tools area
|
SystemToolsArea=System tools area
|
||||||
SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
|
SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
|
||||||
Purge=Purge
|
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.
|
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 to loose data)
|
PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
|
||||||
PurgeDeleteTemporaryFiles=Delete all temporary files (no risk to loose data)
|
PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
|
||||||
PurgeDeleteTemporaryFilesShort=Delete temporary files
|
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.
|
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
|
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.
|
PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
|
||||||
PurgeAuditEvents=Purge all security events
|
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.
|
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.
|
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.
|
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.
|
ModulesSpecialDesc=Special modules are very specific or seldom used modules.
|
||||||
ModulesJobDesc=Business modules provide simple predefined setup of Dolibarr for a particular business.
|
ModulesJobDesc=Business modules provide simple preconfigured setup of Dolibarr for specific businesses.
|
||||||
ModulesMarketPlaceDesc=You can find more modules to download on external web sites on the Internet...
|
ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
|
||||||
ModulesMarketPlaces=More modules...
|
ModulesMarketPlaces=More modules...
|
||||||
DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external 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)
|
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=Web site providers you can search to find more modules...
|
WebSiteDesc=Reference websites to find more modules...
|
||||||
URL=Link
|
URL=Link
|
||||||
BoxesAvailable=Widgets available
|
BoxesAvailable=Widgets available
|
||||||
BoxesActivated=Widgets activated
|
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.
|
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
|
YouCanSubmitFile=For this step, you can send package using this tool: Select module file
|
||||||
CurrentVersion=Dolibarr current version
|
CurrentVersion=Dolibarr current version
|
||||||
CallUpdatePage=Go to the page that updates the database structure and datas: %s.
|
CallUpdatePage=Go to the page that updates the database structure and data: %s.
|
||||||
LastStableVersion=Last stable version
|
LastStableVersion=Latest stable version
|
||||||
UpdateServerOffline=Update server offline
|
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>
|
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>
|
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
|
HideAnyVATInformationOnPDF=Hide all information related to VAT on generated PDF
|
||||||
HideDescOnPDF=Hide products description on generated PDF
|
HideDescOnPDF=Hide products description on generated PDF
|
||||||
HideRefOnPDF=Hide products ref. 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
|
PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position
|
||||||
Library=Library
|
Library=Library
|
||||||
UrlGenerationParameters=Parameters to secure URLs
|
UrlGenerationParameters=Parameters to secure URLs
|
||||||
@ -402,7 +402,7 @@ ExtrafieldParamHelpradio=Parameters list have to be like key,value<br><br> for e
|
|||||||
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
|
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
|
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
|
ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath<br>Syntax : ObjectName:Classpath<br>Example : Societe:societe/class/societe.class.php
|
||||||
LibraryToBuildPDF=Library used to build PDF
|
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>
|
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)
|
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
|
SMS=SMS
|
||||||
@ -424,11 +424,12 @@ AllBarcodeReset=All barcode values have been removed
|
|||||||
NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
|
NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
|
||||||
NoRecordWithoutBarcodeDefined=No record with no barcode value defined.
|
NoRecordWithoutBarcodeDefined=No record with no barcode value defined.
|
||||||
EnableFileCache=Enable file cache
|
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
|
NoDetails=No more details in footer
|
||||||
DisplayCompanyInfo=Display company address
|
DisplayCompanyInfo=Display company address
|
||||||
DisplayCompanyManager=Display manager names
|
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
|
# Modules
|
||||||
Module0Name=Users & groups
|
Module0Name=Users & groups
|
||||||
@ -492,15 +493,15 @@ Module200Desc=LDAP directory synchronisation
|
|||||||
Module210Name=PostNuke
|
Module210Name=PostNuke
|
||||||
Module210Desc=PostNuke integration
|
Module210Desc=PostNuke integration
|
||||||
Module240Name=Data exports
|
Module240Name=Data exports
|
||||||
Module240Desc=Tool to export Dolibarr datas (with assistants)
|
Module240Desc=Tool to export Dolibarr data (with assistants)
|
||||||
Module250Name=Data imports
|
Module250Name=Data imports
|
||||||
Module250Desc=Tool to import datas in Dolibarr (with assistants)
|
Module250Desc=Tool to import data in Dolibarr (with assistants)
|
||||||
Module310Name=Members
|
Module310Name=Members
|
||||||
Module310Desc=Foundation members management
|
Module310Desc=Foundation members management
|
||||||
Module320Name=RSS Feed
|
Module320Name=RSS Feed
|
||||||
Module320Desc=Add RSS feed inside Dolibarr screen pages
|
Module320Desc=Add RSS feed inside Dolibarr screen pages
|
||||||
Module330Name=Bookmarks
|
Module330Name=Bookmarks
|
||||||
Module330Desc=Bookmark management
|
Module330Desc=Bookmarks management
|
||||||
Module400Name=Projects/Opportunities/Leads
|
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.
|
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
|
Module410Name=Webcalendar
|
||||||
@ -549,7 +550,7 @@ Module2800Desc=FTP Client
|
|||||||
Module2900Name=GeoIPMaxmind
|
Module2900Name=GeoIPMaxmind
|
||||||
Module2900Desc=GeoIP Maxmind conversions capabilities
|
Module2900Desc=GeoIP Maxmind conversions capabilities
|
||||||
Module3100Name=Skype
|
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
|
Module4000Name=HRM
|
||||||
Module4000Desc=Human resources management
|
Module4000Desc=Human resources management
|
||||||
Module5000Name=Multi-company
|
Module5000Name=Multi-company
|
||||||
@ -607,7 +608,7 @@ Permission71=Read members
|
|||||||
Permission72=Create/modify members
|
Permission72=Create/modify members
|
||||||
Permission74=Delete members
|
Permission74=Delete members
|
||||||
Permission75=Setup types of membership
|
Permission75=Setup types of membership
|
||||||
Permission76=Export datas
|
Permission76=Export data
|
||||||
Permission78=Read subscriptions
|
Permission78=Read subscriptions
|
||||||
Permission79=Create/modify subscriptions
|
Permission79=Create/modify subscriptions
|
||||||
Permission81=Read customers orders
|
Permission81=Read customers orders
|
||||||
@ -817,15 +818,15 @@ Permission55002=Create/modify polls
|
|||||||
Permission59001=Read commercial margins
|
Permission59001=Read commercial margins
|
||||||
Permission59002=Define commercial margins
|
Permission59002=Define commercial margins
|
||||||
Permission59003=Read every user margin
|
Permission59003=Read every user margin
|
||||||
DictionaryCompanyType=Thirdparties type
|
DictionaryCompanyType=Types of thirdparties
|
||||||
DictionaryCompanyJuridicalType=Juridical kinds of thirdparties
|
DictionaryCompanyJuridicalType=Legal forms of thirdparties
|
||||||
DictionaryProspectLevel=Prospect potential level
|
DictionaryProspectLevel=Prospect potential level
|
||||||
DictionaryCanton=State/Province
|
DictionaryCanton=State/Province
|
||||||
DictionaryRegion=Regions
|
DictionaryRegion=Regions
|
||||||
DictionaryCountry=Countries
|
DictionaryCountry=Countries
|
||||||
DictionaryCurrency=Currencies
|
DictionaryCurrency=Currencies
|
||||||
DictionaryCivility=Civility title
|
DictionaryCivility=Personal and professional titles
|
||||||
DictionaryActions=Type of agenda events
|
DictionaryActions=Types of agenda events
|
||||||
DictionarySocialContributions=Social or fiscal taxes types
|
DictionarySocialContributions=Social or fiscal taxes types
|
||||||
DictionaryVAT=VAT Rates or Sales Tax Rates
|
DictionaryVAT=VAT Rates or Sales Tax Rates
|
||||||
DictionaryRevenueStamp=Amount of revenue stamps
|
DictionaryRevenueStamp=Amount of revenue stamps
|
||||||
@ -834,7 +835,7 @@ DictionaryPaymentModes=Payment modes
|
|||||||
DictionaryTypeContact=Contact/Address types
|
DictionaryTypeContact=Contact/Address types
|
||||||
DictionaryEcotaxe=Ecotax (WEEE)
|
DictionaryEcotaxe=Ecotax (WEEE)
|
||||||
DictionaryPaperFormat=Paper formats
|
DictionaryPaperFormat=Paper formats
|
||||||
DictionaryFees=Type of fees
|
DictionaryFees=Types of fees
|
||||||
DictionarySendingMethods=Shipping methods
|
DictionarySendingMethods=Shipping methods
|
||||||
DictionaryStaff=Staff
|
DictionaryStaff=Staff
|
||||||
DictionaryAvailability=Delivery delay
|
DictionaryAvailability=Delivery delay
|
||||||
@ -845,14 +846,14 @@ DictionaryAccountancysystem=Models for chart of accounts
|
|||||||
DictionaryEMailTemplates=Emails templates
|
DictionaryEMailTemplates=Emails templates
|
||||||
DictionaryUnits=Units
|
DictionaryUnits=Units
|
||||||
DictionaryProspectStatus=Prospection status
|
DictionaryProspectStatus=Prospection status
|
||||||
DictionaryHolidayTypes=Type of leaves
|
DictionaryHolidayTypes=Types of leaves
|
||||||
DictionaryOpportunityStatus=Opportunity status for project/lead
|
DictionaryOpportunityStatus=Opportunity status for project/lead
|
||||||
SetupSaved=Setup saved
|
SetupSaved=Setup saved
|
||||||
BackToModuleList=Back to modules list
|
BackToModuleList=Back to modules list
|
||||||
BackToDictionaryList=Back to dictionaries list
|
BackToDictionaryList=Back to dictionaries list
|
||||||
VATReceivedOnly=Special rate not charged
|
VATReceivedOnly=Special rate not charged
|
||||||
VATManagement=VAT Management
|
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.
|
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.
|
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.
|
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
|
DelaysBeforeWarning=Delays before warning
|
||||||
DelaysOfToleranceBeforeWarning=Tolerance 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.
|
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_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 yet realised
|
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 yet processed
|
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 yet processed
|
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_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_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
|
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_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_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
|
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.
|
SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
|
||||||
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:
|
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 input information is used on Dolibarr displays and to modify Dolibarr behaviour (for example for features related to your country).
|
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 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.
|
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.
|
SetupDescription5=Other menu entries manage optional parameters.
|
||||||
EventsSetup=Setup for events logs
|
EventsSetup=Setup for events logs
|
||||||
LogEvents=Security audit events
|
LogEvents=Security audit events
|
||||||
Audit=Audit
|
Audit=Audit
|
||||||
InfoDolibarr=Infos Dolibarr
|
InfoDolibarr=About Dolibarr
|
||||||
InfoBrowser=Infos Browser
|
InfoBrowser=About Browser
|
||||||
InfoOS=Infos OS
|
InfoOS=About OS
|
||||||
InfoWebServer=Infos web server
|
InfoWebServer=About Web Server
|
||||||
InfoDatabase=Infos database
|
InfoDatabase=About Database
|
||||||
InfoPHP=Infos PHP
|
InfoPHP=About PHP
|
||||||
InfoPerf=Infos performances
|
InfoPerf=About Performances
|
||||||
BrowserName=Browser name
|
BrowserName=Browser name
|
||||||
BrowserOS=Browser OS
|
BrowserOS=Browser OS
|
||||||
ListEvents=Audit events
|
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.
|
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.
|
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
|
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.
|
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. They are reserved parameters for advanced developers or for troubleshouting.
|
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.
|
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
|
LimitsSetup=Limits/Precision setup
|
||||||
LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
|
LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
|
||||||
MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices
|
MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices
|
||||||
@ -1103,8 +1104,8 @@ PathToDocuments=Path to documents
|
|||||||
PathDirectory=Directory
|
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.
|
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
|
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).
|
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 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.
|
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>
|
TotalNumberOfActivatedModules=Total number of activated feature modules: <b>%s</b> / <b>%s</b>
|
||||||
YouMustEnableOneModule=You must at least enable 1 module
|
YouMustEnableOneModule=You must at least enable 1 module
|
||||||
ClassNotFoundIntoPathWarning=Class %s not found into PHP path
|
ClassNotFoundIntoPathWarning=Class %s not found into PHP path
|
||||||
@ -1526,6 +1527,7 @@ MenuDeleted=Menu deleted
|
|||||||
TreeMenu=Tree menus
|
TreeMenu=Tree menus
|
||||||
Menus=Menus
|
Menus=Menus
|
||||||
TreeMenuPersonalized=Personalized menus
|
TreeMenuPersonalized=Personalized menus
|
||||||
|
NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry
|
||||||
NewMenu=New menu
|
NewMenu=New menu
|
||||||
MenuConf=Menus setup
|
MenuConf=Menus setup
|
||||||
Menu=Selection of menu
|
Menu=Selection of menu
|
||||||
@ -1751,3 +1753,4 @@ AddSubstitutions=Add keys substitutions
|
|||||||
DetectionNotPossible=Detection not possible
|
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)
|
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>.
|
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>.
|
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>.
|
AgendaUrlOptionsProject=<b>project=PROJECT_ID</b> to restrict output to actions associated to project <b>PROJECT_ID</b>.
|
||||||
AgendaShowBirthdayEvents=Show birthday's contacts
|
AgendaShowBirthdayEvents=Show birthdays of contacts
|
||||||
AgendaHideBirthdayEvents=Hide birthday's contacts
|
AgendaHideBirthdayEvents=Hide birthdays of contacts
|
||||||
Busy=Busy
|
Busy=Busy
|
||||||
ExportDataset_event1=List of agenda events
|
ExportDataset_event1=List of agenda events
|
||||||
DefaultWorkingDays=Default working days range in week (Example: 1-5, 1-6)
|
DefaultWorkingDays=Default working days range in week (Example: 1-5, 1-6)
|
||||||
|
|||||||
@ -127,7 +127,7 @@ ConfirmValidateCheckReceipt=Are you sure you want to validate this check receipt
|
|||||||
DeleteCheckReceipt=Delete this check receipt ?
|
DeleteCheckReceipt=Delete this check receipt ?
|
||||||
ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt ?
|
ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt ?
|
||||||
BankChecks=Bank checks
|
BankChecks=Bank checks
|
||||||
BankChecksToReceipt=Checks waiting for deposit
|
BankChecksToReceipt=Checks awaiting deposit
|
||||||
ShowCheckReceipt=Show check deposit receipt
|
ShowCheckReceipt=Show check deposit receipt
|
||||||
NumberOfCheques=Nb of check
|
NumberOfCheques=Nb of check
|
||||||
DeleteTransaction=Delete transaction
|
DeleteTransaction=Delete transaction
|
||||||
@ -141,9 +141,9 @@ ExportDataset_banque_1=Bank transactions and account statement
|
|||||||
ExportDataset_banque_2=Deposit slip
|
ExportDataset_banque_2=Deposit slip
|
||||||
TransactionOnTheOtherAccount=Transaction on the other account
|
TransactionOnTheOtherAccount=Transaction on the other account
|
||||||
TransactionWithOtherAccount=Account transfer
|
TransactionWithOtherAccount=Account transfer
|
||||||
PaymentNumberUpdateSucceeded=Payment number updated succesfully
|
PaymentNumberUpdateSucceeded=Payment number updated successfully
|
||||||
PaymentNumberUpdateFailed=Payment number could not be updated
|
PaymentNumberUpdateFailed=Payment number could not be updated
|
||||||
PaymentDateUpdateSucceeded=Payment date update succesfully
|
PaymentDateUpdateSucceeded=Payment date updated successfully
|
||||||
PaymentDateUpdateFailed=Payment date could not be updated
|
PaymentDateUpdateFailed=Payment date could not be updated
|
||||||
Transactions=Transactions
|
Transactions=Transactions
|
||||||
BankTransactionLine=Bank transaction
|
BankTransactionLine=Bank transaction
|
||||||
|
|||||||
@ -11,7 +11,7 @@ BillsSuppliersUnpaidForCompany=Unpaid supplier's invoices for %s
|
|||||||
BillsLate=Late payments
|
BillsLate=Late payments
|
||||||
BillsStatistics=Customers invoices statistics
|
BillsStatistics=Customers invoices statistics
|
||||||
BillsStatisticsSuppliers=Suppliers invoices statistics
|
BillsStatisticsSuppliers=Suppliers invoices statistics
|
||||||
DisabledBecauseNotErasable=Disabled because can not be erased
|
DisabledBecauseNotErasable=Disabled because cannot be erased
|
||||||
InvoiceStandard=Standard invoice
|
InvoiceStandard=Standard invoice
|
||||||
InvoiceStandardAsk=Standard invoice
|
InvoiceStandardAsk=Standard invoice
|
||||||
InvoiceStandardDesc=This kind of invoice is the common invoice.
|
InvoiceStandardDesc=This kind of invoice is the common invoice.
|
||||||
@ -319,27 +319,27 @@ FrequencyPer_m=Every %s months
|
|||||||
FrequencyPer_y=Every %s years
|
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
|
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
|
NextDateToExecution=Date for next invoice generation
|
||||||
DateLastGeneration=Date of last generation
|
DateLastGeneration=Date of latest generation
|
||||||
MaxPeriodNumber=Max nb of invoice generation
|
MaxPeriodNumber=Max nb of invoice generation
|
||||||
NbOfGenerationDone=Nb of invoice generation already done
|
NbOfGenerationDone=Nb of invoice generation already done
|
||||||
InvoiceAutoValidate=Automatically validate invoice
|
InvoiceAutoValidate=Validate invoices automatically
|
||||||
GeneratedFromRecurringInvoice=Generated from template recurring invoice %s
|
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
|
InvoiceGeneratedFromTemplate=Invoice %s generated from recurring template invoice %s
|
||||||
# PaymentConditions
|
# PaymentConditions
|
||||||
PaymentConditionShortRECEP=Immediate
|
PaymentConditionShortRECEP=Immediate
|
||||||
PaymentConditionRECEP=Immediate
|
PaymentConditionRECEP=Immediate
|
||||||
PaymentConditionShort30D=30 days
|
PaymentConditionShort30D=30 days
|
||||||
PaymentCondition30D=30 days
|
PaymentCondition30D=30 days
|
||||||
PaymentConditionShort30DENDMONTH=30 days end of month
|
PaymentConditionShort30DENDMONTH=30 days of month-end
|
||||||
PaymentCondition30DENDMONTH=30 days end of month
|
PaymentCondition30DENDMONTH=Within 30 days following the end of the month
|
||||||
PaymentConditionShort60D=60 days
|
PaymentConditionShort60D=60 days
|
||||||
PaymentCondition60D=60 days
|
PaymentCondition60D=60 days
|
||||||
PaymentConditionShort60DENDMONTH=60 days end of month
|
PaymentConditionShort60DENDMONTH=60 days of month-end
|
||||||
PaymentCondition60DENDMONTH=60 days end of month
|
PaymentCondition60DENDMONTH=Within 60 days following the end of the month
|
||||||
PaymentConditionShortPT_DELIVERY=Delivery
|
PaymentConditionShortPT_DELIVERY=Delivery
|
||||||
PaymentConditionPT_DELIVERY=On delivery
|
PaymentConditionPT_DELIVERY=On delivery
|
||||||
PaymentConditionShortPT_ORDER=On order
|
PaymentConditionShortPT_ORDER=Order
|
||||||
PaymentConditionPT_ORDER=On order
|
PaymentConditionPT_ORDER=On order
|
||||||
PaymentConditionShortPT_5050=50-50
|
PaymentConditionShortPT_5050=50-50
|
||||||
PaymentConditionPT_5050=50%% in advance, 50%% on delivery
|
PaymentConditionPT_5050=50%% in advance, 50%% on delivery
|
||||||
@ -356,12 +356,12 @@ PaymentTypeCB=Credit card
|
|||||||
PaymentTypeShortCB=Credit card
|
PaymentTypeShortCB=Credit card
|
||||||
PaymentTypeCHQ=Check
|
PaymentTypeCHQ=Check
|
||||||
PaymentTypeShortCHQ=Check
|
PaymentTypeShortCHQ=Check
|
||||||
PaymentTypeTIP=Interbank Payment
|
PaymentTypeTIP=TIP (Documents against Payment)
|
||||||
PaymentTypeShortTIP=Interbank Payment
|
PaymentTypeShortTIP=TIP Payment
|
||||||
PaymentTypeVAD=On line payment
|
PaymentTypeVAD=On line payment
|
||||||
PaymentTypeShortVAD=On line payment
|
PaymentTypeShortVAD=On line payment
|
||||||
PaymentTypeTRA=Traite
|
PaymentTypeTRA=Bank draft
|
||||||
PaymentTypeShortTRA=Traite
|
PaymentTypeShortTRA=Draft
|
||||||
PaymentTypeFAC=Factor
|
PaymentTypeFAC=Factor
|
||||||
PaymentTypeShortFAC=Factor
|
PaymentTypeShortFAC=Factor
|
||||||
BankDetails=Bank details
|
BankDetails=Bank details
|
||||||
@ -369,7 +369,7 @@ BankCode=Bank code
|
|||||||
DeskCode=Desk code
|
DeskCode=Desk code
|
||||||
BankAccountNumber=Account number
|
BankAccountNumber=Account number
|
||||||
BankAccountNumberKey=Key
|
BankAccountNumberKey=Key
|
||||||
Residence=Domiciliation
|
Residence=Direct debit
|
||||||
IBANNumber=IBAN number
|
IBANNumber=IBAN number
|
||||||
IBAN=IBAN
|
IBAN=IBAN
|
||||||
BIC=BIC/SWIFT
|
BIC=BIC/SWIFT
|
||||||
@ -459,7 +459,7 @@ SituationDeduction=Situation subtraction
|
|||||||
Progress=Progress
|
Progress=Progress
|
||||||
ModifyAllLines=Modify all lines
|
ModifyAllLines=Modify all lines
|
||||||
CreateNextSituationInvoice=Create next situation
|
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.
|
DisabledBecauseNotLastInCycle=The next situation already exists.
|
||||||
DisabledBecauseFinal=This situation is final.
|
DisabledBecauseFinal=This situation is final.
|
||||||
CantBeLessThanMinPercent=The progress can't be smaller than its value in the previous situation.
|
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
|
CreateBookmark=Create bookmark
|
||||||
SetHereATitleForLink=Set a title for the bookmark
|
SetHereATitleForLink=Set a title for the bookmark
|
||||||
UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external http URL or a relative Dolibarr URL
|
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
|
BookmarksManagement=Bookmarks management
|
||||||
ListOfBookmarks=List of bookmarks
|
ListOfBookmarks=List of bookmarks
|
||||||
|
|||||||
@ -1,69 +1,69 @@
|
|||||||
# Dolibarr language file - Source file is en_US - boxes
|
# Dolibarr language file - Source file is en_US - boxes
|
||||||
BoxLastRssInfos=Rss information
|
BoxLastRssInfos=Rss information
|
||||||
BoxLastProducts=Last %s products/services
|
BoxLastProducts=Latest %s products/services
|
||||||
BoxProductsAlertStock=Products in stock alert
|
BoxProductsAlertStock=Stock alerts for products
|
||||||
BoxLastProductsInContract=Last %s contracted products/services
|
BoxLastProductsInContract=Latest %s contracted products/services
|
||||||
BoxLastSupplierBills=Last supplier's invoices
|
BoxLastSupplierBills=Latest supplier invoices
|
||||||
BoxLastCustomerBills=Last customer's invoices
|
BoxLastCustomerBills=Latest customer invoices
|
||||||
BoxOldestUnpaidCustomerBills=Oldest unpaid customer's invoices
|
BoxOldestUnpaidCustomerBills=Oldest unpaid customer invoices
|
||||||
BoxOldestUnpaidSupplierBills=Oldest unpaid supplier's invoices
|
BoxOldestUnpaidSupplierBills=Oldest unpaid supplier invoices
|
||||||
BoxLastProposals=Last commercial proposals
|
BoxLastProposals=Latest commercial proposals
|
||||||
BoxLastProspects=Last modified prospects
|
BoxLastProspects=Latest modified prospects
|
||||||
BoxLastCustomers=Last modified customers
|
BoxLastCustomers=Latest modified customers
|
||||||
BoxLastSuppliers=Last modified suppliers
|
BoxLastSuppliers=Latest modified suppliers
|
||||||
BoxLastCustomerOrders=Last customer orders
|
BoxLastCustomerOrders=Latest customer orders
|
||||||
BoxLastValidatedCustomerOrders=Last validated customer orders
|
BoxLastValidatedCustomerOrders=Latest validated customer orders
|
||||||
BoxLastBooks=Last books
|
BoxLastBooks=Latest bookmarks
|
||||||
BoxLastActions=Last actions
|
BoxLastActions=Latest actions
|
||||||
BoxLastContracts=Last contracts
|
BoxLastContracts=Latest contracts
|
||||||
BoxLastContacts=Last contacts/addresses
|
BoxLastContacts=Latest contacts/addresses
|
||||||
BoxLastMembers=Last members
|
BoxLastMembers=Latest members
|
||||||
BoxFicheInter=Last interventions
|
BoxFicheInter=Latest interventions
|
||||||
BoxCurrentAccounts=Open accounts balance
|
BoxCurrentAccounts=Open accounts balance
|
||||||
BoxSalesTurnover=Sales turnover
|
BoxSalesTurnover=Sales turnover
|
||||||
BoxTotalUnpaidCustomerBills=Total unpaid customer's invoices
|
BoxTotalUnpaidCustomerBills=Total unpaid customer's invoices
|
||||||
BoxTotalUnpaidSuppliersBills=Total unpaid supplier's invoices
|
BoxTotalUnpaidSuppliersBills=Total unpaid supplier's invoices
|
||||||
BoxTitleLastBooks=Last %s recorded books
|
BoxTitleLastBooks=Latest %s recorded bookmarks
|
||||||
BoxTitleNbOfCustomers=Number of clients
|
BoxTitleNbOfCustomers=Number of clients
|
||||||
BoxTitleLastRssInfos=Last %s news from %s
|
BoxTitleLastRssInfos=Latest %s news from %s
|
||||||
BoxTitleLastProducts=Last %s modified products/services
|
BoxTitleLastProducts=Latest %s modified products/services
|
||||||
BoxTitleProductsAlertStock=Products in stock alert
|
BoxTitleProductsAlertStock=Products in stock alert
|
||||||
BoxTitleLastCustomerOrders=Last %s customer orders
|
BoxTitleLastCustomerOrders=Latest %s customer orders
|
||||||
BoxTitleLastModifiedCustomerOrders=Last %s modified customer orders
|
BoxTitleLastModifiedCustomerOrders=Latest %s modified customer orders
|
||||||
BoxTitleLastSuppliers=Last %s recorded suppliers
|
BoxTitleLastSuppliers=Latest %s recorded suppliers
|
||||||
BoxTitleLastCustomers=Last %s recorded customers
|
BoxTitleLastCustomers=Latest %s recorded customers
|
||||||
BoxTitleLastModifiedSuppliers=Last %s modified suppliers
|
BoxTitleLastModifiedSuppliers=Latest %s modified suppliers
|
||||||
BoxTitleLastModifiedCustomers=Last %s modified customers
|
BoxTitleLastModifiedCustomers=Latest %s modified customers
|
||||||
BoxTitleLastCustomersOrProspects=Last %s customers or prospects
|
BoxTitleLastCustomersOrProspects=Latest %s customers or prospects
|
||||||
BoxTitleLastPropals=Last %s proposals
|
BoxTitleLastPropals=Latest %s proposals
|
||||||
BoxTitleLastModifiedPropals=Last %s modified proposals
|
BoxTitleLastModifiedPropals=Latest %s modified proposals
|
||||||
BoxTitleLastCustomerBills=Last %s customer's invoices
|
BoxTitleLastCustomerBills=Latest %s customer's invoices
|
||||||
BoxTitleLastModifiedCustomerBills=Last %s modified customer invoices
|
BoxTitleLastModifiedCustomerBills=Latest %s modified customer invoices
|
||||||
BoxTitleLastSupplierBills=Last %s supplier's invoices
|
BoxTitleLastSupplierBills=Latest %s supplier's invoices
|
||||||
BoxTitleLastModifiedSupplierBills=Last %s modified supplier invoices
|
BoxTitleLastModifiedSupplierBills=Latest %s modified supplier invoices
|
||||||
BoxTitleLastModifiedProspects=Last %s modified prospects
|
BoxTitleLastModifiedProspects=Latest %s modified prospects
|
||||||
BoxTitleLastProductsInContract=Last %s products/services in a contract
|
BoxTitleLastProductsInContract=Latest %s products/services in a contract
|
||||||
BoxTitleLastModifiedMembers=Last %s members
|
BoxTitleLastModifiedMembers=Latest %s members
|
||||||
BoxTitleLastFicheInter=Last %s modified intervention
|
BoxTitleLastFicheInter=Latest %s modified interventions
|
||||||
BoxTitleOldestUnpaidCustomerBills=Oldest %s unpaid customer invoices
|
BoxTitleOldestUnpaidCustomerBills=Oldest %s unpaid customer invoices
|
||||||
BoxTitleOldestUnpaidSupplierBills=Oldest %s unpaid supplier invoices
|
BoxTitleOldestUnpaidSupplierBills=Oldest %s unpaid supplier invoices
|
||||||
BoxTitleCurrentAccounts=Open accounts balances
|
BoxTitleCurrentAccounts=Open accounts balances
|
||||||
BoxTitleSalesTurnover=Sales turnover
|
BoxTitleSalesTurnover=Sales turnover
|
||||||
BoxTitleTotalUnpaidCustomerBills=Unpaid customer invoices
|
BoxTitleTotalUnpaidCustomerBills=Unpaid customer invoices
|
||||||
BoxTitleTotalUnpaidSuppliersBills=Unpaid supplier invoices
|
BoxTitleTotalUnpaidSuppliersBills=Unpaid supplier invoices
|
||||||
BoxTitleLastModifiedContacts=Last %s modified contacts/addresses
|
BoxTitleLastModifiedContacts=Latest %s modified contacts/addresses
|
||||||
BoxMyLastBookmarks=My last %s bookmarks
|
BoxMyLastBookmarks=My latest %s bookmarks
|
||||||
BoxOldestExpiredServices=Oldest active expired services
|
BoxOldestExpiredServices=Oldest active expired services
|
||||||
BoxLastExpiredServices=Last %s oldest contacts with active expired services
|
BoxLastExpiredServices=Latest %s oldest contacts with active expired services
|
||||||
BoxTitleLastActionsToDo=Last %s actions to do
|
BoxTitleLastActionsToDo=Latest %s actions to do
|
||||||
BoxTitleLastContracts=Last %s contracts
|
BoxTitleLastContracts=Latest %s contracts
|
||||||
BoxTitleLastModifiedDonations=Last %s modified donations
|
BoxTitleLastModifiedDonations=Latest %s modified donations
|
||||||
BoxTitleLastModifiedExpenses=Last %s modified expense reports
|
BoxTitleLastModifiedExpenses=Latest %s modified expense reports
|
||||||
BoxGlobalActivity=Global activity (invoices, proposals, orders)
|
BoxGlobalActivity=Global activity (invoices, proposals, orders)
|
||||||
BoxGoodCustomers=Good customers
|
BoxGoodCustomers=Good customers
|
||||||
BoxTitleGoodCustomers=%s Good customers
|
BoxTitleGoodCustomers=%s Good customers
|
||||||
FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Last successfull refresh date: %s
|
FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Latest successfull refresh date: %s
|
||||||
LastRefreshDate=Last refresh date
|
LastRefreshDate=Latest refresh date
|
||||||
NoRecordedBookmarks=No bookmarks defined.
|
NoRecordedBookmarks=No bookmarks defined.
|
||||||
ClickToAdd=Click here to add.
|
ClickToAdd=Click here to add.
|
||||||
NoRecordedCustomers=No recorded customers
|
NoRecordedCustomers=No recorded customers
|
||||||
@ -82,8 +82,8 @@ NoContractedProducts=No products/services contracted
|
|||||||
NoRecordedContracts=No recorded contracts
|
NoRecordedContracts=No recorded contracts
|
||||||
NoRecordedInterventions=No recorded interventions
|
NoRecordedInterventions=No recorded interventions
|
||||||
BoxLatestSupplierOrders=Latest supplier orders
|
BoxLatestSupplierOrders=Latest supplier orders
|
||||||
BoxTitleLatestSupplierOrders=Last %s supplier orders
|
BoxTitleLatestSupplierOrders=Latest %s supplier orders
|
||||||
BoxTitleLatestModifiedSupplierOrders=Last %s modified supplier orders
|
BoxTitleLatestModifiedSupplierOrders=Latest %s modified supplier orders
|
||||||
NoSupplierOrder=No recorded supplier order
|
NoSupplierOrder=No recorded supplier order
|
||||||
BoxCustomersInvoicesPerMonth=Customer invoices per month
|
BoxCustomersInvoicesPerMonth=Customer invoices per month
|
||||||
BoxSuppliersInvoicesPerMonth=Supplier invoices per month
|
BoxSuppliersInvoicesPerMonth=Supplier invoices per month
|
||||||
@ -96,5 +96,5 @@ BoxProductDistributionFor=Distribution of %s for %s
|
|||||||
ForCustomersInvoices=Customers invoices
|
ForCustomersInvoices=Customers invoices
|
||||||
ForCustomersOrders=Customers orders
|
ForCustomersOrders=Customers orders
|
||||||
ForProposals=Proposals
|
ForProposals=Proposals
|
||||||
LastXMonthRolling=The last %s month rolling
|
LastXMonthRolling=The latest %s month rolling
|
||||||
ChooseBoxToAdd=Add widget to your dashboard...
|
ChooseBoxToAdd=Add widget to your dashboard...
|
||||||
|
|||||||
@ -16,8 +16,8 @@ Rendez-Vous=Rendezvous
|
|||||||
ConfirmDeleteAction=Are you sure you want to delete this event ?
|
ConfirmDeleteAction=Are you sure you want to delete this event ?
|
||||||
CardAction=Event card
|
CardAction=Event card
|
||||||
PercentDone=Percentage complete
|
PercentDone=Percentage complete
|
||||||
ActionOnCompany=Event about company
|
ActionOnCompany=Related company
|
||||||
ActionOnContact=Event about contact
|
ActionOnContact=Related contact
|
||||||
TaskRDV=Meetings
|
TaskRDV=Meetings
|
||||||
TaskRDVWith=Meeting with %s
|
TaskRDVWith=Meeting with %s
|
||||||
ShowTask=Show task
|
ShowTask=Show task
|
||||||
@ -35,9 +35,9 @@ ShowCustomer=Show customer
|
|||||||
ShowProspect=Show prospect
|
ShowProspect=Show prospect
|
||||||
ListOfProspects=List of prospects
|
ListOfProspects=List of prospects
|
||||||
ListOfCustomers=List of customers
|
ListOfCustomers=List of customers
|
||||||
LastDoneTasks=Last %s completed tasks
|
LastDoneTasks=Latest %s completed tasks
|
||||||
LastRecordedTasks=Last recorded tasks
|
LastRecordedTasks=Latest recorded tasks
|
||||||
LastActionsToDo=Last %s oldest actions not completed
|
LastActionsToDo=Oldest %s not completed actions
|
||||||
DoneAndToDoActionsFor=Completed and To do events for %s
|
DoneAndToDoActionsFor=Completed and To do events for %s
|
||||||
DoneAndToDoActions=Completed and To do events
|
DoneAndToDoActions=Completed and To do events
|
||||||
DoneActions=Completed events
|
DoneActions=Completed events
|
||||||
|
|||||||
@ -302,7 +302,7 @@ RequiredIfCustomer=Required if third party is a customer or prospect
|
|||||||
RequiredIfSupplier=Required if third party is a supplier
|
RequiredIfSupplier=Required if third party is a supplier
|
||||||
ValidityControledByModule=Validity controled by module
|
ValidityControledByModule=Validity controled by module
|
||||||
ThisIsModuleRules=This is rules for this module
|
ThisIsModuleRules=This is rules for this module
|
||||||
LastProspect=Last
|
LastProspect=Latest
|
||||||
ProspectToContact=Prospect to contact
|
ProspectToContact=Prospect to contact
|
||||||
CompanyDeleted=Company "%s" deleted from database.
|
CompanyDeleted=Company "%s" deleted from database.
|
||||||
ListOfContacts=List of contacts/addresses
|
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
|
NoContactForAnyInvoice=This contact is not a contact for any invoice
|
||||||
NewContact=New contact
|
NewContact=New contact
|
||||||
NewContactAddress=New contact/address
|
NewContactAddress=New contact/address
|
||||||
LastContacts=Last contacts
|
LastContacts=Latest contacts
|
||||||
MyContacts=My contacts
|
MyContacts=My contacts
|
||||||
Phones=Phones
|
Phones=Phones
|
||||||
Capital=Capital
|
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>
|
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).
|
ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s).
|
||||||
NorProspectNorCustomer=Nor prospect, nor customer
|
NorProspectNorCustomer=Nor prospect, nor customer
|
||||||
JuridicalStatus=Juridical status
|
JuridicalStatus=Legal form
|
||||||
Staff=Staff
|
Staff=Staff
|
||||||
ProspectLevelShort=Potential
|
ProspectLevelShort=Potential
|
||||||
ProspectLevel=Prospect potential
|
ProspectLevel=Prospect potential
|
||||||
@ -370,12 +370,12 @@ TE_PRIVATE=Private individual
|
|||||||
TE_OTHER=Other
|
TE_OTHER=Other
|
||||||
StatusProspect-1=Do not contact
|
StatusProspect-1=Do not contact
|
||||||
StatusProspect0=Never contacted
|
StatusProspect0=Never contacted
|
||||||
StatusProspect1=To contact
|
StatusProspect1=To be contacted
|
||||||
StatusProspect2=Contact in process
|
StatusProspect2=Contact in process
|
||||||
StatusProspect3=Contact done
|
StatusProspect3=Contact done
|
||||||
ChangeDoNotContact=Change status to 'Do not contact'
|
ChangeDoNotContact=Change status to 'Do not contact'
|
||||||
ChangeNeverContacted=Change status to 'Never contacted'
|
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'
|
ChangeContactInProcess=Change status to 'Contact in process'
|
||||||
ChangeContactDone=Change status to 'Contact done'
|
ChangeContactDone=Change status to 'Contact done'
|
||||||
ProspectsByStatus=Prospects by status
|
ProspectsByStatus=Prospects by status
|
||||||
@ -400,28 +400,28 @@ DeliveriesAddress=Delivery addresses
|
|||||||
DeliveryAddress=Delivery address
|
DeliveryAddress=Delivery address
|
||||||
DeliveryAddressLabel=Delivery address label
|
DeliveryAddressLabel=Delivery address label
|
||||||
DeleteDeliveryAddress=Delete a delivery address
|
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
|
NewDeliveryAddress=New delivery address
|
||||||
AddDeliveryAddress=Create address
|
AddDeliveryAddress=Add delivery address
|
||||||
AddAddress=Create address
|
AddAddress=Add address
|
||||||
NoOtherDeliveryAddress=No alternative delivery address defined
|
NoOtherDeliveryAddress=No alternative delivery address defined
|
||||||
SupplierCategory=Supplier category
|
SupplierCategory=Supplier category
|
||||||
JuridicalStatus200=Independant
|
JuridicalStatus200=Independent
|
||||||
DeleteFile=Delete file
|
DeleteFile=Delete file
|
||||||
ConfirmDeleteFile=Are you sure you want to delete this 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
|
SelectCountry=Select a country
|
||||||
SelectCompany=Select a third party
|
SelectCompany=Select a third party
|
||||||
Organization=Organization
|
Organization=Organization
|
||||||
AutomaticallyGenerated=Automatically generated
|
AutomaticallyGenerated=Automatically generated
|
||||||
FiscalYearInformation=Information on the fiscal year
|
FiscalYearInformation=Information on the fiscal year
|
||||||
FiscalMonthStart=Starting month of 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
|
ListSuppliersShort=List of suppliers
|
||||||
ListProspectsShort=List of prospects
|
ListProspectsShort=List of prospects
|
||||||
ListCustomersShort=List of customers
|
ListCustomersShort=List of customers
|
||||||
ThirdPartiesArea=Third parties and contact area
|
ThirdPartiesArea=Third parties and contact area
|
||||||
LastModifiedThirdParties=Last %s modified third parties
|
LastModifiedThirdParties=Latest %s modified third parties
|
||||||
UniqueThirdParties=Total of unique third parties
|
UniqueThirdParties=Total of unique third parties
|
||||||
InActivity=Open
|
InActivity=Open
|
||||||
ActivityCeased=Closed
|
ActivityCeased=Closed
|
||||||
@ -429,7 +429,7 @@ ActivityStateFilter=Activity status
|
|||||||
ProductsIntoElements=List of products/services into %s
|
ProductsIntoElements=List of products/services into %s
|
||||||
CurrentOutstandingBill=Current outstanding bill
|
CurrentOutstandingBill=Current outstanding bill
|
||||||
OutstandingBill=Max. for 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.
|
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.
|
LeopardNumRefModelDesc=The code is free. This code can be modified at any time.
|
||||||
ManagingDirectors=Manager(s) name (CEO, director, president...)
|
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.
|
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
|
ThirdpartiesMergeSuccess=Thirdparties have been merged
|
||||||
ErrorThirdpartiesMerge=There was an error when deleting the thirdparties. Please check the log. Changes have been reverted.
|
ErrorThirdpartiesMerge=There was an error when deleting the thirdparties. Please check the log. Changes have been reverted.
|
||||||
SaleRepresentativeLogin=Login of sale representative
|
SaleRepresentativeLogin=Login of sales representative
|
||||||
SaleRepresentativeFirstname=Firstname of sale representative
|
SaleRepresentativeFirstname=Firstname of sales representative
|
||||||
SaleRepresentativeLastname=Lastname of sale representative
|
SaleRepresentativeLastname=Lastname of sales representative
|
||||||
ModelModulesContact=Document Models of contact
|
ModelModulesContact=Document Models of contact
|
||||||
ModelModulesThirdParties=Document models of third party
|
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.
|
SuppliersProductsSellSalesTurnover=The generated turnover by the sales of supplier's products.
|
||||||
CheckReceipt=Check deposit
|
CheckReceipt=Check deposit
|
||||||
CheckReceiptShort=Check deposit
|
CheckReceiptShort=Check deposit
|
||||||
LastCheckReceiptShort=Last %s check receipts
|
LastCheckReceiptShort=Latest %s check receipts
|
||||||
NewCheckReceipt=New discount
|
NewCheckReceipt=New discount
|
||||||
NewCheckDeposit=New check deposit
|
NewCheckDeposit=New check deposit
|
||||||
NewCheckDepositOn=Create receipt for deposit on account: %s
|
NewCheckDepositOn=Create receipt for deposit on account: %s
|
||||||
NoWaitingChecks=No checks waiting for deposit.
|
NoWaitingChecks=No checks awaiting deposit.
|
||||||
DateChequeReceived=Check reception date
|
DateChequeReceived=Check reception date
|
||||||
NbOfCheques=Nb of checks
|
NbOfCheques=Nb of checks
|
||||||
PaySocialContribution=Pay a social/fiscal tax
|
PaySocialContribution=Pay a social/fiscal tax
|
||||||
@ -226,3 +226,4 @@ 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
|
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
|
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
|
# Dolibarr language file - Source file is en_US - contracts
|
||||||
ContractsArea=Contracts area
|
ContractsArea=Contracts area
|
||||||
ListOfContracts=List of contracts
|
ListOfContracts=List of contracts
|
||||||
LastModifiedContracts=Last %s modified contracts
|
LastModifiedContracts=Latest %s modified contracts
|
||||||
AllContracts=All contracts
|
AllContracts=All contracts
|
||||||
ContractCard=Contract card
|
ContractCard=Contract card
|
||||||
ContractStatus=Contract status
|
ContractStatus=Contract status
|
||||||
@ -58,9 +58,9 @@ ListOfRunningContractsLines=List of running contract lines
|
|||||||
ListOfRunningServices=List of running services
|
ListOfRunningServices=List of running services
|
||||||
NotActivatedServices=Inactive services (among validated contracts)
|
NotActivatedServices=Inactive services (among validated contracts)
|
||||||
BoardNotActivatedServices=Services to activate among validated contracts
|
BoardNotActivatedServices=Services to activate among validated contracts
|
||||||
LastContracts=Last %s contracts
|
LastContracts=Latest %s contracts
|
||||||
LastActivatedServices=Last %s activated services
|
LastActivatedServices=Latest %s activated services
|
||||||
LastModifiedServices=Last %s modified services
|
LastModifiedServices=Latest %s modified services
|
||||||
EditServiceLine=Edit service line
|
EditServiceLine=Edit service line
|
||||||
ContractStartDate=Start date
|
ContractStartDate=Start date
|
||||||
ContractEndDate=End date
|
ContractEndDate=End date
|
||||||
|
|||||||
@ -40,8 +40,8 @@ CronNone=None
|
|||||||
CronDtStart=Not before
|
CronDtStart=Not before
|
||||||
CronDtEnd=Not after
|
CronDtEnd=Not after
|
||||||
CronDtNextLaunch=Next execution
|
CronDtNextLaunch=Next execution
|
||||||
CronDtLastLaunch=Start date of last execution
|
CronDtLastLaunch=Start date of latest execution
|
||||||
CronDtLastResult=End date of last execution
|
CronDtLastResult=End date of latest execution
|
||||||
CronFrequency=Frequency
|
CronFrequency=Frequency
|
||||||
CronClass=Class
|
CronClass=Class
|
||||||
CronMethod=Method
|
CronMethod=Method
|
||||||
@ -63,7 +63,7 @@ CronHourStart= Start hour and date of job
|
|||||||
CronEvery=Execute job each
|
CronEvery=Execute job each
|
||||||
CronObject=Instance/Object to create
|
CronObject=Instance/Object to create
|
||||||
CronArgs=Parameters
|
CronArgs=Parameters
|
||||||
CronSaveSucess=Save succesfully
|
CronSaveSucess=Save successfully
|
||||||
CronNote=Comment
|
CronNote=Comment
|
||||||
CronFieldMandatory=Fields %s is mandatory
|
CronFieldMandatory=Fields %s is mandatory
|
||||||
CronErrEndDateStartDt=End date cannot be before start date
|
CronErrEndDateStartDt=End date cannot be before start date
|
||||||
|
|||||||
@ -138,7 +138,7 @@ CountryLS=Lesotho
|
|||||||
CountryLR=Liberia
|
CountryLR=Liberia
|
||||||
CountryLY=Libyan
|
CountryLY=Libyan
|
||||||
CountryLI=Liechtenstein
|
CountryLI=Liechtenstein
|
||||||
CountryLT=Lituania
|
CountryLT=Lithuania
|
||||||
CountryLU=Luxembourg
|
CountryLU=Luxembourg
|
||||||
CountryMO=Macao
|
CountryMO=Macao
|
||||||
CountryMK=Macedonia, the former Yugoslav of
|
CountryMK=Macedonia, the former Yugoslav of
|
||||||
|
|||||||
@ -29,7 +29,7 @@ ValidPromess=Validate promise
|
|||||||
DonationReceipt=Donation receipt
|
DonationReceipt=Donation receipt
|
||||||
BuildDonationReceipt=Build receipt
|
BuildDonationReceipt=Build receipt
|
||||||
DonationsModels=Documents models for donation receipts
|
DonationsModels=Documents models for donation receipts
|
||||||
LastModifiedDonations=Last %s modified donations
|
LastModifiedDonations=Latest %s modified donations
|
||||||
SearchADonation=Search a donation
|
SearchADonation=Search a donation
|
||||||
DonationRecipient=Donation recipient
|
DonationRecipient=Donation recipient
|
||||||
ThankYou=Thank You
|
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>'.
|
ErrorFailToRenameDir=Failed to rename directory '<b>%s</b>' into '<b>%s</b>'.
|
||||||
ErrorFailToCreateDir=Failed to create directory '<b>%s</b>'.
|
ErrorFailToCreateDir=Failed to create directory '<b>%s</b>'.
|
||||||
ErrorFailToDeleteDir=Failed to delete 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.
|
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.
|
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.
|
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!
|
ErrorWrongDate=Date is not correct!
|
||||||
ErrorFailedToWriteInDir=Failed to write in directory %s
|
ErrorFailedToWriteInDir=Failed to write in directory %s
|
||||||
ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%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.
|
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).
|
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
|
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.
|
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').
|
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
|
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.
|
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.
|
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
|
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
|
UserName=Name
|
||||||
FirstDayOfHoliday=First day of vacation
|
FirstDayOfHoliday=First day of vacation
|
||||||
LastDayOfHoliday=Last day of vacation
|
LastDayOfHoliday=Last day of vacation
|
||||||
BoxTitleLastLeaveRequests=Last %s modified leave requests
|
BoxTitleLastLeaveRequests=Latest %s modified leave requests
|
||||||
HolidaysMonthlyUpdate=Monthly update
|
HolidaysMonthlyUpdate=Monthly update
|
||||||
ManualUpdate=Manual update
|
ManualUpdate=Manual update
|
||||||
HolidaysCancelation=Leave request cancelation
|
HolidaysCancelation=Leave request cancelation
|
||||||
@ -91,8 +91,8 @@ DescOptionCP=Description of the option
|
|||||||
ValueOptionCP=Value
|
ValueOptionCP=Value
|
||||||
GroupToValidateCP=Group with the ability to approve leave requests
|
GroupToValidateCP=Group with the ability to approve leave requests
|
||||||
ConfirmConfigCP=Validate the configuration
|
ConfirmConfigCP=Validate the configuration
|
||||||
LastUpdateCP=Last automatic update of leaves allocation
|
LastUpdateCP=Latest automatic update of leaves allocation
|
||||||
MonthOfLastMonthlyUpdate=Month of last automatic update of leaves allocation
|
MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
|
||||||
UpdateConfCPOK=Updated successfully.
|
UpdateConfCPOK=Updated successfully.
|
||||||
ErrorUpdateConfCP=An error occurred during the update, please try again.
|
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>.
|
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>.
|
||||||
|
|||||||
@ -82,7 +82,7 @@ SetupEnd=End of setup
|
|||||||
SystemIsInstalled=This installation is complete.
|
SystemIsInstalled=This installation is complete.
|
||||||
SystemIsUpgraded=Dolibarr has been upgraded successfully.
|
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:
|
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
|
GoToDolibarr=Go to Dolibarr
|
||||||
GoToSetupArea=Go to Dolibarr (setup area)
|
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.
|
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
|
MigrationProposal=Data migration for commercial proposals
|
||||||
MigrationInvoice=Data migration for customer's invoices
|
MigrationInvoice=Data migration for customer's invoices
|
||||||
MigrationContract=Data migration for contracts
|
MigrationContract=Data migration for contracts
|
||||||
MigrationSuccessfullUpdate=Upgrade successful
|
MigrationSuccessfullUpdate=Upgrade successfull
|
||||||
MigrationUpdateFailed=Failed upgrade process
|
MigrationUpdateFailed=Failed upgrade process
|
||||||
MigrationRelationshipTables=Data migration for relationship tables (%s)
|
MigrationRelationshipTables=Data migration for relationship tables (%s)
|
||||||
MigrationPaymentsUpdate=Payment data correction
|
MigrationPaymentsUpdate=Payment data correction
|
||||||
@ -173,7 +173,7 @@ MigrationContractsLineCreation=Create contract line for contract ref %s
|
|||||||
MigrationContractsNothingToUpdate=No more things to do
|
MigrationContractsNothingToUpdate=No more things to do
|
||||||
MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
|
MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
|
||||||
MigrationContractsEmptyDatesUpdate=Contract empty date correction
|
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
|
MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
|
||||||
MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
|
MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
|
||||||
MigrationContractsInvalidDatesUpdate=Bad value date contract correction
|
MigrationContractsInvalidDatesUpdate=Bad value date contract correction
|
||||||
@ -181,7 +181,7 @@ MigrationContractsInvalidDateFix=Correct contract %s (Contract date=%s, Starting
|
|||||||
MigrationContractsInvalidDatesNumber=%s contracts modified
|
MigrationContractsInvalidDatesNumber=%s contracts modified
|
||||||
MigrationContractsInvalidDatesNothingToUpdate=No date with bad value to correct
|
MigrationContractsInvalidDatesNothingToUpdate=No date with bad value to correct
|
||||||
MigrationContractsIncoherentCreationDateUpdate=Bad value contract creation date correction
|
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
|
MigrationContractsIncoherentCreationDateNothingToUpdate=No bad value for contract creation date to correct
|
||||||
MigrationReopeningContracts=Open contract closed by error
|
MigrationReopeningContracts=Open contract closed by error
|
||||||
MigrationReopenThisContract=Reopen contract %s
|
MigrationReopenThisContract=Reopen contract %s
|
||||||
|
|||||||
@ -7,7 +7,7 @@ AddIntervention=Create intervention
|
|||||||
ListOfInterventions=List of interventions
|
ListOfInterventions=List of interventions
|
||||||
EditIntervention=Edit intervention
|
EditIntervention=Edit intervention
|
||||||
ActionsOnFicheInter=Actions on intervention
|
ActionsOnFicheInter=Actions on intervention
|
||||||
LastInterventions=Last %s interventions
|
LastInterventions=Latest %s interventions
|
||||||
AllInterventions=All interventions
|
AllInterventions=All interventions
|
||||||
CreateDraftIntervention=Create draft
|
CreateDraftIntervention=Create draft
|
||||||
CustomerDoesNotHavePrefix=Customer does not have a prefix
|
CustomerDoesNotHavePrefix=Customer does not have a prefix
|
||||||
@ -41,7 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted
|
|||||||
SearchAnIntervention=Search an intervention
|
SearchAnIntervention=Search an intervention
|
||||||
InterventionsArea=Interventions area
|
InterventionsArea=Interventions area
|
||||||
DraftFichinter=Draft interventions
|
DraftFichinter=Draft interventions
|
||||||
LastModifiedInterventions=Last %s modified interventions
|
LastModifiedInterventions=Latest %s modified interventions
|
||||||
##### Types de contacts #####
|
##### Types de contacts #####
|
||||||
TypeContact_fichinter_internal_INTERREPFOLL=Representative following-up intervention
|
TypeContact_fichinter_internal_INTERREPFOLL=Representative following-up intervention
|
||||||
TypeContact_fichinter_internal_INTERVENING=Intervening
|
TypeContact_fichinter_internal_INTERVENING=Intervening
|
||||||
|
|||||||
@ -3,8 +3,8 @@ MailmanSpipSetup=Mailman and SPIP module Setup
|
|||||||
MailmanTitle=Mailman mailing list system
|
MailmanTitle=Mailman mailing list system
|
||||||
TestSubscribe=To test subscription to Mailman lists
|
TestSubscribe=To test subscription to Mailman lists
|
||||||
TestUnSubscribe=To test unsubscribe from Mailman lists
|
TestUnSubscribe=To test unsubscribe from Mailman lists
|
||||||
MailmanCreationSuccess=Subscription test was executed succesfully
|
MailmanCreationSuccess=Subscription test was executed successfully
|
||||||
MailmanDeletionSuccess=Unsubscription test was executed succesfully
|
MailmanDeletionSuccess=Unsubscription test was executed successfully
|
||||||
SynchroMailManEnabled=A Mailman update will be performed
|
SynchroMailManEnabled=A Mailman update will be performed
|
||||||
SynchroSpipEnabled=A Spip update will be performed
|
SynchroSpipEnabled=A Spip update will be performed
|
||||||
DescADHERENT_MAILMAN_ADMINPW=Mailman administrator password
|
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?
|
DeleteIntoSpipConfirmation=Are you sure you want to remove this member from SPIP?
|
||||||
DeleteIntoSpipError=Failed to suppress the user from SPIP
|
DeleteIntoSpipError=Failed to suppress the user from SPIP
|
||||||
SPIPConnectionFailed=Failed to connect to SPIP
|
SPIPConnectionFailed=Failed to connect to SPIP
|
||||||
SuccessToAddToMailmanList=Add of %s to mailman list %s or SPIP database done
|
SuccessToAddToMailmanList=%s successfully added to mailman list %s or SPIP database
|
||||||
SuccessToRemoveToMailmanList=Removal of %s from mailman list %s or SPIP database done
|
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 ?
|
ConfirmCloneEMailing=Are you sure you want to clone this emailing ?
|
||||||
CloneContent=Clone message
|
CloneContent=Clone message
|
||||||
CloneReceivers=Cloner recipients
|
CloneReceivers=Cloner recipients
|
||||||
DateLastSend=Date of last sending
|
DateLastSend=Date of latest sending
|
||||||
DateSending=Date sending
|
DateSending=Date sending
|
||||||
SentTo=Sent to <b>%s</b>
|
SentTo=Sent to <b>%s</b>
|
||||||
MailingStatusRead=Read
|
MailingStatusRead=Read
|
||||||
|
|||||||
@ -36,8 +36,8 @@ ErrorFieldRequired=Field '%s' is required
|
|||||||
ErrorFieldFormat=Field '%s' has a bad value
|
ErrorFieldFormat=Field '%s' has a bad value
|
||||||
ErrorFileDoesNotExists=File %s does not exist
|
ErrorFileDoesNotExists=File %s does not exist
|
||||||
ErrorFailedToOpenFile=Failed to open file %s
|
ErrorFailedToOpenFile=Failed to open file %s
|
||||||
ErrorCanNotCreateDir=Can not create dir %s
|
ErrorCanNotCreateDir=Cannot create dir %s
|
||||||
ErrorCanNotReadDir=Can not read dir %s
|
ErrorCanNotReadDir=Cannot read dir %s
|
||||||
ErrorConstantNotDefined=Parameter %s not defined
|
ErrorConstantNotDefined=Parameter %s not defined
|
||||||
ErrorUnknown=Unknown error
|
ErrorUnknown=Unknown error
|
||||||
ErrorSQL=SQL Error
|
ErrorSQL=SQL Error
|
||||||
@ -73,7 +73,7 @@ FileNotUploaded=The file was not uploaded
|
|||||||
FileUploaded=The file was successfully 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.
|
FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
|
||||||
NbOfEntries=Nb of entries
|
NbOfEntries=Nb of entries
|
||||||
GoToWikiHelpPage=Read online help (need Internet access)
|
GoToWikiHelpPage=Read online help (Internet access needed)
|
||||||
GoToHelpPage=Read help
|
GoToHelpPage=Read help
|
||||||
RecordSaved=Record saved
|
RecordSaved=Record saved
|
||||||
RecordDeleted=Record deleted
|
RecordDeleted=Record deleted
|
||||||
@ -94,12 +94,12 @@ ConnectedSince=Connected since
|
|||||||
AuthenticationMode=Authentification mode
|
AuthenticationMode=Authentification mode
|
||||||
RequestedUrl=Requested Url
|
RequestedUrl=Requested Url
|
||||||
DatabaseTypeManager=Database type manager
|
DatabaseTypeManager=Database type manager
|
||||||
RequestLastAccess=Request for last database access
|
RequestLastAccess=Latest database access request
|
||||||
RequestLastAccessInError=Request for last database access in error
|
RequestLastAccessInError=Latest database access request error
|
||||||
ReturnCodeLastAccessInError=Return code for last database access in error
|
ReturnCodeLastAccessInError=Return code for latest database access request error
|
||||||
InformationLastAccessInError=Information for last database access in error
|
InformationLastAccessInError=Information for latest database access request error
|
||||||
DolibarrHasDetectedError=Dolibarr has detected a technical 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
|
MoreInformation=More information
|
||||||
TechnicalInformation=Technical information
|
TechnicalInformation=Technical information
|
||||||
TechnicalID=Technical ID
|
TechnicalID=Technical ID
|
||||||
@ -142,7 +142,7 @@ Update=Update
|
|||||||
AddActionToDo=Add event to do
|
AddActionToDo=Add event to do
|
||||||
AddActionDone=Add event done
|
AddActionDone=Add event done
|
||||||
Close=Close
|
Close=Close
|
||||||
CloseBox=Remove box of your dashboard
|
CloseBox=Remove box from your dashboard
|
||||||
Confirm=Confirm
|
Confirm=Confirm
|
||||||
ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b> ?
|
ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b> ?
|
||||||
Delete=Delete
|
Delete=Delete
|
||||||
@ -158,6 +158,7 @@ Save=Save
|
|||||||
SaveAs=Save As
|
SaveAs=Save As
|
||||||
TestConnection=Test connection
|
TestConnection=Test connection
|
||||||
ToClone=Clone
|
ToClone=Clone
|
||||||
|
ConfirmCloneAction=Are you sure you want to clone this event ?
|
||||||
ConfirmClone=Choose data you want to clone :
|
ConfirmClone=Choose data you want to clone :
|
||||||
NoCloneOptionsSpecified=No data to clone defined.
|
NoCloneOptionsSpecified=No data to clone defined.
|
||||||
Of=of
|
Of=of
|
||||||
@ -176,7 +177,6 @@ Upload=Send file
|
|||||||
ToLink=Link
|
ToLink=Link
|
||||||
Select=Select
|
Select=Select
|
||||||
Choose=Choose
|
Choose=Choose
|
||||||
ChooseLangage=Please choose your language
|
|
||||||
Resize=Resize
|
Resize=Resize
|
||||||
Recenter=Recenter
|
Recenter=Recenter
|
||||||
Author=Author
|
Author=Author
|
||||||
@ -530,7 +530,7 @@ ReportName=Report name
|
|||||||
ReportPeriod=Report period
|
ReportPeriod=Report period
|
||||||
ReportDescription=Description
|
ReportDescription=Description
|
||||||
Report=Report
|
Report=Report
|
||||||
Keyword=Mot clé
|
Keyword=Keyword
|
||||||
Legend=Legend
|
Legend=Legend
|
||||||
FillTownFromZip=Fill city from zip
|
FillTownFromZip=Fill city from zip
|
||||||
Fill=Fill
|
Fill=Fill
|
||||||
@ -550,8 +550,8 @@ NbOfCustomers=Number of customers
|
|||||||
NbOfLines=Number of lines
|
NbOfLines=Number of lines
|
||||||
NbOfObjects=Number of objects
|
NbOfObjects=Number of objects
|
||||||
NbOfReferers=Number of referrers
|
NbOfReferers=Number of referrers
|
||||||
NbOfObjectReferers=Number of refering objects
|
NbOfObjectReferers=Number of related items
|
||||||
Referers=Refering objects
|
Referers=Related items
|
||||||
TotalQuantity=Total quantity
|
TotalQuantity=Total quantity
|
||||||
DateFromTo=From %s to %s
|
DateFromTo=From %s to %s
|
||||||
DateFrom=From %s
|
DateFrom=From %s
|
||||||
@ -594,7 +594,7 @@ Priority=Priority
|
|||||||
SendByMail=Send by EMail
|
SendByMail=Send by EMail
|
||||||
MailSentBy=Email sent by
|
MailSentBy=Email sent by
|
||||||
TextUsedInTheMessageBody=Email body
|
TextUsedInTheMessageBody=Email body
|
||||||
SendAcknowledgementByMail=Send Ack. by email
|
SendAcknowledgementByMail=Send confirmation email
|
||||||
EMail=E-mail
|
EMail=E-mail
|
||||||
NoEMail=No email
|
NoEMail=No email
|
||||||
NoMobilePhone=No mobile phone
|
NoMobilePhone=No mobile phone
|
||||||
@ -746,7 +746,7 @@ Sincerely=Sincerely
|
|||||||
DeleteLine=Delete line
|
DeleteLine=Delete line
|
||||||
ConfirmDeleteLine=Are you sure you want to delete this line ?
|
ConfirmDeleteLine=Are you sure you want to delete this line ?
|
||||||
NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records
|
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
|
MassFilesArea=Area for files built by mass actions
|
||||||
HideTempMassFilesArea=Hide area of files built by mass actions
|
HideTempMassFilesArea=Hide area of files built by mass actions
|
||||||
ShowTempMassFilesArea=Show area of files built by mass actions
|
ShowTempMassFilesArea=Show area of files built by mass actions
|
||||||
|
|||||||
@ -114,9 +114,9 @@ EnablePublicSubscriptionForm=Enable the public auto-subscription form
|
|||||||
MemberPublicLinks=Public links/pages
|
MemberPublicLinks=Public links/pages
|
||||||
ExportDataset_member_1=Members and subscriptions
|
ExportDataset_member_1=Members and subscriptions
|
||||||
ImportDataset_member_1=Members
|
ImportDataset_member_1=Members
|
||||||
LastMembers=Last %s members
|
LastMembers=Latest %s members
|
||||||
LastMembersModified=Last %s modified members
|
LastMembersModified=Latest %s modified members
|
||||||
LastSubscriptionsModified=Last %s modified subscriptions
|
LastSubscriptionsModified=Latest %s modified subscriptions
|
||||||
AttributeName=Attribute name
|
AttributeName=Attribute name
|
||||||
String=String
|
String=String
|
||||||
Text=Text
|
Text=Text
|
||||||
|
|||||||
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
|
NoOrder=No order
|
||||||
NoSupplierOrder=No supplier order
|
NoSupplierOrder=No supplier order
|
||||||
OtherOrders=Other orders
|
OtherOrders=Other orders
|
||||||
LastOrders=Last %s customer orders
|
LastOrders=Latest %s customer orders
|
||||||
LastCustomerOrders=Last %s customer orders
|
LastCustomerOrders=Latest %s customer orders
|
||||||
LastSupplierOrders=Last %s supplier orders
|
LastSupplierOrders=Latest %s supplier orders
|
||||||
LastModifiedOrders=Last %s modified orders
|
LastModifiedOrders=Latest %s modified orders
|
||||||
LastClosedOrders=Last %s closed orders
|
LastClosedOrders=Latest %s closed orders
|
||||||
AllOrders=All orders
|
AllOrders=All orders
|
||||||
NbOfOrders=Number of orders
|
NbOfOrders=Number of orders
|
||||||
OrdersStatistics=Order's statistics
|
OrdersStatistics=Order's statistics
|
||||||
|
|||||||
@ -3,12 +3,12 @@ SecurityCode=Security code
|
|||||||
Calendar=Calendar
|
Calendar=Calendar
|
||||||
NumberingShort=N°
|
NumberingShort=N°
|
||||||
Tools=Tools
|
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
|
Birthday=Birthday
|
||||||
BirthdayDate=Birthday
|
BirthdayDate=Birthday date
|
||||||
DateToBirth=Date of birth
|
DateToBirth=Date of birth
|
||||||
BirthdayAlertOn= birthday alert active
|
BirthdayAlertOn=birthday alert active
|
||||||
BirthdayAlertOff= birthday alert inactive
|
BirthdayAlertOff=birthday alert inactive
|
||||||
Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
|
Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
|
||||||
Notify_FICHINTER_VALIDATE=Intervention validated
|
Notify_FICHINTER_VALIDATE=Intervention validated
|
||||||
Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
|
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__
|
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__
|
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__
|
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.
|
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 match your activity...
|
ChooseYourDemoProfil=Choose the demo profile that best suits your needs...
|
||||||
DemoFundation=Manage members of a foundation
|
DemoFundation=Manage members of a foundation
|
||||||
DemoFundation2=Manage members and bank account of a foundation
|
DemoFundation2=Manage members and bank account of a foundation
|
||||||
DemoCompanyServiceOnly=Manage a freelance activity selling service only
|
DemoCompanyServiceOnly=Manage a freelance activity selling service only
|
||||||
@ -84,22 +84,22 @@ ValidatedBy=Validated by %s
|
|||||||
CanceledBy=Canceled by %s
|
CanceledBy=Canceled by %s
|
||||||
ClosedBy=Closed by %s
|
ClosedBy=Closed by %s
|
||||||
CreatedById=User id who created
|
CreatedById=User id who created
|
||||||
ModifiedById=User id who made last change
|
ModifiedById=User id who made latest change
|
||||||
ValidatedById=User id who validated
|
ValidatedById=User id who validated
|
||||||
CanceledById=User id who canceled
|
CanceledById=User id who canceled
|
||||||
ClosedById=User id who closed
|
ClosedById=User id who closed
|
||||||
CreatedByLogin=User login who created
|
CreatedByLogin=User login who created
|
||||||
ModifiedByLogin=User login who made last change
|
ModifiedByLogin=User login who made latest change
|
||||||
ValidatedByLogin=User login who validated
|
ValidatedByLogin=User login who validated
|
||||||
CanceledByLogin=User login who canceled
|
CanceledByLogin=User login who canceled
|
||||||
ClosedByLogin=User login who closed
|
ClosedByLogin=User login who closed
|
||||||
FileWasRemoved=File %s was removed
|
FileWasRemoved=File %s was removed
|
||||||
DirWasRemoved=Directory %s was removed
|
DirWasRemoved=Directory %s was removed
|
||||||
FeatureNotYetAvailableShort=Available in a next version
|
FeatureNotYetAvailableShort=Available in a future version
|
||||||
FeatureNotYetAvailable=Feature not yet available in this version
|
FeatureNotYetAvailable=Feature not yet available in the current version
|
||||||
FeatureExperimental=Experimental feature. Not stable in this version
|
FeatureExperimental=Experimental feature. Not stable in the current version
|
||||||
FeatureDevelopment=Development feature. Not stable in this version
|
FeatureDevelopment=Development feature. Not stable in the current version
|
||||||
FeaturesSupported=Features supported
|
FeaturesSupported=Supported features
|
||||||
Width=Width
|
Width=Width
|
||||||
Height=Height
|
Height=Height
|
||||||
Depth=Depth
|
Depth=Depth
|
||||||
@ -111,7 +111,7 @@ CalculatedWeight=Calculated weight
|
|||||||
CalculatedVolume=Calculated volume
|
CalculatedVolume=Calculated volume
|
||||||
Weight=Weight
|
Weight=Weight
|
||||||
TotalWeight=Total weight
|
TotalWeight=Total weight
|
||||||
WeightUnitton=tonnes
|
WeightUnitton=tonne
|
||||||
WeightUnitkg=kg
|
WeightUnitkg=kg
|
||||||
WeightUnitg=g
|
WeightUnitg=g
|
||||||
WeightUnitmg=mg
|
WeightUnitmg=mg
|
||||||
@ -147,27 +147,27 @@ SizeUnitinch=inch
|
|||||||
SizeUnitfoot=foot
|
SizeUnitfoot=foot
|
||||||
SizeUnitpoint=point
|
SizeUnitpoint=point
|
||||||
BugTracker=Bug tracker
|
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
|
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.
|
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.
|
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)
|
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
|
DolibarrDemo=Dolibarr ERP/CRM demo
|
||||||
StatsByNumberOfUnits=Statistics in number of products/services units
|
StatsByNumberOfUnits=Statistics in number of products/services units
|
||||||
StatsByNumberOfEntities=Statistics in number of referring entities
|
StatsByNumberOfEntities=Statistics in number of referring entities
|
||||||
NumberOfProposals=Number of proposals on last 12 month
|
NumberOfProposals=Number of proposals in past 12 months
|
||||||
NumberOfCustomerOrders=Number of customer orders on last 12 month
|
NumberOfCustomerOrders=Number of customer orders in past 12 months
|
||||||
NumberOfCustomerInvoices=Number of customer invoices on last 12 month
|
NumberOfCustomerInvoices=Number of customer invoices in past 12 months
|
||||||
NumberOfSupplierProposals=Number of supplier proposals on last 12 month
|
NumberOfSupplierProposals=Number of supplier proposals in past 12 months
|
||||||
NumberOfSupplierOrders=Number of supplier orders on last 12 month
|
NumberOfSupplierOrders=Number of supplier orders in past 12 months
|
||||||
NumberOfSupplierInvoices=Number of supplier invoices on last 12 month
|
NumberOfSupplierInvoices=Number of supplier invoices in past 12 months
|
||||||
NumberOfUnitsProposals=Number of units on proposals on last 12 month
|
NumberOfUnitsProposals=Number of units on proposals in past 12 months
|
||||||
NumberOfUnitsCustomerOrders=Number of units on customer orders on last 12 month
|
NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months
|
||||||
NumberOfUnitsCustomerInvoices=Number of units on customer invoices on last 12 month
|
NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months
|
||||||
NumberOfUnitsSupplierProposals=Number of units on supplier proposals on last 12 month
|
NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months
|
||||||
NumberOfUnitsSupplierOrders=Number of units on supplier orders on last 12 month
|
NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months
|
||||||
NumberOfUnitsSupplierInvoices=Number of units on supplier invoices on last 12 month
|
NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months
|
||||||
EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
|
EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
|
||||||
EMailTextInterventionValidated=The intervention %s has been validated.
|
EMailTextInterventionValidated=The intervention %s has been validated.
|
||||||
EMailTextInvoiceValidated=The invoice %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
|
ServicesNotOnSell=Services not for sale
|
||||||
ServicesOnSellAndOnBuy=Services for sale and for purchase
|
ServicesOnSellAndOnBuy=Services for sale and for purchase
|
||||||
InternalRef=Internal reference
|
InternalRef=Internal reference
|
||||||
LastRecorded=Last products/services on sell recorded
|
LastRecorded=Latest recorded products/services on sell
|
||||||
LastRecordedProductsAndServices=Last %s recorded products/services
|
LastRecordedProductsAndServices=Latest %s recorded products/services
|
||||||
LastModifiedProductsAndServices=Last %s modified products/services
|
LastModifiedProductsAndServices=Latest %s modified products/services
|
||||||
LastRecordedProducts=Last %s products recorded
|
LastRecordedProducts=Latest %s recorded products
|
||||||
LastRecordedServices=Last %s services recorded
|
LastRecordedServices=Latest %s recorded services
|
||||||
LastProducts=Last products
|
LastProducts=Latest products
|
||||||
CardProduct0=Product card
|
CardProduct0=Product card
|
||||||
CardProduct1=Service card
|
CardProduct1=Service card
|
||||||
CardContract=Contract card
|
CardContract=Contract card
|
||||||
|
|||||||
@ -8,7 +8,7 @@ Projects=Projects
|
|||||||
ProjectsArea=Projects Area
|
ProjectsArea=Projects Area
|
||||||
ProjectStatus=Project status
|
ProjectStatus=Project status
|
||||||
SharedProject=Everybody
|
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).
|
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.
|
ProjectsPublicDesc=This view presents all projects you are allowed to read.
|
||||||
ProjectsPublicTaskDesc=This view presents all projects and tasks 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 ?
|
ConfirmDeleteAProject=Are you sure you want to delete this project ?
|
||||||
ConfirmDeleteATask=Are you sure you want to delete this task ?
|
ConfirmDeleteATask=Are you sure you want to delete this task ?
|
||||||
OfficerProject=Officer project
|
OfficerProject=Officer project
|
||||||
LastProjects=Last %s projects
|
LastProjects=Latest %s projects
|
||||||
AllProjects=All projects
|
AllProjects=All projects
|
||||||
OpenedProjects=Opened projects
|
OpenedProjects=Open projects
|
||||||
OpenedTasks=Opened tasks
|
OpenedTasks=Open tasks
|
||||||
OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status
|
OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
|
||||||
OpportunitiesStatusForProjects=Opportunities amount of projects by status
|
OpportunitiesStatusForProjects=Opportunities amount of projects by status
|
||||||
ProjectsList=List of projects
|
ProjectsList=List of projects
|
||||||
ShowProject=Show project
|
ShowProject=Show project
|
||||||
@ -159,7 +159,7 @@ DocumentModelBaleine=Project report template for tasks
|
|||||||
PlannedWorkload=Planned workload
|
PlannedWorkload=Planned workload
|
||||||
PlannedWorkloadShort=Workload
|
PlannedWorkloadShort=Workload
|
||||||
WorkloadOccupation=Workload assignation
|
WorkloadOccupation=Workload assignation
|
||||||
ProjectReferers=Refering objects
|
ProjectReferers=Related items
|
||||||
SearchAProject=Search a project
|
SearchAProject=Search a project
|
||||||
SearchATask=Search a task
|
SearchATask=Search a task
|
||||||
ProjectMustBeValidatedFirst=Project must be validated first
|
ProjectMustBeValidatedFirst=Project must be validated first
|
||||||
@ -182,14 +182,14 @@ ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
|
|||||||
ProjectNbProjectByMonth=Nb of created projects by month
|
ProjectNbProjectByMonth=Nb of created projects by month
|
||||||
ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
|
ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
|
||||||
ProjectWeightedOppAmountOfProjectsByMonth=Weighted 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
|
ProjectsStatistics=Statistics on projects/leads
|
||||||
TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
|
TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
|
||||||
IdTaskTime=Id task time
|
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.
|
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
|
OnlyOpportunitiesShort=Only opportunities
|
||||||
OpenedOpportunitiesShort=Opened opportunities
|
OpenedOpportunitiesShort=Open opportunities
|
||||||
NotAnOpportunityShort=Not an opportunity
|
NotAnOpportunityShort=Not an opportunity
|
||||||
OpportunityTotalAmount=Opportunities total amount
|
OpportunityTotalAmount=Opportunities total amount
|
||||||
OpportunityPonderatedAmount=Opportunities weighted amount
|
OpportunityPonderatedAmount=Opportunities weighted amount
|
||||||
|
|||||||
@ -19,11 +19,11 @@ ValidateProp=Validate commercial proposal
|
|||||||
AddProp=Create proposal
|
AddProp=Create proposal
|
||||||
ConfirmDeleteProp=Are you sure you want to delete this commercial 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> ?
|
ConfirmValidateProp=Are you sure you want to validate this commercial proposal under name <b>%s</b> ?
|
||||||
LastPropals=Last %s proposals
|
LastPropals=Latest %s proposals
|
||||||
LastClosedProposals=Last %s closed proposals
|
LastClosedProposals=Latest %s closed proposals
|
||||||
LastModifiedProposals=Last %s modified proposals
|
LastModifiedProposals=Latest %s modified proposals
|
||||||
AllPropals=All proposals
|
AllPropals=All proposals
|
||||||
LastProposals=Last proposals
|
LastProposals=Latest proposals
|
||||||
SearchAProposal=Search a proposal
|
SearchAProposal=Search a proposal
|
||||||
NoProposal=No proposal
|
NoProposal=No proposal
|
||||||
ProposalsStatistics=Commercial proposal's statistics
|
ProposalsStatistics=Commercial proposal's statistics
|
||||||
|
|||||||
@ -11,7 +11,7 @@ SendingsArea=Shipments area
|
|||||||
ListOfSendings=List of shipments
|
ListOfSendings=List of shipments
|
||||||
SendingMethod=Shipping method
|
SendingMethod=Shipping method
|
||||||
SendingReceipt=Shipping receipt
|
SendingReceipt=Shipping receipt
|
||||||
LastSendings=Last %s shipments
|
LastSendings=Latest %s shipments
|
||||||
SearchASending=Search for shipment
|
SearchASending=Search for shipment
|
||||||
StatisticsOfSendings=Statistics for shipments
|
StatisticsOfSendings=Statistics for shipments
|
||||||
NbOfSendings=Number of 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
|
WarehouseForStockIncrease=The warehouse <b>%s</b> will be used for stock increase
|
||||||
ForThisWarehouse=For this warehouse
|
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.
|
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
|
Replenishments=Replenishments
|
||||||
NbOfProductBeforePeriod=Quantity of product %s in stock before selected period (< %s)
|
NbOfProductBeforePeriod=Quantity of product %s in stock before selected period (< %s)
|
||||||
NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s)
|
NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s)
|
||||||
|
|||||||
@ -7,7 +7,7 @@ CommRequests=Price requests
|
|||||||
SearchRequest=Find a request
|
SearchRequest=Find a request
|
||||||
DraftRequests=Draft requests
|
DraftRequests=Draft requests
|
||||||
SupplierProposalsDraft=Draft supplier proposals
|
SupplierProposalsDraft=Draft supplier proposals
|
||||||
LastModifiedRequests=Last %s modified price requests
|
LastModifiedRequests=Latest %s modified price requests
|
||||||
RequestsOpened=Open price requests
|
RequestsOpened=Open price requests
|
||||||
SupplierProposalArea=Supplier proposals area
|
SupplierProposalArea=Supplier proposals area
|
||||||
SupplierProposalShort=Supplier proposal
|
SupplierProposalShort=Supplier proposal
|
||||||
|
|||||||
@ -48,7 +48,7 @@ AdministratorDescEntity=Administrator (for its company)
|
|||||||
DefaultRights=Default permissions
|
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).
|
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
|
DolibarrUsers=Dolibarr users
|
||||||
LastName=Name
|
LastName=Last Name
|
||||||
FirstName=First name
|
FirstName=First name
|
||||||
ListOfGroups=List of groups
|
ListOfGroups=List of groups
|
||||||
NewGroup=New group
|
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>.
|
PasswordChangeRequestSent=Request to change password for <b>%s</b> sent to <b>%s</b>.
|
||||||
MenuUsersAndGroups=Users & Groups
|
MenuUsersAndGroups=Users & Groups
|
||||||
MenuMyUserCard=My user card
|
MenuMyUserCard=My user card
|
||||||
LastGroupsCreated=Last %s created groups
|
LastGroupsCreated=Latest %s created groups
|
||||||
LastUsersCreated=Last %s users created
|
LastUsersCreated=Latest %s users created
|
||||||
ShowGroup=Show group
|
ShowGroup=Show group
|
||||||
ShowUser=Show user
|
ShowUser=Show user
|
||||||
NonAffectedUsers=Non assigned users
|
NonAffectedUsers=Non assigned users
|
||||||
|
|||||||
@ -11,8 +11,8 @@ Withdrawal=Withdrawal
|
|||||||
WithdrawalsReceipts=Withdrawal receipts
|
WithdrawalsReceipts=Withdrawal receipts
|
||||||
WithdrawalReceipt=Withdrawal receipt
|
WithdrawalReceipt=Withdrawal receipt
|
||||||
WithdrawalReceiptShort=Receipt
|
WithdrawalReceiptShort=Receipt
|
||||||
LastWithdrawalReceipts=Last %s withdrawal receipts
|
LastWithdrawalReceipts=Latest %s withdrawal receipts
|
||||||
WithdrawedBills=Withdrawn invoices
|
WithdrawedBills=Withdrawal invoices
|
||||||
WithdrawalsLines=Withdrawal lines
|
WithdrawalsLines=Withdrawal lines
|
||||||
RequestStandingOrderToTreat=Request for standing orders to process
|
RequestStandingOrderToTreat=Request for standing orders to process
|
||||||
RequestStandingOrderTreated=Request for standing orders processed
|
RequestStandingOrderTreated=Request for standing orders processed
|
||||||
@ -29,7 +29,7 @@ ResponsibleUser=Responsible user
|
|||||||
WithdrawalsSetup=Withdrawal setup
|
WithdrawalsSetup=Withdrawal setup
|
||||||
WithdrawStatistics=Withdraw's statistics
|
WithdrawStatistics=Withdraw's statistics
|
||||||
WithdrawRejectStatistics=Withdraw reject's statistics
|
WithdrawRejectStatistics=Withdraw reject's statistics
|
||||||
LastWithdrawalReceipt=Last %s withdrawing receipts
|
LastWithdrawalReceipt=Latest %s withdrawal receipts
|
||||||
MakeWithdrawRequest=Make a withdraw request
|
MakeWithdrawRequest=Make a withdraw request
|
||||||
ThirdPartyBankCode=Third party bank code
|
ThirdPartyBankCode=Third party bank code
|
||||||
ThirdPartyDeskCode=Third party desk code
|
ThirdPartyDeskCode=Third party desk code
|
||||||
|
|||||||
@ -107,12 +107,19 @@ class MultiCurrency extends CommonObject
|
|||||||
*/
|
*/
|
||||||
public function create(User $user, $trigger = true)
|
public function create(User $user, $trigger = true)
|
||||||
{
|
{
|
||||||
global $conf;
|
global $conf,$langs;
|
||||||
|
|
||||||
dol_syslog('Currency::create', LOG_DEBUG);
|
dol_syslog('Currency::create', LOG_DEBUG);
|
||||||
|
|
||||||
$error = 0;
|
$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;
|
if (empty($this->entity) || $this->entity <= 0) $this->entity = $conf->entity;
|
||||||
$now=date('Y-m-d H:i:s');
|
$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 = '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)';
|
$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).'"';
|
||||||
$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.= " AND m.entity IN '".getEntity('multicurrency', 1)."'";
|
$sql.= ' ORDER BY mc.date_sync DESC LIMIT 1';
|
||||||
|
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql && $obj = $db->fetch_object($resql)) return array($obj->rowid, $obj->rate);
|
if ($resql && $obj = $db->fetch_object($resql)) return array($obj->rowid, $obj->rate);
|
||||||
else return array(0, 1);
|
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)
|
else if ($object->id > 0)
|
||||||
{
|
{
|
||||||
// Fiche en mode edition
|
// 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
|
//WYSIWYG Editor
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
@ -1733,7 +1733,8 @@ if (empty($reshook))
|
|||||||
{
|
{
|
||||||
if ($action == '' || $action == 'view')
|
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>';
|
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.= " WHERE fk_soc = ".$id_fourn;
|
||||||
$sql.= " AND ref_fourn = '".$this->db->escape($ref_fourn)."'";
|
$sql.= " AND ref_fourn = '".$this->db->escape($ref_fourn)."'";
|
||||||
$sql.= " AND fk_product != ".$this->id;
|
$sql.= " AND fk_product != ".$this->id;
|
||||||
$sql.= " AND entity = ".$conf->entity;
|
$sql.= " AND entity IN (".getEntity('productprice', 1).")";
|
||||||
|
|
||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
@ -2689,7 +2689,7 @@ class Product extends CommonObject
|
|||||||
else $sql.= " AND (ref_fourn = '' OR ref_fourn IS NULL)";
|
else $sql.= " AND (ref_fourn = '' OR ref_fourn IS NULL)";
|
||||||
$sql.= " AND quantity = '".$quantity."'";
|
$sql.= " AND quantity = '".$quantity."'";
|
||||||
$sql.= " AND fk_product = ".$this->id;
|
$sql.= " AND fk_product = ".$this->id;
|
||||||
$sql.= " AND entity = ".$conf->entity;
|
$sql.= " AND entity IN (".getEntity('productprice', 1).")";
|
||||||
|
|
||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
|
|||||||
@ -155,7 +155,7 @@ if (empty($reshook))
|
|||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
setEventMessages($langs->trans("ErrorFieldMustBeANumeric",'eeee'), null, 'errors');
|
setEventMessages($langs->trans("ErrorFieldMustBeANumeric",$langs->transnoentities("VATRateForSupplierProduct")), null, 'errors');
|
||||||
}
|
}
|
||||||
if (empty($quantity))
|
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