Merge branch 'develop' of https://github.com/Dolibarr/dolibarr.git into dev_NEW_copyeventfiles

This commit is contained in:
florian HENRY 2017-01-30 10:33:25 +01:00
commit a8ffc2fd9a
655 changed files with 3018 additions and 1754 deletions

View File

@ -292,6 +292,9 @@ script:
php upgrade.php 4.0.0 5.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade400500.log
php upgrade2.php 4.0.0 5.0.0 MAIN_MODULE_API,MAIN_MODULE_SUPPLIERPROPOSAL > $TRAVIS_BUILD_DIR/upgrade400500-2.log
php step5.php 4.0.0 5.0.0 > $TRAVIS_BUILD_DIR/upgrade400500-3.log
php upgrade.php 5.0.0 6.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade500600.log
php upgrade2.php 5.0.0 6.0.0 MAIN_MODULE_API,MAIN_MODULE_SUPPLIERPROPOSAL > $TRAVIS_BUILD_DIR/upgrade500600-2.log
php step5.php 5.0.0 6.0.0 > $TRAVIS_BUILD_DIR/upgrade500600-3.log
cd -
set +e
echo

View File

@ -155,6 +155,25 @@ Dolibarr 5.0 was frozen before PHP 7.1 was released. Unit tests are successful o
feedback to confirm all application is compatible. Current officiel supported PHP versions are PHP 5.3 to 7.0.
***** ChangeLog for 4.0.4 to 4.0.3 *****
FIX: #6227 Document models table header "Unit" is shown in 2 lines in Spanish
FIX: #6230
FIX: #6237
FIX: #6245 Thirdparty link in supplier invoices list, links to "comm/card" instead of "fourn/card" page
FIX: #6253 Supplier invoice list filter does not respect "thirdparty" filter
FIX: #6277
FIX: project list and ajax completion return wrong list.
FIX: bug margin calculation by user with multicompany
FIX: Can make a stock transfert on product not on sale/purchase.
FIX: extrafield input for varchar was not working with special char within (ie double quotes)
FIX: javascript error
FIX: link for not found photo when using gravatar. Must use external url.
FIX: Protection so even if link is output for external user, links is disabled.
FIX: repair tool was ko to restore extrafields with type select.
FIX: Security access problem with external users on projects/tasks
FIX: We must not drop extrafield column if there is still record on other entities.
FIX: regression with sedning email when introducing security options to restrict nb of email sending.
t
***** ChangeLog for 4.0.3 to 4.0.2 *****
FIX: #5853 $conf->global->$calc==0 || $conf->global->$calc==1
FIX: #5958 no discount on supplier command made by replenishment

View File

@ -174,7 +174,7 @@ then
echo cp -pr $mydir/../../doc/images/* "$documentdir/ecm/Images"
cp -pr $mydir/../../doc/images/* "$documentdir/ecm/Images"
else
echo Detection of documents directory $documentdir failed so demo files were not copied.
echo Detection of documents directory from $mydir failed so demo files were not copied.
fi

View File

@ -188,7 +188,7 @@ $tabsql[21]= "SELECT c.rowid as rowid, code, label, active FROM ".MAIN_DB_PREFIX
$tabsql[22]= "SELECT rowid as rowid, code, label, active FROM ".MAIN_DB_PREFIX."c_input_reason";
$tabsql[23]= "SELECT t.rowid as rowid, t.taux, c.label as country, c.code as country_code, t.fk_pays as country_id, t.note, t.active, t.accountancy_code_sell, t.accountancy_code_buy FROM ".MAIN_DB_PREFIX."c_revenuestamp as t, ".MAIN_DB_PREFIX."c_country as c WHERE t.fk_pays=c.rowid";
$tabsql[24]= "SELECT rowid as rowid, code, label, active FROM ".MAIN_DB_PREFIX."c_type_resource";
$tabsql[25]= "SELECT rowid as rowid, label, type_template, private, position, topic, content, active FROM ".MAIN_DB_PREFIX."c_email_templates WHERE entity IN (".getEntity('email_template',1).")";
$tabsql[25]= "SELECT rowid as rowid, label, type_template, private, position, topic, content_lines, content, active FROM ".MAIN_DB_PREFIX."c_email_templates WHERE entity IN (".getEntity('email_template',1).")";
$tabsql[26]= "SELECT rowid as rowid, code, label, short_label, active FROM ".MAIN_DB_PREFIX."c_units";
$tabsql[27]= "SELECT id as rowid, code, libelle, active FROM ".MAIN_DB_PREFIX."c_stcomm";
$tabsql[28]= "SELECT h.rowid as rowid, h.code, h.label, h.affect, h.delay, h.newbymonth, h.fk_country as country_id, c.code as country_code, c.label as country, h.active FROM ".MAIN_DB_PREFIX."c_holiday_types as h LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON h.fk_country=c.rowid";
@ -262,7 +262,7 @@ $tabfield[21]= "code,label";
$tabfield[22]= "code,label";
$tabfield[23]= "country_id,country,taux,accountancy_code_sell,accountancy_code_buy,note";
$tabfield[24]= "code,label";
$tabfield[25]= "label,type_template,private,position,topic,content";
$tabfield[25]= "label,type_template,private,position,topic,content_lines,content";
$tabfield[26]= "code,label,short_label";
$tabfield[27]= "code,libelle";
$tabfield[28]= "code,label,affect,delay,newbymonth,country_id,country";
@ -299,7 +299,7 @@ $tabfieldvalue[21]= "code,label";
$tabfieldvalue[22]= "code,label";
$tabfieldvalue[23]= "country,taux,accountancy_code_sell,accountancy_code_buy,note";
$tabfieldvalue[24]= "code,label";
$tabfieldvalue[25]= "label,type_template,private,position,topic,content";
$tabfieldvalue[25]= "label,type_template,private,position,topic,content_lines,content";
$tabfieldvalue[26]= "code,label,short_label";
$tabfieldvalue[27]= "code,libelle";
$tabfieldvalue[28]= "code,label,affect,delay,newbymonth,country";
@ -336,7 +336,7 @@ $tabfieldinsert[21]= "code,label";
$tabfieldinsert[22]= "code,label";
$tabfieldinsert[23]= "fk_pays,taux,accountancy_code_sell,accountancy_code_buy,note";
$tabfieldinsert[24]= "code,label";
$tabfieldinsert[25]= "label,type_template,private,position,topic,content,entity";
$tabfieldinsert[25]= "label,type_template,private,position,topic,content_lines,content,entity";
$tabfieldinsert[26]= "code,label,short_label";
$tabfieldinsert[27]= "code,libelle";
$tabfieldinsert[28]= "code,label,affect,delay,newbymonth,fk_country";
@ -449,7 +449,7 @@ $tabhelp[21] = array('code'=>$langs->trans("EnterAnyCode"));
$tabhelp[22] = array('code'=>$langs->trans("EnterAnyCode"));
$tabhelp[23] = array();
$tabhelp[24] = array('code'=>$langs->trans("EnterAnyCode"));
$tabhelp[25] = array('topic'=>$langs->trans('SeeSubstitutionVars'),'content'=>$langs->trans('SeeSubstitutionVars'),'type_template'=>$langs->trans("TemplateForElement"),'private'=>$langs->trans("TemplateIsVisibleByOwnerOnly"), 'position'=>$langs->trans("PositionIntoComboList"));
$tabhelp[25] = array('topic'=>$langs->trans('SeeSubstitutionVars'),'content'=>$langs->trans('SeeSubstitutionVars'),'content_lines'=>$langs->trans('SeeSubstitutionVars'),'type_template'=>$langs->trans("TemplateForElement"),'private'=>$langs->trans("TemplateIsVisibleByOwnerOnly"), 'position'=>$langs->trans("PositionIntoComboList"));
$tabhelp[26] = array('code'=>$langs->trans("EnterAnyCode"));
$tabhelp[27] = array('code'=>$langs->trans("EnterAnyCode"));
$tabhelp[28] = array('affect'=>$langs->trans("FollowedByACounter"),'delay'=>$langs->trans("MinimumNoticePeriod"), 'newbymonth'=>$langs->trans("NbAddedAutomatically"));
@ -1063,6 +1063,7 @@ if ($id)
if ($fieldlist[$field]=='custom_x') { $valuetoshow=$langs->trans("CustomX"); }
if ($fieldlist[$field]=='custom_y') { $valuetoshow=$langs->trans("CustomY"); }
if ($fieldlist[$field]=='content') { $valuetoshow=$langs->trans("Content"); }
if ($fieldlist[$field]=='content_lines') { $valuetoshow=$langs->trans("ContentLines"); }
if ($fieldlist[$field]=='percent') { $valuetoshow=$langs->trans("Percentage"); }
if ($fieldlist[$field]=='affect') { $valuetoshow=$langs->trans("Info"); }
if ($fieldlist[$field]=='delay') { $valuetoshow=$langs->trans("NoticePeriod"); }
@ -1254,6 +1255,7 @@ if ($id)
if ($fieldlist[$field]=='custom_x') { $valuetoshow=$langs->trans("CustomX"); }
if ($fieldlist[$field]=='custom_y') { $valuetoshow=$langs->trans("CustomY"); }
if ($fieldlist[$field]=='content') { $valuetoshow=$langs->trans("Content"); }
if ($fieldlist[$field]=='content_lines') { $valuetoshow=$langs->trans("ContentLines"); }
if ($fieldlist[$field]=='percent') { $valuetoshow=$langs->trans("Percentage"); }
if ($fieldlist[$field]=='affect') { $valuetoshow=$langs->trans("Info"); }
if ($fieldlist[$field]=='delay') { $valuetoshow=$langs->trans("NoticePeriod"); }
@ -1771,6 +1773,24 @@ function fieldList($fieldlist, $obj='', $tabname='', $context='')
elseif (in_array($fieldlist[$field], array('libelle_facture'))) {
print '<td><textarea cols="30" rows="'.ROWS_2.'" class="flat" name="'.$fieldlist[$field].'">'.(! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:'').'</textarea></td>';
}
elseif (in_array($fieldlist[$field], array('content_lines')))
{
if ($tabname == MAIN_DB_PREFIX.'c_email_templates')
{
print '<td colspan="4"></td></tr><tr class="pair nohover"><td colspan="5">'; // To create an artificial CR for the current tr we are on
}
else print '<td>';
if ($context != 'hide')
{
//print '<input type="text" size="100" class="flat" value="'.(! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:'').'" name="'.$fieldlist[$field].'">';
$okforextended=true;
if ($tabname == MAIN_DB_PREFIX.'c_email_templates' && empty($conf->global->FCKEDITOR_ENABLE_MAIL)) $okforextended=false;
$doleditor = new DolEditor($fieldlist[$field], (! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:''), '', 100, 'dolibarr_mailings', 'In', 0, false, $okforextended, ROWS_1, '90%');
print $doleditor->Create(1);
}
else print '&nbsp;';
print '</td>';
}
elseif (in_array($fieldlist[$field], array('content')))
{
if ($tabname == MAIN_DB_PREFIX.'c_email_templates')
@ -1783,7 +1803,7 @@ function fieldList($fieldlist, $obj='', $tabname='', $context='')
//print '<textarea cols="3" rows="'.ROWS_2.'" class="flat" name="'.$fieldlist[$field].'">'.(! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:'').'</textarea>';
$okforextended=true;
if ($tabname == MAIN_DB_PREFIX.'c_email_templates' && empty($conf->global->FCKEDITOR_ENABLE_MAIL)) $okforextended=false;
$doleditor = new DolEditor($fieldlist[$field], (! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:''), '', 140, 'dolibarr_mailings', 'In', 0, false, $okforextended, ROWS_5, '90%');
$doleditor = new DolEditor($fieldlist[$field], (! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:''), '', 140, 'dolibarr_mailings', 'In', 0, false, $okforextended, ROWS_8, '90%');
print $doleditor->Create(1);
}
else print '&nbsp;';

View File

@ -183,20 +183,19 @@ print '<td>'.$langs->trans("Parameters").'</td>'."\n";
print '<td align="center" width="20">&nbsp;</td>';
print '<td align="center" width="100">'.$langs->trans("Value").'</td>'."\n";
/* TODO uncomment when the functionality will integrated
$var=!$var;
print '<tr '.$bc[$var].'>';
print '<td>'.$langs->transnoentitiesnoconv("multicurrency_useRateOnInvoiceDate").'</td>';
print '<td>'.$langs->transnoentitiesnoconv("multicurrency_useRateOnDocumentDate").'</td>';
print '<td align="center" width="20">&nbsp;</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_USE_RATE_ON_INVOICE_DATE">';
print $form->selectyesno("MULTICURRENCY_USE_RATE_ON_INVOICE_DATE",$conf->global->MULTICURRENCY_USE_RATE_ON_INVOICE_DATE,1);
print '<input type="hidden" name="action" value="set_MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE">';
print $form->selectyesno("MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE",$conf->global->MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE,1);
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
print '</form>';
print '</td></tr>';
*/
$var=!$var;
print '<tr '.$bc[$var].'>';

View File

@ -194,7 +194,7 @@ if ($id > 0 && ! preg_match('/^add/i',$action))
* Fact bookmark mode or visually edition
*/
$object->fetch($id);
$hselected = 'card';
$head = array(
array(
@ -216,12 +216,12 @@ if ($id > 0 && ! preg_match('/^add/i',$action))
dol_fiche_head($head, $hselected, $langs->trans("Bookmark"),0,'bookmark');
$linkback = '<a href="'.DOL_URL_ROOT.'/bookmarks/list.php">'.$langs->trans("BackToList").'</a>';
dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', '' , '', 0, '', '', 0);
dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', '', '', 0, '', '', 0);
print '<div class="underbanner clearboth"></div>';
print '<div class="underbanner clearboth"></div>';
print '<table class="border" width="100%">';
print '<tr><td class="titlefield">';
@ -307,7 +307,7 @@ if ($id > 0 && ! preg_match('/^add/i',$action))
// Buttons
print "<div class=\"tabsAction\">\n";
// Edit

View File

@ -824,7 +824,7 @@ class Propal extends CommonObject
if (empty($this->demand_reason_id)) $this->demand_reason_id=0;
// Multicurrency
if (!empty($this->multicurrency_code)) list($this->fk_multicurrency,$this->multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($this->db, $this->multicurrency_code);
if (!empty($this->multicurrency_code)) list($this->fk_multicurrency,$this->multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($this->db, $this->multicurrency_code, $this->date);
if (empty($this->fk_multicurrency))
{
$this->multicurrency_code = $conf->currency;

View File

@ -704,9 +704,12 @@ class Commande extends CommonOrder
// Clean parameters
$this->brouillon = 1; // set command as draft
// $date_commande is deprecated
$date = ($this->date_commande ? $this->date_commande : $this->date);
// Multicurrency (test on $this->multicurrency_tx because we sould take the default rate only if not using origin rate)
if (!empty($this->multicurrency_code) && empty($this->multicurrency_tx)) list($this->fk_multicurrency,$this->multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($this->db, $this->multicurrency_code);
if (!empty($this->multicurrency_code) && empty($this->multicurrency_tx)) list($this->fk_multicurrency,$this->multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($this->db, $this->multicurrency_code, $date);
else $this->fk_multicurrency = MultiCurrency::getIdFromCode($this->db, $this->multicurrency_code);
if (empty($this->fk_multicurrency))
{
@ -745,9 +748,6 @@ class Commande extends CommonOrder
return -1;
}
// $date_commande is deprecated
$date = ($this->date_commande ? $this->date_commande : $this->date);
$now=dol_now();
$this->db->begin();

View File

@ -983,7 +983,7 @@ if ($action == 'create')
$projectid = GETPOST('projectid')?GETPOST('projectid'):$object->fk_project;
$langs->load('projects');
print '<tr><td>' . $langs->trans('Project') . '</td><td>';
$numprojet = $formproject->select_projects($socid, $projectid, 'projectid', 0, 0, 1, 0, 0, 0, 0, '', 0, $forceaddid=0, $morecss='');
$numprojet = $formproject->select_projects($object->thirdparty->id, $projectid, 'projectid', 0, 0, 1, 0, 0, 0, 0, '', 0, 0, '');
print ' &nbsp; <a href="'.DOL_URL_ROOT.'/projet/card.php?socid=' . $object->thirdparty->id . '&action=create&status=1&backtopage='.urlencode($_SERVER["PHP_SELF"].'?action=create&socid='.$object->thirdparty->id.(!empty($id)?'&id='.$id:'')).'">' . $langs->trans("AddProject") . '</a>';
print '</td></tr>';
}

View File

@ -229,6 +229,103 @@ if (empty($reshook))
include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
}
if ($massaction == 'withdrawrequest')
{
$langs->load("withdrawals");
if (!$user->rights->prelevement->bons->creer)
{
$error++;
setEventMessages($langs->trans("NotEnoughPermissions"), null, 'errors');
}
else
{
//Checking error
$error = 0;
$arrayofselected=is_array($toselect)?$toselect:array();
$listofbills=array();
foreach($arrayofselected as $toselectid)
{
$objecttmp=new Facture($db);
$result=$objecttmp->fetch($toselectid);
if ($result > 0)
{
$totalpaye = $objecttmp->getSommePaiement();
$totalcreditnotes = $objecttmp->getSumCreditNotesUsed();
$totaldeposits = $objecttmp->getSumDepositsUsed();
$objecttmp->resteapayer = price2num($objecttmp->total_ttc - $totalpaye - $totalcreditnotes - $totaldeposits,'MT');
$listofbills[] = $objecttmp;
if($objecttmp->paye || $objecttmp->resteapayer==0){
$error++;
setEventMessages($objecttmp->ref.' '.$langs->trans("AlreadyPaid"), $objecttmp->errors, 'errors');
} else if($objecttmp->resteapayer<0){
$error++;
setEventMessages($objecttmp->ref.' '.$langs->trans("AmountMustBePositive"), $objecttmp->errors, 'errors');
}
if(!($objecttmp->statut > Facture::STATUS_DRAFT)){
$error++;
setEventMessages($objecttmp->ref.' '.$langs->trans("Draft"), $objecttmp->errors, 'errors');
}
$rsql = "SELECT pfd.rowid, pfd.traite, pfd.date_demande as date_demande";
$rsql .= " , pfd.date_traite as date_traite";
$rsql .= " , pfd.amount";
$rsql .= " , u.rowid as user_id, u.lastname, u.firstname, u.login";
$rsql .= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
$rsql .= " , ".MAIN_DB_PREFIX."user as u";
$rsql .= " WHERE fk_facture = ".$objecttmp->id;
$rsql .= " AND pfd.fk_user_demande = u.rowid";
$rsql .= " AND pfd.traite = 0";
$rsql .= " ORDER BY pfd.date_demande DESC";
$result_sql = $db->query($rsql);
if ($result_sql)
{
$numprlv = $db->num_rows($result_sql);
}
if($numprlv>0){
$error++;
setEventMessages($objecttmp->ref.' '.$langs->trans("RequestAlreadyDone"), $objecttmp->errors, 'errors');
}
if(!empty($objecttmp->mode_reglement_id ) && $objecttmp->mode_reglement_id != 3){
$error++;
setEventMessages($objecttmp->ref.' '.$langs->trans("BadPaymentMethod"), $objecttmp->errors, 'errors');
}
}
}
//Massive withdraw request
if(!empty($listofbills) && empty($error))
{
$nbwithdrawrequestok=0;
foreach($listofbills as $aBill)
{
$db->begin();
$result = $aBill->demande_prelevement($user, $aBill->resteapayer);
if ($result > 0)
{
$db->commit();
$nbwithdrawrequestok++;
}
else
{
$db->rollback();
setEventMessages($aBill->error, $aBill->errors, 'errors');
}
}
if ($nbwithdrawrequestok > 0)
{
setEventMessages($langs->trans("WithdrawRequestsDone", $nbwithdrawrequestok), null, 'mesgs');
}
}
}
}
/*
@ -460,8 +557,13 @@ if ($resql)
$arrayofmassactions=array(
'presend'=>$langs->trans("SendByMail"),
'builddoc'=>$langs->trans("PDFMerge")
'builddoc'=>$langs->trans("PDFMerge"),
);
if ($conf->prelevement->enabled)
{
$langs->load("withdrawals");
$arrayofmassactions['withdrawrequest']=$langs->trans("MakeWithdrawRequest");
}
if ($user->rights->facture->supprimer)
{
//if (! empty($conf->global->STOCK_CALCULATE_ON_BILL) || empty($conf->global->INVOICE_CAN_ALWAYS_BE_REMOVED))
@ -587,7 +689,7 @@ if ($resql)
dol_fiche_end();
}
if ($sall)
{
foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);

View File

@ -45,6 +45,18 @@ $page = GETPOST('page','int');
$sortorder = GETPOST('sortorder','alpha');
$sortfield = GETPOST('sortfield','alpha');
$limit = GETPOST("limit")?GETPOST("limit","int"):$conf->liste_limit;
$sortfield = GETPOST("sortfield",'alpha');
$sortorder = GETPOST("sortorder",'alpha');
$page = GETPOST("page",'int');
if ($page == -1) { $page = 0; }
$offset = $limit * $page;
$pageprev = $page - 1;
$pagenext = $page + 1;
if (! $sortorder) $sortorder="DESC";
if (! $sortfield) $sortfield="f.facnumber";
/*
* View
*/
@ -54,17 +66,7 @@ llxHeader();
$thirdpartystatic=new Societe($db);
$invoicestatic=new Facture($db);
if ($page == -1) $page = 0 ;
$offset = $conf->liste_limit * $page ;
$pageprev = $page - 1;
$pagenext = $page + 1;
if (! $sortorder) $sortorder="DESC";
if (! $sortfield) $sortfield="f.facnumber";
/*
* Liste de demandes
*/
// List of requests
$sql= "SELECT f.facnumber, f.rowid, f.total_ttc,";
$sql.= " s.nom as name, s.rowid as socid,";
@ -83,10 +85,10 @@ if ($statut) $sql.= " AND pfd.traite = ".$statut;
$sql.= " AND pfd.fk_facture = f.rowid";
if (dol_strlen(trim(GETPOST('search_societe','alpha'))))
{
$sql.= " AND s.nom LIKE '%".GETPOST('search_societe','alpha')."%'";
$sql.= natural_search("s.nom", 'search_societe');
}
$sql.= " ORDER BY $sortfield $sortorder ";
$sql.= $db->plimit($conf->liste_limit+1, $offset);
$sql.= $db->plimit($limit+1, $offset);
$resql=$db->query($sql);
if ($resql)
@ -103,26 +105,35 @@ if ($resql)
print_barre_liste($langs->trans("RequestStandingOrderTreated"), $page, "demandes.php", $urladd, $sortfield, $sortorder, '', $num);
}
print '<form action="'.$_SERVER["PHP_SELF"].'" method="GET">';
print '<table class="liste" width="100%">';
print '<tr class="liste_titre">';
print '<td class="liste_titre">'.$langs->trans("Bill").'</td><td class="liste_titre">'.$langs->trans("Company").'</td>';
print '<td class="liste_titre" align="right">'.$langs->trans("Amount").'</td>';
print '<td class="liste_titre" align="right">'.$langs->trans("DateRequest").'</td>';
print_liste_field_titre($langs->trans("Bill"));
print_liste_field_titre($langs->trans("Company"));
print_liste_field_titre($langs->trans("Amount"));
print_liste_field_titre($langs->trans("DateRequest"));
print_liste_field_titre('');
print '</tr>';
print '<form action="'.$_SERVER["PHP_SELF"].'" method="GET">';
print '<tr class="liste_titre">';
print '<td class="liste_titre"><input type="text" class="flat" name="search_facture" size="12" value="'.dol_escape_htmltag(GETPOST('search_facture','alpha')).'"></td>';
print '<td class="liste_titre"><input type="text" class="flat" name="search_societe" size="18" value="'.dol_escape_htmltag(GETPOST('search_societe','alpha')).'"></td>';
print '<td colspan="2" class="liste_titre" align="right"><input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" name="button_search" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'"></td>';
print '<td class="liste_titre"></td>';
print '<td class="liste_titre"></td>';
// Action column
print '<td class="liste_titre" align="middle">';
$searchpitco=$form->showFilterAndCheckAddButtons($massactionbutton?1:0, 'checkforselect', 1);
print $searchpitco;
print '</td>';
print '</tr>';
print '</form>';
$var = True;
$users = array();
while ($i < min($num,$conf->liste_limit))
while ($i < min($num,$limit))
{
$obj = $db->fetch_object($resql);
$var=!$var;
@ -145,12 +156,15 @@ if ($resql)
print '<td align="right">'.dol_print_date($db->jdate($obj->date_demande),'day').'</td>';
print '<td align="right"></td>';
print '</tr>';
$i++;
}
print "</table><br>";
print '</form>';
}
else
{

View File

@ -77,7 +77,7 @@ $userid=GETPOST('userid','int');
$begin=GETPOST('begin');
if (! $sortorder) $sortorder="ASC";
if (! $sortfield) $sortfield="p.lastname";
if ($page < 0) { $page = 0; }
if (empty($page) || $page < 0) { $page = 0; }
$offset = $limit * $page;
$langs->load("companies");
@ -147,7 +147,7 @@ $arrayfields=array(
// Extra fields
if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
{
foreach($extrafields->attribute_label as $key => $val)
foreach($extrafields->attribute_label as $key => $val)
{
$arrayfields["ef.".$key]=array('label'=>$extrafields->attribute_label[$key], 'checked'=>$extrafields->attribute_list[$key], 'position'=>$extrafields->attribute_pos[$key], 'enabled'=>$extrafields->attribute_perms[$key]);
}
@ -176,7 +176,7 @@ if (empty($reshook))
{
// Selection of new fields
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
// Purge search criteria
if (GETPOST('button_removefilter_x') || GETPOST('button_removefilter.x') || GETPOST('button_removefilter')) // All tests are required to be compatible with all browsers
{
@ -200,7 +200,7 @@ if (empty($reshook))
$search_categ_supplier='';
$search_array_options=array();
}
// Mass actions
$objectclass='Contact';
$objectlabel='Contact';
@ -345,7 +345,7 @@ foreach ($search_array_options as $key => $val)
$typ=$extrafields->attribute_type[$tmpkey];
$mode=0;
if (in_array($typ, array('int','double'))) $mode=1; // Search on a numeric
if ($val && ( ($crit != '' && ! in_array($typ, array('select'))) || ! empty($crit)))
if ($val && ( ($crit != '' && ! in_array($typ, array('select'))) || ! empty($crit)))
{
$sql .= natural_search('ef.'.$tmpkey, $crit, $mode);
}
@ -424,7 +424,7 @@ foreach ($search_array_options as $key => $val)
$crit=$val;
$tmpkey=preg_replace('/search_options_/','',$key);
if ($val != '') $param.='&search_options_'.$tmpkey.'='.urlencode($val);
}
}
print '<form method="post" action="'.$_SERVER["PHP_SELF"].'">';
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
@ -504,9 +504,9 @@ if (! empty($arrayfields['p.priv']['checked'])) print_liste_field_tit
// Extra fields
if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
{
foreach($extrafields->attribute_label as $key => $val)
foreach($extrafields->attribute_label as $key => $val)
{
if (! empty($arrayfields["ef.".$key]['checked']))
if (! empty($arrayfields["ef.".$key]['checked']))
{
$align=$extrafields->getAlignFlag($key);
print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
@ -555,13 +555,13 @@ if (! empty($arrayfields['p.town']['checked']))
print '<input class="flat" type="text" name="search_town" size="5" value="'.dol_escape_htmltag($search_town).'">';
print '</td>';
}
if (! empty($arrayfields['p.phone']['checked']))
if (! empty($arrayfields['p.phone']['checked']))
{
print '<td class="liste_titre">';
print '<input class="flat" type="text" name="search_phone_pro" size="6" value="'.dol_escape_htmltag($search_phone_pro).'">';
print '</td>';
}
if (! empty($arrayfields['p.phone_perso']['checked']))
if (! empty($arrayfields['p.phone_perso']['checked']))
{
print '<td class="liste_titre">';
print '<input class="flat" type="text" name="search_phone_perso" size="6" value="'.dol_escape_htmltag($search_phone_perso).'">';
@ -607,9 +607,9 @@ if (! empty($arrayfields['p.priv']['checked']))
// Extra fields
if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
{
foreach($extrafields->attribute_label as $key => $val)
foreach($extrafields->attribute_label as $key => $val)
{
if (! empty($arrayfields["ef.".$key]['checked']))
if (! empty($arrayfields["ef.".$key]['checked']))
{
print '<td class="liste_titre">';
print '</td>';
@ -664,7 +664,7 @@ while ($i < min($num,$limit))
$contactstatic->phone_mobile=$obj->phone_mobile;
$contactstatic->zip=$obj->zip;
$contactstatic->town=$obj->town;
// Name
if (! empty($arrayfields['p.lastname']['checked']))
{
@ -746,9 +746,9 @@ while ($i < min($num,$limit))
// Extra fields
if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
{
foreach($extrafields->attribute_label as $key => $val)
foreach($extrafields->attribute_label as $key => $val)
{
if (! empty($arrayfields["ef.".$key]['checked']))
if (! empty($arrayfields["ef.".$key]['checked']))
{
print '<td';
$align=$extrafields->getAlignFlag($key);

View File

@ -8,7 +8,7 @@
* Copyright (C) 2013 Christophe Battarel <christophe.battarel@altairis.fr>
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
* Copyright (C) 2014-2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2015-2016 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2015-2017 Ferran Marcet <fmarcet@2byte.es>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -2251,11 +2251,11 @@ class Contrat extends CommonObject
$this->context['createfromclone'] = 'createfromclone';
$error = 0;
$now = dol_now();
$this->fetch($this->id);
// Load dest object
$clonedObj = clone $this;
$clonedObj->socid = $socid;
$this->db->begin();
@ -2290,16 +2290,13 @@ class Contrat extends CommonObject
$this->error = $clonedObj->error;
$this->errors[] = $clonedObj->error;
} else {
// copy internal contacts
if ($clonedObj->copy_linked_contact($this, 'internal') < 0)
$error ++;
// copy external contacts if same company
elseif ($this->socid == $clonedObj->socid) {
if ($clonedObj->copy_linked_contact($this, 'external') < 0)
$error ++;
}
}
// copy external contacts if same company
if ($this->socid == $clonedObj->socid) {
if ($clonedObj->copy_linked_contact($this, 'external') < 0) {
$error++;
}
}
}
if (! $error) {
foreach ( $this->lines as $line ) {

View File

@ -272,7 +272,7 @@ $sql.= " state.code_departement, state.nom";
// Add where from extra fields
foreach ($extrafields->attribute_label as $key => $val)
{
$sql .= ', ef.'.$val;
$sql .= ', ef.'.$key;
}
// Add where from hooks
$parameters=array();

View File

@ -2151,6 +2151,8 @@ abstract class CommonObject
*/
function update_note($note,$suffix='')
{
global $user;
if (! $this->table_element)
{
dol_syslog(get_class($this)."::update_note was called on objet with property table_element not defined", LOG_ERR);
@ -2167,6 +2169,7 @@ abstract class CommonObject
$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element;
$sql.= " SET note".$suffix." = ".(!empty($note)?("'".$this->db->escape($note)."'"):"NULL");
$sql.= " ,".(in_array($this->table_element, array('actioncomm', 'adherent', 'advtargetemailing', 'cronjob', 'establishment'))?"fk_user_mod":"fk_user_modif")." = ".$user->id;
$sql.= " WHERE rowid =". $this->id;
dol_syslog(get_class($this)."::update_note", LOG_DEBUG);

View File

@ -1372,7 +1372,7 @@ class Form
* @param int $show_empty 0=list with no empty value, 1=add also an empty value into list
* @param array $exclude Array list of users id to exclude
* @param int $disabled If select list must be disabled
* @param array $include Array list of users id to include or 'hierarchy' to have only supervised users
* @param array|string $include Array list of users id to include or 'hierarchy' to have only supervised users or 'hierarchyme' to have supervised + me
* @param array $enableonly Array list of users id to be enabled. All other must be disabled
* @param int $force_entity 0 or Id of environment to force
* @param int $maxlength Maximum length of string into list (0=no limit)
@ -1396,24 +1396,20 @@ class Form
$includeUsers=null;
// Permettre l'exclusion d'utilisateurs
if (is_array($exclude)) $excludeUsers = implode("','",$exclude);
if (is_array($exclude)) $excludeUsers = implode(",",$exclude);
// Permettre l'inclusion d'utilisateurs
if (is_array($include)) $includeUsers = implode("','",$include);
if (is_array($include)) $includeUsers = implode(",",$include);
else if ($include == 'hierarchy')
{
// Build list includeUsers to have only hierarchy
$userid=$user->id;
$include=array();
if (empty($user->users) || ! is_array($user->users)) $user->get_full_tree();
foreach($user->users as $key => $val)
{
if (preg_match('/_'.$userid.'/',$val['fullpath'])) $include[]=$val['id'];
}
$includeUsers = implode("','",$include);
//var_dump($includeUsers);exit;
//var_dump($user->users);exit;
$includeUsers = implode(",",$user->getAllChildIds(0));
}
else if ($include == 'hierarchyme')
{
// Build list includeUsers to have only hierarchy and current user
$includeUsers = implode(",",$user->getAllChildIds(1));
}
$out='';
// On recherche les utilisateurs
@ -1443,8 +1439,8 @@ class Form
}
}
if (! empty($user->societe_id)) $sql.= " AND u.fk_soc = ".$user->societe_id;
if (is_array($exclude) && $excludeUsers) $sql.= " AND u.rowid NOT IN ('".$excludeUsers."')";
if (is_array($include) && $includeUsers) $sql.= " AND u.rowid IN ('".$includeUsers."')";
if (is_array($exclude) && $excludeUsers) $sql.= " AND u.rowid NOT IN (".$excludeUsers.")";
if ($includeUsers) $sql.= " AND u.rowid IN (".$includeUsers.")";
if (! empty($conf->global->USER_HIDE_INACTIVE_IN_COMBOBOX) || $noactive) $sql.= " AND u.statut <> 0";
if (! empty($morefilter)) $sql.=" ".$morefilter;
$sql.= " ORDER BY u.lastname ASC";

View File

@ -669,7 +669,7 @@ class FormFile
// Show file name with link to download
$out.= '<td class="nowrap">';
$out.= '<a data-ajax="false" href="'.$documenturl.'?modulepart='.$modulepart.'&amp;file='.urlencode($relativepath).'"';
$out.= '<a data-ajax="false" href="'.$documenturl.'?modulepart='.$modulepart.'&amp;file='.urlencode($relativepath).($param?'&'.$param:'').'"';
$mime=dol_mimetype($relativepath,'',0);
if (preg_match('/text/',$mime)) $out.= ' target="_blank"';
$out.= ' target="_blank">';

View File

@ -77,6 +77,7 @@ class FormMail extends Form
var $withfckeditor;
var $substit=array();
var $substit_lines=array();
var $param=array();
var $error;
@ -712,6 +713,18 @@ class FormMail extends Form
$this->substit['__PERSONALIZED__']=str_replace('\n',"\n",$langs->transnoentitiesnoconv("PredefinedMailContentLink",$url));
}
}
//Add lines substitution key from each line
$lines = '';
$defaultlines = $arraydefaultmessage['content_lines'];
if (isset($defaultlines))
{
foreach ($this->substit_lines as $substit_line)
{
$lines .= make_substitutions($defaultlines,$substit_line)."\n";
}
}
$this->substit['__LINES__']=$lines;
$defaultmessage=str_replace('\n',"\n",$defaultmessage);
@ -820,7 +833,7 @@ class FormMail extends Form
{
$ret=array();
$sql = "SELECT label, topic, content, lang";
$sql = "SELECT label, topic, content, content_lines, lang";
$sql.= " FROM ".MAIN_DB_PREFIX.'c_email_templates';
$sql.= " WHERE type_template='".$db->escape($type_template)."'";
$sql.= " AND entity IN (".getEntity("c_email_templates").")";
@ -840,6 +853,7 @@ class FormMail extends Form
$ret['label']=$obj->label;
$ret['topic']=$obj->topic;
$ret['content']=$obj->content;
$ret['content_lines']=$obj->content_lines;
$ret['lang']=$obj->lang;
}
else
@ -859,6 +873,7 @@ class FormMail extends Form
$ret['label']='default';
$ret['topic']='';
$ret['content']=$defaultmessage;
$ret['content_lines']='';
$ret['lang']=$outputlangs->defaultlang;
}
@ -922,7 +937,7 @@ class FormMail extends Form
{
$ret=array();
$sql = "SELECT rowid, label, topic, content, lang, position";
$sql = "SELECT rowid, label, topic, content, content_lines, lang, position";
$sql.= " FROM ".MAIN_DB_PREFIX.'c_email_templates';
$sql.= " WHERE type_template='".$this->db->escape($type_template)."'";
$sql.= " AND entity IN (".getEntity("c_email_templates").")";
@ -944,6 +959,7 @@ class FormMail extends Form
$line->label=$obj->label;
$line->topic=$obj->topic;
$line->content=$obj->content;
$line->content_lines=$obj->content_lines;
$line->lang=$obj->lang;
$this->lines_model[]=$line;
}
@ -962,7 +978,7 @@ class FormMail extends Form
/**
* Set substit array from object
*
* @param Object $object Object to use
* @param CommonObject $object Object to use
* @param Translate $outputlangs Object lang
* @return void
*/
@ -970,11 +986,11 @@ class FormMail extends Form
{
global $user;
$this->substit['__REF__'] = $object->ref;
$this->substit['__REFCLIENT__'] = $object->ref_client;
$this->substit['__REFSUPPLIER__'] = $object->ref_supplier;
$this->substit['__REFCLIENT__'] = isset($object->ref_client) ? $object->ref_client : '';
$this->substit['__REFSUPPLIER__'] = isset($object->ref_supplier) ? $object->ref_supplier : '';
$this->substit['__DATE_YMD__'] = dol_print_date($object->date, 'day', 0, $outputlangs);
$this->substit['__DATE_DUE_YMD__'] = dol_print_date($object->date_lim_reglement, 'day', 0, $outputlangs);
$this->substit['__DATE_YMD__'] = isset($object->date) ? dol_print_date($object->date, 'day', 0, $outputlangs) : '';
$this->substit['__DATE_DUE_YMD__'] = isset($object->date_lim_reglement)? dol_print_date($object->date_lim_reglement, 'day', 0, $outputlangs) : '';
$this->substit['__AMOUNT__'] = price($object->total_ttc);
$this->substit['__AMOUNT_WO_TAX__'] = price($object->total_ht);
@ -988,6 +1004,42 @@ class FormMail extends Form
$this->substit['__SIGNATURE__'] = $user->signature;
$this->substit['__PERSONALIZED__'] = '';
$this->substit['__CONTACTCIVNAME__'] = ''; // Will be replace just before sending
//Fill substit_lines with each object lines content
if (is_array($object->lines))
{
foreach ($object->lines as $line)
{
$substit_line = array(
'__PRODUCT_REF__' => isset($line->product_ref) ? $line->product_ref : '',
'__PRODUCT_LABEL__' => isset($line->product_label) ? $line->product_label : '',
'__PRODUCT_DESCRIPTION__' => isset($line->product_desc) ? $line->product_desc : '',
'__LABEL__' => isset($line->label) ? $line->label : '',
'__DESCRIPTION__' => isset($line->desc) ? $line->desc : '',
'__DATE_START_YMD__' => dol_print_date($line->date_start, 'day', 0, $outputlangs),
'__DATE_END_YMD__' => dol_print_date($line->date_end, 'day', 0, $outputlangs),
'__QUANTITY__' => $line->qty,
'__SUBPRICE__' => price($line->subprice),
'__AMOUNT__' => price($line->total_ttc),
'__AMOUNT_WO_TAX__' => price($line->total_ht),
//'__PRODUCT_EXTRAFIELD_FIELD__' Done dinamically
);
// Create dinamic tags for __PRODUCT_EXTRAFIELD_FIELD__
if (!empty($line->fk_product))
{
$extrafields = new ExtraFields($this->db);
$extralabels = $extrafields->fetch_name_optionals_label('product', true);
$product = new Product($this->db);
$product->fetch($line->fk_product, '', '', 1);
$product->fetch_optionals($product->id, $extralabels);
foreach ($extrafields->attribute_label as $key => $label) {
$substit_line['__PRODUCT_EXTRAFIELD_' . strtoupper($key) . '__'] = $product->array_options['options_' . $key];
}
}
$this->substit_lines[] = $substit_line;
}
}
}
/**
@ -1066,5 +1118,6 @@ class ModelMail
public $label;
public $topic;
public $content;
public $content_lines;
public $lang;
}

View File

@ -155,8 +155,10 @@ class FormProjets
if ($socid == 0) $sql.= " AND (p.fk_soc=0 OR p.fk_soc IS NULL)";
if ($socid > 0 && empty($conf->global->PROJECT_ALLOW_TO_LINK_FROM_OTHER_COMPANY)) $sql.= " AND (p.fk_soc=".$socid." OR p.fk_soc IS NULL)";
if (!empty($filterkey)) {
$sql .= " AND p.title LIKE '%".$this->db->escape($filterkey)."%'";
$sql .= " OR p.ref LIKE '%".$this->db->escape($filterkey)."%'";
$sql .= ' AND (';
$sql .= ' p.title LIKE "%'.$this->db->escape($filterkey).'%"';
$sql .= ' OR p.ref LIKE "%'.$this->db->escape($filterkey).'%"';
$sql .= ')';
}
$sql.= " ORDER BY p.ref ASC";

View File

@ -1923,10 +1923,6 @@ function getElementProperties($element_type)
$subelement = $regs[2];
}
$classfile = strtolower($subelement);
$classname = ucfirst($subelement);
$classpath = $module.'/class';
// For compat
if($element_type == "action") {
$classpath = 'comm/action/class';
@ -1991,8 +1987,22 @@ function getElementProperties($element_type)
$module='propal';
$subelement='propaleligne';
}
$classfile = strtolower($subelement);
$classname = ucfirst($subelement);
if ($element_type == 'order_supplier') {
$classpath = 'fourn/class';
$module='fournisseur';
$subelement='commandefournisseur';
$classfile='fournisseur.commande';
}
if ($element_type == 'invoice_supplier') {
$classpath = 'fourn/class';
$module='fournisseur';
$subelement='facturefournisseur';
$classfile='fournisseur.facture';
}
if (!isset($classfile)) $classfile = strtolower($subelement);
if (!isset($classname)) $classname = ucfirst($subelement);
if (!isset($classpath)) $classpath = $module.'/class';
$element_properties = array(
'module' => $module,

View File

@ -6,6 +6,7 @@
* Copyright (C) 2012 Christophe Battarel <christophe.battarel@altairis.fr>
* Copyright (C) 2012 Cedric Salvador <csalvador@gpcsolutions.fr>
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -1285,10 +1286,12 @@ class pdf_einstein extends ModelePDFCommandes
$arrayidcontact=$object->getIdContact('internal','SALESREPFOLL');
if (count($arrayidcontact) > 0)
{
$usertmp=new User($this->db);
$usertmp=new User($this->db);
$usertmp->fetch($arrayidcontact[0]);
$posy+=4;
$pdf->SetXY($posx,$posy);
$pdf->SetTextColor(0,0,60);
$pdf->MultiCell(190, 3, $langs->trans("SalesRepresentative")." : ".$usertmp->getFullName($langs), '', 'R');
$pdf->MultiCell(100, 3, $langs->trans("SalesRepresentative")." : ".$usertmp->getFullName($langs), '', 'R');
}
}

View File

@ -7,6 +7,7 @@
* Copyright (C) 2012 Cédric Salvador <csalvador@gpcsolutions.fr>
* Copyright (C) 2012-2014 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -1620,8 +1621,10 @@ class pdf_crabe extends ModelePDFFactures
{
$usertmp=new User($this->db);
$usertmp->fetch($arrayidcontact[0]);
$posy+=4;
$pdf->SetXY($posx,$posy);
$pdf->SetTextColor(0,0,60);
$pdf->MultiCell(190, 3, $langs->trans("SalesRepresentative")." : ".$usertmp->getFullName($langs), '', 'R');
$pdf->MultiCell($w, 3, $langs->trans("SalesRepresentative")." : ".$usertmp->getFullName($langs), '', 'R');
}
}

View File

@ -111,54 +111,62 @@ class modExpenseReport extends DolibarrModules
$this->rights = array(); // Permission array used by this module
$this->rights_class = 'expensereport';
$this->rights[1][0] = 771;
$this->rights[1][1] = 'Read expense reports (yours and your subordinates)';
$this->rights[1][2] = 'r';
$this->rights[1][3] = 0;
$this->rights[1][4] = 'lire';
$this->rights[3][0] = 772;
$this->rights[3][1] = 'Create/modify expense reports';
$this->rights[3][2] = 'w';
$this->rights[3][3] = 0;
$this->rights[3][4] = 'creer';
$this->rights[4][0] = 773;
$this->rights[4][1] = 'Delete expense reports';
$this->rights[4][2] = 'd';
$this->rights[4][3] = 0;
$this->rights[4][4] = 'supprimer';
$this->rights[6][0] = 775;
$this->rights[6][1] = 'Approve expense reports';
$this->rights[6][2] = 'w';
$this->rights[6][3] = 0;
$this->rights[6][4] = 'approve';
$this->rights[7][0] = 776;
$this->rights[7][1] = 'Pay expense reports';
$this->rights[7][2] = 'w';
$this->rights[7][3] = 0;
$this->rights[7][4] = 'to_paid';
$this->rights[2][0] = 777;
$this->rights[2][1] = 'Read expense reports of everybody';
$this->rights[2][2] = 'r';
$this->rights[2][3] = 1;
$this->rights[2][4] = 'readall';
$this->rights[2][0] = 778;
$this->rights[2][1] = 'Create expense reports for everybody';
$this->rights[2][2] = 'w';
$this->rights[2][3] = 0;
$this->rights[2][4] = 'writeall_advance';
$this->rights[5][0] = 779;
$this->rights[5][1] = 'Export expense reports';
$this->rights[5][2] = 'r';
$this->rights[5][3] = 0;
$this->rights[5][4] = 'export';
$this->rights[$r][0] = 771;
$this->rights[$r][1] = 'Read expense reports (yours and your subordinates)';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'lire';
$r++;
$this->rights[$r][0] = 772;
$this->rights[$r][1] = 'Create/modify expense reports';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'creer';
$r++;
$this->rights[$r][0] = 773;
$this->rights[$r][1] = 'Delete expense reports';
$this->rights[$r][2] = 'd';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'supprimer';
$r++;
$this->rights[$r][0] = 775;
$this->rights[$r][1] = 'Approve expense reports';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'approve';
$r++;
$this->rights[$r][0] = 776;
$this->rights[$r][1] = 'Pay expense reports';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'to_paid';
$r++;
$this->rights[$r][0] = 777;
$this->rights[$r][1] = 'Read expense reports of everybody';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 1;
$this->rights[$r][4] = 'readall';
$r++;
$this->rights[$r][0] = 778;
$this->rights[$r][1] = 'Create expense reports for everybody';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'writeall_advance';
$r++;
$this->rights[$r][0] = 779;
$this->rights[$r][1] = 'Export expense reports';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'export';
$r++;
// Menus
//-------
$this->menu = 1; // This module add menu entries. They are coded into menu manager.

View File

@ -219,22 +219,28 @@ class modProjet extends DolibarrModules
$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','s.fk_pays'=>'List:c_country:label',
's.phone'=>'Text','s.email'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.code_compta'=>'Text','s.code_compta_fournisseur'=>'Text',
'p.rowid'=>"List:projet:ref",'p.ref'=>"Text",'p.title'=>"Text",'p.datec'=>"Date",'p.dateo'=>"Date",'p.datee'=>"Date",'p.fk_statut'=>'Status','cls.code'=>"Text",'p.opp_percent'=>'Numeric','p.description'=>"Text", 'p.entity'=>'Numeric',
'p.rowid'=>"List:projet:ref",'p.ref'=>"Text",'p.title'=>"Text",'p.datec'=>"Date",'p.dateo'=>"Date",'p.datee'=>"Date",'p.fk_statut'=>'Status','cls.code'=>"Text",'p.opp_percent'=>'Numeric','p.opp_amount'=>'Numeric','p.description'=>"Text",'p.entity'=>'Numeric',
'pt.rowid'=>'Text','pt.label'=>'Text','pt.dateo'=>"Date",'pt.datee'=>"Date",'pt.duration_effective'=>"Duree",'pt.planned_workload'=>"Numeric",'pt.progress'=>"Numeric",'pt.description'=>"Text",
'ptt.rowid'=>'Numeric','ptt.task_date'=>'Date','ptt.task_duration'=>"Duree",'ptt.fk_user'=>"List:user:CONCAT(lastname,' ',firstname)",'ptt.note'=>"Text");
$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','s.fk_pays'=>'company',
's.phone'=>'company','s.email'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company');
$this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','s.fk_pays'=>'Country',
's.phone'=>'Phone','s.email'=>'Email','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.code_compta'=>'CustomerAccountancyCode','s.code_compta_fournisseur'=>'SupplierAccountancyCode',
'p.rowid'=>"ProjectId",'p.ref'=>"RefProject",'p.title'=>'ProjectLabel', 'p.datec'=>"DateCreation",'p.dateo'=>"DateStart",'p.datee'=>"DateEnd",'p.fk_statut'=>'ProjectStatus','cls.code'=>'OpportunityStatus','p.opp_percent'=>'OpportunityProbability','p.description'=>"Description");
// Add multicompany field
'p.rowid'=>"ProjectId",'p.ref'=>"RefProject",'p.title'=>'ProjectLabel', 'p.datec'=>"DateCreation",'p.dateo'=>"DateStart",'p.datee'=>"DateEnd",'p.fk_statut'=>'ProjectStatus','cls.code'=>'OpportunityStatus','p.opp_percent'=>'OpportunityProbability','p.opp_amount'=>'OpportunityAmount','p.description'=>"Description");
// Add multicompany field
if (! empty($conf->global->MULTICOMPANY_ENTITY_IN_EXPORT_IF_SHARED))
{
$nbofallowedentities=count(explode(',',getEntity('project',1))); // If project are shared, nb will be > 1
if (! empty($conf->multicompany->enabled) && $nbofallowedentities > 1) $this->export_fields_array[$r]+=array('p.entity'=>'Entity');
}
if (empty($conf->global->PROJECT_USE_OPPORTUNITIES))
{
unset($this->export_fields_array[$r]['p.opp_percent']);
unset($this->export_fields_array[$r]['p.opp_amount']);
unset($this->export_fields_array[$r]['cls.code']);
}
// Add fields for project
$this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array());
$keyforselect='projet'; $keyforelement='project'; $keyforaliasextra='extra';

View File

@ -252,7 +252,7 @@ class mod_codeproduct_elephant extends ModeleProductCode
// Get Mask value
$mask = '';
if ($type==0) $mask = empty($conf->global->PRODUCT_ELEPHANT_MASK_PRODUCT)?'':$conf->global->PRODUCT_ELEPHANT_MASK_PRODUCT;
if ($type==1) $mask = empty($conf->global->PRODUCT_ELEPHANT_MASK_SSERVICE)?'':$conf->global->PRODUCT_ELEPHANT_MASK_SERVICE;
if ($type==1) $mask = empty($conf->global->PRODUCT_ELEPHANT_MASK_SERVICE)?'':$conf->global->PRODUCT_ELEPHANT_MASK_SERVICE;
if (! $mask)
{
$this->error='NotConfigured';

View File

@ -6,6 +6,7 @@
* Copyright (C) 2012 Christophe Battarel <christophe.battarel@altairis.fr>
* Copyright (C) 2012 Cedric Salvador <csalvador@gpcsolutions.fr>
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -1473,8 +1474,10 @@ class pdf_azur extends ModelePDFPropales
{
$usertmp=new User($this->db);
$usertmp->fetch($arrayidcontact[0]);
$posy+=4;
$pdf->SetXY($posx,$posy);
$pdf->SetTextColor(0,0,60);
$pdf->MultiCell(190, 3, $langs->trans("SalesRepresentative")." : ".$usertmp->getFullName($langs), '', 'R');
$pdf->MultiCell(100, 3, $langs->trans("SalesRepresentative")." : ".$usertmp->getFullName($langs), '', 'R');
}
}

View File

@ -4,6 +4,7 @@
* Copyright (C) 2007 Franky Van Liedekerke <franky.van.liedekerke@telenet.be>
* Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -1111,8 +1112,10 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
{
$usertmp=new User($this->db);
$usertmp->fetch($arrayidcontact[0]);
$posy+=4;
$pdf->SetXY($posx,$posy);
$pdf->SetTextColor(0,0,60);
$pdf->MultiCell(190, 3, $langs->trans("BuyerName")." : ".$usertmp->getFullName($langs), '', 'R');
$pdf->MultiCell(100, 3, $langs->trans("BuyerName")." : ".$usertmp->getFullName($langs), '', 'R');
}
}

View File

@ -4,6 +4,7 @@
* Copyright (C) 2008 Raphael Bertrand <raphael.bertrand@resultic.fr>
* Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2012 Christophe Battarel <christophe.battarel@altairis.fr>
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -1288,8 +1289,10 @@ class pdf_aurore extends ModelePDFSupplierProposal
{
$usertmp=new User($this->db);
$usertmp->fetch($arrayidcontact[0]);
$posy+=4;
$pdf->SetXY($posx,$posy);
$pdf->SetTextColor(0,0,60);
$pdf->MultiCell(190, 3, $langs->trans("BuyerName")." : ".$usertmp->getFullName($langs), '', 'R');
$pdf->MultiCell(100, 3, $langs->trans("BuyerName")." : ".$usertmp->getFullName($langs), '', 'R');
}
}

View File

@ -1,8 +1,9 @@
<?php
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004-2017 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2009 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2015-2016 Alexandre Spangaro <aspangaro@zendsi.com>
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -1311,8 +1312,8 @@ if ($action == 'create')
print '<td>';
$defaultselectuser=$user->id;
if (GETPOST('fk_user_author') > 0) $defaultselectuser=GETPOST('fk_user_author');
$include_users = array($user->id);
if (! empty($user->rights->expensereport->writeall)) $include_users=array();
$include_users = 'hierarchyme';
if (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->expensereport->writeall_advance)) $include_users=array();
$s=$form->select_dolusers($defaultselectuser, "fk_user_author", 0, "", 0, $include_users);
print $s;
print '</td>';
@ -1396,10 +1397,10 @@ else
if ($result > 0)
{
if ($object->fk_user_author != $user->id)
if (! in_array($object->fk_user_author, $user->getAllChildIds(1)))
{
if (empty($user->rights->expensereport->readall) && empty($user->rights->expensereport->lire_tous)
&& empty($user->rights->expensereport->writeall_advance))
&& (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || empty($user->rights->expensereport->writeall_advance)))
{
print load_fiche_titre($langs->trans('TripCard'));
@ -2174,7 +2175,7 @@ if ($action != 'create' && $action != 'edit')
*/
if ($user->rights->expensereport->creer && $object->fk_statut==0)
{
if ($object->fk_user_author == $user->id)
if (in_array($object->fk_user_author, $user->getAllChildIds(1)))
{
// Modify
print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit&id='.$object->id.'">'.$langs->trans('Modify').'</a></div>';
@ -2222,7 +2223,7 @@ if ($action != 'create' && $action != 'edit')
*/
if ($object->fk_statut == 2)
{
if ($object->fk_user_author == $user->id)
if (in_array($object->fk_user_author, $user->getAllChildIds(1)))
{
// Brouillonner
print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=brouillonner&id='.$object->id.'">'.$langs->trans('SetToDraft').'</a></div>';

View File

@ -1673,11 +1673,14 @@ class ExpenseReport extends CommonObject
$now=dol_now();
$userchildids = $user->getAllChildIds(1);
$sql = "SELECT ex.rowid, ex.date_valid";
$sql.= " FROM ".MAIN_DB_PREFIX."expensereport as ex";
if ($option == 'toapprove') $sql.= " WHERE ex.fk_statut = 2";
else $sql.= " WHERE ex.fk_statut = 5";
$sql.= " AND ex.entity IN (".getEntity('expensereport', 1).")";
$sql.= " AND ex.fk_user_author IN (".join(',',$userchildids).")";
$resql=$this->db->query($sql);
if ($resql)

View File

@ -240,7 +240,7 @@ if ($search_status != '' && $search_status >= 0)
}
// RESTRICT RIGHTS
if (empty($user->rights->expensereport->readall) && empty($user->rights->expensereport->lire_tous)
&& empty($user->rights->expensereport->writeall_advance))
&& (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || empty($user->rights->expensereport->writeall_advance)))
{
$childids = $user->getAllChildIds();
$childids[]=$user->id;

View File

@ -383,7 +383,7 @@ if ($object->id > 0)
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td colspan="3">'.$langs->trans("ProductsAndServices").'</td><td align="right">';
print '<a class="notasortlink" href="'.DOL_URL_ROOT.'/fourn/product/list.php?fourn_id='.$object->id.'">'.$langs->trans("All").' <span class="badge">'.$object->nbOfProductRefs().'</span>';
print '<a class="notasortlink" href="'.DOL_URL_ROOT.'/fourn/product/list.php?fourn_id='.$object->id.'">'.$langs->trans("AllProductServicePrices").' <span class="badge">'.$object->nbOfProductRefs().'</span>';
print '</a></td></tr>';
//Query from product/liste.php
@ -708,7 +708,13 @@ if ($object->id > 0)
// modified by hook
if (empty($reshook))
{
if ($user->rights->fournisseur->commande->creer)
if ($conf->supplier_proposal->enabled && $user->rights->supplier_proposal->creer)
{
$langs->load("supplier_proposal");
print '<a class="butAction" href="'.DOL_URL_ROOT.'/supplier_proposal/card.php?action=create&socid='.$object->id.'">'.$langs->trans("AddSupplierProposal").'</a>';
}
if ($user->rights->fournisseur->commande->creer)
{
$langs->load("orders");
print '<a class="butAction" href="'.DOL_URL_ROOT.'/fourn/commande/card.php?action=create&socid='.$object->id.'">'.$langs->trans("AddOrder").'</a>';
@ -720,12 +726,6 @@ if ($object->id > 0)
print '<a class="butAction" href="'.DOL_URL_ROOT.'/fourn/facture/card.php?action=create&socid='.$object->id.'">'.$langs->trans("AddBill").'</a>';
}
if ($conf->supplier_proposal->enabled && $user->rights->supplier_proposal->creer)
{
$langs->load("supplier_proposal");
print '<a class="butAction" href="'.DOL_URL_ROOT.'/supplier_proposal/card.php?action=create&socid='.$object->id.'">'.$langs->trans("AddSupplierProposal").'</a>';
}
if ($user->rights->fournisseur->facture->creer)
{
if (! empty($orders2invoice) && $orders2invoice > 0) print '<div class="inline-block divButAction"><a class="butAction" href="'.DOL_URL_ROOT.'/fourn/commande/orderstoinvoice.php?socid='.$object->id.'">'.$langs->trans("CreateInvoiceForThisCustomer").'</a></div>';

View File

@ -6,6 +6,7 @@
* Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2014 Cedric Gross <c.gross@kreiz-it.fr>
* Copyright (C) 2016 Florian Henry <florian.henry@atm-consulting.fr>
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -368,7 +369,7 @@ if ($id > 0 || ! empty($ref)) {
print "</td></tr>";
if ($object->methode_commande) {
print '<tr><td>' . $langs->trans("Method") . '</td><td>' . $commande->getInputMethod() . '</td></tr>';
print '<tr><td>' . $langs->trans("Method") . '</td><td>' . $object->getInputMethod() . '</td></tr>';
}
}

View File

@ -315,8 +315,16 @@ if (empty($reshook))
}
elseif ($action == 'setdatef' && $user->rights->fournisseur->facture->creer)
{
$newdate=dol_mktime(0,0,0,$_POST['datefmonth'],$_POST['datefday'],$_POST['datefyear']);
if ($newdate > (dol_now() + (empty($conf->global->INVOICE_MAX_OFFSET_IN_FUTURE)?0:$conf->global->INVOICE_MAX_OFFSET_IN_FUTURE)))
{
if (empty($conf->global->INVOICE_MAX_OFFSET_IN_FUTURE)) setEventMessages($langs->trans("WarningInvoiceDateInFuture"), null, 'warnings');
else setEventMessages($langs->trans("WarningInvoiceDateTooFarInFuture"), null, 'warnings');
}
$object->fetch($id);
$object->date=dol_mktime(12,0,0,$_POST['datefmonth'],$_POST['datefday'],$_POST['datefyear']);
$object->date=$newdate;
$date_echence_calc=$object->calculate_date_lim_reglement();
if (!empty($object->date_echeance) && $object->date_echeance < $date_echence_calc)
{
@ -326,6 +334,7 @@ if (empty($reshook))
{
$object->date_echeance=$object->date;
}
$result=$object->update($user);
if ($result < 0) dol_print_error($db,$object->error);
}
@ -2186,42 +2195,6 @@ else
print "</td>";
print '</tr>';
// Status
//print '<tr><td>'.$langs->trans('Status').'</td><td colspan="3">'.$object->getLibStatut(4,$alreadypaid).'</td></tr>';
// Project
/*
if (! empty($conf->projet->enabled))
{
$langs->load('projects');
print '<tr>';
print '<td>';
print '<table class="nobordernopadding" width="100%"><tr><td>';
print $langs->trans('Project');
print '</td>';
if ($action != 'classify')
{
print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=classify&amp;id='.$object->id.'">';
print img_edit($langs->trans('SetProject'),1);
print '</a></td>';
}
print '</tr></table>';
print '</td><td colspan="3">';
if ($action == 'classify')
{
$form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS)?$object->socid:-1), $object->fk_project, 'projectid', 0, 0, 1);
}
else
{
$form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0);
}
print '</td>';
print '</tr>';
}
*/
// Incoterms
if (!empty($conf->incoterm->enabled))
{
@ -2311,6 +2284,9 @@ else
/*
* List of payments
*/
$totalpaye = 0;
$sign = 1;
if ($object->type == FactureFournisseur::TYPE_CREDIT_NOTE) $sign = - 1;
@ -2340,7 +2316,7 @@ else
if ($result)
{
$num = $db->num_rows($result);
$i = 0; $totalpaye = 0;
$i = 0;
print '<table class="noborder paymenttable" width="100%">';
print '<tr class="liste_titre">';
print '<td class="liste_titre">' . ($object->type == FactureFournisseur::TYPE_CREDIT_NOTE ? $langs->trans("PaymentsBack") : $langs->trans('Payments')) . '</td>';
@ -2418,7 +2394,8 @@ else
dol_print_error($db);
}
if ($object->type != FactureFournisseur::TYPE_CREDIT_NOTE) {
if ($object->type != FactureFournisseur::TYPE_CREDIT_NOTE)
{
// Total already paid
print '<tr><td colspan="' . $nbcols . '" align="right">';
if ($object->type != FactureFournisseur::TYPE_DEPOSIT)
@ -2433,9 +2410,10 @@ else
// Loop on each credit note or deposit amount applied
$creditnoteamount = 0;
$depositamount = 0;
/*
$sql = "SELECT re.rowid, re.amount_ht, re.amount_tva, re.amount_ttc,";
$sql .= " re.description, re.fk_facture_source";
$sql .= " FROM " . MAIN_DB_PREFIX . "societe_remise_except as re";
$sql .= " FROM " . MAIN_DB_PREFIX . "societe_remise_except_supplier as re";
$sql .= " WHERE fk_facture = " . $object->id;
$resql = $db->query($sql);
if ($resql) {
@ -2465,7 +2443,8 @@ else
} else {
dol_print_error($db);
}
*/
// Paye partiellement 'escompte'
if (($object->statut == FactureFournisseur::STATUS_CLOSED || $object->statut == FactureFournisseur::STATUS_ABANDONED) && $object->close_code == 'discount_vat') {
print '<tr><td colspan="' . $nbcols . '" align="right" class="nowrap">';

View File

@ -144,8 +144,8 @@ if ($id > 0 || ! empty($ref))
$morehtmlref='<div class="refidno">';
// Ref supplier
$morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', 0, 1);
$morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', null, null, '', 1);
$morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1);
$morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1);
// Thirdparty
$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
// Project

View File

@ -97,8 +97,8 @@ if ($object->id > 0)
$morehtmlref='<div class="refidno">';
// Ref supplier
$morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', 0, 1);
$morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', null, null, '', 1);
$morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1);
$morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1);
// Thirdparty
$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
// Project
@ -239,6 +239,9 @@ if ($object->id > 0)
print '</table>';
print '</div>';
dol_fiche_end();
$modulepart = 'facture_fournisseur';
$permission = $user->rights->fournisseur->facture->creer;

View File

@ -65,8 +65,8 @@ $linkback = '<a href="' . DOL_URL_ROOT . '/compta/facture/list.php' . (! empty($
$morehtmlref='<div class="refidno">';
// Ref supplier
$morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', 0, 1);
$morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', null, null, '', 1);
$morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1);
$morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1);
// Thirdparty
// $morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
// Project

View File

@ -89,8 +89,8 @@ if ($object->id > 0)
$morehtmlref='<div class="refidno">';
// Ref supplier
$morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', 0, 1);
$morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', null, null, '', 1);
$morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1);
$morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1);
// Thirdparty
$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
// Project

View File

@ -46,6 +46,8 @@ if ($user->societe_id > 0) accessforbidden();
$now=dol_now();
$langs->load("holiday");
/*
* Actions

View File

@ -48,6 +48,7 @@ $confirm = GETPOST('confirm','alpha');
if ($user->societe_id) $socid=$user->societe_id;
$result = restrictedArea($user, 'holiday', $id, 'holiday');
$langs->load("holiday");
// Get parameters
$sortfield = GETPOST('sortfield','alpha');

View File

@ -178,8 +178,8 @@ if (empty($user->societe_id))
! empty($conf->supplier_order->enabled) && $user->rights->fournisseur->commande->lire && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_ORDERS_STATS),
! empty($conf->supplier_invoice->enabled) && $user->rights->fournisseur->facture->lire && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_INVOICES_STATS),
! empty($conf->supplier_proposal->enabled) && $user->rights->supplier_proposal->lire && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_PROPOSAL_STATS),
! empty($conf->expensereport->enabled) && $user->rights->expensereport->lire,
! empty($conf->projet->enabled) && $user->rights->projet->lire
! empty($conf->projet->enabled) && $user->rights->projet->lire,
! empty($conf->expensereport->enabled) && $user->rights->expensereport->lire
);
// Class file containing the method load_state_board for each line
$includes=array(
@ -199,8 +199,8 @@ if (empty($user->societe_id))
DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.commande.class.php",
DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.facture.class.php",
DOL_DOCUMENT_ROOT."/supplier_proposal/class/supplier_proposal.class.php",
DOL_DOCUMENT_ROOT."/expensereport/class/expensereport.class.php",
DOL_DOCUMENT_ROOT."/projet/class/project.class.php"
DOL_DOCUMENT_ROOT."/projet/class/project.class.php",
DOL_DOCUMENT_ROOT."/expensereport/class/expensereport.class.php"
);
// Name class containing the method load_state_board for each line
$classes=array('User',
@ -219,8 +219,8 @@ if (empty($user->societe_id))
'CommandeFournisseur',
'FactureFournisseur',
'SupplierProposal',
'ExpenseReport',
'Project'
'Project',
'ExpenseReport'
);
// Cle array returned by the method load_state_board for each line
$keys=array('users',
@ -239,8 +239,8 @@ if (empty($user->societe_id))
'supplier_orders',
'supplier_invoices',
'askprice',
'expensereports',
'projects'
'projects',
'expensereports'
);
// Dashboard Icon lines
$icons=array('user',
@ -259,8 +259,8 @@ if (empty($user->societe_id))
'order',
'bill',
'propal',
'trip',
'project'
'project',
'trip'
);
// Translation keyword
$titres=array("Users",
@ -279,8 +279,8 @@ if (empty($user->societe_id))
"SuppliersOrders",
"SuppliersInvoices",
"SupplierProposalShort",
"ExpenseReports",
"Projects"
"Projects",
"ExpenseReports"
);
// Dashboard Link lines
$links=array(
@ -300,8 +300,8 @@ if (empty($user->societe_id))
DOL_URL_ROOT.'/fourn/commande/list.php',
DOL_URL_ROOT.'/fourn/facture/list.php',
DOL_URL_ROOT.'/supplier_proposal/list.php',
DOL_URL_ROOT.'/expensereport/list.php?mainmenu=hrm',
DOL_URL_ROOT.'/projet/list.php?mainmenu=project'
DOL_URL_ROOT.'/projet/list.php?mainmenu=project',
DOL_URL_ROOT.'/expensereport/list.php?mainmenu=hrm'
);
// Translation lang files
$langfile=array("users",
@ -318,8 +318,8 @@ if (empty($user->societe_id))
"supplier_proposal",
"contracts",
"interventions",
"trips",
"projects"
"projects",
"trips"
);

View File

@ -43,6 +43,9 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PRODUCT_MODIFY','Product or service modified','Executed when a product or sevice is modified','product',30);
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PRODUCT_DELETE','Product or service deleted','Executed when a product or sevice is deleted','product',30);
ALTER TABLE llx_c_email_templates ADD COLUMN content_lines text;
ALTER TABLE llx_loan ADD COLUMN fk_projet integer DEFAULT NULL;
ALTER TABLE llx_holiday ADD COLUMN fk_user_modif integer;

View File

@ -32,5 +32,6 @@ create table llx_c_email_templates
position smallint, -- Position
active tinyint DEFAULT 1 NOT NULL,
topic text, -- Predefined topic
content text -- Predefined text
content text, -- Predefined text
content_lines text -- Predefined lines
)ENGINE=innodb;

View File

@ -22,6 +22,7 @@ rowid integer NOT NULL AUTO_INCREMENT PRIMARY KEY,
entity integer DEFAULT 1 NOT NULL, -- Multi company id
fk_user integer NOT NULL,
fk_user_create integer,
fk_user_modif integer,
fk_type integer NOT NULL,
date_create DATETIME NOT NULL,
description VARCHAR( 255 ) NOT NULL,

View File

@ -10,6 +10,9 @@ VersionUnknown=غير معروف
VersionRecommanded=موصى بها
FileCheck=Files integrity checker
FileCheckDesc=This tool allows you to check the integrity of files of your application, comparing each files with the official ones. You can use this tool to detect if some files were modified by a hacker for example.
FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified of removed.
GlobalChecksum=Global checksum
MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
LocalSignature=Embedded local signature (less reliable)
RemoteSignature=Remote distant signature (more reliable)
@ -276,7 +279,7 @@ ModuleFamilyInterface=واجهات مع الأنظمة الخارجية
MenuHandlers=قائمة مناولي
MenuAdmin=قائمة تحرير
DoNotUseInProduction=لا تستخدمها مع المنتج
ThisIsProcessToFollow=هذا هو الإعداد لهذه العملية :
ThisIsProcessToFollow=This is steps to process:
ThisIsAlternativeProcessToFollow=هذا هو الإعداد بديل للعملية:
StepNb=الخطوة %s
FindPackageFromWebSite=العثور على الحزمة التي توفر ميزة تريد (على سبيل المثال على موقع الويب %s).
@ -411,6 +414,7 @@ ModuleCompanyCodePanicum=العودة فارغة مدونة المحاسبة.
ModuleCompanyCodeDigitaria=قانون المحاسبة طرف ثالث يعتمد على الرمز. الشفرة تتكون من طابع "جيم" في المركز الأول يليه 5 الحروف الأولى من طرف ثالث المدونة.
Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
# Modules
Module0Name=& مجموعات المستخدمين
@ -515,8 +519,8 @@ Module2200Name=الأسعار الديناميكية
Module2200Desc=تمكين استخدام تعبيرات الرياضيات للأسعار
Module2300Name=Cron
Module2300Desc=إدارة مهمة مجدولة
Module2400Name=Agenda/Events
Module2400Desc=Follow events or rendez-vous. Record manual events into Agendas or let application logs automatic events for tracking purposes.
Module2400Name=Events/Agenda
Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous.
Module2500Name=إدارة المحتوى الإلكتروني
Module2500Desc=حفظ وتبادل الوثائق
Module2600Name=خدمات API / ويب (خادم SOAP)
@ -582,7 +586,7 @@ Permission34=حذف المنتجات
Permission36=انظر / إدارة المنتجات المخفية
Permission38=منتجات التصدير
Permission41=مشاريع القراءة والمهام (مشروع مشترك ومشاريع انا اتصال ل). كما يمكن أن يدخل الوقت المستهلك في المهام الموكلة (الجدول الزمني)
Permission42=إنشاء / تعديل مشاريع تعديل مهام بلدي المشاريع
Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
Permission44=حذف مشاريع
Permission45=Export projects
Permission61=قراءة التدخلات
@ -685,7 +689,7 @@ PermissionAdvanced253=إنشاء / تعديل المستخدمين خارجي /
Permission254=حذف أو تعطيل المستخدمين الآخرين
Permission255=إنشاء / تعديل بلده معلومات المستخدم
Permission256=تعديل بنفسه كلمة المرور
Permission262=توسيع نطاق الوصول إلى جميع الأطراف الثالثة (وليس فقط تلك المرتبطة المستخدم). ليست فعالة للمستعملين الخارجيين (دائما يقتصر على نفسها).
Permission262=Extend access to all third parties (not only third parties that user is a sale representative). Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc). Not effective for projects (only rules on project permissions, visibility and assignement matters).
Permission271=قراءة في كاليفورنيا
Permission272=قراءة الفواتير
Permission273=قضية الفواتير
@ -994,7 +998,7 @@ TriggerAlwaysActive=يطلق في هذا الملف هي حركة دائمة ،
TriggerActiveAsModuleActive=يطلق في هذا الملف كما ينشط حدة تمكين <b>٪ ق.</b>
GeneratedPasswordDesc=هنا تعريف القاعدة التي تريد استخدامه لكلمة السر اذا كنت أسأل لصناعة السيارات ولدت كلمة السر
DictionaryDesc=Insert all reference data. You can add your values to the default.
ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting.
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. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
MiscellaneousDesc=All other security related parameters are defined here.
LimitsSetup=حدود / الدقيقة الإعداد
LimitsDesc=يمكنك تعريف حدود، توضيحات وتحقيق أمثلية المستخدمة من قبل Dolibarr هنا
@ -1471,6 +1475,8 @@ AGENDA_USE_EVENT_TYPE_DEFAULT=تلقائيا تعيين هذه القيمة ال
AGENDA_DEFAULT_FILTER_TYPE=تلقائيا تعيين هذا النوع من الأحداث في تصفية بحثا عن عرض جدول الأعمال
AGENDA_DEFAULT_FILTER_STATUS=تلقائيا تعيين هذه الحالة مع الأحداث في تصفية بحثا عن عرض جدول الأعمال
AGENDA_DEFAULT_VIEW=علامة التبويب التي تريد فتح افتراضيا عند اختيار القائمة جدول الأعمال
AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question)
AGENDA_NOTIFICATION_SOUND=Enable sound notification
##### ClickToDial #####
ClickToDialDesc=هذه الوحدة تسمح لجعل أرقام هواتف يمكن النقر عليها. وهناك انقر على هذه الأيقونة دعوة تجعل هاتفك إلى الاتصال برقم الهاتف. وهذا يمكن أن تستخدم لاستدعاء نظام مركز الاتصال من Dolibarr يمكن أن نسميه ورقم الهاتف على نظام SIP على سبيل المثال.
ClickToDialUseTelLink=مجرد استخدام الرابط "الهاتف:" على أرقام الهواتف
@ -1571,7 +1577,7 @@ BackupDumpWizard=المعالج لبناء قاعدة بيانات النسخ ا
SomethingMakeInstallFromWebNotPossible=تركيب وحدة خارجية غير ممكن من واجهة ويب للسبب التالي:
SomethingMakeInstallFromWebNotPossible2=لهذا السبب، عملية لترقية وصفت هنا هو دليل على بعد خطوات قليلة يمكن للمستخدم متميز القيام به.
InstallModuleFromWebHasBeenDisabledByFile=تثبيت وحدة خارجية من التطبيق قد تم تعطيلها من قبل المسؤول. يجب أن يطلب منه إزالة <strong>الملف٪ s</strong> للسماح هذه الميزة.
ConfFileMuseContainCustom=Installing an external module from application save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to have option<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to have option<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
HighlightLinesOnMouseHover=تسليط الضوء على خطوط الجدول عندما يمر تحرك الماوس فوق
HighlightLinesColor=تسليط الضوء على لون الخط عند تمرير الماوس فوق (الحفاظ فارغة دون تمييز)
TextTitleColor=Color of page title
@ -1614,8 +1620,8 @@ ByDefaultInList=تظهر بشكل افتراضي على عرض القائمة
YouUseLastStableVersion=كنت تستخدم إصدار مستقر الماضي
TitleExampleForMajorRelease=مثال على رسالة يمكنك استخدامها ليعلن هذا الإصدار الرئيسي (لا تتردد في استخدامها على مواقع الويب الخاص بك)
TitleExampleForMaintenanceRelease=مثال على الرسالة التي يمكن استخدامها ليعلن هذا البيان الصيانة (لا تتردد في استخدامها على مواقع الويب الخاص بك)
ExampleOfNewsMessageForMajorRelease=Dolibarr ERP و CRM%s هو متاح. النسخة٪ s هو الإصدار الرئيسي مع الكثير من الميزات الجديدة لكل من المستخدمين والمطورين. يمكنك تحميل البرنامج من منطقة التحميل من http://www.dolibarr.org البوابة (الإصدارات المستقرة دليل فرعي). يمكنك أن تقرأ <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">سجل التغيير</a> للحصول على قائمة كاملة من التغييرات.
ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP و CRM%s هو متاح. النسخة٪ s هو الحفاظ على الصيغة، لذلك يحتوي فقط على الإصلاحات من البق. نوصي الجميع تستخدم نسخة قديمة للترقية إلى هذا واحد. مثل أي الافراج عن صيانة، لا ملامح جديدة، أو على تغيير بنية البيانات غير موجودة في هذا الإصدار. يمكنك تحميل البرنامج من منطقة التحميل من http://www.dolibarr.org البوابة (الإصدارات المستقرة دليل فرعي). يمكنك أن تقرأ <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">سجل التغيير</a> للحصول على قائمة كاملة من التغييرات.
ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
MultiPriceRuleDesc=عندما خيار "مستوى العديد من الأسعار لكل المنتجات / الخدمات" في وضع التشغيل، يمكنك تحديد أسعار مختلفة (واحد لكل مستوى الأسعار) لكل منتج. لتوفير الوقت، يمكنك الدخول هنا حكم أن يكون السعر لكل مستوى autocalculated وفقا لسعر المستوى الأول، لذلك سيكون لديك للدخول الثمن الوحيد للمستوى الأول على كل منتج. هذه الصفحة هي هنا لتوفر لك الوقت ويمكن أن تكون مفيدة فقط إذا كانت الأسعار الخاص لكل LEVE قريبة إلى المستوى الأول. يمكنك تجاهل هذه الصفحة في معظم الحالات.
ModelModulesProduct=Templates for product documents
ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.

View File

@ -2,6 +2,7 @@
IdAgenda=رمز الحدث
Actions=الأحداث
Agenda=جدول الأعمال
TMenuAgenda=جدول الأعمال
Agendas=جداول الأعمال
LocalAgenda=تقويم الداخلي
ActionsOwnedBy=الحدث يملكها

View File

@ -113,22 +113,24 @@ BillStatus=حالة الفاتورة
StatusOfGeneratedInvoices=Status of generated invoices
BillStatusDraft=مشروع (لا بد من التحقق من صحة)
BillStatusPaid=دفع
BillStatusPaidBackOrConverted=يدفع أو تحويلها إلى الخصم
BillStatusPaidBackOrConverted=Refund or converted into discount
BillStatusConverted=وتحول إلى خصم
BillStatusCanceled=المهجورة
BillStatusValidated=مصادق عليه (لا بد من دفعها)
BillStatusStarted=بدأت
BillStatusNotPaid=لم تدفع
BillStatusNotRefunded=Not refunded
BillStatusClosedUnpaid=مغلقة (غير مدفوعة الأجر)
BillStatusClosedPaidPartially=دفعت (جزئيا)
BillShortStatusDraft=مسودة
BillShortStatusPaid=دفع
BillShortStatusPaidBackOrConverted=تجهيز
BillShortStatusPaidBackOrConverted=Refund or converted
BillShortStatusConverted=تجهيز
BillShortStatusCanceled=المهجورة
BillShortStatusValidated=صادق
BillShortStatusStarted=بدأت
BillShortStatusNotPaid=لم تدفع
BillShortStatusNotRefunded=Not refunded
BillShortStatusClosedUnpaid=مغلقة
BillShortStatusClosedPaidPartially=دفعت (جزئيا)
PaymentStatusToValidShort=للمصادقة
@ -203,7 +205,7 @@ AlreadyPaidNoCreditNotesNoDeposits=دفعت بالفعل (بدون تلاحظ ا
Abandoned=المهجورة
RemainderToPay=تبقى بدون أجر
RemainderToTake=المتبقي لاتخاذ
RemainderToPayBack=تبقى مبلغ لتسديد
RemainderToPayBack=Remaining amount to refund
Rest=بانتظار
AmountExpected=المبلغ المطالب به
ExcessReceived=تلقى الزائدة
@ -333,8 +335,8 @@ DateIsNotEnough=Date not reached yet
InvoiceGeneratedFromTemplate=Invoice %s generated from recurring template invoice %s
# PaymentConditions
Statut=الحالة
PaymentConditionShortRECEP=فورا
PaymentConditionRECEP=فورا
PaymentConditionShortRECEP=Due Upon Receipt
PaymentConditionRECEP=Due Upon Receipt
PaymentConditionShort30D=30 يوما
PaymentCondition30D=30 يوما
PaymentConditionShort30DENDMONTH=30 days of month-end

View File

@ -25,7 +25,7 @@ Difference=فرق
TotalTicket=مجموع التذاكر
NoVAT=لا ضريبة القيمة المضافة لهذا بيع
Change=تلقى الزائدة
BankToPay=تهمة حساب
BankToPay=Account for payment
ShowCompany=عرض شركة
ShowStock=عرض مستودع
DeleteArticle=انقر لإزالة هذه المادة

View File

@ -78,6 +78,9 @@ VATIsNotUsed=ضريبة القيمة المضافة لا يستخدم
CopyAddressFromSoc=Fill address with third party address
ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects
PaymentBankAccount=Payment bank account
OverAllProposals=Total proposals
OverAllOrders=Total orders
OverAllInvoices=Total invoices
##### Local Taxes #####
LocalTax1IsUsed=استخدام الضرائب الثانية
LocalTax1IsUsedES= يتم استخدام الطاقة المتجددة
@ -239,6 +242,10 @@ ProfId3RU=الأستاذ رقم 3 (KPP)
ProfId4RU=الأستاذ رقم 4 (اوكبو)
ProfId5RU=-
ProfId6RU=-
ProfId1DZ=RC
ProfId2DZ=Art.
ProfId3DZ=NIF
ProfId4DZ=NIS
VATIntra=رقم الضريبة على القيمة المضافة
VATIntraShort=رقم الضريبة على القيمة المضافة
VATIntraSyntaxIsValid=تركيب صالحة
@ -384,6 +391,7 @@ LastModifiedThirdParties=Latest %s modified third parties
UniqueThirdParties=مجموع الأطراف الثالثة فريدة من نوعها
InActivity=فتح
ActivityCeased=مغلق
ThirdPartyIsClosed=Third party is closed
ProductsIntoElements=قائمة المنتجات / الخدمات إلى %s
CurrentOutstandingBill=فاتورة المستحق حاليا
OutstandingBill=ماكس. لمشروع قانون المتميز

View File

@ -194,7 +194,7 @@ CloneTax=استنساخ ضريبة اجتماعية / مالية
ConfirmCloneTax=تأكيد استنساخ ل/ دفع الضرائب المالية الاجتماعي
CloneTaxForNextMonth=استنساخ لشهر المقبل
SimpleReport=تقرير بسيط
AddExtraReport=تقارير إضافية
AddExtraReport=Extra reports (add foreign and national customer report)
OtherCountriesCustomersReport=تقرير العملاء الأجانب
BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=استنادا الى اثنين من الأحرف الأولى من رقم ضريبة القيمة المضافة بأنهم مختلفون عن رمز البلد شركتك الخاصة لل
SameCountryCustomersWithVAT=تقرير عملاء الوطني

View File

@ -170,14 +170,17 @@ ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
ErrorFileMustHaveFormat=File must have format %s
ErrorSupplierCountryIsNotDefined=لهذا البلد المورد غير محدد. تصحيح هذا أولا.
ErrorsThirdpartyMerge=Failed to merge the two records. Request canceled.
ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enougth for product %s to add it into a new order.
ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enougth for product %s to add it into a new invoice.
ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enougth for product %s to add it into a new shipment.
ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enougth for product %s to add it into a new proposal.
ErrorFailedToLoadLoginFileForMode=Failed to get the login file for mode '%s'.
ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enough for product %s to add it into a new order.
ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enough for product %s to add it into a new invoice.
ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s to add it into a new shipment.
ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal.
ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'.
ErrorModuleNotFound=File of module was not found.
ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s
ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s
ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information.
ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed.
ErrorTaskAlreadyAssigned=Task already assigned to user
# Warnings
WarningPasswordSetWithNoAccount=تم تعيين كلمة مرور لهذا العضو. ومع ذلك، تم إنشاء أي حساب المستخدم. لذلك يتم تخزين كلمة المرور هذه ولكن لا يمكن استخدامها للدخول إلى Dolibarr. ويمكن استخدامه من قبل وحدة / واجهة خارجية ولكن إذا كنت لا تحتاج إلى تعريف أي تسجيل دخول أو كلمة المرور لأحد أفراد، يمكنك تعطيل خيار "إدارة تسجيل دخول لكل عضو" من إعداد وحدة الأعضاء. إذا كنت بحاجة إلى إدارة تسجيل الدخول ولكن لا تحتاج إلى أي كلمة المرور، يمكنك الحفاظ على هذا الحقل فارغا لتجنب هذا التحذير. ملاحظة: يمكن أيضا أن تستخدم البريد الإلكتروني لتسجيل الدخول إذا تم ربط عضو إلى المستخدم.

View File

@ -110,7 +110,7 @@ Enclosure=سياج
SpecialCode=رمز خاص
ExportStringFilter=٪٪ يسمح استبدال حرف واحد أو أكثر في النص
ExportDateFilter=YYYY، YYYYMM، YYYYMMDD: فلاتر لسنة واحدة / شهر / يوم <br> YYYY + YYYY، YYYYMM + YYYYMM، YYYYMMDD + YYYYMMDD: مرشحات على مجموعة من سنوات / أشهر / أيام <br> > YYYY،> YYYYMM،> YYYYMMDD: مرشحات على جميع السنوات / أشهر / يوما التالية <br> <YYYY، <YYYYMM، <YYYYMMDD: مرشحات على جميع السنوات / أشهر / يوما السابقة
ExportNumericFilter=مرشحات "NNNNN من حيث القيمة واحد <br> مرشحات "NNNNN + NNNNN" على مجموعة من القيم <br> '> NNNNN' المرشحات من قبل انخفاض القيم <br> '> NNNNN' المرشحات بالقيم العليا
ExportNumericFilter=NNNNN filters by one value<br>NNNNN+NNNNN filters over a range of values<br>< NNNNN filters by lower values<br>> NNNNN filters by higher values
ImportFromLine=Import starting from line number
EndAtLineNb=End at line number
SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines
@ -120,3 +120,8 @@ SelectFilterFields=إذا كنت ترغب في تصفية على بعض القي
FilteredFields=الحقول التي تمت تصفيتها
FilteredFieldsValues=قيمة للمرشح
FormatControlRule=حكم عنصر تنسيق
## imports updates
KeysToUseForUpdates=Key to use for updating data
NbInsert=Number of inserted lines: %s
NbUpdate=Number of updated lines: %s
MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s

View File

@ -78,6 +78,7 @@ ManualUpdate=التحديث اليدوي
HolidaysCancelation=ترك طلب الإلغاء
EmployeeLastname=Employee lastname
EmployeeFirstname=Employee firstname
TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
## Configuration du Module ##
LastUpdateCP=Latest automatic update of leaves allocation

View File

@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=التدخل٪ الصورة حذفها
InterventionsArea=منطقة التدخلات
DraftFichinter=مشروع التدخلات
LastModifiedInterventions=Latest %s modified interventions
FichinterToProcess=Interventions to process
##### Types de contacts #####
TypeContact_fichinter_external_CUSTOMER=متابعة العملاء الاتصال
# Modele numérotation

View File

@ -12,6 +12,7 @@ Language_de_DE=اللغة الألمانية
Language_de_AT=الألمانية (النمسا)
Language_de_CH=الألمانية (سويسرا)
Language_el_GR=يوناني
Language_el_CY=Greek (Cyprus)
Language_en_AU=الإنكليزية (أستراليا)
Language_en_CA=الإنكليزية (كندا)
Language_en_GB=الانجليزية (المملكة المتحدة)
@ -26,8 +27,10 @@ Language_es_BO=الأسبانية (بوليفيا)
Language_es_CL=الإسبانية (تشيلي)
Language_es_CO=الأسبانية (كولومبيا)
Language_es_DO=الأسبانية (جمهورية الدومنيكان)
Language_es_EC=Spanish (Ecuador)
Language_es_HN=الأسبانية (هندوراس)
Language_es_MX=الإسبانية (المكسيك)
Language_es_PA=Spanish (Panama)
Language_es_PY=الأسبانية (باراغواي)
Language_es_PE=الإسبانية (بيرو)
Language_es_PR=الأسبانية (بورتو ريكو)
@ -50,12 +53,14 @@ Language_is_IS=الآيسلندي
Language_it_IT=الإيطالي
Language_ja_JP=اليابانية
Language_ka_GE=الجورجية
Language_km_KH=Khmer
Language_kn_IN=الكانادا
Language_ko_KR=الكورية
Language_lo_LA=لاو
Language_lt_LT=اللتوانية
Language_lv_LV=اللاتفية
Language_mk_MK=المقدونية
Language_mn_MN=Mongolian
Language_nb_NO=النرويجية (بوكمال)
Language_nl_BE=الهولندية (بلجيكا)
Language_nl_NL=الهولندية (هولندا)

View File

@ -43,6 +43,7 @@ LoanCalcDesc=This <b>mortgage calculator</b> can be used to figure out monthly p
GoToInterest=٪ S سوف تذهب نحو الفائدة
GoToPrincipal=٪ S سوف تذهب نحو PRINCIPAL
YouWillSpend=You will spend %s in year %s
ListLoanAssociatedProject=List of loan associated with the project
# Admin
ConfigLoan=التكوين للقرض وحدة
LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default

View File

@ -35,7 +35,7 @@ MailingStatusSentPartialy=أرسلت جزئيا
MailingStatusSentCompletely=أرسلت تماما
MailingStatusError=خطأ
MailingStatusNotSent=لم ترسل
MailSuccessfulySent=أرسل بالبريد الإلكتروني بنجاح (٪ من المستندات ل٪)
MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s)
MailingSuccessfullyValidated=البريد الإلكتروني التحقق من صحة بنجاح
MailUnsubcribe=إلغاء الاشتراك
MailingStatusNotContact=عدم الاتصال بعد الآن
@ -74,6 +74,7 @@ ResultOfMailSending=نتيجة لإرسال البريد الإلكتروني ا
NbSelected=ملحوظة مختارة
NbIgnored=ملحوظة تجاهلها
NbSent=أرسلت ملحوظة
ContactsWithThirdpartyFilter=Contact with customer filters
# Libelle des modules de liste de destinataires mailing
LineInFile=خط المستندات في ملف ٪
@ -87,9 +88,10 @@ MailNoChangePossible=صادق المتلقين للمراسلة لا يمكن ت
SearchAMailing=البحث البريدية
SendMailing=إرسال البريد الإلكتروني
SendMail=إرسال بريد إلكتروني
MailingNeedCommand=لأسباب أمنية، إرسال البريد الإلكتروني هو أفضل عندما يؤديها من سطر الأوامر. إذا كان لديك واحدة، اطلب من مسؤول الخادم الخاص بك لإطلاق الأمر التالي لإرسال إرساله عبر البريد الإلكتروني لجميع المستفيدين:
SentBy=أرسلها
MailingNeedCommand=Sending an emailing can be performed from command line. Ask your server administrator to launch the following command to send the emailing to all recipients:
MailingNeedCommand2=ولكن يمكنك إرسالها عبر الإنترنت عن طريق إضافة معلمة MAILING_LIMIT_SENDBYWEB مع قيمة الحد الأقصى لعدد من رسائل البريد الإلكتروني التي تريد إرسالها من خلال هذه الدورة.
ConfirmSendingEmailing=If you can't or prefer sending them with your www browser, please confirm you are sure you want to send emailing now from your browser?
ConfirmSendingEmailing=If you want to send emailing directly from this screen, please confirm you are sure you want to send emailing now from your browser ?
LimitSendingEmailing=يتم إرسال من emailings من واجهة الويب في عدة مرات لأسباب أمنية ومهلة <b>والمستفيدين٪ الصورة</b> في وقت لكل دورة ارسال: ملاحظة.
TargetsReset=لائحة واضحة
ToClearAllRecipientsClickHere=من الواضح أن المستفيدين قائمة لهذا البريد الإلكتروني ، انقر على زر

View File

@ -63,6 +63,7 @@ ErrorNoVATRateDefinedForSellerCountry=خطأ، لا معدلات ضريبة ال
ErrorNoSocialContributionForSellerCountry=خطأ، لا الاجتماعي / المالي نوع الضرائب المحددة للبلد '٪ ق'.
ErrorFailedToSaveFile=خطأ، فشل في حفظ الملف.
ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
MaxNbOfRecordPerPage=Max nb of record per page
NotAuthorized=غير مصرح لك ان تفعل ذلك.
SetDate=التاريخ المحدد
SelectDate=تحديد تاريخ
@ -460,6 +461,7 @@ DeletePicture=حذف صورة
ConfirmDeletePicture=تأكيد الصورة الحذف؟
Login=تسجيل الدخول
CurrentLogin=تسجيل الدخول الحالي
EnterLoginDetail=Enter login details
January=كانون الثاني
February=شهر فبراير
March=مارس، يسير، يتقدم
@ -753,6 +755,7 @@ RemoveString=Remove string '%s'
SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">http://transifex.com/projects/p/dolibarr/</a>.
DirectDownloadLink=Direct download link
Download=Download
ActualizeCurrency=Update currency rate
# Week day
Monday=يوم الاثنين
Tuesday=الثلاثاء
@ -787,8 +790,8 @@ SetRef=تعيين المرجع
Select2ResultFoundUseArrows=Some results found. Use arrows to select.
Select2NotFound=لا نتائج لبحثك
Select2Enter=أدخل
Select2MoreCharacter=or more character
Select2MoreCharacters=أحرف أو أكثر
Select2MoreCharacter=or more characters<br /><br /><strong>Search syntax:</strong><br /><kbd><strong> |</strong></kbd><kbd> OR</kbd> (a|b)<br /><kbd><strong>*</strong></kbd><kbd> Any character</kbd> (a*b)<br /><kbd><strong>^</strong></kbd><kbd> Start with</kbd> (^ab)<br /><kbd><strong>$</strong></kbd><kbd> End with</kbd> (ab$)<br />
Select2MoreCharacters=or more characters<br /><br /><strong>Search syntax:</strong><br /><kbd><strong> |</strong></kbd><kbd> OR</kbd> (a|b)<br /><kbd><strong>*</strong></kbd><kbd> Any character</kbd> (a*b)<br /><kbd><strong>^</strong></kbd><kbd> Start with</kbd> (^ab)<br /><kbd><strong>$</strong></kbd><kbd> End with</kbd> (ab$)<br />
Select2LoadingMoreResults=تحميل المزيد من النتائج ...
Select2SearchInProgress=بحث في التقدم ...
SearchIntoThirdparties=الأطراف الثالثة

View File

@ -45,7 +45,7 @@ MemberStatusDraft=مشروع (لا بد من التحقق من صحة)
MemberStatusDraftShort=مسودة
MemberStatusActive=صادق (تنتظر الاكتتاب)
MemberStatusActiveShort=صادق
MemberStatusActiveLate=انتهاء الاكتتاب
MemberStatusActiveLate=Subscription expired
MemberStatusActiveLateShort=انتهى
MemberStatusPaid=الاكتتاب حتى الآن
MemberStatusPaidShort=حتى الآن

View File

@ -2,20 +2,24 @@
ConfigOAuth=تكوين أوث
OAuthServices=OAuth services
ManualTokenGeneration=Manual token generation
TokenManager=Token manager
IsTokenGenerated=Is token generated ?
NoAccessToken=لا رمز وصول حفظها في قاعدة البيانات المحلية
HasAccessToken=تم إنشاء رمز مميز وحفظها في قاعدة البيانات المحلية
NewTokenStored=الجواب تلقى رمزية حفظ
ToCheckDeleteTokenOnProvider=للتحقق / حذف إذن هي التي انقذت%s مزود أوث
NewTokenStored=Token received and saved
ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider
TokenDeleted=حذف رمز
RequestAccess=انقر هنا لطلب / تجديد الوصول والحصول على رمز جديد لإنقاذ
DeleteAccess=انقر هنا لحذف رمز
UseTheFollowingUrlAsRedirectURI=استخدام URL التالية باعتبارها إعادة توجيه URI عند إنشاء الاعتماد الخاص على مزود أوث الخاص بك:
ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication.
TOKEN_ACCESS=
TOKEN_REFRESH=Token Refresh Present
OAuthSetupForLogin=Page to generate an OAuth token
SeePreviousTab=See previous tab
OAuthIDSecret=OAuth ID and Secret
TOKEN_REFRESH=رمزي تحميل الحاضر
TOKEN_EXPIRED=Token expired
TOKEN_EXPIRE_AT=Token expire at
TOKEN_DELETE=Delete saved token
TOKEN_EXPIRE_AT=رمز تنتهي في
TOKEN_DELETE=حذف رمز المحفوظة
OAUTH_GOOGLE_NAME=Oauth Google service
OAUTH_GOOGLE_ID=Oauth Google Id
OAUTH_GOOGLE_SECRET=Oauth Google Secret

View File

@ -2,6 +2,7 @@
SecurityCode=رمز الحماية
NumberingShort=N°
Tools=أدوات
TMenuTools=أدوات
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=عيد ميلاد
BirthdayDate=Birthday date

View File

@ -46,6 +46,6 @@ IPP_Media=وسائل الإعلام طابعة
IPP_Supported=نوع من وسائل الإعلام
DirectPrintingJobsDesc=هذا عمل القوائم صفحة الطباعة تم العثور عليها ل الطابعات المتوفرة.
GoogleAuthNotConfigured=الإعداد جوجل أوث لم تفعل. تمكين وحدة أوث ووضع جوجل ID / السرية.
GoogleAuthConfigured=أوراق جوجل أوث وجدت في الإعداد وحدة أوث.
PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print.
PrintTestDescprintgcp=List of Printers for Google Cloud Print.
GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth.
PrintingDriverDescprintgcp=المتغيرات التكوين للسائق الطباعة في السحاب من Google طباعة.
PrintTestDescprintgcp=قائمة طابعات جوجل الغيمة طباعة.

View File

@ -5,6 +5,8 @@ ProductLabelTranslated=تسمية المنتج مترجمة
ProductDescriptionTranslated=ترجم وصف المنتج
ProductNoteTranslated=ترجم مذكرة المنتج
ProductServiceCard=منتجات / خدمات البطاقات
TMenuProducts=المنتجات
TMenuServices=الخدمات
Products=المنتجات
Services=الخدمات
Product=المنتج

View File

@ -58,6 +58,7 @@ TaskDateEnd=تاريخ انتهاء المهمة
TaskDescription=وصف المهمة
NewTask=مهمة جديدة
AddTask=إنشاء مهمة
AddTimeSpent=Create time spent
Activity=النشاط
Activities=المهام والأنشطة
MyActivities=بلدي المهام والأنشطة

View File

@ -140,3 +140,4 @@ ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock cor
ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock correctly updated
ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted
AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock
AddStockLocationLine=Decrease quantity then click to add another warehouse for this product

View File

@ -21,7 +21,17 @@ ListToApprove=تنتظر الموافقة
ExpensesArea=منطقة تقارير المصاريف
ClassifyRefunded=تصنيف "ردها"
ExpenseReportWaitingForApproval=وقد قدم تقرير حساب جديد للموافقة عليها
ExpenseReportWaitingForApprovalMessage=وقد تم تقديم تقرير حساب جديد وينتظر للموافقة عليها. - العضو:٪ ق - الفترة:٪ الصورة انقر هنا للتحقق من صحة:٪ الصورة
ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s
ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval
ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s
ExpenseReportApproved=An expense report was approved
ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s
ExpenseReportRefused=An expense report was refused
ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s
ExpenseReportCanceled=An expense report was canceled
ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s
ExpenseReportPaid=An expense report was paid
ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s
TripId=تقرير حساب الهوية
AnyOtherInThisListCanValidate=شخص إبلاغ عن التحقق من الصحة.
TripSociete=شركة المعلومات
@ -59,31 +69,23 @@ DATE_REFUS=تاريخ ينكر
DATE_SAVE=تاريخ التحقق من الصحة
DATE_CANCEL=تاريخ الإلغاء
DATE_PAIEMENT=تاريخ الدفع
BROUILLONNER=إعادة فتح
ValidateAndSubmit=التحقق من صحة ويقدم للموافقة عليها
ValidatedWaitingApproval=التحقق من صحة (في انتظار الموافقة)
NOT_AUTHOR=أنت لست صاحب هذا التقرير حساب. إلغاء العملية.
ConfirmRefuseTrip=Are you sure you want to deny this expense report?
ValideTrip=الموافقة على تقرير النفقات
ConfirmValideTrip=Are you sure you want to approve this expense report?
PaidTrip=دفع تقرير مصروفات
ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"?
ConfirmCancelTrip=Are you sure you want to cancel this expense report?
BrouillonnerTrip=الرجوع تقرير نفقة لوضع "مسودة"
ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"?
SaveTrip=التحقق من صحة التقرير حساب
ConfirmSaveTrip=Are you sure you want to validate this expense report?
NoTripsToExportCSV=أي تقرير نفقة لتصدير لهذه الفترة.
ExpenseReportPayment=دفع تقرير حساب
ExpenseReportsToApprove=Expense reports to approve
ExpenseReportsToPay=تقارير النفقات لدفع
CloneExpenseReport=Clone expese report
ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ?

View File

@ -10,6 +10,9 @@ VersionUnknown=Неизвестен
VersionRecommanded=Препоръчва се
FileCheck=Files integrity checker
FileCheckDesc=This tool allows you to check the integrity of files of your application, comparing each files with the official ones. You can use this tool to detect if some files were modified by a hacker for example.
FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified of removed.
GlobalChecksum=Global checksum
MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
LocalSignature=Embedded local signature (less reliable)
RemoteSignature=Remote distant signature (more reliable)
@ -276,7 +279,7 @@ ModuleFamilyInterface=Интерфейси със външни системи.
MenuHandlers=Меню работещи
MenuAdmin=Menu Editor
DoNotUseInProduction=Не използвайте на продукшън платформа
ThisIsProcessToFollow=Това е настройка на процеса:
ThisIsProcessToFollow=This is steps to process:
ThisIsAlternativeProcessToFollow=This is an alternative setup to process:
StepNb=Стъпка %s
FindPackageFromWebSite=Намери пакет, който осигурява функция искате (например относно официалния уеб сайт %s).
@ -411,6 +414,7 @@ ModuleCompanyCodePanicum=Връща празна код счетоводство
ModuleCompanyCodeDigitaria=Счетоводството код зависи от код на трето лице. Код се състои от буквата &quot;C&quot; на първа позиция, следван от първите 5 символа на код на контрагент.
Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
# Modules
Module0Name=Потребители и групи
@ -515,8 +519,8 @@ Module2200Name=Dynamic Prices
Module2200Desc=Enable the usage of math expressions for prices
Module2300Name=Cron
Module2300Desc=Scheduled job management
Module2400Name=Agenda/Events
Module2400Desc=Follow events or rendez-vous. Record manual events into Agendas or let application logs automatic events for tracking purposes.
Module2400Name=Events/Agenda
Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous.
Module2500Name=Електронно Управление на Съдържанието
Module2500Desc=Запазване и споделяне на документи
Module2600Name=API services (Web services SOAP)
@ -582,7 +586,7 @@ Permission34=Изтриване на продукти
Permission36=Преглед / управление на скрити продукти
Permission38=Износ на продукти
Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet)
Permission42=Създаване / промяна на проекти (общи проекти и проекти съм се с нас за)
Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
Permission44=Изтриване на проекти (общи проекти и проекти съм се с нас за)
Permission45=Export projects
Permission61=Прочети интервенции
@ -685,7 +689,7 @@ PermissionAdvanced253=Създаване / промяна на вътрешни
Permission254=Създаване / промяна на външни потребители
Permission255=Промяна на други потребители парола
Permission256=Изтрий или забраняване на други потребители
Permission262=Разширяване на достъпа до всички контрагенти (не само тези, които са свързани към потребител). Не е в сила за външни потребители (винаги само за себе си).
Permission262=Extend access to all third parties (not only third parties that user is a sale representative). Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc). Not effective for projects (only rules on project permissions, visibility and assignement matters).
Permission271=Прочети CA
Permission272=Прочети фактури
Permission273=Издаване на фактури
@ -994,7 +998,7 @@ TriggerAlwaysActive=Тригерите в този файл са винаги а
TriggerActiveAsModuleActive=Тригерите в този файл са активни, като модул <b>%s</b> е активирана.
GeneratedPasswordDesc=Определете тук правилото, което искате да използвате, за да генерира нова парола, ако поискате да има автоматично генерирана парола
DictionaryDesc=Insert all reference data. You can add your values to the default.
ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting.
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. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
MiscellaneousDesc=All other security related parameters are defined here.
LimitsSetup=Граници / Прецизно настройване
LimitsDesc=Можете да дефинирате ограничения, уточнения и оптимизации, използвани от Dolibarr тук
@ -1471,6 +1475,8 @@ AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of e
AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question)
AGENDA_NOTIFICATION_SOUND=Enable sound notification
##### ClickToDial #####
ClickToDialDesc=Този модул позволява телефонните номера да могат да се кликват. Кликване върху тази икона ще предизвика вашият телефон да набере телефонния номер. Това може да бъде използвано за обаждане към кол център система, която може да набере телефония номер на SIP система например.
ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
@ -1571,7 +1577,7 @@ BackupDumpWizard=Wizard to build database backup dump file
SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason:
SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do.
InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file <strong>%s</strong> to allow this feature.
ConfFileMuseContainCustom=Installing an external module from application save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to have option<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to have option<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
HighlightLinesColor=Цвят за подчертаване на линията, когато мишката мине отгоре (оставете празно за без подчертаване)
TextTitleColor=Цвят на заглавието на страницата
@ -1614,8 +1620,8 @@ ByDefaultInList=Показване по подразбиране при пока
YouUseLastStableVersion=Използвате последната стабилна версия
TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of http://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of http://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
MultiPriceRuleDesc=Когато опция "Няколко нива за цени на продукт/услуга" е активирана, можете да определите различни цени (по една на ниво) за всеки продукт. За да спестите време, можете да въведете правило тук да имате цена за всяко ниво автоматично изчислена спрямо цената на първо ниво, така ще трябва да въведете само цена за първо ниво на всеки продукт. Тази страница, за да пести времето ви и може да бъде полезна само ако вашите цени за всяко ниво са относителни спрямо първото ниво. Можете да игнорирате тази страница в повечето случаи.
ModelModulesProduct=Templates for product documents
ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.

View File

@ -2,6 +2,7 @@
IdAgenda=ID на събитие
Actions=Събития
Agenda=Дневен ред
TMenuAgenda=Дневен ред
Agendas=Дневен ред
LocalAgenda=Вътрешен календар
ActionsOwnedBy=Събитие принадлежащо на

View File

@ -113,22 +113,24 @@ BillStatus=Статус на фактурата
StatusOfGeneratedInvoices=Status of generated invoices
BillStatusDraft=Чернова (трябва да се валидира)
BillStatusPaid=Платена
BillStatusPaidBackOrConverted=Платена или превърната в отстъпка
BillStatusPaidBackOrConverted=Refund or converted into discount
BillStatusConverted=Платена (готова за окончателна фактура)
BillStatusCanceled=Изоставена
BillStatusValidated=Валидирана (трябва да се плати)
BillStatusStarted=Започната
BillStatusNotPaid=Неплатена
BillStatusNotRefunded=Not refunded
BillStatusClosedUnpaid=Затворена (неплатена)
BillStatusClosedPaidPartially=Платена (частично)
BillShortStatusDraft=Чернова
BillShortStatusPaid=Платена
BillShortStatusPaidBackOrConverted=Обработена
BillShortStatusPaidBackOrConverted=Refund or converted
BillShortStatusConverted=Обработена
BillShortStatusCanceled=Изоставена
BillShortStatusValidated=Валидирана
BillShortStatusStarted=Започната
BillShortStatusNotPaid=Неплатена
BillShortStatusNotRefunded=Not refunded
BillShortStatusClosedUnpaid=Затворена
BillShortStatusClosedPaidPartially=Платена (частично)
PaymentStatusToValidShort=За валидиране
@ -203,7 +205,7 @@ AlreadyPaidNoCreditNotesNoDeposits=Вече е платена (без креди
Abandoned=Изоставен
RemainderToPay=Неплатен остатък
RemainderToTake=Остатъчна сума за взимане
RemainderToPayBack=Остатъчна сума за за обратно плащане
RemainderToPayBack=Remaining amount to refund
Rest=Чакаща
AmountExpected=Претендирана сума
ExcessReceived=Получено превишение
@ -333,8 +335,8 @@ DateIsNotEnough=Date not reached yet
InvoiceGeneratedFromTemplate=Invoice %s generated from recurring template invoice %s
# PaymentConditions
Statut=Състояние
PaymentConditionShortRECEP=Веднага
PaymentConditionRECEP=Веднага
PaymentConditionShortRECEP=Due Upon Receipt
PaymentConditionRECEP=Due Upon Receipt
PaymentConditionShort30D=30 дни
PaymentCondition30D=30 дни
PaymentConditionShort30DENDMONTH=30 days of month-end

View File

@ -25,7 +25,7 @@ Difference=Разлика
TotalTicket=Общо билет
NoVAT=Без ДДС за тази продажба
Change=Превишение получи
BankToPay=Банкова сметка
BankToPay=Account for payment
ShowCompany=Покажи фирмата
ShowStock=Покажи склад
DeleteArticle=Кликнете, за да се премахне тази статия

View File

@ -78,6 +78,9 @@ VATIsNotUsed=ДДС не се използва
CopyAddressFromSoc=Fill address with third party address
ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects
PaymentBankAccount=Payment bank account
OverAllProposals=Total proposals
OverAllOrders=Total orders
OverAllInvoices=Total invoices
##### Local Taxes #####
LocalTax1IsUsed=Използване на втора такса
LocalTax1IsUsedES= RE се използва
@ -239,6 +242,10 @@ ProfId3RU=Prof Id 3 (KPP)
ProfId4RU=Prof Id 4 (OKPO)
ProfId5RU=-
ProfId6RU=-
ProfId1DZ=RC
ProfId2DZ=Art.
ProfId3DZ=NIF
ProfId4DZ=NIS
VATIntra=Номер по ДДС
VATIntraShort=ДДС номер
VATIntraSyntaxIsValid=Синтаксиса е валиден
@ -384,6 +391,7 @@ LastModifiedThirdParties=Latest %s modified third parties
UniqueThirdParties=Общо уникални контрагенти
InActivity=Отворен
ActivityCeased=Затворен
ThirdPartyIsClosed=Third party is closed
ProductsIntoElements=Списък на продуктите/услугите в %s
CurrentOutstandingBill=Текуща висяща сметка
OutstandingBill=Макс. за висяща сметка

View File

@ -194,7 +194,7 @@ CloneTax=Clone a social/fiscal tax
ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
CloneTaxForNextMonth=Клониране за следващ месец
SimpleReport=Simple report
AddExtraReport=Extra reports
AddExtraReport=Extra reports (add foreign and national customer report)
OtherCountriesCustomersReport=Foreign customers report
BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Based on the two first letters of the VAT number being different from your own company's country code
SameCountryCustomersWithVAT=National customers report

View File

@ -170,14 +170,17 @@ ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
ErrorFileMustHaveFormat=File must have format %s
ErrorSupplierCountryIsNotDefined=Не е определено на страната на доставчика. Корекция на щепсела.
ErrorsThirdpartyMerge=Failed to merge the two records. Request canceled.
ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enougth for product %s to add it into a new order.
ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enougth for product %s to add it into a new invoice.
ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enougth for product %s to add it into a new shipment.
ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enougth for product %s to add it into a new proposal.
ErrorFailedToLoadLoginFileForMode=Failed to get the login file for mode '%s'.
ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enough for product %s to add it into a new order.
ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enough for product %s to add it into a new invoice.
ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s to add it into a new shipment.
ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal.
ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'.
ErrorModuleNotFound=File of module was not found.
ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s
ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s
ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information.
ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed.
ErrorTaskAlreadyAssigned=Task already assigned to user
# Warnings
WarningPasswordSetWithNoAccount=Парола е зададено за този член. Обаче, няма създаден потребителски акаунт. Следователно тази парола е записана, но не може да бъде използвана за влизане в Dolibarr. Може да бъде използвана от външен модул/интерфейс, но ако нямате нужда да определите нито потребителско име нито парола за член, можете да деактивирате тази опция. Ако имате нужда да управлявате потребителско име, но нямата нужда от парола, можете да оставите това поле празно, за да избегнете това предупреждение. Забележка: Имейл също може да бъде използван като потребителско име ако члена с свързан към потребител.

View File

@ -110,7 +110,7 @@ Enclosure=Enclosure
SpecialCode=Специален код
ExportStringFilter=%% позволява заместването на един или повече знаци в текста
ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day<br>YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days<br> > YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days<br> < YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days
ExportNumericFilter='NNNNN' filters by one value<br>'NNNNN+NNNNN' filters over a range of values<br>'&gt;NNNNN' filters by lower values<br>'&gt;NNNNN' filters by higher values
ExportNumericFilter=NNNNN filters by one value<br>NNNNN+NNNNN filters over a range of values<br>< NNNNN filters by lower values<br>> NNNNN filters by higher values
ImportFromLine=Import starting from line number
EndAtLineNb=End at line number
SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines
@ -120,3 +120,8 @@ SelectFilterFields=Ако желаете на филтрирате по няко
FilteredFields=Филтрирани полета
FilteredFieldsValues=Стойност за филтер
FormatControlRule=Правило за контролиране на формата
## imports updates
KeysToUseForUpdates=Key to use for updating data
NbInsert=Number of inserted lines: %s
NbUpdate=Number of updated lines: %s
MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s

View File

@ -78,6 +78,7 @@ ManualUpdate=Ръчна акуализация
HolidaysCancelation=Отказване на молба за отпуск
EmployeeLastname=Employee lastname
EmployeeFirstname=Employee firstname
TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
## Configuration du Module ##
LastUpdateCP=Latest automatic update of leaves allocation

View File

@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Намеса %s изтрита
InterventionsArea=Зона Намеси
DraftFichinter=Чернови намеси
LastModifiedInterventions=Latest %s modified interventions
FichinterToProcess=Interventions to process
##### Types de contacts #####
TypeContact_fichinter_external_CUSTOMER=Проследяване на контакт с клиентите
# Modele numérotation

View File

@ -12,6 +12,7 @@ Language_de_DE=Немски
Language_de_AT=Немски (Австрия)
Language_de_CH=Германски (Шверцария)
Language_el_GR=Гръцки
Language_el_CY=Greek (Cyprus)
Language_en_AU=English (Австралия)
Language_en_CA=Английски (Канада)
Language_en_GB=English (United Kingdom)
@ -26,8 +27,10 @@ Language_es_BO=Испански (Боливия)
Language_es_CL=Испански (Чили)
Language_es_CO=Испански (Колумбия)
Language_es_DO=Испански (Чили)
Language_es_EC=Spanish (Ecuador)
Language_es_HN=Испански (Хондурас)
Language_es_MX=Испански (Мексико)
Language_es_PA=Spanish (Panama)
Language_es_PY=Испански (Парагвай)
Language_es_PE=Испански (Перу)
Language_es_PR=Испански (Пуерто Рико)
@ -50,12 +53,14 @@ Language_is_IS=Исландски
Language_it_IT=Италиански
Language_ja_JP=Японски
Language_ka_GE=Грузински
Language_km_KH=Khmer
Language_kn_IN=Каннада
Language_ko_KR=Корейски
Language_lo_LA=Лаоски
Language_lt_LT=Литовски
Language_lv_LV=Латвийски
Language_mk_MK=Македонски
Language_mn_MN=Mongolian
Language_nb_NO=Норвежки език (книжовен)
Language_nl_BE=Холандски (Белгия)
Language_nl_NL=Холандски (Холандия)

View File

@ -43,6 +43,7 @@ LoanCalcDesc=This <b>mortgage calculator</b> can be used to figure out monthly p
GoToInterest=%s ще върви към ЛИХВАТА
GoToPrincipal=%s ще върви към ГЛАВНИЦАТА
YouWillSpend=You will spend %s in year %s
ListLoanAssociatedProject=List of loan associated with the project
# Admin
ConfigLoan=Конфигурация на модула заем
LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default

View File

@ -35,7 +35,7 @@ MailingStatusSentPartialy=Изпратени partialy
MailingStatusSentCompletely=Изпратени напълно
MailingStatusError=Грешка
MailingStatusNotSent=Не е изпратено
MailSuccessfulySent=Имейл-а е изпратен успешно (от %s за %s)
MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s)
MailingSuccessfullyValidated=Имейл валидирани
MailUnsubcribe=Отписване
MailingStatusNotContact=Не се свържете с повече
@ -74,6 +74,7 @@ ResultOfMailSending=Резултат от масово изпращане на
NbSelected=Nb selected
NbIgnored=Nb ignored
NbSent=Nb sent
ContactsWithThirdpartyFilter=Contact with customer filters
# Libelle des modules de liste de destinataires mailing
LineInFile=Line %s във файла
@ -87,9 +88,10 @@ MailNoChangePossible=Получатели на за валидирани еле
SearchAMailing=Търсене пощенски
SendMailing=Изпращане на имейл
SendMail=Изпращане на имейл
MailingNeedCommand=Поради причини свързани със сигурността, изпращането на електронна поща е по-добро, когато е извършено от командния ред. Ако имате такъв, помолете вашия сървърен администратор да зареди следната команда за изпращане на електронната поща до всички получатели:
SentBy=Изпратено от
MailingNeedCommand=Sending an emailing can be performed from command line. Ask your server administrator to launch the following command to send the emailing to all recipients:
MailingNeedCommand2=Все пак можете да ги изпратите онлайн чрез добавяне на параметър MAILING_LIMIT_SENDBYWEB със стойност на максимален брой на имейлите, които искате да изпратите от сесията. За това, отидете на дома - Setup - Други.
ConfirmSendingEmailing=If you can't or prefer sending them with your www browser, please confirm you are sure you want to send emailing now from your browser?
ConfirmSendingEmailing=If you want to send emailing directly from this screen, please confirm you are sure you want to send emailing now from your browser ?
LimitSendingEmailing=Забележка: Изпращането на електронна поща от уеб интерфейса е извършено на няколко пъти поради таймаутове и причини свързани със сигурността, <b>%s</b> получатели на веднъж за всяка сесия.
TargetsReset=Изчисти списъка
ToClearAllRecipientsClickHere=Щракнете тук, за да изчистите списъка на получателите за този електронната поща

View File

@ -63,6 +63,7 @@ ErrorNoVATRateDefinedForSellerCountry=Грешка, за държавата '%s'
ErrorNoSocialContributionForSellerCountry=Грешка, за държава '%s' няма дефинирани ставки за социални осигуровки.
ErrorFailedToSaveFile=Грешка, неуспешно записване на файл.
ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
MaxNbOfRecordPerPage=Max nb of record per page
NotAuthorized=Не сте упълномощен да правите това.
SetDate=Настройка на дата
SelectDate=Изберете дата
@ -460,6 +461,7 @@ DeletePicture=Изтрий снимка
ConfirmDeletePicture=Потвърди изтриване на снимка?
Login=Потребител
CurrentLogin=Текущ потребител
EnterLoginDetail=Enter login details
January=Януари
February=Февруари
March=Март
@ -753,6 +755,7 @@ RemoveString=Remove string '%s'
SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">http://transifex.com/projects/p/dolibarr/</a>.
DirectDownloadLink=Direct download link
Download=Download
ActualizeCurrency=Update currency rate
# Week day
Monday=Понеделник
Tuesday=Вторник
@ -787,8 +790,8 @@ SetRef=Задай код
Select2ResultFoundUseArrows=Some results found. Use arrows to select.
Select2NotFound=Няма намерени резултати
Select2Enter=Въвеждане
Select2MoreCharacter=or more character
Select2MoreCharacters=или повече знаци
Select2MoreCharacter=or more characters<br /><br /><strong>Search syntax:</strong><br /><kbd><strong> |</strong></kbd><kbd> OR</kbd> (a|b)<br /><kbd><strong>*</strong></kbd><kbd> Any character</kbd> (a*b)<br /><kbd><strong>^</strong></kbd><kbd> Start with</kbd> (^ab)<br /><kbd><strong>$</strong></kbd><kbd> End with</kbd> (ab$)<br />
Select2MoreCharacters=or more characters<br /><br /><strong>Search syntax:</strong><br /><kbd><strong> |</strong></kbd><kbd> OR</kbd> (a|b)<br /><kbd><strong>*</strong></kbd><kbd> Any character</kbd> (a*b)<br /><kbd><strong>^</strong></kbd><kbd> Start with</kbd> (^ab)<br /><kbd><strong>$</strong></kbd><kbd> End with</kbd> (ab$)<br />
Select2LoadingMoreResults=Зараждане на повече резултати...
Select2SearchInProgress=Търсене в ход...
SearchIntoThirdparties=Трети лица

View File

@ -45,7 +45,7 @@ MemberStatusDraft=Кандидат (трябва да бъде приет)
MemberStatusDraftShort=Кандидат
MemberStatusActive=Приет (изчаква се плащане на чл. внос)
MemberStatusActiveShort=Приет
MemberStatusActiveLate=Има неплатени вноски
MemberStatusActiveLate=Subscription expired
MemberStatusActiveLateShort=Неплатен чл. внос
MemberStatusPaid=Платен чл. внос
MemberStatusPaidShort=Платен чл. внос

View File

@ -2,16 +2,20 @@
ConfigOAuth=Oauth Configuration
OAuthServices=OAuth services
ManualTokenGeneration=Manual token generation
TokenManager=Token manager
IsTokenGenerated=Is token generated ?
NoAccessToken=No access token saved into local database
HasAccessToken=A token was generated and saved into local database
NewTokenStored=Token received ans saved
ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider
NewTokenStored=Token received and saved
ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider
TokenDeleted=Token deleted
RequestAccess=Click here to request/renew access and receive a new token to save
DeleteAccess=Click here to delete token
UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider:
ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication.
TOKEN_ACCESS=
OAuthSetupForLogin=Page to generate an OAuth token
SeePreviousTab=See previous tab
OAuthIDSecret=OAuth ID and Secret
TOKEN_REFRESH=Token Refresh Present
TOKEN_EXPIRED=Token expired
TOKEN_EXPIRE_AT=Token expire at

View File

@ -2,6 +2,7 @@
SecurityCode=Код за сигурност
NumberingShort=N°
Tools=Инструменти
TMenuTools=Инструменти
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=Рожден ден
BirthdayDate=Birthday date

View File

@ -46,6 +46,6 @@ IPP_Media=Носител за принтиране
IPP_Supported=Тип на носител
DirectPrintingJobsDesc=This page lists printing jobs found for available printers.
GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret.
GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth.
PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print.
PrintTestDescprintgcp=List of Printers for Google Cloud Print.
GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth.
PrintingDriverDescprintgcp=Конфигурационни променливи за драйвера за принтиране Google Cloud Print.
PrintTestDescprintgcp=Списък на Принтери за Google Cloud Print.

View File

@ -5,6 +5,8 @@ ProductLabelTranslated=Преведен продуктов етикет
ProductDescriptionTranslated=Преведено продуктово описание
ProductNoteTranslated=Преведена продуктова бележка
ProductServiceCard=Карта на продукти/услуги
TMenuProducts=Продукти
TMenuServices=Услуги
Products=Продукти
Services=Услуги
Product=Продукт

View File

@ -58,6 +58,7 @@ TaskDateEnd=Крайна дата на задача
TaskDescription=Описание на задача
NewTask=Нова задача
AddTask=Създаване на задача
AddTimeSpent=Create time spent
Activity=Дейност
Activities=Задачите / дейностите
MyActivities=Моите задачи / дейности

View File

@ -140,3 +140,4 @@ ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock cor
ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock correctly updated
ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted
AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock
AddStockLocationLine=Decrease quantity then click to add another warehouse for this product

View File

@ -21,7 +21,17 @@ ListToApprove=Очаква одобрение
ExpensesArea=Зона Доклади за разходи
ClassifyRefunded=Класифициране като 'Рефинансиран'
ExpenseReportWaitingForApproval=Нов доклад за разходи е бил изпратен за одобрение
ExpenseReportWaitingForApprovalMessage=Нов доклад за разходи е бил изпратен и очаква одобрение.\n- Потребител: %s\n- Период: %s\nКликнете тук за валидиране: %s
ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s
ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval
ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s
ExpenseReportApproved=An expense report was approved
ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s
ExpenseReportRefused=An expense report was refused
ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s
ExpenseReportCanceled=An expense report was canceled
ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s
ExpenseReportPaid=An expense report was paid
ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s
TripId=Id на доклад за разходи
AnyOtherInThisListCanValidate=Лице за информиране при валидация.
TripSociete=Информация компания
@ -59,31 +69,23 @@ DATE_REFUS=Дата на отхвърляне
DATE_SAVE=Дата на валидиране
DATE_CANCEL=Дата на отказване
DATE_PAIEMENT=Дата на плащане
BROUILLONNER=Отваряне отново
ValidateAndSubmit=Валидиране и изпращане за одобрение
ValidatedWaitingApproval=Валидиран (очаква одобрение)
NOT_AUTHOR=Не сте автор на този доклад за разходи. Операцията е отказана.
ConfirmRefuseTrip=Are you sure you want to deny this expense report?
ValideTrip=Одобрение на доклад за разходи
ConfirmValideTrip=Are you sure you want to approve this expense report?
PaidTrip=Плащане на доклад за разходи
ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"?
ConfirmCancelTrip=Are you sure you want to cancel this expense report?
BrouillonnerTrip=Преместване обратно на доклад за разходи със статус "Чернова"
ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"?
SaveTrip=Валидиране на доклад за разходи
ConfirmSaveTrip=Are you sure you want to validate this expense report?
NoTripsToExportCSV=Няма доклад за разходи за експортиране за този период.
ExpenseReportPayment=Плащане на доклад за разходи
ExpenseReportsToApprove=Expense reports to approve
ExpenseReportsToPay=Доклади за разходи за плащане
CloneExpenseReport=Clone expese report
ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ?

View File

@ -10,6 +10,9 @@ VersionUnknown=Unknown
VersionRecommanded=Recommended
FileCheck=Files integrity checker
FileCheckDesc=This tool allows you to check the integrity of files of your application, comparing each files with the official ones. You can use this tool to detect if some files were modified by a hacker for example.
FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified of removed.
GlobalChecksum=Global checksum
MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
LocalSignature=Embedded local signature (less reliable)
RemoteSignature=Remote distant signature (more reliable)
@ -276,7 +279,7 @@ ModuleFamilyInterface=Interfaces with external systems
MenuHandlers=Menu handlers
MenuAdmin=Menu editor
DoNotUseInProduction=Do not use in production
ThisIsProcessToFollow=This is setup to process:
ThisIsProcessToFollow=This is steps to process:
ThisIsAlternativeProcessToFollow=This is an alternative setup to process:
StepNb=Step %s
FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s).
@ -411,6 +414,7 @@ ModuleCompanyCodePanicum=Return an empty accountancy code.
ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
# Modules
Module0Name=Users & groups
@ -515,8 +519,8 @@ Module2200Name=Dynamic Prices
Module2200Desc=Enable the usage of math expressions for prices
Module2300Name=Cron
Module2300Desc=Scheduled job management
Module2400Name=Agenda/Events
Module2400Desc=Follow events or rendez-vous. Record manual events into Agendas or let application logs automatic events for tracking purposes.
Module2400Name=Events/Agenda
Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous.
Module2500Name=Electronic Content Management
Module2500Desc=Save and share documents
Module2600Name=API/Web services (SOAP server)
@ -582,7 +586,7 @@ Permission34=Delete products
Permission36=See/manage hidden products
Permission38=Export products
Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet)
Permission42=Create/modify projects (shared project and projects i'm contact for)
Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
Permission44=Delete projects (shared project and projects i'm contact for)
Permission45=Export projects
Permission61=Read interventions
@ -685,7 +689,7 @@ PermissionAdvanced253=Create/modify internal/external users and permissions
Permission254=Create/modify external users only
Permission255=Modify other users password
Permission256=Delete or disable other users
Permission262=Extend access to all third parties (not only those linked to user). Not effective for external users (always limited to themselves).
Permission262=Extend access to all third parties (not only third parties that user is a sale representative). Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc). Not effective for projects (only rules on project permissions, visibility and assignement matters).
Permission271=Read CA
Permission272=Read invoices
Permission273=Issue invoices
@ -994,7 +998,7 @@ TriggerAlwaysActive=Triggers in this file are always active, whatever are the ac
TriggerActiveAsModuleActive=Triggers in this file are active as module <b>%s</b> is enabled.
GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password
DictionaryDesc=Insert all reference data. You can add your values to the default.
ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting.
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. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
MiscellaneousDesc=All other security related parameters are defined here.
LimitsSetup=Limits/Precision setup
LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
@ -1471,6 +1475,8 @@ AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of e
AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question)
AGENDA_NOTIFICATION_SOUND=Enable sound notification
##### ClickToDial #####
ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
@ -1571,7 +1577,7 @@ BackupDumpWizard=Wizard to build database backup dump file
SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason:
SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do.
InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file <strong>%s</strong> to allow this feature.
ConfFileMuseContainCustom=Installing an external module from application save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to have option<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to have option<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
TextTitleColor=Color of page title
@ -1614,8 +1620,8 @@ ByDefaultInList=Show by default on list view
YouUseLastStableVersion=You use the last stable version
TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of http://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of http://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
ModelModulesProduct=Templates for product documents
ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.

View File

@ -2,6 +2,7 @@
IdAgenda=ID event
Actions=Events
Agenda=Agenda
TMenuAgenda=Agenda
Agendas=Agendas
LocalAgenda=Internal calendar
ActionsOwnedBy=Event owned by

View File

@ -113,22 +113,24 @@ BillStatus=Invoice status
StatusOfGeneratedInvoices=Status of generated invoices
BillStatusDraft=Draft (needs to be validated)
BillStatusPaid=Paid
BillStatusPaidBackOrConverted=Paid or converted into discount
BillStatusPaidBackOrConverted=Refund or converted into discount
BillStatusConverted=Paid (ready for final invoice)
BillStatusCanceled=Abandoned
BillStatusValidated=Validated (needs to be paid)
BillStatusStarted=Started
BillStatusNotPaid=Not paid
BillStatusNotRefunded=Not refunded
BillStatusClosedUnpaid=Closed (unpaid)
BillStatusClosedPaidPartially=Paid (partially)
BillShortStatusDraft=Draft
BillShortStatusPaid=Paid
BillShortStatusPaidBackOrConverted=Processed
BillShortStatusPaidBackOrConverted=Refund or converted
BillShortStatusConverted=Processed
BillShortStatusCanceled=Abandoned
BillShortStatusValidated=Validated
BillShortStatusStarted=Started
BillShortStatusNotPaid=Not paid
BillShortStatusNotRefunded=Not refunded
BillShortStatusClosedUnpaid=Closed
BillShortStatusClosedPaidPartially=Paid (partially)
PaymentStatusToValidShort=To validate
@ -203,7 +205,7 @@ AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and deposi
Abandoned=Abandoned
RemainderToPay=Remaining unpaid
RemainderToTake=Remaining amount to take
RemainderToPayBack=Remaining amount to pay back
RemainderToPayBack=Remaining amount to refund
Rest=Pending
AmountExpected=Amount claimed
ExcessReceived=Excess received
@ -333,8 +335,8 @@ DateIsNotEnough=Date not reached yet
InvoiceGeneratedFromTemplate=Invoice %s generated from recurring template invoice %s
# PaymentConditions
Statut=Status
PaymentConditionShortRECEP=Immediate
PaymentConditionRECEP=Immediate
PaymentConditionShortRECEP=Due Upon Receipt
PaymentConditionRECEP=Due Upon Receipt
PaymentConditionShort30D=30 days
PaymentCondition30D=30 days
PaymentConditionShort30DENDMONTH=30 days of month-end

View File

@ -25,7 +25,7 @@ Difference=Difference
TotalTicket=Total ticket
NoVAT=No VAT for this sale
Change=Excess received
BankToPay=Charge Account
BankToPay=Account for payment
ShowCompany=Show company
ShowStock=Show warehouse
DeleteArticle=Click to remove this article

View File

@ -78,6 +78,9 @@ VATIsNotUsed=VAT is not used
CopyAddressFromSoc=Fill address with third party address
ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects
PaymentBankAccount=Payment bank account
OverAllProposals=Total proposals
OverAllOrders=Total orders
OverAllInvoices=Total invoices
##### Local Taxes #####
LocalTax1IsUsed=Use second tax
LocalTax1IsUsedES= RE is used
@ -239,6 +242,10 @@ ProfId3RU=Prof Id 3 (KPP)
ProfId4RU=Prof Id 4 (OKPO)
ProfId5RU=-
ProfId6RU=-
ProfId1DZ=RC
ProfId2DZ=Art.
ProfId3DZ=NIF
ProfId4DZ=NIS
VATIntra=VAT number
VATIntraShort=VAT number
VATIntraSyntaxIsValid=Syntax is valid
@ -384,6 +391,7 @@ LastModifiedThirdParties=Latest %s modified third parties
UniqueThirdParties=Total of unique third parties
InActivity=Open
ActivityCeased=Closed
ThirdPartyIsClosed=Third party is closed
ProductsIntoElements=List of products/services into %s
CurrentOutstandingBill=Current outstanding bill
OutstandingBill=Max. for outstanding bill

View File

@ -194,7 +194,7 @@ CloneTax=Clone a social/fiscal tax
ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
CloneTaxForNextMonth=Clone it for next month
SimpleReport=Simple report
AddExtraReport=Extra reports
AddExtraReport=Extra reports (add foreign and national customer report)
OtherCountriesCustomersReport=Foreign customers report
BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Based on the two first letters of the VAT number being different from your own company's country code
SameCountryCustomersWithVAT=National customers report

View File

@ -170,14 +170,17 @@ ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
ErrorFileMustHaveFormat=File must have format %s
ErrorSupplierCountryIsNotDefined=Country for this supplier is not defined. Correct this first.
ErrorsThirdpartyMerge=Failed to merge the two records. Request canceled.
ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enougth for product %s to add it into a new order.
ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enougth for product %s to add it into a new invoice.
ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enougth for product %s to add it into a new shipment.
ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enougth for product %s to add it into a new proposal.
ErrorFailedToLoadLoginFileForMode=Failed to get the login file for mode '%s'.
ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enough for product %s to add it into a new order.
ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enough for product %s to add it into a new invoice.
ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s to add it into a new shipment.
ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal.
ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'.
ErrorModuleNotFound=File of module was not found.
ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s
ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s
ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information.
ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed.
ErrorTaskAlreadyAssigned=Task already assigned to user
# Warnings
WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.

View File

@ -110,7 +110,7 @@ Enclosure=Enclosure
SpecialCode=Special code
ExportStringFilter=%% allows replacing one or more characters in the text
ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day<br>YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days<br> > YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days<br> < YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days
ExportNumericFilter='NNNNN' filters by one value<br>'NNNNN+NNNNN' filters over a range of values<br>'&gt;NNNNN' filters by lower values<br>'&gt;NNNNN' filters by higher values
ExportNumericFilter=NNNNN filters by one value<br>NNNNN+NNNNN filters over a range of values<br>< NNNNN filters by lower values<br>> NNNNN filters by higher values
ImportFromLine=Import starting from line number
EndAtLineNb=End at line number
SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines
@ -120,3 +120,8 @@ SelectFilterFields=If you want to filter on some values, just input values here.
FilteredFields=Filtered fields
FilteredFieldsValues=Value for filter
FormatControlRule=Format control rule
## imports updates
KeysToUseForUpdates=Key to use for updating data
NbInsert=Number of inserted lines: %s
NbUpdate=Number of updated lines: %s
MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s

View File

@ -78,6 +78,7 @@ ManualUpdate=Manual update
HolidaysCancelation=Leave request cancelation
EmployeeLastname=Employee lastname
EmployeeFirstname=Employee firstname
TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
## Configuration du Module ##
LastUpdateCP=Latest automatic update of leaves allocation

View File

@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted
InterventionsArea=Interventions area
DraftFichinter=Draft interventions
LastModifiedInterventions=Latest %s modified interventions
FichinterToProcess=Interventions to process
##### Types de contacts #####
TypeContact_fichinter_external_CUSTOMER=Following-up customer contact
# Modele numérotation

View File

@ -12,6 +12,7 @@ Language_de_DE=German
Language_de_AT=German (Austria)
Language_de_CH=German (Switzerland)
Language_el_GR=Greek
Language_el_CY=Greek (Cyprus)
Language_en_AU=English (Australia)
Language_en_CA=English (Canada)
Language_en_GB=English (United Kingdom)
@ -26,8 +27,10 @@ Language_es_BO=Spanish (Bolivia)
Language_es_CL=Spanish (Chile)
Language_es_CO=Spanish (Colombia)
Language_es_DO=Spanish (Dominican Republic)
Language_es_EC=Spanish (Ecuador)
Language_es_HN=Spanish (Honduras)
Language_es_MX=Spanish (Mexico)
Language_es_PA=Spanish (Panama)
Language_es_PY=Spanish (Paraguay)
Language_es_PE=Spanish (Peru)
Language_es_PR=Spanish (Puerto Rico)
@ -50,12 +53,14 @@ Language_is_IS=Icelandic
Language_it_IT=Italian
Language_ja_JP=Japanese
Language_ka_GE=Georgian
Language_km_KH=Khmer
Language_kn_IN=Kannada
Language_ko_KR=Korean
Language_lo_LA=Lao
Language_lt_LT=Lithuanian
Language_lv_LV=Latvian
Language_mk_MK=Macedonian
Language_mn_MN=Mongolian
Language_nb_NO=Norwegian (Bokmål)
Language_nl_BE=Dutch (Belgium)
Language_nl_NL=Dutch (Netherlands)

View File

@ -43,6 +43,7 @@ LoanCalcDesc=This <b>mortgage calculator</b> can be used to figure out monthly p
GoToInterest=%s will go towards INTEREST
GoToPrincipal=%s will go towards PRINCIPAL
YouWillSpend=You will spend %s in year %s
ListLoanAssociatedProject=List of loan associated with the project
# Admin
ConfigLoan=Configuration of the module loan
LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default

Some files were not shown because too many files have changed in this diff Show More