Merge branch 'RightsInModuleBuilder' of github.com:lamrani002/dolibarr into RightsInModuleBuilder

This commit is contained in:
Lamrani Abdel 2023-02-03 14:38:05 +01:00
commit 5db5c7f1a0
496 changed files with 5134 additions and 2972 deletions

View File

@ -18,7 +18,7 @@ jobs:
fetch-depth: 1 fetch-depth: 1
#php-version: '7.1' #php-version: '7.1'
- name: 'Qodana Scan' - name: 'Qodana Scan'
uses: JetBrains/qodana-action@v2022.3.0 uses: JetBrains/qodana-action@v2022.3.2
#with: #with:
# php-version: '7.1' # php-version: '7.1'
env: env:

View File

@ -22,8 +22,8 @@ https://www.tecklenborgh.com/post/ksa-zatca-publishes-guide-on-how-to-develop-a-
Method to encode/decode ZATCA string is available in test/phpunit/BarcodeTest.php Method to encode/decode ZATCA string is available in test/phpunit/BarcodeTest.php
* FOR QR-Bill in switzerland * FOR QR-Bill in switzerland - Facture-QR
---------------------------- -----------------------------------------
Syntax of QR Code https://www.swiss-qr-invoice.org/fr/ Syntax of QR Code https://www.swiss-qr-invoice.org/fr/
Syntax of complentary field named "structured information of invoice S1": https://www.swiss-qr-invoice.org/downloads/qr-bill-s1-syntax-fr.pdf Syntax of complentary field named "structured information of invoice S1": https://www.swiss-qr-invoice.org/downloads/qr-bill-s1-syntax-fr.pdf
To test/validate: https://www.swiss-qr-invoice.org/validator/ To test/validate: https://www.swiss-qr-invoice.org/validator/

View File

@ -313,10 +313,6 @@ if (empty($reshook)) {
$object->socialnetworks[$key] = trim(GETPOST($key, 'alphanohtml')); $object->socialnetworks[$key] = trim(GETPOST($key, 'alphanohtml'));
} }
} }
//$object->skype = trim(GETPOST("skype", 'alpha'));
//$object->twitter = trim(GETPOST("twitter", 'alpha'));
//$object->facebook = trim(GETPOST("facebook", 'alpha'));
//$object->linkedin = trim(GETPOST("linkedin", 'alpha'));
$object->birth = $birthdate; $object->birth = $birthdate;
$object->default_lang = GETPOST('default_lang', 'alpha'); $object->default_lang = GETPOST('default_lang', 'alpha');
$object->typeid = GETPOST("typeid", 'int'); $object->typeid = GETPOST("typeid", 'int');
@ -488,11 +484,6 @@ if (empty($reshook)) {
} }
} }
// $object->skype = $skype;
// $object->twitter = $twitter;
// $object->facebook = $facebook;
// $object->linkedin = $linkedin;
$object->email = $email; $object->email = $email;
$object->url = $url; $object->url = $url;
$object->login = $login; $object->login = $login;

View File

@ -639,7 +639,7 @@ class AdherentType extends CommonObject
$sql .= ' AND ('.$excludefilter.')'; $sql .= ' AND ('.$excludefilter.')';
} }
dol_syslog(get_class($this)."::listUsersForGroup", LOG_DEBUG); dol_syslog(get_class($this)."::listMembersForMemberType", LOG_DEBUG);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ($resql) { if ($resql) {
while ($obj = $this->db->fetch_object($resql)) { while ($obj = $this->db->fetch_object($resql)) {

View File

@ -195,7 +195,7 @@ if (($action == 'update' && !GETPOST("cancel", 'alpha'))
dolibarr_set_const($db, "MAIN_INFO_PROFID6", GETPOST("MAIN_INFO_PROFID6", 'alphanohtml'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_INFO_PROFID6", GETPOST("MAIN_INFO_PROFID6", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
dolibarr_set_const($db, "MAIN_INFO_TVAINTRA", GETPOST("tva", 'alphanohtml'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_INFO_TVAINTRA", GETPOST("tva", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_OBJECT", GETPOST("object", 'alphanohtml'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_INFO_SOCIETE_OBJECT", GETPOST("socialobject", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
dolibarr_set_const($db, "SOCIETE_FISCAL_MONTH_START", GETPOST("SOCIETE_FISCAL_MONTH_START", 'int'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "SOCIETE_FISCAL_MONTH_START", GETPOST("SOCIETE_FISCAL_MONTH_START", 'int'), 'chaine', 0, '', $conf->entity);
@ -676,8 +676,8 @@ print '<input name="tva" id="intra_vat" class="minwidth200" value="'.dol_escape_
print '</td></tr>'; print '</td></tr>';
// Object of the company // Object of the company
print '<tr class="oddeven"><td><label for="object">'.$langs->trans("CompanyObject").'</label></td><td>'; print '<tr class="oddeven"><td><label for="socialobject">'.$langs->trans("CompanyObject").'</label></td><td>';
print '<textarea class="flat quatrevingtpercent" name="object" id="object" rows="'.ROWS_5.'">'.(!empty($conf->global->MAIN_INFO_SOCIETE_OBJECT) ? $conf->global->MAIN_INFO_SOCIETE_OBJECT : '').'</textarea></td></tr>'; print '<textarea class="flat quatrevingtpercent" name="socialobject" id="socialobject" rows="'.ROWS_5.'">'.(!empty($conf->global->MAIN_INFO_SOCIETE_OBJECT) ? $conf->global->MAIN_INFO_SOCIETE_OBJECT : '').'</textarea></td></tr>';
print '</td></tr>'; print '</td></tr>';
print '</table>'; print '</table>';

View File

@ -387,7 +387,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
$morehtmlref = '<div class="refidno">'; $morehtmlref = '<div class="refidno">';
$morehtmlref .= '</div>'; $morehtmlref .= '</div>';
$morehtml = $langs->trans("NbOfEmailsInInbox").' : '; $morehtml = '';
$sourcedir = $object->source_directory; $sourcedir = $object->source_directory;
$targetdir = ($object->target_directory ? $object->target_directory : ''); // Can be '[Gmail]/Trash' or 'mytag' $targetdir = ($object->target_directory ? $object->target_directory : ''); // Can be '[Gmail]/Trash' or 'mytag'
@ -404,6 +404,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
$connectstringserver = $object->getConnectStringIMAP($usessl); $connectstringserver = $object->getConnectStringIMAP($usessl);
if ($action == 'scan') { if ($action == 'scan') {
$nbemail = '';
if (!empty($conf->global->MAIN_IMAP_USE_PHPIMAP)) { if (!empty($conf->global->MAIN_IMAP_USE_PHPIMAP)) {
if ($object->acces_type == 1) { if ($object->acces_type == 1) {
// Mode OAUth2 with PHP-IMAP // Mode OAUth2 with PHP-IMAP
@ -493,7 +494,6 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
$f = $client->getFolders(false, $object->source_directory); $f = $client->getFolders(false, $object->source_directory);
$nbemail = $f[0]->examine()["exists"]; $nbemail = $f[0]->examine()["exists"];
$morehtml .= $nbemail;
} else { } else {
try { try {
if ($sourcedir) { if ($sourcedir) {
@ -525,15 +525,15 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
} }
if (!$connection) { if (!$connection) {
$morehtml .= 'Failed to open IMAP connection '.$connectstringsource; $nbemail .= 'Failed to open IMAP connection '.$connectstringsource;
if (function_exists('imap_last_error')) { if (function_exists('imap_last_error')) {
$morehtml .= '<br>'.imap_last_error(); $nbemail .= '<br>'.imap_last_error();
} }
dol_syslog("Error ".$morehtml, LOG_WARNING); dol_syslog("Error ".$morehtml, LOG_WARNING);
//var_dump(imap_errors()) //var_dump(imap_errors())
} else { } else {
dol_syslog("Imap connected. Now we call imap_num_msg()"); dol_syslog("Imap connected. Now we call imap_num_msg()");
$morehtml .= imap_num_msg($connection); $nbemail .= imap_num_msg($connection);
} }
if ($connection) { if ($connection) {
@ -541,12 +541,15 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
imap_close($connection); imap_close($connection);
} }
} }
} else {
$morehtml .= '<a class="flat" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=scan&token='.newToken().'">'.img_picto('', 'refresh', 'class="paddingrightonly"').$langs->trans("Refresh").'</a>';
} }
$morehtml .= $form->textwithpicto('', 'connect string '.$connectstringserver); $morehtml .= $form->textwithpicto($langs->trans("NbOfEmailsInInbox"), 'connect string '.$connectstringserver).': ';
$morehtml .= ($nbemail != '' ? $nbemail : '?');
$morehtml .= ' &nbsp; <a class="flat paddingleft marginleftonly" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=scan&token='.newToken().'">'.img_picto('', 'refresh', 'class="paddingrightonly"').$langs->trans("Refresh").'</a>';
} else { } else {
$morehtml .= $langs->trans("NbOfEmailsInInbox").': ';
$morehtml .= 'IMAP functions not available on your PHP. '; $morehtml .= 'IMAP functions not available on your PHP. ';
} }

View File

@ -601,13 +601,17 @@ while ($i < $imaxinloop) {
//if (in_array($key, array('fk_soc', 'fk_user', 'fk_warehouse'))) $cssforfield = 'tdoverflowmax100'; //if (in_array($key, array('fk_soc', 'fk_user', 'fk_warehouse'))) $cssforfield = 'tdoverflowmax100';
if (!empty($arrayfields['t.'.$key]['checked'])) { if (!empty($arrayfields['t.'.$key]['checked'])) {
print '<td'.($cssforfield ? ' class="'.$cssforfield.'"' : ''); print '<td'.($cssforfield ? ' class="'.$cssforfield.(preg_match('/tdoverflow/', $cssforfield) ? ' classfortooltip' : '').'"' : '');
if (preg_match('/tdoverflow/', $cssforfield)) { if (preg_match('/tdoverflow/', $cssforfield)) {
print ' title="'.dol_escape_htmltag($object->$key).'"'; print ' title="'.dol_escape_htmltag($object->$key).'"';
} }
print '>'; print '>';
if ($key == 'status') { if ($key == 'status') {
print $object->getLibStatut(5); print $object->getLibStatut(5);
} elseif ($key == 'lastresult') {
print '<div class="twolinesmax">';
print $object->showOutputField($val, $key, $object->$key, '');
print '</div>';
} elseif ($key == 'rowid') { } elseif ($key == 'rowid') {
print $object->showOutputField($val, $key, $object->id, ''); print $object->showOutputField($val, $key, $object->id, '');
} else { } else {

View File

@ -1762,11 +1762,6 @@ class Setup extends DolibarrApi
throw new RestException(403, 'Error API open to admin users only or to the users with logins defined into constant API_LOGINS_ALLOWED_FOR_GET_COMPANY'); throw new RestException(403, 'Error API open to admin users only or to the users with logins defined into constant API_LOGINS_ALLOWED_FOR_GET_COMPANY');
} }
unset($mysoc->skype);
unset($mysoc->twitter);
unset($mysoc->facebook);
unset($mysoc->linkedin);
unset($mysoc->pays); unset($mysoc->pays);
unset($mysoc->note); unset($mysoc->note);
unset($mysoc->nom); unset($mysoc->nom);

View File

@ -1,5 +1,5 @@
<?php <?php
/* Copyright (C) 2017-2020 Laurent Destailleur <eldy@users.sourceforge.net> /* Copyright (C) 2017-2023 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2019 Frédéric France <frederic.france@netlogic.fr> * Copyright (C) 2019 Frédéric France <frederic.france@netlogic.fr>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
@ -275,302 +275,303 @@ if (empty($reshook)) {
$object->calculateCosts(); $object->calculateCosts();
} }
} }
}
/*
* View
*/
/* $form = new Form($db);
* View $formfile = new FormFile($db);
*/
$form = new Form($db);
$formfile = new FormFile($db);
$title = $langs->trans('BOM'); $title = $langs->trans('BOM');
$help_url ='EN:Module_BOM'; $help_url ='EN:Module_BOM';
llxHeader('', $title, $help_url); llxHeader('', $title, $help_url);
// Part to create // Part to create
if ($action == 'create') { if ($action == 'create') {
print load_fiche_titre($langs->trans("NewBOM"), '', 'bom'); print load_fiche_titre($langs->trans("NewBOM"), '', 'bom');
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">'; print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
print '<input type="hidden" name="token" value="'.newToken().'">'; print '<input type="hidden" name="token" value="'.newToken().'">';
print '<input type="hidden" name="action" value="add">'; print '<input type="hidden" name="action" value="add">';
print '<input type="hidden" name="backtopage" value="'.$backtopage.'">'; print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
print dol_get_fiche_head(array(), ''); print dol_get_fiche_head(array(), '');
print '<table class="border centpercent tableforfieldcreate">'."\n"; print '<table class="border centpercent tableforfieldcreate">'."\n";
// Common attributes // Common attributes
include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_add.tpl.php'; include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_add.tpl.php';
// Other attributes // Other attributes
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_add.tpl.php'; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_add.tpl.php';
print '</table>'."\n"; print '</table>'."\n";
print dol_get_fiche_end(); print dol_get_fiche_end();
print $form->buttonsSaveCancel("Create"); print $form->buttonsSaveCancel("Create");
print '</form>'; print '</form>';
}
// Part to edit record
if (($id || $ref) && $action == 'edit') {
print load_fiche_titre($langs->trans("BillOfMaterials"), '', 'cubes');
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
print '<input type="hidden" name="token" value="'.newToken().'">';
print '<input type="hidden" name="action" value="update">';
print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
print '<input type="hidden" name="id" value="'.$object->id.'">';
print dol_get_fiche_head();
//$object->fields['keyfield']['disabled'] = 1;
print '<table class="border centpercent tableforfieldedit">'."\n";
// Common attributes
include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_edit.tpl.php';
// Other attributes
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_edit.tpl.php';
print '</table>';
print dol_get_fiche_end();
print $form->buttonsSaveCancel("Create");
print '</form>';
}
// Part to show record
if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create'))) {
$head = bomPrepareHead($object);
print dol_get_fiche_head($head, 'card', $langs->trans("BillOfMaterials"), -1, 'bom');
$formconfirm = '';
// Confirmation to delete
if ($action == 'delete') {
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteBillOfMaterials'), $langs->trans('ConfirmDeleteBillOfMaterials'), 'confirm_delete', '', 0, 1);
}
// Confirmation to delete line
if ($action == 'deleteline') {
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&lineid='.$lineid, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_deleteline', '', 0, 1);
} }
// Part to edit record // Confirmation of validation
if (($id || $ref) && $action == 'edit') { if ($action == 'validate') {
print load_fiche_titre($langs->trans("BillOfMaterials"), '', 'cubes'); // We check that object has a temporary ref
$ref = substr($object->ref, 1, 4);
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">'; if ($ref == 'PROV') {
print '<input type="hidden" name="token" value="'.newToken().'">'; $object->fetch_product();
print '<input type="hidden" name="action" value="update">'; $numref = $object->getNextNumRef($object->product);
print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
print '<input type="hidden" name="id" value="'.$object->id.'">';
print dol_get_fiche_head();
//$object->fields['keyfield']['disabled'] = 1;
print '<table class="border centpercent tableforfieldedit">'."\n";
// Common attributes
include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_edit.tpl.php';
// Other attributes
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_edit.tpl.php';
print '</table>';
print dol_get_fiche_end();
print $form->buttonsSaveCancel("Create");
print '</form>';
}
// Part to show record
if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create'))) {
$head = bomPrepareHead($object);
print dol_get_fiche_head($head, 'card', $langs->trans("BillOfMaterials"), -1, 'bom');
$formconfirm = '';
// Confirmation to delete
if ($action == 'delete') {
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('DeleteBillOfMaterials'), $langs->trans('ConfirmDeleteBillOfMaterials'), 'confirm_delete', '', 0, 1);
}
// Confirmation to delete line
if ($action == 'deleteline') {
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id . '&lineid=' . $lineid, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_deleteline', '', 0, 1);
}
// Confirmation of validation
if ($action == 'validate') {
// We check that object has a temporary ref
$ref = substr($object->ref, 1, 4);
if ($ref == 'PROV') {
$object->fetch_product();
$numref = $object->getNextNumRef($object->product);
} else {
$numref = $object->ref;
}
$text = $langs->trans('ConfirmValidateBom', $numref);
/*if (isModEnabled('notification'))
{
require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php';
$notify = new Notify($db);
$text .= '<br>';
$text .= $notify->confirmMessage('BOM_VALIDATE', $object->socid, $object);
}*/
$formquestion = array();
if (isModEnabled('bom')) {
$langs->load("mrp");
$forcecombo = 0;
if ($conf->browser->name == 'ie') {
$forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy
}
$formquestion = array(
// 'text' => $langs->trans("ConfirmClone"),
// array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1),
// array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1),
);
}
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('Validate'), $text, 'confirm_validate', $formquestion, 0, 1, 220);
}
// Confirmation of closing
if ($action == 'close') {
$text = $langs->trans('ConfirmCloseBom', $object->ref);
/*if (isModEnabled('notification'))
{
require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php';
$notify = new Notify($db);
$text .= '<br>';
$text .= $notify->confirmMessage('BOM_CLOSE', $object->socid, $object);
}*/
$formquestion = array();
if (isModEnabled('bom')) {
$langs->load("mrp");
$forcecombo = 0;
if ($conf->browser->name == 'ie') {
$forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy
}
$formquestion = array(
// 'text' => $langs->trans("ConfirmClone"),
// array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1),
// array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1),
);
}
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('Close'), $text, 'confirm_close', $formquestion, 0, 1, 220);
}
// Confirmation of reopen
if ($action == 'reopen') {
$text = $langs->trans('ConfirmReopenBom', $object->ref);
/*if (isModEnabled('notification'))
{
require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php';
$notify = new Notify($db);
$text .= '<br>';
$text .= $notify->confirmMessage('BOM_CLOSE', $object->socid, $object);
}*/
$formquestion = array();
if (isModEnabled('bom')) {
$langs->load("mrp");
require_once DOL_DOCUMENT_ROOT . '/product/class/html.formproduct.class.php';
$forcecombo = 0;
if ($conf->browser->name == 'ie') {
$forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy
}
$formquestion = array(
// 'text' => $langs->trans("ConfirmClone"),
// array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1),
// array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1),
);
}
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('ReOpen'), $text, 'confirm_reopen', $formquestion, 0, 1, 220);
}
// Clone confirmation
if ($action == 'clone') {
// Create an array for form
$formquestion = array();
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneBillOfMaterials', $object->ref), 'confirm_clone', $formquestion, 'yes', 1);
}
// Confirmation of action xxxx
if ($action == 'setdraft') {
$text = $langs->trans('ConfirmSetToDraft', $object->ref);
$formquestion = array();
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('SetToDraft'), $text, 'confirm_setdraft', $formquestion, 0, 1, 220);
}
// Call Hook formConfirm
$parameters = array('formConfirm' => $formconfirm, 'lineid' => $lineid);
$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
if (empty($reshook)) {
$formconfirm .= $hookmanager->resPrint;
} elseif ($reshook > 0) {
$formconfirm = $hookmanager->resPrint;
}
// Print form confirm
print $formconfirm;
// Object card
// ------------------------------------------------------------
$linkback = '<a href="' . DOL_URL_ROOT . '/bom/bom_list.php?restore_lastsearch_values=1' . (!empty($socid) ? '&socid=' . $socid : '') . '">' . $langs->trans("BackToList") . '</a>';
$morehtmlref = '<div class="refidno">';
/*
// Ref bis
$morehtmlref.=$form->editfieldkey("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->bom->creer, 'string', '', 0, 1);
$morehtmlref.=$form->editfieldval("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->bom->creer, 'string', '', null, null, '', 1);
// Thirdparty
$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $soc->getNomUrl(1);
// Project
if (isModEnabled('project'))
{
$langs->load("projects");
$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
if ($permissiontoadd)
{
if ($action != 'classify')
$morehtmlref.='<a class="editfielda" href="' . $_SERVER['PHP_SELF'] . '?action=classify&token='.newToken().'&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
if ($action == 'classify') {
//$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
$morehtmlref.='<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
$morehtmlref.='<input type="hidden" name="action" value="classin">';
$morehtmlref.='<input type="hidden" name="token" value="'.newToken().'">';
$morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', 0, 0, 1, 0, 1, 0, 0, '', 1);
$morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
$morehtmlref.='</form>';
} else {
$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
}
} else { } else {
if (! empty($object->fk_project)) { $numref = $object->ref;
$proj = new Project($db); }
$proj->fetch($object->fk_project);
$morehtmlref.=$proj->getNomUrl(); $text = $langs->trans('ConfirmValidateBom', $numref);
} else { /*if (isModEnabled('notification'))
$morehtmlref.=''; {
require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php';
$notify = new Notify($db);
$text .= '<br>';
$text .= $notify->confirmMessage('BOM_VALIDATE', $object->socid, $object);
}*/
$formquestion = array();
if (isModEnabled('bom')) {
$langs->load("mrp");
$forcecombo = 0;
if ($conf->browser->name == 'ie') {
$forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy
} }
$formquestion = array(
// 'text' => $langs->trans("ConfirmClone"),
// array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1),
// array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1),
);
} }
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('Validate'), $text, 'confirm_validate', $formquestion, 0, 1, 220);
}
// Confirmation of closing
if ($action == 'close') {
$text = $langs->trans('ConfirmCloseBom', $object->ref);
/*if (isModEnabled('notification'))
{
require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php';
$notify = new Notify($db);
$text .= '<br>';
$text .= $notify->confirmMessage('BOM_CLOSE', $object->socid, $object);
}*/
$formquestion = array();
if (isModEnabled('bom')) {
$langs->load("mrp");
$forcecombo = 0;
if ($conf->browser->name == 'ie') {
$forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy
}
$formquestion = array(
// 'text' => $langs->trans("ConfirmClone"),
// array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1),
// array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1),
);
} }
*/
$morehtmlref .= '</div>'; $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('Close'), $text, 'confirm_close', $formquestion, 0, 1, 220);
}
// Confirmation of reopen
if ($action == 'reopen') {
$text = $langs->trans('ConfirmReopenBom', $object->ref);
/*if (isModEnabled('notification'))
{
require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php';
$notify = new Notify($db);
$text .= '<br>';
$text .= $notify->confirmMessage('BOM_CLOSE', $object->socid, $object);
}*/
$formquestion = array();
if (isModEnabled('bom')) {
$langs->load("mrp");
require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php';
$forcecombo = 0;
if ($conf->browser->name == 'ie') {
$forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy
}
$formquestion = array(
// 'text' => $langs->trans("ConfirmClone"),
// array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1),
// array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1),
);
}
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ReOpen'), $text, 'confirm_reopen', $formquestion, 0, 1, 220);
}
// Clone confirmation
if ($action == 'clone') {
// Create an array for form
$formquestion = array();
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneBillOfMaterials', $object->ref), 'confirm_clone', $formquestion, 'yes', 1);
}
// Confirmation of action xxxx
if ($action == 'setdraft') {
$text = $langs->trans('ConfirmSetToDraft', $object->ref);
$formquestion = array();
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('SetToDraft'), $text, 'confirm_setdraft', $formquestion, 0, 1, 220);
}
// Call Hook formConfirm
$parameters = array('formConfirm' => $formconfirm, 'lineid' => $lineid);
$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
if (empty($reshook)) {
$formconfirm .= $hookmanager->resPrint;
} elseif ($reshook > 0) {
$formconfirm = $hookmanager->resPrint;
}
// Print form confirm
print $formconfirm;
dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); // Object card
// ------------------------------------------------------------
$linkback = '<a href="'.DOL_URL_ROOT.'/bom/bom_list.php?restore_lastsearch_values=1'.(!empty($socid) ? '&socid='.$socid : '').'">'.$langs->trans("BackToList").'</a>';
$morehtmlref = '<div class="refidno">';
/*
// Ref bis
$morehtmlref.=$form->editfieldkey("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->bom->creer, 'string', '', 0, 1);
$morehtmlref.=$form->editfieldval("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->bom->creer, 'string', '', null, null, '', 1);
// Thirdparty
$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $soc->getNomUrl(1);
// Project
if (isModEnabled('project'))
{
$langs->load("projects");
$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
if ($permissiontoadd)
{
if ($action != 'classify')
$morehtmlref.='<a class="editfielda" href="' . $_SERVER['PHP_SELF'] . '?action=classify&token='.newToken().'&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
if ($action == 'classify') {
//$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
$morehtmlref.='<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
$morehtmlref.='<input type="hidden" name="action" value="classin">';
$morehtmlref.='<input type="hidden" name="token" value="'.newToken().'">';
$morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', 0, 0, 1, 0, 1, 0, 0, '', 1);
$morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
$morehtmlref.='</form>';
} else {
$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
}
} else {
if (! empty($object->fk_project)) {
$proj = new Project($db);
$proj->fetch($object->fk_project);
$morehtmlref.=$proj->getNomUrl();
} else {
$morehtmlref.='';
}
}
}
*/
$morehtmlref .= '</div>';
print '<div class="fichecenter">'; dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
print '<div class="fichehalfleft">';
print '<div class="underbanner clearboth"></div>';
print '<table class="border centpercent tableforfield">' . "\n";
// Common attributes
$keyforbreak = 'duration'; print '<div class="fichecenter">';
include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_view.tpl.php'; print '<div class="fichehalfleft">';
print '<div class="underbanner clearboth"></div>';
print '<table class="border centpercent tableforfield">'."\n";
// Common attributes
$keyforbreak = 'duration';
include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_view.tpl.php';
$object->calculateCosts();
print '<tr><td>'.$form->textwithpicto($langs->trans("TotalCost"), $langs->trans("BOMTotalCost")).'</td><td><span class="amount">'.price($object->total_cost).'</span></td></tr>';
print '<tr><td>'.$langs->trans("UnitCost").'</td><td>'.price($object->unit_cost).'</td></tr>';
// Other attributes
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php';
print '</table>';
print '</div>';
print '</div>';
print '<div class="clearboth"></div>';
print dol_get_fiche_end();
/*
* Lines
*/
if (!empty($object->table_element_line)) {
// Products
$res = $object->fetchLinesbytypeproduct(0);
$object->calculateCosts(); $object->calculateCosts();
print '<tr><td>' . $form->textwithpicto($langs->trans("TotalCost"), $langs->trans("BOMTotalCost")) . '</td><td><span class="amount">' . price($object->total_cost) . '</span></td></tr>';
print '<tr><td>' . $langs->trans("UnitCost") . '</td><td>' . price($object->unit_cost) . '</td></tr>';
// Other attributes print ($res == 0 && $object->status >= $object::STATUS_VALIDATED) ? '' : load_fiche_titre($langs->trans('BOMProductsList'), '', 'product');
include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php';
print '</table>'; print ' <form name="addproduct" id="addproduct" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . (($action != 'editline') ? '' : '') . '" method="POST">
print '</div>';
print '</div>';
print '<div class="clearboth"></div>';
print dol_get_fiche_end();
/*
* Lines
*/
if (!empty($object->table_element_line)) {
//Products
$res = $object->fetchLinesbytypeproduct(0);
$object->calculateCosts();
print ($res == 0 && $object->status >= $object::STATUS_VALIDATED) ? '' : load_fiche_titre($langs->trans('BOMProductsList'), '', 'product');
print ' <form name="addproduct" id="addproduct" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . (($action != 'editline') ? '' : '') . '" method="POST">
<input type="hidden" name="token" value="' . newToken() . '"> <input type="hidden" name="token" value="' . newToken() . '">
<input type="hidden" name="action" value="' . (($action != 'editline') ? 'addline' : 'updateline') . '"> <input type="hidden" name="action" value="' . (($action != 'editline') ? 'addline' : 'updateline') . '">
<input type="hidden" name="mode" value=""> <input type="hidden" name="mode" value="">
@ -578,78 +579,30 @@ if (empty($reshook)) {
<input type="hidden" name="id" value="' . $object->id . '"> <input type="hidden" name="id" value="' . $object->id . '">
'; ';
if (!empty($conf->use_javascript_ajax) && $object->status == 0) { if (!empty($conf->use_javascript_ajax) && $object->status == 0) {
include DOL_DOCUMENT_ROOT . '/core/tpl/ajaxrow.tpl.php'; include DOL_DOCUMENT_ROOT.'/core/tpl/ajaxrow.tpl.php';
} }
print '<div class="div-table-responsive-no-min">'; print '<div class="div-table-responsive-no-min">';
if (!empty($object->lines) || ($object->status == $object::STATUS_DRAFT && $permissiontoadd && $action != 'selectlines' && $action != 'editline')) { if (!empty($object->lines) || ($object->status == $object::STATUS_DRAFT && $permissiontoadd && $action != 'selectlines' && $action != 'editline')) {
print '<table id="tablelines" class="noborder noshadow" width="100%">'; print '<table id="tablelines" class="noborder noshadow centpercent">';
} }
if (!empty($object->lines)) { if (!empty($object->lines)) {
$object->printObjectLines($action, $mysoc, null, GETPOST('lineid', 'int'), 1, '/bom/tpl'); $object->printObjectLines($action, $mysoc, null, GETPOST('lineid', 'int'), 1, '/bom/tpl');
} }
// Form to add new line // Form to add new line
if ($object->status == 0 && $permissiontoadd && $action != 'selectlines') { if ($object->status == 0 && $permissiontoadd && $action != 'selectlines') {
if ($action != 'editline') { if ($action != 'editline') {
// Add products/services form // Add products/services form
$parameters = array(); $parameters = array();
$reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $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'); if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
if (empty($reshook)) if (empty($reshook))
$object->formAddObjectLine(1, $mysoc, null, '/bom/tpl'); $object->formAddObjectLine(1, $mysoc, null, '/bom/tpl');
}
}
if (!empty($object->lines) || ($object->status == $object::STATUS_DRAFT && $permissiontoadd && $action != 'selectlines' && $action != 'editline')) {
print '</table>';
}
print '</div>';
print "</form>\n";
//Services
$filtertype = 1;
$res = $object->fetchLinesbytypeproduct(1);
$object->calculateCosts();
print ($res == 0 && $object->status >= $object::STATUS_VALIDATED) ? '' : load_fiche_titre($langs->trans('BOMServicesList'), '', 'service');
print ' <form name="addservice" id="addservice" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . (($action != 'editline') ? '' : '') . '" method="POST">
<input type="hidden" name="token" value="' . newToken() . '">
<input type="hidden" name="action" value="' . (($action != 'editline') ? 'addline' : 'updateline') . '">
<input type="hidden" name="mode" value="">
<input type="hidden" name="page_y" value=""> <input type="hidden" name="id" value="' . $object->id . '">
';
if (!empty($conf->use_javascript_ajax) && $object->status == 0) {
$tagidfortablednd = 'tablelinesservice';
include DOL_DOCUMENT_ROOT . '/core/tpl/ajaxrow.tpl.php';
}
print '<div class="div-table-responsive-no-min">';
if (!empty($object->lines) || ($object->status == $object::STATUS_DRAFT && $permissiontoadd && $action != 'selectlines' && $action != 'editline')) {
print '<table id="tablelinesservice" class="noborder noshadow" width="100%">';
}
if (!empty($object->lines)) {
$object->printObjectLines($action, $mysoc, null, GETPOST('lineid', 'int'), 1, '/bom/tpl');
}
// Form to add new line
if ($object->status == 0 && $permissiontoadd && $action != 'selectlines') {
if ($action != 'editline') {
// Add services form
$parameters = array();
$reshook = $hookmanager->executeHooks('formAddObjectServiceLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
if (empty($reshook))
$object->formAddObjectLine(1, $mysoc, null, '/bom/tpl');
}
} }
} }
@ -660,149 +613,199 @@ if (empty($reshook)) {
print "</form>\n"; print "</form>\n";
mrpCollapseBomManagement(); // Services
$filtertype = 1;
$res = $object->fetchLinesbytypeproduct(1);
$object->calculateCosts();
$res = $object->fetchLines(); print ($res == 0 && $object->status >= $object::STATUS_VALIDATED) ? '' : load_fiche_titre($langs->trans('BOMServicesList'), '', 'service');
// Buttons for actions print ' <form name="addservice" id="addservice" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . (($action != 'editline') ? '' : '') . '" method="POST">
<input type="hidden" name="token" value="' . newToken() . '">
<input type="hidden" name="action" value="' . (($action != 'editline') ? 'addline' : 'updateline') . '">
<input type="hidden" name="mode" value="">
<input type="hidden" name="page_y" value=""> <input type="hidden" name="id" value="' . $object->id . '">
';
if ($action != 'presend' && $action != 'editline') { if (!empty($conf->use_javascript_ajax) && $object->status == 0) {
print '<div class="tabsAction">' . "\n"; $tagidfortablednd = 'tablelinesservice';
$parameters = array(); include DOL_DOCUMENT_ROOT . '/core/tpl/ajaxrow.tpl.php';
$reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook }
if ($reshook < 0) {
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); print '<div class="div-table-responsive-no-min">';
if (!empty($object->lines) || ($object->status == $object::STATUS_DRAFT && $permissiontoadd && $action != 'selectlines' && $action != 'editline')) {
print '<table id="tablelinesservice" class="noborder noshadow centpercent">';
}
if (!empty($object->lines)) {
$object->printObjectLines($action, $mysoc, null, GETPOST('lineid', 'int'), 1, '/bom/tpl');
}
// Form to add new line
if ($object->status == 0 && $permissiontoadd && $action != 'selectlines') {
if ($action != 'editline') {
// Add services form
$parameters = array();
$reshook = $hookmanager->executeHooks('formAddObjectServiceLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
if (empty($reshook))
$object->formAddObjectLine(1, $mysoc, null, '/bom/tpl');
} }
}
}
if (empty($reshook)) { if (!empty($object->lines) || ($object->status == $object::STATUS_DRAFT && $permissiontoadd && $action != 'selectlines' && $action != 'editline')) {
// Send print '</table>';
//if (empty($user->socid)) { }
// print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=presend&mode=init#formmailbeforetitle">' . $langs->trans('SendMail') . '</a>'."\n"; print '</div>';
print "</form>\n";
mrpCollapseBomManagement();
$res = $object->fetchLines();
// Buttons for actions
if ($action != 'presend' && $action != 'editline') {
print '<div class="tabsAction">'."\n";
$parameters = array();
$reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
if ($reshook < 0) {
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
}
if (empty($reshook)) {
// Send
//if (empty($user->socid)) {
// print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=presend&mode=init#formmailbeforetitle">' . $langs->trans('SendMail') . '</a>'."\n";
//} //}
// Back to draft // Back to draft
if ($object->status == $object::STATUS_VALIDATED) { if ($object->status == $object::STATUS_VALIDATED) {
if ($permissiontoadd) { if ($permissiontoadd) {
print '<a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=setdraft&token=' . newToken() . '">' . $langs->trans("SetToDraft") . '</a>' . "\n"; print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&action=setdraft&token='.newToken().'">'.$langs->trans("SetToDraft").'</a>'."\n";
}
} }
}
// Modify // Modify
if ($object->status == $object::STATUS_DRAFT) { if ($object->status == $object::STATUS_DRAFT) {
if ($permissiontoadd) { if ($permissiontoadd) {
print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=edit&token=' . newToken() . '">' . $langs->trans("Modify") . '</a>' . "\n"; print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=edit&token='.newToken().'">'.$langs->trans("Modify").'</a>'."\n";
} else { } else {
print '<a class="butActionRefused classfortooltip" href="#" title="' . dol_escape_htmltag($langs->trans("NotEnoughPermissions")) . '">' . $langs->trans('Modify') . '</a>' . "\n"; print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans('Modify').'</a>'."\n";
}
} }
}
// Validate // Validate
if ($object->status == $object::STATUS_DRAFT) { if ($object->status == $object::STATUS_DRAFT) {
if ($permissiontoadd) { if ($permissiontoadd) {
if (is_array($object->lines) && count($object->lines) > 0) { if (is_array($object->lines) && count($object->lines) > 0) {
print '<a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&amp;action=validate&amp;token=' . newToken() . '">' . $langs->trans("Validate") . '</a>' . "\n"; print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&amp;action=validate&amp;token='.newToken().'">'.$langs->trans("Validate").'</a>'."\n";
} else { } else {
$langs->load("errors"); $langs->load("errors");
print '<a class="butActionRefused" href="" title="' . $langs->trans("ErrorAddAtLeastOneLineFirst") . '">' . $langs->trans("Validate") . '</a>' . "\n"; print '<a class="butActionRefused" href="" title="'.$langs->trans("ErrorAddAtLeastOneLineFirst").'">'.$langs->trans("Validate").'</a>'."\n";
}
} }
} }
}
// Re-open // Re-open
if ($permissiontoadd && $object->status == $object::STATUS_CANCELED) { if ($permissiontoadd && $object->status == $object::STATUS_CANCELED) {
print '<a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=reopen&token=' . newToken() . '">' . $langs->trans("ReOpen") . '</a>' . "\n"; print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&action=reopen&token='.newToken().'">'.$langs->trans("ReOpen").'</a>'."\n";
} }
// Create MO // Create MO
if (isModEnabled('mrp')) { if (isModEnabled('mrp')) {
if ($object->status == $object::STATUS_VALIDATED && !empty($user->rights->mrp->write)) { if ($object->status == $object::STATUS_VALIDATED && !empty($user->rights->mrp->write)) {
print '<a class="butAction" href="' . DOL_URL_ROOT . '/mrp/mo_card.php?action=create&fk_bom=' . $object->id . '&token=' . newToken() . '&backtopageforcancel=' . urlencode($_SERVER["PHP_SELF"] . '?id=' . $object->id) . '">' . $langs->trans("CreateMO") . '</a>' . "\n"; print '<a class="butAction" href="'.DOL_URL_ROOT.'/mrp/mo_card.php?action=create&fk_bom='.$object->id.'&token='.newToken().'&backtopageforcancel='.urlencode($_SERVER["PHP_SELF"].'?id='.$object->id).'">'.$langs->trans("CreateMO").'</a>'."\n";
}
} }
}
// Clone // Clone
if ($permissiontoadd) { if ($permissiontoadd) {
print dolGetButtonAction($langs->trans("ToClone"), '', 'default', $_SERVER['PHP_SELF'] . '?id=' . $object->id . (!empty($object->socid) ? '&socid=' . $object->socid : "") . '&action=clone&object=bom', 'clone', $permissiontoadd); print dolGetButtonAction($langs->trans("ToClone"), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.(!empty($object->socid) ? '&socid='.$object->socid : "").'&action=clone&object=bom', 'clone', $permissiontoadd);
} }
// Close / Cancel // Close / Cancel
if ($permissiontoadd && $object->status == $object::STATUS_VALIDATED) { if ($permissiontoadd && $object->status == $object::STATUS_VALIDATED) {
print '<a class="butActionDelete" href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=close&token=' . newToken() . '">' . $langs->trans("Disable") . '</a>' . "\n"; print '<a class="butActionDelete" href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&action=close&token='.newToken().'">'.$langs->trans("Disable").'</a>'."\n";
} }
/* /*
if ($user->rights->bom->write) if ($user->rights->bom->write)
{ {
if ($object->status == 1) if ($object->status == 1)
{ {
print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=disable&token='.newToken().'">'.$langs->trans("Disable").'</a>'."\n"; print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=disable&token='.newToken().'">'.$langs->trans("Disable").'</a>'."\n";
} }
else else
{ {
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=enable&token='.newToken().'">'.$langs->trans("Enable").'</a>'."\n"; print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=enable&token='.newToken().'">'.$langs->trans("Enable").'</a>'."\n";
} }
} }
*/ */
// Delete // Delete
print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=delete&token=' . newToken(), 'delete', $permissiontodelete); print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', $permissiontodelete);
}
print '</div>' . "\n";
} }
print '</div>'."\n";
// Select mail models is same action as presend
if (GETPOST('modelselected')) {
$action = 'presend';
}
if ($action != 'presend') {
print '<div class="fichecenter"><div class="fichehalfleft">';
print '<a name="builddoc"></a>'; // ancre
// Documents
$objref = dol_sanitizeFileName($object->ref);
$relativepath = $objref . '/' . $objref . '.pdf';
$filedir = $conf->bom->dir_output . '/' . $objref;
$urlsource = $_SERVER["PHP_SELF"] . "?id=" . $object->id;
$genallowed = $user->rights->bom->read; // If you can read, you can build the PDF to read content
$delallowed = $user->rights->bom->write; // If you can create/edit, you can remove a file on card
print $formfile->showdocuments('bom', $objref, $filedir, $urlsource, $genallowed, $delallowed, $object->model_pdf, 1, 0, 0, 28, 0, '', '', '', $langs->defaultlang);
// Show links to link elements
$linktoelem = $form->showLinkToObjectBlock($object, null, array('bom'));
$somethingshown = $form->showLinkedObjectBlock($object, $linktoelem);
print '</div><div class="fichehalfright">';
$MAXEVENT = 10;
$morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT . '/bom/bom_agenda.php?id=' . $object->id);
// List of actions on element
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php';
$formactions = new FormActions($db);
$somethingshown = $formactions->showactions($object, $object->element, 0, 1, '', $MAXEVENT, '', $morehtmlcenter);
print '</div></div>';
}
//Select mail models is same action as presend
if (GETPOST('modelselected')) {
$action = 'presend';
}
// Presend form
$modelmail = 'bom';
$defaulttopic = 'InformationMessage';
$diroutput = $conf->bom->dir_output;
$trackid = 'bom' . $object->id;
include DOL_DOCUMENT_ROOT . '/core/tpl/card_presend.tpl.php';
} }
// Select mail models is same action as presend
if (GETPOST('modelselected')) {
$action = 'presend';
}
if ($action != 'presend') {
print '<div class="fichecenter"><div class="fichehalfleft">';
print '<a name="builddoc"></a>'; // ancre
// Documents
$objref = dol_sanitizeFileName($object->ref);
$relativepath = $objref.'/'.$objref.'.pdf';
$filedir = $conf->bom->dir_output.'/'.$objref;
$urlsource = $_SERVER["PHP_SELF"]."?id=".$object->id;
$genallowed = $user->rights->bom->read; // If you can read, you can build the PDF to read content
$delallowed = $user->rights->bom->write; // If you can create/edit, you can remove a file on card
print $formfile->showdocuments('bom', $objref, $filedir, $urlsource, $genallowed, $delallowed, $object->model_pdf, 1, 0, 0, 28, 0, '', '', '', $langs->defaultlang);
// Show links to link elements
$linktoelem = $form->showLinkToObjectBlock($object, null, array('bom'));
$somethingshown = $form->showLinkedObjectBlock($object, $linktoelem);
print '</div><div class="fichehalfright">';
$MAXEVENT = 10;
$morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/bom/bom_agenda.php?id='.$object->id);
// List of actions on element
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php';
$formactions = new FormActions($db);
$somethingshown = $formactions->showactions($object, $object->element, 0, 1, '', $MAXEVENT, '', $morehtmlcenter);
print '</div></div>';
}
//Select mail models is same action as presend
if (GETPOST('modelselected')) {
$action = 'presend';
}
// Presend form
$modelmail = 'bom';
$defaulttopic = 'InformationMessage';
$diroutput = $conf->bom->dir_output;
$trackid = 'bom'.$object->id;
include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php';
} }
// End of page // End of page
llxFooter(); llxFooter();
$db->close(); $db->close();

View File

@ -187,8 +187,8 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
print dol_get_fiche_end(); print dol_get_fiche_end();
$viewlink = dolGetButtonTitle($langs->trans('GroupByProduct'), '', 'fa fa-bars imgforviewmode', $_SERVER['PHP_SELF'].'?id='.$object->id.'&token='.newToken(), '', 1, array('morecss' => 'reposition '.($action !== 'treeview' ? 'btnTitleSelected':''))); $viewlink = dolGetButtonTitle($langs->trans('GroupByX', $langs->transnoentitiesnoconv("Products")), '', 'fa fa-bars imgforviewmode', $_SERVER['PHP_SELF'].'?id='.$object->id.'&token='.newToken(), '', 1, array('morecss' => 'reposition '.($action !== 'treeview' ? 'btnTitleSelected':'')));
$viewlink .= dolGetButtonTitle($langs->trans('TreeStructure'), '', 'fa fa-stream imgforviewmode', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=treeview&token='.newToken(), '', 1, array('morecss' => 'reposition marginleftonly '.($action == 'treeview' ? 'btnTitleSelected':''))); $viewlink .= dolGetButtonTitle($langs->trans('TreeView'), '', 'fa fa-stream imgforviewmode', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=treeview&token='.newToken(), '', 1, array('morecss' => 'reposition marginleftonly '.($action == 'treeview' ? 'btnTitleSelected':'')));
print load_fiche_titre($langs->trans("BOMNetNeeds"), $viewlink, ''); print load_fiche_titre($langs->trans("BOMNetNeeds"), $viewlink, '');

View File

@ -102,9 +102,9 @@ class BOM extends CommonObject
'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>1, 'visible'=>1, 'position'=>30, 'notnull'=>1, 'searchall'=>1, 'showoncombobox'=>'2', 'autofocusoncreate'=>1, 'css'=>'minwidth300 maxwidth400', 'csslist'=>'tdoverflowmax200'), 'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>1, 'visible'=>1, 'position'=>30, 'notnull'=>1, 'searchall'=>1, 'showoncombobox'=>'2', 'autofocusoncreate'=>1, 'css'=>'minwidth300 maxwidth400', 'csslist'=>'tdoverflowmax200'),
'bomtype' => array('type'=>'integer', 'label'=>'Type', 'enabled'=>1, 'visible'=>1, 'position'=>33, 'notnull'=>1, 'default'=>'0', 'arrayofkeyval'=>array(0=>'Manufacturing', 1=>'Disassemble'), 'css'=>'minwidth175', 'csslist'=>'minwidth175 center'), 'bomtype' => array('type'=>'integer', 'label'=>'Type', 'enabled'=>1, 'visible'=>1, 'position'=>33, 'notnull'=>1, 'default'=>'0', 'arrayofkeyval'=>array(0=>'Manufacturing', 1=>'Disassemble'), 'css'=>'minwidth175', 'csslist'=>'minwidth175 center'),
//'bomtype' => array('type'=>'integer', 'label'=>'Type', 'enabled'=>1, 'visible'=>-1, 'position'=>32, 'notnull'=>1, 'default'=>'0', 'arrayofkeyval'=>array(0=>'Manufacturing')), //'bomtype' => array('type'=>'integer', 'label'=>'Type', 'enabled'=>1, 'visible'=>-1, 'position'=>32, 'notnull'=>1, 'default'=>'0', 'arrayofkeyval'=>array(0=>'Manufacturing')),
'fk_product' => array('type'=>'integer:Product:product/class/product.class.php:1:(finished IS NULL or finished <> 0)', 'label'=>'Product', 'picto'=>'product', 'enabled'=>1, 'visible'=>1, 'position'=>35, 'notnull'=>1, 'index'=>1, 'help'=>'ProductBOMHelp', 'css'=>'maxwidth500', 'csslist'=>'tdoverflowmax100'), 'fk_product' => array('type'=>'integer:Product:product/class/product.class.php:1:((finished:is:null) or (finished:!=:0))', 'label'=>'Product', 'picto'=>'product', 'enabled'=>1, 'visible'=>1, 'position'=>35, 'notnull'=>1, 'index'=>1, 'help'=>'ProductBOMHelp', 'css'=>'maxwidth500', 'csslist'=>'tdoverflowmax100'),
'description' => array('type'=>'text', 'label'=>'Description', 'enabled'=>1, 'visible'=>-1, 'position'=>60, 'notnull'=>-1,), 'description' => array('type'=>'text', 'label'=>'Description', 'enabled'=>1, 'visible'=>-1, 'position'=>60, 'notnull'=>-1,),
'qty' => array('type'=>'real', 'label'=>'Quantity', 'enabled'=>1, 'visible'=>1, 'default'=>1, 'position'=>55, 'notnull'=>1, 'isameasure'=>'1', 'css'=>'maxwidth75imp'), 'qty' => array('type'=>'real', 'label'=>'Quantity', 'enabled'=>1, 'visible'=>1, 'default'=>1, 'position'=>55, 'notnull'=>1, 'isameasure'=>'1', 'css'=>'maxwidth50imp right'),
//'efficiency' => array('type'=>'real', 'label'=>'ManufacturingEfficiency', 'enabled'=>1, 'visible'=>-1, 'default'=>1, 'position'=>100, 'notnull'=>0, 'css'=>'maxwidth50imp', 'help'=>'ValueOfMeansLossForProductProduced'), //'efficiency' => array('type'=>'real', 'label'=>'ManufacturingEfficiency', 'enabled'=>1, 'visible'=>-1, 'default'=>1, 'position'=>100, 'notnull'=>0, 'css'=>'maxwidth50imp', 'help'=>'ValueOfMeansLossForProductProduced'),
'duration' => array('type'=>'duration', 'label'=>'EstimatedDuration', 'enabled'=>1, 'visible'=>-1, 'position'=>101, 'notnull'=>-1, 'css'=>'maxwidth50imp', 'help'=>'EstimatedDurationDesc'), 'duration' => array('type'=>'duration', 'label'=>'EstimatedDuration', 'enabled'=>1, 'visible'=>-1, 'position'=>101, 'notnull'=>-1, 'css'=>'maxwidth50imp', 'help'=>'EstimatedDurationDesc'),
'fk_warehouse' => array('type'=>'integer:Entrepot:product/stock/class/entrepot.class.php:0', 'label'=>'WarehouseForProduction', 'picto'=>'stock', 'enabled'=>1, 'visible'=>-1, 'position'=>102, 'css'=>'maxwidth500', 'csslist'=>'tdoverflowmax100'), 'fk_warehouse' => array('type'=>'integer:Entrepot:product/stock/class/entrepot.class.php:0', 'label'=>'WarehouseForProduction', 'picto'=>'stock', 'enabled'=>1, 'visible'=>-1, 'position'=>102, 'css'=>'maxwidth500', 'csslist'=>'tdoverflowmax100'),

View File

@ -107,7 +107,7 @@ print '<td class="bordertop nobottom linecoldescription minwidth500imp">';
if (isModEnabled("product") || isModEnabled("service")) { if (isModEnabled("product") || isModEnabled("service")) {
if ($filtertype == 1) { if ($filtertype == 1) {
print $langs->trans("Service"); print $langs->trans("Service");
} elseif (!empty($conf->global->BOM_SUB_BOM)) { } else {
print $langs->trans("Product"); print $langs->trans("Product");
} }
echo '<span class="prod_entry_mode_predef">'; echo '<span class="prod_entry_mode_predef">';

View File

@ -948,26 +948,6 @@ while ($currentdaytoshow < $lastdaytoshow) {
$usernames[] = $tmpuser; $usernames[] = $tmpuser;
} }
/*
if ($filtert > 0)
{
$tmpuser = new User($db);
$tmpuser->fetch($filtert);
$usernames[] = $tmpuser;
}
else if ($usergroup)
{
$tmpgroup = new UserGroup($db);
$tmpgroup->fetch($usergroup);
$usernames = $tmpgroup->listUsersForGroup();
}
else
{
$tmpgroup = new UserGroup($db);
//$tmpgroup->fetch($usergroup); No fetch, we want all users for all groups
$usernames = $tmpgroup->listUsersForGroup();
}*/
// Load array of colors by type // Load array of colors by type
$colorsbytype = array(); $colorsbytype = array();
$labelbytype = array(); $labelbytype = array();

View File

@ -72,6 +72,10 @@ if (is_array($remains)) {
unset($remains[$key]); unset($remains[$key]);
} }
} }
} elseif ($remains) {
$remains = array(price2num($remains));
} else {
$remains = array();
} }
// Treatment // Treatment

View File

@ -51,7 +51,7 @@ if (isModEnabled('accounting')) {
} }
// Load translation files required by the page // Load translation files required by the page
$langs->loadLangs(array("banks", "bills", "categories", "companies", "compta")); $langs->loadLangs(array("banks", "bills", "categories", "companies", "compta", "withdrawals"));
$action = GETPOST('action', 'aZ09'); $action = GETPOST('action', 'aZ09');
$cancel = GETPOST('cancel', 'alpha'); $cancel = GETPOST('cancel', 'alpha');
@ -140,6 +140,9 @@ if (empty($reshook)) {
$object->proprio = trim(GETPOST("proprio", 'alphanohtml')); $object->proprio = trim(GETPOST("proprio", 'alphanohtml'));
$object->owner_address = trim(GETPOST("owner_address", 'alphanohtml')); $object->owner_address = trim(GETPOST("owner_address", 'alphanohtml'));
$object->owner_zip = trim(GETPOST("owner_zip", 'alphanohtml'));
$object->owner_town = trim(GETPOST("owner_town", 'alphanohtml'));
$object->owner_country_id = GETPOST("owner_country_id", 'int');
$object->ics = trim(GETPOST("ics", 'alpha')); $object->ics = trim(GETPOST("ics", 'alpha'));
$object->ics_transfer = trim(GETPOST("ics_transfer", 'alpha')); $object->ics_transfer = trim(GETPOST("ics_transfer", 'alpha'));
@ -241,6 +244,9 @@ if (empty($reshook)) {
$object->proprio = trim(GETPOST("proprio", 'alphanohtml')); $object->proprio = trim(GETPOST("proprio", 'alphanohtml'));
$object->owner_address = trim(GETPOST("owner_address", 'alphanohtml')); $object->owner_address = trim(GETPOST("owner_address", 'alphanohtml'));
$object->owner_zip = trim(GETPOST("owner_zip", 'alphanohtml'));
$object->owner_town = trim(GETPOST("owner_town", 'alphanohtml'));
$object->owner_country_id = GETPOST("owner_country_id", 'int');
$object->ics = trim(GETPOST("ics", 'alpha')); $object->ics = trim(GETPOST("ics", 'alpha'));
$object->ics_transfer = trim(GETPOST("ics_transfer", 'alpha')); $object->ics_transfer = trim(GETPOST("ics_transfer", 'alpha'));
@ -422,7 +428,8 @@ if ($action == 'create') {
print '<tr><td class="fieldrequired">'.$langs->trans("BankAccountCountry").'</td>'; print '<tr><td class="fieldrequired">'.$langs->trans("BankAccountCountry").'</td>';
print '<td>'; print '<td>';
print img_picto('', 'country', 'class="pictofixedwidth"').$form->select_country($selectedcode, 'account_country_id'); print img_picto('', 'country', 'class="pictofixedwidth"');
print $form->select_country($selectedcode, 'account_country_id');
if ($user->admin) { if ($user->admin) {
print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
} }
@ -438,6 +445,14 @@ if ($action == 'create') {
} }
print '</td></tr>'; print '</td></tr>';
$type = (GETPOSTISSET("type") ? GETPOST('type', 'int') : Account::TYPE_CURRENT); // add default value
if ($type == Account::TYPE_SAVINGS || $type == Account::TYPE_CURRENT) {
print '<tr><td>'.$langs->trans("BankAccountDomiciliation").'</td><td>';
print '<textarea class="flat quatrevingtpercent" name="domiciliation" rows="'.ROWS_2.'">';
print (GETPOSTISSET('domiciliation') ?GETPOST('domiciliation') : $object->domiciliation);
print "</textarea></td></tr>";
}
// Web // Web
print '<tr><td>'.$langs->trans("Web").'</td>'; print '<tr><td>'.$langs->trans("Web").'</td>';
print '<td>'; print '<td>';
@ -552,18 +567,15 @@ if ($action == 'create') {
print '<td><input maxlength="11" type="text" class="flat minwidth150" name="bic" value="'.(GETPOSTISSET('bic') ?GETPOST('bic', 'alpha') : $object->bic).'"></td></tr>'; print '<td><input maxlength="11" type="text" class="flat minwidth150" name="bic" value="'.(GETPOSTISSET('bic') ?GETPOST('bic', 'alpha') : $object->bic).'"></td></tr>';
if (isModEnabled('paymentbybanktransfer')) { if (isModEnabled('paymentbybanktransfer')) {
print '<tr><td>'.$langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation").'</td>'; print '<tr><td>'.$form->textwithpicto($langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation"), $langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp")).'</td>';
print '<td><input type="checkbox" class="flat minwidth150" name="pti_in_ctti"'. (empty(GETPOST('pti_in_ctti')) ? '' : ' checked ') . '>&nbsp;'; print '<td><input type="checkbox" class="flat" name="pti_in_ctti"'. (empty(GETPOST('pti_in_ctti')) ? '' : ' checked ') . '>';
print img_picto($langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp"), 'info');
print '</td></tr>'; print '</td></tr>';
} }
print '</table>';
print '<hr>';
print '<tr><td>'.$langs->trans("BankAccountDomiciliation").'</td><td>'; print '<table class="border centpercent">';
print '<textarea class="flat quatrevingtpercent" name="domiciliation" rows="'.ROWS_2.'">'; print '<tr><td class="titlefieldcreate">'.$langs->trans("BankAccountOwner").'</td>';
print (GETPOSTISSET('domiciliation') ?GETPOST('domiciliation') : $object->domiciliation);
print "</textarea></td></tr>";
print '<tr><td>'.$langs->trans("BankAccountOwner").'</td>';
print '<td><input type="text" class="flat minwidth300" name="proprio" value="'.(GETPOST('proprio') ?GETPOST('proprio', 'alpha') : $object->proprio).'">'; print '<td><input type="text" class="flat minwidth300" name="proprio" value="'.(GETPOST('proprio') ?GETPOST('proprio', 'alpha') : $object->proprio).'">';
print '</td></tr>'; print '</td></tr>';
@ -572,8 +584,22 @@ if ($action == 'create') {
print (GETPOST('owner_address') ?GETPOST('owner_address', 'alpha') : $object->owner_address); print (GETPOST('owner_address') ?GETPOST('owner_address', 'alpha') : $object->owner_address);
print "</textarea></td></tr>"; print "</textarea></td></tr>";
print '<tr><td class="tdtop">'.$langs->trans("BankAccountOwnerZip").'</td>';
print '<td><input type="text" class="flat maxwidth100" name="owner_zip" value="'.(GETPOST('owner_zip') ?GETPOST('owner_zip', 'alpha') : $object->owner_zip).'">';
print '</td></tr>';
print '<tr><td class="tdtop">'.$langs->trans("BankAccountOwnerTown").'</td>';
print '<td><input type="text" class="flat maxwidth200" name="owner_town" value="'.(GETPOST('owner_town') ?GETPOST('owner_town', 'alpha') : $object->owner_town).'">';
print '</td></tr>';
print '<tr><td class="tdtop">'.$langs->trans("BankAccountOwnerCountry").'</td>';
print '<td>';
print img_picto('', 'country', 'class="pictofixedwidth"');
print $form->select_country(GETPOST('owner_country_id') ?GETPOST('owner_country_id', 'alpha') : $object->owner_country_id, 'owner_country_id');
print '</td></tr>';
print '</table>'; print '</table>';
print '<br>'; print '<hr>';
} }
print '<table class="border centpercent">'; print '<table class="border centpercent">';
@ -722,8 +748,6 @@ if ($action == 'create') {
print '</table>'; print '</table>';
if ($object->type == Account::TYPE_SAVINGS || $object->type == Account::TYPE_CURRENT) { if ($object->type == Account::TYPE_SAVINGS || $object->type == Account::TYPE_CURRENT) {
//print '<div class="underbanner clearboth"></div>';
print '<table class="border tableforfield centpercent">'; print '<table class="border tableforfield centpercent">';
print '<tr class="liste_titre"><td class="titlefield">'.$langs->trans("BankName").'</td>'; print '<tr class="liste_titre"><td class="titlefield">'.$langs->trans("BankName").'</td>';
@ -787,16 +811,11 @@ if ($action == 'create') {
print '<td>'.$object->ics_transfer.'</td>'; print '<td>'.$object->ics_transfer.'</td>';
print '</tr>'; print '</tr>';
print '<tr><td>'.$langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation").'</td><td>'; print '<tr><td>'.$form->textwithpicto($langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation"), $langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp")).'</td><td>';
print (empty($object->pti_in_ctti) ? $langs->trans("No") : $langs->trans("Yes")) . '&nbsp;'; print (empty($object->pti_in_ctti) ? $langs->trans("No") : $langs->trans("Yes"));
print img_picto($langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp"), 'info');
print "</td></tr>\n"; print "</td></tr>\n";
} }
print '<tr><td>'.$langs->trans("BankAccountDomiciliation").'</td><td>';
print nl2br($object->domiciliation);
print "</td></tr>\n";
print '<tr><td>'.$langs->trans("BankAccountOwner").'</td><td>'; print '<tr><td>'.$langs->trans("BankAccountOwner").'</td><td>';
print $object->proprio; print $object->proprio;
print "</td></tr>\n"; print "</td></tr>\n";
@ -805,6 +824,22 @@ if ($action == 'create') {
print nl2br($object->owner_address); print nl2br($object->owner_address);
print "</td></tr>\n"; print "</td></tr>\n";
print '<tr><td class="tdtop">'.$langs->trans("BankAccountOwnerZip").'</td>';
print '<td>'.$object->owner_zip;
print '</td></tr>';
print '<tr><td class="tdtop">'.$langs->trans("BankAccountOwnerTown").'</td>';
print '<td>'.$object->owner_town;
print '</td></tr>';
print '<tr><td class="tdtop">'.$langs->trans("BankAccountOwnerCountry").'</td>';
print '<td>';
$object->owner_country_code = dol_getIdFromCode($db, $object->owner_country_id, 'c_country', 'rowid', 'code');
$langs->load("dict");
print (empty($object->owner_country_code) ? '' : $langs->convToOutputCharset($langs->transnoentitiesnoconv("Country".$object->owner_country_code)));
print '</td></tr>';
print '</table>'; print '</table>';
} }
@ -933,6 +968,14 @@ if ($action == 'create') {
} }
print '</td></tr>'; print '</td></tr>';
$type = (GETPOSTISSET('type') ? GETPOST('type', 'int') : $object->type); // add default current value
if ($type == Account::TYPE_SAVINGS || $type == Account::TYPE_CURRENT) {
print '<tr><td>'.$langs->trans("BankAccountDomiciliation").'</td><td>';
print '<textarea class="flat quatrevingtpercent" name="domiciliation" rows="'.ROWS_2.'">';
print $object->domiciliation;
print "</textarea></td></tr>";
}
// Conciliable // Conciliable
print '<tr><td>'.$langs->trans("Conciliable").'</td>'; print '<tr><td>'.$langs->trans("Conciliable").'</td>';
print '<td>'; print '<td>';
@ -942,7 +985,7 @@ if ($action == 'create') {
} elseif ($conciliate == -3) { } elseif ($conciliate == -3) {
print $langs->trans("No").' ('.$langs->trans("Closed").')'; print $langs->trans("No").' ('.$langs->trans("Closed").')';
} else { } else {
print '<input type="checkbox" class="flat" id="norappro" name="norappro"'.(($conciliate > 0) ? '' : ' checked="checked"').'"> <label for="norappro">'.$langs->trans("DisableConciliation").'</label>'; print '<input type="checkbox" class="flat" id="norappro" name="norappro"'.(($conciliate > 0) ? '' : ' checked="checked"').'"> <label for="norappro" class="opacitymedium">'.$langs->trans("DisableConciliation").'</label>';
} }
print '</td></tr>'; print '</td></tr>';
@ -993,7 +1036,7 @@ if ($action == 'create') {
} }
print '</table>'; print '</table>';
print '<br>'; print '<hr>';
//print '<div class="underbanner clearboth"></div>'; //print '<div class="underbanner clearboth"></div>';
@ -1030,8 +1073,6 @@ if ($action == 'create') {
if ($type == Account::TYPE_SAVINGS || $type == Account::TYPE_CURRENT) { if ($type == Account::TYPE_SAVINGS || $type == Account::TYPE_CURRENT) {
print '<br>'; print '<br>';
//print '<div class="underbanner clearboth"></div>';
print '<table class="border centpercent">'; print '<table class="border centpercent">';
// If bank account // If bank account
@ -1087,26 +1128,39 @@ if ($action == 'create') {
print '<tr><td>'.$form->textwithpicto($langs->trans("IDS"), $langs->trans("IDS").' ('.$langs->trans("UsedFor", $langs->transnoentitiesnoconv("BankTransfer")).')').'</td>'; print '<tr><td>'.$form->textwithpicto($langs->trans("IDS"), $langs->trans("IDS").' ('.$langs->trans("UsedFor", $langs->transnoentitiesnoconv("BankTransfer")).')').'</td>';
print '<td><input class="minwidth150 maxwidth200onsmartphone" maxlength="32" type="text" class="flat" name="ics_transfer" value="'.(GETPOSTISSET('ics_transfer') ? GETPOST('ics_transfer', 'alphanohtml') : $object->ics_transfer).'"></td></tr>'; print '<td><input class="minwidth150 maxwidth200onsmartphone" maxlength="32" type="text" class="flat" name="ics_transfer" value="'.(GETPOSTISSET('ics_transfer') ? GETPOST('ics_transfer', 'alphanohtml') : $object->ics_transfer).'"></td></tr>';
print '<tr><td>'.$langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation").'</td>'; print '<tr><td>'.$form->textwithpicto($langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation"), $langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp")).'</td>';
print '<td><input type="checkbox" class="flat minwidth150" name="pti_in_ctti"'. ($object->pti_in_ctti ? ' checked ' : '') . '>&nbsp;'; print '<td><input type="checkbox" class="flat" name="pti_in_ctti"'. ($object->pti_in_ctti ? ' checked ' : '') . '>';
print img_picto($langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp"), 'info');
print '</td></tr>'; print '</td></tr>';
} }
print '<tr><td>'.$langs->trans("BankAccountDomiciliation").'</td><td>';
print '<textarea class="flat quatrevingtpercent" name="domiciliation" rows="'.ROWS_2.'">';
print $object->domiciliation;
print "</textarea></td></tr>";
print '<tr><td>'.$langs->trans("BankAccountOwner").'</td>'; print '<tr><td>'.$langs->trans("BankAccountOwner").'</td>';
print '<td><input class="maxwidth200onsmartphone" type="text" class="flat" name="proprio" value="'.$object->proprio.'"></td>'; print '<td><input class="maxwidth200onsmartphone" type="text" class="flat" name="proprio" value="'.$object->proprio.'"></td>';
print '</tr>'; print '</tr>';
print '<tr><td>'.$langs->trans("BankAccountOwnerAddress").'</td><td>'; print '</table>';
print '<hr>';
print '<table class="border centpercent">';
print '<tr><td class="titlefieldcreate">'.$langs->trans("BankAccountOwnerAddress").'</td><td>';
print '<textarea class="flat quatrevingtpercent" name="owner_address" rows="'.ROWS_2.'">'; print '<textarea class="flat quatrevingtpercent" name="owner_address" rows="'.ROWS_2.'">';
print $object->owner_address; print $object->owner_address;
print "</textarea></td></tr>"; print "</textarea></td></tr>";
print '<tr><td class="tdtop">'.$langs->trans("BankAccountOwnerZip").'</td>';
print '<td><input type="text" class="flat maxwidth100" name="owner_zip" value="'.(GETPOST('owner_zip') ?GETPOST('owner_zip', 'alpha') : $object->owner_zip).'">';
print '</td></tr>';
print '<tr><td class="tdtop">'.$langs->trans("BankAccountOwnerTown").'</td>';
print '<td><input type="text" class="flat maxwidth200" name="owner_town" value="'.(GETPOST('owner_town') ?GETPOST('owner_town', 'alpha') : $object->owner_town).'">';
print '</td></tr>';
print '<tr><td class="tdtop">'.$langs->trans("BankAccountOwnerCountry").'</td>';
print '<td>';
print img_picto('', 'country', 'class="pictofixedwidth"');
print $form->select_country(GETPOST('owner_country_id') ?GETPOST('owner_country_id', 'alpha') : $object->owner_country_id, 'owner_country_id');
print '</td></tr>';
print '</table>'; print '</table>';
} }

View File

@ -146,12 +146,6 @@ class Account extends CommonObject
*/ */
public $iban_prefix; public $iban_prefix;
/**
* Address of the bank
* @var string
*/
public $domiciliation;
/** /**
* XML SEPA format: place Payment Type Information (PmtTpInf) in Credit Transfer Transaction Information (CdtTrfTxInf) * XML SEPA format: place Payment Type Information (PmtTpInf) in Credit Transfer Transaction Information (CdtTrfTxInf)
* @var int * @var int
@ -169,7 +163,17 @@ class Account extends CommonObject
* @var string * @var string
*/ */
public $owner_address; public $owner_address;
public $owner_zip;
public $owner_town;
public $owner_country_id;
public $owner_country_code;
/**
* Address of the bank account
* @var string
*/
public $domiciliation; // deprecated, use now address
public $address;
public $state_id; public $state_id;
public $state_code; public $state_code;
public $state; public $state;
@ -297,10 +301,13 @@ class Account extends CommonObject
'country_iban' =>array('type'=>'varchar(2)', 'label'=>'Country iban', 'enabled'=>1, 'visible'=>-1, 'position'=>75), 'country_iban' =>array('type'=>'varchar(2)', 'label'=>'Country iban', 'enabled'=>1, 'visible'=>-1, 'position'=>75),
'cle_iban' =>array('type'=>'varchar(2)', 'label'=>'Cle iban', 'enabled'=>1, 'visible'=>-1, 'position'=>80), 'cle_iban' =>array('type'=>'varchar(2)', 'label'=>'Cle iban', 'enabled'=>1, 'visible'=>-1, 'position'=>80),
'domiciliation' =>array('type'=>'varchar(255)', 'label'=>'Domiciliation', 'enabled'=>1, 'visible'=>-1, 'position'=>85), 'domiciliation' =>array('type'=>'varchar(255)', 'label'=>'Domiciliation', 'enabled'=>1, 'visible'=>-1, 'position'=>85),
'state_id' =>array('type'=>'integer', 'label'=>'State id', 'enabled'=>1, 'visible'=>-1, 'position'=>90), 'state_id' =>array('type'=>'integer', 'label'=>'StateId', 'enabled'=>1, 'visible'=>-1, 'position'=>90),
'fk_pays' =>array('type'=>'integer', 'label'=>'Fk pays', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>95), 'fk_pays' =>array('type'=>'integer', 'label'=>'Country', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>95),
'proprio' =>array('type'=>'varchar(60)', 'label'=>'Proprio', 'enabled'=>1, 'visible'=>-1, 'position'=>100), 'proprio' =>array('type'=>'varchar(60)', 'label'=>'Proprio', 'enabled'=>1, 'visible'=>-1, 'position'=>100),
'owner_address' =>array('type'=>'text', 'label'=>'Owner address', 'enabled'=>1, 'visible'=>-1, 'position'=>105), 'owner_address' =>array('type'=>'varchar(255)', 'label'=>'Owner address', 'enabled'=>1, 'visible'=>-1, 'position'=>105),
'owner_zip' =>array('type'=>'varchar(25)', 'label'=>'Owner zip', 'enabled'=>1, 'visible'=>-1, 'position'=>106),
'owner_town' =>array('type'=>'varchar(50)', 'label'=>'Owner town', 'enabled'=>1, 'visible'=>-1, 'position'=>107),
'owner_country_id' =>array('type'=>'integer', 'label'=>'Owner country', 'enabled'=>1, 'visible'=>-1, 'position'=>108),
'courant' =>array('type'=>'smallint(6)', 'label'=>'Courant', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>110), 'courant' =>array('type'=>'smallint(6)', 'label'=>'Courant', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>110),
'clos' =>array('type'=>'smallint(6)', 'label'=>'Clos', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>115), 'clos' =>array('type'=>'smallint(6)', 'label'=>'Clos', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>115),
'rappro' =>array('type'=>'smallint(6)', 'label'=>'Rappro', 'enabled'=>1, 'visible'=>-1, 'position'=>120), 'rappro' =>array('type'=>'smallint(6)', 'label'=>'Rappro', 'enabled'=>1, 'visible'=>-1, 'position'=>120),
@ -698,6 +705,9 @@ class Account extends CommonObject
$sql .= ", pti_in_ctti"; $sql .= ", pti_in_ctti";
$sql .= ", proprio"; $sql .= ", proprio";
$sql .= ", owner_address"; $sql .= ", owner_address";
$sql .= ", owner_zip";
$sql .= ", owner_town";
$sql .= ", owner_country_id";
$sql .= ", currency_code"; $sql .= ", currency_code";
$sql .= ", rappro"; $sql .= ", rappro";
$sql .= ", min_allowed"; $sql .= ", min_allowed";
@ -713,7 +723,7 @@ class Account extends CommonObject
$sql .= ", '".$this->db->escape($this->label)."'"; $sql .= ", '".$this->db->escape($this->label)."'";
$sql .= ", ".((int) $conf->entity); $sql .= ", ".((int) $conf->entity);
$sql .= ", '".$this->db->escape($this->account_number)."'"; $sql .= ", '".$this->db->escape($this->account_number)."'";
$sql .= ", ".($this->fk_accountancy_journal > 0 ? $this->db->escape($this->fk_accountancy_journal) : "null"); $sql .= ", ".($this->fk_accountancy_journal > 0 ? ((int) $this->fk_accountancy_journal) : "null");
$sql .= ", '".$this->db->escape($this->bank)."'"; $sql .= ", '".$this->db->escape($this->bank)."'";
$sql .= ", '".$this->db->escape($this->code_banque)."'"; $sql .= ", '".$this->db->escape($this->code_banque)."'";
$sql .= ", '".$this->db->escape($this->code_guichet)."'"; $sql .= ", '".$this->db->escape($this->code_guichet)."'";
@ -725,6 +735,9 @@ class Account extends CommonObject
$sql .= ", ".((int) $this->pti_in_ctti); $sql .= ", ".((int) $this->pti_in_ctti);
$sql .= ", '".$this->db->escape($this->proprio)."'"; $sql .= ", '".$this->db->escape($this->proprio)."'";
$sql .= ", '".$this->db->escape($this->owner_address)."'"; $sql .= ", '".$this->db->escape($this->owner_address)."'";
$sql .= ", '".$this->db->escape($this->owner_zip)."'";
$sql .= ", '".$this->db->escape($this->owner_town)."'";
$sql .= ", ".($this->owner_country_id > 0 ? ((int) $this->owner_country_id) : "null");
$sql .= ", '".$this->db->escape($this->currency_code)."'"; $sql .= ", '".$this->db->escape($this->currency_code)."'";
$sql .= ", ".((int) $this->rappro); $sql .= ", ".((int) $this->rappro);
$sql .= ", ".price2num($this->min_allowed, 'MT'); $sql .= ", ".price2num($this->min_allowed, 'MT');
@ -836,7 +849,7 @@ class Account extends CommonObject
$sql .= ",rappro = ".((int) $this->rappro); $sql .= ",rappro = ".((int) $this->rappro);
$sql .= ",url = ".($this->url ? "'".$this->db->escape($this->url)."'" : "null"); $sql .= ",url = ".($this->url ? "'".$this->db->escape($this->url)."'" : "null");
$sql .= ",account_number = '".$this->db->escape($this->account_number)."'"; $sql .= ",account_number = '".$this->db->escape($this->account_number)."'";
$sql .= ",fk_accountancy_journal = ".($this->fk_accountancy_journal > 0 ? $this->db->escape($this->fk_accountancy_journal) : "null"); $sql .= ",fk_accountancy_journal = ".($this->fk_accountancy_journal > 0 ? ((int) $this->fk_accountancy_journal) : "null");
$sql .= ",bank = '".$this->db->escape($this->bank)."'"; $sql .= ",bank = '".$this->db->escape($this->bank)."'";
$sql .= ",code_banque='".$this->db->escape($this->code_banque)."'"; $sql .= ",code_banque='".$this->db->escape($this->code_banque)."'";
$sql .= ",code_guichet='".$this->db->escape($this->code_guichet)."'"; $sql .= ",code_guichet='".$this->db->escape($this->code_guichet)."'";
@ -848,6 +861,9 @@ class Account extends CommonObject
$sql .= ",pti_in_ctti=".((int) $this->pti_in_ctti); $sql .= ",pti_in_ctti=".((int) $this->pti_in_ctti);
$sql .= ",proprio = '".$this->db->escape($this->proprio)."'"; $sql .= ",proprio = '".$this->db->escape($this->proprio)."'";
$sql .= ",owner_address = '".$this->db->escape($this->owner_address)."'"; $sql .= ",owner_address = '".$this->db->escape($this->owner_address)."'";
$sql .= ",owner_zip = '".$this->db->escape($this->owner_zip)."'";
$sql .= ",owner_town = '".$this->db->escape($this->owner_town)."'";
$sql .= ",owner_country_id = ".($this->owner_country_id > 0 ? ((int) $this->owner_country_id) : "null");
$sql .= ",currency_code = '".$this->db->escape($this->currency_code)."'"; $sql .= ",currency_code = '".$this->db->escape($this->currency_code)."'";
@ -931,6 +947,9 @@ class Account extends CommonObject
$sql .= ",domiciliation='".$this->db->escape($this->domiciliation)."'"; $sql .= ",domiciliation='".$this->db->escape($this->domiciliation)."'";
$sql .= ",proprio = '".$this->db->escape($this->proprio)."'"; $sql .= ",proprio = '".$this->db->escape($this->proprio)."'";
$sql .= ",owner_address = '".$this->db->escape($this->owner_address)."'"; $sql .= ",owner_address = '".$this->db->escape($this->owner_address)."'";
$sql .= ",owner_zip = '".$this->db->escape($this->owner_zip)."'";
$sql .= ",owner_town = '".$this->db->escape($this->owner_town)."'";
$sql .= ",owner_country_id = ".($this->owner_country_id > 0 ? ((int) $this->owner_country_id) : "null");
$sql .= ",state_id = ".($this->state_id > 0 ? $this->state_id : "null"); $sql .= ",state_id = ".($this->state_id > 0 ? $this->state_id : "null");
$sql .= ",fk_pays = ".($this->country_id > 0 ? $this->country_id : "null"); $sql .= ",fk_pays = ".($this->country_id > 0 ? $this->country_id : "null");
$sql .= " WHERE rowid = ".((int) $this->id); $sql .= " WHERE rowid = ".((int) $this->id);
@ -967,13 +986,13 @@ class Account extends CommonObject
$sql = "SELECT ba.rowid, ba.ref, ba.label, ba.bank, ba.number, ba.courant, ba.clos, ba.rappro, ba.url,"; $sql = "SELECT ba.rowid, ba.ref, ba.label, ba.bank, ba.number, ba.courant, ba.clos, ba.rappro, ba.url,";
$sql .= " ba.code_banque, ba.code_guichet, ba.cle_rib, ba.bic, ba.iban_prefix as iban,"; $sql .= " ba.code_banque, ba.code_guichet, ba.cle_rib, ba.bic, ba.iban_prefix as iban,";
$sql .= " ba.domiciliation, ba.pti_in_ctti, ba.proprio, ba.owner_address, ba.state_id, ba.fk_pays as country_id,"; $sql .= " ba.domiciliation as address, ba.pti_in_ctti, ba.proprio, ba.owner_address, ba.owner_zip, ba.owner_town, ba.owner_country_id, ba.state_id, ba.fk_pays as country_id,";
$sql .= " ba.account_number, ba.fk_accountancy_journal, ba.currency_code,"; $sql .= " ba.account_number, ba.fk_accountancy_journal, ba.currency_code,";
$sql .= " ba.min_allowed, ba.min_desired, ba.comment,"; $sql .= " ba.min_allowed, ba.min_desired, ba.comment,";
$sql .= " ba.datec as date_creation, ba.tms as date_update, ba.ics, ba.ics_transfer,"; $sql .= " ba.datec as date_creation, ba.tms as date_update, ba.ics, ba.ics_transfer,";
$sql .= ' c.code as country_code, c.label as country,'; $sql .= ' c.code as country_code, c.label as country,';
$sql .= ' d.code_departement as state_code, d.nom as state'; $sql .= ' d.code_departement as state_code, d.nom as state,';
$sql .= ' , aj.code as accountancy_journal'; $sql .= ' aj.code as accountancy_journal';
$sql .= " FROM ".MAIN_DB_PREFIX."bank_account as ba"; $sql .= " FROM ".MAIN_DB_PREFIX."bank_account as ba";
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as c ON ba.fk_pays = c.rowid'; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as c ON ba.fk_pays = c.rowid';
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_departements as d ON ba.state_id = d.rowid'; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_departements as d ON ba.state_id = d.rowid';
@ -1009,10 +1028,14 @@ class Account extends CommonObject
$this->cle_rib = $obj->cle_rib; $this->cle_rib = $obj->cle_rib;
$this->bic = $obj->bic; $this->bic = $obj->bic;
$this->iban = $obj->iban; $this->iban = $obj->iban;
$this->domiciliation = $obj->domiciliation; $this->domiciliation = $obj->address;
$this->address = $obj->address;
$this->pti_in_ctti = $obj->pti_in_ctti; $this->pti_in_ctti = $obj->pti_in_ctti;
$this->proprio = $obj->proprio; $this->proprio = $obj->proprio;
$this->owner_address = $obj->owner_address; $this->owner_address = $obj->owner_address;
$this->owner_zip = $obj->owner_zip;
$this->owner_town = $obj->owner_town;
$this->owner_country_id = $obj->owner_country_id;
$this->state_id = $obj->state_id; $this->state_id = $obj->state_id;
$this->state_code = $obj->state_code; $this->state_code = $obj->state_code;
@ -1047,7 +1070,7 @@ class Account extends CommonObject
return 0; return 0;
} }
} else { } else {
$this->error = $this->db->lasterror; $this->error = $this->db->lasterror();
$this->errors[] = $this->error; $this->errors[] = $this->error;
return -1; return -1;
} }
@ -1723,6 +1746,9 @@ class Account extends CommonObject
$this->domiciliation = 'Banque de France'; $this->domiciliation = 'Banque de France';
$this->proprio = 'Owner'; $this->proprio = 'Owner';
$this->owner_address = 'Owner address'; $this->owner_address = 'Owner address';
$this->owner_zip = 'Owner zip';
$this->owner_town = 'Owner town';
$this->owner_country_id = 'Owner country_id';
$this->country_id = 1; $this->country_id = 1;
} }

View File

@ -643,6 +643,8 @@ class Paiement extends CommonObject
$acc = new Account($this->db); $acc = new Account($this->db);
$result = $acc->fetch($this->fk_account); $result = $acc->fetch($this->fk_account);
if ($result < 0) { if ($result < 0) {
$this->error = $acc->error;
$this->errors = $acc->errors;
$error++; $error++;
return -1; return -1;
} }
@ -768,7 +770,7 @@ class Paiement extends CommonObject
} }
// Add link 'InvoiceRefused' in bank_url // Add link 'InvoiceRefused' in bank_url
if (! $error && $label == '(InvoiceRefused)') { if (!$error && $label == '(InvoiceRefused)') {
$result=$acc->add_url_line( $result=$acc->add_url_line(
$bank_line_id, $bank_line_id,
$this->id_prelevement, $this->id_prelevement,
@ -788,6 +790,7 @@ class Paiement extends CommonObject
} }
} else { } else {
$this->error = $acc->error; $this->error = $acc->error;
$this->errors = $acc->errors;
$error++; $error++;
} }

View File

@ -213,11 +213,6 @@ if (empty($reshook)) {
$object->town = (string) GETPOST("town", 'alpha'); $object->town = (string) GETPOST("town", 'alpha');
$object->country_id = (int) GETPOST("country_id", 'int'); $object->country_id = (int) GETPOST("country_id", 'int');
$object->state_id = (int) GETPOST("state_id", 'int'); $object->state_id = (int) GETPOST("state_id", 'int');
//$object->jabberid = GETPOST("jabberid", 'alpha');
//$object->skype = GETPOST("skype", 'alpha');
//$object->twitter = GETPOST("twitter", 'alpha');
//$object->facebook = GETPOST("facebook", 'alpha');
//$object->linkedin = GETPOST("linkedin", 'alpha');
$object->socialnetworks = array(); $object->socialnetworks = array();
if (isModEnabled('socialnetworks')) { if (isModEnabled('socialnetworks')) {
foreach ($socialnetworks as $key => $value) { foreach ($socialnetworks as $key => $value) {
@ -419,11 +414,6 @@ if (empty($reshook)) {
$object->email = (string) GETPOST('email', 'custom', 0, FILTER_SANITIZE_EMAIL); $object->email = (string) GETPOST('email', 'custom', 0, FILTER_SANITIZE_EMAIL);
$object->no_email = GETPOST("no_email", "int"); $object->no_email = GETPOST("no_email", "int");
//$object->jabberid = GETPOST("jabberid", 'alpha');
//$object->skype = GETPOST("skype", 'alpha');
//$object->twitter = GETPOST("twitter", 'alpha');
//$object->facebook = GETPOST("facebook", 'alpha');
//$object->linkedin = GETPOST("linkedin", 'alpha');
$object->socialnetworks = array(); $object->socialnetworks = array();
if (isModEnabled('socialnetworks')) { if (isModEnabled('socialnetworks')) {
foreach ($socialnetworks as $key => $value) { foreach ($socialnetworks as $key => $value) {

View File

@ -702,22 +702,6 @@ class Contact extends CommonObject
$tmpobj->socialnetworks = $this->socialnetworks; $tmpobj->socialnetworks = $this->socialnetworks;
$usermustbemodified++; $usermustbemodified++;
} }
// if ($tmpobj->skype != $this->skype) {
// $tmpobj->skype = $this->skype;
// $usermustbemodified++;
// }
// if ($tmpobj->twitter != $this->twitter) {
// $tmpobj->twitter = $this->twitter;
// $usermustbemodified++;
// }
// if ($tmpobj->facebook != $this->facebook) {
// $tmpobj->facebook = $this->facebook;
// $usermustbemodified++;
// }
// if ($tmpobj->linkedin != $this->linkedin) {
// $tmpobj->linkedin = $this->linkedin;
// $usermustbemodified++;
// }
if ($usermustbemodified) { if ($usermustbemodified) {
$result = $tmpobj->update($user, 0, 1, 1, 1); $result = $tmpobj->update($user, 0, 1, 1, 1);
if ($result < 0) { if ($result < 0) {
@ -850,9 +834,6 @@ class Contact extends CommonObject
if ($this->fax && !empty($conf->global->LDAP_CONTACT_FIELD_FAX)) { if ($this->fax && !empty($conf->global->LDAP_CONTACT_FIELD_FAX)) {
$info[$conf->global->LDAP_CONTACT_FIELD_FAX] = $this->fax; $info[$conf->global->LDAP_CONTACT_FIELD_FAX] = $this->fax;
} }
if ($this->skype && !empty($conf->global->LDAP_CONTACT_FIELD_SKYPE)) {
$info[$conf->global->LDAP_CONTACT_FIELD_SKYPE] = $this->skype;
}
if ($this->note_private && !empty($conf->global->LDAP_CONTACT_FIELD_DESCRIPTION)) { if ($this->note_private && !empty($conf->global->LDAP_CONTACT_FIELD_DESCRIPTION)) {
$info[$conf->global->LDAP_CONTACT_FIELD_DESCRIPTION] = dol_string_nohtmltag($this->note_private, 2); $info[$conf->global->LDAP_CONTACT_FIELD_DESCRIPTION] = dol_string_nohtmltag($this->note_private, 2);
} }

View File

@ -443,7 +443,7 @@ abstract class CommonDocGenerator
} }
} }
$date = ($object->element == 'contrat' ? $object->date_contrat : $object->date); $date = (isset($object->element) && $object->element == 'contrat' && isset($object->date_contrat)) ? $object->date_contrat : (isset($object->date) ? $object->date : null);
$resarray = array( $resarray = array(
$array_key.'_id'=>$object->id, $array_key.'_id'=>$object->id,
@ -452,7 +452,7 @@ abstract class CommonDocGenerator
$array_key.'_ref_ext' => (property_exists($object, 'ref_ext') ? $object->ref_ext : ''), $array_key.'_ref_ext' => (property_exists($object, 'ref_ext') ? $object->ref_ext : ''),
$array_key.'_ref_customer'=>(!empty($object->ref_client) ? $object->ref_client : (empty($object->ref_customer) ? '' : $object->ref_customer)), $array_key.'_ref_customer'=>(!empty($object->ref_client) ? $object->ref_client : (empty($object->ref_customer) ? '' : $object->ref_customer)),
$array_key.'_ref_supplier'=>(!empty($object->ref_fournisseur) ? $object->ref_fournisseur : (empty($object->ref_supplier) ? '' : $object->ref_supplier)), $array_key.'_ref_supplier'=>(!empty($object->ref_fournisseur) ? $object->ref_fournisseur : (empty($object->ref_supplier) ? '' : $object->ref_supplier)),
$array_key.'_source_invoice_ref'=>$invoice_source->ref, $array_key.'_source_invoice_ref'=>((empty($invoice_source) || empty($invoice_source->ref)) ? '' : $invoice_source->ref),
// Dates // Dates
$array_key.'_hour'=>dol_print_date($date, 'hour'), $array_key.'_hour'=>dol_print_date($date, 'hour'),
$array_key.'_date'=>dol_print_date($date, 'day'), $array_key.'_date'=>dol_print_date($date, 'day'),

View File

@ -1735,15 +1735,17 @@ abstract class CommonInvoice extends CommonObject
$complementaryinfo .= '/30/'.$this->thirdparty->tva_intra; $complementaryinfo .= '/30/'.$this->thirdparty->tva_intra;
} }
$bankaccount = new Account($this->db);
// Header // Header
$s = ''; $s = '';
$s .= "SPC\n"; $s .= "SPC\n";
$s .= "0200\n"; $s .= "0200\n";
$s .= "1\n"; $s .= "1\n";
// Info seller
if ($this->fk_account > 0) { if ($this->fk_account > 0) {
// Bank BAN if country is LI or CH // Bank BAN if country is LI or CH
// TODO Add // TODO Add test on bank iban
$bankaccount = new Account($this->db);
$bankaccount->fetch($this->fk_account); $bankaccount->fetch($this->fk_account);
$s .= $bankaccount->iban."\n"; $s .= $bankaccount->iban."\n";
} else { } else {

View File

@ -961,27 +961,6 @@ abstract class CommonObject
} }
$outdone++; $outdone++;
} }
} else { // Old code to remove
if (!empty($this->skype)) {
$outsocialnetwork .= dol_print_socialnetworks($this->skype, $this->id, $object->id, 'skype');
}
$outdone++;
if (!empty($this->jabberid)) {
$outsocialnetwork .= dol_print_socialnetworks($this->jabberid, $this->id, $object->id, 'jabber');
}
$outdone++;
if (!empty($this->twitter)) {
$outsocialnetwork .= dol_print_socialnetworks($this->twitter, $this->id, $object->id, 'twitter');
}
$outdone++;
if (!empty($this->facebook)) {
$outsocialnetwork .= dol_print_socialnetworks($this->facebook, $this->id, $object->id, 'facebook');
}
$outdone++;
if (!empty($this->linkedin)) {
$outsocialnetwork .= dol_print_socialnetworks($this->linkedin, $this->id, $object->id, 'linkedin');
}
$outdone++;
} }
if ($outsocialnetwork) { if ($outsocialnetwork) {

View File

@ -27,6 +27,12 @@
*/ */
trait CommonSocialNetworks trait CommonSocialNetworks
{ {
/**
* @var array array of socialnetworks
*/
public $socialnetworks;
/** /**
* Show social network part if the module is enabled with hiding functionality * Show social network part if the module is enabled with hiding functionality
* *

View File

@ -7801,7 +7801,7 @@ class Form
} }
/** /**
* Function to forge a SQL criteria * Function to forge a SQL criteria from a Dolibarr filter syntax string.
* *
* @param array $matches Array of found string by regex search. Example: "t.ref:like:'SO-%'" or "t.date_creation:<:'20160101'" or "t.nature:is:NULL" * @param array $matches Array of found string by regex search. Example: "t.ref:like:'SO-%'" or "t.date_creation:<:'20160101'" or "t.nature:is:NULL"
* @return string Forged criteria. Example: "t.field like 'abc%'" * @return string Forged criteria. Example: "t.field like 'abc%'"
@ -7816,17 +7816,30 @@ class Form
} }
$tmp = explode(':', $matches[1]); $tmp = explode(':', $matches[1]);
if (count($tmp) < 3) { if (count($tmp) < 3) {
return ''; return '1=2'; // An always false request
} }
$tmpescaped = $tmp[2]; $tmpescaped = $tmp[2];
$regbis = array(); $regbis = array();
if (preg_match('/^\'(.*)\'$/', $tmpescaped, $regbis)) { if (preg_match('/^\'(.*)\'$/', $tmpescaped, $regbis)) {
$tmpescaped = "'".$db->escape($regbis[1])."'"; $tmpescaped = "'".$db->escape($regbis[1])."'";
} else { } else {
$tmpescaped = $db->escape($tmpescaped); $tmpescaped = $db->escape($tmpescaped);
} }
return $db->escape($tmp[0]).' '.strtoupper($db->escape($tmp[1]))." ".$tmpescaped;
if ($tmp[1] == '!=') {
$tmp[1] = '<>';
}
if (preg_match('/[\(\)]/', $tmp[0])) {
return '1=2'; // An always false request
}
if (! in_array($tmp[1], array('<', '>', '<>', 'is', 'isnot', '=', 'like'))) {
return '1=2'; // An always false request
}
return $db->escape($tmp[0]).' '.strtoupper($db->escape($tmp[1])).' '.$tmpescaped;
} }
/** /**

View File

@ -39,6 +39,9 @@ class FormProjets
*/ */
public $error = ''; public $error = '';
public $errors = array();
public $nboftasks; public $nboftasks;
@ -622,6 +625,8 @@ class FormProjets
if ($resql) { if ($resql) {
$num = $this->db->num_rows($resql); $num = $this->db->num_rows($resql);
$i = 0; $i = 0;
$sellist = '';
if ($num > 0) { if ($num > 0) {
$sellist = '<select class="flat elementselect css'.$table_element.($morecss ? ' '.$morecss : '').'" name="elementselect">'; $sellist = '<select class="flat elementselect css'.$table_element.($morecss ? ' '.$morecss : '').'" name="elementselect">';
$sellist .= '<option value="-1"'.($placeholder ? ' class="optiongrey"' : '').'>'.$placeholder.'</option>'; $sellist .= '<option value="-1"'.($placeholder ? ' class="optiongrey"' : '').'>'.$placeholder.'</option>';

View File

@ -1291,7 +1291,6 @@ class Ldap
$this->firstname = $this->convToOutputCharset($result[0][$this->attr_firstname][0], $this->ldapcharset); $this->firstname = $this->convToOutputCharset($result[0][$this->attr_firstname][0], $this->ldapcharset);
$this->login = $this->convToOutputCharset($result[0][$this->attr_login][0], $this->ldapcharset); $this->login = $this->convToOutputCharset($result[0][$this->attr_login][0], $this->ldapcharset);
$this->phone = $this->convToOutputCharset($result[0][$this->attr_phone][0], $this->ldapcharset); $this->phone = $this->convToOutputCharset($result[0][$this->attr_phone][0], $this->ldapcharset);
$this->skype = $this->convToOutputCharset($result[0][$this->attr_skype][0], $this->ldapcharset);
$this->fax = $this->convToOutputCharset($result[0][$this->attr_fax][0], $this->ldapcharset); $this->fax = $this->convToOutputCharset($result[0][$this->attr_fax][0], $this->ldapcharset);
$this->mail = $this->convToOutputCharset($result[0][$this->attr_mail][0], $this->ldapcharset); $this->mail = $this->convToOutputCharset($result[0][$this->attr_mail][0], $this->ldapcharset);
$this->mobile = $this->convToOutputCharset($result[0][$this->attr_mobile][0], $this->ldapcharset); $this->mobile = $this->convToOutputCharset($result[0][$this->attr_mobile][0], $this->ldapcharset);

View File

@ -1433,13 +1433,17 @@ function dol_string_nounprintableascii($str, $removetabcrlf = 1)
/** /**
* Returns text escaped for inclusion into javascript code * Returns text escaped for inclusion into javascript code
* *
* @param string $stringtoescape String to escape * @param string $stringtoescape String to escape
* @param int $mode 0=Escape also ' and " into ', 1=Escape ' but not " for usage into 'string', 2=Escape " but not ' for usage into "string", 3=Escape ' and " with \ * @param int $mode 0=Escape also ' and " into ', 1=Escape ' but not " for usage into 'string', 2=Escape " but not ' for usage into "string", 3=Escape ' and " with \
* @param int $noescapebackslashn 0=Escape also \n. 1=Do not escape \n. * @param int $noescapebackslashn 0=Escape also \n. 1=Do not escape \n.
* @return string Escaped string. Both ' and " are escaped into ' if they are escaped. * @return string Escaped string. Both ' and " are escaped into ' if they are escaped.
*/ */
function dol_escape_js($stringtoescape, $mode = 0, $noescapebackslashn = 0) function dol_escape_js($stringtoescape, $mode = 0, $noescapebackslashn = 0)
{ {
if (is_null($stringtoescape)) {
return '';
}
// escape quotes and backslashes, newlines, etc. // escape quotes and backslashes, newlines, etc.
$substitjs = array("&#039;"=>"\\'", "\r"=>'\\r'); $substitjs = array("&#039;"=>"\\'", "\r"=>'\\r');
//$substitjs['</']='<\/'; // We removed this. Should be useless. //$substitjs['</']='<\/'; // We removed this. Should be useless.
@ -11929,8 +11933,8 @@ function show_actions_messaging($conf, $langs, $db, $filterobj, $objcon = '', $n
'contact_id'=>$obj->fk_contact, 'contact_id'=>$obj->fk_contact,
'socpeopleassigned' => $contactaction->socpeopleassigned, 'socpeopleassigned' => $contactaction->socpeopleassigned,
'lastname'=>$obj->lastname, 'lastname' => (empty($obj->lastname) ? '' : $obj->lastname),
'firstname'=>$obj->firstname, 'firstname' => (empty($obj->firstname) ? '' : $obj->firstname),
'fk_element'=>$obj->fk_element, 'fk_element'=>$obj->fk_element,
'elementtype'=>$obj->elementtype, 'elementtype'=>$obj->elementtype,
// Type of event // Type of event

View File

@ -344,7 +344,9 @@ function restrictedArea(User $user, $features, $object = 0, $tableandshare = '',
} else { } else {
$objectid = $object; // $objectid can be X or 'X,Y,Z' $objectid = $object; // $objectid can be X or 'X,Y,Z'
} }
$objectid = preg_replace('/[^0-9\.\,]/', '', $objectid); // For the case value is coming from a non sanitized user input if ($objectid) {
$objectid = preg_replace('/[^0-9\.\,]/', '', $objectid); // For the case value is coming from a non sanitized user input
}
//dol_syslog("functions.lib:restrictedArea $feature, $objectid, $dbtablename, $feature2, $dbt_socfield, $dbt_select, $isdraft"); //dol_syslog("functions.lib:restrictedArea $feature, $objectid, $dbtablename, $feature2, $dbt_socfield, $dbt_select, $isdraft");
//print "user_id=".$user->id.", features=".$features.", feature2=".$feature2.", objectid=".$objectid; //print "user_id=".$user->id.", features=".$features.", feature2=".$feature2.", objectid=".$objectid;

View File

@ -162,7 +162,7 @@ class html_cerfafr extends ModeleDon
$form = str_replace('__MAIN_INFO_SOCIETE_ADDRESS__', $mysoc->address, $form); $form = str_replace('__MAIN_INFO_SOCIETE_ADDRESS__', $mysoc->address, $form);
$form = str_replace('__MAIN_INFO_SOCIETE_ZIP__', $mysoc->zip, $form); $form = str_replace('__MAIN_INFO_SOCIETE_ZIP__', $mysoc->zip, $form);
$form = str_replace('__MAIN_INFO_SOCIETE_TOWN__', $mysoc->town, $form); $form = str_replace('__MAIN_INFO_SOCIETE_TOWN__', $mysoc->town, $form);
$form = str_replace('__MAIN_INFO_SOCIETE_OBJECT__', $mysoc->object, $form); $form = str_replace('__MAIN_INFO_SOCIETE_OBJECT__', $mysoc->socialobject, $form);
$form = str_replace('__DONATOR_FIRSTNAME__', $don->firstname, $form); $form = str_replace('__DONATOR_FIRSTNAME__', $don->firstname, $form);
$form = str_replace('__DONATOR_LASTNAME__', $don->lastname, $form); $form = str_replace('__DONATOR_LASTNAME__', $don->lastname, $form);
$form = str_replace('__DONATOR_SOCIETE__', $don->societe, $form); $form = str_replace('__DONATOR_SOCIETE__', $don->societe, $form);

View File

@ -250,9 +250,17 @@ class modHRM extends DolibarrModules
$this->rights[$r][5] = 'read'; // In php code, permission will be checked by test if ($user->rights->hrm->compare_advance->read) $this->rights[$r][5] = 'read'; // In php code, permission will be checked by test if ($user->rights->hrm->compare_advance->read)
$r++; $r++;
// Evaluation
$this->rights[$r][0] = 4029; // Permission id (must not be already used)
$this->rights[$r][1] = 'Read all evaluations'; // Permission label
$this->rights[$r][3] = 0; // Permission by default for new user (0/1)
$this->rights[$r][4] = 'evaluation';
$this->rights[$r][5] = 'readall'; // In php code, permission will be checked by test if ($user->rights->hrm->evaluation->read)
$r++;
// Read employee // Read employee
$this->rights[$r][0] = 4031; // Permission id (must not be already used) $this->rights[$r][0] = 4031; // Permission id (must not be already used)
$this->rights[$r][1] = 'Read personal information'; // Permission label $this->rights[$r][1] = 'Read personal/HR information'; // Permission label
$this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][3] = 0; // Permission by default for new user (0/1)
$this->rights[$r][4] = 'read_personal_information'; $this->rights[$r][4] = 'read_personal_information';
$this->rights[$r][5] = 'read'; // In php code, permission will be checked by test if ($user->rights->hrm->read_personal_information->read) $this->rights[$r][5] = 'read'; // In php code, permission will be checked by test if ($user->rights->hrm->read_personal_information->read)
@ -260,19 +268,11 @@ class modHRM extends DolibarrModules
// Write employee // Write employee
$this->rights[$r][0] = 4032; // Permission id (must not be already used) $this->rights[$r][0] = 4032; // Permission id (must not be already used)
$this->rights[$r][1] = 'Write personal information'; // Permission label $this->rights[$r][1] = 'Write personal/HR information'; // Permission label
$this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][3] = 0; // Permission by default for new user (0/1)
$this->rights[$r][4] = 'write_personal_information'; $this->rights[$r][4] = 'write_personal_information';
$this->rights[$r][5] = 'write'; // In php code, permission will be checked by test if ($user->rights->hrm->write_personal_information->write) $this->rights[$r][5] = 'write'; // In php code, permission will be checked by test if ($user->rights->hrm->write_personal_information->write)
$r++; $r++;
// Evaluation
$this->rights[$r][0] = 4033; // Permission id (must not be already used)
$this->rights[$r][1] = 'Read all evaluations'; // Permission label
$this->rights[$r][3] = 0; // Permission by default for new user (0/1)
$this->rights[$r][4] = 'evaluation';
$this->rights[$r][5] = 'readall'; // In php code, permission will be checked by test if ($user->rights->hrm->evaluation->read)
$r++;
} }
/** /**

View File

@ -32,7 +32,6 @@ include_once DOL_DOCUMENT_ROOT.'/core/modules/DolibarrModules.class.php';
*/ */
class modImport extends DolibarrModules class modImport extends DolibarrModules
{ {
/** /**
* Constructor. Define names, constants, directories, boxes, permissions * Constructor. Define names, constants, directories, boxes, permissions
* *

View File

@ -157,7 +157,7 @@ class modTicket extends DolibarrModules
'tabfieldvalue' => array("code,label,pos,use_default", "code,label,pos,use_default", "code,label,pos,use_default,public,fk_parent", "code,label,pos,use_default"), 'tabfieldvalue' => array("code,label,pos,use_default", "code,label,pos,use_default", "code,label,pos,use_default,public,fk_parent", "code,label,pos,use_default"),
'tabfieldinsert' => array("code,label,pos,use_default", "code,label,pos,use_default", "code,label,pos,use_default,public,fk_parent", "code,label,pos,use_default"), 'tabfieldinsert' => array("code,label,pos,use_default", "code,label,pos,use_default", "code,label,pos,use_default,public,fk_parent", "code,label,pos,use_default"),
'tabrowid' => array("rowid", "rowid", "rowid", "rowid"), 'tabrowid' => array("rowid", "rowid", "rowid", "rowid"),
'tabcond' => array($conf->ticket->enabled, $conf->ticket->enabled, $conf->ticket->enabled, $conf->ticket->enabled && !empty($conf->global->TICKET_ENABLE_RESOLUTION)), 'tabcond' => array($conf->ticket->enabled, $conf->ticket->enabled, $conf->ticket->enabled, $conf->ticket->enabled && getDolGlobalString('TICKET_ENABLE_RESOLUTION')),
'tabhelp' => array( 'tabhelp' => array(
array('code'=>$langs->trans("EnterAnyCode"), 'use_default'=>$langs->trans("Enter0or1")), array('code'=>$langs->trans("EnterAnyCode"), 'use_default'=>$langs->trans("Enter0or1")),
array('code'=>$langs->trans("EnterAnyCode"), 'use_default'=>$langs->trans("Enter0or1")), array('code'=>$langs->trans("EnterAnyCode"), 'use_default'=>$langs->trans("Enter0or1")),

View File

@ -32,7 +32,6 @@ include_once DOL_DOCUMENT_ROOT.'/core/modules/DolibarrModules.class.php';
*/ */
class modUser extends DolibarrModules class modUser extends DolibarrModules
{ {
/** /**
* Constructor. Define names, constants, directories, boxes, permissions * Constructor. Define names, constants, directories, boxes, permissions
* *

View File

@ -133,9 +133,15 @@ $(document).ready(function () {
</script> </script>
<?php } ?> <?php } ?>
<div class="login_center center"<?php print empty($conf->global->MAIN_LOGIN_BACKGROUND) ? ' style="background-size: cover; background-position: center center; background-attachment: fixed; background-repeat: no-repeat; background-image: linear-gradient(rgb('.$colorbackhmenu1.',0.3), rgb(240,240,240));"' : '' ?>> <div class="login_center center"<?php
$backstyle = 'background: linear-gradient('.($conf->browser->layout == 'phone' ? '0deg' : '4deg').', rgb(240,240,240) 52%, rgb('.$colorbackhmenu1.') 52.1%);';
// old style: $backstyle = 'background-image: linear-gradient(rgb('.$colorbackhmenu1.',0.3), rgb(240,240,240));';
$backstyle = getDolGlobalString('MAIN_LOGIN_BACKGROUND_STYLE', $backstyle);
print empty($conf->global->MAIN_LOGIN_BACKGROUND) ? ' style="background-size: cover; background-position: center center; background-attachment: fixed; background-repeat: no-repeat; '.$backstyle.'"' : '';
?>>
<div class="login_vertical_align"> <div class="login_vertical_align">
<form id="login" name="login" method="post" action="<?php echo $php_self; ?>"> <form id="login" name="login" method="post" action="<?php echo $php_self; ?>">
<input type="hidden" name="token" value="<?php echo newToken(); ?>" /> <input type="hidden" name="token" value="<?php echo newToken(); ?>" />

View File

@ -82,11 +82,11 @@ class ActionsDatapolicy
/** /**
* Overloading the doActions function : replacing the parent's function with the one below * Overloading the doActions function : replacing the parent's function with the one below
* *
* @param array $parameters Hook metadatas (context, etc...) * @param array $parameters Hook metadatas (context, etc...)
* @param CommonObject $object The object to process (an invoice if you are in invoice module, a propale in propale's module, etc...) * @param Societe|CommonObject $object The object to process (an invoice if you are in invoice module, a propale in propale's module, etc...)
* @param string $action Current action (if set). Generally create or edit or null * @param string $action Current action (if set). Generally create or edit or null
* @param HookManager $hookmanager Hook manager propagated to allow calling another hook * @param HookManager $hookmanager Hook manager propagated to allow calling another hook
* @return int < 0 on error, 0 on success, 1 to replace standard code * @return int < 0 on error, 0 on success, 1 to replace standard code
*/ */
public function doActions($parameters, &$object, &$action, $hookmanager) public function doActions($parameters, &$object, &$action, $hookmanager)
{ {
@ -103,7 +103,6 @@ class ActionsDatapolicy
// on verifie si l'objet est utilisé // on verifie si l'objet est utilisé
if ($object->isObjectUsed(GETPOST('socid'))) { if ($object->isObjectUsed(GETPOST('socid'))) {
$object->name = $langs->trans('ANONYME'); $object->name = $langs->trans('ANONYME');
$object->name_bis = '';
$object->name_alias = ''; $object->name_alias = '';
$object->address = ''; $object->address = '';
$object->town = ''; $object->town = '';
@ -115,7 +114,7 @@ class ActionsDatapolicy
$object->state = ''; $object->state = '';
$object->country = ''; $object->country = '';
$object->state_id = ''; $object->state_id = '';
$object->skype = ''; $object->socialnetworks = '';
$object->country_id = ''; $object->country_id = '';
$object->note_private = $object->note_private.'<br>'.$langs->trans('ANONYMISER_AT', dol_print_date(time())); $object->note_private = $object->note_private.'<br>'.$langs->trans('ANONYMISER_AT', dol_print_date(time()));
@ -128,76 +127,6 @@ class ActionsDatapolicy
header('Location:'.$_SERVER["PHP_SELF"]."?socid=".$object->id); header('Location:'.$_SERVER["PHP_SELF"]."?socid=".$object->id);
} }
} }
} elseif ($parameters['currentcontext'] == 'thirdpartycard' && $action == 'datapolicy_portabilite') {
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename=datapolicy_portabilite.csv');
header('Pragma: no-cache');
$object->fetch(GETPOST('socid'));
echo 'Name;Firstname;Civility;Thirdparty;Function;Address;ZipCode;City;Department;Country;Email;Pro Phone;Perso Phone;Mobile Phone;Instant Mail;Birthday;'.PHP_EOL;
echo $object->name.';';
echo ';';
echo ';';
echo ';';
echo ';';
echo $object->address.';';
echo $object->zip.';';
echo $object->town.';';
echo $object->state.';';
echo $object->country.';';
echo $object->email.';';
echo $object->phone.';';
echo ';';
echo ';';
echo $object->skype.';';
echo ';';
exit;
} elseif ($parameters['currentcontext'] == 'membercard' && $action == 'datapolicy_portabilite') {
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename=datapolicy_portabilite.csv');
header('Pragma: no-cache');
$soc = $object->fetch_thirdparty();
echo 'Name;Firstname;Civility;Thirdparty;Function;Address;ZipCode;City;Department;Country;Email;Pro Phone;Perso Phone;Mobile Phone;Instant Mail;Birthday;'.PHP_EOL;
echo $object->lastname.';';
echo $object->firstname.';';
echo $object->getCivilityLabel().';';
echo ($soc != -1 ? $object->thirdparty->name : '').';';
echo ';';
echo $object->address.';';
echo $object->zip.';';
echo $object->town.';';
echo $object->state.';';
echo $object->country.';';
echo $object->email.';';
echo $object->phone.';';
echo $object->phone_perso.';';
echo $object->phone_mobile.';';
echo $object->skype.';';
echo dol_print_date($object->birth).';';
exit;
} elseif ($parameters['currentcontext'] == 'contactcard' && $action == 'datapolicy_portabilite') {
$object->fetch(GETPOST('id'));
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename=datapolicy_portabilite.csv');
header('Pragma: no-cache');
$soc = $object->fetch_thirdparty();
echo 'Name;Firstname;Civility;Thirdparty;Function;Address;ZipCode;City;Department;Country;Email;Pro Phone;Perso Phone;Mobile Phone;Instant Mail;Birthday;'.PHP_EOL;
echo $object->lastname.';';
echo $object->firstname.';';
echo $object->getCivilityLabel().';';
echo ($soc != -1 ? $object->thirdparty->name : '').';';
echo $object->poste.';';
echo $object->address.';';
echo $object->zip.';';
echo $object->town.';';
echo $object->state.';';
echo $object->country.';';
echo $object->email.';';
echo $object->phone_pro.';';
echo $object->phone_perso.';';
echo $object->phone_mobile.';';
echo dol_print_date($object->birth).';';
exit;
} elseif ($parameters['currentcontext'] == 'contactcard' && $action == 'send_datapolicy') { } elseif ($parameters['currentcontext'] == 'contactcard' && $action == 'send_datapolicy') {
$object->fetch(GETPOST('id')); $object->fetch(GETPOST('id'));
@ -358,13 +287,7 @@ class ActionsDatapolicy
} ); } );
</script>'; </script>';
echo $dialog; echo $dialog;
if ($parameters['currentcontext'] == 'thirdpartycard' && in_array($object->forme_juridique_code, array(11, 12, 13, 15, 17, 18, 19, 35, 60, 200, 311, 312, 316, 401, 600, 700, 1005)) || $object->typent_id == 8) { // TODO Replace test of hardcoded values
echo '<div class="inline-block divButAction"><a target="_blank" rel="noopener noreferrer" id="rpgpdbtn" class="butAction" href="'.$_SERVER["PHP_SELF"]."?socid=".$object->id.'&action=datapolicy_portabilite" title="'.$langs->trans('DATAPOLICY_PORTABILITE_TITLE').'">'.$langs->trans("DATAPOLICY_PORTABILITE").'</a></div>';
} elseif ($parameters['currentcontext'] == 'membercard') {
echo '<div class="inline-block divButAction"><a target="_blank" rel="noopener noreferrer" id="rpgpdbtn" class="butAction" href="'.$_SERVER["PHP_SELF"]."?rowid=".$object->id.'&action=datapolicy_portabilite" title="'.$langs->trans('DATAPOLICY_PORTABILITE_TITLE').'">'.$langs->trans("DATAPOLICY_PORTABILITE").'</a></div>';
} elseif ($parameters['currentcontext'] == 'contactcard') {
echo '<div class="inline-block divButAction"><a target="_blank" rel="noopener noreferrer" id="rpgpdbtn" class="butAction" href="'.$_SERVER["PHP_SELF"]."?id=".$object->id.'&action=datapolicy_portabilite" title="'.$langs->trans('DATAPOLICY_PORTABILITE_TITLE').'">'.$langs->trans("DATAPOLICY_PORTABILITE").'</a></div>';
}
if (!empty($object->mail) && empty($object->array_options['options_datapolicy_send']) && $parameters['currentcontext'] == 'thirdpartycard' && in_array($object->forme_juridique_code, array(11, 12, 13, 15, 17, 18, 19, 35, 60, 200, 311, 312, 316, 401, 600, 700, 1005)) || $object->typent_id == 8) { if (!empty($object->mail) && empty($object->array_options['options_datapolicy_send']) && $parameters['currentcontext'] == 'thirdpartycard' && in_array($object->forme_juridique_code, array(11, 12, 13, 15, 17, 18, 19, 35, 60, 200, 311, 312, 316, 401, 600, 700, 1005)) || $object->typent_id == 8) {
echo '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"]."?socid=".$object->id.'&action=send_datapolicy" title="'.$langs->trans('DATAPOLICY_SEND').'">'.$langs->trans("DATAPOLICY_SEND").'</a></div>'; echo '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"]."?socid=".$object->id.'&action=send_datapolicy" title="'.$langs->trans('DATAPOLICY_SEND').'">'.$langs->trans("DATAPOLICY_SEND").'</a></div>';
} elseif (!empty($object->mail) && empty($object->array_options['options_datapolicy_send']) && $parameters['currentcontext'] == 'membercard') { } elseif (!empty($object->mail) && empty($object->array_options['options_datapolicy_send']) && $parameters['currentcontext'] == 'membercard') {

View File

@ -128,7 +128,7 @@ class EmailCollector extends CommonObject
public $fields = array( public $fields = array(
'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'visible'=>2, 'enabled'=>1, 'position'=>1, 'notnull'=>1, 'index'=>1), 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'visible'=>2, 'enabled'=>1, 'position'=>1, 'notnull'=>1, 'index'=>1),
'entity' => array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'default'=>1, 'notnull'=>1, 'index'=>1, 'position'=>20), 'entity' => array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'default'=>1, 'notnull'=>1, 'index'=>1, 'position'=>20),
'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'help'=>'Example: MyCollector1', 'csslist'=>'tdoverflowmax150'), 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'help'=>'Example: MyCollector1', 'csslist'=>'tdoverflowmax200'),
'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'visible'=>1, 'enabled'=>1, 'position'=>30, 'notnull'=>-1, 'searchall'=>1, 'help'=>'Example: My Email collector', 'csslist'=>'tdoverflowmax150'), 'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'visible'=>1, 'enabled'=>1, 'position'=>30, 'notnull'=>-1, 'searchall'=>1, 'help'=>'Example: My Email collector', 'csslist'=>'tdoverflowmax150'),
'description' => array('type'=>'text', 'label'=>'Description', 'visible'=>-1, 'enabled'=>1, 'position'=>60, 'notnull'=>-1, 'csslist'=>'small'), 'description' => array('type'=>'text', 'label'=>'Description', 'visible'=>-1, 'enabled'=>1, 'position'=>60, 'notnull'=>-1, 'csslist'=>'small'),
'host' => array('type'=>'varchar(255)', 'label'=>'EMailHost', 'visible'=>1, 'enabled'=>1, 'position'=>90, 'notnull'=>1, 'searchall'=>1, 'comment'=>"IMAP server", 'help'=>'Example: imap.gmail.com', 'csslist'=>'tdoverflowmax125'), 'host' => array('type'=>'varchar(255)', 'label'=>'EMailHost', 'visible'=>1, 'enabled'=>1, 'position'=>90, 'notnull'=>1, 'searchall'=>1, 'comment'=>"IMAP server", 'help'=>'Example: imap.gmail.com', 'csslist'=>'tdoverflowmax125'),
@ -145,7 +145,7 @@ class EmailCollector extends CommonObject
'maxemailpercollect' => array('type'=>'integer', 'label'=>'MaxEmailCollectPerCollect', 'visible'=>-1, 'enabled'=>1, 'position'=>111, 'default'=>100), 'maxemailpercollect' => array('type'=>'integer', 'label'=>'MaxEmailCollectPerCollect', 'visible'=>-1, 'enabled'=>1, 'position'=>111, 'default'=>100),
'datelastresult' => array('type'=>'datetime', 'label'=>'DateLastCollectResult', 'visible'=>1, 'enabled'=>'$action != "create" && $action != "edit"', 'position'=>121, 'notnull'=>-1, 'csslist'=>'nowraponall'), 'datelastresult' => array('type'=>'datetime', 'label'=>'DateLastCollectResult', 'visible'=>1, 'enabled'=>'$action != "create" && $action != "edit"', 'position'=>121, 'notnull'=>-1, 'csslist'=>'nowraponall'),
'codelastresult' => array('type'=>'varchar(16)', 'label'=>'CodeLastResult', 'visible'=>1, 'enabled'=>'$action != "create" && $action != "edit"', 'position'=>122, 'notnull'=>-1,), 'codelastresult' => array('type'=>'varchar(16)', 'label'=>'CodeLastResult', 'visible'=>1, 'enabled'=>'$action != "create" && $action != "edit"', 'position'=>122, 'notnull'=>-1,),
'lastresult' => array('type'=>'varchar(255)', 'label'=>'LastResult', 'visible'=>1, 'enabled'=>'$action != "create" && $action != "edit"', 'position'=>123, 'notnull'=>-1, 'csslist'=>'small'), 'lastresult' => array('type'=>'varchar(255)', 'label'=>'LastResult', 'visible'=>1, 'enabled'=>'$action != "create" && $action != "edit"', 'position'=>123, 'notnull'=>-1, 'csslist'=>'small tdoverflowmax200'),
'datelastok' => array('type'=>'datetime', 'label'=>'DateLastcollectResultOk', 'visible'=>1, 'enabled'=>'$action != "create"', 'position'=>125, 'notnull'=>-1, 'csslist'=>'nowraponall'), 'datelastok' => array('type'=>'datetime', 'label'=>'DateLastcollectResultOk', 'visible'=>1, 'enabled'=>'$action != "create"', 'position'=>125, 'notnull'=>-1, 'csslist'=>'nowraponall'),
'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'visible'=>0, 'enabled'=>1, 'position'=>61, 'notnull'=>-1,), 'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'visible'=>0, 'enabled'=>1, 'position'=>61, 'notnull'=>-1,),
'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'visible'=>0, 'enabled'=>1, 'position'=>62, 'notnull'=>-1,), 'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'visible'=>0, 'enabled'=>1, 'position'=>62, 'notnull'=>-1,),
@ -2932,7 +2932,11 @@ class EmailCollector extends CommonObject
// TODO Move mail using PHP-IMAP // TODO Move mail using PHP-IMAP
} }
} else { } else {
dol_syslog("EmailCollector::doCollectOneCollector message ".$imapemail." to ".$connectstringtarget." was set to read", LOG_DEBUG); if (empty($conf->global->MAIN_IMAP_USE_PHPIMAP)) {
dol_syslog("EmailCollector::doCollectOneCollector message ".((string) $imapemail)." to ".$connectstringtarget." was set to read", LOG_DEBUG);
} else {
dol_syslog("EmailCollector::doCollectOneCollector message '".($imapemail->getHeader()->get('subject'))."' using this->host=".$this->host.", this->access_type=".$this->acces_type." was set to read", LOG_DEBUG);
}
} }
} else { } else {
$errorforemail++; $errorforemail++;

View File

@ -106,10 +106,10 @@ class ConferenceOrBooth extends ActionComm
'id' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>'1', 'position'=>1, 'notnull'=>1, 'visible'=>0, 'noteditable'=>'1', 'index'=>1, 'css'=>'left', 'comment'=>"Id"), 'id' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>'1', 'position'=>1, 'notnull'=>1, 'visible'=>0, 'noteditable'=>'1', 'index'=>1, 'css'=>'left', 'comment'=>"Id"),
'ref' => array('type'=>'integer', 'label'=>'Ref', 'enabled'=>'1', 'position'=>1, 'notnull'=>1, 'visible'=>2, 'noteditable'=>'1', 'index'=>1, 'css'=>'left', 'csslist'=>'left', 'comment'=>"Id"), 'ref' => array('type'=>'integer', 'label'=>'Ref', 'enabled'=>'1', 'position'=>1, 'notnull'=>1, 'visible'=>2, 'noteditable'=>'1', 'index'=>1, 'css'=>'left', 'csslist'=>'left', 'comment'=>"Id"),
'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>'1', 'position'=>30, 'notnull'=>1, 'visible'=>1, 'searchall'=>1, 'css'=>'minwidth300', 'csslist'=>'tdoverflowmax125', 'help'=>"OrganizationEvenLabelName", 'showoncombobox'=>'1', 'autofocusoncreate'=>1), 'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>'1', 'position'=>30, 'notnull'=>1, 'visible'=>1, 'searchall'=>1, 'css'=>'minwidth300', 'csslist'=>'tdoverflowmax125', 'help'=>"OrganizationEvenLabelName", 'showoncombobox'=>'1', 'autofocusoncreate'=>1),
'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php:1:status=1 AND entity IN (__SHARED_ENTITIES__)', 'label'=>'ThirdParty', 'enabled'=>'$conf->societe->enabled', 'position'=>50, 'notnull'=>-1, 'visible'=>1, 'index'=>1, 'help'=>"OrganizationEventLinkToThirdParty", 'picto'=>'company', 'csslist'=>'tdoverflowmax150 maxwidth500', 'css'=>'maxwidth500'), 'fk_project' => array('type'=>'integer:Project:projet/class/project.class.php:1:t.usage_organize_event=1', 'label'=>'Project', 'enabled'=>"isModEnabled('project')", 'position'=>52, 'notnull'=>-1, 'visible'=>1, 'index'=>1, 'picto'=>'project', 'css'=>'tdoverflowmax150 maxwidth500', 'csslist'=>'width100'),
'fk_project' => array('type'=>'integer:Project:projet/class/project.class.php:1:t.usage_organize_event=1', 'label'=>'Project', 'enabled'=>"isModEnabled('project')", 'position'=>52, 'notnull'=>-1, 'visible'=>-1, 'index'=>1, 'picto'=>'project', 'css'=>'tdoverflowmax150 maxwidth500', 'csslist'=>'width100'), 'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php:1:status=1 AND entity IN (__SHARED_ENTITIES__)', 'label'=>'ThirdParty', 'enabled'=>'$conf->societe->enabled', 'position'=>50, 'notnull'=>-1, 'visible'=>1, 'index'=>1, 'help'=>"OrganizationEventLinkToThirdParty", 'picto'=>'company', 'csslist'=>'tdoverflowmax125', 'css'=>'maxwidth500'),
'note' => array('type'=>'text', 'label'=>'Description', 'enabled'=>'1', 'position'=>60, 'notnull'=>0, 'visible'=>3), 'note' => array('type'=>'text', 'label'=>'Description', 'enabled'=>'1', 'position'=>60, 'notnull'=>0, 'visible'=>3),
'fk_action' => array('type'=>'sellist:c_actioncomm:libelle:id::module LIKE (\'%@eventorganization\')', 'label'=>'Format', 'enabled'=>'1', 'position'=>60, 'notnull'=>1, 'visible'=>1, 'css'=>'width100'), 'fk_action' => array('type'=>'sellist:c_actioncomm:libelle:id::module LIKE (\'%@eventorganization\')', 'label'=>'Format', 'enabled'=>'1', 'position'=>60, 'notnull'=>1, 'visible'=>1, 'css'=>'width100', 'csslist'=>'tdoverflowmax100'),
'datep' => array('type'=>'datetime', 'label'=>'DateStart', 'enabled'=>'1', 'position'=>70, 'notnull'=>0, 'visible'=>1, 'showoncombobox'=>'2',), 'datep' => array('type'=>'datetime', 'label'=>'DateStart', 'enabled'=>'1', 'position'=>70, 'notnull'=>0, 'visible'=>1, 'showoncombobox'=>'2',),
'datep2' => array('type'=>'datetime', 'label'=>'DateEnd', 'enabled'=>'1', 'position'=>71, 'notnull'=>0, 'visible'=>1, 'showoncombobox'=>'3',), 'datep2' => array('type'=>'datetime', 'label'=>'DateEnd', 'enabled'=>'1', 'position'=>71, 'notnull'=>0, 'visible'=>1, 'showoncombobox'=>'3',),
'datec' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>'1', 'position'=>500, 'notnull'=>1, 'visible'=>-2, 'csslist'=>'nowraponall'), 'datec' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>'1', 'position'=>500, 'notnull'=>1, 'visible'=>-2, 'csslist'=>'nowraponall'),

View File

@ -44,20 +44,20 @@ global $dolibarr_main_url_root;
$langs->loadLangs(array("eventorganization", "other", "projects", "companies")); $langs->loadLangs(array("eventorganization", "other", "projects", "companies"));
// Get Parameters // Get Parameters
$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... $action = GETPOST('action', 'aZ09') ? GETPOST('action', 'aZ09') : 'view'; // The action 'create'/'add', 'edit'/'update', 'view', ...
$massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists) $massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists)
$show_files = GETPOST('show_files', 'int'); // Show files area generated by bulk actions ? $show_files = GETPOST('show_files', 'int'); // Show files area generated by bulk actions ?
$confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation $confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation
$cancel = GETPOST('cancel', 'alpha'); // We click on a Cancel button $cancel = GETPOST('cancel', 'alpha'); // We click on a Cancel button
$toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected into a list $toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected into a list
$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'conferenceorboothlist'; // To manage different context of search $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'); // Go back to a dedicated page $backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page
$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') $optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print')
$mode = GETPOST('mode', 'aZ'); // The output mode ('list', 'kanban', 'hierarchy', 'calendar', ...) $mode = GETPOST('mode', 'aZ'); // The output mode ('list', 'kanban', 'hierarchy', 'calendar', ...)
$id = GETPOST('id', 'int'); $id = GETPOST('id', 'int');
$projectid = GETPOST('projectid', 'int'); $projectid = GETPOST('projectid', 'int');
$projectref = GETPOST('ref'); $projectref = GETPOST('ref', 'alpha');
// Load variable for pagination // Load variable for pagination
$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit;
@ -76,7 +76,7 @@ $pagenext = $page + 1;
$object = new ConferenceOrBooth($db); $object = new ConferenceOrBooth($db);
$extrafields = new ExtraFields($db); $extrafields = new ExtraFields($db);
$diroutputmassaction = $conf->eventorganization->dir_output.'/temp/massgeneration/'.$user->id; $diroutputmassaction = $conf->eventorganization->dir_output.'/temp/massgeneration/'.$user->id;
$hookmanager->initHooks(array('conferenceorboothlist')); // Note that conf->hooks_modules contains array $hookmanager->initHooks(array($contextpage)); // Note that conf->hooks_modules contains array
// Fetch optionals attributes and labels // Fetch optionals attributes and labels
$extrafields->fetch_name_optionals_label($object->table_element); $extrafields->fetch_name_optionals_label($object->table_element);
@ -140,8 +140,8 @@ $permissiontoadd = $user->rights->eventorganization->write;
$permissiontodelete = $user->rights->eventorganization->delete; $permissiontodelete = $user->rights->eventorganization->delete;
// Security check // Security check
if (empty($conf->eventorganization->enabled)) { if (!isModEnabled('eventorganization')) {
accessforbidden('Module not enabled'); accessforbidden('Module eventorganization not enabled');
} }
$socid = 0; $socid = 0;
if ($user->socid > 0) { // Protection if external user if ($user->socid > 0) { // Protection if external user
@ -234,7 +234,7 @@ if (empty($reshook)) {
$form = new Form($db); $form = new Form($db);
$now = dol_now(); $now = dol_now();
//$help_url="EN:Module_ConferenceOrBooth|FR:Module_ConferenceOrBooth_FR|ES:Módulo_ConferenceOrBooth"; //$help_url = "EN:Module_ConferenceOrBooth|FR:Module_ConferenceOrBooth_FR|ES:Módulo_ConferenceOrBooth";
$help_url = ''; $help_url = '';
$title = $langs->trans('ListOfConferencesOrBooths'); $title = $langs->trans('ListOfConferencesOrBooths');
$morejs = array(); $morejs = array();
@ -772,13 +772,13 @@ foreach ($object->fields as $key => $val) {
$cssforfield .= ($cssforfield ? ' ' : '').'center'; $cssforfield .= ($cssforfield ? ' ' : '').'center';
} elseif (in_array($val['type'], array('timestamp'))) { } elseif (in_array($val['type'], array('timestamp'))) {
$cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; $cssforfield .= ($cssforfield ? ' ' : '').'nowrap';
} elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $key != 'rowid' && $val['label'] != 'TechnicalID' && empty($val['arrayofkeyval'])) { } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $key != 'rowid' && $key != 'ref' && $val['label'] != 'TechnicalID' && empty($val['arrayofkeyval'])) {
$cssforfield .= ($cssforfield ? ' ' : '').'right'; $cssforfield .= ($cssforfield ? ' ' : '').'right';
} }
if (!empty($arrayfields['t.'.$key]['checked'])) { if (!empty($arrayfields['t.'.$key]['checked'])) {
print '<td class="liste_titre'.($cssforfield ? ' '.$cssforfield : '').($key == 'status' ? ' parentonrightofpage' : '').'">'; print '<td class="liste_titre'.($cssforfield ? ' '.$cssforfield : '').'">';
if (!empty($val['arrayofkeyval']) && is_array($val['arrayofkeyval'])) { if (!empty($val['arrayofkeyval']) && is_array($val['arrayofkeyval'])) {
print $form->selectarray('search_'.$key, $val['arrayofkeyval'], (isset($search[$key]) ? $search[$key] : ''), $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth100'.($key == 'status' ? ' search_status width100 onrightofpage' : ''), 1); print $form->selectarray('search_'.$key, $val['arrayofkeyval'], (isset($search[$key]) ? $search[$key] : ''), $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth100'.($key == 'status' ? ' search_status onrightofpage' : ''), 1);
} elseif ((strpos($val['type'], 'integer:') === 0) || (strpos($val['type'], 'sellist:') === 0)) { } elseif ((strpos($val['type'], 'integer:') === 0) || (strpos($val['type'], 'sellist:') === 0)) {
print $object->showInputField($val, $key, (isset($search[$key]) ? $search[$key] : ''), '', '', 'search_', $cssforfield.' maxwidth250', 1); print $object->showInputField($val, $key, (isset($search[$key]) ? $search[$key] : ''), '', '', 'search_', $cssforfield.' maxwidth250', 1);
} elseif (preg_match('/^(date|timestamp|datetime)/', $val['type'])) { } elseif (preg_match('/^(date|timestamp|datetime)/', $val['type'])) {
@ -831,7 +831,7 @@ foreach ($object->fields as $key => $val) {
$cssforfield .= ($cssforfield ? ' ' : '').'center'; $cssforfield .= ($cssforfield ? ' ' : '').'center';
} elseif (in_array($val['type'], array('timestamp'))) { } elseif (in_array($val['type'], array('timestamp'))) {
$cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; $cssforfield .= ($cssforfield ? ' ' : '').'nowrap';
} elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $key != 'rowid' && $val['label'] != 'TechnicalID' && empty($val['arrayofkeyval'])) { } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $key != 'rowid' && $key != 'ref' && $val['label'] != 'TechnicalID' && empty($val['arrayofkeyval'])) {
$cssforfield .= ($cssforfield ? ' ' : '').'right'; $cssforfield .= ($cssforfield ? ' ' : '').'right';
} }
$cssforfield = preg_replace('/small\s*/', '', $cssforfield); // the 'small' css must not be used for the title label $cssforfield = preg_replace('/small\s*/', '', $cssforfield); // the 'small' css must not be used for the title label
@ -881,94 +881,110 @@ while ($i < $imaxinloop) {
// Store properties in $object // Store properties in $object
$object->setVarsFromFetchObj($obj); $object->setVarsFromFetchObj($obj);
// Show here line of result if ($mode == 'kanban') {
$j = 0; if ($i == 0) {
print '<tr data-rowid="'.$object->id.'" class="oddeven">'; print '<tr><td colspan="'.$savnbfield.'">';
// Action column print '<div class="box-flex-container">';
if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
print '<td class="nowrap center">';
if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
$selected = 0;
if (in_array($object->id, $arrayofselected)) {
$selected = 1;
}
print '<input id="cb'.$object->id.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$object->id.'"'.($selected ? ' checked="checked"' : '').'>';
} }
print '</td>'; // Output Kanban
} print $object->getKanbanView('');
foreach ($object->fields as $key => $val) { if ($i == ($imaxinloop - 1)) {
$cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); print '</div>';
if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) { print '</td></tr>';
$cssforfield .= ($cssforfield ? ' ' : '').'center';
} elseif ($key == 'status') {
$cssforfield .= ($cssforfield ? ' ' : '').'center';
} }
} else {
if (in_array($val['type'], array('timestamp'))) { // Show here line of result
$cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; $j = 0;
} elseif ($key == 'ref') { print '<tr data-rowid="'.$object->id.'" class="oddeven">';
$cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; // Action column
} if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
print '<td class="nowrap center">';
if (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && !in_array($key, array('rowid', 'status')) && empty($val['arrayofkeyval'])) { if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
$cssforfield .= ($cssforfield ? ' ' : '').'right'; $selected = 0;
} if (in_array($object->id, $arrayofselected)) {
//if (in_array($key, array('fk_soc', 'fk_user', 'fk_warehouse'))) $cssforfield = 'tdoverflowmax100'; $selected = 1;
}
if (!empty($arrayfields['t.'.$key]['checked'])) { print '<input id="cb'.$object->id.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$object->id.'"'.($selected ? ' checked="checked"' : '').'>';
print '<td'.($cssforfield ? ' class="'.$cssforfield.'"' : '');
if (preg_match('/tdoverflow/', $cssforfield)) {
print ' title="'.dol_escape_htmltag($object->$key).'"';
}
print '>';
if ($key == 'status') {
print $object->getLibStatut(5);
} elseif ($key == 'ref') {
print $object->getNomUrl(1, 0, '', (($projectid > 0)?'withproject':''));
} else {
print $object->showOutputField($val, $key, $object->$key, '');
} }
print '</td>'; print '</td>';
if (!$i) { if (!$i) {
$totalarray['nbfield']++; $totalarray['nbfield']++;
} }
if (!empty($val['isameasure']) && $val['isameasure'] == 1) {
if (!$i) {
$totalarray['pos'][$totalarray['nbfield']] = 't.'.$key;
}
if (!isset($totalarray['val'])) {
$totalarray['val'] = array();
}
if (!isset($totalarray['val']['t.'.$key])) {
$totalarray['val']['t.'.$key] = 0;
}
$totalarray['val']['t.'.$key] += $object->$key;
}
} }
} foreach ($object->fields as $key => $val) {
// Extra fields $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']);
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) {
// Fields from hook $cssforfield .= ($cssforfield ? ' ' : '').'center';
$parameters = array('arrayfields'=>$arrayfields, 'object'=>$object, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); } elseif ($key == 'status') {
$reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook $cssforfield .= ($cssforfield ? ' ' : '').'center';
print $hookmanager->resPrint;
// Action column
if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
print '<td class="nowrap center">';
if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
$selected = 0;
if (in_array($object->id, $arrayofselected)) {
$selected = 1;
} }
print '<input id="cb'.$object->id.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$object->id.'"'.($selected ? ' checked="checked"' : '').'>';
}
print '</td>';
}
if (!$i) {
$totalarray['nbfield']++;
}
print '</tr>'."\n"; if (in_array($val['type'], array('timestamp'))) {
$cssforfield .= ($cssforfield ? ' ' : '').'nowrap';
} elseif ($key == 'ref') {
$cssforfield .= ($cssforfield ? ' ' : '').'nowrap';
}
if (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && !in_array($key, array('rowid', 'ref', 'status')) && empty($val['arrayofkeyval'])) {
$cssforfield .= ($cssforfield ? ' ' : '').'right';
}
//if (in_array($key, array('fk_soc', 'fk_user', 'fk_warehouse'))) $cssforfield = 'tdoverflowmax100';
if (!empty($arrayfields['t.'.$key]['checked'])) {
print '<td'.($cssforfield ? ' class="'.$cssforfield.(preg_match('/tdoverflow/', $cssforfield) ? ' classfortooltip' : '').'"' : '');
if (preg_match('/tdoverflow/', $cssforfield)) {
print ' title="'.dol_escape_htmltag($object->$key).'"';
}
print '>';
if ($key == 'status') {
print $object->getLibStatut(5);
} elseif ($key == 'ref') {
print $object->getNomUrl(1, 0, '', (($projectid > 0)?'withproject':''));
} else {
print $object->showOutputField($val, $key, $object->$key, '');
}
print '</td>';
if (!$i) {
$totalarray['nbfield']++;
}
if (!empty($val['isameasure']) && $val['isameasure'] == 1) {
if (!$i) {
$totalarray['pos'][$totalarray['nbfield']] = 't.'.$key;
}
if (!isset($totalarray['val'])) {
$totalarray['val'] = array();
}
if (!isset($totalarray['val']['t.'.$key])) {
$totalarray['val']['t.'.$key] = 0;
}
$totalarray['val']['t.'.$key] += $object->$key;
}
}
}
// Extra fields
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php';
// Fields from hook
$parameters = array('arrayfields'=>$arrayfields, 'object'=>$object, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray);
$reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint;
// Action column
if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
print '<td class="nowrap center">';
if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
$selected = 0;
if (in_array($object->id, $arrayofselected)) {
$selected = 1;
}
print '<input id="cb'.$object->id.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$object->id.'"'.($selected ? ' checked="checked"' : '').'>';
}
print '</td>';
if (!$i) {
$totalarray['nbfield']++;
}
}
print '</tr>'."\n";
}
$i++; $i++;
} }

View File

@ -607,7 +607,7 @@ if ($resql) {
} }
print '<td class="liste_titre maxwidthonsmartphone left">'; print '<td class="liste_titre maxwidthonsmartphone left">';
print $form->select_dolusers($search_employee, "search_employee", 1, "", $disabled, $include, '', 0, 0, 0, $morefilter, 0, '', 'maxwidth150'); print $form->select_dolusers($search_employee, "search_employee", 1, "", $disabled, $include, '', 0, 0, 0, $morefilter, 0, '', 'maxwidth125');
print '</td>'; print '</td>';
} }
@ -617,12 +617,12 @@ if ($resql) {
print '<td class="liste_titre maxwidthonsmartphone left">'; print '<td class="liste_titre maxwidthonsmartphone left">';
$validator = new UserGroup($db); $validator = new UserGroup($db);
$excludefilter = $user->admin ? '' : 'u.rowid <> '.$user->id; $excludefilter = $user->admin ? '' : 'u.rowid <> '.$user->id;
$valideurobjects = $validator->listUsersForGroup($excludefilter); $valideurobjects = $validator->listUsersForGroup($excludefilter, 1);
$valideurarray = array(); $valideurarray = array();
foreach ($valideurobjects as $val) { foreach ($valideurobjects as $val) {
$valideurarray[$val->id] = $val->id; $valideurarray[$val->id] = $val->id;
} }
print $form->select_dolusers($search_valideur, "search_valideur", 1, "", 0, $valideurarray, '', 0, 0, 0, $morefilter, 0, '', 'maxwidth150'); print $form->select_dolusers($search_valideur, "search_valideur", 1, "", 0, $valideurarray, '', 0, 0, 0, $morefilter, 0, '', 'maxwidth125');
print '</td>'; print '</td>';
} else { } else {
print '<td class="liste_titre">&nbsp;</td>'; print '<td class="liste_titre">&nbsp;</td>';
@ -642,7 +642,7 @@ if ($resql) {
//$labeltoshow .= ($val['delay'] > 0 ? ' ('.$langs->trans("NoticePeriod").': '.$val['delay'].' '.$langs->trans("days").')':''); //$labeltoshow .= ($val['delay'] > 0 ? ' ('.$langs->trans("NoticePeriod").': '.$val['delay'].' '.$langs->trans("days").')':'');
$arraytypeleaves[$val['rowid']] = $labeltoshow; $arraytypeleaves[$val['rowid']] = $labeltoshow;
} }
print $form->selectarray('search_type', $arraytypeleaves, $search_type, 1, 0, 0, '', 0, 0, 0, '', '', 1); print $form->selectarray('search_type', $arraytypeleaves, $search_type, 1, 0, 0, '', 0, 0, 0, '', 'maxwidth100', 1);
} }
print '</td>'; print '</td>';
} }

View File

@ -118,16 +118,16 @@ if (empty($reshook)) {
} }
$arrayfields = array( $arrayfields = array(
'cp.ref'=>array('label' => 'Ref', 'checked'=>1), 'cp.ref'=>array('label' => 'Ref', 'checked'=>1, 'position'=>5),
'cp.fk_user'=>array('label' => 'Employee', 'checked'=>1), 'cp.fk_type'=>array('label' => 'Type', 'checked'=>1, 'position'=>10),
'cp.fk_type'=>array('label' => 'Type', 'checked'=>1), 'cp.fk_user'=>array('label' => 'Employee', 'checked'=>1, 'position'=>20),
'cp.date_debut'=>array('label' => 'DateDebCP', 'checked'=>1), 'cp.date_debut'=>array('label' => 'DateDebCP', 'checked'=>1, 'position'=>30),
'cp.date_fin'=>array('label' => 'DateFinCP', 'checked'=>1), 'cp.date_fin'=>array('label' => 'DateFinCP', 'checked'=>1, 'position'=>32),
'used_days'=>array('label' => 'NbUseDaysCPShort', 'checked'=>1), 'used_days'=>array('label' => 'NbUseDaysCPShort', 'checked'=>1, 'position'=>34),
'date_start_month'=>array('label' => 'DateStartInMonth', 'checked'=>1), 'date_start_month'=>array('label' => 'DateStartInMonth', 'checked'=>1, 'position'=>50),
'date_end_month'=>array('label' => 'DateEndInMonth', 'checked'=>1), 'date_end_month'=>array('label' => 'DateEndInMonth', 'checked'=>1, 'position'=>52),
'used_days_month'=>array('label' => 'NbUseDaysCPShortInMonth', 'checked'=>1), 'used_days_month'=>array('label' => 'NbUseDaysCPShortInMonth', 'checked'=>1, 'position'=>54),
'cp.description'=>array('label' => 'DescCP', 'checked'=>1), 'cp.description'=>array('label' => 'DescCP', 'checked'=>-1, 'position'=>800),
); );
@ -149,7 +149,7 @@ $search_month = GETPOST("remonth", 'int') ?GETPOST("remonth", 'int') : date("m",
$search_year = GETPOST("reyear", 'int') ?GETPOST("reyear", 'int') : date("Y", time()); $search_year = GETPOST("reyear", 'int') ?GETPOST("reyear", 'int') : date("Y", time());
$year_month = sprintf("%04d", $search_year).'-'.sprintf("%02d", $search_month); $year_month = sprintf("%04d", $search_year).'-'.sprintf("%02d", $search_month);
$sql = "SELECT cp.rowid, cp.ref, cp.fk_user, cp.date_debut, cp.date_fin, cp.fk_type, cp.description, cp.halfday"; $sql = "SELECT cp.rowid, cp.ref, cp.fk_user, cp.date_debut, cp.date_fin, cp.fk_type, cp.description, cp.halfday, cp.statut as status";
$sql .= " FROM ".MAIN_DB_PREFIX."holiday cp"; $sql .= " FROM ".MAIN_DB_PREFIX."holiday cp";
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."user u ON cp.fk_user = u.rowid"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."user u ON cp.fk_user = u.rowid";
$sql .= " WHERE cp.rowid > 0"; $sql .= " WHERE cp.rowid > 0";
@ -250,13 +250,6 @@ if (!empty($arrayfields['cp.ref']['checked'])) {
print '</th>'; print '</th>';
} }
// Filter: Employee
if (!empty($arrayfields['cp.fk_user']['checked'])) {
print '<th class="liste_titre">';
print $form->select_dolusers($search_employee, "search_employee", 1, null, 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth100');
print '</th>';
}
// Filter: Type // Filter: Type
if (!empty($arrayfields['cp.fk_type']['checked'])) { if (!empty($arrayfields['cp.fk_type']['checked'])) {
$typeleaves = $holidaystatic->getTypes(1, -1); $typeleaves = $holidaystatic->getTypes(1, -1);
@ -267,7 +260,14 @@ if (!empty($arrayfields['cp.fk_type']['checked'])) {
} }
print '<th class="liste_titre">'; print '<th class="liste_titre">';
print $form->selectarray('search_type', $arraytypeleaves, $search_type, 1, 0, 0, '', 0, 0, 0, '', '', 1); print $form->selectarray('search_type', $arraytypeleaves, $search_type, 1, 0, 0, '', 0, 0, 0, '', 'maxwidth100', 1);
print '</th>';
}
// Filter: Employee
if (!empty($arrayfields['cp.fk_user']['checked'])) {
print '<th class="liste_titre">';
print $form->select_dolusers($search_employee, "search_employee", 1, null, 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth100');
print '</th>'; print '</th>';
} }
@ -313,12 +313,12 @@ if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
if (!empty($arrayfields['cp.ref']['checked'])) { if (!empty($arrayfields['cp.ref']['checked'])) {
print_liste_field_titre($arrayfields['cp.ref']['label'], $_SERVER["PHP_SELF"], 'cp.ref', '', '', '', $sortfield, $sortorder); print_liste_field_titre($arrayfields['cp.ref']['label'], $_SERVER["PHP_SELF"], 'cp.ref', '', '', '', $sortfield, $sortorder);
} }
if (!empty($arrayfields['cp.fk_user']['checked'])) {
print_liste_field_titre($arrayfields['cp.fk_user']['label'], $_SERVER["PHP_SELF"], 'cp.fk_user', '', '', '', $sortfield, $sortorder);
}
if (!empty($arrayfields['cp.fk_type']['checked'])) { if (!empty($arrayfields['cp.fk_type']['checked'])) {
print_liste_field_titre($arrayfields['cp.fk_type']['label'], $_SERVER["PHP_SELF"], 'cp.fk_type', '', '', '', $sortfield, $sortorder); print_liste_field_titre($arrayfields['cp.fk_type']['label'], $_SERVER["PHP_SELF"], 'cp.fk_type', '', '', '', $sortfield, $sortorder);
} }
if (!empty($arrayfields['cp.fk_user']['checked'])) {
print_liste_field_titre($arrayfields['cp.fk_user']['label'], $_SERVER["PHP_SELF"], 'cp.fk_user', '', '', '', $sortfield, $sortorder);
}
if (!empty($arrayfields['ct.label']['checked'])) { if (!empty($arrayfields['ct.label']['checked'])) {
print_liste_field_titre($arrayfields['ct.label']['label'], $_SERVER["PHP_SELF"], 'ct.label', '', '', '', $sortfield, $sortorder); print_liste_field_titre($arrayfields['ct.label']['label'], $_SERVER["PHP_SELF"], 'ct.label', '', '', '', $sortfield, $sortorder);
} }
@ -398,6 +398,15 @@ if ($num == 0) {
// Leave request // Leave request
$holidaystatic->id = $obj->rowid; $holidaystatic->id = $obj->rowid;
$holidaystatic->ref = $obj->ref; $holidaystatic->ref = $obj->ref;
$holidaystatic->statut = $obj->status;
$holidaystatic->status = $obj->status;
$holidaystatic->fk_user = $obj->fk_user;
$holidaystatic->fk_type = $obj->fk_type;
$holidaystatic->description = $obj->description;
$holidaystatic->halfday = $obj->halfday;
$holidaystatic->date_debut = $db->jdate($obj->date_debut);
$holidaystatic->date_fin = $db->jdate($obj->date_fin);
print '<tr class="oddeven">'; print '<tr class="oddeven">';
// Action column // Action column
@ -408,12 +417,12 @@ if ($num == 0) {
if (!empty($arrayfields['cp.ref']['checked'])) { if (!empty($arrayfields['cp.ref']['checked'])) {
print '<td class="nowraponall">'.$holidaystatic->getNomUrl(1, 1).'</td>'; print '<td class="nowraponall">'.$holidaystatic->getNomUrl(1, 1).'</td>';
} }
if (!empty($arrayfields['cp.fk_user']['checked'])) {
print '<td>'.$user->getFullName($langs).'</td>';
}
if (!empty($arrayfields['cp.fk_type']['checked'])) { if (!empty($arrayfields['cp.fk_type']['checked'])) {
print '<td>'.$arraytypeleaves[$obj->fk_type].'</td>'; print '<td>'.$arraytypeleaves[$obj->fk_type].'</td>';
} }
if (!empty($arrayfields['cp.fk_user']['checked'])) {
print '<td class="tdoverflowmax150">'.$user->getFullName($langs).'</td>';
}
if (!empty($arrayfields['cp.date_debut']['checked'])) { if (!empty($arrayfields['cp.date_debut']['checked'])) {
print '<td class="center">'.dol_print_date($db->jdate($obj->date_debut), 'day'); print '<td class="center">'.dol_print_date($db->jdate($obj->date_debut), 'day');
@ -447,7 +456,11 @@ if ($num == 0) {
print '<td class="right">'.num_open_day($date_start_inmonth, $date_end_inmonth, 0, 1, $halfdayinmonth).'</td>'; print '<td class="right">'.num_open_day($date_start_inmonth, $date_end_inmonth, 0, 1, $halfdayinmonth).'</td>';
} }
if (!empty($arrayfields['cp.description']['checked'])) { if (!empty($arrayfields['cp.description']['checked'])) {
print '<td class="maxwidth300 small">'.dolGetFirstLineOfText(dol_string_nohtmltag($obj->description, 1)).'</td>'; print '<td class="maxwidth300 small">';
print '<div class="twolinesmax">';
print dolGetFirstLineOfText(dol_string_nohtmltag($obj->description, 1));
print '</div>';
print '</td>';
} }
// Action column // Action column
if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {

View File

@ -333,9 +333,8 @@ if (!empty($arrayfields['cpl.date_action']['checked'])) {
if (!empty($arrayfields['cpl.fk_user_action']['checked'])) { if (!empty($arrayfields['cpl.fk_user_action']['checked'])) {
$validator = new UserGroup($db); $validator = new UserGroup($db);
$excludefilter = $user->admin ? '' : 'u.rowid <> '.$user->id; $excludefilter = $user->admin ? '' : 'u.rowid <> '.$user->id;
$valideurobjects = $validator->listUsersForGroup($excludefilter); $valideurobjects = $validator->listUsersForGroup($excludefilter, 1);
$valideurarray = array(); $valideurarray = array();
foreach ($valideurobjects as $val) { foreach ($valideurobjects as $val) {
$valideurarray[$val->id] = $val->id; $valideurarray[$val->id] = $val->id;
} }

View File

@ -13,10 +13,23 @@ require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit4da13270269c89a28e472e1f7324e6d1::getLoader(); return ComposerAutoloaderInit4da13270269c89a28e472e1f7324e6d1::getLoader();
*/ */
// Add class/method of PHP8 for compatibility with older versions of PHP
require_once(__DIR__.'/symfony/polyfill-php80/bootstrap.php');
spl_autoload_register(function ($class_name) { spl_autoload_register(function ($class_name) {
// Enable this to detect what we need for require_once // Enable this to detect what we need for require_once
//var_dump($class_name); //var_dump($class_name);
$preg_match = preg_match('/^Symfony\\\Polyfill\\\Php80\\\/', $class_name);
if (1 === $preg_match) {
$class_name = preg_replace('/\\\/', '/', $class_name);
$class_name = preg_replace('/^Symfony\\/Polyfill\\/Php80\\//', '', $class_name);
require_once __DIR__ . '/symfony/polyfill-php80/' . $class_name . '.php';
}
$preg_match = preg_match('/^Webklex\\\PHPIMAP\\\/', $class_name); $preg_match = preg_match('/^Webklex\\\PHPIMAP\\\/', $class_name);
if (1 === $preg_match) { if (1 === $preg_match) {
$class_name = preg_replace('/\\\/', '/', $class_name); $class_name = preg_replace('/\\\/', '/', $class_name);

View File

@ -27,6 +27,7 @@
* \brief Test if file conf can be modified and if does not exists, test if install process can create it * \brief Test if file conf can be modified and if does not exists, test if install process can create it
*/ */
define('ALLOWED_IF_UPGRADE_UNLOCK_FOUND', 1);
include_once 'inc.php'; include_once 'inc.php';
global $langs; global $langs;

View File

@ -180,33 +180,27 @@ if (!empty($dolibarr_main_document_root_alt)) {
} }
// Security check (old method, when directory is renamed /install.lock) // Check install.lock (for both install and upgrade)
if (preg_match('/install\.lock/i', $_SERVER["SCRIPT_FILENAME"])) {
if (!is_object($langs)) {
$langs = new Translate('..', $conf);
$langs->setDefaultLang('auto');
}
$langs->load("install");
header("X-Content-Type-Options: nosniff"); $lockfile = DOL_DATA_ROOT.'/install.lock'; // To lock all /install pages
header("X-Frame-Options: SAMEORIGIN"); // Frames allowed only if on same domain (stop some XSS attacks) $lockfile2 = DOL_DOCUMENT_ROOT.'/install.lock'; // To lock all /install pages (recommended)
$upgradeunlockfile = DOL_DATA_ROOT.'/upgrade.unlock'; // To unlock upgrade process
print $langs->trans("YouTryInstallDisabledByDirLock"); $upgradeunlockfile2 = DOL_DOCUMENT_ROOT.'/upgrade.unlock'; // To unlock upgrade process
if (!empty($dolibarr_main_url_root)) {
print 'Click on following link, <a href="'.$dolibarr_main_url_root.'/admin/index.php?mainmenu=home&leftmenu=setup'.(GETPOSTISSET("login") ? '&username='.urlencode(GETPOST("login")) : '').'">';
print $langs->trans("ClickHereToGoToApp");
print '</a>';
}
exit;
}
$lockfile = DOL_DATA_ROOT.'/install.lock';
if (constant('DOL_DATA_ROOT') === null) { if (constant('DOL_DATA_ROOT') === null) {
// We don't have a configuration file yet // We don't have a configuration file yet
// Try to detect any lockfile in the default documents path // Try to detect any lockfile in the default documents path
$lockfile = '../../documents/install.lock'; $lockfile = '../../documents/install.lock';
$upgradeunlockfile = '../../documents/upgrade.unlock';
} }
if (@file_exists($lockfile)) { $islocked=false;
if (@file_exists($lockfile) || @file_exists($lockfile2)) {
if (!defined('ALLOWED_IF_UPGRADE_UNLOCK_FOUND') || (! @file_exists($upgradeunlockfile) && ! @file_exists($upgradeunlockfile2))) {
// If this is a dangerous install page (ALLOWED_IF_UPGRADE_UNLOCK_FOUND not defined) or
// if there is no upgrade unlock files, we lock the pages.
$islocked = true;
}
}
if ($islocked) { // Pages are locked
if (!isset($langs) || !is_object($langs)) { if (!isset($langs) || !is_object($langs)) {
$langs = new Translate('..', $conf); $langs = new Translate('..', $conf);
$langs->setDefaultLang('auto'); $langs->setDefaultLang('auto');
@ -216,14 +210,22 @@ if (@file_exists($lockfile)) {
header("X-Content-Type-Options: nosniff"); header("X-Content-Type-Options: nosniff");
header("X-Frame-Options: SAMEORIGIN"); // Frames allowed only if on same domain (stop some XSS attacks) header("X-Frame-Options: SAMEORIGIN"); // Frames allowed only if on same domain (stop some XSS attacks)
print $langs->trans("YouTryInstallDisabledByFileLock"); if (GETPOST('action') != 'upgrade') {
print $langs->trans("YouTryInstallDisabledByFileLock").'<br>';
} else {
print $langs->trans("YouTryUpgradeDisabledByMissingFileUnLock").'<br>';
}
if (!empty($dolibarr_main_url_root)) { if (!empty($dolibarr_main_url_root)) {
print $langs->trans("ClickOnLinkOrRemoveManualy").'<br>'; if (GETPOST('action') != 'upgrade') {
print $langs->trans("ClickOnLinkOrRemoveManualy").'<br>';
} else {
print $langs->trans("ClickOnLinkOrCreateUnlockFileManualy").'<br>';
}
print '<a href="'.$dolibarr_main_url_root.'/admin/index.php?mainmenu=home&leftmenu=setup'.(GETPOSTISSET("login") ? '&username='.urlencode(GETPOST("login")) : '').'">'; print '<a href="'.$dolibarr_main_url_root.'/admin/index.php?mainmenu=home&leftmenu=setup'.(GETPOSTISSET("login") ? '&username='.urlencode(GETPOST("login")) : '').'">';
print $langs->trans("ClickHereToGoToApp"); print $langs->trans("ClickHereToGoToApp");
print '</a>'; print '</a>';
} else { } else {
print 'If you always reach this page, you must remove install.lock file manually.<br>'; print 'If you always reach this page, you must remove the install.lock file manually.<br>';
} }
exit; exit;
} }

View File

@ -23,6 +23,8 @@
* \brief Show page to select language. This is done only for a first installation. * \brief Show page to select language. This is done only for a first installation.
* For a reinstall this page redirect to page check.php * For a reinstall this page redirect to page check.php
*/ */
define('ALLOWED_IF_UPGRADE_UNLOCK_FOUND', 1);
include_once 'inc.php'; include_once 'inc.php';
include_once '../core/class/html.form.class.php'; include_once '../core/class/html.form.class.php';
include_once '../core/class/html.formadmin.class.php'; include_once '../core/class/html.formadmin.class.php';

View File

@ -37,6 +37,7 @@
-- VMYSQL4.3 ALTER TABLE llx_hrm_skillrank CHANGE COLUMN `rank` rankorder integer; -- VMYSQL4.3 ALTER TABLE llx_hrm_skillrank CHANGE COLUMN `rank` rankorder integer;
-- VPGSQL8.2 ALTER TABLE llx_hrm_skillrank CHANGE COLUMN rank rankorder integer; -- VPGSQL8.2 ALTER TABLE llx_hrm_skillrank CHANGE COLUMN rank rankorder integer;
ALTER TABLE llx_accounting_system CHANGE COLUMN fk_pays fk_country integer;
-- v18 -- v18
@ -63,3 +64,10 @@ ALTER TABLE llx_website ADD COLUMN pageviews_previous_month BIGINT UNSIGNED DEFA
ALTER TABLE llx_product_stock ADD CONSTRAINT fk_product_product_rowid FOREIGN KEY (fk_product) REFERENCES llx_product (rowid); ALTER TABLE llx_product_stock ADD CONSTRAINT fk_product_product_rowid FOREIGN KEY (fk_product) REFERENCES llx_product (rowid);
ALTER TABLE llx_product_stock ADD CONSTRAINT fk_entrepot_entrepot_rowid FOREIGN KEY (fk_entrepot) REFERENCES llx_entrepot (rowid); ALTER TABLE llx_product_stock ADD CONSTRAINT fk_entrepot_entrepot_rowid FOREIGN KEY (fk_entrepot) REFERENCES llx_entrepot (rowid);
ALTER TABLE llx_bank_account ADD COLUMN owner_zip varchar(25);
ALTER TABLE llx_bank_account ADD COLUMN owner_town varchar(50);
ALTER TABLE llx_bank_account ADD COLUMN owner_country_id integer DEFAULT NULL;

View File

@ -576,3 +576,81 @@ DELETE FROM llx_rights_def WHERE module = 'hrm' AND perms = 'employee';
-- DROP TABLE tmp_bank2; -- DROP TABLE tmp_bank2;
-- CREATE TABLE tmp_bank2 SELECT b.rowid, b.amount, p.rowid as pid, p.amount as pamount, p.multicurrency_amount as pmulticurrencyamount FROM llx_bank as b INNER JOIN llx_bank_url as bu ON bu.fk_bank=b.rowid AND bu.type = 'payment_supplier' INNER JOIN llx_paiementfourn as p ON bu.url_id = p.rowid WHERE p.multicurrency_amount <> 0 AND p.multicurrency_amount <> p.amount; -- CREATE TABLE tmp_bank2 SELECT b.rowid, b.amount, p.rowid as pid, p.amount as pamount, p.multicurrency_amount as pmulticurrencyamount FROM llx_bank as b INNER JOIN llx_bank_url as bu ON bu.fk_bank=b.rowid AND bu.type = 'payment_supplier' INNER JOIN llx_paiementfourn as p ON bu.url_id = p.rowid WHERE p.multicurrency_amount <> 0 AND p.multicurrency_amount <> p.amount;
-- UPDATE llx_bank as b SET b.amount_main_currency = (SELECT tb.pamount FROM tmp_bank2 as tb WHERE tb.rowid = b.rowid) WHERE b.amount_main_currency IS NULL; -- UPDATE llx_bank as b SET b.amount_main_currency = (SELECT tb.pamount FROM tmp_bank2 as tb WHERE tb.rowid = b.rowid) WHERE b.amount_main_currency IS NULL;
-- Delete duplicate entries into llx_c_transport_mode
-- VMYSQL4.1 DELETE T1 FROM llx_c_transport_mode as T1, llx_c_transport_mode as T2 where T1.entity = T2.entity AND T1.code = T2.code and T1.rowid > T2.rowid;
-- VPGSQL8.2 DELETE FROM llx_c_transport_mode as T1 WHERE rowid NOT IN (SELECT min(rowid) FROM llx_c_transport_mode GROUP BY code, entity);
-- Delete department of regions linked to no coutry, then delete region with no country
DELETE FROM llx_c_departements WHERE fk_region <> 0 AND fk_region IN (select code_region FROM llx_c_regions WHERE fk_pays NOT IN (select rowid from llx_c_country));
DELETE from llx_c_regions WHERE fk_pays NOT IN (select rowid from llx_c_country);
-- Drop duplicate indexes not named correctly and create the only one we should have
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combination;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_2;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_3;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_4;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_5;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_6;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_7;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_8;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_9;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_10;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_11;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_12;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_13;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_14;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_15;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_16;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_17;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_18;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_19;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_20;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_21;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_22;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_23;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_24;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_25;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_26;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_27;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_28;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_29;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_30;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_31;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_32;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_33;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_34;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_35;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_36;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_37;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_38;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_39;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_40;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_41;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_42;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_43;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_44;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_45;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_46;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_47;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_48;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_49;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_50;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_51;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_52;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_53;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_54;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_55;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_56;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_57;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_58;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_59;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_60;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_61;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_62;
alter table llx_product_attribute_combination_price_level drop index fk_product_attribute_combinati_63;
ALTER TABLE llx_product_attribute_combination_price_level ADD UNIQUE INDEX uk_prod_att_comb_price_level(fk_product_attribute_combination, fk_price_level);

View File

@ -47,6 +47,9 @@ create table llx_bank_account
fk_pays integer NOT NULL, fk_pays integer NOT NULL,
proprio varchar(60), proprio varchar(60),
owner_address varchar(255), owner_address varchar(255),
owner_zip varchar(25),
owner_town varchar(50),
owner_country_id integer DEFAULT NULL,
courant smallint DEFAULT 0 NOT NULL, courant smallint DEFAULT 0 NOT NULL,
clos smallint DEFAULT 0 NOT NULL, clos smallint DEFAULT 0 NOT NULL,
rappro smallint DEFAULT 1, rappro smallint DEFAULT 1,

View File

@ -24,8 +24,18 @@
* \file htdocs/install/step5.php * \file htdocs/install/step5.php
* \ingroup install * \ingroup install
* \brief Last page of upgrade / install process * \brief Last page of upgrade / install process
*
* This page is called with parameter action=set by step4.php or action=upgrade by upgrade2.php
* For installation:
* It creates the login admin and set the MAIN_SECURITY_SALT to a random value.
* It set the value for MAIN_VERSION_LAST_INSTALL
* It creates the install.lock and shows the final message.
* For upgrade:
* It updates the value for MAIN_VERSION_LAST_UPGRADE.
* It (re)creates the install.lock and shows the final message.
*/ */
define('ALLOWED_IF_UPGRADE_UNLOCK_FOUND', 1);
include_once 'inc.php'; include_once 'inc.php';
if (file_exists($conffile)) { if (file_exists($conffile)) {
include_once $conffile; include_once $conffile;
@ -384,7 +394,7 @@ if ($action == "set") {
if (empty($force_install_lockinstall) || $force_install_lockinstall == 1) { if (empty($force_install_lockinstall) || $force_install_lockinstall == 1) {
$force_install_lockinstall = 444; // For backward compatibility $force_install_lockinstall = 444; // For backward compatibility
} }
fwrite($fp, "This is a lock file to prevent use of install pages (set with permission ".$force_install_lockinstall.")"); fwrite($fp, "This is a lock file to prevent use of install or upgrade pages (set with permission ".$force_install_lockinstall.")");
fclose($fp); fclose($fp);
@chmod($lockfile, octdec($force_install_lockinstall)); @chmod($lockfile, octdec($force_install_lockinstall));
$createlock = 1; $createlock = 1;
@ -416,8 +426,9 @@ if ($action == "set") {
} elseif (empty($action) || preg_match('/upgrade/i', $action)) { } elseif (empty($action) || preg_match('/upgrade/i', $action)) {
// If upgrade // If upgrade
if (empty($conf->global->MAIN_VERSION_LAST_UPGRADE) || ($conf->global->MAIN_VERSION_LAST_UPGRADE == DOL_VERSION)) { if (empty($conf->global->MAIN_VERSION_LAST_UPGRADE) || ($conf->global->MAIN_VERSION_LAST_UPGRADE == DOL_VERSION)) {
// Upgrade is finished (database is on same version than files) // Upgrade is finished (database is on the same version than files)
print '<img class="valignmiddle inline-block paddingright" src="../theme/common/octicons/build/svg/checklist.svg" width="20" alt="Configuration"> <span class="valignmiddle">'.$langs->trans("SystemIsUpgraded")."</span><br>"; print '<img class="valignmiddle inline-block paddingright" src="../theme/common/octicons/build/svg/checklist.svg" width="20" alt="Configuration">';
print ' <span class="valignmiddle">'.$langs->trans("SystemIsUpgraded")."</span><br>";
// Create install.lock file if it does not exists. // Create install.lock file if it does not exists.
// Note: it should always exists. A better solution to allow upgrade will be to add an upgrade.unlock file // Note: it should always exists. A better solution to allow upgrade will be to add an upgrade.unlock file
@ -430,7 +441,7 @@ if ($action == "set") {
if (empty($force_install_lockinstall) || $force_install_lockinstall == 1) { if (empty($force_install_lockinstall) || $force_install_lockinstall == 1) {
$force_install_lockinstall = 444; // For backward compatibility $force_install_lockinstall = 444; // For backward compatibility
} }
fwrite($fp, "This is a lock file to prevent use of install pages (set with permission ".$force_install_lockinstall.")"); fwrite($fp, "This is a lock file to prevent use of install or upgrade pages (set with permission ".$force_install_lockinstall.")");
fclose($fp); fclose($fp);
@chmod($lockfile, octdec($force_install_lockinstall)); @chmod($lockfile, octdec($force_install_lockinstall));
$createlock = 1; $createlock = 1;

View File

@ -36,6 +36,7 @@
* \brief Run migration script * \brief Run migration script
*/ */
define('ALLOWED_IF_UPGRADE_UNLOCK_FOUND', 1);
include_once 'inc.php'; include_once 'inc.php';
if (!file_exists($conffile)) { if (!file_exists($conffile)) {
print 'Error: Dolibarr config file was not found. This may means that Dolibarr is not installed yet. Please call the page "/install/index.php" instead of "/install/upgrade.php").'; print 'Error: Dolibarr config file was not found. This may means that Dolibarr is not installed yet. Please call the page "/install/index.php" instead of "/install/upgrade.php").';

View File

@ -38,6 +38,7 @@
* \brief Upgrade some data * \brief Upgrade some data
*/ */
define('ALLOWED_IF_UPGRADE_UNLOCK_FOUND', 1);
include_once 'inc.php'; include_once 'inc.php';
if (!file_exists($conffile)) { if (!file_exists($conffile)) {
print 'Error: Dolibarr config file was not found. This may means that Dolibarr is not installed yet. Please call the page "/install/index.php" instead of "/install/upgrade.php").'; print 'Error: Dolibarr config file was not found. This may means that Dolibarr is not installed yet. Please call the page "/install/index.php" instead of "/install/upgrade.php").';

View File

@ -0,0 +1,3 @@
# Dolibarr language file - Source file is en_US - companies
HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> with this vendor
HasNoRelativeDiscountFromSupplier=No default relative discount with this vendor

View File

@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=حدد نوع إرجاع السطر
ACCOUNTING_EXPORT_PREFIX_SPEC=تحديد بادئة لاسم الملف ACCOUNTING_EXPORT_PREFIX_SPEC=تحديد بادئة لاسم الملف
ThisService=هذه الخدمة ThisService=هذه الخدمة
ThisProduct=هذا المنتج ThisProduct=هذا المنتج
DefaultForService=افتراضي للخدمة DefaultForService=Default for services
DefaultForProduct=افتراضي للمنتج DefaultForProduct=Default for products
ProductForThisThirdparty=منتج لهذا الطرف الثالث ProductForThisThirdparty=منتج لهذا الطرف الثالث
ServiceForThisThirdparty=خدمة لهذا الطرف الثالث ServiceForThisThirdparty=خدمة لهذا الطرف الثالث
CantSuggest=لا أستطيع أن أقترح CantSuggest=لا أستطيع أن أقترح
@ -101,7 +101,8 @@ ShowAccountingAccount=عرض حساب المحاسبة
ShowAccountingJournal=عرض دفتر يومية ShowAccountingJournal=عرض دفتر يومية
ShowAccountingAccountInLedger=عرض حساب المحاسبة في دفتر الأستاذ ShowAccountingAccountInLedger=عرض حساب المحاسبة في دفتر الأستاذ
ShowAccountingAccountInJournals=عرض حساب المحاسبة في دفاتر اليومية ShowAccountingAccountInJournals=عرض حساب المحاسبة في دفاتر اليومية
AccountAccountingSuggest=حساب المحاسبة المقترح DataUsedToSuggestAccount=Data used to suggest account
AccountAccountingSuggest=Account suggested
MenuDefaultAccounts=الحسابات الافتراضية MenuDefaultAccounts=الحسابات الافتراضية
MenuBankAccounts=الحسابات المصرفية MenuBankAccounts=الحسابات المصرفية
MenuVatAccounts=حسابات ضريبة القيمة المضافة MenuVatAccounts=حسابات ضريبة القيمة المضافة
@ -126,6 +127,7 @@ WriteBookKeeping=تسجيل المعاملات في المحاسبة
Bookkeeping=دفتر حسابات Bookkeeping=دفتر حسابات
BookkeepingSubAccount=حساب استاذ فرعي BookkeepingSubAccount=حساب استاذ فرعي
AccountBalance=رصيد الحساب AccountBalance=رصيد الحساب
AccountBalanceSubAccount=Sub-accounts balance
ObjectsRef=مرجع الكائن المصدر ObjectsRef=مرجع الكائن المصدر
CAHTF=Total purchase vendor before tax CAHTF=Total purchase vendor before tax
TotalExpenseReport=تقرير المصاريف الإجمالية TotalExpenseReport=تقرير المصاريف الإجمالية
@ -189,6 +191,7 @@ ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be us
UseAuxiliaryAccountOnCustomerDeposit=تخزين حساب العميل كحساب فردي في دفتر الأستاذ الفرعي لخطوط الدفعات المقدمة (إذا تم تعطيله ، فسيظل الحساب الفردي لبنود الدَفعة المقدمة فارغًا) UseAuxiliaryAccountOnCustomerDeposit=تخزين حساب العميل كحساب فردي في دفتر الأستاذ الفرعي لخطوط الدفعات المقدمة (إذا تم تعطيله ، فسيظل الحساب الفردي لبنود الدَفعة المقدمة فارغًا)
ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default
UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty)
ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY=Accounting account by default to register customer retained warranty
ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet)
ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet)
@ -218,6 +221,7 @@ JournalLabel=اسم دفتر اليومية
NumPiece=رقم القطعة NumPiece=رقم القطعة
TransactionNumShort=رقم. العملية TransactionNumShort=رقم. العملية
AccountingCategory=Custom group of accounts AccountingCategory=Custom group of accounts
AccountingCategories=Custom groups of accounts
GroupByAccountAccounting=تجميع حسب حساب دفتر الأستاذ العام GroupByAccountAccounting=تجميع حسب حساب دفتر الأستاذ العام
GroupBySubAccountAccounting=تجميع حسب حساب دفتر الأستاذ الفرعي GroupBySubAccountAccounting=تجميع حسب حساب دفتر الأستاذ الفرعي
AccountingAccountGroupsDesc=يمكنك هنا تحديد بعض مجموعات الحساب. سيتم استخدامها لتقارير المحاسبة الشخصية. AccountingAccountGroupsDesc=يمكنك هنا تحديد بعض مجموعات الحساب. سيتم استخدامها لتقارير المحاسبة الشخصية.
@ -265,6 +269,7 @@ ShowSubtotalByGroup=عرض المجموع الفرعي حسب المستوى
Pcgtype=مجموعة الحساب Pcgtype=مجموعة الحساب
PcgtypeDesc=تُستخدم مجموعة الحسابات كمعايير "تصفية" و "تجميع" محددة مسبقًا لبعض التقارير المحاسبية. على سبيل المثال ، يتم استخدام "الدخل" أو "المصاريف" كمجموعات لحسابات المنتجات لإنشاء تقرير المصاريف / الدخل. PcgtypeDesc=تُستخدم مجموعة الحسابات كمعايير "تصفية" و "تجميع" محددة مسبقًا لبعض التقارير المحاسبية. على سبيل المثال ، يتم استخدام "الدخل" أو "المصاريف" كمجموعات لحسابات المنتجات لإنشاء تقرير المصاريف / الدخل.
AccountingCategoriesDesc=Custom group of accounts can be used to group accounting accounts into one name to ease filter use or building of custom reports.
Reconcilable=قابل للتسوية Reconcilable=قابل للتسوية
@ -294,6 +299,7 @@ DescValidateMovements=سيتم حظر أي تعديل أو حذف للكتابة
ValidateHistory=ربط تلقائي ValidateHistory=ربط تلقائي
AutomaticBindingDone=تم إجراء عمليات ربط تلقائية (%s) - الربط التلقائي غير ممكن لبعض السجلات (%s) AutomaticBindingDone=تم إجراء عمليات ربط تلقائية (%s) - الربط التلقائي غير ممكن لبعض السجلات (%s)
DoManualBindingForFailedRecord=You have to do a manual link for the %s row(s) not linked automatically.
ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used
MvtNotCorrectlyBalanced=الحركة غير متوازنة بشكل صحيح. الخصم = %s والائتمان = %s MvtNotCorrectlyBalanced=الحركة غير متوازنة بشكل صحيح. الخصم = %s والائتمان = %s
@ -337,11 +343,13 @@ ACCOUNTING_DISABLE_BINDING_ON_SALES=تعطيل الربط والتحويل في
ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=تعطيل الربط والتحويل في المحاسبة على المشتريات (لن يتم أخذ فواتير البائعين في الاعتبار في المحاسبة) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=تعطيل الربط والتحويل في المحاسبة على المشتريات (لن يتم أخذ فواتير البائعين في الاعتبار في المحاسبة)
ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=تعطيل الربط والتحويل في المحاسبة على تقارير المصروفات (لن يتم أخذ تقارير المصروفات في الاعتبار في المحاسبة) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=تعطيل الربط والتحويل في المحاسبة على تقارير المصروفات (لن يتم أخذ تقارير المصروفات في الاعتبار في المحاسبة)
ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting
ACCOUNTING_ENABLE_AUTOLETTERING=Enable the automatic lettering when transferring to accounting
## Export ## Export
NotExportLettering=Do not export the lettering when generating the file NotExportLettering=Do not export the lettering when generating the file
NotifiedExportDate=ضع علامة على الخطوط المصدرة كـ <span class="warning"> (لتعديل سطر ، ستحتاج إلى حذف المعاملة بالكامل وإعادة تحويلها إلى المحاسبة) </span> NotifiedExportDate=ضع علامة على الخطوط المصدرة كـ <span class="warning"> (لتعديل سطر ، ستحتاج إلى حذف المعاملة بالكامل وإعادة تحويلها إلى المحاسبة) </span>
NotifiedValidationDate=تحقق من صحة الإدخالات التي تم تصديرها وقفلها <span class="warning"> (نفس التأثير من ميزة "%s" ، ولن يكون تعديل الأسطر وحذفها بالتأكيد ممكنًا) </span> NotifiedValidationDate=تحقق من صحة الإدخالات التي تم تصديرها وقفلها <span class="warning"> (نفس التأثير من ميزة "%s" ، ولن يكون تعديل الأسطر وحذفها بالتأكيد ممكنًا) </span>
NotifiedExportFull=Export documents ?
DateValidationAndLock=التحقق من صحة التاريخ والقفل DateValidationAndLock=التحقق من صحة التاريخ والقفل
ConfirmExportFile=تأكيد إنشاء ملف محاسبي تصدير؟ ConfirmExportFile=تأكيد إنشاء ملف محاسبي تصدير؟
ExportDraftJournal=تصدير مسودة دفتر اليومية ExportDraftJournal=تصدير مسودة دفتر اليومية
@ -398,7 +406,7 @@ SaleLocal=بيع محلي
SaleExport=بيع تصدير SaleExport=بيع تصدير
SaleEEC=بيع في الاتحاد الاوروبي SaleEEC=بيع في الاتحاد الاوروبي
SaleEECWithVAT=البيع في EEC مع ضريبة القيمة المضافة ليست فارغة ، لذلك نفترض أن هذا ليس بيعًا داخل الاتحاد والحساب المقترح هو حساب المنتج القياسي. 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. SaleEECWithoutVATNumber=Sale in EEC with no VAT but the VAT ID of thirdparty is not defined. We fall back on the account for standard sales. You can fix the VAT ID of the thirdparty, or change the product account suggested for binding if needed.
ForbiddenTransactionAlreadyExported=ممنوع: تم التحقق من صحة المعاملة و / أو تصديرها. ForbiddenTransactionAlreadyExported=ممنوع: تم التحقق من صحة المعاملة و / أو تصديرها.
ForbiddenTransactionAlreadyValidated=ممنوع: تم التحقق من صحة المعاملة. ForbiddenTransactionAlreadyValidated=ممنوع: تم التحقق من صحة المعاملة.
## Dictionary ## Dictionary
@ -442,6 +450,7 @@ AccountancyErrorMismatchLetterCode=عدم تطابق في التوفيق بين
AccountancyErrorMismatchBalanceAmount=الرصيد (%s) لا يساوي 0 AccountancyErrorMismatchBalanceAmount=الرصيد (%s) لا يساوي 0
AccountancyErrorLetteringBookkeeping=حدثت أخطاء بخصوص المعاملات: %s AccountancyErrorLetteringBookkeeping=حدثت أخطاء بخصوص المعاملات: %s
ErrorAccountNumberAlreadyExists=رقم المحاسبة %s موجود بالفعل ErrorAccountNumberAlreadyExists=رقم المحاسبة %s موجود بالفعل
ErrorArchiveAddFile=Can't put "%s" file in archive
## Import ## Import
ImportAccountingEntries=مداخيل حسابية ImportAccountingEntries=مداخيل حسابية
@ -468,5 +477,7 @@ FECFormatMulticurrencyCode=كود متعدد العملات (ايديفيز)
DateExport=تاريخ التصدير DateExport=تاريخ التصدير
WarningReportNotReliable=تحذير ، هذا التقرير لا يستند إلى دفتر الأستاذ ، لذلك لا يحتوي على معاملة تم تعديلها يدويًا في دفتر الأستاذ. إذا كان تسجيل دفتر اليومية الخاص بك محدثًا ، فسيكون عرض مسك الدفاتر أكثر دقة. WarningReportNotReliable=تحذير ، هذا التقرير لا يستند إلى دفتر الأستاذ ، لذلك لا يحتوي على معاملة تم تعديلها يدويًا في دفتر الأستاذ. إذا كان تسجيل دفتر اليومية الخاص بك محدثًا ، فسيكون عرض مسك الدفاتر أكثر دقة.
ExpenseReportJournal=تقرير دفتر المصاريف ExpenseReportJournal=تقرير دفتر المصاريف
DocsAlreadyExportedAreExcluded=Docs already exported are excluded
ClickToHideAlreadyExportedLines=Click to hide already exported lines
NAccounts=%s حساباً NAccounts=%s حساباً

View File

@ -226,6 +226,7 @@ NoUserGroupDefined=لم يتم تحديد مجموعة مستخدمين
Password=كلمة المرور Password=كلمة المرور
PasswordRetype=Repeat your password PasswordRetype=Repeat your password
NoteSomeFeaturesAreDisabled=لاحظ أنه تم تعطيل الكثير من الميزات | الوحدات في هذا العرض التوضيحي. NoteSomeFeaturesAreDisabled=لاحظ أنه تم تعطيل الكثير من الميزات | الوحدات في هذا العرض التوضيحي.
YourUserFile=Your user file
Name=اسم Name=اسم
NameSlashCompany=الاسم | الشركة NameSlashCompany=الاسم | الشركة
Person=شخص Person=شخص
@ -897,6 +898,9 @@ MassFilesArea=مساحة للملفات التي تم إنشاؤها بواسط
ShowTempMassFilesArea=عرض مساحة الملفات التي تم إنشاؤها بواسطة الإجراءات الجماعية ShowTempMassFilesArea=عرض مساحة الملفات التي تم إنشاؤها بواسطة الإجراءات الجماعية
ConfirmMassDeletion=تأكيد الحذف الضخم ConfirmMassDeletion=تأكيد الحذف الضخم
ConfirmMassDeletionQuestion=هل أنت متأكد من أنك تريد حذف %s السجل (السجلات) المحددة؟ ConfirmMassDeletionQuestion=هل أنت متأكد من أنك تريد حذف %s السجل (السجلات) المحددة؟
ConfirmMassClone=Bulk clone confirmation
ConfirmMassCloneQuestion=Select project to clone to
ConfirmMassCloneToOneProject=Clone to project %s
RelatedObjects=كائنات ذات صلة RelatedObjects=كائنات ذات صلة
ClassifyBilled=تصنيف الفواتير ClassifyBilled=تصنيف الفواتير
ClassifyUnbilled=تصنيف غير مفوتر ClassifyUnbilled=تصنيف غير مفوتر
@ -912,8 +916,8 @@ ExportFilteredList=تصدير قائمة التى تم تصفيتها
ExportList=قائمة التصدير ExportList=قائمة التصدير
ExportOptions=خيارات التصدير ExportOptions=خيارات التصدير
IncludeDocsAlreadyExported=تضمين المستندات التي تم تصديرها IncludeDocsAlreadyExported=تضمين المستندات التي تم تصديرها
ExportOfPiecesAlreadyExportedIsEnable=Export of pieces already exported is enable ExportOfPiecesAlreadyExportedIsEnable=Documents already exported are visible and will be exported
ExportOfPiecesAlreadyExportedIsDisable=Export of pieces already exported is disable ExportOfPiecesAlreadyExportedIsDisable=Documents already exported are hidden and won't be exported
AllExportedMovementsWereRecordedAsExported=تم تسجيل جميع حركات التصدير على أنها مصدرة AllExportedMovementsWereRecordedAsExported=تم تسجيل جميع حركات التصدير على أنها مصدرة
NotAllExportedMovementsCouldBeRecordedAsExported=لا يمكن تسجيل جميع حركات التصدير على أنها مصدرة NotAllExportedMovementsCouldBeRecordedAsExported=لا يمكن تسجيل جميع حركات التصدير على أنها مصدرة
Miscellaneous=متفرقات Miscellaneous=متفرقات
@ -1128,6 +1132,7 @@ DeleteFileText=هل تريد حقا حذف هذا الملف؟
ShowOtherLanguages=عرض اللغات الأخرى ShowOtherLanguages=عرض اللغات الأخرى
SwitchInEditModeToAddTranslation=قم بالتبديل في وضع التحرير لإضافة ترجمات لهذه اللغة SwitchInEditModeToAddTranslation=قم بالتبديل في وضع التحرير لإضافة ترجمات لهذه اللغة
NotUsedForThisCustomer=غير مستخدم لهذا العميل NotUsedForThisCustomer=غير مستخدم لهذا العميل
NotUsedForThisVendor=Not used for this vendor
AmountMustBePositive=المبلغ يجب أن يكون موجبًا AmountMustBePositive=المبلغ يجب أن يكون موجبًا
ByStatus=حسب الحالة ByStatus=حسب الحالة
InformationMessage=معلومات InformationMessage=معلومات
@ -1148,14 +1153,14 @@ EventReminder=تذكير بالحدث
UpdateForAllLines=تحديث لجميع البنود UpdateForAllLines=تحديث لجميع البنود
OnHold=في الانتظار OnHold=في الانتظار
Civility=Civility Civility=Civility
AffectTag=Assign Tag AffectTag=Assign a Tag
AffectUser=Assign User AffectUser=Assign a User
SetSupervisor=Set Supervisor SetSupervisor=Set the supervisor
CreateExternalUser=إنشاء مستخدم خارجي CreateExternalUser=إنشاء مستخدم خارجي
ConfirmAffectTag=Bulk Tag Assignement ConfirmAffectTag=Bulk Tag Assignement
ConfirmAffectUser=Bulk User Assignement ConfirmAffectUser=Bulk User Assignement
ProjectRole=Role assigned on each project ProjectRole=Role assigned on each project/opportunity
TasksRole=Role assigned on each task of each project TasksRole=Role assigned on each task (if used)
ConfirmSetSupervisor=Bulk Supervisor Set ConfirmSetSupervisor=Bulk Supervisor Set
ConfirmUpdatePrice=Choose a increase/decrease price rate ConfirmUpdatePrice=Choose a increase/decrease price rate
ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)?
@ -1210,3 +1215,10 @@ CreatedByPublicPortal=تم إنشاؤه من بوابة عامة
UserAgent=User Agent UserAgent=User Agent
InternalUser=مستخدم داخلي InternalUser=مستخدم داخلي
ExternalUser=مستخدم خارجي ExternalUser=مستخدم خارجي
NoSpecificContactAddress=No specific contact or address
NoSpecificContactAddressBis=This tab is dedicated to force specific contacts or addresses for the current object. Use it only if you want to define one or several specific contacts or addresses for the object when the information on the thirdparty is not enough or not accurate.
HideOnVCard=Hide %s
AddToContacts=Add address to my contacts
LastAccess=Last access
UploadAnImageToSeeAPhotoHere=Upload an image from the tab %s to see a photo here
LastPasswordChangeDate=Last password change date

View File

@ -41,7 +41,8 @@ STRIPE_LIVE_WEBHOOK_KEY=المفتاح المباشر للخطاف التلقا
ONLINE_PAYMENT_WAREHOUSE=المخزون الذي سيتم استخدامه لتقليل المخزون عند إتمام الدفع عبر الإنترنت <br> (TODO عندما يتم تنفيذ خيار تقليل المخزون على إجراء على الفاتورة ويقوم الدفع عبر الإنترنت بإنشاء الفاتورة بنفسه؟) ONLINE_PAYMENT_WAREHOUSE=المخزون الذي سيتم استخدامه لتقليل المخزون عند إتمام الدفع عبر الإنترنت <br> (TODO عندما يتم تنفيذ خيار تقليل المخزون على إجراء على الفاتورة ويقوم الدفع عبر الإنترنت بإنشاء الفاتورة بنفسه؟)
StripeLiveEnabled=تم تمكين Stripe Live (بخلاف ذلك وضع الاختبار / وضع الحماية) StripeLiveEnabled=تم تمكين Stripe Live (بخلاف ذلك وضع الاختبار / وضع الحماية)
StripeImportPayment=استيراد مدفوعات الشريط StripeImportPayment=استيراد مدفوعات الشريط
ExampleOfTestCreditCard=مثال على بطاقة الائتمان للاختبار: %s => صالحة ، %s => خطأ CVC ، %s => منتهية الصلاحية ، %s => فشل الشحن ExampleOfTestCreditCard=Example of credit card for SEPA test: %s => valid, %s => error CVC, %s => expired, %s => charge fails
ExampleOfTestBankAcountForSEPA=Example of bank account BAN for direct debit test: %s
StripeGateways=بوابات شريطية StripeGateways=بوابات شريطية
OAUTH_STRIPE_TEST_ID=معرف عميل Stripe Connect (ca _...) OAUTH_STRIPE_TEST_ID=معرف عميل Stripe Connect (ca _...)
OAUTH_STRIPE_LIVE_ID=معرف عميل Stripe Connect (ca _...) OAUTH_STRIPE_LIVE_ID=معرف عميل Stripe Connect (ca _...)
@ -70,5 +71,8 @@ ToOfferALinkForLiveWebhook=رابط لإعداد Stripe WebHook لاستدعاء
PaymentWillBeRecordedForNextPeriod=سيتم تسجيل الدفع للفترة القادمة. PaymentWillBeRecordedForNextPeriod=سيتم تسجيل الدفع للفترة القادمة.
ClickHereToTryAgain= <a href="%s"> انقر هنا للمحاولة مرة أخرى ... </a> ClickHereToTryAgain= <a href="%s"> انقر هنا للمحاولة مرة أخرى ... </a>
CreationOfPaymentModeMustBeDoneFromStripeInterface=نظرًا لقواعد مصادقة العميل القوية ، يجب أن يتم إنشاء بطاقة من Stripe backoffice. يمكنك النقر هنا للتبديل إلى سجل عميل Stripe: %s CreationOfPaymentModeMustBeDoneFromStripeInterface=نظرًا لقواعد مصادقة العميل القوية ، يجب أن يتم إنشاء بطاقة من Stripe backoffice. يمكنك النقر هنا للتبديل إلى سجل عميل Stripe: %s
TERMINAL_LOCATION=موقع (العنوان) للمحطات STRIPE_CARD_PRESENT=Card Present for Stripe Terminals
TERMINAL_LOCATION=Location (address) for Stripe Terminals
RequestDirectDebitWithStripe=Request Direct Debit with Stripe RequestDirectDebitWithStripe=Request Direct Debit with Stripe
STRIPE_SEPA_DIRECT_DEBIT=Enable the Direct Debit payments through Stripe

View File

@ -26,6 +26,7 @@ Permission56002=تعديل التذاكر
Permission56003=حذف التذاكر Permission56003=حذف التذاكر
Permission56004=إدارة التذاكر Permission56004=إدارة التذاكر
Permission56005=عرض جميع تذاكر الأطراف الثالثة (غير فعالة للمستخدمين الخارجيين ، دائماً محدودين بالطرف الثالث المعتمدين عليه) Permission56005=عرض جميع تذاكر الأطراف الثالثة (غير فعالة للمستخدمين الخارجيين ، دائماً محدودين بالطرف الثالث المعتمدين عليه)
Permission56006=Export tickets
Tickets=التذاكر Tickets=التذاكر
TicketDictType=انواع - التذاكر TicketDictType=انواع - التذاكر
@ -61,6 +62,8 @@ TypeContact_ticket_external_CONTRIBUTOR=مساهم خارجي
OriginEmail=البريد الإلكتروني للمبلغ OriginEmail=البريد الإلكتروني للمبلغ
Notify_TICKET_SENTBYMAIL=إرسال إشعار التذكرة بالبريد الإلكتروني Notify_TICKET_SENTBYMAIL=إرسال إشعار التذكرة بالبريد الإلكتروني
ExportDataset_ticket_1=التذاكر
# Status # Status
Read=قراءة Read=قراءة
Assigned=مسند Assigned=مسند

View File

@ -66,7 +66,8 @@ LinkedToDolibarrUser=ارتباط بالمستخدم
LinkedToDolibarrThirdParty=رابط لطرف ثالث LinkedToDolibarrThirdParty=رابط لطرف ثالث
CreateDolibarrLogin=انشاء مستخدم CreateDolibarrLogin=انشاء مستخدم
CreateDolibarrThirdParty=إيجاد طرف ثالث CreateDolibarrThirdParty=إيجاد طرف ثالث
LoginAccountDisableInDolibarr=في حساب المعاقين Dolibarr. LoginAccountDisableInDolibarr=Account disabled in Dolibarr
PASSWORDInDolibarr=Password modified in Dolibarr
UsePersonalValue=استخدام الشخصي قيمة UsePersonalValue=استخدام الشخصي قيمة
ExportDataset_user_1=المستخدمون وخصائصهم ExportDataset_user_1=المستخدمون وخصائصهم
DomainUser=النطاق المستخدم ق ٪ DomainUser=النطاق المستخدم ق ٪
@ -129,3 +130,6 @@ IPLastLogin=آخر تسجيل دخول إلى IP
IPPreviousLogin=تسجيل الدخول السابق إلى IP IPPreviousLogin=تسجيل الدخول السابق إلى IP
ShowAllPerms=Show all permission rows ShowAllPerms=Show all permission rows
HideAllPerms=Hide all permission rows HideAllPerms=Hide all permission rows
UserPublicPageDesc=You can enable a virtual card for this user. An url with the user profile and a barcode will be available to allow anybody with a smartphone to scan it and add your contact to its address book.
EnablePublicVirtualCard=Enable the public virtual user card
PublicVirtualCardUrl=Public virtual user card

View File

@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=Изберете типа пренасяне на но
ACCOUNTING_EXPORT_PREFIX_SPEC=Посочете префикса в името на файла ACCOUNTING_EXPORT_PREFIX_SPEC=Посочете префикса в името на файла
ThisService=Тази услуга ThisService=Тази услуга
ThisProduct=Този продукт ThisProduct=Този продукт
DefaultForService=По подразбиране за услуга DefaultForService=Default for services
DefaultForProduct=По подразбиране за продукт DefaultForProduct=Default for products
ProductForThisThirdparty=Product for this thirdparty ProductForThisThirdparty=Product for this thirdparty
ServiceForThisThirdparty=Service for this thirdparty ServiceForThisThirdparty=Service for this thirdparty
CantSuggest=Не може да се предложи CantSuggest=Не може да се предложи
@ -101,7 +101,8 @@ ShowAccountingAccount=Показване на счетоводна сметка
ShowAccountingJournal=Показване на счетоводен журнал ShowAccountingJournal=Показване на счетоводен журнал
ShowAccountingAccountInLedger=Show accounting account in ledger ShowAccountingAccountInLedger=Show accounting account in ledger
ShowAccountingAccountInJournals=Show accounting account in journals ShowAccountingAccountInJournals=Show accounting account in journals
AccountAccountingSuggest=Предложена счетоводна сметка DataUsedToSuggestAccount=Data used to suggest account
AccountAccountingSuggest=Account suggested
MenuDefaultAccounts=Сметки по подразбиране MenuDefaultAccounts=Сметки по подразбиране
MenuBankAccounts=Банкови сметки MenuBankAccounts=Банкови сметки
MenuVatAccounts=Сметки за ДДС MenuVatAccounts=Сметки за ДДС
@ -126,6 +127,7 @@ WriteBookKeeping=Record transactions in accounting
Bookkeeping=Главна счетоводна книга Bookkeeping=Главна счетоводна книга
BookkeepingSubAccount=Subledger BookkeepingSubAccount=Subledger
AccountBalance=Салдо по сметка AccountBalance=Салдо по сметка
AccountBalanceSubAccount=Sub-accounts balance
ObjectsRef=Обект № ObjectsRef=Обект №
CAHTF=Обща покупка от доставчик преди ДДС CAHTF=Обща покупка от доставчик преди ДДС
TotalExpenseReport=Общ разходен отчет TotalExpenseReport=Общ разходен отчет
@ -189,6 +191,7 @@ ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be us
UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty)
ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default
UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty)
ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY=Accounting account by default to register customer retained warranty
ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet)
ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet)
@ -218,6 +221,7 @@ JournalLabel=Име на журнал
NumPiece=Пореден номер NumPiece=Пореден номер
TransactionNumShort=Транзакция № TransactionNumShort=Транзакция №
AccountingCategory=Custom group of accounts AccountingCategory=Custom group of accounts
AccountingCategories=Custom groups of accounts
GroupByAccountAccounting=Group by general ledger account GroupByAccountAccounting=Group by general ledger account
GroupBySubAccountAccounting=Group by subledger account GroupBySubAccountAccounting=Group by subledger account
AccountingAccountGroupsDesc=Тук може да определите някои групи счетоводни сметки. Те ще бъдат използвани за персонализирани счетоводни отчети. AccountingAccountGroupsDesc=Тук може да определите някои групи счетоводни сметки. Те ще бъдат използвани за персонализирани счетоводни отчети.
@ -265,6 +269,7 @@ ShowSubtotalByGroup=Show subtotal by level
Pcgtype=Група от сметки Pcgtype=Група от сметки
PcgtypeDesc=Групата от сметки се използва като предварително зададен критерий за филтриране и групиране за някои счетоводни отчети. Например 'Приход' или 'Разход' се използват като групи за счетоводни сметки на продукти за съставяне на отчет за разходи / приходи. PcgtypeDesc=Групата от сметки се използва като предварително зададен критерий за филтриране и групиране за някои счетоводни отчети. Например 'Приход' или 'Разход' се използват като групи за счетоводни сметки на продукти за съставяне на отчет за разходи / приходи.
AccountingCategoriesDesc=Custom group of accounts can be used to group accounting accounts into one name to ease filter use or building of custom reports.
Reconcilable=Съвместим Reconcilable=Съвместим
@ -294,6 +299,7 @@ DescValidateMovements=Всякакви промени или изтриване
ValidateHistory=Автоматично свързване ValidateHistory=Автоматично свързване
AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s)
DoManualBindingForFailedRecord=You have to do a manual link for the %s row(s) not linked automatically.
ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used
MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s
@ -337,11 +343,13 @@ ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on
ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting)
ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting)
ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting
ACCOUNTING_ENABLE_AUTOLETTERING=Enable the automatic lettering when transferring to accounting
## Export ## Export
NotExportLettering=Do not export the lettering when generating the file NotExportLettering=Do not export the lettering when generating the file
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=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>
NotifiedValidationDate=Validate and Lock the exported entries <span class="warning">(same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible)</span> NotifiedValidationDate=Validate and Lock the exported entries <span class="warning">(same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible)</span>
NotifiedExportFull=Export documents ?
DateValidationAndLock=Date validation and lock DateValidationAndLock=Date validation and lock
ConfirmExportFile=Confirmation of the generation of the accounting export file ? ConfirmExportFile=Confirmation of the generation of the accounting export file ?
ExportDraftJournal=Експортиране на журнал в чернова ExportDraftJournal=Експортиране на журнал в чернова
@ -398,7 +406,7 @@ SaleLocal=Локална продажба
SaleExport=Експортна продажба SaleExport=Експортна продажба
SaleEEC=Вътреобщностна продажба SaleEEC=Вътреобщностна продажба
SaleEECWithVAT=Продажба в ЕИО с ДДС различен от нула, за която се предполага, че НЕ е вътреобщностна продажба, поради тази причина се препоръчва стандартната сметка за продукти. SaleEECWithVAT=Продажба в ЕИО с ДДС различен от нула, за която се предполага, че НЕ е вътреобщностна продажба, поради тази причина се препоръчва стандартната сметка за продукти.
SaleEECWithoutVATNumber=Продажба в ЕИО без ДДС, но идентификационният номер по ДДС на контрагента не е определен. Ще се използва стандартната сметка за продажба на продукти. Може да въведете идентификационен номер по ДДС на контрагента или сметка на продукта, ако е необходимо. SaleEECWithoutVATNumber=Sale in EEC with no VAT but the VAT ID of thirdparty is not defined. We fall back on the account for standard sales. You can fix the VAT ID of the thirdparty, or change the product account suggested for binding if needed.
ForbiddenTransactionAlreadyExported=Forbidden: The transaction has been validated and/or exported. ForbiddenTransactionAlreadyExported=Forbidden: The transaction has been validated and/or exported.
ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated. ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated.
## Dictionary ## Dictionary
@ -442,6 +450,7 @@ AccountancyErrorMismatchLetterCode=Mismatch in reconcile code
AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0
AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s
ErrorAccountNumberAlreadyExists=The accounting number %s already exists ErrorAccountNumberAlreadyExists=The accounting number %s already exists
ErrorArchiveAddFile=Can't put "%s" file in archive
## Import ## Import
ImportAccountingEntries=Счетоводни записи ImportAccountingEntries=Счетоводни записи
@ -468,5 +477,7 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise)
DateExport=Дата на експортиране DateExport=Дата на експортиране
WarningReportNotReliable=Внимание, тази справка не се основава на главната счетоводна книга, така че не съдържа транзакция, ръчно променена в книгата. Ако осчетоводяването ви е актуално, то прегледът на счетоводството е по-точен. WarningReportNotReliable=Внимание, тази справка не се основава на главната счетоводна книга, така че не съдържа транзакция, ръчно променена в книгата. Ако осчетоводяването ви е актуално, то прегледът на счетоводството е по-точен.
ExpenseReportJournal=Журнал за разходни отчети ExpenseReportJournal=Журнал за разходни отчети
DocsAlreadyExportedAreExcluded=Docs already exported are excluded
ClickToHideAlreadyExportedLines=Click to hide already exported lines
NAccounts=%s accounts NAccounts=%s accounts

View File

@ -226,6 +226,7 @@ NoUserGroupDefined=Няма дефинирана потребителска гр
Password=Парола Password=Парола
PasswordRetype=Repeat your password PasswordRetype=Repeat your password
NoteSomeFeaturesAreDisabled=Имайте предвид, че много функции / модули са деактивирани в тази демонстрация. NoteSomeFeaturesAreDisabled=Имайте предвид, че много функции / модули са деактивирани в тази демонстрация.
YourUserFile=Your user file
Name=Име Name=Име
NameSlashCompany=Име / Фирма NameSlashCompany=Име / Фирма
Person=Лице Person=Лице
@ -897,6 +898,9 @@ MassFilesArea=Секция с файлове, създадени от масов
ShowTempMassFilesArea=Показване на секцията с файлове, създадени от масови действия ShowTempMassFilesArea=Показване на секцията с файлове, създадени от масови действия
ConfirmMassDeletion=Потвърждение за масово изтриване ConfirmMassDeletion=Потвърждение за масово изтриване
ConfirmMassDeletionQuestion=Сигурни ли сте, че искате да изтриете избраните %s записа? ConfirmMassDeletionQuestion=Сигурни ли сте, че искате да изтриете избраните %s записа?
ConfirmMassClone=Bulk clone confirmation
ConfirmMassCloneQuestion=Select project to clone to
ConfirmMassCloneToOneProject=Clone to project %s
RelatedObjects=Свързани обекти RelatedObjects=Свързани обекти
ClassifyBilled=Класифициране като фактурирано ClassifyBilled=Класифициране като фактурирано
ClassifyUnbilled=Класифициране като нетаксувано ClassifyUnbilled=Класифициране като нетаксувано
@ -912,8 +916,8 @@ ExportFilteredList=Експортиране на филтрирания спис
ExportList=Списък за експортиране ExportList=Списък за експортиране
ExportOptions=Настройки за експортиране ExportOptions=Настройки за експортиране
IncludeDocsAlreadyExported=Включените документи са вече експортирани IncludeDocsAlreadyExported=Включените документи са вече експортирани
ExportOfPiecesAlreadyExportedIsEnable=Експортът на вече експортирани части е разрешен ExportOfPiecesAlreadyExportedIsEnable=Documents already exported are visible and will be exported
ExportOfPiecesAlreadyExportedIsDisable=Експортът на вече експортирани части е забранен ExportOfPiecesAlreadyExportedIsDisable=Documents already exported are hidden and won't be exported
AllExportedMovementsWereRecordedAsExported=Всички експортирани движения бяха записани като експортирани AllExportedMovementsWereRecordedAsExported=Всички експортирани движения бяха записани като експортирани
NotAllExportedMovementsCouldBeRecordedAsExported=Не всички експортирани движения могат да бъдат записани като експортирани NotAllExportedMovementsCouldBeRecordedAsExported=Не всички експортирани движения могат да бъдат записани като експортирани
Miscellaneous=Разни Miscellaneous=Разни
@ -1128,6 +1132,7 @@ DeleteFileText=Сигурни ли сте, че искате да изтриет
ShowOtherLanguages=Показване на други езици ShowOtherLanguages=Показване на други езици
SwitchInEditModeToAddTranslation=Превключете в режим на редактиране, за да добавите преводи за този език. SwitchInEditModeToAddTranslation=Превключете в режим на редактиране, за да добавите преводи за този език.
NotUsedForThisCustomer=Не се използва за този клиент NotUsedForThisCustomer=Не се използва за този клиент
NotUsedForThisVendor=Not used for this vendor
AmountMustBePositive=Amount must be positive AmountMustBePositive=Amount must be positive
ByStatus=By status ByStatus=By status
InformationMessage=Информация InformationMessage=Информация
@ -1148,14 +1153,14 @@ EventReminder=Event Reminder
UpdateForAllLines=Update for all lines UpdateForAllLines=Update for all lines
OnHold=На изчакване OnHold=На изчакване
Civility=Civility Civility=Civility
AffectTag=Assign Tag AffectTag=Assign a Tag
AffectUser=Assign User AffectUser=Assign a User
SetSupervisor=Set Supervisor SetSupervisor=Set the supervisor
CreateExternalUser=Create external user CreateExternalUser=Create external user
ConfirmAffectTag=Bulk Tag Assignement ConfirmAffectTag=Bulk Tag Assignement
ConfirmAffectUser=Bulk User Assignement ConfirmAffectUser=Bulk User Assignement
ProjectRole=Role assigned on each project ProjectRole=Role assigned on each project/opportunity
TasksRole=Role assigned on each task of each project TasksRole=Role assigned on each task (if used)
ConfirmSetSupervisor=Bulk Supervisor Set ConfirmSetSupervisor=Bulk Supervisor Set
ConfirmUpdatePrice=Choose a increase/decrease price rate ConfirmUpdatePrice=Choose a increase/decrease price rate
ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)?
@ -1210,3 +1215,10 @@ CreatedByPublicPortal=Created from Public portal
UserAgent=User Agent UserAgent=User Agent
InternalUser=Вътрешен потребител InternalUser=Вътрешен потребител
ExternalUser=Външен потребител ExternalUser=Външен потребител
NoSpecificContactAddress=No specific contact or address
NoSpecificContactAddressBis=This tab is dedicated to force specific contacts or addresses for the current object. Use it only if you want to define one or several specific contacts or addresses for the object when the information on the thirdparty is not enough or not accurate.
HideOnVCard=Hide %s
AddToContacts=Add address to my contacts
LastAccess=Last access
UploadAnImageToSeeAPhotoHere=Upload an image from the tab %s to see a photo here
LastPasswordChangeDate=Last password change date

View File

@ -41,7 +41,8 @@ STRIPE_LIVE_WEBHOOK_KEY=Работен Webhook ключ
ONLINE_PAYMENT_WAREHOUSE=Склад, който да се използва за намаляване на наличности, когато се извършва онлайн плащане<br>(Да се направи, когато възможността за намаляване на наличности се извършва при действие върху фактура и онлайн плащането генерира фактурата?) ONLINE_PAYMENT_WAREHOUSE=Склад, който да се използва за намаляване на наличности, когато се извършва онлайн плащане<br>(Да се направи, когато възможността за намаляване на наличности се извършва при действие върху фактура и онлайн плащането генерира фактурата?)
StripeLiveEnabled=Активиран е работен режим на Stripe (в противен случай тестов режим / пясъчник) StripeLiveEnabled=Активиран е работен режим на Stripe (в противен случай тестов режим / пясъчник)
StripeImportPayment=Импортиране на Stripe плащания StripeImportPayment=Импортиране на Stripe плащания
ExampleOfTestCreditCard=Пример с кредитна карта за тест: %s => валидна, %s => грешка в CVC, %s => изтекла, %s => неуспешно таксуване ExampleOfTestCreditCard=Example of credit card for SEPA test: %s => valid, %s => error CVC, %s => expired, %s => charge fails
ExampleOfTestBankAcountForSEPA=Example of bank account BAN for direct debit test: %s
StripeGateways=Stripe шлюзове StripeGateways=Stripe шлюзове
OAUTH_STRIPE_TEST_ID=Тестов Stripe Connect Client ID (ca_...) OAUTH_STRIPE_TEST_ID=Тестов Stripe Connect Client ID (ca_...)
OAUTH_STRIPE_LIVE_ID=Реален Stripe Connect Client ID (ca_...) OAUTH_STRIPE_LIVE_ID=Реален Stripe Connect Client ID (ca_...)
@ -61,6 +62,7 @@ DeleteACard=Изтриване на карта
ConfirmDeleteCard=Сигурни ли сте, че искате да изтриете тази кредитна или дебитна карта? ConfirmDeleteCard=Сигурни ли сте, че искате да изтриете тази кредитна или дебитна карта?
CreateCustomerOnStripe=Създаване на клиент в Stripe CreateCustomerOnStripe=Създаване на клиент в Stripe
CreateCardOnStripe=Създаване на карта в Stripe CreateCardOnStripe=Създаване на карта в Stripe
CreateBANOnStripe=Create bank on Stripe
ShowInStripe=Показване в Stripe ShowInStripe=Показване в Stripe
StripeUserAccountForActions=Потребителски акаунт, който да се използва за известяване по имейл при някои Stripe събития (Stripe изплащания) StripeUserAccountForActions=Потребителски акаунт, който да се използва за известяване по имейл при някои Stripe събития (Stripe изплащания)
StripePayoutList=Списък със Stripe изплащания StripePayoutList=Списък със Stripe изплащания
@ -69,3 +71,8 @@ ToOfferALinkForLiveWebhook=Връзка към настройка на Stripe We
PaymentWillBeRecordedForNextPeriod=Плащането ще бъде регистрирано за следващия период. PaymentWillBeRecordedForNextPeriod=Плащането ще бъде регистрирано за следващия период.
ClickHereToTryAgain=<a href="%s">Кликнете тук, за да опитате отново ...</a> ClickHereToTryAgain=<a href="%s">Кликнете тук, за да опитате отново ...</a>
CreationOfPaymentModeMustBeDoneFromStripeInterface=Due to Strong Customer Authentication rules, creation of a card must be done from Stripe backoffice. You can click here to switch on Stripe customer record: %s CreationOfPaymentModeMustBeDoneFromStripeInterface=Due to Strong Customer Authentication rules, creation of a card must be done from Stripe backoffice. You can click here to switch on Stripe customer record: %s
STRIPE_CARD_PRESENT=Card Present for Stripe Terminals
TERMINAL_LOCATION=Location (address) for Stripe Terminals
RequestDirectDebitWithStripe=Request Direct Debit with Stripe
STRIPE_SEPA_DIRECT_DEBIT=Enable the Direct Debit payments through Stripe

View File

@ -26,6 +26,7 @@ Permission56002=Промяна на тикети
Permission56003=Изтриване на тикети Permission56003=Изтриване на тикети
Permission56004=Управление на тикети Permission56004=Управление на тикети
Permission56005=Преглед на тикети от всички контрагенти (не е приложимо за външни потребители, винаги ще бъдат ограничени до контрагента от който зависят) Permission56005=Преглед на тикети от всички контрагенти (не е приложимо за външни потребители, винаги ще бъдат ограничени до контрагента от който зависят)
Permission56006=Export tickets
Tickets=Тикети Tickets=Тикети
TicketDictType=Тикет - Видове TicketDictType=Тикет - Видове
@ -61,6 +62,8 @@ TypeContact_ticket_external_CONTRIBUTOR=Сътрудник от страна н
OriginEmail=Reporter Email OriginEmail=Reporter Email
Notify_TICKET_SENTBYMAIL=Изпращане на тикет съобщението по имейл Notify_TICKET_SENTBYMAIL=Изпращане на тикет съобщението по имейл
ExportDataset_ticket_1=Тикети
# Status # Status
Read=Прочетен Read=Прочетен
Assigned=Възложен Assigned=Възложен

View File

@ -66,7 +66,8 @@ LinkedToDolibarrUser=Link to user
LinkedToDolibarrThirdParty=Link to third party LinkedToDolibarrThirdParty=Link to third party
CreateDolibarrLogin=Създаване на потребител CreateDolibarrLogin=Създаване на потребител
CreateDolibarrThirdParty=Създаване на контрагент CreateDolibarrThirdParty=Създаване на контрагент
LoginAccountDisableInDolibarr=Профилът е деактивиран в системата. LoginAccountDisableInDolibarr=Account disabled in Dolibarr
PASSWORDInDolibarr=Password modified in Dolibarr
UsePersonalValue=Използване на лична стойност UsePersonalValue=Използване на лична стойност
ExportDataset_user_1=Потребители и техните реквизити ExportDataset_user_1=Потребители и техните реквизити
DomainUser=Домейн потребител %s DomainUser=Домейн потребител %s
@ -129,3 +130,6 @@ IPLastLogin=IP last login
IPPreviousLogin=IP previous login IPPreviousLogin=IP previous login
ShowAllPerms=Show all permission rows ShowAllPerms=Show all permission rows
HideAllPerms=Hide all permission rows HideAllPerms=Hide all permission rows
UserPublicPageDesc=You can enable a virtual card for this user. An url with the user profile and a barcode will be available to allow anybody with a smartphone to scan it and add your contact to its address book.
EnablePublicVirtualCard=Enable the public virtual user card
PublicVirtualCardUrl=Public virtual user card

View File

@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=Select the carriage return type
ACCOUNTING_EXPORT_PREFIX_SPEC=Odredi prefiks za naziv datoteke ACCOUNTING_EXPORT_PREFIX_SPEC=Odredi prefiks za naziv datoteke
ThisService=This service ThisService=This service
ThisProduct=Ovaj proizvod ThisProduct=Ovaj proizvod
DefaultForService=Default for service DefaultForService=Default for services
DefaultForProduct=Pretpostavljeno za proizvod DefaultForProduct=Default for products
ProductForThisThirdparty=Product for this thirdparty ProductForThisThirdparty=Product for this thirdparty
ServiceForThisThirdparty=Service for this thirdparty ServiceForThisThirdparty=Service for this thirdparty
CantSuggest=Can't suggest CantSuggest=Can't suggest
@ -101,7 +101,8 @@ ShowAccountingAccount=Show accounting account
ShowAccountingJournal=Show accounting journal ShowAccountingJournal=Show accounting journal
ShowAccountingAccountInLedger=Show accounting account in ledger ShowAccountingAccountInLedger=Show accounting account in ledger
ShowAccountingAccountInJournals=Show accounting account in journals ShowAccountingAccountInJournals=Show accounting account in journals
AccountAccountingSuggest=Predloženi računovodstveni račun DataUsedToSuggestAccount=Data used to suggest account
AccountAccountingSuggest=Account suggested
MenuDefaultAccounts=Default accounts MenuDefaultAccounts=Default accounts
MenuBankAccounts=Žiro računi MenuBankAccounts=Žiro računi
MenuVatAccounts=Vat accounts MenuVatAccounts=Vat accounts
@ -126,6 +127,7 @@ WriteBookKeeping=Record transactions in accounting
Bookkeeping=Ledger Bookkeeping=Ledger
BookkeepingSubAccount=Subledger BookkeepingSubAccount=Subledger
AccountBalance=Account balance AccountBalance=Account balance
AccountBalanceSubAccount=Sub-accounts balance
ObjectsRef=Source object ref ObjectsRef=Source object ref
CAHTF=Total purchase vendor before tax CAHTF=Total purchase vendor before tax
TotalExpenseReport=Total expense report TotalExpenseReport=Total expense report
@ -189,6 +191,7 @@ ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be us
UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty)
ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default
UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty)
ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY=Accounting account by default to register customer retained warranty
ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet)
ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet)
@ -218,6 +221,7 @@ JournalLabel=Journal label
NumPiece=Piece number NumPiece=Piece number
TransactionNumShort=Num. transaction TransactionNumShort=Num. transaction
AccountingCategory=Custom group of accounts AccountingCategory=Custom group of accounts
AccountingCategories=Custom groups of accounts
GroupByAccountAccounting=Group by general ledger account GroupByAccountAccounting=Group by general ledger account
GroupBySubAccountAccounting=Group by subledger account GroupBySubAccountAccounting=Group by subledger account
AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports.
@ -265,6 +269,7 @@ ShowSubtotalByGroup=Show subtotal by level
Pcgtype=Group of account Pcgtype=Group of account
PcgtypeDesc=Group of account are used as predefined 'filter' and 'grouping' criteria for some accounting reports. For example, 'INCOME' or 'EXPENSE' are used as groups for accounting accounts of products to build the expense/income report. PcgtypeDesc=Group of account are used as predefined 'filter' and 'grouping' criteria for some accounting reports. For example, 'INCOME' or 'EXPENSE' are used as groups for accounting accounts of products to build the expense/income report.
AccountingCategoriesDesc=Custom group of accounts can be used to group accounting accounts into one name to ease filter use or building of custom reports.
Reconcilable=Reconcilable Reconcilable=Reconcilable
@ -294,6 +299,7 @@ DescValidateMovements=Any modification or deletion of writing, lettering and del
ValidateHistory=Bind Automatically ValidateHistory=Bind Automatically
AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s)
DoManualBindingForFailedRecord=You have to do a manual link for the %s row(s) not linked automatically.
ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used
MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s
@ -337,11 +343,13 @@ ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on
ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting)
ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting)
ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting
ACCOUNTING_ENABLE_AUTOLETTERING=Enable the automatic lettering when transferring to accounting
## Export ## Export
NotExportLettering=Do not export the lettering when generating the file NotExportLettering=Do not export the lettering when generating the file
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=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>
NotifiedValidationDate=Validate and Lock the exported entries <span class="warning">(same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible)</span> NotifiedValidationDate=Validate and Lock the exported entries <span class="warning">(same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible)</span>
NotifiedExportFull=Export documents ?
DateValidationAndLock=Date validation and lock DateValidationAndLock=Date validation and lock
ConfirmExportFile=Confirmation of the generation of the accounting export file ? ConfirmExportFile=Confirmation of the generation of the accounting export file ?
ExportDraftJournal=Export draft journal ExportDraftJournal=Export draft journal
@ -398,7 +406,7 @@ SaleLocal=Local sale
SaleExport=Export sale SaleExport=Export sale
SaleEEC=Sale in EEC SaleEEC=Sale in EEC
SaleEECWithVAT=Sale in EEC with a VAT not null, so we suppose this is NOT an intracommunautary sale and the suggested account is the standard product account. SaleEECWithVAT=Sale in EEC with a VAT not null, so we suppose this is NOT an intracommunautary sale and the suggested account is the standard product account.
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. SaleEECWithoutVATNumber=Sale in EEC with no VAT but the VAT ID of thirdparty is not defined. We fall back on the account for standard sales. You can fix the VAT ID of the thirdparty, or change the product account suggested for binding if needed.
ForbiddenTransactionAlreadyExported=Forbidden: The transaction has been validated and/or exported. ForbiddenTransactionAlreadyExported=Forbidden: The transaction has been validated and/or exported.
ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated. ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated.
## Dictionary ## Dictionary
@ -442,6 +450,7 @@ AccountancyErrorMismatchLetterCode=Mismatch in reconcile code
AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0
AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s
ErrorAccountNumberAlreadyExists=The accounting number %s already exists ErrorAccountNumberAlreadyExists=The accounting number %s already exists
ErrorArchiveAddFile=Can't put "%s" file in archive
## Import ## Import
ImportAccountingEntries=Accounting entries ImportAccountingEntries=Accounting entries
@ -468,5 +477,7 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise)
DateExport=Date export DateExport=Date export
WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate.
ExpenseReportJournal=Expense Report Journal ExpenseReportJournal=Expense Report Journal
DocsAlreadyExportedAreExcluded=Docs already exported are excluded
ClickToHideAlreadyExportedLines=Click to hide already exported lines
NAccounts=%s accounts NAccounts=%s accounts

View File

@ -66,7 +66,8 @@ LinkedToDolibarrUser=Link to user
LinkedToDolibarrThirdParty=Link to third party LinkedToDolibarrThirdParty=Link to third party
CreateDolibarrLogin=Kreiraj korisnika CreateDolibarrLogin=Kreiraj korisnika
CreateDolibarrThirdParty=Napravi subjekat CreateDolibarrThirdParty=Napravi subjekat
LoginAccountDisableInDolibarr=Račun isključen u Dolibarru. LoginAccountDisableInDolibarr=Account disabled in Dolibarr
PASSWORDInDolibarr=Password modified in Dolibarr
UsePersonalValue=Koristite lične vrijednosti UsePersonalValue=Koristite lične vrijednosti
ExportDataset_user_1=Users and their properties ExportDataset_user_1=Users and their properties
DomainUser=Korisnik domene %s DomainUser=Korisnik domene %s
@ -129,3 +130,6 @@ IPLastLogin=IP last login
IPPreviousLogin=IP previous login IPPreviousLogin=IP previous login
ShowAllPerms=Show all permission rows ShowAllPerms=Show all permission rows
HideAllPerms=Hide all permission rows HideAllPerms=Hide all permission rows
UserPublicPageDesc=You can enable a virtual card for this user. An url with the user profile and a barcode will be available to allow anybody with a smartphone to scan it and add your contact to its address book.
EnablePublicVirtualCard=Enable the public virtual user card
PublicVirtualCardUrl=Public virtual user card

View File

@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=Seleccioneu el tipus de retorn
ACCOUNTING_EXPORT_PREFIX_SPEC=Especifica el prefix del nom del fitxer ACCOUNTING_EXPORT_PREFIX_SPEC=Especifica el prefix del nom del fitxer
ThisService=Aquest servei ThisService=Aquest servei
ThisProduct=Aquest producte ThisProduct=Aquest producte
DefaultForService=Defecte per al servei DefaultForService=Default for services
DefaultForProduct=Defecte per al producte DefaultForProduct=Default for products
ProductForThisThirdparty=Producte per a aquest tercer ProductForThisThirdparty=Producte per a aquest tercer
ServiceForThisThirdparty=Servei per a aquest tercer ServiceForThisThirdparty=Servei per a aquest tercer
CantSuggest=No es pot suggerir CantSuggest=No es pot suggerir
@ -101,7 +101,8 @@ ShowAccountingAccount=Mostrar diari de comptes
ShowAccountingJournal=Mostrar diari comptable ShowAccountingJournal=Mostrar diari comptable
ShowAccountingAccountInLedger=Mostra el compte comptable al Llibre major ShowAccountingAccountInLedger=Mostra el compte comptable al Llibre major
ShowAccountingAccountInJournals=Mostra el compte comptable als diaris ShowAccountingAccountInJournals=Mostra el compte comptable als diaris
AccountAccountingSuggest=Compte comptable suggerit DataUsedToSuggestAccount=Data used to suggest account
AccountAccountingSuggest=Account suggested
MenuDefaultAccounts=Comptes per defecte MenuDefaultAccounts=Comptes per defecte
MenuBankAccounts=Comptes bancaris MenuBankAccounts=Comptes bancaris
MenuVatAccounts=Comptes d'IVA MenuVatAccounts=Comptes d'IVA
@ -126,6 +127,7 @@ WriteBookKeeping=Registrar transaccions en comptabilitat
Bookkeeping=Llibre major Bookkeeping=Llibre major
BookkeepingSubAccount=Subcompte BookkeepingSubAccount=Subcompte
AccountBalance=Compte saldo AccountBalance=Compte saldo
AccountBalanceSubAccount=Sub-accounts balance
ObjectsRef=Referència de l'objecte origen ObjectsRef=Referència de l'objecte origen
CAHTF=Total de compra a Proveïdor abans d'impostos CAHTF=Total de compra a Proveïdor abans d'impostos
TotalExpenseReport=Informe de despeses totals TotalExpenseReport=Informe de despeses totals
@ -165,8 +167,8 @@ ACCOUNTANCY_COMBO_FOR_AUX=Activa la llista combinada per a un compte subsidiari
ACCOUNTING_DATE_START_BINDING=Definiu una data per a començar la vinculació i transferència a la comptabilitat. Per sota d’aquesta data, les transaccions no es transferiran a la comptabilitat. ACCOUNTING_DATE_START_BINDING=Definiu una data per a començar la vinculació i transferència a la comptabilitat. Per sota d’aquesta data, les transaccions no es transferiran a la comptabilitat.
ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=En la transferència comptable, quin és el període seleccionat per defecte ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=En la transferència comptable, quin és el període seleccionat per defecte
ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) ACCOUNTING_SELL_JOURNAL=Diari de vendes (vendes i devolucions)
ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) ACCOUNTING_PURCHASE_JOURNAL=Diari de compres (compres i devolucions)
ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements)
ACCOUNTING_EXPENSEREPORT_JOURNAL=Diari de l'informe de despeses ACCOUNTING_EXPENSEREPORT_JOURNAL=Diari de l'informe de despeses
ACCOUNTING_MISCELLANEOUS_JOURNAL=Diari general ACCOUNTING_MISCELLANEOUS_JOURNAL=Diari general
@ -189,6 +191,7 @@ ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be us
UseAuxiliaryAccountOnCustomerDeposit=Emmagatzema el compte del client com a compte individual al llibre major subsidiari per a les línies de pagament inicial (si està desactivat, el compte individual per a les línies de pagament inicial romandrà buit) UseAuxiliaryAccountOnCustomerDeposit=Emmagatzema el compte del client com a compte individual al llibre major subsidiari per a les línies de pagament inicial (si està desactivat, el compte individual per a les línies de pagament inicial romandrà buit)
ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default
UseAuxiliaryAccountOnSupplierDeposit=Emmagatzema el compte del proveïdor com a compte individual al llibre major subsidiari per a les línies de pagament inicial (si està desactivat, el compte individual de les línies de pagament inicial romandrà buit) UseAuxiliaryAccountOnSupplierDeposit=Emmagatzema el compte del proveïdor com a compte individual al llibre major subsidiari per a les línies de pagament inicial (si està desactivat, el compte individual de les línies de pagament inicial romandrà buit)
ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY=Accounting account by default to register customer retained warranty
ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet)
ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet)
@ -217,7 +220,8 @@ Codejournal=Diari
JournalLabel=Nom del diari JournalLabel=Nom del diari
NumPiece=Número de peça NumPiece=Número de peça
TransactionNumShort=Número de transacció TransactionNumShort=Número de transacció
AccountingCategory=Custom group of accounts AccountingCategory=Grup de comptes personalitzat
AccountingCategories=Custom groups of accounts
GroupByAccountAccounting=Agrupa per compte major GroupByAccountAccounting=Agrupa per compte major
GroupBySubAccountAccounting=Agrupa per subcompte comptable GroupBySubAccountAccounting=Agrupa per subcompte comptable
AccountingAccountGroupsDesc=Podeu definir aquí alguns grups de comptes comptables. S'utilitzaran per a informes comptables personalitzats. AccountingAccountGroupsDesc=Podeu definir aquí alguns grups de comptes comptables. S'utilitzaran per a informes comptables personalitzats.
@ -265,6 +269,7 @@ ShowSubtotalByGroup=Mostra el subtotal per nivell
Pcgtype=Grup de comptes Pcgtype=Grup de comptes
PcgtypeDesc=S'utilitzen grups de comptes com a criteris predefinits de «filtre» i «agrupació» per a alguns informes de comptabilitat. Per exemple, «INGRESSOS» o «DESPESES» s'utilitzen com a grups per a comptes comptables de productes per a crear l'informe de despeses/ingressos. PcgtypeDesc=S'utilitzen grups de comptes com a criteris predefinits de «filtre» i «agrupació» per a alguns informes de comptabilitat. Per exemple, «INGRESSOS» o «DESPESES» s'utilitzen com a grups per a comptes comptables de productes per a crear l'informe de despeses/ingressos.
AccountingCategoriesDesc=Custom group of accounts can be used to group accounting accounts into one name to ease filter use or building of custom reports.
Reconcilable=Reconciliable Reconcilable=Reconciliable
@ -294,6 +299,7 @@ DescValidateMovements=Queda prohibida qualsevol modificació o supressió de reg
ValidateHistory=Comptabilitza automàticament ValidateHistory=Comptabilitza automàticament
AutomaticBindingDone=Enllaços automàtics fets (%s): l'enllaç automàtic no és possible per a alguns registres (%s) AutomaticBindingDone=Enllaços automàtics fets (%s): l'enllaç automàtic no és possible per a alguns registres (%s)
DoManualBindingForFailedRecord=You have to do a manual link for the %s row(s) not linked automatically.
ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used
MvtNotCorrectlyBalanced=Moviment no equilibrat correctament. Dèbit = %s i crèdit = %s MvtNotCorrectlyBalanced=Moviment no equilibrat correctament. Dèbit = %s i crèdit = %s
@ -337,11 +343,13 @@ ACCOUNTING_DISABLE_BINDING_ON_SALES=Desactiva la vinculació i transferència de
ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Desactiva la vinculació i transferència a la comptabilitat de les compres (les factures de proveïdors no es tindran en compte a la comptabilitat) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Desactiva la vinculació i transferència a la comptabilitat de les compres (les factures de proveïdors no es tindran en compte a la comptabilitat)
ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Desactiva la vinculació i transferència de comptes en els informes de despeses (els informes de despeses no es tindran en compte a la comptabilitat) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Desactiva la vinculació i transferència de comptes en els informes de despeses (els informes de despeses no es tindran en compte a la comptabilitat)
ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting
ACCOUNTING_ENABLE_AUTOLETTERING=Enable the automatic lettering when transferring to accounting
## Export ## Export
NotExportLettering=Do not export the lettering when generating the file NotExportLettering=Do not export the lettering when generating the file
NotifiedExportDate=Marca les línies exportades com a Exportades <span class="warning"> (per a modificar una línia, hauràs de suprimir tota la transacció i tornar-la a transferir a la comptabilitat) </span> NotifiedExportDate=Marca les línies exportades com a Exportades <span class="warning"> (per a modificar una línia, hauràs de suprimir tota la transacció i tornar-la a transferir a la comptabilitat) </span>
NotifiedValidationDate=Validar i bloquejar les entrades exportades <span class="warning"> (mateix efecte que la característica "%s", la modificació i la supressió de les línies DEFINITIVAMENT no seran possibles) </span> NotifiedValidationDate=Validar i bloquejar les entrades exportades <span class="warning">(mateix efecte que la característica "%s", la modificació i la supressió de les línies DEFINITIVAMENT no seran possibles)</span>
NotifiedExportFull=Export documents ?
DateValidationAndLock=Validació de data i bloqueig DateValidationAndLock=Validació de data i bloqueig
ConfirmExportFile=Confirmació de la generació del fitxer d'exportació comptable? ConfirmExportFile=Confirmació de la generació del fitxer d'exportació comptable?
ExportDraftJournal=Exporta els esborranys del llibre ExportDraftJournal=Exporta els esborranys del llibre
@ -398,7 +406,7 @@ SaleLocal=Venda local
SaleExport=Venda d’exportació SaleExport=Venda d’exportació
SaleEEC=Venda en CEE SaleEEC=Venda en CEE
SaleEECWithVAT=Venda a la CEE amb un IVA que no és nul, per la qual cosa suposem que NO es tracta d’una venda intracomunitària i el compte suggerit és el compte estàndard del producte. SaleEECWithVAT=Venda a la CEE amb un IVA que no és nul, per la qual cosa suposem que NO es tracta d’una venda intracomunitària i el compte suggerit és el compte estàndard del producte.
SaleEECWithoutVATNumber=Venda a la CEE sense IVA, però l’identificador d’IVA del tercer no està definit. S'ha emprat el compte del producte per a vendes estàndard. Podeu corregir l’identificador d’IVA del tercer o el compte del producte si cal. SaleEECWithoutVATNumber=Sale in EEC with no VAT but the VAT ID of thirdparty is not defined. We fall back on the account for standard sales. You can fix the VAT ID of the thirdparty, or change the product account suggested for binding if needed.
ForbiddenTransactionAlreadyExported=Prohibit: la transacció ha estat validada i/o exportada. ForbiddenTransactionAlreadyExported=Prohibit: la transacció ha estat validada i/o exportada.
ForbiddenTransactionAlreadyValidated=Prohibit: la transacció s'ha validat. ForbiddenTransactionAlreadyValidated=Prohibit: la transacció s'ha validat.
## Dictionary ## Dictionary
@ -429,19 +437,20 @@ ConfirmMassDeleteBookkeepingWritingQuestion=Això suprimirà la transacció de l
## Error ## Error
SomeMandatoryStepsOfSetupWereNotDone=No s'han fet alguns passos obligatoris de configuració, si us plau, completeu-los SomeMandatoryStepsOfSetupWereNotDone=No s'han fet alguns passos obligatoris de configuració, si us plau, completeu-los
ErrorNoAccountingCategoryForThisCountry=No hi ha cap grup de comptes comptables disponible per al país %s (Vegeu Inici - Configuració - Diccionaris) ErrorNoAccountingCategoryForThisCountry=No hi ha cap grup de comptes comptables disponible per al país %s (Vegeu Inici - Configuració - Diccionaris)
ErrorInvoiceContainsLinesNotYetBounded=Intenta actualitzar algunes línies de la factura <strong> %s </strong>, però algunes altres encara no estan vinculades al compte de comptabilitat. Es rebutja el registre comptable de totes les línies d'aquesta factura. ErrorInvoiceContainsLinesNotYetBounded=Intenteu registrar algunes línies de la factura <strong>%s</strong>, però algunes altres línies encara no estan vinculades al compte comptable. Es denega el registre al diari de totes les línies d'aquesta factura.
ErrorInvoiceContainsLinesNotYetBoundedShort=Algunes línies a la factura no estan vinculades al compte de comptabilitat. ErrorInvoiceContainsLinesNotYetBoundedShort=Algunes línies a la factura no estan vinculades al compte de comptabilitat.
ExportNotSupported=El format d'exportació configurat no està suportat en aquesta pàgina ExportNotSupported=El format d'exportació configurat no està suportat en aquesta pàgina
BookeppingLineAlreayExists=Les línies ja existeixen en la comptabilitat BookeppingLineAlreayExists=Les línies ja existeixen en la comptabilitat
NoJournalDefined=Cap diari definit NoJournalDefined=Cap diari definit
Binded=Línies comptabilitzades Binded=Línies comptabilitzades
ToBind=Línies a comptabilitzar ToBind=Línies a comptabilitzar
UseMenuToSetBindindManualy=Línies encara no enllaçades, utilitzeu el menú <a href="%s"> %s </a> per a fer l'enllaç manualment UseMenuToSetBindindManualy=Línies encara no enllaçades, utilitzeu el menú <a href="%s">%s</a> per a fer l'enllaç manualment
SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Ho sentim, aquest mòdul no és compatible amb la funció experimental de les factures de situació SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Ho sentim, aquest mòdul no és compatible amb la funció experimental de les factures de situació
AccountancyErrorMismatchLetterCode=No coincideix en el codi de conciliació AccountancyErrorMismatchLetterCode=No coincideix en el codi de conciliació
AccountancyErrorMismatchBalanceAmount=El saldo (%s) no és igual a 0 AccountancyErrorMismatchBalanceAmount=El saldo (%s) no és igual a 0
AccountancyErrorLetteringBookkeeping=S'han produït errors relacionats amb les transaccions: %s AccountancyErrorLetteringBookkeeping=S'han produït errors relacionats amb les transaccions: %s
ErrorAccountNumberAlreadyExists=El número de comptabilitat %s ja existeix ErrorAccountNumberAlreadyExists=El número de comptabilitat %s ja existeix
ErrorArchiveAddFile=Can't put "%s" file in archive
## Import ## Import
ImportAccountingEntries=Entrades de comptabilitat ImportAccountingEntries=Entrades de comptabilitat
@ -468,5 +477,7 @@ FECFormatMulticurrencyCode=Codi multidivisa (Idevise)
DateExport=Data d'exportació DateExport=Data d'exportació
WarningReportNotReliable=Avís, aquest informe no està basat en el Llibre Major, de manera que no conté assentaments modificats manualment en el Llibre Major. Si el registre diari està actualitzat, la vista de comptes és més precisa. WarningReportNotReliable=Avís, aquest informe no està basat en el Llibre Major, de manera que no conté assentaments modificats manualment en el Llibre Major. Si el registre diari està actualitzat, la vista de comptes és més precisa.
ExpenseReportJournal=Diari d'informe de despeses ExpenseReportJournal=Diari d'informe de despeses
DocsAlreadyExportedAreExcluded=Docs already exported are excluded
ClickToHideAlreadyExportedLines=Click to hide already exported lines
NAccounts=comptes %s NAccounts=comptes %s

View File

@ -645,6 +645,8 @@ Module2300Name=Tasques programades
Module2300Desc=Gestió de tasques programades (àlies cron o taula de crons) Module2300Desc=Gestió de tasques programades (àlies cron o taula de crons)
Module2400Name=Esdeveniments/Agenda Module2400Name=Esdeveniments/Agenda
Module2400Desc=Seguiment d'esdeveniments. Registre d'esdeveniments automàtics per a fer el seguiment o registrar esdeveniments manuals o reunions. Aquest és el mòdul principal per a una bona gestió de la relació amb clients o proveïdors. Module2400Desc=Seguiment d'esdeveniments. Registre d'esdeveniments automàtics per a fer el seguiment o registrar esdeveniments manuals o reunions. Aquest és el mòdul principal per a una bona gestió de la relació amb clients o proveïdors.
Module2430Name=Booking Calendar System
Module2430Desc=Provide an online calendar to allow anyone to book rendez-vous, according to predefined ranges or availabilities.
Module2500Name=SGD / GCE Module2500Name=SGD / GCE
Module2500Desc=Sistema de gestió de documents / Gestió de continguts electrònics. Organització automàtica dels vostres documents generats o emmagatzemats. Compartiu-los quan ho necessiteu. Module2500Desc=Sistema de gestió de documents / Gestió de continguts electrònics. Organització automàtica dels vostres documents generats o emmagatzemats. Compartiu-los quan ho necessiteu.
Module2600Name=Serveis API / Web (servidor SOAP) Module2600Name=Serveis API / Web (servidor SOAP)
@ -660,6 +662,8 @@ Module2900Name=GeoIPMaxmind
Module2900Desc=Capacitats de conversió GeoIP Maxmind Module2900Desc=Capacitats de conversió GeoIP Maxmind
Module3200Name=Arxius inalterables Module3200Name=Arxius inalterables
Module3200Desc=Activa el registre d'alguns esdeveniments de negoci en un registre inalterable. Els esdeveniments s'arxiven en temps real. El registre és una taula d'esdeveniments encadenats que només es poden llegir i exportar. Aquest mòdul pot ser obligatori per a alguns països. Module3200Desc=Activa el registre d'alguns esdeveniments de negoci en un registre inalterable. Els esdeveniments s'arxiven en temps real. El registre és una taula d'esdeveniments encadenats que només es poden llegir i exportar. Aquest mòdul pot ser obligatori per a alguns països.
Module3300Name=Module Builder
Module3200Desc=Activa el registre d'alguns esdeveniments de negoci en un registre inalterable. Els esdeveniments s'arxiven en temps real. El registre és una taula d'esdeveniments encadenats que només es poden llegir i exportar. Aquest mòdul pot ser obligatori per a alguns països.
Module3400Name=Xarxes socials Module3400Name=Xarxes socials
Module3400Desc=Activa els camps de les xarxes socials a tercers i adreces (skype, twitter, facebook...). Module3400Desc=Activa els camps de les xarxes socials a tercers i adreces (skype, twitter, facebook...).
Module4000Name=RH Module4000Name=RH
@ -1270,6 +1274,7 @@ TriggerActiveAsModuleActive=Els activadors d'aquest fitxer estan actius, ja que
GeneratedPasswordDesc=Trieu el mètode que s'utilitzarà per a les contrasenyes generades automàticament. GeneratedPasswordDesc=Trieu el mètode que s'utilitzarà per a les contrasenyes generades automàticament.
DictionaryDesc=Afegeix totes les dades de referència. Pots afegir els teus valors per defecte. DictionaryDesc=Afegeix totes les dades de referència. Pots afegir els teus valors per defecte.
ConstDesc=Aquesta pàgina permet editar (anul·lar) paràmetres no disponibles en altres pàgines. Aquests són paràmetres reservats només per a desenvolupadors o solucions avançades de problemes. ConstDesc=Aquesta pàgina permet editar (anul·lar) paràmetres no disponibles en altres pàgines. Aquests són paràmetres reservats només per a desenvolupadors o solucions avançades de problemes.
MiscellaneousOptions=Miscellaneous options
MiscellaneousDesc=Aquí es defineixen la resta de paràmetres relacionats amb la seguretat. MiscellaneousDesc=Aquí es defineixen la resta de paràmetres relacionats amb la seguretat.
LimitsSetup=Configuració de límits i precisions LimitsSetup=Configuració de límits i precisions
LimitsDesc=Podeu definir aquí els límits i precisions utilitzats per Dolibarr LimitsDesc=Podeu definir aquí els límits i precisions utilitzats per Dolibarr
@ -1496,7 +1501,7 @@ AdherentLoginRequired= Gestiona un compte d'usuari per a cada soci
AdherentMailRequired=Cal un correu electrònic per a crear un soci nou AdherentMailRequired=Cal un correu electrònic per a crear un soci nou
MemberSendInformationByMailByDefault=La casella de selecció per a enviar una confirmació per correu electrònic als socis (validació o nova subscripció) està activada per defecte MemberSendInformationByMailByDefault=La casella de selecció per a enviar una confirmació per correu electrònic als socis (validació o nova subscripció) està activada per defecte
MemberCreateAnExternalUserForSubscriptionValidated=Creeu un usuari extern per a cada subscripció nova membre validada MemberCreateAnExternalUserForSubscriptionValidated=Creeu un usuari extern per a cada subscripció nova membre validada
VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes VisitorCanChooseItsPaymentMode=El visitant pot triar entre qualsevol forma de pagament disponible
MEMBER_REMINDER_EMAIL=Activa el recordatori automàtic <b> per correu electrònic </b> de les subscripcions caducades. Nota: El mòdul <strong> %s </strong> s'ha d'habilitar i configurar correctament per a enviar recordatoris. MEMBER_REMINDER_EMAIL=Activa el recordatori automàtic <b> per correu electrònic </b> de les subscripcions caducades. Nota: El mòdul <strong> %s </strong> s'ha d'habilitar i configurar correctament per a enviar recordatoris.
MembersDocModules=Plantilles de documents per a documents generats a partir del registre de socis MembersDocModules=Plantilles de documents per a documents generats a partir del registre de socis
##### LDAP setup ##### ##### LDAP setup #####
@ -1826,6 +1831,9 @@ AGENDA_USE_EVENT_TYPE=Utilitzeu tipus d'esdeveniments (gestionats en el menú Co
AGENDA_USE_EVENT_TYPE_DEFAULT=Estableix automàticament aquest valor predeterminat per al tipus d'esdeveniment en el formulari de creació de l'esdeveniment AGENDA_USE_EVENT_TYPE_DEFAULT=Estableix automàticament aquest valor predeterminat per al tipus d'esdeveniment en el formulari de creació de l'esdeveniment
AGENDA_DEFAULT_FILTER_TYPE=Estableix automàticament aquest tipus d'esdeveniment al filtre de cerca de la vista d'agenda AGENDA_DEFAULT_FILTER_TYPE=Estableix automàticament aquest tipus d'esdeveniment al filtre de cerca de la vista d'agenda
AGENDA_DEFAULT_FILTER_STATUS=Estableix automàticament aquest estat per a esdeveniments al filtre de cerca de la visualització d'agenda AGENDA_DEFAULT_FILTER_STATUS=Estableix automàticament aquest estat per a esdeveniments al filtre de cerca de la visualització d'agenda
AGENDA_EVENT_PAST_COLOR=Past event color
AGENDA_EVENT_CURRENT_COLOR=Current event color
AGENDA_EVENT_FUTURE_COLOR=Future event color
AGENDA_DEFAULT_VIEW=Quina vista voleu obrir de manera predeterminada en seleccionar el menú Agenda AGENDA_DEFAULT_VIEW=Quina vista voleu obrir de manera predeterminada en seleccionar el menú Agenda
AGENDA_REMINDER_BROWSER=Activa el recordatori d'esdeveniments <b> al navegador de l'usuari </b> (Quan s'arriba a la data de recordatori, el navegador mostra una finestra emergent. Cada usuari pot desactivar aquestes notificacions des de la configuració de notificacions del navegador). AGENDA_REMINDER_BROWSER=Activa el recordatori d'esdeveniments <b> al navegador de l'usuari </b> (Quan s'arriba a la data de recordatori, el navegador mostra una finestra emergent. Cada usuari pot desactivar aquestes notificacions des de la configuració de notificacions del navegador).
AGENDA_REMINDER_BROWSER_SOUND=Habilita les notificacions sonores AGENDA_REMINDER_BROWSER_SOUND=Habilita les notificacions sonores
@ -2129,6 +2137,7 @@ CodeLastResult=Últim codi retornat
NbOfEmailsInInbox=Nombre de correus electrònics en el directori font NbOfEmailsInInbox=Nombre de correus electrònics en el directori font
LoadThirdPartyFromName=Carregueu la cerca de tercers al %s (només carrega) LoadThirdPartyFromName=Carregueu la cerca de tercers al %s (només carrega)
LoadThirdPartyFromNameOrCreate=Carregueu la cerca de tercers a %s (crear si no es troba) LoadThirdPartyFromNameOrCreate=Carregueu la cerca de tercers a %s (crear si no es troba)
LoadContactFromEmailOrCreate=Load contact searching on %s (create if not found)
AttachJoinedDocumentsToObject=Deseu els fitxers adjunts als documents d'objectes si es troba una referència d'un objecte al tema del correu electrònic. AttachJoinedDocumentsToObject=Deseu els fitxers adjunts als documents d'objectes si es troba una referència d'un objecte al tema del correu electrònic.
WithDolTrackingID=Missatge d'una conversa iniciada per un primer correu electrònic enviat des de Dolibarr WithDolTrackingID=Missatge d'una conversa iniciada per un primer correu electrònic enviat des de Dolibarr
WithoutDolTrackingID=Missatge d'una conversa iniciada per un primer correu electrònic NO enviat des de Dolibarr WithoutDolTrackingID=Missatge d'una conversa iniciada per un primer correu electrònic NO enviat des de Dolibarr
@ -2355,3 +2364,5 @@ AllowExternalDownload=Allow external download (without login, using a shared lin
DeadlineDayVATSubmission=Deadline day for vat submission on the next month DeadlineDayVATSubmission=Deadline day for vat submission on the next month
MaxNumberOfAttachementOnForms=Max number of joinded files in a form MaxNumberOfAttachementOnForms=Max number of joinded files in a form
IfDefinedUseAValueBeetween=If defined, use a value between %s and %s IfDefinedUseAValueBeetween=If defined, use a value between %s and %s
Reload=Reload
ConfirmReload=Confirm module reload

View File

@ -17,7 +17,7 @@ DisabledBecauseNotLastSituationInvoice=Disabled because invoice is not erasable.
DisabledBecauseNotErasable=S'ha desactivat perquè no es pot esborrar DisabledBecauseNotErasable=S'ha desactivat perquè no es pot esborrar
InvoiceStandard=Factura estàndard InvoiceStandard=Factura estàndard
InvoiceStandardAsk=Factura estàndard InvoiceStandardAsk=Factura estàndard
InvoiceStandardDesc=Aquest tipus de factura és la factura tradicional. També es coneix com <b>factura de dèbit</ b> (del verb deure). InvoiceStandardDesc=Aquest tipus de factura és la factura comuna.
InvoiceStandardShort=Estàndard InvoiceStandardShort=Estàndard
InvoiceDeposit=Factura de bestreta InvoiceDeposit=Factura de bestreta
InvoiceDepositAsk=Factura de bestreta InvoiceDepositAsk=Factura de bestreta
@ -31,7 +31,7 @@ InvoiceReplacementAsk=Factura rectificativa de la factura
InvoiceReplacementDesc=<b>La factura de substitució</b> s’utilitza per a substituir completament una factura sense que s’hagi rebut cap pagament. <br><br> Nota: Només es poden substituir les factures sense pagament. Si la factura que reemplaça encara no està tancada, es tancarà automàticament a 'abandonada' InvoiceReplacementDesc=<b>La factura de substitució</b> s’utilitza per a substituir completament una factura sense que s’hagi rebut cap pagament. <br><br> Nota: Només es poden substituir les factures sense pagament. Si la factura que reemplaça encara no està tancada, es tancarà automàticament a 'abandonada'
InvoiceAvoir=Abonament InvoiceAvoir=Abonament
InvoiceAvoirAsk=Abonament per factura rectificativa InvoiceAvoirAsk=Abonament per factura rectificativa
InvoiceAvoirDesc=L'<b>abonament</b> és una factura negativa destinada a compensar un import de factura que difereix de l'import realment pagat (per haver pagat de més o per devolució de productes, per exemple). InvoiceAvoirDesc=La <b>nota de crèdit</b> és una factura negativa que s'utilitza per a corregir el fet que una factura mostra un import diferent de l'import realment pagat (p. ex., el client va pagar massa per error o no pagarà l'import complet perquè alguns productes van ser retornats) .
invoiceAvoirWithLines=Crear abonament amb les línies de la factura d'origen invoiceAvoirWithLines=Crear abonament amb les línies de la factura d'origen
invoiceAvoirWithPaymentRestAmount=Crear abonament de la factura pendent de pagament invoiceAvoirWithPaymentRestAmount=Crear abonament de la factura pendent de pagament
invoiceAvoirLineWithPaymentRestAmount=Abonament per a la quantitat restant no pagada invoiceAvoirLineWithPaymentRestAmount=Abonament per a la quantitat restant no pagada
@ -244,7 +244,7 @@ RemainderToPayMulticurrency=La moneda original pendent de pagament
RemainderToTake=Import restant per a cobrar RemainderToTake=Import restant per a cobrar
RemainderToTakeMulticurrency=Import restant, moneda original RemainderToTakeMulticurrency=Import restant, moneda original
RemainderToPayBack=Import restant a reemborsar RemainderToPayBack=Import restant a reemborsar
RemainderToPayBackMulticurrency=Import restant per reembossar, moneda original RemainderToPayBackMulticurrency=Import restant a reemborsar, moneda original
NegativeIfExcessRefunded=negatiu si es reemborsa l'excés NegativeIfExcessRefunded=negatiu si es reemborsa l'excés
Rest=Pendent Rest=Pendent
AmountExpected=Import reclamat AmountExpected=Import reclamat
@ -263,7 +263,7 @@ NoOtherDraftBills=Cap altra factura esborrany
NoDraftInvoices=Sense factures esborrany NoDraftInvoices=Sense factures esborrany
RefBill=Ref. factura RefBill=Ref. factura
ToBill=A facturar ToBill=A facturar
RemainderToBill=Queda per facturar RemainderToBill=Queda per a facturar
SendBillByMail=Envia factura per e-mail SendBillByMail=Envia factura per e-mail
SendReminderBillByMail=Envia recordatori per e-mail SendReminderBillByMail=Envia recordatori per e-mail
RelatedCommercialProposals=Pressupostos relacionats RelatedCommercialProposals=Pressupostos relacionats

View File

@ -8,34 +8,12 @@ BrowseBlockedLog=Registres inalterables
ShowAllFingerPrintsMightBeTooLong=Mostra tots els registres arxivats (pot ser llarg) ShowAllFingerPrintsMightBeTooLong=Mostra tots els registres arxivats (pot ser llarg)
ShowAllFingerPrintsErrorsMightBeTooLong=Mostra tots els registres d'arxiu no vàlids (pot ser llarg) ShowAllFingerPrintsErrorsMightBeTooLong=Mostra tots els registres d'arxiu no vàlids (pot ser llarg)
DownloadBlockChain=Baixa les empremtes dactilars DownloadBlockChain=Baixa les empremtes dactilars
KoCheckFingerprintValidity=L’entrada de registre arxivada no és vàlida. Significa que algú (un pirata informàtic?) ha modificat algunes dades d’aquest registre després que es va gravar, o que ha estat esborrat el registre arxivat anterior (comproveu que la línia amb numeració anterior existeix) o ha sigut modificat el el checksum del registre anterior. KoCheckFingerprintValidity=L'entrada de registre arxivada no és vàlida. Significa que algú (un pirata informàtic?) ha modificat algunes dades d'aquest registre després d'haver-lo enregistrat, o ha esborrat el registre arxivat anterior (comproveu que existeixi la línia amb la numeració anterior) o ha modificat la suma de verificació del registre anterior.
OkCheckFingerprintValidity=El registre del registre arxivat és vàlid. Les dades d'aquesta línia no s'han modificat i l'entrada segueix l'anterior. OkCheckFingerprintValidity=El registre del registre arxivat és vàlid. Les dades d'aquesta línia no s'han modificat i l'entrada segueix l'anterior.
OkCheckFingerprintValidityButChainIsKo=El registre arxivat sembla ser vàlid en comparació amb l'anterior, però la cadena s'ha corromput prèviament. OkCheckFingerprintValidityButChainIsKo=El registre arxivat sembla ser vàlid en comparació amb l'anterior, però la cadena s'ha corromput prèviament.
AddedByAuthority=Emmagatzemat a l'autoritat remota AddedByAuthority=Emmagatzemat a l'autoritat remota
NotAddedByAuthorityYet=Encara no emmagatzemat a l'autoritat remota NotAddedByAuthorityYet=Encara no emmagatzemat a l'autoritat remota
ShowDetails=Mostra els detalls emmagatzemats ShowDetails=Mostra els detalls emmagatzemats
logPAYMENT_VARIOUS_CREATE=S'ha creat el pagament (no assignat a una factura)
logPAYMENT_VARIOUS_MODIFY=S'ha modificat el pagament (no assignat a una factura)
logPAYMENT_VARIOUS_DELETE=Supressió lògica de pagament (no assignada a una factura)
logPAYMENT_ADD_TO_BANK=Pagament afegit al banc
logPAYMENT_CUSTOMER_CREATE=S'ha creat el pagament del client
logPAYMENT_CUSTOMER_DELETE=Lògica de liquidació del pagament del client
logDONATION_PAYMENT_CREATE=Pagament de donació creat
logDONATION_PAYMENT_DELETE=Llicència de pagament de la donació
logBILL_PAYED=S'ha pagat la factura del client
logBILL_UNPAYED=Establiment de la factura del client no remunerat
logBILL_VALIDATE=Validació factura
logBILL_SENTBYMAIL=La factura del client s'envia per correu
logBILL_DELETE=S'ha suprimit la factura del client lògicament
logMODULE_RESET=S'ha desactivat el mòdul bloquejat
logMODULE_SET=S'ha habilitat el mòdul bloquejat
logDON_VALIDATE=Donació validada
logDON_MODIFY=Donació modificada
logDON_DELETE=Donació de l'eliminació lògica
logMEMBER_SUBSCRIPTION_CREATE=S'ha creat una subscripció de membre
logMEMBER_SUBSCRIPTION_MODIFY=S'ha modificat la subscripció de membre
logMEMBER_SUBSCRIPTION_DELETE=Supressió lògica de subscripció de membre
logCASHCONTROL_VALIDATE=Registre de tancament de caixa
BlockedLogBillDownload=Descarrega la factura del client BlockedLogBillDownload=Descarrega la factura del client
BlockedLogBillPreview=Previsualització de la factura del client BlockedLogBillPreview=Previsualització de la factura del client
BlockedlogInfoDialog=Detalls del registre BlockedlogInfoDialog=Detalls del registre
@ -48,10 +26,36 @@ DataOfArchivedEvent=Dades completes d'esdeveniments arxivats
ImpossibleToReloadObject=Objecte original (tipus %s, identificador %s) no enllaçat (vegeu la columna "Dades completes" per a obtenir dades desades inalterables) ImpossibleToReloadObject=Objecte original (tipus %s, identificador %s) no enllaçat (vegeu la columna "Dades completes" per a obtenir dades desades inalterables)
BlockedLogAreRequiredByYourCountryLegislation=El mòdul de registres inalterables pot ser requerit per la legislació del vostre país. La desactivació d'aquest mòdul pot fer que qualsevol transacció futura sigui invàlida pel que fa a la llei i l'ús del programari legal, ja que no es pot validar mitjançant una auditoria fiscal. BlockedLogAreRequiredByYourCountryLegislation=El mòdul de registres inalterables pot ser requerit per la legislació del vostre país. La desactivació d'aquest mòdul pot fer que qualsevol transacció futura sigui invàlida pel que fa a la llei i l'ús del programari legal, ja que no es pot validar mitjançant una auditoria fiscal.
BlockedLogActivatedBecauseRequiredByYourCountryLegislation=El mòdul de registres inalterables s'ha activat a causa de la legislació del vostre país. La desactivació d'aquest mòdul pot fer que qualsevol transacció futura sigui invàlida pel que fa a la llei i l'ús del programari legal, ja que no es pot validar mitjançant una auditoria fiscal. BlockedLogActivatedBecauseRequiredByYourCountryLegislation=El mòdul de registres inalterables s'ha activat a causa de la legislació del vostre país. La desactivació d'aquest mòdul pot fer que qualsevol transacció futura sigui invàlida pel que fa a la llei i l'ús del programari legal, ja que no es pot validar mitjançant una auditoria fiscal.
BlockedLogDisableNotAllowedForCountry=Llista de països on l'ús d'aquest mòdul és obligatori (només per impedir que es desactivi el mòdul per error, si el vostre país està en aquesta llista, la desactivació del mòdul no és possible sense editar aquesta llista. Noteu també que habilitar / desactivar aquest mòdul seguiu una pista en el registre inalterable). BlockedLogDisableNotAllowedForCountry=Llista de països on l'ús d'aquest mòdul és obligatori (només per a evitar que es desactivi el mòdul per error, si el vostre país és en aquesta llista, no és possible desactivar el mòdul sense editar aquesta llista primer. Tingueu en compte també que activar/desactivar aquest mòdul mantindrà un registre al registre inalterable).
OnlyNonValid=No vàlid OnlyNonValid=No vàlid
TooManyRecordToScanRestrictFilters=Hi ha massa registres per a escanejar/analitzar. Limita la llista amb filtres més restrictius. TooManyRecordToScanRestrictFilters=Hi ha massa registres per a escanejar/analitzar. Limita la llista amb filtres més restrictius.
RestrictYearToExport=Restringeix el mes / any per a exportar RestrictYearToExport=Restringeix el mes / any per a exportar
BlockedLogEnabled=S'ha habilitat el sistema per a fer el seguiment d'esdeveniments en registres inalterables BlockedLogEnabled=S'ha habilitat el sistema per a fer el seguiment d'esdeveniments en registres inalterables
BlockedLogDisabled=El sistema per a fer el seguiment d'esdeveniments en registres inalterables s'ha desactivat després de fer algunes gravacions. Hem desat una empremta digital especial per a fer un seguiment de la cadena com a trencada BlockedLogDisabled=El sistema per a fer el seguiment d'esdeveniments en registres inalterables s'ha desactivat després de fer algunes gravacions. Hem desat una empremta digital especial per a fer un seguiment de la cadena com a trencada
BlockedLogDisabledBis=S'ha desactivat el sistema per a fer el seguiment d'esdeveniments en registres inalterables. Això és possible perquè encara no s'ha fet cap registre. BlockedLogDisabledBis=S'ha desactivat el sistema per a fer el seguiment d'esdeveniments en registres inalterables. Això és possible perquè encara no s'ha fet cap registre.
## logTypes
logBILL_DELETE=S'ha suprimit la factura del client lògicament
logBILL_PAYED=S'ha pagat la factura del client
logBILL_SENTBYMAIL=La factura del client s'envia per correu
logBILL_UNPAYED=Establiment de la factura del client no remunerat
logBILL_VALIDATE=Validació factura
logCASHCONTROL_VALIDATE=Registre de tancament de caixa
logDOC_DOWNLOAD=Descàrrega d'un document validat per a imprimir o enviar
logDOC_PREVIEW=Vista prèvia d'un document validat per a imprimir o descarregar
logDONATION_PAYMENT_CREATE=Pagament de donació creat
logDONATION_PAYMENT_DELETE=Llicència de pagament de la donació
logDON_DELETE=Donació de l'eliminació lògica
logDON_MODIFY=Donació modificada
logDON_VALIDATE=Donació validada
logMEMBER_SUBSCRIPTION_CREATE=S'ha creat una subscripció de membre
logMEMBER_SUBSCRIPTION_DELETE=Supressió lògica de subscripció de membre
logMEMBER_SUBSCRIPTION_MODIFY=S'ha modificat la subscripció de membre
logMODULE_RESET=S'ha desactivat el mòdul bloquejat
logMODULE_SET=S'ha habilitat el mòdul bloquejat
logPAYMENT_ADD_TO_BANK=Pagament afegit al banc
logPAYMENT_CUSTOMER_CREATE=S'ha creat el pagament del client
logPAYMENT_CUSTOMER_DELETE=Lògica de liquidació del pagament del client
logPAYMENT_VARIOUS_CREATE=S'ha creat el pagament (no assignat a una factura)
logPAYMENT_VARIOUS_DELETE=Supressió lògica de pagament (no assignada a una factura)
logPAYMENT_VARIOUS_MODIFY=S'ha modificat el pagament (no assignat a una factura)

View File

@ -312,8 +312,8 @@ CustomerRelativeDiscountShort=Descompte relatiu
CustomerAbsoluteDiscountShort=Descompte fixe CustomerAbsoluteDiscountShort=Descompte fixe
CompanyHasRelativeDiscount=Aquest client té un descompte per defecte de <b>%s%%</b> CompanyHasRelativeDiscount=Aquest client té un descompte per defecte de <b>%s%%</b>
CompanyHasNoRelativeDiscount=Aquest client no té descomptes relatius per defecte CompanyHasNoRelativeDiscount=Aquest client no té descomptes relatius per defecte
HasRelativeDiscountFromSupplier=Teniu un descompte predeterminat de <b> %s%% </b> d'aquest proveïdor HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> with this vendor
HasNoRelativeDiscountFromSupplier=No default relative discount from this vendor HasNoRelativeDiscountFromSupplier=No default relative discount with this vendor
CompanyHasAbsoluteDiscount=Aquest client té descomptes disponibles (notes de crèdit o bestretes) per <b>%s</b> %s CompanyHasAbsoluteDiscount=Aquest client té descomptes disponibles (notes de crèdit o bestretes) per <b>%s</b> %s
CompanyHasDownPaymentOrCommercialDiscount=Aquest client té un descompte disponible (comercial, de pagament) per a <b>%s</b>%s CompanyHasDownPaymentOrCommercialDiscount=Aquest client té un descompte disponible (comercial, de pagament) per a <b>%s</b>%s
CompanyHasCreditNote=Aquest client encara té abonaments per <b>%s</b> %s CompanyHasCreditNote=Aquest client encara té abonaments per <b>%s</b> %s
@ -499,4 +499,7 @@ OutOfEurope=Fora d’Europa (CEE)
CurrentOutstandingBillLate=Factura pendent actual en retard CurrentOutstandingBillLate=Factura pendent actual en retard
BecarefullChangeThirdpartyBeforeAddProductToInvoice=Ves amb compte, en funció de la configuració del preu del producte, has de canviar de tercer abans d’afegir el producte al TPV. BecarefullChangeThirdpartyBeforeAddProductToInvoice=Ves amb compte, en funció de la configuració del preu del producte, has de canviar de tercer abans d’afegir el producte al TPV.
EmailAlreadyExistsPleaseRewriteYourCompanyName=El correu electrònic ja existeix, si us plau, reescriu el nom de la teva empresa EmailAlreadyExistsPleaseRewriteYourCompanyName=El correu electrònic ja existeix, si us plau, reescriu el nom de la teva empresa
TwoRecordsOfCompanyName=Hi ha més d'un registre per a aquesta empresa, poseu-vos en contacte amb nosaltres per a completar la vostra sol·licitud d'associació" TwoRecordsOfCompanyName=more than one record exists for this company, please contact us to complete your partnership request
CompanySection=Secció d'empresa
ShowSocialNetworks=Mostra les xarxes socials
HideSocialNetworks=Amaga les xarxes socials

View File

@ -84,14 +84,14 @@ MakeLocalDatabaseDumpShort=Còpia de seguretat de la base de dades local
MakeLocalDatabaseDump=Crear un bolcat de la base de dades local. Els paràmetres són: compressió ('gz' o 'bz' o 'none'), tipus de còpia de seguretat ('mysql' o 'pgsql'), 1, 'auto' o nom de fitxer per a compilar, nombre de fitxers de còpia de seguretat per conservar MakeLocalDatabaseDump=Crear un bolcat de la base de dades local. Els paràmetres són: compressió ('gz' o 'bz' o 'none'), tipus de còpia de seguretat ('mysql' o 'pgsql'), 1, 'auto' o nom de fitxer per a compilar, nombre de fitxers de còpia de seguretat per conservar
MakeSendLocalDatabaseDumpShort=Envia una còpia de seguretat de la base de dades local MakeSendLocalDatabaseDumpShort=Envia una còpia de seguretat de la base de dades local
MakeSendLocalDatabaseDump=Envieu una còpia de seguretat de la base de dades local per correu electrònic. Els paràmetres són: to, from, subject, message, filename (nom del fitxer enviat), filtre ('sql' només per a la còpia de seguretat de la base de dades) MakeSendLocalDatabaseDump=Envieu una còpia de seguretat de la base de dades local per correu electrònic. Els paràmetres són: to, from, subject, message, filename (nom del fitxer enviat), filtre ('sql' només per a la còpia de seguretat de la base de dades)
BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email BackupIsTooLargeSend=Ho sentim, l'últim fitxer de còpia de seguretat és massa gran per a enviar-lo per correu electrònic
CleanUnfinishedCronjobShort=Neteja les tasques programades inacabades CleanUnfinishedCronjobShort=Neteja les tasques programades inacabades
CleanUnfinishedCronjob=Neteja les tasques programades bloquejades en el processament quan el procés ja no s'executa CleanUnfinishedCronjob=Neteja les tasques programades bloquejades en el processament quan el procés ja no s'executa
WarningCronDelayed=Atenció, a efectes de rendiment, sigui quina sigui la propera data d'execució de les tasques habilitades, és possible que les vostres tasques es retardin a un màxim de %s hores abans de ser executades. WarningCronDelayed=Atenció, a efectes de rendiment, sigui quina sigui la propera data d'execució de les tasques habilitades, és possible que les vostres tasques es retardin a un màxim de %s hores abans de ser executades.
DATAPOLICYJob=Netejador de dades i anonimitzador DATAPOLICYJob=Netejador de dades i anonimitzador
JobXMustBeEnabled=La tasca %s s'ha d'activar JobXMustBeEnabled=La tasca %s s'ha d'activar
EmailIfError=Email for warning on error EmailIfError=Correu electrònic per a advertir d'error
ErrorInBatch=Error when running the job %s ErrorInBatch=Error en executar la tasca %s
# Cron Boxes # Cron Boxes
LastExecutedScheduledJob=Darrera tasca programada executada LastExecutedScheduledJob=Darrera tasca programada executada

View File

@ -303,6 +303,7 @@ ErrorValueForTooLow=Value for <b>%s</b> is too low
ErrorValueCantBeNull=Value for <b>%s</b> can't be null ErrorValueCantBeNull=Value for <b>%s</b> can't be null
ErrorDateOfMovementLowerThanDateOfFileTransmission=The date of the bank transaction can't be lower than the date of the file transmission ErrorDateOfMovementLowerThanDateOfFileTransmission=The date of the bank transaction can't be lower than the date of the file transmission
ErrorTooMuchFileInForm=Too much files in form, the maximum number is %s file(s) ErrorTooMuchFileInForm=Too much files in form, the maximum number is %s file(s)
ErrorSessionInvalidatedAfterPasswordChange=The session was been invalidated following a change of password, status or dates of validity. Please relogin.
# Warnings # Warnings
WarningParamUploadMaxFileSizeHigherThanPostMaxSize=El paràmetre PHP upload_max_filesize (%s) és superior al paràmetre PHP post_max_size (%s). No es tracta d’una configuració consistent. WarningParamUploadMaxFileSizeHigherThanPostMaxSize=El paràmetre PHP upload_max_filesize (%s) és superior al paràmetre PHP post_max_size (%s). No es tracta d’una configuració consistent.
@ -325,6 +326,7 @@ WarningPaymentDateLowerThanInvoiceDate=La data de pagament (%s) és anterior a l
WarningTooManyDataPleaseUseMoreFilters=Massa dades (més de %s línies). Utilitza més filtres o indica la constant %s amb un límit superior. WarningTooManyDataPleaseUseMoreFilters=Massa dades (més de %s línies). Utilitza més filtres o indica la constant %s amb un límit superior.
WarningSomeLinesWithNullHourlyRate=Algunes vegades es van registrar per alguns usuaris quan no s'havia definit el seu preu per hora. Es va utilitzar un valor de 0 %s per hora, però això pot resultar una valoració incorrecta del temps dedicat. WarningSomeLinesWithNullHourlyRate=Algunes vegades es van registrar per alguns usuaris quan no s'havia definit el seu preu per hora. Es va utilitzar un valor de 0 %s per hora, però això pot resultar una valoració incorrecta del temps dedicat.
WarningYourLoginWasModifiedPleaseLogin=El vostre nom d'usuari s'ha modificat. Per motius de seguretat, haureu d'iniciar sessió amb el vostre nou nom d'usuari abans de la propera acció. WarningYourLoginWasModifiedPleaseLogin=El vostre nom d'usuari s'ha modificat. Per motius de seguretat, haureu d'iniciar sessió amb el vostre nou nom d'usuari abans de la propera acció.
WarningYourPasswordWasModifiedPleaseLogin=S'ha modificat la teva contrasenya. Per motius de seguretat, haureu d'iniciar sessió ara amb la vostra nova contrasenya.
WarningAnEntryAlreadyExistForTransKey=Ja existeix una entrada per la clau de traducció d'aquest idioma WarningAnEntryAlreadyExistForTransKey=Ja existeix una entrada per la clau de traducció d'aquest idioma
WarningNumberOfRecipientIsRestrictedInMassAction=Advertència: el nombre de destinataris diferents està limitat a <b> %s </b> quan s'utilitzen les accions massives a les llistes. WarningNumberOfRecipientIsRestrictedInMassAction=Advertència: el nombre de destinataris diferents està limitat a <b> %s </b> quan s'utilitzen les accions massives a les llistes.
WarningDateOfLineMustBeInExpenseReportRange=Advertència, la data de la línia no està dins del rang de l'informe de despeses WarningDateOfLineMustBeInExpenseReportRange=Advertència, la data de la línia no està dins del rang de l'informe de despeses

View File

@ -172,3 +172,5 @@ ErrorSeveralCompaniesWithEmailContactUs=S'han trobat diverses empreses amb aques
ErrorSeveralCompaniesWithNameContactUs=S'han trobat diverses empreses amb aquest nom, de manera que no podem validar automàticament el vostre registre. Si us plau, poseu-vos en contacte amb nosaltres a %s per a obtenir una validació manual ErrorSeveralCompaniesWithNameContactUs=S'han trobat diverses empreses amb aquest nom, de manera que no podem validar automàticament el vostre registre. Si us plau, poseu-vos en contacte amb nosaltres a %s per a obtenir una validació manual
NoPublicActionsAllowedForThisEvent=No hi ha cap acció pública oberta al públic per a aquest esdeveniment NoPublicActionsAllowedForThisEvent=No hi ha cap acció pública oberta al públic per a aquest esdeveniment
MaxNbOfAttendees=Nombre màxim d'assistents MaxNbOfAttendees=Nombre màxim d'assistents
DateStartEvent=Data d'inici de l'esdeveniment
DateEndEvent=Data de finalització de l'esdeveniment

View File

@ -226,6 +226,7 @@ NoUserGroupDefined=Grup d'usuari no definit
Password=Contrasenya Password=Contrasenya
PasswordRetype=Repetiu la vostra contrasenya PasswordRetype=Repetiu la vostra contrasenya
NoteSomeFeaturesAreDisabled=Tingues en compte que molts mòduls i funcionalitats estan deshabilitats en aquesta demostració. NoteSomeFeaturesAreDisabled=Tingues en compte que molts mòduls i funcionalitats estan deshabilitats en aquesta demostració.
YourUserFile=Your user file
Name=Nom Name=Nom
NameSlashCompany=Nom / Empresa NameSlashCompany=Nom / Empresa
Person=Persona Person=Persona
@ -897,6 +898,9 @@ MassFilesArea=Àrea de fitxers generats per accions massives
ShowTempMassFilesArea=Mostra l'àrea de fitxers generats per accions massives ShowTempMassFilesArea=Mostra l'àrea de fitxers generats per accions massives
ConfirmMassDeletion=Confirmació d'esborrament massiu ConfirmMassDeletion=Confirmació d'esborrament massiu
ConfirmMassDeletionQuestion=Esteu segur que voleu suprimir els (s) registre (s) %s? ConfirmMassDeletionQuestion=Esteu segur que voleu suprimir els (s) registre (s) %s?
ConfirmMassClone=Bulk clone confirmation
ConfirmMassCloneQuestion=Select project to clone to
ConfirmMassCloneToOneProject=Clone to project %s
RelatedObjects=Objectes relacionats RelatedObjects=Objectes relacionats
ClassifyBilled=Classifica facturat ClassifyBilled=Classifica facturat
ClassifyUnbilled=Classifica no facturat ClassifyUnbilled=Classifica no facturat
@ -912,8 +916,8 @@ ExportFilteredList=Llistat filtrat d'exportació
ExportList=Llistat d'exportació ExportList=Llistat d'exportació
ExportOptions=Opcions d'exportació ExportOptions=Opcions d'exportació
IncludeDocsAlreadyExported=Inclou documents ja exportats IncludeDocsAlreadyExported=Inclou documents ja exportats
ExportOfPiecesAlreadyExportedIsEnable=L’exportació de peces ja exportades està habilitada ExportOfPiecesAlreadyExportedIsEnable=Documents already exported are visible and will be exported
ExportOfPiecesAlreadyExportedIsDisable=L’exportació de peces ja exportades està inhabilitada ExportOfPiecesAlreadyExportedIsDisable=Documents already exported are hidden and won't be exported
AllExportedMovementsWereRecordedAsExported=Tots els moviments exportats s'han registrat com a exportats AllExportedMovementsWereRecordedAsExported=Tots els moviments exportats s'han registrat com a exportats
NotAllExportedMovementsCouldBeRecordedAsExported=No s'ha pogut registrar tots els moviments exportats com a exportats NotAllExportedMovementsCouldBeRecordedAsExported=No s'ha pogut registrar tots els moviments exportats com a exportats
Miscellaneous=Diversos Miscellaneous=Diversos
@ -1128,6 +1132,7 @@ DeleteFileText=Realment vols suprimir aquest fitxer?
ShowOtherLanguages=Mostrar altres idiomes ShowOtherLanguages=Mostrar altres idiomes
SwitchInEditModeToAddTranslation=Canviar a mode d'edició per a afegir traduccions per a aquest idioma SwitchInEditModeToAddTranslation=Canviar a mode d'edició per a afegir traduccions per a aquest idioma
NotUsedForThisCustomer=No s'utilitza per a aquest client NotUsedForThisCustomer=No s'utilitza per a aquest client
NotUsedForThisVendor=Not used for this vendor
AmountMustBePositive=L'import ha de ser positiu AmountMustBePositive=L'import ha de ser positiu
ByStatus=Per estat ByStatus=Per estat
InformationMessage=Informació InformationMessage=Informació
@ -1148,14 +1153,14 @@ EventReminder=Recordatori d'esdeveniments
UpdateForAllLines=Actualització per a totes les línies UpdateForAllLines=Actualització per a totes les línies
OnHold=Fora de servei OnHold=Fora de servei
Civility=Civilitat Civility=Civilitat
AffectTag=Assign Tag AffectTag=Assign a Tag
AffectUser=Assign User AffectUser=Assign a User
SetSupervisor=Set Supervisor SetSupervisor=Set the supervisor
CreateExternalUser=Crea un usuari extern CreateExternalUser=Crea un usuari extern
ConfirmAffectTag=Bulk Tag Assignement ConfirmAffectTag=Bulk Tag Assignement
ConfirmAffectUser=Bulk User Assignement ConfirmAffectUser=Bulk User Assignement
ProjectRole=Role assigned on each project ProjectRole=Role assigned on each project/opportunity
TasksRole=Role assigned on each task of each project TasksRole=Role assigned on each task (if used)
ConfirmSetSupervisor=Bulk Supervisor Set ConfirmSetSupervisor=Bulk Supervisor Set
ConfirmUpdatePrice=Choose a increase/decrease price rate ConfirmUpdatePrice=Choose a increase/decrease price rate
ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)?
@ -1210,3 +1215,10 @@ CreatedByPublicPortal=Creat a partir del portal públic
UserAgent=Agent d'usuari UserAgent=Agent d'usuari
InternalUser=Usuari intern InternalUser=Usuari intern
ExternalUser=Usuari extern ExternalUser=Usuari extern
NoSpecificContactAddress=No specific contact or address
NoSpecificContactAddressBis=This tab is dedicated to force specific contacts or addresses for the current object. Use it only if you want to define one or several specific contacts or addresses for the object when the information on the thirdparty is not enough or not accurate.
HideOnVCard=Hide %s
AddToContacts=Add address to my contacts
LastAccess=Últim accés
UploadAnImageToSeeAPhotoHere=Carregueu una imatge de la pestanya %s per a veure una foto aquí
LastPasswordChangeDate=Last password change date

View File

@ -207,7 +207,7 @@ NbOfSubscriptions=Nombre de contribucions
AmountOfSubscriptions=Import recaptat de les contribucions AmountOfSubscriptions=Import recaptat de les contribucions
TurnoverOrBudget=Volum de vendes (empresa) o Pressupost (associació o col.lectiu) TurnoverOrBudget=Volum de vendes (empresa) o Pressupost (associació o col.lectiu)
DefaultAmount=Import per defecte de la contribució DefaultAmount=Import per defecte de la contribució
CanEditAmount=Subscription amount is free CanEditAmount=L'import de la subscripció és gratuït
CanEditAmountDetail=El visitant pot triar/editar la quantitat de la seva contribució independentment del tipus de soci CanEditAmountDetail=El visitant pot triar/editar la quantitat de la seva contribució independentment del tipus de soci
AmountIsLowerToMinimumNotice=sobre un total d'%s AmountIsLowerToMinimumNotice=sobre un total d'%s
MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page

View File

@ -96,6 +96,10 @@ OrdersStatisticsSuppliers=Estadístiques de comandes de compra
NumberOfOrdersByMonth=Nombre de comandes per mes NumberOfOrdersByMonth=Nombre de comandes per mes
AmountOfOrdersByMonthHT=Quantitat de comandes per mes (sense IVA) AmountOfOrdersByMonthHT=Quantitat de comandes per mes (sense IVA)
ListOfOrders=Llistat de comandes ListOfOrders=Llistat de comandes
ListOrderLigne=Lines of orders
productobuy=Products to buy only
productonly=Només productes
disablelinefree=No lines free
CloseOrder=Tancar comanda CloseOrder=Tancar comanda
ConfirmCloseOrder=Vols classificar aquesta comanda com entregada? Un cop s'entrega la comanda, es podrà classificar com a facturada. ConfirmCloseOrder=Vols classificar aquesta comanda com entregada? Un cop s'entrega la comanda, es podrà classificar com a facturada.
ConfirmDeleteOrder=Vols eliminar aquesta comanda? ConfirmDeleteOrder=Vols eliminar aquesta comanda?
@ -131,6 +135,7 @@ SupplierOrderClassifiedBilled=Comanda de compra %s com a facturada
OtherOrders=Altres comandes OtherOrders=Altres comandes
SupplierOrderValidatedAndApproved=La comanda del proveïdor està validada i aprovada: %s SupplierOrderValidatedAndApproved=La comanda del proveïdor està validada i aprovada: %s
SupplierOrderValidated=La comanda del proveïdor està validada: %s SupplierOrderValidated=La comanda del proveïdor està validada: %s
OrderShowDetail=Show order detail
##### Types de contacts ##### ##### Types de contacts #####
TypeContact_commande_internal_SALESREPFOLL=Ordre de venda de seguiment representatiu TypeContact_commande_internal_SALESREPFOLL=Ordre de venda de seguiment representatiu
TypeContact_commande_internal_SHIPPING=Responsable del seguiment de l'enviament TypeContact_commande_internal_SHIPPING=Responsable del seguiment de l'enviament
@ -199,3 +204,5 @@ StatusSupplierOrderApproved=Aprovat
StatusSupplierOrderRefused=Rebutjat StatusSupplierOrderRefused=Rebutjat
StatusSupplierOrderReceivedPartially=Rebuda parcialment StatusSupplierOrderReceivedPartially=Rebuda parcialment
StatusSupplierOrderReceivedAll=Tots els productes rebuts StatusSupplierOrderReceivedAll=Tots els productes rebuts
NeedAtLeastOneInvoice = Hi ha d'haver almenys una factura
LineAlreadyDispatched = La línia de comanda ja s'ha rebut.

View File

@ -125,7 +125,7 @@ ValidateProject=Validar projecte
ConfirmValidateProject=Vols validar aquest projecte? ConfirmValidateProject=Vols validar aquest projecte?
CloseAProject=Tancar projecte CloseAProject=Tancar projecte
ConfirmCloseAProject=Vols tancar aquest projecte? ConfirmCloseAProject=Vols tancar aquest projecte?
AlsoCloseAProject=Also close project AlsoCloseAProject=Tanca el projecte també
AlsoCloseAProjectTooltip=Manteniu-lo obert si encara heu de seguir les tasques de producció AlsoCloseAProjectTooltip=Manteniu-lo obert si encara heu de seguir les tasques de producció
ReOpenAProject=Reobrir projecte ReOpenAProject=Reobrir projecte
ConfirmReOpenAProject=Vols reobrir aquest projecte? ConfirmReOpenAProject=Vols reobrir aquest projecte?
@ -259,6 +259,7 @@ RecordsClosed=%s projecte(s) tancat(s)
SendProjectRef=Informació del projecte %s SendProjectRef=Informació del projecte %s
ModuleSalaryToDefineHourlyRateMustBeEnabled=El mòdul "Salaris" ha d'estar habilitat per a definir la tarifa horària dels empleats per tal de valorar el temps dedicat ModuleSalaryToDefineHourlyRateMustBeEnabled=El mòdul "Salaris" ha d'estar habilitat per a definir la tarifa horària dels empleats per tal de valorar el temps dedicat
NewTaskRefSuggested=Tasca ref en ús, es requereix una nova tasca ref NewTaskRefSuggested=Tasca ref en ús, es requereix una nova tasca ref
NumberOfTasksCloned=%s task(s) cloned
TimeSpentInvoiced=Temps de facturació facturat TimeSpentInvoiced=Temps de facturació facturat
TimeSpentForIntervention=Temps dedicat TimeSpentForIntervention=Temps dedicat
TimeSpentForInvoice=Temps dedicat TimeSpentForInvoice=Temps dedicat
@ -287,7 +288,7 @@ AddPersonToTask=Afegeix també a les tasques
UsageOrganizeEvent=Ús: organització d'esdeveniments UsageOrganizeEvent=Ús: organització d'esdeveniments
PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classifica un projecte com a tancat quan s'hagin completat totes les seves tasques (progrés 100%%) PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classifica un projecte com a tancat quan s'hagin completat totes les seves tasques (progrés 100%%)
PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects.
SelectLinesOfTimeSpentToInvoice=Seleccioneu les línies de temps que no es facturen i, a continuació, feu una acció massiva "Genera factura" per facturar-les SelectLinesOfTimeSpentToInvoice=Seleccioneu les línies de temps invertides que no estiguin facturades i, a continuació, feu l'acció massiva "Genera factura" per a facturar-les.
ProjectTasksWithoutTimeSpent=Projecte tasques sense temps dedicat ProjectTasksWithoutTimeSpent=Projecte tasques sense temps dedicat
FormForNewLeadDesc=Gràcies per omplir el següent formulari per contactar amb nosaltres. També podeu enviar-nos un correu electrònic directament a <b> %s </b>. FormForNewLeadDesc=Gràcies per omplir el següent formulari per contactar amb nosaltres. També podeu enviar-nos un correu electrònic directament a <b> %s </b>.
ProjectsHavingThisContact=Projectes amb aquest contacte ProjectsHavingThisContact=Projectes amb aquest contacte

View File

@ -49,7 +49,7 @@ StockCorrection=Regularització d'estoc
CorrectStock=Regularització d'estoc CorrectStock=Regularització d'estoc
StockTransfer=Transferència d’estoc StockTransfer=Transferència d’estoc
TransferStock=Transferència d'estoc TransferStock=Transferència d'estoc
MassStockTransferShort=Bulk stock change MassStockTransferShort=Canvi d'estoc massiu
StockMovement=Moviment d'estoc StockMovement=Moviment d'estoc
StockMovements=Moviments d'estoc StockMovements=Moviments d'estoc
NumberOfUnit=Nombre d'unitats NumberOfUnit=Nombre d'unitats
@ -107,7 +107,7 @@ LieuWareHouse=Localització magatzem
WarehousesAndProducts=Magatzems i productes WarehousesAndProducts=Magatzems i productes
WarehousesAndProductsBatchDetail=Magatzems i productes (amb detall per lot/sèrie) WarehousesAndProductsBatchDetail=Magatzems i productes (amb detall per lot/sèrie)
AverageUnitPricePMPShort=Preu mitjà ponderat AverageUnitPricePMPShort=Preu mitjà ponderat
AverageUnitPricePMPDesc=El preu unitari mitjà d’entrada que vam haver de gastar per aconseguir una unitat de producte al nostre estoc. AverageUnitPricePMPDesc=El preu unitari mitjà d'entrada que hem hagut de gastar per a incorporar 1 unitat de producte al nostre estoc.
SellPriceMin=Preu de venda unitari SellPriceMin=Preu de venda unitari
EstimatedStockValueSellShort=Valor per vendre EstimatedStockValueSellShort=Valor per vendre
EstimatedStockValueSell=Valor per vendre EstimatedStockValueSell=Valor per vendre

View File

@ -28,7 +28,7 @@ AccountParameter=Paràmetres del compte
UsageParameter=Paràmetres d'ús UsageParameter=Paràmetres d'ús
InformationToFindParameters=Ajuda per a trobar la vostra informació del compte %s InformationToFindParameters=Ajuda per a trobar la vostra informació del compte %s
STRIPE_CGI_URL_V2=URL CGI del mòdul Stripe per al pagament STRIPE_CGI_URL_V2=URL CGI del mòdul Stripe per al pagament
CSSUrlForPaymentForm=Url del full d'estil CSS per al formulari de pagament CSSUrlForPaymentForm=URL del full d'estil CSS per al formulari de pagament
NewStripePaymentReceived=S'ha rebut un pagament nou de Stripe NewStripePaymentReceived=S'ha rebut un pagament nou de Stripe
NewStripePaymentFailed=S'ha intentat el pagament nou de Stripe, però ha fallat NewStripePaymentFailed=S'ha intentat el pagament nou de Stripe, però ha fallat
FailedToChargeCard=No s'ha pogut fer el càrrec a la targeta FailedToChargeCard=No s'ha pogut fer el càrrec a la targeta
@ -41,7 +41,8 @@ STRIPE_LIVE_WEBHOOK_KEY=Webhook clau en directe
ONLINE_PAYMENT_WAREHOUSE=Estoc a utilitzar per a disminuir l'estoc quan es fa el pagament en línia <br>(Pendent de fer quan l'opció per a reduir l'estoc es fa en una acció a la factura i el pagament en línia es genera la seva factura?) ONLINE_PAYMENT_WAREHOUSE=Estoc a utilitzar per a disminuir l'estoc quan es fa el pagament en línia <br>(Pendent de fer quan l'opció per a reduir l'estoc es fa en una acció a la factura i el pagament en línia es genera la seva factura?)
StripeLiveEnabled=Stripe live activat (en cas contrari, mode de prova/sandbox) StripeLiveEnabled=Stripe live activat (en cas contrari, mode de prova/sandbox)
StripeImportPayment=Importar pagaments per Stripe StripeImportPayment=Importar pagaments per Stripe
ExampleOfTestCreditCard=Exemple de targeta de crèdit per a la prova: %s => vàlid, %s => error CVC, %s => caducat, %s => falla la càrrega ExampleOfTestCreditCard=Example of credit card for SEPA test: %s => valid, %s => error CVC, %s => expired, %s => charge fails
ExampleOfTestBankAcountForSEPA=Exemple de compte bancari BAN per a la prova de domiciliació bancària: %s
StripeGateways=Passarel·les Stripe StripeGateways=Passarel·les Stripe
OAUTH_STRIPE_TEST_ID=Identificador de client de Stripe Connect (ca _...) OAUTH_STRIPE_TEST_ID=Identificador de client de Stripe Connect (ca _...)
OAUTH_STRIPE_LIVE_ID=Identificador de client de Stripe Connect (ca _...) OAUTH_STRIPE_LIVE_ID=Identificador de client de Stripe Connect (ca _...)
@ -61,6 +62,7 @@ DeleteACard=Suprimeix la targeta
ConfirmDeleteCard=Estàs segur que vols eliminar aquesta targeta de crèdit o de dèbit? ConfirmDeleteCard=Estàs segur que vols eliminar aquesta targeta de crèdit o de dèbit?
CreateCustomerOnStripe=Crea un client a Stripe CreateCustomerOnStripe=Crea un client a Stripe
CreateCardOnStripe=Crea una targeta a Stripe CreateCardOnStripe=Crea una targeta a Stripe
CreateBANOnStripe=Create bank on Stripe
ShowInStripe=Mostra a Stripe ShowInStripe=Mostra a Stripe
StripeUserAccountForActions=Compte d'usuari que s'utilitzarà per a la notificació per correu electrònic d'alguns esdeveniments de Stripe (pagaments de Stripe) StripeUserAccountForActions=Compte d'usuari que s'utilitzarà per a la notificació per correu electrònic d'alguns esdeveniments de Stripe (pagaments de Stripe)
StripePayoutList=Llista de pagaments de Stripe StripePayoutList=Llista de pagaments de Stripe
@ -69,4 +71,8 @@ ToOfferALinkForLiveWebhook=Enllaç a la configuració de Stripe WebHook per truc
PaymentWillBeRecordedForNextPeriod=El pagament es registrarà per al període següent. PaymentWillBeRecordedForNextPeriod=El pagament es registrarà per al període següent.
ClickHereToTryAgain=<a href="%s"> Feu clic aquí per a tornar-ho a provar... </a> ClickHereToTryAgain=<a href="%s"> Feu clic aquí per a tornar-ho a provar... </a>
CreationOfPaymentModeMustBeDoneFromStripeInterface=A causa de les fortes regles d'autenticació de clients, la creació d'una fitxa s'ha de fer des del panell de Stripe. Podeu fer clic aquí per a activar el registre de clients de Stripe: %s CreationOfPaymentModeMustBeDoneFromStripeInterface=A causa de les fortes regles d'autenticació de clients, la creació d'una fitxa s'ha de fer des del panell de Stripe. Podeu fer clic aquí per a activar el registre de clients de Stripe: %s
TERMINAL_LOCATION=Ubicació (adreça) per a terminals STRIPE_CARD_PRESENT=Card Present for Stripe Terminals
TERMINAL_LOCATION=Location (address) for Stripe Terminals
RequestDirectDebitWithStripe=Request Direct Debit with Stripe
STRIPE_SEPA_DIRECT_DEBIT=Activeu els pagaments per domiciliació bancària mitjançant Stripe

View File

@ -26,6 +26,7 @@ Permission56002=Modifica tiquets
Permission56003=Esborrar tiquets Permission56003=Esborrar tiquets
Permission56004=Gestiona els tiquets Permission56004=Gestiona els tiquets
Permission56005=Veure els tiquets de tots els tercers (no efectiu per als usuaris externs, sempre estarà limitat al tercer del qual depenen) Permission56005=Veure els tiquets de tots els tercers (no efectiu per als usuaris externs, sempre estarà limitat al tercer del qual depenen)
Permission56006=Export tickets
Tickets=Tiquets Tickets=Tiquets
TicketDictType=Tiquet - Tipus TicketDictType=Tiquet - Tipus
@ -61,6 +62,8 @@ TypeContact_ticket_external_CONTRIBUTOR=Col·laborador extern
OriginEmail=Correu electrònic del reporter OriginEmail=Correu electrònic del reporter
Notify_TICKET_SENTBYMAIL=Envia el missatge del tiquet per correu electrònic Notify_TICKET_SENTBYMAIL=Envia el missatge del tiquet per correu electrònic
ExportDataset_ticket_1=Tiquets
# Status # Status
Read=Llegit Read=Llegit
Assigned=Assignat Assigned=Assignat

View File

@ -47,7 +47,7 @@ RemoveFromGroup=Eliminar del grup
PasswordChangedAndSentTo=Contrasenya canviada i enviada a <b>%s</b>. PasswordChangedAndSentTo=Contrasenya canviada i enviada a <b>%s</b>.
PasswordChangeRequest=Sol·licitud de canvi de contrasenya per <b> %s </b> PasswordChangeRequest=Sol·licitud de canvi de contrasenya per <b> %s </b>
PasswordChangeRequestSent=Petició de canvi de contrasenya per a <b>%s</b> enviada a <b>%s</b>. PasswordChangeRequestSent=Petició de canvi de contrasenya per a <b>%s</b> enviada a <b>%s</b>.
IfLoginExistPasswordRequestSent=Si aquest inici de sessió és un compte vàlid, s'ha enviat un correu electrònic per a restablir la contrasenya. IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent.
IfEmailExistPasswordRequestSent=Si aquest correu electrònic és un compte vàlid, s'ha enviat un correu electrònic per a restablir la contrasenya. IfEmailExistPasswordRequestSent=Si aquest correu electrònic és un compte vàlid, s'ha enviat un correu electrònic per a restablir la contrasenya.
ConfirmPasswordReset=Confirma la restauració de la contrasenya ConfirmPasswordReset=Confirma la restauració de la contrasenya
MenuUsersAndGroups=Usuaris i grups MenuUsersAndGroups=Usuaris i grups
@ -66,9 +66,9 @@ LinkedToDolibarrUser=Enllaç a l'usuari
LinkedToDolibarrThirdParty=Enllaç a tercers LinkedToDolibarrThirdParty=Enllaç a tercers
CreateDolibarrLogin=Crear un compte d'usuari CreateDolibarrLogin=Crear un compte d'usuari
CreateDolibarrThirdParty=Crea un tercer CreateDolibarrThirdParty=Crea un tercer
LoginAccountDisableInDolibarr=El compte està desactivat en Dolibarr LoginAccountDisableInDolibarr=Compte desactivat a Dolibarr
PASSWORDInDolibarr=Contrasenya modificada a Dolibarr
UsePersonalValue=Utilitzar valors personalitzats UsePersonalValue=Utilitzar valors personalitzats
InternalUser=Usuari intern
ExportDataset_user_1=Usuaris i les seves propietats ExportDataset_user_1=Usuaris i les seves propietats
DomainUser=Usuari de domini DomainUser=Usuari de domini
Reactivate=Reactivar Reactivate=Reactivar
@ -128,3 +128,8 @@ DateLastLogin=Data darrera sessió
DatePreviousLogin=Data d'inici de sessió anterior DatePreviousLogin=Data d'inici de sessió anterior
IPLastLogin=IP darrer inici de sessió IPLastLogin=IP darrer inici de sessió
IPPreviousLogin=IP d'inici de sessió anterior IPPreviousLogin=IP d'inici de sessió anterior
ShowAllPerms=Show all permission rows
HideAllPerms=Hide all permission rows
UserPublicPageDesc=You can enable a virtual card for this user. An url with the user profile and a barcode will be available to allow anybody with a smartphone to scan it and add your contact to its address book.
EnablePublicVirtualCard=Enable the public virtual user card
PublicVirtualCardUrl=Public virtual user card

View File

@ -101,11 +101,11 @@ CreditDate=Abonada el
WithdrawalFileNotCapable=No es pot generar el fitxer de rebut de domiciliació del vostre país %s (El vostre país no és compatible) WithdrawalFileNotCapable=No es pot generar el fitxer de rebut de domiciliació del vostre país %s (El vostre país no és compatible)
ShowWithdraw=Mostra l'ordre de domiciliació ShowWithdraw=Mostra l'ordre de domiciliació
IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Tot i això, si la factura té com a mínim una ordre de pagament per domiciliació bancària encara no processada, no s’establirà com a pagament per a permetre la gestió prèvia de la retirada. IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Tot i això, si la factura té com a mínim una ordre de pagament per domiciliació bancària encara no processada, no s’establirà com a pagament per a permetre la gestió prèvia de la retirada.
DoStandingOrdersBeforePayments=Aquesta pestanya permet sol·licitar una ordre de pagament per domiciliació bancària. Un cop fet, podeu entrar al menú "Banc->Pagament per domiciliació bancària" per generar i gestionar un fitxer de comanda de domiciliació bancària. DoStandingOrdersBeforePayments=Aquesta pestanya permet sol·licitar una ordre de pagament per domiciliació bancària. Un cop fet, podeu entrar al menú "Banc->Pagament per domiciliació bancària" per a generar i gestionar un fitxer de domiciliació bancària.
DoStandingOrdersBeforePayments2=També podeu enviar una sol·licitud directament a un processador de pagaments SEPA com Stripe, ... DoStandingOrdersBeforePayments2=També podeu enviar una sol·licitud directament a un processador de pagaments SEPA com Stripe, ...
DoStandingOrdersBeforePayments3=Quan es tanqui l'ordre de domiciliació bancària, el pagament de les factures es registrarà automàticament i les factures es tanquen si la resta per pagar és nul·la. DoStandingOrdersBeforePayments3=Quan es tanqui l'ordre de domiciliació bancària, el pagament de les factures es registrarà automàticament i les factures es tanquen si la resta per a pagar és nul·la.
DoCreditTransferBeforePayments=Aquesta pestanya us permet sol·licitar una ordre de transferència de crèdit. Un cop fet, aneu al menú "Banc->Pagament per transferència de crèdit" per generar i gestionar un fitxer d'ordre de transferència de crèdit. DoCreditTransferBeforePayments=Aquesta pestanya us permet sol·licitar una ordre de transferència de crèdit. Un cop fet, aneu al menú "Banc->Pagament per transferència de crèdit" per a generar i gestionar un fitxer d'ordre de transferència de crèdit.
DoCreditTransferBeforePayments3=Quan es tanqui l'ordre de transferència de crèdit, el pagament de les factures es registrarà automàticament i les factures es tanquen si la resta per pagar és nul·la. DoCreditTransferBeforePayments3=Quan es tanqui l'ordre de transferència de crèdit, el pagament de les factures es registrarà automàticament i les factures es tanquen si la resta per a pagar és nul·la.
WithdrawalFile=Fitxer de comanda de dèbit WithdrawalFile=Fitxer de comanda de dèbit
CreditTransferFile=Fitxer de transferència de crèdit CreditTransferFile=Fitxer de transferència de crèdit
SetToStatusSent=Estableix l'estat "Fitxer enviat" SetToStatusSent=Estableix l'estat "Fitxer enviat"
@ -122,7 +122,7 @@ WithdrawRequestErrorNilAmount=No és possible crear una domiciliació sense impo
SepaMandate=Mandat de domiciliació bancària SEPA SepaMandate=Mandat de domiciliació bancària SEPA
SepaMandateShort=Mandat SEPA SepaMandateShort=Mandat SEPA
PleaseReturnMandate=Si us plau, envieu aquest formulari de mandat per correu electrònic a %s o per correu postal a PleaseReturnMandate=Si us plau, envieu aquest formulari de mandat per correu electrònic a %s o per correu postal a
SEPALegalText=En signar aquest formulari de mandat, autoritzeu (A) a %s i al seu proveïdor de serveis de pagament a enviar instruccions al vostre banc per carregar el vostre compte i (B) al vostre banc a domiciliar el vostre compte d'acord amb les instruccions d'%s. Com a part dels vostres drets, teniu dret a un reemborsament del vostre banc segons els termes i condicions del vostre acord amb el vostre banc. Els vostres drets respecte al mandat anterior s'expliquen en un comunicat que podeu obtenir al vostre banc. SEPALegalText=En signar aquest formulari de mandat, autoritzeu (A) a %s i al seu proveïdor de serveis de pagament a enviar instruccions al vostre banc per a carregar el vostre compte i (B) al vostre banc a domiciliar el vostre compte d'acord amb les instruccions d'%s. Com a part dels vostres drets, teniu dret a un reemborsament del vostre banc segons els termes i condicions del vostre acord amb el vostre banc. Els vostres drets respecte al mandat anterior s'expliquen en un comunicat que podeu obtenir al vostre banc.
CreditorIdentifier=Identificador del creditor CreditorIdentifier=Identificador del creditor
CreditorName=Nom del creditor CreditorName=Nom del creditor
SEPAFillForm=(B) Si us plau completa tots els camps marcats amb * SEPAFillForm=(B) Si us plau completa tots els camps marcats amb *

View File

@ -18,4 +18,4 @@ ModuleZapierForDolibarrDesc = Mòdul Zapier per a Dolibarr
ZapierForDolibarrSetup=Configuració de Zapier per a Dolibarr ZapierForDolibarrSetup=Configuració de Zapier per a Dolibarr
ZapierDescription=Interfície amb Zapier ZapierDescription=Interfície amb Zapier
ZapierAbout=Quant al mòdul Zapier ZapierAbout=Quant al mòdul Zapier
ZapierSetupPage=No cal una configuració de Dolibarr per a utilitzar Zapier. Tanmateix, heu de generar i publicar un paquet a zapier per a poder utilitzar Zapier amb Dolibarr. Vegeu la documentació sobre <a href="https://wiki.dolibarr.org/index.php/Module_Zapier"> aquesta pàgina wiki </a>. ZapierSetupPage=No cal una configuració de Dolibarr per a utilitzar Zapier. Tanmateix, heu de generar i publicar un paquet a zapier per a poder utilitzar Zapier amb Dolibarr. Vegeu la documentació sobre <a href="https://wiki.dolibarr.org/index.php/Module_Zapier">aquesta pàgina wiki</a>.

View File

@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=Zvolte typ návratu vozíku
ACCOUNTING_EXPORT_PREFIX_SPEC=Určete předponu pro název souboru ACCOUNTING_EXPORT_PREFIX_SPEC=Určete předponu pro název souboru
ThisService=Tato služba ThisService=Tato služba
ThisProduct=Tento výrobek ThisProduct=Tento výrobek
DefaultForService=Výchozí nastavení pro službu DefaultForService=Default for services
DefaultForProduct=Výchozí produkt DefaultForProduct=Default for products
ProductForThisThirdparty=Produkty pro tento subjekt ProductForThisThirdparty=Produkty pro tento subjekt
ServiceForThisThirdparty=Služby pro tento subjekt ServiceForThisThirdparty=Služby pro tento subjekt
CantSuggest=Nelze navrhnout CantSuggest=Nelze navrhnout
@ -101,7 +101,8 @@ ShowAccountingAccount=Zobrazit účetní účet
ShowAccountingJournal=Zobrazit účetní deník ShowAccountingJournal=Zobrazit účetní deník
ShowAccountingAccountInLedger=Show accounting account in ledger ShowAccountingAccountInLedger=Show accounting account in ledger
ShowAccountingAccountInJournals=Show accounting account in journals ShowAccountingAccountInJournals=Show accounting account in journals
AccountAccountingSuggest=Účetní účet navrhl DataUsedToSuggestAccount=Data used to suggest account
AccountAccountingSuggest=Account suggested
MenuDefaultAccounts=výchozí účty MenuDefaultAccounts=výchozí účty
MenuBankAccounts=Bankovní účty MenuBankAccounts=Bankovní účty
MenuVatAccounts=Účty DPH MenuVatAccounts=Účty DPH
@ -126,6 +127,7 @@ WriteBookKeeping=Record transactions in accounting
Bookkeeping=účetní kniha Bookkeeping=účetní kniha
BookkeepingSubAccount=Subledger BookkeepingSubAccount=Subledger
AccountBalance=Zůstatek na účtu AccountBalance=Zůstatek na účtu
AccountBalanceSubAccount=Sub-accounts balance
ObjectsRef=Zdrojový objekt ref ObjectsRef=Zdrojový objekt ref
CAHTF=Celkový prodejce před zdaněním CAHTF=Celkový prodejce před zdaněním
TotalExpenseReport=Celková výkaz výdajů TotalExpenseReport=Celková výkaz výdajů
@ -189,6 +191,7 @@ ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be us
UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty)
ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default
UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty)
ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY=Accounting account by default to register customer retained warranty
ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet)
ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet)
@ -218,6 +221,7 @@ JournalLabel=Označení časopisu
NumPiece=počet kusů NumPiece=počet kusů
TransactionNumShort=Num. transakce TransactionNumShort=Num. transakce
AccountingCategory=Custom group of accounts AccountingCategory=Custom group of accounts
AccountingCategories=Custom groups of accounts
GroupByAccountAccounting=Group by general ledger account GroupByAccountAccounting=Group by general ledger account
GroupBySubAccountAccounting=Group by subledger account GroupBySubAccountAccounting=Group by subledger account
AccountingAccountGroupsDesc=Zde můžete definovat některé skupiny účetních účtů. Budou se používat pro personalizované účetní výkazy. AccountingAccountGroupsDesc=Zde můžete definovat některé skupiny účetních účtů. Budou se používat pro personalizované účetní výkazy.
@ -265,6 +269,7 @@ ShowSubtotalByGroup=Show subtotal by level
Pcgtype=Skupina účtů Pcgtype=Skupina účtů
PcgtypeDesc=Skupina účtů se používá jako předdefinovaná kritéria pro filtrování a seskupování pro některé účetní výkazy. Například „PŘÍJMY“ nebo „VÝDAJE“ se používají jako skupiny pro účetní účty produktů k sestavení výkazu nákladů / výnosů. PcgtypeDesc=Skupina účtů se používá jako předdefinovaná kritéria pro filtrování a seskupování pro některé účetní výkazy. Například „PŘÍJMY“ nebo „VÝDAJE“ se používají jako skupiny pro účetní účty produktů k sestavení výkazu nákladů / výnosů.
AccountingCategoriesDesc=Custom group of accounts can be used to group accounting accounts into one name to ease filter use or building of custom reports.
Reconcilable=Smíření Reconcilable=Smíření
@ -294,6 +299,7 @@ DescValidateMovements=Jakékoli úpravy nebo vymazání písem, nápisů a vymaz
ValidateHistory=Ověřit automaticky ValidateHistory=Ověřit automaticky
AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s)
DoManualBindingForFailedRecord=You have to do a manual link for the %s row(s) not linked automatically.
ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used
MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s
@ -337,11 +343,13 @@ ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on
ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting)
ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting)
ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting
ACCOUNTING_ENABLE_AUTOLETTERING=Enable the automatic lettering when transferring to accounting
## Export ## Export
NotExportLettering=Do not export the lettering when generating the file NotExportLettering=Do not export the lettering when generating the file
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=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>
NotifiedValidationDate=Validate and Lock the exported entries <span class="warning">(same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible)</span> NotifiedValidationDate=Validate and Lock the exported entries <span class="warning">(same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible)</span>
NotifiedExportFull=Export documents ?
DateValidationAndLock=Date validation and lock DateValidationAndLock=Date validation and lock
ConfirmExportFile=Confirmation of the generation of the accounting export file ? ConfirmExportFile=Confirmation of the generation of the accounting export file ?
ExportDraftJournal=Exportovat deník návrhu ExportDraftJournal=Exportovat deník návrhu
@ -398,7 +406,7 @@ SaleLocal=Místní prodej
SaleExport=Exportní prodej SaleExport=Exportní prodej
SaleEEC=Prodej v EHS SaleEEC=Prodej v EHS
SaleEECWithVAT=Prodej v EHS s nulovou DPH, takže předpokládáme, že se nejedná o intrakomunitní prodej a navrhovaný účet je standardní produktový účet. SaleEECWithVAT=Prodej v EHS s nulovou DPH, takže předpokládáme, že se nejedná o intrakomunitní prodej a navrhovaný účet je standardní produktový účet.
SaleEECWithoutVATNumber=Prodej v EHS bez DPH, ale DIČ třetí strany není definováno. Pro standardní prodej jsme upadli na produktový účet. V případě potřeby můžete opravit DIČ třetí strany nebo produktový účet. SaleEECWithoutVATNumber=Sale in EEC with no VAT but the VAT ID of thirdparty is not defined. We fall back on the account for standard sales. You can fix the VAT ID of the thirdparty, or change the product account suggested for binding if needed.
ForbiddenTransactionAlreadyExported=Forbidden: The transaction has been validated and/or exported. ForbiddenTransactionAlreadyExported=Forbidden: The transaction has been validated and/or exported.
ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated. ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated.
## Dictionary ## Dictionary
@ -442,6 +450,7 @@ AccountancyErrorMismatchLetterCode=Mismatch in reconcile code
AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0
AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s
ErrorAccountNumberAlreadyExists=The accounting number %s already exists ErrorAccountNumberAlreadyExists=The accounting number %s already exists
ErrorArchiveAddFile=Can't put "%s" file in archive
## Import ## Import
ImportAccountingEntries=Účetní zápisy ImportAccountingEntries=Účetní zápisy
@ -468,5 +477,7 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise)
DateExport=Datum exportu DateExport=Datum exportu
WarningReportNotReliable=Upozornění: Tento přehled není založen na záznamníku, takže neobsahuje transakci upravenou ručně v Knihovně. Je-li vaše deník aktuální, zobrazení účetnictví je přesnější. WarningReportNotReliable=Upozornění: Tento přehled není založen na záznamníku, takže neobsahuje transakci upravenou ručně v Knihovně. Je-li vaše deník aktuální, zobrazení účetnictví je přesnější.
ExpenseReportJournal=Účet výkazů výdajů ExpenseReportJournal=Účet výkazů výdajů
DocsAlreadyExportedAreExcluded=Docs already exported are excluded
ClickToHideAlreadyExportedLines=Click to hide already exported lines
NAccounts=%s accounts NAccounts=%s accounts

View File

@ -226,6 +226,7 @@ NoUserGroupDefined=Žádná uživatelská skupina není definována
Password=Heslo Password=Heslo
PasswordRetype=Repeat your password PasswordRetype=Repeat your password
NoteSomeFeaturesAreDisabled=Všimněte si, že v této demonstraci je mnoho funkcí / modulů zakázáno. NoteSomeFeaturesAreDisabled=Všimněte si, že v této demonstraci je mnoho funkcí / modulů zakázáno.
YourUserFile=Your user file
Name=Název Name=Název
NameSlashCompany=Název / společnost NameSlashCompany=Název / společnost
Person=Osoba Person=Osoba
@ -897,6 +898,9 @@ MassFilesArea=Plocha pro soubory postavený masových akcí
ShowTempMassFilesArea=Show area souborů postavený masových akcí ShowTempMassFilesArea=Show area souborů postavený masových akcí
ConfirmMassDeletion=Hromadné smazání potvrzení ConfirmMassDeletion=Hromadné smazání potvrzení
ConfirmMassDeletionQuestion=Opravdu chcete odstranit vybraný záznam(y) %s? ConfirmMassDeletionQuestion=Opravdu chcete odstranit vybraný záznam(y) %s?
ConfirmMassClone=Bulk clone confirmation
ConfirmMassCloneQuestion=Select project to clone to
ConfirmMassCloneToOneProject=Clone to project %s
RelatedObjects=Související objekty RelatedObjects=Související objekty
ClassifyBilled=Označit jako účtováno ClassifyBilled=Označit jako účtováno
ClassifyUnbilled=Zařadit nevyfakturované ClassifyUnbilled=Zařadit nevyfakturované
@ -912,8 +916,8 @@ ExportFilteredList=Export filtrovaný seznam
ExportList=seznam export ExportList=seznam export
ExportOptions=Možnosti exportu ExportOptions=Možnosti exportu
IncludeDocsAlreadyExported=Zahrnout již exportované dokumenty IncludeDocsAlreadyExported=Zahrnout již exportované dokumenty
ExportOfPiecesAlreadyExportedIsEnable=Export již exportovaných kusů je povolen ExportOfPiecesAlreadyExportedIsEnable=Documents already exported are visible and will be exported
ExportOfPiecesAlreadyExportedIsDisable=Export již exportovaných kusů je zakázán ExportOfPiecesAlreadyExportedIsDisable=Documents already exported are hidden and won't be exported
AllExportedMovementsWereRecordedAsExported=Všechny exportované pohyby byly zaznamenány jako exportované AllExportedMovementsWereRecordedAsExported=Všechny exportované pohyby byly zaznamenány jako exportované
NotAllExportedMovementsCouldBeRecordedAsExported=Ne všechny exportované pohyby nelze zaznamenat jako exportované NotAllExportedMovementsCouldBeRecordedAsExported=Ne všechny exportované pohyby nelze zaznamenat jako exportované
Miscellaneous=Smíšený Miscellaneous=Smíšený
@ -1128,6 +1132,7 @@ DeleteFileText=Opravdu chcete tento soubor odstranit?
ShowOtherLanguages=Zobrazit další jazyky ShowOtherLanguages=Zobrazit další jazyky
SwitchInEditModeToAddTranslation=Přepnutím v režimu úprav přidáte překlady do tohoto jazyka SwitchInEditModeToAddTranslation=Přepnutím v režimu úprav přidáte překlady do tohoto jazyka
NotUsedForThisCustomer=Nepoužívá se pro tohoto zákazníka NotUsedForThisCustomer=Nepoužívá se pro tohoto zákazníka
NotUsedForThisVendor=Not used for this vendor
AmountMustBePositive=Amount must be positive AmountMustBePositive=Amount must be positive
ByStatus=By status ByStatus=By status
InformationMessage=Informace InformationMessage=Informace
@ -1148,14 +1153,14 @@ EventReminder=Event Reminder
UpdateForAllLines=Update for all lines UpdateForAllLines=Update for all lines
OnHold=Pozdržen OnHold=Pozdržen
Civility=Civility Civility=Civility
AffectTag=Assign Tag AffectTag=Assign a Tag
AffectUser=Assign User AffectUser=Assign a User
SetSupervisor=Set Supervisor SetSupervisor=Set the supervisor
CreateExternalUser=Create external user CreateExternalUser=Create external user
ConfirmAffectTag=Bulk Tag Assignement ConfirmAffectTag=Bulk Tag Assignement
ConfirmAffectUser=Bulk User Assignement ConfirmAffectUser=Bulk User Assignement
ProjectRole=Role assigned on each project ProjectRole=Role assigned on each project/opportunity
TasksRole=Role assigned on each task of each project TasksRole=Role assigned on each task (if used)
ConfirmSetSupervisor=Bulk Supervisor Set ConfirmSetSupervisor=Bulk Supervisor Set
ConfirmUpdatePrice=Choose a increase/decrease price rate ConfirmUpdatePrice=Choose a increase/decrease price rate
ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)?
@ -1210,3 +1215,10 @@ CreatedByPublicPortal=Created from Public portal
UserAgent=User Agent UserAgent=User Agent
InternalUser=Interní uživatel InternalUser=Interní uživatel
ExternalUser=Externí uživatel ExternalUser=Externí uživatel
NoSpecificContactAddress=No specific contact or address
NoSpecificContactAddressBis=This tab is dedicated to force specific contacts or addresses for the current object. Use it only if you want to define one or several specific contacts or addresses for the object when the information on the thirdparty is not enough or not accurate.
HideOnVCard=Hide %s
AddToContacts=Add address to my contacts
LastAccess=Last access
UploadAnImageToSeeAPhotoHere=Upload an image from the tab %s to see a photo here
LastPasswordChangeDate=Last password change date

View File

@ -41,7 +41,8 @@ STRIPE_LIVE_WEBHOOK_KEY=Webhook live klíč
ONLINE_PAYMENT_WAREHOUSE=Sklad, který se má použít k poklesu akcií, když je hotovo on-line platba <br> (TODO Pokud se volba k poklesu zásob uskuteční na akci na faktuře a on-line platba vygeneruje fakturu?) ONLINE_PAYMENT_WAREHOUSE=Sklad, který se má použít k poklesu akcií, když je hotovo on-line platba <br> (TODO Pokud se volba k poklesu zásob uskuteční na akci na faktuře a on-line platba vygeneruje fakturu?)
StripeLiveEnabled=Stripe live povoleno (jinak testovací režim / režim sandbox) StripeLiveEnabled=Stripe live povoleno (jinak testovací režim / režim sandbox)
StripeImportPayment=Platby importu Stripe StripeImportPayment=Platby importu Stripe
ExampleOfTestCreditCard=Příklad kreditní karty pro test: %s (platný), %s (chyba CVC), %s (uplynula), %s (poplatek selže) ExampleOfTestCreditCard=Example of credit card for SEPA test: %s => valid, %s => error CVC, %s => expired, %s => charge fails
ExampleOfTestBankAcountForSEPA=Example of bank account BAN for direct debit test: %s
StripeGateways=Brána Stripe StripeGateways=Brána Stripe
OAUTH_STRIPE_TEST_ID=Připojení klienta Stripe Connect (ca _...) OAUTH_STRIPE_TEST_ID=Připojení klienta Stripe Connect (ca _...)
OAUTH_STRIPE_LIVE_ID=Připojení klienta Stripe Connect (ca _...) OAUTH_STRIPE_LIVE_ID=Připojení klienta Stripe Connect (ca _...)
@ -61,6 +62,7 @@ DeleteACard=Smazat kartu
ConfirmDeleteCard=Opravdu chcete tuto kreditní nebo debetní kartu smazat? ConfirmDeleteCard=Opravdu chcete tuto kreditní nebo debetní kartu smazat?
CreateCustomerOnStripe=Vytvořte zákazníka na Stripe CreateCustomerOnStripe=Vytvořte zákazníka na Stripe
CreateCardOnStripe=Vytvořte kartu na Stripe CreateCardOnStripe=Vytvořte kartu na Stripe
CreateBANOnStripe=Create bank on Stripe
ShowInStripe=Zobrazit ve Stripe ShowInStripe=Zobrazit ve Stripe
StripeUserAccountForActions=Uživatelský účet, který se má používat pro e-mailové upozornění na některé události Stripe (Stripe výplaty) StripeUserAccountForActions=Uživatelský účet, který se má používat pro e-mailové upozornění na některé události Stripe (Stripe výplaty)
StripePayoutList=Seznam páskových výplat StripePayoutList=Seznam páskových výplat
@ -69,3 +71,8 @@ ToOfferALinkForLiveWebhook=Odkaz na nastavení Stripe WebHook pro volání IPN (
PaymentWillBeRecordedForNextPeriod=Platba bude zaznamenána pro další období. PaymentWillBeRecordedForNextPeriod=Platba bude zaznamenána pro další období.
ClickHereToTryAgain= <a href="%s"> Klikněte zde a zkuste to znovu ... </a> ClickHereToTryAgain= <a href="%s"> Klikněte zde a zkuste to znovu ... </a>
CreationOfPaymentModeMustBeDoneFromStripeInterface=Vzhledem k přísným pravidlům pro ověřování zákazníků musí být karta vytvořena z backoffice Stripe. Klepnutím sem zapnete záznam zákazníka Stripe: %s CreationOfPaymentModeMustBeDoneFromStripeInterface=Vzhledem k přísným pravidlům pro ověřování zákazníků musí být karta vytvořena z backoffice Stripe. Klepnutím sem zapnete záznam zákazníka Stripe: %s
STRIPE_CARD_PRESENT=Card Present for Stripe Terminals
TERMINAL_LOCATION=Location (address) for Stripe Terminals
RequestDirectDebitWithStripe=Request Direct Debit with Stripe
STRIPE_SEPA_DIRECT_DEBIT=Enable the Direct Debit payments through Stripe

View File

@ -26,6 +26,7 @@ Permission56002=Změnit vstupenky
Permission56003=Smazat vstupenky Permission56003=Smazat vstupenky
Permission56004=Správa vstupenek Permission56004=Správa vstupenek
Permission56005=Viz vstupenky všech subjektů (neplatí pro externí uživatele, vždy se omezují na subjekt, na který se vztahují) Permission56005=Viz vstupenky všech subjektů (neplatí pro externí uživatele, vždy se omezují na subjekt, na který se vztahují)
Permission56006=Export tickets
Tickets=Vstupenky Tickets=Vstupenky
TicketDictType=Vstupenka - Typy TicketDictType=Vstupenka - Typy
@ -61,6 +62,8 @@ TypeContact_ticket_external_CONTRIBUTOR=Externí přispěvatel
OriginEmail=Reporter Email OriginEmail=Reporter Email
Notify_TICKET_SENTBYMAIL=Odeslat e-mailem zprávu o lince Notify_TICKET_SENTBYMAIL=Odeslat e-mailem zprávu o lince
ExportDataset_ticket_1=Vstupenky
# Status # Status
Read=Číst Read=Číst
Assigned=Přidělené Assigned=Přidělené

View File

@ -66,7 +66,8 @@ LinkedToDolibarrUser=Link to user
LinkedToDolibarrThirdParty=Link to third party LinkedToDolibarrThirdParty=Link to third party
CreateDolibarrLogin=Vytvoření uživatele CreateDolibarrLogin=Vytvoření uživatele
CreateDolibarrThirdParty=Vytvořit třetí stranu CreateDolibarrThirdParty=Vytvořit třetí stranu
LoginAccountDisableInDolibarr=Účet byl zakázán v Dolibarr. LoginAccountDisableInDolibarr=Account disabled in Dolibarr
PASSWORDInDolibarr=Password modified in Dolibarr
UsePersonalValue=Používejte osobní hodnotu UsePersonalValue=Používejte osobní hodnotu
ExportDataset_user_1=Uživatelé a jejich vlastnosti ExportDataset_user_1=Uživatelé a jejich vlastnosti
DomainUser=Doménový uživatel %s DomainUser=Doménový uživatel %s
@ -129,3 +130,6 @@ IPLastLogin=IP last login
IPPreviousLogin=IP previous login IPPreviousLogin=IP previous login
ShowAllPerms=Show all permission rows ShowAllPerms=Show all permission rows
HideAllPerms=Hide all permission rows HideAllPerms=Hide all permission rows
UserPublicPageDesc=You can enable a virtual card for this user. An url with the user profile and a barcode will be available to allow anybody with a smartphone to scan it and add your contact to its address book.
EnablePublicVirtualCard=Enable the public virtual user card
PublicVirtualCardUrl=Public virtual user card

View File

@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=Dewiswch y math dychwelyd cerbyd
ACCOUNTING_EXPORT_PREFIX_SPEC=Nodwch y rhagddodiad ar gyfer enw'r ffeil ACCOUNTING_EXPORT_PREFIX_SPEC=Nodwch y rhagddodiad ar gyfer enw'r ffeil
ThisService=Y gwasanaeth hwn ThisService=Y gwasanaeth hwn
ThisProduct=Mae'r cynnyrch hwn ThisProduct=Mae'r cynnyrch hwn
DefaultForService=Diofyn ar gyfer gwasanaeth DefaultForService=Default for services
DefaultForProduct=Diofyn ar gyfer cynnyrch DefaultForProduct=Default for products
ProductForThisThirdparty=Cynnyrch ar gyfer y trydydd parti hwn ProductForThisThirdparty=Cynnyrch ar gyfer y trydydd parti hwn
ServiceForThisThirdparty=Gwasanaeth ar gyfer y trydydd parti hwn ServiceForThisThirdparty=Gwasanaeth ar gyfer y trydydd parti hwn
CantSuggest=Methu awgrymu CantSuggest=Methu awgrymu
@ -101,7 +101,8 @@ ShowAccountingAccount=Dangos cyfrif cyfrifeg
ShowAccountingJournal=Dangos dyddlyfr cyfrifo ShowAccountingJournal=Dangos dyddlyfr cyfrifo
ShowAccountingAccountInLedger=Dangos cyfrif cyfrifeg yn y cyfriflyfr ShowAccountingAccountInLedger=Dangos cyfrif cyfrifeg yn y cyfriflyfr
ShowAccountingAccountInJournals=Dangos cyfrif cyfrifeg mewn cyfnodolion ShowAccountingAccountInJournals=Dangos cyfrif cyfrifeg mewn cyfnodolion
AccountAccountingSuggest=Awgrymu cyfrif cyfrifo DataUsedToSuggestAccount=Data used to suggest account
AccountAccountingSuggest=Account suggested
MenuDefaultAccounts=Cyfrifon rhagosodedig MenuDefaultAccounts=Cyfrifon rhagosodedig
MenuBankAccounts=Cyfrifon banc MenuBankAccounts=Cyfrifon banc
MenuVatAccounts=Cyfrifon TAW MenuVatAccounts=Cyfrifon TAW
@ -126,6 +127,7 @@ WriteBookKeeping=Cofnodi trafodion mewn cyfrifeg
Bookkeeping=Cyfriflyfr Bookkeeping=Cyfriflyfr
BookkeepingSubAccount=Subledger BookkeepingSubAccount=Subledger
AccountBalance=Balans cyfrif AccountBalance=Balans cyfrif
AccountBalanceSubAccount=Sub-accounts balance
ObjectsRef=Ffynhonnell gwrthrych cyf ObjectsRef=Ffynhonnell gwrthrych cyf
CAHTF=Cyfanswm y gwerthwr pryniant cyn treth CAHTF=Cyfanswm y gwerthwr pryniant cyn treth
TotalExpenseReport=Adroddiad cyfanswm gwariant TotalExpenseReport=Adroddiad cyfanswm gwariant
@ -189,6 +191,7 @@ ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be us
UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty)
ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default
UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty)
ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY=Accounting account by default to register customer retained warranty
ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet)
ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet)
@ -218,6 +221,7 @@ JournalLabel=Label cyfnodolyn
NumPiece=Rhif y darn NumPiece=Rhif y darn
TransactionNumShort=Rhif. trafodiad TransactionNumShort=Rhif. trafodiad
AccountingCategory=Custom group of accounts AccountingCategory=Custom group of accounts
AccountingCategories=Custom groups of accounts
GroupByAccountAccounting=Grwpio yn ôl cyfrif cyfriflyfr cyffredinol GroupByAccountAccounting=Grwpio yn ôl cyfrif cyfriflyfr cyffredinol
GroupBySubAccountAccounting=Grwpio yn ôl cyfrif subledger GroupBySubAccountAccounting=Grwpio yn ôl cyfrif subledger
AccountingAccountGroupsDesc=Gallwch ddiffinio yma rai grwpiau o gyfrifon cyfrifeg. Cânt eu defnyddio ar gyfer adroddiadau cyfrifyddu personol. AccountingAccountGroupsDesc=Gallwch ddiffinio yma rai grwpiau o gyfrifon cyfrifeg. Cânt eu defnyddio ar gyfer adroddiadau cyfrifyddu personol.
@ -265,6 +269,7 @@ ShowSubtotalByGroup=Dangos is-gyfanswm yn ôl lefel
Pcgtype=Grŵp o gyfrifon Pcgtype=Grŵp o gyfrifon
PcgtypeDesc=Defnyddir grŵp cyfrifon fel meini prawf 'hidlo' a 'grwpio' rhagnodedig ar gyfer rhai adroddiadau cyfrifyddu. Er enghraifft, defnyddir 'INCOME' neu 'GREUL' fel grwpiau ar gyfer cyfrifon cyfrifon cynhyrchion i adeiladu'r adroddiad treuliau/incwm. PcgtypeDesc=Defnyddir grŵp cyfrifon fel meini prawf 'hidlo' a 'grwpio' rhagnodedig ar gyfer rhai adroddiadau cyfrifyddu. Er enghraifft, defnyddir 'INCOME' neu 'GREUL' fel grwpiau ar gyfer cyfrifon cyfrifon cynhyrchion i adeiladu'r adroddiad treuliau/incwm.
AccountingCategoriesDesc=Custom group of accounts can be used to group accounting accounts into one name to ease filter use or building of custom reports.
Reconcilable=Cymodi Reconcilable=Cymodi
@ -294,6 +299,7 @@ DescValidateMovements=Gwaherddir unrhyw newid neu ddileu ysgrifen, llythrennau a
ValidateHistory=Rhwymo'n Awtomatig ValidateHistory=Rhwymo'n Awtomatig
AutomaticBindingDone=Cwblhawyd rhwymiadau awtomatig (%s) - Nid yw rhwymo awtomatig yn bosibl ar gyfer rhywfaint o gofnod (%s) AutomaticBindingDone=Cwblhawyd rhwymiadau awtomatig (%s) - Nid yw rhwymo awtomatig yn bosibl ar gyfer rhywfaint o gofnod (%s)
DoManualBindingForFailedRecord=You have to do a manual link for the %s row(s) not linked automatically.
ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used
MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s
@ -337,11 +343,13 @@ ACCOUNTING_DISABLE_BINDING_ON_SALES=Analluogi rhwymo a throsglwyddo cyfrifyddiae
ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Analluogi rhwymo a throsglwyddo cyfrifyddiaeth ar bryniannau (ni fydd anfonebau gwerthwr yn cael eu hystyried wrth gyfrifo) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Analluogi rhwymo a throsglwyddo cyfrifyddiaeth ar bryniannau (ni fydd anfonebau gwerthwr yn cael eu hystyried wrth gyfrifo)
ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Analluogi rhwymo a throsglwyddo cyfrifon ar adroddiadau treuliau (ni fydd adroddiadau gwariant yn cael eu hystyried wrth gyfrifo) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Analluogi rhwymo a throsglwyddo cyfrifon ar adroddiadau treuliau (ni fydd adroddiadau gwariant yn cael eu hystyried wrth gyfrifo)
ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting
ACCOUNTING_ENABLE_AUTOLETTERING=Enable the automatic lettering when transferring to accounting
## Export ## Export
NotExportLettering=Do not export the lettering when generating the file NotExportLettering=Do not export the lettering when generating the file
NotifiedExportDate=Baner llinellau wedi'u hallforio fel Allforiwyd <span class="warning"> (i addasu llinell, bydd angen i chi ddileu'r trafodiad cyfan a'i ail-drosglwyddo i gyfrifeg) </span> NotifiedExportDate=Baner llinellau wedi'u hallforio fel Allforiwyd <span class="warning"> (i addasu llinell, bydd angen i chi ddileu'r trafodiad cyfan a'i ail-drosglwyddo i gyfrifeg) </span>
NotifiedValidationDate=Validate and Lock the exported entries <span class="warning">(same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible)</span> NotifiedValidationDate=Validate and Lock the exported entries <span class="warning">(same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible)</span>
NotifiedExportFull=Export documents ?
DateValidationAndLock=Dyddiad dilysu a chlo DateValidationAndLock=Dyddiad dilysu a chlo
ConfirmExportFile=Cadarnhad o gynhyrchu'r ffeil allforio cyfrifo ? ConfirmExportFile=Cadarnhad o gynhyrchu'r ffeil allforio cyfrifo ?
ExportDraftJournal=Allforio cyfnodolyn drafft ExportDraftJournal=Allforio cyfnodolyn drafft
@ -398,7 +406,7 @@ SaleLocal=Gwerthiant lleol
SaleExport=Gwerthu allforio SaleExport=Gwerthu allforio
SaleEEC=Gwerthu yn EEC SaleEEC=Gwerthu yn EEC
SaleEECWithVAT=Gwerthiant mewn EEC gyda TAW nid nwl, felly mae'n debyg NID yw hwn yn werthiant mewngymunedol a'r cyfrif a awgrymir yw'r cyfrif cynnyrch safonol. SaleEECWithVAT=Gwerthiant mewn EEC gyda TAW nid nwl, felly mae'n debyg NID yw hwn yn werthiant mewngymunedol a'r cyfrif a awgrymir yw'r cyfrif cynnyrch safonol.
SaleEECWithoutVATNumber=Gwerthu mewn EEC heb TAW ond nid yw ID TAW trydydd parti wedi'i ddiffinio. Rydym wrth gefn ar y cyfrif cynnyrch ar gyfer gwerthiannau safonol. Gallwch drwsio ID TAW trydydd parti neu gyfrif y cynnyrch os oes angen. SaleEECWithoutVATNumber=Sale in EEC with no VAT but the VAT ID of thirdparty is not defined. We fall back on the account for standard sales. You can fix the VAT ID of the thirdparty, or change the product account suggested for binding if needed.
ForbiddenTransactionAlreadyExported=Wedi'i wahardd: Mae'r trafodiad wedi'i ddilysu a/neu ei allforio. ForbiddenTransactionAlreadyExported=Wedi'i wahardd: Mae'r trafodiad wedi'i ddilysu a/neu ei allforio.
ForbiddenTransactionAlreadyValidated=Wedi'i wahardd: Mae'r trafodiad wedi'i ddilysu. ForbiddenTransactionAlreadyValidated=Wedi'i wahardd: Mae'r trafodiad wedi'i ddilysu.
## Dictionary ## Dictionary
@ -442,6 +450,7 @@ AccountancyErrorMismatchLetterCode=Mismatch in reconcile code
AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0
AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s
ErrorAccountNumberAlreadyExists=The accounting number %s already exists ErrorAccountNumberAlreadyExists=The accounting number %s already exists
ErrorArchiveAddFile=Can't put "%s" file in archive
## Import ## Import
ImportAccountingEntries=Cofnodion cyfrifeg ImportAccountingEntries=Cofnodion cyfrifeg
@ -468,5 +477,7 @@ FECFormatMulticurrencyCode=Cod aml-arian (Dyfeisio)
DateExport=Dyddiad allforio DateExport=Dyddiad allforio
WarningReportNotReliable=Rhybudd, nid yw'r adroddiad hwn yn seiliedig ar y Cyfriflyfr, felly nid yw'n cynnwys trafodiad a addaswyd â llaw yn y Cyfriflyfr. Os yw eich cyfnodolyn yn gyfredol, mae'r olwg cadw cyfrifon yn fwy cywir. WarningReportNotReliable=Rhybudd, nid yw'r adroddiad hwn yn seiliedig ar y Cyfriflyfr, felly nid yw'n cynnwys trafodiad a addaswyd â llaw yn y Cyfriflyfr. Os yw eich cyfnodolyn yn gyfredol, mae'r olwg cadw cyfrifon yn fwy cywir.
ExpenseReportJournal=Cyfnodolyn Adroddiad Treuliau ExpenseReportJournal=Cyfnodolyn Adroddiad Treuliau
DocsAlreadyExportedAreExcluded=Docs already exported are excluded
ClickToHideAlreadyExportedLines=Click to hide already exported lines
NAccounts=%s cyfrifon NAccounts=%s cyfrifon

View File

@ -226,6 +226,7 @@ NoUserGroupDefined=Dim grŵp defnyddwyr wedi'i ddiffinio
Password=Cyfrinair Password=Cyfrinair
PasswordRetype=Repeat your password PasswordRetype=Repeat your password
NoteSomeFeaturesAreDisabled=Sylwch fod llawer o nodweddion/modiwlau wedi'u hanalluogi yn yr arddangosiad hwn. NoteSomeFeaturesAreDisabled=Sylwch fod llawer o nodweddion/modiwlau wedi'u hanalluogi yn yr arddangosiad hwn.
YourUserFile=Your user file
Name=Enw Name=Enw
NameSlashCompany=Enw / Cwmni NameSlashCompany=Enw / Cwmni
Person=Person Person=Person
@ -897,6 +898,9 @@ MassFilesArea=Ardal ar gyfer ffeiliau a adeiladwyd gan gamau gweithredu torfol
ShowTempMassFilesArea=Dangos arwynebedd y ffeiliau a adeiladwyd gan weithredoedd torfol ShowTempMassFilesArea=Dangos arwynebedd y ffeiliau a adeiladwyd gan weithredoedd torfol
ConfirmMassDeletion=Cadarnhad Swmp Dileu ConfirmMassDeletion=Cadarnhad Swmp Dileu
ConfirmMassDeletionQuestion=A ydych yn siŵr eich bod am ddileu'r cofnod(au) %s a ddewiswyd? ConfirmMassDeletionQuestion=A ydych yn siŵr eich bod am ddileu'r cofnod(au) %s a ddewiswyd?
ConfirmMassClone=Bulk clone confirmation
ConfirmMassCloneQuestion=Select project to clone to
ConfirmMassCloneToOneProject=Clone to project %s
RelatedObjects=Gwrthrychau Cysylltiedig RelatedObjects=Gwrthrychau Cysylltiedig
ClassifyBilled=Dosbarthu wedi'i bilio ClassifyBilled=Dosbarthu wedi'i bilio
ClassifyUnbilled=Dosbarthu heb ei filio ClassifyUnbilled=Dosbarthu heb ei filio
@ -912,8 +916,8 @@ ExportFilteredList=Allforio rhestr wedi'i hidlo
ExportList=Rhestr allforio ExportList=Rhestr allforio
ExportOptions=Opsiynau Allforio ExportOptions=Opsiynau Allforio
IncludeDocsAlreadyExported=Cynnwys dogfennau sydd eisoes wedi'u hallforio IncludeDocsAlreadyExported=Cynnwys dogfennau sydd eisoes wedi'u hallforio
ExportOfPiecesAlreadyExportedIsEnable=Allforio darnau a allforiwyd eisoes yn galluogi ExportOfPiecesAlreadyExportedIsEnable=Documents already exported are visible and will be exported
ExportOfPiecesAlreadyExportedIsDisable=Mae allforio darnau sydd eisoes wedi'u hallforio yn analluog ExportOfPiecesAlreadyExportedIsDisable=Documents already exported are hidden and won't be exported
AllExportedMovementsWereRecordedAsExported=Cofnodwyd bod yr holl symudiadau a allforiwyd wedi'u hallforio AllExportedMovementsWereRecordedAsExported=Cofnodwyd bod yr holl symudiadau a allforiwyd wedi'u hallforio
NotAllExportedMovementsCouldBeRecordedAsExported=Ni ellid cofnodi pob symudiad a allforiwyd fel un wedi'i allforio NotAllExportedMovementsCouldBeRecordedAsExported=Ni ellid cofnodi pob symudiad a allforiwyd fel un wedi'i allforio
Miscellaneous=Amrywiol Miscellaneous=Amrywiol
@ -1128,6 +1132,7 @@ DeleteFileText=Ydych chi wir eisiau dileu'r ffeil hon?
ShowOtherLanguages=Dangos ieithoedd eraill ShowOtherLanguages=Dangos ieithoedd eraill
SwitchInEditModeToAddTranslation=Newidiwch y modd golygu i ychwanegu cyfieithiadau ar gyfer yr iaith hon SwitchInEditModeToAddTranslation=Newidiwch y modd golygu i ychwanegu cyfieithiadau ar gyfer yr iaith hon
NotUsedForThisCustomer=Heb ei ddefnyddio ar gyfer y cwsmer hwn NotUsedForThisCustomer=Heb ei ddefnyddio ar gyfer y cwsmer hwn
NotUsedForThisVendor=Not used for this vendor
AmountMustBePositive=Rhaid i'r swm fod yn bositif AmountMustBePositive=Rhaid i'r swm fod yn bositif
ByStatus=Yn ôl statws ByStatus=Yn ôl statws
InformationMessage=Gwybodaeth InformationMessage=Gwybodaeth
@ -1148,14 +1153,14 @@ EventReminder=Nodyn Atgoffa am Ddigwyddiad
UpdateForAllLines=Diweddariad ar gyfer pob llinell UpdateForAllLines=Diweddariad ar gyfer pob llinell
OnHold=Ar stop OnHold=Ar stop
Civility=Gwareiddiad Civility=Gwareiddiad
AffectTag=Assign Tag AffectTag=Assign a Tag
AffectUser=Assign User AffectUser=Assign a User
SetSupervisor=Set Supervisor SetSupervisor=Set the supervisor
CreateExternalUser=Creu defnyddiwr allanol CreateExternalUser=Creu defnyddiwr allanol
ConfirmAffectTag=Bulk Tag Assignement ConfirmAffectTag=Bulk Tag Assignement
ConfirmAffectUser=Bulk User Assignement ConfirmAffectUser=Bulk User Assignement
ProjectRole=Role assigned on each project ProjectRole=Role assigned on each project/opportunity
TasksRole=Role assigned on each task of each project TasksRole=Role assigned on each task (if used)
ConfirmSetSupervisor=Bulk Supervisor Set ConfirmSetSupervisor=Bulk Supervisor Set
ConfirmUpdatePrice=Choose a increase/decrease price rate ConfirmUpdatePrice=Choose a increase/decrease price rate
ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)?
@ -1210,3 +1215,10 @@ CreatedByPublicPortal=Created from Public portal
UserAgent=User Agent UserAgent=User Agent
InternalUser=Internal user InternalUser=Internal user
ExternalUser=External user ExternalUser=External user
NoSpecificContactAddress=No specific contact or address
NoSpecificContactAddressBis=This tab is dedicated to force specific contacts or addresses for the current object. Use it only if you want to define one or several specific contacts or addresses for the object when the information on the thirdparty is not enough or not accurate.
HideOnVCard=Hide %s
AddToContacts=Add address to my contacts
LastAccess=Last access
UploadAnImageToSeeAPhotoHere=Upload an image from the tab %s to see a photo here
LastPasswordChangeDate=Last password change date

View File

@ -41,7 +41,8 @@ STRIPE_LIVE_WEBHOOK_KEY=Webhook allwedd byw
ONLINE_PAYMENT_WAREHOUSE=Stoc i'w ddefnyddio ar gyfer gostyngiad stoc pan wneir taliad ar-lein <br> (TODO Pan fydd opsiwn i leihau stoc yn cael ei wneud ar weithred ar anfoneb a'r taliad ar-lein yn cynhyrchu'r anfoneb ei hun ?) ONLINE_PAYMENT_WAREHOUSE=Stoc i'w ddefnyddio ar gyfer gostyngiad stoc pan wneir taliad ar-lein <br> (TODO Pan fydd opsiwn i leihau stoc yn cael ei wneud ar weithred ar anfoneb a'r taliad ar-lein yn cynhyrchu'r anfoneb ei hun ?)
StripeLiveEnabled=Stripe live wedi'i alluogi (modd prawf / blwch tywod fel arall) StripeLiveEnabled=Stripe live wedi'i alluogi (modd prawf / blwch tywod fel arall)
StripeImportPayment=Mewnforio taliadau Stripe StripeImportPayment=Mewnforio taliadau Stripe
ExampleOfTestCreditCard=Enghraifft o gerdyn credyd ar gyfer prawf: %s => dilys, %s => gwall CVC, %s => wedi dod i ben, %s => tâl yn methu ExampleOfTestCreditCard=Example of credit card for SEPA test: %s => valid, %s => error CVC, %s => expired, %s => charge fails
ExampleOfTestBankAcountForSEPA=Example of bank account BAN for direct debit test: %s
StripeGateways=Pyrth streipen StripeGateways=Pyrth streipen
OAUTH_STRIPE_TEST_ID=ID Cleient Stripe Connect (ca_...) OAUTH_STRIPE_TEST_ID=ID Cleient Stripe Connect (ca_...)
OAUTH_STRIPE_LIVE_ID=ID Cleient Stripe Connect (ca_...) OAUTH_STRIPE_LIVE_ID=ID Cleient Stripe Connect (ca_...)
@ -61,6 +62,7 @@ DeleteACard=Dileu Cerdyn
ConfirmDeleteCard=Ydych chi'n siŵr eich bod am ddileu'r cerdyn Credyd neu Ddebyd hwn? ConfirmDeleteCard=Ydych chi'n siŵr eich bod am ddileu'r cerdyn Credyd neu Ddebyd hwn?
CreateCustomerOnStripe=Creu cwsmer ar Stripe CreateCustomerOnStripe=Creu cwsmer ar Stripe
CreateCardOnStripe=Creu cerdyn ar Stripe CreateCardOnStripe=Creu cerdyn ar Stripe
CreateBANOnStripe=Create bank on Stripe
ShowInStripe=Dangos yn Stripe ShowInStripe=Dangos yn Stripe
StripeUserAccountForActions=Cyfrif defnyddiwr i'w ddefnyddio ar gyfer hysbysiad e-bost o rai digwyddiadau Stripe (taliadau Stripe) StripeUserAccountForActions=Cyfrif defnyddiwr i'w ddefnyddio ar gyfer hysbysiad e-bost o rai digwyddiadau Stripe (taliadau Stripe)
StripePayoutList=Rhestr o daliadau Stripe StripePayoutList=Rhestr o daliadau Stripe
@ -69,3 +71,8 @@ ToOfferALinkForLiveWebhook=Dolen i'r gosodiad Stripe WebHook i ffonio'r IPN (mod
PaymentWillBeRecordedForNextPeriod=Bydd taliad yn cael ei gofnodi ar gyfer y cyfnod nesaf. PaymentWillBeRecordedForNextPeriod=Bydd taliad yn cael ei gofnodi ar gyfer y cyfnod nesaf.
ClickHereToTryAgain= <a href="%s"> Cliciwch yma i geisio eto... </a> ClickHereToTryAgain= <a href="%s"> Cliciwch yma i geisio eto... </a>
CreationOfPaymentModeMustBeDoneFromStripeInterface=Oherwydd rheolau Dilysu Cwsmeriaid Cryf, rhaid creu cerdyn o swyddfa gefn Stripe. Gallwch glicio yma i droi cofnod cwsmer Stripe ymlaen: %s CreationOfPaymentModeMustBeDoneFromStripeInterface=Oherwydd rheolau Dilysu Cwsmeriaid Cryf, rhaid creu cerdyn o swyddfa gefn Stripe. Gallwch glicio yma i droi cofnod cwsmer Stripe ymlaen: %s
STRIPE_CARD_PRESENT=Card Present for Stripe Terminals
TERMINAL_LOCATION=Location (address) for Stripe Terminals
RequestDirectDebitWithStripe=Request Direct Debit with Stripe
STRIPE_SEPA_DIRECT_DEBIT=Enable the Direct Debit payments through Stripe

View File

@ -66,7 +66,8 @@ LinkedToDolibarrUser=Dolen i'r defnyddiwr
LinkedToDolibarrThirdParty=Dolen i drydydd parti LinkedToDolibarrThirdParty=Dolen i drydydd parti
CreateDolibarrLogin=Creu defnyddiwr CreateDolibarrLogin=Creu defnyddiwr
CreateDolibarrThirdParty=Creu trydydd parti CreateDolibarrThirdParty=Creu trydydd parti
LoginAccountDisableInDolibarr=Cyfrif wedi'i analluogi yn Dolibarr. LoginAccountDisableInDolibarr=Account disabled in Dolibarr
PASSWORDInDolibarr=Password modified in Dolibarr
UsePersonalValue=Defnyddiwch werth personol UsePersonalValue=Defnyddiwch werth personol
ExportDataset_user_1=Defnyddwyr a'u priodweddau ExportDataset_user_1=Defnyddwyr a'u priodweddau
DomainUser=Defnyddiwr parth %s DomainUser=Defnyddiwr parth %s
@ -129,3 +130,6 @@ IPLastLogin=IP last login
IPPreviousLogin=IP previous login IPPreviousLogin=IP previous login
ShowAllPerms=Show all permission rows ShowAllPerms=Show all permission rows
HideAllPerms=Hide all permission rows HideAllPerms=Hide all permission rows
UserPublicPageDesc=You can enable a virtual card for this user. An url with the user profile and a barcode will be available to allow anybody with a smartphone to scan it and add your contact to its address book.
EnablePublicVirtualCard=Enable the public virtual user card
PublicVirtualCardUrl=Public virtual user card

View File

@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=Vælg linjeskift type
ACCOUNTING_EXPORT_PREFIX_SPEC=Angiv præfiks for filnavnet ACCOUNTING_EXPORT_PREFIX_SPEC=Angiv præfiks for filnavnet
ThisService=Denne ydelse ThisService=Denne ydelse
ThisProduct=Dette produkt ThisProduct=Dette produkt
DefaultForService=Forvalg ydelse DefaultForService=Standard for tjenester
DefaultForProduct=Forvalg produkt DefaultForProduct=Standard for produkter
ProductForThisThirdparty=Produkt til denne tredjepart ProductForThisThirdparty=Produkt til denne tredjepart
ServiceForThisThirdparty=Service for denne tredjepart ServiceForThisThirdparty=Service for denne tredjepart
CantSuggest=Kan ikke foreslå CantSuggest=Kan ikke foreslå
@ -101,7 +101,8 @@ ShowAccountingAccount=Vis regnskabs konto
ShowAccountingJournal=Vis kontokladde ShowAccountingJournal=Vis kontokladde
ShowAccountingAccountInLedger=Vis regnskabskonto i hovedbog ShowAccountingAccountInLedger=Vis regnskabskonto i hovedbog
ShowAccountingAccountInJournals=Vis regnskabskonto i tidsskrifter ShowAccountingAccountInJournals=Vis regnskabskonto i tidsskrifter
AccountAccountingSuggest=Forelslået regnskabskonto DataUsedToSuggestAccount=Data brugt til at foreslå konto
AccountAccountingSuggest=Konto foreslået
MenuDefaultAccounts=Standardkonti MenuDefaultAccounts=Standardkonti
MenuBankAccounts=Bankkonti MenuBankAccounts=Bankkonti
MenuVatAccounts=Momskonti MenuVatAccounts=Momskonti
@ -126,6 +127,7 @@ WriteBookKeeping=Registrer transaktioner i regnskabet
Bookkeeping=Hovedbog Bookkeeping=Hovedbog
BookkeepingSubAccount=Underkonti BookkeepingSubAccount=Underkonti
AccountBalance=Kontobalance AccountBalance=Kontobalance
AccountBalanceSubAccount=Underkonti balance
ObjectsRef=Objektreference ObjectsRef=Objektreference
CAHTF=Samlet købeleverandør før skat CAHTF=Samlet købeleverandør før skat
TotalExpenseReport=Rapport for samlede udgifter TotalExpenseReport=Rapport for samlede udgifter
@ -189,6 +191,7 @@ ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Konto (fra kontoplanen) skal bruges som stan
UseAuxiliaryAccountOnCustomerDeposit=Gem kundekonto som individuel konto i hovedbog for linjer med forudbetalinger (hvis den er deaktiveret, forbliver individuel konto for forudbetalingslinjer tomme) UseAuxiliaryAccountOnCustomerDeposit=Gem kundekonto som individuel konto i hovedbog for linjer med forudbetalinger (hvis den er deaktiveret, forbliver individuel konto for forudbetalingslinjer tomme)
ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Konto (fra kontoplanen), der skal bruges som standard ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Konto (fra kontoplanen), der skal bruges som standard
UseAuxiliaryAccountOnSupplierDeposit=Gem leverandørkonto som individuel konto i hovedbog for linjer med forudbetalinger (hvis den er deaktiveret, vil individuel konto for forudbetalingslinjer forblive tom) UseAuxiliaryAccountOnSupplierDeposit=Gem leverandørkonto som individuel konto i hovedbog for linjer med forudbetalinger (hvis den er deaktiveret, vil individuel konto for forudbetalingslinjer forblive tom)
ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY=Regnskabskonto som standard for at registrere kundebeholdt garanti
ACCOUNTING_PRODUCT_BUY_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de produkter, der er købt i samme land (bruges, hvis det ikke er defineret i produktarket) ACCOUNTING_PRODUCT_BUY_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de produkter, der er købt i samme land (bruges, hvis det ikke er defineret i produktarket)
ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for produkter købt fra EF til et andet EF-land (bruges, hvis det ikke er defineret i produktarket) ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for produkter købt fra EF til et andet EF-land (bruges, hvis det ikke er defineret i produktarket)
@ -218,6 +221,7 @@ JournalLabel=Journalmærke
NumPiece=Partsnummer NumPiece=Partsnummer
TransactionNumShort=Transaktionsnr. TransactionNumShort=Transaktionsnr.
AccountingCategory=Brugerdefineret gruppe af konti AccountingCategory=Brugerdefineret gruppe af konti
AccountingCategories=Brugerdefinerede grupper af konti
GroupByAccountAccounting=Gruppér efter hovedkontokonto GroupByAccountAccounting=Gruppér efter hovedkontokonto
GroupBySubAccountAccounting=Gruppér efter underkonti GroupBySubAccountAccounting=Gruppér efter underkonti
AccountingAccountGroupsDesc=Du kan definere her nogle grupper af regnskabskonto. De vil blive brugt til personlige regnskabsrapporter. AccountingAccountGroupsDesc=Du kan definere her nogle grupper af regnskabskonto. De vil blive brugt til personlige regnskabsrapporter.
@ -265,6 +269,7 @@ ShowSubtotalByGroup=Vis subtotal efter niveau
Pcgtype=Kontoens gruppe Pcgtype=Kontoens gruppe
PcgtypeDesc=Kontogruppe bruges som foruddefinerede 'filter' og 'gruppering' kriterier for nogle regnskabsrapporter. For eksempel bruges 'INKOMST' eller 'UDGIFT' som grupper til regnskabsmæssige regnskaber for produkter til at oprette omkostnings- / indkomstrapporten. PcgtypeDesc=Kontogruppe bruges som foruddefinerede 'filter' og 'gruppering' kriterier for nogle regnskabsrapporter. For eksempel bruges 'INKOMST' eller 'UDGIFT' som grupper til regnskabsmæssige regnskaber for produkter til at oprette omkostnings- / indkomstrapporten.
AccountingCategoriesDesc=Brugerdefineret gruppe af konti kan bruges til at gruppere regnskabskonti i ét navn for at lette filterbrug eller opbygning af tilpassede rapporter.
Reconcilable=Afstemning Reconcilable=Afstemning
@ -294,6 +299,7 @@ DescValidateMovements=Enhver ændring eller sletning af skrivning, bogstaver og
ValidateHistory=Automatisk Bogføring ValidateHistory=Automatisk Bogføring
AutomaticBindingDone=Automatiske bindinger udført (%s) - Automatisk binding er ikke mulig for nogle poster (%s) AutomaticBindingDone=Automatiske bindinger udført (%s) - Automatisk binding er ikke mulig for nogle poster (%s)
DoManualBindingForFailedRecord=Du skal lave et manuelt link for %s række(r), der ikke linkes automatisk.
ErrorAccountancyCodeIsAlreadyUse=Fejl, du kan ikke fjerne eller deaktivere denne kontoplan, fordi den er brugt ErrorAccountancyCodeIsAlreadyUse=Fejl, du kan ikke fjerne eller deaktivere denne kontoplan, fordi den er brugt
MvtNotCorrectlyBalanced=Bevægelse ikke korrekt afbalanceret. Debet = %s & Kredit = %s MvtNotCorrectlyBalanced=Bevægelse ikke korrekt afbalanceret. Debet = %s & Kredit = %s
@ -337,11 +343,13 @@ ACCOUNTING_DISABLE_BINDING_ON_SALES=Deaktiver binding og overførsel i regnskab
ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Deaktiver binding og overførsel i regnskab ved køb (leverandørfakturaer tages ikke med i regnskabet) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Deaktiver binding og overførsel i regnskab ved køb (leverandørfakturaer tages ikke med i regnskabet)
ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Deaktiver binding og overførsel i regnskab på udgiftsrapporter (udgiftsrapporter tages ikke med i regnskabet) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Deaktiver binding og overførsel i regnskab på udgiftsrapporter (udgiftsrapporter tages ikke med i regnskabet)
ACCOUNTING_ENABLE_LETTERING=Aktiver bogstavfunktionen i regnskabet ACCOUNTING_ENABLE_LETTERING=Aktiver bogstavfunktionen i regnskabet
ACCOUNTING_ENABLE_AUTOLETTERING=Aktiver den automatiske bogstaver ved overførsel til regnskab
## Export ## Export
NotExportLettering=Eksporter ikke bogstaverne, når du genererer filen NotExportLettering=Eksporter ikke bogstaverne, når du genererer filen
NotifiedExportDate=Flag eksporterede linjer som eksporteret <span class="warning"> (for at ændre en linje skal du slette hele transaktionen og overføre den til regnskab igen) </span> NotifiedExportDate=Flag eksporterede linjer som eksporteret <span class="warning"> (for at ændre en linje skal du slette hele transaktionen og overføre den til regnskab igen) </span>
NotifiedValidationDate=Valider og lås de eksporterede indgange <span class="warning"> (samme effekt som "%s"-funktionen, ændring og sletning af linjerne vil DEFINITIVT ikke være mulig) </span> NotifiedValidationDate=Valider og lås de eksporterede indgange <span class="warning"> (samme effekt som "%s"-funktionen, ændring og sletning af linjerne vil DEFINITIVT ikke være mulig) </span>
NotifiedExportFull=Eksportere dokumenter?
DateValidationAndLock=Datovalidering og lås DateValidationAndLock=Datovalidering og lås
ConfirmExportFile=Bekræftelse af genereringen af den regnskabsmæssige eksportfil? ConfirmExportFile=Bekræftelse af genereringen af den regnskabsmæssige eksportfil?
ExportDraftJournal=Eksporter udkast til kladde ExportDraftJournal=Eksporter udkast til kladde
@ -398,7 +406,7 @@ SaleLocal=Lokalt salg
SaleExport=Eksport salg SaleExport=Eksport salg
SaleEEC=Salg i EU SaleEEC=Salg i EU
SaleEECWithVAT=Salg i EU med en moms, der ikke er null, så vi antager, at dette IKKE er et intrakommunalt salg, og den foreslåede konto er standardproduktskontoen. SaleEECWithVAT=Salg i EU med en moms, der ikke er null, så vi antager, at dette IKKE er et intrakommunalt salg, og den foreslåede konto er standardproduktskontoen.
SaleEECWithoutVATNumber=Du kan fastsætte moms nummer for tredjepart eller produktkonto om nødvendigt. SaleEECWithoutVATNumber=Salg i EEC uden moms, men tredjemands moms-id er ikke defineret. Vi falder tilbage på kontoen for standardsalg. Du kan rette tredjepartens moms-id eller ændre den produktkonto, der er foreslået til binding, hvis det er nødvendigt.
ForbiddenTransactionAlreadyExported=Forbudt: Transaktionen er blevet valideret og/eller eksporteret. ForbiddenTransactionAlreadyExported=Forbudt: Transaktionen er blevet valideret og/eller eksporteret.
ForbiddenTransactionAlreadyValidated=Forbudt: Transaktionen er blevet valideret. ForbiddenTransactionAlreadyValidated=Forbudt: Transaktionen er blevet valideret.
## Dictionary ## Dictionary
@ -442,6 +450,7 @@ AccountancyErrorMismatchLetterCode=Uoverensstemmelse i afstemningskode
AccountancyErrorMismatchBalanceAmount=Saldoen (%s) er ikke lig med 0 AccountancyErrorMismatchBalanceAmount=Saldoen (%s) er ikke lig med 0
AccountancyErrorLetteringBookkeeping=Der er opstået fejl vedrørende transaktionerne: %s AccountancyErrorLetteringBookkeeping=Der er opstået fejl vedrørende transaktionerne: %s
ErrorAccountNumberAlreadyExists=Kontonummeret %s findes allerede ErrorAccountNumberAlreadyExists=Kontonummeret %s findes allerede
ErrorArchiveAddFile=Kan ikke lægge "%s" fil i arkivet
## Import ## Import
ImportAccountingEntries=Regnskabsposter ImportAccountingEntries=Regnskabsposter
@ -468,5 +477,7 @@ FECFormatMulticurrencyCode=MultiValuta-kode (Idevise)
DateExport=Eksport dato DateExport=Eksport dato
WarningReportNotReliable=Advarsel, denne rapport er ikke baseret på Ledger, så indeholder ikke transaktion ændret manuelt i Ledger. Hvis din journalisering er opdateret, er bogføringsvisningen mere præcis. WarningReportNotReliable=Advarsel, denne rapport er ikke baseret på Ledger, så indeholder ikke transaktion ændret manuelt i Ledger. Hvis din journalisering er opdateret, er bogføringsvisningen mere præcis.
ExpenseReportJournal=Udgifts Journal ExpenseReportJournal=Udgifts Journal
DocsAlreadyExportedAreExcluded=Dokumenter, der allerede er eksporteret, er ekskluderet
ClickToHideAlreadyExportedLines=Klik for at skjule allerede eksporterede linjer
NAccounts=%s konti NAccounts=%s konti

View File

@ -645,6 +645,8 @@ Module2300Name=Planlagte job
Module2300Desc=Planlagt job styring (alias cron eller chrono tabel) Module2300Desc=Planlagt job styring (alias cron eller chrono tabel)
Module2400Name=Begivenheder/tidsplan Module2400Name=Begivenheder/tidsplan
Module2400Desc=Spor begivenheder. Log automatiske begivenheder til sporingsformål eller optag manuelle begivenheder eller møder. Dette er hovedmodulet for god kunde- eller leverandør-relationsstyring. Module2400Desc=Spor begivenheder. Log automatiske begivenheder til sporingsformål eller optag manuelle begivenheder eller møder. Dette er hovedmodulet for god kunde- eller leverandør-relationsstyring.
Module2430Name=Bestillingskalendersystem
Module2430Desc=Giv en onlinekalender, så alle kan booke et møde, i henhold til foruddefinerede intervaller eller tilgængeligheder.
Module2500Name=DMS / ECM Module2500Name=DMS / ECM
Module2500Desc=Dokumentstyringssystem / Elektronisk indholdsstyring. Automatisk organisering af dine genererede eller gemte dokumenter. Del dem, når du har behov for det. Module2500Desc=Dokumentstyringssystem / Elektronisk indholdsstyring. Automatisk organisering af dine genererede eller gemte dokumenter. Del dem, når du har behov for det.
Module2600Name=API / webtjenester (SOAP-server) Module2600Name=API / webtjenester (SOAP-server)
@ -660,6 +662,8 @@ Module2900Name=GeoIPMaxmind
Module2900Desc=GeoIP Maxmind konverteringsmuligheder Module2900Desc=GeoIP Maxmind konverteringsmuligheder
Module3200Name=Uforanderlige arkiver Module3200Name=Uforanderlige arkiver
Module3200Desc=Aktiver en uforanderlig log over forretningsbegivenheder. Begivenheder arkiveres i realtid. Loggen er en skrivebeskyttet tabel over kædede hændelser, der kan eksporteres. Dette modul er obligatorisk i nogle lande. Module3200Desc=Aktiver en uforanderlig log over forretningsbegivenheder. Begivenheder arkiveres i realtid. Loggen er en skrivebeskyttet tabel over kædede hændelser, der kan eksporteres. Dette modul er obligatorisk i nogle lande.
Module3300Name=Modulbygger
Module3200Desc=Aktiver en uforanderlig log over forretningsbegivenheder. Begivenheder arkiveres i realtid. Loggen er en skrivebeskyttet tabel over kædede hændelser, der kan eksporteres. Dette modul er obligatorisk i nogle lande.
Module3400Name=Sociale netværk Module3400Name=Sociale netværk
Module3400Desc=Aktiver sociale netværksfelter til tredjeparter og adresser (Skype, Twitter, Facebook, ...). Module3400Desc=Aktiver sociale netværksfelter til tredjeparter og adresser (Skype, Twitter, Facebook, ...).
Module4000Name=Personaleadministration Module4000Name=Personaleadministration
@ -1270,6 +1274,7 @@ TriggerActiveAsModuleActive=Udløsere i denne fil er aktive, da modulet <b>%s</b
GeneratedPasswordDesc=Vælg den metode, der skal bruges til automatisk genererede adgangskoder. GeneratedPasswordDesc=Vælg den metode, der skal bruges til automatisk genererede adgangskoder.
DictionaryDesc=Indsæt alle referencedata. Du kan tilføje dine værdier til standarden. DictionaryDesc=Indsæt alle referencedata. Du kan tilføje dine værdier til standarden.
ConstDesc=Denne side giver dig mulighed for at redigere (tilsidesætte) parametre, der ikke er tilgængelige på andre sider. Disse er for det meste reserverede parametre kun til udviklere/avanceret fejlfinding. ConstDesc=Denne side giver dig mulighed for at redigere (tilsidesætte) parametre, der ikke er tilgængelige på andre sider. Disse er for det meste reserverede parametre kun til udviklere/avanceret fejlfinding.
MiscellaneousOptions=Forskellige muligheder
MiscellaneousDesc=Alle andre sikkerhedsrelaterede parametre er defineret her. MiscellaneousDesc=Alle andre sikkerhedsrelaterede parametre er defineret her.
LimitsSetup=Begrænsninger/Nøjagtigheds opsætning LimitsSetup=Begrænsninger/Nøjagtigheds opsætning
LimitsDesc=Du kan definere grænser, nøjagtighed og optimeringer brugen af Dolibarr her LimitsDesc=Du kan definere grænser, nøjagtighed og optimeringer brugen af Dolibarr her
@ -1826,6 +1831,9 @@ AGENDA_USE_EVENT_TYPE=Brug begivenhedstyper (administreret i menuen Opsætning -
AGENDA_USE_EVENT_TYPE_DEFAULT=Indstil automatisk denne standardværdi for begivenhedstype i begivenhedsoprettelsesformularen AGENDA_USE_EVENT_TYPE_DEFAULT=Indstil automatisk denne standardværdi for begivenhedstype i begivenhedsoprettelsesformularen
AGENDA_DEFAULT_FILTER_TYPE=Indstil automatisk denne type begivenhed i søgefilteret i dagsordensvisningen AGENDA_DEFAULT_FILTER_TYPE=Indstil automatisk denne type begivenhed i søgefilteret i dagsordensvisningen
AGENDA_DEFAULT_FILTER_STATUS=Indstil automatisk denne status for begivenheder i søgefilteret i dagsordensvisningen AGENDA_DEFAULT_FILTER_STATUS=Indstil automatisk denne status for begivenheder i søgefilteret i dagsordensvisningen
AGENDA_EVENT_PAST_COLOR=Farve på tidligere begivenheder
AGENDA_EVENT_CURRENT_COLOR=Aktuel begivenhedsfarve
AGENDA_EVENT_FUTURE_COLOR=Fremtidig begivenhed farve
AGENDA_DEFAULT_VIEW=Hvilken visning vil du som standard åbne, når du vælger menu Tidsplan AGENDA_DEFAULT_VIEW=Hvilken visning vil du som standard åbne, når du vælger menu Tidsplan
AGENDA_REMINDER_BROWSER=Aktiver hændelsespåmindelse <b>på brugerens browser</b> (Når påmindelsesdatoen er nået, vises en pop op af browseren. Hver bruger kan deaktivere sådanne meddelelser fra sin browsermeddelelsesopsætning). AGENDA_REMINDER_BROWSER=Aktiver hændelsespåmindelse <b>på brugerens browser</b> (Når påmindelsesdatoen er nået, vises en pop op af browseren. Hver bruger kan deaktivere sådanne meddelelser fra sin browsermeddelelsesopsætning).
AGENDA_REMINDER_BROWSER_SOUND=Aktiver lydmeddelelse AGENDA_REMINDER_BROWSER_SOUND=Aktiver lydmeddelelse
@ -2129,6 +2137,7 @@ CodeLastResult=Seneste resultatkode
NbOfEmailsInInbox=Antal e-mails i kildekataloget NbOfEmailsInInbox=Antal e-mails i kildekataloget
LoadThirdPartyFromName=Indlæs tredjepartssøgning på %s (kun indlæsning) LoadThirdPartyFromName=Indlæs tredjepartssøgning på %s (kun indlæsning)
LoadThirdPartyFromNameOrCreate=Indlæs tredjepartssøgning på %s (opret, hvis den ikke findes) LoadThirdPartyFromNameOrCreate=Indlæs tredjepartssøgning på %s (opret, hvis den ikke findes)
LoadContactFromEmailOrCreate=Indlæs kontaktsøgning på %s (opret, hvis den ikke findes)
AttachJoinedDocumentsToObject=Gem vedhæftede filer i objektdokumenter, hvis der findes en ref af et objekt i e-mail emnet. AttachJoinedDocumentsToObject=Gem vedhæftede filer i objektdokumenter, hvis der findes en ref af et objekt i e-mail emnet.
WithDolTrackingID=Besked fra en samtale initieret af en første e-mail sendt fra Dolibarr WithDolTrackingID=Besked fra en samtale initieret af en første e-mail sendt fra Dolibarr
WithoutDolTrackingID=Besked fra en samtale initieret af en første e-mail IKKE sendt fra Dolibarr WithoutDolTrackingID=Besked fra en samtale initieret af en første e-mail IKKE sendt fra Dolibarr
@ -2355,3 +2364,5 @@ AllowExternalDownload=Tillad ekstern download (uden login, ved hjælp af et delt
DeadlineDayVATSubmission=Deadline dag for momsindsendelse den næste måned DeadlineDayVATSubmission=Deadline dag for momsindsendelse den næste måned
MaxNumberOfAttachementOnForms=Maks. antal sammenføjede filer i en formular MaxNumberOfAttachementOnForms=Maks. antal sammenføjede filer i en formular
IfDefinedUseAValueBeetween=Hvis det er defineret, skal du bruge en værdi mellem %s og %s IfDefinedUseAValueBeetween=Hvis det er defineret, skal du bruge en værdi mellem %s og %s
Reload=Genindlæs
ConfirmReload=Bekræft modulgenindlæsning

View File

@ -24,6 +24,7 @@ BoxFicheInter=Latest interventions
BoxCurrentAccounts=Open accounts balance BoxCurrentAccounts=Open accounts balance
BoxTitleMemberNextBirthdays=Fødselsdage i denne måned (medlemmer) BoxTitleMemberNextBirthdays=Fødselsdage i denne måned (medlemmer)
BoxTitleMembersByType=Medlemmer efter type og status BoxTitleMembersByType=Medlemmer efter type og status
BoxTitleMembersByTags=Medlemmer efter tags og status
BoxTitleMembersSubscriptionsByYear=Medlemmer Abonnementer efter år BoxTitleMembersSubscriptionsByYear=Medlemmer Abonnementer efter år
BoxTitleLastRssInfos=Latest %s news from %s BoxTitleLastRssInfos=Latest %s news from %s
BoxTitleLastProducts=Produkter / tjenester: sidst %s ændret BoxTitleLastProducts=Produkter / tjenester: sidst %s ændret

View File

@ -312,8 +312,8 @@ CustomerRelativeDiscountShort=Relativ rabat
CustomerAbsoluteDiscountShort=Absolut rabat CustomerAbsoluteDiscountShort=Absolut rabat
CompanyHasRelativeDiscount=Denne kunde har en standardrabat på <b>%s%%</b> CompanyHasRelativeDiscount=Denne kunde har en standardrabat på <b>%s%%</b>
CompanyHasNoRelativeDiscount=Denne kunde har som standard ingen rabat CompanyHasNoRelativeDiscount=Denne kunde har som standard ingen rabat
HasRelativeDiscountFromSupplier=Du har en standardrabat på <b>%s%%</b> fra denne leverandør HasRelativeDiscountFromSupplier=Du har en standardrabat på <b> %s%% </b> hos denne leverandør
HasNoRelativeDiscountFromSupplier=Ingen standard relativ rabat fra denne leverandør HasNoRelativeDiscountFromSupplier=Ingen standard relativ rabat hos denne leverandør
CompanyHasAbsoluteDiscount=Denne kunde har tilgodehavender (kreditnotaer eller forudbetalinger) for <b>%s</b> %s CompanyHasAbsoluteDiscount=Denne kunde har tilgodehavender (kreditnotaer eller forudbetalinger) for <b>%s</b> %s
CompanyHasDownPaymentOrCommercialDiscount=Denne kunde har tilgængelige rabatter (kommercielle, forudbetalinger) for <b>%s</b> %s CompanyHasDownPaymentOrCommercialDiscount=Denne kunde har tilgængelige rabatter (kommercielle, forudbetalinger) for <b>%s</b> %s
CompanyHasCreditNote=Denne kunde har stadig kreditnotaer for <b>%s</b> %s CompanyHasCreditNote=Denne kunde har stadig kreditnotaer for <b>%s</b> %s
@ -499,4 +499,7 @@ OutOfEurope=Uden for Europa (EØF)
CurrentOutstandingBillLate=Aktuel udestående regninger i restance CurrentOutstandingBillLate=Aktuel udestående regninger i restance
BecarefullChangeThirdpartyBeforeAddProductToInvoice=Vær forsigtig, afhængigt af dine produkt prisindstillinger bør du ændre tredjepart, før du tilføjer produkt til POS. BecarefullChangeThirdpartyBeforeAddProductToInvoice=Vær forsigtig, afhængigt af dine produkt prisindstillinger bør du ændre tredjepart, før du tilføjer produkt til POS.
EmailAlreadyExistsPleaseRewriteYourCompanyName=e-mail eksisterer allerede, skriv venligst dit firmanavn EmailAlreadyExistsPleaseRewriteYourCompanyName=e-mail eksisterer allerede, skriv venligst dit firmanavn
TwoRecordsOfCompanyName=der findes mere end én registrering for denne virksomhed, kontakt os venligst for at fuldføre din partnerskabsanmodning" TwoRecordsOfCompanyName=der findes mere end én registrering for denne virksomhed, kontakt os venligst for at fuldføre din partnerskabsanmodning
CompanySection=Virksomhedssektion
ShowSocialNetworks=Vis sociale netværk
HideSocialNetworks=Skjul sociale netværk

View File

@ -303,6 +303,7 @@ ErrorValueForTooLow=Værdien for <b> %s </b> er for lav
ErrorValueCantBeNull=Værdien for <b> %s </b> kan ikke være 0 ErrorValueCantBeNull=Værdien for <b> %s </b> kan ikke være 0
ErrorDateOfMovementLowerThanDateOfFileTransmission=Datoen for banktransaktionen må ikke være lavere end datoen for filoverførslen ErrorDateOfMovementLowerThanDateOfFileTransmission=Datoen for banktransaktionen må ikke være lavere end datoen for filoverførslen
ErrorTooMuchFileInForm=For mange filer i form, det maksimale antal er %s fil(er) ErrorTooMuchFileInForm=For mange filer i form, det maksimale antal er %s fil(er)
ErrorSessionInvalidatedAfterPasswordChange=Sessionen blev ugyldiggjort efter en ændring af adgangskode, status eller gyldighedsdatoer. Log venligst på igen.
# Warnings # Warnings
WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Din PHP-parameter upload_max_filesize (%s) er højere end PHP-parameter post_max_size (%s). Dette er ikke en ensartet opsætning. WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Din PHP-parameter upload_max_filesize (%s) er højere end PHP-parameter post_max_size (%s). Dette er ikke en ensartet opsætning.
@ -325,6 +326,7 @@ WarningPaymentDateLowerThanInvoiceDate=Betalingsdato (%s) er tidligere end faktu
WarningTooManyDataPleaseUseMoreFilters=For mange data (mere end %s linjer). Brug venligst flere filtre eller indstil konstanten %s til en højere grænse. WarningTooManyDataPleaseUseMoreFilters=For mange data (mere end %s linjer). Brug venligst flere filtre eller indstil konstanten %s til en højere grænse.
WarningSomeLinesWithNullHourlyRate=Nogle tidspunkter blev registreret af nogle brugere, mens deres timepris ikke var defineret. Der blev brugt en værdi på 0 %s pr. time, men dette kan resultere i forkert værdiansættelse af brugt tid. WarningSomeLinesWithNullHourlyRate=Nogle tidspunkter blev registreret af nogle brugere, mens deres timepris ikke var defineret. Der blev brugt en værdi på 0 %s pr. time, men dette kan resultere i forkert værdiansættelse af brugt tid.
WarningYourLoginWasModifiedPleaseLogin=Dit login blev ændret. Af sikkerhedsmæssige årsager skal du logge ind med dit nye login før næste handling. WarningYourLoginWasModifiedPleaseLogin=Dit login blev ændret. Af sikkerhedsmæssige årsager skal du logge ind med dit nye login før næste handling.
WarningYourPasswordWasModifiedPleaseLogin=Din adgangskode blev ændret. Af sikkerhedsmæssige årsager skal du logge ind nu med din nye adgangskode.
WarningAnEntryAlreadyExistForTransKey=Der findes allerede en post for oversættelsesnøglen for dette sprog WarningAnEntryAlreadyExistForTransKey=Der findes allerede en post for oversættelsesnøglen for dette sprog
WarningNumberOfRecipientIsRestrictedInMassAction=Advarsel, antallet af forskellige modtagere er begrænset til <b> %s</b>, når du bruger massehandlingerne på lister WarningNumberOfRecipientIsRestrictedInMassAction=Advarsel, antallet af forskellige modtagere er begrænset til <b> %s</b>, når du bruger massehandlingerne på lister
WarningDateOfLineMustBeInExpenseReportRange=Advarsel, datoen for linjen ligger ikke inden for udgiftsrapporten WarningDateOfLineMustBeInExpenseReportRange=Advarsel, datoen for linjen ligger ikke inden for udgiftsrapporten

View File

@ -172,3 +172,5 @@ ErrorSeveralCompaniesWithEmailContactUs=Flere virksomheder med denne e -mail er
ErrorSeveralCompaniesWithNameContactUs=Flere virksomheder med dette navn er fundet, så vi kan ikke automatisk validere din registrering. Kontakt os venligst på %s for en manuel validering ErrorSeveralCompaniesWithNameContactUs=Flere virksomheder med dette navn er fundet, så vi kan ikke automatisk validere din registrering. Kontakt os venligst på %s for en manuel validering
NoPublicActionsAllowedForThisEvent=Ingen offentlige handlinger er åbne for offentligheden for denne begivenhed NoPublicActionsAllowedForThisEvent=Ingen offentlige handlinger er åbne for offentligheden for denne begivenhed
MaxNbOfAttendees=Max antal deltagere MaxNbOfAttendees=Max antal deltagere
DateStartEvent=Begivenhedens startdato
DateEndEvent=Begivenheds slutdato

View File

@ -226,6 +226,7 @@ NoUserGroupDefined=Ingen brugergruppe defineret
Password=Adgangskode Password=Adgangskode
PasswordRetype=Gentag din adgangskode PasswordRetype=Gentag din adgangskode
NoteSomeFeaturesAreDisabled=Bemærk, at mange funktioner/moduler er deaktiveret i denne demonstration. NoteSomeFeaturesAreDisabled=Bemærk, at mange funktioner/moduler er deaktiveret i denne demonstration.
YourUserFile=Din brugerfil
Name=Navn Name=Navn
NameSlashCompany=Navn/virksomhed NameSlashCompany=Navn/virksomhed
Person=Person Person=Person
@ -897,6 +898,9 @@ MassFilesArea=Område for filer opbygget af massehandlinger
ShowTempMassFilesArea=Vis område af filer bygget af massehandlinger ShowTempMassFilesArea=Vis område af filer bygget af massehandlinger
ConfirmMassDeletion=Bekræftelse på massesletning ConfirmMassDeletion=Bekræftelse på massesletning
ConfirmMassDeletionQuestion=Er du sikker på, at du vil slette den/de valgt/valgte %s post(er)? ConfirmMassDeletionQuestion=Er du sikker på, at du vil slette den/de valgt/valgte %s post(er)?
ConfirmMassClone=Bulk klon bekræftelse
ConfirmMassCloneQuestion=Vælg det projekt, der skal klones til
ConfirmMassCloneToOneProject=Klon for at projektere %s
RelatedObjects=Relaterede objekter RelatedObjects=Relaterede objekter
ClassifyBilled=Klassificere faktureret ClassifyBilled=Klassificere faktureret
ClassifyUnbilled=Klassificer Ikke faktureret ClassifyUnbilled=Klassificer Ikke faktureret
@ -912,8 +916,8 @@ ExportFilteredList=Eksporter filtreret liste
ExportList=Eksportliste ExportList=Eksportliste
ExportOptions=Eksport indstillinger ExportOptions=Eksport indstillinger
IncludeDocsAlreadyExported=Inkluder dokumenter, der allerede er eksporteret IncludeDocsAlreadyExported=Inkluder dokumenter, der allerede er eksporteret
ExportOfPiecesAlreadyExportedIsEnable=Eksport af allerede eksporterede stykker er aktiveret ExportOfPiecesAlreadyExportedIsEnable=Dokumenter, der allerede er eksporteret, er synlige og vil blive eksporteret
ExportOfPiecesAlreadyExportedIsDisable=Eksport af allerede eksporterede stykker er deaktiveret ExportOfPiecesAlreadyExportedIsDisable=Dokumenter, der allerede er eksporteret, er skjulte og vil ikke blive eksporteret
AllExportedMovementsWereRecordedAsExported=Alle eksporterede bevægelser blev registreret som eksporteret AllExportedMovementsWereRecordedAsExported=Alle eksporterede bevægelser blev registreret som eksporteret
NotAllExportedMovementsCouldBeRecordedAsExported=Ikke alle eksporterede bevægelser kunne registreres som eksporteret NotAllExportedMovementsCouldBeRecordedAsExported=Ikke alle eksporterede bevægelser kunne registreres som eksporteret
Miscellaneous=Diverse Miscellaneous=Diverse
@ -1128,6 +1132,7 @@ DeleteFileText=Vil du virkelig slette denne fil?
ShowOtherLanguages=Vis andre sprog ShowOtherLanguages=Vis andre sprog
SwitchInEditModeToAddTranslation=Skift i redigeringsfunktion for at tilføje oversættelser til dette sprog SwitchInEditModeToAddTranslation=Skift i redigeringsfunktion for at tilføje oversættelser til dette sprog
NotUsedForThisCustomer=Ikke brugt til denne kunde NotUsedForThisCustomer=Ikke brugt til denne kunde
NotUsedForThisVendor=Ikke brugt til denne leverandør
AmountMustBePositive=Beløbet skal være positivt AmountMustBePositive=Beløbet skal være positivt
ByStatus=Efter status ByStatus=Efter status
InformationMessage=Information InformationMessage=Information
@ -1148,14 +1153,14 @@ EventReminder=Påmindelse om begivenhed
UpdateForAllLines=Opdatering til alle linjer UpdateForAllLines=Opdatering til alle linjer
OnHold=Afventer OnHold=Afventer
Civility=Høflighed Civility=Høflighed
AffectTag=Tildel tag AffectTag=Tildel et tag
AffectUser=Tildel bruger AffectUser=Tildel en bruger
SetSupervisor=Sæt Supervisor SetSupervisor=Indstil vejlederen
CreateExternalUser=Opret ekstern bruger CreateExternalUser=Opret ekstern bruger
ConfirmAffectTag=Bulk Tag Tildeling ConfirmAffectTag=Bulk Tag Tildeling
ConfirmAffectUser=Massebrugertildeling ConfirmAffectUser=Massebrugertildeling
ProjectRole=Rolle tildelt på hvert projekt ProjectRole=Rolle tildelt på hvert projekt/mulighed
TasksRole=Rolle tildelt på hver opgave i hvert projekt TasksRole=Rolle tildelt hver opgave (hvis brugt)
ConfirmSetSupervisor=Bulk supervisor sæt ConfirmSetSupervisor=Bulk supervisor sæt
ConfirmUpdatePrice=Vælg en stigning/reduktionspris ConfirmUpdatePrice=Vælg en stigning/reduktionspris
ConfirmAffectTagQuestion=Er du sikker på, at du vil tildele tags til de(n) valgte post(er) %s? ConfirmAffectTagQuestion=Er du sikker på, at du vil tildele tags til de(n) valgte post(er) %s?
@ -1210,3 +1215,10 @@ CreatedByPublicPortal=Oprettet fra offentlig portal
UserAgent=Brugeragent UserAgent=Brugeragent
InternalUser=Intern bruger InternalUser=Intern bruger
ExternalUser=Ekstern bruger ExternalUser=Ekstern bruger
NoSpecificContactAddress=Ingen specifik kontakt eller adresse
NoSpecificContactAddressBis=Denne fane er dedikeret til at tvinge specifikke kontakter eller adresser til det aktuelle objekt. Brug det kun, hvis du ønsker at definere en eller flere specifikke kontakter eller adresser for objektet, når oplysningerne om tredjeparten ikke er tilstrækkelige eller ikke nøjagtige.
HideOnVCard=Skjul %s
AddToContacts=Tilføj adresse til mine kontakter
LastAccess=Sidste adgang
UploadAnImageToSeeAPhotoHere=Upload et billede fra fanen %s for at se et billede her
LastPasswordChangeDate=Dato for sidste ændring af adgangskode

View File

@ -102,6 +102,7 @@ NbOperatorsRequired=Antal krævede operatører
THMOperatorEstimated=Anslået operatør THM THMOperatorEstimated=Anslået operatør THM
THMMachineEstimated=Anslået maskine THM THMMachineEstimated=Anslået maskine THM
WorkstationType=Arbejdsstationstype WorkstationType=Arbejdsstationstype
DefaultWorkstation=Standard arbejdsstation
Human=Person Human=Person
Machine=Maskine Machine=Maskine
HumanMachine=Person / maskine HumanMachine=Person / maskine

View File

@ -96,6 +96,10 @@ OrdersStatisticsSuppliers=Indkøbsordrestatistik
NumberOfOrdersByMonth=Antallet af ordrer efter måned NumberOfOrdersByMonth=Antallet af ordrer efter måned
AmountOfOrdersByMonthHT=Mængden af ordrer efter måned (ekskl. Moms) AmountOfOrdersByMonthHT=Mængden af ordrer efter måned (ekskl. Moms)
ListOfOrders=Liste af ordrer ListOfOrders=Liste af ordrer
ListOrderLigne=Ordrerækker
productobuy=Kun produkter til køb
productonly=Kun produkter
disablelinefree=Ingen linjer fri
CloseOrder=Luk for CloseOrder=Luk for
ConfirmCloseOrder=Er du sikker på, at du vil indstille denne ordre til levering? Når en ordre er leveret, kan den indstilles til fakturering. ConfirmCloseOrder=Er du sikker på, at du vil indstille denne ordre til levering? Når en ordre er leveret, kan den indstilles til fakturering.
ConfirmDeleteOrder=Er du sikker på, at du vil slette denne ordre? ConfirmDeleteOrder=Er du sikker på, at du vil slette denne ordre?
@ -131,6 +135,7 @@ SupplierOrderClassifiedBilled=Indkøbsordre %s er faktureret
OtherOrders=Andre ordrer OtherOrders=Andre ordrer
SupplierOrderValidatedAndApproved=Leverandørordre er valideret og godkendt: %s SupplierOrderValidatedAndApproved=Leverandørordre er valideret og godkendt: %s
SupplierOrderValidated=Leverandørordre er valideret: %s SupplierOrderValidated=Leverandørordre er valideret: %s
OrderShowDetail=Vis ordredetaljer
##### Types de contacts ##### ##### Types de contacts #####
TypeContact_commande_internal_SALESREPFOLL=Repræsentative opfølgning salgsordre TypeContact_commande_internal_SALESREPFOLL=Repræsentative opfølgning salgsordre
TypeContact_commande_internal_SHIPPING=Repræsentant opfølgning shipping TypeContact_commande_internal_SHIPPING=Repræsentant opfølgning shipping
@ -199,3 +204,5 @@ StatusSupplierOrderApproved=Godkendt
StatusSupplierOrderRefused=Afvist StatusSupplierOrderRefused=Afvist
StatusSupplierOrderReceivedPartially=Delvist modtaget StatusSupplierOrderReceivedPartially=Delvist modtaget
StatusSupplierOrderReceivedAll=Alle varer modtaget StatusSupplierOrderReceivedAll=Alle varer modtaget
NeedAtLeastOneInvoice = Der skal være mindst én faktura
LineAlreadyDispatched = Ordrelinjen er allerede modtaget.

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