Merge remote-tracking branch 'upstream/develop' into correctstockbatch

This commit is contained in:
Frédéric FRANCE 2022-08-16 10:54:10 +02:00
commit 590cd657df
727 changed files with 12403 additions and 9228 deletions

3
.gitignore vendored
View File

@ -42,6 +42,8 @@ htdocs/includes/sebastian/
htdocs/includes/squizlabs/
htdocs/includes/webmozart/
htdocs/.well-known/apple-developer-merchantid-domain-association
/factory/
/output/
# Node Modules
build/yarn-error.log
@ -55,4 +57,3 @@ yarn.lock
package-lock.json
doc/install.lock
/factory/

View File

@ -141,7 +141,7 @@ NEW: Added MMK currency (Myanmar Kyat)
Modules
NEW: Module Partnership Management
NEW: Experimental Module Event Organization Management
NEW: Module Event Organization Management
For developers or integrators:

View File

@ -1,4 +1,6 @@
#!/bin/bash
# Script used by the Dockerfile.
# See README.md to know how to create a Dolibarr env with docker
usermod -u ${HOST_USER_ID} www-data
groupmod -g ${HOST_USER_ID} www-data

View File

@ -4,4 +4,5 @@ terms
(en) VAT = Value Added Tax
(fr) TVA = Taxe sur la Valeur Ajouté
(es) NIF / CIF
(de) USt / MwSt
(de) USt / MwSt = UmsatzSteuer / Mehrwertsteuer
(it) IVA

View File

@ -0,0 +1,10 @@
VAT Rates
---------
https://www.taxrates.cc/index.html
https://en.wikipedia.org/wiki/List_of_countries_by_tax_rates
For India: VAT=IGST / CGST=Localtax1 / SGST=Localtax2
see:
https://cleartax.in/s/what-is-sgst-cgst-igst
https://www.mastersindia.co/blog/what-is-cgst-sgst-igst-and-ugst/

View File

@ -1,8 +0,0 @@
VAT Rates
---------
http://www.taxrates.cc/index.html
https://en.wikipedia.org/wiki/List_of_countries_by_tax_rates
For India: VAT=IGST/CGST=Localtax1/SGST=Localtax2: https://cleartax.in/s/what-is-sgst-cgst-igst

View File

@ -10,6 +10,7 @@
# Syntax
if [ "x$1" != "xlist" -a "x$1" != "xfix" ]
then
echo "Detect .sh and .spec files that does not contains any tab inside"
echo "Usage: fixnotabfiles.sh [list|fix]"
fi

View File

@ -17,14 +17,14 @@ fi
# To detec
if [ "x$1" = "xlist" ]
then
find . \( -iname "functions" -o -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" -o -iname "*.pml" \) -exec file "{}" + | grep -v 'custom\/' | grep -v 'documents\/website' | grep -v 'documents\/medias' | grep -v 'documents\/sellyoursaas' | grep CRLF
# find . \( -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" \) -exec file "{}" + | grep -v 'custom\/' | grep -v 'documents\/website' | grep -v 'documents\/medias' | grep -v 'documents\/sellyoursaas' | grep -v 'htdocs\/includes' | grep CRLF
find . \( -iname "functions" -o -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" -o -iname "*.pml" \) -exec file "{}" + | grep -v "CRLF" | grep -v 'custom\/' | grep -v 'documents\/website' | grep -v 'documents\/medias' | grep -v 'documents\/sellyoursaas' | grep CRLF
# find . \( -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" \) -exec file "{}" + | grep -v "CRLF" | grep -v 'custom\/' | grep -v 'documents\/website' | grep -v 'documents\/medias' | grep -v 'documents\/sellyoursaas' | grep -v 'htdocs\/includes' | grep CRLF
fi
# To convert
if [ "x$1" = "xfix" ]
then
for fic in `find . \( -iname "functions" -o -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" -o -iname "*.pml" \) -exec file "{}" + | grep -v 'custom\/' | grep -v 'documents\/website' | grep -v 'documents\/medias' | grep -v 'documents\/sellyoursaas' | grep CRLF | awk -F':' '{ print $1 }' `
for fic in `find . \( -iname "functions" -o -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" -o -iname "*.pml" \) -exec file "{}" + | grep -v "CRLF" | grep -v 'custom\/' | grep -v 'documents\/website' | grep -v 'documents\/medias' | grep -v 'documents\/sellyoursaas' | grep CRLF | awk -F':' '{ print $1 }' `
do
echo "Fix file $fic"
dos2unix "$fic"

View File

@ -39,13 +39,14 @@ optimize_image()
max_input_size=$(expr $max_input_size + $input_file_size)
if [ "${1##*.}" = "png" ]; then
#optipng -o1 -clobber -quiet $1 -out $2.firstpass
optipng -o1 -quiet $1 -out $2.firstpass
pngcrush -q -rem alla -reduce $2.firstpass $2 >/dev/null
rm -fr $2.firstpass
#optipng -o1 -clobber -quiet "$1" -out "$2.firstpass"
echo optipng -o1 -quiet "$1" -out "$2.firstpass"
optipng -o1 -quiet "$1" -out "$2.firstpass"
pngcrush -q -rem alla -reduce "$2.firstpass" "$2" >/dev/null
rm -fr "$2.firstpass"
fi
if [ "${1##*.}" = "jpg" -o "${1##*.}" = "jpeg" ]; then
jpegtran -copy none -progressive $1 > $2
jpegtran -copy none -progressive "$1" > $2
fi
output_file_size=$(stat -c%s "$2")
@ -120,8 +121,8 @@ main()
# Search of all jpg/jpeg/png in $INPUT
# We remove images from $OUTPUT if $OUTPUT is a subdirectory of $INPUT
echo "Scan $INPUT to find images"
IMAGES=$(find $INPUT -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v $OUTPUT)
echo "Scan $INPUT to find images with find $INPUT -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v '/gource/' | grep -v '/includes/' | grep -v '/custom/' | grep -v $OUTPUT"
IMAGES=$(find $INPUT -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v '/gource/' | grep -v '/includes/' | grep -v '/custom/' | grep -v '/documents/' | grep -v $OUTPUT)
if [ "$QUIET" == "0" ]; then
echo --- Optimizing $INPUT ---
@ -135,11 +136,11 @@ main()
printf '%*.*s' 0 $((linelength - ${#filename} - ${#sDone} )) "$pad"
fi
optimize_image $CURRENT_IMAGE $OUTPUT/$filename
optimize_image "$CURRENT_IMAGE" "$OUTPUT/$filename"
# Replace file
if [[ "$INPLACE" == "1" ]]; then
mv $OUTPUT/$filename $CURRENT_IMAGE
mv "$OUTPUT/$filename" "$CURRENT_IMAGE"
fi
if [ "$QUIET" == "0" ]; then

View File

@ -52,8 +52,8 @@ $confirm = GETPOST('confirm', 'alpha');
$chartofaccounts = GETPOST('chartofaccounts', 'int');
$permissiontoadd = !empty($user->rights->accounting->chartofaccount);
$permissiontodelete = !empty($user->rights->accounting->chartofaccount);
$permissiontoadd = $user->hasRight('accounting', 'chartofaccount');
$permissiontodelete = $user->hasRight('accounting', 'chartofaccount');
// Security check
if ($user->socid > 0) {
@ -294,7 +294,7 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
}
// List of mass actions available
if ($user->rights->accounting->chartofaccount) {
if ($user->hasRight('accounting', 'chartofaccount')) {
$arrayofmassactions['predelete'] = '<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete");
}
if (in_array($massaction, array('presend', 'predelete', 'closed'))) {
@ -590,7 +590,7 @@ if ($resql) {
// Action
print '<td class="center nowraponall">';
if ($user->rights->accounting->chartofaccount) {
if ($user->hasRight('accounting', 'chartofaccount')) {
print '<a class="editfielda" href="./card.php?action=update&token='.newToken().'&id='.$obj->rowid.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?'.$param).'">';
print img_edit();
print '</a>';

View File

@ -66,7 +66,7 @@ if (GETPOST('cancel', 'alpha')) {
exit;
}
if ($action == 'add' && $user->rights->accounting->chartofaccount) {
if ($action == 'add' && $user->hasRight('accounting', 'chartofaccount')) {
if (!$cancel) {
if (!$account_number) {
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountNumber")), null, 'errors');
@ -127,7 +127,7 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) {
}
}
}
} elseif ($action == 'edit' && $user->rights->accounting->chartofaccount) {
} elseif ($action == 'edit' && $user->hasRight('accounting', 'chartofaccount')) {
if (!$cancel) {
if (!$account_number) {
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountNumber")), null, 'errors');
@ -184,7 +184,7 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) {
header("Location: ".$urltogo);
exit();
}
} elseif ($action == 'delete' && $user->rights->accounting->chartofaccount) {
} elseif ($action == 'delete' && $user->hasRight('accounting', 'chartofaccount')) {
$result = $object->fetch($id);
if (!empty($object->id)) {
@ -419,13 +419,13 @@ if ($action == 'create') {
*/
print '<div class="tabsAction">';
if (!empty($user->rights->accounting->chartofaccount)) {
if ($user->hasRight('accounting', 'chartofaccount')) {
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=update&token='.newToken().'&id='.$object->id.'">'.$langs->trans('Modify').'</a>';
} else {
print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans('Modify').'</a>';
}
if (!empty($user->rights->accounting->chartofaccount)) {
if ($user->hasRight('accounting', 'chartofaccount')) {
print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&token='.newToken().'&id='.$object->id.'">'.$langs->trans('Delete').'</a>';
} else {
print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans('Delete').'</a>';

View File

@ -121,7 +121,7 @@ if ($result) {
$i = 0;
$addbutton .= dolGetButtonTitle($langs->trans('NewFiscalYear'), '', 'fa fa-plus-circle', 'fiscalyear_card.php?action=create', '', $user->rights->accounting->fiscalyear->write);
$addbutton .= dolGetButtonTitle($langs->trans('NewFiscalYear'), '', 'fa fa-plus-circle', 'fiscalyear_card.php?action=create', '', $user->hasRight('accounting', 'fiscalyear', 'write'));
$title = $langs->trans('AccountingPeriods');

View File

@ -299,7 +299,7 @@ if ($action == 'create') {
/*
* Action bar
*/
if (!empty($user->rights->accounting->fiscalyear->write)) {
if ($user->hasRight('accounting', 'fiscalyear', 'write')) {
print '<div class="tabsAction">';
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit&token='.newToken().'&id='.$id.'">'.$langs->trans('Modify').'</a>';

View File

@ -522,7 +522,7 @@ if ($resql) {
// Filter on categories
$moreforfilter = '';
if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) {
if (!empty($conf->categorie->enabled) && $user->hasRight('categorie', 'lire')) {
$moreforfilter .= '<div class="divsearchfield">';
$moreforfilter .= img_picto($langs->trans('Categories'), 'category', 'class="pictofixedwidth"');
$categoriesProductArr = $form->select_all_categories(Categorie::TYPE_PRODUCT, '', '', 64, 0, 1);

View File

@ -281,7 +281,7 @@ class AccountingJournal extends CommonObject
}
$label_link = $this->code;
if ($withlabel) {
if ($withlabel && !empty($this->label)) {
$label_link .= ' - '.($nourl ? '<span class="opacitymedium">' : '').$langs->transnoentities($this->label).($nourl ? '</span>' : '');
}

View File

@ -75,7 +75,7 @@ if (empty($user->rights->accounting->fiscalyear->write)) {
$now = dol_now();
if ($action == 'validate_movements_confirm' && !empty($user->rights->accounting->fiscalyear->write)) {
if ($action == 'validate_movements_confirm' && $user->hasRight('accounting', 'fiscalyear', 'write')) {
$date_start = dol_mktime(0, 0, 0, GETPOST('date_startmonth', 'int'), GETPOST('date_startday', 'int'), GETPOST('date_startyear', 'int'));
$date_end = dol_mktime(23, 59, 59, GETPOST('date_endmonth', 'int'), GETPOST('date_endday', 'int'), GETPOST('date_endyear', 'int'));

View File

@ -49,7 +49,7 @@ if (empty($user->rights->accounting->mouvements->lire)) {
if (empty($conf->comptabilite->enabled) && empty($conf->accounting->enabled) && empty($conf->asset->enabled) && empty($conf->intracommreport->enabled)) {
accessforbidden();
}
if (empty($user->hasRight('compta', 'resultat', 'lire')) && empty($user->hasRight('accounting', 'comptarapport', 'lire')) && empty($user->hasRight('accounting', 'mouvements', 'lire')) && empty($user->hasRight('asset', 'read')) && empty($user->hasRight('intracommreport', 'read'))) {
if (!$user->hasRight('compta', 'resultat', 'lire') && !$user->hasRight('accounting', 'comptarapport', 'lire') && !$user->hasRight('accounting', 'mouvements', 'lire') && !$user->hasRight('asset', 'read') && !$user->hasRight('intracommreport', 'read')) {
accessforbidden();
}

View File

@ -583,9 +583,8 @@ if (empty($reshook)) {
} else {
$db->rollback();
setEventMessages($object->error, $object->errors, 'errors');
}
// Auto-create thirdparty on member creation
if (!empty($conf->global->ADHERENT_DEFAULT_CREATE_THIRDPARTY)) {
if ($result > 0) {
@ -1540,7 +1539,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
// Create form popup
$formquestion = array();
if ($object->email) {
$formquestion[] = array('type' => 'checkbox', 'name' => 'send_mail', 'label' => $label, 'value' => ($conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL ?true:false));
$formquestion[] = array('type' => 'checkbox', 'name' => 'send_mail', 'label' => $label, 'value' => (getDolGlobalString('ADHERENT_DEFAULT_SENDINFOBYMAIL') ? true : false));
}
if (!empty($conf->mailman->enabled) && !empty($conf->global->ADHERENT_USE_MAILMAN)) {
$formquestion[] = array('type'=>'other', 'label'=>$langs->transnoentitiesnoconv("SynchroMailManEnabled"), 'value'=>'');
@ -1571,7 +1570,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
$outputlangs->loadLangs(array("main", "members"));
// Get email content from template
$arraydefaultmessage = null;
$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_CANCELATION;
$labeltouse = getDolGlobalString('ADHERENT_EMAIL_TEMPLATE_CANCELATION');
if (!empty($labeltouse)) {
$arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse);

View File

@ -972,10 +972,10 @@ class Adherent extends CommonObject
}
/**
* Fonction qui supprime l'adherent et les donnees associees
* Fonction to delete a member and its data
*
* @param int $rowid Id of member to delete
* @param User $user User object
* @param User $user User object
* @param int $notrigger 1=Does not execute triggers, 0= execute triggers
* @return int <0 if KO, 0=nothing to do, >0 if OK
*/
@ -1826,7 +1826,7 @@ class Adherent extends CommonObject
if (!$error) {
// Create payment line for invoice
$paiement_id = $paiement->create($user);
if (!$paiement_id > 0) {
if (!($paiement_id > 0)) {
$this->error = $paiement->error;
$this->errors = $paiement->errors;
$error++;

View File

@ -440,6 +440,7 @@ class AdherentType extends CommonObject
/**
* Function to delete the member's status
* TODO Add param "User $user"
*
* @return int > 0 if OK, 0 if not found, < 0 if KO
*/

View File

@ -41,6 +41,7 @@ $langs->load("members");
$rowid = GETPOST('rowid', 'int');
$action = GETPOST('action', 'aZ09');
$cancel = GETPOST('cancel', 'alpha');
$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : str_replace('_', '', basename(dirname(__FILE__)).basename(__FILE__, '.php')); // To manage different context of search
$backtopage = GETPOST('backtopage', 'alpha');
$sall = GETPOST("sall", "alpha");
@ -202,7 +203,7 @@ if ($action == 'update' && $user->rights->adherent->configurer) {
exit;
}
if ($action == 'confirm_delete' && $user->rights->adherent->configurer) {
if ($action == 'confirm_delete' && !empty($user->rights->adherent->configurer)) {
$object->fetch($rowid);
$res = $object->delete();
@ -448,7 +449,7 @@ if ($rowid > 0) {
print '<div class="fichecenter">';
print '<div class="underbanner clearboth"></div>';
print '<table class="border centpercent">';
print '<table class="tableforfield border centpercent">';
// Morphy
print '<tr><td>'.$langs->trans("MembersNature").'</td><td class="valeur" >'.$object->getmorphylib($object->morphy).'</td>';
@ -682,20 +683,23 @@ if ($rowid > 0) {
print_liste_field_titre("Action", $_SERVER["PHP_SELF"], "", $param, "", 'width="60" align="center"', $sortfield, $sortorder);
print "</tr>\n";
while ($i < $num && $i < $conf->liste_limit) {
$adh = new Adherent($db);
$imaxinloop = ($limit ? min($num, $limit) : $num);
while ($i < $imaxinloop) {
$objp = $db->fetch_object($resql);
$datefin = $db->jdate($objp->datefin);
$adh = new Adherent($db);
$adh->lastname = $objp->lastname;
$adh->firstname = $objp->firstname;
$adh->datefin = $datefin;
$adh->need_subscription = $objp->subscription;
$adh->statut = $objp->status;
// Lastname
print '<tr class="oddeven">';
// Lastname
if ($objp->company != '') {
print '<td><a href="card.php?rowid='.$objp->rowid.'">'.img_object($langs->trans("ShowMember"), "user", 'class="paddingright"').$adh->getFullName($langs, 0, -1, 20).' / '.dol_trunc($objp->company, 12).'</a></td>'."\n";
} else {
@ -703,7 +707,7 @@ if ($rowid > 0) {
}
// Login
print "<td>".$objp->login."</td>\n";
print "<td>".dol_escape_htmltag($objp->login)."</td>\n";
// Type
/*print '<td class="nowrap">';
@ -760,11 +764,15 @@ if ($rowid > 0) {
$i++;
}
if ($i == 0) {
print '<tr><td colspan="7"><span class="opacitymedium">'.$langs->trans("None").'</span></td></tr>';
}
print "</table>\n";
print '</div>';
print '</form>';
if ($num > $conf->liste_limit) {
if ($num > $limit) {
print_barre_liste('', $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, '');
}
} else {

View File

@ -34,7 +34,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
// Load translation files required by the page
$langs->loadLangs(array('members', 'languages'));
$id = GETPOST('rowid', 'int');
$id = GETPOST('rowid', 'int') ? GETPOST('rowid', 'int') : GETPOST('id', 'int');
$action = GETPOST('action', 'aZ09');
$cancel = GETPOST('cancel', 'alpha');
$ref = GETPOST('ref', 'alphanohtml');
@ -61,7 +61,12 @@ if ($cancel == $langs->trans("Cancel")) {
if ($action == 'delete' && GETPOST('langtodelete', 'alpha')) {
$object = new AdherentType($db);
$object->fetch($id);
$object->delMultiLangs(GETPOST('langtodelete', 'alpha'), $user);
$result = $object->delMultiLangs(GETPOST('langtodelete', 'alpha'), $user);
if ($result > 0) {
setEventMessages($langs->trans("RecordDeleted"), null, 'mesgs');
header("Location: ".$_SERVER["PHP_SELF"].'?id='.$id);
exit;
}
}
// Add translation

View File

@ -66,7 +66,7 @@ if (preg_match('/set_(.*)/', $action, $reg)) {
$value = (GETPOST($code) ? GETPOST($code) : 1);
$res = dolibarr_set_const($db, $code, $value, 'chaine', 0, '', $conf->entity);
if (!$res > 0) {
if (!($res > 0)) {
$error++;
$errors[] = $db->lasterror();
}
@ -86,7 +86,7 @@ if (preg_match('/set_(.*)/', $action, $reg)) {
$code = $reg[1];
$res = dolibarr_del_const($db, $code, $conf->entity);
if (!$res > 0) {
if (!($res > 0)) {
$error++;
$errors[] = $db->lasterror();
}

View File

@ -142,7 +142,7 @@ if ($action == 'updateMask') {
$value = GETPOST('activate_hideClosedServiceByDefault', 'alpha');
$res3 = dolibarr_set_const($db, "CONTRACT_HIDE_CLOSED_SERVICES_BY_DEFAULT", $value, 'chaine', 0, '', $conf->entity);
if (!$res1 > 0 || !$res2 > 0 || !$res3 > 0) {
if (!($res1 > 0) || !($res2 > 0) || !($res3 > 0)) {
$error++;
}

View File

@ -90,12 +90,12 @@ print '<input type="hidden" name="action" value="set">';
print '<table class="noborder centpercent">';
print '<tr class="liste_titre">';
print '<td>'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td>';
print '<td class="right"><input type="submit" class="button button-edit" '.$option.' value="'.$langs->trans("Modify").'"></td>';
print '<td class="right"><input type="submit" class="button button-edit" value="'.$langs->trans("Modify").'"></td>';
print "</tr>\n";
print '<tr class="oddeven"><td class="nowrap">'.$langs->trans("DEBUGBAR_USE_LOG_FILE").'</td>';
print '<td>';
print $form->selectyesno('DEBUGBAR_USE_LOG_FILE', $conf->global->DEBUGBAR_USE_LOG_FILE, 1);
print $form->selectyesno('DEBUGBAR_USE_LOG_FILE', !empty($conf->global->DEBUGBAR_USE_LOG_FILE), 1);
print '</td><td>';
print '<span class="opacitymedium"> '.$langs->trans("UsingLogFileShowAllRecordOfSubrequestButIsSlower").'</span>';
print '</td></tr>';

View File

@ -228,14 +228,14 @@ if ($action == 'edit') {
if ($val['type'] == 'textarea') {
print '<textarea class="flat" name="'.$constname.'" id="'.$constname.'" cols="50" rows="5" wrap="soft">' . "\n";
print $conf->global->{$constname};
print getDolGlobalString($constname);
print "</textarea>\n";
} elseif ($val['type']== 'html') {
require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php';
$doleditor = new DolEditor($constname, $conf->global->{$constname}, '', 160, 'dolibarr_notes', '', false, false, $conf->fckeditor->enabled, ROWS_5, '90%');
$doleditor = new DolEditor($constname, getDolGlobalString($constname), '', 160, 'dolibarr_notes', '', false, false, $conf->fckeditor->enabled, ROWS_5, '90%');
$doleditor->Create();
} elseif ($val['type'] == 'yesno') {
print $form->selectyesno($constname, $conf->global->{$constname}, 1);
print $form->selectyesno($constname, getDolGlobalString($constname), 1);
} elseif (preg_match('/emailtemplate:/', $val['type'])) {
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
$formmail = new FormMail($db);
@ -255,7 +255,7 @@ if ($action == 'edit') {
$arrayofmessagename[$modelmail->id] = $langs->trans(preg_replace('/\(|\)/', '', $modelmail->label)) . $moreonlabel;
}
}
print $form->selectarray($constname, $arrayofmessagename, $conf->global->{$constname}, 'None', 0, 0, '', 0, 0, 0, '', '', 1);
print $form->selectarray($constname, $arrayofmessagename, getDolGlobalString($constname), 'None', 0, 0, '', 0, 0, 0, '', '', 1);
} elseif (preg_match('/category:/', $val['type'])) {
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
@ -263,13 +263,13 @@ if ($action == 'edit') {
$tmp = explode(':', $val['type']);
print img_picto('', 'category', 'class="pictofixedwidth"');
print $formother->select_categories($tmp[1], $conf->global->{$constname}, $constname, 0, $langs->trans('CustomersProspectsCategoriesShort'));
print $formother->select_categories($tmp[1], getDolGlobalString($constname), $constname, 0, $langs->trans('CustomersProspectsCategoriesShort'));
} elseif (preg_match('/thirdparty_type/', $val['type'])) {
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
$formcompany = new FormCompany($db);
print $formcompany->selectProspectCustomerType($conf->global->{$constname}, $constname, 'customerorprospect', 'form', '', 1);
print $formcompany->selectProspectCustomerType(getDolGlobalString($constname), $constname, 'customerorprospect', 'form', '', 1);
} elseif ($val['type'] == 'securekey') {
print '<input required="required" type="text" class="flat" id="'.$constname.'" name="'.$constname.'" value="'.(GETPOST($constname, 'alpha') ?GETPOST($constname, 'alpha') : $conf->global->{$constname}).'" size="40">';
print '<input type="text" class="flat" id="'.$constname.'" name="'.$constname.'" value="'.(GETPOST($constname, 'alpha') ?GETPOST($constname, 'alpha') : getDolGlobalString($constname)).'" size="40">';
if (!empty($conf->use_javascript_ajax)) {
print '&nbsp;'.img_picto($langs->trans('Generate'), 'refresh', 'id="generate_token'.$constname.'" class="linkobject"');
}
@ -283,7 +283,7 @@ if ($action == 'edit') {
$form->select_produits($selected, $constname, '', 0);
}
} else {
print '<input name="' . $constname . '" class="flat ' . (empty($val['css']) ? 'minwidth200' : $val['css']) . '" value="' . $conf->global->{$constname} . '">';
print '<input name="' . $constname . '" class="flat ' . (empty($val['css']) ? 'minwidth200' : $val['css']) . '" value="' . getDolGlobalString($constname) . '">';
}
print '</td></tr>';
}
@ -309,28 +309,28 @@ if ($action == 'edit') {
print '</td><td>';
if ($val['type'] == 'textarea') {
print dol_nl2br($conf->global->{$constname});
print dol_nl2br(getDolGlobalString($constname));
} elseif ($val['type']== 'html') {
print $conf->global->{$constname};
print getDolGlobalString($constname);
} elseif ($val['type'] == 'yesno') {
print ajax_constantonoff($constname);
} elseif (preg_match('/emailtemplate:/', $val['type'])) {
if (!empty($conf->global->{$constname})) {
if (getDolGlobalString($constname)) {
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
$formmail = new FormMail($db);
$tmp = explode(':', $val['type']);
$template = $formmail->getEMailTemplate($db, $tmp[1], $user, $langs, $conf->global->{$constname});
$template = $formmail->getEMailTemplate($db, $tmp[1], $user, $langs, getDolGlobalString($constname));
if ($template < 0) {
setEventMessages(null, $formmail->errors, 'errors');
}
print $langs->trans($template->label);
}
} elseif (preg_match('/category:/', $val['type'])) {
if (!empty($conf->global->{$constname})) {
if (getDolGlobalString($constname)) {
$c = new Categorie($db);
$result = $c->fetch($conf->global->{$constname});
$result = $c->fetch(getDolGlobalString($constname));
if ($result < 0) {
setEventMessages(null, $c->errors, 'errors');
}
@ -342,25 +342,25 @@ if ($action == 'edit') {
print '<div class="select2-container-multi-dolibarr" style="width: 90%;"><ul class="select2-choices-dolibarr">' . implode(' ', $toprint) . '</ul></div>';
}
} elseif (preg_match('/thirdparty_type/', $val['type'])) {
if ($conf->global->{$constname}==2) {
if (getDolGlobalString($constname)==2) {
print $langs->trans("Prospect");
} elseif ($conf->global->{$constname}==3) {
} elseif (getDolGlobalString($constname)==3) {
print $langs->trans("ProspectCustomer");
} elseif ($conf->global->{$constname}==1) {
} elseif (getDolGlobalString($constname)==1) {
print $langs->trans("Customer");
} elseif ($conf->global->{$constname}==0) {
} elseif (getDolGlobalString($constname)==0) {
print $langs->trans("NorProspectNorCustomer");
}
} elseif ($val['type'] == 'product') {
$product = new Product($db);
$resprod = $product->fetch($conf->global->{$constname});
$resprod = $product->fetch(getDolGlobalString($constname));
if ($resprod > 0) {
print $product->getNomUrl(1);
} elseif ($resprod < 0) {
setEventMessages(null, $object->errors, "errors");
setEventMessages($product->error, $product->errors, "errors");
}
} else {
print $conf->global->{$constname};
print getDolGlobalString($constname);
}
print '</td></tr>';
}

View File

@ -59,12 +59,12 @@ if ($action == 'set') {
if (!$error) {
$res1 = dolibarr_set_const($db, "GEOIP_VERSION", GETPOST('geoipversion', 'aZ09'), 'chaine', 0, '', $conf->entity);
if (!$res1 > 0) {
if (!($res1 > 0)) {
$error++;
}
$res2 = dolibarr_set_const($db, "GEOIPMAXMIND_COUNTRY_DATAFILE", $gimcdf, 'chaine', 0, '', $conf->entity);
if (!$res2 > 0) {
if (!($res2 > 0)) {
$error++;
}

View File

@ -141,7 +141,7 @@ if ($action == 'updateMask') {
$draft = GETPOST('HOLIDAY_DRAFT_WATERMARK', 'alpha');
$res2 = dolibarr_set_const($db, "HOLIDAY_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity);
if (!$res1 > 0 || !$res2 > 0) {
if (!($res1 > 0) || !($res2 > 0)) {
$error++;
}

View File

@ -178,63 +178,63 @@ $elementList = array();
$elementList['all'] = '-- '.dol_escape_htmltag($langs->trans("All")).' --';
$elementList['none'] = '-- '.dol_escape_htmltag($langs->trans("None")).' --';
$elementList['user'] = img_picto('', 'user', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToUser'));
$elementList['user'] = img_picto('', 'user', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToUser'));
if (!empty($conf->adherent->enabled) && !empty($user->rights->adherent->lire)) {
$elementList['member'] = img_picto('', 'object_member', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToMember'));
$elementList['member'] = img_picto('', 'object_member', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToMember'));
}
if (!empty($conf->recruitment->enabled) && !empty($user->rights->recruitment->recruitmentjobposition->read)) {
$elementList['recruitmentcandidature_send'] = img_picto('', 'recruitmentcandidature', 'class="paddingright"').dol_escape_htmltag($langs->trans('RecruitmentCandidatures'));
$elementList['recruitmentcandidature_send'] = img_picto('', 'recruitmentcandidature', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('RecruitmentCandidatures'));
}
if (!empty($conf->societe->enabled) && !empty($user->rights->societe->lire)) {
$elementList['thirdparty'] = img_picto('', 'company', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToThirdparty'));
$elementList['thirdparty'] = img_picto('', 'company', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToThirdparty'));
}
if (!empty($conf->project->enabled)) {
$elementList['project'] = img_picto('', 'project', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToProject'));
$elementList['project'] = img_picto('', 'project', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToProject'));
}
if (!empty($conf->propal->enabled) && !empty($user->rights->propal->lire)) {
$elementList['propal_send'] = img_picto('', 'propal', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendProposal'));
$elementList['propal_send'] = img_picto('', 'propal', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendProposal'));
}
if (!empty($conf->commande->enabled) && !empty($user->rights->commande->lire)) {
$elementList['order_send'] = img_picto('', 'order', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendOrder'));
$elementList['order_send'] = img_picto('', 'order', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendOrder'));
}
if (isModEnabled('facture') && !empty($user->rights->facture->lire)) {
$elementList['facture_send'] = img_picto('', 'bill', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendInvoice'));
$elementList['facture_send'] = img_picto('', 'bill', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendInvoice'));
}
if (!empty($conf->expedition->enabled)) {
$elementList['shipping_send'] = img_picto('', 'dolly', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendShipment'));
$elementList['shipping_send'] = img_picto('', 'dolly', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendShipment'));
}
if (!empty($conf->reception->enabled)) {
$elementList['reception_send'] = img_picto('', 'dollyrevert', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendReception'));
$elementList['reception_send'] = img_picto('', 'dollyrevert', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendReception'));
}
if (!empty($conf->ficheinter->enabled)) {
$elementList['fichinter_send'] = img_picto('', 'intervention', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendIntervention'));
$elementList['fichinter_send'] = img_picto('', 'intervention', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendIntervention'));
}
if (!empty($conf->supplier_proposal->enabled)) {
$elementList['supplier_proposal_send'] = img_picto('', 'propal', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendSupplierRequestForQuotation'));
$elementList['supplier_proposal_send'] = img_picto('', 'propal', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendSupplierRequestForQuotation'));
}
if ((!empty($conf->fournisseur->enabled) && !empty($user->rights->fournisseur->commande->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (!empty($conf->supplier_order->enabled) && !empty($user->rights->supplier_order->lire))) {
$elementList['order_supplier_send'] = img_picto('', 'order', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendSupplierOrder'));
$elementList['order_supplier_send'] = img_picto('', 'order', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendSupplierOrder'));
}
if ((!empty($conf->fournisseur->enabled) && !empty($user->rights->fournisseur->facture->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (!empty($conf->supplier_invoice->enabled) && !empty($user->rights->supplier_invoice->lire))) {
$elementList['invoice_supplier_send'] = img_picto('', 'bill', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendSupplierInvoice'));
$elementList['invoice_supplier_send'] = img_picto('', 'bill', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendSupplierInvoice'));
}
if (!empty($conf->contrat->enabled) && !empty($user->rights->contrat->lire)) {
$elementList['contract'] = img_picto('', 'contract', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendContract'));
$elementList['contract'] = img_picto('', 'contract', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendContract'));
}
if (!empty($conf->ticket->enabled) && !empty($user->rights->ticket->read)) {
$elementList['ticket_send'] = img_picto('', 'ticket', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToTicket'));
$elementList['ticket_send'] = img_picto('', 'ticket', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToTicket'));
}
if (!empty($conf->expensereport->enabled) && !empty($user->rights->expensereport->lire)) {
$elementList['expensereport_send'] = img_picto('', 'trip', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToTExpenseReport'));
$elementList['expensereport_send'] = img_picto('', 'trip', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToExpenseReport'));
}
if (isModEnabled('agenda')) {
$elementList['actioncomm_send'] = img_picto('', 'action', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendEventPush'));
$elementList['actioncomm_send'] = img_picto('', 'action', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendEventPush'));
}
if (!empty($conf->eventorganization->enabled) && !empty($user->rights->eventorganization->read)) {
$elementList['conferenceorbooth'] = img_picto('', 'action', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendEventOrganization'));
$elementList['conferenceorbooth'] = img_picto('', 'action', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendEventOrganization'));
}
if (!empty($conf->partnership->enabled) && !empty($user->rights->partnership->read)) {
$elementList['partnership_send'] = img_picto('', 'partnership', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToPartnership'));
$elementList['partnership_send'] = img_picto('', 'partnership', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToPartnership'));
}
$parameters = array('elementList'=>$elementList);

View File

@ -77,7 +77,7 @@ if ($action == 'setconst' && $user->admin) {
$constnote = dol_escape_htmltag($setupconst['note']);
$result = dolibarr_set_const($db, $constname, $constvalue, $consttype, 0, $constnote, $conf->entity);
if (!$result > 0) {
if (!($result > 0)) {
$error++;
}
}
@ -96,7 +96,7 @@ if ($action == 'setvalue' && $user->admin) {
$db->begin();
$result = dolibarr_set_const($db, $varname, $value, 'chaine', 0, '', $conf->entity);
if (!$result > 0) {
if (!($result > 0)) {
$error++;
}

View File

@ -78,9 +78,10 @@ if ($action == 'updateMask') {
$maskconststocktransfer = GETPOST('maskconststocktransfer', 'alpha');
$maskstocktransfer = GETPOST('maskStockTransfer', 'alpha');
if ($maskconststocktransfer) $res = dolibarr_set_const($db, $maskconststocktransfer, $maskstocktransfer, 'chaine', 0, '', $conf->entity);
if (!$res > 0) $error++;
if ($maskconststocktransfer) {
$res = dolibarr_set_const($db, $maskconststocktransfer, $maskstocktransfer, 'chaine', 0, '', $conf->entity);
if ($res <= 0) $error++;
}
if (!$error) {
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');

View File

@ -361,11 +361,11 @@ class BlockedLog
$this->amounts = $amounts;
// date
if ($object->element == 'payment' || $object->element == 'payment_supplier') {
$this->date_object = $object->datepaye;
$this->date_object = empty($object->datepaye) ? $object->date : $object->datepaye;
} elseif ($object->element == 'payment_salary') {
$this->date_object = $object->datev;
} elseif ($object->element == 'payment_donation' || $object->element == 'payment_various') {
$this->date_object = $object->datepaid ? $object->datepaid : $object->datep;
$this->date_object = empty($object->datepaid) ? $object->datep : $object->datepaid;
} elseif ($object->element == 'subscription') {
$this->date_object = $object->dateh;
} elseif ($object->element == 'cashcontrol') {
@ -527,7 +527,7 @@ class BlockedLog
$totalamount = 0;
// Loop on each invoice payment amount
// Loop on each invoice payment amount (payment_part)
if (is_array($object->amounts) && !empty($object->amounts)) {
$paymentpartnumber = 0;
foreach ($object->amounts as $objid => $amount) {

View File

@ -216,7 +216,9 @@ class CActionComm
if ($obj->module == 'shipping' && !empty($conf->expedition->enabled) && !empty($user->rights->expedition->lire)) {
$qualified = 1;
}
if (preg_split("/@/", $obj->module, -1)[1] == 'eventorganization' && !empty($conf->eventorganization->enabled)) {
// For case module = 'myobject@eventorganization'
$tmparray = preg_split("/@/", $obj->module, -1);
if (count($tmparray) > 1 && $tmparray[1] == 'eventorganization' && !empty($conf->eventorganization->enabled)) {
$qualified = 1;
}
// For the generic case with type = 'module...' and module = 'myobject@mymodule'

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
/* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2022 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
* Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
@ -9,12 +9,12 @@
* Copyright (C) 2010-2021 Philippe Grand <philippe.grand@atoo-net.com>
* Copyright (C) 2012-2013 Christophe Battarel <christophe.battarel@altairis.fr>
* Copyright (C) 2012 Cedric Salvador <csalvador@gpcsolutions.fr>
* Copyright (C) 2013-2014 Florian Henry <florian.henry@open-concept.pro>
* Copyright (C) 2014 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2016 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2018-2021 Frédéric France <frederic.france@netlogic.fr>
* Copyright (C) 2020 Nicolas ZABOURI <info@inovea-conseil.com>
* Copyright (C) 2022 Gauthier VERDOL <gauthier.verdol@atm-consulting.fr>
* Copyright (C) 2013-2014 Florian Henry <florian.henry@open-concept.pro>
* Copyright (C) 2014 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2016 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2018-2021 Frédéric France <frederic.france@netlogic.fr>
* Copyright (C) 2020 Nicolas ZABOURI <info@inovea-conseil.com>
* Copyright (C) 2022 Gauthier VERDOL <gauthier.verdol@atm-consulting.fr>
*
* 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
@ -88,9 +88,6 @@ $hidedetails = (GETPOST('hidedetails', 'int') ? GETPOST('hidedetails', 'int') :
$hidedesc = (GETPOST('hidedesc', 'int') ? GETPOST('hidedesc', 'int') : (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC) ? 1 : 0));
$hideref = (GETPOST('hideref', 'int') ? GETPOST('hideref', 'int') : (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF) ? 1 : 0));
// Nombre de ligne pour choix de produit/service predefinis
$NBLINES = 4;
$object = new Propal($db);
$extrafields = new ExtraFields($db);
@ -120,6 +117,7 @@ $usercanclose = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreat
$usercanvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->propal->propal_advance->validate)));
$usercansend = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->propal->propal_advance->send)));
$usermustrespectpricemin = ((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS));
$usercancreateorder = $user->hasRight('commande', 'creer');
$usercancreateinvoice = $user->hasRight('facture', 'creer');
$usercancreatecontract = $user->hasRight('contrat', 'creer');
@ -898,6 +896,9 @@ if (empty($reshook)) {
$product_desc = (GETPOSTISSET('dp_desc') ? GETPOST('dp_desc', 'restricthtml') : '');
$price_ht = price2num(GETPOST('price_ht'), 'MU', 2);
$price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU', 2);
$price_ttc = price2num(GETPOST('price_ttc'), 'MU', 2);
$price_ttc_devise = price2num(GETPOST('multicurrency_price_ttc'), 'CU', 2);
$prod_entry_mode = GETPOST('prod_entry_mode');
if ($prod_entry_mode == 'free') {
$idprod = 0;
@ -956,6 +957,7 @@ if (empty($reshook)) {
$pu_ht = 0;
$pu_ttc = 0;
$price_min = 0;
$price_min_ttc = 0;
$price_base_type = (GETPOST('price_base_type', 'alpha') ? GETPOST('price_base_type', 'alpha') : 'HT');
$db->begin();
@ -983,6 +985,7 @@ if (empty($reshook)) {
$pu_ht = $prod->price;
$pu_ttc = $prod->price_ttc;
$price_min = $prod->price_min;
$price_min_ttc = $prod->price_min_ttc;
$price_base_type = $prod->price_base_type;
// If price per segment
@ -990,6 +993,7 @@ if (empty($reshook)) {
$pu_ht = $prod->multiprices[$object->thirdparty->price_level];
$pu_ttc = $prod->multiprices_ttc[$object->thirdparty->price_level];
$price_min = $prod->multiprices_min[$object->thirdparty->price_level];
$price_min_ttc = $prod->multiprices_min_ttc[$object->thirdparty->price_level];
$price_base_type = $prod->multiprices_base_type[$object->thirdparty->price_level];
if (!empty($conf->global->PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL)) { // using this option is a bug. kept for backward compatibility
if (isset($prod->multiprices_tva_tx[$object->thirdparty->price_level])) {
@ -1014,6 +1018,7 @@ if (empty($reshook)) {
$pu_ht = price($prodcustprice->lines[0]->price);
$pu_ttc = price($prodcustprice->lines[0]->price_ttc);
$price_min = price($prodcustprice->lines[0]->price_min);
$price_min_ttc = price($prodcustprice->lines[0]->price_min_ttc);
$price_base_type = $prodcustprice->lines[0]->price_base_type;
$tva_tx = ($prodcustprice->lines[0]->default_vat_code ? $prodcustprice->lines[0]->tva_tx.' ('.$prodcustprice->lines[0]->default_vat_code.' )' : $prodcustprice->lines[0]->tva_tx);
if ($prodcustprice->lines[0]->default_vat_code && !preg_match('/\(.*\)/', $tva_tx)) {
@ -1119,18 +1124,6 @@ if (empty($reshook)) {
$desc = dol_concatdesc($desc, $product_desc, '', !empty($conf->global->MAIN_CHANGE_ORDER_CONCAT_DESCRIPTION));
}
// Add dimensions into product description
/*if (empty($conf->global->MAIN_PRODUCT_DISABLE_AUTOADD_DIM))
{
$text='';
if ($prod->weight) $text.=($text?"\n":"").$outputlangs->trans("Weight").': '.$prod->weight.' '.$prod->weight_units;
if ($prod->length) $text.=($text?"\n":"").$outputlangs->trans("Length").': '.$prod->length.' '.$prod->length_units;
if ($prod->surface) $text.=($text?"\n":"").$outputlangs->trans("Surface").': '.$prod->surface.' '.$prod->surface_units;
if ($prod->volume) $text.=($text?"\n":"").$outputlangs->trans("Volume").': '.$prod->volume.' '.$prod->volume_units;
$desc = dol_concatdesc($desc, $text);
}*/
// Add custom code and origin country into description
if (empty($conf->global->MAIN_PRODUCT_DISABLE_CUSTOMCOUNTRYCODE) && (!empty($prod->customcode) || !empty($prod->country_code))) {
$tmptxt = '(';
@ -1186,6 +1179,7 @@ if (empty($reshook)) {
$fk_unit = GETPOST('units', 'alpha');
$pu_ht_devise = price2num($price_ht_devise, 'MU');
$pu_ttc_devise = price2num($price_ttc_devise, 'MU');
}
// Margin
@ -1204,10 +1198,22 @@ if (empty($reshook)) {
$info_bits |= 0x01;
}
if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && (!empty($price_min) && (price2num($pu_ht) * (1 - price2num($remise_percent) / 100) < price2num($price_min)))) {
$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency));
setEventMessages($mesg, null, 'errors');
} else {
//var_dump(price2num($price_min)); var_dump(price2num($pu_ht)); var_dump($remise_percent);
//var_dump(price2num($price_min_ttc)); var_dump(price2num($pu_ttc)); var_dump($remise_percent);exit;
if ($usermustrespectpricemin) {
if ($pu_ht && $price_min && ((price2num($pu_ht) * (1 - $remise_percent / 100)) < price2num($price_min))) {
$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, -1, $conf->currency));
setEventMessages($mesg, null, 'errors');
$error++;
} elseif ($pu_ttc && $price_min_ttc && ((price2num($pu_ttc) * (1 - $remise_percent / 100)) < price2num($price_min_ttc))) {
$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min_ttc, 'MU'), 0, $langs, 0, 0, -1, $conf->currency));
setEventMessages($mesg, null, 'errors');
$error++;
}
}
if (!$error) {
// Insert line
$result = $object->addline($desc, $pu_ht, $qty, $tva_tx, $localtax1_tx, $localtax2_tx, $idprod, $remise_percent, $price_base_type, $pu_ttc, $info_bits, $type, min($rank, count($object->lines) + 1), 0, GETPOST('fk_parent_line'), $fournprice, $buyingprice, $label, $date_start, $date_end, $array_options, $fk_unit, '', 0, $pu_ht_devise);
@ -1285,12 +1291,14 @@ if (empty($reshook)) {
$localtax1_rate = get_localtax($vat_rate, 1, $object->thirdparty, $mysoc);
$localtax2_rate = get_localtax($vat_rate, 2, $object->thirdparty, $mysoc);
$pu_ht = price2num(GETPOST('price_ht'), '', 2);
$pu_ttc = price2num(GETPOST('price_ttc'), '', 2);
// Add buying price
$fournprice = price2num(GETPOST('fournprice') ? GETPOST('fournprice') : '');
$buyingprice = price2num(GETPOST('buying_price') != '' ? GETPOST('buying_price') : ''); // If buying_price is '0', we muste keep this value
$pu_ht_devise = price2num(GETPOST('multicurrency_subprice'), '', 2);
//$pu_ttc_devise = price2num(GETPOST('multicurrency_subprice_ttc'), '', 2);
$date_start = dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear'));
$date_end = dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), GETPOST('date_endsec'), GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear'));
@ -1321,16 +1329,32 @@ if (empty($reshook)) {
$res = $product->fetch($productid);
$type = $product->type;
$label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : '');
$price_min = $product->price_min;
if (!empty($conf->global->PRODUIT_MULTIPRICES) && !empty($object->thirdparty->price_level)) {
$price_min = $product->multiprices_min [$object->thirdparty->price_level];
$price_min = $product->multiprices_min[$object->thirdparty->price_level];
}
$price_min_ttc = $product->price_min_ttc;
if (!empty($conf->global->PRODUIT_MULTIPRICES) && !empty($object->thirdparty->price_level)) {
$price_min_ttc = $product->multiprices_min_ttc[$object->thirdparty->price_level];
}
$label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : '');
if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && ($price_min && (price2num($pu_ht) * (1 - $remise_percent / 100) < price2num($price_min)))) {
setEventMessages($langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)), null, 'errors');
$error++;
//var_dump(price2num($price_min)); var_dump(price2num($pu_ht)); var_dump($remise_percent);
//var_dump(price2num($price_min_ttc)); var_dump(price2num($pu_ttc)); var_dump($remise_percent);exit;
if ($usermustrespectpricemin) {
if ($pu_ht && $price_min && ((price2num($pu_ht) * (1 - $remise_percent / 100)) < price2num($price_min))) {
$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, -1, $conf->currency));
setEventMessages($mesg, null, 'errors');
$error++;
$action = 'editline';
} elseif ($pu_ttc && $price_min_ttc && ((price2num($pu_ttc) * (1 - $remise_percent / 100)) < price2num($price_min_ttc))) {
$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min_ttc, 'MU'), 0, $langs, 0, 0, -1, $conf->currency));
setEventMessages($mesg, null, 'errors');
$error++;
$action = 'editline';
}
}
} else {
$type = GETPOST('type');
@ -2675,6 +2699,11 @@ if ($action == 'create') {
// Show object lines
$result = $object->getLinesArray();
// Add products/services form
//$forceall = 1;
global $inputalsopricewithtax;
$inputalsopricewithtax = 1;
print ' <form name="addproduct" id="addproduct" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.(($action != 'editline') ? '' : '#line_'.GETPOST('lineid', 'int')).'" method="POST">
<input type="hidden" name="token" value="' . newToken().'">
<input type="hidden" name="action" value="' . (($action != 'editline') ? 'addline' : 'updateline').'">
@ -2699,8 +2728,6 @@ if ($action == 'create') {
// Form to add new line
if ($object->statut == Propal::STATUS_DRAFT && $usercancreate && $action != 'selectlines') {
if ($action != 'editline') {
// Add products/services form
$parameters = array();
$reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');

View File

@ -1507,12 +1507,13 @@ class Propal extends CommonObject
/**
* Load a proposal from database. Get also lines.
*
* @param int $rowid id of object to load
* @param string $ref Ref of proposal
* @param string $ref_ext Ref ext of proposal
* @return int >0 if OK, <0 if KO
* @param int $rowid Id of object to load
* @param string $ref Ref of proposal
* @param string $ref_ext Ref ext of proposal
* @param int $forceentity Entity id to force when searching on ref or ref_ext
* @return int >0 if OK, <0 if KO
*/
public function fetch($rowid, $ref = '', $ref_ext = '')
public function fetch($rowid, $ref = '', $ref_ext = '', $forceentity = 0)
{
$sql = "SELECT p.rowid, p.ref, p.entity, p.remise, p.remise_percent, p.remise_absolue, p.fk_soc";
$sql .= ", p.total_ttc, p.total_tva, p.localtax1, p.localtax2, p.total_ht";
@ -1551,10 +1552,15 @@ class Propal extends CommonObject
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_input_reason as dr ON p.fk_input_reason = dr.rowid';
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON p.fk_incoterms = i.rowid';
if ($ref) {
$sql .= " WHERE p.entity IN (".getEntity('propal').")"; // Dont't use entity if you use rowid
if (!empty($ref)) {
if (!empty($forceentity)) {
$sql .= " WHERE p.entity = ".(int) $forceentity; // Check only the current entity because we may have the same reference in several entities
} else {
$sql .= " WHERE p.entity IN (".getEntity('propal').")";
}
$sql .= " AND p.ref='".$this->db->escape($ref)."'";
} else {
// Dont't use entity if you use rowid
$sql .= " WHERE p.rowid = ".((int) $rowid);
}
@ -3812,7 +3818,7 @@ class Propal extends CommonObject
* @param int $hidedetails Hide details of lines
* @param int $hidedesc Hide description
* @param int $hideref Hide ref
* @param null|array $moreparams Array to provide more information
* @param null|array $moreparams Array to provide more information
* @return int 0 if KO, 1 if OK
*/
public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams = null)

View File

@ -113,12 +113,13 @@ $usercancreate = $user->hasRight("commande", "creer");
$usercandelete = $user->hasRight("commande", "supprimer");
// Advanced permissions
$usercanclose = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($usercancreate)) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->hasRight('commande', 'order_advance', 'close'))));
$usercanvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->hasRight('commande', 'order_advance', 'validate'))));
$usercancancel = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->hasRight('commande', 'order_advance', 'annuler'))));
$usercanclose = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($usercancreate)) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->hasRight('commande', 'order_advance', 'close')));
$usercanvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->hasRight('commande', 'order_advance', 'validate')));
$usercancancel = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->hasRight('commande', 'order_advance', 'annuler')));
$usercansend = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->hasRight('commande', 'order_advance', 'send'));
$usercangeneretedoc = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->hasRight('commande', 'order_advance', 'generetedoc'));
$usermustrespectpricemin = ((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS));
$usercancreatepurchaseorder = ($user->hasRight('fournisseur', 'commande', 'creer') || $user->hasRight('supplier_order', 'creer'));
$permissionnote = $usercancreate; // Used by the include of actions_setnotes.inc.php
@ -647,6 +648,9 @@ if (empty($reshook)) {
$product_desc = (GETPOSTISSET('dp_desc') ? GETPOST('dp_desc', 'restricthtml') : '');
$price_ht = price2num(GETPOST('price_ht'), 'MU', 2);
$price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU', 2);
$price_ttc = price2num(GETPOST('price_ttc'), 'MU', 2);
$price_ttc_devise = price2num(GETPOST('multicurrency_price_ttc'), 'CU', 2);
$prod_entry_mode = GETPOST('prod_entry_mode');
if ($prod_entry_mode == 'free') {
$idprod = 0;
@ -739,6 +743,7 @@ if (empty($reshook)) {
$pu_ht = $prod->price;
$pu_ttc = $prod->price_ttc;
$price_min = $prod->price_min;
$price_min_ttc = $prod->price_min_ttc;
$price_base_type = $prod->price_base_type;
// If price per segment
@ -746,6 +751,7 @@ if (empty($reshook)) {
$pu_ht = $prod->multiprices[$object->thirdparty->price_level];
$pu_ttc = $prod->multiprices_ttc[$object->thirdparty->price_level];
$price_min = $prod->multiprices_min[$object->thirdparty->price_level];
$price_min_ttc = $prod->multiprices_min_ttc[$object->thirdparty->price_level];
$price_base_type = $prod->multiprices_base_type[$object->thirdparty->price_level];
if (!empty($conf->global->PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL)) { // using this option is a bug. kept for backward compatibility
if (isset($prod->multiprices_tva_tx[$object->thirdparty->price_level])) {
@ -769,6 +775,7 @@ if (empty($reshook)) {
$pu_ht = price($prodcustprice->lines[0]->price);
$pu_ttc = price($prodcustprice->lines[0]->price_ttc);
$price_min = price($prodcustprice->lines[0]->price_min);
$price_min_ttc = price($prodcustprice->lines[0]->price_min_ttc);
$price_base_type = $prodcustprice->lines[0]->price_base_type;
$tva_tx = $prodcustprice->lines[0]->tva_tx;
if ($prodcustprice->lines[0]->default_vat_code && !preg_match('/\(.*\)/', $tva_tx)) {
@ -946,10 +953,19 @@ if (empty($reshook)) {
$info_bits |= 0x01;
}
if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && (!empty($price_min) && (price2num($pu_ht) * (1 - price2num($remise_percent) / 100) < price2num($price_min)))) {
$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency));
setEventMessages($mesg, null, 'errors');
} else {
if ($usermustrespectpricemin) {
if ($pu_ht && $price_min && ((price2num($pu_ht) * (1 - $remise_percent / 100)) < price2num($price_min))) {
$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, -1, $conf->currency));
setEventMessages($mesg, null, 'errors');
$error++;
} elseif ($pu_ttc && $price_min_ttc && ((price2num($pu_ttc) * (1 - $remise_percent / 100)) < price2num($price_min_ttc))) {
$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min_ttc, 'MU'), 0, $langs, 0, 0, -1, $conf->currency));
setEventMessages($mesg, null, 'errors');
$error++;
}
}
if (!$error) {
// Insert line
$result = $object->addline($desc, $pu_ht, $qty, $tva_tx, $localtax1_tx, $localtax2_tx, $idprod, $remise_percent, $info_bits, 0, $price_base_type, $pu_ttc, $date_start, $date_end, $type, min($rank, count($object->lines) + 1), 0, GETPOST('fk_parent_line'), $fournprice, $buyingprice, $label, $array_options, $fk_unit, '', 0, $pu_ht_devise);
@ -1017,9 +1033,12 @@ if (empty($reshook)) {
$date_start = dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear'));
$date_end = dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), GETPOST('date_endsec'), GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear'));
$description = dol_htmlcleanlastbr(GETPOST('product_desc', 'restricthtml'));
$pu_ht = price2num(GETPOST('price_ht'), '', 2);
$vat_rate = (GETPOST('tva_tx') ? GETPOST('tva_tx', 'alpha') : 0);
$vat_rate = str_replace('*', '', $vat_rate);
$pu_ht = price2num(GETPOST('price_ht'), '', 2);
$pu_ttc = price2num(GETPOST('price_ttc'), '', 2);
$pu_ht_devise = price2num(GETPOST('multicurrency_subprice'), '', 2);
//$pu_ttc_devise = price2num(GETPOST('multicurrency_subprice_ttc'), '', 2);
$qty = price2num(GETPOST('qty'), 'MS');
@ -1068,13 +1087,25 @@ if (empty($reshook)) {
if ((!empty($conf->global->PRODUIT_MULTIPRICES) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) && !empty($object->thirdparty->price_level)) {
$price_min = $product->multiprices_min[$object->thirdparty->price_level];
}
$price_min_ttc = $product->price_min_ttc;
if ((!empty($conf->global->PRODUIT_MULTIPRICES) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) && !empty($object->thirdparty->price_level)) {
$price_min_ttc = $product->multiprices_min_ttc[$object->thirdparty->price_level];
}
$label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : '');
if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && ($price_min && (price2num($pu_ht) * (1 - $remise_percent / 100) < price2num($price_min)))) {
setEventMessages($langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)), null, 'errors');
$error++;
$action = 'editline';
if ($usermustrespectpricemin) {
if ($pu_ht && $price_min && ((price2num($pu_ht) * (1 - $remise_percent / 100)) < price2num($price_min))) {
$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, -1, $conf->currency));
setEventMessages($mesg, null, 'errors');
$error++;
$action = 'editline';
} elseif ($pu_ttc && $price_min_ttc && ((price2num($pu_ttc) * (1 - $remise_percent / 100)) < price2num($price_min_ttc))) {
$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min_ttc, 'MU'), 0, $langs, 0, 0, -1, $conf->currency));
setEventMessages($mesg, null, 'errors');
$error++;
$action = 'editline';
}
}
} else {
$type = GETPOST('type');

View File

@ -361,7 +361,7 @@ if (GETPOST('save') && !$cancel && !empty($user->rights->banque->modifier)) {
$error++;
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Amount")), null, 'errors');
}
if (!$bankaccountid > 0) {
if (!($bankaccountid > 0)) {
$error++;
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("BankAccount")), null, 'errors');
}

View File

@ -618,7 +618,7 @@ class Account extends CommonObject
$this->error = $this->db->lasterror();
$this->db->rollback();
return -3;
return -4;
}
}
@ -630,7 +630,7 @@ class Account extends CommonObject
$this->errors = $accline->errors;
$this->db->rollback();
return -2;
return -5;
}
}

View File

@ -141,7 +141,7 @@ if (!empty($conf->global->INVOICE_DISALLOW_REOPEN)) {
}
$usercanunvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($usercancreate)) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->facture->invoice_advance->unvalidate)));
$usercanproductignorepricemin = ((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS));
$usermustrespectpricemin = ((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS));
$usercancreatemargin = (!empty($user->rights->margins->creer) ? $user->rights->margins->creer : 0);
$usercanreadallmargin = (!empty($user->rights->margins->liretous) ? $user->rights->margins->liretous : 0);
$usercancreatewithdrarequest = (!empty($user->rights->prelevement->bons->creer) ? $user->rights->prelevement->bons->creer : 0);
@ -2010,6 +2010,9 @@ if (empty($reshook)) {
$product_desc =(GETPOSTISSET('dp_desc') ? GETPOST('dp_desc', 'restricthtml') : '');
$price_ht = price2num(GETPOST('price_ht'), 'MU', 2);
$price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU', 2);
$price_ttc = price2num(GETPOST('price_ttc'), 'MU', 2);
$price_ttc_devise = price2num(GETPOST('multicurrency_price_ttc'), 'CU', 2);
$prod_entry_mode = GETPOST('prod_entry_mode', 'alpha');
if ($prod_entry_mode == 'free') {
$idprod = 0;
@ -2126,6 +2129,7 @@ if (empty($reshook)) {
$pu_ht = $datapriceofproduct['pu_ht'];
$pu_ttc = $datapriceofproduct['pu_ttc'];
$price_min = $datapriceofproduct['price_min'];
$price_min_ttc = $datapriceofproduct['price_min_ttc'];
$price_base_type = $datapriceofproduct['price_base_type'];
$tva_tx = $datapriceofproduct['tva_tx'];
$tva_npr = $datapriceofproduct['tva_npr'];
@ -2238,6 +2242,7 @@ if (empty($reshook)) {
$type = GETPOST('type');
$fk_unit = GETPOST('units', 'alpha');
$pu_ht_devise = price2num($price_ht_devise, 'MU');
$pu_ttc_devise = price2num($price_ttc_devise, 'MU');
}
// Margin
@ -2256,6 +2261,7 @@ if (empty($reshook)) {
$price2num_pu_ht = price2num($pu_ht);
$price2num_remise_percent = price2num($remise_percent);
$price2num_price_min = price2num($price_min);
$price2num_price_min_ttc = price2num($price_min_ttc);
if (empty($price2num_pu_ht)) {
$price2num_pu_ht = 0;
}
@ -2265,11 +2271,24 @@ if (empty($reshook)) {
if (empty($price2num_price_min)) {
$price2num_price_min = 0;
}
if (empty($price2num_price_min_ttc)) {
$price2num_price_min_ttc = 0;
}
if ($usercanproductignorepricemin && (!empty($price_min) && ($price2num_pu_ht * (1 - $price2num_remise_percent / 100) < $price2num_price_min))) {
$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency));
setEventMessages($mesg, null, 'errors');
} else {
// Check price is not lower than minimum (check is done only for standard or replacement invoices)
if ($usermustrespectpricemin && ($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT)) {
if ($pu_ht && $price_min && ((price2num($pu_ht) * (1 - $remise_percent / 100)) < price2num($price_min))) {
$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, -1, $conf->currency));
setEventMessages($mesg, null, 'errors');
$error++;
} elseif ($pu_ttc && $price_min_ttc && ((price2num($pu_ttc) * (1 - $remise_percent / 100)) < price2num($price_min_ttc))) {
$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min_ttc, 'MU'), 0, $langs, 0, 0, -1, $conf->currency));
setEventMessages($mesg, null, 'errors');
$error++;
}
}
if (!$error) {
// Add batchinfo if the detail_batch array is defined
if (!empty($conf->productbatch->enabled) && !empty($lines[$i]->detail_batch) && is_array($lines[$i]->detail_batch) && !empty($conf->global->INVOICE_INCUDE_DETAILS_OF_LOTS_SERIALS)) {
$langs->load('productbatch');
@ -2360,10 +2379,14 @@ if (empty($reshook)) {
$date_start = dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear'));
$date_end = dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), GETPOST('date_endsec'), GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear'));
$description = dol_htmlcleanlastbr(GETPOST('product_desc', 'restricthtml') ? GETPOST('product_desc', 'restricthtml') : GETPOST('desc', 'restricthtml'));
$pu_ht = price2num(GETPOST('price_ht'), '', 2);
$vat_rate = (GETPOST('tva_tx') ? GETPOST('tva_tx') : 0);
$qty = GETPOST('qty');
$vat_rate = str_replace('*', '', $vat_rate);
$pu_ht = price2num(GETPOST('price_ht'), '', 2);
$pu_ttc = price2num(GETPOST('price_ttc'), '', 2);
$pu_ht_devise = price2num(GETPOST('multicurrency_subprice'), '', 2);
//$pu_ttc_devise = price2num(GETPOST('multicurrency_subprice_ttc'), '', 2);
$qty = GETPOST('qty');
// Define info_bits
$info_bits = 0;
@ -2434,15 +2457,28 @@ if (empty($reshook)) {
$price_min = $product->price_min;
if ((!empty($conf->global->PRODUIT_MULTIPRICES) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) && !empty($object->thirdparty->price_level)) {
$price_min = $product->multiprices_min [$object->thirdparty->price_level];
$price_min = $product->multiprices_min[$object->thirdparty->price_level];
}
$price_min_ttc = $product->price_min_ttc;
if ((!empty($conf->global->PRODUIT_MULTIPRICES) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) && !empty($object->thirdparty->price_level)) {
$price_min_ttc = $product->multiprices_min_ttc[$object->thirdparty->price_level];
}
$label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : '');
// Check price is not lower than minimum (check is done only for standard or replacement invoices)
if ($usercanproductignorepricemin && (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT) && $price_min && (price2num($pu_ht) * (1 - $remise_percent / 100) < price2num($price_min)))) {
setEventMessages($langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)), null, 'errors');
$error++;
if ($usermustrespectpricemin && ($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT)) {
if ($pu_ht && $price_min && ((price2num($pu_ht) * (1 - $remise_percent / 100)) < price2num($price_min))) {
$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, -1, $conf->currency));
setEventMessages($mesg, null, 'errors');
$error++;
$action = 'editline';
} elseif ($pu_ttc && $price_min_ttc && ((price2num($pu_ttc) * (1 - $remise_percent / 100)) < price2num($price_min_ttc))) {
$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min_ttc, 'MU'), 0, $langs, 0, 0, -1, $conf->currency));
setEventMessages($mesg, null, 'errors');
$error++;
$action = 'editline';
}
}
} else {
$type = GETPOST('type');
@ -4215,7 +4251,7 @@ if ($action == 'create') {
// Cree un tableau formulaire
$formquestion = array('text' => $langs->trans("ConfirmCancelBillQuestion"), array('type' => 'radio', 'name' => 'close_code', 'label' => $langs->trans("Reason"), 'values' => $arrayreasons), array('type' => 'text', 'name' => 'close_note', 'label' => $langs->trans("Comment"), 'value' => '', 'morecss' => 'minwidth300'));
$formconfirm = $form->formconfirm($_SERVER['PHP_SELF'].'?facid='.$object->id, $langs->trans('CancelBill'), $langs->trans('ConfirmCancelBill', $object->ref), 'confirm_canceled', $formquestion, "yes", 1, 250);
$formconfirm = $form->formconfirm($_SERVER['PHP_SELF'].'?facid='.$object->id, $langs->trans('CancelBill'), $langs->trans('ConfirmCancelBill', $object->ref), 'confirm_canceled', $formquestion, "yes", 1, 270);
}
}
@ -5107,7 +5143,7 @@ if ($action == 'create') {
print '</td>';
print '<td class="right"><span class="amount">'.price($obj->amount_ttc).'</span></td>';
print '<td class="right">';
print '<a href="'.$_SERVER["PHP_SELF"].'?facid='.$object->id.'&action=unlinkdiscount&discountid='.$obj->rowid.'">'.img_delete().'</a>';
print '<a href="'.$_SERVER["PHP_SELF"].'?facid='.$object->id.'&action=unlinkdiscount&token='.newToken().'&discountid='.$obj->rowid.'">'.img_delete().'</a>';
print '</td></tr>';
$i++;
if ($invoice->type == Facture::TYPE_CREDIT_NOTE) {
@ -5192,7 +5228,9 @@ if ($action == 'create') {
}
print '</span>';
print '</td>';
print '<td class="right'.($resteapayeraffiche ? ' amountremaintopay' : (' '.$cssforamountpaymentcomplete)).'">'.(!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency).' '.price(price2num($object->multicurrency_tx*$resteapayeraffiche, 'MT')).'</td><td>&nbsp;</td></tr>';
print '<td class="right'.($resteapayeraffiche ? ' amountremaintopay' : (' '.$cssforamountpaymentcomplete)).'">';
//print (empty($object->multicurrency_code) ? $conf->currency : $object->multicurrency_code).' ';
print price(price2num($object->multicurrency_tx*$resteapayeraffiche, 'MT'), 1, $langs, 1, -1, -1, (empty($object->multicurrency_code) ? $conf->currency : $object->multicurrency_code)).'</td><td>&nbsp;</td></tr>';
}
// Retained warranty : usualy use on construction industry

View File

@ -1533,7 +1533,7 @@ if ($resql) {
// Status
if (!empty($arrayfields['f.fk_statut']['checked'])) {
print '<td class="liste_titre maxwidthonsmartphone right">';
$liststatus = array('0'=>$langs->trans("BillShortStatusDraft"), '1'=>$langs->trans("BillShortStatusNotPaid"), '0,1'=>$langs->trans("BillShortStatusDraft").'+'.$langs->trans("BillShortStatusNotPaid"), '2'=>$langs->trans("BillShortStatusPaid"), '1,2'=>$langs->trans("BillShortStatusNotPaid").'+'.$langs->trans("BillShortStatusPaid"), '3'=>$langs->trans("BillShortStatusCanceled"));
$liststatus = array('0'=>$langs->trans("BillShortStatusDraft"), '0,1'=>$langs->trans("BillShortStatusDraft").'+'.$langs->trans("BillShortStatusNotPaid"), '1'=>$langs->trans("BillShortStatusNotPaid"), '1,2'=>$langs->trans("BillShortStatusNotPaid").'+'.$langs->trans("BillShortStatusPaid"), '2'=>$langs->trans("BillShortStatusPaid"), '3'=>$langs->trans("BillShortStatusCanceled"));
print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', '', 1);
print '</td>';
}
@ -1771,6 +1771,7 @@ if ($resql) {
$facturestatic->situation_cycle_ref = $obj->situation_cycle_ref;
$facturestatic->situation_counter = $obj->situation_counter;
}
$companystatic->id = $obj->socid;
$companystatic->name = $obj->name;
$companystatic->name_alias = $obj->alias;
@ -2418,7 +2419,7 @@ if ($resql) {
// Status
if (!empty($arrayfields['f.fk_statut']['checked'])) {
print '<td class="nowrap right">';
print $facturestatic->LibStatut($obj->paye, $obj->fk_statut, 5, $paiement, $obj->type);
print $facturestatic->getLibStatut(5, $paiement);
print "</td>";
if (!$i) {
$totalarray['nbfield']++;

View File

@ -250,6 +250,7 @@ if ($date_endyear) {
print '<table class="noborder centpercent">';
print '<tr class="liste_titre">';
if ($modecompta == 'BOOKKEEPING') {
print_liste_field_titre("PredefinedGroups", $_SERVER["PHP_SELF"], 'f.thirdparty_code,f.rowid', '', $param, '', $sortfield, $sortorder, 'width200 ');
} else {
@ -261,6 +262,8 @@ if ($modecompta == 'BOOKKEEPING') {
} else {
if ($modecompta == 'CREANCES-DETTES') {
print_liste_field_titre("AmountHT", $_SERVER["PHP_SELF"], 'amount_ht', '', $param, 'class="right"', $sortfield, $sortorder);
} else {
print_liste_field_titre(''); // Make 4 columns in total whatever $modecompta is
}
print_liste_field_titre("AmountTTC", $_SERVER["PHP_SELF"], 'amount_ttc', '', $param, 'class="right"', $sortfield, $sortorder);
}
@ -1525,18 +1528,24 @@ print '</tr>';
print '<tr class="liste_total"><td class="left" colspan="2">'.$langs->trans("Income").'</td>';
if ($modecompta == 'CREANCES-DETTES') {
print '<td class="liste_total right">'.price(price2num($total_ht_income, 'MT')).'</td>';
} else {
print '<td></td>';
}
print '<td class="liste_total right">'.price(price2num($total_ttc_income, 'MT')).'</td>';
print '</tr>';
print '<tr class="liste_total"><td class="left" colspan="2">'.$langs->trans("Outcome").'</td>';
if ($modecompta == 'CREANCES-DETTES') {
print '<td class="liste_total right">'.price(price2num(-$total_ht_outcome, 'MT')).'</td>';
} else {
print '<td></td>';
}
print '<td class="liste_total right">'.price(price2num(-$total_ttc_outcome, 'MT')).'</td>';
print '</tr>';
print '<tr class="liste_total"><td class="left" colspan="2">'.$langs->trans("Profit").'</td>';
if ($modecompta == 'CREANCES-DETTES') {
print '<td class="liste_total right">'.price(price2num($total_ht, 'MT')).'</td>';
} else {
print '<td></td>';
}
print '<td class="liste_total right">'.price(price2num($total_ttc, 'MT')).'</td>';
print '</tr>';

View File

@ -192,7 +192,7 @@ if ($action == 'add' && $user->rights->tax->charges->creer) {
} elseif (!$dateperiod) {
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Period")), null, 'errors');
$action = 'create';
} elseif (!$actioncode > 0) {
} elseif (!($actioncode > 0)) {
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Type")), null, 'errors');
$action = 'create';
} elseif (empty($amount)) {

View File

@ -375,7 +375,7 @@ if (empty($reshook)) {
$newfile = $dir.'/'.dol_sanitizeFileName($_FILES['photo']['name']);
$result = dol_move_uploaded_file($_FILES['photo']['tmp_name'], $newfile, 1);
if (!$result > 0) {
if (!($result > 0)) {
$errors[] = "ErrorFailedToSaveFile";
} else {
$object->photo = dol_sanitizeFileName($_FILES['photo']['name']);

View File

@ -33,6 +33,7 @@ require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php';
require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print')
$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : str_replace('_', '', basename(dirname(__FILE__)).basename(__FILE__, '.php')); // To manage different context of search
$id = GETPOST('id', 'int');
@ -46,7 +47,7 @@ if (empty($object->thirdparty)) {
$socid = $object->thirdparty->id;
// Sort & Order fields
$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit;
$sortfield = GETPOST('sortfield', 'aZ09comma');
$sortorder = GETPOST('sortorder', 'aZ09comma');
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
@ -230,7 +231,7 @@ if ($type_element == 'fichinter') { // Customer : show products from invoices
$tables_from .= ' INNER JOIN '.MAIN_DB_PREFIX.'element_contact ec ON ec.element_id=c.rowid AND ec.fk_socpeople = '.((int) $object->id);
$tables_from .= ' INNER JOIN '.MAIN_DB_PREFIX."c_type_contact tc ON (ec.fk_c_type_contact=tc.rowid and tc.element='propal' and tc.source='external' and tc.active=1)";
$where = ' WHERE c.entity IN ('.getEntity('propal').')';
$datePrint = 'c.datep';
$dateprint = 'c.datep';
$doc_number = 'c.ref';
$thirdTypeSelect = 'customer';
} elseif ($type_element == 'order') {
@ -443,6 +444,8 @@ if ($sql_select) {
$i = 0;
$total_qty = 0;
$total_ht = 0;
while (($objp = $db->fetch_object($resql)) && $i < min($num, $limit)) {
$documentstatic->id = $objp->doc_id;
$documentstatic->ref = $objp->doc_number;

View File

@ -76,7 +76,11 @@ if ($id) {
$linkback = '<a href="'.DOL_URL_ROOT.'/contact/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
$morehtmlref = '<div class="refidno">';
$morehtmlref = '<a href="'.DOL_URL_ROOT.'/contact/vcard.php?id='.$object->id.'" class="refid">';
$morehtmlref .= img_picto($langs->trans("Download").' '.$langs->trans("VCard"), 'vcard.png', 'class="valignmiddle marginleftonly paddingrightonly"');
$morehtmlref .= '</a>';
$morehtmlref .= '<div class="refidno">';
if (empty($conf->global->SOCIETE_DISABLE_CONTACTS) && !empty($socid)) {
$object->thirdparty->fetch($socid);
// Thirdparty

View File

@ -44,7 +44,6 @@ if ($result <= 0) {
exit;
}
$physicalperson = 1;
$company = new Societe($db);
if ($contact->socid) {
@ -107,7 +106,7 @@ if ($company->id) {
}
// Si contact lie a un tiers non de type "particulier"
if ($contact->typent_code != 'TE_PRIVATE') {
if ($company->typent_code != 'TE_PRIVATE') {
$v->setOrg($company->name);
}
}

View File

@ -77,7 +77,7 @@ if (!isset($mode) || $mode != 'noajax') { // For ajax call
$ecmdir = new EcmDirectory($db);
if ($section > 0) {
$result = $ecmdir->fetch($section);
if (!$result > 0) {
if (!($result > 0)) {
//dol_print_error($db,$ecmdir->error);
//exit;
}
@ -90,7 +90,7 @@ if (!isset($mode) || $mode != 'noajax') { // For ajax call
$relativepath = '';
if ($section > 0) {
$result = $ecmdir->fetch($section);
if (!$result > 0) {
if (!($result > 0)) {
dol_print_error($db, $ecmdir->error);
exit;
}

View File

@ -53,12 +53,13 @@ if (is_numeric($entity)) {
define("DOLENTITY", $entity);
}
include '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$action = GETPOST('action', 'aZ09');
$signature = GETPOST('signaturebase64');
$ref = GETPOST('ref', 'aZ09');
$mode = GETPOST('mode', 'aZ09');
$mode = GETPOST('mode', 'aZ09'); // 'proposal', ...
$SECUREKEY = GETPOST("securekey"); // Secure key
$error = 0;
@ -69,7 +70,7 @@ $type = $mode;
// Check securitykey
$securekeyseed = '';
if ($type == 'proposal') {
$securekeyseed = isset($conf->global->PROPOSAL_ONLINE_SIGNATURE_SECURITY_TOKEN) ? $conf->global->PROPOSAL_ONLINE_SIGNATURE_SECURITY_TOKEN : '';
$securekeyseed = getDolGlobalString('PROPOSAL_ONLINE_SIGNATURE_SECURITY_TOKEN');
}
if (empty($SECUREKEY) || !dol_verifyHash($securekeyseed.$type.$ref, $SECUREKEY, '0')) {
@ -123,33 +124,64 @@ if ($action == "importSignature") {
if (!$error) {
// Defined modele of doc
$directdownloadlink = $object->getLastMainDocLink('proposal');
$last_main_doc_file = $object->last_main_doc;
$directdownloadlink = $object->getLastMainDocLink('proposal'); // url to download the $object->last_main_doc
if (preg_match('/\.pdf/i', $directdownloadlink)) {
if (preg_match('/\.pdf/i', $last_main_doc_file)) {
// TODO Use the $last_main_doc_file to defined the $newpdffilename and $sourcefile
$newpdffilename = $upload_dir.$ref."_signed-".$date.".pdf";
$sourcefile = $upload_dir.$ref.".pdf";
if (dol_is_file($sourcefile)) {
// We build the new PDF
$pdf = pdf_getInstance();
$pdf->Open();
$pdf->AddPage();
$pagecount = $pdf->setSourceFile($sourcefile); // original PDF
if (class_exists('TCPDF')) {
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
}
$pdf->SetFont(pdf_getPDFFont($langs));
for ($i=1; $i<($pagecount+1); $i++) {
if ($i>1) $pdf->AddPage();
$tppl=$pdf->importPage($i);
$pdf->useTemplate($tppl);
if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) {
$pdf->SetCompression(false);
}
$pdf->Image($upload_dir.$filename, 129, 239.6, 60, 15); // FIXME Position will be wrong with non A4 format. Use a value from width and height of page minus relative offset.
$pdf->Close();
//$pdf->Open();
$pagecount = $pdf->setSourceFile($sourcefile); // original PDF
$s = array(); // Array with size of each page. Exemple array(w'=>210, 'h'=>297);
for ($i=1; $i<($pagecount+1); $i++) {
try {
$tppl = $pdf->importPage($i);
$s = $pdf->getTemplatesize($tppl);
$pdf->AddPage($s['h'] > $s['w'] ? 'P' : 'L');
$pdf->useTemplate($tppl);
} catch (Exception $e) {
dol_syslog("Error when manipulating some PDF by onlineSign: ".$e->getMessage(), LOG_ERR);
$response = $e->getMessage();
$error++;
}
}
// A signature image file is 720 x 180 (ratio 1/4) but we use only the size into PDF
// TODO Get position of box from PDF template
$xforimgstart = (empty($s['w']) ? 120 : round($s['w'] / 2) + 15);
$yforimgstart = (empty($s['h']) ? 240 : $s['h'] - 60);
$wforimg = $s['w'] - 20 - $xforimgstart;
$pdf->Image($upload_dir.$filename, $xforimgstart, $yforimgstart, $wforimg, round($wforimg / 4));
//$pdf->Close();
$pdf->Output($newpdffilename, "F");
// Index the new file and update the last_main_doc property of object.
$object->indexFile($newpdffilename, 1);
}
} elseif (preg_match('/\.odt/i', $last_main_doc_file)) {
// Adding signature on .ODT not yet supported
// TODO
} else {
// Adding signature on doc not yet supported
// Document format not supported to insert online signature.
// We should just create an image file with the signature.
}
}

View File

@ -885,6 +885,30 @@ class CMailFile
$storage = new DoliStorage($db, $conf);
try {
$tokenobj = $storage->retrieveAccessToken($OAUTH_SERVICENAME);
$expire = false;
// Is token expired or will token expire in the next 30 seconds
if (is_object($tokenobj)) {
$expire = ($tokenobj->getEndOfLife() !== -9002 && $tokenobj->getEndOfLife() !== -9001 && time() > ($tokenobj->getEndOfLife() - 30));
}
// Token expired so we refresh it
if (is_object($tokenobj) && $expire) {
$credentials = new Credentials(
getDolGlobalString('OAUTH_'.getDolGlobalString('MAIN_MAIL_SMTPS_OAUTH_SERVICE').'_ID'),
getDolGlobalString('OAUTH_'.getDolGlobalString('MAIN_MAIL_SMTPS_OAUTH_SERVICE').'_SECRET'),
getDolGlobalString('OAUTH_'.getDolGlobalString('MAIN_MAIL_SMTPS_OAUTH_SERVICE').'_URLAUTHORIZE')
);
$serviceFactory = new \OAuth\ServiceFactory();
$oauthname = explode('-', $OAUTH_SERVICENAME);
// ex service is Google-Emails we need only the first part Google
$apiService = $serviceFactory->createService($oauthname[0], $credentials, $storage, array());
// We have to save the token because Google give it only once
$refreshtoken = $tokenobj->getRefreshToken();
$tokenobj = $apiService->refreshAccessToken($tokenobj);
$tokenobj->setRefreshToken($refreshtoken);
$storage->storeAccessToken($OAUTH_SERVICENAME, $tokenobj);
}
$tokenobj = $storage->retrieveAccessToken($OAUTH_SERVICENAME);
if (is_object($tokenobj)) {
$this->smtps->setToken($tokenobj->getAccessToken());
@ -1001,7 +1025,7 @@ class CMailFile
$oauthname = explode('-', $OAUTH_SERVICENAME);
// ex service is Google-Emails we need only the first part Google
$apiService = $serviceFactory->createService($oauthname[0], $credentials, $storage, array());
// il faut sauvegarder le refresh token car google ne le donne qu'une seule fois
// We have to save the token because Google give it only once
$refreshtoken = $tokenobj->getRefreshToken();
$tokenobj = $apiService->refreshAccessToken($tokenobj);
$tokenobj->setRefreshToken($refreshtoken);

View File

@ -574,8 +574,13 @@ abstract class CommonInvoice extends CommonObject
$labelStatus = $langs->transnoentitiesnoconv('BillStatusDraft');
$labelStatusShort = $langs->transnoentitiesnoconv('Bill'.$prefix.'StatusDraft');
} elseif (($status == 3 || $status == 2) && $alreadypaid <= 0) {
$labelStatus = $langs->transnoentitiesnoconv('BillStatusClosedUnpaid');
$labelStatusShort = $langs->transnoentitiesnoconv('Bill'.$prefix.'StatusClosedUnpaid');
if ($status == 3) {
$labelStatus = $langs->transnoentitiesnoconv('BillStatusCanceled');
$labelStatusShort = $langs->transnoentitiesnoconv('Bill'.$prefix.'StatusCanceled');
} else {
$labelStatus = $langs->transnoentitiesnoconv('BillStatusClosedUnpaid');
$labelStatusShort = $langs->transnoentitiesnoconv('Bill'.$prefix.'StatusClosedUnpaid');
}
$statusType = 'status5';
} elseif (($status == 3 || $status == 2) && $alreadypaid > 0) {
$labelStatus = $langs->transnoentitiesnoconv('BillStatusClosedPaidPartially');

View File

@ -1043,7 +1043,8 @@ abstract class CommonObject
// Add entry into index
if ($initsharekey) {
require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php';
// TODO We can't, we dont' have full path of file, only last_main_doc adn ->element, so we must rebuild full path first
// TODO We can't, we dont' have full path of file, only last_main_doc and ->element, so we must first rebuild full path $destfull
/*
$ecmfile->filepath = $rel_dir;
$ecmfile->filename = $filename;
@ -4941,7 +4942,7 @@ abstract class CommonObject
*
* @param string $action GET/POST action
* @param CommonObjectLine $line Selected object line to output
* @param string $var Is it a an odd line (true)
* @param string $var Not used
* @param int $num Number of line (0)
* @param int $i I
* @param int $dateSelector 1=Show also date range input fields

View File

@ -1018,7 +1018,9 @@ class Conf
}
if (empty($handler_file_found)) {
throw new Exception('Missing log handler file '.$handler.'.php');
// If log handler has been removed of is badly setup, we must be able to continue code.
//throw new Exception('Missing log handler file '.$handler.'.php');
continue;
}
require_once $handler_file_found;

View File

@ -233,21 +233,21 @@ class Form
}
if (preg_match('/^(string|safehtmlstring|email)/', $typeofdata)) {
$tmp = explode(':', $typeofdata);
$ret .= '<input type="text" id="'.$htmlname.'" name="'.$htmlname.'" value="'.($editvalue ? $editvalue : $value).'"'.($tmp[1] ? ' size="'.$tmp[1].'"' : '').' autofocus>';
$ret .= '<input type="text" id="'.$htmlname.'" name="'.$htmlname.'" value="'.($editvalue ? $editvalue : $value).'"'.(empty($tmp[1]) ? '' : ' size="'.$tmp[1].'"').' autofocus>';
} elseif (preg_match('/^(integer)/', $typeofdata)) {
$tmp = explode(':', $typeofdata);
$valuetoshow = price2num($editvalue ? $editvalue : $value, 0);
$ret .= '<input type="text" id="'.$htmlname.'" name="'.$htmlname.'" value="'.$valuetoshow.'"'.($tmp[1] ? ' size="'.$tmp[1].'"' : '').' autofocus>';
$ret .= '<input type="text" id="'.$htmlname.'" name="'.$htmlname.'" value="'.$valuetoshow.'"'.(empty($tmp[1]) ? '' : ' size="'.$tmp[1].'"').' autofocus>';
} elseif (preg_match('/^(numeric|amount)/', $typeofdata)) {
$tmp = explode(':', $typeofdata);
$valuetoshow = price2num($editvalue ? $editvalue : $value);
$ret .= '<input type="text" id="'.$htmlname.'" name="'.$htmlname.'" value="'.($valuetoshow != '' ? price($valuetoshow) : '').'"'.($tmp[1] ? ' size="'.$tmp[1].'"' : '').' autofocus>';
$ret .= '<input type="text" id="'.$htmlname.'" name="'.$htmlname.'" value="'.($valuetoshow != '' ? price($valuetoshow) : '').'"'.(empty($tmp[1]) ? '' : ' size="'.$tmp[1].'"').' autofocus>';
} elseif (preg_match('/^(checkbox)/', $typeofdata)) {
$tmp = explode(':', $typeofdata);
$ret .= '<input type="checkbox" id="' . $htmlname . '" name="' . $htmlname . '" value="' . $value . '"' . ($tmp[1] ? $tmp[1] : '') . '/>';
$ret .= '<input type="checkbox" id="' . $htmlname . '" name="' . $htmlname . '" value="' . $value . '"' . (empty($tmp[1]) ? '' : $tmp[1]) . '/>';
} elseif (preg_match('/^text/', $typeofdata) || preg_match('/^note/', $typeofdata)) { // if wysiwyg is enabled $typeofdata = 'ckeditor'
$tmp = explode(':', $typeofdata);
$cols = $tmp[2];
$cols = (empty($tmp[2]) ? '' : $tmp[2]);
$morealt = '';
if (preg_match('/%/', $cols)) {
$morealt = ' style="width: '.$cols.'"';
@ -255,7 +255,7 @@ class Form
}
$valuetoshow = ($editvalue ? $editvalue : $value);
$ret .= '<textarea id="'.$htmlname.'" name="'.$htmlname.'" wrap="soft" rows="'.($tmp[1] ? $tmp[1] : '20').'"'.($cols ? ' cols="'.$cols.'"' : 'class="quatrevingtpercent"').$morealt.'" autofocus>';
$ret .= '<textarea id="'.$htmlname.'" name="'.$htmlname.'" wrap="soft" rows="'.(empty($tmp[1]) ? '20' : $tmp[1]).'"'.($cols ? ' cols="'.$cols.'"' : 'class="quatrevingtpercent"').$morealt.'" autofocus>';
// textarea convert automatically entities chars into simple chars.
// So we convert & into &amp; so a string like 'a &lt; <b>b</b><br>é<br>&lt;script&gt;alert('X');&lt;script&gt;' stay a correct html and is not converted by textarea component when wysiwig is off.
$valuetoshow = str_replace('&', '&amp;', $valuetoshow);
@ -277,7 +277,7 @@ class Form
} elseif (preg_match('/^ckeditor/', $typeofdata)) {
$tmp = explode(':', $typeofdata); // Example: ckeditor:dolibarr_zzz:width:height:savemethod:toolbarstartexpanded:rows:cols:uselocalbrowser
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
$doleditor = new DolEditor($htmlname, ($editvalue ? $editvalue : $value), ($tmp[2] ? $tmp[2] : ''), ($tmp[3] ? $tmp[3] : '100'), ($tmp[1] ? $tmp[1] : 'dolibarr_notes'), 'In', ($tmp[5] ? $tmp[5] : 0), (isset($tmp[8]) ? ($tmp[8] ?true:false) : true), true, ($tmp[6] ? $tmp[6] : '20'), ($tmp[7] ? $tmp[7] : '100'));
$doleditor = new DolEditor($htmlname, ($editvalue ? $editvalue : $value), (empty($tmp[2]) ? '' : $tmp[2]), (empty($tmp[3]) ? '100' : $tmp[3]), (empty($tmp[1]) ? 'dolibarr_notes' : $tmp[1]), 'In', (empty($tmp[5]) ? 0 : $tmp[5]), (isset($tmp[8]) ? ($tmp[8] ? true : false) : true), true, (empty($tmp[6]) ? '20' : $tmp[6]), (empty($tmp[7]) ? '100' : $tmp[7]));
$ret .= $doleditor->Create(1);
}
if (empty($notabletag)) {
@ -5034,7 +5034,7 @@ class Form
$more .= '<div clas="tagtd'.(empty($input['tdclass']) ? '' : (' "'.$input['tdclass'])).'">&nbsp;</div>';
}
$more .= '<div class="tagtd'.($i == 0 ? ' tdtop' : '').'"><input type="radio" class="flat'.$morecss.'" id="'.dol_escape_htmltag($input['name'].$selkey).'" name="'.dol_escape_htmltag($input['name']).'" value="'.$selkey.'"'.$moreattr;
if ($input['disabled']) {
if (!empty($input['disabled'])) {
$more .= ' disabled';
}
if (isset($input['default']) && $input['default'] === $selkey) {

View File

@ -1806,7 +1806,7 @@ class FormFile
}
}
if (!$found > 0 || !is_object($this->cache_objects[$modulepart.'_'.$id.'_'.$ref])) {
if ($found <= 0 || !is_object($this->cache_objects[$modulepart.'_'.$id.'_'.$ref])) {
continue; // We do not show orphelins files
}

View File

@ -93,19 +93,19 @@ $object = null;
$ObjectClassName = '';
// Objects available by default
$arrayoftype = array(
'thirdparty' => array('label' => 'ThirdParties', 'ObjectClassName' => 'Societe', 'enabled' => $conf->societe->enabled, 'ClassPath' => "/societe/class/societe.class.php"),
'contact' => array('label' => 'Contacts', 'ObjectClassName' => 'Contact', 'enabled' => $conf->societe->enabled, 'ClassPath' => "/contact/class/contact.class.php"),
'proposal' => array('label' => 'Proposals', 'ObjectClassName' => 'Propal', 'enabled' => $conf->propal->enabled, 'ClassPath' => "/comm/propal/class/propal.class.php"),
'order' => array('label' => 'Orders', 'ObjectClassName' => 'Commande', 'enabled' => $conf->commande->enabled, 'ClassPath' => "/commande/class/commande.class.php"),
'invoice' => array('label' => 'Invoices', 'ObjectClassName' => 'Facture', 'enabled' => $conf->facture->enabled, 'ClassPath' => "/compta/facture/class/facture.class.php"),
'invoice_template'=>array('label' => 'PredefinedInvoices', 'ObjectClassName' => 'FactureRec', 'enabled' => $conf->facture->enabled, 'ClassPath' => "/compta/class/facturerec.class.php", 'langs'=>'bills'),
'contract' => array('label' => 'Contracts', 'ObjectClassName' => 'Contrat', 'enabled' => $conf->contrat->enabled, 'ClassPath' => "/contrat/class/contrat.class.php", 'langs'=>'contracts'),
'contractdet' => array('label' => 'ContractLines', 'ObjectClassName' => 'ContratLigne', 'enabled' => $conf->contrat->enabled, 'ClassPath' => "/contrat/class/contrat.class.php", 'langs'=>'contracts'),
'bom' => array('label' => 'BOM', 'ObjectClassName' => 'Bom', 'enabled' => $conf->bom->enabled),
'mo' => array('label' => 'MO', 'ObjectClassName' => 'Mo', 'enabled' => $conf->mrp->enabled, 'ClassPath' => "/mrp/class/mo.class.php"),
'ticket' => array('label' => 'Ticket', 'ObjectClassName' => 'Ticket', 'enabled' => $conf->ticket->enabled),
'member' => array('label' => 'Adherent', 'ObjectClassName' => 'Adherent', 'enabled' => $conf->adherent->enabled, 'ClassPath' => "/adherents/class/adherent.class.php", 'langs'=>'members'),
'cotisation' => array('label' => 'Subscriptions', 'ObjectClassName' => 'Subscription', 'enabled' => $conf->adherent->enabled, 'ClassPath' => "/adherents/class/subscription.class.php", 'langs'=>'members'),
'thirdparty' => array('label' => 'ThirdParties', 'ObjectClassName' => 'Societe', 'enabled' => isModEnabled('societe'), 'ClassPath' => "/societe/class/societe.class.php"),
'contact' => array('label' => 'Contacts', 'ObjectClassName' => 'Contact', 'enabled' => isModEnabled('societ'), 'ClassPath' => "/contact/class/contact.class.php"),
'proposal' => array('label' => 'Proposals', 'ObjectClassName' => 'Propal', 'enabled' => isModEnabled('propal'), 'ClassPath' => "/comm/propal/class/propal.class.php"),
'order' => array('label' => 'Orders', 'ObjectClassName' => 'Commande', 'enabled' => isModEnabled('commande'), 'ClassPath' => "/commande/class/commande.class.php"),
'invoice' => array('label' => 'Invoices', 'ObjectClassName' => 'Facture', 'enabled' => isModEnabled('facture'), 'ClassPath' => "/compta/facture/class/facture.class.php"),
'invoice_template'=>array('label' => 'PredefinedInvoices', 'ObjectClassName' => 'FactureRec', 'enabled' => isModEnabled('facture'), 'ClassPath' => "/compta/class/facturerec.class.php", 'langs'=>'bills'),
'contract' => array('label' => 'Contracts', 'ObjectClassName' => 'Contrat', 'enabled' => isModEnabled('contrat'), 'ClassPath' => "/contrat/class/contrat.class.php", 'langs'=>'contracts'),
'contractdet' => array('label' => 'ContractLines', 'ObjectClassName' => 'ContratLigne', 'enabled' => isModEnabled('contrat'), 'ClassPath' => "/contrat/class/contrat.class.php", 'langs'=>'contracts'),
'bom' => array('label' => 'BOM', 'ObjectClassName' => 'Bom', 'enabled' => isModEnabled('bom')),
'mo' => array('label' => 'MO', 'ObjectClassName' => 'Mo', 'enabled' => isModEnabled('mrp'), 'ClassPath' => "/mrp/class/mo.class.php"),
'ticket' => array('label' => 'Ticket', 'ObjectClassName' => 'Ticket', 'enabled' => isModEnabled('ticket')),
'member' => array('label' => 'Adherent', 'ObjectClassName' => 'Adherent', 'enabled' => isModEnabled('adherent'), 'ClassPath' => "/adherents/class/adherent.class.php", 'langs'=>'members'),
'cotisation' => array('label' => 'Subscriptions', 'ObjectClassName' => 'Subscription', 'enabled' => isModEnabled('adherent'), 'ClassPath' => "/adherents/class/subscription.class.php", 'langs'=>'members'),
);
// Complete $arrayoftype by external modules

View File

@ -207,7 +207,7 @@ function dol_time_plus_duree($time, $duration_value, $duration_unit, $ruleforend
*/
function convertTime2Seconds($iHours = 0, $iMinutes = 0, $iSeconds = 0)
{
$iResult = ($iHours * 3600) + ($iMinutes * 60) + $iSeconds;
$iResult = ((int) $iHours * 3600) + ((int) $iMinutes * 60) + (int) $iSeconds;
return $iResult;
}
@ -243,6 +243,7 @@ function convertSecondToTime($iSecond, $format = 'all', $lengthOfDay = 86400, $l
if (empty($lengthOfWeek)) {
$lengthOfWeek = 7; // 1 week = 7 days
}
$nbHbyDay = $lengthOfDay / 3600;
if ($format == 'all' || $format == 'allwithouthour' || $format == 'allhour' || $format == 'allhourmin' || $format == 'allhourminsec') {
if ((int) $iSecond === 0) {
@ -290,11 +291,11 @@ function convertSecondToTime($iSecond, $format = 'all', $lengthOfDay = 86400, $l
$sTime .= dol_print_date($iSecond, 'hourduration', true);
}
} elseif ($format == 'allhourminsec') {
return sprintf("%02d", ($sWeek * $lengthOfWeek * 24 + $sDay * 24 + (int) floor($iSecond / 3600))).':'.sprintf("%02d", ((int) floor(($iSecond % 3600) / 60))).':'.sprintf("%02d", ((int) ($iSecond % 60)));
return sprintf("%02d", ($sWeek * $lengthOfWeek * $nbHbyDay + $sDay * $nbHbyDay + (int) floor($iSecond/3600))).':'.sprintf("%02d", ((int) floor(($iSecond % 3600) / 60))).':'.sprintf("%02d", ((int) ($iSecond % 60)));
} elseif ($format == 'allhourmin') {
return sprintf("%02d", ($sWeek * $lengthOfWeek * 24 + $sDay * 24 + (int) floor($iSecond / 3600))).':'.sprintf("%02d", ((int) floor(($iSecond % 3600) / 60)));
return sprintf("%02d", ($sWeek * $lengthOfWeek * $nbHbyDay + $sDay * $nbHbyDay + (int) floor($iSecond/3600))).':'.sprintf("%02d", ((int) floor(($iSecond % 3600)/60)));
} elseif ($format == 'allhour') {
return sprintf("%02d", ($sWeek * $lengthOfWeek * 24 + $sDay * 24 + (int) floor($iSecond / 3600)));
return sprintf("%02d", ($sWeek * $lengthOfWeek * $nbHbyDay + $sDay * $nbHbyDay + (int) floor($iSecond/3600)));
}
} elseif ($format == 'hour') { // only hour part
$sTime = dol_print_date($iSecond, '%H', true);
@ -899,6 +900,15 @@ function num_public_holiday($timestampStart, $timestampEnd, $country_code = '',
}
// Fronleichnam
}
if (in_array('genevafast', $specialdayrule)) {
// Geneva fast in Switzerland (Thursday after the first sunday in September)
$date_1sunsept = strtotime('next thursday', strtotime('next sunday', mktime(0, 0, 0, 9, 1, $annee)));
$jour_1sunsept = date("d", $date_1sunsept);
$mois_1sunsept = date("m", $date_1sunsept);
if ($jour_1sunsept == $jour && $mois_1sunsept == $mois) $ferie=true;
// Geneva fast in Switzerland
}
}
//print "ferie=".$ferie."\n";

View File

@ -233,19 +233,20 @@ function dol_imageResizeOrCrop($file, $mode, $newWidth, $newHeight, $src_x = 0,
if ($filetowrite) {
$imgfonction = '';
switch ($newExt) {
case 'gif': // IMG_GIF
case 'gif': // IMG_GIF
$imgfonction = 'imagecreatefromgif';
break;
case 'jpg': // IMG_JPG
case 'jpg': // IMG_JPG
case 'jpeg': // IMG_JPEG
$imgfonction = 'imagecreatefromjpeg';
break;
case 'png': // IMG_PNG
case 'png': // IMG_PNG
$imgfonction = 'imagecreatefrompng';
break;
case 'bmp': // IMG_WBMP
case 'bmp': // IMG_WBMP
$imgfonction = 'imagecreatefromwbmp';
break;
case 'webp': // IMG_WEBP
case 'webp': // IMG_WEBP
$imgfonction = 'imagecreatefromwebp';
break;
}
@ -300,12 +301,14 @@ function dol_imageResizeOrCrop($file, $mode, $newWidth, $newHeight, $src_x = 0,
}
// Set transparent color according to image extension
$trans_colour = -1; // By default, undefined
switch ($newExt) {
case 'gif': // Gif
$trans_colour = imagecolorallocate($imgTarget, 255, 255, 255); // On procede autrement pour le format GIF
imagecolortransparent($imgTarget, $trans_colour);
break;
case 'jpg': // Jpg
case 'jpeg': // Jpeg
$trans_colour = imagecolorallocatealpha($imgTarget, 255, 255, 255, 0);
break;
case 'png': // Png
@ -319,11 +322,11 @@ function dol_imageResizeOrCrop($file, $mode, $newWidth, $newHeight, $src_x = 0,
$trans_colour = imagecolorallocatealpha($imgTarget, 255, 255, 255, 127);
break;
}
if (function_exists("imagefill")) {
if (function_exists("imagefill") && $trans_colour > 0) {
imagefill($imgTarget, 0, 0, $trans_colour);
}
dol_syslog("dol_imageResizeOrCrop: convert image from ($imgWidth x $imgHeight) at position ($src_x x $src_y) to ($newWidth x $newHeight) as $extImg");
dol_syslog("dol_imageResizeOrCrop: convert image from ($imgWidth x $imgHeight) at position ($src_x x $src_y) to ($newWidth x $newHeight) as a $extImg");
//imagecopyresized($imgTarget, $img, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $imgWidth, $imgHeight); // Insere l'image de base redimensionnee
imagecopyresampled($imgTarget, $img, 0, 0, $src_x, $src_y, $newWidth, $newHeight, ($mode == 0 ? $imgWidth : $newWidth), ($mode == 0 ? $imgHeight : $newHeight)); // Insere l'image de base redimensionnee
@ -338,6 +341,7 @@ function dol_imageResizeOrCrop($file, $mode, $newWidth, $newHeight, $src_x = 0,
imagegif($imgTarget, $imgTargetName);
break;
case 'jpg': // Jpg
case 'jpeg': // Jpeg
$newquality = ($newquality ? $newquality : '100'); // % quality maximum
imagejpeg($imgTarget, $imgTargetName, $newquality);
break;
@ -353,6 +357,8 @@ function dol_imageResizeOrCrop($file, $mode, $newWidth, $newHeight, $src_x = 0,
$newquality = ($newquality ? $newquality : '100'); // % quality maximum
imagewebp($imgTarget, $imgTargetName, $newquality);
break;
default:
dol_syslog("images.lib.php::imageResizeOrCrop() Format ".$newExt." is not supported", LOG_WARNING);
}
// Set permissions on file

View File

@ -82,7 +82,8 @@ class mod_expensereport_sand extends ModeleNumRefExpenseReport
// Parametrage du prefix
$texte .= '<tr><td>'.$langs->trans("Mask").':</td>';
$texte .= '<td class="right">'.$form->textwithpicto('<input type="text" class="flat minwidth175" name="maskvalue" value="'.$conf->global->EXPENSEREPORT_SAND_MASK.'">', $tooltip, 1, 1).'</td>';
$mask = empty($conf->global->EXPENSEREPORT_SAND_MASK) ? '' : $conf->global->EXPENSEREPORT_SAND_MASK;
$texte .= '<td class="right">'.$form->textwithpicto('<input type="text" class="flat minwidth175" name="maskvalue" value="'.$mask.'">', $tooltip, 1, 1).'</td>';
$texte .= '<td class="left" rowspan="2">&nbsp; <input type="submit" class="button button-edit" name="Button" value="'.$langs->trans("Modify").'"></td>';
@ -128,7 +129,7 @@ class mod_expensereport_sand extends ModeleNumRefExpenseReport
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
// We get cursor rule
$mask = $conf->global->EXPENSEREPORT_SAND_MASK;
$mask = empty($conf->global->EXPENSEREPORT_SAND_MASK) ? '' : $conf->global->EXPENSEREPORT_SAND_MASK;
if (!$mask) {
$this->error = 'NotConfigured';

View File

@ -56,7 +56,7 @@ class modEventOrganization extends DolibarrModules
$this->description = "EventOrganizationDescription";
$this->descriptionlong = "EventOrganizationDescriptionLong";
$this->version = 'experimental';
$this->version = 'dolibarr';
// Key used in llx_const table to save module status enabled/disabled (where EVENTORGANIZATION is value of property name of module in uppercase)

View File

@ -85,7 +85,8 @@ class mod_propale_saphir extends ModeleNumRefPropales
// Parametrage du prefix
$texte .= '<tr><td>'.$langs->trans("Mask").':</td>';
$texte .= '<td class="right">'.$form->textwithpicto('<input type="text" class="flat minwidth175" name="maskpropal" value="'.$conf->global->PROPALE_SAPHIR_MASK.'">', $tooltip, 1, 1).'</td>';
$mask = empty($conf->global->PROPALE_SAPHIR_MASK) ? '' : $conf->global->PROPALE_SAPHIR_MASK;
$texte .= '<td class="right">'.$form->textwithpicto('<input type="text" class="flat minwidth175" name="maskpropal" value="'.$mask.'">', $tooltip, 1, 1).'</td>';
$texte .= '<td class="left" rowspan="2">&nbsp; <input type="submit" class="button button-edit" name="Button"value="'.$langs->trans("Modify").'"></td>';
@ -134,7 +135,7 @@ class mod_propale_saphir extends ModeleNumRefPropales
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
// On defini critere recherche compteur
$mask = $conf->global->PROPALE_SAPHIR_MASK;
$mask = empty($conf->global->PROPALE_SAPHIR_MASK) ? '' : $conf->global->PROPALE_SAPHIR_MASK;
if (!$mask) {
$this->error = 'NotConfigured';

View File

@ -123,7 +123,7 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup
$texte .= '<input type="hidden" name="page_y" value="">';
$texte .= '<input type="hidden" name="action" value="setModuleOptions">';
$texte .= '<input type="hidden" name="param1" value="USERGROUP_ADDON_PDF_ODT_PATH">';
if ($conf->global->MAIN_PROPAL_CHOOSE_ODT_DOCUMENT > 0) {
if (!empty($conf->global->MAIN_PROPAL_CHOOSE_ODT_DOCUMENT)) {
$texte .= '<input type="hidden" name="param2" value="USERGROUP_ADDON_PDF_ODT_DEFAULT">';
$texte .= '<input type="hidden" name="param3" value="USERGROUP_ADDON_PDF_ODT_TOBILL">';
$texte .= '<input type="hidden" name="param4" value="USERGROUP_ADDON_PDF_ODT_CLOSED">';
@ -169,7 +169,7 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup
if (count($listofdir)) {
$texte .= $langs->trans("NumberOfModelFilesFound").': <b>'.count($listoffiles).'</b>';
if ($conf->global->MAIN_PROPAL_CHOOSE_ODT_DOCUMENT > 0) {
if (!empty($conf->global->MAIN_PROPAL_CHOOSE_ODT_DOCUMENT)) {
// Model for creation
$list = ModelePDFUserGroup::liste_modeles($this->db);
$texte .= '<table width="50%;">';

View File

@ -56,13 +56,13 @@ if ($modulepart == 'produit' || $modulepart == 'product' || $modulepart == 'serv
$accessallowed = 1;
} elseif ($modulepart == 'project') {
$result = restrictedArea($user, 'projet', $id);
if (!$user->rights->projet->lire) {
if (empty($user->rights->projet->lire)) {
accessforbidden();
}
$accessallowed = 1;
} elseif ($modulepart == 'bom') {
$result = restrictedArea($user, $modulepart, $id, 'bom_bom');
if (!$user->rights->bom->read) {
if (empty($user->rights->bom->read)) {
accessforbidden();
}
$accessallowed = 1;
@ -73,14 +73,14 @@ if ($modulepart == 'produit' || $modulepart == 'product' || $modulepart == 'serv
}
$accessallowed = 1;
} elseif ($modulepart == 'user') {
$result = restrictedArea($user, $modulepart, $id, $modulepart);
if (!$user->rights->user->user->lire) {
$result = restrictedArea($user, $modulepart, $id, $modulepart, $modulepart);
if (empty($user->rights->user->user->lire)) {
accessforbidden();
}
$accessallowed = 1;
} elseif ($modulepart == 'tax') {
$result = restrictedArea($user, $modulepart, $id, 'chargesociales', 'charges');
if (!$user->rights->tax->charges->lire) {
if (empty($user->rights->tax->charges->lire)) {
accessforbidden();
}
$accessallowed = 1;

View File

@ -48,6 +48,7 @@ if (!isset($dateSelector)) {
global $dateSelector; // Take global var only if not already defined into function calling (for example formAddObjectLine)
}
global $forceall, $forcetoshowtitlelines, $senderissupplier, $inputalsopricewithtax;
if (!isset($dateSelector)) {
$dateSelector = 1; // For backward compatibility
} elseif (empty($dateSelector)) {
@ -734,7 +735,7 @@ if (!empty($usemargins) && $user->rights->margins->creer) {
$.post('<?php echo DOL_URL_ROOT; ?>/product/ajax/products.php?action=fetch',
{ 'id': $(this).val(), 'socid': <?php print $object->socid; ?> },
function(data) {
console.log("Load unit price end, we got value "+data.price_ht);
console.log("Load unit price end, we got value ht="+data.price_ht+" ttc="+data.price_ttc+" pricebasetype="+data.pricebasetype);
$('#date_start').removeAttr('type');
$('#date_end').removeAttr('type');
@ -755,7 +756,11 @@ if (!empty($usemargins) && $user->rights->margins->creer) {
jQuery('#date_end').removeClass('inputmandatory');
}
jQuery("#price_ht").val(data.price_ht);
if (<?php echo (int) $inputalsopricewithtax; ?> == 1 && data.pricebasetype == 'TTC') {
jQuery("#price_ttc").val(data.price_ttc);
} else {
jQuery("#price_ht").val(data.price_ht);
}
<?php
if (!empty($conf->global->PRODUIT_AUTOFILL_DESC) && $conf->global->PRODUIT_AUTOFILL_DESC == 1) {
if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { ?>

View File

@ -280,17 +280,17 @@ print vatrate($positiverates.($line->vat_src_code ? ' ('.$line->vat_src_code.')'
//print vatrate($line->tva_tx.($line->vat_src_code?(' ('.$line->vat_src_code.')'):''), '%', $line->info_bits);
?></td>
<td class="linecoluht nowrap right"><?php $coldisplay++; ?><?php print price($sign * $line->subprice); ?></td>
<td class="linecoluht nowraponall right"><?php $coldisplay++; ?><?php print price($sign * $line->subprice); ?></td>
<?php if (!empty($conf->multicurrency->enabled) && $this->multicurrency_code != $conf->currency) { ?>
<td class="linecoluht_currency nowrap right"><?php $coldisplay++; ?><?php print price($sign * $line->multicurrency_subprice); ?></td>
<td class="linecoluht_currency nowraponall right"><?php $coldisplay++; ?><?php print price($sign * $line->multicurrency_subprice); ?></td>
<?php }
if ($inputalsopricewithtax) { ?>
<td class="linecoluttc nowrap right"><?php $coldisplay++; ?><?php print (isset($line->pu_ttc) ? price($sign * $line->pu_ttc) : price($sign * $line->subprice)); ?></td>
<td class="linecoluttc nowraponall right"><?php $coldisplay++; ?><?php print (isset($line->pu_ttc) ? price($sign * $line->pu_ttc) : price($sign * $line->subprice)); ?></td>
<?php } ?>
<td class="linecolqty nowrap right"><?php $coldisplay++; ?>
<td class="linecolqty nowraponall right"><?php $coldisplay++; ?>
<?php
if ((($line->info_bits & 2) != 2) && $line->special_code != 3) {
// I comment this because it shows info even when not required

View File

@ -63,7 +63,7 @@ if ($action == 'setvalue' && $user->admin) {
$result = dolibarr_set_const($db, $sub, GETPOST($sub), 'chaine', 0, '', $conf->entity);
$sub = "DATAPOLICIESREFUSE_".$l;
$result = dolibarr_set_const($db, $sub, GETPOST($sub), 'chaine', 0, '', $conf->entity);
if (!$result > 0) {
if (!($result > 0)) {
$error++;
}
if (!$error) {

View File

@ -120,7 +120,7 @@ if ($user->socid > 0) {
// For some module part, dir may be privates
if (in_array($modulepart, array('facture_paiement', 'unpaid'))) {
if (empty($user->hasRight('societe', 'client', 'voir')) || $socid) {
if (!$user->hasRight('societe', 'client', 'voir') || $socid) {
$original_file = 'private/'.$user->id.'/'.$original_file; // If user has no permission to see all, output dir is specific to user
}
}

View File

@ -111,7 +111,7 @@ if ($action == 'add_payment') {
if (!$error) {
$result = $payment->addPaymentToBank($user, 'payment_donation', '(DonationPayment)', GETPOST('accountid', 'int'), '', '');
if (!$result > 0) {
if (!($result > 0)) {
$errmsg = $payment->error;
setEventMessages($errmsg, null, 'errors');
$error++;

View File

@ -85,7 +85,7 @@ if (!$sortfield) {
$ecmdir = new EcmDirectory($db);
if (!empty($section)) {
$result = $ecmdir->fetch($section);
if (!$result > 0) {
if (!($result > 0)) {
dol_print_error($db, $ecmdir->error);
exit;
}

View File

@ -76,7 +76,7 @@ if (!$urlfile) {
// Load ecm object
$ecmdir = new EcmDirectory($db);
$result = $ecmdir->fetch(GETPOST("section", 'alpha'));
if (!$result > 0) {
if (!($result > 0)) {
dol_print_error($db, $ecmdir->error);
exit;
}

View File

@ -80,7 +80,7 @@ if (!$urlfile) {
// Load ecm object
$ecmdir = new EcmDirectory($db);
$result = $ecmdir->fetch(GETPOST("section", 'alpha'));
if (!$result > 0) {
if (!($result > 0)) {
dol_print_error($db, $ecmdir->error);
exit;
}

View File

@ -64,7 +64,7 @@ if (!$sortfield) {
$ecmdir = new EcmDirectory($db);
if ($section > 0) {
$result = $ecmdir->fetch($section);
if (!$result > 0) {
if (!($result > 0)) {
dol_print_error($db, $ecmdir->error);
exit;
}

View File

@ -74,7 +74,7 @@ if ($module == 'invoice_supplier' && $sortfield == "fullname") {
$ecmdir = new EcmDirectory($db);
if ($section) {
$result = $ecmdir->fetch($section);
if (!$result > 0) {
if (!($result > 0)) {
dol_print_error($db, $ecmdir->error);
exit;
}

View File

@ -78,7 +78,7 @@ if (!$sortfield) {
$ecmdir = new EcmDirectory($db);
if (!empty($section)) {
$result = $ecmdir->fetch($section);
if (!$result > 0) {
if (!($result > 0)) {
dol_print_error($db, $ecmdir->error);
exit;
}

View File

@ -752,7 +752,7 @@ class Expedition extends CommonObject
//var_dump($this->lines[$i]);
$mouvS = new MouvementStock($this->db);
//$mouvS->origin = dol_clone($this, 1);
$mouvS->setOrigin($this->element, $this->id);
if (empty($obj->edbrowid)) {

View File

@ -1950,7 +1950,7 @@ if ($action == 'create') {
// Payments already done (from payment on this expensereport)
$sql = "SELECT p.rowid, p.num_payment, p.datep as dp, p.amount, p.fk_bank,";
$sql .= "c.code as p_code, c.libelle as payment_type,";
$sql .= "c.code as payment_code, c.libelle as payment_type,";
$sql .= "ba.rowid as baid, ba.ref as baref, ba.label, ba.number as banumber, ba.account_number, ba.fk_accountancy_journal";
$sql .= " FROM ".MAIN_DB_PREFIX."expensereport as e, ".MAIN_DB_PREFIX."payment_expensereport as p";
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as c ON p.fk_typepayment = c.id";
@ -1969,18 +1969,20 @@ if ($action == 'create') {
$objp = $db->fetch_object($resql);
$paymentexpensereportstatic->id = $objp->rowid;
$paymentexpensereportstatic->datepaye = $db->jdate($objp->dp);
$paymentexpensereportstatic->datep = $db->jdate($objp->dp);
$paymentexpensereportstatic->ref = $objp->rowid;
$paymentexpensereportstatic->num_payment = $objp->num_payment;
$paymentexpensereportstatic->payment_code = $objp->payment_code;
$paymentexpensereportstatic->type_code = $objp->payment_code;
$paymentexpensereportstatic->type_label = $objp->payment_type;
print '<tr class="oddseven">';
print '<td>';
print $paymentexpensereportstatic->getNomUrl(1);
print '</td>';
print '<td>'.dol_print_date($db->jdate($objp->dp), 'day')."</td>\n";
$labeltype = $langs->trans("PaymentType".$objp->p_code) != ("PaymentType".$objp->p_code) ? $langs->trans("PaymentType".$objp->p_code) : $objp->payment_type;
$labeltype = $langs->trans("PaymentType".$objp->payment_code) != ("PaymentType".$objp->payment_code) ? $langs->trans("PaymentType".$objp->payment_code) : $objp->payment_type;
print "<td>".$labeltype.' '.$objp->num_payment."</td>\n";
// Bank account
if (!empty($conf->banque->enabled)) {
$bankaccountstatic->id = $objp->baid;
$bankaccountstatic->ref = $objp->baref;

View File

@ -137,14 +137,17 @@ class PaymentExpenseReport extends CommonObject
if (isset($this->note_public)) {
$this->note_public = trim($this->note_public);
}
if (isset($this->note_private)) {
$this->note_private = trim($this->note_private);
}
if (isset($this->fk_bank)) {
$this->fk_bank = trim($this->fk_bank);
$this->fk_bank = ((int) $this->fk_bank);
}
if (isset($this->fk_user_creat)) {
$this->fk_user_creat = trim($this->fk_user_creat);
$this->fk_user_creat = ((int) $this->fk_user_creat);
}
if (isset($this->fk_user_modif)) {
$this->fk_user_modif = trim($this->fk_user_modif);
$this->fk_user_modif = ((int) $this->fk_user_modif);
}
$totalamount = 0;
@ -170,7 +173,7 @@ class PaymentExpenseReport extends CommonObject
$sql .= " '".$this->db->idate($this->datepaid)."',";
$sql .= " ".price2num($totalamount).",";
$sql .= " ".((int) $this->fk_typepayment).", '".$this->db->escape($this->num_payment)."', '".$this->db->escape($this->note_public)."', ".((int) $user->id).",";
$sql .= " 0)";
$sql .= " 0)"; // fk_bank is ID of transaction into ll_bank
dol_syslog(get_class($this)."::create", LOG_DEBUG);
$resql = $this->db->query($sql);
@ -540,7 +543,7 @@ class PaymentExpenseReport extends CommonObject
);
// Update fk_bank in llx_paiement.
// On connait ainsi le paiement qui a genere l'ecriture bancaire
// So we wil know the payment that have generated the bank transaction
if ($bank_line_id > 0) {
$result = $this->update_fk_bank($bank_line_id);
if ($result <= 0) {
@ -585,6 +588,7 @@ class PaymentExpenseReport extends CommonObject
}
} else {
$this->error = $acc->error;
$this->errors = $acc->errors;
$error++;
}
}

View File

@ -75,6 +75,7 @@ if ($action == 'add_payment') {
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Date")), null, 'errors');
$error++;
}
if (!empty($conf->banque->enabled) && !($accountid > 0)) {
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountToDebit")), null, 'errors');
$error++;
@ -87,14 +88,16 @@ if ($action == 'add_payment') {
// Read possible payments
foreach ($_POST as $key => $value) {
if (substr($key, 0, 7) == 'amount_') {
$amounts[$expensereport->fk_user_author] = price2num(GETPOST($key));
$total += price2num(GETPOST($key));
if (GETPOST($key)) {
$amounts[$expensereport->fk_user_author] = price2num(GETPOST($key));
$total += price2num(GETPOST($key));
}
}
}
if (count($amounts) <= 0) {
$error++;
$errmsg = 'ErrorNoPaymentDefined';
setEventMessages('ErrorNoPaymentDefined', null, 'errors');
}
if (!$error) {
@ -109,6 +112,7 @@ if ($action == 'add_payment') {
$payment->fk_typepayment = GETPOST("fk_typepayment", 'int');
$payment->num_payment = GETPOST("num_payment", 'alphanothtml');
$payment->note_public = GETPOST("note_public", 'restricthtml');
$payment->fk_bank = $accountid;
if (!$error) {
$paymentid = $payment->create($user);
@ -120,7 +124,7 @@ if ($action == 'add_payment') {
if (!$error) {
$result = $payment->addPaymentToBank($user, 'payment_expensereport', '(ExpenseReportPayment)', $accountid, '', '');
if (!$result > 0) {
if ($result <= 0) {
setEventMessages($payment->error, $payment->errors, 'errors');
$error++;
}
@ -130,7 +134,7 @@ if ($action == 'add_payment') {
$payment->fetch($paymentid);
if ($expensereport->total_ttc - $payment->amount == 0) {
$result = $expensereport->setPaid($expensereport->id, $user);
if (!$result > 0) {
if (!($result > 0)) {
setEventMessages($payment->error, $payment->errors, 'errors');
$error++;
}
@ -202,7 +206,7 @@ if ($action == 'create' || empty($action)) {
print '<table class="border centpercent">'."\n";
print '<tr><td class="titlefield">'.$langs->trans("Period").'</td><td>'.get_date_range($expensereport->date_debut, $expensereport->date_fin, "", $langs, 0).'</td></tr>';
print '<tr><td>'.$langs->trans("Amount").'</td><td>'.price($expensereport->total_ttc, 0, $outputlangs, 1, -1, -1, $conf->currency).'</td></tr>';
print '<tr><td>'.$langs->trans("Amount").'</td><td><span class="amount">'.price($expensereport->total_ttc, 0, $langs, 1, -1, -1, $conf->currency).'</span></td></tr>';
$sql = "SELECT sum(p.amount) as total";
$sql .= " FROM ".MAIN_DB_PREFIX."payment_expensereport as p, ".MAIN_DB_PREFIX."expensereport as e";
@ -214,8 +218,8 @@ if ($action == 'create' || empty($action)) {
$sumpaid = $obj->total;
$db->free($resql);
}
print '<tr><td>'.$langs->trans("AlreadyPaid").'</td><td>'.price($sumpaid, 0, $outputlangs, 1, -1, -1, $conf->currency).'</td></tr>';
print '<tr><td class="tdtop">'.$langs->trans("RemainderToPay").'</td><td>'.price($total - $sumpaid, 0, $outputlangs, 1, -1, -1, $conf->currency).'</td></tr>';
print '<tr><td>'.$langs->trans("AlreadyPaid").'</td><td><span class="amount">'.price($sumpaid, 0, $langs, 1, -1, -1, $conf->currency).'</span></td></tr>';
print '<tr><td class="tdtop">'.$langs->trans("RemainderToPay").'</td><td><span class="amount">'.price($total - $sumpaid, 0, $langs, 1, -1, -1, $conf->currency).'</span></td></tr>';
print '</table>';
@ -223,6 +227,8 @@ if ($action == 'create' || empty($action)) {
print dol_get_fiche_end();
print '<br>';
print dol_get_fiche_head();
print '<table class="border centpercent">'."\n";
@ -243,7 +249,8 @@ if ($action == 'create' || empty($action)) {
print '<tr>';
print '<td class="fieldrequired">'.$langs->trans('AccountToDebit').'</td>';
print '<td colspan="2">';
$form->select_comptes(GETPOSTISSET("accountid") ? GETPOST("accountid", "int") : $expensereport->accountid, "accountid", 0, '', 2); // Show open bank account list
print img_picto('', 'bank_account', 'class="pictofixedwidth"');
$form->select_comptes(GETPOSTISSET("accountid") ? GETPOST("accountid", "int") : 0, "accountid", 0, '', 2); // Show open bank account list
print '</td></tr>';
}
@ -277,7 +284,7 @@ if ($action == 'create' || empty($action)) {
print '<td class="center">'.$langs->trans("Amount").'</td>';
print "</tr>\n";
$total = 0;
$total_ttc = 0;
$totalrecu = 0;
while ($i < $num) {
@ -298,7 +305,7 @@ if ($action == 'create' || empty($action)) {
}
$remaintopay = $objp->total_ttc - $sumpaid; // autofill remainder amount
print '<input type=hidden class="sum_remain" name="'.$nameRemain.'" value="'.$remaintopay.'">'; // autofill remainder amount
print '<input type="text" size="8" name="'.$namef.'" id="'.$namef.'">';
print '<input type="text" class="width75" name="'.$namef.'" id="'.$namef.'" value="'.GETPOST($namef).'">';
} else {
print '-';
}
@ -306,9 +313,8 @@ if ($action == 'create' || empty($action)) {
print "</tr>\n";
$total += $objp->total;
$total_ttc += $objp->total_ttc;
$totalrecu += $objp->am;
$totalrecu += $sumpaid;
$i++;
}
if ($i > 1) {

View File

@ -1464,8 +1464,8 @@ if ($resql) {
}
// Zip
if (!empty($arrayfields['s.zip']['checked'])) {
print '<td class="nocellnopadd center">';
print $obj->zip;
print '<td class="nocellnopadd center tdoverflowmax100" title="'.dol_escape_htmltag($obj->zip).'">';
print dol_escape_htmltag($obj->zip);
print '</td>';
if (!$i) {
$totalarray['nbfield']++;

View File

@ -92,8 +92,8 @@ if ($socid > 0) {
print '<td>&nbsp;</td>';
print '</tr>';
if (!$num > 0) {
print '<tr><td colspan="7">'.$langs->trans("NoInvoice").'</td></tr>';
if ($num <= 0) {
print '<tr><td colspan="7"><span class="opacitymedium">'.$langs->trans("NoInvoice").'</span></td></tr>';
}
$solde = 0;

View File

@ -102,7 +102,7 @@ if (GETPOST("sendit") && !empty($conf->global->MAIN_UPLOAD_DOC)) {
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$result = $ecmdir->fetch(GETPOST("section", 'int'));
if (!$result > 0) {
if (!($result > 0)) {
dol_print_error($db, $ecmdir->error);
exit;
}

View File

@ -1,5 +1,5 @@
<?php
/* Copyright (C) 2007-2016 Laurent Destailleur <eldy@users.sourceforge.net>
/* Copyright (C) 2007-2022 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2011 Dimitri Mouillard <dmouillard@teclib.com>
* Copyright (C) 2013 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2016 Regis Houssin <regis.houssin@inodbox.com>
@ -130,12 +130,15 @@ if (empty($reshook)) {
// Si il y a une action de mise à jour
if ($action == 'update' && GETPOSTISSET('update_cp')) {
$error = 0;
$nbok = 0;
$typeleaves = $holiday->getTypes(1, 1);
$userID = array_keys(GETPOST('update_cp'));
$userID = $userID[0];
$db->begin();
foreach ($typeleaves as $key => $val) {
$userValue = GETPOST('nb_holiday_'.$val['rowid']);
$userValue = $userValue[$userID];
@ -150,20 +153,26 @@ if (empty($reshook)) {
$note_holiday = GETPOST('note_holiday');
$comment = ((isset($note_holiday[$userID]) && !empty($note_holiday[$userID])) ? ' ('.$note_holiday[$userID].')' : '');
//print 'holiday: '.$val['rowid'].'-'.$userValue;
//print 'holiday: '.$val['rowid'].'-'.$userValue;exit;
if ($userValue != '') {
// We add the modification to the log (must be before update of sold because we read current value of sold)
// We add the modification to the log (must be done before the update of balance because we read current value of balance inside this method)
$result = $holiday->addLogCP($user->id, $userID, $langs->transnoentitiesnoconv('ManualUpdate').$comment, $userValue, $val['rowid']);
if ($result < 0) {
setEventMessages($holiday->error, $holiday->errors, 'errors');
$error++;
} elseif ($result == 0) {
setEventMessages($langs->trans("HolidayQtyNotModified", $user->login), null, 'warnings');
}
// Update of the days of the employee
$result = $holiday->updateSoldeCP($userID, $userValue, $val['rowid']);
if ($result < 0) {
setEventMessages($holiday->error, $holiday->errors, 'errors');
$error++;
if ($result > 0) {
$nbok++;
$result = $holiday->updateSoldeCP($userID, $userValue, $val['rowid']);
if ($result < 0) {
setEventMessages($holiday->error, $holiday->errors, 'errors');
$error++;
}
}
// If it first update of balance, we set date to avoid to have sold incremented by new month
@ -179,7 +188,13 @@ if (empty($reshook)) {
}
if (!$error) {
setEventMessages('UpdateConfCPOK', '', 'mesgs');
$db->commit();
if ($nbok > 0) {
setEventMessages('UpdateConfCPOK', '', 'mesgs');
}
} else {
$db->rollback();
}
}
}

View File

@ -159,15 +159,15 @@ if (empty($reshook)) {
// Definition of fields for lists
$arrayfields = array(
'cpl.rowid'=>array('label'=>$langs->trans("ID"), 'checked'=>1),
'cpl.date_action'=>array('label'=>$langs->trans("Date"), 'checked'=>1),
'cpl.fk_user_action'=>array('label'=>$langs->trans("ActionByCP"), 'checked'=>1),
'cpl.fk_user_update'=>array('label'=>$langs->trans("UserUpdateCP"), 'checked'=>1),
'cpl.type_action'=>array('label'=>$langs->trans("Description"), 'checked'=>1),
'cpl.fk_type'=>array('label'=>$langs->trans("Type"), 'checked'=>1),
'cpl.prev_solde'=>array('label'=>$langs->trans("PrevSoldeCP"), 'checked'=>1),
'variation'=>array('label'=>$langs->trans("Variation"), 'checked'=>1),
'cpl.new_solde'=>array('label'=>$langs->trans("NewSoldeCP"), 'checked'=>1),
'cpl.rowid'=>array('label'=>"ID", 'checked'=>1),
'cpl.date_action'=>array('label'=>"Date", 'checked'=>1),
'cpl.fk_user_action'=>array('label'=>"ActionByCP", 'checked'=>1),
'cpl.fk_user_update'=>array('label'=>"UserUpdateCP", 'checked'=>1),
'cpl.type_action'=>array('label'=>"Description", 'checked'=>1),
'cpl.fk_type'=>array('label'=>"Type", 'checked'=>1),
'cpl.prev_solde'=>array('label'=>"PrevSoldeCP", 'checked'=>1),
'variation'=>array('label'=>"Variation", 'checked'=>1),
'cpl.new_solde'=>array('label'=>"NewSoldeCP", 'checked'=>1),
);
@ -403,7 +403,7 @@ print '</tr>';
print '<tr class="liste_titre">';
if (!empty($arrayfields['cpl.rowid']['checked'])) {
print_liste_field_titre($arrayfields['cpl.rowid']['label'], $_SERVER["PHP_SELF"], 'rowid', '', '', '', $sortfield, $sortorder);
print_liste_field_titre($arrayfields['cpl.rowid']['label'], $_SERVER["PHP_SELF"], 'cpl.rowid', '', '', '', $sortfield, $sortorder);
}
if (!empty($arrayfields['cpl.date_action']['checked'])) {
print_liste_field_titre($arrayfields['cpl.date_action']['label'], $_SERVER["PHP_SELF"], 'date_action', '', '', '', $sortfield, $sortorder, 'center ');
@ -484,11 +484,12 @@ while ($i < min($num, $limit)) {
// Description
if (!empty($arrayfields['cpl.type_action']['checked'])) {
print '<td>'.$holidaylogstatic->description.'</td>';
print '<td class="tdoverflowmax400" title="'.dol_escape_htmltag($holidaylogstatic->description).'">'.dol_escape_htmltag($holidaylogstatic->description).'</td>';
}
// Type
if (!empty($arrayfields['cpl.fk_type']['checked'])) {
$label = '';
if (!empty($alltypeleaves[$holidaylogstatic->type])) {
if ($alltypeleaves[$holidaylogstatic->type]['code'] && $langs->trans($alltypeleaves[$holidaylogstatic->type]['code']) != $alltypeleaves[$holidaylogstatic->type]['code']) {
$label = $langs->trans($alltypeleaves[$holidaylogstatic->type]['code']);
@ -510,8 +511,13 @@ while ($i < min($num, $limit)) {
// Variation
if (!empty($arrayfields['variation']['checked'])) {
$delta = price2num($holidaylogstatic->balance_new - $holidaylogstatic->balance_previous, 5);
$detasign = ($delta > 0 ? '+' : '');
print '<td style="text-align: right;">'.$detasign.$delta.'</td>';
print '<td style="text-align: right;">';
if ($delta > 0) {
print '<span class="stockmovemententry fontsizeunset">+'.$delta.'</span>';
} else {
print '<span class="stockmovementexit fontsizeunset">'.$delta.'</span>';
}
print '</td>';
}
// New Balance

0
htdocs/includes/OAuth/OAuth2/Service/WordPress.php Executable file → Normal file
View File

View File

@ -6,7 +6,7 @@
-- Copyright (C) 2005-2009 Regis Houssin <regis.houssin@inodbox.com>
-- Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
-- Copyright (C) 2014 Alexandre Spangaro <aspangaro@open-dsi.fr>
-- Copyright (C) 2021 Udo Tamm <dev@dolibit.de>
-- Copyright (C) 2021-2022 Udo Tamm <dev@dolibit.de>
--
-- 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
@ -89,21 +89,21 @@ INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (58
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (59,'BG','BGR','Bulgaria',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (60,'BF','BFA','Burkina Faso',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (61,'BI','BDI','Burundi',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (62,'KH','KHM','Cambodge',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (62,'KH','KHM','Cambodge / Cambodia',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (63,'CV','CPV','Cap-Vert',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (64,'KY','CYM','Iles Cayman',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (65,'CF','CAF','République centrafricaine',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (65,'CF','CAF','Central African Republic (CAR/RCA)',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (66,'TD','TCD','Tchad',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (67,'CL','CHL','Chili',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (67,'CL','CHL','Chile',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (68,'CX','CXR','Ile Christmas',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (69,'CC','CCK','Iles des Cocos (Keeling)',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (70,'CO','COL','Colombie',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (71,'KM','COM','Comores',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (72,'CG','COG','Congo',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (73,'CD','COD','République démocratique du Congo',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (73,'CD','COD','DR Congo (RDC)',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (74,'CK','COK','Iles Cook',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (75,'CR','CRI','Costa Rica',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (76,'HR','HRV','Croatie',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (76,'HR','HRV','Croatia',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (77,'CU','CUB','Cuba',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (78,'CY','CYP','Cyprus',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (79,'CZ','CZE','Czech Republic',1,0);
@ -138,17 +138,17 @@ INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (10
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (109,'GW','GNB','Guinea-Bissao',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (111,'HT','HTI','Haiti',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (112,'HM','HMD','Iles Heard et McDonald',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (113,'VA','VAT','Saint-Siège (Vatican)',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (113,'VA','VAT','Vatican City (Saint-Siège)',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (114,'HN','HND','Honduras',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (115,'HK','HKG','Hong Kong',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (116,'IS','ISL','Islande',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (117,'IN','IND','India',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (118,'ID','IDN','Indonésie',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (118,'ID','IDN','Indonesia',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (119,'IR','IRN','Iran',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (120,'IQ','IRQ','Iraq',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (121,'IL','ISR','Israel',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (122,'JM','JAM','Jamaïque',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (123,'JP','JPN','Japon',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (122,'JM','JAM','Jamaica',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (123,'JP','JPN','Japan (Nippon)',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (124,'JO','JOR','Jordanie',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (125,'KZ','KAZ','Kazakhstan',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (126,'KE','KEN','Kenya',1,0);
@ -167,7 +167,7 @@ INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (13
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (139,'LT','LTU','Lituanie',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (140,'LU','LUX','Luxembourg',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (141,'MO','MAC','Macao',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (142,'MK','MKD','ex-République yougoslave de Macédoine',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (142,'MK','MKD','North Macedonia',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (143,'MG','MDG','Madagascar',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (144,'MW','MWI','Malawi',1,0);
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (145,'MY','MYS','Malaisie',1,0);

View File

@ -40,7 +40,9 @@
-- NOTES/CONTENT ---------------------------------------------------------------
-- Departements/Cantons/Provinces/States
--
-- Table of Content (TOC)
-- Departements/Cantons/Provinces/States:
--
-- Algeria
-- Andorra
@ -57,6 +59,7 @@
-- Croatia
-- France
-- Germany
-- Greece
-- Honduras
-- Hungary
-- Italy
@ -81,7 +84,8 @@
-- TEMPLATE -------------------------------------------------------------------------------------------------------------
INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ( 0, '0', '0',0,'-','-');
-- active is always set as on = 1
--
-- field 'active' is not requiered - all lines are always set as active = on (1) by default
-- Algeria Provinces (id country=13)
@ -540,6 +544,76 @@ INSERT INTO llx_c_departements (fk_region, code_departement, ncc, nom) VALUES (5
INSERT INTO llx_c_departements (fk_region, code_departement, ncc, nom) VALUES (501, 'TH', 'THÜRINGEN', 'Thüringen');
-- Greece Provinces (id country=102)
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('66', 10201, '', 0, '', 'Αθήνα');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('67', 10205, '', 0, '', 'Δράμα');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('01', 10205, '', 0, '', 'Έβρος');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('02', 10205, '', 0, '', 'Θάσος');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('03', 10205, '', 0, '', 'Καβάλα');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('04', 10205, '', 0, '', 'Ξάνθη');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('05', 10205, '', 0, '', 'Ροδόπη');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('06', 10203, '', 0, '', 'Ημαθία');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('07', 10203, '', 0, '', 'Θεσσαλονίκη');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('08', 10203, '', 0, '', 'Κιλκίς');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('09', 10203, '', 0, '', 'Πέλλα');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('10', 10203, '', 0, '', 'Πιερία');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('11', 10203, '', 0, '', 'Σέρρες');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('12', 10203, '', 0, '', 'Χαλκιδική');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('13', 10206, '', 0, '', 'Άρτα');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('14', 10206, '', 0, '', 'Θεσπρωτία');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('15', 10206, '', 0, '', 'Ιωάννινα');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('16', 10206, '', 0, '', 'Πρέβεζα');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('17', 10213, '', 0, '', 'Γρεβενά');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('18', 10213, '', 0, '', 'Καστοριά');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('19', 10213, '', 0, '', 'Κοζάνη');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('20', 10213, '', 0, '', 'Φλώρινα');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('21', 10212, '', 0, '', 'Καρδίτσα');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('22', 10212, '', 0, '', 'Λάρισα');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('23', 10212, '', 0, '', 'Μαγνησία');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('24', 10212, '', 0, '', 'Τρίκαλα');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('25', 10212, '', 0, '', 'Σποράδες');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('26', 10212, '', 0, '', 'Βοιωτία');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('27', 10202, '', 0, '', 'Εύβοια');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('28', 10202, '', 0, '', 'Ευρυτανία');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('29', 10202, '', 0, '', 'Φθιώτιδα');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('30', 10202, '', 0, '', 'Φωκίδα');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('31', 10209, '', 0, '', 'Αργολίδα');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('32', 10209, '', 0, '', 'Αρκαδία');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('33', 10209, '', 0, '', 'Κορινθία');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('34', 10209, '', 0, '', 'Λακωνία');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('35', 10209, '', 0, '', 'Μεσσηνία');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('36', 10211, '', 0, '', 'Αιτωλοακαρνανία');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('37', 10211, '', 0, '', 'Αχαΐα');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('38', 10211, '', 0, '', 'Ηλεία');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('39', 10207, '', 0, '', 'Ζάκυνθος');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('40', 10207, '', 0, '', 'Κέρκυρα');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('41', 10207, '', 0, '', 'Κεφαλληνία');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('42', 10207, '', 0, '', 'Ιθάκη');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('43', 10207, '', 0, '', 'Λευκάδα');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('44', 10208, '', 0, '', 'Ικαρία');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('45', 10208, '', 0, '', 'Λέσβος');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('46', 10208, '', 0, '', 'Λήμνος');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('47', 10208, '', 0, '', 'Σάμος');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('48', 10208, '', 0, '', 'Χίος');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('49', 10210, '', 0, '', 'Άνδρος');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('50', 10210, '', 0, '', 'Θήρα');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('51', 10210, '', 0, '', 'Κάλυμνος');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('52', 10210, '', 0, '', 'Κάρπαθος');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('53', 10210, '', 0, '', 'Κέα-Κύθνος');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('54', 10210, '', 0, '', 'Κω');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('55', 10210, '', 0, '', 'Μήλος');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('56', 10210, '', 0, '', 'Μύκονος');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('57', 10210, '', 0, '', 'Νάξος');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('58', 10210, '', 0, '', 'Πάρος');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('59', 10210, '', 0, '', 'Ρόδος');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('60', 10210, '', 0, '', 'Σύρος');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('61', 10210, '', 0, '', 'Τήνος');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('62', 10204, '', 0, '', 'Ηράκλειο');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('63', 10204, '', 0, '', 'Λασίθι');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('64', 10204, '', 0, '', 'Ρέθυμνο');
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('65', 10204, '', 0, '', 'Χανιά');
-- Honduras Departamentos (id country=114)
INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (11401, 'AT', '', 0, 'AT', 'Atlántida');
INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (11401, 'CH', '', 0, 'CH', 'Choluteca');
@ -1272,118 +1346,118 @@ insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc
-- Provinces Bolivia (id country=52)
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('001', 5201, '', 0, '', 'Belisario Boeto', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('002', 5201, '', 0, '', 'Hernando Siles', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('003', 5201, '', 0, '', 'Jaime Zudáñez', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('004', 5201, '', 0, '', 'Juana Azurduy de Padilla', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('005', 5201, '', 0, '', 'Luis Calvo', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('006', 5201, '', 0, '', 'Nor Cinti', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('007', 5201, '', 0, '', 'Oropeza', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('008', 5201, '', 0, '', 'Sud Cinti', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('009', 5201, '', 0, '', 'Tomina', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('010', 5201, '', 0, '', 'Yamparáez', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('011', 5202, '', 0, '', 'Abel Iturralde', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('012', 5202, '', 0, '', 'Aroma', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('013', 5202, '', 0, '', 'Bautista Saavedra', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('014', 5202, '', 0, '', 'Caranavi', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('015', 5202, '', 0, '', 'Eliodoro Camacho', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('016', 5202, '', 0, '', 'Franz Tamayo', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('017', 5202, '', 0, '', 'Gualberto Villarroel', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('018', 5202, '', 0, '', 'Ingaví', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('019', 5202, '', 0, '', 'Inquisivi', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('020', 5202, '', 0, '', 'José Ramón Loayza', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('021', 5202, '', 0, '', 'Larecaja', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('022', 5202, '', 0, '', 'Los Andes (Bolivia)', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('023', 5202, '', 0, '', 'Manco Kapac', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('024', 5202, '', 0, '', 'Muñecas', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('025', 5202, '', 0, '', 'Nor Yungas', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('026', 5202, '', 0, '', 'Omasuyos', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('027', 5202, '', 0, '', 'Pacajes', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('028', 5202, '', 0, '', 'Pedro Domingo Murillo', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('029', 5202, '', 0, '', 'Sud Yungas', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('030', 5202, '', 0, '', 'General José Manuel Pando', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('031', 5203, '', 0, '', 'Arani', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('032', 5203, '', 0, '', 'Arque', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('033', 5203, '', 0, '', 'Ayopaya', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('034', 5203, '', 0, '', 'Bolívar (Bolivia)', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('035', 5203, '', 0, '', 'Campero', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('036', 5203, '', 0, '', 'Capinota', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('037', 5203, '', 0, '', 'Cercado (Cochabamba)', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('038', 5203, '', 0, '', 'Esteban Arze', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('039', 5203, '', 0, '', 'Germán Jordán', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('040', 5203, '', 0, '', 'José Carrasco', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('041', 5203, '', 0, '', 'Mizque', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('042', 5203, '', 0, '', 'Punata', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('043', 5203, '', 0, '', 'Quillacollo', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('044', 5203, '', 0, '', 'Tapacarí', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('045', 5203, '', 0, '', 'Tiraque', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('046', 5203, '', 0, '', 'Chapare', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('047', 5204, '', 0, '', 'Carangas', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('048', 5204, '', 0, '', 'Cercado (Oruro)', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('049', 5204, '', 0, '', 'Eduardo Avaroa', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('050', 5204, '', 0, '', 'Ladislao Cabrera', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('051', 5204, '', 0, '', 'Litoral de Atacama', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('052', 5204, '', 0, '', 'Mejillones', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('053', 5204, '', 0, '', 'Nor Carangas', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('054', 5204, '', 0, '', 'Pantaleón Dalence', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('055', 5204, '', 0, '', 'Poopó', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('056', 5204, '', 0, '', 'Sabaya', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('057', 5204, '', 0, '', 'Sajama', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('058', 5204, '', 0, '', 'San Pedro de Totora', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('059', 5204, '', 0, '', 'Saucarí', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('060', 5204, '', 0, '', 'Sebastián Pagador', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('061', 5204, '', 0, '', 'Sud Carangas', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('062', 5204, '', 0, '', 'Tomás Barrón', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('063', 5205, '', 0, '', 'Alonso de Ibáñez', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('064', 5205, '', 0, '', 'Antonio Quijarro', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('065', 5205, '', 0, '', 'Bernardino Bilbao', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('066', 5205, '', 0, '', 'Charcas (Potosí)', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('067', 5205, '', 0, '', 'Chayanta', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('068', 5205, '', 0, '', 'Cornelio Saavedra', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('069', 5205, '', 0, '', 'Daniel Campos', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('070', 5205, '', 0, '', 'Enrique Baldivieso', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('071', 5205, '', 0, '', 'José María Linares', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('072', 5205, '', 0, '', 'Modesto Omiste', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('073', 5205, '', 0, '', 'Nor Chichas', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('074', 5205, '', 0, '', 'Nor Lípez', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('075', 5205, '', 0, '', 'Rafael Bustillo', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('076', 5205, '', 0, '', 'Sud Chichas', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('077', 5205, '', 0, '', 'Sud Lípez', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('078', 5205, '', 0, '', 'Tomás Frías', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('079', 5206, '', 0, '', 'Aniceto Arce', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('080', 5206, '', 0, '', 'Burdet O''Connor', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('081', 5206, '', 0, '', 'Cercado (Tarija)', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('082', 5206, '', 0, '', 'Eustaquio Méndez', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('083', 5206, '', 0, '', 'José María Avilés', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('084', 5206, '', 0, '', 'Gran Chaco', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('085', 5207, '', 0, '', 'Andrés Ibáñez', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('086', 5207, '', 0, '', 'Caballero', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('087', 5207, '', 0, '', 'Chiquitos', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('088', 5207, '', 0, '', 'Cordillera (Bolivia)', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('089', 5207, '', 0, '', 'Florida', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('090', 5207, '', 0, '', 'Germán Busch', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('091', 5207, '', 0, '', 'Guarayos', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('092', 5207, '', 0, '', 'Ichilo', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('093', 5207, '', 0, '', 'Obispo Santistevan', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('094', 5207, '', 0, '', 'Sara', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('095', 5207, '', 0, '', 'Vallegrande', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('096', 5207, '', 0, '', 'Velasco', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('097', 5207, '', 0, '', 'Warnes', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('098', 5207, '', 0, '', 'Ángel Sandóval', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('099', 5207, '', 0, '', 'Ñuflo de Chaves', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('100', 5208, '', 0, '', 'Cercado (Beni)', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('101', 5208, '', 0, '', 'Iténez', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('102', 5208, '', 0, '', 'Mamoré', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('103', 5208, '', 0, '', 'Marbán', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('104', 5208, '', 0, '', 'Moxos', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('105', 5208, '', 0, '', 'Vaca Díez', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('106', 5208, '', 0, '', 'Yacuma', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('107', 5208, '', 0, '', 'General José Ballivián Segurola', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('108', 5209, '', 0, '', 'Abuná', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('109', 5209, '', 0, '', 'Madre de Dios', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('110', 5209, '', 0, '', 'Manuripi', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('111', 5209, '', 0, '', 'Nicolás Suárez', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('112', 5209, '', 0, '', 'General Federico Román', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('001', 5201, '', 0, '', 'Belisario Boeto');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('002', 5201, '', 0, '', 'Hernando Siles');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('003', 5201, '', 0, '', 'Jaime Zudáñez');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('004', 5201, '', 0, '', 'Juana Azurduy de Padilla');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('005', 5201, '', 0, '', 'Luis Calvo');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('006', 5201, '', 0, '', 'Nor Cinti');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('007', 5201, '', 0, '', 'Oropeza');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('008', 5201, '', 0, '', 'Sud Cinti');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('009', 5201, '', 0, '', 'Tomina');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('010', 5201, '', 0, '', 'Yamparáez');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('011', 5202, '', 0, '', 'Abel Iturralde');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('012', 5202, '', 0, '', 'Aroma');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('013', 5202, '', 0, '', 'Bautista Saavedra');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('014', 5202, '', 0, '', 'Caranavi');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('015', 5202, '', 0, '', 'Eliodoro Camacho');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('016', 5202, '', 0, '', 'Franz Tamayo');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('017', 5202, '', 0, '', 'Gualberto Villarroel');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('018', 5202, '', 0, '', 'Ingaví');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('019', 5202, '', 0, '', 'Inquisivi');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('020', 5202, '', 0, '', 'José Ramón Loayza');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('021', 5202, '', 0, '', 'Larecaja');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('022', 5202, '', 0, '', 'Los Andes (Bolivia)');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('023', 5202, '', 0, '', 'Manco Kapac');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('024', 5202, '', 0, '', 'Muñecas');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('025', 5202, '', 0, '', 'Nor Yungas');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('026', 5202, '', 0, '', 'Omasuyos');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('027', 5202, '', 0, '', 'Pacajes');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('028', 5202, '', 0, '', 'Pedro Domingo Murillo');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('029', 5202, '', 0, '', 'Sud Yungas');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('030', 5202, '', 0, '', 'General José Manuel Pando');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('031', 5203, '', 0, '', 'Arani');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('032', 5203, '', 0, '', 'Arque');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('033', 5203, '', 0, '', 'Ayopaya');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('034', 5203, '', 0, '', 'Bolívar (Bolivia)');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('035', 5203, '', 0, '', 'Campero');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('036', 5203, '', 0, '', 'Capinota');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('037', 5203, '', 0, '', 'Cercado (Cochabamba)');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('038', 5203, '', 0, '', 'Esteban Arze');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('039', 5203, '', 0, '', 'Germán Jordán');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('040', 5203, '', 0, '', 'José Carrasco');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('041', 5203, '', 0, '', 'Mizque');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('042', 5203, '', 0, '', 'Punata');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('043', 5203, '', 0, '', 'Quillacollo');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('044', 5203, '', 0, '', 'Tapacarí');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('045', 5203, '', 0, '', 'Tiraque');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('046', 5203, '', 0, '', 'Chapare');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('047', 5204, '', 0, '', 'Carangas');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('048', 5204, '', 0, '', 'Cercado (Oruro)');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('049', 5204, '', 0, '', 'Eduardo Avaroa');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('050', 5204, '', 0, '', 'Ladislao Cabrera');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('051', 5204, '', 0, '', 'Litoral de Atacama');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('052', 5204, '', 0, '', 'Mejillones');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('053', 5204, '', 0, '', 'Nor Carangas');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('054', 5204, '', 0, '', 'Pantaleón Dalence');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('055', 5204, '', 0, '', 'Poopó');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('056', 5204, '', 0, '', 'Sabaya');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('057', 5204, '', 0, '', 'Sajama');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('058', 5204, '', 0, '', 'San Pedro de Totora');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('059', 5204, '', 0, '', 'Saucarí');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('060', 5204, '', 0, '', 'Sebastián Pagador');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('061', 5204, '', 0, '', 'Sud Carangas');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('062', 5204, '', 0, '', 'Tomás Barrón');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('063', 5205, '', 0, '', 'Alonso de Ibáñez');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('064', 5205, '', 0, '', 'Antonio Quijarro');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('065', 5205, '', 0, '', 'Bernardino Bilbao');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('066', 5205, '', 0, '', 'Charcas (Potosí)');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('067', 5205, '', 0, '', 'Chayanta');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('068', 5205, '', 0, '', 'Cornelio Saavedra');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('069', 5205, '', 0, '', 'Daniel Campos');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('070', 5205, '', 0, '', 'Enrique Baldivieso');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('071', 5205, '', 0, '', 'José María Linares');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('072', 5205, '', 0, '', 'Modesto Omiste');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('073', 5205, '', 0, '', 'Nor Chichas');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('074', 5205, '', 0, '', 'Nor Lípez');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('075', 5205, '', 0, '', 'Rafael Bustillo');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('076', 5205, '', 0, '', 'Sud Chichas');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('077', 5205, '', 0, '', 'Sud Lípez');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('078', 5205, '', 0, '', 'Tomás Frías');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('079', 5206, '', 0, '', 'Aniceto Arce');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('080', 5206, '', 0, '', 'Burdet O''Connor');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('081', 5206, '', 0, '', 'Cercado (Tarija)');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('082', 5206, '', 0, '', 'Eustaquio Méndez');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('083', 5206, '', 0, '', 'José María Avilés');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('084', 5206, '', 0, '', 'Gran Chaco');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('085', 5207, '', 0, '', 'Andrés Ibáñez');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('086', 5207, '', 0, '', 'Caballero');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('087', 5207, '', 0, '', 'Chiquitos');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('088', 5207, '', 0, '', 'Cordillera (Bolivia)');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('089', 5207, '', 0, '', 'Florida');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('090', 5207, '', 0, '', 'Germán Busch');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('091', 5207, '', 0, '', 'Guarayos');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('092', 5207, '', 0, '', 'Ichilo');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('093', 5207, '', 0, '', 'Obispo Santistevan');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('094', 5207, '', 0, '', 'Sara');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('095', 5207, '', 0, '', 'Vallegrande');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('096', 5207, '', 0, '', 'Velasco');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('097', 5207, '', 0, '', 'Warnes');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('098', 5207, '', 0, '', 'Ángel Sandóval');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('099', 5207, '', 0, '', 'Ñuflo de Chaves');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('100', 5208, '', 0, '', 'Cercado (Beni)');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('101', 5208, '', 0, '', 'Iténez');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('102', 5208, '', 0, '', 'Mamoré');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('103', 5208, '', 0, '', 'Marbán');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('104', 5208, '', 0, '', 'Moxos');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('105', 5208, '', 0, '', 'Vaca Díez');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('106', 5208, '', 0, '', 'Yacuma');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('107', 5208, '', 0, '', 'General José Ballivián Segurola');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('108', 5209, '', 0, '', 'Abuná');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('109', 5209, '', 0, '', 'Madre de Dios');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('110', 5209, '', 0, '', 'Manuripi');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('111', 5209, '', 0, '', 'Nicolás Suárez');
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('112', 5209, '', 0, '', 'General Federico Román');
-- Provinces Spain (id country=4) in order of province (for logical pick list)
@ -1441,77 +1515,6 @@ INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('Z', '402', '50', 1, 'ZARAGOZA', 'Zaragoza');
-- Provinces Greece (id country=102)
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('66', 10201, '', 0, '', 'Αθήνα', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('67', 10205, '', 0, '', 'Δράμα', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('01', 10205, '', 0, '', 'Έβρος', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('02', 10205, '', 0, '', 'Θάσος', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('03', 10205, '', 0, '', 'Καβάλα', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('04', 10205, '', 0, '', 'Ξάνθη', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('05', 10205, '', 0, '', 'Ροδόπη', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('06', 10203, '', 0, '', 'Ημαθία', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('07', 10203, '', 0, '', 'Θεσσαλονίκη', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('08', 10203, '', 0, '', 'Κιλκίς', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('09', 10203, '', 0, '', 'Πέλλα', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('10', 10203, '', 0, '', 'Πιερία', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('11', 10203, '', 0, '', 'Σέρρες', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('12', 10203, '', 0, '', 'Χαλκιδική', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('13', 10206, '', 0, '', 'Άρτα', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('14', 10206, '', 0, '', 'Θεσπρωτία', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('15', 10206, '', 0, '', 'Ιωάννινα', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('16', 10206, '', 0, '', 'Πρέβεζα', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('17', 10213, '', 0, '', 'Γρεβενά', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('18', 10213, '', 0, '', 'Καστοριά', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('19', 10213, '', 0, '', 'Κοζάνη', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('20', 10213, '', 0, '', 'Φλώρινα', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('21', 10212, '', 0, '', 'Καρδίτσα', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('22', 10212, '', 0, '', 'Λάρισα', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('23', 10212, '', 0, '', 'Μαγνησία', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('24', 10212, '', 0, '', 'Τρίκαλα', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('25', 10212, '', 0, '', 'Σποράδες', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('26', 10212, '', 0, '', 'Βοιωτία', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('27', 10202, '', 0, '', 'Εύβοια', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('28', 10202, '', 0, '', 'Ευρυτανία', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('29', 10202, '', 0, '', 'Φθιώτιδα', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('30', 10202, '', 0, '', 'Φωκίδα', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('31', 10209, '', 0, '', 'Αργολίδα', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('32', 10209, '', 0, '', 'Αρκαδία', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('33', 10209, '', 0, '', 'Κορινθία', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('34', 10209, '', 0, '', 'Λακωνία', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('35', 10209, '', 0, '', 'Μεσσηνία', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('36', 10211, '', 0, '', 'Αιτωλοακαρνανία', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('37', 10211, '', 0, '', 'Αχαΐα', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('38', 10211, '', 0, '', 'Ηλεία', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('39', 10207, '', 0, '', 'Ζάκυνθος', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('40', 10207, '', 0, '', 'Κέρκυρα', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('41', 10207, '', 0, '', 'Κεφαλληνία', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('42', 10207, '', 0, '', 'Ιθάκη', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('43', 10207, '', 0, '', 'Λευκάδα', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('44', 10208, '', 0, '', 'Ικαρία', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('45', 10208, '', 0, '', 'Λέσβος', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('46', 10208, '', 0, '', 'Λήμνος', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('47', 10208, '', 0, '', 'Σάμος', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('48', 10208, '', 0, '', 'Χίος', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('49', 10210, '', 0, '', 'Άνδρος', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('50', 10210, '', 0, '', 'Θήρα', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('51', 10210, '', 0, '', 'Κάλυμνος', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('52', 10210, '', 0, '', 'Κάρπαθος', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('53', 10210, '', 0, '', 'Κέα-Κύθνος', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('54', 10210, '', 0, '', 'Κω', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('55', 10210, '', 0, '', 'Μήλος', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('56', 10210, '', 0, '', 'Μύκονος', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('57', 10210, '', 0, '', 'Νάξος', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('58', 10210, '', 0, '', 'Πάρος', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('59', 10210, '', 0, '', 'Ρόδος', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('60', 10210, '', 0, '', 'Σύρος', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('61', 10210, '', 0, '', 'Τήνος', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('62', 10204, '', 0, '', 'Ηράκλειο', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('63', 10204, '', 0, '', 'Λασίθι', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('64', 10204, '', 0, '', 'Ρέθυμνο', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('65', 10204, '', 0, '', 'Χανιά', 1);
-- Provinces GB (id country=7)
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('701', 701, NULL, 0,NULL, 'Bedfordshire', 1);
INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('702', 701, NULL, 0,NULL, 'Berkshire', 1);

View File

@ -34,6 +34,8 @@
-- Missing in v16 or lower
ALTER TABLE llx_accounting_system MODIFY COLUMN pcg_version varchar(32) NOT NULL;
ALTER TABLE llx_c_action_trigger MODIFY elementtype VARCHAR(64);
ALTER TABLE llx_c_email_templates ADD COLUMN joinfiles text;
@ -42,11 +44,10 @@ ALTER TABLE llx_c_email_templates ADD COLUMN email_to varchar(255);
ALTER TABLE llx_c_email_templates ADD COLUMN email_tocc varchar(255);
ALTER TABLE llx_c_email_templates ADD COLUMN email_tobcc varchar(255);
ALTER TABLE llx_c_email_templates ADD COLUMN content_lines text;
ALTER TABLE llx_c_email_templates ADD COLUMN enabled varchar(255) DEFAULT '1';
ALTER TABLE llx_expedition ADD COLUMN billed smallint DEFAULT 0;
ALTER TABLE llx_accounting_system MODIFY COLUMN pcg_version varchar(32) NOT NULL;
ALTER TABLE llx_user DROP COLUMN idpers1;
ALTER TABLE llx_user DROP COLUMN idpers2;
ALTER TABLE llx_user DROP COLUMN idpers3;
@ -54,31 +55,32 @@ ALTER TABLE llx_user DROP COLUMN idpers3;
-- v17
ALTER TABLE llx_facture ADD COLUMN close_missing_amount double(24, 8) after close_code;
ALTER TABLE llx_adherent ADD COLUMN default_lang VARCHAR(6) DEFAULT NULL AFTER datefin;
ALTER TABLE llx_facture_fourn ADD COLUMN close_missing_amount double(24, 8) after close_code;
-- Allow users to make subscriptions of any amount during membership subscription
ALTER TABLE llx_adherent_type ADD COLUMN caneditamount integer DEFAULT 0 AFTER amount;
ALTER TABLE llx_inventory ADD COLUMN categories_product VARCHAR(255) DEFAULT NULL AFTER fk_product;
ALTER TABLE llx_ticket ADD COLUMN ip varchar(250);
ALTER TABLE llx_societe ADD last_main_doc VARCHAR(255) NULL AFTER model_pdf;
ALTER TABLE llx_emailcollector_emailcollector ADD COLUMN port varchar(10) DEFAULT '993';
-- Allow users to make subscriptions of any amount during membership subscription
ALTER TABLE llx_bank ADD COLUMN position integer DEFAULT 0;
ALTER TABLE llx_commande_fournisseur_dispatch ADD INDEX idx_commande_fournisseur_dispatch_fk_product (fk_product);
ALTER TABLE llx_recruitment_recruitmentcandidature ADD email_date datetime after email_msgid;
ALTER TABLE llx_ticket ADD email_date datetime after email_msgid;
INSERT INTO llx_const (name, entity, value, type, visible) VALUES ('MAIN_SECURITY_MAX_IMG_IN_HTML_CONTENT', 1, 1000, 'int', 0);
ALTER TABLE llx_adherent ADD COLUMN default_lang VARCHAR(6) DEFAULT NULL AFTER datefin;
ALTER TABLE llx_emailcollector_emailcollector ADD COLUMN port varchar(10) DEFAULT '993';
ALTER TABLE llx_facture ADD COLUMN close_missing_amount double(24, 8) after close_code;
ALTER TABLE llx_facture_fourn ADD COLUMN close_missing_amount double(24, 8) after close_code;
ALTER TABLE llx_inventory ADD COLUMN categories_product VARCHAR(255) DEFAULT NULL AFTER fk_product;
-- Make sell-by or eat-by date mandatory
ALTER TABLE llx_product ADD COLUMN sell_or_eat_by_mandatory tinyint DEFAULT 0 NOT NULL AFTER tobatch;
-- Make sell-by or eat-by date mandatory
ALTER TABLE llx_recruitment_recruitmentcandidature ADD email_date datetime after email_msgid;
ALTER TABLE llx_societe ADD last_main_doc VARCHAR(255) NULL AFTER model_pdf;
ALTER TABLE llx_ticket ADD COLUMN ip varchar(250);
ALTER TABLE llx_ticket ADD email_date datetime after email_msgid;

View File

@ -83,7 +83,7 @@ if ($db->ok) {
print '<input id="login" name="login" type="text" value="'.(GETPOSTISSET("login") ? GETPOST("login", 'alpha') : (isset($force_install_dolibarrlogin) ? $force_install_dolibarrlogin : '')).'"'.(@$force_install_noedit == 2 && $force_install_dolibarrlogin !== null ? ' disabled' : '').' autofocus></td></tr>';
print '<tr><td><label for="pass">'.$langs->trans("Password").' :</label></td><td>';
print '<input type="password" id="pass" name="pass" autocomplete="new-password" minlength="8"></td></tr>';
print '<tr><td><label for="pass_verif">'.$langs->trans("PasswordAgain").' :</label></td><td>';
print '<tr><td><label for="pass_verif">'.$langs->trans("PasswordRetype").' :</label></td><td>';
print '<input type="password" id="pass_verif" name="pass_verif" autocomplete="new-password" minlength="8"></td></tr>';
print '</table>';

View File

@ -1,2 +1,5 @@
# Dolibarr language file - Source file is en_US - accountancy
MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s
Selectformat=حدد حجم الملف
ACCOUNTING_EXPORT_FORMAT=حدد حجم الملف
BackToChartofaccounts=مخطط إرجاع الحسابات
CountriesNotInEEC=بلدان غير أعضاء في المجموعة اﻹقتصادية أﻷوروبية

View File

@ -37,8 +37,8 @@ OtherInfo=معلومات اخرى
DeleteCptCategory=إزالة حساب المحاسبة من المجموعة
ConfirmDeleteCptCategory=هل أنت متأكد أنك تريد إزالة هذا الحساب المحاسبي من مجموعة حسابات المحاسبة؟
JournalizationInLedgerStatus=حالة اليوميات
AlreadyInGeneralLedger=Already transferred to accounting journals and ledger
NotYetInGeneralLedger=Not yet transferred to accouting journals and ledger
AlreadyInGeneralLedger=تم نقلها بالفعل إلى دفاتر اليومية المحاسبية ودفتر الأستاذ
NotYetInGeneralLedger=لم يتم نقلها بعد إلى المجلات ودفتر الأستاذ
GroupIsEmptyCheckSetup=المجموعة فارغة ، تحقق من إعداد مجموعة المحاسبة المخصصة
DetailByAccount=إظهار التفاصيل حسب الحساب
AccountWithNonZeroValues=الحسابات ذات القيم غير الصفرية
@ -62,24 +62,24 @@ MainAccountForSubscriptionPaymentNotDefined=حساب المحاسبة الرئي
AccountancyArea=منطقة المحاسبة
AccountancyAreaDescIntro=استخدام وحدة المحاسبة تم في عدة خطوات:
AccountancyAreaDescActionOnce=عادة ما يتم تنفيذ الإجراءات التالية مرة واحدة فقط ، أو مرة واحدة في السنة.
AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting
AccountancyAreaDescActionOnceBis=يجب القيام بالخطوات التالية لتوفير الوقت في المستقبل من خلال اقتراح حساب المحاسبة الافتراضي الصحيح تلقائيًا عند نقل البيانات في المحاسبة
AccountancyAreaDescActionFreq=يتم تنفيذ الإجراءات التالية عادةً كل شهر أو أسبوع أو كل يوم للشركات الكبيرة جدًا .
AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s
AccountancyAreaDescJournalSetup=الخطوة %s: تحقق من محتوى قائمة مجلاتك من القائمة %s
AccountancyAreaDescChartModel=الخطوة %s: تحقق من وجود نموذج لمخطط الحساب أو قم بإنشاء نموذج من القائمة %s
AccountancyAreaDescChart=الخطوة %s : حدد و / أو أكمل مخطط حسابك من القائمة %s
AccountancyAreaDescVat=الخطوة %s: تحديد حسابات المحاسبة لكل معدلات ضريبة القيمة المضافة. لهذا ، استخدم إدخال القائمة %s.
AccountancyAreaDescDefault=الخطوة %s: تحديد حسابات المحاسبة الافتراضية. لهذا ، استخدم إدخال القائمة %s.
AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s.
AccountancyAreaDescExpenseReport=الخطوة %s: تحديد حسابات المحاسبة الافتراضية لكل نوع من أنواع تقرير المصاريف. لهذا ، استخدم إدخال القائمة %s.
AccountancyAreaDescSal=الخطوة %s: تحديد حسابات المحاسبة الافتراضية لدفع الرواتب. لهذا ، استخدم إدخال القائمة %s.
AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s.
AccountancyAreaDescContrib=الخطوة %s: تحديد حسابات المحاسبة الافتراضية للضرائب (نفقات خاصة). لهذا ، استخدم إدخال القائمة %s.
AccountancyAreaDescDonation=الخطوة %s: تحديد حسابات المحاسبة الافتراضية للتبرع. لهذا ، استخدم إدخال القائمة %s.
AccountancyAreaDescSubscription=الخطوة %s: تحديد حسابات المحاسبة الافتراضية لاشتراك الأعضاء. لهذا ، استخدم إدخال القائمة %s.
AccountancyAreaDescMisc=الخطوة %s: تحديد الحساب الافتراضي الإلزامي وحسابات المحاسبة الافتراضية للمعاملات المتنوعة. لهذا ، استخدم إدخال القائمة %s.
AccountancyAreaDescLoan=الخطوة %s: تحديد حسابات المحاسبة الافتراضية للقروض. لهذا ، استخدم إدخال القائمة %s.
AccountancyAreaDescBank=الخطوة %s: تحديد الحسابات المحاسبية ورمز دفتر اليومية لكل حساب بنكي والحسابات المالية. لهذا ، استخدم إدخال القائمة %s.
AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s.
AccountancyAreaDescProd=الخطوة %s: تحديد حسابات المحاسبة لمنتجاتك / خدماتك. لهذا ، استخدم إدخال القائمة %s.
AccountancyAreaDescBind=الخطوة %s: تحقق من الربط بين سطور %s الحالية وحساب المحاسبة ، لتمكين التطبيق من تسجيل المعاملات في دفتر الأستاذ بنقرة واحدة. إكمال الارتباطات المفقودة. لهذا ، استخدم إدخال القائمة %s.
AccountancyAreaDescWriteRecords=الخطوة %s: اكتب المعاملات في دفتر الأستاذ. لهذا ، انتقل إلى القائمة <strong> %s </strong> ، وانقر فوق الزر <strong> %s </strong>.
@ -112,7 +112,7 @@ MenuAccountancyClosure=اغلاق
MenuAccountancyValidationMovements=اعتماد الحركات
ProductsBinding=حسابات المنتجات
TransferInAccounting=التحويل في المحاسبة
RegistrationInAccounting=Recording in accounting
RegistrationInAccounting=التسجيل في المحاسبة
Binding=ربط للحسابات
CustomersVentilation=ربط فاتورة العميل
SuppliersVentilation=ربط فاتورة المورد
@ -120,7 +120,7 @@ ExpenseReportsVentilation=ربط تقرير المصاريف
CreateMvts=إنشاء معاملة جديدة
UpdateMvts=تعديل معاملة
ValidTransaction=اعتماد المعاملة
WriteBookKeeping=Record transactions in accounting
WriteBookKeeping=تسجيل المعاملات في المحاسبة
Bookkeeping=دفتر حسابات
BookkeepingSubAccount=حساب استاذ فرعي
AccountBalance=رصيد الحساب
@ -132,7 +132,7 @@ InvoiceLinesDone=بنود الفواتير المقيدة
ExpenseReportLines=بنود تقارير المصاريف المراد ربطها
ExpenseReportLinesDone=البنود المقيدة لتقارير المصروفات
IntoAccount=ربط البند مع حساب المحاسبة
TotalForAccount=Total accounting account
TotalForAccount=حساب المحاسبة الإجمالي
Ventilate=ربط
@ -156,12 +156,12 @@ ACCOUNTING_LENGTH_DESCRIPTION=اقتطاع وصف المنتج والخدمات
ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=اقتطاع نموذج وصف حساب المنتجات والخدمات في القوائم بعد حرف x (الأفضل = 50)
ACCOUNTING_LENGTH_GACCOUNT=طول حسابات المحاسبة العامة (إذا قمت بتعيين القيمة إلى 6 هنا ، فسيظهر الحساب "706" مثل "706000" على الشاشة)
ACCOUNTING_LENGTH_AACCOUNT=طول حسابات الطرف الثالث المحاسبية (إذا قمت بتعيين القيمة إلى 6 هنا ، فسيظهر الحساب "401" مثل "401000" على الشاشة)
ACCOUNTING_MANAGE_ZERO=السماح بإدارة عدد مختلف من الأصفار في نهاية الحساب المحاسبي. تحتاجه بعض الدول (مثل سويسرا). إذا تم الضبط على إيقاف (افتراضي) ، يمكنك تعيين المعاملين التاليتين لتطلب من التطبيق إضافة أصفار افتراضية.
ACCOUNTING_MANAGE_ZERO=السماح بإدارة عدد مختلف من الأصفار في نهاية الحساب المحاسبي. تحتاجه بعض الدول (مثل سويسرا). إذا تم الضبط على إيقاف (افتراضي) ، يمكنك برمجة اﻹعدادين التاليين لتطلب من التطبيق إضافة أصفار افتراضية.
BANK_DISABLE_DIRECT_INPUT=تعطيل التسجيل المباشر للمعاملة في الحساب المصرفي
ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=تفعيل تصدير المسودة الى دفتر اليومية
ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value)
ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=إتاحة تصدير المسودة الى الدفتر اليومي\n
ACCOUNTANCY_COMBO_FOR_AUX=تمكين قائمة التحرير والسرد للحساب الفرعي (قد يكون بطيئًا إذا كان لديك الكثير من الأطراف الثالثة ، أو كسر القدرة على البحث عن جزء من القيمة)
ACCOUNTING_DATE_START_BINDING=تحديد موعد لبدء الربط والتحويل في المحاسبة. بعد هذا التاريخ ، لن يتم تحويل المعاملات إلى المحاسبة.
ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=في نقل المحاسبة ، حدد فترة العرض بشكل افتراضي
ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=في تحويل المحاسبة ، ما هي الفترة المحددة افتراضيا
ACCOUNTING_SELL_JOURNAL=دفتر البيع اليومي
ACCOUNTING_PURCHASE_JOURNAL=دفتر الشراء اليومي
@ -182,7 +182,7 @@ DONATION_ACCOUNTINGACCOUNT=حساب تسجيل التبرعات
ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=حساب تسجيل الاشتراكات
ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=حساب افتراضي لتسجيل إيداع العميل
UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines
UseAuxiliaryAccountOnCustomerDeposit=تخزين حساب العميل كحساب فردي في دفتر الأستاذ الفرعي لخطوط الدفعات المقدمة (إذا تم تعطيله ، فسيظل الحساب الفردي لبنود الدَفعة المقدمة فارغًا)
ACCOUNTING_PRODUCT_BUY_ACCOUNT=حساب افتراضي للمنتجات المشتراة (يستخدم إذا لم يتم تحديده في ورقة المنتج)
ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=حساب افتراضي للمنتجات المشتراة في الاتحاد الاوروبي (يستخدم إذا لم يتم تحديده في ورقة المنتج)
@ -193,7 +193,7 @@ ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=حساب افتراضي للمنتجات
ACCOUNTING_SERVICE_BUY_ACCOUNT=حساب افتراضي للخدمات المشتراة (يُستخدم إذا لم يتم تحديده في ورقة الخدمة)
ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=حساب افتراضي للخدمات المشتراة في الاتحاد الاوروبي (يستخدم إذا لم يتم تحديده في ورقة الخدمة)
ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=حساب افتراضي للخدمات المشتراة والمستوردة من الاتحاد الاوروبي (تُستخدم إذا لم يتم تحديدها في ورقة الخدمة)
ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=حساب افتراضي للخدمات المشتراة والمستوردة من المجموعة اﻹقتصادية اﻷوروبية(تُستخدم إذا لم يتم تحديدها في ورقة الخدمة)
ACCOUNTING_SERVICE_SOLD_ACCOUNT=حساب افتراضي للخدمات المباعة (يُستخدم إذا لم يتم تحديده في ورقة الخدمة)
ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=حساب افتراضي للخدمات المباعة في الاتحاد الاوروبي (يُستخدم إذا لم يتم تحديده في ورقة الخدمة)
ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=حساب افتراضي للخدمات المباعة والمصدرة من الاتحاد الاوروبي (تُستخدم إذا لم يتم تحديدها في ورقة الخدمة)
@ -203,29 +203,29 @@ Docdate=التاريخ
Docref=مرجع
LabelAccount=Label account
LabelOperation=Label operation
Sens=الاتجاه
AccountingDirectionHelp=For an accounting account of a customer, use Credit to record a payment you have received<br>For an accounting account of a supplier, use Debit to record a payment you made
Sens=الادارة
AccountingDirectionHelp=بالنسبة لحساب محاسبي لعميل ، استخدم الائتمان لتسجيل دفعة تلقيتها <br> بالنسبة لحساب محاسبي لمورد ، استخدم الخصم لتسجيل دفعة قمت بها
LetteringCode=Lettering code
Lettering=Lettering
Codejournal=دفتر اليومية
JournalLabel=اسم دفتر اليومية
NumPiece=Piece number
NumPiece=رقم القطعة
TransactionNumShort=رقم. العملية
AccountingCategory=Custom group
AccountingCategory=مجموعة مخصصة
GroupByAccountAccounting=تجميع حسب حساب دفتر الأستاذ العام
GroupBySubAccountAccounting=تجميع حسب حساب دفتر الأستاذ الفرعي
AccountingAccountGroupsDesc=يمكنك هنا تحديد بعض مجموعات الحساب. سيتم استخدامها لتقارير المحاسبة الشخصية.
ByAccounts=حسب الحسابات
ByPredefinedAccountGroups=من خلال مجموعات محددة مسبقًا
ByPersonalizedAccountGroups=بواسطة مجموعات شخصية
ByYear=بحلول العام
ByYear=سنويا
NotMatch=Not Set
DeleteMvt=Delete some lines from accounting
DeleteMvt=حذف بعض البنود من المحاسبة
DelMonth=شهر للحذف
DelYear=السنة للحذف
DelJournal=دفتر يومية للحذف
ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger.
ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted)
ConfirmDeleteMvt=سيؤدي هذا إلى حذف جميع سطور المحاسبة للسنة / الشهر و / أو لمجلة معينة (مطلوب معيار واحد على الأقل). سيتعين عليك إعادة استخدام الميزة "%s" لإعادة السجل المحذوف إلى دفتر الأستاذ.
ConfirmDeleteMvtPartial=سيؤدي هذا إلى حذف المعاملة من المحاسبة (سيتم حذف جميع الأسطر المتعلقة بنفس المعاملة)
FinanceJournal=دفتر المالية اليومي
ExpenseReportsJournal=دفتر تقارير المصاريف
DescFinanceJournal=دفتر المالية اليومي المتضمن لجميع الدفعات عن طريق الحساب المصرفي
@ -247,9 +247,9 @@ DescThirdPartyReport=راجع هنا قائمة العملاء والموردي
ListAccounts=قائمة الحسابات المحاسبية
UnknownAccountForThirdparty=حساب طرف ثالث غير معروف. سوف نستخدم %s
UnknownAccountForThirdpartyBlocking=حساب طرف ثالث غير معروف. خطأ في المنع
ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Subledger account not defined or third party or user unknown. We will use %s
ThirdpartyAccountNotDefinedOrThirdPartyUnknown=حساب دفتر الأستاذ الفرعي غير محدد أو الطرف الثالث أو المستخدم غير معروف. سوف نستخدم %s
ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=طرف ثالث غير معروف ودفتر الأستاذ الفرعي غير محدد في الدفعة. سنبقي قيمة حساب دفتر الأستاذ الفرعي فارغة.
ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Subledger account not defined or third party or user unknown. Blocking error.
ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=حساب دفتر الأستاذ الفرعي غير محدد أو الطرف الثالث أو المستخدم غير معروف. خطأ في المنع.
UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=حساب طرف ثالث وحساب قيد الانتظار غير معرّفين. خطأ في المنع
PaymentsNotLinkedToProduct=الدفع غير مرتبط بأي منتج / خدمة
OpeningBalance=الرصيد الافتتاحي
@ -279,31 +279,31 @@ DescVentilExpenseReportMore=إذا قمت بإعداد حساب على نوع ب
DescVentilDoneExpenseReport=راجع هنا قائمة بنود تقارير المصروفات وحساب رسومها
Closure=الإغلاق السنوي
DescClosure=Consult here the number of movements by month who are not yet validated & locked
OverviewOfMovementsNotValidated=Overview of movements not validated and locked
AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked
NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked
ValidateMovements=Validate and lock record...
DescClosure=Consult here the number of movements by month not yet validated & locked
OverviewOfMovementsNotValidated=نظرة عامة على الحركات التي لم يتم التحقق من صحتها وإغلاقها
AllMovementsWereRecordedAsValidated=تم تسجيل جميع الحركات على أنها محققة ومغلقة
NotAllMovementsCouldBeRecordedAsValidated=لا يمكن تسجيل جميع الحركات على أنها تم التحقق من صحتها وقفلها
ValidateMovements=التحقق من صحة السجل وقفله ...
DescValidateMovements=سيتم حظر أي تعديل أو حذف للكتابة والحروف. يجب اعتماد جميع الإدخالات الخاصة بالتمرين وإلا فلن يكون الإغلاق ممكنًا
ValidateHistory=ربط تلقائي
AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s)
AutomaticBindingDone=تم إجراء عمليات ربط تلقائية (%s) - الربط التلقائي غير ممكن لبعض السجلات (%s)
ErrorAccountancyCodeIsAlreadyUse=خطأ، لا يمكنك حذف هذا الحساب المحاسبي لأنه مستخدم
MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s
MvtNotCorrectlyBalanced=الحركة غير متوازنة بشكل صحيح. الخصم = %s والائتمان = %s
Balancing=موازنة
FicheVentilation=بطاقة مرتبطة
GeneralLedgerIsWritten=المعاملات مكتوبة في دفتر الأستاذ
GeneralLedgerSomeRecordWasNotRecorded=لا يمكن تسجيل بعض المعاملات. إذا لم تكن هناك رسالة خطأ أخرى ، فربما يكون ذلك بسبب تسجيلها في دفتر اليومية بالفعل.
NoNewRecordSaved=No more record to transfer
NoNewRecordSaved=لا يوجد المزيد من السجلات لنقلها
ListOfProductsWithoutAccountingAccount=قائمة المنتجات غير مرتبطة بأي حساب
ChangeBinding=تغيير الربط
Accounted=حسب في دفتر الأستاذ
NotYetAccounted=Not yet transferred to accounting
NotYetAccounted=لم يتم تحويلها بعد إلى المحاسبة
ShowTutorial=عرض البرنامج التعليمي
NotReconciled=لم يتم تسويتة
WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view
AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts
WarningRecordWithoutSubledgerAreExcluded=تحذير ، كل الأسطر التي لم يتم تحديد حساب دفتر الأستاذ الفرعي تتم تصفيتها واستبعادها من طريقة العرض هذه
AccountRemovedFromCurrentChartOfAccount=حساب محاسبي غير موجود في مخطط الحسابات الحالي
## Admin
BindingOptions=خيارات الربط
@ -320,7 +320,7 @@ AccountingJournalType2=مبيعات
AccountingJournalType3=مشتريات
AccountingJournalType4=بنك
AccountingJournalType5=تقرير مصروفات
AccountingJournalType8=المخزون
AccountingJournalType8=الجرد
AccountingJournalType9=Has-new
ErrorAccountingJournalIsAlreadyUse=هذه الدفتر مستخدم بالفعل
AccountingAccountForSalesTaxAreDefinedInto=ملاحظة: تم تعريف حساب ضريبة المبيعات في القائمة <b> %s </b> - <b> %s </b>
@ -331,10 +331,10 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=تعطيل الربط والتحويل
ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=تعطيل الربط والتحويل في المحاسبة على تقارير المصروفات (لن يتم أخذ تقارير المصروفات في الاعتبار في المحاسبة)
## Export
NotifiedExportDate=Flag exported lines as Exported <span class="warning">(to modify a line, you will need to delete the whole transaction and re-transfert it into accounting)</span>
NotifiedExportDate=ضع علامة على الخطوط المصدرة كـ <span class="warning"> (لتعديل سطر ، ستحتاج إلى حذف المعاملة بالكامل وإعادة تحويلها إلى المحاسبة) </span>
NotifiedValidationDate=Validate and Lock the exported entries <span class="warning">(same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible)</span>
DateValidationAndLock=Date validation and lock
ConfirmExportFile=Confirmation of the generation of the accounting export file ?
DateValidationAndLock=التحقق من صحة التاريخ والقفل
ConfirmExportFile=تأكيد إنشاء ملف محاسبي تصدير؟
ExportDraftJournal=تصدير مسودة دفتر اليومية
Modelcsv=نموذج التصدير
Selectmodelcsv=تحديد نموذج للتصدير
@ -342,11 +342,11 @@ Modelcsv_normal=تصدير كلاسيكي
Modelcsv_CEGID=Export for CEGID Expert Comptabilité
Modelcsv_COALA=Export for Sage Coala
Modelcsv_bob50=Export for Sage BOB 50
Modelcsv_ciel=Export for Sage50, Ciel Compta or Compta Evo. (Format XIMPORT)
Modelcsv_ciel=تصدير لـ Sage50 أو Ciel Compta أو Compta Evo. (تنسيق XIMPORT)
Modelcsv_quadratus=Export for Quadratus QuadraCompta
Modelcsv_ebp=Export for EBP
Modelcsv_cogilog=Export for Cogilog
Modelcsv_agiris=Export for Agiris Isacompta
Modelcsv_agiris=تصدير إلى Agiris Isacompta
Modelcsv_LDCompta=Export for LD Compta (v9) (Test)
Modelcsv_LDCompta10=Export for LD Compta (v10 & higher)
Modelcsv_openconcerto=Export for OpenConcerto (Test)
@ -354,10 +354,10 @@ Modelcsv_configurable=Export CSV Configurable
Modelcsv_FEC=Export FEC
Modelcsv_FEC2=Export FEC (With dates generation writing / document reversed)
Modelcsv_Sage50_Swiss=Export for Sage 50 Switzerland
Modelcsv_winfic=Export for Winfic - eWinfic - WinSis Compta
Modelcsv_winfic=تصدير لـ Winfic - eWinfic - WinSis Compta
Modelcsv_Gestinumv3=Export for Gestinum (v3)
Modelcsv_Gestinumv5=Export for Gestinum (v5)
Modelcsv_charlemagne=Export for Aplim Charlemagne
Modelcsv_Gestinumv5=تصدير لـ Gestinum (v5)
Modelcsv_charlemagne=تصدير لأبليم شارلمان
ChartofaccountsId=معرف دليل الحسابات
## Tools - Init accounting account on product / service
@ -390,27 +390,27 @@ SaleExport=بيع تصدير
SaleEEC=بيع في الاتحاد الاوروبي
SaleEECWithVAT=البيع في EEC مع ضريبة القيمة المضافة ليست فارغة ، لذلك نفترض أن هذا ليس بيعًا داخل الاتحاد والحساب المقترح هو حساب المنتج القياسي.
SaleEECWithoutVATNumber=Sale in EEC with no VAT but the VAT ID of thirdparty is not defined. We fallback on the product account for standard sales. You can fix the VAT ID of thirdparty or the product account if needed.
ForbiddenTransactionAlreadyExported=Forbidden: The transaction has been validated and/or exported.
ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated.
ForbiddenTransactionAlreadyExported=ممنوع: تم التحقق من صحة المعاملة و / أو تصديرها.
ForbiddenTransactionAlreadyValidated=ممنوع: تم التحقق من صحة المعاملة.
## Dictionary
Range=نطاق الحساب
Calculated=تم حسابه
Formula=معادلة
## Reconcile
Unlettering=Unreconcile
AccountancyNoLetteringModified=No reconcile modified
AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified
AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified
AccountancyNoUnletteringModified=No unreconcile modified
AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified
AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified
Unlettering=غير قابل للتوفيق
AccountancyNoLetteringModified=لم يتم تعديل تسوية
AccountancyOneLetteringModifiedSuccessfully=تم تعديل أحد التوفيق بنجاح
AccountancyLetteringModifiedSuccessfully=تعديل %s بنجاح
AccountancyNoUnletteringModified=لم يتم تعديل عدم التوفيق بينها
AccountancyOneUnletteringModifiedSuccessfully=تم تعديل أحد ملفات التوفيق بنجاح
AccountancyUnletteringModifiedSuccessfully=تم تعديل %s بنجاح
## Confirm box
ConfirmMassUnlettering=Bulk Unreconcile confirmation
ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)?
ConfirmMassUnlettering=تأكيد مجمّع غير قابل للتسوية
ConfirmMassUnletteringQuestion=هل أنت متأكد من أنك تريد إلغاء التوفيق بين التسجيلة (السجلات) المحددة %s؟
ConfirmMassDeleteBookkeepingWriting=تأكيد الحذف الضخم
ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)?
ConfirmMassDeleteBookkeepingWritingQuestion=سيؤدي هذا إلى حذف المعاملة من المحاسبة (سيتم حذف جميع الأسطر المتعلقة بنفس المعاملة) هل أنت متأكد من أنك تريد حذف السجل (السجلات) المحددة %s؟
## Error
SomeMandatoryStepsOfSetupWereNotDone=لم يتم تنفيذ بعض خطوات الإعداد الإلزامية ، يرجى إكمالها
@ -423,32 +423,33 @@ NoJournalDefined=لم يتم تحديد دفتر
Binded=البنود مرتبطة
ToBind=بنود للربط
UseMenuToSetBindindManualy=البنود غير مرتبطة بعد ، استخدم القائمة <a href="%s"> %s </a> لإجراء الربط يدويًا
SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices
AccountancyErrorMismatchLetterCode=Mismatch in reconcile code
AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0
AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s
SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=عذرًا ، هذه الوحدة غير متوافقة مع الميزة التجريبية لفواتير الحالة
AccountancyErrorMismatchLetterCode=عدم تطابق في التوفيق بين الكود
AccountancyErrorMismatchBalanceAmount=الرصيد (%s) لا يساوي 0
AccountancyErrorLetteringBookkeeping=حدثت أخطاء بخصوص المعاملات: %s
ErrorAccountNumberAlreadyExists=رقم المحاسبة %s موجود بالفعل
## Import
ImportAccountingEntries=مداخيل حسابية
ImportAccountingEntriesFECFormat=Accounting entries - FEC format
FECFormatJournalCode=Code journal (JournalCode)
FECFormatJournalLabel=Label journal (JournalLib)
FECFormatEntryNum=Piece number (EcritureNum)
FECFormatEntryDate=Piece date (EcritureDate)
FECFormatGeneralAccountNumber=General account number (CompteNum)
FECFormatGeneralAccountLabel=General account label (CompteLib)
FECFormatSubledgerAccountNumber=Subledger account number (CompAuxNum)
FECFormatSubledgerAccountLabel=Subledger account number (CompAuxLib)
FECFormatPieceRef=Piece ref (PieceRef)
FECFormatPieceDate=Piece date creation (PieceDate)
FECFormatLabelOperation=Label operation (EcritureLib)
ImportAccountingEntriesFECFormat=قيود المحاسبة - شكل FEC
FECFormatJournalCode=مجلة الكود (JournalCode)
FECFormatJournalLabel=مجلة التسمية (JournalLib)
FECFormatEntryNum=رقم القطعة (EcritureNum)
FECFormatEntryDate=تاريخ القطعة (EcritureDate)
FECFormatGeneralAccountNumber=رقم الحساب العام (CompteNum)
FECFormatGeneralAccountLabel=تصنيف الحساب العام (CompteLib)
FECFormatSubledgerAccountNumber=رقم حساب دفتر الأستاذ الفرعي (CompAuxNum)
FECFormatSubledgerAccountLabel=رقم حساب دفتر الأستاذ الفرعي (CompAuxLib)
FECFormatPieceRef=مرجع القطعة (PieceRef)
FECFormatPieceDate=إنشاء تاريخ القطعة (تاريخ القطعة)
FECFormatLabelOperation=عملية التسمية (EcritureLib)
FECFormatDebit=مدين (مدين)
FECFormatCredit=دائن (دائن)
FECFormatReconcilableCode=Reconcilable code (EcritureLet)
FECFormatReconcilableDate=Reconcilable date (DateLet)
FECFormatValidateDate=Piece date validated (ValidDate)
FECFormatMulticurrencyAmount=Multicurrency amount (Montantdevise)
FECFormatMulticurrencyCode=Multicurrency code (Idevise)
FECFormatReconcilableCode=كود قابل للتوفيق (EcritureLet)
FECFormatReconcilableDate=تاريخ قابل للتسوية (DateLet)
FECFormatValidateDate=تم التحقق من تاريخ القطعة (ValidDate)
FECFormatMulticurrencyAmount=مبلغ متعدد العملات (Montantdevise)
FECFormatMulticurrencyCode=كود متعدد العملات (ايديفيز)
DateExport=تاريخ التصدير
WarningReportNotReliable=تحذير ، هذا التقرير لا يستند إلى دفتر الأستاذ ، لذلك لا يحتوي على معاملة تم تعديلها يدويًا في دفتر الأستاذ. إذا كان تسجيل دفتر اليومية الخاص بك محدثًا ، فسيكون عرض مسك الدفاتر أكثر دقة.

File diff suppressed because it is too large Load Diff

View File

@ -31,20 +31,21 @@ ViewWeek=عرض اسبوعي
ViewPerUser=لكل وجهة نظر المستخدم
ViewPerType=العرض حسب النوع
AutoActions= إكمال تلقائي
AgendaAutoActionDesc= Here you may define events which you want Dolibarr to create automatically in Agenda. If nothing is checked, only manual actions will be included in logs and displayed in Agenda. Automatic tracking of business actions done on objects (validation, status change) will not be saved.
AgendaSetupOtherDesc= This page provides options to allow the export of your Dolibarr events into an external calendar (Thunderbird, Google Calendar etc...)
AgendaAutoActionDesc= هنا يمكنك تحديد الأحداث التي تريد أن ينشئها Dolibarr تلقائيًا في الأجندة. إذا لم يتم تحديد أي شيء ، فسيتم تضمين الإجراءات اليدوية فقط في السجلات وعرضها في الأجندة. لن يتم حفظ التتبع التلقائي لإجراءات العمل التي تتم على الكائنات (التحقق من الصحة ، تغيير الحالة).
AgendaSetupOtherDesc= توفر هذه الصفحة خيارات للسماح بتصدير أحداث Dolibarr إلى تقويم خارجي (Thunderbird وتقويم Google وما إلى ذلك ...)
AgendaExtSitesDesc=تسمح هذه الصفحة بالإعلان عن المصادر الخارجية للتقويمات لرؤية أحداثها في جدول أعمال Dolibarr.
ActionsEvents=الأحداث التي سيقوم دوليبار بإنشاء أعمال في جدول الأعمال بشكل تلقائي
EventRemindersByEmailNotEnabled=Event reminders by email was not enabled into %s module setup.
EventRemindersByEmailNotEnabled=لم يتم تمكين تذكيرات الأحداث عبر البريد الإلكتروني في إعداد الوحدة النمطية %s.
##### Agenda event labels #####
NewCompanyToDolibarr=تم إنشاء الطرف الثالث %s
COMPANY_MODIFYInDolibarr=Third party %s modified
COMPANY_DELETEInDolibarr=Third party %s deleted
COMPANY_MODIFYInDolibarr=الطرف الثالث %s تم تعديله
COMPANY_DELETEInDolibarr=تم حذف %s الخاص بالطرف الثالث
ContractValidatedInDolibarr=العقد%s تم التأكد من صلاحيته
CONTRACT_DELETEInDolibarr=Contract %s deleted
CONTRACT_DELETEInDolibarr=تم حذف العقد %s
PropalClosedSignedInDolibarr=الإقتراح%sتم توقعية
PropalClosedRefusedInDolibarr=الإقتراح%s تم رفضة
PropalValidatedInDolibarr=اقتراح %s التحقق من صحة
PropalBackToDraftInDolibarr=الاقتراح %s يعود إلى حالة المسودة
PropalClassifiedBilledInDolibarr=الإقتراح%s تصنف تم دفعة
InvoiceValidatedInDolibarr=تم التحقق من صحة الفاتورة %s
InvoiceValidatedInDolibarrFromPos=الفاتورة%s تم التأكد من صلاحيتها من نقاط البيع
@ -56,16 +57,17 @@ MemberValidatedInDolibarr=العضو%s التأكد من صلاحيته
MemberModifiedInDolibarr=العضو %sتم تعديلة
MemberResiliatedInDolibarr=العضو %sتم إنهاؤه
MemberDeletedInDolibarr=العضو %s تم حذفة
MemberSubscriptionAddedInDolibarr=Subscription %s for member %s added
MemberSubscriptionModifiedInDolibarr=Subscription %s for member %s modified
MemberSubscriptionDeletedInDolibarr=Subscription %s for member %s deleted
MemberSubscriptionAddedInDolibarr=تمت إضافة اشتراك %s للعضو %s
MemberSubscriptionModifiedInDolibarr=اشتراك %s للعضو %s معدّل
MemberSubscriptionDeletedInDolibarr=تم حذف الاشتراك %s للعضو %s
ShipmentValidatedInDolibarr=شحنة%s التأكد من صلاحيتها
ShipmentClassifyClosedInDolibarr=الشحنة %sتم تصنيفها مدفوعة
ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified re-open
ShipmentBackToDraftInDolibarr=Shipment %s go back to draft status
ShipmentUnClassifyCloseddInDolibarr=إعادة فتح الشحنة %s المصنفة
ShipmentBackToDraftInDolibarr=تعود الشحنة %s إلى حالة المسودة
ShipmentDeletedInDolibarr=الشحنة%sتم حذفها
ShipmentCanceledInDolibarr=Shipment %s canceled
ReceptionValidatedInDolibarr=Reception %s validated
ShipmentCanceledInDolibarr=تم إلغاء الشحنة %s
ReceptionValidatedInDolibarr=تم التحقق من صحة الاستقبال %s
ReceptionClassifyClosedInDolibarr=الاستقبال %s مصنف مغلق
OrderCreatedInDolibarr=الطلب %s تم إنشاؤة
OrderValidatedInDolibarr=الطلب %s تم التحقق منه
OrderDeliveredInDolibarr=الطلب %s مصنف تم التوصيل
@ -74,31 +76,31 @@ OrderBilledInDolibarr=الطلب%s مصنف تم الدفع
OrderApprovedInDolibarr=الطلب %s تم الموافقة علية
OrderRefusedInDolibarr=الطلب %s تم رفضه
OrderBackToDraftInDolibarr=الطلب %s تم إرجاعة إلى حالة المسودة
ProposalSentByEMail=Commercial proposal %s sent by email
ContractSentByEMail=Contract %s sent by email
OrderSentByEMail=Sales order %s sent by email
InvoiceSentByEMail=Customer invoice %s sent by email
SupplierOrderSentByEMail=Purchase order %s sent by email
ORDER_SUPPLIER_DELETEInDolibarr=Purchase order %s deleted
SupplierInvoiceSentByEMail=Vendor invoice %s sent by email
ShippingSentByEMail=Shipment %s sent by email
ProposalSentByEMail=تم إرسال الاقتراح التجاري %s عبر البريد الإلكتروني
ContractSentByEMail=تم إرسال العقد %s عن طريق البريد الإلكتروني
OrderSentByEMail=تم إرسال أمر المبيعات %s عبر البريد الإلكتروني
InvoiceSentByEMail=فاتورة العميل رقم %s مُرسلة عبر البريد الإلكتروني
SupplierOrderSentByEMail=تم إرسال أمر الشراء %s عبر البريد الإلكتروني
ORDER_SUPPLIER_DELETEInDolibarr=تم حذف أمر الشراء %s
SupplierInvoiceSentByEMail=فاتورة البائع %s مُرسلة عبر البريد الإلكتروني
ShippingSentByEMail=شحنة %s أرسلت عن طريق البريد الإلكتروني
ShippingValidated= الشحنة %s تم التأكد من صلاحيتها
InterventionSentByEMail=Intervention %s sent by email
InterventionSentByEMail=تم إرسال التدخل %s عبر البريد الإلكتروني
ProposalDeleted=تم حذف العرض
OrderDeleted=تم حذف الطلب
InvoiceDeleted=تم حذف الفاتورة
DraftInvoiceDeleted=Draft invoice deleted
CONTACT_CREATEInDolibarr=Contact %s created
CONTACT_MODIFYInDolibarr=Contact %s modified
CONTACT_DELETEInDolibarr=Contact %s deleted
DraftInvoiceDeleted=تم حذف مسودة الفاتورة
CONTACT_CREATEInDolibarr=تم إنشاء جهة الاتصال %s
CONTACT_MODIFYInDolibarr=تعديل الاتصال %s
CONTACT_DELETEInDolibarr=تم حذف جهة الاتصال %s
PRODUCT_CREATEInDolibarr=المنتج %s تم انشاؤه
PRODUCT_MODIFYInDolibarr=المنتج %sتم تعديلة
PRODUCT_DELETEInDolibarr=المنتج%s تم حذفة
HOLIDAY_CREATEInDolibarr=Request for leave %s created
HOLIDAY_MODIFYInDolibarr=Request for leave %s modified
HOLIDAY_APPROVEInDolibarr=Request for leave %s approved
HOLIDAY_VALIDATEInDolibarr=Request for leave %s validated
HOLIDAY_DELETEInDolibarr=Request for leave %s deleted
HOLIDAY_CREATEInDolibarr=تم إنشاء طلب إجازة %s
HOLIDAY_MODIFYInDolibarr=طلب إجازة تعديل %s
HOLIDAY_APPROVEInDolibarr=طلب إجازة تمت الموافقة على %s
HOLIDAY_VALIDATEInDolibarr=تم التحقق من صحة طلب المغادرة %s
HOLIDAY_DELETEInDolibarr=طلب إجازة %s محذوف
EXPENSE_REPORT_CREATEInDolibarr=تقرير المصروفات %sتم إنشاؤة
EXPENSE_REPORT_VALIDATEInDolibarr=تقرير المصروفات %s تم التحقق من صحتة
EXPENSE_REPORT_APPROVEInDolibarr=تقرير المصروفات %s تم الموافقة عليه
@ -107,22 +109,22 @@ EXPENSE_REPORT_REFUSEDInDolibarr=تقرير المصروفات%s تم رفضة
PROJECT_CREATEInDolibarr=مشروع٪ الصورة التي تم إنشاؤها
PROJECT_MODIFYInDolibarr=المشروع %s تم تعديلة
PROJECT_DELETEInDolibarr=المشروع %s تم حذفة
TICKET_CREATEInDolibarr=Ticket %s created
TICKET_MODIFYInDolibarr=Ticket %s modified
TICKET_ASSIGNEDInDolibarr=Ticket %s assigned
TICKET_CLOSEInDolibarr=Ticket %s closed
TICKET_DELETEInDolibarr=Ticket %s deleted
BOM_VALIDATEInDolibarr=BOM validated
BOM_UNVALIDATEInDolibarr=BOM unvalidated
BOM_CLOSEInDolibarr=BOM disabled
BOM_REOPENInDolibarr=BOM reopen
BOM_DELETEInDolibarr=BOM deleted
MRP_MO_VALIDATEInDolibarr=MO validated
MRP_MO_UNVALIDATEInDolibarr=MO set to draft status
MRP_MO_PRODUCEDInDolibarr=MO produced
MRP_MO_DELETEInDolibarr=MO deleted
MRP_MO_CANCELInDolibarr=MO canceled
PAIDInDolibarr=%s paid
TICKET_CREATEInDolibarr=تم إنشاء التذكرة %s
TICKET_MODIFYInDolibarr=تم تعديل التذكرة %s
TICKET_ASSIGNEDInDolibarr=تم تعيين التذكرة %s
TICKET_CLOSEInDolibarr=تم إغلاق التذكرة %s
TICKET_DELETEInDolibarr=تم حذف التذكرة %s
BOM_VALIDATEInDolibarr=تم التحقق من صحة BOM
BOM_UNVALIDATEInDolibarr=لم يتم التحقق من BOM
BOM_CLOSEInDolibarr=تم تعطيل BOM
BOM_REOPENInDolibarr=إعادة فتح BOM
BOM_DELETEInDolibarr=تم حذف BOM
MRP_MO_VALIDATEInDolibarr=تم التحقق من صحة MO
MRP_MO_UNVALIDATEInDolibarr=تم تعيين MO على وضع المسودة
MRP_MO_PRODUCEDInDolibarr=أنتجت MO
MRP_MO_DELETEInDolibarr=تم حذف MO
MRP_MO_CANCELInDolibarr=تم إلغاء MO
PAIDInDolibarr=%s المدفوعة
##### End agenda events #####
AgendaModelModule=نماذج المستندات للحدث
DateActionStart=تاريخ البدء
@ -131,10 +133,10 @@ AgendaUrlOptions1=يمكنك أيضا إضافة المعايير التالية
AgendaUrlOptions3=<b>وجينا =%sإلى</b> تقييد الإخراج إلى الإجراءات التي يملكها المستخدم<b>%s</b>.
AgendaUrlOptionsNotAdmin=<b>لوجينا=!%s</b> لمنع اخراج الجراءات التى لا يمتلكها المستخدم <b>%s</b>.
AgendaUrlOptions4=<b>لوجينت =%s</b> لتقييد الإخراج على الإجراءات المعينة للمستخدم <b>%s</b> (المالك والآخرين).
AgendaUrlOptionsProject=<b>project=__PROJECT_ID__</b> to restrict output to actions linked to project <b>__PROJECT_ID__</b>.
AgendaUrlOptionsNotAutoEvent=<b>notactiontype=systemauto</b> to exclude automatic events.
AgendaUrlOptionsIncludeHolidays=<b>includeholidays=1</b> to include events of holidays.
AgendaShowBirthdayEvents=Birthdays of contacts
AgendaUrlOptionsProject= مشروع <b> = __ PROJECT_ID__ </b> لتقييد الإخراج بالإجراءات المرتبطة بالمشروع <b> __PROJECT_ID__ </b>.
AgendaUrlOptionsNotAutoEvent= <b> notactiontype = systemauto </b> لاستبعاد الأحداث التلقائية.
AgendaUrlOptionsIncludeHolidays= <b> تشمل الإجازات = 1 </b> لتضمين أحداث الأعياد.
AgendaShowBirthdayEvents=أعياد ميلاد جهات الاتصال
AgendaHideBirthdayEvents=إخفاء تواريخ ميلاد جهات الإتصال
Busy=مشغول
ExportDataset_event1=قائمة الأحداث في جدول الأعمال
@ -143,9 +145,9 @@ DefaultWorkingHours=افتراضي ساعات العمل في اليوم (على
# External Sites ical
ExportCal=تصدير التقويم
ExtSites=استيراد التقويمات الخارجية
ExtSitesEnableThisTool=Show external calendars (defined in global setup) in Agenda. Does not affect external calendars defined by users.
ExtSitesEnableThisTool=إظهار التقويمات الخارجية (المحددة في الإعداد العام) في الأجندة. لا يؤثر على التقويمات الخارجية التي حددها المستخدمون.
ExtSitesNbOfAgenda=عدد التقويمات
AgendaExtNb=Calendar no. %s
AgendaExtNb=التقويم لا. %s
ExtSiteUrlAgenda=عنوان المتصفح للدخول لملف .ical
ExtSiteNoLabel=لا يوجد وصف
VisibleTimeRange=نطاق زمني مرئي
@ -156,19 +158,19 @@ ActionType=نوع الحدث
DateActionBegin=تاريخ البدء الحدث
ConfirmCloneEvent=هل انت متأكد انك ترغب في استنساخ الحدث <b>%s</b> ؟
RepeatEvent=تكرار الحدث
OnceOnly=Once only
OnceOnly=مرة واحدة فقط
EveryWeek=كل اسبوع
EveryMonth=كل شهر
DayOfMonth=يوم من الشهر
DayOfWeek=يوم من الأسبوع
DateStartPlusOne=تاريخ بدء + 1 ساعة
SetAllEventsToTodo=Set all events to todo
SetAllEventsToInProgress=Set all events to in progress
SetAllEventsToFinished=Set all events to finished
ReminderTime=Reminder period before the event
TimeType=Duration type
ReminderType=Callback type
AddReminder=Create an automatic reminder notification for this event
ErrorReminderActionCommCreation=Error creating the reminder notification for this event
BrowserPush=Browser Popup Notification
ActiveByDefault=Enabled by default
SetAllEventsToTodo=اضبط كل الأحداث على ما يجب فعله
SetAllEventsToInProgress=اضبط كل الأحداث على قيد التقدم
SetAllEventsToFinished=اضبط جميع الأحداث على الانتهاء
ReminderTime=فترة تذكير قبل الحدث
TimeType=نوع المدة
ReminderType=نوع رد الاتصال
AddReminder=إنشاء إشعار تذكير تلقائي لهذا الحدث
ErrorReminderActionCommCreation=خطأ في إنشاء إشعار التذكير لهذا الحدث
BrowserPush=إعلام المتصفح المنبثق
ActiveByDefault=يتم التمكين افتراضيًا

View File

@ -18,13 +18,13 @@ BoxLastActions=أحدث الإجراءات
BoxLastContracts=أحدث العقود
BoxLastContacts=أحدث الاتصالات | العناوين
BoxLastMembers=أحدث الأعضاء
BoxLastModifiedMembers=Latest modified members
BoxLastMembersSubscriptions=Latest member subscriptions
BoxLastModifiedMembers=أحدث الأعضاء المعدلين
BoxLastMembersSubscriptions=أحدث اشتراكات الأعضاء
BoxFicheInter=أحدث التدخلات
BoxCurrentAccounts=ميزان الحسابات المفتوحة
BoxTitleMemberNextBirthdays=أعياد الميلاد لهذا الشهر (الأعضاء)
BoxTitleMembersByType=Members by type
BoxTitleMembersSubscriptionsByYear=Members Subscriptions by year
BoxTitleMembersByType=الأعضاء حسب النوع والحالة
BoxTitleMembersSubscriptionsByYear=اشتراكات الأعضاء حسب السنة
BoxTitleLastRssInfos=آخر أخبار %s من %s
BoxTitleLastProducts=المنتجات | الخدمات: آخر %s معدل
BoxTitleProductsAlertStock=المنتجات: تنبيه المخزون
@ -46,11 +46,11 @@ BoxMyLastBookmarks=الإشارات المرجعية: أحدث %s
BoxOldestExpiredServices=أقدم الخدمات النشطة منتهية الصلاحية
BoxLastExpiredServices=أحدث %s أقدم جهات اتصال مع خدمات منتهية الصلاحية نشطة
BoxTitleLastActionsToDo=أحدث إجراءات %s للقيام بها
BoxTitleLastContracts=Latest %s contracts which were modified
BoxTitleLastModifiedDonations=Latest %s donations which were modified
BoxTitleLastModifiedExpenses=Latest %s expense reports which were modified
BoxTitleLatestModifiedBoms=Latest %s BOMs which were modified
BoxTitleLatestModifiedMos=Latest %s Manufacturing Orders which were modified
BoxTitleLastContracts=أحدث عقود %s التي تم تعديلها
BoxTitleLastModifiedDonations=آخر التبرعات %s التي تم تعديلها
BoxTitleLastModifiedExpenses=أحدث تقارير المصروفات %s التي تم تعديلها
BoxTitleLatestModifiedBoms=أحدث %s BOMs التي تم تعديلها
BoxTitleLatestModifiedMos=أحدث أوامر التصنيع %s التي تم تعديلها
BoxTitleLastOutstandingBillReached=العملاء الذين تجاوزا الحد الاقصى
BoxGlobalActivity=النشاط العام (الفواتير ، العروض ، الطلبات)
BoxGoodCustomers=عملاء جيدون
@ -91,8 +91,8 @@ BoxTitleLatestModifiedSupplierOrders=أوامر الموردين: آخر %s تع
BoxTitleLastModifiedCustomerBills=فواتير العميل: آخر %s تعديل
BoxTitleLastModifiedCustomerOrders=أوامر المبيعات: آخر %s تعديل
BoxTitleLastModifiedPropals=أحدث %s العروض المعدلة
BoxTitleLatestModifiedJobPositions=Latest %s modified job positions
BoxTitleLatestModifiedCandidatures=Latest %s modified job applications
BoxTitleLatestModifiedJobPositions=أحدث وظائف %s المعدلة
BoxTitleLatestModifiedCandidatures=أحدث %s تطبيقات العمل المعدلة
ForCustomersInvoices=فواتير العملاء
ForCustomersOrders=أوامر العملاء
ForProposals=عروض
@ -112,9 +112,9 @@ BoxTitleLastCustomerShipments=أحدث %s شحنات العملاء
NoRecordedShipments=لا توجد شحنة مسجلة للعملاء
BoxCustomersOutstandingBillReached=العملاء الذين بلغوا الحد الأقصى المسموح به
# Pages
UsersHome=Home users and groups
MembersHome=Home Membership
ThirdpartiesHome=Home Thirdparties
TicketsHome=Home Tickets
AccountancyHome=Home Accountancy
UsersHome=المستخدمون والمجموعات الرئيسية
MembersHome=عضوية المنزل
ThirdpartiesHome=الصفحة الرئيسية الأطراف الثالثة
TicketsHome=تذاكر المنزل
AccountancyHome=محاسبة المنزل
ValidatedProjects=المشاريع المعتمدة

View File

@ -16,7 +16,7 @@ AddThisArticle=إضافة هذا العنصر
RestartSelling=التراجع عن بيع
SellFinished=اكتمل البيع
PrintTicket=طباعة التذكرة
SendTicket=Send ticket
SendTicket=أرسل التذكرة
NoProductFound=لم يتم العثور على عناصر
ProductFound=تم العثور على المنتج
NoArticle=لا يوجد عناصر
@ -31,106 +31,109 @@ ShowCompany=عرض الشركة
ShowStock=عرض المستودع
DeleteArticle=انقر لإزالة هذا العنصر
FilterRefOrLabelOrBC=بحث (المرجع / الملصق)
UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
UserNeedPermissionToEditStockToUsePos=أنت تطلب تقليل المخزون عند إنشاء الفاتورة ، لذلك يحتاج المستخدم الذي يستخدم نقاط البيع إلى الحصول على إذن لتحرير المخزون.
DolibarrReceiptPrinter=طابعة إيصال دوليبار
PointOfSale=Point of Sale
PointOfSaleShort=POS
CloseBill=Close Bill
Floors=Floors
Floor=Floor
AddTable=Add table
Place=Place
TakeposConnectorNecesary='TakePOS Connector' required
OrderPrinters=Add a button to send the order to some given printers, without payment (for example to send an order to a kitchen)
NotAvailableWithBrowserPrinter=Not available when printer for receipt is set to browser
SearchProduct=Search product
PointOfSale=نقطة البيع
PointOfSaleShort=نقاط البيع
CloseBill=أغلق بيل
Floors=طوابق
Floor=أرضية
AddTable=أضف الجدول
Place=مكان
TakeposConnectorNecesary=مطلوب "موصل TakePOS"
OrderPrinters=أضف زرًا لإرسال الطلب إلى بعض الطابعات المحددة ، دون دفع (على سبيل المثال لإرسال طلب إلى مطبخ)
NotAvailableWithBrowserPrinter=غير متاح عندما تكون الطابعة للإيصال مضبوطة على المتصفح
SearchProduct=البحث عن المنتج
Receipt=ورود
Header=Header
Footer=Footer
AmountAtEndOfPeriod=Amount at end of period (day, month or year)
TheoricalAmount=Theorical amount
RealAmount=Real amount
CashFence=Cash desk closing
CashFenceDone=Cash desk closing done for the period
Header=رأس
Footer=تذييل
AmountAtEndOfPeriod=المبلغ في نهاية الفترة (اليوم أو الشهر أو السنة)
TheoricalAmount=المبلغ النظري
RealAmount=المبلغ الحقيقي
CashFence=إغلاق صندوق النقد
CashFenceDone=تم إغلاق الصندوق النقدي للفترة
NbOfInvoices=ملاحظة : من الفواتير
Paymentnumpad=Type of Pad to enter payment
Numberspad=Numbers Pad
BillsCoinsPad=Coins and banknotes Pad
DolistorePosCategory=TakePOS modules and other POS solutions for Dolibarr
TakeposNeedsCategories=TakePOS needs at least one product categorie to work
TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=TakePOS needs at least 1 product category under the category <b>%s</b> to work
OrderNotes=Can add some notes to each ordered items
CashDeskBankAccountFor=Default account to use for payments in
NoPaimementModesDefined=No paiment mode defined in TakePOS configuration
TicketVatGrouped=Group VAT by rate in tickets|receipts
AutoPrintTickets=Automatically print tickets|receipts
PrintCustomerOnReceipts=Print customer on tickets|receipts
EnableBarOrRestaurantFeatures=Enable features for Bar or Restaurant
ConfirmDeletionOfThisPOSSale=Do your confirm the deletion of this current sale ?
ConfirmDiscardOfThisPOSSale=Do you want to discard this current sale ?
Paymentnumpad=نوع الوسادة للدفع
Numberspad=لوحة الأرقام
BillsCoinsPad=وسادة عملات وأوراق نقدية
DolistorePosCategory=وحدات TakePOS وحلول نقاط البيع الأخرى لـ Dolibarr
TakeposNeedsCategories=يحتاج TakePOS إلى فئة منتج واحدة على الأقل للعمل
TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=يحتاج TakePOS إلى فئة منتج واحدة على الأقل ضمن الفئة <b> %s </b> للعمل
OrderNotes=يمكن إضافة بعض الملاحظات على كل العناصر المطلوبة
CashDeskBankAccountFor=الحساب الافتراضي لاستخدامه في عمليات الدفع
NoPaimementModesDefined=لم يتم تحديد وضع paiment في تكوين TakePOS
TicketVatGrouped=تجميع ضريبة القيمة المضافة حسب معدل التذاكر | الإيصالات
AutoPrintTickets=طباعة التذاكر | الإيصالات تلقائيًا
PrintCustomerOnReceipts=طباعة العميل على التذاكر | الإيصالات
EnableBarOrRestaurantFeatures=تمكين ميزات للبار أو المطعم
ConfirmDeletionOfThisPOSSale=هل تؤكد حذف هذا البيع الحالي؟
ConfirmDiscardOfThisPOSSale=هل تريد تجاهل هذا البيع الحالي؟
History=التاريخ
ValidateAndClose=Validate and close
Terminal=Terminal
NumberOfTerminals=Number of Terminals
TerminalSelect=Select terminal you want to use:
POSTicket=POS Ticket
POSTerminal=POS Terminal
POSModule=POS Module
BasicPhoneLayout=Use basic layout for phones
SetupOfTerminalNotComplete=Setup of terminal %s is not complete
DirectPayment=Direct payment
DirectPaymentButton=Add a "Direct cash payment" button
InvoiceIsAlreadyValidated=Invoice is already validated
NoLinesToBill=No lines to bill
CustomReceipt=Custom Receipt
ReceiptName=Receipt Name
ProductSupplements=Manage supplements of products
SupplementCategory=Supplement category
ColorTheme=Color theme
Colorful=Colorful
HeadBar=Head Bar
SortProductField=Field for sorting products
ValidateAndClose=التحقق من صحة وإغلاق
Terminal=صالة
NumberOfTerminals=عدد المحطات
TerminalSelect=حدد المحطة التي تريد استخدامها:
POSTicket=تذكرة نقاط البيع
POSTerminal=محطة نقاط البيع
POSModule=وحدة نقاط البيع
BasicPhoneLayout=استخدم التخطيط الأساسي للهواتف
SetupOfTerminalNotComplete=لم يكتمل إعداد الجهاز %s
DirectPayment=دفع مباشر
DirectPaymentButton=أضف زر "دفع نقدي مباشر"
InvoiceIsAlreadyValidated=تم التحقق من صحة الفاتورة بالفعل
NoLinesToBill=لا خطوط للفوترة
CustomReceipt=إيصال مخصص
ReceiptName=اسم الإيصال
ProductSupplements=إدارة مكملات المنتجات
SupplementCategory=فئة الملحق
ColorTheme=موضوع اللون
Colorful=زاهى الألوان
HeadBar=رئيس بار
SortProductField=مجال لفرز المنتجات
Browser=المتصفح
BrowserMethodDescription=Simple and easy receipt printing. Only a few parameters to configure the receipt. Print via browser.
TakeposConnectorMethodDescription=External module with extra features. Posibility to print from the cloud.
PrintMethod=Print method
ReceiptPrinterMethodDescription=Powerful method with a lot of parameters. Full customizable with templates. The server hosting the application can't be in the Cloud (must be able to reach the printers in your network).
ByTerminal=By terminal
TakeposNumpadUsePaymentIcon=Use icon instead of text on payment buttons of numpad
CashDeskRefNumberingModules=Numbering module for POS sales
CashDeskGenericMaskCodes6 = <br><b>{TN}</b> tag is used to add the terminal number
TakeposGroupSameProduct=Group same products lines
StartAParallelSale=Start a new parallel sale
SaleStartedAt=Sale started at %s
ControlCashOpening=Open the "Control cash" popup when opening the POS
CloseCashFence=Close cash desk control
CashReport=Cash report
MainPrinterToUse=Main printer to use
OrderPrinterToUse=Order printer to use
MainTemplateToUse=Main template to use
OrderTemplateToUse=Order template to use
BarRestaurant=Bar Restaurant
AutoOrder=Order by the customer himself
RestaurantMenu=Menu
CustomerMenu=Customer menu
ScanToMenu=Scan QR code to see the menu
ScanToOrder=Scan QR code to order
Appearance=Appearance
HideCategoryImages=Hide Category Images
HideProductImages=Hide Product Images
NumberOfLinesToShow=Number of lines of images to show
DefineTablePlan=Define tables plan
GiftReceiptButton=Add a "Gift receipt" button
GiftReceipt=Gift receipt
ModuleReceiptPrinterMustBeEnabled=Module Receipt printer must have been enabled first
AllowDelayedPayment=Allow delayed payment
PrintPaymentMethodOnReceipts=Print payment method on tickets|receipts
WeighingScale=Weighing scale
ShowPriceHT = Display the column with the price excluding tax (on screen)
ShowPriceHTOnReceipt = Display the column with the price excluding tax (on the receipt)
CustomerDisplay=Customer display
SplitSale=Split sale
PrintWithoutDetailsButton=Add "Print without details" button
PrintWithoutDetailsLabelDefault=Line label by default on printing without details
PrintWithoutDetails=Print without details
YearNotDefined=Year is not defined
BrowserMethodDescription=طباعة إيصالات بسيطة وسهلة. فقط عدد قليل من المعلمات لتكوين الإيصال. اطبع عبر المتصفح.
TakeposConnectorMethodDescription=وحدة خارجية مع ميزات إضافية. إمكانية الطباعة من السحابة.
PrintMethod=طريقة الطباعة
ReceiptPrinterMethodDescription=طريقة قوية مع الكثير من المعلمات. قابل للتخصيص بالكامل مع القوالب. لا يمكن أن يكون الخادم الذي يستضيف التطبيق في السحابة (يجب أن يكون قادرًا على الوصول إلى الطابعات في شبكتك).
ByTerminal=عن طريق المحطة
TakeposNumpadUsePaymentIcon=استخدم الرمز بدلاً من النص الموجود على أزرار الدفع الخاصة بلوحة الأرقام
CashDeskRefNumberingModules=وحدة الترقيم لمبيعات نقاط البيع
CashDeskGenericMaskCodes6 = <br> <b> {TN} تُستخدم علامة </b> لإضافة رقم المحطة
TakeposGroupSameProduct=تجميع نفس خطوط المنتجات
StartAParallelSale=ابدأ بيعًا موازيًا جديدًا
SaleStartedAt=بدأ البيع في %s
ControlCashOpening=افتح النافذة المنبثقة "Control cash box" عند فتح POS
CloseCashFence=إغلاق التحكم في صندوق النقد
CashReport=تقرير النقدية
MainPrinterToUse=الطابعة الرئيسية لاستخدامها
OrderPrinterToUse=طلب الطابعة لاستخدامها
MainTemplateToUse=النموذج الرئيسي المراد استخدامه
OrderTemplateToUse=طلب نموذج للاستخدام
BarRestaurant=مطعم بار
AutoOrder=طلب من قبل الزبون نفسه
RestaurantMenu=قائمة الطعام
CustomerMenu=قائمة العملاء
ScanToMenu=امسح رمز الاستجابة السريعة لرؤية القائمة
ScanToOrder=امسح رمز الاستجابة السريعة للطلب
Appearance=مظهر
HideCategoryImages=إخفاء صور الفئة
HideProductImages=إخفاء صور المنتج
NumberOfLinesToShow=عدد سطور الصور المراد عرضها
DefineTablePlan=تحديد خطة الجداول
GiftReceiptButton=أضف زر "إيصال الهدية"
GiftReceipt=استلام هدية
ModuleReceiptPrinterMustBeEnabled=يجب تمكين طابعة استلام الوحدة أولاً
AllowDelayedPayment=السماح بالدفع المتأخر
PrintPaymentMethodOnReceipts=طباعة طريقة الدفع على التذاكر | الإيصالات
WeighingScale=جهاز قياس الوزن
ShowPriceHT = عرض العمود بالسعر غير شامل الضريبة (على الشاشة)
ShowPriceHTOnReceipt = اعرض العمود بالسعر غير شامل الضريبة (على الإيصال)
CustomerDisplay=عرض العملاء
SplitSale=بيع سبليت
PrintWithoutDetailsButton=أضف زر "طباعة بدون تفاصيل"
PrintWithoutDetailsLabelDefault=تسمية الخط بشكل افتراضي عند الطباعة بدون تفاصيل
PrintWithoutDetails=اطبع بدون تفاصيل
YearNotDefined=لم يتم تحديد السنة
TakeposBarcodeRuleToInsertProduct=قاعدة الباركود لإدخال المنتج
TakeposBarcodeRuleToInsertProductDesc=قاعدة لاستخراج مرجع المنتج + كمية من الباركود الممسوح ضوئيًا. <br> إذا كان فارغًا (القيمة الافتراضية) ، سيستخدم التطبيق الباركود الكامل الممسوح ضوئيًا للعثور على المنتج. <br> <br> If defined, syntax must be: <br> <b> ref:NB+qu:NB+qd:NB+other:NB </b> <br> where NB is the number of characters to use to extract data from the scanned barcode with: <ul> <li> <b> ref </b> : product reference </li> <li> <b> qu </b> : quantity to set when inserting item (units) <l/i> <li> <b> qd </b> : quantity to set when inserting item (decimals) </li> <li> <b> other </b> : others characters </li> </ul>
AlreadyPrinted=طبعت بالفعل

View File

@ -2,9 +2,9 @@
ErrorCompanyNameAlreadyExists=اسم الشركة %s موجود بالفعل. اختر واحد اخر.
ErrorSetACountryFirst=اضبط البلد أولاً
SelectThirdParty=حدد طرفًا ثالثًا
ConfirmDeleteCompany=Are you sure you want to delete this company and all related information?
ConfirmDeleteCompany=هل أنت متأكد أنك تريد حذف هذه الشركة وجميع المعلومات ذات الصلة؟
DeleteContact=حذف جهة اتصال | عنوان
ConfirmDeleteContact=Are you sure you want to delete this contact and all related information?
ConfirmDeleteContact=هل أنت متأكد أنك تريد حذف جهة الاتصال هذه وجميع المعلومات ذات الصلة؟
MenuNewThirdParty=طرف ثالث جديد
MenuNewCustomer=عميل جديد
MenuNewProspect=فرصة جديدة
@ -19,7 +19,7 @@ ProspectionArea=منطقة الفرص
IdThirdParty=معرف الطرف الثالث
IdCompany=معرف الشركة
IdContact=معرف جهة الاتصال
ThirdPartyAddress=Third-party address
ThirdPartyAddress=عنوان الطرف الثالث
ThirdPartyContacts=جهات اتصال الطرف الثالث
ThirdPartyContact=جهة اتصال | عنوان الطرف الثالث
Company=شركة
@ -52,27 +52,28 @@ CivilityCode=قواعد السلوك
RegisteredOffice=مكتب مسجل
Lastname=اللقب
Firstname=الاسم الاول
RefEmployee=Employee reference
NationalRegistrationNumber=National registration number
RefEmployee=مرجع الموظف
NationalRegistrationNumber=رقم التسجيل الوطني
PostOrFunction=الوظيفه
UserTitle=العنوان
NatureOfThirdParty=طبيعة الطرف الثالث
NatureOfContact=طبيعة الاتصال
Address=عنوان
State=الولاية / المقاطعة
StateId=معرف الدولة
StateCode=رمز الولاية / المقاطعة
StateShort=الولاية
Region=المنطقة
Region-State=المنطقة - الولاية
Country=الدولة
CountryCode=رمز البلد
CountryId=معرف البلد
CountryId=معرف الدولة
Phone=الهاتف
PhoneShort=الهاتف
Skype=سكايب
Call=مكالمة
Chat=دردشة
PhonePro=Bus. phone
PhonePro=أوتوبيس. هاتف
PhonePerso=الهاتف الشخصي
PhoneMobile=الجوال
No_Email=رفض الرسائل الإلكترونية الجماعية
@ -81,9 +82,9 @@ Zip=الرمز البريدي
Town=مدينة
Web=الويب
Poste= المنصب
DefaultLang=Default language
DefaultLang=اللغة الافتراضية
VATIsUsed=تطبق ضريبة المبيعات
VATIsUsedWhenSelling=This defines if this third party includes a sales tax or not when it makes an invoice to its own customers
VATIsUsedWhenSelling=يحدد هذا ما إذا كان هذا الطرف الثالث يتضمن ضريبة مبيعات أم لا عندما يُصدر فاتورة لعملائه
VATIsNotUsed=لا تطبق ضريبة المبيعات
CopyAddressFromSoc=نسخ العنوان من تفاصيل الطرف الثالث
ThirdpartyNotCustomerNotSupplierSoNoRef=لا عميل ولا مورد، ولا توجد كائنات مرجعية متاحة
@ -105,7 +106,7 @@ WrongSupplierCode=كود المورد غير صالح
CustomerCodeModel=العميل رمز النموذج
SupplierCodeModel=نموذج كود المورد
Gencod=الباركود
GencodBuyPrice=Barcode of price ref
GencodBuyPrice=الباركود السعر المرجع
##### Professional ID #####
ProfId1Short=هوية مهنية 1
ProfId2Short=هوية مهنية 2
@ -161,16 +162,16 @@ ProfId3CL=-
ProfId4CL=-
ProfId5CL=-
ProfId6CL=-
ProfId1CM=Id. prof. 1 (Trade Register)
ProfId2CM=Id. prof. 2 (Taxpayer No.)
ProfId3CM=Id. prof. 3 (Decree of creation)
ProfId4CM=Id. prof. 4 (Certificate of deposits)
ProfId5CM=Id. prof. 5 (Others)
ProfId1CM=هوية شخصية. الأستاذ. 1 (السجل التجاري)
ProfId2CM=هوية شخصية. الأستاذ. 2 (رقم دافع الضرائب)
ProfId3CM=هوية شخصية. الأستاذ. 3 (رقم مرسوم الانشاء)
ProfId4CM=هوية شخصية. الأستاذ. 4 (رقم شهادة الإيداع)
ProfId5CM=هوية شخصية. الأستاذ. 5 (أخرى)
ProfId6CM=-
ProfId1ShortCM=Trade Register
ProfId2ShortCM=Taxpayer No.
ProfId3ShortCM=Decree of creation
ProfId4ShortCM=Certificate of deposits
ProfId1ShortCM=السجل التجاري
ProfId2ShortCM=رقم دافع الضرائب
ProfId3ShortCM=رقم مرسوم الانشاء
ProfId4ShortCM=شهادة الايداع رقم
ProfId5ShortCM=آخرون
ProfId6ShortCM=-
ProfId1CO=الهوية المهنية 1 (R.U.T.)
@ -189,17 +190,17 @@ ProfId1ES=الهوية المهنية 1 (CIF / NIF)
ProfId2ES=الهوية المهنية 2 (رقم الضمان الاجتماعي)
ProfId3ES=الهوية المهنية 3 (CNAE)
ProfId4ES=(عدد الجماعية)
ProfId5ES=Prof Id 5 (EORI number)
ProfId5ES=معرف الأستاذ 5 (رقم EORI)
ProfId6ES=-
ProfId1FR=الأستاذ عيد 1 (صفارة إنذار)
ProfId2FR=الأستاذ عيد 2 (SIRET)
ProfId3FR=الأستاذ عيد 3 (NAF ، البالغ من العمر قرد)
ProfId4FR=الأستاذ عيد 4 (نظام المنسقين المقيمين / لجمهورية مقدونيا)
ProfId5FR=Prof Id 5 (numéro EORI)
ProfId5FR=معرف الأستاذ 5 (رقم EORI)
ProfId6FR=-
ProfId1ShortFR=SIREN
ProfId2ShortFR=SIRET
ProfId3ShortFR=NAF
ProfId1ShortFR=صفارة إنذار
ProfId2ShortFR=سيريت
ProfId3ShortFR=ناف
ProfId4ShortFR=RCS
ProfId5ShortFR=EORI
ProfId6ShortFR=-
@ -255,7 +256,7 @@ ProfId1PT=الأستاذ عيد 1 (NIPC)
ProfId2PT=الأستاذ عيد 2 (رقم الضمان الاجتماعي)
ProfId3PT=الأستاذ عيد 3 (رقم السجل التجاري)
ProfId4PT=الأستاذ عيد 4 (يضم)
ProfId5PT=Prof Id 5 (EORI number)
ProfId5PT=معرف الأستاذ 5 (رقم EORI)
ProfId6PT=-
ProfId1SN=RC
ProfId2SN=NINEA
@ -279,7 +280,7 @@ ProfId1RO=Prof Id 1 (CUI)
ProfId2RO=Prof Id 2 (Nr. Înmatriculare)
ProfId3RO=Prof Id 3 (CAEN)
ProfId4RO=Prof Id 5 (EUID)
ProfId5RO=Prof Id 5 (EORI number)
ProfId5RO=معرف الأستاذ 5 (رقم EORI)
ProfId6RO=-
ProfId1RU=الأستاذ رقم 1 (OGRN)
ProfId2RU=الأستاذ رقم 2 (INN)
@ -287,12 +288,12 @@ ProfId3RU=Prof Id 3 (KPP)
ProfId4RU=Prof Id 4 (OKPO)
ProfId5RU=-
ProfId6RU=-
ProfId1UA=Prof Id 1 (EDRPOU)
ProfId2UA=Prof Id 2 (DRFO)
ProfId3UA=Prof Id 3 (INN)
ProfId4UA=Prof Id 4 (Certificate)
ProfId5UA=Prof Id 5 (RNOKPP)
ProfId6UA=Prof Id 6 (TRDPAU)
ProfId1UA=معرف الأستاذ 1 (EDRPOU)
ProfId2UA=معرف الأستاذ 2 (DRFO)
ProfId3UA=معرف الأستاذ 3 (INN)
ProfId4UA=معرف الأستاذ 4 (شهادة)
ProfId5UA=معرف الأستاذ 5 (RNOKPP)
ProfId6UA=معرف الأستاذ 6 (TRDPAU)
ProfId1DZ=RC
ProfId2DZ=Art.
ProfId3DZ=NIF
@ -353,7 +354,7 @@ CustomerCodeDesc=كود العميل فريد لجميع العملاء
SupplierCodeDesc=كود المورد ، فريد لجميع الموردين
RequiredIfCustomer=مطلوب ، إذا كان الطرف الثالث عميلاً أو فرصة
RequiredIfSupplier=مطلوب إذا كان الطرف الثالث موردا
ValidityControledByModule=Validity controlled by the module
ValidityControledByModule=يتم التحكم في الصلاحية بواسطة الوحدة
ThisIsModuleRules=قواعد هذه الوحدة
ProspectToContact=فرصة للاتصال
CompanyDeleted=تم حذف شركة "%s" من قاعدة البيانات.
@ -363,7 +364,7 @@ ListOfThirdParties=قائمة الأطراف الثالثة
ShowCompany=طرف ثالث
ShowContact=عنوان الإتصال
ContactsAllShort=الكل (بدون فلتر)
ContactType=Contact role
ContactType=دور الاتصال
ContactForOrders=جهة اتصال الامر
ContactForOrdersOrShipments=جهة اتصال الامر أو الشحنة
ContactForProposals=جهة اتصال العروض
@ -385,7 +386,7 @@ VATIntraCheck=فحص
VATIntraCheckDesc=The VAT ID must include the country prefix. The link <b>%s</b> uses the European VAT checker service (VIES) which requires internet access from the Dolibarr server.
VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
VATIntraCheckableOnEUSite=تحقق من معرف ضريبة القيمة المضافة داخل الاتجاد على موقع المفوضية الأوروبية
VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank" rel="noopener noreferrer">%s</a>
VATIntraManualCheck=يمكنك أيضًا التحقق يدويًا على موقع المفوضية الأوروبية <a href="%s" target="_blank" rel="noopener noreferrer"> %s </a>
ErrorVATCheckMS_UNAVAILABLE=تحقق غير ممكن. لا يتم توفير خدمة التحقق من قبل الدولة العضو (%s).
NorProspectNorCustomer=ليس فرصة، ولا عميل
JuridicalStatus=نوع الكيان التجاري
@ -461,12 +462,12 @@ ListSuppliersShort=قائمة الموردين
ListProspectsShort=قائمة الفرص
ListCustomersShort=قائمة العملاء
ThirdPartiesArea=الأطراف الثالثة | جهات الاتصال
LastModifiedThirdParties=Latest %s Third Parties which were modified
UniqueThirdParties=Total number of Third Parties
LastModifiedThirdParties=أحدث %s الأطراف الثالثة التي تم تعديلها
UniqueThirdParties=إجمالي عدد الأطراف الثالثة
InActivity=فتح
ActivityCeased=مغلق
ThirdPartyIsClosed=الطرف الثالث مغلق
ProductsIntoElements=List of products/services mapped to %s
ProductsIntoElements=قائمة المنتجات / الخدمات المعيّنة لـ %s
CurrentOutstandingBill=فاتورة مستحقة حاليا
OutstandingBill=الأعلى للفاتورة المستحقة
OutstandingBillReached=الأعلى لفاتورة مستحقة وصلت
@ -476,7 +477,7 @@ LeopardNumRefModelDesc=الكود مجاني. يمكن تعديل هذا الك
ManagingDirectors=اسم المدير (المديرون) (الرئيس التنفيذي ، المدير ، الرئيس)
MergeOriginThirdparty=طرف ثالث مكرر (الطرف الثالث الذي تريد حذفه)
MergeThirdparties=دمج أطراف ثالثة
ConfirmMergeThirdparties=Are you sure you want to merge the chosen third party with the current one? All linked objects (invoices, orders, ...) will be moved to the current third party, after which the chosen third party will be deleted.
ConfirmMergeThirdparties=هل أنت متأكد أنك تريد دمج الطرف الثالث المختار مع الطرف الحالي؟ سيتم نقل جميع العناصر المرتبطة (الفواتير ، الطلبات ، ...) إلى الطرف الثالث الحالي ، وبعد ذلك سيتم حذف الطرف الثالث المختار.
ThirdpartiesMergeSuccess=تم دمج الأطراف الثالثة
SaleRepresentativeLogin=تسجيل دخول مندوب مبيعات
SaleRepresentativeFirstname=الاسم الأول لمندوب المبيعات

View File

@ -4,14 +4,15 @@
NoErrorCommitIsDone=أي خطأ، ونحن نلزم
# Errors
ErrorButCommitIsDone=تم العثور على أخطاء لكننا تحقق على الرغم من هذا
ErrorBadEMail=Email %s is incorrect
ErrorBadMXDomain=Email %s seems incorrect (domain has no valid MX record)
ErrorBadUrl=Url %s is incorrect
ErrorBadEMail=البريد الإلكتروني %s غير صحيح
ErrorBadMXDomain=يبدو البريد الإلكتروني %s غير صحيح (المجال لا يحتوي على سجل MX صالح)
ErrorBadUrl=عنوان Url %s غير صحيح
ErrorBadValueForParamNotAString=Bad value for your parameter. It appends generally when translation is missing.
ErrorRefAlreadyExists=Reference <b>%s</b> already exists.
ErrorRefAlreadyExists=المرجع <b> %s </b> موجود بالفعل.
ErrorTitleAlreadyExists=العنوان <b> %s </b> موجود بالفعل.
ErrorLoginAlreadyExists=ادخل ٪ ق موجود بالفعل.
ErrorGroupAlreadyExists=المجموعة ٪ ق موجود بالفعل.
ErrorEmailAlreadyExists=Email %s already exists.
ErrorEmailAlreadyExists=البريد الإلكتروني %s موجود بالفعل.
ErrorRecordNotFound=لم يتم العثور على السجل.
ErrorFailToCopyFile=فشل في نسخ الملف <b>'%s'</b> إلى <b>'%s</b> &quot;.
ErrorFailToCopyDir=Failed to copy directory '<b>%s</b>' into '<b>%s</b>'.
@ -26,34 +27,34 @@ ErrorFailToGenerateFile=Failed to generate file '<b>%s</b>'.
ErrorThisContactIsAlreadyDefinedAsThisType=هذا الاتصال هو اتصال بالفعل تعريف لهذا النوع.
ErrorCashAccountAcceptsOnlyCashMoney=هذا الحساب المصرفي هو الحساب النقدي ، وذلك ما وافق على نوع من المدفوعات النقدية فقط.
ErrorFromToAccountsMustDiffers=المصدر والأهداف يجب أن تكون الحسابات المصرفية المختلفة.
ErrorBadThirdPartyName=Bad value for third-party name
ForbiddenBySetupRules=Forbidden by setup rules
ErrorBadThirdPartyName=قيمة سيئة لاسم الجهة الخارجية
ForbiddenBySetupRules=ممنوع بواسطة قواعد الإعداد
ErrorProdIdIsMandatory=و٪ s غير إلزامي
ErrorAccountancyCodeCustomerIsMandatory=The accountancy code of customer %s is mandatory
ErrorAccountancyCodeCustomerIsMandatory=كود المحاسبة الخاص بالعميل %s إلزامي
ErrorBadCustomerCodeSyntax=سوء تركيب الزبون مدونة
ErrorBadBarCodeSyntax=Bad syntax for barcode. May be you set a bad barcode type or you defined a barcode mask for numbering that does not match value scanned.
ErrorBadBarCodeSyntax=بناء جملة غير صالح للرمز الشريطي. قد تكون قد قمت بتعيين نوع رمز شريطي سيئ أو أنك حددت قناع رمز شريطي للترقيم لا يتطابق مع القيمة الممسوحة ضوئيًا.
ErrorCustomerCodeRequired=رمز العميل المطلوبة
ErrorBarCodeRequired=Barcode required
ErrorBarCodeRequired=الرمز الشريطي مطلوب
ErrorCustomerCodeAlreadyUsed=الشفرة المستخدمة بالفعل العملاء
ErrorBarCodeAlreadyUsed=Barcode already used
ErrorBarCodeAlreadyUsed=الباركود مستخدم بالفعل
ErrorPrefixRequired=المطلوب ببادئة
ErrorBadSupplierCodeSyntax=Bad syntax for vendor code
ErrorSupplierCodeRequired=Vendor code required
ErrorSupplierCodeAlreadyUsed=Vendor code already used
ErrorBadSupplierCodeSyntax=بناء جملة غير صالح لرمز البائع
ErrorSupplierCodeRequired=كود البائع مطلوب
ErrorSupplierCodeAlreadyUsed=كود البائع مستخدم بالفعل
ErrorBadParameters=بارامترات سيئة
ErrorWrongParameters=Wrong or missing parameters
ErrorWrongParameters=معلمات خاطئة أو مفقودة
ErrorBadValueForParameter=Wrong value '%s' for parameter '%s'
ErrorBadImageFormat=ملف الصورة لم تنسيق معتمد (PHP لديك لا يدعم وظائف لتحويل الصور من هذا الشكل)
ErrorBadDateFormat='%s' قيمة له خاطئ تنسيق التاريخ
ErrorWrongDate=تاريخ غير صحيح!
ErrorFailedToWriteInDir=لم يكتب في دليل ٪ ق
ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=العثور على بريد إلكتروني صحيح لتركيب خطوط ق ٪ في ملف (على سبيل المثال خط ٪ ق= ٪ مع البريد الإلكتروني)
ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
ErrorFieldsRequired=Some required fields have been left blank.
ErrorSubjectIsRequired=The email subject is required
ErrorUserCannotBeDelete=لا يمكن حذف المستخدم. ربما يرتبط بكيانات Dolibarr.
ErrorFieldsRequired=تم ترك بعض الحقول المطلوبة فارغة.
ErrorSubjectIsRequired=موضوع البريد الإلكتروني مطلوب
ErrorFailedToCreateDir=فشل إنشاء دليل. تأكد من أن خادم الويب المستخدم أذونات لكتابة وثائق Dolibarr في الدليل. إذا تم تمكين المعلم <b>safe_mode</b> على هذا PHP ، تحقق من أن ملفات Dolibarr php تملك لخدمة الويب المستخدم (أو مجموعة).
ErrorNoMailDefinedForThisUser=البريد لا يعرف لهذا المستخدم
ErrorSetupOfEmailsNotComplete=Setup of emails is not complete
ErrorSetupOfEmailsNotComplete=لم يكتمل إعداد رسائل البريد الإلكتروني
ErrorFeatureNeedJavascript=هذه الميزة تحتاج إلى تفعيل جافا سكريبت في العمل. هذا التغيير في البنية -- عرض.
ErrorTopMenuMustHaveAParentWithId0=وهناك قائمة من نوع 'توب' لا يمكن أن يكون أحد الوالدين القائمة. 0 وضعت في القائمة أو الأم في اختيار قائمة من نوع 'اليسار'.
ErrorLeftMenuMustHaveAParentId=وهناك قائمة من نوع 'اليسار' يجب أن يكون لها هوية الوالد.
@ -62,74 +63,75 @@ ErrorDirNotFound=لم يتم العثور على دليل <b>%s</b> (مسار غ
ErrorFunctionNotAvailableInPHP=<b>ق ٪</b> وظيفة مطلوبة لهذه الميزة ولكن لا تتوافر في هذه النسخة / الإعداد للPHP.
ErrorDirAlreadyExists=دليل بهذا الاسم بالفعل.
ErrorFileAlreadyExists=ملف بهذا الاسم موجود مسبقا.
ErrorDestinationAlreadyExists=Another file with the name <b>%s</b> already exists.
ErrorDestinationAlreadyExists=ملف آخر يحمل الاسم <b> %s </b> موجود بالفعل.
ErrorPartialFile=الملف لم تتلق تماما بواسطة الخادم.
ErrorNoTmpDir=%s directy مؤقتة لا وجود.
ErrorUploadBlockedByAddon=حظر حمل من قبل البرنامج المساعد بى اباتشي /.
ErrorFileSizeTooLarge=حجم الملف كبير جدا.
ErrorFieldTooLong=Field %s is too long.
ErrorFileSizeTooLarge=حجم الملف كبير جدًا أو لم يتم توفير الملف.
ErrorFieldTooLong=الحقل %s طويل جدًا.
ErrorSizeTooLongForIntType=طويل جدا بالنسبة نوع INT (%s أرقام كحد أقصى) حجم
ErrorSizeTooLongForVarcharType=وقتا طويلا لنوع السلسلة (%s حرف كحد أقصى) حجم
ErrorNoValueForSelectType=يرجى ملء قيمة لقائمة مختارة
ErrorNoValueForCheckBoxType=يرجى ملء قيمة لقائمة مربع
ErrorNoValueForRadioType=يرجى ملء قيمة لقائمة الراديو
ErrorBadFormatValueList=قيمة القائمة لا يمكن أن يكون أكثر من واحد <u>فاصلة:٪ الصورة،</u> ولكن تحتاج إلى واحد على الأقل: مفتاح، قيمة
ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
ErrorFieldCanNotContainSpecialCharacters=يجب ألا يحتوي الحقل <b> %s </b> على أحرف خاصة.
ErrorFieldCanNotContainSpecialNorUpperCharacters=يجب ألا يحتوي الحقل <b> %s </b> على أحرف خاصة ولا أحرف كبيرة ولا يمكن أن يحتوي على أرقام فقط.
ErrorFieldMustHaveXChar=يجب أن يحتوي الحقل <b> %s </b> على أحرف %s على الأقل.
ErrorNoAccountancyModuleLoaded=أي وحدة المحاسبة وتفعيل
ErrorExportDuplicateProfil=هذا الاسم الشخصي موجود مسبقا لهذه المجموعة التصدير.
ErrorLDAPSetupNotComplete=Dolibarr - LDAP المطابقة وليس كاملا.
ErrorLDAPMakeManualTest=ألف. ldif الملف قد ولدت في الدليل ٪ s. انها محاولة لتحميل يدويا من سطر في الحصول على مزيد من المعلومات عن الأخطاء.
ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
ErrorRefAlreadyExists=Reference <b>%s</b> already exists.
ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
ErrorRecordHasChildren=Failed to delete record since it has some child records.
ErrorRecordHasAtLeastOneChildOfType=Object %s has at least one child of type %s
ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
ErrorCantSaveADoneUserWithZeroPercentage=لا يمكن حفظ إجراء مع "الحالة لم تبدأ" إذا تم ملء الحقل "تم بواسطة" أيضًا.
ErrorRefAlreadyExists=المرجع <b> %s </b> موجود بالفعل.
ErrorPleaseTypeBankTransactionReportName=الرجاء إدخال اسم كشف الحساب المصرفي حيث يجب الإبلاغ عن الإدخال (التنسيق YYYYMM أو YYYYMMDD)
ErrorRecordHasChildren=فشل حذف السجل لأنه يحتوي على بعض السجلات التابعة.
ErrorRecordHasAtLeastOneChildOfType=يحتوي الكائن %s على عنصر فرعي واحد على الأقل من النوع %s
ErrorRecordIsUsedCantDelete=لا يمكن حذف السجل. تم استخدامه بالفعل أو تضمينه في كائن آخر.
ErrorModuleRequireJavascript=يجب عدم تعطيل جافا سكريبت لجعل هذا العمل الميزة. لتمكين / تعطيل جافا سكريبت ، انتقل إلى القائمة الرئيسية -> الإعداد -> العرض.
ErrorPasswordsMustMatch=ويجب على كلا كلمات المرور المكتوبة تطابق بعضها البعض
ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
ErrorWrongValueForField=Field <b>%s</b>: '<b>%s</b>' does not match regex rule <b>%s</b>
ErrorFieldValueNotIn=Field <b>%s</b>: '<b>%s</b>' is not a value found in field <b>%s</b> of <b>%s</b>
ErrorFieldRefNotIn=Field <b>%s</b>: '<b>%s</b>' is not a <b>%s</b> existing ref
ErrorsOnXLines=%s errors found
ErrorContactEMail=حدث خطأ تقني. من فضلك ، اتصل بالمسؤول إلى البريد الإلكتروني التالي <b> %s </b> وقدم رمز الخطأ <b> %s </b> في رسالتك ، أو أضف شاشة.
ErrorWrongValueForField=الحقل <b> %s </b>: '<b> %s </b>' لا يتطابق مع قاعدة regexz a0aeez08708f37439
ErrorHtmlInjectionForField=الحقل <b> %s </b>: تحتوي القيمة '<b> %s </b>' على بيانات ضارة غير مسموح بها
ErrorFieldValueNotIn=Field <b> %s </b> : ' <b> %s </b> ' is not a value found in field <b> %s </b> of <b> %s </b>
ErrorFieldRefNotIn=الحقل <b> %s </b>: '<b> %s </b>' ليس a0aee833658377fz039
ErrorsOnXLines=تم العثور على أخطاء %s
ErrorFileIsInfectedWithAVirus=وكان برنامج مكافحة الفيروسات غير قادرة على التحقق من صحة الملف (ملف قد يكون مصابا بواسطة فيروس)
ErrorSpecialCharNotAllowedForField=غير مسموح الأحرف الخاصة لحقل "%s"
ErrorNumRefModel=إشارة إلى وجود قاعدة بيانات (%s) ، وغير متوافق مع هذه القاعدة الترقيم. سجل إزالة أو إعادة تسميته اشارة الى تفعيل هذه الوحدة.
ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor
ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities
ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete.
ErrorQtyTooLowForThisSupplier=الكمية منخفضة جدًا لهذا البائع أو لم يتم تحديد سعر لهذا المنتج لهذا البائع
ErrorOrdersNotCreatedQtyTooLow=لم يتم إنشاء بعض الطلبات بسبب الكميات المنخفضة للغاية
ErrorModuleSetupNotComplete=يبدو أن إعداد الوحدة النمطية %s غير كامل. انتقل إلى الصفحة الرئيسية - الإعداد - الوحدات النمطية لإكمالها.
ErrorBadMask=خطأ في قناع
ErrorBadMaskFailedToLocatePosOfSequence=خطأ، من دون قناع رقم التسلسل
ErrorBadMaskBadRazMonth=خطأ، قيمة إعادة سيئة
ErrorMaxNumberReachForThisMask=Maximum number reached for this mask
ErrorMaxNumberReachForThisMask=تم الوصول إلى الحد الأقصى لعدد هذا القناع
ErrorCounterMustHaveMoreThan3Digits=يجب أن يكون العداد أكثر من 3 أرقام
ErrorSelectAtLeastOne=Error, select at least one entry.
ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
ErrorSelectAtLeastOne=خطأ ، حدد إدخال واحد على الأقل.
ErrorDeleteNotPossibleLineIsConsolidated=الحذف غير ممكن لأن السجل مرتبط بمعاملة بنكية تمت تسويتها
ErrorProdIdAlreadyExist=يتم تعيين ثلث آخر إلى %s
ErrorFailedToSendPassword=لم ترسل كلمة السر
ErrorFailedToLoadRSSFile=فشل في الحصول على آر إس إس. محاولة إضافة MAIN_SIMPLEXMLLOAD_DEBUG ثابت إذا رسائل الخطأ لا توفر ما يكفي من المعلومات.
ErrorForbidden=تم الرفض. <br> محاولة الوصول إلى صفحة أو منطقة أو ميزة من وحدة نمطية تعطيل أو دون أن تكون في جلسة مصادقة أو الذي لا يسمح له المستخدم الخاص بك.
ErrorForbidden2=ويمكن تعريف إذن لهذا الدخول من قبل المسؤول Dolibarr الخاص بك من القائمة %s-> %s.
ErrorForbidden3=يبدو أن لا يتم استخدام Dolibarr خلال جلسة المصادقة. نلقي نظرة على وثائق الإعداد Dolibarr لمعرفة كيفية إدارة المصادقة (تاكيس، mod_auth أو غيرها ...).
ErrorForbidden4=Note: clear your browser cookies to destroy existing sessions for this login.
ErrorForbidden4=ملاحظة: امسح ملفات تعريف الارتباط في متصفحك لتدمير الجلسات الحالية لتسجيل الدخول هذا.
ErrorNoImagickReadimage=لم يتم العثور على فئة Imagick في هذا PHP. لا يمكن لمعاينة تكون متاحة. يمكن للمسؤولين تعطيل هذا التبويب من إعداد القائمة - عرض.
ErrorRecordAlreadyExists=سجل موجود بالفعل
ErrorLabelAlreadyExists=This label already exists
ErrorLabelAlreadyExists=هذه التسمية موجودة بالفعل
ErrorCantReadFile=فشل في قراءة الملف '%s'
ErrorCantReadDir=فشل في قراءة '%s' الدليل
ErrorBadLoginPassword=سيئة قيمة لتسجيل الدخول أو كلمة السر
ErrorLoginDisabled=لقد تم تعطيل حسابك
ErrorFailedToRunExternalCommand=Failed to run external command. Check it is available and runnable by your PHP server user. Check also the command is not protected on shell level by a security layer like apparmor.
ErrorFailedToRunExternalCommand=فشل تشغيل الأمر الخارجي. تحقق من أنه متاح وقابل للتشغيل بواسطة مستخدم خادم PHP. تحقق أيضًا من أن الأمر غير محمي على مستوى الصدفة بواسطة طبقة أمان مثل apparmor.
ErrorFailedToChangePassword=فشل في تغيير كلمة السر
ErrorLoginDoesNotExists=لا يستطيع المستخدم الدخول مع <b>%s</b> يمكن العثور عليها.
ErrorLoginHasNoEmail=هذا المستخدم ليس لديه عنوان البريد الإلكتروني. إحباط عملية.
ErrorBadValueForCode=سيئة قيمة لرمز الحماية. حاول مرة أخرى مع القيمة الجديدة ...
ErrorBothFieldCantBeNegative=ويمكن لحقول %s و%s لا تكون سلبية
ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> cannot be negative on this type of invoice. If you need to add a discount line, just create the discount first (from field '%s' in thirdparty card) and apply it to the invoice.
ErrorLinesCantBeNegativeForOneVATRate=Total of lines (net of tax) can't be negative for a given not null VAT rate (Found a negative total for VAT rate <b>%s</b>%%).
ErrorLinesCantBeNegativeOnDeposits=Lines can't be negative in a deposit. You will face problems when you will need to consume the deposit in final invoice if you do so.
ErrorFieldCantBeNegativeOnInvoice=لا يمكن أن يكون الحقل <strong> %s </strong> سالبًا في هذا النوع من الفاتورة. إذا كنت بحاجة إلى إضافة بند خصم ، فما عليك سوى إنشاء الخصم أولاً (من الحقل "%s" في بطاقة الطرف الثالث) وتطبيقه على الفاتورة.
ErrorLinesCantBeNegativeForOneVATRate=لا يمكن أن يكون إجمالي البنود (صافي الضريبة) سالبًا لمعدل ضريبة القيمة المضافة غير الفارغ (تم العثور على إجمالي سلبي لمعدل ضريبة القيمة المضافة <b> %s </b> %%).
ErrorLinesCantBeNegativeOnDeposits=لا يمكن أن تكون الأسطر سالبة في الإيداع. ستواجه مشاكل عندما تحتاج إلى استهلاك الإيداع في الفاتورة النهائية إذا قمت بذلك.
ErrorQtyForCustomerInvoiceCantBeNegative=كمية لخط في فواتير العملاء لا يمكن أن يكون سلبيا
ErrorWebServerUserHasNotPermission=<b>%s</b> تستخدم حساب مستخدم لتنفيذ خادم الويب لا يوجد لديه إذن لذلك
ErrorNoActivatedBarcode=لا يوجد نوع الباركود تفعيلها
@ -142,10 +144,10 @@ ErrorFailedToAddToMailmanList=فشل لاضافة التسجيلة٪ s إلى ق
ErrorFailedToRemoveToMailmanList=فشل لإزالة سجل٪ s إلى قائمة ميلمان٪ الصورة أو قاعدة SPIP
ErrorNewValueCantMatchOldValue=قيمة جديدة لا يمكن أن يكون مساويا لالقديم
ErrorFailedToValidatePasswordReset=فشل في reinit كلمة المرور. قد يكون وقد تم بالفعل reinit (هذا الرابط يمكن استخدامها مرة واحدة فقط). إن لم يكن، في محاولة لاستئناف عملية reinit.
ErrorToConnectToMysqlCheckInstance=Connect to database fails. Check database server is running (for example, with mysql/mariadb, you can launch it from command line with 'sudo service mysql start').
ErrorToConnectToMysqlCheckInstance=فشل الاتصال بقاعدة البيانات. تحقق من تشغيل خادم قاعدة البيانات (على سبيل المثال ، باستخدام mysql / mariadb ، يمكنك تشغيله من سطر الأوامر باستخدام "sudo service mysql start").
ErrorFailedToAddContact=فشل في إضافة جهة اتصال
ErrorDateMustBeBeforeToday=The date must be lower than today
ErrorDateMustBeInFuture=The date must be greater than today
ErrorDateMustBeBeforeToday=يجب أن يكون التاريخ أقل من اليوم
ErrorDateMustBeInFuture=يجب أن يكون التاريخ أكبر من اليوم
ErrorPaymentModeDefinedToWithoutSetup=وتم تشكيل لطريقة الدفع لكتابة٪ الصورة ولكن لم يكتمل الإعداد من وحدة الفاتورة لتحديد المعلومات لاظهار هذه طريقة الدفع.
ErrorPHPNeedModule=خطأ، يجب PHP الخاص بتثبيت <b>وحدة٪ s إلى</b> استخدام هذه الميزة.
ErrorOpenIDSetupNotComplete=يمكنك إعداد Dolibarr ملف التكوين للسماح بالمصادقة رض، ولكن لم يتم تعريف URL الخدمة رض إلى المستمر٪ الصورة
@ -154,7 +156,7 @@ ErrorBadFormat=شكل سيئة!
ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
ErrorThereIsSomeDeliveries=خطأ، وهناك بعض الولادات ترتبط هذه الشحنة. رفض الحذف.
ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
ErrorCantDeletePaymentSharedWithPayedInvoice=لا يمكن حذف دفعة مشتركة بواسطة فاتورة واحدة على الأقل بالحالة مدفوعة
ErrorPriceExpression1=لا يمكن تعيين إلى ثابت '٪ ق'
ErrorPriceExpression2=لا يمكن إعادة تعريف المدمج في وظيفة '٪ ق'
ErrorPriceExpression3=متغير غير معرف '٪ s' في تعريف الدالة
@ -163,7 +165,7 @@ ErrorPriceExpression5=غير متوقع '٪ ق'
ErrorPriceExpression6=عدد خاطئ من الوسائط (٪ ق معين،٪ المتوقعة الصورة)
ErrorPriceExpression8=مشغل غير متوقع '٪ ق'
ErrorPriceExpression9=حدث خطأ غير متوقع
ErrorPriceExpression10=Operator '%s' lacks operand
ErrorPriceExpression10=عامل التشغيل "%s" يفتقر إلى المعامل
ErrorPriceExpression11=تتوقع '٪ ق'
ErrorPriceExpression14=القسمة على صفر
ErrorPriceExpression17=غير معرف متغير '٪ ق'
@ -171,12 +173,12 @@ ErrorPriceExpression19=التعبير لم يتم العثور على
ErrorPriceExpression20=التعبير فارغة
ErrorPriceExpression21=نتيجة فارغة '٪ ق'
ErrorPriceExpression22=نتيجة سلبية '٪ ق'
ErrorPriceExpression23=Unknown or non set variable '%s' in %s
ErrorPriceExpression24=Variable '%s' exists but has no value
ErrorPriceExpression23=متغير غير معروف أو غير محدد "%s" في %s
ErrorPriceExpression24=المتغير "%s" موجود ولكن ليس له قيمة
ErrorPriceExpressionInternal=خطأ داخلي '٪ ق'
ErrorPriceExpressionUnknown=خطأ غير معروف '٪ ق'
ErrorSrcAndTargetWarehouseMustDiffers=يجب المصدر والهدف يختلف المستودعات
ErrorTryToMakeMoveOnProductRequiringBatchData=Error, trying to make a stock movement without lot/serial information, on product '%s' requiring lot/serial information
ErrorTryToMakeMoveOnProductRequiringBatchData=خطأ ، أثناء محاولة إجراء حركة مخزون بدون معلومات المجموعة / التسلسل ، على المنتج "%s" الذي يتطلب معلومات المجموعة / التسلسل
ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=يجب أولا التحقق من جميع الاستقبالات سجلت (قبول او رفض) قبل أن يسمح لهم القيام بذلك العمل
ErrorCantSetReceptionToTotalDoneWithReceptionDenied=يجب أولا التحقق من جميع الاستقبالات سجلت (المعتمد) قبل أن يسمح لهم القيام بذلك العمل
ErrorGlobalVariableUpdater0=طلب HTTP فشلت مع الخطأ '٪ ق'
@ -187,14 +189,14 @@ ErrorGlobalVariableUpdater4=العميل SOAP فشلت مع الخطأ '٪ ق'
ErrorGlobalVariableUpdater5=لا متغير عمومي مختارة
ErrorFieldMustBeANumeric=يجب أن يكون <b>حقل٪ الصورة</b> قيمة رقمية
ErrorMandatoryParametersNotProvided=معيار إلزامي (ق) لم تقدم
ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter it's status.
ErrorOppStatusRequiredIfAmount=قمت بتعيين مبلغ تقديري لهذا العميل المتوقع. لذلك يجب عليك أيضًا إدخال حالتها.
ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
ErrorBadDefinitionOfMenuArrayInModuleDescriptor=سيئة تعريف القائمة صفيف في الوحدة واصف (القيمة سيئة لfk_menu مفتاح)
ErrorSavingChanges=An error has occurred when saving the changes
ErrorSavingChanges=حدث خطأ أثناء حفظ التغييرات
ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
ErrorFileMustHaveFormat=File must have format %s
ErrorFilenameCantStartWithDot=Filename can't start with a '.'
ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
ErrorFilenameCantStartWithDot=لا يمكن أن يبدأ اسم الملف بـ "."
ErrorSupplierCountryIsNotDefined=لم يتم تحديد البلد لهذا البائع. صحح هذا أولاً.
ErrorsThirdpartyMerge=Failed to merge the two records. Request canceled.
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.
@ -210,87 +212,99 @@ ErrorPhpMailDelivery=Check that you don't use a too high number of recipients an
ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed.
ErrorTaskAlreadyAssigned=Task already assigned to user
ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format.
ErrorModuleFileSeemsToHaveAWrongFormat2=At least one mandatory directory must exists into zip of module: <strong>%s</strong> or <strong>%s</strong>
ErrorModuleFileSeemsToHaveAWrongFormat2=يجب أن يوجد دليل إلزامي واحد على الأقل في ملف مضغوط للوحدة النمطية: <strong> %s </strong> أو <strong> %s </strong>
ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (<strong>%s</strong>) does not match expected name syntax: <strong>%s</strong>
ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
ErrorNoWarehouseDefined=Error, no warehouses defined.
ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Only validated invoices can be sent using the "Send by email" mass action.
ErrorChooseBetweenFreeEntryOrPredefinedProduct=You must choose if article is a predefined product or not
ErrorDiscountLargerThanRemainToPaySplitItBefore=The discount you try to apply is larger than remain to pay. Split the discount in 2 smaller discounts before.
ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was modified or file was removed recently.
ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using kits to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
ErrorDuringChartLoad=Error when loading chart of accounts. If few accounts were not loaded, you can still enter them manually.
ErrorBadSyntaxForParamKeyForContent=Bad syntax for param keyforcontent. Must have a value starting with %s or %s
ErrorVariableKeyForContentMustBeSet=Error, the constant with name %s (with text content to show) or %s (with external url to show) must be set.
ErrorURLMustEndWith=URL %s must end %s
ErrorURLMustStartWithHttp=URL %s must start with http:// or https://
ErrorHostMustNotStartWithHttp=Host name %s must NOT start with http:// or https://
ErrorNewRefIsAlreadyUsed=Error, the new reference is already used
ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible.
ErrorSearchCriteriaTooSmall=Search criteria too small.
ErrorObjectMustHaveStatusActiveToBeDisabled=Objects must have status 'Active' to be disabled
ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Objects must have status 'Draft' or 'Disabled' to be enabled
ErrorNoFieldWithAttributeShowoncombobox=No fields has property 'showoncombobox' into definition of object '%s'. No way to show the combolist.
ErrorFieldRequiredForProduct=Field '%s' is required for product %s
ProblemIsInSetupOfTerminal=Problem is in setup of terminal %s.
ErrorAddAtLeastOneLineFirst=Add at least one line first
ErrorRecordAlreadyInAccountingDeletionNotPossible=Error, record is already transferred in accounting, deletion is not possible.
ErrorLanguageMandatoryIfPageSetAsTranslationOfAnother=Error, language is mandatory if you set the page as a translation of another one.
ErrorLanguageOfTranslatedPageIsSameThanThisPage=Error, language of translated page is same than this one.
ErrorBatchNoFoundForProductInWarehouse=No lot/serial found for product "%s" in warehouse "%s".
ErrorBatchNoFoundEnoughQuantityForProductInWarehouse=No enough quantity for this lot/serial for product "%s" in warehouse "%s".
ErrorOnlyOneFieldForGroupByIsPossible=Only 1 field for the 'Group by' is possible (others are discarded)
ErrorTooManyDifferentValueForSelectedGroupBy=Found too many different value (more than <b>%s</b>) for the field '<b>%s</b>', so we can't use it as a 'Group by' for graphics. The field 'Group By' has been removed. May be you wanted to use it as an X-Axis ?
ErrorReplaceStringEmpty=Error, the string to replace into is empty
ErrorProductNeedBatchNumber=Error, product '<b>%s</b>' need a lot/serial number
ErrorProductDoesNotNeedBatchNumber=Error, product '<b>%s</b>' does not accept a lot/serial number
ErrorFailedToReadObject=Error, failed to read object of type <b>%s</b>
ErrorParameterMustBeEnabledToAllwoThisFeature=Error, parameter <b>%s</b> must be enabled into <b>conf/conf.php<b> to allow use of Command Line Interface by the internal job scheduler
ErrorLoginDateValidity=Error, this login is outside the validity date range
ErrorValueLength=Length of field '<b>%s</b>' must be higher than '<b>%s</b>'
ErrorReservedKeyword=The word '<b>%s</b>' is a reserved keyword
ErrorNotAvailableWithThisDistribution=Not available with this distribution
ErrorPublicInterfaceNotEnabled=Public interface was not enabled
ErrorLanguageRequiredIfPageIsTranslationOfAnother=The language of new page must be defined if it is set as a translation of another page
ErrorLanguageMustNotBeSourceLanguageIfPageIsTranslationOfAnother=The language of new page must not be the source language if it is set as a translation of another page
ErrorAParameterIsRequiredForThisOperation=A parameter is mandatory for this operation
ErrorDateIsInFuture=Error, the date can't be in the future
ErrorAnAmountWithoutTaxIsRequired=Error, amount is mandatory
ErrorAPercentIsRequired=Error, please fill in the percentage correctly
ErrorYouMustFirstSetupYourChartOfAccount=You must first setup your chart of account
ErrorFailedToFindEmailTemplate=Failed to find template with code name %s
ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price.
ErrorActionCommPropertyUserowneridNotDefined=User's owner is required
ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=لا يمكن التحقق من صحة الكتلة عند تعيين خيار زيادة / تقليل المخزون في هذا الإجراء (يجب التحقق من صحة واحدًا تلو الآخر حتى تتمكن من تحديد المستودع لزيادة / تقليل)
ErrorObjectMustHaveStatusDraftToBeValidated=يجب أن يكون للكائن %s الحالة "مسودة" ليتم التحقق من صحتها.
ErrorObjectMustHaveLinesToBeValidated=يجب أن يحتوي الكائن %s على سطور ليتم التحقق من صحتها.
ErrorOnlyInvoiceValidatedCanBeSentInMassAction=يمكن إرسال الفواتير التي تم التحقق من صحتها فقط باستخدام الإجراء الجماعي "إرسال عبر البريد الإلكتروني".
ErrorChooseBetweenFreeEntryOrPredefinedProduct=يجب أن تختار ما إذا كانت المقالة عبارة عن منتج محدد مسبقًا أم لا
ErrorDiscountLargerThanRemainToPaySplitItBefore=الخصم الذي تحاول تطبيقه أكبر من المبلغ المتبقي لدفعه. قسّم الخصم إلى خصمين أصغر من قبل.
ErrorFileNotFoundWithSharedLink=لم يتم العثور على الملف. قد يكون مفتاح المشاركة قد تم تعديله أو تمت إزالة الملف مؤخرًا.
ErrorProductBarCodeAlreadyExists=الرمز الشريطي للمنتج %s موجود بالفعل في مرجع منتج آخر.
ErrorNoteAlsoThatSubProductCantBeFollowedByLot=لاحظ أيضًا أن استخدام المجموعات لزيادة / تقليل المنتجات الفرعية تلقائيًا غير ممكن عندما يحتاج منتج فرعي واحد على الأقل (أو منتج فرعي من المنتجات الفرعية) إلى رقم تسلسلي / دفعة.
ErrorDescRequiredForFreeProductLines=الوصف إلزامي للخطوط التي تحتوي على منتج مجاني
ErrorAPageWithThisNameOrAliasAlreadyExists=الصفحة / الحاوية <strong> %s </strong> لها نفس الاسم أو الاسم المستعار البديل الذي تحاول استخدامه
ErrorDuringChartLoad=خطأ عند تحميل مخطط الحسابات. إذا لم يتم تحميل عدد قليل من الحسابات ، فلا يزال بإمكانك إدخالها يدويًا.
ErrorBadSyntaxForParamKeyForContent=بناء جملة غير صحيح لـ param keyforcontent. يجب أن تبدأ القيمة بـ %s أو %s
ErrorVariableKeyForContentMustBeSet=خطأ ، يجب تعيين الثابت الذي يحمل الاسم %s (مع محتوى نصي لإظهاره) أو %s (مع عنوان url خارجي لإظهاره).
ErrorURLMustEndWith=يجب أن ينتهي عنوان URL %s بـ %s
ErrorURLMustStartWithHttp=يجب أن يبدأ عنوان URL %s بـ http: // أو https: //
ErrorHostMustNotStartWithHttp=يجب ألا يبدأ اسم المضيف %s بـ http: // أو https: //
ErrorNewRefIsAlreadyUsed=خطأ ، المرجع الجديد مستخدم بالفعل
ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=خطأ ، لا يمكن حذف الدفعة المرتبطة بفاتورة مغلقة.
ErrorSearchCriteriaTooSmall=معايير البحث صغيرة جدًا.
ErrorObjectMustHaveStatusActiveToBeDisabled=يجب أن تكون الكائنات بحالة "نشطة" ليتم تعطيلها
ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=يجب أن تكون الكائنات بحالة "مسودة" أو "معطلة" ليتم تمكينها
ErrorNoFieldWithAttributeShowoncombobox=لا توجد حقول لها الخاصية "showoncombobox" في تعريف الكائن "%s". لا توجد طريقة لإظهار الاحتكاك.
ErrorFieldRequiredForProduct=الحقل "%s" مطلوب للمنتج %s
ProblemIsInSetupOfTerminal=كانت المشكلة في إعداد المحطة الطرفية %s.
ErrorAddAtLeastOneLineFirst=أضف سطرًا واحدًا على الأقل أولاً
ErrorRecordAlreadyInAccountingDeletionNotPossible=خطأ ، تم نقل السجل بالفعل في المحاسبة ، والحذف غير ممكن.
ErrorLanguageMandatoryIfPageSetAsTranslationOfAnother=خطأ ، اللغة إلزامية إذا قمت بتعيين الصفحة على أنها ترجمة لصفحة أخرى.
ErrorLanguageOfTranslatedPageIsSameThanThisPage=خطأ ، لغة الصفحة المترجمة هي نفسها هذه.
ErrorBatchNoFoundForProductInWarehouse=لم يتم العثور على دفعة / مسلسل للمنتج "%s" في المستودع "%s".
ErrorBatchNoFoundEnoughQuantityForProductInWarehouse=لا توجد كمية كافية لهذه الكمية / المسلسل للمنتج "%s" في المستودع "%s".
ErrorOnlyOneFieldForGroupByIsPossible=يمكن استخدام حقل واحد فقط لـ "تجميع حسب" (يتم تجاهل الحقول الأخرى)
ErrorTooManyDifferentValueForSelectedGroupBy=تم العثور على قيم مختلفة كثيرة جدًا (أكثر من <b> %s </b>) للحقل "<b> %s </b>" ، لذلك لا يمكننا استخدامها كمجموعة رسومات ". تمت إزالة الحقل "تجميع حسب". قد ترغب في استخدامه كمحور X؟
ErrorReplaceStringEmpty=خطأ ، السلسلة المطلوب استبدالها فارغة
ErrorProductNeedBatchNumber=خطأ ، المنتج '<b> %s </b>' بحاجة إلى الكثير / الرقم التسلسلي
ErrorProductDoesNotNeedBatchNumber=خطأ ، المنتج "<b> %s </b>" لا يقبل الكثير / الرقم التسلسلي
ErrorFailedToReadObject=خطأ ، فشلت قراءة كائن من النوع <b> %s </b>
ErrorParameterMustBeEnabledToAllwoThisFeature=خطأ ، يجب تمكين المعلمة <b> %s </b> في <b> conf / conf.php <b> للسماح باستخدام واجهة سطر الأوامر بواسطة برنامج جدولة الوظائف الداخلي
ErrorLoginDateValidity=خطأ ، تسجيل الدخول هذا خارج النطاق الزمني للصلاحية
ErrorValueLength=يجب أن يكون طول الحقل "<b> %s </b>" أعلى من "<b> %s </b>"
ErrorReservedKeyword=كلمة "<b> %s </b>" هي كلمة أساسية محجوزة
ErrorNotAvailableWithThisDistribution=غير متوفر مع هذا التوزيع
ErrorPublicInterfaceNotEnabled=لم يتم تمكين الواجهة العامة
ErrorLanguageRequiredIfPageIsTranslationOfAnother=يجب تحديد لغة الصفحة الجديدة إذا تم تعيينها على أنها ترجمة لصفحة أخرى
ErrorLanguageMustNotBeSourceLanguageIfPageIsTranslationOfAnother=يجب ألا تكون لغة الصفحة الجديدة هي لغة المصدر إذا تم تعيينها على أنها ترجمة لصفحة أخرى
ErrorAParameterIsRequiredForThisOperation=المعلمة إلزامية لهذه العملية
ErrorDateIsInFuture=خطأ ، لا يمكن أن يكون التاريخ في المستقبل
ErrorAnAmountWithoutTaxIsRequired=خطأ ، المبلغ إلزامي
ErrorAPercentIsRequired=خطأ ، يرجى ملء النسبة بشكل صحيح
ErrorYouMustFirstSetupYourChartOfAccount=يجب عليك أولاً إعداد مخطط الحساب الخاص بك
ErrorFailedToFindEmailTemplate=فشل العثور على قالب بالاسم الرمزي %s
ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=المدة غير محددة في الخدمة. لا توجد طريقة لحساب سعر الساعة.
ErrorActionCommPropertyUserowneridNotDefined=مالك المستخدم مطلوب
ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary
CheckVersionFail=Version check fail
ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it
ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify.
ErrorIsNotADraft=%s is not a draft
ErrorExecIdFailed=Can't execute command "id"
ErrorBadCharIntoLoginName=Unauthorized character in the login name
ErrorRequestTooLarge=Error, request too large
CheckVersionFail=فشل التحقق من الإصدار
ErrorWrongFileName=لا يمكن أن يحتوي اسم الملف على __SOMETHING__ فيه
ErrorNotInDictionaryPaymentConditions=ليس في قاموس شروط الدفع ، يرجى التعديل.
ErrorIsNotADraft=%s ليس مسودة
ErrorExecIdFailed=لا يمكن تنفيذ الأمر "id"
ErrorBadCharIntoLoginName=شخصية غير مصرح بها في اسم تسجيل الدخول
ErrorRequestTooLarge=خطأ ، الطلب كبير جدًا
ErrorNotApproverForHoliday=أنت لست المعتمد للمغادرة %s
ErrorAttributeIsUsedIntoProduct=تُستخدم هذه السمة في متغير منتج واحد أو أكثر
ErrorAttributeValueIsUsedIntoProduct=تُستخدم قيمة السمة هذه في متغير منتج واحد أو أكثر
ErrorPaymentInBothCurrency=خطأ ، يجب إدخال جميع المبالغ في نفس العمود
ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=تحاول دفع الفواتير بالعملة %s من حساب بالعملة %s
ErrorInvoiceLoadThirdParty=لا يمكن تحميل كائن جهة خارجية للفاتورة "%s"
ErrorInvoiceLoadThirdPartyKey=مفتاح الجهة الخارجية "%s" لم يتم تعيينه للفاتورة "%s"
ErrorDeleteLineNotAllowedByObjectStatus=حذف سطر غير مسموح به من خلال حالة الكائن الحالية
ErrorAjaxRequestFailed=الطلب فشل
ErrorThirpdartyOrMemberidIsMandatory=طرف ثالث أو عضو في الشراكة إلزامي
ErrorFailedToWriteInTempDirectory=Failed to write in temp directory
ErrorQuantityIsLimitedTo=Quantity is limited to %s
# Warnings
WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup.
WarningParamUploadMaxFileSizeHigherThanPostMaxSize=معلمة PHP upload_max_filesize (%s) أعلى من معلمة PHP post_max_size (%s). هذا ليس إعداد ثابت.
WarningPasswordSetWithNoAccount=تم تعيين كلمة مرور لهذا العضو. ومع ذلك، تم إنشاء أي حساب المستخدم. لذلك يتم تخزين كلمة المرور هذه ولكن لا يمكن استخدامها للدخول إلى Dolibarr. ويمكن استخدامه من قبل وحدة / واجهة خارجية ولكن إذا كنت لا تحتاج إلى تعريف أي تسجيل دخول أو كلمة المرور لأحد أفراد، يمكنك تعطيل خيار "إدارة تسجيل دخول لكل عضو" من إعداد وحدة الأعضاء. إذا كنت بحاجة إلى إدارة تسجيل الدخول ولكن لا تحتاج إلى أي كلمة المرور، يمكنك الحفاظ على هذا الحقل فارغا لتجنب هذا التحذير. ملاحظة: يمكن أيضا أن تستخدم البريد الإلكتروني لتسجيل الدخول إذا تم ربط عضو إلى المستخدم.
WarningMandatorySetupNotComplete=Click here to setup mandatory parameters
WarningEnableYourModulesApplications=Click here to enable your modules and applications
WarningMandatorySetupNotComplete=Click here to setup main parameters
WarningEnableYourModulesApplications=انقر هنا لتمكين الوحدات والتطبيقات الخاصة بك
WarningSafeModeOnCheckExecDir=انذار ، فب <b>safe_mode</b> الخيار في ذلك تخزين الأمر يجب أن يكون داخل الدليل الذي أعلنته <b>safe_mode_exec_dir</b> المعلمة بي.
WarningBookmarkAlreadyExists=المرجعية هذا الكتاب أو هذا الهدف (عنوان) موجود بالفعل.
WarningPassIsEmpty=تحذير كلمة سر قاعدة بيانات فارغة. هذه هي ثغرة أمنية. يجب عليك أن تضيف كلمة السر الخاصة بك لقاعدة البيانات وتغيير conf.php ليعكس هذا الملف.
WarningConfFileMustBeReadOnly=انذار ، ملف (التكوين <b>htdocs / أسيوط / conf.php)</b> الخاص يمكن أن تكون الكتابة بواسطة خادم الويب. هذه هي ثغرة أمنية خطيرة. أذونات تعديل على ملف ليكون في وضع القراءة فقط لمستخدم نظام التشغيل المستخدمة من قبل ملقم ويب. إذا كنت تستخدم ويندوز وشكل نسبة الدهون لمدة القرص الخاص بك ، فإنك يجب أن نعرف أن هذا النظام لا يسمح ملف لإضافة الأذونات على الملف ، بحيث لا تكون آمنة تماما.
WarningsOnXLines=تحذيرات عن مصدر خطوط <b>%s</b>
WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable the installation/migration tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Omitting the creation of this file is a grave security risk.
WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
WarningNoDocumentModelActivated=لم يتم تنشيط أي نموذج لإنشاء المستندات. سيتم اختيار نموذج افتراضيًا حتى تتحقق من إعداد الوحدة الخاصة بك.
WarningLockFileDoesNotExists=تحذير ، بمجرد الانتهاء من الإعداد ، يجب عليك تعطيل أدوات التثبيت / الترحيل عن طريق إضافة ملف <b> install.lock </b> إلى الدليل <b> %s </b>. يعد حذف إنشاء هذا الملف مخاطرة أمنية كبيرة.
WarningUntilDirRemoved=ستبقى جميع التحذيرات الأمنية (المرئية من قبل المستخدمين المسؤولين فقط) نشطة طالما أن الثغرة الأمنية موجودة (أو أن MAIN_REMOVE_INSTALL_WARNING الثابت مضاف في الإعداد-> الإعداد الآخر).
WarningCloseAlways=تحذير، ويتم إغلاق حتى إذا قدر يختلف بين عناصر المصدر والهدف. تمكين هذه الميزة بحذر.
WarningUsingThisBoxSlowDown=تحذير، وذلك باستخدام هذا الإطار تبطئ على محمل الجد كل الصفحات التي تظهر مربع.
WarningClickToDialUserSetupNotComplete=إعداد المعلومات ClickToDial لالمستخدم الخاص بك ليست كاملة (انظر التبويب ClickToDial على بطاقة المستخدم الخاص بك).
@ -300,35 +314,36 @@ WarningTooManyDataPleaseUseMoreFilters=عدد كبير جدا من البيان
WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
WarningProjectDraft=Project is still in draft mode. Don't forget to validate it if you plan to use tasks.
WarningProjectClosed=Project is closed. You must re-open it first.
WarningSomeBankTransactionByChequeWereRemovedAfter=Some bank transaction were removed after that the receipt including them were generated. So nb of cheques and total of receipt may differ from number and total in list.
WarningFailedToAddFileIntoDatabaseIndex=Warning, failed to add file entry into ECM database index table
WarningTheHiddenOptionIsOn=Warning, the hidden option <b>%s</b> is on.
WarningCreateSubAccounts=Warning, you can't create directly a sub account, you must create a third party or an user and assign them an accounting code to find them in this list
WarningAvailableOnlyForHTTPSServers=Available only if using HTTPS secured connection.
WarningModuleXDisabledSoYouMayMissEventHere=Module %s has not been enabled. So you may miss a lot of event here.
WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead.
WarningNumberOfRecipientIsRestrictedInMassAction=تحذير ، عدد المستلمين المختلفين يقتصر على <b> %s </b> عند استخدام الإجراءات الجماعية في القوائم
WarningDateOfLineMustBeInExpenseReportRange=تحذير ، تاريخ السطر ليس في نطاق تقرير المصاريف
WarningProjectDraft=المشروع لا يزال في وضع المسودة. لا تنس التحقق من صحته إذا كنت تخطط لاستخدام المهام.
WarningProjectClosed=المشروع مغلق. يجب عليك إعادة فتحه أولاً.
WarningSomeBankTransactionByChequeWereRemovedAfter=تمت إزالة بعض المعاملات المصرفية بعد أن تم إنشاء الإيصال بما في ذلك. لذلك قد يختلف عدد الشيكات وإجمالي الإيصالات عن العدد والإجمالي في القائمة.
WarningFailedToAddFileIntoDatabaseIndex=تحذير ، فشل في إضافة إدخال الملف إلى جدول فهرس قاعدة بيانات ECM
WarningTheHiddenOptionIsOn=تحذير ، الخيار المخفي <b> %s </b> قيد التشغيل.
WarningCreateSubAccounts=تحذير ، لا يمكنك إنشاء حساب فرعي مباشرة ، يجب عليك إنشاء طرف ثالث أو مستخدم وتعيين رمز محاسبة لهم للعثور عليهم في هذه القائمة
WarningAvailableOnlyForHTTPSServers=متاح فقط في حالة استخدام اتصال HTTPS آمن.
WarningModuleXDisabledSoYouMayMissEventHere=لم يتم تمكين الوحدة النمطية %s. لذلك قد تفوتك الكثير من الأحداث هنا.
WarningPaypalPaymentNotCompatibleWithStrict=تجعل القيمة "صارمة" ميزات الدفع عبر الإنترنت لا تعمل بشكل صحيح. استخدم "Lax" بدلاً من ذلك.
WarningThemeForcedTo=تحذير ، تم إجبار السمة على <b> %s </b> بواسطة الثابت المخفي MAIN_FORCETHEME
# Validate
RequireValidValue = Value not valid
RequireAtLeastXString = Requires at least %s character(s)
RequireXStringMax = Requires %s character(s) max
RequireAtLeastXDigits = Requires at least %s digit(s)
RequireXDigitsMax = Requires %s digit(s) max
RequireValidNumeric = Requires a numeric value
RequireValidEmail = Email address is not valid
RequireMaxLength = Length must be less than %s chars
RequireMinLength = Length must be more than %s char(s)
RequireValidUrl = Require valid URL
RequireValidDate = Require a valid date
RequireANotEmptyValue = Is required
RequireValidDuration = Require a valid duration
RequireValidExistingElement = Require an existing value
RequireValidBool = Require a valid boolean
BadSetupOfField = Error bad setup of field
BadSetupOfFieldClassNotFoundForValidation = Error bad setup of field : Class not found for validation
BadSetupOfFieldFileNotFound = Error bad setup of field : File not found for inclusion
BadSetupOfFieldFetchNotCallable = Error bad setup of field : Fetch not callable on class
RequireValidValue = القيمة غير صالحة
RequireAtLeastXString = يتطلب على الأقل %s حرفًا (أحرف)
RequireXStringMax = يتطلب %s حرفًا (أحرف) كحد أقصى
RequireAtLeastXDigits = يتطلب على الأقل %s رقم (أرقام)
RequireXDigitsMax = يتطلب %s رقم (أرقام) كحد أقصى
RequireValidNumeric = يتطلب قيمة عددية
RequireValidEmail = عنوان البريد الإلكتروني غير صالح
RequireMaxLength = يجب أن يكون الطول أقل من %s حرفًا
RequireMinLength = يجب أن يكون الطول أكثر من %s حرفًا (أحرف)
RequireValidUrl = مطلوب URL صالح
RequireValidDate = تتطلب تاريخًا صالحًا
RequireANotEmptyValue = مطلوب
RequireValidDuration = تتطلب مدة صالحة
RequireValidExistingElement = تتطلب قيمة موجودة
RequireValidBool = تتطلب قيمة منطقية صالحة
BadSetupOfField = خطأ في الإعداد السيئ للمجال
BadSetupOfFieldClassNotFoundForValidation = خطأ في إعداد الحقل غير صحيح: الفئة غير موجودة للتحقق من الصحة
BadSetupOfFieldFileNotFound = خطأ في إعداد الحقل غير صحيح: الملف غير موجود للتضمين
BadSetupOfFieldFetchNotCallable = خطأ في إعداد الحقل غير صحيح: الجلب غير قابل للاستدعاء في الفصل الدراسي

View File

@ -4,8 +4,7 @@ Holidays=الاجازات
CPTitreMenu=الاجازات
MenuReportMonth=البيان الشهري
MenuAddCP=طلب إجازة جديدة
MenuCollectiveAddCP=New collective leave request
NotActiveModCP=You must enable the module Leave to view this page.
NotActiveModCP=يجب تمكين وحدة مغادرة لعرض هذه الصفحة.
AddCP=تقديم طلب إجازة
DateDebCP=تاريخ البدء
DateFinCP=نهاية التاريخ
@ -14,21 +13,21 @@ ToReviewCP=انتظر القبول
ApprovedCP=وافق
CancelCP=ألغيت
RefuseCP=رفض
ValidatorCP=Approver
ListeCP=List of leave
ValidatorCP=الموافق
ListeCP=قائمة الإجازة
Leave=ترك الطلب
LeaveId=Leave ID
LeaveId=رقم الإجازة
ReviewedByCP=سيتم مراجعتها من قبل
UserID=User ID
UserForApprovalID=User for approval ID
UserForApprovalFirstname=First name of approval user
UserForApprovalLastname=Last name of approval user
UserForApprovalLogin=Login of approval user
UserID=معرف المستخدم
UserForApprovalID=مستخدم للحصول على معرّف الموافقة
UserForApprovalFirstname=الاسم الأول لمستخدم الموافقة
UserForApprovalLastname=الاسم الأخير لمستخدم الموافقة
UserForApprovalLogin=تسجيل دخول مستخدم الموافقة
DescCP=وصف
SendRequestCP=إنشاء طلب إجازة
DelayToRequestCP=يجب أن يتم ترك طلبات في <b>اليوم</b> أقل <b>ق٪ (ق)</b> من قبلهم.
MenuConfCP=Balance of leave
SoldeCPUser=Leave balance (in days) <b>%s</b>
MenuConfCP=رصيد الإجازة
SoldeCPUser=رصيد الإجازات (بالأيام) <b> %s </b>
ErrorEndDateCP=يجب تحديد تاريخ انتهاء أكبر من تاريخ البدء.
ErrorSQLCreateCP=حدث خطأ SQL أثناء إنشاء:
ErrorIDFicheCP=حدث خطأ غير موجود على طلب الإجازة.
@ -37,16 +36,16 @@ ErrorUserViewCP=غير مصرح لك قراءة طلب إجازة هذا.
InfosWorkflowCP=معلومات سير العمل
RequestByCP=طلبت
TitreRequestCP=ترك الطلب
TypeOfLeaveId=Type of leave ID
TypeOfLeaveCode=Type of leave code
TypeOfLeaveLabel=Type of leave label
NbUseDaysCP=Number of days of leave used
NbUseDaysCPHelp=The calculation takes into account the non-working days and the holidays defined in the dictionary.
NbUseDaysCPShort=Days of leave
NbUseDaysCPShortInMonth=Days of leave in month
DayIsANonWorkingDay=%s is a non-working day
DateStartInMonth=Start date in month
DateEndInMonth=End date in month
TypeOfLeaveId=نوع معرف الإجازة
TypeOfLeaveCode=نوع رمز الإجازة
TypeOfLeaveLabel=نوع ملصق الإجازة
NbUseDaysCP=عدد أيام الإجازة المستخدمة
NbUseDaysCPHelp=يأخذ الحساب في الاعتبار أيام العطلات والعطلات المحددة في القاموس.
NbUseDaysCPShort=أيام الإجازة
NbUseDaysCPShortInMonth=أيام الإجازة في الشهر
DayIsANonWorkingDay=%s هو يوم عطلة
DateStartInMonth=تاريخ البدء في الشهر
DateEndInMonth=تاريخ الانتهاء في الشهر
EditCP=تحرير
DeleteCP=حذف
ActionRefuseCP=رفض
@ -56,7 +55,7 @@ TitleDeleteCP=حذف طلب إجازة
ConfirmDeleteCP=تأكيد حذف طلب إجازة هذا؟
ErrorCantDeleteCP=خطأ لم يكن لديك الحق في حذف طلب إجازة هذا.
CantCreateCP=ليس لديك الحق في تقديم طلبات الإجازة.
InvalidValidatorCP=You must choose the approver for your leave request.
InvalidValidatorCP=يجب عليك اختيار المعتمد لطلب الإجازة الخاص بك.
NoDateDebut=يجب تحديد تاريخ البدء.
NoDateFin=يجب تحديد تاريخ انتهاء.
ErrorDureeCP=لا يحتوي طلب إجازة الخاص يوم عمل.
@ -75,29 +74,20 @@ DateRefusCP=تاريخ الرفض
DateCancelCP=تاريخ الإلغاء
DefineEventUserCP=تعيين إجازة استثنائية لمستخدم
addEventToUserCP=تعيين إجازة
NotTheAssignedApprover=You are not the assigned approver
NotTheAssignedApprover=أنت لست الموافق المعين
MotifCP=سبب
UserCP=مستخدم
ErrorAddEventToUserCP=حدث خطأ أثناء إضافة إجازة استثنائية.
AddEventToUserOkCP=تم الانتهاء من إضافة إجازة استثنائية.
ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in
fusionGroupsUsers=The groups field and the user field will be merged
MenuLogCP=وبالنظر إلى سجلات التغيير
LogCP=Log of all updates made to "Balance of Leave"
ActionByCP=Updated by
UserUpdateCP=Updated for
LogCP=سجل بجميع التحديثات التي تم إجراؤها على "رصيد الإجازة"
ActionByCP=تم التحديث بواسطة
UserUpdateCP=تم التحديث لـ
PrevSoldeCP=الرصيد السابق
NewSoldeCP=توازن جديد
alreadyCPexist=وقد تم بالفعل طلب إجازة في هذه الفترة.
UseralreadyCPexist=A leave request has already been done on this period for %s.
groups=المجموعات
users=المستخدمين
AutoSendMail=Automatic mailing
NewHolidayForGroup=New collective leave request
SendRequestCollectiveCP=Send collective leave request
AutoValidationOnCreate=Automatic validation
FirstDayOfHoliday=Beginning day of leave request
LastDayOfHoliday=Ending day of leave request
FirstDayOfHoliday=بداية يوم طلب الإجازة
LastDayOfHoliday=يوم انتهاء طلب الإجازة
BoxTitleLastLeaveRequests=Latest %s modified leave requests
HolidaysMonthlyUpdate=تحديث شهري
ManualUpdate=التحديث اليدوي
@ -105,17 +95,17 @@ HolidaysCancelation=ترك طلب الإلغاء
EmployeeLastname=Employee last name
EmployeeFirstname=Employee first name
TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
LastHolidays=Latest %s leave requests
AllHolidays=All leave requests
HalfDay=Half day
NotTheAssignedApprover=You are not the assigned approver
LEAVE_PAID=Paid vacation
LEAVE_SICK=Sick leave
LEAVE_OTHER=Other leave
LEAVE_PAID_FR=Paid vacation
LastHolidays=أحدث طلبات ترك %s
AllHolidays=جميع طلبات الإجازة
HalfDay=نصف يوم
NotTheAssignedApprover=أنت لست الموافق المعين
LEAVE_PAID=اجازه مدفوعة
LEAVE_SICK=أجازة مرضية
LEAVE_OTHER=إجازة أخرى
LEAVE_PAID_FR=اجازه مدفوعة
## Configuration du Module ##
LastUpdateCP=Last automatic update of leave allocation
MonthOfLastMonthlyUpdate=Month of last automatic update of leave allocation
LastUpdateCP=آخر تحديث تلقائي لتخصيص الإجازات
MonthOfLastMonthlyUpdate=شهر آخر تحديث تلقائي لتخصيص الإجازة
UpdateConfCPOK=تم التحديث بنجاح.
Module27130Name= إدارة طلبات الإجازة
Module27130Desc= إدارة طلبات الإجازة
@ -125,25 +115,25 @@ NoticePeriod=فترة إشعار
HolidaysToValidate=التحقق من صحة طلبات الإجازة
HolidaysToValidateBody=وفيما يلي طلب إجازة للتحقق من صحة
HolidaysToValidateDelay=وهذا الطلب إجازة أن تتم في غضون أقل من٪ الصورة أيام.
HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
HolidaysToValidateAlertSolde=المستخدم الذي قدم طلب الإجازة هذا ليس لديه أيام متاحة كافية.
HolidaysValidated=طلبات إجازة التحقق من صحة
HolidaysValidatedBody=تم التحقق من صحة طلب إجازة لمدة٪ s إلى٪ s.
HolidaysRefused=طلب نفى
HolidaysRefusedBody=Your leave request for %s to %s has been denied for the following reason:
HolidaysRefusedBody=تم رفض طلب إجازة %s إلى %s للسبب التالي:
HolidaysCanceled=إلغاء طلب الأوراق
HolidaysCanceledBody=تم إلغاء طلب إجازة لمدة٪ s إلى٪ s.
FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
HolidaySetup=Setup of module Leave
HolidaysNumberingModules=Numbering models for leave requests
TemplatePDFHolidays=Template for leave requests PDF
FreeLegalTextOnHolidays=Free text on PDF
WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
HolidaysToApprove=Holidays to approve
NobodyHasPermissionToValidateHolidays=Nobody has permission to validate holidays
HolidayBalanceMonthlyUpdate=Monthly update of holiday balance
XIsAUsualNonWorkingDay=%s is usualy a NON working day
BlockHolidayIfNegative=Block if balance negative
LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative
ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted
GoIntoDictionaryHolidayTypes=انتقل إلى <strong> Home - الإعداد - القواميس - نوع الإجازة </strong> لإعداد أنواع مختلفة من الأوراق.
HolidaySetup=إعداد إجازة الوحدة
HolidaysNumberingModules=نماذج الترقيم لطلبات الإجازة
TemplatePDFHolidays=قالب طلبات الإجازة PDF
FreeLegalTextOnHolidays=نص مجاني على PDF
WatermarkOnDraftHolidayCards=العلامات المائية على مسودة طلبات الإجازة
HolidaysToApprove=العطل للموافقة
NobodyHasPermissionToValidateHolidays=لا أحد لديه إذن للتحقق من صحة العطلات
HolidayBalanceMonthlyUpdate=التحديث الشهري لرصيد العطلة
XIsAUsualNonWorkingDay=%s هو عادة يوم عمل غير
BlockHolidayIfNegative=كتلة إذا كان الرصيد سلبي
LeaveRequestCreationBlockedBecauseBalanceIsNegative=تم حظر إنشاء طلب الإجازة هذا لأن رصيدك سلبي
ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=يجب أن يكون طلب الإجازة %s مسودة أو إلغاء أو رفض حذفه

View File

@ -2,36 +2,35 @@
InstallEasy=فقط اتبع التعليمات خطوة بخطوة.
MiscellaneousChecks=التحقق من الشروط الأساسية
ConfFileExists=ملف الإعداد <b>%s</b> موجود مسبقاً
ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
ConfFileDoesNotExistsAndCouldNotBeCreated=ملف التكوين <b> %s </b> غير موجود ولا يمكن إنشاؤه!
ConfFileCouldBeCreated=يمكن إنشاء ملف الإعداد <b>%s</b>
ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
ConfFileIsNotWritable=ملف التكوين <b> %s </b> غير قابل للكتابة. تحقق من الأذونات. عند التثبيت لأول مرة ، يجب أن يكون خادم الويب الخاص بك قادرًا على الكتابة في هذا الملف أثناء عملية التكوين ("chmod 666" على سبيل المثال في نظام التشغيل Unix مثل نظام التشغيل).
ConfFileIsWritable=ملف الإعداد <b>%s</b> قابل للكتابة.
ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
ConfFileReload=Reloading parameters from configuration file.
NoReadableConfFileSoStartInstall=The configuration file <b>conf/conf.php</b> does not exists or is not readable. We will run the installation process to try to initialize it.
ConfFileMustBeAFileNotADir=يجب أن يكون ملف التكوين <b> %s </b> ملفًا وليس دليلاً.
ConfFileReload=إعادة تحميل المعلمات من ملف التكوين.
NoReadableConfFileSoStartInstall=ملف التكوين <b> conf / conf.php </b> غير موجود أو غير قابل للقراءة. سنقوم بتشغيل عملية التثبيت لمحاولة تهيئتها.
PHPSupportPOSTGETOk=يدعم هذا الـ PHP وظائف POST و GET.
PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
PHPSupportPOSTGETKo=من المحتمل أن إعداد PHP الخاص بك لا يدعم المتغيرات POST و / أو GET. تحقق من المعامل <b> variables_order </b> في ملف php.ini.
PHPSupportSessions=يدعم هذا الـ PHP ميزة الجلسات الزمنية.
PHPSupport=This PHP supports %s functions.
PHPSupport=يدعم PHP وظائف %s.
PHPMemoryOK=تم إعداد الجلسة الزمنية للذاكرة في PHP الى <b>%s</b> . من المفترض ان تكون كافية.
PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
Recheck=Click here for a more detailed test
ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
ErrorPHPDoesNotSupport=Your PHP installation does not support %s functions.
PHPMemoryTooLow=تم تعيين ذاكرة جلسة PHP القصوى على <b> %s </b> بايت. هذا منخفض جدًا. قم بتغيير المعلمة <b> php.ini </b> لتعيين <b> memory_limit </b> إلى <b> a0ecb2ec87f498zb7 byt9174.
Recheck=انقر هنا للحصول على اختبار أكثر تفصيلاً
ErrorPHPDoesNotSupportSessions=تثبيت PHP الخاص بك لا يدعم الجلسات. هذه الميزة مطلوبة للسماح لـ Dolibarr بالعمل. تحقق من إعداد PHP وأذونات دليل الجلسات.
ErrorPHPDoesNotSupport=تثبيت PHP الخاص بك لا يدعم وظائف %s.
ErrorDirDoesNotExists=دليل ٪ ق لا يوجد.
ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
ErrorGoBackAndCorrectParameters=ارجع وتحقق من / صحح المعلمات.
ErrorWrongValueForParameter=قد تكون لديكم مطبوعة خاطئة قيمة معلمة '٪ ق.
ErrorFailedToCreateDatabase=فشل إنشاء قاعدة بيانات '٪ ق.
ErrorFailedToConnectToDatabase=فشل في الاتصال بقاعدة البيانات '٪ ق.
ErrorDatabaseVersionTooLow=إصدار قاعدة البيانات (s%) قديمة جدا. مطلوب نسخة s% أو أعلى
ErrorPHPVersionTooLow=PHP version too old. Version %s or higher is required.
ErrorPHPVersionTooHigh=PHP version too high. Version %s or lower is required.
ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
ErrorPHPVersionTooLow=إصدار PHP قديم جدًا. مطلوب إصدار %s أو أعلى.
ErrorPHPVersionTooHigh=إصدار PHP مرتفع جدًا. مطلوب إصدار %s أو أقل.
ErrorConnectedButDatabaseNotFound=الاتصال بالخادم ناجح ولكن قاعدة البيانات "%s" غير موجودة.
ErrorDatabaseAlreadyExists=قاعدة البيانات '٪ ق' موجود بالفعل.
ErrorNoMigrationFilesFoundForParameters=No migration file found for the selected versions
IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
IfDatabaseNotExistsGoBackAndUncheckCreate=إذا كانت قاعدة البيانات غير موجودة ، فارجع وحدد الخيار "إنشاء قاعدة بيانات".
IfDatabaseExistsGoBackAndCheckCreate=إذا كانت قاعدة البيانات موجود بالفعل ، من العودة وإلغاء "إنشاء قاعدة بيانات" الخيار.
WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
WarningBrowserTooOld=إصدار المتصفح قديم جدًا. يوصى بشدة بترقية متصفحك إلى إصدار حديث من Firefox أو Chrome أو Opera.
PHPVersion=PHP الإصدار
License=الترخيص باستعمال
ConfigurationFile=ملفات
@ -44,23 +43,23 @@ DolibarrDatabase=قاعدة بيانات Dolibarr
DatabaseType=قاعدة بيانات من نوع
DriverType=سائق نوع
Server=الخادم
ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
ServerAddressDescription=الاسم أو عنوان IP لخادم قاعدة البيانات. عادة "localhost" عندما يتم استضافة خادم قاعدة البيانات على نفس الخادم مثل خادم الويب.
ServerPortDescription=قاعدة بيانات الميناء. تبقي فارغة إذا كانت غير معروفة.
DatabaseServer=خادم قاعدة البيانات
DatabaseName=اسم قاعدة البيانات
DatabasePrefix=Database table prefix
DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
AdminLogin=User account for the Dolibarr database owner.
PasswordAgain=Retype password confirmation
DatabasePrefix=بادئة جدول قاعدة البيانات
DatabasePrefixDescription=بادئة جدول قاعدة البيانات. إذا كانت فارغة ، يتم تعيينها افتراضيًا على llx_.
AdminLogin=حساب المستخدم لمالك قاعدة بيانات Dolibarr.
PasswordAgain=أعد كتابة كلمة المرور
AdminPassword=Dolibarr كلمة السر لمدير قاعدة البيانات. تبقي فارغة إذا لم يذكر اسمه في اتصال
CreateDatabase=إنشاء قاعدة بيانات
CreateUser=Create user account or grant user account permission on the Dolibarr database
CreateUser=قم بإنشاء حساب مستخدم أو منح إذن حساب المستخدم على قاعدة بيانات Dolibarr
DatabaseSuperUserAccess=قاعدة بيانات -- وصول مستخدم الكومبيوتر ذو الصلاحيات العليا
CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
SaveConfigurationFile=Saving parameters to
CheckToCreateDatabase=ضع علامة في المربع إذا لم تكن قاعدة البيانات موجودة بعد ويجب إنشاء ذلك. <br> في هذه الحالة ، يجب عليك أيضًا ملء اسم المستخدم وكلمة المرور لحساب المستخدم المتميز في أسفل هذه الصفحة.
CheckToCreateUser=ضع علامة في المربع إذا: <br> حساب مستخدم قاعدة البيانات غير موجود بعد ويجب إنشاءه ، أو <br> إذا كان حساب المستخدم موجودًا ولكن قاعدة البيانات غير موجودة ويجب منح الأذونات. <br> في هذه الحالة ، يجب عليك إدخال حساب المستخدم وكلمة المرور و <b> أيضًا </b> اسم حساب المستخدم المتميز وكلمة المرور في أسفل هذه الصفحة. إذا لم يتم تحديد هذا المربع ، فيجب أن يكون مالك قاعدة البيانات وكلمة المرور موجودين بالفعل.
DatabaseRootLoginDescription=اسم حساب المستخدم المتميز (لإنشاء قواعد بيانات جديدة أو مستخدمين جدد) ، إلزامي إذا لم تكن قاعدة البيانات أو مالكها موجودًا بالفعل.
KeepEmptyIfNoPassword=اتركه فارغًا إذا لم يكن لدى المستخدم المتميز كلمة مرور (غير مستحسن)
SaveConfigurationFile=حفظ المعلمات في
ServerConnection=اتصال الخادم
DatabaseCreation=إنشاء قاعدة بيانات
CreateDatabaseObjects=إنشاء قاعدة بيانات الأجسام
@ -71,9 +70,9 @@ CreateOtherKeysForTable=إنشاء الخارجية مفاتيح الأرقام
OtherKeysCreation=مفاتيح الخارجية وإنشاء الفهارس
FunctionsCreation=إنشاء وظائف
AdminAccountCreation=مدير ادخل إنشاء
PleaseTypePassword=Please type a password, empty passwords are not allowed!
PleaseTypeALogin=Please type a login!
PasswordsMismatch=Passwords differs, please try again!
PleaseTypePassword=الرجاء كتابة كلمة المرور ، غير مسموح بكلمات المرور الفارغة!
PleaseTypeALogin=الرجاء كتابة تسجيل الدخول!
PasswordsMismatch=تختلف كلمات المرور ، يرجى المحاولة مرة أخرى!
SetupEnd=نهاية الإعداد
SystemIsInstalled=هذا التثبيت الكامل.
SystemIsUpgraded=وقد تم تطوير Dolibarr بنجاح.
@ -81,73 +80,73 @@ YouNeedToPersonalizeSetup=عليك تكوين Dolibarr لتناسب احتياج
AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
GoToDolibarr=الذهاب إلى Dolibarr
GoToSetupArea=الذهاب إلى Dolibarr (مجال الإعداد)
MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
MigrationNotFinished=إصدار قاعدة البيانات ليس محدثًا بالكامل: قم بتشغيل عملية الترقية مرة أخرى.
GoToUpgradePage=الذهاب لتحديث الصفحة مرة أخرى
WithNoSlashAtTheEnd=بدون خفض "/" في نهاية
DirectoryRecommendation=<span class="warning">IMPORTANT</span>: You must use a directory that is outside of the web pages (so do not use a subdirectory of previous parameter).
DirectoryRecommendation= <span class="warning"> هام </span>: يجب عليك استخدام دليل خارج صفحات الويب (لذا لا تستخدم دليلًا فرعيًا للمعلمة السابقة).
LoginAlreadyExists=موجود بالفعل
DolibarrAdminLogin=ادخل Dolibarr مشرف
AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
AdminLoginAlreadyExists=حساب مسؤول Dolibarr '<b> %s </b>' موجود بالفعل. ارجع إذا كنت تريد إنشاء واحدة أخرى.
FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
FunctionNotAvailableInThisPHP=Not available in this PHP
WarningRemoveInstallDir=تحذير ، لأسباب أمنية ، بمجرد اكتمال التثبيت أو الترقية ، يجب إضافة ملف يسمى <b> install.lock </b> في دليل مستندات Dolibarr من أجل منع الاستخدام العرضي / الضار لأدوات التثبيت مرة أخرى.
FunctionNotAvailableInThisPHP=غير متوفر في PHP هذا
ChoosedMigrateScript=اختار الهجرة سكريبت
DataMigration=Database migration (data)
DatabaseMigration=Database migration (structure + some data)
DataMigration=ترحيل قاعدة البيانات (البيانات)
DatabaseMigration=ترحيل قاعدة البيانات (بنية + بعض البيانات)
ProcessMigrateScript=السيناريو تجهيز
ChooseYourSetupMode=اختر طريقة الإعداد وانقر على "ابدأ"...
FreshInstall=تركيب جديد
FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
FreshInstallDesc=استخدم هذا الوضع إذا كان هذا هو التثبيت الأول لك. إذا لم يكن الأمر كذلك ، فيمكن لهذا الوضع إصلاح تثبيت سابق غير مكتمل. إذا كنت ترغب في ترقية إصدارك ، اختر وضع "ترقية".
Upgrade=ترقية
UpgradeDesc=استخدام هذه الطريقة إذا كنت قد حلت محل القديمة Dolibarr الملفات من الملفات مع إصدار أحدث. وهذا من شأنه رفع مستوى قاعدة البيانات والبيانات.
Start=يبدأ
InstallNotAllowed=الإعداد غير مسموح به <b>conf.php</b> الاذونات
YouMustCreateWithPermission=يجب إنشاء ملف ق ٪ ومجموعة الكتابة على أذونات لملقم الويب أثناء عملية التثبيت.
CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
CorrectProblemAndReloadPage=يرجى إصلاح المشكلة والضغط على F5 لإعادة تحميل الصفحة.
AlreadyDone=بالفعل هاجر
DatabaseVersion=قاعدة بيانات النسخة
ServerVersion=خادم قاعدة البيانات النسخة
YouMustCreateItAndAllowServerToWrite=يجب إنشاء هذا الدليل ، والسماح لخادم الويب أن يكتبوا فيه.
DBSortingCollation=طابع الفرز بغية
YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
YouAskDatabaseCreationSoDolibarrNeedToConnect=لقد حددت إنشاء قاعدة بيانات <b> %s </b> ، ولكن لهذا الغرض ، يحتاج Dolibarr إلى الاتصال بالخادم <b> %s a09a4b739f17658372f a0334bec08z07f.
YouAskLoginCreationSoDolibarrNeedToConnect=لقد حددت إنشاء مستخدم قاعدة البيانات <b> %s </b> ، ولكن لهذا الغرض ، يحتاج Dolibarr إلى الاتصال بالخادم <b> %s a09a4b749f17658z07fee.
BecauseConnectionFailedParametersMayBeWrong=فشل اتصال قاعدة البيانات: يجب أن تكون معلمات المضيف أو المستخدم الفائق خاطئة.
OrphelinsPaymentsDetectedByMethod=Orphelins من اكتشاف طريقة الدفع ق ٪
RemoveItManuallyAndPressF5ToContinue=إزالته يدويا واضغط F5 للمتابعة.
FieldRenamed=تغيير اسم الحقل
IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
IfLoginDoesNotExistsCheckCreateUser=إذا لم يكن المستخدم موجودًا بعد ، فيجب تحديد الخيار "إنشاء مستخدم"
ErrorConnection=Server " <b> %s </b> ", database name " <b> %s </b> ", login " <b> %s </b> ", or database password may be wrong or the PHP client version may be too old compared to the database version.
InstallChoiceRecommanded=وأوصت لتثبيت اختيار النسخة <b>٪ المستندات</b> الخاصة بك من النسخة الحالية <b>ل ٪</b>
InstallChoiceSuggested=<b>اقترح تثبيت اختيار المثبت.</b>
MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
MigrateIsDoneStepByStep=يحتوي الإصدار المستهدف (%s) على فجوة في عدة إصدارات. سيعود معالج التثبيت ليقترح عملية ترحيل أخرى بمجرد اكتمال هذا.
CheckThatDatabasenameIsCorrect=تحقق من صحة اسم قاعدة البيانات "<b> %s </b>".
IfAlreadyExistsCheckOption=وإذا كان هذا الاسم هو الصحيح وأنه لا وجود قاعدة بيانات حتى الآن ، ويجب التحقق من خيار "إنشاء قاعدة بيانات".
OpenBaseDir=بي openbasedir المعلمة
YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
MigrationCustomerOrderShipping=Migrate shipping for sales orders storage
YouAskToCreateDatabaseSoRootRequired=حددت المربع "إنشاء قاعدة بيانات". لهذا ، تحتاج إلى تقديم تسجيل الدخول / كلمة المرور للمستخدم المتميز (أسفل النموذج).
YouAskToCreateDatabaseUserSoRootRequired=حددت المربع "إنشاء مالك قاعدة البيانات". لهذا ، تحتاج إلى تقديم تسجيل الدخول / كلمة المرور للمستخدم المتميز (أسفل النموذج).
NextStepMightLastALongTime=قد تستغرق الخطوة الحالية عدة دقائق. يرجى الانتظار حتى تظهر الشاشة التالية تمامًا قبل المتابعة.
MigrationCustomerOrderShipping=ترحيل الشحن لتخزين أوامر المبيعات
MigrationShippingDelivery=ترقية تخزين الشحن
MigrationShippingDelivery2=ترقية تخزين الشحن 2
MigrationFinished=الانتهاء من الهجرة
LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
LastStepDesc= <strong> الخطوة الأخيرة </strong>: حدد هنا تسجيل الدخول وكلمة المرور اللذين ترغب في استخدامهما للاتصال بـ Dolibarr. <b> لا تفقد هذا لأنه الحساب الرئيسي لإدارة جميع حسابات المستخدمين الأخرى / الإضافية. </b>
ActivateModule=تفعيل وحدة %s
ShowEditTechnicalParameters=انقر هنا لعرض/تحرير المعلمات المتقدمة (وضع الخبراء)
WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
UpgradeExternalModule=Run dedicated upgrade process of external module
SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example: '...repair.php?standard=confirmed'
NothingToDelete=Nothing to clean/delete
NothingToDo=Nothing to do
WarningUpgrade=تحذير:\nهل قمت بتشغيل نسخة احتياطية لقاعدة البيانات أولاً؟\nينصح بهذا بشدة. قد يكون فقدان البيانات (بسبب الأخطاء الموجودة في الإصدار 5.5.40 / 41/42/43 من mysql على سبيل المثال) ممكنًا أثناء هذه العملية ، لذلك من الضروري تفريغ قاعدة البيانات بالكامل قبل بدء أي ترحيل.\n\nانقر فوق "موافق" لبدء عملية الترحيل ...
ErrorDatabaseVersionForbiddenForMigration=إصدار قاعدة البيانات لديك هو %s. يحتوي على خطأ فادح ، مما يجعل فقدان البيانات ممكنًا إذا قمت بإجراء تغييرات هيكلية في قاعدة البيانات الخاصة بك ، كما هو مطلوب من خلال عملية الترحيل. لسببه ، لن يُسمح بالترحيل حتى تقوم بترقية قاعدة البيانات الخاصة بك إلى إصدار طبقة (مصححة) (قائمة إصدارات عربات التي تجرها الدواب المعروفة: %s)
KeepDefaultValuesWamp=لقد استخدمت معالج إعداد Dolibarr من DoliWamp ، لذلك تم تحسين القيم المقترحة هنا بالفعل. قم بتغييرها فقط إذا كنت تعرف ما تفعله.
KeepDefaultValuesDeb=لقد استخدمت معالج إعداد Dolibarr من حزمة Linux (Ubuntu و Debian و Fedora ...) ، لذلك تم تحسين القيم المقترحة هنا بالفعل. يجب فقط إدخال كلمة مرور مالك قاعدة البيانات المراد إنشاؤها. قم بتغيير المعلمات الأخرى فقط إذا كنت تعرف ما تفعله.
KeepDefaultValuesMamp=لقد استخدمت معالج إعداد Dolibarr من DoliMamp ، لذلك تم تحسين القيم المقترحة هنا بالفعل. قم بتغييرها فقط إذا كنت تعرف ما تفعله.
KeepDefaultValuesProxmox=لقد استخدمت معالج إعداد Dolibarr من جهاز Proxmox الظاهري ، لذلك تم تحسين القيم المقترحة هنا بالفعل. قم بتغييرها فقط إذا كنت تعرف ما تفعله.
UpgradeExternalModule=قم بتشغيل عملية ترقية مخصصة للوحدة الخارجية
SetAtLeastOneOptionAsUrlParameter=عيِّن خيارًا واحدًا على الأقل كمعامل في URL. على سبيل المثال: "... repair.php؟ standard = Verified"
NothingToDelete=لا شيء للتنظيف / الحذف
NothingToDo=لا شيء لأفعله
#########
# upgrade
MigrationFixData=إصلاح البيانات الذي لم تتم تسويته
MigrationOrder=بيانات الهجرة طلبات الزبائن
MigrationSupplierOrder=Data migration for vendor's orders
MigrationSupplierOrder=ترحيل البيانات لأوامر البائعين
MigrationProposal=بيانات الهجرة لأغراض تجارية اقتراحات
MigrationInvoice=بيانات الهجرة لعملاء الفواتير
MigrationContract=بيانات الهجرة للحصول على عقود
@ -163,9 +162,9 @@ MigrationContractsUpdate=تصحيح بيانات العقد
MigrationContractsNumberToUpdate=٪ ق العقد (ق) لتحديث
MigrationContractsLineCreation=عقد إنشاء خط لعقد المرجع ق ٪
MigrationContractsNothingToUpdate=لا أكثر مما ينبغي فعله
MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
MigrationContractsFieldDontExist=لم يعد الحقل fk_facture موجودًا بعد الآن. لا شيء لأفعله.
MigrationContractsEmptyDatesUpdate=عقد فارغ تصحيح التاريخ
MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
MigrationContractsEmptyDatesUpdateSuccess=تم تصحيح تاريخ فارغ للعقد بنجاح
MigrationContractsEmptyDatesNothingToUpdate=أي عقد حتى الآن لتصحيح فارغة
MigrationContractsEmptyCreationDatesNothingToUpdate=إنشاء أي عقد لتصحيح التاريخ
MigrationContractsInvalidDatesUpdate=سوء قيمة العقد تصحيح التاريخ
@ -187,29 +186,29 @@ MigrationDeliveryDetail=تسليم تحديث
MigrationStockDetail=تحديث قيمة المخزون من المنتجات
MigrationMenusDetail=تحديث القوائم الديناميكية الجداول
MigrationDeliveryAddress=تتناول آخر التطورات في تسليم شحنات
MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
MigrationProjectTaskActors=ترحيل البيانات للجدول llx_projet_task_actors
MigrationProjectUserResp=بيانات fk_user_resp مجال الهجرة من llx_projet لllx_element_contact
MigrationProjectTaskTime=تحديث الوقت الذي يقضيه في ثوان
MigrationActioncommElement=تحديث البيانات على الإجراءات
MigrationPaymentMode=Data migration for payment type
MigrationPaymentMode=ترحيل البيانات لنوع الدفع
MigrationCategorieAssociation=تحديث الفئات
MigrationEvents=Migration of events to add event owner into assignment table
MigrationEventsContact=Migration of events to add event contact into assignment table
MigrationEvents=ترحيل الأحداث لإضافة مالك الحدث إلى جدول المهام
MigrationEventsContact=ترحيل الأحداث لإضافة جهة اتصال الحدث إلى جدول المهام
MigrationRemiseEntity=Update entity field value of llx_societe_remise
MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
MigrationUserRightsEntity=Update entity field value of llx_user_rights
MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
MigrationUserPhotoPath=Migration of photo paths for users
MigrationFieldsSocialNetworks=Migration of users fields social networks (%s)
MigrationUserRightsEntity=تحديث قيمة حقل الكيان لـ llx_user_rights
MigrationUserGroupRightsEntity=تحديث قيمة حقل الكيان لـ llx_usergroup_rights
MigrationUserPhotoPath=ترحيل مسارات الصور للمستخدمين
MigrationFieldsSocialNetworks=هجرة حقول المستخدمين الشبكات الاجتماعية (%s)
MigrationReloadModule=إعادة تحديث الوحدات %s
MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
MigrationImportOrExportProfiles=Migration of import or export profiles (%s)
ShowNotAvailableOptions=Show unavailable options
HideNotAvailableOptions=Hide unavailable options
ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
ClickHereToGoToApp=Click here to go to your application
ClickOnLinkOrRemoveManualy=If an upgrade is in progress, please wait. If not, click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
Loaded=Loaded
FunctionTest=Function test
MigrationResetBlockedLog=إعادة تعيين الوحدة النمطية BlockedLog لخوارزمية v7
MigrationImportOrExportProfiles=ترحيل ملفات تعريف الاستيراد أو التصدير (%s)
ShowNotAvailableOptions=إظهار الخيارات غير المتاحة
HideNotAvailableOptions=إخفاء الخيارات غير المتاحة
ErrorFoundDuringMigration=تم الإبلاغ عن خطأ (أخطاء) أثناء عملية الترحيل ، لذا فإن الخطوة التالية غير متاحة. لتجاهل الأخطاء ، يمكنك النقر هنا <a href="%s"> </a> ، لكن التطبيق أو بعض الميزات قد لا تعمل بشكل صحيح حتى يتم حل الأخطاء.
YouTryInstallDisabledByDirLock=حاول التطبيق الترقية الذاتية ، ولكن تم تعطيل صفحات التثبيت / الترقية للأمان (تمت إعادة تسمية الدليل بلاحقة .lock). <br>
YouTryInstallDisabledByFileLock=حاول التطبيق الترقية الذاتية ، ولكن تم تعطيل صفحات التثبيت / الترقية للأمان (من خلال وجود ملف قفل <strong> install.lock </strong> في دليل مستندات dolibarr). <br>
ClickHereToGoToApp=انقر هنا للذهاب إلى التطبيق الخاص بك
ClickOnLinkOrRemoveManualy=إذا كانت الترقية قيد التقدم ، يرجى الانتظار. إذا لم يكن كذلك ، انقر فوق الارتباط التالي. إذا كنت ترى نفس الصفحة دائمًا ، فيجب عليك إزالة / إعادة تسمية الملف install.lock في دليل المستندات.
Loaded=محمل
FunctionTest=اختبار الوظيفة

View File

@ -18,37 +18,37 @@
#
# Module label 'ModuleKnowledgeManagementName'
ModuleKnowledgeManagementName = Knowledge Management System
ModuleKnowledgeManagementName = نظام إدارة المعرفة
# Module description 'ModuleKnowledgeManagementDesc'
ModuleKnowledgeManagementDesc=Manage a Knowledge Management (KM) or Help-Desk base
ModuleKnowledgeManagementDesc=إدارة إدارة المعرفة (KM) أو قاعدة مكتب المساعدة
#
# Admin page
#
KnowledgeManagementSetup = Knowledge Management System setup
KnowledgeManagementSetup = إعداد نظام إدارة المعرفة
Settings = إعدادات
KnowledgeManagementSetupPage = Knowledge Management System setup page
KnowledgeManagementSetupPage = صفحة إعداد نظام إدارة المعرفة
#
# About page
#
About = حول
KnowledgeManagementAbout = About Knowledge Management
KnowledgeManagementAboutPage = Knowledge Management about page
KnowledgeManagementAbout = حول إدارة المعرفة
KnowledgeManagementAboutPage = إدارة المعرفة حول الصفحة
KnowledgeManagementArea = Knowledge Management
MenuKnowledgeRecord = Knowledge base
ListKnowledgeRecord = List of articles
NewKnowledgeRecord = New article
ValidateReply = Validate solution
KnowledgeRecords = Articles
KnowledgeManagementArea = إدارة المعرفة
MenuKnowledgeRecord = قاعدة المعرفة
ListKnowledgeRecord = قائمة المقالات
NewKnowledgeRecord = مقال جديد
ValidateReply = تحقق من صحة الحل
KnowledgeRecords = مقالات
KnowledgeRecord = عنصر
KnowledgeRecordExtraFields = Extrafields for Article
GroupOfTicket=Group of tickets
YouCanLinkArticleToATicketCategory=You can link an article to a ticket group (so the article will be suggested during qualification of new tickets)
SuggestedForTicketsInGroup=Suggested for tickets when group is
KnowledgeRecordExtraFields = Extrafields للمادة
GroupOfTicket=مجموعة التذاكر
YouCanLinkArticleToATicketCategory=You can link the article to a ticket group (so the article will be highlighted on any tickets in this group)
SuggestedForTicketsInGroup=اقترح للتذاكر عندما تكون المجموعة
SetObsolete=Set as obsolete
ConfirmCloseKM=Do you confirm the closing of this article as obsolete ?
ConfirmReopenKM=Do you want to restore this article to status "Validated" ?
SetObsolete=تعيين كما عفا عليها الزمن
ConfirmCloseKM=هل تؤكد أن إغلاق هذا المقال قد عفا عليه الزمن؟
ConfirmReopenKM=هل تريد استعادة هذه المقالة إلى الحالة "تم التحقق منها"؟

View File

@ -10,7 +10,7 @@ LoanCapital=عاصمة
Insurance=تأمين
Interest=اهتمام
Nbterms=عدد من المصطلحات
Term=Term
Term=شرط
LoanAccountancyCapitalCode=Accounting account capital
LoanAccountancyInsuranceCode=Accounting account insurance
LoanAccountancyInterestCode=Accounting account interest
@ -19,16 +19,16 @@ LoanDeleted=بنجاح قرض محذوفة
ConfirmPayLoan=تأكيد صنف دفع هذا القرض
LoanPaid=القرض المدفوع
ListLoanAssociatedProject=List of loan associated with the project
AddLoan=Create loan
FinancialCommitment=Financial commitment
AddLoan=إنشاء قرض
FinancialCommitment=التزام مالي
InterestAmount=اهتمام
CapitalRemain=Capital remain
TermPaidAllreadyPaid = This term is allready paid
CantUseScheduleWithLoanStartedToPaid = Can't use scheduler for a loan with payment started
CantModifyInterestIfScheduleIsUsed = You can't modify interest if you use schedule
CapitalRemain=يبقى رأس المال
TermPaidAllreadyPaid = هذا المصطلح مدفوع بالفعل
CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started
CantModifyInterestIfScheduleIsUsed = لا يمكنك تعديل الفائدة إذا كنت تستخدم الجدول الزمني
# Admin
ConfigLoan=التكوين للقرض وحدة
LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default
LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default
LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default
CreateCalcSchedule=Edit financial commitment
CreateCalcSchedule=تحرير الالتزام المالي

View File

@ -1,9 +1,15 @@
# Dolibarr language file - Source file is en_US - main
DIRECTION=rtl
# Default for FONTFORPDF=helvetica
# Note for Chinese:
# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader)
# stsongstdlight or cid0cs are for simplified Chinese
# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader)
# stsongstdlight or cid0cs are for simplified Chinese zh_CN
# To read Chinese pdf with Linux: sudo apt-get install poppler-data
# cid0jp is for Japanish
# cid0kr is for Korean
# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages
# freemono is for ru_RU or uk_UA, uz_UZ
# freeserif is for Tamil
FONTFORPDF=DejaVuSans
FONTSIZEFORPDF=10
SeparatorDecimal=.
@ -67,7 +73,7 @@ ErrorNoVATRateDefinedForSellerCountry=خطأ ، لم يتم تحديد معدل
ErrorNoSocialContributionForSellerCountry=خطأ ، لم يتم تحديد نوع الضرائب الاجتماعية | المالية للبلد "%s".
ErrorFailedToSaveFile=خطأ، فشل في حفظ الملف.
ErrorCannotAddThisParentWarehouse=أنت تحاول إضافة مستودع رئيسي هو بالفعل تابع لمستودع موجود
FieldCannotBeNegative=Field "%s" cannot be negative
FieldCannotBeNegative=لا يمكن أن يكون الحقل "%s" سالبًا
MaxNbOfRecordPerPage=عدد السجلات الاعلى في الصفحة الواحدة
NotAuthorized=غير مصرح لك ان تفعل ذلك.
SetDate=تحديد التاريخ
@ -88,7 +94,7 @@ FileWasNotUploaded=تم تحديد ملف للإرفاق ولكن لم يتم ت
NbOfEntries=عدد الإدخالات
GoToWikiHelpPage=قراءة التعليمات عبر الإنترنت (يلزم الاتصال بالإنترنت)
GoToHelpPage=قراءة المساعدة
DedicatedPageAvailable=Dedicated help page related to your current screen
DedicatedPageAvailable=صفحة مساعدة مخصصة تتعلق بشاشتك الحالية
HomePage=الصفحة الرئيسية
RecordSaved=تم حفظ سجل
RecordDeleted=سجل محذوف
@ -115,7 +121,7 @@ ReturnCodeLastAccessInError=إرجاع الكود لأحدث خطأ في طلب
InformationLastAccessInError=معلومات عن خطأ طلب الوصول إلى قاعدة البيانات الأخيرة
DolibarrHasDetectedError=Dolibarr اكتشف خطأ تقني
YouCanSetOptionDolibarrMainProdToZero=يمكنك قراءة ملف السجل أو تعيين الخيار $ dolibarr_main_prod إلى "0" في (config file) للحصول على مزيد من المعلومات.
InformationToHelpDiagnose=This information can be useful for diagnostic purposes (you can set option $dolibarr_main_prod to '1' to hide sensitive information)
InformationToHelpDiagnose=يمكن أن تكون هذه المعلومات مفيدة لأغراض التشخيص (يمكنك تعيين الخيار $ dolibarr_main_prod على "1" لإخفاء المعلومات الحساسة)
MoreInformation=المزيد من المعلومات
TechnicalInformation=المعلومات التقنية
TechnicalID=ID الفني
@ -181,7 +187,7 @@ SaveAndNew=حفظ وجديد
TestConnection=اختبار الاتصال
ToClone=استنساخ
ConfirmCloneAsk=هل أنت متأكد أنك تريد استنساخ الكائن <b> %s </b>؟
ConfirmClone=Choose the data you want to clone:
ConfirmClone=اختر البيانات التي تريد نسخها:
NoCloneOptionsSpecified=لا توجد بيانات لاستنساخ محددة.
Of=من
Go=اذهب
@ -212,8 +218,8 @@ User=المستعمل
Users=المستخدمين
Group=مجموعة
Groups=المجموعات
UserGroup=User group
UserGroups=User groups
UserGroup=مجموعة المستخدمين
UserGroups=مجموعات الاعضاء
NoUserGroupDefined=لم يتم تحديد مجموعة مستخدمين
Password=كلمة المرور
PasswordRetype=أعد كتابة كلمة المرور
@ -244,13 +250,13 @@ Designation=الوصف
DescriptionOfLine=وصف البند
DateOfLine=تاريخ البند
DurationOfLine=مدة البند
ParentLine=Parent line ID
ParentLine=معرف خط الأصل
Model=قالب المستند
DefaultModel=قالب المستند الافتراضي
Action=حدث
About=حول
Number=عدد
NumberByMonth=Total reports by month
NumberByMonth=إجمالي التقارير حسب الشهر
AmountByMonth=المبلغ بالشهر
Numero=عدد
Limit=الحد
@ -346,7 +352,7 @@ MegaBytes=ميغابايت
GigaBytes=غيغا بايت
TeraBytes=تيرابايت
UserAuthor=تم الإنشاء بواسطة
UserModif=Updated by
UserModif=تم التحديث بواسطة
b=بايت
Kb=كيلوبايت
Mb=ميغابايت
@ -434,7 +440,7 @@ LT1IN=CGST
LT2IN=SGST
LT1GC=Additionnal cents
VATRate=معدل الضريبة
RateOfTaxN=Rate of tax %s
RateOfTaxN=معدل الضريبة %s
VATCode=كود معدل الضريبة
VATNPR=معدل ضريبة NPR
DefaultTaxRate=معدل الضريبة الافتراضي
@ -621,7 +627,7 @@ MonthVeryShort11=11
MonthVeryShort12=12
AttachedFiles=الملفات والمستندات المرفقة
JoinMainDoc=ضم إلى المستند الرئيسي
JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found
JoinMainDocOrLastGenerated=أرسل المستند الرئيسي أو آخر مستند تم إنشاؤه إذا لم يتم العثور عليه
DateFormatYYYYMM=YYYY-MM
DateFormatYYYYMMDD=YYYY-MM-DD
DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH: SS
@ -712,7 +718,7 @@ FeatureDisabled=ميزة معطلة
MoveBox=نقل البريمج
Offered=معروض
NotEnoughPermissions=ليس لديك إذن بهذا الإجراء
UserNotInHierachy=This action is reserved to the supervisors of this user
UserNotInHierachy=هذا الإجراء محجوز لمشرفي هذا المستخدم
SessionName=اسم الجلسة
Method=الطريقة
Receive=استقبال
@ -737,7 +743,7 @@ MenuMembers=أعضاء
MenuAgendaGoogle=أجندة غوغل
MenuTaxesAndSpecialExpenses=الضرائب | مصاريف خاصة
ThisLimitIsDefinedInSetup=حدود دوليبار (Menu home-setup-security): %s كيلوبايت ، حد PHP: %s كيلوبايت
ThisLimitIsDefinedInSetupAt=Dolibarr limit (Menu %s): %s Kb, PHP limit (Param %s): %s Kb
ThisLimitIsDefinedInSetupAt=حد Dolibarr (القائمة %s): %s كيلوبايت ، حد PHP (Param %s): %s كيلوبايت
NoFileFound=لم يتم رفع مستند
CurrentUserLanguage=اللغة الحالية
CurrentTheme=الواجهة الحالية
@ -802,7 +808,6 @@ URLPhoto=عنوان URL للصورة | الشعار
SetLinkToAnotherThirdParty=ربط بطرف ثالث آخر
LinkTo=ربط مع او بـ
LinkToProposal=ربط مع العرض
LinkToExpedition= Link to expedition
LinkToOrder=ربط مع الامر
LinkToInvoice=ربط مع الفاتورة
LinkToTemplateInvoice=ربط مع قالب الفاتورة
@ -812,7 +817,7 @@ LinkToSupplierInvoice=ربط مع فاتورة المورد
LinkToContract=ربط مع العقد
LinkToIntervention=ربط مع التداخل
LinkToTicket=ربط مع التذكرة
LinkToMo=Link to Mo
LinkToMo=رابط إلى Mo
CreateDraft=إنشاء مسودة
SetToDraft=العودة إلى المسودة
ClickToEdit=انقر للتحرير
@ -856,7 +861,7 @@ XMoreLines=%s بند (بنود) مخفي
ShowMoreLines=عرض المزيد | أقل من البنود
PublicUrl=URL العام
AddBox=إضافة مربع
SelectElementAndClick=Select an element and click on %s
SelectElementAndClick=حدد عنصرًا وانقر فوق %s
PrintFile=طباعة الملف %s
ShowTransaction=عرض الإدخال في الحساب المصرفي
ShowIntervention=عرض التدخل
@ -867,8 +872,8 @@ Denied=مرفوض
ListOf=قائمة %s
ListOfTemplates=قائمة القوالب
Gender=جنس
Genderman=Male
Genderwoman=Female
Genderman=ذكر
Genderwoman=أنثى
Genderother=الآخر
ViewList=عرض القائمة
ViewGantt=عرض Gantt
@ -914,7 +919,7 @@ ViewFlatList=عرض قائمة مسطحة
ViewAccountList=عرض دفتر الأستاذ
ViewSubAccountList=عرض دفتر الأستاذ الفرعي
RemoveString=Remove string '%s'
SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank" rel="noopener noreferrer external">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
SomeTranslationAreUncomplete=قد تكون بعض اللغات المعروضة مترجمة جزئيًا فقط أو قد تحتوي على أخطاء. الرجاء المساعدة في تصحيح لغتك بالتسجيل في <a href="https://transifex.com/projects/p/dolibarr/" target="_blank" rel="noopener noreferrer external"> https://transifex.com/projects/p/dolibarr/ </a> لإضافة تحسيناتك.
DirectDownloadLink=رابط التحميل العام
PublicDownloadLinkDesc=فقط مطلوب الرابط لتنزيل الملف
DirectDownloadInternalLink=رابط التحميل الخاص
@ -1083,7 +1088,7 @@ ValidFrom=صالح من
ValidUntil=صالح حتى
NoRecordedUsers=لايوجد مستخدمين
ToClose=لغلق
ToRefuse=To refuse
ToRefuse=رفض
ToProcess=لعملية
ToApprove=للموافقة
GlobalOpenedElemView=نظرة شاملة
@ -1138,45 +1143,47 @@ UpdateForAllLines=تحديث لجميع البنود
OnHold=في الانتظار
Civility=Civility
AffectTag=Affect Tag
CreateExternalUser=Create external user
CreateExternalUser=إنشاء مستخدم خارجي
ConfirmAffectTag=Bulk Tag Affect
ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)?
CategTypeNotFound=لا يوجد ملصق لنوع السجل
CopiedToClipboard=تم النسخ الى الحافظة
InformationOnLinkToContract=هذا المبلغ هو مجموع بنود العقد . دون مراعاة قيمة الزمن
ConfirmCancel=Are you sure you want to cancel
ConfirmCancel=هل أنت متأكد أنك تريد إلغاء
EmailMsgID=Email MsgID
SetToEnabled=Set to enabled
SetToDisabled=Set to disabled
ConfirmMassEnabling=mass enabling confirmation
ConfirmMassEnablingQuestion=Are you sure you want to enable the %s selected record(s)?
ConfirmMassDisabling=mass disabling confirmation
ConfirmMassDisablingQuestion=Are you sure you want to disable the %s selected record(s)?
RecordsEnabled=%s record(s) enabled
RecordsDisabled=%s record(s) disabled
RecordEnabled=Record enabled
RecordDisabled=Record disabled
Forthcoming=Forthcoming
Currently=Currently
ConfirmMassLeaveApprovalQuestion=Are you sure you want to approve the %s selected record(s)?
ConfirmMassLeaveApproval=Mass leave approval confirmation
RecordAproved=Record approved
RecordsApproved=%s Record(s) approved
Properties=Properties
hasBeenValidated=%s has been validated
SetToEnabled=تعيين على تمكين
SetToDisabled=تعيين إلى معطل
ConfirmMassEnabling=تأكيد التمكين الشامل
ConfirmMassEnablingQuestion=هل أنت متأكد من أنك تريد تمكين السجل (السجلات) المحدد %s؟
ConfirmMassDisabling=تأكيد التعطيل الشامل
ConfirmMassDisablingQuestion=هل أنت متأكد من أنك تريد تعطيل السجل (السجلات) المحدد %s؟
RecordsEnabled=تم تمكين سجل (سجلات) %s
RecordsDisabled=سجل (سجلات) %s معطل
RecordEnabled=تم تمكين التسجيل
RecordDisabled=سجل معطل
Forthcoming=قادم، صريح، يظهر
Currently=حالياً
ConfirmMassLeaveApprovalQuestion=هل أنت متأكد من أنك تريد الموافقة على السجل (السجلات) المحددة %s؟
ConfirmMassLeaveApproval=تأكيد الموافقة على الإجازة الجماعية
RecordAproved=تمت الموافقة على السجل
RecordsApproved=%s تمت الموافقة على السجلات
Properties=الخصائص
hasBeenValidated=تم التحقق من صحة %s
ClientTZ=المنطقة الزمنية للعميل (المستخدم)
NotClosedYet=Not yet closed
ClearSignature=Reset signature
CanceledHidden=Canceled hidden
CanceledShown=Canceled shown
NotClosedYet=لم تغلق بعد
ClearSignature=إعادة تعيين التوقيع
CanceledHidden=إلغاء المخفية
CanceledShown=أظهرت ملغاة
Terminate=تعطيل
Terminated=Terminated
AddLineOnPosition=Add line on position (at the end if empty)
ConfirmAllocateCommercial=Assign sales representative confirmation
ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)?
CommercialsAffected=Sales representatives affected
CommercialAffected=Sales representative affected
YourMessage=Your message
YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible.
UrlToCheck=Url to check
Automation=Automation
Terminated=تم إنهاؤه
AddLineOnPosition=أضف سطرًا في الموضع (في النهاية إذا كان فارغًا)
ConfirmAllocateCommercial=تعيين تأكيد مندوب المبيعات
ConfirmAllocateCommercialQuestion=هل أنت متأكد من أنك تريد تعيين السجل (السجلات) المحددة %s؟
CommercialsAffected=مندوبي المبيعات يتأثرون
CommercialAffected=مندوب المبيعات يتأثر
YourMessage=رسالتك
YourMessageHasBeenReceived=وقد وردت الرسالة. سنقوم بالرد أو الاتصال بك في أقرب وقت ممكن.
UrlToCheck=عنوان Url المراد التحقق منه
Automation=أتمتة
CreatedByEmailCollector=Created by Email collector
CreatedByPublicPortal=Created from Public portal

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