Merge branch 'develop' into RightsInModuleBuilder
This commit is contained in:
commit
385d068ed1
2
.github/workflows/code_quality.yml
vendored
2
.github/workflows/code_quality.yml
vendored
@ -18,7 +18,7 @@ jobs:
|
||||
fetch-depth: 1
|
||||
#php-version: '7.1'
|
||||
- name: 'Qodana Scan'
|
||||
uses: JetBrains/qodana-action@v2022.3.0
|
||||
uses: JetBrains/qodana-action@v2022.3.2
|
||||
#with:
|
||||
# php-version: '7.1'
|
||||
env:
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
* 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 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/
|
||||
|
||||
@ -313,10 +313,6 @@ if (empty($reshook)) {
|
||||
$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->default_lang = GETPOST('default_lang', 'alpha');
|
||||
$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->url = $url;
|
||||
$object->login = $login;
|
||||
|
||||
@ -639,7 +639,7 @@ class AdherentType extends CommonObject
|
||||
$sql .= ' AND ('.$excludefilter.')';
|
||||
}
|
||||
|
||||
dol_syslog(get_class($this)."::listUsersForGroup", LOG_DEBUG);
|
||||
dol_syslog(get_class($this)."::listMembersForMemberType", LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql) {
|
||||
while ($obj = $this->db->fetch_object($resql)) {
|
||||
|
||||
@ -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_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);
|
||||
|
||||
@ -676,8 +676,8 @@ print '<input name="tva" id="intra_vat" class="minwidth200" value="'.dol_escape_
|
||||
print '</td></tr>';
|
||||
|
||||
// Object of the company
|
||||
print '<tr class="oddeven"><td><label for="object">'.$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 '<tr class="oddeven"><td><label for="socialobject">'.$langs->trans("CompanyObject").'</label></td><td>';
|
||||
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 '</table>';
|
||||
|
||||
@ -387,7 +387,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
||||
$morehtmlref = '<div class="refidno">';
|
||||
$morehtmlref .= '</div>';
|
||||
|
||||
$morehtml = $langs->trans("NbOfEmailsInInbox").' : ';
|
||||
$morehtml = '';
|
||||
|
||||
$sourcedir = $object->source_directory;
|
||||
$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);
|
||||
|
||||
if ($action == 'scan') {
|
||||
$nbemail = '';
|
||||
if (!empty($conf->global->MAIN_IMAP_USE_PHPIMAP)) {
|
||||
if ($object->acces_type == 1) {
|
||||
// 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);
|
||||
$nbemail = $f[0]->examine()["exists"];
|
||||
$morehtml .= $nbemail;
|
||||
} else {
|
||||
try {
|
||||
if ($sourcedir) {
|
||||
@ -525,15 +525,15 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
||||
}
|
||||
|
||||
if (!$connection) {
|
||||
$morehtml .= 'Failed to open IMAP connection '.$connectstringsource;
|
||||
$nbemail .= 'Failed to open IMAP connection '.$connectstringsource;
|
||||
if (function_exists('imap_last_error')) {
|
||||
$morehtml .= '<br>'.imap_last_error();
|
||||
$nbemail .= '<br>'.imap_last_error();
|
||||
}
|
||||
dol_syslog("Error ".$morehtml, LOG_WARNING);
|
||||
//var_dump(imap_errors())
|
||||
} else {
|
||||
dol_syslog("Imap connected. Now we call imap_num_msg()");
|
||||
$morehtml .= imap_num_msg($connection);
|
||||
$nbemail .= imap_num_msg($connection);
|
||||
}
|
||||
|
||||
if ($connection) {
|
||||
@ -541,12 +541,15 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
||||
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 .= ' <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 {
|
||||
$morehtml .= $langs->trans("NbOfEmailsInInbox").': ';
|
||||
$morehtml .= 'IMAP functions not available on your PHP. ';
|
||||
}
|
||||
|
||||
|
||||
@ -601,13 +601,17 @@ while ($i < $imaxinloop) {
|
||||
//if (in_array($key, array('fk_soc', 'fk_user', 'fk_warehouse'))) $cssforfield = 'tdoverflowmax100';
|
||||
|
||||
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)) {
|
||||
print ' title="'.dol_escape_htmltag($object->$key).'"';
|
||||
}
|
||||
print '>';
|
||||
if ($key == 'status') {
|
||||
print $object->getLibStatut(5);
|
||||
} elseif ($key == 'lastresult') {
|
||||
print '<div class="twolinesmax">';
|
||||
print $object->showOutputField($val, $key, $object->$key, '');
|
||||
print '</div>';
|
||||
} elseif ($key == 'rowid') {
|
||||
print $object->showOutputField($val, $key, $object->id, '');
|
||||
} else {
|
||||
|
||||
@ -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');
|
||||
}
|
||||
|
||||
unset($mysoc->skype);
|
||||
unset($mysoc->twitter);
|
||||
unset($mysoc->facebook);
|
||||
unset($mysoc->linkedin);
|
||||
|
||||
unset($mysoc->pays);
|
||||
unset($mysoc->note);
|
||||
unset($mysoc->nom);
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<?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>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -275,302 +275,303 @@ if (empty($reshook)) {
|
||||
$object->calculateCosts();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
$form = new Form($db);
|
||||
$formfile = new FormFile($db);
|
||||
$form = new Form($db);
|
||||
$formfile = new FormFile($db);
|
||||
|
||||
|
||||
$title = $langs->trans('BOM');
|
||||
$help_url ='EN:Module_BOM';
|
||||
llxHeader('', $title, $help_url);
|
||||
$title = $langs->trans('BOM');
|
||||
$help_url ='EN:Module_BOM';
|
||||
llxHeader('', $title, $help_url);
|
||||
|
||||
// Part to create
|
||||
if ($action == 'create') {
|
||||
print load_fiche_titre($langs->trans("NewBOM"), '', 'bom');
|
||||
// Part to create
|
||||
if ($action == 'create') {
|
||||
print load_fiche_titre($langs->trans("NewBOM"), '', 'bom');
|
||||
|
||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||
print '<input type="hidden" name="action" value="add">';
|
||||
print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
|
||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||
print '<input type="hidden" name="action" value="add">';
|
||||
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
|
||||
include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_add.tpl.php';
|
||||
// Common attributes
|
||||
include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_add.tpl.php';
|
||||
|
||||
// Other attributes
|
||||
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_add.tpl.php';
|
||||
// Other attributes
|
||||
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
|
||||
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);
|
||||
}
|
||||
|
||||
// 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);
|
||||
}
|
||||
// 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 {
|
||||
if (! empty($object->fk_project)) {
|
||||
$proj = new Project($db);
|
||||
$proj->fetch($object->fk_project);
|
||||
$morehtmlref.=$proj->getNomUrl();
|
||||
} else {
|
||||
$morehtmlref.='';
|
||||
$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),
|
||||
);
|
||||
}
|
||||
*/
|
||||
$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">';
|
||||
print '<div class="fichehalfleft">';
|
||||
print '<div class="underbanner clearboth"></div>';
|
||||
print '<table class="border centpercent tableforfield">' . "\n";
|
||||
dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
|
||||
|
||||
// Common attributes
|
||||
$keyforbreak = 'duration';
|
||||
include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_view.tpl.php';
|
||||
|
||||
print '<div class="fichecenter">';
|
||||
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();
|
||||
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 ($res == 0 && $object->status >= $object::STATUS_VALIDATED) ? '' : load_fiche_titre($langs->trans('BOMProductsList'), '', 'product');
|
||||
|
||||
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();
|
||||
|
||||
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">
|
||||
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="action" value="' . (($action != 'editline') ? 'addline' : 'updateline') . '">
|
||||
<input type="hidden" name="mode" value="">
|
||||
@ -578,78 +579,30 @@ if (empty($reshook)) {
|
||||
<input type="hidden" name="id" value="' . $object->id . '">
|
||||
';
|
||||
|
||||
if (!empty($conf->use_javascript_ajax) && $object->status == 0) {
|
||||
include DOL_DOCUMENT_ROOT . '/core/tpl/ajaxrow.tpl.php';
|
||||
}
|
||||
if (!empty($conf->use_javascript_ajax) && $object->status == 0) {
|
||||
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="tablelines" class="noborder noshadow" width="100%">';
|
||||
}
|
||||
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="tablelines" class="noborder noshadow centpercent">';
|
||||
}
|
||||
|
||||
if (!empty($object->lines)) {
|
||||
$object->printObjectLines($action, $mysoc, null, GETPOST('lineid', 'int'), 1, '/bom/tpl');
|
||||
}
|
||||
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 products/services form
|
||||
// Form to add new line
|
||||
if ($object->status == 0 && $permissiontoadd && $action != 'selectlines') {
|
||||
if ($action != 'editline') {
|
||||
// Add products/services form
|
||||
|
||||
|
||||
$parameters = array();
|
||||
$reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
|
||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||
if (empty($reshook))
|
||||
$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');
|
||||
}
|
||||
$parameters = array();
|
||||
$reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
|
||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||
if (empty($reshook))
|
||||
$object->formAddObjectLine(1, $mysoc, null, '/bom/tpl');
|
||||
}
|
||||
}
|
||||
|
||||
@ -660,149 +613,199 @@ if (empty($reshook)) {
|
||||
|
||||
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') {
|
||||
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($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 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)) {
|
||||
// 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";
|
||||
if (!empty($object->lines) || ($object->status == $object::STATUS_DRAFT && $permissiontoadd && $action != 'selectlines' && $action != 'editline')) {
|
||||
print '</table>';
|
||||
}
|
||||
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
|
||||
if ($object->status == $object::STATUS_VALIDATED) {
|
||||
if ($permissiontoadd) {
|
||||
print '<a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=setdraft&token=' . newToken() . '">' . $langs->trans("SetToDraft") . '</a>' . "\n";
|
||||
}
|
||||
if ($object->status == $object::STATUS_VALIDATED) {
|
||||
if ($permissiontoadd) {
|
||||
print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&action=setdraft&token='.newToken().'">'.$langs->trans("SetToDraft").'</a>'."\n";
|
||||
}
|
||||
}
|
||||
|
||||
// Modify
|
||||
if ($object->status == $object::STATUS_DRAFT) {
|
||||
if ($permissiontoadd) {
|
||||
print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=edit&token=' . newToken() . '">' . $langs->trans("Modify") . '</a>' . "\n";
|
||||
} else {
|
||||
print '<a class="butActionRefused classfortooltip" href="#" title="' . dol_escape_htmltag($langs->trans("NotEnoughPermissions")) . '">' . $langs->trans('Modify') . '</a>' . "\n";
|
||||
}
|
||||
if ($object->status == $object::STATUS_DRAFT) {
|
||||
if ($permissiontoadd) {
|
||||
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=edit&token='.newToken().'">'.$langs->trans("Modify").'</a>'."\n";
|
||||
} else {
|
||||
print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans('Modify').'</a>'."\n";
|
||||
}
|
||||
}
|
||||
|
||||
// Validate
|
||||
if ($object->status == $object::STATUS_DRAFT) {
|
||||
if ($permissiontoadd) {
|
||||
if (is_array($object->lines) && count($object->lines) > 0) {
|
||||
print '<a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=validate&token=' . newToken() . '">' . $langs->trans("Validate") . '</a>' . "\n";
|
||||
} else {
|
||||
$langs->load("errors");
|
||||
print '<a class="butActionRefused" href="" title="' . $langs->trans("ErrorAddAtLeastOneLineFirst") . '">' . $langs->trans("Validate") . '</a>' . "\n";
|
||||
}
|
||||
if ($object->status == $object::STATUS_DRAFT) {
|
||||
if ($permissiontoadd) {
|
||||
if (is_array($object->lines) && count($object->lines) > 0) {
|
||||
print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&action=validate&token='.newToken().'">'.$langs->trans("Validate").'</a>'."\n";
|
||||
} else {
|
||||
$langs->load("errors");
|
||||
print '<a class="butActionRefused" href="" title="'.$langs->trans("ErrorAddAtLeastOneLineFirst").'">'.$langs->trans("Validate").'</a>'."\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Re-open
|
||||
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";
|
||||
}
|
||||
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";
|
||||
}
|
||||
|
||||
// Create MO
|
||||
if (isModEnabled('mrp')) {
|
||||
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";
|
||||
}
|
||||
if (isModEnabled('mrp')) {
|
||||
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";
|
||||
}
|
||||
}
|
||||
|
||||
// Clone
|
||||
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);
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
// Close / Cancel
|
||||
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";
|
||||
}
|
||||
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";
|
||||
}
|
||||
|
||||
/*
|
||||
if ($user->rights->bom->write)
|
||||
{
|
||||
if ($object->status == 1)
|
||||
{
|
||||
print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=disable&token='.newToken().'">'.$langs->trans("Disable").'</a>'."\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=enable&token='.newToken().'">'.$langs->trans("Enable").'</a>'."\n";
|
||||
}
|
||||
}
|
||||
*/
|
||||
if ($user->rights->bom->write)
|
||||
{
|
||||
if ($object->status == 1)
|
||||
{
|
||||
print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=disable&token='.newToken().'">'.$langs->trans("Disable").'</a>'."\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=enable&token='.newToken().'">'.$langs->trans("Enable").'</a>'."\n";
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
// Delete
|
||||
print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=delete&token=' . newToken(), 'delete', $permissiontodelete);
|
||||
}
|
||||
print '</div>' . "\n";
|
||||
print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', $permissiontodelete);
|
||||
}
|
||||
|
||||
|
||||
// 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';
|
||||
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';
|
||||
}
|
||||
|
||||
|
||||
// End of page
|
||||
llxFooter();
|
||||
$db->close();
|
||||
|
||||
@ -187,8 +187,8 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
||||
|
||||
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('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('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('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, '');
|
||||
|
||||
|
||||
@ -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'),
|
||||
'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')),
|
||||
'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,),
|
||||
'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'),
|
||||
'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'),
|
||||
|
||||
@ -107,7 +107,7 @@ print '<td class="bordertop nobottom linecoldescription minwidth500imp">';
|
||||
if (isModEnabled("product") || isModEnabled("service")) {
|
||||
if ($filtertype == 1) {
|
||||
print $langs->trans("Service");
|
||||
} elseif (!empty($conf->global->BOM_SUB_BOM)) {
|
||||
} else {
|
||||
print $langs->trans("Product");
|
||||
}
|
||||
echo '<span class="prod_entry_mode_predef">';
|
||||
|
||||
@ -948,26 +948,6 @@ while ($currentdaytoshow < $lastdaytoshow) {
|
||||
$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
|
||||
$colorsbytype = array();
|
||||
$labelbytype = array();
|
||||
|
||||
@ -72,6 +72,10 @@ if (is_array($remains)) {
|
||||
unset($remains[$key]);
|
||||
}
|
||||
}
|
||||
} elseif ($remains) {
|
||||
$remains = array(price2num($remains));
|
||||
} else {
|
||||
$remains = array();
|
||||
}
|
||||
|
||||
// Treatment
|
||||
|
||||
@ -51,7 +51,7 @@ if (isModEnabled('accounting')) {
|
||||
}
|
||||
|
||||
// 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');
|
||||
$cancel = GETPOST('cancel', 'alpha');
|
||||
@ -140,6 +140,9 @@ if (empty($reshook)) {
|
||||
|
||||
$object->proprio = trim(GETPOST("proprio", '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_transfer = trim(GETPOST("ics_transfer", 'alpha'));
|
||||
@ -241,6 +244,9 @@ if (empty($reshook)) {
|
||||
|
||||
$object->proprio = trim(GETPOST("proprio", '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_transfer = trim(GETPOST("ics_transfer", 'alpha'));
|
||||
@ -422,7 +428,8 @@ if ($action == 'create') {
|
||||
|
||||
print '<tr><td class="fieldrequired">'.$langs->trans("BankAccountCountry").'</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) {
|
||||
print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
||||
}
|
||||
@ -438,6 +445,14 @@ if ($action == 'create') {
|
||||
}
|
||||
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
|
||||
print '<tr><td>'.$langs->trans("Web").'</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>';
|
||||
|
||||
if (isModEnabled('paymentbybanktransfer')) {
|
||||
print '<tr><td>'.$langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation").'</td>';
|
||||
print '<td><input type="checkbox" class="flat minwidth150" name="pti_in_ctti"'. (empty(GETPOST('pti_in_ctti')) ? '' : ' checked ') . '> ';
|
||||
print img_picto($langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp"), 'info');
|
||||
print '<tr><td>'.$form->textwithpicto($langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation"), $langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp")).'</td>';
|
||||
print '<td><input type="checkbox" class="flat" name="pti_in_ctti"'. (empty(GETPOST('pti_in_ctti')) ? '' : ' checked ') . '>';
|
||||
print '</td></tr>';
|
||||
}
|
||||
print '</table>';
|
||||
print '<hr>';
|
||||
|
||||
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>";
|
||||
|
||||
print '<tr><td>'.$langs->trans("BankAccountOwner").'</td>';
|
||||
print '<table class="border centpercent">';
|
||||
print '<tr><td class="titlefieldcreate">'.$langs->trans("BankAccountOwner").'</td>';
|
||||
print '<td><input type="text" class="flat minwidth300" name="proprio" value="'.(GETPOST('proprio') ?GETPOST('proprio', 'alpha') : $object->proprio).'">';
|
||||
print '</td></tr>';
|
||||
|
||||
@ -572,8 +584,22 @@ if ($action == 'create') {
|
||||
print (GETPOST('owner_address') ?GETPOST('owner_address', 'alpha') : $object->owner_address);
|
||||
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 '<br>';
|
||||
print '<hr>';
|
||||
}
|
||||
|
||||
print '<table class="border centpercent">';
|
||||
@ -722,8 +748,6 @@ if ($action == 'create') {
|
||||
print '</table>';
|
||||
|
||||
if ($object->type == Account::TYPE_SAVINGS || $object->type == Account::TYPE_CURRENT) {
|
||||
//print '<div class="underbanner clearboth"></div>';
|
||||
|
||||
print '<table class="border tableforfield centpercent">';
|
||||
|
||||
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 '</tr>';
|
||||
|
||||
print '<tr><td>'.$langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation").'</td><td>';
|
||||
print (empty($object->pti_in_ctti) ? $langs->trans("No") : $langs->trans("Yes")) . ' ';
|
||||
print img_picto($langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp"), 'info');
|
||||
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"));
|
||||
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 $object->proprio;
|
||||
print "</td></tr>\n";
|
||||
@ -805,6 +824,22 @@ if ($action == 'create') {
|
||||
print nl2br($object->owner_address);
|
||||
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>';
|
||||
}
|
||||
|
||||
@ -933,6 +968,14 @@ if ($action == 'create') {
|
||||
}
|
||||
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
|
||||
print '<tr><td>'.$langs->trans("Conciliable").'</td>';
|
||||
print '<td>';
|
||||
@ -942,7 +985,7 @@ if ($action == 'create') {
|
||||
} elseif ($conciliate == -3) {
|
||||
print $langs->trans("No").' ('.$langs->trans("Closed").')';
|
||||
} 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>';
|
||||
|
||||
@ -993,7 +1036,7 @@ if ($action == 'create') {
|
||||
}
|
||||
|
||||
print '</table>';
|
||||
print '<br>';
|
||||
print '<hr>';
|
||||
|
||||
|
||||
//print '<div class="underbanner clearboth"></div>';
|
||||
@ -1030,8 +1073,6 @@ if ($action == 'create') {
|
||||
if ($type == Account::TYPE_SAVINGS || $type == Account::TYPE_CURRENT) {
|
||||
print '<br>';
|
||||
|
||||
//print '<div class="underbanner clearboth"></div>';
|
||||
|
||||
print '<table class="border centpercent">';
|
||||
|
||||
// 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 '<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 '<td><input type="checkbox" class="flat minwidth150" name="pti_in_ctti"'. ($object->pti_in_ctti ? ' checked ' : '') . '> ';
|
||||
print img_picto($langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp"), 'info');
|
||||
print '<tr><td>'.$form->textwithpicto($langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation"), $langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp")).'</td>';
|
||||
print '<td><input type="checkbox" class="flat" name="pti_in_ctti"'. ($object->pti_in_ctti ? ' checked ' : '') . '>';
|
||||
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 '<td><input class="maxwidth200onsmartphone" type="text" class="flat" name="proprio" value="'.$object->proprio.'"></td>';
|
||||
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 $object->owner_address;
|
||||
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>';
|
||||
}
|
||||
|
||||
|
||||
@ -146,12 +146,6 @@ class Account extends CommonObject
|
||||
*/
|
||||
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)
|
||||
* @var int
|
||||
@ -169,7 +163,17 @@ class Account extends CommonObject
|
||||
* @var string
|
||||
*/
|
||||
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_code;
|
||||
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),
|
||||
'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),
|
||||
'state_id' =>array('type'=>'integer', 'label'=>'State id', 'enabled'=>1, 'visible'=>-1, 'position'=>90),
|
||||
'fk_pays' =>array('type'=>'integer', 'label'=>'Fk pays', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>95),
|
||||
'state_id' =>array('type'=>'integer', 'label'=>'StateId', 'enabled'=>1, 'visible'=>-1, 'position'=>90),
|
||||
'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),
|
||||
'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),
|
||||
'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),
|
||||
@ -698,6 +705,9 @@ class Account extends CommonObject
|
||||
$sql .= ", pti_in_ctti";
|
||||
$sql .= ", proprio";
|
||||
$sql .= ", owner_address";
|
||||
$sql .= ", owner_zip";
|
||||
$sql .= ", owner_town";
|
||||
$sql .= ", owner_country_id";
|
||||
$sql .= ", currency_code";
|
||||
$sql .= ", rappro";
|
||||
$sql .= ", min_allowed";
|
||||
@ -713,7 +723,7 @@ class Account extends CommonObject
|
||||
$sql .= ", '".$this->db->escape($this->label)."'";
|
||||
$sql .= ", ".((int) $conf->entity);
|
||||
$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->code_banque)."'";
|
||||
$sql .= ", '".$this->db->escape($this->code_guichet)."'";
|
||||
@ -725,6 +735,9 @@ class Account extends CommonObject
|
||||
$sql .= ", ".((int) $this->pti_in_ctti);
|
||||
$sql .= ", '".$this->db->escape($this->proprio)."'";
|
||||
$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 .= ", ".((int) $this->rappro);
|
||||
$sql .= ", ".price2num($this->min_allowed, 'MT');
|
||||
@ -836,7 +849,7 @@ class Account extends CommonObject
|
||||
$sql .= ",rappro = ".((int) $this->rappro);
|
||||
$sql .= ",url = ".($this->url ? "'".$this->db->escape($this->url)."'" : "null");
|
||||
$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 .= ",code_banque='".$this->db->escape($this->code_banque)."'";
|
||||
$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 .= ",proprio = '".$this->db->escape($this->proprio)."'";
|
||||
$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)."'";
|
||||
|
||||
@ -931,6 +947,9 @@ class Account extends CommonObject
|
||||
$sql .= ",domiciliation='".$this->db->escape($this->domiciliation)."'";
|
||||
$sql .= ",proprio = '".$this->db->escape($this->proprio)."'";
|
||||
$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 .= ",fk_pays = ".($this->country_id > 0 ? $this->country_id : "null");
|
||||
$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 .= " 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.min_allowed, ba.min_desired, ba.comment,";
|
||||
$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 .= ' d.code_departement as state_code, d.nom as state';
|
||||
$sql .= ' , aj.code as accountancy_journal';
|
||||
$sql .= ' d.code_departement as state_code, d.nom as state,';
|
||||
$sql .= ' aj.code as accountancy_journal';
|
||||
$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_departements as d ON ba.state_id = d.rowid';
|
||||
@ -1009,10 +1028,14 @@ class Account extends CommonObject
|
||||
$this->cle_rib = $obj->cle_rib;
|
||||
$this->bic = $obj->bic;
|
||||
$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->proprio = $obj->proprio;
|
||||
$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_code = $obj->state_code;
|
||||
@ -1047,7 +1070,7 @@ class Account extends CommonObject
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
$this->error = $this->db->lasterror;
|
||||
$this->error = $this->db->lasterror();
|
||||
$this->errors[] = $this->error;
|
||||
return -1;
|
||||
}
|
||||
@ -1723,6 +1746,9 @@ class Account extends CommonObject
|
||||
$this->domiciliation = 'Banque de France';
|
||||
$this->proprio = 'Owner';
|
||||
$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;
|
||||
}
|
||||
|
||||
|
||||
@ -643,6 +643,8 @@ class Paiement extends CommonObject
|
||||
$acc = new Account($this->db);
|
||||
$result = $acc->fetch($this->fk_account);
|
||||
if ($result < 0) {
|
||||
$this->error = $acc->error;
|
||||
$this->errors = $acc->errors;
|
||||
$error++;
|
||||
return -1;
|
||||
}
|
||||
@ -768,7 +770,7 @@ class Paiement extends CommonObject
|
||||
}
|
||||
|
||||
// Add link 'InvoiceRefused' in bank_url
|
||||
if (! $error && $label == '(InvoiceRefused)') {
|
||||
if (!$error && $label == '(InvoiceRefused)') {
|
||||
$result=$acc->add_url_line(
|
||||
$bank_line_id,
|
||||
$this->id_prelevement,
|
||||
@ -788,6 +790,7 @@ class Paiement extends CommonObject
|
||||
}
|
||||
} else {
|
||||
$this->error = $acc->error;
|
||||
$this->errors = $acc->errors;
|
||||
$error++;
|
||||
}
|
||||
|
||||
|
||||
@ -213,11 +213,6 @@ if (empty($reshook)) {
|
||||
$object->town = (string) GETPOST("town", 'alpha');
|
||||
$object->country_id = (int) GETPOST("country_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();
|
||||
if (isModEnabled('socialnetworks')) {
|
||||
foreach ($socialnetworks as $key => $value) {
|
||||
@ -419,11 +414,6 @@ if (empty($reshook)) {
|
||||
|
||||
$object->email = (string) GETPOST('email', 'custom', 0, FILTER_SANITIZE_EMAIL);
|
||||
$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();
|
||||
if (isModEnabled('socialnetworks')) {
|
||||
foreach ($socialnetworks as $key => $value) {
|
||||
|
||||
@ -702,22 +702,6 @@ class Contact extends CommonObject
|
||||
$tmpobj->socialnetworks = $this->socialnetworks;
|
||||
$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) {
|
||||
$result = $tmpobj->update($user, 0, 1, 1, 1);
|
||||
if ($result < 0) {
|
||||
@ -850,9 +834,6 @@ class Contact extends CommonObject
|
||||
if ($this->fax && !empty($conf->global->LDAP_CONTACT_FIELD_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)) {
|
||||
$info[$conf->global->LDAP_CONTACT_FIELD_DESCRIPTION] = dol_string_nohtmltag($this->note_private, 2);
|
||||
}
|
||||
|
||||
@ -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(
|
||||
$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_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.'_source_invoice_ref'=>$invoice_source->ref,
|
||||
$array_key.'_source_invoice_ref'=>((empty($invoice_source) || empty($invoice_source->ref)) ? '' : $invoice_source->ref),
|
||||
// Dates
|
||||
$array_key.'_hour'=>dol_print_date($date, 'hour'),
|
||||
$array_key.'_date'=>dol_print_date($date, 'day'),
|
||||
|
||||
@ -1735,15 +1735,17 @@ abstract class CommonInvoice extends CommonObject
|
||||
$complementaryinfo .= '/30/'.$this->thirdparty->tva_intra;
|
||||
}
|
||||
|
||||
$bankaccount = new Account($this->db);
|
||||
|
||||
// Header
|
||||
$s = '';
|
||||
$s .= "SPC\n";
|
||||
$s .= "0200\n";
|
||||
$s .= "1\n";
|
||||
// Info seller
|
||||
if ($this->fk_account > 0) {
|
||||
// Bank BAN if country is LI or CH
|
||||
// TODO Add
|
||||
$bankaccount = new Account($this->db);
|
||||
// TODO Add test on bank iban
|
||||
$bankaccount->fetch($this->fk_account);
|
||||
$s .= $bankaccount->iban."\n";
|
||||
} else {
|
||||
|
||||
@ -961,27 +961,6 @@ abstract class CommonObject
|
||||
}
|
||||
$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) {
|
||||
|
||||
@ -27,6 +27,12 @@
|
||||
*/
|
||||
trait CommonSocialNetworks
|
||||
{
|
||||
/**
|
||||
* @var array array of socialnetworks
|
||||
*/
|
||||
public $socialnetworks;
|
||||
|
||||
|
||||
/**
|
||||
* Show social network part if the module is enabled with hiding functionality
|
||||
*
|
||||
|
||||
@ -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"
|
||||
* @return string Forged criteria. Example: "t.field like 'abc%'"
|
||||
@ -7816,17 +7816,30 @@ class Form
|
||||
}
|
||||
$tmp = explode(':', $matches[1]);
|
||||
if (count($tmp) < 3) {
|
||||
return '';
|
||||
return '1=2'; // An always false request
|
||||
}
|
||||
|
||||
$tmpescaped = $tmp[2];
|
||||
$regbis = array();
|
||||
|
||||
if (preg_match('/^\'(.*)\'$/', $tmpescaped, $regbis)) {
|
||||
$tmpescaped = "'".$db->escape($regbis[1])."'";
|
||||
} else {
|
||||
$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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -39,6 +39,9 @@ class FormProjets
|
||||
*/
|
||||
public $error = '';
|
||||
|
||||
public $errors = array();
|
||||
|
||||
|
||||
public $nboftasks;
|
||||
|
||||
|
||||
@ -622,6 +625,8 @@ class FormProjets
|
||||
if ($resql) {
|
||||
$num = $this->db->num_rows($resql);
|
||||
$i = 0;
|
||||
$sellist = '';
|
||||
|
||||
if ($num > 0) {
|
||||
$sellist = '<select class="flat elementselect css'.$table_element.($morecss ? ' '.$morecss : '').'" name="elementselect">';
|
||||
$sellist .= '<option value="-1"'.($placeholder ? ' class="optiongrey"' : '').'>'.$placeholder.'</option>';
|
||||
|
||||
@ -1291,7 +1291,6 @@ class Ldap
|
||||
$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->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->mail = $this->convToOutputCharset($result[0][$this->attr_mail][0], $this->ldapcharset);
|
||||
$this->mobile = $this->convToOutputCharset($result[0][$this->attr_mobile][0], $this->ldapcharset);
|
||||
|
||||
@ -1433,13 +1433,17 @@ function dol_string_nounprintableascii($str, $removetabcrlf = 1)
|
||||
/**
|
||||
* Returns text escaped for inclusion into javascript code
|
||||
*
|
||||
* @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 $noescapebackslashn 0=Escape also \n. 1=Do not escape \n.
|
||||
* @return string Escaped string. Both ' and " are escaped into ' if they are escaped.
|
||||
* @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 $noescapebackslashn 0=Escape also \n. 1=Do not escape \n.
|
||||
* @return string Escaped string. Both ' and " are escaped into ' if they are escaped.
|
||||
*/
|
||||
function dol_escape_js($stringtoescape, $mode = 0, $noescapebackslashn = 0)
|
||||
{
|
||||
if (is_null($stringtoescape)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
// escape quotes and backslashes, newlines, etc.
|
||||
$substitjs = array("'"=>"\\'", "\r"=>'\\r');
|
||||
//$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,
|
||||
'socpeopleassigned' => $contactaction->socpeopleassigned,
|
||||
'lastname'=>$obj->lastname,
|
||||
'firstname'=>$obj->firstname,
|
||||
'lastname' => (empty($obj->lastname) ? '' : $obj->lastname),
|
||||
'firstname' => (empty($obj->firstname) ? '' : $obj->firstname),
|
||||
'fk_element'=>$obj->fk_element,
|
||||
'elementtype'=>$obj->elementtype,
|
||||
// Type of event
|
||||
|
||||
@ -344,7 +344,9 @@ function restrictedArea(User $user, $features, $object = 0, $tableandshare = '',
|
||||
} else {
|
||||
$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");
|
||||
//print "user_id=".$user->id.", features=".$features.", feature2=".$feature2.", objectid=".$objectid;
|
||||
|
||||
@ -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_ZIP__', $mysoc->zip, $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_LASTNAME__', $don->lastname, $form);
|
||||
$form = str_replace('__DONATOR_SOCIETE__', $don->societe, $form);
|
||||
|
||||
@ -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)
|
||||
$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
|
||||
$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][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)
|
||||
@ -260,19 +268,11 @@ class modHRM extends DolibarrModules
|
||||
|
||||
// Write employee
|
||||
$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][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)
|
||||
$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++;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -32,7 +32,6 @@ include_once DOL_DOCUMENT_ROOT.'/core/modules/DolibarrModules.class.php';
|
||||
*/
|
||||
class modImport extends DolibarrModules
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor. Define names, constants, directories, boxes, permissions
|
||||
*
|
||||
|
||||
@ -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"),
|
||||
'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"),
|
||||
'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(
|
||||
array('code'=>$langs->trans("EnterAnyCode"), 'use_default'=>$langs->trans("Enter0or1")),
|
||||
array('code'=>$langs->trans("EnterAnyCode"), 'use_default'=>$langs->trans("Enter0or1")),
|
||||
|
||||
@ -32,7 +32,6 @@ include_once DOL_DOCUMENT_ROOT.'/core/modules/DolibarrModules.class.php';
|
||||
*/
|
||||
class modUser extends DolibarrModules
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor. Define names, constants, directories, boxes, permissions
|
||||
*
|
||||
|
||||
@ -133,9 +133,15 @@ $(document).ready(function () {
|
||||
</script>
|
||||
<?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">
|
||||
|
||||
|
||||
<form id="login" name="login" method="post" action="<?php echo $php_self; ?>">
|
||||
|
||||
<input type="hidden" name="token" value="<?php echo newToken(); ?>" />
|
||||
|
||||
@ -82,11 +82,11 @@ class ActionsDatapolicy
|
||||
/**
|
||||
* Overloading the doActions function : replacing the parent's function with the one below
|
||||
*
|
||||
* @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 string $action Current action (if set). Generally create or edit or null
|
||||
* @param HookManager $hookmanager Hook manager propagated to allow calling another hook
|
||||
* @return int < 0 on error, 0 on success, 1 to replace standard code
|
||||
* @param array $parameters Hook metadatas (context, 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 HookManager $hookmanager Hook manager propagated to allow calling another hook
|
||||
* @return int < 0 on error, 0 on success, 1 to replace standard code
|
||||
*/
|
||||
public function doActions($parameters, &$object, &$action, $hookmanager)
|
||||
{
|
||||
@ -103,7 +103,6 @@ class ActionsDatapolicy
|
||||
// on verifie si l'objet est utilisé
|
||||
if ($object->isObjectUsed(GETPOST('socid'))) {
|
||||
$object->name = $langs->trans('ANONYME');
|
||||
$object->name_bis = '';
|
||||
$object->name_alias = '';
|
||||
$object->address = '';
|
||||
$object->town = '';
|
||||
@ -115,7 +114,7 @@ class ActionsDatapolicy
|
||||
$object->state = '';
|
||||
$object->country = '';
|
||||
$object->state_id = '';
|
||||
$object->skype = '';
|
||||
$object->socialnetworks = '';
|
||||
$object->country_id = '';
|
||||
$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);
|
||||
}
|
||||
}
|
||||
} 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') {
|
||||
$object->fetch(GETPOST('id'));
|
||||
|
||||
@ -358,13 +287,7 @@ class ActionsDatapolicy
|
||||
} );
|
||||
</script>';
|
||||
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) {
|
||||
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>';
|
||||
}
|
||||
// TODO Replace test of hardcoded values
|
||||
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>';
|
||||
} elseif (!empty($object->mail) && empty($object->array_options['options_datapolicy_send']) && $parameters['currentcontext'] == 'membercard') {
|
||||
|
||||
@ -128,7 +128,7 @@ class EmailCollector extends CommonObject
|
||||
public $fields = array(
|
||||
'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),
|
||||
'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'),
|
||||
'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'),
|
||||
@ -145,7 +145,7 @@ class EmailCollector extends CommonObject
|
||||
'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'),
|
||||
'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'),
|
||||
'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,),
|
||||
@ -2932,7 +2932,11 @@ class EmailCollector extends CommonObject
|
||||
// TODO Move mail using PHP-IMAP
|
||||
}
|
||||
} 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 {
|
||||
$errorforemail++;
|
||||
|
||||
@ -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"),
|
||||
'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),
|
||||
'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),
|
||||
'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',),
|
||||
'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'),
|
||||
|
||||
@ -44,20 +44,20 @@ global $dolibarr_main_url_root;
|
||||
$langs->loadLangs(array("eventorganization", "other", "projects", "companies"));
|
||||
|
||||
// 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)
|
||||
$show_files = GETPOST('show_files', 'int'); // Show files area generated by bulk actions ?
|
||||
$confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation
|
||||
$cancel = GETPOST('cancel', 'alpha'); // We click on a Cancel button
|
||||
$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
|
||||
$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print')
|
||||
$mode = GETPOST('mode', 'aZ'); // The output mode ('list', 'kanban', 'hierarchy', 'calendar', ...)
|
||||
|
||||
$id = GETPOST('id', 'int');
|
||||
$projectid = GETPOST('projectid', 'int');
|
||||
$projectref = GETPOST('ref');
|
||||
$projectref = GETPOST('ref', 'alpha');
|
||||
|
||||
// Load variable for pagination
|
||||
$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit;
|
||||
@ -76,7 +76,7 @@ $pagenext = $page + 1;
|
||||
$object = new ConferenceOrBooth($db);
|
||||
$extrafields = new ExtraFields($db);
|
||||
$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
|
||||
$extrafields->fetch_name_optionals_label($object->table_element);
|
||||
@ -140,8 +140,8 @@ $permissiontoadd = $user->rights->eventorganization->write;
|
||||
$permissiontodelete = $user->rights->eventorganization->delete;
|
||||
|
||||
// Security check
|
||||
if (empty($conf->eventorganization->enabled)) {
|
||||
accessforbidden('Module not enabled');
|
||||
if (!isModEnabled('eventorganization')) {
|
||||
accessforbidden('Module eventorganization not enabled');
|
||||
}
|
||||
$socid = 0;
|
||||
if ($user->socid > 0) { // Protection if external user
|
||||
@ -234,7 +234,7 @@ if (empty($reshook)) {
|
||||
$form = new Form($db);
|
||||
$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 = '';
|
||||
$title = $langs->trans('ListOfConferencesOrBooths');
|
||||
$morejs = array();
|
||||
@ -772,13 +772,13 @@ foreach ($object->fields as $key => $val) {
|
||||
$cssforfield .= ($cssforfield ? ' ' : '').'center';
|
||||
} elseif (in_array($val['type'], array('timestamp'))) {
|
||||
$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';
|
||||
}
|
||||
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'])) {
|
||||
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)) {
|
||||
print $object->showInputField($val, $key, (isset($search[$key]) ? $search[$key] : ''), '', '', 'search_', $cssforfield.' maxwidth250', 1);
|
||||
} elseif (preg_match('/^(date|timestamp|datetime)/', $val['type'])) {
|
||||
@ -831,7 +831,7 @@ foreach ($object->fields as $key => $val) {
|
||||
$cssforfield .= ($cssforfield ? ' ' : '').'center';
|
||||
} elseif (in_array($val['type'], array('timestamp'))) {
|
||||
$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 = 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
|
||||
$object->setVarsFromFetchObj($obj);
|
||||
|
||||
// Show here line of result
|
||||
$j = 0;
|
||||
print '<tr data-rowid="'.$object->id.'" class="oddeven">';
|
||||
// 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"' : '').'>';
|
||||
if ($mode == 'kanban') {
|
||||
if ($i == 0) {
|
||||
print '<tr><td colspan="'.$savnbfield.'">';
|
||||
print '<div class="box-flex-container">';
|
||||
}
|
||||
print '</td>';
|
||||
}
|
||||
foreach ($object->fields as $key => $val) {
|
||||
$cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']);
|
||||
if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) {
|
||||
$cssforfield .= ($cssforfield ? ' ' : '').'center';
|
||||
} elseif ($key == 'status') {
|
||||
$cssforfield .= ($cssforfield ? ' ' : '').'center';
|
||||
// Output Kanban
|
||||
print $object->getKanbanView('');
|
||||
if ($i == ($imaxinloop - 1)) {
|
||||
print '</div>';
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
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', '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.'"' : '');
|
||||
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, '');
|
||||
} else {
|
||||
// Show here line of result
|
||||
$j = 0;
|
||||
print '<tr data-rowid="'.$object->id.'" class="oddeven">';
|
||||
// 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']++;
|
||||
}
|
||||
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;
|
||||
foreach ($object->fields as $key => $val) {
|
||||
$cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']);
|
||||
if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) {
|
||||
$cssforfield .= ($cssforfield ? ' ' : '').'center';
|
||||
} elseif ($key == 'status') {
|
||||
$cssforfield .= ($cssforfield ? ' ' : '').'center';
|
||||
}
|
||||
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++;
|
||||
}
|
||||
|
||||
@ -607,7 +607,7 @@ if ($resql) {
|
||||
}
|
||||
|
||||
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>';
|
||||
}
|
||||
|
||||
@ -617,12 +617,12 @@ if ($resql) {
|
||||
print '<td class="liste_titre maxwidthonsmartphone left">';
|
||||
$validator = new UserGroup($db);
|
||||
$excludefilter = $user->admin ? '' : 'u.rowid <> '.$user->id;
|
||||
$valideurobjects = $validator->listUsersForGroup($excludefilter);
|
||||
$valideurobjects = $validator->listUsersForGroup($excludefilter, 1);
|
||||
$valideurarray = array();
|
||||
foreach ($valideurobjects as $val) {
|
||||
$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>';
|
||||
} else {
|
||||
print '<td class="liste_titre"> </td>';
|
||||
@ -642,7 +642,7 @@ if ($resql) {
|
||||
//$labeltoshow .= ($val['delay'] > 0 ? ' ('.$langs->trans("NoticePeriod").': '.$val['delay'].' '.$langs->trans("days").')':'');
|
||||
$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>';
|
||||
}
|
||||
|
||||
@ -118,16 +118,16 @@ if (empty($reshook)) {
|
||||
}
|
||||
|
||||
$arrayfields = array(
|
||||
'cp.ref'=>array('label' => 'Ref', 'checked'=>1),
|
||||
'cp.fk_user'=>array('label' => 'Employee', 'checked'=>1),
|
||||
'cp.fk_type'=>array('label' => 'Type', 'checked'=>1),
|
||||
'cp.date_debut'=>array('label' => 'DateDebCP', 'checked'=>1),
|
||||
'cp.date_fin'=>array('label' => 'DateFinCP', 'checked'=>1),
|
||||
'used_days'=>array('label' => 'NbUseDaysCPShort', 'checked'=>1),
|
||||
'date_start_month'=>array('label' => 'DateStartInMonth', 'checked'=>1),
|
||||
'date_end_month'=>array('label' => 'DateEndInMonth', 'checked'=>1),
|
||||
'used_days_month'=>array('label' => 'NbUseDaysCPShortInMonth', 'checked'=>1),
|
||||
'cp.description'=>array('label' => 'DescCP', 'checked'=>1),
|
||||
'cp.ref'=>array('label' => 'Ref', 'checked'=>1, 'position'=>5),
|
||||
'cp.fk_type'=>array('label' => 'Type', 'checked'=>1, 'position'=>10),
|
||||
'cp.fk_user'=>array('label' => 'Employee', 'checked'=>1, 'position'=>20),
|
||||
'cp.date_debut'=>array('label' => 'DateDebCP', 'checked'=>1, 'position'=>30),
|
||||
'cp.date_fin'=>array('label' => 'DateFinCP', 'checked'=>1, 'position'=>32),
|
||||
'used_days'=>array('label' => 'NbUseDaysCPShort', 'checked'=>1, 'position'=>34),
|
||||
'date_start_month'=>array('label' => 'DateStartInMonth', 'checked'=>1, 'position'=>50),
|
||||
'date_end_month'=>array('label' => 'DateEndInMonth', 'checked'=>1, 'position'=>52),
|
||||
'used_days_month'=>array('label' => 'NbUseDaysCPShortInMonth', 'checked'=>1, 'position'=>54),
|
||||
'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());
|
||||
$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 .= " LEFT JOIN ".MAIN_DB_PREFIX."user u ON cp.fk_user = u.rowid";
|
||||
$sql .= " WHERE cp.rowid > 0";
|
||||
@ -250,13 +250,6 @@ if (!empty($arrayfields['cp.ref']['checked'])) {
|
||||
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
|
||||
if (!empty($arrayfields['cp.fk_type']['checked'])) {
|
||||
$typeleaves = $holidaystatic->getTypes(1, -1);
|
||||
@ -267,7 +260,14 @@ if (!empty($arrayfields['cp.fk_type']['checked'])) {
|
||||
}
|
||||
|
||||
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>';
|
||||
}
|
||||
|
||||
@ -313,12 +313,12 @@ if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
|
||||
if (!empty($arrayfields['cp.ref']['checked'])) {
|
||||
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'])) {
|
||||
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'])) {
|
||||
print_liste_field_titre($arrayfields['ct.label']['label'], $_SERVER["PHP_SELF"], 'ct.label', '', '', '', $sortfield, $sortorder);
|
||||
}
|
||||
@ -398,6 +398,15 @@ if ($num == 0) {
|
||||
// Leave request
|
||||
$holidaystatic->id = $obj->rowid;
|
||||
$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">';
|
||||
// Action column
|
||||
@ -408,12 +417,12 @@ if ($num == 0) {
|
||||
if (!empty($arrayfields['cp.ref']['checked'])) {
|
||||
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'])) {
|
||||
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'])) {
|
||||
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>';
|
||||
}
|
||||
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
|
||||
if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
|
||||
|
||||
@ -333,9 +333,8 @@ if (!empty($arrayfields['cpl.date_action']['checked'])) {
|
||||
if (!empty($arrayfields['cpl.fk_user_action']['checked'])) {
|
||||
$validator = new UserGroup($db);
|
||||
$excludefilter = $user->admin ? '' : 'u.rowid <> '.$user->id;
|
||||
$valideurobjects = $validator->listUsersForGroup($excludefilter);
|
||||
$valideurobjects = $validator->listUsersForGroup($excludefilter, 1);
|
||||
$valideurarray = array();
|
||||
|
||||
foreach ($valideurobjects as $val) {
|
||||
$valideurarray[$val->id] = $val->id;
|
||||
}
|
||||
|
||||
@ -13,10 +13,23 @@ require_once __DIR__ . '/composer/autoload_real.php';
|
||||
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) {
|
||||
// Enable this to detect what we need for require_once
|
||||
//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);
|
||||
if (1 === $preg_match) {
|
||||
$class_name = preg_replace('/\\\/', '/', $class_name);
|
||||
|
||||
@ -27,6 +27,7 @@
|
||||
* \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';
|
||||
|
||||
global $langs;
|
||||
|
||||
@ -180,33 +180,27 @@ if (!empty($dolibarr_main_document_root_alt)) {
|
||||
}
|
||||
|
||||
|
||||
// Security check (old method, when directory is renamed /install.lock)
|
||||
if (preg_match('/install\.lock/i', $_SERVER["SCRIPT_FILENAME"])) {
|
||||
if (!is_object($langs)) {
|
||||
$langs = new Translate('..', $conf);
|
||||
$langs->setDefaultLang('auto');
|
||||
}
|
||||
$langs->load("install");
|
||||
// Check install.lock (for both install and upgrade)
|
||||
|
||||
header("X-Content-Type-Options: nosniff");
|
||||
header("X-Frame-Options: SAMEORIGIN"); // Frames allowed only if on same domain (stop some XSS attacks)
|
||||
|
||||
print $langs->trans("YouTryInstallDisabledByDirLock");
|
||||
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';
|
||||
$lockfile = DOL_DATA_ROOT.'/install.lock'; // To lock all /install pages
|
||||
$lockfile2 = DOL_DOCUMENT_ROOT.'/install.lock'; // To lock all /install pages (recommended)
|
||||
$upgradeunlockfile = DOL_DATA_ROOT.'/upgrade.unlock'; // To unlock upgrade process
|
||||
$upgradeunlockfile2 = DOL_DOCUMENT_ROOT.'/upgrade.unlock'; // To unlock upgrade process
|
||||
if (constant('DOL_DATA_ROOT') === null) {
|
||||
// We don't have a configuration file yet
|
||||
// Try to detect any lockfile in the default documents path
|
||||
$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)) {
|
||||
$langs = new Translate('..', $conf);
|
||||
$langs->setDefaultLang('auto');
|
||||
@ -216,14 +210,22 @@ if (@file_exists($lockfile)) {
|
||||
header("X-Content-Type-Options: nosniff");
|
||||
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)) {
|
||||
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 $langs->trans("ClickHereToGoToApp");
|
||||
print '</a>';
|
||||
} 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;
|
||||
}
|
||||
|
||||
@ -23,6 +23,8 @@
|
||||
* \brief Show page to select language. This is done only for a first installation.
|
||||
* For a reinstall this page redirect to page check.php
|
||||
*/
|
||||
|
||||
define('ALLOWED_IF_UPGRADE_UNLOCK_FOUND', 1);
|
||||
include_once 'inc.php';
|
||||
include_once '../core/class/html.form.class.php';
|
||||
include_once '../core/class/html.formadmin.class.php';
|
||||
|
||||
@ -37,6 +37,7 @@
|
||||
-- VMYSQL4.3 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
|
||||
@ -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_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;
|
||||
|
||||
|
||||
|
||||
@ -576,3 +576,81 @@ DELETE FROM llx_rights_def WHERE module = 'hrm' AND perms = 'employee';
|
||||
-- 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;
|
||||
-- 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);
|
||||
|
||||
|
||||
|
||||
@ -47,6 +47,9 @@ create table llx_bank_account
|
||||
fk_pays integer NOT NULL,
|
||||
proprio varchar(60),
|
||||
owner_address varchar(255),
|
||||
owner_zip varchar(25),
|
||||
owner_town varchar(50),
|
||||
owner_country_id integer DEFAULT NULL,
|
||||
courant smallint DEFAULT 0 NOT NULL,
|
||||
clos smallint DEFAULT 0 NOT NULL,
|
||||
rappro smallint DEFAULT 1,
|
||||
|
||||
@ -24,8 +24,18 @@
|
||||
* \file htdocs/install/step5.php
|
||||
* \ingroup install
|
||||
* \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';
|
||||
if (file_exists($conffile)) {
|
||||
include_once $conffile;
|
||||
@ -384,7 +394,7 @@ if ($action == "set") {
|
||||
if (empty($force_install_lockinstall) || $force_install_lockinstall == 1) {
|
||||
$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);
|
||||
@chmod($lockfile, octdec($force_install_lockinstall));
|
||||
$createlock = 1;
|
||||
@ -416,8 +426,9 @@ if ($action == "set") {
|
||||
} elseif (empty($action) || preg_match('/upgrade/i', $action)) {
|
||||
// If upgrade
|
||||
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)
|
||||
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>";
|
||||
// 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">';
|
||||
print ' <span class="valignmiddle">'.$langs->trans("SystemIsUpgraded")."</span><br>";
|
||||
|
||||
// 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
|
||||
@ -430,7 +441,7 @@ if ($action == "set") {
|
||||
if (empty($force_install_lockinstall) || $force_install_lockinstall == 1) {
|
||||
$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);
|
||||
@chmod($lockfile, octdec($force_install_lockinstall));
|
||||
$createlock = 1;
|
||||
|
||||
@ -36,6 +36,7 @@
|
||||
* \brief Run migration script
|
||||
*/
|
||||
|
||||
define('ALLOWED_IF_UPGRADE_UNLOCK_FOUND', 1);
|
||||
include_once 'inc.php';
|
||||
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").';
|
||||
|
||||
@ -38,6 +38,7 @@
|
||||
* \brief Upgrade some data
|
||||
*/
|
||||
|
||||
define('ALLOWED_IF_UPGRADE_UNLOCK_FOUND', 1);
|
||||
include_once 'inc.php';
|
||||
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").';
|
||||
|
||||
3
htdocs/langs/ar_IQ/companies.lang
Normal file
3
htdocs/langs/ar_IQ/companies.lang
Normal 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
|
||||
@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=حدد نوع إرجاع السطر
|
||||
ACCOUNTING_EXPORT_PREFIX_SPEC=تحديد بادئة لاسم الملف
|
||||
ThisService=هذه الخدمة
|
||||
ThisProduct=هذا المنتج
|
||||
DefaultForService=افتراضي للخدمة
|
||||
DefaultForProduct=افتراضي للمنتج
|
||||
DefaultForService=Default for services
|
||||
DefaultForProduct=Default for products
|
||||
ProductForThisThirdparty=منتج لهذا الطرف الثالث
|
||||
ServiceForThisThirdparty=خدمة لهذا الطرف الثالث
|
||||
CantSuggest=لا أستطيع أن أقترح
|
||||
@ -101,7 +101,8 @@ ShowAccountingAccount=عرض حساب المحاسبة
|
||||
ShowAccountingJournal=عرض دفتر يومية
|
||||
ShowAccountingAccountInLedger=عرض حساب المحاسبة في دفتر الأستاذ
|
||||
ShowAccountingAccountInJournals=عرض حساب المحاسبة في دفاتر اليومية
|
||||
AccountAccountingSuggest=حساب المحاسبة المقترح
|
||||
DataUsedToSuggestAccount=Data used to suggest account
|
||||
AccountAccountingSuggest=Account suggested
|
||||
MenuDefaultAccounts=الحسابات الافتراضية
|
||||
MenuBankAccounts=الحسابات المصرفية
|
||||
MenuVatAccounts=حسابات ضريبة القيمة المضافة
|
||||
@ -126,6 +127,7 @@ WriteBookKeeping=تسجيل المعاملات في المحاسبة
|
||||
Bookkeeping=دفتر حسابات
|
||||
BookkeepingSubAccount=حساب استاذ فرعي
|
||||
AccountBalance=رصيد الحساب
|
||||
AccountBalanceSubAccount=Sub-accounts balance
|
||||
ObjectsRef=مرجع الكائن المصدر
|
||||
CAHTF=Total purchase vendor before tax
|
||||
TotalExpenseReport=تقرير المصاريف الإجمالية
|
||||
@ -189,6 +191,7 @@ ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be us
|
||||
UseAuxiliaryAccountOnCustomerDeposit=تخزين حساب العميل كحساب فردي في دفتر الأستاذ الفرعي لخطوط الدفعات المقدمة (إذا تم تعطيله ، فسيظل الحساب الفردي لبنود الدَفعة المقدمة فارغًا)
|
||||
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)
|
||||
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_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=رقم القطعة
|
||||
TransactionNumShort=رقم. العملية
|
||||
AccountingCategory=Custom group of accounts
|
||||
AccountingCategories=Custom groups of accounts
|
||||
GroupByAccountAccounting=تجميع حسب حساب دفتر الأستاذ العام
|
||||
GroupBySubAccountAccounting=تجميع حسب حساب دفتر الأستاذ الفرعي
|
||||
AccountingAccountGroupsDesc=يمكنك هنا تحديد بعض مجموعات الحساب. سيتم استخدامها لتقارير المحاسبة الشخصية.
|
||||
@ -265,6 +269,7 @@ ShowSubtotalByGroup=عرض المجموع الفرعي حسب المستوى
|
||||
|
||||
Pcgtype=مجموعة الحساب
|
||||
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=قابل للتسوية
|
||||
|
||||
@ -294,6 +299,7 @@ DescValidateMovements=سيتم حظر أي تعديل أو حذف للكتابة
|
||||
|
||||
ValidateHistory=ربط تلقائي
|
||||
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
|
||||
MvtNotCorrectlyBalanced=الحركة غير متوازنة بشكل صحيح. الخصم = %s والائتمان = %s
|
||||
@ -337,11 +343,13 @@ ACCOUNTING_DISABLE_BINDING_ON_SALES=تعطيل الربط والتحويل في
|
||||
ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=تعطيل الربط والتحويل في المحاسبة على المشتريات (لن يتم أخذ فواتير البائعين في الاعتبار في المحاسبة)
|
||||
ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=تعطيل الربط والتحويل في المحاسبة على تقارير المصروفات (لن يتم أخذ تقارير المصروفات في الاعتبار في المحاسبة)
|
||||
ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting
|
||||
ACCOUNTING_ENABLE_AUTOLETTERING=Enable the automatic lettering when transferring to accounting
|
||||
|
||||
## Export
|
||||
NotExportLettering=Do not export the lettering when generating the file
|
||||
NotifiedExportDate=ضع علامة على الخطوط المصدرة كـ <span class="warning"> (لتعديل سطر ، ستحتاج إلى حذف المعاملة بالكامل وإعادة تحويلها إلى المحاسبة) </span>
|
||||
NotifiedValidationDate=تحقق من صحة الإدخالات التي تم تصديرها وقفلها <span class="warning"> (نفس التأثير من ميزة "%s" ، ولن يكون تعديل الأسطر وحذفها بالتأكيد ممكنًا) </span>
|
||||
NotifiedExportFull=Export documents ?
|
||||
DateValidationAndLock=التحقق من صحة التاريخ والقفل
|
||||
ConfirmExportFile=تأكيد إنشاء ملف محاسبي تصدير؟
|
||||
ExportDraftJournal=تصدير مسودة دفتر اليومية
|
||||
@ -398,7 +406,7 @@ SaleLocal=بيع محلي
|
||||
SaleExport=بيع تصدير
|
||||
SaleEEC=بيع في الاتحاد الاوروبي
|
||||
SaleEECWithVAT=البيع في EEC مع ضريبة القيمة المضافة ليست فارغة ، لذلك نفترض أن هذا ليس بيعًا داخل الاتحاد والحساب المقترح هو حساب المنتج القياسي.
|
||||
SaleEECWithoutVATNumber=Sale in EEC with no VAT but the VAT ID of thirdparty is not defined. We fallback on the product account for standard sales. You can fix the VAT ID of thirdparty or the product account if needed.
|
||||
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=ممنوع: تم التحقق من صحة المعاملة و / أو تصديرها.
|
||||
ForbiddenTransactionAlreadyValidated=ممنوع: تم التحقق من صحة المعاملة.
|
||||
## Dictionary
|
||||
@ -442,6 +450,7 @@ AccountancyErrorMismatchLetterCode=عدم تطابق في التوفيق بين
|
||||
AccountancyErrorMismatchBalanceAmount=الرصيد (%s) لا يساوي 0
|
||||
AccountancyErrorLetteringBookkeeping=حدثت أخطاء بخصوص المعاملات: %s
|
||||
ErrorAccountNumberAlreadyExists=رقم المحاسبة %s موجود بالفعل
|
||||
ErrorArchiveAddFile=Can't put "%s" file in archive
|
||||
|
||||
## Import
|
||||
ImportAccountingEntries=مداخيل حسابية
|
||||
@ -468,5 +477,7 @@ FECFormatMulticurrencyCode=كود متعدد العملات (ايديفيز)
|
||||
DateExport=تاريخ التصدير
|
||||
WarningReportNotReliable=تحذير ، هذا التقرير لا يستند إلى دفتر الأستاذ ، لذلك لا يحتوي على معاملة تم تعديلها يدويًا في دفتر الأستاذ. إذا كان تسجيل دفتر اليومية الخاص بك محدثًا ، فسيكون عرض مسك الدفاتر أكثر دقة.
|
||||
ExpenseReportJournal=تقرير دفتر المصاريف
|
||||
DocsAlreadyExportedAreExcluded=Docs already exported are excluded
|
||||
ClickToHideAlreadyExportedLines=Click to hide already exported lines
|
||||
|
||||
NAccounts=%s حساباً
|
||||
|
||||
@ -226,6 +226,7 @@ NoUserGroupDefined=لم يتم تحديد مجموعة مستخدمين
|
||||
Password=كلمة المرور
|
||||
PasswordRetype=Repeat your password
|
||||
NoteSomeFeaturesAreDisabled=لاحظ أنه تم تعطيل الكثير من الميزات | الوحدات في هذا العرض التوضيحي.
|
||||
YourUserFile=Your user file
|
||||
Name=اسم
|
||||
NameSlashCompany=الاسم | الشركة
|
||||
Person=شخص
|
||||
@ -897,6 +898,9 @@ MassFilesArea=مساحة للملفات التي تم إنشاؤها بواسط
|
||||
ShowTempMassFilesArea=عرض مساحة الملفات التي تم إنشاؤها بواسطة الإجراءات الجماعية
|
||||
ConfirmMassDeletion=تأكيد الحذف الضخم
|
||||
ConfirmMassDeletionQuestion=هل أنت متأكد من أنك تريد حذف %s السجل (السجلات) المحددة؟
|
||||
ConfirmMassClone=Bulk clone confirmation
|
||||
ConfirmMassCloneQuestion=Select project to clone to
|
||||
ConfirmMassCloneToOneProject=Clone to project %s
|
||||
RelatedObjects=كائنات ذات صلة
|
||||
ClassifyBilled=تصنيف الفواتير
|
||||
ClassifyUnbilled=تصنيف غير مفوتر
|
||||
@ -912,8 +916,8 @@ ExportFilteredList=تصدير قائمة التى تم تصفيتها
|
||||
ExportList=قائمة التصدير
|
||||
ExportOptions=خيارات التصدير
|
||||
IncludeDocsAlreadyExported=تضمين المستندات التي تم تصديرها
|
||||
ExportOfPiecesAlreadyExportedIsEnable=Export of pieces already exported is enable
|
||||
ExportOfPiecesAlreadyExportedIsDisable=Export of pieces already exported is disable
|
||||
ExportOfPiecesAlreadyExportedIsEnable=Documents already exported are visible and will be exported
|
||||
ExportOfPiecesAlreadyExportedIsDisable=Documents already exported are hidden and won't be exported
|
||||
AllExportedMovementsWereRecordedAsExported=تم تسجيل جميع حركات التصدير على أنها مصدرة
|
||||
NotAllExportedMovementsCouldBeRecordedAsExported=لا يمكن تسجيل جميع حركات التصدير على أنها مصدرة
|
||||
Miscellaneous=متفرقات
|
||||
@ -1128,6 +1132,7 @@ DeleteFileText=هل تريد حقا حذف هذا الملف؟
|
||||
ShowOtherLanguages=عرض اللغات الأخرى
|
||||
SwitchInEditModeToAddTranslation=قم بالتبديل في وضع التحرير لإضافة ترجمات لهذه اللغة
|
||||
NotUsedForThisCustomer=غير مستخدم لهذا العميل
|
||||
NotUsedForThisVendor=Not used for this vendor
|
||||
AmountMustBePositive=المبلغ يجب أن يكون موجبًا
|
||||
ByStatus=حسب الحالة
|
||||
InformationMessage=معلومات
|
||||
@ -1148,14 +1153,14 @@ EventReminder=تذكير بالحدث
|
||||
UpdateForAllLines=تحديث لجميع البنود
|
||||
OnHold=في الانتظار
|
||||
Civility=Civility
|
||||
AffectTag=Assign Tag
|
||||
AffectUser=Assign User
|
||||
SetSupervisor=Set Supervisor
|
||||
AffectTag=Assign a Tag
|
||||
AffectUser=Assign a User
|
||||
SetSupervisor=Set the supervisor
|
||||
CreateExternalUser=إنشاء مستخدم خارجي
|
||||
ConfirmAffectTag=Bulk Tag Assignement
|
||||
ConfirmAffectUser=Bulk User Assignement
|
||||
ProjectRole=Role assigned on each project
|
||||
TasksRole=Role assigned on each task of each project
|
||||
ProjectRole=Role assigned on each project/opportunity
|
||||
TasksRole=Role assigned on each task (if used)
|
||||
ConfirmSetSupervisor=Bulk Supervisor Set
|
||||
ConfirmUpdatePrice=Choose a increase/decrease price rate
|
||||
ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)?
|
||||
@ -1210,3 +1215,10 @@ CreatedByPublicPortal=تم إنشاؤه من بوابة عامة
|
||||
UserAgent=User Agent
|
||||
InternalUser=مستخدم داخلي
|
||||
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
|
||||
|
||||
@ -41,7 +41,8 @@ STRIPE_LIVE_WEBHOOK_KEY=المفتاح المباشر للخطاف التلقا
|
||||
ONLINE_PAYMENT_WAREHOUSE=المخزون الذي سيتم استخدامه لتقليل المخزون عند إتمام الدفع عبر الإنترنت <br> (TODO عندما يتم تنفيذ خيار تقليل المخزون على إجراء على الفاتورة ويقوم الدفع عبر الإنترنت بإنشاء الفاتورة بنفسه؟)
|
||||
StripeLiveEnabled=تم تمكين Stripe Live (بخلاف ذلك وضع الاختبار / وضع الحماية)
|
||||
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=بوابات شريطية
|
||||
OAUTH_STRIPE_TEST_ID=معرف عميل Stripe Connect (ca _...)
|
||||
OAUTH_STRIPE_LIVE_ID=معرف عميل Stripe Connect (ca _...)
|
||||
@ -70,5 +71,8 @@ ToOfferALinkForLiveWebhook=رابط لإعداد Stripe WebHook لاستدعاء
|
||||
PaymentWillBeRecordedForNextPeriod=سيتم تسجيل الدفع للفترة القادمة.
|
||||
ClickHereToTryAgain= <a href="%s"> انقر هنا للمحاولة مرة أخرى ... </a>
|
||||
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
|
||||
STRIPE_SEPA_DIRECT_DEBIT=Enable the Direct Debit payments through Stripe
|
||||
|
||||
|
||||
@ -26,6 +26,7 @@ Permission56002=تعديل التذاكر
|
||||
Permission56003=حذف التذاكر
|
||||
Permission56004=إدارة التذاكر
|
||||
Permission56005=عرض جميع تذاكر الأطراف الثالثة (غير فعالة للمستخدمين الخارجيين ، دائماً محدودين بالطرف الثالث المعتمدين عليه)
|
||||
Permission56006=Export tickets
|
||||
|
||||
Tickets=التذاكر
|
||||
TicketDictType=انواع - التذاكر
|
||||
@ -61,6 +62,8 @@ TypeContact_ticket_external_CONTRIBUTOR=مساهم خارجي
|
||||
OriginEmail=البريد الإلكتروني للمبلغ
|
||||
Notify_TICKET_SENTBYMAIL=إرسال إشعار التذكرة بالبريد الإلكتروني
|
||||
|
||||
ExportDataset_ticket_1=التذاكر
|
||||
|
||||
# Status
|
||||
Read=قراءة
|
||||
Assigned=مسند
|
||||
|
||||
@ -66,7 +66,8 @@ LinkedToDolibarrUser=ارتباط بالمستخدم
|
||||
LinkedToDolibarrThirdParty=رابط لطرف ثالث
|
||||
CreateDolibarrLogin=انشاء مستخدم
|
||||
CreateDolibarrThirdParty=إيجاد طرف ثالث
|
||||
LoginAccountDisableInDolibarr=في حساب المعاقين Dolibarr.
|
||||
LoginAccountDisableInDolibarr=Account disabled in Dolibarr
|
||||
PASSWORDInDolibarr=Password modified in Dolibarr
|
||||
UsePersonalValue=استخدام الشخصي قيمة
|
||||
ExportDataset_user_1=المستخدمون وخصائصهم
|
||||
DomainUser=النطاق المستخدم ق ٪
|
||||
@ -129,3 +130,6 @@ IPLastLogin=آخر تسجيل دخول إلى IP
|
||||
IPPreviousLogin=تسجيل الدخول السابق إلى IP
|
||||
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
|
||||
|
||||
@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=Изберете типа пренасяне на но
|
||||
ACCOUNTING_EXPORT_PREFIX_SPEC=Посочете префикса в името на файла
|
||||
ThisService=Тази услуга
|
||||
ThisProduct=Този продукт
|
||||
DefaultForService=По подразбиране за услуга
|
||||
DefaultForProduct=По подразбиране за продукт
|
||||
DefaultForService=Default for services
|
||||
DefaultForProduct=Default for products
|
||||
ProductForThisThirdparty=Product for this thirdparty
|
||||
ServiceForThisThirdparty=Service for this thirdparty
|
||||
CantSuggest=Не може да се предложи
|
||||
@ -101,7 +101,8 @@ ShowAccountingAccount=Показване на счетоводна сметка
|
||||
ShowAccountingJournal=Показване на счетоводен журнал
|
||||
ShowAccountingAccountInLedger=Show accounting account in ledger
|
||||
ShowAccountingAccountInJournals=Show accounting account in journals
|
||||
AccountAccountingSuggest=Предложена счетоводна сметка
|
||||
DataUsedToSuggestAccount=Data used to suggest account
|
||||
AccountAccountingSuggest=Account suggested
|
||||
MenuDefaultAccounts=Сметки по подразбиране
|
||||
MenuBankAccounts=Банкови сметки
|
||||
MenuVatAccounts=Сметки за ДДС
|
||||
@ -126,6 +127,7 @@ WriteBookKeeping=Record transactions in accounting
|
||||
Bookkeeping=Главна счетоводна книга
|
||||
BookkeepingSubAccount=Subledger
|
||||
AccountBalance=Салдо по сметка
|
||||
AccountBalanceSubAccount=Sub-accounts balance
|
||||
ObjectsRef=Обект №
|
||||
CAHTF=Обща покупка от доставчик преди ДДС
|
||||
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)
|
||||
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)
|
||||
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_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=Пореден номер
|
||||
TransactionNumShort=Транзакция №
|
||||
AccountingCategory=Custom group of accounts
|
||||
AccountingCategories=Custom groups of accounts
|
||||
GroupByAccountAccounting=Group by general ledger account
|
||||
GroupBySubAccountAccounting=Group by subledger account
|
||||
AccountingAccountGroupsDesc=Тук може да определите някои групи счетоводни сметки. Те ще бъдат използвани за персонализирани счетоводни отчети.
|
||||
@ -265,6 +269,7 @@ ShowSubtotalByGroup=Show subtotal by level
|
||||
|
||||
Pcgtype=Група от сметки
|
||||
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=Съвместим
|
||||
|
||||
@ -294,6 +299,7 @@ DescValidateMovements=Всякакви промени или изтриване
|
||||
|
||||
ValidateHistory=Автоматично свързване
|
||||
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
|
||||
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_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_AUTOLETTERING=Enable the automatic lettering when transferring to accounting
|
||||
|
||||
## Export
|
||||
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>
|
||||
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
|
||||
ConfirmExportFile=Confirmation of the generation of the accounting export file ?
|
||||
ExportDraftJournal=Експортиране на журнал в чернова
|
||||
@ -398,7 +406,7 @@ SaleLocal=Локална продажба
|
||||
SaleExport=Експортна продажба
|
||||
SaleEEC=Вътреобщностна продажба
|
||||
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.
|
||||
ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated.
|
||||
## Dictionary
|
||||
@ -442,6 +450,7 @@ AccountancyErrorMismatchLetterCode=Mismatch in reconcile code
|
||||
AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0
|
||||
AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s
|
||||
ErrorAccountNumberAlreadyExists=The accounting number %s already exists
|
||||
ErrorArchiveAddFile=Can't put "%s" file in archive
|
||||
|
||||
## Import
|
||||
ImportAccountingEntries=Счетоводни записи
|
||||
@ -468,5 +477,7 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise)
|
||||
DateExport=Дата на експортиране
|
||||
WarningReportNotReliable=Внимание, тази справка не се основава на главната счетоводна книга, така че не съдържа транзакция, ръчно променена в книгата. Ако осчетоводяването ви е актуално, то прегледът на счетоводството е по-точен.
|
||||
ExpenseReportJournal=Журнал за разходни отчети
|
||||
DocsAlreadyExportedAreExcluded=Docs already exported are excluded
|
||||
ClickToHideAlreadyExportedLines=Click to hide already exported lines
|
||||
|
||||
NAccounts=%s accounts
|
||||
|
||||
@ -226,6 +226,7 @@ NoUserGroupDefined=Няма дефинирана потребителска гр
|
||||
Password=Парола
|
||||
PasswordRetype=Repeat your password
|
||||
NoteSomeFeaturesAreDisabled=Имайте предвид, че много функции / модули са деактивирани в тази демонстрация.
|
||||
YourUserFile=Your user file
|
||||
Name=Име
|
||||
NameSlashCompany=Име / Фирма
|
||||
Person=Лице
|
||||
@ -897,6 +898,9 @@ MassFilesArea=Секция с файлове, създадени от масов
|
||||
ShowTempMassFilesArea=Показване на секцията с файлове, създадени от масови действия
|
||||
ConfirmMassDeletion=Потвърждение за масово изтриване
|
||||
ConfirmMassDeletionQuestion=Сигурни ли сте, че искате да изтриете избраните %s записа?
|
||||
ConfirmMassClone=Bulk clone confirmation
|
||||
ConfirmMassCloneQuestion=Select project to clone to
|
||||
ConfirmMassCloneToOneProject=Clone to project %s
|
||||
RelatedObjects=Свързани обекти
|
||||
ClassifyBilled=Класифициране като фактурирано
|
||||
ClassifyUnbilled=Класифициране като нетаксувано
|
||||
@ -912,8 +916,8 @@ ExportFilteredList=Експортиране на филтрирания спис
|
||||
ExportList=Списък за експортиране
|
||||
ExportOptions=Настройки за експортиране
|
||||
IncludeDocsAlreadyExported=Включените документи са вече експортирани
|
||||
ExportOfPiecesAlreadyExportedIsEnable=Експортът на вече експортирани части е разрешен
|
||||
ExportOfPiecesAlreadyExportedIsDisable=Експортът на вече експортирани части е забранен
|
||||
ExportOfPiecesAlreadyExportedIsEnable=Documents already exported are visible and will be exported
|
||||
ExportOfPiecesAlreadyExportedIsDisable=Documents already exported are hidden and won't be exported
|
||||
AllExportedMovementsWereRecordedAsExported=Всички експортирани движения бяха записани като експортирани
|
||||
NotAllExportedMovementsCouldBeRecordedAsExported=Не всички експортирани движения могат да бъдат записани като експортирани
|
||||
Miscellaneous=Разни
|
||||
@ -1128,6 +1132,7 @@ DeleteFileText=Сигурни ли сте, че искате да изтриет
|
||||
ShowOtherLanguages=Показване на други езици
|
||||
SwitchInEditModeToAddTranslation=Превключете в режим на редактиране, за да добавите преводи за този език.
|
||||
NotUsedForThisCustomer=Не се използва за този клиент
|
||||
NotUsedForThisVendor=Not used for this vendor
|
||||
AmountMustBePositive=Amount must be positive
|
||||
ByStatus=By status
|
||||
InformationMessage=Информация
|
||||
@ -1148,14 +1153,14 @@ EventReminder=Event Reminder
|
||||
UpdateForAllLines=Update for all lines
|
||||
OnHold=На изчакване
|
||||
Civility=Civility
|
||||
AffectTag=Assign Tag
|
||||
AffectUser=Assign User
|
||||
SetSupervisor=Set Supervisor
|
||||
AffectTag=Assign a Tag
|
||||
AffectUser=Assign a User
|
||||
SetSupervisor=Set the supervisor
|
||||
CreateExternalUser=Create external user
|
||||
ConfirmAffectTag=Bulk Tag Assignement
|
||||
ConfirmAffectUser=Bulk User Assignement
|
||||
ProjectRole=Role assigned on each project
|
||||
TasksRole=Role assigned on each task of each project
|
||||
ProjectRole=Role assigned on each project/opportunity
|
||||
TasksRole=Role assigned on each task (if used)
|
||||
ConfirmSetSupervisor=Bulk Supervisor Set
|
||||
ConfirmUpdatePrice=Choose a increase/decrease price rate
|
||||
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
|
||||
InternalUser=Вътрешен потребител
|
||||
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
|
||||
|
||||
@ -41,7 +41,8 @@ STRIPE_LIVE_WEBHOOK_KEY=Работен Webhook ключ
|
||||
ONLINE_PAYMENT_WAREHOUSE=Склад, който да се използва за намаляване на наличности, когато се извършва онлайн плащане<br>(Да се направи, когато възможността за намаляване на наличности се извършва при действие върху фактура и онлайн плащането генерира фактурата?)
|
||||
StripeLiveEnabled=Активиран е работен режим на 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 шлюзове
|
||||
OAUTH_STRIPE_TEST_ID=Тестов Stripe Connect Client ID (ca_...)
|
||||
OAUTH_STRIPE_LIVE_ID=Реален Stripe Connect Client ID (ca_...)
|
||||
@ -61,6 +62,7 @@ DeleteACard=Изтриване на карта
|
||||
ConfirmDeleteCard=Сигурни ли сте, че искате да изтриете тази кредитна или дебитна карта?
|
||||
CreateCustomerOnStripe=Създаване на клиент в Stripe
|
||||
CreateCardOnStripe=Създаване на карта в Stripe
|
||||
CreateBANOnStripe=Create bank on Stripe
|
||||
ShowInStripe=Показване в Stripe
|
||||
StripeUserAccountForActions=Потребителски акаунт, който да се използва за известяване по имейл при някои Stripe събития (Stripe изплащания)
|
||||
StripePayoutList=Списък със Stripe изплащания
|
||||
@ -69,3 +71,8 @@ ToOfferALinkForLiveWebhook=Връзка към настройка на Stripe We
|
||||
PaymentWillBeRecordedForNextPeriod=Плащането ще бъде регистрирано за следващия период.
|
||||
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
|
||||
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
|
||||
|
||||
|
||||
@ -26,6 +26,7 @@ Permission56002=Промяна на тикети
|
||||
Permission56003=Изтриване на тикети
|
||||
Permission56004=Управление на тикети
|
||||
Permission56005=Преглед на тикети от всички контрагенти (не е приложимо за външни потребители, винаги ще бъдат ограничени до контрагента от който зависят)
|
||||
Permission56006=Export tickets
|
||||
|
||||
Tickets=Тикети
|
||||
TicketDictType=Тикет - Видове
|
||||
@ -61,6 +62,8 @@ TypeContact_ticket_external_CONTRIBUTOR=Сътрудник от страна н
|
||||
OriginEmail=Reporter Email
|
||||
Notify_TICKET_SENTBYMAIL=Изпращане на тикет съобщението по имейл
|
||||
|
||||
ExportDataset_ticket_1=Тикети
|
||||
|
||||
# Status
|
||||
Read=Прочетен
|
||||
Assigned=Възложен
|
||||
|
||||
@ -66,7 +66,8 @@ LinkedToDolibarrUser=Link to user
|
||||
LinkedToDolibarrThirdParty=Link to third party
|
||||
CreateDolibarrLogin=Създаване на потребител
|
||||
CreateDolibarrThirdParty=Създаване на контрагент
|
||||
LoginAccountDisableInDolibarr=Профилът е деактивиран в системата.
|
||||
LoginAccountDisableInDolibarr=Account disabled in Dolibarr
|
||||
PASSWORDInDolibarr=Password modified in Dolibarr
|
||||
UsePersonalValue=Използване на лична стойност
|
||||
ExportDataset_user_1=Потребители и техните реквизити
|
||||
DomainUser=Домейн потребител %s
|
||||
@ -129,3 +130,6 @@ IPLastLogin=IP last login
|
||||
IPPreviousLogin=IP previous login
|
||||
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
|
||||
|
||||
@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=Select the carriage return type
|
||||
ACCOUNTING_EXPORT_PREFIX_SPEC=Odredi prefiks za naziv datoteke
|
||||
ThisService=This service
|
||||
ThisProduct=Ovaj proizvod
|
||||
DefaultForService=Default for service
|
||||
DefaultForProduct=Pretpostavljeno za proizvod
|
||||
DefaultForService=Default for services
|
||||
DefaultForProduct=Default for products
|
||||
ProductForThisThirdparty=Product for this thirdparty
|
||||
ServiceForThisThirdparty=Service for this thirdparty
|
||||
CantSuggest=Can't suggest
|
||||
@ -101,7 +101,8 @@ ShowAccountingAccount=Show accounting account
|
||||
ShowAccountingJournal=Show accounting journal
|
||||
ShowAccountingAccountInLedger=Show accounting account in ledger
|
||||
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
|
||||
MenuBankAccounts=Žiro računi
|
||||
MenuVatAccounts=Vat accounts
|
||||
@ -126,6 +127,7 @@ WriteBookKeeping=Record transactions in accounting
|
||||
Bookkeeping=Ledger
|
||||
BookkeepingSubAccount=Subledger
|
||||
AccountBalance=Account balance
|
||||
AccountBalanceSubAccount=Sub-accounts balance
|
||||
ObjectsRef=Source object ref
|
||||
CAHTF=Total purchase vendor before tax
|
||||
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)
|
||||
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)
|
||||
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_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
|
||||
TransactionNumShort=Num. transaction
|
||||
AccountingCategory=Custom group of accounts
|
||||
AccountingCategories=Custom groups of accounts
|
||||
GroupByAccountAccounting=Group by general ledger account
|
||||
GroupBySubAccountAccounting=Group by subledger account
|
||||
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
|
||||
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
|
||||
|
||||
@ -294,6 +299,7 @@ DescValidateMovements=Any modification or deletion of writing, lettering and del
|
||||
|
||||
ValidateHistory=Bind Automatically
|
||||
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
|
||||
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_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_AUTOLETTERING=Enable the automatic lettering when transferring to accounting
|
||||
|
||||
## Export
|
||||
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>
|
||||
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
|
||||
ConfirmExportFile=Confirmation of the generation of the accounting export file ?
|
||||
ExportDraftJournal=Export draft journal
|
||||
@ -398,7 +406,7 @@ SaleLocal=Local sale
|
||||
SaleExport=Export sale
|
||||
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.
|
||||
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.
|
||||
ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated.
|
||||
## Dictionary
|
||||
@ -442,6 +450,7 @@ AccountancyErrorMismatchLetterCode=Mismatch in reconcile code
|
||||
AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0
|
||||
AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s
|
||||
ErrorAccountNumberAlreadyExists=The accounting number %s already exists
|
||||
ErrorArchiveAddFile=Can't put "%s" file in archive
|
||||
|
||||
## Import
|
||||
ImportAccountingEntries=Accounting entries
|
||||
@ -468,5 +477,7 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise)
|
||||
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.
|
||||
ExpenseReportJournal=Expense Report Journal
|
||||
DocsAlreadyExportedAreExcluded=Docs already exported are excluded
|
||||
ClickToHideAlreadyExportedLines=Click to hide already exported lines
|
||||
|
||||
NAccounts=%s accounts
|
||||
|
||||
@ -66,7 +66,8 @@ LinkedToDolibarrUser=Link to user
|
||||
LinkedToDolibarrThirdParty=Link to third party
|
||||
CreateDolibarrLogin=Kreiraj korisnika
|
||||
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
|
||||
ExportDataset_user_1=Users and their properties
|
||||
DomainUser=Korisnik domene %s
|
||||
@ -129,3 +130,6 @@ IPLastLogin=IP last login
|
||||
IPPreviousLogin=IP previous login
|
||||
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
|
||||
|
||||
@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=Seleccioneu el tipus de retorn
|
||||
ACCOUNTING_EXPORT_PREFIX_SPEC=Especifica el prefix del nom del fitxer
|
||||
ThisService=Aquest servei
|
||||
ThisProduct=Aquest producte
|
||||
DefaultForService=Defecte per al servei
|
||||
DefaultForProduct=Defecte per al producte
|
||||
DefaultForService=Default for services
|
||||
DefaultForProduct=Default for products
|
||||
ProductForThisThirdparty=Producte per a aquest tercer
|
||||
ServiceForThisThirdparty=Servei per a aquest tercer
|
||||
CantSuggest=No es pot suggerir
|
||||
@ -101,7 +101,8 @@ ShowAccountingAccount=Mostrar diari de comptes
|
||||
ShowAccountingJournal=Mostrar diari comptable
|
||||
ShowAccountingAccountInLedger=Mostra el compte comptable al Llibre major
|
||||
ShowAccountingAccountInJournals=Mostra el compte comptable als diaris
|
||||
AccountAccountingSuggest=Compte comptable suggerit
|
||||
DataUsedToSuggestAccount=Data used to suggest account
|
||||
AccountAccountingSuggest=Account suggested
|
||||
MenuDefaultAccounts=Comptes per defecte
|
||||
MenuBankAccounts=Comptes bancaris
|
||||
MenuVatAccounts=Comptes d'IVA
|
||||
@ -126,6 +127,7 @@ WriteBookKeeping=Registrar transaccions en comptabilitat
|
||||
Bookkeeping=Llibre major
|
||||
BookkeepingSubAccount=Subcompte
|
||||
AccountBalance=Compte saldo
|
||||
AccountBalanceSubAccount=Sub-accounts balance
|
||||
ObjectsRef=Referència de l'objecte origen
|
||||
CAHTF=Total de compra a Proveïdor abans d'impostos
|
||||
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_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_PURCHASE_JOURNAL=Purchase journal (purchase and returns)
|
||||
ACCOUNTING_SELL_JOURNAL=Diari de vendes (vendes i devolucions)
|
||||
ACCOUNTING_PURCHASE_JOURNAL=Diari de compres (compres i devolucions)
|
||||
ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements)
|
||||
ACCOUNTING_EXPENSEREPORT_JOURNAL=Diari de l'informe de despeses
|
||||
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)
|
||||
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)
|
||||
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_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
|
||||
NumPiece=Número de peça
|
||||
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
|
||||
GroupBySubAccountAccounting=Agrupa per subcompte comptable
|
||||
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
|
||||
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
|
||||
|
||||
@ -294,6 +299,7 @@ DescValidateMovements=Queda prohibida qualsevol modificació o supressió de reg
|
||||
|
||||
ValidateHistory=Comptabilitza automàticament
|
||||
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
|
||||
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_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_AUTOLETTERING=Enable the automatic lettering when transferring to accounting
|
||||
|
||||
## Export
|
||||
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>
|
||||
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
|
||||
ConfirmExportFile=Confirmació de la generació del fitxer d'exportació comptable?
|
||||
ExportDraftJournal=Exporta els esborranys del llibre
|
||||
@ -398,7 +406,7 @@ SaleLocal=Venda local
|
||||
SaleExport=Venda d’exportació
|
||||
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.
|
||||
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.
|
||||
ForbiddenTransactionAlreadyValidated=Prohibit: la transacció s'ha validat.
|
||||
## Dictionary
|
||||
@ -429,19 +437,20 @@ ConfirmMassDeleteBookkeepingWritingQuestion=Això suprimirà la transacció de l
|
||||
## Error
|
||||
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)
|
||||
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.
|
||||
ExportNotSupported=El format d'exportació configurat no està suportat en aquesta pàgina
|
||||
BookeppingLineAlreayExists=Les línies ja existeixen en la comptabilitat
|
||||
NoJournalDefined=Cap diari definit
|
||||
Binded=Línies comptabilitzades
|
||||
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ó
|
||||
AccountancyErrorMismatchLetterCode=No coincideix en el codi de conciliació
|
||||
AccountancyErrorMismatchBalanceAmount=El saldo (%s) no és igual a 0
|
||||
AccountancyErrorLetteringBookkeeping=S'han produït errors relacionats amb les transaccions: %s
|
||||
ErrorAccountNumberAlreadyExists=El número de comptabilitat %s ja existeix
|
||||
ErrorArchiveAddFile=Can't put "%s" file in archive
|
||||
|
||||
## Import
|
||||
ImportAccountingEntries=Entrades de comptabilitat
|
||||
@ -468,5 +477,7 @@ FECFormatMulticurrencyCode=Codi multidivisa (Idevise)
|
||||
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.
|
||||
ExpenseReportJournal=Diari d'informe de despeses
|
||||
DocsAlreadyExportedAreExcluded=Docs already exported are excluded
|
||||
ClickToHideAlreadyExportedLines=Click to hide already exported lines
|
||||
|
||||
NAccounts=comptes %s
|
||||
|
||||
@ -645,6 +645,8 @@ Module2300Name=Tasques programades
|
||||
Module2300Desc=Gestió de tasques programades (àlies cron o taula de crons)
|
||||
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.
|
||||
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
|
||||
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)
|
||||
@ -660,6 +662,8 @@ Module2900Name=GeoIPMaxmind
|
||||
Module2900Desc=Capacitats de conversió GeoIP Maxmind
|
||||
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.
|
||||
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
|
||||
Module3400Desc=Activa els camps de les xarxes socials a tercers i adreces (skype, twitter, facebook...).
|
||||
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.
|
||||
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.
|
||||
MiscellaneousOptions=Miscellaneous options
|
||||
MiscellaneousDesc=Aquí es defineixen la resta de paràmetres relacionats amb la seguretat.
|
||||
LimitsSetup=Configuració de límits i precisions
|
||||
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
|
||||
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
|
||||
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.
|
||||
MembersDocModules=Plantilles de documents per a documents generats a partir del registre de socis
|
||||
##### 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_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_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_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
|
||||
@ -2129,6 +2137,7 @@ CodeLastResult=Últim codi retornat
|
||||
NbOfEmailsInInbox=Nombre de correus electrònics en el directori font
|
||||
LoadThirdPartyFromName=Carregueu la cerca de tercers al %s (només carrega)
|
||||
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.
|
||||
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
|
||||
@ -2355,3 +2364,5 @@ AllowExternalDownload=Allow external download (without login, using a shared lin
|
||||
DeadlineDayVATSubmission=Deadline day for vat submission on the next month
|
||||
MaxNumberOfAttachementOnForms=Max number of joinded files in a form
|
||||
IfDefinedUseAValueBeetween=If defined, use a value between %s and %s
|
||||
Reload=Reload
|
||||
ConfirmReload=Confirm module reload
|
||||
|
||||
@ -17,7 +17,7 @@ DisabledBecauseNotLastSituationInvoice=Disabled because invoice is not erasable.
|
||||
DisabledBecauseNotErasable=S'ha desactivat perquè no es pot esborrar
|
||||
InvoiceStandard=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
|
||||
InvoiceDeposit=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'
|
||||
InvoiceAvoir=Abonament
|
||||
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
|
||||
invoiceAvoirWithPaymentRestAmount=Crear abonament de la factura pendent de pagament
|
||||
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
|
||||
RemainderToTakeMulticurrency=Import restant, moneda original
|
||||
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
|
||||
Rest=Pendent
|
||||
AmountExpected=Import reclamat
|
||||
@ -263,7 +263,7 @@ NoOtherDraftBills=Cap altra factura esborrany
|
||||
NoDraftInvoices=Sense factures esborrany
|
||||
RefBill=Ref. factura
|
||||
ToBill=A facturar
|
||||
RemainderToBill=Queda per facturar
|
||||
RemainderToBill=Queda per a facturar
|
||||
SendBillByMail=Envia factura per e-mail
|
||||
SendReminderBillByMail=Envia recordatori per e-mail
|
||||
RelatedCommercialProposals=Pressupostos relacionats
|
||||
|
||||
@ -8,34 +8,12 @@ BrowseBlockedLog=Registres inalterables
|
||||
ShowAllFingerPrintsMightBeTooLong=Mostra tots els registres arxivats (pot ser llarg)
|
||||
ShowAllFingerPrintsErrorsMightBeTooLong=Mostra tots els registres d'arxiu no vàlids (pot ser llarg)
|
||||
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.
|
||||
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
|
||||
NotAddedByAuthorityYet=Encara no emmagatzemat a l'autoritat remota
|
||||
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
|
||||
BlockedLogBillPreview=Previsualització de la factura del client
|
||||
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)
|
||||
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.
|
||||
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
|
||||
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
|
||||
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
|
||||
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)
|
||||
|
||||
@ -312,8 +312,8 @@ CustomerRelativeDiscountShort=Descompte relatiu
|
||||
CustomerAbsoluteDiscountShort=Descompte fixe
|
||||
CompanyHasRelativeDiscount=Aquest client té un descompte per defecte de <b>%s%%</b>
|
||||
CompanyHasNoRelativeDiscount=Aquest client no té descomptes relatius per defecte
|
||||
HasRelativeDiscountFromSupplier=Teniu un descompte predeterminat de <b> %s%% </b> d'aquest proveïdor
|
||||
HasNoRelativeDiscountFromSupplier=No default relative discount from this vendor
|
||||
HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> with 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
|
||||
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
|
||||
@ -499,4 +499,7 @@ OutOfEurope=Fora d’Europa (CEE)
|
||||
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.
|
||||
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
|
||||
|
||||
@ -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
|
||||
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)
|
||||
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
|
||||
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.
|
||||
DATAPOLICYJob=Netejador de dades i anonimitzador
|
||||
JobXMustBeEnabled=La tasca %s s'ha d'activar
|
||||
EmailIfError=Email for warning on error
|
||||
ErrorInBatch=Error when running the job %s
|
||||
EmailIfError=Correu electrònic per a advertir d'error
|
||||
ErrorInBatch=Error en executar la tasca %s
|
||||
|
||||
# Cron Boxes
|
||||
LastExecutedScheduledJob=Darrera tasca programada executada
|
||||
|
||||
@ -303,6 +303,7 @@ ErrorValueForTooLow=Value for <b>%s</b> is too low
|
||||
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
|
||||
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
|
||||
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.
|
||||
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ó.
|
||||
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
|
||||
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
|
||||
|
||||
@ -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
|
||||
NoPublicActionsAllowedForThisEvent=No hi ha cap acció pública oberta al públic per a aquest esdeveniment
|
||||
MaxNbOfAttendees=Nombre màxim d'assistents
|
||||
DateStartEvent=Data d'inici de l'esdeveniment
|
||||
DateEndEvent=Data de finalització de l'esdeveniment
|
||||
|
||||
@ -226,6 +226,7 @@ NoUserGroupDefined=Grup d'usuari no definit
|
||||
Password=Contrasenya
|
||||
PasswordRetype=Repetiu la vostra contrasenya
|
||||
NoteSomeFeaturesAreDisabled=Tingues en compte que molts mòduls i funcionalitats estan deshabilitats en aquesta demostració.
|
||||
YourUserFile=Your user file
|
||||
Name=Nom
|
||||
NameSlashCompany=Nom / Empresa
|
||||
Person=Persona
|
||||
@ -897,6 +898,9 @@ MassFilesArea=Àrea de fitxers generats per accions massives
|
||||
ShowTempMassFilesArea=Mostra l'àrea de fitxers generats per accions massives
|
||||
ConfirmMassDeletion=Confirmació d'esborrament massiu
|
||||
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
|
||||
ClassifyBilled=Classifica facturat
|
||||
ClassifyUnbilled=Classifica no facturat
|
||||
@ -912,8 +916,8 @@ ExportFilteredList=Llistat filtrat d'exportació
|
||||
ExportList=Llistat d'exportació
|
||||
ExportOptions=Opcions d'exportació
|
||||
IncludeDocsAlreadyExported=Inclou documents ja exportats
|
||||
ExportOfPiecesAlreadyExportedIsEnable=L’exportació de peces ja exportades està habilitada
|
||||
ExportOfPiecesAlreadyExportedIsDisable=L’exportació de peces ja exportades està inhabilitada
|
||||
ExportOfPiecesAlreadyExportedIsEnable=Documents already exported are visible and will be exported
|
||||
ExportOfPiecesAlreadyExportedIsDisable=Documents already exported are hidden and won't be exported
|
||||
AllExportedMovementsWereRecordedAsExported=Tots els moviments exportats s'han registrat com a exportats
|
||||
NotAllExportedMovementsCouldBeRecordedAsExported=No s'ha pogut registrar tots els moviments exportats com a exportats
|
||||
Miscellaneous=Diversos
|
||||
@ -1128,6 +1132,7 @@ DeleteFileText=Realment vols suprimir aquest fitxer?
|
||||
ShowOtherLanguages=Mostrar altres idiomes
|
||||
SwitchInEditModeToAddTranslation=Canviar a mode d'edició per a afegir traduccions per a aquest idioma
|
||||
NotUsedForThisCustomer=No s'utilitza per a aquest client
|
||||
NotUsedForThisVendor=Not used for this vendor
|
||||
AmountMustBePositive=L'import ha de ser positiu
|
||||
ByStatus=Per estat
|
||||
InformationMessage=Informació
|
||||
@ -1148,14 +1153,14 @@ EventReminder=Recordatori d'esdeveniments
|
||||
UpdateForAllLines=Actualització per a totes les línies
|
||||
OnHold=Fora de servei
|
||||
Civility=Civilitat
|
||||
AffectTag=Assign Tag
|
||||
AffectUser=Assign User
|
||||
SetSupervisor=Set Supervisor
|
||||
AffectTag=Assign a Tag
|
||||
AffectUser=Assign a User
|
||||
SetSupervisor=Set the supervisor
|
||||
CreateExternalUser=Crea un usuari extern
|
||||
ConfirmAffectTag=Bulk Tag Assignement
|
||||
ConfirmAffectUser=Bulk User Assignement
|
||||
ProjectRole=Role assigned on each project
|
||||
TasksRole=Role assigned on each task of each project
|
||||
ProjectRole=Role assigned on each project/opportunity
|
||||
TasksRole=Role assigned on each task (if used)
|
||||
ConfirmSetSupervisor=Bulk Supervisor Set
|
||||
ConfirmUpdatePrice=Choose a increase/decrease price rate
|
||||
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
|
||||
InternalUser=Usuari intern
|
||||
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
|
||||
|
||||
@ -207,7 +207,7 @@ NbOfSubscriptions=Nombre de contribucions
|
||||
AmountOfSubscriptions=Import recaptat de les contribucions
|
||||
TurnoverOrBudget=Volum de vendes (empresa) o Pressupost (associació o col.lectiu)
|
||||
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
|
||||
AmountIsLowerToMinimumNotice=sobre un total d'%s
|
||||
MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page
|
||||
|
||||
@ -96,6 +96,10 @@ OrdersStatisticsSuppliers=Estadístiques de comandes de compra
|
||||
NumberOfOrdersByMonth=Nombre de comandes per mes
|
||||
AmountOfOrdersByMonthHT=Quantitat de comandes per mes (sense IVA)
|
||||
ListOfOrders=Llistat de comandes
|
||||
ListOrderLigne=Lines of orders
|
||||
productobuy=Products to buy only
|
||||
productonly=Només productes
|
||||
disablelinefree=No lines free
|
||||
CloseOrder=Tancar comanda
|
||||
ConfirmCloseOrder=Vols classificar aquesta comanda com entregada? Un cop s'entrega la comanda, es podrà classificar com a facturada.
|
||||
ConfirmDeleteOrder=Vols eliminar aquesta comanda?
|
||||
@ -131,6 +135,7 @@ SupplierOrderClassifiedBilled=Comanda de compra %s com a facturada
|
||||
OtherOrders=Altres comandes
|
||||
SupplierOrderValidatedAndApproved=La comanda del proveïdor està validada i aprovada: %s
|
||||
SupplierOrderValidated=La comanda del proveïdor està validada: %s
|
||||
OrderShowDetail=Show order detail
|
||||
##### Types de contacts #####
|
||||
TypeContact_commande_internal_SALESREPFOLL=Ordre de venda de seguiment representatiu
|
||||
TypeContact_commande_internal_SHIPPING=Responsable del seguiment de l'enviament
|
||||
@ -199,3 +204,5 @@ StatusSupplierOrderApproved=Aprovat
|
||||
StatusSupplierOrderRefused=Rebutjat
|
||||
StatusSupplierOrderReceivedPartially=Rebuda parcialment
|
||||
StatusSupplierOrderReceivedAll=Tots els productes rebuts
|
||||
NeedAtLeastOneInvoice = Hi ha d'haver almenys una factura
|
||||
LineAlreadyDispatched = La línia de comanda ja s'ha rebut.
|
||||
|
||||
@ -125,7 +125,7 @@ ValidateProject=Validar projecte
|
||||
ConfirmValidateProject=Vols validar aquest projecte?
|
||||
CloseAProject=Tancar 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ó
|
||||
ReOpenAProject=Reobrir projecte
|
||||
ConfirmReOpenAProject=Vols reobrir aquest projecte?
|
||||
@ -259,6 +259,7 @@ RecordsClosed=%s projecte(s) tancat(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
|
||||
NewTaskRefSuggested=Tasca ref en ús, es requereix una nova tasca ref
|
||||
NumberOfTasksCloned=%s task(s) cloned
|
||||
TimeSpentInvoiced=Temps de facturació facturat
|
||||
TimeSpentForIntervention=Temps dedicat
|
||||
TimeSpentForInvoice=Temps dedicat
|
||||
@ -287,7 +288,7 @@ AddPersonToTask=Afegeix també a les tasques
|
||||
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_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
|
||||
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
|
||||
|
||||
@ -49,7 +49,7 @@ StockCorrection=Regularització d'estoc
|
||||
CorrectStock=Regularització d'estoc
|
||||
StockTransfer=Transferència d’estoc
|
||||
TransferStock=Transferència d'estoc
|
||||
MassStockTransferShort=Bulk stock change
|
||||
MassStockTransferShort=Canvi d'estoc massiu
|
||||
StockMovement=Moviment d'estoc
|
||||
StockMovements=Moviments d'estoc
|
||||
NumberOfUnit=Nombre d'unitats
|
||||
@ -107,7 +107,7 @@ LieuWareHouse=Localització magatzem
|
||||
WarehousesAndProducts=Magatzems i productes
|
||||
WarehousesAndProductsBatchDetail=Magatzems i productes (amb detall per lot/sèrie)
|
||||
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
|
||||
EstimatedStockValueSellShort=Valor per vendre
|
||||
EstimatedStockValueSell=Valor per vendre
|
||||
|
||||
@ -28,7 +28,7 @@ AccountParameter=Paràmetres del compte
|
||||
UsageParameter=Paràmetres d'ú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
|
||||
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
|
||||
NewStripePaymentFailed=S'ha intentat el pagament nou de Stripe, però ha fallat
|
||||
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?)
|
||||
StripeLiveEnabled=Stripe live activat (en cas contrari, mode de prova/sandbox)
|
||||
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
|
||||
OAUTH_STRIPE_TEST_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?
|
||||
CreateCustomerOnStripe=Crea un client a Stripe
|
||||
CreateCardOnStripe=Crea una targeta a Stripe
|
||||
CreateBANOnStripe=Create bank on 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)
|
||||
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.
|
||||
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
|
||||
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
|
||||
|
||||
|
||||
@ -26,6 +26,7 @@ Permission56002=Modifica tiquets
|
||||
Permission56003=Esborrar 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)
|
||||
Permission56006=Export tickets
|
||||
|
||||
Tickets=Tiquets
|
||||
TicketDictType=Tiquet - Tipus
|
||||
@ -61,6 +62,8 @@ TypeContact_ticket_external_CONTRIBUTOR=Col·laborador extern
|
||||
OriginEmail=Correu electrònic del reporter
|
||||
Notify_TICKET_SENTBYMAIL=Envia el missatge del tiquet per correu electrònic
|
||||
|
||||
ExportDataset_ticket_1=Tiquets
|
||||
|
||||
# Status
|
||||
Read=Llegit
|
||||
Assigned=Assignat
|
||||
|
||||
@ -47,7 +47,7 @@ RemoveFromGroup=Eliminar del grup
|
||||
PasswordChangedAndSentTo=Contrasenya canviada i enviada a <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>.
|
||||
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.
|
||||
ConfirmPasswordReset=Confirma la restauració de la contrasenya
|
||||
MenuUsersAndGroups=Usuaris i grups
|
||||
@ -66,9 +66,9 @@ LinkedToDolibarrUser=Enllaç a l'usuari
|
||||
LinkedToDolibarrThirdParty=Enllaç a tercers
|
||||
CreateDolibarrLogin=Crear un compte d'usuari
|
||||
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
|
||||
InternalUser=Usuari intern
|
||||
ExportDataset_user_1=Usuaris i les seves propietats
|
||||
DomainUser=Usuari de domini
|
||||
Reactivate=Reactivar
|
||||
@ -128,3 +128,8 @@ DateLastLogin=Data darrera sessió
|
||||
DatePreviousLogin=Data d'inici de sessió anterior
|
||||
IPLastLogin=IP darrer inici de sessió
|
||||
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
|
||||
|
||||
@ -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)
|
||||
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.
|
||||
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, ...
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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 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 a pagar és nul·la.
|
||||
WithdrawalFile=Fitxer de comanda de dèbit
|
||||
CreditTransferFile=Fitxer de transferència de crèdit
|
||||
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
|
||||
SepaMandateShort=Mandat SEPA
|
||||
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
|
||||
CreditorName=Nom del creditor
|
||||
SEPAFillForm=(B) Si us plau completa tots els camps marcats amb *
|
||||
|
||||
@ -18,4 +18,4 @@ ModuleZapierForDolibarrDesc = Mòdul Zapier per a Dolibarr
|
||||
ZapierForDolibarrSetup=Configuració de Zapier per a Dolibarr
|
||||
ZapierDescription=Interfície amb 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>.
|
||||
|
||||
@ -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
|
||||
ThisService=Tato služba
|
||||
ThisProduct=Tento výrobek
|
||||
DefaultForService=Výchozí nastavení pro službu
|
||||
DefaultForProduct=Výchozí produkt
|
||||
DefaultForService=Default for services
|
||||
DefaultForProduct=Default for products
|
||||
ProductForThisThirdparty=Produkty pro tento subjekt
|
||||
ServiceForThisThirdparty=Služby pro tento subjekt
|
||||
CantSuggest=Nelze navrhnout
|
||||
@ -101,7 +101,8 @@ ShowAccountingAccount=Zobrazit účetní účet
|
||||
ShowAccountingJournal=Zobrazit účetní deník
|
||||
ShowAccountingAccountInLedger=Show accounting account in ledger
|
||||
ShowAccountingAccountInJournals=Show accounting account in journals
|
||||
AccountAccountingSuggest=Účetní účet navrhl
|
||||
DataUsedToSuggestAccount=Data used to suggest account
|
||||
AccountAccountingSuggest=Account suggested
|
||||
MenuDefaultAccounts=výchozí účty
|
||||
MenuBankAccounts=Bankovní účty
|
||||
MenuVatAccounts=Účty DPH
|
||||
@ -126,6 +127,7 @@ WriteBookKeeping=Record transactions in accounting
|
||||
Bookkeeping=účetní kniha
|
||||
BookkeepingSubAccount=Subledger
|
||||
AccountBalance=Zůstatek na účtu
|
||||
AccountBalanceSubAccount=Sub-accounts balance
|
||||
ObjectsRef=Zdrojový objekt ref
|
||||
CAHTF=Celkový prodejce před zdaněním
|
||||
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)
|
||||
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)
|
||||
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_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ů
|
||||
TransactionNumShort=Num. transakce
|
||||
AccountingCategory=Custom group of accounts
|
||||
AccountingCategories=Custom groups of accounts
|
||||
GroupByAccountAccounting=Group by general ledger 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.
|
||||
@ -265,6 +269,7 @@ ShowSubtotalByGroup=Show subtotal by level
|
||||
|
||||
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ů.
|
||||
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í
|
||||
|
||||
@ -294,6 +299,7 @@ DescValidateMovements=Jakékoli úpravy nebo vymazání písem, nápisů a vymaz
|
||||
|
||||
ValidateHistory=Ověřit automaticky
|
||||
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
|
||||
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_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_AUTOLETTERING=Enable the automatic lettering when transferring to accounting
|
||||
|
||||
## Export
|
||||
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>
|
||||
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
|
||||
ConfirmExportFile=Confirmation of the generation of the accounting export file ?
|
||||
ExportDraftJournal=Exportovat deník návrhu
|
||||
@ -398,7 +406,7 @@ SaleLocal=Místní prodej
|
||||
SaleExport=Exportní prodej
|
||||
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.
|
||||
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.
|
||||
ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated.
|
||||
## Dictionary
|
||||
@ -442,6 +450,7 @@ AccountancyErrorMismatchLetterCode=Mismatch in reconcile code
|
||||
AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0
|
||||
AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s
|
||||
ErrorAccountNumberAlreadyExists=The accounting number %s already exists
|
||||
ErrorArchiveAddFile=Can't put "%s" file in archive
|
||||
|
||||
## Import
|
||||
ImportAccountingEntries=Účetní zápisy
|
||||
@ -468,5 +477,7 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise)
|
||||
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ší.
|
||||
ExpenseReportJournal=Účet výkazů výdajů
|
||||
DocsAlreadyExportedAreExcluded=Docs already exported are excluded
|
||||
ClickToHideAlreadyExportedLines=Click to hide already exported lines
|
||||
|
||||
NAccounts=%s accounts
|
||||
|
||||
@ -226,6 +226,7 @@ NoUserGroupDefined=Žádná uživatelská skupina není definována
|
||||
Password=Heslo
|
||||
PasswordRetype=Repeat your password
|
||||
NoteSomeFeaturesAreDisabled=Všimněte si, že v této demonstraci je mnoho funkcí / modulů zakázáno.
|
||||
YourUserFile=Your user file
|
||||
Name=Název
|
||||
NameSlashCompany=Název / společnost
|
||||
Person=Osoba
|
||||
@ -897,6 +898,9 @@ MassFilesArea=Plocha pro soubory postavený masových akcí
|
||||
ShowTempMassFilesArea=Show area souborů postavený masových akcí
|
||||
ConfirmMassDeletion=Hromadné smazání potvrzení
|
||||
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
|
||||
ClassifyBilled=Označit jako účtováno
|
||||
ClassifyUnbilled=Zařadit nevyfakturované
|
||||
@ -912,8 +916,8 @@ ExportFilteredList=Export filtrovaný seznam
|
||||
ExportList=seznam export
|
||||
ExportOptions=Možnosti exportu
|
||||
IncludeDocsAlreadyExported=Zahrnout již exportované dokumenty
|
||||
ExportOfPiecesAlreadyExportedIsEnable=Export již exportovaných kusů je povolen
|
||||
ExportOfPiecesAlreadyExportedIsDisable=Export již exportovaných kusů je zakázán
|
||||
ExportOfPiecesAlreadyExportedIsEnable=Documents already exported are visible and will be exported
|
||||
ExportOfPiecesAlreadyExportedIsDisable=Documents already exported are hidden and won't be exported
|
||||
AllExportedMovementsWereRecordedAsExported=Všechny exportované pohyby byly zaznamenány jako exportované
|
||||
NotAllExportedMovementsCouldBeRecordedAsExported=Ne všechny exportované pohyby nelze zaznamenat jako exportované
|
||||
Miscellaneous=Smíšený
|
||||
@ -1128,6 +1132,7 @@ DeleteFileText=Opravdu chcete tento soubor odstranit?
|
||||
ShowOtherLanguages=Zobrazit další jazyky
|
||||
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
|
||||
NotUsedForThisVendor=Not used for this vendor
|
||||
AmountMustBePositive=Amount must be positive
|
||||
ByStatus=By status
|
||||
InformationMessage=Informace
|
||||
@ -1148,14 +1153,14 @@ EventReminder=Event Reminder
|
||||
UpdateForAllLines=Update for all lines
|
||||
OnHold=Pozdržen
|
||||
Civility=Civility
|
||||
AffectTag=Assign Tag
|
||||
AffectUser=Assign User
|
||||
SetSupervisor=Set Supervisor
|
||||
AffectTag=Assign a Tag
|
||||
AffectUser=Assign a User
|
||||
SetSupervisor=Set the supervisor
|
||||
CreateExternalUser=Create external user
|
||||
ConfirmAffectTag=Bulk Tag Assignement
|
||||
ConfirmAffectUser=Bulk User Assignement
|
||||
ProjectRole=Role assigned on each project
|
||||
TasksRole=Role assigned on each task of each project
|
||||
ProjectRole=Role assigned on each project/opportunity
|
||||
TasksRole=Role assigned on each task (if used)
|
||||
ConfirmSetSupervisor=Bulk Supervisor Set
|
||||
ConfirmUpdatePrice=Choose a increase/decrease price rate
|
||||
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
|
||||
InternalUser=Interní 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
|
||||
|
||||
@ -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?)
|
||||
StripeLiveEnabled=Stripe live povoleno (jinak testovací režim / režim sandbox)
|
||||
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
|
||||
OAUTH_STRIPE_TEST_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?
|
||||
CreateCustomerOnStripe=Vytvořte zákazníka na Stripe
|
||||
CreateCardOnStripe=Vytvořte kartu na Stripe
|
||||
CreateBANOnStripe=Create bank on 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)
|
||||
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í.
|
||||
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
|
||||
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
|
||||
|
||||
|
||||
@ -26,6 +26,7 @@ Permission56002=Změnit vstupenky
|
||||
Permission56003=Smazat vstupenky
|
||||
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í)
|
||||
Permission56006=Export tickets
|
||||
|
||||
Tickets=Vstupenky
|
||||
TicketDictType=Vstupenka - Typy
|
||||
@ -61,6 +62,8 @@ TypeContact_ticket_external_CONTRIBUTOR=Externí přispěvatel
|
||||
OriginEmail=Reporter Email
|
||||
Notify_TICKET_SENTBYMAIL=Odeslat e-mailem zprávu o lince
|
||||
|
||||
ExportDataset_ticket_1=Vstupenky
|
||||
|
||||
# Status
|
||||
Read=Číst
|
||||
Assigned=Přidělené
|
||||
|
||||
@ -66,7 +66,8 @@ LinkedToDolibarrUser=Link to user
|
||||
LinkedToDolibarrThirdParty=Link to third party
|
||||
CreateDolibarrLogin=Vytvoření uživatele
|
||||
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
|
||||
ExportDataset_user_1=Uživatelé a jejich vlastnosti
|
||||
DomainUser=Doménový uživatel %s
|
||||
@ -129,3 +130,6 @@ IPLastLogin=IP last login
|
||||
IPPreviousLogin=IP previous login
|
||||
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
|
||||
|
||||
@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=Dewiswch y math dychwelyd cerbyd
|
||||
ACCOUNTING_EXPORT_PREFIX_SPEC=Nodwch y rhagddodiad ar gyfer enw'r ffeil
|
||||
ThisService=Y gwasanaeth hwn
|
||||
ThisProduct=Mae'r cynnyrch hwn
|
||||
DefaultForService=Diofyn ar gyfer gwasanaeth
|
||||
DefaultForProduct=Diofyn ar gyfer cynnyrch
|
||||
DefaultForService=Default for services
|
||||
DefaultForProduct=Default for products
|
||||
ProductForThisThirdparty=Cynnyrch ar gyfer y trydydd parti hwn
|
||||
ServiceForThisThirdparty=Gwasanaeth ar gyfer y trydydd parti hwn
|
||||
CantSuggest=Methu awgrymu
|
||||
@ -101,7 +101,8 @@ ShowAccountingAccount=Dangos cyfrif cyfrifeg
|
||||
ShowAccountingJournal=Dangos dyddlyfr cyfrifo
|
||||
ShowAccountingAccountInLedger=Dangos cyfrif cyfrifeg yn y cyfriflyfr
|
||||
ShowAccountingAccountInJournals=Dangos cyfrif cyfrifeg mewn cyfnodolion
|
||||
AccountAccountingSuggest=Awgrymu cyfrif cyfrifo
|
||||
DataUsedToSuggestAccount=Data used to suggest account
|
||||
AccountAccountingSuggest=Account suggested
|
||||
MenuDefaultAccounts=Cyfrifon rhagosodedig
|
||||
MenuBankAccounts=Cyfrifon banc
|
||||
MenuVatAccounts=Cyfrifon TAW
|
||||
@ -126,6 +127,7 @@ WriteBookKeeping=Cofnodi trafodion mewn cyfrifeg
|
||||
Bookkeeping=Cyfriflyfr
|
||||
BookkeepingSubAccount=Subledger
|
||||
AccountBalance=Balans cyfrif
|
||||
AccountBalanceSubAccount=Sub-accounts balance
|
||||
ObjectsRef=Ffynhonnell gwrthrych cyf
|
||||
CAHTF=Cyfanswm y gwerthwr pryniant cyn treth
|
||||
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)
|
||||
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)
|
||||
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_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
|
||||
TransactionNumShort=Rhif. trafodiad
|
||||
AccountingCategory=Custom group of accounts
|
||||
AccountingCategories=Custom groups of accounts
|
||||
GroupByAccountAccounting=Grwpio yn ôl cyfrif cyfriflyfr cyffredinol
|
||||
GroupBySubAccountAccounting=Grwpio yn ôl cyfrif subledger
|
||||
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
|
||||
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
|
||||
|
||||
@ -294,6 +299,7 @@ DescValidateMovements=Gwaherddir unrhyw newid neu ddileu ysgrifen, llythrennau a
|
||||
|
||||
ValidateHistory=Rhwymo'n Awtomatig
|
||||
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
|
||||
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_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_AUTOLETTERING=Enable the automatic lettering when transferring to accounting
|
||||
|
||||
## Export
|
||||
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>
|
||||
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
|
||||
ConfirmExportFile=Cadarnhad o gynhyrchu'r ffeil allforio cyfrifo ?
|
||||
ExportDraftJournal=Allforio cyfnodolyn drafft
|
||||
@ -398,7 +406,7 @@ SaleLocal=Gwerthiant lleol
|
||||
SaleExport=Gwerthu allforio
|
||||
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.
|
||||
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.
|
||||
ForbiddenTransactionAlreadyValidated=Wedi'i wahardd: Mae'r trafodiad wedi'i ddilysu.
|
||||
## Dictionary
|
||||
@ -442,6 +450,7 @@ AccountancyErrorMismatchLetterCode=Mismatch in reconcile code
|
||||
AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0
|
||||
AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s
|
||||
ErrorAccountNumberAlreadyExists=The accounting number %s already exists
|
||||
ErrorArchiveAddFile=Can't put "%s" file in archive
|
||||
|
||||
## Import
|
||||
ImportAccountingEntries=Cofnodion cyfrifeg
|
||||
@ -468,5 +477,7 @@ FECFormatMulticurrencyCode=Cod aml-arian (Dyfeisio)
|
||||
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.
|
||||
ExpenseReportJournal=Cyfnodolyn Adroddiad Treuliau
|
||||
DocsAlreadyExportedAreExcluded=Docs already exported are excluded
|
||||
ClickToHideAlreadyExportedLines=Click to hide already exported lines
|
||||
|
||||
NAccounts=%s cyfrifon
|
||||
|
||||
@ -226,6 +226,7 @@ NoUserGroupDefined=Dim grŵp defnyddwyr wedi'i ddiffinio
|
||||
Password=Cyfrinair
|
||||
PasswordRetype=Repeat your password
|
||||
NoteSomeFeaturesAreDisabled=Sylwch fod llawer o nodweddion/modiwlau wedi'u hanalluogi yn yr arddangosiad hwn.
|
||||
YourUserFile=Your user file
|
||||
Name=Enw
|
||||
NameSlashCompany=Enw / Cwmni
|
||||
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
|
||||
ConfirmMassDeletion=Cadarnhad Swmp Dileu
|
||||
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
|
||||
ClassifyBilled=Dosbarthu wedi'i bilio
|
||||
ClassifyUnbilled=Dosbarthu heb ei filio
|
||||
@ -912,8 +916,8 @@ ExportFilteredList=Allforio rhestr wedi'i hidlo
|
||||
ExportList=Rhestr allforio
|
||||
ExportOptions=Opsiynau Allforio
|
||||
IncludeDocsAlreadyExported=Cynnwys dogfennau sydd eisoes wedi'u hallforio
|
||||
ExportOfPiecesAlreadyExportedIsEnable=Allforio darnau a allforiwyd eisoes yn galluogi
|
||||
ExportOfPiecesAlreadyExportedIsDisable=Mae allforio darnau sydd eisoes wedi'u hallforio yn analluog
|
||||
ExportOfPiecesAlreadyExportedIsEnable=Documents already exported are visible and will be exported
|
||||
ExportOfPiecesAlreadyExportedIsDisable=Documents already exported are hidden and won't be exported
|
||||
AllExportedMovementsWereRecordedAsExported=Cofnodwyd bod yr holl symudiadau a allforiwyd wedi'u hallforio
|
||||
NotAllExportedMovementsCouldBeRecordedAsExported=Ni ellid cofnodi pob symudiad a allforiwyd fel un wedi'i allforio
|
||||
Miscellaneous=Amrywiol
|
||||
@ -1128,6 +1132,7 @@ DeleteFileText=Ydych chi wir eisiau dileu'r ffeil hon?
|
||||
ShowOtherLanguages=Dangos ieithoedd eraill
|
||||
SwitchInEditModeToAddTranslation=Newidiwch y modd golygu i ychwanegu cyfieithiadau ar gyfer yr iaith hon
|
||||
NotUsedForThisCustomer=Heb ei ddefnyddio ar gyfer y cwsmer hwn
|
||||
NotUsedForThisVendor=Not used for this vendor
|
||||
AmountMustBePositive=Rhaid i'r swm fod yn bositif
|
||||
ByStatus=Yn ôl statws
|
||||
InformationMessage=Gwybodaeth
|
||||
@ -1148,14 +1153,14 @@ EventReminder=Nodyn Atgoffa am Ddigwyddiad
|
||||
UpdateForAllLines=Diweddariad ar gyfer pob llinell
|
||||
OnHold=Ar stop
|
||||
Civility=Gwareiddiad
|
||||
AffectTag=Assign Tag
|
||||
AffectUser=Assign User
|
||||
SetSupervisor=Set Supervisor
|
||||
AffectTag=Assign a Tag
|
||||
AffectUser=Assign a User
|
||||
SetSupervisor=Set the supervisor
|
||||
CreateExternalUser=Creu defnyddiwr allanol
|
||||
ConfirmAffectTag=Bulk Tag Assignement
|
||||
ConfirmAffectUser=Bulk User Assignement
|
||||
ProjectRole=Role assigned on each project
|
||||
TasksRole=Role assigned on each task of each project
|
||||
ProjectRole=Role assigned on each project/opportunity
|
||||
TasksRole=Role assigned on each task (if used)
|
||||
ConfirmSetSupervisor=Bulk Supervisor Set
|
||||
ConfirmUpdatePrice=Choose a increase/decrease price rate
|
||||
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
|
||||
InternalUser=Internal 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
|
||||
|
||||
@ -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 ?)
|
||||
StripeLiveEnabled=Stripe live wedi'i alluogi (modd prawf / blwch tywod fel arall)
|
||||
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
|
||||
OAUTH_STRIPE_TEST_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?
|
||||
CreateCustomerOnStripe=Creu cwsmer ar Stripe
|
||||
CreateCardOnStripe=Creu cerdyn ar Stripe
|
||||
CreateBANOnStripe=Create bank on Stripe
|
||||
ShowInStripe=Dangos yn Stripe
|
||||
StripeUserAccountForActions=Cyfrif defnyddiwr i'w ddefnyddio ar gyfer hysbysiad e-bost o rai digwyddiadau Stripe (taliadau 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.
|
||||
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
|
||||
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
|
||||
|
||||
|
||||
@ -66,7 +66,8 @@ LinkedToDolibarrUser=Dolen i'r defnyddiwr
|
||||
LinkedToDolibarrThirdParty=Dolen i drydydd parti
|
||||
CreateDolibarrLogin=Creu defnyddiwr
|
||||
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
|
||||
ExportDataset_user_1=Defnyddwyr a'u priodweddau
|
||||
DomainUser=Defnyddiwr parth %s
|
||||
@ -129,3 +130,6 @@ IPLastLogin=IP last login
|
||||
IPPreviousLogin=IP previous login
|
||||
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
|
||||
|
||||
@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=Vælg linjeskift type
|
||||
ACCOUNTING_EXPORT_PREFIX_SPEC=Angiv præfiks for filnavnet
|
||||
ThisService=Denne ydelse
|
||||
ThisProduct=Dette produkt
|
||||
DefaultForService=Forvalg ydelse
|
||||
DefaultForProduct=Forvalg produkt
|
||||
DefaultForService=Standard for tjenester
|
||||
DefaultForProduct=Standard for produkter
|
||||
ProductForThisThirdparty=Produkt til denne tredjepart
|
||||
ServiceForThisThirdparty=Service for denne tredjepart
|
||||
CantSuggest=Kan ikke foreslå
|
||||
@ -101,7 +101,8 @@ ShowAccountingAccount=Vis regnskabs konto
|
||||
ShowAccountingJournal=Vis kontokladde
|
||||
ShowAccountingAccountInLedger=Vis regnskabskonto i hovedbog
|
||||
ShowAccountingAccountInJournals=Vis regnskabskonto i tidsskrifter
|
||||
AccountAccountingSuggest=Forelslået regnskabskonto
|
||||
DataUsedToSuggestAccount=Data brugt til at foreslå konto
|
||||
AccountAccountingSuggest=Konto foreslået
|
||||
MenuDefaultAccounts=Standardkonti
|
||||
MenuBankAccounts=Bankkonti
|
||||
MenuVatAccounts=Momskonti
|
||||
@ -126,6 +127,7 @@ WriteBookKeeping=Registrer transaktioner i regnskabet
|
||||
Bookkeeping=Hovedbog
|
||||
BookkeepingSubAccount=Underkonti
|
||||
AccountBalance=Kontobalance
|
||||
AccountBalanceSubAccount=Underkonti balance
|
||||
ObjectsRef=Objektreference
|
||||
CAHTF=Samlet købeleverandør før skat
|
||||
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)
|
||||
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)
|
||||
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_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
|
||||
TransactionNumShort=Transaktionsnr.
|
||||
AccountingCategory=Brugerdefineret gruppe af konti
|
||||
AccountingCategories=Brugerdefinerede grupper af konti
|
||||
GroupByAccountAccounting=Gruppér efter hovedkontokonto
|
||||
GroupBySubAccountAccounting=Gruppér efter underkonti
|
||||
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
|
||||
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
|
||||
|
||||
@ -294,6 +299,7 @@ DescValidateMovements=Enhver ændring eller sletning af skrivning, bogstaver og
|
||||
|
||||
ValidateHistory=Automatisk Bogføring
|
||||
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
|
||||
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_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_AUTOLETTERING=Aktiver den automatiske bogstaver ved overførsel til regnskab
|
||||
|
||||
## Export
|
||||
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>
|
||||
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
|
||||
ConfirmExportFile=Bekræftelse af genereringen af den regnskabsmæssige eksportfil?
|
||||
ExportDraftJournal=Eksporter udkast til kladde
|
||||
@ -398,7 +406,7 @@ SaleLocal=Lokalt salg
|
||||
SaleExport=Eksport salg
|
||||
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.
|
||||
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.
|
||||
ForbiddenTransactionAlreadyValidated=Forbudt: Transaktionen er blevet valideret.
|
||||
## Dictionary
|
||||
@ -442,6 +450,7 @@ AccountancyErrorMismatchLetterCode=Uoverensstemmelse i afstemningskode
|
||||
AccountancyErrorMismatchBalanceAmount=Saldoen (%s) er ikke lig med 0
|
||||
AccountancyErrorLetteringBookkeeping=Der er opstået fejl vedrørende transaktionerne: %s
|
||||
ErrorAccountNumberAlreadyExists=Kontonummeret %s findes allerede
|
||||
ErrorArchiveAddFile=Kan ikke lægge "%s" fil i arkivet
|
||||
|
||||
## Import
|
||||
ImportAccountingEntries=Regnskabsposter
|
||||
@ -468,5 +477,7 @@ FECFormatMulticurrencyCode=MultiValuta-kode (Idevise)
|
||||
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.
|
||||
ExpenseReportJournal=Udgifts Journal
|
||||
DocsAlreadyExportedAreExcluded=Dokumenter, der allerede er eksporteret, er ekskluderet
|
||||
ClickToHideAlreadyExportedLines=Klik for at skjule allerede eksporterede linjer
|
||||
|
||||
NAccounts=%s konti
|
||||
|
||||
@ -645,6 +645,8 @@ Module2300Name=Planlagte job
|
||||
Module2300Desc=Planlagt job styring (alias cron eller chrono tabel)
|
||||
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.
|
||||
Module2430Name=Bestillingskalendersystem
|
||||
Module2430Desc=Giv en onlinekalender, så alle kan booke et møde, i henhold til foruddefinerede intervaller eller tilgængeligheder.
|
||||
Module2500Name=DMS / ECM
|
||||
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)
|
||||
@ -660,6 +662,8 @@ Module2900Name=GeoIPMaxmind
|
||||
Module2900Desc=GeoIP Maxmind konverteringsmuligheder
|
||||
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.
|
||||
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
|
||||
Module3400Desc=Aktiver sociale netværksfelter til tredjeparter og adresser (Skype, Twitter, Facebook, ...).
|
||||
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.
|
||||
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.
|
||||
MiscellaneousOptions=Forskellige muligheder
|
||||
MiscellaneousDesc=Alle andre sikkerhedsrelaterede parametre er defineret her.
|
||||
LimitsSetup=Begrænsninger/Nøjagtigheds opsætning
|
||||
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_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_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_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
|
||||
@ -2129,6 +2137,7 @@ CodeLastResult=Seneste resultatkode
|
||||
NbOfEmailsInInbox=Antal e-mails i kildekataloget
|
||||
LoadThirdPartyFromName=Indlæs tredjepartssøgning på %s (kun indlæsning)
|
||||
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.
|
||||
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
|
||||
@ -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
|
||||
MaxNumberOfAttachementOnForms=Maks. antal sammenføjede filer i en formular
|
||||
IfDefinedUseAValueBeetween=Hvis det er defineret, skal du bruge en værdi mellem %s og %s
|
||||
Reload=Genindlæs
|
||||
ConfirmReload=Bekræft modulgenindlæsning
|
||||
|
||||
@ -24,6 +24,7 @@ BoxFicheInter=Latest interventions
|
||||
BoxCurrentAccounts=Open accounts balance
|
||||
BoxTitleMemberNextBirthdays=Fødselsdage i denne måned (medlemmer)
|
||||
BoxTitleMembersByType=Medlemmer efter type og status
|
||||
BoxTitleMembersByTags=Medlemmer efter tags og status
|
||||
BoxTitleMembersSubscriptionsByYear=Medlemmer Abonnementer efter år
|
||||
BoxTitleLastRssInfos=Latest %s news from %s
|
||||
BoxTitleLastProducts=Produkter / tjenester: sidst %s ændret
|
||||
|
||||
@ -312,8 +312,8 @@ CustomerRelativeDiscountShort=Relativ rabat
|
||||
CustomerAbsoluteDiscountShort=Absolut rabat
|
||||
CompanyHasRelativeDiscount=Denne kunde har en standardrabat på <b>%s%%</b>
|
||||
CompanyHasNoRelativeDiscount=Denne kunde har som standard ingen rabat
|
||||
HasRelativeDiscountFromSupplier=Du har en standardrabat på <b>%s%%</b> fra denne leverandør
|
||||
HasNoRelativeDiscountFromSupplier=Ingen standard relativ rabat fra denne leverandør
|
||||
HasRelativeDiscountFromSupplier=Du har en standardrabat på <b> %s%% </b> hos 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
|
||||
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
|
||||
@ -499,4 +499,7 @@ OutOfEurope=Uden for Europa (EØF)
|
||||
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.
|
||||
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
|
||||
|
||||
@ -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
|
||||
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)
|
||||
ErrorSessionInvalidatedAfterPasswordChange=Sessionen blev ugyldiggjort efter en ændring af adgangskode, status eller gyldighedsdatoer. Log venligst på igen.
|
||||
|
||||
# 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.
|
||||
@ -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.
|
||||
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.
|
||||
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
|
||||
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
|
||||
|
||||
@ -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
|
||||
NoPublicActionsAllowedForThisEvent=Ingen offentlige handlinger er åbne for offentligheden for denne begivenhed
|
||||
MaxNbOfAttendees=Max antal deltagere
|
||||
DateStartEvent=Begivenhedens startdato
|
||||
DateEndEvent=Begivenheds slutdato
|
||||
|
||||
@ -226,6 +226,7 @@ NoUserGroupDefined=Ingen brugergruppe defineret
|
||||
Password=Adgangskode
|
||||
PasswordRetype=Gentag din adgangskode
|
||||
NoteSomeFeaturesAreDisabled=Bemærk, at mange funktioner/moduler er deaktiveret i denne demonstration.
|
||||
YourUserFile=Din brugerfil
|
||||
Name=Navn
|
||||
NameSlashCompany=Navn/virksomhed
|
||||
Person=Person
|
||||
@ -897,6 +898,9 @@ MassFilesArea=Område for filer opbygget af massehandlinger
|
||||
ShowTempMassFilesArea=Vis område af filer bygget af massehandlinger
|
||||
ConfirmMassDeletion=Bekræftelse på massesletning
|
||||
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
|
||||
ClassifyBilled=Klassificere faktureret
|
||||
ClassifyUnbilled=Klassificer Ikke faktureret
|
||||
@ -912,8 +916,8 @@ ExportFilteredList=Eksporter filtreret liste
|
||||
ExportList=Eksportliste
|
||||
ExportOptions=Eksport indstillinger
|
||||
IncludeDocsAlreadyExported=Inkluder dokumenter, der allerede er eksporteret
|
||||
ExportOfPiecesAlreadyExportedIsEnable=Eksport af allerede eksporterede stykker er aktiveret
|
||||
ExportOfPiecesAlreadyExportedIsDisable=Eksport af allerede eksporterede stykker er deaktiveret
|
||||
ExportOfPiecesAlreadyExportedIsEnable=Dokumenter, der allerede er eksporteret, er synlige og vil blive eksporteret
|
||||
ExportOfPiecesAlreadyExportedIsDisable=Dokumenter, der allerede er eksporteret, er skjulte og vil ikke blive eksporteret
|
||||
AllExportedMovementsWereRecordedAsExported=Alle eksporterede bevægelser blev registreret som eksporteret
|
||||
NotAllExportedMovementsCouldBeRecordedAsExported=Ikke alle eksporterede bevægelser kunne registreres som eksporteret
|
||||
Miscellaneous=Diverse
|
||||
@ -1128,6 +1132,7 @@ DeleteFileText=Vil du virkelig slette denne fil?
|
||||
ShowOtherLanguages=Vis andre sprog
|
||||
SwitchInEditModeToAddTranslation=Skift i redigeringsfunktion for at tilføje oversættelser til dette sprog
|
||||
NotUsedForThisCustomer=Ikke brugt til denne kunde
|
||||
NotUsedForThisVendor=Ikke brugt til denne leverandør
|
||||
AmountMustBePositive=Beløbet skal være positivt
|
||||
ByStatus=Efter status
|
||||
InformationMessage=Information
|
||||
@ -1148,14 +1153,14 @@ EventReminder=Påmindelse om begivenhed
|
||||
UpdateForAllLines=Opdatering til alle linjer
|
||||
OnHold=Afventer
|
||||
Civility=Høflighed
|
||||
AffectTag=Tildel tag
|
||||
AffectUser=Tildel bruger
|
||||
SetSupervisor=Sæt Supervisor
|
||||
AffectTag=Tildel et tag
|
||||
AffectUser=Tildel en bruger
|
||||
SetSupervisor=Indstil vejlederen
|
||||
CreateExternalUser=Opret ekstern bruger
|
||||
ConfirmAffectTag=Bulk Tag Tildeling
|
||||
ConfirmAffectUser=Massebrugertildeling
|
||||
ProjectRole=Rolle tildelt på hvert projekt
|
||||
TasksRole=Rolle tildelt på hver opgave i hvert projekt
|
||||
ProjectRole=Rolle tildelt på hvert projekt/mulighed
|
||||
TasksRole=Rolle tildelt hver opgave (hvis brugt)
|
||||
ConfirmSetSupervisor=Bulk supervisor sæt
|
||||
ConfirmUpdatePrice=Vælg en stigning/reduktionspris
|
||||
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
|
||||
InternalUser=Intern 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
|
||||
|
||||
@ -102,6 +102,7 @@ NbOperatorsRequired=Antal krævede operatører
|
||||
THMOperatorEstimated=Anslået operatør THM
|
||||
THMMachineEstimated=Anslået maskine THM
|
||||
WorkstationType=Arbejdsstationstype
|
||||
DefaultWorkstation=Standard arbejdsstation
|
||||
Human=Person
|
||||
Machine=Maskine
|
||||
HumanMachine=Person / maskine
|
||||
|
||||
@ -96,6 +96,10 @@ OrdersStatisticsSuppliers=Indkøbsordrestatistik
|
||||
NumberOfOrdersByMonth=Antallet af ordrer efter måned
|
||||
AmountOfOrdersByMonthHT=Mængden af ordrer efter måned (ekskl. Moms)
|
||||
ListOfOrders=Liste af ordrer
|
||||
ListOrderLigne=Ordrerækker
|
||||
productobuy=Kun produkter til køb
|
||||
productonly=Kun produkter
|
||||
disablelinefree=Ingen linjer fri
|
||||
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.
|
||||
ConfirmDeleteOrder=Er du sikker på, at du vil slette denne ordre?
|
||||
@ -131,6 +135,7 @@ SupplierOrderClassifiedBilled=Indkøbsordre %s er faktureret
|
||||
OtherOrders=Andre ordrer
|
||||
SupplierOrderValidatedAndApproved=Leverandørordre er valideret og godkendt: %s
|
||||
SupplierOrderValidated=Leverandørordre er valideret: %s
|
||||
OrderShowDetail=Vis ordredetaljer
|
||||
##### Types de contacts #####
|
||||
TypeContact_commande_internal_SALESREPFOLL=Repræsentative opfølgning salgsordre
|
||||
TypeContact_commande_internal_SHIPPING=Repræsentant opfølgning shipping
|
||||
@ -199,3 +204,5 @@ StatusSupplierOrderApproved=Godkendt
|
||||
StatusSupplierOrderRefused=Afvist
|
||||
StatusSupplierOrderReceivedPartially=Delvist 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
Loading…
Reference in New Issue
Block a user