Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop
This commit is contained in:
commit
b6f091926f
@ -88,6 +88,7 @@ For developers:
|
||||
- New: A module can add its own ECM view.
|
||||
- New: A module can disable a standard ECM view.
|
||||
- New: Add multilang support into product webservice.
|
||||
- New: Add hooks on project card page.
|
||||
|
||||
WARNING: Following change may create regression for some external modules, but was necessary to make
|
||||
Dolibarr better:
|
||||
@ -116,12 +117,14 @@ Fix: Pb of records not correctly cleaned when module marge is
|
||||
Fix: [ bug #1341 ] Lastname not added by file or direct input in mass e-mailing.
|
||||
Fix: [ bug #1357 ] Invoice creator state not printed in generated invoice documents.
|
||||
Fix: Suppliers invoice mask fails using {tttt} in numbering.
|
||||
Fix: pdf template name for typhon was not correctly et when enabling module.
|
||||
Fix: [ bug #1350 ] pdf template name for typhon was not correctly set when enabling module.
|
||||
Fix: Navigation on notes for shipments was not working.
|
||||
Fix: [ bug #1353 ] Email notifications, wrong URL.
|
||||
Fix: [ bug #1362 ] Note is not saved.
|
||||
Fix: tr/td balance.
|
||||
Fix: [ bug #1360 ] note indicator for member tab.
|
||||
Fix: Nb of notes and doc not visible onto tasks.
|
||||
Fix: [ bug #1372 ] Margin calculation does not work in proposals
|
||||
|
||||
***** ChangeLog for 3.5.2 compared to 3.5.1 *****
|
||||
Fix: Can't add user for a task.
|
||||
|
||||
@ -105,8 +105,8 @@ http://bugs.debian.org/package
|
||||
##### Testing a package into unstable env
|
||||
|
||||
Check you have a mysql server available from another interface than localhost
|
||||
Uncomment line if required and restart mysql
|
||||
bind-address = 127.0.0.1
|
||||
Comment line in /etc/mysql/my.cnf if required and restart mysql
|
||||
#bind-address = 127.0.0.1
|
||||
|
||||
Create a chroot called "unstable-amd64-sbuild"
|
||||
> sudo sbuild-createchroot --keyring= unstable /srv/chroot/unstable http://ftp.uk.debian.org/debian
|
||||
@ -120,14 +120,16 @@ Puis pour se connecter et préparer l'environnement
|
||||
> apt-get install links mysql-client
|
||||
|
||||
Pour tester un package
|
||||
> On host server, stop any server on port 80 and 3306 (same port will be used by chroot env)
|
||||
> cp ../build-area/* /srv/chroot/unstable/tmp
|
||||
> sudo schroot -c name_of_chroot
|
||||
> cd /tmp
|
||||
> lintian --pedantic -E -I dolibarr*.deb
|
||||
> lintian --pedantic -E -I dolibarr*.dsc
|
||||
> dpkg -i dolibarr*.deb
|
||||
> dpkg -i dolibarr*.deb ou pour avoir des traces: dpkg -D77777 -i dolibarr*.deb
|
||||
> apt-get install -f
|
||||
|
||||
Puis http://localhost/dolibarr/ (cela peut etre appeler depuis le hote).
|
||||
|
||||
|
||||
|
||||
@ -227,9 +229,13 @@ from origin/upstream and origin/pristine.
|
||||
* If new upstream is available onto sourceforge, launch:
|
||||
> debian/get-orig-source.sh
|
||||
|
||||
* Edit tgz file to remove ckeditor and phpexcel and renama file into dolibarr-x.y.z+dsfgw.tgz
|
||||
|
||||
* Staying into git root directory, run
|
||||
> git-import-orig -vv ../dolibarr-3.3.4.tgz
|
||||
and enter version when requested.
|
||||
> git-import-orig -vv ../dolibarr-x.y.z+dsfgw.tgz
|
||||
and enter version when requested with format
|
||||
x.y.z+dsfgw
|
||||
(x.y.z = version, w start from 1 and is increased for each new import)
|
||||
|
||||
Note: If there was errors solved manually after get-orig-sources.sh, you may need to make a git commit
|
||||
|
||||
|
||||
@ -117,24 +117,25 @@ class modMyModule extends DolibarrModules
|
||||
// 'objecttype:+tabname2:Title2:mylangfile@mymodule:$user->rights->othermodule->read:/mymodule/mynewtab2.php?id=__ID__', // To add another new tab identified by code tabname2
|
||||
// 'objecttype:-tabname:NU:conditiontoremove'); // To remove an existing tab identified by code tabname
|
||||
// where objecttype can be
|
||||
// 'thirdparty' to add a tab in third party view
|
||||
// 'intervention' to add a tab in intervention view
|
||||
// 'order_supplier' to add a tab in supplier order view
|
||||
// 'invoice_supplier' to add a tab in supplier invoice view
|
||||
// 'invoice' to add a tab in customer invoice view
|
||||
// 'order' to add a tab in customer order view
|
||||
// 'product' to add a tab in product view
|
||||
// 'stock' to add a tab in stock view
|
||||
// 'propal' to add a tab in propal view
|
||||
// 'member' to add a tab in fundation member view
|
||||
// 'contract' to add a tab in contract view
|
||||
// 'user' to add a tab in user view
|
||||
// 'group' to add a tab in group view
|
||||
// 'categories_x' to add a tab in category view (replace 'x' by type of category (0=product, 1=supplier, 2=customer, 3=member)
|
||||
// 'contact' to add a tab in contact view
|
||||
// 'contract' to add a tab in contract view
|
||||
// 'group' to add a tab in group view
|
||||
// 'intervention' to add a tab in intervention view
|
||||
// 'invoice' to add a tab in customer invoice view
|
||||
// 'invoice_supplier' to add a tab in supplier invoice view
|
||||
// 'member' to add a tab in fundation member view
|
||||
// 'opensurveypoll' to add a tab in opensurvey poll view
|
||||
// 'order' to add a tab in customer order view
|
||||
// 'order_supplier' to add a tab in supplier order view
|
||||
// 'payment' to add a tab in payment view
|
||||
// 'payment_supplier' to add a tab in supplier payment view
|
||||
// 'categories_x' to add a tab in category view (replace 'x' by type of category (0=product, 1=supplier, 2=customer, 3=member)
|
||||
// 'opensurveypoll' to add a tab in opensurvey poll view
|
||||
// 'product' to add a tab in product view
|
||||
// 'propal' to add a tab in propal view
|
||||
// 'project' to add a tab in project view
|
||||
// 'stock' to add a tab in stock view
|
||||
// 'thirdparty' to add a tab in third party view
|
||||
// 'user' to add a tab in user view
|
||||
$this->tabs = array();
|
||||
|
||||
// Dictionaries
|
||||
|
||||
@ -473,8 +473,8 @@ if ($user->rights->adherent->cotisation->creer && $action == 'cotisation' && ! $
|
||||
// Define output language
|
||||
$outputlangs = $langs;
|
||||
$newlang = '';
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST ['lang_id']))
|
||||
$newlang = $_REQUEST ['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id']))
|
||||
$newlang = $_REQUEST['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang))
|
||||
$newlang = $customer->default_lang;
|
||||
if (! empty($newlang)) {
|
||||
|
||||
@ -25,6 +25,15 @@
|
||||
* \brief Include to show main page for cashdesk module
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
$form=new Form($db);
|
||||
|
||||
// Get list of articles (in warehouse '$conf_fkentrepot' if defined and stock module enabled)
|
||||
if ( GETPOST('filtre') ) {
|
||||
|
||||
|
||||
@ -22,6 +22,8 @@ $langs->load("main");
|
||||
$langs->load("bills");
|
||||
$langs->load("cashdesk");
|
||||
|
||||
// Object $form must de defined
|
||||
|
||||
?>
|
||||
|
||||
<script type="text/javascript" src="javascript/facturation1.js"></script>
|
||||
|
||||
@ -18,6 +18,8 @@
|
||||
|
||||
$langs->load("main");
|
||||
|
||||
// Object $form must de defined
|
||||
|
||||
?>
|
||||
|
||||
<fieldset class="cadre_facturation"><legend class="titre1"><?php echo $langs->trans("Summary"); ?></legend>
|
||||
|
||||
@ -21,6 +21,8 @@
|
||||
* \brief validation.php
|
||||
*/
|
||||
|
||||
$form=new Form($db);
|
||||
|
||||
// Affichage des templates
|
||||
require ('tpl/validation1.tpl.php');
|
||||
|
||||
|
||||
@ -50,7 +50,7 @@ if ($user->societe_id > 0)
|
||||
unset($_GET["action"]);
|
||||
$action='';
|
||||
}
|
||||
$result = restrictedArea($user, 'agenda', $objectid, 'actioncomm&societe', 'myactions&allactions', 'fk_soc', 'id');
|
||||
$result = restrictedArea($user, 'agenda', $objectid, 'actioncomm&societe', 'myactions|allactions', 'fk_soc', 'id');
|
||||
|
||||
|
||||
$object = new ActionComm($db);
|
||||
@ -236,9 +236,9 @@ if ($id > 0 || ! empty($ref))
|
||||
print '</table>';
|
||||
|
||||
dol_fiche_end();
|
||||
|
||||
|
||||
print '<br>';
|
||||
|
||||
|
||||
// Contacts lines (modules that overwrite templates must declare this into descriptor)
|
||||
$dirtpls=array_merge($conf->modules_parts['tpl'],array('/core/tpl'));
|
||||
foreach($dirtpls as $reldir)
|
||||
|
||||
@ -53,7 +53,7 @@ if ($user->societe_id > 0)
|
||||
unset($_GET["action"]);
|
||||
$action='';
|
||||
}
|
||||
$result = restrictedArea($user, 'agenda', $objectid, 'actioncomm&societe', 'myactions&allactions', 'fk_soc', 'id');
|
||||
$result = restrictedArea($user, 'agenda', $objectid, 'actioncomm&societe', 'myactions|allactions', 'fk_soc', 'id');
|
||||
|
||||
$object = new ActionComm($db);
|
||||
|
||||
|
||||
@ -58,7 +58,7 @@ $originid=GETPOST('originid','int');
|
||||
$socid = GETPOST('socid','int');
|
||||
$id = GETPOST('id','int');
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result = restrictedArea($user, 'agenda', $id, 'actioncomm&societe', 'myactions&allactions', 'fk_soc', 'id');
|
||||
$result = restrictedArea($user, 'agenda', $id, 'actioncomm&societe', 'myactions|allactions', 'fk_soc', 'id');
|
||||
if ($user->societe_id && $socid) $result = restrictedArea($user,'societe',$socid);
|
||||
|
||||
$error=GETPOST("error");
|
||||
|
||||
@ -40,7 +40,7 @@ if ($user->societe_id > 0)
|
||||
$socid = $user->societe_id;
|
||||
}
|
||||
|
||||
$result = restrictedArea($user, 'agenda', $id, 'actioncomm&societe', 'myactions&allactions', 'fk_soc', 'id');
|
||||
$result = restrictedArea($user, 'agenda', $id, 'actioncomm&societe', 'myactions|allactions', 'fk_soc', 'id');
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@ -116,7 +116,7 @@ if ($action == 'confirm_clone' && $confirm == 'yes') {
|
||||
if ($object->id > 0) {
|
||||
$result = $object->createFromClone($socid);
|
||||
if ($result > 0) {
|
||||
header("Location: " . $_SERVER ['PHP_SELF'] . '?id=' . $result);
|
||||
header("Location: " . $_SERVER['PHP_SELF'] . '?id=' . $result);
|
||||
exit();
|
||||
} else {
|
||||
setEventMessage($object->error, 'errors');
|
||||
@ -157,7 +157,7 @@ else if ($action == 'confirm_deleteline' && $confirm == 'yes' && $user->rights->
|
||||
propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||
}
|
||||
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id);
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id);
|
||||
exit();
|
||||
}
|
||||
|
||||
@ -331,7 +331,7 @@ else if ($action == 'add' && $user->rights->propal->creer) {
|
||||
propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||
}
|
||||
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?id=' . $id);
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $id);
|
||||
exit();
|
||||
} else {
|
||||
$db->rollback();
|
||||
@ -482,7 +482,7 @@ if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! G
|
||||
// This avoid sending mail twice if going out and then back to page
|
||||
$mesg = $langs->trans('MailSuccessfulySent', $mailfile->getValidAddress($from, 2), $mailfile->getValidAddress($sendto, 2));
|
||||
setEventMessage($mesg);
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id);
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id);
|
||||
exit();
|
||||
} else {
|
||||
dol_print_error($db);
|
||||
@ -886,7 +886,7 @@ else if ($action == 'updateligne' && $user->rights->propal->creer && GETPOST('sa
|
||||
}
|
||||
|
||||
else if ($action == 'updateligne' && $user->rights->propal->creer && GETPOST('cancel') == $langs->trans('Cancel')) {
|
||||
header('Location: ' . $_SERVER ['PHP_SELF'] . '?id=' . $object->id); // Pour reaffichage de la fiche en cours d'edition
|
||||
header('Location: ' . $_SERVER['PHP_SELF'] . '?id=' . $object->id); // Pour reaffichage de la fiche en cours d'edition
|
||||
exit();
|
||||
}
|
||||
|
||||
@ -910,7 +910,7 @@ else if ($action == 'builddoc' && $user->rights->propal->creer) {
|
||||
dol_print_error($db, $result);
|
||||
exit();
|
||||
} else {
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . (empty($conf->global->MAIN_JUMP_TAG) ? '' : '#builddoc'));
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . (empty($conf->global->MAIN_JUMP_TAG) ? '' : '#builddoc'));
|
||||
exit();
|
||||
}
|
||||
}
|
||||
@ -983,7 +983,7 @@ else if ($action == 'up' && $user->rights->propal->creer) {
|
||||
propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||
}
|
||||
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?id=' . $id . '#' . GETPOST('rowid'));
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $id . '#' . GETPOST('rowid'));
|
||||
exit();
|
||||
}
|
||||
|
||||
@ -1002,7 +1002,7 @@ else if ($action == 'down' && $user->rights->propal->creer) {
|
||||
propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||
}
|
||||
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?id=' . $id . '#' . GETPOST('rowid'));
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $id . '#' . GETPOST('rowid'));
|
||||
exit();
|
||||
} else if ($action == 'update_extras') {
|
||||
// Fill array 'array_options' with data from update form
|
||||
@ -1040,7 +1040,7 @@ if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $user->rights->propal->
|
||||
}
|
||||
|
||||
if ($result >= 0) {
|
||||
header("Location: " . $_SERVER ['PHP_SELF'] . "?id=" . $object->id);
|
||||
header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $object->id);
|
||||
exit();
|
||||
} else {
|
||||
if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS') {
|
||||
@ -1067,7 +1067,7 @@ if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $user->rights->propal->
|
||||
$result = $object->delete_contact($lineid);
|
||||
|
||||
if ($result >= 0) {
|
||||
header("Location: " . $_SERVER ['PHP_SELF'] . "?id=" . $object->id);
|
||||
header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $object->id);
|
||||
exit();
|
||||
} else {
|
||||
dol_print_error($db);
|
||||
@ -1099,7 +1099,7 @@ if ($action == 'create') {
|
||||
|
||||
$object = new Propal($db);
|
||||
|
||||
print '<form name="addprop" action="' . $_SERVER ["PHP_SELF"] . '" method="POST">';
|
||||
print '<form name="addprop" action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="add">';
|
||||
|
||||
@ -1349,22 +1349,22 @@ if ($action == 'create') {
|
||||
// 1),
|
||||
array('type' => 'other','name' => 'socid','label' => $langs->trans("SelectThirdParty"),'value' => $form->select_company(GETPOST('socid', 'int'), 'socid', '(s.client=1 OR s.client=2 OR s.client=3)')));
|
||||
// Paiement incomplet. On demande si motif = escompte ou autre
|
||||
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?id=' . $object->id, $langs->trans('ClonePropal'), $langs->trans('ConfirmClonePropal', $object->ref), 'confirm_clone', $formquestion, 'yes', 1);
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('ClonePropal'), $langs->trans('ConfirmClonePropal', $object->ref), 'confirm_clone', $formquestion, 'yes', 1);
|
||||
}
|
||||
|
||||
// Confirm delete
|
||||
else if ($action == 'delete') {
|
||||
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?id=' . $object->id, $langs->trans('DeleteProp'), $langs->trans('ConfirmDeleteProp', $object->ref), 'confirm_delete', '', 0, 1);
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('DeleteProp'), $langs->trans('ConfirmDeleteProp', $object->ref), 'confirm_delete', '', 0, 1);
|
||||
}
|
||||
|
||||
// Confirm reopen
|
||||
else if ($action == 'reopen') {
|
||||
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?id=' . $object->id, $langs->trans('ReOpen'), $langs->trans('ConfirmReOpenProp', $object->ref), 'confirm_reopen', '', 0, 1);
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('ReOpen'), $langs->trans('ConfirmReOpenProp', $object->ref), 'confirm_reopen', '', 0, 1);
|
||||
}
|
||||
|
||||
// Confirmation delete product/service line
|
||||
else if ($action == 'ask_deleteline') {
|
||||
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?id=' . $object->id . '&lineid=' . $lineid, $langs->trans('DeleteProductLine'), $langs->trans('ConfirmDeleteProductLine'), 'confirm_deleteline', '', 0, 1);
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id . '&lineid=' . $lineid, $langs->trans('DeleteProductLine'), $langs->trans('ConfirmDeleteProductLine'), 'confirm_deleteline', '', 0, 1);
|
||||
}
|
||||
|
||||
// Confirm validate proposal
|
||||
@ -1392,7 +1392,7 @@ if ($action == 'create') {
|
||||
}
|
||||
|
||||
if (! $error)
|
||||
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?id=' . $object->id, $langs->trans('ValidateProp'), $text, 'confirm_validate', '', 0, 1);
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('ValidateProp'), $text, 'confirm_validate', '', 0, 1);
|
||||
}
|
||||
|
||||
if (! $formconfirm) {
|
||||
@ -1419,7 +1419,7 @@ if ($action == 'create') {
|
||||
print '<table class="nobordernopadding" width="100%"><tr><td class="nowrap">';
|
||||
print $langs->trans('RefCustomer') . '</td>';
|
||||
if ($action != 'refclient' && ! empty($object->brouillon))
|
||||
print '<td align="right"><a href="' . $_SERVER ['PHP_SELF'] . '?action=refclient&id=' . $object->id . '">' . img_edit($langs->trans('Modify')) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER['PHP_SELF'] . '?action=refclient&id=' . $object->id . '">' . img_edit($langs->trans('Modify')) . '</a></td>';
|
||||
print '</td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="5">';
|
||||
@ -1458,7 +1458,7 @@ if ($action == 'create') {
|
||||
// Remise dispo de type non avoir
|
||||
$filter = 'fk_facture_source IS NULL';
|
||||
print '<br>';
|
||||
$form->form_remise_dispo($_SERVER ["PHP_SELF"] . '?id=' . $object->id, 0, 'remise_id', $soc->id, $absolute_discount, $filter);
|
||||
$form->form_remise_dispo($_SERVER["PHP_SELF"] . '?id=' . $object->id, 0, 'remise_id', $soc->id, $absolute_discount, $filter);
|
||||
}
|
||||
}
|
||||
if ($absolute_creditnote) {
|
||||
@ -1475,11 +1475,11 @@ if ($action == 'create') {
|
||||
print $langs->trans('Date');
|
||||
print '</td>';
|
||||
if ($action != 'editdate' && ! empty($object->brouillon))
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editdate&id=' . $object->id . '">' . img_edit($langs->trans('SetDate'), 1) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editdate&id=' . $object->id . '">' . img_edit($langs->trans('SetDate'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if (! empty($object->brouillon) && $action == 'editdate') {
|
||||
print '<form name="editdate" action="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
|
||||
print '<form name="editdate" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="setdate">';
|
||||
$form->select_date($object->date, 're', '', '', 0, "editdate");
|
||||
@ -1501,11 +1501,11 @@ if ($action == 'create') {
|
||||
print $langs->trans('DateEndPropal');
|
||||
print '</td>';
|
||||
if ($action != 'editecheance' && ! empty($object->brouillon))
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editecheance&id=' . $object->id . '">' . img_edit($langs->trans('SetConditions'), 1) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editecheance&id=' . $object->id . '">' . img_edit($langs->trans('SetConditions'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if (! empty($object->brouillon) && $action == 'editecheance') {
|
||||
print '<form name="editecheance" action="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
|
||||
print '<form name="editecheance" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="setecheance">';
|
||||
$form->select_date($object->fin_validite, 'ech', '', '', '', "editecheance");
|
||||
@ -1529,13 +1529,13 @@ if ($action == 'create') {
|
||||
print $langs->trans('PaymentConditionsShort');
|
||||
print '</td>';
|
||||
if ($action != 'editconditions' && ! empty($object->brouillon))
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editconditions&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetConditions'), 1) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editconditions&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetConditions'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if ($action == 'editconditions') {
|
||||
$form->form_conditions_reglement($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->cond_reglement_id, 'cond_reglement_id');
|
||||
$form->form_conditions_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->cond_reglement_id, 'cond_reglement_id');
|
||||
} else {
|
||||
$form->form_conditions_reglement($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->cond_reglement_id, 'none');
|
||||
$form->form_conditions_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->cond_reglement_id, 'none');
|
||||
}
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
@ -1547,11 +1547,11 @@ if ($action == 'create') {
|
||||
print $langs->trans('DeliveryDate');
|
||||
print '</td>';
|
||||
if ($action != 'editdate_livraison' && ! empty($object->brouillon))
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editdate_livraison&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetDeliveryDate'), 1) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editdate_livraison&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetDeliveryDate'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if ($action == 'editdate_livraison') {
|
||||
print '<form name="editdate_livraison" action="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
|
||||
print '<form name="editdate_livraison" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="setdate_livraison">';
|
||||
$form->select_date($object->date_livraison, 'liv_', '', '', '', "editdate_livraison");
|
||||
@ -1571,13 +1571,13 @@ if ($action == 'create') {
|
||||
print ' (' . $langs->trans('AfterOrder') . ')';
|
||||
print '</td>';
|
||||
if ($action != 'editavailability' && ! empty($object->brouillon))
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editavailability&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetAvailability'), 1) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editavailability&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetAvailability'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if ($action == 'editavailability') {
|
||||
$form->form_availability($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->availability_id, 'availability_id', 1);
|
||||
$form->form_availability($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->availability_id, 'availability_id', 1);
|
||||
} else {
|
||||
$form->form_availability($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->availability_id, 'none', 1);
|
||||
$form->form_availability($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->availability_id, 'none', 1);
|
||||
}
|
||||
|
||||
print '</td>';
|
||||
@ -1589,13 +1589,13 @@ if ($action == 'create') {
|
||||
print $langs->trans('Source');
|
||||
print '</td>';
|
||||
if ($action != 'editdemandreason' && ! empty($object->brouillon))
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editdemandreason&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetDemandReason'), 1) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editdemandreason&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetDemandReason'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if ($action == 'editdemandreason') {
|
||||
$form->formInputReason($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->demand_reason_id, 'demand_reason_id', 1);
|
||||
$form->formInputReason($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->demand_reason_id, 'demand_reason_id', 1);
|
||||
} else {
|
||||
$form->formInputReason($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->demand_reason_id, 'none');
|
||||
$form->formInputReason($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->demand_reason_id, 'none');
|
||||
}
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
@ -1607,13 +1607,13 @@ if ($action == 'create') {
|
||||
print $langs->trans('PaymentMode');
|
||||
print '</td>';
|
||||
if ($action != 'editmode' && ! empty($object->brouillon))
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editmode&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetMode'), 1) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editmode&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetMode'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if ($action == 'editmode') {
|
||||
$form->form_modes_reglement($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->mode_reglement_id, 'mode_reglement_id');
|
||||
$form->form_modes_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->mode_reglement_id, 'mode_reglement_id');
|
||||
} else {
|
||||
$form->form_modes_reglement($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->mode_reglement_id, 'none');
|
||||
$form->form_modes_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->mode_reglement_id, 'none');
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
@ -1625,13 +1625,13 @@ if ($action == 'create') {
|
||||
print $langs->trans('Project') . '</td>';
|
||||
if ($user->rights->propal->creer) {
|
||||
if ($action != 'classify')
|
||||
print '<td align="right"><a href="' . $_SERVER ['PHP_SELF'] . '?action=classify&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER['PHP_SELF'] . '?action=classify&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if ($action == 'classify') {
|
||||
$form->form_project($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid');
|
||||
$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid');
|
||||
} else {
|
||||
$form->form_project($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none');
|
||||
$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none');
|
||||
}
|
||||
print '</td></tr>';
|
||||
} else {
|
||||
@ -1688,7 +1688,7 @@ if ($action == 'create') {
|
||||
}
|
||||
|
||||
if ($action == 'edit_extras' && $user->rights->propal->creer && GETPOST('attribute') == $key) {
|
||||
print '<form enctype="multipart/form-data" action="' . $_SERVER ["PHP_SELF"] . '" method="post" name="formsoc">';
|
||||
print '<form enctype="multipart/form-data" action="' . $_SERVER["PHP_SELF"] . '" method="post" name="formsoc">';
|
||||
print '<input type="hidden" name="action" value="update_extras">';
|
||||
print '<input type="hidden" name="attribute" value="' . $key . '">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
@ -1702,7 +1702,7 @@ if ($action == 'create') {
|
||||
} else {
|
||||
print $extrafields->showOutputField($key, $value);
|
||||
if ($object->statut == 0 && $user->rights->propal->creer)
|
||||
print '<a href="' . $_SERVER ['PHP_SELF'] . '?id=' . $object->id . '&action=edit_extras&attribute=' . $key . '">' . img_picto('', 'edit') . ' ' . $langs->trans('Modify') . '</a>';
|
||||
print '<a href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=edit_extras&attribute=' . $key . '">' . img_picto('', 'edit') . ' ' . $langs->trans('Modify') . '</a>';
|
||||
}
|
||||
print '</td></tr>' . "\n";
|
||||
}
|
||||
@ -1770,7 +1770,7 @@ if ($action == 'create') {
|
||||
// Show object lines
|
||||
$result = $object->getLinesArray();
|
||||
|
||||
print ' <form name="addproduct" id="addproduct" action="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . (($action != 'editline') ? '#add' : '#line_' . GETPOST('lineid')) . '" method="POST">
|
||||
print ' <form name="addproduct" id="addproduct" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . (($action != 'editline') ? '#add' : '#line_' . GETPOST('lineid')) . '" method="POST">
|
||||
<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">
|
||||
<input type="hidden" name="action" value="' . (($action != 'editline') ? 'addline' : 'updateligne') . '">
|
||||
<input type="hidden" name="mode" value="">
|
||||
@ -1812,7 +1812,7 @@ if ($action == 'create') {
|
||||
/*
|
||||
* Form to close proposal (signed or not)
|
||||
*/
|
||||
$form_close = '<form action="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
|
||||
$form_close = '<form action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
|
||||
$form_close .= '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
$form_close .= '<table class="border" width="100%">';
|
||||
$form_close .= '<tr><td width="150" align="left">' . $langs->trans("CloseAs") . '</td><td align="left">';
|
||||
@ -1850,7 +1850,7 @@ if ($action == 'create') {
|
||||
// Validate
|
||||
if ($object->statut == 0 && $object->total_ttc >= 0 && count($object->lines) > 0 && $user->rights->propal->valider) {
|
||||
if (count($object->lines) > 0)
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '&action=validate">' . $langs->trans('Validate') . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=validate">' . $langs->trans('Validate') . '</a></div>';
|
||||
// else print '<a class="butActionRefused" href="#">'.$langs->trans('Validate').'</a>';
|
||||
}
|
||||
// Create event
|
||||
@ -1863,19 +1863,19 @@ if ($action == 'create') {
|
||||
}
|
||||
// Edit
|
||||
if ($object->statut == 1 && $user->rights->propal->creer) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '&action=modif">' . $langs->trans('Modify') . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=modif">' . $langs->trans('Modify') . '</a></div>';
|
||||
}
|
||||
|
||||
// ReOpen
|
||||
if (($object->statut == 2 || $object->statut == 3) && $user->rights->propal->cloturer) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '&action=reopen' . (empty($conf->global->MAIN_JUMP_TAG) ? '' : '#reopen') . '"';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=reopen' . (empty($conf->global->MAIN_JUMP_TAG) ? '' : '#reopen') . '"';
|
||||
print '>' . $langs->trans('ReOpen') . '</a></div>';
|
||||
}
|
||||
|
||||
// Send
|
||||
if ($object->statut == 1 || $object->statut == 2) {
|
||||
if (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->propal->propal_advance->send) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '&action=presend&mode=init">' . $langs->trans('SendByMail') . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=presend&mode=init">' . $langs->trans('SendByMail') . '</a></div>';
|
||||
} else
|
||||
print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">' . $langs->trans('SendByMail') . '</a></div>';
|
||||
}
|
||||
@ -1904,24 +1904,24 @@ if ($action == 'create') {
|
||||
|
||||
$arraypropal = $object->getInvoiceArrayList();
|
||||
if (is_array($arraypropal) && count($arraypropal) > 0) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '&action=classifybilled&socid=' . $object->socid . '">' . $langs->trans("ClassifyBilled") . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=classifybilled&socid=' . $object->socid . '">' . $langs->trans("ClassifyBilled") . '</a></div>';
|
||||
}
|
||||
}
|
||||
|
||||
// Close
|
||||
if ($object->statut == 1 && $user->rights->propal->cloturer) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '&action=statut' . (empty($conf->global->MAIN_JUMP_TAG) ? '' : '#close') . '"';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=statut' . (empty($conf->global->MAIN_JUMP_TAG) ? '' : '#close') . '"';
|
||||
print '>' . $langs->trans('Close') . '</a></div>';
|
||||
}
|
||||
|
||||
// Clone
|
||||
if ($user->rights->propal->creer) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ['PHP_SELF'] . '?id=' . $object->id . '&socid=' . $object->socid . '&action=clone&object=' . $object->element . '">' . $langs->trans("ToClone") . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&socid=' . $object->socid . '&action=clone&object=' . $object->element . '">' . $langs->trans("ToClone") . '</a></div>';
|
||||
}
|
||||
|
||||
// Delete
|
||||
if ($user->rights->propal->supprimer) {
|
||||
print '<div class="inline-block divButAction"><a class="butActionDelete" href="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '&action=delete"';
|
||||
print '<div class="inline-block divButAction"><a class="butActionDelete" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=delete"';
|
||||
print '>' . $langs->trans('Delete') . '</a></div>';
|
||||
}
|
||||
}
|
||||
@ -1942,7 +1942,7 @@ if ($action == 'create') {
|
||||
*/
|
||||
$filename = dol_sanitizeFileName($object->ref);
|
||||
$filedir = $conf->propal->dir_output . "/" . dol_sanitizeFileName($object->ref);
|
||||
$urlsource = $_SERVER ["PHP_SELF"] . "?id=" . $object->id;
|
||||
$urlsource = $_SERVER["PHP_SELF"] . "?id=" . $object->id;
|
||||
$genallowed = $user->rights->propal->creer;
|
||||
$delallowed = $user->rights->propal->supprimer;
|
||||
|
||||
@ -1982,8 +1982,8 @@ if ($action == 'create') {
|
||||
// Define output language
|
||||
$outputlangs = $langs;
|
||||
$newlang = '';
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST ['lang_id']))
|
||||
$newlang = $_REQUEST ['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id']))
|
||||
$newlang = $_REQUEST['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang))
|
||||
$newlang = $object->client->default_lang;
|
||||
if (! empty($newlang)) {
|
||||
@ -2057,7 +2057,7 @@ if ($action == 'create') {
|
||||
$formmail->param ['action'] = 'send';
|
||||
$formmail->param ['models'] = 'propal_send';
|
||||
$formmail->param ['id'] = $object->id;
|
||||
$formmail->param ['returnurl'] = $_SERVER ["PHP_SELF"] . '?id=' . $object->id;
|
||||
$formmail->param ['returnurl'] = $_SERVER["PHP_SELF"] . '?id=' . $object->id;
|
||||
// Init list of files
|
||||
if (GETPOST("mode") == 'init') {
|
||||
$formmail->clear_attached_files();
|
||||
|
||||
@ -673,16 +673,26 @@ class Propal extends CommonObject
|
||||
dol_syslog(get_class($this)."::create ".$this->error, LOG_ERR);
|
||||
return -3;
|
||||
}
|
||||
|
||||
// Check parameters
|
||||
if (! empty($this->ref)) // We check that ref is not already used
|
||||
{
|
||||
$result=self::isExistingObject($this->element, 0, $this->ref); // Check ref is not yet used
|
||||
if ($result > 0)
|
||||
{
|
||||
$this->error='ErrorRefAlreadyExists';
|
||||
dol_syslog(get_class($this)."::create ".$this->error,LOG_WARNING);
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($this->date))
|
||||
{
|
||||
$this->error="Date of proposal is required";
|
||||
dol_syslog(get_class($this)."::create ".$this->error, LOG_ERR);
|
||||
return -4;
|
||||
}
|
||||
if (! empty($this->ref))
|
||||
{
|
||||
$result=$this->verifyNumRef(); // Check ref is not yet used
|
||||
}
|
||||
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
@ -612,6 +612,18 @@ class Commande extends CommonOrder
|
||||
dol_syslog(get_class($this)."::create user=".$user->id);
|
||||
|
||||
// Check parameters
|
||||
if (! empty($this->ref)) // We check that ref is not already used
|
||||
{
|
||||
$result=self::isExistingObject($this->element, 0, $this->ref); // Check ref is not yet used
|
||||
if ($result > 0)
|
||||
{
|
||||
$this->error='ErrorRefAlreadyExists';
|
||||
dol_syslog(get_class($this)."::create ".$this->error,LOG_WARNING);
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
$soc = new Societe($this->db);
|
||||
$result=$soc->fetch($this->socid);
|
||||
if ($result < 0)
|
||||
@ -1039,7 +1051,7 @@ class Commande extends CommonOrder
|
||||
function addline($desc, $pu_ht, $qty, $txtva, $txlocaltax1=0, $txlocaltax2=0, $fk_product=0, $remise_percent=0, $info_bits=0, $fk_remise_except=0, $price_base_type='HT', $pu_ttc=0, $date_start='', $date_end='', $type=0, $rang=-1, $special_code=0, $fk_parent_line=0, $fk_fournprice=null, $pa_ht=0, $label='',$array_option=0)
|
||||
{
|
||||
global $mysoc, $conf, $langs;
|
||||
|
||||
|
||||
$commandeid=$this->id;
|
||||
|
||||
dol_syslog(get_class($this)."::addline commandeid=$commandeid, desc=$desc, pu_ht=$pu_ht, qty=$qty, txtva=$txtva, fk_product=$fk_product, remise_percent=$remise_percent, info_bits=$info_bits, fk_remise_except=$fk_remise_except, price_base_type=$price_base_type, pu_ttc=$pu_ttc, date_start=$date_start, date_end=$date_end, type=$type", LOG_DEBUG);
|
||||
@ -1086,9 +1098,9 @@ class Commande extends CommonOrder
|
||||
// qty, pu, remise_percent et txtva
|
||||
// TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker
|
||||
// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
|
||||
|
||||
|
||||
$localtaxes_type=getLocalTaxesFromRate($txtva,0,$mysoc);
|
||||
|
||||
|
||||
$tabprice = calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type,'', $localtaxes_type);
|
||||
$total_ht = $tabprice[0];
|
||||
$total_tva = $tabprice[1];
|
||||
@ -1103,14 +1115,14 @@ class Commande extends CommonOrder
|
||||
$rangmax = $this->line_max($fk_parent_line);
|
||||
$rangtouse = $rangmax + 1;
|
||||
}
|
||||
|
||||
|
||||
$product_type=$type;
|
||||
if (!empty($fk_product))
|
||||
{
|
||||
$product=new Product($this->db);
|
||||
$result=$product->fetch($fk_product);
|
||||
$product_type=$product->type;
|
||||
|
||||
|
||||
if($conf->global->STOCK_MUST_BE_ENOUGH_FOR_ORDER && $product_type == 0 && $product->stock_reel < $qty) {
|
||||
$this->error=$langs->trans('ErrorStockIsNotEnough');
|
||||
$this->db->rollback();
|
||||
@ -2303,9 +2315,9 @@ class Commande extends CommonOrder
|
||||
// qty, pu, remise_percent et txtva
|
||||
// TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker
|
||||
// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
|
||||
|
||||
|
||||
$localtaxes_type=getLocalTaxesFromRate($txtva,0,$mysoc);
|
||||
|
||||
|
||||
$tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, '', $localtaxes_type);
|
||||
$total_ht = $tabprice[0];
|
||||
$total_tva = $tabprice[1];
|
||||
|
||||
@ -111,7 +111,7 @@ if ($action == 'confirm_clone' && $confirm == 'yes' && $user->rights->commande->
|
||||
if ($object->id > 0) {
|
||||
$result = $object->createFromClone($socid);
|
||||
if ($result > 0) {
|
||||
header("Location: " . $_SERVER ['PHP_SELF'] . '?id=' . $result);
|
||||
header("Location: " . $_SERVER['PHP_SELF'] . '?id=' . $result);
|
||||
exit();
|
||||
} else {
|
||||
$mesg = '<div class="error">' . $object->error . '</div>';
|
||||
@ -126,7 +126,7 @@ else if ($action == 'reopen' && $user->rights->commande->creer) {
|
||||
if ($object->statut == 3) {
|
||||
$result = $object->set_reopen($user);
|
||||
if ($result > 0) {
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id);
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id);
|
||||
exit();
|
||||
} else {
|
||||
$mesg = '<div class="error">' . $object->error . '</div>';
|
||||
@ -165,7 +165,7 @@ else if ($action == 'confirm_deleteline' && $confirm == 'yes' && $user->rights->
|
||||
commande_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||
}
|
||||
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id);
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id);
|
||||
exit();
|
||||
} else {
|
||||
$mesg = '<div class="error">' . $object->error . '</div>';
|
||||
@ -371,7 +371,7 @@ else if ($action == 'add' && $user->rights->commande->creer) {
|
||||
// End of object creation, we show it
|
||||
if ($object_id > 0 && ! $error) {
|
||||
$db->commit();
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?id=' . $object_id);
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object_id);
|
||||
exit();
|
||||
} else {
|
||||
$db->rollback();
|
||||
@ -825,7 +825,7 @@ else if ($action == 'updateligne' && $user->rights->commande->creer && GETPOST('
|
||||
}
|
||||
|
||||
else if ($action == 'updateligne' && $user->rights->commande->creer && GETPOST('cancel') == $langs->trans('Cancel')) {
|
||||
header('Location: ' . $_SERVER ['PHP_SELF'] . '?id=' . $object->id); // Pour reaffichage de la fiche en cours d'edition
|
||||
header('Location: ' . $_SERVER['PHP_SELF'] . '?id=' . $object->id); // Pour reaffichage de la fiche en cours d'edition
|
||||
exit();
|
||||
}
|
||||
|
||||
@ -847,8 +847,8 @@ else if ($action == 'confirm_validate' && $confirm == 'yes' && $user->rights->co
|
||||
// Define output language
|
||||
$outputlangs = $langs;
|
||||
$newlang = '';
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST ['lang_id']))
|
||||
$newlang = $_REQUEST ['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id']))
|
||||
$newlang = $_REQUEST['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang))
|
||||
$newlang = $object->client->default_lang;
|
||||
if (! empty($newlang)) {
|
||||
@ -880,8 +880,8 @@ else if ($action == 'confirm_modif' && $user->rights->commande->creer) {
|
||||
// Define output language
|
||||
$outputlangs = $langs;
|
||||
$newlang = '';
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST ['lang_id']))
|
||||
$newlang = $_REQUEST ['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id']))
|
||||
$newlang = $_REQUEST['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang))
|
||||
$newlang = $object->client->default_lang;
|
||||
if (! empty($newlang)) {
|
||||
@ -929,8 +929,8 @@ else if ($action == 'up' && $user->rights->commande->creer) {
|
||||
// Define output language
|
||||
$outputlangs = $langs;
|
||||
$newlang = '';
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST ['lang_id']))
|
||||
$newlang = $_REQUEST ['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id']))
|
||||
$newlang = $_REQUEST['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang))
|
||||
$newlang = $object->client->default_lang;
|
||||
if (! empty($newlang)) {
|
||||
@ -941,7 +941,7 @@ else if ($action == 'up' && $user->rights->commande->creer) {
|
||||
if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE))
|
||||
commande_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '#' . GETPOST('rowid'));
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '#' . GETPOST('rowid'));
|
||||
exit();
|
||||
}
|
||||
|
||||
@ -951,8 +951,8 @@ else if ($action == 'down' && $user->rights->commande->creer) {
|
||||
// Define output language
|
||||
$outputlangs = $langs;
|
||||
$newlang = '';
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST ['lang_id']))
|
||||
$newlang = $_REQUEST ['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id']))
|
||||
$newlang = $_REQUEST['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang))
|
||||
$newlang = $object->client->default_lang;
|
||||
if (! empty($newlang)) {
|
||||
@ -962,7 +962,7 @@ else if ($action == 'down' && $user->rights->commande->creer) {
|
||||
if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE))
|
||||
commande_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '#' . GETPOST('rowid'));
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '#' . GETPOST('rowid'));
|
||||
exit();
|
||||
}
|
||||
|
||||
@ -980,8 +980,8 @@ else if ($action == 'builddoc') // In get or post
|
||||
// Define output language
|
||||
$outputlangs = $langs;
|
||||
$newlang = '';
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST ['lang_id']))
|
||||
$newlang = $_REQUEST ['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id']))
|
||||
$newlang = $_REQUEST['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang))
|
||||
$newlang = $object->client->default_lang;
|
||||
if (! empty($newlang)) {
|
||||
@ -1176,7 +1176,7 @@ if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! G
|
||||
} else {
|
||||
// Redirect here
|
||||
// This avoid sending mail twice if going out and then back to page
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '&mesg=' . urlencode($mesg));
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&mesg=' . urlencode($mesg));
|
||||
exit();
|
||||
}
|
||||
} else {
|
||||
@ -1219,7 +1219,7 @@ if (! $error && ! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $user->righ
|
||||
}
|
||||
|
||||
if ($result >= 0) {
|
||||
header("Location: " . $_SERVER ['PHP_SELF'] . "?id=" . $object->id);
|
||||
header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $object->id);
|
||||
exit();
|
||||
} else {
|
||||
if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS') {
|
||||
@ -1245,7 +1245,7 @@ if (! $error && ! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $user->righ
|
||||
$result = $object->delete_contact($lineid);
|
||||
|
||||
if ($result >= 0) {
|
||||
header("Location: " . $_SERVER ['PHP_SELF'] . "?id=" . $object->id);
|
||||
header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $object->id);
|
||||
exit();
|
||||
} else {
|
||||
dol_print_error($db);
|
||||
@ -1349,7 +1349,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
|
||||
$nbrow = 10;
|
||||
|
||||
print '<form name="crea_commande" action="' . $_SERVER ["PHP_SELF"] . '" method="POST">';
|
||||
print '<form name="crea_commande" action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="add">';
|
||||
print '<input type="hidden" name="socid" value="' . $soc->id . '">' . "\n";
|
||||
@ -1603,7 +1603,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
* Confirmation de la suppression de la commande
|
||||
*/
|
||||
if ($action == 'delete') {
|
||||
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?id=' . $object->id, $langs->trans('DeleteOrder'), $langs->trans('ConfirmDeleteOrder'), 'confirm_delete', '', 0, 1);
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('DeleteOrder'), $langs->trans('ConfirmDeleteOrder'), 'confirm_delete', '', 0, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1639,7 +1639,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
array('type' => 'other','name' => 'idwarehouse','label' => $langs->trans("SelectWarehouseForStockDecrease"),'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1)));
|
||||
}
|
||||
|
||||
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?id=' . $object->id, $langs->trans('ValidateOrder'), $text, 'confirm_validate', $formquestion, 0, 1, 220);
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('ValidateOrder'), $text, 'confirm_validate', $formquestion, 0, 1, 220);
|
||||
}
|
||||
|
||||
// Confirm back to draft status
|
||||
@ -1659,14 +1659,14 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
array('type' => 'other','name' => 'idwarehouse','label' => $langs->trans("SelectWarehouseForStockIncrease"),'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1)));
|
||||
}
|
||||
|
||||
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?id=' . $object->id, $langs->trans('UnvalidateOrder'), $text, 'confirm_modif', $formquestion, "yes", 1, 220);
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('UnvalidateOrder'), $text, 'confirm_modif', $formquestion, "yes", 1, 220);
|
||||
}
|
||||
|
||||
/*
|
||||
* Confirmation de la cloture
|
||||
*/
|
||||
if ($action == 'shipped') {
|
||||
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?id=' . $object->id, $langs->trans('CloseOrder'), $langs->trans('ConfirmCloseOrder'), 'confirm_shipped', '', 0, 1);
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('CloseOrder'), $langs->trans('ConfirmCloseOrder'), 'confirm_shipped', '', 0, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1688,14 +1688,14 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
array('type' => 'other','name' => 'idwarehouse','label' => $langs->trans("SelectWarehouseForStockIncrease"),'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1)));
|
||||
}
|
||||
|
||||
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?id=' . $object->id, $langs->trans('Cancel'), $text, 'confirm_cancel', $formquestion, 0, 1);
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('Cancel'), $text, 'confirm_cancel', $formquestion, 0, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Confirmation de la suppression d'une ligne produit
|
||||
*/
|
||||
if ($action == 'ask_deleteline') {
|
||||
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?id=' . $object->id . '&lineid=' . $lineid, $langs->trans('DeleteProductLine'), $langs->trans('ConfirmDeleteProductLine'), 'confirm_deleteline', '', 0, 1);
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id . '&lineid=' . $lineid, $langs->trans('DeleteProductLine'), $langs->trans('ConfirmDeleteProductLine'), 'confirm_deleteline', '', 0, 1);
|
||||
}
|
||||
|
||||
// Clone confirmation
|
||||
@ -1709,7 +1709,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
// => 1),
|
||||
array('type' => 'other','name' => 'socid','label' => $langs->trans("SelectThirdParty"),'value' => $form->select_company(GETPOST('socid', 'int'), 'socid', '(s.client=1 OR s.client=3)')));
|
||||
// Paiement incomplet. On demande si motif = escompte ou autre
|
||||
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?id=' . $object->id, $langs->trans('CloneOrder'), $langs->trans('ConfirmCloneOrder', $object->ref), 'confirm_clone', $formquestion, 'yes', 1);
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('CloneOrder'), $langs->trans('ConfirmCloneOrder', $object->ref), 'confirm_clone', $formquestion, 'yes', 1);
|
||||
}
|
||||
|
||||
if (! $formconfirm) {
|
||||
@ -1751,11 +1751,11 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
print $langs->trans('RefCustomer') . '</td><td align="left">';
|
||||
print '</td>';
|
||||
if ($action != 'refcustomer' && $object->brouillon)
|
||||
print '<td align="right"><a href="' . $_SERVER ['PHP_SELF'] . '?action=refcustomer&id=' . $object->id . '">' . img_edit($langs->trans('Modify')) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER['PHP_SELF'] . '?action=refcustomer&id=' . $object->id . '">' . img_edit($langs->trans('Modify')) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if ($user->rights->commande->creer && $action == 'refcustomer') {
|
||||
print '<form action="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
|
||||
print '<form action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="set_ref_client">';
|
||||
print '<input type="text" class="flat" size="20" name="ref_client" value="' . $object->ref_client . '">';
|
||||
@ -1782,9 +1782,9 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
}
|
||||
|
||||
// Relative and absolute discounts
|
||||
$addrelativediscount = '<a href="' . DOL_URL_ROOT . '/comm/remise.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER ["PHP_SELF"]) . '?facid=' . $object->id . '">' . $langs->trans("EditRelativeDiscounts") . '</a>';
|
||||
$addabsolutediscount = '<a href="' . DOL_URL_ROOT . '/comm/remx.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER ["PHP_SELF"]) . '?facid=' . $object->id . '">' . $langs->trans("EditGlobalDiscounts") . '</a>';
|
||||
$addcreditnote = '<a href="' . DOL_URL_ROOT . '/compta/facture.php?action=create&socid=' . $soc->id . '&type=2&backtopage=' . urlencode($_SERVER ["PHP_SELF"]) . '?facid=' . $object->id . '">' . $langs->trans("AddCreditNote") . '</a>';
|
||||
$addrelativediscount = '<a href="' . DOL_URL_ROOT . '/comm/remise.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER["PHP_SELF"]) . '?facid=' . $object->id . '">' . $langs->trans("EditRelativeDiscounts") . '</a>';
|
||||
$addabsolutediscount = '<a href="' . DOL_URL_ROOT . '/comm/remx.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER["PHP_SELF"]) . '?facid=' . $object->id . '">' . $langs->trans("EditGlobalDiscounts") . '</a>';
|
||||
$addcreditnote = '<a href="' . DOL_URL_ROOT . '/compta/facture.php?action=create&socid=' . $soc->id . '&type=2&backtopage=' . urlencode($_SERVER["PHP_SELF"]) . '?facid=' . $object->id . '">' . $langs->trans("AddCreditNote") . '</a>';
|
||||
|
||||
print '<tr><td>' . $langs->trans('Discounts') . '</td><td colspan="3">';
|
||||
if ($soc->remise_percent)
|
||||
@ -1802,7 +1802,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
} else {
|
||||
// Remise dispo de type remise fixe (not credit note)
|
||||
print '<br>';
|
||||
$form->form_remise_dispo($_SERVER ["PHP_SELF"] . '?id=' . $object->id, 0, 'remise_id', $soc->id, $absolute_discount, $filterabsolutediscount);
|
||||
$form->form_remise_dispo($_SERVER["PHP_SELF"] . '?id=' . $object->id, 0, 'remise_id', $soc->id, $absolute_discount, $filterabsolutediscount);
|
||||
}
|
||||
}
|
||||
if ($absolute_creditnote) {
|
||||
@ -1819,11 +1819,11 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
print '</td>';
|
||||
|
||||
if ($action != 'editdate' && $object->brouillon)
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editdate&id=' . $object->id . '">' . img_edit($langs->trans('SetDate'), 1) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editdate&id=' . $object->id . '">' . img_edit($langs->trans('SetDate'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if ($action == 'editdate') {
|
||||
print '<form name="setdate" action="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
|
||||
print '<form name="setdate" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="setdate">';
|
||||
$form->select_date($object->date, 'order_', '', '', '', "setdate");
|
||||
@ -1841,11 +1841,11 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
print $langs->trans('DateDeliveryPlanned');
|
||||
print '</td>';
|
||||
if ($action != 'editdate_livraison')
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editdate_livraison&id=' . $object->id . '">' . img_edit($langs->trans('SetDeliveryDate'), 1) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editdate_livraison&id=' . $object->id . '">' . img_edit($langs->trans('SetDeliveryDate'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if ($action == 'editdate_livraison') {
|
||||
print '<form name="setdate_livraison" action="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
|
||||
print '<form name="setdate_livraison" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="setdate_livraison">';
|
||||
$form->select_date($object->date_livraison ? $object->date_livraison : - 1, 'liv_', '', '', '', "setdate_livraison");
|
||||
@ -1863,13 +1863,13 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
print $langs->trans('PaymentConditionsShort');
|
||||
print '</td>';
|
||||
if ($action != 'editconditions' && $object->brouillon)
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editconditions&id=' . $object->id . '">' . img_edit($langs->trans('SetConditions'), 1) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editconditions&id=' . $object->id . '">' . img_edit($langs->trans('SetConditions'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if ($action == 'editconditions') {
|
||||
$form->form_conditions_reglement($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->cond_reglement_id, 'cond_reglement_id', 1);
|
||||
$form->form_conditions_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->cond_reglement_id, 'cond_reglement_id', 1);
|
||||
} else {
|
||||
$form->form_conditions_reglement($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->cond_reglement_id, 'none', 1);
|
||||
$form->form_conditions_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->cond_reglement_id, 'none', 1);
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
@ -1881,13 +1881,13 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
print $langs->trans('PaymentMode');
|
||||
print '</td>';
|
||||
if ($action != 'editmode' && $object->brouillon)
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editmode&id=' . $object->id . '">' . img_edit($langs->trans('SetMode'), 1) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editmode&id=' . $object->id . '">' . img_edit($langs->trans('SetMode'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if ($action == 'editmode') {
|
||||
$form->form_modes_reglement($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->mode_reglement_id, 'mode_reglement_id');
|
||||
$form->form_modes_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->mode_reglement_id, 'mode_reglement_id');
|
||||
} else {
|
||||
$form->form_modes_reglement($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->mode_reglement_id, 'none');
|
||||
$form->form_modes_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->mode_reglement_id, 'none');
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
@ -1897,13 +1897,13 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
print $langs->trans('AvailabilityPeriod');
|
||||
print '</td>';
|
||||
if ($action != 'editavailability' && $object->brouillon)
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editavailability&id=' . $object->id . '">' . img_edit($langs->trans('SetAvailability'), 1) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editavailability&id=' . $object->id . '">' . img_edit($langs->trans('SetAvailability'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if ($action == 'editavailability') {
|
||||
$form->form_availability($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->availability_id, 'availability_id', 1);
|
||||
$form->form_availability($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->availability_id, 'availability_id', 1);
|
||||
} else {
|
||||
$form->form_availability($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->availability_id, 'none', 1);
|
||||
$form->form_availability($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->availability_id, 'none', 1);
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
@ -1913,13 +1913,13 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
print $langs->trans('Source');
|
||||
print '</td>';
|
||||
if ($action != 'editdemandreason' && ! empty($object->brouillon))
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editdemandreason&id=' . $object->id . '">' . img_edit($langs->trans('SetDemandReason'), 1) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editdemandreason&id=' . $object->id . '">' . img_edit($langs->trans('SetDemandReason'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if ($action == 'editdemandreason') {
|
||||
$form->formInputReason($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->demand_reason_id, 'demand_reason_id', 1);
|
||||
$form->formInputReason($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->demand_reason_id, 'demand_reason_id', 1);
|
||||
} else {
|
||||
$form->formInputReason($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->demand_reason_id, 'none');
|
||||
$form->formInputReason($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->demand_reason_id, 'none');
|
||||
}
|
||||
// Removed because using dictionary is an admin feature, not a user feature. Ther is already the "star" to show info to admin users.
|
||||
// This is to avoid too heavy screens and have an uniform look and feel for all screens.
|
||||
@ -1935,14 +1935,14 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
print $langs->trans('Project');
|
||||
print '</td>';
|
||||
if ($action != 'classify')
|
||||
print '<td align="right"><a href="' . $_SERVER ['PHP_SELF'] . '?action=classify&id=' . $object->id . '">' . img_edit($langs->trans('SetProject')) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER['PHP_SELF'] . '?action=classify&id=' . $object->id . '">' . img_edit($langs->trans('SetProject')) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
// print "$object->id, $object->socid, $object->fk_project";
|
||||
if ($action == 'classify') {
|
||||
$form->form_project($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid');
|
||||
$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid');
|
||||
} else {
|
||||
$form->form_project($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none');
|
||||
$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none');
|
||||
}
|
||||
print '</td></tr>';
|
||||
}
|
||||
@ -1983,7 +1983,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
}
|
||||
|
||||
if ($action == 'edit_extras' && $user->rights->commande->creer && GETPOST('attribute') == $key) {
|
||||
print '<form enctype="multipart/form-data" action="' . $_SERVER ["PHP_SELF"] . '" method="post" name="formsoc">';
|
||||
print '<form enctype="multipart/form-data" action="' . $_SERVER["PHP_SELF"] . '" method="post" name="formsoc">';
|
||||
print '<input type="hidden" name="action" value="update_extras">';
|
||||
print '<input type="hidden" name="attribute" value="' . $key . '">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
@ -1996,7 +1996,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
} else {
|
||||
print $extrafields->showOutputField($key, $value);
|
||||
if ($object->statut == 0 && $user->rights->commande->creer)
|
||||
print '<a href="' . $_SERVER ['PHP_SELF'] . '?id=' . $object->id . '&action=edit_extras&attribute=' . $key . '">' . img_picto('', 'edit') . ' ' . $langs->trans('Modify') . '</a>';
|
||||
print '<a href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=edit_extras&attribute=' . $key . '">' . img_picto('', 'edit') . ' ' . $langs->trans('Modify') . '</a>';
|
||||
}
|
||||
print '</td></tr>' . "\n";
|
||||
}
|
||||
@ -2064,7 +2064,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
*/
|
||||
$result = $object->getLinesArray();
|
||||
|
||||
print ' <form name="addproduct" id="addproduct" action="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . (($action != 'editline') ? '#add' : '#line_' . GETPOST('lineid')) . '" method="POST">
|
||||
print ' <form name="addproduct" id="addproduct" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . (($action != 'editline') ? '#add' : '#line_' . GETPOST('lineid')) . '" method="POST">
|
||||
<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">
|
||||
<input type="hidden" name="action" value="' . (($action != 'editline') ? 'addline' : 'updateligne') . '">
|
||||
<input type="hidden" name="mode" value="">
|
||||
@ -2117,7 +2117,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
if (empty($reshook)) {
|
||||
// Valid
|
||||
if ($object->statut == 0 && $object->total_ttc >= 0 && $numlines > 0 && $user->rights->commande->valider) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '&action=validate">' . $langs->trans('Validate') . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=validate">' . $langs->trans('Validate') . '</a></div>';
|
||||
}
|
||||
// Edit
|
||||
if ($object->statut == 1 && $user->rights->commande->creer) {
|
||||
@ -2133,7 +2133,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
// Send
|
||||
if ($object->statut > 0) {
|
||||
if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->commande->order_advance->send)) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '&action=presend&mode=init">' . $langs->trans('SendByMail') . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=presend&mode=init">' . $langs->trans('SendByMail') . '</a></div>';
|
||||
} else
|
||||
print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">' . $langs->trans('SendByMail') . '</a></div>';
|
||||
}
|
||||
@ -2172,7 +2172,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
|
||||
// Reopen a closed order
|
||||
if ($object->statut == 3 && $user->rights->commande->creer) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ['PHP_SELF'] . '?id=' . $object->id . '&action=reopen">' . $langs->trans('ReOpen') . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=reopen">' . $langs->trans('ReOpen') . '</a></div>';
|
||||
}
|
||||
|
||||
// Create contract
|
||||
@ -2191,29 +2191,29 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . DOL_URL_ROOT . '/compta/facture.php?action=create&origin=' . $object->element . '&originid=' . $object->id . '&socid=' . $object->socid . '">' . $langs->trans("CreateBill") . '</a></div>';
|
||||
}
|
||||
if ($user->rights->commande->creer && $object->statut > 2 && empty($conf->global->WORKFLOW_DISABLE_CLASSIFY_BILLED_FROM_ORDER) && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT)) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '&action=classifybilled">' . $langs->trans("ClassifyBilled") . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=classifybilled">' . $langs->trans("ClassifyBilled") . '</a></div>';
|
||||
}
|
||||
}
|
||||
|
||||
// Set to shipped
|
||||
if (($object->statut == 1 || $object->statut == 2) && $user->rights->commande->cloturer) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '&action=shipped">' . $langs->trans('ClassifyShipped') . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=shipped">' . $langs->trans('ClassifyShipped') . '</a></div>';
|
||||
}
|
||||
|
||||
// Clone
|
||||
if ($user->rights->commande->creer) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ['PHP_SELF'] . '?id=' . $object->id . '&socid=' . $object->socid . '&action=clone&object=order">' . $langs->trans("ToClone") . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&socid=' . $object->socid . '&action=clone&object=order">' . $langs->trans("ToClone") . '</a></div>';
|
||||
}
|
||||
|
||||
// Cancel order
|
||||
if ($object->statut == 1 && $user->rights->commande->annuler) {
|
||||
print '<div class="inline-block divButAction"><a class="butActionDelete" href="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '&action=cancel">' . $langs->trans('Cancel') . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butActionDelete" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=cancel">' . $langs->trans('Cancel') . '</a></div>';
|
||||
}
|
||||
|
||||
// Delete order
|
||||
if ($user->rights->commande->supprimer) {
|
||||
if ($numshipping == 0) {
|
||||
print '<div class="inline-block divButAction"><a class="butActionDelete" href="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '&action=delete">' . $langs->trans('Delete') . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butActionDelete" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=delete">' . $langs->trans('Delete') . '</a></div>';
|
||||
} else {
|
||||
print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . $langs->trans("ShippingExist") . '">' . $langs->trans("Delete") . '</a></div>';
|
||||
}
|
||||
@ -2236,7 +2236,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
$file = $conf->commande->dir_output . '/' . $comref . '/' . $comref . '.pdf';
|
||||
$relativepath = $comref . '/' . $comref . '.pdf';
|
||||
$filedir = $conf->commande->dir_output . '/' . $comref;
|
||||
$urlsource = $_SERVER ["PHP_SELF"] . "?id=" . $object->id;
|
||||
$urlsource = $_SERVER["PHP_SELF"] . "?id=" . $object->id;
|
||||
$genallowed = $user->rights->commande->creer;
|
||||
$delallowed = $user->rights->commande->supprimer;
|
||||
$somethingshown = $formfile->show_documents('commande', $comref, $filedir, $urlsource, $genallowed, $delallowed, $object->modelpdf, 1, 0, 0, 28, 0, '', '', '', $soc->default_lang);
|
||||
@ -2273,8 +2273,8 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
// Define output language
|
||||
$outputlangs = $langs;
|
||||
$newlang = '';
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST ['lang_id']))
|
||||
$newlang = $_REQUEST ['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id']))
|
||||
$newlang = $_REQUEST['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang))
|
||||
$newlang = $object->client->default_lang;
|
||||
if (! empty($newlang)) {
|
||||
@ -2346,7 +2346,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
$formmail->param ['action'] = 'send';
|
||||
$formmail->param ['models'] = 'order_send';
|
||||
$formmail->param ['orderid'] = $object->id;
|
||||
$formmail->param ['returnurl'] = $_SERVER ["PHP_SELF"] . '?id=' . $object->id;
|
||||
$formmail->param ['returnurl'] = $_SERVER["PHP_SELF"] . '?id=' . $object->id;
|
||||
|
||||
// Init list of files
|
||||
if (GETPOST("mode") == 'init') {
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/* Copyright (C) 2001-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2003 Xavier DUTOIT <doli@sydesy.com>
|
||||
* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2004 Christophe Combelles <ccomb@free.fr>
|
||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
*
|
||||
@ -267,7 +267,7 @@ if ($result)
|
||||
if ($action == 'delete_categ')
|
||||
{
|
||||
print $form->formconfirm($_SERVER['PHP_SELF']."?rowid=".$rowid."&cat1=".GETPOST("fk_categ")."&orig_account=".$orig_account, $langs->trans("RemoveFromRubrique"), $langs->trans("RemoveFromRubriqueConfirm"), "confirm_delete_categ", '', 'yes', 1);
|
||||
|
||||
|
||||
}
|
||||
|
||||
print '<form name="update" method="POST" action="'.$_SERVER['PHP_SELF'].'?rowid='.$rowid.'">';
|
||||
@ -341,6 +341,12 @@ if ($result)
|
||||
print $langs->trans("VATPayment");
|
||||
print '</a>';
|
||||
}
|
||||
else if ($links[$key]['type']=='payment_salary') {
|
||||
print '<a href="'.DOL_URL_ROOT.'/compta/salaries/fiche.php?id='.$links[$key]['url_id'].'">';
|
||||
print img_object($langs->trans('ShowPaymentSalary'),'payment').' ';
|
||||
print $langs->trans("SalaryPayment");
|
||||
print '</a>';
|
||||
}
|
||||
else if ($links[$key]['type']=='member') {
|
||||
print '<a href="'.DOL_URL_ROOT.'/adherents/fiche.php?rowid='.$links[$key]['url_id'].'">';
|
||||
print img_object($langs->trans('ShowMember'),'user').' ';
|
||||
@ -353,6 +359,12 @@ if ($result)
|
||||
print $langs->trans("TransactionOnTheOtherAccount");
|
||||
print '</a>';
|
||||
}
|
||||
else if ($links[$key]['type']=='user') {
|
||||
print '<a href="'.DOL_URL_ROOT.'/user/fiche?id='.$links[$key]['url_id'].'">';
|
||||
print img_object($langs->trans('ShowUser'),'user').' ';
|
||||
print $langs->trans("User");
|
||||
print '</a>';
|
||||
}
|
||||
else {
|
||||
print '<a href="'.$links[$key]['url'].$links[$key]['url_id'].'">';
|
||||
print img_object('','generic').' ';
|
||||
|
||||
@ -36,7 +36,7 @@ $langs->load("bills");
|
||||
|
||||
// Security check
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result = restrictedArea($user, 'tax', '', '', 'charges');
|
||||
$result = restrictedArea($user, 'tax|salaries', '', '', 'charges|');
|
||||
|
||||
$year=$_GET["year"];
|
||||
$filtre=$_GET["filtre"];
|
||||
@ -247,13 +247,13 @@ if ($conf->tax->enabled)
|
||||
// Type payment
|
||||
print '<td>';
|
||||
if ($obj->payment_code) print $langs->trans("PaymentTypeShort".$obj->payment_code).' ';
|
||||
print $obj->num_payment.'</td>';
|
||||
print $obj->num_payment.'</td>';
|
||||
// Paid
|
||||
print '<td align="right">';
|
||||
if ($obj->totalpaye) print price($obj->totalpaye);
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
$total = $total + $obj->total;
|
||||
$totalnb = $totalnb + $obj->nb;
|
||||
$totalpaye = $totalpaye + $obj->totalpaye;
|
||||
|
||||
@ -115,13 +115,13 @@ include DOL_DOCUMENT_ROOT . '/core/actions_setnotes.inc.php'; // Must be include
|
||||
|
||||
// Action clone object
|
||||
if ($action == 'confirm_clone' && $confirm == 'yes' && $user->rights->facture->creer) {
|
||||
if (1 == 0 && empty($_REQUEST ["clone_content"]) && empty($_REQUEST ["clone_receivers"])) {
|
||||
if (1 == 0 && empty($_REQUEST["clone_content"]) && empty($_REQUEST["clone_receivers"])) {
|
||||
$mesgs [] = '<div class="error">' . $langs->trans("NoCloneOptionsSpecified") . '</div>';
|
||||
} else {
|
||||
if ($object->fetch($id) > 0) {
|
||||
$result = $object->createFromClone($socid);
|
||||
if ($result > 0) {
|
||||
header("Location: " . $_SERVER ['PHP_SELF'] . '?facid=' . $result);
|
||||
header("Location: " . $_SERVER['PHP_SELF'] . '?facid=' . $result);
|
||||
exit();
|
||||
} else {
|
||||
$mesgs [] = $object->error;
|
||||
@ -137,7 +137,7 @@ else if ($action == 'reopen' && $user->rights->facture->creer) {
|
||||
if ($object->statut == 2 || ($object->statut == 3 && $object->close_code != 'replaced')) {
|
||||
$result = $object->set_unpaid($user);
|
||||
if ($result > 0) {
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?facid=' . $id);
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?facid=' . $id);
|
||||
exit();
|
||||
} else {
|
||||
$mesgs [] = '<div class="error">' . $object->error . '</div>';
|
||||
@ -178,8 +178,8 @@ else if ($action == 'confirm_deleteline' && $confirm == 'yes' && $user->rights->
|
||||
// Define output language
|
||||
$outputlangs = $langs;
|
||||
$newlang = '';
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST ['lang_id']))
|
||||
$newlang = $_REQUEST ['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id']))
|
||||
$newlang = $_REQUEST['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang))
|
||||
$newlang = $object->client->default_lang;
|
||||
if (! empty($newlang)) {
|
||||
@ -191,7 +191,7 @@ else if ($action == 'confirm_deleteline' && $confirm == 'yes' && $user->rights->
|
||||
$result = facture_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||
}
|
||||
if ($result >= 0) {
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?facid=' . $id);
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?facid=' . $id);
|
||||
exit();
|
||||
}
|
||||
} else {
|
||||
@ -231,7 +231,7 @@ else if ($action == 'set_thirdparty' && $user->rights->facture->creer) {
|
||||
$object->fetch($id);
|
||||
$object->setValueFrom('fk_soc', $socid);
|
||||
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?facid=' . $id);
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?facid=' . $id);
|
||||
exit();
|
||||
}
|
||||
|
||||
@ -384,8 +384,8 @@ else if ($action == 'confirm_valid' && $confirm == 'yes' && $user->rights->factu
|
||||
// Define output language
|
||||
$outputlangs = $langs;
|
||||
$newlang = '';
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST ['lang_id']))
|
||||
$newlang = $_REQUEST ['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id']))
|
||||
$newlang = $_REQUEST['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang))
|
||||
$newlang = $object->client->default_lang;
|
||||
if (! empty($newlang)) {
|
||||
@ -458,8 +458,8 @@ else if ($action == 'confirm_modif' && ((empty($conf->global->MAIN_USE_ADVANCED_
|
||||
// Define output language
|
||||
$outputlangs = $langs;
|
||||
$newlang = '';
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST ['lang_id']))
|
||||
$newlang = $_REQUEST ['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id']))
|
||||
$newlang = $_REQUEST['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang))
|
||||
$newlang = $object->client->default_lang;
|
||||
if (! empty($newlang)) {
|
||||
@ -1023,7 +1023,7 @@ else if ($action == 'add' && $user->rights->facture->creer)
|
||||
if ($id > 0 && ! $error)
|
||||
{
|
||||
$db->commit();
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?facid=' . $id);
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?facid=' . $id);
|
||||
exit();
|
||||
}
|
||||
else
|
||||
@ -1403,7 +1403,7 @@ elseif ($action == 'updateligne' && $user->rights->facture->creer && ! GETPOST('
|
||||
}
|
||||
|
||||
else if ($action == 'updateligne' && $user->rights->facture->creer && $_POST['cancel'] == $langs->trans('Cancel')) {
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?facid=' . $id); // Pour reaffichage de la fiche en cours d'edition
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?facid=' . $id); // Pour reaffichage de la fiche en cours d'edition
|
||||
exit();
|
||||
}
|
||||
|
||||
@ -1416,8 +1416,8 @@ else if ($action == 'up' && $user->rights->facture->creer) {
|
||||
// Define output language
|
||||
$outputlangs = $langs;
|
||||
$newlang = '';
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST ['lang_id']))
|
||||
$newlang = $_REQUEST ['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id']))
|
||||
$newlang = $_REQUEST['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang))
|
||||
$newlang = $object->client->default_lang;
|
||||
if (! empty($newlang)) {
|
||||
@ -1427,7 +1427,7 @@ else if ($action == 'up' && $user->rights->facture->creer) {
|
||||
if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE))
|
||||
facture_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?facid=' . $object->id . '#' . $_GET ['rowid']);
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?facid=' . $object->id . '#' . $_GET ['rowid']);
|
||||
exit();
|
||||
} // Modify line position (down)
|
||||
else if ($action == 'down' && $user->rights->facture->creer) {
|
||||
@ -1438,8 +1438,8 @@ else if ($action == 'down' && $user->rights->facture->creer) {
|
||||
// Define output language
|
||||
$outputlangs = $langs;
|
||||
$newlang = '';
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST ['lang_id']))
|
||||
$newlang = $_REQUEST ['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id']))
|
||||
$newlang = $_REQUEST['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang))
|
||||
$newlang = $object->client->default_lang;
|
||||
if (! empty($newlang)) {
|
||||
@ -1449,7 +1449,7 @@ else if ($action == 'down' && $user->rights->facture->creer) {
|
||||
if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE))
|
||||
facture_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?facid=' . $object->id . '#' . $_GET ['rowid']);
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?facid=' . $object->id . '#' . $_GET ['rowid']);
|
||||
exit();
|
||||
}
|
||||
|
||||
@ -1608,7 +1608,7 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
|
||||
// This avoid sending mail twice if going out and then back to page
|
||||
$mesg = $langs->trans('MailSuccessfulySent', $mailfile->getValidAddress($from, 2), $mailfile->getValidAddress($sendto, 2));
|
||||
setEventMessage($mesg);
|
||||
header('Location: ' . $_SERVER ["PHP_SELF"] . '?facid=' . $object->id);
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?facid=' . $object->id);
|
||||
exit();
|
||||
}
|
||||
} else {
|
||||
@ -1715,7 +1715,7 @@ if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $user->rights->facture-
|
||||
}
|
||||
|
||||
if ($result >= 0) {
|
||||
header("Location: " . $_SERVER ['PHP_SELF'] . "?id=" . $object->id);
|
||||
header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $object->id);
|
||||
exit();
|
||||
} else {
|
||||
if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS') {
|
||||
@ -1742,7 +1742,7 @@ if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $user->rights->facture-
|
||||
$result = $object->delete_contact($lineid);
|
||||
|
||||
if ($result >= 0) {
|
||||
header("Location: " . $_SERVER ['PHP_SELF'] . "?id=" . $object->id);
|
||||
header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $object->id);
|
||||
exit();
|
||||
} else {
|
||||
dol_print_error($db);
|
||||
@ -1889,7 +1889,7 @@ if ($action == 'create')
|
||||
print ajax_combobox('fac_avoir');
|
||||
}
|
||||
|
||||
print '<form name="add" action="' . $_SERVER ["PHP_SELF"] . '" method="POST">';
|
||||
print '<form name="add" action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="add">';
|
||||
if ($soc->id > 0) print '<input type="hidden" name="socid" value="' . $soc->id . '">' . "\n";
|
||||
@ -2160,17 +2160,17 @@ if ($action == 'create')
|
||||
// Discounts for third party
|
||||
print '<tr><td>' . $langs->trans('Discounts') . '</td><td colspan="2">';
|
||||
if ($soc->remise_percent)
|
||||
print $langs->trans("CompanyHasRelativeDiscount", '<a href="' . DOL_URL_ROOT . '/comm/remise.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER ["PHP_SELF"] . '?socid=' . $soc->id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">' . $soc->remise_percent . '</a>');
|
||||
print $langs->trans("CompanyHasRelativeDiscount", '<a href="' . DOL_URL_ROOT . '/comm/remise.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER["PHP_SELF"] . '?socid=' . $soc->id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">' . $soc->remise_percent . '</a>');
|
||||
else
|
||||
print $langs->trans("CompanyHasNoRelativeDiscount");
|
||||
print ' <a href="' . DOL_URL_ROOT . '/comm/remise.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER ["PHP_SELF"] . '?socid=' . $soc->id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">(' . $langs->trans("EditRelativeDiscount") . ')</a>';
|
||||
print ' <a href="' . DOL_URL_ROOT . '/comm/remise.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER["PHP_SELF"] . '?socid=' . $soc->id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">(' . $langs->trans("EditRelativeDiscount") . ')</a>';
|
||||
print '. ';
|
||||
print '<br>';
|
||||
if ($absolute_discount)
|
||||
print $langs->trans("CompanyHasAbsoluteDiscount", '<a href="' . DOL_URL_ROOT . '/comm/remx.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER ["PHP_SELF"] . '?socid=' . $soc->id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">' . price($absolute_discount) . '</a>', $langs->trans("Currency" . $conf->currency));
|
||||
print $langs->trans("CompanyHasAbsoluteDiscount", '<a href="' . DOL_URL_ROOT . '/comm/remx.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER["PHP_SELF"] . '?socid=' . $soc->id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">' . price($absolute_discount) . '</a>', $langs->trans("Currency" . $conf->currency));
|
||||
else
|
||||
print $langs->trans("CompanyHasNoAbsoluteDiscount");
|
||||
print ' <a href="' . DOL_URL_ROOT . '/comm/remx.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER ["PHP_SELF"] . '?socid=' . $soc->id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">(' . $langs->trans("EditGlobalDiscounts") . ')</a>';
|
||||
print ' <a href="' . DOL_URL_ROOT . '/comm/remx.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER["PHP_SELF"] . '?socid=' . $soc->id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">(' . $langs->trans("EditGlobalDiscounts") . ')</a>';
|
||||
print '.';
|
||||
print '</td></tr>';
|
||||
}
|
||||
@ -2426,7 +2426,7 @@ if ($action == 'create')
|
||||
// Confirmation de la conversion de l'avoir en reduc
|
||||
if ($action == 'converttoreduc') {
|
||||
$text = $langs->trans('ConfirmConvertToReduc');
|
||||
$formconfirm = $form->formconfirm($_SERVER ['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('ConvertToReduc'), $text, 'confirm_converttoreduc', '', "yes", 2);
|
||||
$formconfirm = $form->formconfirm($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('ConvertToReduc'), $text, 'confirm_converttoreduc', '', "yes", 2);
|
||||
}
|
||||
|
||||
// Confirmation to delete invoice
|
||||
@ -2453,9 +2453,9 @@ if ($action == 'create')
|
||||
// array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value'
|
||||
// => 1),
|
||||
array('type' => 'other','name' => 'idwarehouse','label' => $label,'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1, 0, 0, $langs->trans("NoStockAction"))));
|
||||
$formconfirm = $form->formconfirm($_SERVER ['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('DeleteBill'), $text, 'confirm_delete', $formquestion, "yes", 1);
|
||||
$formconfirm = $form->formconfirm($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('DeleteBill'), $text, 'confirm_delete', $formquestion, "yes", 1);
|
||||
} else {
|
||||
$formconfirm = $form->formconfirm($_SERVER ['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('DeleteBill'), $text, 'confirm_delete', '', '', 1);
|
||||
$formconfirm = $form->formconfirm($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('DeleteBill'), $text, 'confirm_delete', '', '', 1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2517,7 +2517,7 @@ if ($action == 'create')
|
||||
{
|
||||
$text .= '<br>' . img_warning() . ' ' . $langs->trans("ErrorInvoiceOfThisTypeMustBePositive");
|
||||
}
|
||||
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?facid=' . $object->id, $langs->trans('ValidateBill'), $text, 'confirm_valid', $formquestion, (($object->type != Facture::TYPE_CREDIT_NOTE && $object->total_ttc < 0) ? "no" : "yes"), ($conf->notification->enabled ? 0 : 2));
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?facid=' . $object->id, $langs->trans('ValidateBill'), $text, 'confirm_valid', $formquestion, (($object->type != Facture::TYPE_CREDIT_NOTE && $object->total_ttc < 0) ? "no" : "yes"), ($conf->notification->enabled ? 0 : 2));
|
||||
}
|
||||
|
||||
// Confirm back to draft status
|
||||
@ -2554,12 +2554,12 @@ if ($action == 'create')
|
||||
array('type' => 'other','name' => 'idwarehouse','label' => $label,'value' => $value));
|
||||
}
|
||||
|
||||
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?facid=' . $object->id, $langs->trans('UnvalidateBill'), $text, 'confirm_modif', $formquestion, "yes", 1);
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?facid=' . $object->id, $langs->trans('UnvalidateBill'), $text, 'confirm_modif', $formquestion, "yes", 1);
|
||||
}
|
||||
|
||||
// Confirmation du classement paye
|
||||
if ($action == 'paid' && $resteapayer <= 0) {
|
||||
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?facid=' . $object->id, $langs->trans('ClassifyPaid'), $langs->trans('ConfirmClassifyPaidBill', $object->ref), 'confirm_paid', '', "yes", 1);
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?facid=' . $object->id, $langs->trans('ClassifyPaid'), $langs->trans('ConfirmClassifyPaidBill', $object->ref), 'confirm_paid', '', "yes", 1);
|
||||
}
|
||||
if ($action == 'paid' && $resteapayer > 0) {
|
||||
// Code
|
||||
@ -2588,7 +2588,7 @@ if ($action == 'create')
|
||||
// Cree un tableau formulaire
|
||||
$formquestion = array('text' => $langs->trans("ConfirmClassifyPaidPartiallyQuestion"),array('type' => 'radio','name' => 'close_code','label' => $langs->trans("Reason"),'values' => $arrayreasons),array('type' => 'text','name' => 'close_note','label' => $langs->trans("Comment"),'value' => '','size' => '100'));
|
||||
// Paiement incomplet. On demande si motif = escompte ou autre
|
||||
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?facid=' . $object->id, $langs->trans('ClassifyPaid'), $langs->trans('ConfirmClassifyPaidPartially', $object->ref), 'confirm_paid_partially', $formquestion, "yes");
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?facid=' . $object->id, $langs->trans('ClassifyPaid'), $langs->trans('ConfirmClassifyPaidPartially', $object->ref), 'confirm_paid_partially', $formquestion, "yes");
|
||||
}
|
||||
|
||||
// Confirmation du classement abandonne
|
||||
@ -2619,13 +2619,13 @@ if ($action == 'create')
|
||||
// Cree un tableau formulaire
|
||||
$formquestion = array('text' => $langs->trans("ConfirmCancelBillQuestion"),array('type' => 'radio','name' => 'close_code','label' => $langs->trans("Reason"),'values' => $arrayreasons),array('type' => 'text','name' => 'close_note','label' => $langs->trans("Comment"),'value' => '','size' => '100'));
|
||||
|
||||
$formconfirm = $form->formconfirm($_SERVER ['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('CancelBill'), $langs->trans('ConfirmCancelBill', $object->ref), 'confirm_canceled', $formquestion, "yes");
|
||||
$formconfirm = $form->formconfirm($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('CancelBill'), $langs->trans('ConfirmCancelBill', $object->ref), 'confirm_canceled', $formquestion, "yes");
|
||||
}
|
||||
}
|
||||
|
||||
// Confirmation de la suppression d'une ligne produit
|
||||
if ($action == 'ask_deleteline') {
|
||||
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?facid=' . $object->id . '&lineid=' . $lineid, $langs->trans('DeleteProductLine'), $langs->trans('ConfirmDeleteProductLine'), 'confirm_deleteline', '', 'no', 1);
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?facid=' . $object->id . '&lineid=' . $lineid, $langs->trans('DeleteProductLine'), $langs->trans('ConfirmDeleteProductLine'), 'confirm_deleteline', '', 'no', 1);
|
||||
}
|
||||
|
||||
// Clone confirmation
|
||||
@ -2636,7 +2636,7 @@ if ($action == 'create')
|
||||
// array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1)
|
||||
array('type' => 'other','name' => 'socid','label' => $langs->trans("SelectThirdParty"),'value' => $form->select_company('', 'socid', '(s.client=1 OR s.client=2 OR s.client=3)', 1)));
|
||||
// Paiement incomplet. On demande si motif = escompte ou autre
|
||||
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?facid=' . $object->id, $langs->trans('CloneInvoice'), $langs->trans('ConfirmCloneInvoice', $object->ref), 'confirm_clone', $formquestion, 'yes', 1);
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?facid=' . $object->id, $langs->trans('CloneInvoice'), $langs->trans('ConfirmCloneInvoice', $object->ref), 'confirm_clone', $formquestion, 'yes', 1);
|
||||
}
|
||||
|
||||
if (! $formconfirm) {
|
||||
@ -2675,12 +2675,12 @@ if ($action == 'create')
|
||||
print $langs->trans('RefCustomer');
|
||||
print '</td>';
|
||||
if ($action != 'refclient' && ! empty($object->brouillon))
|
||||
print '<td align="right"><a href="' . $_SERVER ['PHP_SELF'] . '?action=refclient&id=' . $object->id . '">' . img_edit($langs->trans('Modify')) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER['PHP_SELF'] . '?action=refclient&id=' . $object->id . '">' . img_edit($langs->trans('Modify')) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td>';
|
||||
print '<td colspan="5">';
|
||||
if ($user->rights->facture->creer && $action == 'refclient') {
|
||||
print '<form action="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
|
||||
print '<form action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="set_ref_client">';
|
||||
print '<input type="text" class="flat" size="20" name="ref_client" value="' . $object->ref_client . '">';
|
||||
@ -2697,11 +2697,11 @@ if ($action == 'create')
|
||||
print '<tr><td>' . $langs->trans('Company') . '</td>';
|
||||
print '</td><td colspan="5">';
|
||||
if (! empty($conf->global->FACTURE_CHANGE_THIRDPARTY) && $action != 'editthirdparty' && $object->brouillon && $user->rights->facture->creer)
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editthirdparty&facid=' . $object->id . '">' . img_edit($langs->trans('SetLinkToThirdParty'), 1) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editthirdparty&facid=' . $object->id . '">' . img_edit($langs->trans('SetLinkToThirdParty'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="5">';
|
||||
if ($action == 'editthirdparty') {
|
||||
$form->form_thirdparty($_SERVER ['PHP_SELF'] . '?facid=' . $object->id, $object->socid, 'socid');
|
||||
$form->form_thirdparty($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $object->socid, 'socid');
|
||||
} else {
|
||||
print ' ' . $soc->getNomUrl(1, 'compta');
|
||||
print ' ';
|
||||
@ -2756,9 +2756,9 @@ if ($action == 'create')
|
||||
print '</td></tr>';
|
||||
|
||||
// Relative and absolute discounts
|
||||
$addrelativediscount = '<a href="' . DOL_URL_ROOT . '/comm/remise.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER ["PHP_SELF"]) . '?facid=' . $object->id . '">' . $langs->trans("EditRelativeDiscounts") . '</a>';
|
||||
$addabsolutediscount = '<a href="' . DOL_URL_ROOT . '/comm/remx.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER ["PHP_SELF"]) . '?facid=' . $object->id . '">' . $langs->trans("EditGlobalDiscounts") . '</a>';
|
||||
$addcreditnote = '<a href="' . DOL_URL_ROOT . '/compta/facture.php?action=create&socid=' . $soc->id . '&type=2&backtopage=' . urlencode($_SERVER ["PHP_SELF"]) . '?facid=' . $object->id . '">' . $langs->trans("AddCreditNote") . '</a>';
|
||||
$addrelativediscount = '<a href="' . DOL_URL_ROOT . '/comm/remise.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER["PHP_SELF"]) . '?facid=' . $object->id . '">' . $langs->trans("EditRelativeDiscounts") . '</a>';
|
||||
$addabsolutediscount = '<a href="' . DOL_URL_ROOT . '/comm/remx.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER["PHP_SELF"]) . '?facid=' . $object->id . '">' . $langs->trans("EditGlobalDiscounts") . '</a>';
|
||||
$addcreditnote = '<a href="' . DOL_URL_ROOT . '/compta/facture.php?action=create&socid=' . $soc->id . '&type=2&backtopage=' . urlencode($_SERVER["PHP_SELF"]) . '?facid=' . $object->id . '">' . $langs->trans("AddCreditNote") . '</a>';
|
||||
|
||||
print '<tr><td>' . $langs->trans('Discounts');
|
||||
print '</td><td colspan="5">';
|
||||
@ -2787,7 +2787,7 @@ if ($action == 'create')
|
||||
} else {
|
||||
// Remise dispo de type remise fixe (not credit note)
|
||||
print '<br>';
|
||||
$form->form_remise_dispo($_SERVER ["PHP_SELF"] . '?facid=' . $object->id, GETPOST('discountid'), 'remise_id', $soc->id, $absolute_discount, $filterabsolutediscount, $resteapayer, ' (' . $addabsolutediscount . ')');
|
||||
$form->form_remise_dispo($_SERVER["PHP_SELF"] . '?facid=' . $object->id, GETPOST('discountid'), 'remise_id', $soc->id, $absolute_discount, $filterabsolutediscount, $resteapayer, ' (' . $addabsolutediscount . ')');
|
||||
}
|
||||
} else {
|
||||
if ($absolute_creditnote > 0) // If not, link will be added later
|
||||
@ -2814,7 +2814,7 @@ if ($action == 'create')
|
||||
print '<br>';
|
||||
// $form->form_remise_dispo($_SERVER["PHP_SELF"].'?facid='.$object->id, 0, 'remise_id_for_payment', $soc->id, $absolute_creditnote,
|
||||
// $filtercreditnote, $resteapayer);
|
||||
$form->form_remise_dispo($_SERVER ["PHP_SELF"] . '?facid=' . $object->id, 0, 'remise_id_for_payment', $soc->id, $absolute_creditnote, $filtercreditnote, 0); // We
|
||||
$form->form_remise_dispo($_SERVER["PHP_SELF"] . '?facid=' . $object->id, 0, 'remise_id_for_payment', $soc->id, $absolute_creditnote, $filtercreditnote, 0); // We
|
||||
// must
|
||||
// allow
|
||||
// credit
|
||||
@ -2848,13 +2848,13 @@ if ($action == 'create')
|
||||
print $langs->trans('Date');
|
||||
print '</td>';
|
||||
if ($object->type != Facture::TYPE_CREDIT_NOTE && $action != 'editinvoicedate' && ! empty($object->brouillon) && $user->rights->facture->creer)
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editinvoicedate&facid=' . $object->id . '">' . img_edit($langs->trans('SetDate'), 1) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editinvoicedate&facid=' . $object->id . '">' . img_edit($langs->trans('SetDate'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
|
||||
if ($object->type != Facture::TYPE_CREDIT_NOTE) {
|
||||
if ($action == 'editinvoicedate') {
|
||||
$form->form_date($_SERVER ['PHP_SELF'] . '?facid=' . $object->id, $object->date, 'invoicedate');
|
||||
$form->form_date($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $object->date, 'invoicedate');
|
||||
} else {
|
||||
print dol_print_date($object->date, 'daytext');
|
||||
}
|
||||
@ -2984,7 +2984,7 @@ if ($action == 'create')
|
||||
print ' :</td>';
|
||||
print '<td align="right">' . price($obj->amount_ttc) . '</td>';
|
||||
print '<td align="right">';
|
||||
print '<a href="' . $_SERVER ["PHP_SELF"] . '?facid=' . $object->id . '&action=unlinkdiscount&discountid=' . $obj->rowid . '">' . img_delete() . '</a>';
|
||||
print '<a href="' . $_SERVER["PHP_SELF"] . '?facid=' . $object->id . '&action=unlinkdiscount&discountid=' . $obj->rowid . '">' . img_delete() . '</a>';
|
||||
print '</td></tr>';
|
||||
$i ++;
|
||||
if ($invoice->type == Facture::TYPE_CREDIT_NOTE)
|
||||
@ -3069,7 +3069,8 @@ if ($action == 'create')
|
||||
print '</table>';
|
||||
|
||||
// Margin Infos
|
||||
if (! empty($conf->margin->enabled)) {
|
||||
if (! empty($conf->margin->enabled))
|
||||
{
|
||||
print '<br>';
|
||||
$object->displayMarginInfos($object->statut > 0);
|
||||
}
|
||||
@ -3082,14 +3083,14 @@ if ($action == 'create')
|
||||
print $langs->trans('PaymentConditionsShort');
|
||||
print '</td>';
|
||||
if ($object->type != Facture::TYPE_CREDIT_NOTE && $action != 'editconditions' && ! empty($object->brouillon) && $user->rights->facture->creer)
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editconditions&facid=' . $object->id . '">' . img_edit($langs->trans('SetConditions'), 1) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editconditions&facid=' . $object->id . '">' . img_edit($langs->trans('SetConditions'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if ($object->type != Facture::TYPE_CREDIT_NOTE) {
|
||||
if ($action == 'editconditions') {
|
||||
$form->form_conditions_reglement($_SERVER ['PHP_SELF'] . '?facid=' . $object->id, $object->cond_reglement_id, 'cond_reglement_id');
|
||||
$form->form_conditions_reglement($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $object->cond_reglement_id, 'cond_reglement_id');
|
||||
} else {
|
||||
$form->form_conditions_reglement($_SERVER ['PHP_SELF'] . '?facid=' . $object->id, $object->cond_reglement_id, 'none');
|
||||
$form->form_conditions_reglement($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $object->cond_reglement_id, 'none');
|
||||
}
|
||||
} else {
|
||||
print ' ';
|
||||
@ -3102,12 +3103,12 @@ if ($action == 'create')
|
||||
print $langs->trans('DateMaxPayment');
|
||||
print '</td>';
|
||||
if ($object->type != Facture::TYPE_CREDIT_NOTE && $action != 'editpaymentterm' && ! empty($object->brouillon) && $user->rights->facture->creer)
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editpaymentterm&facid=' . $object->id . '">' . img_edit($langs->trans('SetDate'), 1) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editpaymentterm&facid=' . $object->id . '">' . img_edit($langs->trans('SetDate'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if ($object->type != Facture::TYPE_CREDIT_NOTE) {
|
||||
if ($action == 'editpaymentterm') {
|
||||
$form->form_date($_SERVER ['PHP_SELF'] . '?facid=' . $object->id, $object->date_lim_reglement, 'paymentterm');
|
||||
$form->form_date($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $object->date_lim_reglement, 'paymentterm');
|
||||
} else {
|
||||
print dol_print_date($object->date_lim_reglement, 'daytext');
|
||||
if ($object->date_lim_reglement < ($now - $conf->facture->client->warning_delay) && ! $object->paye && $object->statut == 1 && ! isset($object->am))
|
||||
@ -3124,13 +3125,13 @@ if ($action == 'create')
|
||||
print $langs->trans('PaymentMode');
|
||||
print '</td>';
|
||||
if ($action != 'editmode' && ! empty($object->brouillon) && $user->rights->facture->creer)
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editmode&facid=' . $object->id . '">' . img_edit($langs->trans('SetMode'), 1) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editmode&facid=' . $object->id . '">' . img_edit($langs->trans('SetMode'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if ($action == 'editmode') {
|
||||
$form->form_modes_reglement($_SERVER ['PHP_SELF'] . '?facid=' . $object->id, $object->mode_reglement_id, 'mode_reglement_id');
|
||||
$form->form_modes_reglement($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $object->mode_reglement_id, 'mode_reglement_id');
|
||||
} else {
|
||||
$form->form_modes_reglement($_SERVER ['PHP_SELF'] . '?facid=' . $object->id, $object->mode_reglement_id, 'none');
|
||||
$form->form_modes_reglement($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $object->mode_reglement_id, 'none');
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
@ -3160,11 +3161,11 @@ if ($action == 'create')
|
||||
print $langs->trans('RevenueStamp');
|
||||
print '</td>';
|
||||
if ($action != 'editrevenuestamp' && ! empty($object->brouillon) && $user->rights->facture->creer)
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editrevenuestamp&facid=' . $object->id . '">' . img_edit($langs->trans('SetRevenuStamp'), 1) . '</a></td>';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editrevenuestamp&facid=' . $object->id . '">' . img_edit($langs->trans('SetRevenuStamp'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3" align="right">';
|
||||
if ($action == 'editrevenuestamp') {
|
||||
print '<form action="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
|
||||
print '<form action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="setrevenuestamp">';
|
||||
print $formother->select_revenue_stamp(GETPOST('revenuestamp'), 'revenuestamp', $mysoc->country_code);
|
||||
@ -3194,7 +3195,7 @@ if ($action == 'create')
|
||||
print $langs->trans('Project');
|
||||
print '</td>';
|
||||
if ($action != 'classify') {
|
||||
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=classify&facid=' . $object->id . '">';
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=classify&facid=' . $object->id . '">';
|
||||
print img_edit($langs->trans('SetProject'), 1);
|
||||
print '</a></td>';
|
||||
}
|
||||
@ -3202,9 +3203,9 @@ if ($action == 'create')
|
||||
|
||||
print '</td><td colspan="3">';
|
||||
if ($action == 'classify') {
|
||||
$form->form_project($_SERVER ['PHP_SELF'] . '?facid=' . $object->id, $object->socid, $object->fk_project, 'projectid');
|
||||
$form->form_project($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $object->socid, $object->fk_project, 'projectid');
|
||||
} else {
|
||||
$form->form_project($_SERVER ['PHP_SELF'] . '?facid=' . $object->id, $object->socid, $object->fk_project, 'none');
|
||||
$form->form_project($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $object->socid, $object->fk_project, 'none');
|
||||
}
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
@ -3236,7 +3237,7 @@ if ($action == 'create')
|
||||
}
|
||||
|
||||
if ($action == 'edit_extras' && $user->rights->facture->creer && GETPOST('attribute') == $key) {
|
||||
print '<form enctype="multipart/form-data" action="' . $_SERVER ["PHP_SELF"] . '" method="post" name="formsoc">';
|
||||
print '<form enctype="multipart/form-data" action="' . $_SERVER["PHP_SELF"] . '" method="post" name="formsoc">';
|
||||
print '<input type="hidden" name="action" value="update_extras">';
|
||||
print '<input type="hidden" name="attribute" value="' . $key . '">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
@ -3249,7 +3250,7 @@ if ($action == 'create')
|
||||
} else {
|
||||
print $extrafields->showOutputField($key, $value);
|
||||
if ($object->statut == 0 && $user->rights->facture->creer)
|
||||
print '<a href="' . $_SERVER ['PHP_SELF'] . '?id=' . $object->id . '&action=edit_extras&attribute=' . $key . '">' . img_picto('', 'edit') . ' ' . $langs->trans('Modify') . '</a>';
|
||||
print '<a href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=edit_extras&attribute=' . $key . '">' . img_picto('', 'edit') . ' ' . $langs->trans('Modify') . '</a>';
|
||||
}
|
||||
print '</td></tr>' . "\n";
|
||||
}
|
||||
@ -3273,7 +3274,7 @@ if ($action == 'create')
|
||||
// Lines
|
||||
$result = $object->getLinesArray();
|
||||
|
||||
print ' <form name="addproduct" id="addproduct" action="' . $_SERVER ["PHP_SELF"] . '?id=' . $object->id . (($action != 'editline') ? '#add' : '#line_' . GETPOST('lineid')) . '" method="POST">
|
||||
print ' <form name="addproduct" id="addproduct" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . (($action != 'editline') ? '#add' : '#line_' . GETPOST('lineid')) . '" method="POST">
|
||||
<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">
|
||||
<input type="hidden" name="action" value="' . (($action != 'editline') ? 'addline' : 'updateligne') . '">
|
||||
<input type="hidden" name="mode" value="">
|
||||
@ -3330,7 +3331,7 @@ if ($action == 'create')
|
||||
if ($resteapayer == $object->total_ttc && $object->paye == 0 && $ventilExportCompta == 0) {
|
||||
if (! $objectidnext) {
|
||||
if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->facture->valider) || $user->rights->facture->invoice_advance->unvalidate) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ['PHP_SELF'] . '?facid=' . $object->id . '&action=modif">' . $langs->trans('Modify') . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?facid=' . $object->id . '&action=modif">' . $langs->trans('Modify') . '</a></div>';
|
||||
} else {
|
||||
print '<div class="inline-block divButAction"><span class="butActionRefused" title="' . $langs->trans("NotEnoughPermissions") . '">' . $langs->trans('Modify') . '</span></div>';
|
||||
}
|
||||
@ -3349,7 +3350,7 @@ if ($action == 'create')
|
||||
{
|
||||
if (! $objectidnext && $object->close_code != 'replaced') // Not replaced by another invoice
|
||||
{
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ['PHP_SELF'] . '?facid=' . $object->id . '&action=reopen">' . $langs->trans('ReOpen') . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?facid=' . $object->id . '&action=reopen">' . $langs->trans('ReOpen') . '</a></div>';
|
||||
} else {
|
||||
print '<div class="inline-block divButAction"><span class="butActionRefused" title="' . $langs->trans("DisabledBecauseReplacedInvoice") . '">' . $langs->trans('ReOpen') . '</span></div>';
|
||||
}
|
||||
@ -3358,7 +3359,7 @@ if ($action == 'create')
|
||||
// Validate
|
||||
if ($object->statut == 0 && count($object->lines) > 0 && ((($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT || $object->type == Facture::TYPE_DEPOSIT || $object->type == Facture::TYPE_PROFORMA) && (! empty($conf->global->FACTURE_ENABLE_NEGATIVE) || $object->total_ttc >= 0)) || ($object->type == Facture::TYPE_CREDIT_NOTE && $object->total_ttc <= 0))) {
|
||||
if ($user->rights->facture->valider) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ["PHP_SELF"] . '?facid=' . $object->id . '&action=valid">' . $langs->trans('Validate') . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?facid=' . $object->id . '&action=valid">' . $langs->trans('Validate') . '</a></div>';
|
||||
}
|
||||
}
|
||||
|
||||
@ -3368,7 +3369,7 @@ if ($action == 'create')
|
||||
print '<div class="inline-block divButAction"><span class="butActionRefused" title="' . $langs->trans("DisabledBecauseReplacedInvoice") . '">' . $langs->trans('SendByMail') . '</span></div>';
|
||||
} else {
|
||||
if (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->facture->invoice_advance->send) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ['PHP_SELF'] . '?facid=' . $object->id . '&action=presend&mode=init">' . $langs->trans('SendByMail') . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?facid=' . $object->id . '&action=presend&mode=init">' . $langs->trans('SendByMail') . '</a></div>';
|
||||
} else
|
||||
print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">' . $langs->trans('SendByMail') . '</a></div>';
|
||||
}
|
||||
@ -3381,7 +3382,7 @@ if ($action == 'create')
|
||||
print '<div class="inline-block divButAction"><span class="butActionRefused" title="' . $langs->trans("DisabledBecauseReplacedInvoice") . '">' . $langs->trans('SendRemindByMail') . '</span></div>';
|
||||
} else {
|
||||
if (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->facture->invoice_advance->send) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ['PHP_SELF'] . '?facid=' . $object->id . '&action=prerelance&mode=init">' . $langs->trans('SendRemindByMail') . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?facid=' . $object->id . '&action=prerelance&mode=init">' . $langs->trans('SendRemindByMail') . '</a></div>';
|
||||
} else
|
||||
print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">' . $langs->trans('SendRemindByMail') . '</a></div>';
|
||||
}
|
||||
@ -3418,7 +3419,7 @@ if ($action == 'create')
|
||||
|
||||
// For credit note
|
||||
if ($object->type == Facture::TYPE_CREDIT_NOTE && $object->statut == 1 && $object->paye == 0 && $user->rights->facture->creer && $object->getSommePaiement() == 0) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ["PHP_SELF"] . '?facid=' . $object->id . '&action=converttoreduc">' . $langs->trans('ConvertToReduc') . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?facid=' . $object->id . '&action=converttoreduc">' . $langs->trans('ConvertToReduc') . '</a></div>';
|
||||
}
|
||||
// For deposit invoice
|
||||
if ($object->type == Facture::TYPE_DEPOSIT && $object->paye == 1 && $resteapayer == 0 && $user->rights->facture->creer && empty($discount->id))
|
||||
@ -3441,14 +3442,14 @@ if ($action == 'create')
|
||||
if ($totalpaye > 0 || $totalcreditnotes > 0)
|
||||
{
|
||||
// If one payment or one credit note was linked to this invoice
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ['PHP_SELF'] . '?facid=' . $object->id . '&action=paid">' . $langs->trans('ClassifyPaidPartially') . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?facid=' . $object->id . '&action=paid">' . $langs->trans('ClassifyPaidPartially') . '</a></div>';
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($objectidnext) {
|
||||
print '<div class="inline-block divButAction"><span class="butActionRefused" title="' . $langs->trans("DisabledBecauseReplacedInvoice") . '">' . $langs->trans('ClassifyCanceled') . '</span></div>';
|
||||
} else {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ['PHP_SELF'] . '?facid=' . $object->id . '&action=canceled">' . $langs->trans('ClassifyCanceled') . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?facid=' . $object->id . '&action=canceled">' . $langs->trans('ClassifyCanceled') . '</a></div>';
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3456,7 +3457,7 @@ if ($action == 'create')
|
||||
// Clone
|
||||
if (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_DEPOSIT || $object->type == Facture::TYPE_PROFORMA) && $user->rights->facture->creer)
|
||||
{
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER ['PHP_SELF'] . '?facid=' . $object->id . '&action=clone&object=invoice">' . $langs->trans("ToClone") . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?facid=' . $object->id . '&action=clone&object=invoice">' . $langs->trans("ToClone") . '</a></div>';
|
||||
}
|
||||
|
||||
// Clone as predefined
|
||||
@ -3478,7 +3479,7 @@ if ($action == 'create')
|
||||
} elseif ($object->getSommePaiement()) {
|
||||
print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . $langs->trans("DisabledBecausePayments") . '">' . $langs->trans('Delete') . '</a></div>';
|
||||
} else {
|
||||
print '<div class="inline-block divButAction"><a class="butActionDelete" href="' . $_SERVER ["PHP_SELF"] . '?facid=' . $object->id . '&action=delete">' . $langs->trans('Delete') . '</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butActionDelete" href="' . $_SERVER["PHP_SELF"] . '?facid=' . $object->id . '&action=delete">' . $langs->trans('Delete') . '</a></div>';
|
||||
}
|
||||
} else {
|
||||
print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . $langs->trans("NotAllowed") . '">' . $langs->trans('Delete') . '</a></div>';
|
||||
@ -3497,7 +3498,7 @@ if ($action == 'create')
|
||||
// Documents generes
|
||||
$filename = dol_sanitizeFileName($object->ref);
|
||||
$filedir = $conf->facture->dir_output . '/' . dol_sanitizeFileName($object->ref);
|
||||
$urlsource = $_SERVER ['PHP_SELF'] . '?facid=' . $object->id;
|
||||
$urlsource = $_SERVER['PHP_SELF'] . '?facid=' . $object->id;
|
||||
$genallowed = $user->rights->facture->creer;
|
||||
$delallowed = $user->rights->facture->supprimer;
|
||||
|
||||
@ -3602,8 +3603,8 @@ if ($action == 'create')
|
||||
// Define output language
|
||||
$outputlangs = $langs;
|
||||
$newlang = '';
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST ['lang_id']))
|
||||
$newlang = $_REQUEST ['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id']))
|
||||
$newlang = $_REQUEST['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang))
|
||||
$newlang = $object->client->default_lang;
|
||||
if (! empty($newlang)) {
|
||||
@ -3680,7 +3681,7 @@ if ($action == 'create')
|
||||
$formmail->param ['action'] = $action;
|
||||
$formmail->param ['models'] = $modelmail;
|
||||
$formmail->param ['facid'] = $object->id;
|
||||
$formmail->param ['returnurl'] = $_SERVER ["PHP_SELF"] . '?id=' . $object->id;
|
||||
$formmail->param ['returnurl'] = $_SERVER["PHP_SELF"] . '?id=' . $object->id;
|
||||
|
||||
// Init list of files
|
||||
if (GETPOST("mode") == 'init') {
|
||||
|
||||
@ -617,6 +617,7 @@ class Facture extends CommonInvoice
|
||||
$this->statut=0;
|
||||
|
||||
// Clear fields
|
||||
$this->date = dol_now(); // Date of invoice is set to current date when cloning. // TODO Best is to ask date into confirm box
|
||||
$this->user_author = $user->id;
|
||||
$this->user_valid = '';
|
||||
$this->fk_facture_source = 0;
|
||||
@ -3492,7 +3493,7 @@ class FactureLigne extends CommonInvoiceLine
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert line in database
|
||||
* Insert line into database
|
||||
*
|
||||
* @param int $notrigger 1 no triggers
|
||||
* @return int <0 if KO, >0 if OK
|
||||
@ -3530,7 +3531,21 @@ class FactureLigne extends CommonInvoiceLine
|
||||
}
|
||||
|
||||
// Check parameters
|
||||
if ($this->product_type < 0) return -1;
|
||||
if ($this->product_type < 0)
|
||||
{
|
||||
$this->error='ErrorProductTypeMustBe0orMore';
|
||||
return -1;
|
||||
}
|
||||
if (! empty($this->fk_product))
|
||||
{
|
||||
// Check product exists
|
||||
$result=Product::isExistingObject('product', $this->fk_product);
|
||||
if ($result <= 0)
|
||||
{
|
||||
$this->error='ErrorProductIdDoesNotExists';
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
|
||||
@ -428,7 +428,7 @@ if ($object->id > 0)
|
||||
|
||||
/*
|
||||
* Withdrawal request
|
||||
*/
|
||||
*/
|
||||
|
||||
$sql = "SELECT pfd.rowid, pfd.traite, pfd.date_demande as date_demande";
|
||||
$sql .= " , pfd.date_traite as date_traite";
|
||||
@ -462,12 +462,13 @@ if ($object->id > 0)
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<a class="butActionRefused" href="#">'.$langs->trans("MakeWithdrawRequest").'</a>';
|
||||
print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("MakeWithdrawRequest").'</a>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<a class="butActionRefused" href="#">'.$langs->trans("MakeWithdrawRequest").'</a>';
|
||||
if ($num == 0) print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("AlreadyPayed")).'">'.$langs->trans("MakeWithdrawRequest").'</a>';
|
||||
else print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("RequestAlreadyDone")).'">'.$langs->trans("MakeWithdrawRequest").'</a>';
|
||||
}
|
||||
|
||||
print "</div><br>\n";
|
||||
|
||||
@ -359,20 +359,12 @@ class PaymentSalary extends CommonObject
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."payment_salary"); // TODO should be called payment_salary
|
||||
$ok=1;
|
||||
|
||||
// Start triggers
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||
$interface=new Interfaces($this->db);
|
||||
$result=$interface->run_triggers('PAYMENT_SALARY_CREATE',$this,$user,$langs,$conf);
|
||||
if ($result < 0) {
|
||||
$error++; $this->errors=$interface->errors;
|
||||
}
|
||||
// End triggers
|
||||
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."payment_salary");
|
||||
|
||||
if ($this->id > 0)
|
||||
{
|
||||
$ok=1;
|
||||
if (! empty($conf->banque->enabled) && ! empty($this->amount))
|
||||
{
|
||||
// Insert into llx_bank
|
||||
@ -406,42 +398,53 @@ class PaymentSalary extends CommonObject
|
||||
$ok=0;
|
||||
}
|
||||
|
||||
// Add link 'payment_salary' in bank_url between payment and bank transaction
|
||||
$url=DOL_URL_ROOT.'/compta/salaries/fiche.php?id=';
|
||||
if ($ok)
|
||||
{
|
||||
// Add link 'payment_salary' in bank_url between payment and bank transaction
|
||||
$url=DOL_URL_ROOT.'/compta/salaries/fiche.php?id=';
|
||||
|
||||
$result=$acc->add_url_line($bank_line_id, $this->id, $url, "(SalaryPayment)", "payment_salary");
|
||||
if ($result <= 0)
|
||||
{
|
||||
$this->error=$acc->error;
|
||||
$ok=0;
|
||||
}
|
||||
}
|
||||
|
||||
$fuser=new User($this->db);
|
||||
$fuser->fetch($this->fk_user);
|
||||
|
||||
// Add link 'user' in bank_url between operation and bank transaction
|
||||
$result=$acc->add_url_line(
|
||||
$bank_line_id,
|
||||
$this->fk_user,
|
||||
DOL_URL_ROOT.'/user/fiche.php?id=',
|
||||
$langs->trans("SalaryPayment").' '.$fuser->getFullName($langs).' '.dol_print_date($this->datesp,'dayrfc').' '.dol_print_date($this->dateep,'dayrfc'),
|
||||
'(User)',
|
||||
'user'
|
||||
);
|
||||
|
||||
$result=$acc->add_url_line($bank_line_id, $this->id, $url, "(SalaryPayment)", "payment_salary");
|
||||
if ($result <= 0)
|
||||
{
|
||||
$this->error=$acc->error;
|
||||
$ok=0;
|
||||
}
|
||||
|
||||
// Add link 'user' in bank_url between operation and bank transaction
|
||||
$linkaddedforthirdparty=array();
|
||||
foreach ($this->amounts as $key => $value)
|
||||
{
|
||||
$sal = new PaymentSalary($this->db);
|
||||
|
||||
$sal->fetch($key);
|
||||
$sal->fetch_user($this->fk_user);
|
||||
|
||||
if (! in_array($sal->user->id,$linkaddedforthirdparty)) // Not yet done for this thirdparty
|
||||
{
|
||||
$result=$acc->add_url_line(
|
||||
$bank_line_id,
|
||||
$sal->user->id,
|
||||
DOL_URL_ROOT.'/user/fiche.php?id=',
|
||||
$sal->user->lastname,
|
||||
'user'
|
||||
);
|
||||
|
||||
if ($result <= 0) dol_print_error($this->db);
|
||||
$linkaddedforthirdparty[$sal->user->id]=$sal->user->id; // Mark as done for this thirdparty
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Start triggers
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||
$interface=new Interfaces($this->db);
|
||||
$result=$interface->run_triggers('PAYMENT_SALARY_CREATE',$this,$user,$langs,$conf);
|
||||
if ($result < 0) {
|
||||
$error++; $this->errors=$interface->errors;
|
||||
}
|
||||
// End triggers
|
||||
|
||||
}
|
||||
else $ok=0;
|
||||
|
||||
if ($ok)
|
||||
{
|
||||
if ($ok)
|
||||
{
|
||||
$this->db->commit();
|
||||
|
||||
@ -37,14 +37,14 @@ $id=GETPOST("id",'int');
|
||||
$action=GETPOST('action');
|
||||
|
||||
// Security check
|
||||
$socid = isset($_GET["socid"])?$_GET["socid"]:'';
|
||||
$socid = GETPOST("socid","int");
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result = restrictedArea($user, 'tax', '', '', 'charges');
|
||||
$result = restrictedArea($user, 'salaries', '', '', '');
|
||||
|
||||
$sal = new PaymentSalary($db);
|
||||
|
||||
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
|
||||
$hookmanager->initHooks(array('taxsalarycard'));
|
||||
$hookmanager->initHooks(array('salarycard'));
|
||||
|
||||
|
||||
|
||||
@ -78,7 +78,13 @@ if ($action == 'add' && $_POST["cancel"] <> $langs->trans("Cancel"))
|
||||
$sal->note=GETPOST("note");
|
||||
$sal->type_payment=GETPOST("paymenttype");
|
||||
$sal->num_payment=GETPOST("num_payment");
|
||||
$sal->fk_user_creat=$user->id;
|
||||
|
||||
if (empty($datep) || empty($datesp) || empty($dateep))
|
||||
{
|
||||
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Date")),'errors');
|
||||
$error++;
|
||||
}
|
||||
if (empty($sal->fk_user) || $sal->fk_user < 0)
|
||||
{
|
||||
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Employee")),'errors');
|
||||
@ -98,7 +104,7 @@ if ($action == 'add' && $_POST["cancel"] <> $langs->trans("Cancel"))
|
||||
if (! $error)
|
||||
{
|
||||
$db->begin();
|
||||
|
||||
|
||||
$ret=$sal->create($user);
|
||||
if ($ret > 0)
|
||||
{
|
||||
@ -210,11 +216,11 @@ if ($action == 'create')
|
||||
|
||||
print "<tr>";
|
||||
print '<td class="fieldrequired">'.$langs->trans("DatePayment").'</td><td>';
|
||||
print $form->select_date($datep,"datep",'','','','add');
|
||||
print $form->select_date((empty($datep)?-1:$datep),"datep",'','','','add',1,1);
|
||||
print '</td></tr>';
|
||||
|
||||
print '<tr><td class="fieldrequired">'.$langs->trans("DateValue").'</td><td>';
|
||||
print $form->select_date($datev,"datev",'','','','add');
|
||||
print '<tr><td>'.$langs->trans("DateValue").'</td><td>';
|
||||
print $form->select_date((empty($datev)?-1:$datev),"datev",'','','','add',1,1);
|
||||
print '</td></tr>';
|
||||
|
||||
// Employee
|
||||
@ -244,19 +250,22 @@ if ($action == 'create')
|
||||
print '<tr><td class="fieldrequired">'.$langs->trans("Account").'</td><td>';
|
||||
$form->select_comptes($_POST["accountid"],"accountid",0,"courant=1",1); // Affiche liste des comptes courant
|
||||
print '</td></tr>';
|
||||
|
||||
// Type payment
|
||||
print '<tr><td class="fieldrequired">'.$langs->trans("PaymentMode").'</td><td>';
|
||||
$form->select_types_paiements(GETPOST("paymenttype"), "paymenttype");
|
||||
print "</td>\n";
|
||||
print "</tr>";
|
||||
|
||||
}
|
||||
|
||||
// Type payment
|
||||
print '<tr><td class="fieldrequired">'.$langs->trans("PaymentMode").'</td><td>';
|
||||
$form->select_types_paiements(GETPOST("paymenttype"), "paymenttype");
|
||||
print "</td>\n";
|
||||
print "</tr>";
|
||||
|
||||
if (! empty($conf->banque->enabled))
|
||||
{
|
||||
// Number
|
||||
print '<tr><td>'.$langs->trans('Numero');
|
||||
print ' <em>('.$langs->trans("ChequeOrTransferNumber").')</em>';
|
||||
print '<td><input name="num_payment" type="text" value="'.GETPOST("num_payment").'"></td></tr>'."\n";
|
||||
}
|
||||
|
||||
|
||||
// Other attributes
|
||||
$parameters=array('colspan' => ' colspan="1"');
|
||||
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
|
||||
|
||||
@ -29,9 +29,9 @@ $langs->load("salaries");
|
||||
$langs->load("bills");
|
||||
|
||||
// Security check
|
||||
$socid = isset($_GET["socid"])?$_GET["socid"]:'';
|
||||
$socid = GETPOST("socid","int");
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result = restrictedArea($user, 'tax', '', '', 'charges');
|
||||
$result = restrictedArea($user, 'salaries', '', '', '');
|
||||
|
||||
$sortfield = GETPOST("sortfield",'alpha');
|
||||
$sortorder = GETPOST("sortorder",'alpha');
|
||||
@ -101,11 +101,11 @@ if ($result)
|
||||
|
||||
$param='';
|
||||
if ($typeid) $param.='&typeid='.$typeid;
|
||||
|
||||
|
||||
print_barre_liste($langs->trans("SalariesPayments"),$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$totalnboflines);
|
||||
|
||||
dol_htmloutput_mesg($mesg);
|
||||
|
||||
|
||||
print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
@ -118,7 +118,7 @@ if ($result)
|
||||
print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder);
|
||||
print_liste_field_titre("");
|
||||
print "</tr>\n";
|
||||
|
||||
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td class="liste_titre"> </td>';
|
||||
print '<td class="liste_titre"> </td>';
|
||||
@ -133,7 +133,7 @@ if ($result)
|
||||
print '<input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" name="button_search" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
|
||||
print '</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
|
||||
while ($i < min($num,$limit))
|
||||
{
|
||||
$obj = $db->fetch_object($result);
|
||||
@ -157,7 +157,7 @@ if ($result)
|
||||
print "</tr>\n";
|
||||
|
||||
$total = $total + $obj->amount;
|
||||
|
||||
|
||||
$i++;
|
||||
}
|
||||
print '<tr class="liste_total"><td colspan="5" class="liste_total">'.$langs->trans("Total").'</td>';
|
||||
@ -165,9 +165,9 @@ if ($result)
|
||||
print "<td> </td></tr>";
|
||||
|
||||
print "</table>";
|
||||
|
||||
|
||||
print '</form>';
|
||||
|
||||
|
||||
$db->free($result);
|
||||
}
|
||||
else
|
||||
|
||||
@ -60,7 +60,7 @@ if (isset($_GET["modetax"])) $modetax=$_GET["modetax"];
|
||||
*
|
||||
* @param DoliDB $db Database handler
|
||||
* @param string $sql SQL Request
|
||||
* @param date $date Date
|
||||
* @param date $date Date
|
||||
* @return void
|
||||
*/
|
||||
function pt ($db, $sql, $date)
|
||||
@ -122,17 +122,17 @@ print $langs->trans("VATReportBuildWithOptionDefinedInModule").'<br>';
|
||||
print '('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')<br>';
|
||||
print '<br>';
|
||||
|
||||
echo '<table width="100%" class="notopnoleftnoright">';
|
||||
echo '<tr><td class="notopnoleft" width="50%">';
|
||||
print '<table width="100%" class="notopnoleftnoright">';
|
||||
print '<tr><td class="notopnoleft" width="50%">';
|
||||
print_titre($langs->trans("VATSummary"));
|
||||
// The report mode is the one defined by defaut in tax module setup
|
||||
//print $modetax;
|
||||
//print '('.$langs->trans("SeeVATReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year_start.'&modetax=0">','</a>').')';
|
||||
echo '</td><td>';
|
||||
print '</td><td>';
|
||||
print_titre($langs->trans("VATPaid"));
|
||||
echo '</td></tr>';
|
||||
print '</td></tr>';
|
||||
|
||||
echo '<tr><td class="notopnoleft" width="50%" valign="top">';
|
||||
print '<tr><td class="notopnoleft" width="50%" valign="top">';
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
print '<tr class="liste_titre">';
|
||||
@ -230,7 +230,7 @@ print '</tr>';
|
||||
print '</table>';
|
||||
|
||||
|
||||
echo '</td>';
|
||||
print '</td>';
|
||||
print '<td class="notopnoleftnoright" valign="top" width="50%">';
|
||||
|
||||
/*
|
||||
@ -242,15 +242,15 @@ $sql.= " FROM ".MAIN_DB_PREFIX."tva as f";
|
||||
$sql.= " WHERE f.entity = ".$conf->entity;
|
||||
$sql.= " AND f.datev >= '".$db->idate(dol_get_first_day($y,1,false))."'";
|
||||
$sql.= " AND f.datev <= '".$db->idate(dol_get_last_day($y,12,false))."'";
|
||||
$sql.= " GROUP BY dm ORDER BY dm ASC";
|
||||
$sql.= " GROUP BY dm ORDER BY dm ASC";
|
||||
|
||||
pt($db, $sql,$langs->trans("Year")." $y");
|
||||
|
||||
|
||||
print "</td></tr></table>";
|
||||
|
||||
echo '</td></tr>';
|
||||
echo '</table>';
|
||||
print '</td></tr>';
|
||||
print '</table>';
|
||||
|
||||
|
||||
$db->close();
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
* Copyright (C) 2007 Franky Van Liedekerke <franky.van.liedekerke@telenet.be>
|
||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2013 Alexandre Spangaro <alexandre.spangaro@gmail.com>
|
||||
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -105,11 +106,11 @@ if (empty($reshook))
|
||||
|
||||
// Creation user
|
||||
$nuser = new User($db);
|
||||
$result=$nuser->create_from_contact($object,$_POST["login"]);
|
||||
$result=$nuser->create_from_contact($object,GETPOST("login")); // Do not use GETPOST(alpha)
|
||||
|
||||
if ($result > 0)
|
||||
{
|
||||
$result2=$nuser->setPassword($user,$_POST["password"],0,0,1);
|
||||
$result2=$nuser->setPassword($user,GETPOST("password"),0,0,1); // Do not use GETPOST(alpha)
|
||||
if ($result2)
|
||||
{
|
||||
$db->commit();
|
||||
@ -159,37 +160,37 @@ if (empty($reshook))
|
||||
|
||||
if ($canvas) $object->canvas=$canvas;
|
||||
|
||||
$object->socid = $_POST["socid"];
|
||||
$object->lastname = $_POST["lastname"];
|
||||
$object->firstname = $_POST["firstname"];
|
||||
$object->civility_id = $_POST["civility_id"];
|
||||
$object->poste = $_POST["poste"];
|
||||
$object->address = $_POST["address"];
|
||||
$object->zip = $_POST["zipcode"];
|
||||
$object->town = $_POST["town"];
|
||||
$object->country_id = $_POST["country_id"];
|
||||
$object->state_id = $_POST["state_id"];
|
||||
$object->skype = $_POST["skype"];
|
||||
$object->email = $_POST["email"];
|
||||
$object->phone_pro = $_POST["phone_pro"];
|
||||
$object->phone_perso = $_POST["phone_perso"];
|
||||
$object->phone_mobile = $_POST["phone_mobile"];
|
||||
$object->fax = $_POST["fax"];
|
||||
$object->jabberid = $_POST["jabberid"];
|
||||
$object->no_email = $_POST["no_email"];
|
||||
$object->priv = $_POST["priv"];
|
||||
$object->socid = GETPOST("socid",'int');
|
||||
$object->lastname = GETPOST("lastname");
|
||||
$object->firstname = GETPOST("firstname");
|
||||
$object->civility_id = GETPOST("civility_id",'alpha');
|
||||
$object->poste = GETPOST("poste");
|
||||
$object->address = GETPOST("address");
|
||||
$object->zip = GETPOST("zipcode");
|
||||
$object->town = GETPOST("town");
|
||||
$object->country_id = GETPOST("country_id",'int');
|
||||
$object->state_id = GETPOST("state_id",'int');
|
||||
$object->skype = GETPOST("skype");
|
||||
$object->email = GETPOST("email",'alpha');
|
||||
$object->phone_pro = GETPOST("phone_pro");
|
||||
$object->phone_perso = GETPOST("phone_perso");
|
||||
$object->phone_mobile = GETPOST("phone_mobile");
|
||||
$object->fax = GETPOST("fax");
|
||||
$object->jabberid = GETPOST("jabberid",'alpha');
|
||||
$object->no_email = GETPOST("no_email",'int');
|
||||
$object->priv = GETPOST("priv",'int');
|
||||
$object->note_public = GETPOST("note_public");
|
||||
$object->note_private = GETPOST("note_private");
|
||||
$object->statut = 1; //Defult status to Actif
|
||||
|
||||
// Note: Correct date should be completed with location to have exact GM time of birth.
|
||||
$object->birthday = dol_mktime(0,0,0,$_POST["birthdaymonth"],$_POST["birthdayday"],$_POST["birthdayyear"]);
|
||||
$object->birthday_alert = $_POST["birthday_alert"];
|
||||
$object->birthday = dol_mktime(0,0,0,GETPOST("birthdaymonth",'int'),GETPOST("birthdayday",'int'),GETPOST("birthdayyear",'int'));
|
||||
$object->birthday_alert = GETPOST("birthday_alert",'alpha');
|
||||
|
||||
// Fill array 'array_options' with data from add form
|
||||
$ret = $extrafields->setOptionalsFromPost($extralabels,$object);
|
||||
|
||||
if (! $_POST["lastname"])
|
||||
if (! GETPOST("lastname"))
|
||||
{
|
||||
$error++; $errors[]=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Lastname").' / '.$langs->transnoentities("Label"));
|
||||
$action = 'create';
|
||||
@ -223,8 +224,8 @@ if (empty($reshook))
|
||||
{
|
||||
$result=$object->fetch($id);
|
||||
|
||||
$object->old_lastname = $_POST["old_lastname"];
|
||||
$object->old_firstname = $_POST["old_firstname"];
|
||||
$object->old_lastname = GETPOST("old_lastname");
|
||||
$object->old_firstname = GETPOST("old_firstname");
|
||||
|
||||
$result = $object->delete();
|
||||
if ($result > 0)
|
||||
@ -254,30 +255,30 @@ if (empty($reshook))
|
||||
|
||||
$object->oldcopy=dol_clone($object);
|
||||
|
||||
$object->old_lastname = $_POST["old_lastname"];
|
||||
$object->old_firstname = $_POST["old_firstname"];
|
||||
$object->old_lastname = GETPOST("old_lastname");
|
||||
$object->old_firstname = GETPOST("old_firstname");
|
||||
|
||||
$object->socid = $_POST["socid"];
|
||||
$object->lastname = $_POST["lastname"];
|
||||
$object->firstname = $_POST["firstname"];
|
||||
$object->civility_id = $_POST["civility_id"];
|
||||
$object->poste = $_POST["poste"];
|
||||
$object->socid = GETPOST("socid",'int');
|
||||
$object->lastname = GETPOST("lastname");
|
||||
$object->firstname = GETPOST("firstname");
|
||||
$object->civility_id = GETPOST("civility_id",'alpha');
|
||||
$object->poste = GETPOST("poste");
|
||||
|
||||
$object->address = $_POST["address"];
|
||||
$object->zip = $_POST["zipcode"];
|
||||
$object->town = $_POST["town"];
|
||||
$object->state_id = $_POST["state_id"];
|
||||
$object->country_id = $_POST["country_id"];
|
||||
$object->address = GETPOST("address");
|
||||
$object->zip = GETPOST("zipcode");
|
||||
$object->town = GETPOST("town");
|
||||
$object->state_id = GETPOST("state_id",'int');
|
||||
$object->country_id = GETPOST("country_id",'int');
|
||||
|
||||
$object->email = $_POST["email"];
|
||||
$object->skype = $_POST["skype"];
|
||||
$object->phone_pro = $_POST["phone_pro"];
|
||||
$object->phone_perso = $_POST["phone_perso"];
|
||||
$object->phone_mobile = $_POST["phone_mobile"];
|
||||
$object->fax = $_POST["fax"];
|
||||
$object->jabberid = $_POST["jabberid"];
|
||||
$object->no_email = $_POST["no_email"];
|
||||
$object->priv = $_POST["priv"];
|
||||
$object->email = GETPOST("email",'alpha');
|
||||
$object->skype = GETPOST("skype",'alpha');
|
||||
$object->phone_pro = GETPOST("phone_pro");
|
||||
$object->phone_perso = GETPOST("phone_perso");
|
||||
$object->phone_mobile = GETPOST("phone_mobile");
|
||||
$object->fax = GETPOST("fax");
|
||||
$object->jabberid = GETPOST("jabberid",'alpha');
|
||||
$object->no_email = GETPOST("no_email",'int');
|
||||
$object->priv = GETPOST("priv",'int');
|
||||
$object->note_public = GETPOST("note_public");
|
||||
$object->note_private = GETPOST("note_private");
|
||||
|
||||
@ -423,8 +424,8 @@ else
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
// Name
|
||||
print '<tr><td width="20%" class="fieldrequired">'.$langs->trans("Lastname").' / '.$langs->trans("Label").'</td><td width="30%"><input name="lastname" type="text" size="30" maxlength="80" value="'.(isset($_POST["lastname"])?$_POST["lastname"]:$object->lastname).'"></td>';
|
||||
print '<td width="20%">'.$langs->trans("Firstname").'</td><td width="30%"><input name="firstname" type="text" size="30" maxlength="80" value="'.(isset($_POST["firstname"])?$_POST["firstname"]:$object->firstname).'"></td></tr>';
|
||||
print '<tr><td width="20%" class="fieldrequired">'.$langs->trans("Lastname").' / '.$langs->trans("Label").'</td><td width="30%"><input name="lastname" type="text" size="30" maxlength="80" value="'.dol_escape_htmltag(GETPOST("lastname")?GETPOST("lastname"):$object->lastname).'"></td>';
|
||||
print '<td width="20%">'.$langs->trans("Firstname").'</td><td width="30%"><input name="firstname" type="text" size="30" maxlength="80" value="'.dol_escape_htmltag(GETPOST("firstname")?GETPOST("firstname"):$object->firstname).'"></td></tr>';
|
||||
|
||||
// Company
|
||||
if (empty($conf->global->SOCIETE_DISABLE_CONTACTS))
|
||||
@ -447,10 +448,10 @@ else
|
||||
|
||||
// Civility
|
||||
print '<tr><td width="15%">'.$langs->trans("UserTitle").'</td><td colspan="3">';
|
||||
print $formcompany->select_civility(isset($_POST["civility_id"])?$_POST["civility_id"]:$object->civility_id);
|
||||
print $formcompany->select_civility(GETPOST("civility_id",'alpha')?GETPOST("civility_id",'alpha'):$object->civility_id);
|
||||
print '</td></tr>';
|
||||
|
||||
print '<tr><td>'.$langs->trans("PostOrFunction").'</td><td colspan="3"><input name="poste" type="text" size="50" maxlength="80" value="'.(isset($_POST["poste"])?$_POST["poste"]:$object->poste).'"></td>';
|
||||
print '<tr><td>'.$langs->trans("PostOrFunction").'</td><td colspan="3"><input name="poste" type="text" size="50" maxlength="80" value="'.dol_escape_htmltag(GETPOST("poste",'alpha')?GETPOST("poste",'alpha'):$object->poste).'"></td>';
|
||||
|
||||
$colspan=3;
|
||||
if ($conf->use_javascript_ajax && $socid > 0) $colspan=2;
|
||||
@ -458,7 +459,7 @@ else
|
||||
// Address
|
||||
if (($objsoc->typent_code == 'TE_PRIVATE' || ! empty($conf->global->CONTACT_USE_COMPANY_ADDRESS)) && dol_strlen(trim($object->address)) == 0) $object->address = $objsoc->address; // Predefined with third party
|
||||
print '<tr><td>'.$langs->trans("Address");
|
||||
print '</td><td colspan="'.$colspan.'"><textarea class="flat" name="address" cols="70">'.(isset($_POST["address"])?$_POST["address"]:$object->address).'</textarea></td>';
|
||||
print '</td><td colspan="'.$colspan.'"><textarea class="flat" name="address" cols="70">'.(GETPOST("address",'alpha')?GETPOST("address",'alpha'):$object->address).'</textarea></td>';
|
||||
|
||||
if ($conf->use_javascript_ajax && $socid > 0)
|
||||
{
|
||||
@ -475,13 +476,13 @@ else
|
||||
if (($objsoc->typent_code == 'TE_PRIVATE' || ! empty($conf->global->CONTACT_USE_COMPANY_ADDRESS)) && dol_strlen(trim($object->zip)) == 0) $object->zip = $objsoc->zip; // Predefined with third party
|
||||
if (($objsoc->typent_code == 'TE_PRIVATE' || ! empty($conf->global->CONTACT_USE_COMPANY_ADDRESS)) && dol_strlen(trim($object->town)) == 0) $object->town = $objsoc->town; // Predefined with third party
|
||||
print '<tr><td>'.$langs->trans("Zip").' / '.$langs->trans("Town").'</td><td colspan="'.$colspan.'" class="maxwidthonsmartphone">';
|
||||
print $formcompany->select_ziptown((isset($_POST["zipcode"])?$_POST["zipcode"]:$object->zip),'zipcode',array('town','selectcountry_id','state_id'),6).' ';
|
||||
print $formcompany->select_ziptown((isset($_POST["town"])?$_POST["town"]:$object->town),'town',array('zipcode','selectcountry_id','state_id'));
|
||||
print $formcompany->select_ziptown((GETPOST("zipcode")?GETPOST("zipcode"):$object->zip),'zipcode',array('town','selectcountry_id','state_id'),6).' ';
|
||||
print $formcompany->select_ziptown((GETPOST("town")?GETPOST("town"):$object->town),'town',array('zipcode','selectcountry_id','state_id'));
|
||||
print '</td></tr>';
|
||||
|
||||
// Country
|
||||
print '<tr><td>'.$langs->trans("Country").'</td><td colspan="'.$colspan.'" class="maxwidthonsmartphone">';
|
||||
print $form->select_country((isset($_POST["country_id"])?$_POST["country_id"]:$object->country_id),'country_id');
|
||||
print $form->select_country((GETPOST("country_id",'alpha')?GETPOST("country_id",'alpha'):$object->country_id),'country_id');
|
||||
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
|
||||
print '</td></tr>';
|
||||
|
||||
@ -491,7 +492,7 @@ else
|
||||
print '<tr><td>'.$langs->trans('State').'</td><td colspan="'.$colspan.'" class="maxwidthonsmartphone">';
|
||||
if ($object->country_id)
|
||||
{
|
||||
print $formcompany->select_state(isset($_POST["state_id"])?$_POST["state_id"]:$object->state_id,$object->country_code,'state_id');
|
||||
print $formcompany->select_state(GETPOST("state_id",'alpha')?GETPOST("state_id",'alpha'):$object->state_id,$object->country_code,'state_id');
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -502,19 +503,19 @@ else
|
||||
|
||||
// Phone / Fax
|
||||
if (($objsoc->typent_code == 'TE_PRIVATE' || ! empty($conf->global->CONTACT_USE_COMPANY_ADDRESS)) && dol_strlen(trim($object->phone_pro)) == 0) $object->phone_pro = $objsoc->phone; // Predefined with third party
|
||||
print '<tr><td>'.$langs->trans("PhonePro").'</td><td><input name="phone_pro" id="phone_pro" type="text" size="18" maxlength="80" value="'.(isset($_POST["phone_pro"])?$_POST["phone_pro"]:$object->phone_pro).'"></td>';
|
||||
print '<td>'.$langs->trans("PhonePerso").'</td><td><input name="phone_perso" id="phone_perso" type="text" size="18" maxlength="80" value="'.(isset($_POST["phone_perso"])?$_POST["phone_perso"]:$object->phone_perso).'"></td></tr>';
|
||||
print '<tr><td>'.$langs->trans("PhonePro").'</td><td><input name="phone_pro" id="phone_pro" type="text" size="18" maxlength="80" value="'.dol_escape_htmltag(GETPOST("phone_pro")?GETPOST("phone_pro"):$object->phone_pro).'"></td>';
|
||||
print '<td>'.$langs->trans("PhonePerso").'</td><td><input name="phone_perso" id="phone_perso" type="text" size="18" maxlength="80" value="'.dol_escape_htmltag(GETPOST("phone_perso")?GETPOST("phone_perso"):$object->phone_perso).'"></td></tr>';
|
||||
|
||||
if (($objsoc->typent_code == 'TE_PRIVATE' || ! empty($conf->global->CONTACT_USE_COMPANY_ADDRESS)) && dol_strlen(trim($object->fax)) == 0) $object->fax = $objsoc->fax; // Predefined with third party
|
||||
print '<tr><td>'.$langs->trans("PhoneMobile").'</td><td><input name="phone_mobile" id="phone_mobile" type="text" size="18" maxlength="80" value="'.(isset($_POST["phone_mobile"])?$_POST["phone_mobile"]:$object->phone_mobile).'"></td>';
|
||||
print '<td>'.$langs->trans("Fax").'</td><td><input name="fax" id="fax" type="text" size="18" maxlength="80" value="'.(isset($_POST["fax"])?$_POST["fax"]:$object->fax).'"></td></tr>';
|
||||
print '<tr><td>'.$langs->trans("PhoneMobile").'</td><td><input name="phone_mobile" id="phone_mobile" type="text" size="18" maxlength="80" value="'.dol_escape_htmltag(GETPOST("phone_mobile")?GETPOST("phone_mobile"):$object->phone_mobile).'"></td>';
|
||||
print '<td>'.$langs->trans("Fax").'</td><td><input name="fax" id="fax" type="text" size="18" maxlength="80" value="'.dol_escape_htmltag(GETPOST("fax",'alpha')?GETPOST("fax",'alpha'):$object->fax).'"></td></tr>';
|
||||
|
||||
// EMail
|
||||
if (($objsoc->typent_code == 'TE_PRIVATE' || ! empty($conf->global->CONTACT_USE_COMPANY_ADDRESS)) && dol_strlen(trim($object->email)) == 0) $object->email = $objsoc->email; // Predefined with third party
|
||||
print '<tr><td>'.$langs->trans("Email").'</td><td><input name="email" id="email" type="text" size="50" maxlength="80" value="'.(isset($_POST["email"])?$_POST["email"]:$object->email).'"></td>';
|
||||
print '<tr><td>'.$langs->trans("Email").'</td><td><input name="email" id="email" type="text" size="50" maxlength="80" value="'.(GETPOST("email",'alpha')?GETPOST("email",'alpha'):$object->email).'"></td>';
|
||||
if (! empty($conf->mailing->enabled))
|
||||
{
|
||||
print '<td>'.$langs->trans("No_Email").'</td><td>'.$form->selectyesno('no_email',(isset($_POST["no_email"])?$_POST["no_email"]:$object->no_email), 1).'</td>';
|
||||
print '<td>'.$langs->trans("No_Email").'</td><td>'.$form->selectyesno('no_email',(GETPOST("no_email",'alpha')?GETPOST("no_email",'alpha'):$object->no_email), 1).'</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -523,18 +524,18 @@ else
|
||||
print '</tr>';
|
||||
|
||||
// Instant message and no email
|
||||
print '<tr><td>'.$langs->trans("IM").'</td><td colspan="3"><input name="jabberid" type="text" size="50" maxlength="80" value="'.(isset($_POST["jabberid"])?$_POST["jabberid"]:$object->jabberid).'"></td></tr>';
|
||||
print '<tr><td>'.$langs->trans("IM").'</td><td colspan="3"><input name="jabberid" type="text" size="50" maxlength="80" value="'.(GETPOST("jabberid",'alpha')?GETPOST("jabberid",'alpha'):$object->jabberid).'"></td></tr>';
|
||||
|
||||
// Skype
|
||||
if (! empty($conf->skype->enabled))
|
||||
{
|
||||
print '<tr><td>'.$langs->trans("Skype").'</td><td colspan="3"><input name="skype" type="text" size="50" maxlength="80" value="'.(isset($_POST["skype"])?$_POST["skype"]:$object->skype).'"></td></tr>';
|
||||
print '<tr><td>'.$langs->trans("Skype").'</td><td colspan="3"><input name="skype" type="text" size="50" maxlength="80" value="'.(GETPOST("skype",'alpha')?GETPOST("skype",'alpha'):$object->skype).'"></td></tr>';
|
||||
}
|
||||
|
||||
// Visibility
|
||||
print '<tr><td>'.$langs->trans("ContactVisibility").'</td><td colspan="3">';
|
||||
$selectarray=array('0'=>$langs->trans("ContactPublic"),'1'=>$langs->trans("ContactPrivate"));
|
||||
print $form->selectarray('priv',$selectarray,(isset($_POST["priv"])?$_POST["priv"]:$object->priv),0);
|
||||
print $form->selectarray('priv',$selectarray,(GETPOST("priv",'alpha')?GETPOST("priv",'alpha'):$object->priv),0);
|
||||
print '</td></tr>';
|
||||
|
||||
// Other attributes
|
||||
|
||||
@ -1099,18 +1099,14 @@ else
|
||||
*/
|
||||
$productstatic=new Product($db);
|
||||
|
||||
|
||||
$usemargins=0;
|
||||
if (! empty($conf->margin->enabled) && ! empty($object->element) && in_array($object->element,array('facture','propal','commande'))) $usemargins=1;
|
||||
|
||||
// Title line for service
|
||||
//print '<table class="notopnoleft allwidth">'; // Array with (n*2)+1 lines
|
||||
$cursorline=1;
|
||||
while ($cursorline <= $nbofservices)
|
||||
{
|
||||
//print '<tr '.$bc[false].'>';
|
||||
//print '<td width="90" style="border-left: 1px solid #'.$colorb.'; border-top: 1px solid #'.$colorb.'; border-bottom: 1px solid #'.$colorb.';">';
|
||||
//print $langs->trans("ServiceNb",$cursorline).'</td>';
|
||||
|
||||
// print '<td class="tab" style="border-right: 1px solid #'.$colorb.'; border-top: 1px solid #'.$colorb.'; border-bottom: 1px solid #'.$colorb.';" rowspan="2">';
|
||||
|
||||
|
||||
print '<form name="update" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'" method="post">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<input type="hidden" name="action" value="updateligne">';
|
||||
@ -1119,7 +1115,7 @@ else
|
||||
print '<input type="hidden" name="fournprice" value="'.($objp->fk_fournprice?$objp->fk_fournprice:'0').'">';
|
||||
|
||||
// Area with common detail of line
|
||||
print '<table class="notopnoleft allwidth" width="100%">';
|
||||
print '<table class="notopnoleftnoright allwidth tableforservicepart1" width="100%">';
|
||||
|
||||
$sql = "SELECT cd.rowid, cd.statut, cd.label as label_det, cd.fk_product, cd.description, cd.price_ht, cd.qty,";
|
||||
$sql.= " cd.tva_tx, cd.remise_percent, cd.info_bits, cd.subprice,";
|
||||
@ -1289,10 +1285,10 @@ else
|
||||
print '<td align="right"><input size="5" type="text" name="elprice" value="'.price($objp->subprice).'"></td>';
|
||||
print '<td align="center"><input size="2" type="text" name="elqty" value="'.$objp->qty.'"></td>';
|
||||
print '<td align="right" class="nowrap"><input size="1" type="text" name="elremise_percent" value="'.$objp->remise_percent.'">%</td>';
|
||||
if ($conf->margin->enabled) {
|
||||
if (! empty($usemargins))
|
||||
{
|
||||
print '<td align="right">';
|
||||
if ($objp->fk_product)
|
||||
print '<select id="fournprice" name="fournprice"></select>';
|
||||
if ($objp->fk_product) print '<select id="fournprice" name="fournprice"></select>';
|
||||
print '<input id="buying_price" type="text" size="5" name="buying_price" value="'.price($objp->pa_ht,0,'',0).'"></td>';
|
||||
}
|
||||
print '<td align="center" rowspan="2" valign="middle"><input type="submit" class="button" name="save" value="'.$langs->trans("Modify").'">';
|
||||
@ -1389,7 +1385,7 @@ else
|
||||
// Area with status and activation info of line
|
||||
if ($object->statut > 0)
|
||||
{
|
||||
print '<table class="notopnoleft" width="100%">';
|
||||
print '<table class="notopnoleftnoright tableforservicepart2" width="100%">';
|
||||
|
||||
print '<tr '.$bc[false].'>';
|
||||
print '<td>'.$langs->trans("ServiceStatus").': '.$object->lines[$cursorline-1]->getLibStatut(4).'</td>';
|
||||
@ -1447,8 +1443,7 @@ else
|
||||
print '<form name="active" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&ligne='.GETPOST('ligne').'&action=active" method="post">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
//print '<tr class="liste_titre"><td colspan="5">'.$langs->trans("Status").'</td></tr>';
|
||||
print '<table class="notopnoleftnoright" width="100%">';
|
||||
|
||||
// Definie date debut et fin par defaut
|
||||
$dateactstart = $objp->date_debut;
|
||||
@ -1540,15 +1535,8 @@ else
|
||||
print '</form>';
|
||||
}
|
||||
|
||||
/* print '</td>'; // End td if line is 1
|
||||
|
||||
print '</tr>';
|
||||
print '<tr><td style="border-right: 1px solid #'.$colorb.'"> </td></tr>';*/
|
||||
|
||||
$cursorline++;
|
||||
}
|
||||
//print '</table>';
|
||||
|
||||
|
||||
// Form to add new line
|
||||
if ($user->rights->contrat->creer && ($object->statut >= 0))
|
||||
|
||||
@ -110,7 +110,7 @@ abstract class CommonDocGenerator
|
||||
'mycompany_web'=>$mysoc->url,
|
||||
'mycompany_juridicalstatus'=>$mysoc->forme_juridique,
|
||||
'mycompany_managers'=>$mysoc->managers,
|
||||
'mycompany_capital'=>$mysoc->capital,
|
||||
'mycompany_capital'=>$mysoc->capital,
|
||||
'mycompany_barcode'=>$mysoc->barcode,
|
||||
'mycompany_idprof1'=>$mysoc->idprof1,
|
||||
'mycompany_idprof2'=>$mysoc->idprof2,
|
||||
@ -254,24 +254,22 @@ abstract class CommonDocGenerator
|
||||
);
|
||||
|
||||
// Retrieve extrafields
|
||||
if (is_array($object->array_options) && count($object->array_options)) {
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
|
||||
$extrafields = new ExtraFields($this->db);
|
||||
$extralabels = $extrafields->fetch_name_optionals_label('contact', true);
|
||||
$object->fetch_optionals($object->id, $extralabels);
|
||||
|
||||
foreach($extrafields->attribute_label as $key => $label)
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
|
||||
$extrafields = new ExtraFields($this->db);
|
||||
$extralabels = $extrafields->fetch_name_optionals_label('socpeople', true);
|
||||
$object->fetch_optionals($object->id, $extralabels);
|
||||
|
||||
foreach($extrafields->attribute_label as $key => $label)
|
||||
{
|
||||
if ($extrafields->attribute_type[$key] == 'price')
|
||||
{
|
||||
if ($extrafields->attribute_type[$key] == 'price')
|
||||
{
|
||||
$object->array_options['options_' . $key] = price($object->array_options ['options_' . $key], 0, $outputlangs, 0, 0, - 1, $conf->currency);
|
||||
}
|
||||
elseif($extrafields->attribute_type[$key] == 'select')
|
||||
{
|
||||
$object->array_options['options_' . $key] = $extrafields->attribute_param[$key]['options'][$object->array_options['options_' . $key]];
|
||||
}
|
||||
$array_contact = array_merge($array_contact, array('contact_options_' . $key => $object->array_options['options_'. $key]));
|
||||
$object->array_options['options_' . $key] = price($object->array_options ['options_' . $key], 0, $outputlangs, 0, 0, - 1, $conf->currency);
|
||||
}
|
||||
elseif($extrafields->attribute_type[$key] == 'select')
|
||||
{
|
||||
$object->array_options['options_' . $key] = $extrafields->attribute_param[$key]['options'][$object->array_options['options_' . $key]];
|
||||
}
|
||||
$array_contact = array_merge($array_contact, array($array_key.'_options_' . $key => $object->array_options['options_'. $key]));
|
||||
}
|
||||
return $array_contact;
|
||||
}
|
||||
|
||||
@ -53,6 +53,42 @@ abstract class CommonObject
|
||||
// No constructor as it is an abstract class
|
||||
|
||||
|
||||
/**
|
||||
* Check an object id/ref exists
|
||||
* If you don't need/want to instantiate object and just need to know if object exists, use this method instead of fetch
|
||||
*
|
||||
* @param string $element String of element ('product', 'facture', ...)
|
||||
* @param int $id Id of object
|
||||
* @param string $ref Ref of object to check
|
||||
* @param string $ref_ext Ref ext of object to check
|
||||
* @return int <0 if KO, 0 if OK but not found, >0 if OK and exists
|
||||
*/
|
||||
static function isExistingObject($element, $id, $ref='', $ref_ext='')
|
||||
{
|
||||
global $db;
|
||||
|
||||
$sql = "SELECT rowid, ref, ref_ext";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX.$element;
|
||||
if ($id > 0) $sql.= " WHERE rowid = ".$db->escape($id);
|
||||
else if ($ref) $sql.= " WHERE ref = '".$db->escape($ref)."'";
|
||||
else if ($ref_ext) $sql.= " WHERE ref_ext = '".$db->escape($ref_ext)."'";
|
||||
else {
|
||||
$error='ErrorWrongParameters';
|
||||
dol_print_error(get_class()."::isExistingObject ".$error, LOG_ERR);
|
||||
return -1;
|
||||
}
|
||||
|
||||
dol_syslog(get_class()."::isExistingObject sql=".$sql);
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$num=$db->num_rows($resql);
|
||||
if ($num > 0) return 1;
|
||||
else return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to output saved errors
|
||||
*
|
||||
@ -114,33 +150,6 @@ abstract class CommonObject
|
||||
return dol_format_address($this, $withcountry, $sep);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if ref is used.
|
||||
*
|
||||
* @return int <0 if KO, 0 if not found, >0 if found
|
||||
*/
|
||||
function verifyNumRef()
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$sql = "SELECT rowid";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX.$this->table_element;
|
||||
$sql.= " WHERE ref = '".$this->ref."'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
dol_syslog(get_class($this)."::verifyNumRef sql=".$sql, LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$num = $this->db->num_rows($resql);
|
||||
return $num;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->lasterror();
|
||||
dol_syslog(get_class($this)."::verifyNumRef ".$this->error, LOG_ERR);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a link between element $this->element and a contact
|
||||
@ -1827,9 +1836,6 @@ abstract class CommonObject
|
||||
else if ($objecttype == 'invoice_supplier' || $objecttype == 'order_supplier') {
|
||||
$classpath = 'fourn/class'; $module = 'fournisseur';
|
||||
}
|
||||
else if ($objecttype == 'order_supplier') {
|
||||
$classpath = 'fourn/class';
|
||||
}
|
||||
else if ($objecttype == 'fichinter') {
|
||||
$classpath = 'fichinter/class'; $subelement = 'fichinter'; $module = 'ficheinter';
|
||||
}
|
||||
@ -2055,7 +2061,7 @@ abstract class CommonObject
|
||||
|
||||
|
||||
/**
|
||||
* Get special code of line
|
||||
* Get special code of a line
|
||||
*
|
||||
* @param int $lineid Id of line
|
||||
* @return int Special code
|
||||
@ -2721,7 +2727,7 @@ abstract class CommonObject
|
||||
*/
|
||||
function printObjectLines($action, $seller, $buyer, $selected=0, $dateSelector=0)
|
||||
{
|
||||
global $conf,$langs,$user,$hookmanager;
|
||||
global $conf,$langs,$user,$object,$hookmanager;
|
||||
|
||||
print '<tr class="liste_titre nodrag nodrop">';
|
||||
|
||||
@ -2760,11 +2766,11 @@ abstract class CommonObject
|
||||
// Total HT
|
||||
print '<td align="right" width="50">'.$langs->trans('TotalHTShort').'</td>';
|
||||
|
||||
print '<td width="10"></td>';
|
||||
print '<td></td>'; // No width to allow autodim
|
||||
|
||||
print '<td width="10"></td>';
|
||||
|
||||
print '<td class="nowrap"></td>'; // No width to allow autodim
|
||||
print '<td width="10"></td>';
|
||||
|
||||
print "</tr>\n";
|
||||
|
||||
@ -2819,7 +2825,7 @@ abstract class CommonObject
|
||||
*/
|
||||
function printObjectLine($action,$line,$var,$num,$i,$dateSelector,$seller,$buyer,$selected=0,$extrafieldsline=0)
|
||||
{
|
||||
global $conf,$langs,$user,$hookmanager;
|
||||
global $conf,$langs,$user,$object,$hookmanager;
|
||||
global $form,$bc,$bcdd;
|
||||
|
||||
$element=$this->element;
|
||||
@ -3091,7 +3097,8 @@ abstract class CommonObject
|
||||
* @param string $force_price True of not
|
||||
* @return mixed Array with info
|
||||
*/
|
||||
function getMarginInfos($force_price=false) {
|
||||
function getMarginInfos($force_price=false)
|
||||
{
|
||||
global $conf;
|
||||
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php';
|
||||
|
||||
@ -3211,7 +3218,7 @@ abstract class CommonObject
|
||||
}
|
||||
|
||||
/**
|
||||
* displayMarginInfos
|
||||
* Show the array with all margin infos
|
||||
*
|
||||
* @param string $force_price Force price
|
||||
* @return void
|
||||
@ -3228,7 +3235,7 @@ abstract class CommonObject
|
||||
|
||||
$marginInfo = $this->getMarginInfos($force_price);
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
print '<table class="nobordernopadding" width="100%">';
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td width="30%">'.$langs->trans('Margins').'</td>';
|
||||
print '<td width="20%" align="right">'.$langs->trans('SellingPrice').'</td>';
|
||||
@ -3249,9 +3256,9 @@ abstract class CommonObject
|
||||
print '<td align="right">'.price($marginInfo['pa_products'], null, null, null, null, $rounding).'</td>';
|
||||
print '<td align="right">'.price($marginInfo['margin_on_products'], null, null, null, null, $rounding).'</td>';
|
||||
if (! empty($conf->global->DISPLAY_MARGIN_RATES))
|
||||
print '<td align="right">'.(($marginInfo['margin_rate_products'] == '')?'n/a':price($marginInfo['margin_rate_products'], null, null, null, null, $rounding).'%').'</td>';
|
||||
print '<td align="right">'.(($marginInfo['margin_rate_products'] == '')?'':price($marginInfo['margin_rate_products'], null, null, null, null, $rounding).'%').'</td>';
|
||||
if (! empty($conf->global->DISPLAY_MARK_RATES))
|
||||
print '<td align="right">'.(($marginInfo['mark_rate_products'] == '')?'n/a':price($marginInfo['mark_rate_products'], null, null, null, null, $rounding).'%').'</td>';
|
||||
print '<td align="right">'.(($marginInfo['mark_rate_products'] == '')?'':price($marginInfo['mark_rate_products'], null, null, null, null, $rounding).'%').'</td>';
|
||||
print '</tr>';
|
||||
print '<tr class="pair">';
|
||||
print '<td>'.$langs->trans('MarginOnServices').'</td>';
|
||||
@ -3259,9 +3266,9 @@ abstract class CommonObject
|
||||
print '<td align="right">'.price($marginInfo['pa_services'], null, null, null, null, $rounding).'</td>';
|
||||
print '<td align="right">'.price($marginInfo['margin_on_services'], null, null, null, null, $rounding).'</td>';
|
||||
if (! empty($conf->global->DISPLAY_MARGIN_RATES))
|
||||
print '<td align="right">'.(($marginInfo['margin_rate_services'] == '')?'n/a':price($marginInfo['margin_rate_services'], null, null, null, null, $rounding).'%').'</td>';
|
||||
print '<td align="right">'.(($marginInfo['margin_rate_services'] == '')?'':price($marginInfo['margin_rate_services'], null, null, null, null, $rounding).'%').'</td>';
|
||||
if (! empty($conf->global->DISPLAY_MARK_RATES))
|
||||
print '<td align="right">'.(($marginInfo['mark_rate_services'] == '')?'n/a':price($marginInfo['mark_rate_services'], null, null, null, null, $rounding).'%').'</td>';
|
||||
print '<td align="right">'.(($marginInfo['mark_rate_services'] == '')?'':price($marginInfo['mark_rate_services'], null, null, null, null, $rounding).'%').'</td>';
|
||||
print '</tr>';
|
||||
//}
|
||||
print '<tr class="impair">';
|
||||
@ -3270,9 +3277,9 @@ abstract class CommonObject
|
||||
print '<td align="right">'.price($marginInfo['pa_total'], null, null, null, null, $rounding).'</td>';
|
||||
print '<td align="right">'.price($marginInfo['total_margin'], null, null, null, null, $rounding).'</td>';
|
||||
if (! empty($conf->global->DISPLAY_MARGIN_RATES))
|
||||
print '<td align="right">'.(($marginInfo['total_margin_rate'] == '')?'n/a':price($marginInfo['total_margin_rate'], null, null, null, null, $rounding).'%').'</td>';
|
||||
print '<td align="right">'.(($marginInfo['total_margin_rate'] == '')?'':price($marginInfo['total_margin_rate'], null, null, null, null, $rounding).'%').'</td>';
|
||||
if (! empty($conf->global->DISPLAY_MARK_RATES))
|
||||
print '<td align="right">'.(($marginInfo['total_mark_rate'] == '')?'n/a':price($marginInfo['total_mark_rate'], null, null, null, null, $rounding).'%').'</td>';
|
||||
print '<td align="right">'.(($marginInfo['total_mark_rate'] == '')?'':price($marginInfo['total_mark_rate'], null, null, null, null, $rounding).'%').'</td>';
|
||||
print '</tr>';
|
||||
print '</table>';
|
||||
}
|
||||
|
||||
@ -479,11 +479,11 @@ class FormOther
|
||||
$numlines=count($lines);
|
||||
for ($i = 0 ; $i < $numlines ; $i++)
|
||||
{
|
||||
if ($lines[$i]->fk_parent == $parent)
|
||||
if ($lines[$i]->fk_parent == $parent)
|
||||
{
|
||||
$var = !$var;
|
||||
|
||||
//var_dump($selectedproject."--".$selectedtask."--".$lines[$i]->fk_project."_".$lines[$i]->id);
|
||||
//var_dump($selectedproject."--".$selectedtask."--".$lines[$i]->fk_project."_".$lines[$i]->id); // $lines[$i]->id may be empty if project has no lines
|
||||
|
||||
// Break on a new project
|
||||
if ($parent == 0) // We are on a task at first level
|
||||
@ -514,7 +514,7 @@ class FormOther
|
||||
$newdisablechildoftaskid=$disablechildoftaskid;
|
||||
|
||||
// Print task
|
||||
if ($lines[$i]->id >= 0)
|
||||
if (isset($lines[$i]->id)) // We use isset because $lines[$i]->id may be null if project has no task and are on root project (tasks may be caught by a left join). We enter here only if '0' or >0
|
||||
{
|
||||
// Check if we must disable entry
|
||||
$disabled=0;
|
||||
|
||||
@ -238,7 +238,7 @@ function limitChars(textarea, limit, infodiv)
|
||||
}
|
||||
}
|
||||
|
||||
// To
|
||||
// To (target)
|
||||
if ($this->withto || is_array($this->withto))
|
||||
{
|
||||
print '<tr><td width="180">';
|
||||
|
||||
@ -102,7 +102,7 @@ class Interfaces
|
||||
if (in_array($modName,$modules))
|
||||
{
|
||||
$langs->load("errors");
|
||||
dol_syslog(get_class($this)."::run_triggers action=".$action." ".$langs->trans("ErrorDuplicateTrigger",$modName,"/htdocs/core/triggers/"),LOG_ERR);
|
||||
dol_syslog(get_class($this)."::run_triggers action=".$action." ".$langs->trans("ErrorDuplicateTrigger",$modName,"/htdocs/core/triggers/"), LOG_ERR);
|
||||
continue;
|
||||
}
|
||||
else
|
||||
@ -123,7 +123,7 @@ class Interfaces
|
||||
|
||||
if (! $qualified)
|
||||
{
|
||||
dol_syslog(get_class($this)."::run_triggers action=".$action." Triggers for file '".$file."' need module to be enabled",LOG_INFO);
|
||||
dol_syslog(get_class($this)."::run_triggers action=".$action." Triggers for file '".$file."' need module to be enabled", LOG_DEBUG);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -148,7 +148,7 @@ class Interfaces
|
||||
$objMod = new $modName($this->db);
|
||||
if ($objMod)
|
||||
{
|
||||
dol_syslog(get_class($this)."::run_triggers action=".$action." Launch triggers for file '".$files[$key]."'",LOG_INFO);
|
||||
dol_syslog(get_class($this)."::run_triggers action=".$action." Launch triggers for file '".$files[$key]."'", LOG_INFO);
|
||||
|
||||
$result=$objMod->run_trigger($action,$object,$user,$langs,$conf);
|
||||
if ($result > 0)
|
||||
@ -173,7 +173,7 @@ class Interfaces
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_syslog(get_class($this)."::run_triggers action=".$action." Failed to instantiate trigger for file '".$files[$key]."'",LOG_ERR);
|
||||
dol_syslog(get_class($this)."::run_triggers action=".$action." Failed to instantiate trigger for file '".$files[$key]."'", LOG_ERR);
|
||||
}
|
||||
}
|
||||
|
||||
@ -270,7 +270,7 @@ class Interfaces
|
||||
print 'Error: A trigger file was found but its class "'.$modName.'" was not found.'."<br>\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
$objMod = new $modName($this->db);
|
||||
|
||||
// Define disabledbyname and disabledbymodule
|
||||
|
||||
@ -48,7 +48,7 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh
|
||||
global $conf, $user, $langs, $db;
|
||||
|
||||
// Filters
|
||||
print '<form name="listactionsfilter" class="listactionsfilter" action="' . $_SERVER ["PHP_SELF"] . '" method="POST">';
|
||||
print '<form name="listactionsfilter" class="listactionsfilter" action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
print '<input type="hidden" name="status" value="' . $status . '">';
|
||||
print '<input type="hidden" name="year" value="' . $year . '">';
|
||||
|
||||
@ -69,8 +69,6 @@ function doc_getlinedesc($line,$outputlangs,$hideref=0,$hidedesc=0,$issupplierli
|
||||
// Description long of product line
|
||||
if ($desc && ($desc != $label))
|
||||
{
|
||||
if ( $libelleproduitservice && empty($hidedesc) ) $libelleproduitservice.="\n";
|
||||
|
||||
if ($desc == '(CREDIT_NOTE)' && $line->fk_remise_except)
|
||||
{
|
||||
$discount=new DiscountAbsolute($db);
|
||||
@ -83,18 +81,17 @@ function doc_getlinedesc($line,$outputlangs,$hideref=0,$hidedesc=0,$issupplierli
|
||||
$discount->fetch($line->fk_remise_except);
|
||||
$libelleproduitservice=$outputlangs->transnoentitiesnoconv("DiscountFromDeposit",$discount->ref_facture_source);
|
||||
// Add date of deposit
|
||||
if (! empty($conf->global->INVOICE_ADD_DEPOSIT_DATE)) echo ' ('.dol_print_date($discount->datec,'day','',$outputlangs).')';
|
||||
if (! empty($conf->global->INVOICE_ADD_DEPOSIT_DATE)) $libelleproduitservice.=' ('.dol_print_date($discount->datec,'day','',$outputlangs).')';
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($idprod)
|
||||
{
|
||||
if (empty($hidedesc))
|
||||
$libelleproduitservice.=$desc;
|
||||
if (empty($hidedesc)) $libelleproduitservice=dol_concatdesc($libelleproduitservice, $desc);
|
||||
}
|
||||
else
|
||||
{
|
||||
$libelleproduitservice.=$desc;
|
||||
$libelleproduitservice=dol_concatdesc($libelleproduitservice, $desc);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -148,7 +145,7 @@ function doc_getlinedesc($line,$outputlangs,$hideref=0,$hidedesc=0,$issupplierli
|
||||
$period='('.$outputlangs->transnoentitiesnoconv('DateUntil',dol_print_date($line->date_end, $format, false, $outputlangs)).')';
|
||||
}
|
||||
//print '>'.$outputlangs->charset_output.','.$period;
|
||||
$libelleproduitservice.="\n".$period;
|
||||
$libelleproduitservice=dol_concatdesc($libelleproduitservice, $period);
|
||||
//print $libelleproduitservice;
|
||||
}
|
||||
|
||||
|
||||
@ -2560,7 +2560,7 @@ function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $so
|
||||
if ($picto == 'setup') $picto='title.png';
|
||||
if (!empty($conf->browser->ie) && $picto=='title.png') $picto='title.gif';
|
||||
|
||||
if ($num > $conf->liste_limit or $num == -1)
|
||||
if (($num > $conf->liste_limit) || ($num == -1))
|
||||
{
|
||||
$nextpage = 1;
|
||||
}
|
||||
@ -3433,13 +3433,13 @@ function picto_required()
|
||||
* Clean a string from all HTML tags and entities
|
||||
*
|
||||
* @param string $StringHtml String to clean
|
||||
* @param string $removelinefeed Replace also all lines feeds by a space
|
||||
* @param string $removelinefeed Replace also all lines feeds by a space, otherwise only last one are removed
|
||||
* @param string $pagecodeto Encoding of input/output string
|
||||
* @return string String cleaned
|
||||
*/
|
||||
function dol_string_nohtmltag($StringHtml,$removelinefeed=1,$pagecodeto='UTF-8')
|
||||
{
|
||||
$pattern = "/<[^>]+>/";
|
||||
$pattern = "/<[^<>]+>/";
|
||||
$temp = dol_html_entity_decode($StringHtml,ENT_COMPAT,$pagecodeto);
|
||||
$temp = preg_replace($pattern,"",$temp);
|
||||
|
||||
@ -3506,7 +3506,6 @@ function dol_htmlentitiesbr($stringtoencode,$nl2brmode=0,$pagecodefrom='UTF-8',$
|
||||
$newstring=strtr($newstring,array('&'=>'__and__','<'=>'__lt__','>'=>'__gt__','"'=>'__dquot__'));
|
||||
$newstring=dol_htmlentities($newstring,ENT_COMPAT,$pagecodefrom); // Make entity encoding
|
||||
$newstring=strtr($newstring,array('__and__'=>'&','__lt__'=>'<','__gt__'=>'>','__dquot__'=>'"'));
|
||||
//$newstring=strtr($newstring,array('__li__'=>"<li>\n")); // Restore <li>\n
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -3551,7 +3550,7 @@ function dol_htmlcleanlastbr($stringtodecode)
|
||||
* Replace html_entity_decode functions to manage errors
|
||||
*
|
||||
* @param string $a Operand a
|
||||
* @param string $b Operand b
|
||||
* @param string $b Operand b (ENT_QUOTES=convert simple and double quotes)
|
||||
* @param string $c Operand c
|
||||
* @return string String decoded
|
||||
*/
|
||||
@ -3691,17 +3690,10 @@ function dol_textishtml($msg,$option=0)
|
||||
{
|
||||
if (preg_match('/<html/i',$msg)) return true;
|
||||
elseif (preg_match('/<body/i',$msg)) return true;
|
||||
elseif (preg_match('/<b>/i',$msg)) return true;
|
||||
elseif (preg_match('/<br/i',$msg)) return true;
|
||||
elseif (preg_match('/<div/i',$msg)) return true;
|
||||
elseif (preg_match('/<em>/i',$msg)) return true;
|
||||
elseif (preg_match('/<font/i',$msg)) return true;
|
||||
elseif (preg_match('/<img/i',$msg)) return true;
|
||||
elseif (preg_match('/<i>/i',$msg)) return true;
|
||||
elseif (preg_match('/<li/i',$msg)) return true;
|
||||
elseif (preg_match('/<span/i',$msg)) return true;
|
||||
elseif (preg_match('/<strong/i',$msg)) return true;
|
||||
elseif (preg_match('/<table/i',$msg)) return true;
|
||||
elseif (preg_match('/<(b|em|i)>/i',$msg)) return true;
|
||||
elseif (preg_match('/<(br|div|font|img|li|span|strong|table)>/i',$msg)) return true;
|
||||
elseif (preg_match('/<(br|div|font|img|li|span|strong|table)\s+[^<>\/]*>/i',$msg)) return true;
|
||||
elseif (preg_match('/<(br|div|font|img|li|span|strong|table)\s+[^<>\/]*\/>/i',$msg)) return true;
|
||||
elseif (preg_match('/&[A-Z0-9]{1,6};/i',$msg)) return true; // Html entities names (http://www.w3schools.com/tags/ref_entities.asp)
|
||||
elseif (preg_match('/&#[0-9]{2,3};/i',$msg)) return true; // Html entities numbers (http://www.w3schools.com/tags/ref_entities.asp)
|
||||
return false;
|
||||
@ -3709,7 +3701,7 @@ function dol_textishtml($msg,$option=0)
|
||||
}
|
||||
|
||||
/**
|
||||
* Concat 2 descriptions (second one after first one)
|
||||
* Concat 2 descriptions (second one after first one with a new line separator if required)
|
||||
* text1 html + text2 html => text1 + '<br>' + text2
|
||||
* text1 html + text2 txt => text1 + '<br>' + dol_nl2br(text2)
|
||||
* text1 txt + text2 html => dol_nl2br(text1) + '<br>' + text2
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
*
|
||||
* @param string $url URL to call.
|
||||
* @param string $postorget 'POST', 'GET', 'HEAD'
|
||||
* @param string $param Paraemeters of URL (x=value1&y=value2)
|
||||
* @param string $param Parameters of URL (x=value1&y=value2)
|
||||
* @param string $followlocation 1=Follow location, 0=Do not follow
|
||||
* @param array $addheaders Array of string to add into header. Example: ('Accept: application/xrds+xml', ....)
|
||||
* @return array Returns an associative array containing the response from the server array('content'=>response,'curl_error_no'=>errno,'curl_error_msg'=>errmsg...)
|
||||
|
||||
@ -142,18 +142,24 @@ function task_prepare_head($object)
|
||||
// $this->tabs = array('entity:-tabname); to remove a tab
|
||||
complete_head_from_modules($conf,$langs,$object,$head,$h,'task');
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT.'/projet/tasks/document.php?id='.$object->id.(GETPOST('withproject')?'&withproject=1':'');;
|
||||
/*$filesdir = $conf->projet->dir_output . "/" . dol_sanitizeFileName($object->ref);
|
||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||
$listoffiles=dol_dir_list($filesdir,'files',1);
|
||||
$head[$h][1] = (count($listoffiles)?$langs->trans('DocumentsNb',count($listoffiles)):$langs->trans('Documents'));*/
|
||||
$head[$h][1] = $langs->trans('Documents');
|
||||
$head[$h][2] = 'task_document';
|
||||
$h++;
|
||||
if (empty($conf->global->MAIN_DISABLE_NOTES_TAB))
|
||||
{
|
||||
$nbNote = 0;
|
||||
if(!empty($object->note_private)) $nbNote++;
|
||||
if(!empty($object->note_public)) $nbNote++;
|
||||
$head[$h][0] = DOL_URL_ROOT.'/projet/tasks/note.php?id='.$object->id.(GETPOST('withproject')?'&withproject=1':'');;
|
||||
$head[$h][1] = $langs->trans('Notes');
|
||||
if($nbNote > 0) $head[$h][1].= ' ('.$nbNote.')';
|
||||
$head[$h][2] = 'task_notes';
|
||||
$h++;
|
||||
}
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT.'/projet/tasks/note.php?id='.$object->id.(GETPOST('withproject')?'&withproject=1':'');;
|
||||
$head[$h][1] = $langs->trans('Notes');
|
||||
$head[$h][2] = 'task_notes';
|
||||
$head[$h][0] = DOL_URL_ROOT.'/projet/tasks/document.php?id='.$object->id.(GETPOST('withproject')?'&withproject=1':'');;
|
||||
$filesdir = $conf->projet->dir_output . "/" . dol_sanitizeFileName($object->project->ref) . '/' .dol_sanitizeFileName($object->ref);
|
||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||
$listoffiles=dol_dir_list($filesdir,'files',1,'','thumbs');
|
||||
$head[$h][1] = (count($listoffiles)?$langs->trans('DocumentsNb',count($listoffiles)):$langs->trans('Documents'));
|
||||
$head[$h][2] = 'task_document';
|
||||
$h++;
|
||||
|
||||
complete_head_from_modules($conf,$langs,$object,$head,$h,'task','remove');
|
||||
|
||||
@ -97,7 +97,7 @@ function dol_hash($chain,$type=0)
|
||||
* If GETPOST('action') defined, we also check write and delete permission.
|
||||
*
|
||||
* @param User $user User to check
|
||||
* @param string $features Features to check (it must be module name. Examples: 'societe', 'contact', 'produit&service', ...)
|
||||
* @param string $features Features to check (it must be module name. Examples: 'societe', 'contact', 'produit&service', 'produit|service', ...)
|
||||
* @param int $objectid Object ID if we want to check a particular record (optional) is linked to a owned thirdparty (optional).
|
||||
* @param string $dbtablename 'TableName&SharedElement' with Tablename is table where object is stored. SharedElement is an optional key to define where to check entity. Not used if objectid is null (optional)
|
||||
* @param string $feature2 Feature to check, second level of permission (optional)
|
||||
@ -123,12 +123,13 @@ function restrictedArea($user, $features, $objectid=0, $dbtablename='', $feature
|
||||
|
||||
if ($dbt_select != 'rowid' && $dbt_select != 'id') $objectid = "'".$objectid."'";
|
||||
|
||||
// More features to check
|
||||
$features = explode("&", $features);
|
||||
// Features/modules to check
|
||||
$featuresarray = array($features);
|
||||
if (preg_match('/&/', $features)) $featuresarray = explode("&", $features);
|
||||
else if (preg_match('/\|/', $features)) $featuresarray = explode("|", $features);
|
||||
|
||||
// More subfeatures to check
|
||||
if (!empty($feature2))
|
||||
$feature2 = explode("&", $feature2);
|
||||
if (! empty($feature2)) $feature2 = explode("|", $feature2);
|
||||
|
||||
// More parameters
|
||||
$params = explode('&', $dbtablename);
|
||||
@ -138,106 +139,113 @@ function restrictedArea($user, $features, $objectid=0, $dbtablename='', $feature
|
||||
$listofmodules=explode(',',$conf->global->MAIN_MODULES_FOR_EXTERNAL);
|
||||
|
||||
// Check read permission from module
|
||||
$readok=1;
|
||||
foreach ($features as $feature)
|
||||
$readok=1; $nbko=0;
|
||||
foreach ($featuresarray as $feature)
|
||||
{
|
||||
if (! empty($user->societe_id) && ! empty($conf->global->MAIN_MODULES_FOR_EXTERNAL) && ! in_array($feature,$listofmodules)) // If limits on modules for external users, module must be into list of modules for external users
|
||||
{
|
||||
$readok=0;
|
||||
$readok=0; $nbko++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($feature == 'societe')
|
||||
{
|
||||
if (! $user->rights->societe->lire && ! $user->rights->fournisseur->lire) $readok=0;
|
||||
if (! $user->rights->societe->lire && ! $user->rights->fournisseur->lire) { $readok=0; $nbko++; }
|
||||
}
|
||||
else if ($feature == 'contact')
|
||||
{
|
||||
if (! $user->rights->societe->contact->lire) $readok=0;
|
||||
if (! $user->rights->societe->contact->lire) { $readok=0; $nbko++; }
|
||||
}
|
||||
else if ($feature == 'produit|service')
|
||||
{
|
||||
if (! $user->rights->produit->lire && ! $user->rights->service->lire) $readok=0;
|
||||
if (! $user->rights->produit->lire && ! $user->rights->service->lire) { $readok=0; $nbko++; }
|
||||
}
|
||||
else if ($feature == 'prelevement')
|
||||
{
|
||||
if (! $user->rights->prelevement->bons->lire) $readok=0;
|
||||
if (! $user->rights->prelevement->bons->lire) { $readok=0; $nbko++; }
|
||||
}
|
||||
else if ($feature == 'cheque')
|
||||
{
|
||||
if (! $user->rights->banque->cheque) $readok=0;
|
||||
if (! $user->rights->banque->cheque) { $readok=0; $nbko++; }
|
||||
}
|
||||
else if ($feature == 'projet')
|
||||
{
|
||||
if (! $user->rights->projet->lire && ! $user->rights->projet->all->lire) $readok=0;
|
||||
if (! $user->rights->projet->lire && ! $user->rights->projet->all->lire) { $readok=0; $nbko++; }
|
||||
}
|
||||
else if (! empty($feature2)) // This should be used for future changes
|
||||
{
|
||||
foreach($feature2 as $subfeature)
|
||||
{
|
||||
if (empty($user->rights->$feature->$subfeature->lire) && empty($user->rights->$feature->$subfeature->read)) $readok=0;
|
||||
else { $readok=1; break; } // For bypass the second test if the first is ok
|
||||
if (! empty($subfeature) && empty($user->rights->$feature->$subfeature->lire) && empty($user->rights->$feature->$subfeature->read)) { $readok=0; $nbko++; }
|
||||
else if (empty($subfeature) && empty($user->rights->$feature->lire) && empty($user->rights->$feature->read)) { $readok=0; $nbko++; }
|
||||
else { $readok=1; break; } // Break is to bypass second test if the first is ok
|
||||
}
|
||||
}
|
||||
else if (! empty($feature) && ($feature!='user' && $feature!='usergroup')) // This is for old permissions
|
||||
{
|
||||
if (empty($user->rights->$feature->lire)
|
||||
&& empty($user->rights->$feature->read)
|
||||
&& empty($user->rights->$feature->run)) $readok=0;
|
||||
&& empty($user->rights->$feature->run)) { $readok=0; $nbko++; }
|
||||
}
|
||||
}
|
||||
|
||||
// If a or and at least one ok
|
||||
if (preg_match('/\|/', $features) && $nbko < count($featuresarray)) $readok=1;
|
||||
|
||||
if (! $readok) accessforbidden();
|
||||
//print "Read access is ok";
|
||||
|
||||
// Check write permission from module
|
||||
$createok=1;
|
||||
$createok=1; $nbko=0;
|
||||
if (GETPOST("action") == 'create')
|
||||
{
|
||||
foreach ($features as $feature)
|
||||
foreach ($featuresarray as $feature)
|
||||
{
|
||||
if ($feature == 'contact')
|
||||
{
|
||||
if (! $user->rights->societe->contact->creer) $createok=0;
|
||||
if (! $user->rights->societe->contact->creer) { $createok=0; $nbko++; }
|
||||
}
|
||||
else if ($feature == 'produit|service')
|
||||
{
|
||||
if (! $user->rights->produit->creer && ! $user->rights->service->creer) $createok=0;
|
||||
if (! $user->rights->produit->creer && ! $user->rights->service->creer) { $createok=0; $nbko++; }
|
||||
}
|
||||
else if ($feature == 'prelevement')
|
||||
{
|
||||
if (! $user->rights->prelevement->bons->creer) $createok=0;
|
||||
if (! $user->rights->prelevement->bons->creer) { $createok=0; $nbko++; }
|
||||
}
|
||||
else if ($feature == 'commande_fournisseur')
|
||||
{
|
||||
if (! $user->rights->fournisseur->commande->creer) $createok=0;
|
||||
if (! $user->rights->fournisseur->commande->creer) { $createok=0; $nbko++; }
|
||||
}
|
||||
else if ($feature == 'banque')
|
||||
{
|
||||
if (! $user->rights->banque->modifier) $createok=0;
|
||||
if (! $user->rights->banque->modifier) { $createok=0; $nbko++; }
|
||||
}
|
||||
else if ($feature == 'cheque')
|
||||
{
|
||||
if (! $user->rights->banque->cheque) $createok=0;
|
||||
if (! $user->rights->banque->cheque) { $createok=0; $nbko++; }
|
||||
}
|
||||
else if (! empty($feature2)) // This should be used for future changes
|
||||
else if (! empty($feature2)) // This should be used
|
||||
{
|
||||
foreach($feature2 as $subfeature)
|
||||
{
|
||||
if (empty($user->rights->$feature->$subfeature->creer)
|
||||
&& empty($user->rights->$feature->$subfeature->write)
|
||||
&& empty($user->rights->$feature->$subfeature->create)) $createok=0;
|
||||
else { $createok=1; break; } // For bypass the second test if the first is ok
|
||||
&& empty($user->rights->$feature->$subfeature->create)) { $createok=0; $nbko++; }
|
||||
else { $createok=1; break; } // Break to bypass second test if the first is ok
|
||||
}
|
||||
}
|
||||
else if (! empty($feature)) // This is for old permissions
|
||||
else if (! empty($feature)) // This is for old permissions ('creer' or 'write')
|
||||
{
|
||||
//print '<br>feature='.$feature.' creer='.$user->rights->$feature->creer.' write='.$user->rights->$feature->write;
|
||||
if (empty($user->rights->$feature->creer)
|
||||
&& empty($user->rights->$feature->write)) $createok=0;
|
||||
&& empty($user->rights->$feature->write)) { $createok=0; $nbko++; }
|
||||
}
|
||||
}
|
||||
|
||||
// If a or and at least one ok
|
||||
if (preg_match('/\|/', $features) && $nbko < count($featuresarray)) $createok=1;
|
||||
|
||||
if (! $createok) accessforbidden();
|
||||
//print "Write access is ok";
|
||||
}
|
||||
@ -253,10 +261,10 @@ function restrictedArea($user, $features, $objectid=0, $dbtablename='', $feature
|
||||
}
|
||||
|
||||
// Check delete permission from module
|
||||
$deleteok=1;
|
||||
$deleteok=1; $nbko=0;
|
||||
if ((GETPOST("action") == 'confirm_delete' && GETPOST("confirm") == 'yes') || GETPOST("action") == 'delete')
|
||||
{
|
||||
foreach ($features as $feature)
|
||||
foreach ($featuresarray as $feature)
|
||||
{
|
||||
if ($feature == 'contact')
|
||||
{
|
||||
@ -312,7 +320,7 @@ function restrictedArea($user, $features, $objectid=0, $dbtablename='', $feature
|
||||
// is linked to a company allowed to $user.
|
||||
if (! empty($objectid) && $objectid > 0)
|
||||
{
|
||||
foreach ($features as $feature)
|
||||
foreach ($featuresarray as $feature)
|
||||
{
|
||||
$sql='';
|
||||
|
||||
|
||||
@ -175,10 +175,10 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
|
||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->don->enabled && $leftmenu=="donations"', __HANDLER__, 'left', 2002__+MAX_llx_menu__, 'accountancy', '', 2000__+MAX_llx_menu__, '/compta/dons/liste.php?leftmenu=donations&mainmenu=accountancy', 'List', 1, 'donations', '$user->rights->don->lire', '', 2, 1, __ENTITY__);
|
||||
--insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->don->enabled && $leftmenu=="donations"', __HANDLER__, 'left', 2003__+MAX_llx_menu__, 'accountancy', '', 2000__+MAX_llx_menu__, '/compta/dons/stats.php?leftmenu=donations&mainmenu=accountancy', 'Statistics', 1, 'donations', '$user->rights->don->lire', '', 2, 2, __ENTITY__);
|
||||
-- Special expenses
|
||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled || $conf->salaries->enabled', __HANDLER__, 'left', 2200__+MAX_llx_menu__, 'accountancy', 'tax', 6__+MAX_llx_menu__, '/compta/charges/index.php?leftmenu=tax&mainmenu=accountancy', 'MenuSpecialExpenses', 0, 'compta', '1', '', 0, 6, __ENTITY__);
|
||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled', __HANDLER__, 'left', 2201__+MAX_llx_menu__, 'accountancy', 'tax_sal', 2200__+MAX_llx_menu__, '/compta/salaries/index.php?leftmenu=tax_salary&mainmenu=accountancy', 'Salaries', 1, 'salaries', '$user->rights->tax->charges->lire', '', 0, 1, __ENTITY__);
|
||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2202__+MAX_llx_menu__, 'accountancy', '', 2201__+MAX_llx_menu__, '/compta/salaries/fiche.php?leftmenu=tax_salary&action=create', 'NewPayment', 2, 'companies', '$user->rights->tax->charges->creer', '', 0, 2, __ENTITY__);
|
||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2203__+MAX_llx_menu__, 'accountancy', '', 2201__+MAX_llx_menu__, '/compta/salaries/index.php?leftmenu=tax_salary', 'Payments', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 3, __ENTITY__);
|
||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled || $conf->salaries->enabled', __HANDLER__, 'left', 2200__+MAX_llx_menu__, 'accountancy', 'tax', 6__+MAX_llx_menu__, '/compta/charges/index.php?leftmenu=tax&mainmenu=accountancy', 'MenuSpecialExpenses', 0, 'compta', '(! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && $user->rights->salaries->read)', '', 0, 6, __ENTITY__);
|
||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled', __HANDLER__, 'left', 2210__+MAX_llx_menu__, 'accountancy', 'tax_sal', 2200__+MAX_llx_menu__, '/compta/salaries/index.php?leftmenu=tax_salary&mainmenu=accountancy', 'Salaries', 1, 'salaries', '$user->rights->salaries->read', '', 0, 1, __ENTITY__);
|
||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2211__+MAX_llx_menu__, 'accountancy', '', 2210__+MAX_llx_menu__, '/compta/salaries/fiche.php?leftmenu=tax_salary&action=create', 'NewPayment', 2, 'companies', '$user->rights->salaries->write', '', 0, 2, __ENTITY__);
|
||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2212__+MAX_llx_menu__, 'accountancy', '', 2210__+MAX_llx_menu__, '/compta/salaries/index.php?leftmenu=tax_salary', 'Payments', 2, 'companies', '$user->rights->salaries->read', '', 0, 3, __ENTITY__);
|
||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled', __HANDLER__, 'left', 2250__+MAX_llx_menu__, 'accountancy', 'tax_social', 2200__+MAX_llx_menu__, '/compta/sociales/index.php?leftmenu=tax_social', 'SocialContributions', 1, '', '$user->rights->tax->charges->lire', '', 0, 1, __ENTITY__);
|
||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && $leftmenu=="tax_social"', __HANDLER__, 'left', 2251__+MAX_llx_menu__, 'accountancy', '', 2250__+MAX_llx_menu__, '/compta/sociales/charges.php?leftmenu=tax_social&action=create', 'MenuNewSocialContribution', 2, '', '$user->rights->tax->charges->creer', '', 0, 2, __ENTITY__);
|
||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && $leftmenu=="tax_social"', __HANDLER__, 'left', 2252__+MAX_llx_menu__, 'accountancy', '', 2250__+MAX_llx_menu__, '/compta/charges/index.php?leftmenu=tax_social&mainmenu=accountancy&mode=sconly', 'Payments', 2, '', '$user->rights->tax->charges->lire', '', 0, 3, __ENTITY__);
|
||||
|
||||
@ -797,42 +797,46 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
||||
{
|
||||
global $mysoc;
|
||||
|
||||
$newmenu->add("/compta/charges/index.php?leftmenu=tax&mainmenu=accountancy",$langs->trans("MenuSpecialExpenses"), 0, $user->rights->tax->charges->lire, '', $mainmenu, 'tax');
|
||||
$permtoshowmenu=((! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && $user->rights->salaries->read));
|
||||
$newmenu->add("/compta/charges/index.php?leftmenu=tax&mainmenu=accountancy",$langs->trans("MenuSpecialExpenses"), 0, $permtoshowmenu, '', $mainmenu, 'tax');
|
||||
|
||||
// Salaries
|
||||
if (! empty($conf->salaries->enabled))
|
||||
{
|
||||
$langs->load("salaries");
|
||||
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/salaries/index.php?leftmenu=tax_salary&mainmenu=accountancy",$langs->trans("Salaries"),1,$user->rights->salaries->read, '', $mainmenu, 'tax_salary');
|
||||
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/salaries/fiche.php?leftmenu=tax_salary&action=create",$langs->trans("NewPayment"),2,$user->rights->salaries->create);
|
||||
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/salaries/index.php?leftmenu=tax_salary",$langs->trans("Payments"),2,$user->rights->salaries->read);
|
||||
$newmenu->add("/compta/salaries/index.php?leftmenu=tax_salary&mainmenu=accountancy",$langs->trans("Salaries"),1,$user->rights->salaries->read, '', $mainmenu, 'tax_salary');
|
||||
if (empty($leftmenu) || preg_match('/^tax_salary/i',$leftmenu)) $newmenu->add("/compta/salaries/fiche.php?leftmenu=tax_salary&action=create",$langs->trans("NewPayment"),2,$user->rights->salaries->write);
|
||||
if (empty($leftmenu) || preg_match('/^tax_salary/i',$leftmenu)) $newmenu->add("/compta/salaries/index.php?leftmenu=tax_salary",$langs->trans("Payments"),2,$user->rights->salaries->read);
|
||||
}
|
||||
|
||||
// Social contributions
|
||||
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/sociales/index.php?leftmenu=tax_social",$langs->trans("MenuSocialContributions"),1,$user->rights->tax->charges->lire);
|
||||
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/sociales/charges.php?leftmenu=tax_social&action=create",$langs->trans("MenuNewSocialContribution"), 2, $user->rights->tax->charges->creer);
|
||||
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/charges/index.php?leftmenu=tax_social&mainmenu=accountancy&mode=sconly",$langs->trans("Payments"), 2, $user->rights->tax->charges->lire);
|
||||
// VAT
|
||||
if (empty($conf->global->TAX_DISABLE_VAT_MENUS))
|
||||
if (! empty($conf->tax->enabled))
|
||||
{
|
||||
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/tva/index.php?leftmenu=tax_vat&mainmenu=accountancy",$langs->trans("VAT"),1,$user->rights->tax->charges->lire, '', $mainmenu, 'tax_vat');
|
||||
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/tva/fiche.php?leftmenu=tax_vat&action=create",$langs->trans("NewPayment"),2,$user->rights->tax->charges->creer);
|
||||
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/tva/reglement.php?leftmenu=tax_vat",$langs->trans("Payments"),2,$user->rights->tax->charges->lire);
|
||||
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/tva/clients.php?leftmenu=tax_vat", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire);
|
||||
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/tva/quadri_detail.php?leftmenu=tax_vat", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire);
|
||||
global $mysoc;
|
||||
|
||||
//Local Taxes
|
||||
if($mysoc->country_code=='ES' && (isset($mysoc->localtax2_assuj) && $mysoc->localtax2_assuj=="1"))
|
||||
$newmenu->add("/compta/sociales/index.php?leftmenu=tax_social",$langs->trans("MenuSocialContributions"),1,$user->rights->tax->charges->lire);
|
||||
if (empty($leftmenu) || preg_match('/^tax_social/i',$leftmenu)) $newmenu->add("/compta/sociales/charges.php?leftmenu=tax_social&action=create",$langs->trans("MenuNewSocialContribution"), 2, $user->rights->tax->charges->creer);
|
||||
if (empty($leftmenu) || preg_match('/^tax_social/i',$leftmenu)) $newmenu->add("/compta/charges/index.php?leftmenu=tax_social&mainmenu=accountancy&mode=sconly",$langs->trans("Payments"), 2, $user->rights->tax->charges->lire);
|
||||
// VAT
|
||||
if (empty($conf->global->TAX_DISABLE_VAT_MENUS))
|
||||
{
|
||||
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/localtax/index.php?leftmenu=tax_vat&mainmenu=accountancy",$langs->transcountry("LT2",$mysoc->country_code),1,$user->rights->tax->charges->lire);
|
||||
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/localtax/fiche.php?leftmenu=tax_vat&action=create",$langs->trans("NewPayment"),2,$user->rights->tax->charges->creer);
|
||||
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/localtax/reglement.php?leftmenu=tax_vat",$langs->trans("Payments"),2,$user->rights->tax->charges->lire);
|
||||
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/localtax/clients.php?leftmenu=tax_vat", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire);
|
||||
//if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/localtax/quadri_detail.php?leftmenu=tax_vat", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire);
|
||||
$newmenu->add("/compta/tva/index.php?leftmenu=tax_vat&mainmenu=accountancy",$langs->trans("VAT"),1,$user->rights->tax->charges->lire, '', $mainmenu, 'tax_vat');
|
||||
if (empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/tva/fiche.php?leftmenu=tax_vat&action=create",$langs->trans("NewPayment"),2,$user->rights->tax->charges->creer);
|
||||
if (empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/tva/reglement.php?leftmenu=tax_vat",$langs->trans("Payments"),2,$user->rights->tax->charges->lire);
|
||||
if (empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/tva/clients.php?leftmenu=tax_vat", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire);
|
||||
if (empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/tva/quadri_detail.php?leftmenu=tax_vat", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire);
|
||||
global $mysoc;
|
||||
|
||||
//Local Taxes
|
||||
if($mysoc->country_code=='ES' && (isset($mysoc->localtax2_assuj) && $mysoc->localtax2_assuj=="1"))
|
||||
{
|
||||
if (empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/localtax/index.php?leftmenu=tax_vat&mainmenu=accountancy",$langs->transcountry("LT2",$mysoc->country_code),1,$user->rights->tax->charges->lire);
|
||||
if (empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/localtax/fiche.php?leftmenu=tax_vat&action=create",$langs->trans("NewPayment"),2,$user->rights->tax->charges->creer);
|
||||
if (empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/localtax/reglement.php?leftmenu=tax_vat",$langs->trans("Payments"),2,$user->rights->tax->charges->lire);
|
||||
if (empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/localtax/clients.php?leftmenu=tax_vat", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire);
|
||||
//if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/localtax/quadri_detail.php?leftmenu=tax_vat", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Compta simple
|
||||
|
||||
@ -206,6 +206,32 @@ class modProduct extends DolibarrModules
|
||||
if (! empty($conf->fournisseur->enabled)) $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product_fournisseur_price as pf ON pf.fk_product = p.rowid LEFT JOIN '.MAIN_DB_PREFIX.'societe s ON s.rowid = pf.fk_soc';
|
||||
$this->export_sql_end[$r] .=' WHERE p.fk_product_type = 0 AND p.entity IN ('.getEntity("product", 1).')';
|
||||
|
||||
if (! empty($conf->global->PRODUIT_MULTIPRICES))
|
||||
{
|
||||
// Exports product multiprice
|
||||
$r++;
|
||||
$this->export_code[$r]=$this->rights_class.'_'.$key;
|
||||
$this->export_label[$r]="ProductsMultiPrice"; // Translation key (used only if key ExportDataset_xxx_z not found)
|
||||
$this->export_permission[$r]=array(array("produit","export"));
|
||||
$this->export_fields_array[$r]=array('p.rowid'=>"Id",'p.ref'=>"Ref",
|
||||
'pr.price_base_type'=>"PriceLevelPriceBase",'pr.price_level'=>"PriceLevel",
|
||||
'pr.price'=>"PriceLevelUnitPriceHT",'pr.price_ttc'=>"PriceLevelUnitPriceTTC",
|
||||
'pr.price_min'=>"MinPriceLevelUnitPriceHT",'pr.price_min_ttc'=>"MinPriceLevelUnitPriceTTC",
|
||||
'pr.tva_tx'=>'PriceLevelVATRate',
|
||||
'pr.date_price'=>'DateCreation');
|
||||
$this->export_entities_array[$r]=array('p.rowid'=>"product",'p.ref'=>"product",
|
||||
'pr.price_base_type'=>"product",'pr.price_level'=>"product",'pr.price'=>"product",
|
||||
'pr.price_ttc'=>"product",
|
||||
'pr.price_min'=>"MinPriceLevelUnitPriceHT",'pr.price_min_ttc'=>"MinPriceLevelUnitPriceTTC",
|
||||
'pr.tva_tx'=>'product',
|
||||
'pr.date_price'=>"product");
|
||||
$this->export_sql_start[$r]='SELECT DISTINCT ';
|
||||
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'product as p';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product_price as pr ON p.rowid = pr.fk_product';
|
||||
$this->export_sql_end[$r] .=' WHERE p.fk_product_type = 0 AND p.entity IN ('.getEntity("product", 1).')';
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Imports
|
||||
//--------
|
||||
@ -239,15 +265,15 @@ class modProduct extends DolibarrModules
|
||||
|
||||
if (! empty($conf->fournisseur->enabled))
|
||||
{
|
||||
// Import product suppliers
|
||||
// Import suppliers prices (note: this code is duplicated into module service)
|
||||
$r++;
|
||||
$this->import_code[$r]=$this->rights_class.'_'.$r;
|
||||
$this->import_label[$r]="SuppliersPrices"; // Translation key
|
||||
$this->import_icon[$r]='product';
|
||||
$this->import_code[$r]=$this->rights_class.'_supplierprices';
|
||||
$this->import_label[$r]="SuppliersPricesOfProductsOrServices"; // Translation key
|
||||
$this->import_icon[$r]=$this->picto;
|
||||
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
|
||||
$this->import_tables_array[$r]=array('sp'=>MAIN_DB_PREFIX.'product_fournisseur_price');
|
||||
$this->import_tables_creator_array[$r]=array('sp'=>'fk_user');
|
||||
$this->import_fields_array[$r]=array('sp.fk_product'=>"Product*",
|
||||
$this->import_fields_array[$r]=array('sp.fk_product'=>"ProductOrService*",
|
||||
'sp.fk_soc'=>"Supplier*", 'sp.ref_fourn'=>'SupplierRef', 'sp.quantity'=>"QtyMin*", 'sp.tva_tx'=>'VATRate',
|
||||
'sp.price'=>"PriceQtyMinHT*",
|
||||
'sp.unitprice'=>'UnitPriceHT*', // TODO Make this file not required and calculate it from price and qty
|
||||
@ -266,55 +292,29 @@ class modProduct extends DolibarrModules
|
||||
);
|
||||
}
|
||||
|
||||
if (! empty($conf->global->PRODUIT_MULTIPRICES)) {
|
||||
// Exports product multiprice
|
||||
//--------
|
||||
$r++;
|
||||
$this->export_code[$r]=$this->rights_class.'_'.$r;
|
||||
$this->export_label[$r]="ProductsMultiPrice"; // Translation key (used only if key ExportDataset_xxx_z not found)
|
||||
$this->export_permission[$r]=array(array("produit","export"));
|
||||
$this->export_fields_array[$r]=array('p.rowid'=>"Id",'p.ref'=>"Ref",
|
||||
'pr.price_base_type'=>"PriceLevelPriceBase",'pr.price_level'=>"PriceLevel",
|
||||
'pr.price'=>"PriceLevelUnitPriceHT",'pr.price_ttc'=>"PriceLevelUnitPriceTTC",
|
||||
'pr.price_min'=>"MinPriceLevelUnitPriceHT",'pr.price_min_ttc'=>"MinPriceLevelUnitPriceTTC",
|
||||
'pr.tva_tx'=>'PriceLevelVATRate',
|
||||
'pr.date_price'=>'DateCreation');
|
||||
$this->export_entities_array[$r]=array('p.rowid'=>"product",'p.ref'=>"product",
|
||||
'pr.price_base_type'=>"product",'pr.price_level'=>"product",'pr.price'=>"product",
|
||||
'pr.price_ttc'=>"product",
|
||||
'pr.price_min'=>"MinPriceLevelUnitPriceHT",'pr.price_min_ttc'=>"MinPriceLevelUnitPriceTTC",
|
||||
'pr.tva_tx'=>'product',
|
||||
'pr.date_price'=>"product");
|
||||
$this->export_sql_start[$r]='SELECT DISTINCT ';
|
||||
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'product as p';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product_price as pr ON p.rowid = pr.fk_product';
|
||||
$this->export_sql_end[$r] .=' WHERE p.fk_product_type = 0 AND p.entity IN ('.getEntity("product", 1).')';
|
||||
|
||||
|
||||
// Import product multiprice
|
||||
//--------
|
||||
$r=0;
|
||||
|
||||
$r++;
|
||||
$this->import_code[$r]=$this->rights_class.'_'.$r;
|
||||
$this->import_label[$r]="ProductsMultiPrice"; // Translation key
|
||||
$this->import_icon[$r]=$this->picto;
|
||||
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
|
||||
$this->import_tables_array[$r]=array('pr'=>MAIN_DB_PREFIX.'product_price');
|
||||
$this->import_tables_creator_array[$r]=array('pr'=>'fk_user_author'); // Fields to store import user id
|
||||
$this->import_fields_array[$r]=array('pr.fk_product'=>"ProductRowid*",
|
||||
'pr.price_base_type'=>"PriceLevelPriceBase",'pr.price_level'=>"PriceLevel",
|
||||
'pr.price'=>"PriceLevelUnitPriceHT",'pr.price_ttc'=>"PriceLevelUnitPriceTTC",
|
||||
'pr.price_min'=>"MinPriceLevelUnitPriceHT",'pr.price_min_ttc'=>"MinPriceLevelUnitPriceTTC",
|
||||
'pr.tva_tx'=>'PriceLevelVATRate',
|
||||
'pr.date_price'=>'DateCreation*');
|
||||
$this->import_regex_array[$r]=array('pr.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$');
|
||||
$this->import_examplevalues_array[$r]=array('pr.fk_product'=>"1",
|
||||
'pr.price_base_type'=>"HT",'pr.price_level'=>"1",
|
||||
'pr.price'=>"100",'pr.price_ttc'=>"110",
|
||||
'pr.price_min'=>"100",'pr.price_min_ttc'=>"110",
|
||||
'pr.tva_tx'=>'19.6',
|
||||
'pr.date_price'=>'2013-04-10');
|
||||
if (! empty($conf->global->PRODUIT_MULTIPRICES))
|
||||
{
|
||||
// Import product multiprice
|
||||
$r++;
|
||||
$this->import_code[$r]=$this->rights_class.'_multiprice';
|
||||
$this->import_label[$r]="ProductsOrServiceMultiPrice"; // Translation key
|
||||
$this->import_icon[$r]=$this->picto;
|
||||
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
|
||||
$this->import_tables_array[$r]=array('pr'=>MAIN_DB_PREFIX.'product_price');
|
||||
$this->import_tables_creator_array[$r]=array('pr'=>'fk_user_author'); // Fields to store import user id
|
||||
$this->import_fields_array[$r]=array('pr.fk_product'=>"ProductRowid*",
|
||||
'pr.price_base_type'=>"PriceLevelPriceBase",'pr.price_level'=>"PriceLevel",
|
||||
'pr.price'=>"PriceLevelUnitPriceHT",'pr.price_ttc'=>"PriceLevelUnitPriceTTC",
|
||||
'pr.price_min'=>"MinPriceLevelUnitPriceHT",'pr.price_min_ttc'=>"MinPriceLevelUnitPriceTTC",
|
||||
'pr.tva_tx'=>'PriceLevelVATRate',
|
||||
'pr.date_price'=>'DateCreation*');
|
||||
$this->import_regex_array[$r]=array('pr.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$');
|
||||
$this->import_examplevalues_array[$r]=array('pr.fk_product'=>"1",
|
||||
'pr.price_base_type'=>"HT",'pr.price_level'=>"1",
|
||||
'pr.price'=>"100",'pr.price_ttc'=>"110",
|
||||
'pr.price_min'=>"100",'pr.price_min_ttc'=>"110",
|
||||
'pr.tva_tx'=>'19.6',
|
||||
'pr.date_price'=>'2013-04-10');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
<?php
|
||||
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
|
||||
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -93,15 +94,15 @@ class modSalaries extends DolibarrModules
|
||||
$this->rights[$r][5] = '';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 511;
|
||||
$this->rights[$r][0] = 512;
|
||||
$this->rights[$r][1] = 'Create/modify salaries';
|
||||
$this->rights[$r][2] = 'w';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'create';
|
||||
$this->rights[$r][4] = 'write';
|
||||
$this->rights[$r][5] = '';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 512;
|
||||
$this->rights[$r][0] = 514;
|
||||
$this->rights[$r][1] = 'Delete salaries';
|
||||
$this->rights[$r][2] = 'd';
|
||||
$this->rights[$r][3] = 0;
|
||||
@ -109,7 +110,7 @@ class modSalaries extends DolibarrModules
|
||||
$this->rights[$r][5] = '';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 515;
|
||||
$this->rights[$r][0] = 517;
|
||||
$this->rights[$r][1] = 'Export salaries';
|
||||
$this->rights[$r][2] = 'r';
|
||||
$this->rights[$r][3] = 0;
|
||||
|
||||
@ -168,6 +168,35 @@ class modService extends DolibarrModules
|
||||
$this->export_sql_end[$r] .=' WHERE p.fk_product_type = 1 AND p.entity IN ('.getEntity("product", 1).')';
|
||||
|
||||
|
||||
if (empty($conf->product->enabled)) // We enable next import templates only if module product not already enabled (to avoid duplicate entries)
|
||||
{
|
||||
if (! empty($conf->global->PRODUIT_MULTIPRICES))
|
||||
{
|
||||
// Exports product multiprice
|
||||
$r++;
|
||||
$this->export_code[$r]=$this->rights_class.'_'.$r;
|
||||
$this->export_label[$r]="ProductsMultiPrice"; // Translation key (used only if key ExportDataset_xxx_z not found)
|
||||
$this->export_permission[$r]=array(array("produit","export"));
|
||||
$this->export_fields_array[$r]=array('p.rowid'=>"Id",'p.ref'=>"Ref",
|
||||
'pr.price_base_type'=>"PriceLevelPriceBase",'pr.price_level'=>"PriceLevel",
|
||||
'pr.price'=>"PriceLevelUnitPriceHT",'pr.price_ttc'=>"PriceLevelUnitPriceTTC",
|
||||
'pr.price_min'=>"MinPriceLevelUnitPriceHT",'pr.price_min_ttc'=>"MinPriceLevelUnitPriceTTC",
|
||||
'pr.tva_tx'=>'PriceLevelVATRate',
|
||||
'pr.date_price'=>'DateCreation');
|
||||
$this->export_entities_array[$r]=array('p.rowid'=>"product",'p.ref'=>"product",
|
||||
'pr.price_base_type'=>"product",'pr.price_level'=>"product",'pr.price'=>"product",
|
||||
'pr.price_ttc'=>"product",
|
||||
'pr.price_min'=>"MinPriceLevelUnitPriceHT",'pr.price_min_ttc'=>"MinPriceLevelUnitPriceTTC",
|
||||
'pr.tva_tx'=>'product',
|
||||
'pr.date_price'=>"product");
|
||||
$this->export_sql_start[$r]='SELECT DISTINCT ';
|
||||
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'product as p';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product_price as pr ON p.rowid = pr.fk_product';
|
||||
$this->export_sql_end[$r] .=' WHERE p.fk_product_type = 0 AND p.entity IN ('.getEntity("product", 1).')';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Imports
|
||||
//--------
|
||||
$r=0;
|
||||
@ -196,6 +225,64 @@ class modService extends DolibarrModules
|
||||
$this->import_fieldshidden_array[$r]=array('extra.fk_object'=>'lastrowid-'.MAIN_DB_PREFIX.'product'); // aliastable.field => ('user->id' or 'lastrowid-'.tableparent)
|
||||
$this->import_regex_array[$r]=array('p.ref'=>'[^ ]','p.tosell'=>'^[0|1]$','p.tobuy'=>'^[0|1]$','p.fk_product_type'=>'^[0|1]$','p.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$');
|
||||
$this->import_examplevalues_array[$r]=array('p.ref'=>"PR123456",'p.label'=>"My product",'p.description'=>"This is a description example for record",'p.note'=>"Some note",'p.price'=>"100",'p.price_ttc'=>"110",'p.tva_tx'=>'10','p.tosell'=>"0 or 1",'p.tobuy'=>"0 or 1",'p.fk_product_type'=>"0 for product/1 for service",'p.finished'=>'','p.duration'=>"1y",'p.datec'=>'2008-12-31');
|
||||
|
||||
|
||||
if (empty($conf->product->enabled)) // We enable next import templates only if module product not already enabled (to avoid duplicate entries)
|
||||
{
|
||||
if (! empty($conf->fournisseur->enabled))
|
||||
{
|
||||
// Import suppliers prices (note: this code is duplicated into module product)
|
||||
$r++;
|
||||
$this->import_code[$r]=$this->rights_class.'_supplierprices';
|
||||
$this->import_label[$r]="SuppliersPricesOfProductsOrServices"; // Translation key
|
||||
$this->import_icon[$r]=$this->picto;
|
||||
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
|
||||
$this->import_tables_array[$r]=array('sp'=>MAIN_DB_PREFIX.'product_fournisseur_price');
|
||||
$this->import_tables_creator_array[$r]=array('sp'=>'fk_user');
|
||||
$this->import_fields_array[$r]=array('sp.fk_product'=>"ProductOrService*",
|
||||
'sp.fk_soc'=>"Supplier*", 'sp.ref_fourn'=>'SupplierRef', 'sp.quantity'=>"QtyMin*", 'sp.tva_tx'=>'VATRate',
|
||||
'sp.price'=>"PriceQtyMinHT*",
|
||||
'sp.unitprice'=>'UnitPriceHT*', // TODO Make this file not required and calculate it from price and qty
|
||||
'sp.remise_percent'=>'DiscountQtyMin'
|
||||
);
|
||||
|
||||
$this->import_convertvalue_array[$r]=array(
|
||||
'sp.fk_soc'=>array('rule'=>'fetchidfromref','classfile'=>'/societe/class/societe.class.php','class'=>'Societe','method'=>'fetch','element'=>'ThirdParty'),
|
||||
'sp.fk_product'=>array('rule'=>'fetchidfromref','classfile'=>'/product/class/product.class.php','class'=>'Product','method'=>'fetch','element'=>'Product')
|
||||
);
|
||||
$this->import_examplevalues_array[$r]=array('sp.fk_product'=>"PREF123456",
|
||||
'sp.fk_soc'=>"My Supplier",'sp.ref_fourn'=>"SupplierRef", 'sp.quantity'=>"1", 'sp.tva_tx'=>'21',
|
||||
'sp.price'=>"50",
|
||||
'sp.unitprice'=>'50',
|
||||
'sp.remise_percent'=>'0'
|
||||
);
|
||||
}
|
||||
|
||||
if (! empty($conf->global->PRODUIT_MULTIPRICES))
|
||||
{
|
||||
// Import product multiprice
|
||||
$r++;
|
||||
$this->import_code[$r]=$this->rights_class.'_multiprice';
|
||||
$this->import_label[$r]="ProductsOrServiceMultiPrice"; // Translation key
|
||||
$this->import_icon[$r]=$this->picto;
|
||||
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
|
||||
$this->import_tables_array[$r]=array('pr'=>MAIN_DB_PREFIX.'product_price');
|
||||
$this->import_tables_creator_array[$r]=array('pr'=>'fk_user_author'); // Fields to store import user id
|
||||
$this->import_fields_array[$r]=array('pr.fk_product'=>"ProductRowid*",
|
||||
'pr.price_base_type'=>"PriceLevelPriceBase",'pr.price_level'=>"PriceLevel",
|
||||
'pr.price'=>"PriceLevelUnitPriceHT",'pr.price_ttc'=>"PriceLevelUnitPriceTTC",
|
||||
'pr.price_min'=>"MinPriceLevelUnitPriceHT",'pr.price_min_ttc'=>"MinPriceLevelUnitPriceTTC",
|
||||
'pr.tva_tx'=>'PriceLevelVATRate',
|
||||
'pr.date_price'=>'DateCreation*');
|
||||
$this->import_regex_array[$r]=array('pr.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$');
|
||||
$this->import_examplevalues_array[$r]=array('pr.fk_product'=>"1",
|
||||
'pr.price_base_type'=>"HT",'pr.price_level'=>"1",
|
||||
'pr.price'=>"100",'pr.price_ttc'=>"110",
|
||||
'pr.price_min'=>"100",'pr.price_min_ttc'=>"110",
|
||||
'pr.tva_tx'=>'19.6',
|
||||
'pr.date_price'=>'2013-04-10');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -329,7 +329,6 @@ class doc_generic_odt extends ModeleThirdPartyDoc
|
||||
foreach($contact_arrray as $array_key => $contact_id)
|
||||
{
|
||||
$res_contact = $contactstatic->fetch($contact_id);
|
||||
//$contact['fullname']=$objectdetail->getFullName($outputlangs,1);
|
||||
$tmparray=$this->get_substitutionarray_contact($contactstatic,$outputlangs,'contact');
|
||||
foreach($tmparray as $key => $val)
|
||||
{
|
||||
|
||||
@ -1,330 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2010-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2010-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2012-2013 Christophe Battarel <christophe.battarel@altairis.fr>
|
||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Need to have following variables defined:
|
||||
* $conf
|
||||
* $langs
|
||||
* $dateSelector
|
||||
* $this (invoice, order, ...)
|
||||
* $line defined
|
||||
*/
|
||||
|
||||
$usemargins=0;
|
||||
if (! empty($conf->margin->enabled) && ! empty($object->element) && in_array($object->element,array('facture','propal','commande'))) $usemargins=1;
|
||||
|
||||
?>
|
||||
|
||||
<!-- BEGIN PHP TEMPLATE freeproductline_create.tpl.php -->
|
||||
|
||||
<tr class="liste_titre nodrag nodrop">
|
||||
<td<?php echo (! empty($conf->global->MAIN_VIEW_LINE_NUMBER) ? ' colspan="2"' : ''); ?>>
|
||||
<div id="add"></div>
|
||||
<span class="hideonsmartphone"><?php echo $langs->trans('AddNewLine').' - ' ?></span><?php echo $langs->trans("FreeZone"); ?>
|
||||
</td>
|
||||
<td align="right"><?php echo $langs->trans('VAT'); ?></td>
|
||||
<td align="right"><?php echo $langs->trans('PriceUHT'); ?></td>
|
||||
<td align="right"><?php echo $langs->trans('Qty'); ?></td>
|
||||
<td align="right"><?php echo $langs->trans('ReductionShort'); ?></td>
|
||||
<?php
|
||||
$colspan = 4;
|
||||
if (! empty($usemargins))
|
||||
{
|
||||
?>
|
||||
<td align="right">
|
||||
<?php
|
||||
if ($conf->global->MARGIN_TYPE == "1")
|
||||
echo $langs->trans('BuyingPrice');
|
||||
else
|
||||
echo $langs->trans('CostPrice');
|
||||
?>
|
||||
</td>
|
||||
<?php
|
||||
if ($user->rights->margins->creer)
|
||||
{
|
||||
if(! empty($conf->global->DISPLAY_MARGIN_RATES))
|
||||
{
|
||||
echo '<td align="right">'.$langs->trans('MarginRate').'</td>';
|
||||
}
|
||||
if(! empty($conf->global->DISPLAY_MARK_RATES))
|
||||
{
|
||||
echo '<td align="right">'.$langs->trans('MarkRate').'</td>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (! empty($conf->global->DISPLAY_MARGIN_RATES)) $colspan++;
|
||||
if (! empty($conf->global->DISPLAY_MARK_RATES)) $colspan++;
|
||||
}
|
||||
}
|
||||
?>
|
||||
<td colspan="<?php echo $colspan; ?>"> </td>
|
||||
</tr>
|
||||
|
||||
<tr <?php echo $bcnd[$var]; ?>>
|
||||
<?php
|
||||
if (! empty($conf->global->MAIN_VIEW_LINE_NUMBER)) {
|
||||
$coldisplay=2; }
|
||||
else {
|
||||
$coldisplay=0; }
|
||||
?>
|
||||
|
||||
<td<?php echo (! empty($conf->global->MAIN_VIEW_LINE_NUMBER) ? ' colspan="2"' : ''); ?>>
|
||||
<?php
|
||||
|
||||
echo '<span>';
|
||||
echo $form->select_type_of_lines(isset($_POST["type"])?$_POST["type"]:-1,'type',1);
|
||||
echo '</span>';
|
||||
|
||||
if (is_object($hookmanager))
|
||||
{
|
||||
$parameters=array('fk_parent_line'=>GETPOST('fk_parent_line','int'));
|
||||
$reshook=$hookmanager->executeHooks('formCreateProductOptions',$parameters,$object,$action);
|
||||
}
|
||||
|
||||
if ((! empty($conf->product->enabled) && ! empty($conf->service->enabled)) || (empty($conf->product->enabled) && empty($conf->service->enabled))) echo '<br>';
|
||||
|
||||
// Editor wysiwyg
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||
$nbrows=ROWS_2;
|
||||
$enabled=(! empty($conf->global->FCKEDITOR_ENABLE_DETAILS)?$conf->global->FCKEDITOR_ENABLE_DETAILS:0);
|
||||
if (! empty($conf->global->MAIN_INPUT_DESC_HEIGHT)) $nbrows=$conf->global->MAIN_INPUT_DESC_HEIGHT;
|
||||
$doleditor=new DolEditor('dp_desc',GETPOST('dp_desc'),'',100,'dolibarr_details','',false,true,$enabled,$nbrows,70);
|
||||
$doleditor->Create();
|
||||
?>
|
||||
</td>
|
||||
|
||||
<td align="right"><?php
|
||||
if ($seller->tva_assuj == "0") echo '<input type="hidden" name="tva_tx" value="0">0';
|
||||
else echo $form->load_tva('tva_tx', (isset($_POST["tva_tx"])?$_POST["tva_tx"]:-1), $seller, $buyer);
|
||||
?>
|
||||
</td>
|
||||
<td align="right"><input type="text" size="5" name="price_ht" class="flat" value="<?php echo (isset($_POST["price_ht"])?$_POST["price_ht"]:''); ?>"></td>
|
||||
<td align="right"><input type="text" size="2" name="qty" class="flat" value="<?php echo (isset($_POST["qty"])?$_POST["qty"]:1); ?>"></td>
|
||||
<td align="right" class="nowrap"><input type="text" size="1" class="flat" value="<?php echo (isset($_POST["remise_percent"])?$_POST["remise_percent"]:$buyer->remise_client); ?>" name="remise_percent"><span class="hideonsmartphone">%</span></td>
|
||||
<?php
|
||||
$colspan = 4;
|
||||
if (! empty($usemargins))
|
||||
{
|
||||
?>
|
||||
<td align="right">
|
||||
<input type="text" size="5" name="buying_price" class="flat" value="<?php echo (isset($_POST["buying_price"])?$_POST["buying_price"]:''); ?>">
|
||||
</td>
|
||||
<?php
|
||||
$colspan++;
|
||||
$coldisplay++;
|
||||
|
||||
if ($user->rights->margins->creer)
|
||||
{
|
||||
if (! empty($conf->global->DISPLAY_MARGIN_RATES)) {
|
||||
echo '<td align="right" class="nowrap"><input type="text" size="2" name="np_marginRate" value="'.(isset($_POST["np_marginRate"])?$_POST["np_marginRate"]:'').'"><span class="hideonsmartphone">%</span></td>';
|
||||
$colspan++;
|
||||
$coldisplay++;
|
||||
}
|
||||
if (! empty($conf->global->DISPLAY_MARK_RATES)) {
|
||||
echo '<td align="right" class="nowrap"><input type="text" size="2" name="np_markRate" value="'.(isset($_POST["np_markRate"])?$_POST["np_markRate"]:'').'"><span class="hideonsmartphone">%</span></td>';
|
||||
$colspan++;
|
||||
$coldisplay++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (! empty($conf->global->DISPLAY_MARGIN_RATES)) {
|
||||
$colspan++;
|
||||
$coldisplay++;
|
||||
}
|
||||
if (! empty($conf->global->DISPLAY_MARK_RATES)) {
|
||||
$colspan++;
|
||||
$coldisplay++;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
<td align="center" valign="middle" colspan="<?php echo $colspan; ?>">
|
||||
<input type="submit" class="button" value="<?php echo $langs->trans('Add'); ?>" name="addline_libre" id="addline_libre">
|
||||
</td>
|
||||
<?php
|
||||
//Line extrafield
|
||||
if (!empty($extrafieldsline)) {
|
||||
if ($this->table_element_line=='commandedet') {
|
||||
$newline = new OrderLine($this->db);
|
||||
}
|
||||
elseif ($this->table_element_line=='propaldet') {
|
||||
$newline = new PropaleLigne($this->db);
|
||||
}
|
||||
elseif ($this->table_element_line=='facturedet') {
|
||||
$newline = new FactureLigne($this->db);
|
||||
}
|
||||
if (is_object($newline)) {
|
||||
print $newline->showOptionals($extrafieldsline, 'edit', array('style'=>$bcnd[$var], 'colspan'=>$coldisplay+8));
|
||||
}
|
||||
}
|
||||
?>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
if (! empty($conf->service->enabled) && $dateSelector)
|
||||
{
|
||||
if(! empty($conf->global->MAIN_VIEW_LINE_NUMBER)) $colspan = 10;
|
||||
else $colspan = 9;
|
||||
|
||||
if (! empty($usemargins))
|
||||
{
|
||||
$colspan++; // For the buying price
|
||||
if (! empty($conf->global->DISPLAY_MARGIN_RATES)) $colspan++;
|
||||
if (! empty($conf->global->DISPLAY_MARK_RATES)) $colspan++;
|
||||
}
|
||||
?>
|
||||
|
||||
<tr <?php echo $bcnd[$var]; ?>>
|
||||
<td colspan="<?php echo $colspan; ?>">
|
||||
<?php
|
||||
if (! empty($object->element) && $object->element == 'contrat')
|
||||
{
|
||||
print $langs->trans("DateStartPlanned").' ';
|
||||
$form->select_date('',"date_start",$usehm,$usehm,1,"addline_sl");
|
||||
print ' '.$langs->trans("DateEndPlanned").' ';
|
||||
$form->select_date('',"date_end",$usehm,$usehm,1,"addline_sl");
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $langs->trans('ServiceLimitedDuration').' '.$langs->trans('From').' ';
|
||||
echo $form->select_date('','date_start',empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,1,"addproduct");
|
||||
echo ' '.$langs->trans('to').' ';
|
||||
echo $form->select_date('','date_end',empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,1,"addproduct");
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
<?php
|
||||
if (! empty($usemargins) && $user->rights->margins->creer)
|
||||
{
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
|
||||
jQuery(document).ready(function() {
|
||||
<?php
|
||||
if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { ?>
|
||||
$('#addline_libre').click(function (e) {
|
||||
return checkFreeLine(e, "np_marginRate");
|
||||
});
|
||||
$("input[name='np_marginRate']:first").blur(function(e) {
|
||||
return checkFreeLine(e, "np_marginRate");
|
||||
});
|
||||
<?php
|
||||
}
|
||||
if (! empty($conf->global->DISPLAY_MARK_RATES)) { ?>
|
||||
$('#addline_libre').click(function (e) {
|
||||
return checkFreeLine(e, "np_markRate");
|
||||
});
|
||||
$("input[name='np_markRate']:first").blur(function(e) {
|
||||
return checkFreeLine(e, "np_markRate");
|
||||
});
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
});
|
||||
|
||||
// TODO This works for french numbers only
|
||||
function checkFreeLine(e, npRate)
|
||||
{
|
||||
var buying_price = $("input[name='buying_price']:first");
|
||||
var remise = $("input[name='remise_percent']:first");
|
||||
|
||||
var rate = $("input[name='"+npRate+"']:first");
|
||||
if (rate.val() == '')
|
||||
return true;
|
||||
if (! $.isNumeric(rate.val().replace(',','.')))
|
||||
{
|
||||
alert('<?php echo dol_escape_js($langs->trans("rateMustBeNumeric")); ?>');
|
||||
e.stopPropagation();
|
||||
setTimeout(function () { rate.focus() }, 50);
|
||||
return false;
|
||||
}
|
||||
if (npRate == "np_markRate" && rate.val() >= 100)
|
||||
{
|
||||
alert('<?php echo dol_escape_js($langs->trans("markRateShouldBeLesserThan100")); ?>');
|
||||
e.stopPropagation();
|
||||
setTimeout(function () { rate.focus() }, 50);
|
||||
return false;
|
||||
}
|
||||
|
||||
var price = 0;
|
||||
remisejs=price2numjs(remise.val());
|
||||
|
||||
if (remisejs != 100)
|
||||
{
|
||||
bpjs=price2numjs(buying_price.val());
|
||||
ratejs=price2numjs(rate.val());
|
||||
|
||||
if (npRate == "marginRate")
|
||||
price = ((bpjs * (1 + ratejs / 100)) / (1 - remisejs / 100));
|
||||
else if (npRate == "markRate")
|
||||
price = ((bpjs / (1 - ratejs / 100)) / (1 - remisejs / 100));
|
||||
}
|
||||
$("input[name='price_ht']:first").val(price); // TODO Must use a function like php price to have here a formated value
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/* Function similar to price2num in PHP */
|
||||
function price2numjs(num)
|
||||
{
|
||||
<?php
|
||||
$dec=','; $thousand=' ';
|
||||
if ($langs->transnoentitiesnoconv("SeparatorDecimal") != "SeparatorDecimal") $dec=$langs->transnoentitiesnoconv("SeparatorDecimal");
|
||||
if ($langs->transnoentitiesnoconv("SeparatorThousand")!= "SeparatorThousand") $thousand=$langs->transnoentitiesnoconv("SeparatorThousand");
|
||||
if ($thousand == 'None') $thousand='';
|
||||
print "var dec='".$dec."'; var thousand='".$thousand."';\n";
|
||||
?>
|
||||
|
||||
var main_max_dec_shown = <?php echo $conf->global->MAIN_MAX_DECIMALS_SHOWN; ?>;
|
||||
var main_rounding_unit = <?php echo $conf->global->MAIN_MAX_DECIMALS_UNIT; ?>;
|
||||
var main_rounding_tot = <?php echo $conf->global->MAIN_MAX_DECIMALS_TOT; ?>;
|
||||
|
||||
var amount = num.toString();
|
||||
|
||||
// rounding for unit price
|
||||
var rounding = main_rounding_unit;
|
||||
var pos = amount.indexOf(dec);
|
||||
var decpart = '';
|
||||
if (pos >= 0) decpart = amount.substr(pos+1).replace('/0+$/i',''); // Supprime les 0 de fin de partie decimale
|
||||
var nbdec = decpart.length;
|
||||
if (nbdec > rounding) rounding = nbdec;
|
||||
// If rounding higher than max shown
|
||||
if (rounding > main_max_dec_shown) rounding = main_max_dec_shown;
|
||||
|
||||
if (thousand != ',' && thousand != '.') amount=amount.replace(',','.');
|
||||
amount=amount.replace(' ',''); // To avoid spaces
|
||||
amount=amount.replace(thousand,''); // Replace of thousand before replace of dec to avoid pb if thousand is .
|
||||
amount=amount.replace(dec,'.');
|
||||
|
||||
return parseFloat(amount).toFixed(rounding);
|
||||
}
|
||||
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<!-- END PHP TEMPLATE freeproductline_create.tpl.php -->
|
||||
@ -41,9 +41,7 @@ if (empty($inputalsopricewithtax)) $inputalsopricewithtax=0;
|
||||
// Define colspan for button Add
|
||||
$colspan = 3; // Col total ht + col edit + col delete
|
||||
if (! empty($inputalsopricewithtax)) $colspan++; // We add 1 if col total ttc
|
||||
if (in_array($object->element,array('propal','facture','invoice','commande','order'))) $colspan++; // With this, there is a column move
|
||||
if ($user->rights->margins->creer && ! empty($conf->global->DISPLAY_MARGIN_RATES)) $colspan++;
|
||||
if ($user->rights->margins->creer && ! empty($conf->global->DISPLAY_MARK_RATES)) $colspan++;
|
||||
if (in_array($object->element,array('propal','facture','invoice','commande','order'))) $colspan++; // With this, there is a column move button
|
||||
?>
|
||||
|
||||
<!-- BEGIN PHP TEMPLATE objectline_create.tpl.php -->
|
||||
@ -72,8 +70,8 @@ if ($user->rights->margins->creer && ! empty($conf->global->DISPLAY_MARK_RATES))
|
||||
?>
|
||||
</td>
|
||||
<?php
|
||||
if ($user->rights->margins->creer && ! empty($conf->global->DISPLAY_MARGIN_RATES)) echo '<td align="right">'.$langs->trans('MarginRate').'</td>';
|
||||
if ($user->rights->margins->creer && ! empty($conf->global->DISPLAY_MARK_RATES)) echo '<td align="right">'.$langs->trans('MarkRate').'</td>';
|
||||
if ($user->rights->margins->creer && ! empty($conf->global->DISPLAY_MARGIN_RATES)) echo '<td align="right"><span class="np_marginRate">'.$langs->trans('MarginRate').'</span></td>';
|
||||
if ($user->rights->margins->creer && ! empty($conf->global->DISPLAY_MARK_RATES)) echo '<td align="right"><span class="np_markRate">'.$langs->trans('MarkRate').'</span></td>';
|
||||
}
|
||||
?>
|
||||
<td colspan="<?php echo $colspan; ?>"> </td>
|
||||
@ -226,12 +224,12 @@ else {
|
||||
{
|
||||
if (! empty($conf->global->DISPLAY_MARGIN_RATES))
|
||||
{
|
||||
echo '<td align="right" class="nowrap"><input type="text" size="2" name="np_marginRate" value="'.(isset($_POST["np_marginRate"])?$_POST["np_marginRate"]:'').'"><span class="hideonsmartphone">%</span></td>';
|
||||
echo '<td align="right" class="nowrap"><input type="text" size="2" id="np_marginRate" name="np_marginRate" value="'.(isset($_POST["np_marginRate"])?$_POST["np_marginRate"]:'').'"><span class="np_marginRate hideonsmartphone">%</span></td>';
|
||||
$coldisplay++;
|
||||
}
|
||||
if (! empty($conf->global->DISPLAY_MARK_RATES))
|
||||
{
|
||||
echo '<td align="right" class="nowrap"><input type="text" size="2" name="np_markRate" value="'.(isset($_POST["np_markRate"])?$_POST["np_markRate"]:'').'"><span class="hideonsmartphone">%</span></td>';
|
||||
echo '<td align="right" class="nowrap"><input type="text" size="2" id="np_markRate" name="np_markRate" value="'.(isset($_POST["np_markRate"])?$_POST["np_markRate"]:'').'"><span class="np_markRate hideonsmartphone">%</span></td>';
|
||||
$coldisplay++;
|
||||
}
|
||||
}
|
||||
@ -246,7 +244,7 @@ else {
|
||||
<input type="submit" class="button" value="<?php echo $langs->trans('Add'); ?>" name="addline" id="addline">
|
||||
</td>
|
||||
<?php
|
||||
//Line extrafield
|
||||
// Line extrafield
|
||||
if (!empty($extrafieldsline)) {
|
||||
if ($this->table_element_line=='commandedet') {
|
||||
$newline = new OrderLine($this->db);
|
||||
@ -344,6 +342,7 @@ if (! empty($usemargins) && $user->rights->margins->creer)
|
||||
var rate = $("input[name='"+npRate+"']:first");
|
||||
if (rate.val() == '')
|
||||
return true;
|
||||
|
||||
if (! $.isNumeric(rate.val().replace(',','.')))
|
||||
{
|
||||
alert('<?php echo dol_escape_js($langs->trans("rateMustBeNumeric")); ?>');
|
||||
@ -362,14 +361,16 @@ if (! empty($usemargins) && $user->rights->margins->creer)
|
||||
var price = 0;
|
||||
remisejs=price2numjs(remise.val());
|
||||
|
||||
if (remisejs != 100)
|
||||
if (remisejs != 100) // If a discount not 100 or no discount
|
||||
{
|
||||
if (remisejs == '') remisejs=0;
|
||||
|
||||
bpjs=price2numjs(buying_price.val());
|
||||
ratejs=price2numjs(rate.val());
|
||||
|
||||
if (npRate == "marginRate")
|
||||
if (npRate == "np_marginRate")
|
||||
price = ((bpjs * (1 + ratejs / 100)) / (1 - remisejs / 100));
|
||||
else if (npRate == "markRate")
|
||||
else if (npRate == "np_markRate")
|
||||
price = ((bpjs / (1 - ratejs / 100)) / (1 - remisejs / 100));
|
||||
}
|
||||
$("input[name='price_ht']:first").val(price); // TODO Must use a function like php price to have here a formated value
|
||||
@ -381,12 +382,13 @@ if (! empty($usemargins) && $user->rights->margins->creer)
|
||||
/* Function similar to price2num in PHP */
|
||||
function price2numjs(num)
|
||||
{
|
||||
if (num == '') return '';
|
||||
|
||||
<?php
|
||||
$dec=','; $thousand=' ';
|
||||
if ($langs->transnoentitiesnoconv("SeparatorDecimal") != "SeparatorDecimal") $dec=$langs->transnoentitiesnoconv("SeparatorDecimal");
|
||||
if ($langs->transnoentitiesnoconv("SeparatorThousand")!= "SeparatorThousand") $thousand=$langs->transnoentitiesnoconv("SeparatorThousand");
|
||||
if ($thousand == 'None') $thousand='';
|
||||
print "var dec='".$dec."'; var thousand='".$thousand."';\n";
|
||||
print "var dec='".$dec."'; var thousand='".$thousand."';\n"; // Set var in javascript
|
||||
?>
|
||||
|
||||
var main_max_dec_shown = <?php echo $conf->global->MAIN_MAX_DECIMALS_SHOWN; ?>;
|
||||
@ -497,6 +499,10 @@ function setforfree() {
|
||||
jQuery("#title_vat").show();
|
||||
jQuery("#title_up_ht").show();
|
||||
jQuery("#title_up_ttc").show();
|
||||
jQuery("#np_marginRate").show(); // May no exists
|
||||
jQuery("#np_markRate").show(); // May no exists
|
||||
jQuery(".np_marginRate").show(); // May no exists
|
||||
jQuery(".np_markRate").show(); // May no exists
|
||||
}
|
||||
function setforpredef() {
|
||||
jQuery("#select_type").val(-1);
|
||||
@ -509,6 +515,10 @@ function setforpredef() {
|
||||
jQuery("#title_vat").hide();
|
||||
jQuery("#title_up_ht").hide();
|
||||
jQuery("#title_up_ttc").hide();
|
||||
jQuery("#np_marginRate").hide(); // May no exists
|
||||
jQuery("#np_markRate").hide(); // May no exists
|
||||
jQuery(".np_marginRate").hide(); // May no exists
|
||||
jQuery(".np_markRate").hide(); // May no exists
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
@ -17,14 +17,31 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*
|
||||
* Need to have following variables defined:
|
||||
* $object (invoice, order, ...)
|
||||
* $conf
|
||||
* $langs
|
||||
* $dateSelector
|
||||
* $this (invoice, order, ...)
|
||||
* $line defined
|
||||
* $forceall (0 by default, 1 for supplier invoices/orders)
|
||||
* $senderissupplier (0 by default, 1 for supplier invoices/orders)
|
||||
* $inputalsopricewithtax (0 by default, 1 to also show column with unit price including tax)
|
||||
*/
|
||||
|
||||
|
||||
$usemargins=0;
|
||||
if (! empty($conf->margin->enabled) && ! empty($object->element) && in_array($object->element,array('facture','propal','commande'))) $usemargins=1;
|
||||
|
||||
global $dateSelector, $forceall, $senderissupplier, $inputalsopricewithtax;
|
||||
if (empty($dateSelector)) $dateSelector=0;
|
||||
if (empty($forceall)) $forceall=0;
|
||||
if (empty($senderissupplier)) $senderissupplier=0;
|
||||
if (empty($inputalsopricewithtax)) $inputalsopricewithtax=0;
|
||||
|
||||
|
||||
// Define colspan for button Add
|
||||
$colspan = 3; // Col total ht + col edit + col delete
|
||||
if (! empty($inputalsopricewithtax)) $colspan++; // We add 1 if col total ttc
|
||||
if (in_array($object->element,array('propal','facture','invoice','commande','order'))) $colspan++; // With this, there is a column move button
|
||||
?>
|
||||
|
||||
<!-- BEGIN PHP TEMPLATE objectline_edit.tpl.php -->
|
||||
@ -41,29 +58,7 @@ $coldisplay=-1; // We remove first td
|
||||
<input type="hidden" id="product_id" name="productid" value="<?php echo (! empty($line->fk_product)?$line->fk_product:0); ?>" />
|
||||
<input type="hidden" id="special_code" name="special_code" value="<?php echo $line->special_code; ?>">
|
||||
|
||||
<?php
|
||||
if ($conf->global->MAIN_FEATURES_LEVEL > 1)
|
||||
{
|
||||
if ($line->fk_product > 0)
|
||||
{
|
||||
echo $text . ' - ';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $form->select_type_of_lines($line->product_type, 'type', 1, 1);
|
||||
}
|
||||
?>
|
||||
|
||||
<input id="product_label" name="product_label" size="40" value="<?php echo $label; ?>"<?php echo $placeholder . ((! empty($line->fk_product) && empty($line->label)) ? ' disabled="disabled"' : ''); ?>>
|
||||
<input type="hidden" id="origin_label_cache" name="origin_label_cache" value="<?php echo $line->product_label; ?>" />
|
||||
<span id="update_label_area" class="hideobject"><input type="checkbox" id="update_label_checkbox" name="update_label" value="1" />
|
||||
<?php echo $form->textwithtooltip($langs->trans('UpdateOriginalProductLabel'), $langs->trans('HelpUpdateOriginalProductLabel'),1,0,'','',3); ?>
|
||||
</span>
|
||||
<span id="price_base_type" class="hideobject"></span>
|
||||
|
||||
<br>
|
||||
|
||||
<?php } else if ($line->fk_product > 0) { ?>
|
||||
<?php if ($line->fk_product > 0) { ?>
|
||||
|
||||
<a href="<?php echo DOL_URL_ROOT.'/product/fiche.php?id='.$line->fk_product; ?>">
|
||||
<?php
|
||||
@ -126,9 +121,16 @@ $coldisplay=-1; // We remove first td
|
||||
<?php } ?>
|
||||
</td>
|
||||
|
||||
<?php if (! empty($conf->margin->enabled)) { ?>
|
||||
<?php
|
||||
if (! empty($usemargins))
|
||||
{
|
||||
?>
|
||||
<td align="right"><?php $coldisplay++; ?>
|
||||
<select id="fournprice" name="fournprice" class="hideobject"></select>
|
||||
<!-- For predef product -->
|
||||
<?php if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) { ?>
|
||||
<select id="fournprice_predef" name="fournprice_predef" class="flat" style="display: none;"></select>
|
||||
<?php } ?>
|
||||
<!-- For free product -->
|
||||
<input type="text" size="5" id="buying_price" name="buying_price" class="hideobject" value="<?php echo price($line->pa_ht,0,'',0); ?>">
|
||||
</td>
|
||||
<?php if ($user->rights->margins->creer) {
|
||||
@ -156,7 +158,7 @@ $coldisplay=-1; // We remove first td
|
||||
} ?>
|
||||
|
||||
<!-- colspan=4 for this td because it replace total_ht+3 td for buttons -->
|
||||
<td align="center" colspan="4" valign="middle"><?php $coldisplay+=4; ?>
|
||||
<td align="center" colspan="<?php echo $colspan; ?>" valign="middle"><?php $coldisplay+=4; ?>
|
||||
<input type="submit" class="button" id="savelinebutton" name="save" value="<?php echo $langs->trans("Save"); ?>"><br>
|
||||
<input type="submit" class="button" id="cancellinebutton" name="cancel" value="<?php echo $langs->trans("Cancel"); ?>">
|
||||
</td>
|
||||
@ -185,193 +187,6 @@ $coldisplay=-1; // We remove first td
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
<?php
|
||||
if ($conf->global->MAIN_FEATURES_LEVEL > 1) // TODO A virer
|
||||
{
|
||||
?>
|
||||
jQuery(document).ready(function() {
|
||||
|
||||
|
||||
if ($('#product_type').val() == 0) {
|
||||
$('#service_duration_area').hide();
|
||||
} else if ($('#product_type').val() == 1) {
|
||||
$('#service_duration_area').show();
|
||||
}
|
||||
|
||||
if ($('#product_label').attr('disabled')) {
|
||||
$('#update_label_area').show();
|
||||
}
|
||||
|
||||
$('#update_label_checkbox').change(function() {
|
||||
if ($(this).attr('checked')) {
|
||||
$('#product_label').removeAttr('disabled').focus();
|
||||
} else {
|
||||
$('#product_label')
|
||||
.attr('disabled','disabled')
|
||||
.val($('#origin_label_cache').val());
|
||||
}
|
||||
});
|
||||
|
||||
$('#select_type').change(function() {
|
||||
var type = $(this).val();
|
||||
if (type >= 0) {
|
||||
if (type == 0) {
|
||||
$('#service_duration_area').hide();
|
||||
$('#date_start').val('').trigger('change');
|
||||
$('#date_end').val('').trigger('change');
|
||||
} else if (type == 1) {
|
||||
$('#service_duration_area').show();
|
||||
}
|
||||
var addline=false;
|
||||
if ($('#price_ht').val().length > 0) {
|
||||
if ($('#product_id').val() == 0) {
|
||||
if (typeof CKEDITOR == 'object' && typeof CKEDITOR.instances != 'undefined' && CKEDITOR.instances['product_desc'] != 'undefined') {
|
||||
var content = CKEDITOR.instances['product_desc'].getData();
|
||||
} else {
|
||||
var content = $('#product_desc').val();
|
||||
}
|
||||
if (content.length > 0) {
|
||||
addline=true;
|
||||
}
|
||||
} else {
|
||||
addline=true;
|
||||
}
|
||||
}
|
||||
if (addline) {
|
||||
$('#savelinebutton').removeAttr('disabled');
|
||||
} else {
|
||||
$('#savelinebutton').attr('disabled','disabled');
|
||||
}
|
||||
} else {
|
||||
$('#savelinebutton').attr('disabled','disabled');
|
||||
$('#service_duration_area').hide();
|
||||
$('#date_start').val('').trigger('change');
|
||||
$('#date_end').val('').trigger('change');
|
||||
}
|
||||
});
|
||||
|
||||
$('#price_ht').focusin(function() {
|
||||
$('#price_base_type').val('HT');
|
||||
});
|
||||
|
||||
$('#price_ht').bind('change keyup input', function() {
|
||||
if ($('#price_base_type').val() == 'HT') {
|
||||
update_price('price_ht', 'price_ttc');
|
||||
}
|
||||
});
|
||||
|
||||
$('#price_ttc').focusin(function() {
|
||||
$('#price_base_type').val('TTC');
|
||||
});
|
||||
|
||||
$('#price_ttc').bind('change keyup input', function() {
|
||||
if ($('#price_base_type').val() == 'TTC') {
|
||||
update_price('price_ttc', 'price_ht');
|
||||
}
|
||||
});
|
||||
|
||||
if ($('#tva_tx').val() == 0) {
|
||||
$('#price_ttc').attr('disabled','disabled');
|
||||
}
|
||||
|
||||
$('#tva_tx').change(function() {
|
||||
if ($(this).val() == 0) {
|
||||
$('#price_ttc').attr('disabled','disabled');
|
||||
$('#price_ttc').val('');
|
||||
} else {
|
||||
$('#price_ttc').removeAttr('disabled');
|
||||
if ($('#price_base_type').val() == 'HT') {
|
||||
update_price('price_ht', 'price_ttc');
|
||||
} else if ($('#price_base_type').val() == 'TTC') {
|
||||
update_price('price_ttc', 'price_ht');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// update_price
|
||||
function update_price(input, output)
|
||||
{
|
||||
$.post('<?php echo DOL_URL_ROOT; ?>/core/ajax/price.php', {
|
||||
'amount': $('#' + input).val(),
|
||||
'output': output,
|
||||
'tva_tx': $('#tva_tx').val()
|
||||
},
|
||||
function(data) {
|
||||
var addline=false;
|
||||
if (typeof data[output] != 'undefined') {
|
||||
// Hide price_ttc if no vat
|
||||
if ($('#tva_tx').val() > 0 || ($('#tva_tx').val() == 0 && output == 'price_ht')) {
|
||||
$('#' + output).val(data[output]);
|
||||
}
|
||||
if ($('#product_id').val() == 0 && $('#select_type').val() >= 0) {
|
||||
if (typeof CKEDITOR == 'object' && typeof CKEDITOR.instances != 'undefined' && CKEDITOR.instances['product_desc'] != 'undefined') {
|
||||
var content = CKEDITOR.instances['product_desc'].getData();
|
||||
} else {
|
||||
var content = $('#product_desc').val();
|
||||
}
|
||||
if (content.length > 0) {
|
||||
addline=true;
|
||||
}
|
||||
} else {
|
||||
addline=true;
|
||||
}
|
||||
} else {
|
||||
$('#' + input).val('');
|
||||
$('#' + output).val('');
|
||||
}
|
||||
if (addline) {
|
||||
$('#savelinebutton').removeAttr('disabled');
|
||||
} else {
|
||||
$('#savelinebutton').attr('disabled','disabled');
|
||||
}
|
||||
}, 'json');
|
||||
}
|
||||
|
||||
// Check if decription is not empty for free line
|
||||
<?php if (! empty($conf->fckeditor->enabled) && ! empty($conf->global->FCKEDITOR_ENABLE_DETAILS)) { ?>
|
||||
CKEDITOR.on('instanceReady', function() {
|
||||
CKEDITOR.instances['product_desc'].on('key', function() {
|
||||
var addline=false;
|
||||
if ($('#product_id').val() == 0 && $('#select_type').val() >= 0 && $('#price_ht').val().length > 0) {
|
||||
var content = CKEDITOR.instances['product_desc'].getData();
|
||||
if (content.length > 0) {
|
||||
addline=true;
|
||||
}
|
||||
} else if ($('#product_id').val() > 0 && $('#price_ht').val().length > 0) {
|
||||
addline=true;
|
||||
}
|
||||
if (addline) {
|
||||
$('#savelinebutton').removeAttr('disabled');
|
||||
} else {
|
||||
$('#savelinebutton').attr('disabled','disabled');
|
||||
}
|
||||
});
|
||||
});
|
||||
<?php } else { ?>
|
||||
$('#product_desc').keyup(function() {
|
||||
var addline=false;
|
||||
if ($('#product_id').val() == 0 && $('#select_type').val() >= 0 && $('#price_ht').val().length > 0) {
|
||||
var content = $('#product_desc').val();
|
||||
if (content.length > 0) {
|
||||
addline=true;
|
||||
}
|
||||
} else if ($('#product_id').val() > 0 && $('#price_ht').val().length > 0) {
|
||||
addline=true;
|
||||
}
|
||||
if (addline) {
|
||||
$('#savelinebutton').removeAttr('disabled');
|
||||
} else {
|
||||
$('#savelinebutton').attr('disabled','disabled');
|
||||
}
|
||||
});
|
||||
<?php } ?>
|
||||
|
||||
});
|
||||
|
||||
<?php } // End MAIN_LEVEL_FEATURES > 1 ?>
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
if (! empty($conf->margin->enabled))
|
||||
{
|
||||
@ -499,12 +314,13 @@ if (! empty($conf->margin->enabled))
|
||||
/* Function similar to price2num in PHP */
|
||||
function price2numjs(num)
|
||||
{
|
||||
if (num == '') return '';
|
||||
|
||||
<?php
|
||||
$dec=','; $thousand=' ';
|
||||
if ($langs->transnoentitiesnoconv("SeparatorDecimal") != "SeparatorDecimal") $dec=$langs->transnoentitiesnoconv("SeparatorDecimal");
|
||||
if ($langs->transnoentitiesnoconv("SeparatorThousand")!= "SeparatorThousand") $thousand=$langs->transnoentitiesnoconv("SeparatorThousand");
|
||||
if ($thousand == 'None') $thousand='';
|
||||
print "var dec='".$dec."'; var thousand='".$thousand."';\n";
|
||||
print "var dec='".$dec."'; var thousand='".$thousand."';\n"; // Set var in javascript
|
||||
?>
|
||||
|
||||
var main_max_dec_shown = <?php echo $conf->global->MAIN_MAX_DECIMALS_SHOWN; ?>;
|
||||
|
||||
@ -1,373 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2010-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2010-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2012-2013 Christophe Battarel <christophe.battarel@altairis.fr>
|
||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Need to have following variables defined:
|
||||
* $conf
|
||||
* $langs
|
||||
* $dateSelector
|
||||
* $this (invoice, order, ...)
|
||||
* $line defined
|
||||
*/
|
||||
|
||||
$usemargins=0;
|
||||
if (! empty($conf->margin->enabled) && ! empty($object->element) && in_array($object->element,array('facture','propal','commande'))) $usemargins=1;
|
||||
|
||||
?>
|
||||
|
||||
<!-- BEGIN PHP TEMPLATE predefinedproductline_create.tpl.php -->
|
||||
|
||||
<tr class="liste_titre nodrag nodrop">
|
||||
<td<?php echo (! empty($conf->global->MAIN_VIEW_LINE_NUMBER) ? ' colspan="4"' : ' colspan="3"'); ?>>
|
||||
<?php
|
||||
echo '<span class="hideonsmartphone">'.$langs->trans("AddNewLine").' - </span>';
|
||||
if (! empty($conf->product->enabled) && empty($conf->service->enabled)) echo $langs->trans('RecordedProducts');
|
||||
else if (empty($conf->product->enabled) && ! empty($conf->service->enabled)) echo $langs->trans('RecordedServices');
|
||||
else echo $langs->trans('RecordedProductsAndServices');
|
||||
?>
|
||||
</td>
|
||||
<td align="right"><?php echo $langs->trans('Qty'); ?></td>
|
||||
<td align="right"><?php echo $langs->trans('ReductionShort'); ?></td>
|
||||
<?php
|
||||
$colspan = 4;
|
||||
if (! empty($usemargins))
|
||||
{
|
||||
?>
|
||||
<td align="right">
|
||||
<?php
|
||||
if ($conf->global->MARGIN_TYPE == "1")
|
||||
echo $langs->trans('BuyingPrice');
|
||||
else
|
||||
echo $langs->trans('CostPrice');
|
||||
?>
|
||||
</td>
|
||||
<?php
|
||||
if ($user->rights->margins->creer)
|
||||
{
|
||||
if(! empty($conf->global->DISPLAY_MARGIN_RATES))
|
||||
{
|
||||
echo '<td align="right">'.$langs->trans('MarginRate').'</td>';
|
||||
}
|
||||
if(! empty($conf->global->DISPLAY_MARK_RATES))
|
||||
{
|
||||
echo '<td align="right">'.$langs->trans('MarkRate').'</td>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (! empty($conf->global->DISPLAY_MARGIN_RATES)) $colspan++;
|
||||
if (! empty($conf->global->DISPLAY_MARK_RATES)) $colspan++;
|
||||
}
|
||||
}
|
||||
?>
|
||||
<td colspan="<?php echo $colspan; ?>"> </td>
|
||||
</tr>
|
||||
|
||||
<tr <?php echo $bcnd[$var]; ?>>
|
||||
<?php
|
||||
if (! empty($conf->global->MAIN_VIEW_LINE_NUMBER)) {
|
||||
$coldisplay=4; }
|
||||
else {
|
||||
$coldisplay=3; }
|
||||
?>
|
||||
|
||||
<td<?php echo (! empty($conf->global->MAIN_VIEW_LINE_NUMBER) ? ' colspan="4"' : ' colspan="3"'); ?>>
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function() {
|
||||
jQuery('#idprod').change(function() {
|
||||
if (jQuery('#idprod').val() > 0) jQuery('#np_desc').focus();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<?php
|
||||
|
||||
echo '<span>';
|
||||
$filtertype='';
|
||||
if (! empty($object->element) && $object->element == 'contrat') $filtertype='1';
|
||||
$form->select_produits('','idprod',$filtertype,$conf->product->limit_size,$buyer->price_level, 1, 2, '', 3, array(),$buyer->id);
|
||||
echo '</span>';
|
||||
|
||||
if (is_object($hookmanager))
|
||||
{
|
||||
$parameters=array('fk_parent_line'=>GETPOST('fk_parent_line','int'));
|
||||
$reshook=$hookmanager->executeHooks('formCreateProductOptions',$parameters,$object,$action);
|
||||
}
|
||||
|
||||
echo '<br>';
|
||||
|
||||
// Editor wysiwyg
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||
$nbrows=ROWS_2;
|
||||
$enabled=(! empty($conf->global->FCKEDITOR_ENABLE_DETAILS)?$conf->global->FCKEDITOR_ENABLE_DETAILS:0);
|
||||
if (! empty($conf->global->MAIN_INPUT_DESC_HEIGHT)) $nbrows=$conf->global->MAIN_INPUT_DESC_HEIGHT;
|
||||
$doleditor=new DolEditor('np_desc',GETPOST('np_desc"'),'',100,'dolibarr_details','',false,true,$enabled,$nbrows,70);
|
||||
$doleditor->Create();
|
||||
?>
|
||||
</td>
|
||||
|
||||
<td align="right"><input type="hidden" name="price_ht_predef"><input type="text" size="2" name="qty_predef" class="flat" value="1"></td>
|
||||
<td align="right" class="nowrap"><input type="text" size="1" class="flat" name="remise_percent_predef" value="<?php echo $buyer->remise_percent; ?>"><span class="hideonsmartphone">%</span></td>
|
||||
<?php
|
||||
$colspan = 4;
|
||||
if (! empty($usemargins))
|
||||
{
|
||||
?>
|
||||
<td align="right">
|
||||
<select id="fournprice_predef" name="fournprice_predef" class="flat" style="display: none;"></select>
|
||||
<input type="text" size="5" id="buying_price_predef" name="buying_price_predef" class="flat" value="<?php echo (isset($_POST["buying_price_predef"])?$_POST["buying_price_predef"]:''); ?>">
|
||||
</td>
|
||||
<?php
|
||||
$colspan++;
|
||||
$coldisplay++;
|
||||
|
||||
if ($user->rights->margins->creer)
|
||||
{
|
||||
if (! empty($conf->global->DISPLAY_MARGIN_RATES)) {
|
||||
echo '<td align="right"><input type="text" size="2" name="np_marginRate_predef" value="'.(isset($_POST["np_marginRate_predef"])?$_POST["np_marginRate_predef"]:'').'">%</td>';
|
||||
$colspan++;
|
||||
$coldisplay++;
|
||||
}
|
||||
if (! empty($conf->global->DISPLAY_MARK_RATES)) {
|
||||
echo '<td align="right"><input type="text" size="2" name="np_markRate_predef" value="'.(isset($_POST["np_markRate_predef"])?$_POST["np_markRate_predef"]:'').'">%</td>';
|
||||
$colspan++;
|
||||
$coldisplay++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (! empty($conf->global->DISPLAY_MARGIN_RATES)) {
|
||||
$colspan++;
|
||||
$coldisplay++;
|
||||
}
|
||||
if (! empty($conf->global->DISPLAY_MARK_RATES)) {
|
||||
$colspan++;
|
||||
$coldisplay++;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
<td align="center" valign="middle" colspan="<?php echo $colspan; ?>">
|
||||
<input type="submit" class="button" value="<?php echo $langs->trans('Add'); ?>" name="addline_predefined" id="addline_predefined">
|
||||
</td>
|
||||
<?php
|
||||
//Line extrafield
|
||||
if (!empty($extrafieldsline)) {
|
||||
if ($this->table_element_line=='commandedet') {
|
||||
$newline = new OrderLine($this->db);
|
||||
}
|
||||
elseif ($this->table_element_line=='propaldet') {
|
||||
$newline = new PropaleLigne($this->db);
|
||||
}
|
||||
elseif ($this->table_element_line=='facturedet') {
|
||||
$newline = new FactureLigne($this->db);
|
||||
}
|
||||
if (is_object($newline)) {
|
||||
print $newline->showOptionals($extrafieldsline, 'edit', array('style'=>$bcnd[$var],'colspan'=>$coldisplay+5), '_predef');
|
||||
}
|
||||
}
|
||||
?>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
if (! empty($conf->service->enabled) && $dateSelector)
|
||||
{
|
||||
if (! empty($conf->global->MAIN_VIEW_LINE_NUMBER)) $colspan = 10;
|
||||
else $colspan = 9;
|
||||
if (! empty($usemargins))
|
||||
{
|
||||
$colspan++; // For the buying price
|
||||
if (! empty($conf->global->DISPLAY_MARGIN_RATES)) $colspan++;
|
||||
if (! empty($conf->global->DISPLAY_MARK_RATES)) $colspan++;
|
||||
}
|
||||
?>
|
||||
|
||||
<tr <?php echo $bcnd[$var]; ?>>
|
||||
<td colspan="<?php echo $colspan; ?>">
|
||||
<?php
|
||||
if (! empty($object->element) && $object->element == 'contrat')
|
||||
{
|
||||
print $langs->trans("DateStartPlanned").' ';
|
||||
$form->select_date('',"date_start_predef",$usehm,$usehm,1,"addline");
|
||||
print ' '.$langs->trans("DateEndPlanned").' ';
|
||||
$form->select_date('',"date_end_predef",$usehm,$usehm,1,"addline");
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $langs->trans('ServiceLimitedDuration').' '.$langs->trans('From').' ';
|
||||
echo $form->select_date('','date_start_predef',empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,1,"addpredefinedproduct");
|
||||
echo ' '.$langs->trans('to').' ';
|
||||
echo $form->select_date('','date_end_predef',empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,1,"addpredefinedproduct");
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
<?php
|
||||
if (! empty($usemargins) && $user->rights->margins->creer)
|
||||
{
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
|
||||
jQuery(document).ready(function() {
|
||||
<?php
|
||||
if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { ?>
|
||||
$('#addline_predefined').click(function (e) {
|
||||
return checkLine(e, "np_marginRate_predef");
|
||||
});
|
||||
$("input[name='np_marginRate_predef']:last").blur(function(e) {
|
||||
return checkLine(e, "np_marginRate_predef");
|
||||
});
|
||||
<?php
|
||||
}
|
||||
if (! empty($conf->global->DISPLAY_MARK_RATES)) {
|
||||
?>
|
||||
$('#addline_predefined').click(function (e) {
|
||||
return checkLine(e, "np_markRate_predef");
|
||||
});
|
||||
$("input[name='np_marginRate_predef']:last").blur(function(e) {
|
||||
return checkLine(e, "np_markRate_predef");
|
||||
});
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
});
|
||||
|
||||
// TODO This works for french numbers only
|
||||
function checkLine(e, npRate)
|
||||
{
|
||||
var buying_price = $("input[name='buying_price_predef']:last");
|
||||
var remise = $("input[name='remise_percent_predef']:last");
|
||||
|
||||
var rate = $("input[name='"+npRate+"']:last");
|
||||
if (rate.val() == '')
|
||||
return true;
|
||||
if (! $.isNumeric(rate.val().replace(',','.')))
|
||||
{
|
||||
alert('<?php echo dol_escape_js($langs->trans("rateMustBeNumeric")); ?>');
|
||||
e.stopPropagation();
|
||||
setTimeout(function () { rate.focus() }, 50);
|
||||
return false;
|
||||
}
|
||||
if (npRate == "np_markRate_predef" && rate.val() >= 100)
|
||||
{
|
||||
alert('<?php echo dol_escape_js($langs->trans("markRateShouldBeLesserThan100")); ?>');
|
||||
e.stopPropagation();
|
||||
setTimeout(function () { rate.focus() }, 50);
|
||||
return false;
|
||||
}
|
||||
|
||||
var price = 0;
|
||||
remisejs=price2numjs(remise.val());
|
||||
|
||||
if (remisejs != 100)
|
||||
{
|
||||
bpjs=price2numjs(buying_price.val());
|
||||
ratejs=price2numjs(rate.val());
|
||||
|
||||
if (npRate == "np_marginRate_predef")
|
||||
price = ((bpjs * (1 + ratejs / 100)) / (1 - remisejs / 100));
|
||||
else if (npRate == "np_markRate_predef")
|
||||
price = ((bpjs / (1 - ratejs / 100)) / (1 - remisejs / 100));
|
||||
}
|
||||
$("input[name='price_ht_predef']:last").val(price); // TODO Must use a function like php price to have here a formated value
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Function similar to price2num in PHP */
|
||||
function price2numjs(num)
|
||||
{
|
||||
<?php
|
||||
$dec=','; $thousand=' ';
|
||||
if ($langs->transnoentitiesnoconv("SeparatorDecimal") != "SeparatorDecimal") $dec=$langs->transnoentitiesnoconv("SeparatorDecimal");
|
||||
if ($langs->transnoentitiesnoconv("SeparatorThousand")!= "SeparatorThousand") $thousand=$langs->transnoentitiesnoconv("SeparatorThousand");
|
||||
if ($thousand == 'None') $thousand='';
|
||||
print "var dec='".$dec."'; var thousand='".$thousand."';\n";
|
||||
?>
|
||||
|
||||
var main_max_dec_shown = <?php echo $conf->global->MAIN_MAX_DECIMALS_SHOWN; ?>;
|
||||
var main_rounding_unit = <?php echo $conf->global->MAIN_MAX_DECIMALS_UNIT; ?>;
|
||||
var main_rounding_tot = <?php echo $conf->global->MAIN_MAX_DECIMALS_TOT; ?>;
|
||||
|
||||
var amount = num.toString();
|
||||
|
||||
// rounding for unit price
|
||||
var rounding = main_rounding_unit;
|
||||
var pos = amount.indexOf(dec);
|
||||
var decpart = '';
|
||||
if (pos >= 0) decpart = amount.substr(pos+1).replace('/0+$/i',''); // Supprime les 0 de fin de partie decimale
|
||||
var nbdec = decpart.length;
|
||||
if (nbdec > rounding) rounding = nbdec;
|
||||
// If rounding higher than max shown
|
||||
if (rounding > main_max_dec_shown) rounding = main_max_dec_shown;
|
||||
|
||||
if (thousand != ',' && thousand != '.') amount=amount.replace(',','.');
|
||||
amount=amount.replace(' ',''); // To avoid spaces
|
||||
amount=amount.replace(thousand,''); // Replace of thousand before replace of dec to avoid pb if thousand is .
|
||||
amount=amount.replace(dec,'.');
|
||||
|
||||
return parseFloat(amount).toFixed(rounding);
|
||||
}
|
||||
|
||||
jQuery(document).ready(function() {
|
||||
$("#idprod").change(function()
|
||||
{
|
||||
$("#fournprice_predef options").remove();
|
||||
$("#fournprice_predef").hide();
|
||||
$("#buying_price_predef").val("").show();
|
||||
$.post('<?php echo DOL_URL_ROOT; ?>/fourn/ajax/getSupplierPrices.php', { 'idprod': $(this).val() }, function(data) {
|
||||
if (data && data.length > 0)
|
||||
{
|
||||
var options = '';
|
||||
var i = 0;
|
||||
$(data).each(function() {
|
||||
i++;
|
||||
options += '<option value="'+this.id+'" price="'+this.price+'"';
|
||||
if (i == 1) {
|
||||
options += ' selected';
|
||||
$("#buying_price_predef").val(this.price);
|
||||
}
|
||||
options += '>'+this.label+'</option>';
|
||||
});
|
||||
options += '<option value=""><?php echo $langs->trans("InputPrice"); ?></option>';
|
||||
$("#buying_price_predef").hide();
|
||||
$("#fournprice_predef").html(options).show();
|
||||
$("#fournprice_predef").change(function() {
|
||||
var selval = $(this).find('option:selected').attr("price");
|
||||
if (selval)
|
||||
$("#buying_price_predef").val(selval).hide();
|
||||
else
|
||||
$('#buying_price_predef').show();
|
||||
});
|
||||
}
|
||||
},
|
||||
'json');
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<!-- END PHP TEMPLATE predefinedproductline_create.tpl.php -->
|
||||
@ -95,36 +95,28 @@ class Fichinter extends CommonObject
|
||||
dol_syslog(get_class($this)."::create ref=".$this->ref);
|
||||
|
||||
// Check parameters
|
||||
if (! is_numeric($this->duree)) {
|
||||
$this->duree = 0;
|
||||
if (! empty($this->ref)) // We check that ref is not already used
|
||||
{
|
||||
$result=self::isExistingObject($this->element, 0, $this->ref); // Check ref is not yet used
|
||||
if ($result > 0)
|
||||
{
|
||||
$this->error='ErrorRefAlreadyExists';
|
||||
dol_syslog(get_class($this)."::create ".$this->error,LOG_WARNING);
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
if (! is_numeric($this->duree)) $this->duree = 0;
|
||||
|
||||
if ($this->socid <= 0)
|
||||
{
|
||||
$this->error='ErrorBadParameterForFunc';
|
||||
dol_syslog(get_class($this)."::create ".$this->error,LOG_ERR);
|
||||
return -1;
|
||||
}
|
||||
// on verifie si la ref n'est pas utilisee
|
||||
|
||||
$soc = new Societe($this->db);
|
||||
$result=$soc->fetch($this->socid);
|
||||
if (! empty($this->ref))
|
||||
{
|
||||
$result=$this->verifyNumRef(); // Check ref is not yet used
|
||||
if ($result > 0)
|
||||
{
|
||||
$this->error='ErrorRefAlreadyExists';
|
||||
dol_syslog(get_class($this)."::create ".$this->error,LOG_WARNING);
|
||||
$this->db->rollback();
|
||||
return -3;
|
||||
}
|
||||
else if ($result < 0)
|
||||
{
|
||||
$this->error=$this->db->error();
|
||||
dol_syslog(get_class($this)."::create ".$this->error,LOG_ERR);
|
||||
$this->db->rollback();
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
|
||||
$now=dol_now();
|
||||
|
||||
|
||||
@ -186,10 +186,7 @@ if ($holiday_payes == '-1')
|
||||
{
|
||||
print_fiche_titre($langs->trans('CPTitreMenu'));
|
||||
|
||||
print '<div class="tabBar">';
|
||||
print '<span>'.$langs->trans('CPErrorSQL');
|
||||
print ' '.$holiday->error.'</span>';
|
||||
print '</div>';
|
||||
dol_print_error($db, $langs->trans('Error').' '.$holiday->error);
|
||||
exit();
|
||||
}
|
||||
|
||||
|
||||
@ -352,10 +352,13 @@ if ($step == 1 || ! $datatoimport)
|
||||
{
|
||||
foreach ($objimport->array_import_code as $key => $value)
|
||||
{
|
||||
//var_dump($objimport->array_import_code[$key]);
|
||||
$val=!$val;
|
||||
print '<tr '.$bc[$val].'><td nospan="nospan">';
|
||||
//print img_object($objimport->array_import_module[$key]->getName(),$import->array_import_module[$key]->picto).' ';
|
||||
print $objimport->array_import_module[$key]->getName();
|
||||
$titleofmodule=$objimport->array_import_module[$key]->getName();
|
||||
// Special cas for import common to module/services
|
||||
if (in_array($objimport->array_import_code[$key], array('produit_supplierprices','produit_multiprice'))) $titleofmodule=$langs->trans("ProductOrService");
|
||||
print $titleofmodule;
|
||||
print '</td><td>';
|
||||
//print $value;
|
||||
print img_object($objimport->array_import_module[$key]->getName(),$objimport->array_import_icon[$key]).' ';
|
||||
@ -407,8 +410,10 @@ if ($step == 2 && $datatoimport)
|
||||
// Module
|
||||
print '<tr><td width="25%">'.$langs->trans("Module").'</td>';
|
||||
print '<td>';
|
||||
//print img_object($objimport->array_import_module[0]->getName(),$objimport->array_import_module[0]->picto).' ';
|
||||
print $objimport->array_import_module[0]->getName();
|
||||
$titleofmodule=$objimport->array_import_module[0]->getName();
|
||||
// Special cas for import common to module/services
|
||||
if (in_array($objimport->array_import_code[0], array('produit_supplierprices','produit_multiprice'))) $titleofmodule=$langs->trans("ProductOrService");
|
||||
print $titleofmodule;
|
||||
print '</td></tr>';
|
||||
|
||||
// Lot de donnees a importer
|
||||
@ -490,8 +495,10 @@ if ($step == 3 && $datatoimport)
|
||||
// Module
|
||||
print '<tr><td width="25%">'.$langs->trans("Module").'</td>';
|
||||
print '<td>';
|
||||
//print img_object($objimport->array_import_module[0]->getName(),$objimport->array_import_module[0]->picto).' ';
|
||||
print $objimport->array_import_module[0]->getName();
|
||||
$titleofmodule=$objimport->array_import_module[0]->getName();
|
||||
// Special cas for import common to module/services
|
||||
if (in_array($objimport->array_import_code[0], array('produit_supplierprices','produit_multiprice'))) $titleofmodule=$langs->trans("ProductOrService");
|
||||
print $titleofmodule;
|
||||
print '</td></tr>';
|
||||
|
||||
// Lot de donnees a importer
|
||||
@ -695,8 +702,10 @@ if ($step == 4 && $datatoimport)
|
||||
// Module
|
||||
print '<tr><td width="25%">'.$langs->trans("Module").'</td>';
|
||||
print '<td>';
|
||||
//print img_object($objimport->array_import_module[0]->getName(),$objimport->array_import_module[0]->picto).' ';
|
||||
print $objimport->array_import_module[0]->getName();
|
||||
$titleofmodule=$objimport->array_import_module[0]->getName();
|
||||
// Special cas for import common to module/services
|
||||
if (in_array($objimport->array_import_code[0], array('produit_supplierprices','produit_multiprice'))) $titleofmodule=$langs->trans("ProductOrService");
|
||||
print $titleofmodule;
|
||||
print '</td></tr>';
|
||||
|
||||
// Lot de donnees a importer
|
||||
@ -1144,8 +1153,10 @@ if ($step == 5 && $datatoimport)
|
||||
// Module
|
||||
print '<tr><td width="25%">'.$langs->trans("Module").'</td>';
|
||||
print '<td>';
|
||||
//print img_object($objimport->array_import_module[0]->getName(),$objimport->array_import_module[0]->picto).' ';
|
||||
print $objimport->array_import_module[0]->getName();
|
||||
$titleofmodule=$objimport->array_import_module[0]->getName();
|
||||
// Special cas for import common to module/services
|
||||
if (in_array($objimport->array_import_code[0], array('produit_supplierprices','produit_multiprice'))) $titleofmodule=$langs->trans("ProductOrService");
|
||||
print $titleofmodule;
|
||||
print '</td></tr>';
|
||||
|
||||
// Lot de donnees a importer
|
||||
@ -1487,8 +1498,10 @@ if ($step == 6 && $datatoimport)
|
||||
// Module
|
||||
print '<tr><td width="25%">'.$langs->trans("Module").'</td>';
|
||||
print '<td>';
|
||||
//print img_object($objimport->array_import_module[0]->getName(),$objimport->array_import_module[0]->picto).' ';
|
||||
print $objimport->array_import_module[0]->getName();
|
||||
$titleofmodule=$objimport->array_import_module[0]->getName();
|
||||
// Special cas for import common to module/services
|
||||
if (in_array($objimport->array_import_code[0], array('produit_supplierprices','produit_multiprice'))) $titleofmodule=$langs->trans("ProductOrService");
|
||||
print $titleofmodule;
|
||||
print '</td></tr>';
|
||||
|
||||
// Lot de donnees a importer
|
||||
|
||||
@ -136,9 +136,15 @@ class Segment implements IteratorAggregate, Countable
|
||||
if (strpos($this->xml, $this->odf->getConfig('DELIMITER_LEFT') . $key . $this->odf->getConfig('DELIMITER_RIGHT')) === false) {
|
||||
throw new SegmentException("var $key not found in {$this->getName()}");
|
||||
}
|
||||
|
||||
$value=$this->odf->htmlToUTFAndPreOdf($value);
|
||||
|
||||
$value = $encode ? htmlspecialchars($value) : $value;
|
||||
$value = ($charset == 'ISO-8859') ? utf8_encode($value) : $value;
|
||||
$this->vars[$this->odf->getConfig('DELIMITER_LEFT') . $key . $this->odf->getConfig('DELIMITER_RIGHT')] = str_replace("\n", "<text:line-break/>", $value);
|
||||
|
||||
$value=$this->odf->preOdfToOdf($value);
|
||||
|
||||
$this->vars[$this->odf->getConfig('DELIMITER_LEFT') . $key . $this->odf->getConfig('DELIMITER_RIGHT')] = $value;
|
||||
return $this;
|
||||
}
|
||||
/**
|
||||
|
||||
@ -122,12 +122,68 @@ class Odf
|
||||
throw new OdfException("var $key not found in the document");
|
||||
//}
|
||||
}
|
||||
|
||||
$value=$this->htmlToUTFAndPreOdf($value);
|
||||
|
||||
$value = $encode ? htmlspecialchars($value) : $value;
|
||||
$value = ($charset == 'ISO-8859') ? utf8_encode($value) : $value;
|
||||
$this->vars[$tag] = str_replace("\n", "<text:line-break/>", $value);
|
||||
|
||||
$value=$this->preOdfToOdf($value);
|
||||
|
||||
$this->vars[$tag] = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Function to convert a HTML string into an ODT string
|
||||
*
|
||||
* @param string $value String to convert
|
||||
*/
|
||||
public function htmlToUTFAndPreOdf($value)
|
||||
{
|
||||
// We decode into utf8, entities
|
||||
$value=dol_html_entity_decode($value, ENT_QUOTES);
|
||||
|
||||
// We convert html tags
|
||||
$ishtml=dol_textishtml($value);
|
||||
if ($ishtml)
|
||||
{
|
||||
// If string is "MYPODUCT - Desc <strong>bold</strong> with é accent<br />\n<br />\nUn texto en español ?"
|
||||
// Result after clean must be "MYPODUCT - Desc bold with é accent\n\nUn texto en español ?"
|
||||
|
||||
// We want to ignore \n and we want all <br> to be \n
|
||||
$value=preg_replace('/(\r\n|\r|\n)/i','',$value);
|
||||
$value=preg_replace('/<br>/i',"\n",$value);
|
||||
$value=preg_replace('/<br\s+[^<>\/]*>/i',"\n",$value);
|
||||
$value=preg_replace('/<br\s+[^<>\/]*\/>/i',"\n",$value);
|
||||
|
||||
//$value=preg_replace('/<strong>/','__lt__text:p text:style-name=__quot__bold__quot____gt__',$value);
|
||||
//$value=preg_replace('/<\/strong>/','__lt__/text:p__gt__',$value);
|
||||
|
||||
$value=dol_string_nohtmltag($value, 0);
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Function to convert a HTML string into an ODT string
|
||||
*
|
||||
* @param string $value String to convert
|
||||
*/
|
||||
public function preOdfToOdf($value)
|
||||
{
|
||||
$value = str_replace("\n", "<text:line-break/>", $value);
|
||||
|
||||
//$value = str_replace("__lt__", "<", $value);
|
||||
//$value = str_replace("__gt__", ">", $value);
|
||||
//$value = str_replace("__quot__", '"', $value);
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluating php codes inside the ODT and output the buffer (print, echo) inplace of the code
|
||||
*
|
||||
@ -422,25 +478,25 @@ IMG;
|
||||
public function exportAsAttachedPDF($name="")
|
||||
{
|
||||
global $conf;
|
||||
|
||||
|
||||
if( $name == "" ) $name = md5(uniqid());
|
||||
|
||||
dol_syslog(get_class($this).'::exportAsAttachedPDF $name='.$name, LOG_DEBUG);
|
||||
$this->saveToDisk($name);
|
||||
|
||||
$execmethod=(empty($conf->global->MAIN_EXEC_USE_POPEN)?1:2); // 1 or 2
|
||||
|
||||
|
||||
$name=str_replace('.odt', '', $name);
|
||||
if (!empty($conf->global->MAIN_DOL_SCRIPTS_ROOT)) {
|
||||
$command = $conf->global->MAIN_DOL_SCRIPTS_ROOT.'/scripts/odt2pdf/odt2pdf.sh '.$name;
|
||||
}else {
|
||||
$command = '../../scripts/odt2pdf/odt2pdf.sh '.$name;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//$dirname=dirname($name);
|
||||
//$command = DOL_DOCUMENT_ROOT.'/includes/odtphp/odt2pdf.sh '.$name.' '.$dirname;
|
||||
|
||||
|
||||
dol_syslog(get_class($this).'::exportAsAttachedPDF $execmethod='.$execmethod.' Run command='.$command,LOG_DEBUG);
|
||||
if ($execmethod == 1)
|
||||
{
|
||||
@ -483,7 +539,7 @@ IMG;
|
||||
} else {
|
||||
dol_syslog(get_class($this).'::exportAsAttachedPDF $ret_val='.$retval, LOG_DEBUG);
|
||||
dol_syslog(get_class($this).'::exportAsAttachedPDF $output_arr='.var_export($output_arr,true), LOG_DEBUG);
|
||||
|
||||
|
||||
if ($retval==126) {
|
||||
throw new OdfException('Permission execute convert script : ' . $command);
|
||||
}
|
||||
|
||||
@ -141,9 +141,10 @@ HolidaysRefused=Denied holidays
|
||||
HolidaysRefusedBody=Your request for holidays for %s to %s has been denied for the following reason :
|
||||
HolidaysCanceled=Canceled holidays
|
||||
HolidaysCanceledBody=Your request for holidays for %s to %s has been canceled.
|
||||
Permission20001=Read/create/modify their holidays
|
||||
Permission20002=Read/modify all requests of holidays
|
||||
Permission20003=Delete their holidays requests
|
||||
Permission20004=Define users holidays
|
||||
Permission20000=Read you own holidays
|
||||
Permission20001=Create/modify your holidays
|
||||
Permission20002=Create/modify holidays for everybody
|
||||
Permission20003=Delete holidays requests
|
||||
Permission20004=Setup users holidays
|
||||
Permission20005=Review log of modified holidays
|
||||
Permission20006=Access holidays monthly report
|
||||
Permission20006=Read holidays monthly report
|
||||
|
||||
@ -25,14 +25,14 @@ ErrorGoBackAndCorrectParameters=العودة إلى الوراء وتصحيح ا
|
||||
ErrorWrongValueForParameter=قد تكون لديكم مطبوعة خاطئة قيمة معلمة '٪ ق.
|
||||
ErrorFailedToCreateDatabase=فشل إنشاء قاعدة بيانات '٪ ق.
|
||||
ErrorFailedToConnectToDatabase=فشل في الاتصال بقاعدة البيانات '٪ ق.
|
||||
# ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
|
||||
ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
|
||||
ErrorPHPVersionTooLow=PHP نسخة قديمة جدا. النسخة ٪ ق هو مطلوب.
|
||||
WarningPHPVersionTooLow=PHP نسخة قديمة جدا. ومن المتوقع %s نسخة أو أكثر. وينبغي أن تسمح هذه النسخة تثبيت ولكن لم يتم اعتماد.
|
||||
ErrorConnectedButDatabaseNotFound=خادم الصدد الى قاعدة البيانات ولكن النجاح في '٪ ق' لم يتم العثور عليه.
|
||||
ErrorDatabaseAlreadyExists=قاعدة البيانات '٪ ق' موجود بالفعل.
|
||||
IfDatabaseNotExistsGoBackAndUncheckCreate=إذا كان لا وجود قاعدة بيانات ، والتأكد من العودة الخيار "إنشاء قاعدة بيانات".
|
||||
IfDatabaseExistsGoBackAndCheckCreate=إذا كانت قاعدة البيانات موجود بالفعل ، من العودة وإلغاء "إنشاء قاعدة بيانات" الخيار.
|
||||
# WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
|
||||
WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
|
||||
PHPVersion=PHP الإصدار
|
||||
YouCanContinue=يمكنك الاستمرار...
|
||||
PleaseBePatient=يرجى التحلي بالصبر...
|
||||
@ -154,11 +154,10 @@ MigrationShippingDelivery2=ترقية تخزين الشحن 2
|
||||
MigrationFinished=الانتهاء من الهجرة
|
||||
LastStepDesc=<strong>الخطوة الأخيرة</strong> : تعريف المستخدم وكلمة السر هنا كنت تخطط لاستخدامها للاتصال البرمجيات. لا تفقد هذا كما هو حساب لإدارة جميع الآخرين.
|
||||
ActivateModule=تفعيل وحدة %s
|
||||
# ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
|
||||
ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
|
||||
|
||||
#########
|
||||
# upgrade
|
||||
#########
|
||||
MigrationFixData=إصلاح البيانات الذي لم تتم تسويته
|
||||
MigrationOrder=بيانات الهجرة طلبات الزبائن
|
||||
MigrationSupplierOrder=بيانات الهجرة من أجل الموردين أوامر
|
||||
@ -206,4 +205,7 @@ MigrationProjectUserResp=بيانات fk_user_resp مجال الهجرة من ll
|
||||
MigrationProjectTaskTime=تحديث الوقت الذي يقضيه في ثوان
|
||||
MigrationActioncommElement=تحديث البيانات على الإجراءات
|
||||
MigrationPaymentMode=بيانات الهجرة لطريقة الدفع
|
||||
# MigrationCategorieAssociation=Migration of categories
|
||||
MigrationCategorieAssociation=Migration of categories
|
||||
|
||||
ShowNotAvailableOptions=Show not available options
|
||||
HideNotAvailableOptions=Hide not available options
|
||||
|
||||
@ -141,9 +141,10 @@ HolidaysRefused=Denied holidays
|
||||
HolidaysRefusedBody=Your request for holidays for %s to %s has been denied for the following reason :
|
||||
HolidaysCanceled=Canceled holidays
|
||||
HolidaysCanceledBody=Your request for holidays for %s to %s has been canceled.
|
||||
Permission20001=/ Промяна на всички искания празници
|
||||
Permission20002=Read/modify all requests of holidays
|
||||
Permission20003=Delete their holidays requests
|
||||
Permission20004=Define users holidays
|
||||
Permission20000=Read you own holidays
|
||||
Permission20001=Create/modify your holidays
|
||||
Permission20002=Create/modify holidays for everybody
|
||||
Permission20003=Delete holidays requests
|
||||
Permission20004=Setup users holidays
|
||||
Permission20005=Review log of modified holidays
|
||||
Permission20006=Access holidays monthly report
|
||||
Permission20006=Read holidays monthly report
|
||||
|
||||
@ -206,3 +206,6 @@ MigrationProjectTaskTime=Актуализация на времето, прек
|
||||
MigrationActioncommElement=Актуализиране на данни за действия
|
||||
MigrationPaymentMode=Миграция на данни за плащане режим
|
||||
MigrationCategorieAssociation=Migration of categories
|
||||
|
||||
ShowNotAvailableOptions=Show not available options
|
||||
HideNotAvailableOptions=Hide not available options
|
||||
|
||||
@ -34,7 +34,6 @@ ReturnCP=Vrati se na prethodnu stranicu
|
||||
ErrorUserViewCP=Niste autorizovani da čitate ovaj zahtjev za godišnji odmor.
|
||||
InfosCP=Informacije o zahtjevu za odmor
|
||||
InfosWorkflowCP=Workflow informacija
|
||||
DateCreateCP=Datum kreiranja
|
||||
RequestByCP=Zahtjev poslao
|
||||
TitreRequestCP=Lista godišnjih odmora
|
||||
NbUseDaysCP=Broj iskorištenih dana godišnjeg odmora
|
||||
@ -130,7 +129,6 @@ ErrorMailNotSend=Desila se greška prilikom slanja emaila:
|
||||
NoCPforMonth=Nema odsustva za ovaj mjesec.
|
||||
nbJours=Broj dana
|
||||
TitleAdminCP=Konfiguracija godišnjih odmora
|
||||
|
||||
#Messages
|
||||
Hello=Zdravo
|
||||
HolidaysToValidate=Potvrdi godišnje odmore
|
||||
@ -143,10 +141,10 @@ HolidaysRefused=Odbijeni godišnji odmori
|
||||
HolidaysRefusedBody=Vaš zahtjev za godišnji odmor od %s do %s je odbijen zbog:
|
||||
HolidaysCanceled=Poništeni godišnji odmori
|
||||
HolidaysCanceledBody=Vaš zahtjev za godišnji odmor od %s fo %s je poništen.
|
||||
|
||||
Permission20001=Pročitaj/kreiraj/izmijeni njigove godišnje odmore
|
||||
Permission20002=Pročitaj/kreiraj/izmijeni sve zahtjeve za godišnje odmore
|
||||
Permission20003=Obriši njihove zahtjeve za godišnje odmore
|
||||
Permission20004=Definiši korisnikove godišnje odmore
|
||||
Permission20000=Read you own holidays
|
||||
Permission20001=Create/modify your holidays
|
||||
Permission20002=Create/modify holidays for everybody
|
||||
Permission20003=Delete holidays requests
|
||||
Permission20004=Setup users holidays
|
||||
Permission20005=Pregledaj izvještaj o izmijenjenim godišnjim odmorima
|
||||
Permission20006=Pristupi mjesečnom izvještaj za godišnje odmore
|
||||
Permission20006=Read holidays monthly report
|
||||
|
||||
@ -1,209 +1,211 @@
|
||||
# Dolibarr language file - Source file is en_US - install
|
||||
# InstallEasy=Just follow the instructions step by step.
|
||||
# MiscellaneousChecks=Prerequisites check
|
||||
# DolibarrWelcome=Welcome to Dolibarr
|
||||
# ConfFileExists=Configuration file <b>%s</b> exists.
|
||||
# ConfFileDoesNotExists=Configuration file <b>%s</b> does not exist !
|
||||
# ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created !
|
||||
# ConfFileCouldBeCreated=Configuration file <b>%s</b> could be created.
|
||||
# ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be granted to be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
|
||||
# ConfFileIsWritable=Configuration file <b>%s</b> is writable.
|
||||
# ConfFileReload=Reload all information from configuration file.
|
||||
# PHPSupportSessions=This PHP supports sessions.
|
||||
# PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
|
||||
# PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
|
||||
# PHPSupportGD=This PHP support GD graphical functions.
|
||||
# PHPSupportUTF8=This PHP support UTF8 functions.
|
||||
# PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
|
||||
# PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
|
||||
# Recheck=Click here for a more significative test
|
||||
# ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
|
||||
# ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
|
||||
# ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
|
||||
# ErrorDirDoesNotExists=Directory %s does not exist.
|
||||
# ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
|
||||
# ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
|
||||
# ErrorFailedToCreateDatabase=Failed to create database '%s'.
|
||||
# ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
|
||||
# ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
|
||||
# ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
|
||||
# WarningPHPVersionTooLow=PHP version too old. Version %s or more is expected. This version should allow install but is not supported.
|
||||
# ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
|
||||
# ErrorDatabaseAlreadyExists=Database '%s' already exists.
|
||||
# IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
|
||||
# IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
|
||||
# WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
|
||||
# PHPVersion=PHP Version
|
||||
# YouCanContinue=You can continue...
|
||||
# PleaseBePatient=Please be patient...
|
||||
# License=Using license
|
||||
# ConfigurationFile=Configuration file
|
||||
# WebPagesDirectory=Directory where web pages are stored
|
||||
# DocumentsDirectory=Directory to store uploaded and generated documents
|
||||
# URLRoot=URL Root
|
||||
# ForceHttps=Force secure connections (https)
|
||||
# CheckToForceHttps=Check this option to force secure connections (https).<br>This requires that the web server is configured with an SSL certificate.
|
||||
# DolibarrDatabase=Dolibarr Database
|
||||
# DatabaseChoice=Database choice
|
||||
# DatabaseType=Database type
|
||||
# DriverType=Driver type
|
||||
# Server=Server
|
||||
# ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
|
||||
# ServerPortDescription=Database server port. Keep empty if unknown.
|
||||
# DatabaseServer=Database server
|
||||
# DatabaseName=Database name
|
||||
# DatabasePrefix=Database prefix table
|
||||
# Login=Login
|
||||
# AdminLogin=Login for Dolibarr database owner.
|
||||
# Password=Password
|
||||
# PasswordAgain=Retype password a second time
|
||||
# AdminPassword=Password for Dolibarr database owner.
|
||||
# CreateDatabase=Create database
|
||||
# CreateUser=Create owner
|
||||
# DatabaseSuperUserAccess=Database server - Superuser access
|
||||
# CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
|
||||
# CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
|
||||
# Experimental=(experimental)
|
||||
# DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
|
||||
# KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
|
||||
# SaveConfigurationFile=Save values
|
||||
# ConfigurationSaving=Saving configuration file
|
||||
# ServerConnection=Server connection
|
||||
# DatabaseConnection=Database connection
|
||||
# DatabaseCreation=Database creation
|
||||
# UserCreation=User creation
|
||||
# CreateDatabaseObjects=Database objects creation
|
||||
# ReferenceDataLoading=Reference data loading
|
||||
# TablesAndPrimaryKeysCreation=Tables and Primary keys creation
|
||||
# CreateTableAndPrimaryKey=Create table %s
|
||||
# CreateOtherKeysForTable=Create foreign keys and indexes for table %s
|
||||
# OtherKeysCreation=Foreign keys and indexes creation
|
||||
# FunctionsCreation=Functions creation
|
||||
# AdminAccountCreation=Administrator login creation
|
||||
# PleaseTypePassword=Please type a password, empty passwords are not allowed !
|
||||
# PleaseTypeALogin=Please type a login !
|
||||
# PasswordsMismatch=Passwords differs, please try again !
|
||||
# SetupEnd=End of setup
|
||||
# SystemIsInstalled=This installation is complete.
|
||||
# SystemIsUpgraded=Dolibarr has been upgraded successfully.
|
||||
# YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (appearance, features, ...). To do this, please follow the link below:
|
||||
# AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfuly.
|
||||
# GoToDolibarr=Go to Dolibarr
|
||||
# GoToSetupArea=Go to Dolibarr (setup area)
|
||||
# MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
|
||||
# GoToUpgradePage=Go to upgrade page again
|
||||
# Examples=Examples
|
||||
# WithNoSlashAtTheEnd=Without the slash "/" at the end
|
||||
# DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
|
||||
# LoginAlreadyExists=Already exists
|
||||
# DolibarrAdminLogin=Dolibarr admin login
|
||||
# AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
|
||||
# WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
|
||||
# ThisPHPDoesNotSupportTypeBase=This PHP system does not support any interface to access database type %s
|
||||
# FunctionNotAvailableInThisPHP=Not available on this PHP
|
||||
# MigrateScript=Migration script
|
||||
# ChoosedMigrateScript=Choose migration script
|
||||
# DataMigration=Data migration
|
||||
# DatabaseMigration=Structure database migration
|
||||
# ProcessMigrateScript=Script processing
|
||||
# ChooseYourSetupMode=Choose your setup mode and click "Start"...
|
||||
# FreshInstall=Fresh install
|
||||
# FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
|
||||
# Upgrade=Upgrade
|
||||
# UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
|
||||
# Start=Start
|
||||
# InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
|
||||
# NotAvailable=Not available
|
||||
# YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
|
||||
# CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
|
||||
# AlreadyDone=Already migrated
|
||||
# DatabaseVersion=Database version
|
||||
# ServerVersion=Database server version
|
||||
# YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
|
||||
# CharsetChoice=Character set choice
|
||||
# CharacterSetClient=Character set used for generated HTML web pages
|
||||
# CharacterSetClientComment=Choose character set for web display.<br/> Default proposed character set is the one of your database.
|
||||
# DBSortingCollation=Character sorting order
|
||||
# DBSortingCollationComment=Choose page code that defines character's sorting order used by database. This parameter is also called 'collation' by some databases.<br/>This parameter can't be defined if database already exists.
|
||||
# CharacterSetDatabase=Character set for database
|
||||
# CharacterSetDatabaseComment=Choose character set wanted for database creation.<br/>This parameter can't be defined if database already exists.
|
||||
# YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
|
||||
# YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
|
||||
# BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
|
||||
# OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
|
||||
# RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
|
||||
# KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
|
||||
# KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
|
||||
# KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
|
||||
# KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
|
||||
# FieldRenamed=Field renamed
|
||||
# IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
|
||||
# ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
|
||||
# InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
|
||||
# InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
|
||||
# MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
|
||||
# CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
|
||||
# IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
|
||||
# OpenBaseDir=PHP openbasedir parameter
|
||||
# YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
|
||||
# YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
|
||||
# NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
|
||||
# MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
|
||||
# MigrationShippingDelivery=Upgrade storage of shipping
|
||||
# MigrationShippingDelivery2=Upgrade storage of shipping 2
|
||||
# MigrationFinished=Migration finished
|
||||
# LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
|
||||
# ActivateModule=Activate module %s
|
||||
# ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
|
||||
InstallEasy=Just follow the instructions step by step.
|
||||
MiscellaneousChecks=Prerequisites check
|
||||
DolibarrWelcome=Welcome to Dolibarr
|
||||
ConfFileExists=Configuration file <b>%s</b> exists.
|
||||
ConfFileDoesNotExists=Configuration file <b>%s</b> does not exist !
|
||||
ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created !
|
||||
ConfFileCouldBeCreated=Configuration file <b>%s</b> could be created.
|
||||
ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be granted to be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
|
||||
ConfFileIsWritable=Configuration file <b>%s</b> is writable.
|
||||
ConfFileReload=Reload all information from configuration file.
|
||||
PHPSupportSessions=This PHP supports sessions.
|
||||
PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
|
||||
PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
|
||||
PHPSupportGD=This PHP support GD graphical functions.
|
||||
PHPSupportUTF8=This PHP support UTF8 functions.
|
||||
PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
|
||||
PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
|
||||
Recheck=Click here for a more significative test
|
||||
ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
|
||||
ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
|
||||
ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
|
||||
ErrorDirDoesNotExists=Directory %s does not exist.
|
||||
ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
|
||||
ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
|
||||
ErrorFailedToCreateDatabase=Failed to create database '%s'.
|
||||
ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
|
||||
ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
|
||||
ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
|
||||
WarningPHPVersionTooLow=PHP version too old. Version %s or more is expected. This version should allow install but is not supported.
|
||||
ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
|
||||
ErrorDatabaseAlreadyExists=Database '%s' already exists.
|
||||
IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
|
||||
IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
|
||||
WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
|
||||
PHPVersion=PHP Version
|
||||
YouCanContinue=You can continue...
|
||||
PleaseBePatient=Please be patient...
|
||||
License=Using license
|
||||
ConfigurationFile=Configuration file
|
||||
WebPagesDirectory=Directory where web pages are stored
|
||||
DocumentsDirectory=Directory to store uploaded and generated documents
|
||||
URLRoot=URL Root
|
||||
ForceHttps=Force secure connections (https)
|
||||
CheckToForceHttps=Check this option to force secure connections (https).<br>This requires that the web server is configured with an SSL certificate.
|
||||
DolibarrDatabase=Dolibarr Database
|
||||
DatabaseChoice=Database choice
|
||||
DatabaseType=Database type
|
||||
DriverType=Driver type
|
||||
Server=Server
|
||||
ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
|
||||
ServerPortDescription=Database server port. Keep empty if unknown.
|
||||
DatabaseServer=Database server
|
||||
DatabaseName=Database name
|
||||
DatabasePrefix=Database prefix table
|
||||
Login=Login
|
||||
AdminLogin=Login for Dolibarr database owner.
|
||||
Password=Password
|
||||
PasswordAgain=Retype password a second time
|
||||
AdminPassword=Password for Dolibarr database owner.
|
||||
CreateDatabase=Create database
|
||||
CreateUser=Create owner
|
||||
DatabaseSuperUserAccess=Database server - Superuser access
|
||||
CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
|
||||
CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
|
||||
Experimental=(experimental)
|
||||
DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
|
||||
KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
|
||||
SaveConfigurationFile=Save values
|
||||
ConfigurationSaving=Saving configuration file
|
||||
ServerConnection=Server connection
|
||||
DatabaseConnection=Database connection
|
||||
DatabaseCreation=Database creation
|
||||
UserCreation=User creation
|
||||
CreateDatabaseObjects=Database objects creation
|
||||
ReferenceDataLoading=Reference data loading
|
||||
TablesAndPrimaryKeysCreation=Tables and Primary keys creation
|
||||
CreateTableAndPrimaryKey=Create table %s
|
||||
CreateOtherKeysForTable=Create foreign keys and indexes for table %s
|
||||
OtherKeysCreation=Foreign keys and indexes creation
|
||||
FunctionsCreation=Functions creation
|
||||
AdminAccountCreation=Administrator login creation
|
||||
PleaseTypePassword=Please type a password, empty passwords are not allowed !
|
||||
PleaseTypeALogin=Please type a login !
|
||||
PasswordsMismatch=Passwords differs, please try again !
|
||||
SetupEnd=End of setup
|
||||
SystemIsInstalled=This installation is complete.
|
||||
SystemIsUpgraded=Dolibarr has been upgraded successfully.
|
||||
YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (appearance, features, ...). To do this, please follow the link below:
|
||||
AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfuly.
|
||||
GoToDolibarr=Go to Dolibarr
|
||||
GoToSetupArea=Go to Dolibarr (setup area)
|
||||
MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
|
||||
GoToUpgradePage=Go to upgrade page again
|
||||
Examples=Examples
|
||||
WithNoSlashAtTheEnd=Without the slash "/" at the end
|
||||
DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
|
||||
LoginAlreadyExists=Already exists
|
||||
DolibarrAdminLogin=Dolibarr admin login
|
||||
AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
|
||||
WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
|
||||
ThisPHPDoesNotSupportTypeBase=This PHP system does not support any interface to access database type %s
|
||||
FunctionNotAvailableInThisPHP=Not available on this PHP
|
||||
MigrateScript=Migration script
|
||||
ChoosedMigrateScript=Choose migration script
|
||||
DataMigration=Data migration
|
||||
DatabaseMigration=Structure database migration
|
||||
ProcessMigrateScript=Script processing
|
||||
ChooseYourSetupMode=Choose your setup mode and click "Start"...
|
||||
FreshInstall=Fresh install
|
||||
FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
|
||||
Upgrade=Upgrade
|
||||
UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
|
||||
Start=Start
|
||||
InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
|
||||
NotAvailable=Not available
|
||||
YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
|
||||
CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
|
||||
AlreadyDone=Already migrated
|
||||
DatabaseVersion=Database version
|
||||
ServerVersion=Database server version
|
||||
YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
|
||||
CharsetChoice=Character set choice
|
||||
CharacterSetClient=Character set used for generated HTML web pages
|
||||
CharacterSetClientComment=Choose character set for web display.<br/> Default proposed character set is the one of your database.
|
||||
DBSortingCollation=Character sorting order
|
||||
DBSortingCollationComment=Choose page code that defines character's sorting order used by database. This parameter is also called 'collation' by some databases.<br/>This parameter can't be defined if database already exists.
|
||||
CharacterSetDatabase=Character set for database
|
||||
CharacterSetDatabaseComment=Choose character set wanted for database creation.<br/>This parameter can't be defined if database already exists.
|
||||
YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
|
||||
YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
|
||||
BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
|
||||
OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
|
||||
RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
|
||||
KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
|
||||
KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
|
||||
KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
|
||||
KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
|
||||
FieldRenamed=Field renamed
|
||||
IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
|
||||
ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
|
||||
InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
|
||||
InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
|
||||
MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
|
||||
CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
|
||||
IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
|
||||
OpenBaseDir=PHP openbasedir parameter
|
||||
YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
|
||||
YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
|
||||
NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
|
||||
MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
|
||||
MigrationShippingDelivery=Upgrade storage of shipping
|
||||
MigrationShippingDelivery2=Upgrade storage of shipping 2
|
||||
MigrationFinished=Migration finished
|
||||
LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
|
||||
ActivateModule=Activate module %s
|
||||
ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
|
||||
|
||||
#########
|
||||
# upgrade
|
||||
#########
|
||||
# MigrationFixData=Fix for denormalized data
|
||||
# MigrationOrder=Data migration for customer's orders
|
||||
# MigrationSupplierOrder=Data migration for supplier's orders
|
||||
# MigrationProposal=Data migration for commercial proposals
|
||||
# MigrationInvoice=Data migration for customer's invoices
|
||||
# MigrationContract=Data migration for contracts
|
||||
# MigrationSuccessfullUpdate=Upgrade successful
|
||||
# MigrationUpdateFailed=Failed upgrade process
|
||||
# MigrationRelationshipTables=Data migration for relationship tables (%s)
|
||||
# MigrationPaymentsUpdate=Payment data correction
|
||||
# MigrationPaymentsNumberToUpdate=%s payment(s) to update
|
||||
# MigrationProcessPaymentUpdate=Update payment(s) %s
|
||||
# MigrationPaymentsNothingToUpdate=No more things to do
|
||||
# MigrationPaymentsNothingUpdatable=No more payments that can be corrected
|
||||
# MigrationContractsUpdate=Contract data correction
|
||||
# MigrationContractsNumberToUpdate=%s contract(s) to update
|
||||
# MigrationContractsLineCreation=Create contract line for contract ref %s
|
||||
# MigrationContractsNothingToUpdate=No more things to do
|
||||
# MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
|
||||
# MigrationContractsEmptyDatesUpdate=Contract empty date correction
|
||||
# MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfuly
|
||||
# MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
|
||||
# MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
|
||||
# MigrationContractsInvalidDatesUpdate=Bad value date contract correction
|
||||
# MigrationContractsInvalidDateFix=Correct contract %s (Contract date=%s, Starting service date min=%s)
|
||||
# MigrationContractsInvalidDatesNumber=%s contracts modified
|
||||
# MigrationContractsInvalidDatesNothingToUpdate=No date with bad value to correct
|
||||
# MigrationContractsIncoherentCreationDateUpdate=Bad value contract creation date correction
|
||||
# MigrationContractsIncoherentCreationDateUpdateSuccess=Bad value contract creation date correction done succesfuly
|
||||
# MigrationContractsIncoherentCreationDateNothingToUpdate=No bad value for contract creation date to correct
|
||||
# MigrationReopeningContracts=Open contract closed by error
|
||||
# MigrationReopenThisContract=Reopen contract %s
|
||||
# MigrationReopenedContractsNumber=%s contracts modified
|
||||
# MigrationReopeningContractsNothingToUpdate=No closed contract to open
|
||||
# MigrationBankTransfertsUpdate=Update links between bank transaction and a bank transfer
|
||||
# MigrationBankTransfertsNothingToUpdate=All links are up to date
|
||||
# MigrationShipmentOrderMatching=Sendings receipt update
|
||||
# MigrationDeliveryOrderMatching=Delivery receipt update
|
||||
# MigrationDeliveryDetail=Delivery update
|
||||
# MigrationStockDetail=Update stock value of products
|
||||
# MigrationMenusDetail=Update dynamic menus tables
|
||||
# MigrationDeliveryAddress=Update delivery address in shipments
|
||||
# MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
|
||||
# MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
|
||||
# MigrationProjectTaskTime=Update time spent in seconds
|
||||
# MigrationActioncommElement=Update data on actions
|
||||
# MigrationPaymentMode=Data migration for payment mode
|
||||
# MigrationCategorieAssociation=Migration of categories
|
||||
MigrationFixData=Fix for denormalized data
|
||||
MigrationOrder=Data migration for customer's orders
|
||||
MigrationSupplierOrder=Data migration for supplier's orders
|
||||
MigrationProposal=Data migration for commercial proposals
|
||||
MigrationInvoice=Data migration for customer's invoices
|
||||
MigrationContract=Data migration for contracts
|
||||
MigrationSuccessfullUpdate=Upgrade successful
|
||||
MigrationUpdateFailed=Failed upgrade process
|
||||
MigrationRelationshipTables=Data migration for relationship tables (%s)
|
||||
MigrationPaymentsUpdate=Payment data correction
|
||||
MigrationPaymentsNumberToUpdate=%s payment(s) to update
|
||||
MigrationProcessPaymentUpdate=Update payment(s) %s
|
||||
MigrationPaymentsNothingToUpdate=No more things to do
|
||||
MigrationPaymentsNothingUpdatable=No more payments that can be corrected
|
||||
MigrationContractsUpdate=Contract data correction
|
||||
MigrationContractsNumberToUpdate=%s contract(s) to update
|
||||
MigrationContractsLineCreation=Create contract line for contract ref %s
|
||||
MigrationContractsNothingToUpdate=No more things to do
|
||||
MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
|
||||
MigrationContractsEmptyDatesUpdate=Contract empty date correction
|
||||
MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfuly
|
||||
MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
|
||||
MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
|
||||
MigrationContractsInvalidDatesUpdate=Bad value date contract correction
|
||||
MigrationContractsInvalidDateFix=Correct contract %s (Contract date=%s, Starting service date min=%s)
|
||||
MigrationContractsInvalidDatesNumber=%s contracts modified
|
||||
MigrationContractsInvalidDatesNothingToUpdate=No date with bad value to correct
|
||||
MigrationContractsIncoherentCreationDateUpdate=Bad value contract creation date correction
|
||||
MigrationContractsIncoherentCreationDateUpdateSuccess=Bad value contract creation date correction done succesfuly
|
||||
MigrationContractsIncoherentCreationDateNothingToUpdate=No bad value for contract creation date to correct
|
||||
MigrationReopeningContracts=Open contract closed by error
|
||||
MigrationReopenThisContract=Reopen contract %s
|
||||
MigrationReopenedContractsNumber=%s contracts modified
|
||||
MigrationReopeningContractsNothingToUpdate=No closed contract to open
|
||||
MigrationBankTransfertsUpdate=Update links between bank transaction and a bank transfer
|
||||
MigrationBankTransfertsNothingToUpdate=All links are up to date
|
||||
MigrationShipmentOrderMatching=Sendings receipt update
|
||||
MigrationDeliveryOrderMatching=Delivery receipt update
|
||||
MigrationDeliveryDetail=Delivery update
|
||||
MigrationStockDetail=Update stock value of products
|
||||
MigrationMenusDetail=Update dynamic menus tables
|
||||
MigrationDeliveryAddress=Update delivery address in shipments
|
||||
MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
|
||||
MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
|
||||
MigrationProjectTaskTime=Update time spent in seconds
|
||||
MigrationActioncommElement=Update data on actions
|
||||
MigrationPaymentMode=Data migration for payment mode
|
||||
MigrationCategorieAssociation=Migration of categories
|
||||
|
||||
ShowNotAvailableOptions=Show not available options
|
||||
HideNotAvailableOptions=Hide not available options
|
||||
|
||||
@ -34,7 +34,6 @@ ReturnCP=Tornar a la pàgina anterior
|
||||
ErrorUserViewCP=No està autoritzat a llegir aquesta petició de vacances.
|
||||
InfosCP=Informació de la petició de vacances
|
||||
InfosWorkflowCP=Informació del workflow
|
||||
DateCreateCP=Data de creació
|
||||
RequestByCP=Comandada per
|
||||
TitreRequestCP=Fitxa vacances
|
||||
NbUseDaysCP=Nombre de dies de vacances consumits
|
||||
@ -87,7 +86,7 @@ FirstDayOfHoliday=Primer dia lliure
|
||||
LastDayOfHoliday=Últim dí lliure
|
||||
HolidaysMonthlyUpdate=Actualització mensual
|
||||
ManualUpdate=Actualització manual
|
||||
# HolidaysCancelation=Holidays cancelation
|
||||
HolidaysCancelation=Holidays cancelation
|
||||
|
||||
## Configuration du Module ##
|
||||
ConfCP=Configuració del mòdul Vacacions
|
||||
@ -130,7 +129,6 @@ ErrorMailNotSend=S'ha produït un error en l'enviament del correu electrònic:
|
||||
NoCPforMonth=Sense vacances aquest mes.
|
||||
nbJours=Número de dies
|
||||
TitleAdminCP=Configuració de les vacances
|
||||
|
||||
#Messages
|
||||
Hello=Hola
|
||||
HolidaysToValidate=Dies retribuïts a validar
|
||||
@ -143,10 +141,10 @@ HolidaysRefused=Dies retribuïts denegats
|
||||
HolidaysRefusedBody=La seva sol·licitud de dies retribuïts des de %s al %s ha estat denegada pel següent motiu:
|
||||
HolidaysCanceled=Dies retribuïts cancel·lats
|
||||
HolidaysCanceledBody=La seva sol·licitud de dies retribuïts des de %s al %s ha estat cancel·lada.
|
||||
|
||||
Permission20001=Consultar/crear/modificar les seves vacances
|
||||
Permission20002=Consultar/modificar totes les sol·licituds de permisos retribuïts
|
||||
Permission20003=Eliminar les sol·licituds de permisos retribuïts
|
||||
Permission20004=Definir els permisos retribuïts dels usuaris
|
||||
Permission20000=Read you own holidays
|
||||
Permission20001=Create/modify your holidays
|
||||
Permission20002=Create/modify holidays for everybody
|
||||
Permission20003=Delete holidays requests
|
||||
Permission20004=Setup users holidays
|
||||
Permission20005=Consultar l'historial de modificacions de permisos retribuïts
|
||||
Permission20006=Accedir a l'informe mensual de permisos retribuïts
|
||||
Permission20006=Read holidays monthly report
|
||||
|
||||
@ -158,7 +158,6 @@ ShowEditTechnicalParameters=Premi aquí per veure/editar els paràmetres tècnic
|
||||
|
||||
#########
|
||||
# upgrade
|
||||
#########
|
||||
MigrationFixData=Correcció de dades desnormalitzades
|
||||
MigrationOrder=Migració de dades de les comandes clients
|
||||
MigrationSupplierOrder=Migració de dades de les comandes a proveïdors
|
||||
@ -207,3 +206,6 @@ MigrationProjectTaskTime=Actualització de temps dedicat en segons
|
||||
MigrationActioncommElement=Actualització de les dades de accions sobre elements
|
||||
MigrationPaymentMode=Actualització de les formes de pagament
|
||||
MigrationCategorieAssociation=Actualització de les categories
|
||||
|
||||
ShowNotAvailableOptions=Show not available options
|
||||
HideNotAvailableOptions=Hide not available options
|
||||
|
||||
@ -34,7 +34,6 @@ ReturnCP=Zpět na předchozí stránku
|
||||
ErrorUserViewCP=Nejste oprávněn číst toto žádosti o dovolenou.
|
||||
InfosCP=Informace o poptávce po prázdninách
|
||||
InfosWorkflowCP=Informace Workflow
|
||||
DateCreateCP=Datum vytvoření
|
||||
RequestByCP=Žádost
|
||||
TitreRequestCP=List dovolenou
|
||||
NbUseDaysCP=Počet dní dovolené spotřebovaných
|
||||
@ -130,7 +129,6 @@ ErrorMailNotSend=Došlo k chybě při odesílání e-mail:
|
||||
NoCPforMonth=Ne opustit tento měsíc.
|
||||
nbJours=Počet dní
|
||||
TitleAdminCP=Konfigurace svátky
|
||||
|
||||
#Messages
|
||||
Hello=Ahoj
|
||||
HolidaysToValidate=Ověřit dovolenou
|
||||
@ -143,10 +141,10 @@ HolidaysRefused=Odepření prázdniny
|
||||
HolidaysRefusedBody=Vaše žádost o dovolenou pro %s na %s byl zamítnut z těchto důvodů:
|
||||
HolidaysCanceled=Zrušené svátky
|
||||
HolidaysCanceledBody=Vaše žádost o dovolenou pro %s na %s byla zrušena.
|
||||
|
||||
Permission20001=Čtení / zápis / přepis jejich svátky
|
||||
Permission20002=Přečtěte si / upravit všechny žádosti dovolenou
|
||||
Permission20003=Odstranit svou dovolenou žádosti
|
||||
Permission20004=Definujte uživatelům dovolenou
|
||||
Permission20000=Read you own holidays
|
||||
Permission20001=Create/modify your holidays
|
||||
Permission20002=Create/modify holidays for everybody
|
||||
Permission20003=Delete holidays requests
|
||||
Permission20004=Setup users holidays
|
||||
Permission20005=Recenze protokol modifikovaných dovolenou
|
||||
Permission20006=Přístup dovolená měsíční zprávu
|
||||
Permission20006=Read holidays monthly report
|
||||
|
||||
@ -206,3 +206,6 @@ MigrationProjectTaskTime=Čas aktualizace v sekundách
|
||||
MigrationActioncommElement=Aktualizovat údaje na činnostech
|
||||
MigrationPaymentMode=Migrace dat platebního režimu
|
||||
MigrationCategorieAssociation=Migrace kategorií
|
||||
|
||||
ShowNotAvailableOptions=Show not available options
|
||||
HideNotAvailableOptions=Hide not available options
|
||||
|
||||
@ -1,152 +1,150 @@
|
||||
# Dolibarr language file - Source file is en_US - holiday
|
||||
# HRM=HRM
|
||||
# Holidays=Holidays
|
||||
# CPTitreMenu=Holidays
|
||||
# MenuReportMonth=Monthly statement
|
||||
# MenuAddCP=Apply for holidays
|
||||
# NotActiveModCP=You must enable the module holidays to view this page.
|
||||
# NotConfigModCP=You must configure the module holidays to view this page. To do this, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> click here </ a>.
|
||||
# NoCPforUser=You don't have a demand for holidays.
|
||||
# AddCP=Apply for holidays
|
||||
# CPErrorSQL=An SQL error occurred:
|
||||
# Employe=Employee
|
||||
HRM=HRM
|
||||
Holidays=Holidays
|
||||
CPTitreMenu=Holidays
|
||||
MenuReportMonth=Monthly statement
|
||||
MenuAddCP=Apply for holidays
|
||||
NotActiveModCP=You must enable the module holidays to view this page.
|
||||
NotConfigModCP=You must configure the module holidays to view this page. To do this, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> click here </ a>.
|
||||
NoCPforUser=You don't have a demand for holidays.
|
||||
AddCP=Apply for holidays
|
||||
CPErrorSQL=An SQL error occurred:
|
||||
Employe=Employee
|
||||
DateDebCP=Startdato
|
||||
DateFinCP=Slutdato
|
||||
DateCreateCP=Lavet dato
|
||||
DraftCP=Udkast til
|
||||
# ToReviewCP=Awaiting approval
|
||||
ToReviewCP=Awaiting approval
|
||||
ApprovedCP=Godkendt
|
||||
CancelCP=Aflyst
|
||||
RefuseCP=Afviste
|
||||
# ValidatorCP=Approbator
|
||||
# ListeCP=List of holidays
|
||||
# ReviewedByCP=Will be reviewed by
|
||||
ValidatorCP=Approbator
|
||||
ListeCP=List of holidays
|
||||
ReviewedByCP=Will be reviewed by
|
||||
DescCP=Beskrivelse
|
||||
# SendRequestCP=Creating demand for holidays
|
||||
# DelayToRequestCP=Applications for holidays must be made at least <b>%s day(s)</b> before them.
|
||||
# MenuConfCP=Edit balance of holidays
|
||||
# UpdateAllCP=Update the holidays
|
||||
# SoldeCPUser=Holidays balance is <b>%s</b> days.
|
||||
# ErrorEndDateCP=You must select an end date greater than the start date.
|
||||
# ErrorSQLCreateCP=An SQL error occurred during the creation:
|
||||
# ErrorIDFicheCP=An error has occurred, the request for holidays does not exist.
|
||||
# ReturnCP=Return to previous page
|
||||
# ErrorUserViewCP=You are not authorized to read this request for holidays.
|
||||
# InfosCP=Information of the demand of holidays
|
||||
# InfosWorkflowCP=Information Workflow
|
||||
DateCreateCP=Lavet dato
|
||||
# RequestByCP=Requested by
|
||||
# TitreRequestCP=Sheet of holidays
|
||||
# NbUseDaysCP=Number of days of holidays consumed
|
||||
SendRequestCP=Creating demand for holidays
|
||||
DelayToRequestCP=Applications for holidays must be made at least <b>%s day(s)</b> before them.
|
||||
MenuConfCP=Edit balance of holidays
|
||||
UpdateAllCP=Update the holidays
|
||||
SoldeCPUser=Holidays balance is <b>%s</b> days.
|
||||
ErrorEndDateCP=You must select an end date greater than the start date.
|
||||
ErrorSQLCreateCP=An SQL error occurred during the creation:
|
||||
ErrorIDFicheCP=An error has occurred, the request for holidays does not exist.
|
||||
ReturnCP=Return to previous page
|
||||
ErrorUserViewCP=You are not authorized to read this request for holidays.
|
||||
InfosCP=Information of the demand of holidays
|
||||
InfosWorkflowCP=Information Workflow
|
||||
RequestByCP=Requested by
|
||||
TitreRequestCP=Sheet of holidays
|
||||
NbUseDaysCP=Number of days of holidays consumed
|
||||
EditCP=Redigér
|
||||
DeleteCP=Slet
|
||||
ActionValidCP=Validate
|
||||
# ActionRefuseCP=Refuse
|
||||
ActionRefuseCP=Refuse
|
||||
ActionCancelCP=Annuller
|
||||
StatutCP=Status
|
||||
# SendToValidationCP=Send to validation
|
||||
# TitleDeleteCP=Delete the request of holidays
|
||||
# ConfirmDeleteCP=Confirm the deletion of this request for holidays?
|
||||
# ErrorCantDeleteCP=Error you don't have the right to delete this holiday request.
|
||||
# CantCreateCP=You don't have the right to apply for holidays.
|
||||
# InvalidValidatorCP=You must choose an approbator to your holiday request.
|
||||
SendToValidationCP=Send to validation
|
||||
TitleDeleteCP=Delete the request of holidays
|
||||
ConfirmDeleteCP=Confirm the deletion of this request for holidays?
|
||||
ErrorCantDeleteCP=Error you don't have the right to delete this holiday request.
|
||||
CantCreateCP=You don't have the right to apply for holidays.
|
||||
InvalidValidatorCP=You must choose an approbator to your holiday request.
|
||||
UpdateButtonCP=Opdatering
|
||||
# CantUpdate=You cannot update this request of holidays.
|
||||
# NoDateDebut=You must select a start date.
|
||||
# NoDateFin=You must select an end date.
|
||||
# ErrorDureeCP=Your request for holidays does not contain working day.
|
||||
# TitleValidCP=Approve the request holidays
|
||||
# ConfirmValidCP=Are you sure you want to approve the holiday request?
|
||||
# DateValidCP=Date approved
|
||||
# TitleToValidCP=Send request holidays
|
||||
# ConfirmToValidCP=Are you sure you want to send the request of holidays?
|
||||
# TitleRefuseCP=Refuse the request holidays
|
||||
# ConfirmRefuseCP=Are you sure you want to refuse the request of holidays?
|
||||
# NoMotifRefuseCP=You must choose a reason for refusing the request.
|
||||
# TitleCancelCP=Cancel the request holidays
|
||||
# ConfirmCancelCP=Are you sure you want to cancel the request of holidays?
|
||||
# DetailRefusCP=Reason for refusal
|
||||
# DateRefusCP=Date of refusal
|
||||
# DateCancelCP=Date of cancellation
|
||||
# DefineEventUserCP=Assign an exceptional leave for a user
|
||||
# addEventToUserCP=Assign leave
|
||||
CantUpdate=You cannot update this request of holidays.
|
||||
NoDateDebut=You must select a start date.
|
||||
NoDateFin=You must select an end date.
|
||||
ErrorDureeCP=Your request for holidays does not contain working day.
|
||||
TitleValidCP=Approve the request holidays
|
||||
ConfirmValidCP=Are you sure you want to approve the holiday request?
|
||||
DateValidCP=Date approved
|
||||
TitleToValidCP=Send request holidays
|
||||
ConfirmToValidCP=Are you sure you want to send the request of holidays?
|
||||
TitleRefuseCP=Refuse the request holidays
|
||||
ConfirmRefuseCP=Are you sure you want to refuse the request of holidays?
|
||||
NoMotifRefuseCP=You must choose a reason for refusing the request.
|
||||
TitleCancelCP=Cancel the request holidays
|
||||
ConfirmCancelCP=Are you sure you want to cancel the request of holidays?
|
||||
DetailRefusCP=Reason for refusal
|
||||
DateRefusCP=Date of refusal
|
||||
DateCancelCP=Date of cancellation
|
||||
DefineEventUserCP=Assign an exceptional leave for a user
|
||||
addEventToUserCP=Assign leave
|
||||
MotifCP=Årsag
|
||||
UserCP=Bruger
|
||||
# ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
|
||||
# AddEventToUserOkCP=The addition of the exceptional leave has been completed.
|
||||
# MenuLogCP=View logs of holidays
|
||||
# LogCP=Log of updates of holidays
|
||||
# ActionByCP=Performed by
|
||||
# UserUpdateCP=For the user
|
||||
# PrevSoldeCP=Previous Balance
|
||||
# NewSoldeCP=New Balance
|
||||
# alreadyCPexist=A request for holidays has already been done on this period.
|
||||
ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
|
||||
AddEventToUserOkCP=The addition of the exceptional leave has been completed.
|
||||
MenuLogCP=View logs of holidays
|
||||
LogCP=Log of updates of holidays
|
||||
ActionByCP=Performed by
|
||||
UserUpdateCP=For the user
|
||||
PrevSoldeCP=Previous Balance
|
||||
NewSoldeCP=New Balance
|
||||
alreadyCPexist=A request for holidays has already been done on this period.
|
||||
UserName=Navn
|
||||
# Employee=Employee
|
||||
# FirstDayOfHoliday=First day of holiday
|
||||
# LastDayOfHoliday=Last day of holiday
|
||||
# HolidaysMonthlyUpdate=Monthly update
|
||||
# ManualUpdate=Manual update
|
||||
# HolidaysCancelation=Holidays cancelation
|
||||
Employee=Employee
|
||||
FirstDayOfHoliday=First day of holiday
|
||||
LastDayOfHoliday=Last day of holiday
|
||||
HolidaysMonthlyUpdate=Monthly update
|
||||
ManualUpdate=Manual update
|
||||
HolidaysCancelation=Holidays cancelation
|
||||
|
||||
## Configuration du Module ##
|
||||
# ConfCP=Configuration of holidays module
|
||||
# DescOptionCP=Description of the option
|
||||
ConfCP=Configuration of holidays module
|
||||
DescOptionCP=Description of the option
|
||||
ValueOptionCP=Værdi
|
||||
# GroupToValidateCP=Group with the ability to approve holidays
|
||||
# ConfirmConfigCP=Validate the configuration
|
||||
# LastUpdateCP=Last updated automatically of holidays
|
||||
# UpdateConfCPOK=Updated successfully.
|
||||
# ErrorUpdateConfCP=An error occurred during the update, please try again.
|
||||
# AddCPforUsers=Please add the balance of holidays of users by <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">clicking here</a>.
|
||||
# DelayForSubmitCP=Deadline to apply for holidays
|
||||
# AlertapprobatortorDelayCP=Prevent the approbator if the holiday request does not match the deadline
|
||||
# AlertValidatorDelayCP=Préevent the approbator if the holiday request exceed delay
|
||||
# AlertValidorSoldeCP=Prevent the approbator if the holiday request exceed the balance
|
||||
# nbUserCP=Number of users supported in the module holidays
|
||||
# nbHolidayDeductedCP=Number of holidays to be deducted per day of holiday taken
|
||||
# nbHolidayEveryMonthCP=Number of holidays added every month
|
||||
# Module27130Name= Management of holidays
|
||||
# Module27130Desc= Management of holidays
|
||||
# TitleOptionMainCP=Main settings of holidays
|
||||
# TitleOptionEventCP=Settings of holidays related to events
|
||||
GroupToValidateCP=Group with the ability to approve holidays
|
||||
ConfirmConfigCP=Validate the configuration
|
||||
LastUpdateCP=Last updated automatically of holidays
|
||||
UpdateConfCPOK=Updated successfully.
|
||||
ErrorUpdateConfCP=An error occurred during the update, please try again.
|
||||
AddCPforUsers=Please add the balance of holidays of users by <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">clicking here</a>.
|
||||
DelayForSubmitCP=Deadline to apply for holidays
|
||||
AlertapprobatortorDelayCP=Prevent the approbator if the holiday request does not match the deadline
|
||||
AlertValidatorDelayCP=Préevent the approbator if the holiday request exceed delay
|
||||
AlertValidorSoldeCP=Prevent the approbator if the holiday request exceed the balance
|
||||
nbUserCP=Number of users supported in the module holidays
|
||||
nbHolidayDeductedCP=Number of holidays to be deducted per day of holiday taken
|
||||
nbHolidayEveryMonthCP=Number of holidays added every month
|
||||
Module27130Name= Management of holidays
|
||||
Module27130Desc= Management of holidays
|
||||
TitleOptionMainCP=Main settings of holidays
|
||||
TitleOptionEventCP=Settings of holidays related to events
|
||||
ValidEventCP=Validate
|
||||
# UpdateEventCP=Update events
|
||||
UpdateEventCP=Update events
|
||||
CreateEventCP=Opret
|
||||
# NameEventCP=Event name
|
||||
# OkCreateEventCP=The addition of the event went well.
|
||||
# ErrorCreateEventCP=Error creating the event.
|
||||
# UpdateEventOkCP=The update of the event went well.
|
||||
# ErrorUpdateEventCP=Error while updating the event.
|
||||
# DeleteEventCP=Delete Event
|
||||
# DeleteEventOkCP=The event has been deleted.
|
||||
# ErrorDeleteEventCP=Error while deleting the event.
|
||||
# TitleDeleteEventCP=Delete a exceptional leave
|
||||
# TitleCreateEventCP=Create a exceptional leave
|
||||
# TitleUpdateEventCP=Edit or delete a exceptional leave
|
||||
NameEventCP=Event name
|
||||
OkCreateEventCP=The addition of the event went well.
|
||||
ErrorCreateEventCP=Error creating the event.
|
||||
UpdateEventOkCP=The update of the event went well.
|
||||
ErrorUpdateEventCP=Error while updating the event.
|
||||
DeleteEventCP=Delete Event
|
||||
DeleteEventOkCP=The event has been deleted.
|
||||
ErrorDeleteEventCP=Error while deleting the event.
|
||||
TitleDeleteEventCP=Delete a exceptional leave
|
||||
TitleCreateEventCP=Create a exceptional leave
|
||||
TitleUpdateEventCP=Edit or delete a exceptional leave
|
||||
DeleteEventOptionCP=Slet
|
||||
UpdateEventOptionCP=Opdatering
|
||||
# ErrorMailNotSend=An error occurred while sending email:
|
||||
# NoCPforMonth=No leave this month.
|
||||
# nbJours=Number days
|
||||
# TitleAdminCP=Configuration of Holidays
|
||||
|
||||
ErrorMailNotSend=An error occurred while sending email:
|
||||
NoCPforMonth=No leave this month.
|
||||
nbJours=Number days
|
||||
TitleAdminCP=Configuration of Holidays
|
||||
#Messages
|
||||
# Hello=Hello
|
||||
# HolidaysToValidate=Validate holidays
|
||||
# HolidaysToValidateBody=Below is a request for holidays to validate
|
||||
# HolidaysToValidateDelay=This request for holidays will take place within a period of less than %s days.
|
||||
# HolidaysToValidateAlertSolde=The user who made this request for holidays do not have enough available days.
|
||||
# HolidaysValidated=Validated holidays
|
||||
# HolidaysValidatedBody=Your request for holidays for %s to %s has been validated.
|
||||
# HolidaysRefused=Denied holidays
|
||||
# HolidaysRefusedBody=Your request for holidays for %s to %s has been denied for the following reason :
|
||||
# HolidaysCanceled=Canceled holidays
|
||||
# HolidaysCanceledBody=Your request for holidays for %s to %s has been canceled.
|
||||
|
||||
# Permission20001=Read/create/modify their holidays
|
||||
# Permission20002=Read/modify all requests of holidays
|
||||
# Permission20003=Delete their holidays requests
|
||||
# Permission20004=Define users holidays
|
||||
# Permission20005=Review log of modified holidays
|
||||
# Permission20006=Access holidays monthly report
|
||||
Hello=Hello
|
||||
HolidaysToValidate=Validate holidays
|
||||
HolidaysToValidateBody=Below is a request for holidays to validate
|
||||
HolidaysToValidateDelay=This request for holidays will take place within a period of less than %s days.
|
||||
HolidaysToValidateAlertSolde=The user who made this request for holidays do not have enough available days.
|
||||
HolidaysValidated=Validated holidays
|
||||
HolidaysValidatedBody=Your request for holidays for %s to %s has been validated.
|
||||
HolidaysRefused=Denied holidays
|
||||
HolidaysRefusedBody=Your request for holidays for %s to %s has been denied for the following reason :
|
||||
HolidaysCanceled=Canceled holidays
|
||||
HolidaysCanceledBody=Your request for holidays for %s to %s has been canceled.
|
||||
Permission20000=Read you own holidays
|
||||
Permission20001=Create/modify your holidays
|
||||
Permission20002=Create/modify holidays for everybody
|
||||
Permission20003=Delete holidays requests
|
||||
Permission20004=Setup users holidays
|
||||
Permission20005=Review log of modified holidays
|
||||
Permission20006=Read holidays monthly report
|
||||
|
||||
@ -25,14 +25,14 @@ ErrorGoBackAndCorrectParameters=Gå tilbage og rette forkerte parametre.
|
||||
ErrorWrongValueForParameter=Du kan have indtastet en forkert værdi for parameter ' %s'.
|
||||
ErrorFailedToCreateDatabase=Kunne ikke oprette databasen ' %s'.
|
||||
ErrorFailedToConnectToDatabase=Det lykkedes ikke at oprette forbindelse til databasen ' %s'.
|
||||
# ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
|
||||
ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
|
||||
ErrorPHPVersionTooLow=PHP version for gammel. Version %s er påkrævet.
|
||||
WarningPHPVersionTooLow=PHP version for gammel. Version %s eller mere er forventet. Denne version skulle gøre det muligt installere, men er ikke understøttet.
|
||||
ErrorConnectedButDatabaseNotFound=Forbindelsen til serveren vellykket men database ' %s' blev ikke fundet.
|
||||
ErrorDatabaseAlreadyExists=Database ' %s' eksisterer allerede.
|
||||
IfDatabaseNotExistsGoBackAndUncheckCreate=Hvis databasen ikke findes, gå tilbage og tjekke valgmulighed "Opret database".
|
||||
IfDatabaseExistsGoBackAndCheckCreate=Hvis database findes allerede, gå tilbage og fjerne markeringen "Opret database" valgmulighed.
|
||||
# WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
|
||||
WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
|
||||
PHPVersion=PHP Version
|
||||
YouCanContinue=Du kan fortsætte ...
|
||||
PleaseBePatient=Vær tålmodig ...
|
||||
@ -154,11 +154,10 @@ MigrationShippingDelivery2=Opgrader opbevaring af shipping 2
|
||||
MigrationFinished=Migration er færdig
|
||||
LastStepDesc=<strong>Sidste trin:</strong> Definer her login og adgangskode, du planlægger at bruge til at oprette forbindelse til software. Må ikke løse dette, da det er den konto, at administrere alle andre.
|
||||
ActivateModule=Aktiver modul %s
|
||||
# ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
|
||||
ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
|
||||
|
||||
#########
|
||||
# upgrade
|
||||
#########
|
||||
MigrationFixData=Fix for denormalized data
|
||||
MigrationOrder=Data migration for kundernes ordrer
|
||||
MigrationSupplierOrder=Data migration for leverandører ordrer
|
||||
@ -206,4 +205,7 @@ MigrationProjectUserResp=Data migration inden fk_user_resp af llx_projet til llx
|
||||
MigrationProjectTaskTime=Update tid i sekunder
|
||||
MigrationActioncommElement=Opdatere data om tiltag
|
||||
MigrationPaymentMode=Data migration for betaling mode
|
||||
# MigrationCategorieAssociation=Migration of categories
|
||||
MigrationCategorieAssociation=Migration of categories
|
||||
|
||||
ShowNotAvailableOptions=Show not available options
|
||||
HideNotAvailableOptions=Hide not available options
|
||||
|
||||
@ -50,10 +50,10 @@ ErrorCodeCantContainZero=Code darf keinen Wert 0 enthalten
|
||||
DisableJavascript=JavaScript- und Ajax-Funktionen deaktivieren
|
||||
ConfirmAjax=Ajax-Bestätigungs-Popups verwenden
|
||||
UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
|
||||
UseSearchToSelectCompany=Use autocompletion fields to choose third parties instead of using a list box.
|
||||
UseSearchToSelectCompany=Suchfeld statt Listenansicht für Partnerauswahl verwenden.
|
||||
ActivityStateToSelectCompany= Setzt einen Filter um Partner ein-/ausblenden, welche aktiv oder inaktiv sind.
|
||||
UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
|
||||
UseSearchToSelectContact=Use autocompletion fields to choose contact (instead of using a list box).
|
||||
UseSearchToSelectContact=Suchfeld statt Listenansicht für Kontaktauswahl verwenden.
|
||||
SearchFilter=Suchfilter Optionen
|
||||
NumberOfKeyToSearch=Anzahl der Buchstaben um eine Suche auszulösen: %s
|
||||
ViewFullDateActions=Zeige alle Terminaktionen in der Partneransicht
|
||||
@ -1014,7 +1014,7 @@ YouMustEnableOneModule=Sie müssen mindestens 1 Modul aktivieren
|
||||
ClassNotFoundIntoPathWarning=Klasse %s nicht innerhalb PHP-Pfad gefunden
|
||||
YesInSummer=Ja im Sommer
|
||||
OnlyFollowingModulesAreOpenedToExternalUsers=Bitte beachten: nur die folgenden Module sind für externe Nutzer verfügbar (unabhängig von deren Rechten):
|
||||
SuhosinSessionEncrypt=Session storage encrypted by Suhosin
|
||||
SuhosinSessionEncrypt=Sitzungsspeicher durch Suhosin verschlüsselt
|
||||
ConditionIsCurrently=Einstellung ist aktuell %s
|
||||
TestNotPossibleWithCurrentBrowsers=Automatische Erkennung nicht möglich
|
||||
YouUseBestDriver=Sie verwenden den Treiber %s, dies ist derzeit der beste verfügbare.
|
||||
@ -1310,7 +1310,7 @@ ModifyProductDescAbility=Produktbeschreibungen in Formularen individuell anpassb
|
||||
ViewProductDescInFormAbility=Anzeige dr Produktbeschreibungen in Formularen (andernfalls als Popup-Tooltip)
|
||||
ViewProductDescInThirdpartyLanguageAbility=Visualisierung von Produkten Beschreibungen in der Sprache thirdparty
|
||||
UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
|
||||
UseSearchToSelectProduct=Use a search form to choose a product (rather than a drop-down list).
|
||||
UseSearchToSelectProduct=Suchfeld statt Listenansicht für die Produktauswahl verwenden.
|
||||
UseEcoTaxeAbility=Umweltabgaben unterstüzten
|
||||
SetDefaultBarcodeTypeProducts=Standard-Barcode-Typ für Produkte
|
||||
SetDefaultBarcodeTypeThirdParties=Standard-Barcode-Typ für Partner
|
||||
@ -1492,7 +1492,7 @@ TestGeoIPResult=Test einer Umwandlung IP -> Land
|
||||
ProjectsNumberingModules=Projektnumerierungsmodul
|
||||
ProjectsSetup=Projekteinstellungenmodul
|
||||
ProjectsModelModule=Projektvorlagenmodul
|
||||
TasksNumberingModules=Tasks numbering module
|
||||
TasksNumberingModules=Aufgaben-Nummerierungs-Modul
|
||||
TaskModelModule=Tasks reports document model
|
||||
##### ECM (GED) #####
|
||||
ECMSetup = GED Setup
|
||||
|
||||
@ -6,7 +6,7 @@ MenuReportMonth=Monatsauszug
|
||||
MenuAddCP=Ferienantrag
|
||||
NotActiveModCP=Sie müssen das Ferien-Modul aktivieren um diese Seite zu sehen.
|
||||
NotConfigModCP=Sie müssen das Ferien-Modul konfigurieren um diese Seite zu sehen. Dazu <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> klicken Sie hier </ a>.
|
||||
# NoCPforUser=You don't have a demand for holidays.
|
||||
NoCPforUser=You don't have a demand for holidays.
|
||||
AddCP=Ferienantrag
|
||||
CPErrorSQL=Ein SQL Fehler ist aufgetreten:
|
||||
Employe=Angestellter
|
||||
@ -18,13 +18,13 @@ ToReviewCP=Wartet auf Genehmigung
|
||||
ApprovedCP=Genehmigt
|
||||
CancelCP=Storno
|
||||
RefuseCP=Abgelehnt
|
||||
# ValidatorCP=Approbator
|
||||
ValidatorCP=Approbator
|
||||
ListeCP=Ferienliste
|
||||
# ReviewedByCP=Will be reviewed by
|
||||
ReviewedByCP=Will be reviewed by
|
||||
DescCP=Beschreibung
|
||||
# SendRequestCP=Creating demand for holidays
|
||||
SendRequestCP=Creating demand for holidays
|
||||
DelayToRequestCP=Anträge für Ferien müssen mindestens <b>%s Tage</b> im voraus gestellt werden.
|
||||
# MenuConfCP=Edit balance of holidays
|
||||
MenuConfCP=Edit balance of holidays
|
||||
UpdateAllCP=Ferien aktualisieren
|
||||
SoldeCPUser=Feriensaldo ist <b>%s</b> Tage.
|
||||
ErrorEndDateCP=Sie müssen ein End-Datum wählen, dass nach dem Start-Datum liegt.
|
||||
@ -32,11 +32,10 @@ ErrorSQLCreateCP=Ein SQL Fehler trat auf bei der Eerstellung von:
|
||||
ErrorIDFicheCP=Ein Fehler trat auf, der Antrag auf Ferien existiert nicht.
|
||||
ReturnCP=Zurück zur vorherigen Seite
|
||||
ErrorUserViewCP=Sie sind nicht berechtigt diese Ferien-Anträge zu lesen.
|
||||
# InfosCP=Information of the demand of holidays
|
||||
# InfosWorkflowCP=Information Workflow
|
||||
DateCreateCP=Erstellungsdatum
|
||||
InfosCP=Information of the demand of holidays
|
||||
InfosWorkflowCP=Information Workflow
|
||||
RequestByCP=Beantragt von
|
||||
# TitreRequestCP=Sheet of holidays
|
||||
TitreRequestCP=Sheet of holidays
|
||||
NbUseDaysCP=Anzahl Ferientage bezogen
|
||||
EditCP=Bearbeiten
|
||||
DeleteCP=Lösche Gruppe
|
||||
@ -49,15 +48,15 @@ TitleDeleteCP=Antrag auf Ferien löschen
|
||||
ConfirmDeleteCP=Löschung dieses Ferienantrags bestätigen?
|
||||
ErrorCantDeleteCP=Fehler, Sie haben nicht die Berechtigung diesen Ferien-Antrag zu löschen.
|
||||
CantCreateCP=Sie haben nicht die Berechtigung Ferien zu beantragen.
|
||||
# InvalidValidatorCP=You must choose an approbator to your holiday request.
|
||||
InvalidValidatorCP=You must choose an approbator to your holiday request.
|
||||
UpdateButtonCP=Aktualisieren
|
||||
# CantUpdate=You cannot update this request of holidays.
|
||||
CantUpdate=You cannot update this request of holidays.
|
||||
NoDateDebut=Sie müssen ein Startdatum wählen.
|
||||
NoDateFin=Sie müssen ein Enddatum wählen.
|
||||
ErrorDureeCP=Ihr Antrag auf Ferien enthält keine Werktage.
|
||||
# TitleValidCP=Approve the request holidays
|
||||
TitleValidCP=Approve the request holidays
|
||||
ConfirmValidCP=Möchten Sie diesen Ferienantrag wirklich genehmigen?
|
||||
# DateValidCP=Date approved
|
||||
DateValidCP=Date approved
|
||||
TitleToValidCP=Ferienantrag senden
|
||||
ConfirmToValidCP=Möchten Sie diesen Ferienantrag wirklich senden?
|
||||
TitleRefuseCP=Ferienantrag ablehnen
|
||||
@ -67,14 +66,14 @@ TitleCancelCP=Ferienantrag abbrechen
|
||||
ConfirmCancelCP=Möchten Sie diesen Ferienantrag wirklich abbrechen?
|
||||
DetailRefusCP=Ablehnungsgrund
|
||||
DateRefusCP=Datum der Ablehnung
|
||||
# DateCancelCP=Date of cancellation
|
||||
# DefineEventUserCP=Assign an exceptional leave for a user
|
||||
# addEventToUserCP=Assign leave
|
||||
DateCancelCP=Date of cancellation
|
||||
DefineEventUserCP=Assign an exceptional leave for a user
|
||||
addEventToUserCP=Assign leave
|
||||
MotifCP=Grund
|
||||
UserCP=Benutzer
|
||||
# ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
|
||||
# AddEventToUserOkCP=The addition of the exceptional leave has been completed.
|
||||
# MenuLogCP=View logs of holidays
|
||||
ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
|
||||
AddEventToUserOkCP=The addition of the exceptional leave has been completed.
|
||||
MenuLogCP=View logs of holidays
|
||||
LogCP=Liste von neuen Ferieneinträgen
|
||||
ActionByCP=Ausgeführt von
|
||||
UserUpdateCP=Für den Benutzer
|
||||
@ -87,7 +86,7 @@ FirstDayOfHoliday=Erster Ferientag
|
||||
LastDayOfHoliday=Letzter Ferientag
|
||||
HolidaysMonthlyUpdate=Monatliches Update
|
||||
ManualUpdate=Manuelles Update
|
||||
# HolidaysCancelation=Holidays cancelation
|
||||
HolidaysCancelation=Holidays cancelation
|
||||
|
||||
## Configuration du Module ##
|
||||
ConfCP=Konfiguration des Ferienmoduls
|
||||
@ -95,58 +94,57 @@ DescOptionCP=Beschreibung der Wahlmöglichkeit
|
||||
ValueOptionCP=Warenwert
|
||||
GroupToValidateCP=Gruppe mit der Fähigkeit Ferien zu bewilligen
|
||||
ConfirmConfigCP=Konfiguration bestätigen
|
||||
# LastUpdateCP=Last updated automatically of holidays
|
||||
LastUpdateCP=Last updated automatically of holidays
|
||||
UpdateConfCPOK=Erfolgreich bearbeitet.
|
||||
ErrorUpdateConfCP=Ein Fehler trat beim Bearbeiten auf, bitte nochmals versuchen.
|
||||
# AddCPforUsers=Please add the balance of holidays of users by <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">clicking here</a>.
|
||||
AddCPforUsers=Please add the balance of holidays of users by <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">clicking here</a>.
|
||||
DelayForSubmitCP=Letzter Termin für Ferienanträge
|
||||
# AlertapprobatortorDelayCP=Prevent the approbator if the holiday request does not match the deadline
|
||||
# AlertValidatorDelayCP=Préevent the approbator if the holiday request exceed delay
|
||||
# AlertValidorSoldeCP=Prevent the approbator if the holiday request exceed the balance
|
||||
AlertapprobatortorDelayCP=Prevent the approbator if the holiday request does not match the deadline
|
||||
AlertValidatorDelayCP=Préevent the approbator if the holiday request exceed delay
|
||||
AlertValidorSoldeCP=Prevent the approbator if the holiday request exceed the balance
|
||||
nbUserCP=Anzahl unterstützte Benutzer im Ferienmodul
|
||||
# nbHolidayDeductedCP=Number of holidays to be deducted per day of holiday taken
|
||||
nbHolidayDeductedCP=Number of holidays to be deducted per day of holiday taken
|
||||
nbHolidayEveryMonthCP=Anzahl hinzugefügter Ferientage pro Monat
|
||||
Module27130Name= Verwaltung der Ferien
|
||||
Module27130Desc= Verwaltung der Ferien
|
||||
TitleOptionMainCP=Wichtigste Ferien-Einstellungen
|
||||
# TitleOptionEventCP=Settings of holidays related to events
|
||||
TitleOptionEventCP=Settings of holidays related to events
|
||||
ValidEventCP=Freigeben
|
||||
# UpdateEventCP=Update events
|
||||
UpdateEventCP=Update events
|
||||
CreateEventCP=Erstelle
|
||||
# NameEventCP=Event name
|
||||
# OkCreateEventCP=The addition of the event went well.
|
||||
# ErrorCreateEventCP=Error creating the event.
|
||||
# UpdateEventOkCP=The update of the event went well.
|
||||
# ErrorUpdateEventCP=Error while updating the event.
|
||||
# DeleteEventCP=Delete Event
|
||||
# DeleteEventOkCP=The event has been deleted.
|
||||
# ErrorDeleteEventCP=Error while deleting the event.
|
||||
# TitleDeleteEventCP=Delete a exceptional leave
|
||||
# TitleCreateEventCP=Create a exceptional leave
|
||||
# TitleUpdateEventCP=Edit or delete a exceptional leave
|
||||
NameEventCP=Event name
|
||||
OkCreateEventCP=The addition of the event went well.
|
||||
ErrorCreateEventCP=Error creating the event.
|
||||
UpdateEventOkCP=The update of the event went well.
|
||||
ErrorUpdateEventCP=Error while updating the event.
|
||||
DeleteEventCP=Delete Event
|
||||
DeleteEventOkCP=The event has been deleted.
|
||||
ErrorDeleteEventCP=Error while deleting the event.
|
||||
TitleDeleteEventCP=Delete a exceptional leave
|
||||
TitleCreateEventCP=Create a exceptional leave
|
||||
TitleUpdateEventCP=Edit or delete a exceptional leave
|
||||
DeleteEventOptionCP=Lösche Gruppe
|
||||
UpdateEventOptionCP=Aktualisieren
|
||||
# ErrorMailNotSend=An error occurred while sending email:
|
||||
# NoCPforMonth=No leave this month.
|
||||
ErrorMailNotSend=An error occurred while sending email:
|
||||
NoCPforMonth=No leave this month.
|
||||
nbJours=Anzahl der Tage
|
||||
TitleAdminCP=Konfiguration der Ferien
|
||||
|
||||
#Messages
|
||||
Hello=Hallo
|
||||
HolidaysToValidate=Ferien freigeben
|
||||
HolidaysToValidateBody=Es folgt ein Ferienantrag zur Freigabe
|
||||
# HolidaysToValidateDelay=This request for holidays will take place within a period of less than %s days.
|
||||
HolidaysToValidateDelay=This request for holidays will take place within a period of less than %s days.
|
||||
HolidaysToValidateAlertSolde=Der Benutzer dieses Ferienantrags besitzt nicht mehr genügend verfügbare Tage.
|
||||
HolidaysValidated=Freigegebene Ferien
|
||||
HolidaysValidatedBody=Ihr Antrag auf Ferien von %s bis %s wurde bewilligt.
|
||||
HolidaysRefused=Abgelehnte Ferien
|
||||
HolidaysRefusedBody=Ihr Antrag auf Ferien von %s bis %s wurde aus folgendem Grund abgelehnt:
|
||||
# HolidaysCanceled=Canceled holidays
|
||||
HolidaysCanceled=Canceled holidays
|
||||
HolidaysCanceledBody=Ihr Antrag auf Ferien von %s bis %s wurde storniert.
|
||||
|
||||
Permission20001=Lesen/erstellen/verändern ihrer Ferien
|
||||
Permission20002=Lesen/verändern sämtlicher Ferienanträge
|
||||
Permission20003=Löschen ihrer Ferienanträge
|
||||
Permission20004=Definiere Benutzer-Ferien
|
||||
# Permission20005=Review log of modified holidays
|
||||
# Permission20006=Access holidays monthly report
|
||||
Permission20000=Read you own holidays
|
||||
Permission20001=Create/modify your holidays
|
||||
Permission20002=Create/modify holidays for everybody
|
||||
Permission20003=Delete holidays requests
|
||||
Permission20004=Setup users holidays
|
||||
Permission20005=Review log of modified holidays
|
||||
Permission20006=Read holidays monthly report
|
||||
|
||||
@ -147,7 +147,7 @@ IfAlreadyExistsCheckOption=Sollte dieser Name korrekt und die Datenbank noch nic
|
||||
OpenBaseDir=PHP openbasedir Einstellungen
|
||||
YouAskToCreateDatabaseSoRootRequired=Sie haben die Option "Datenbank erstellen" ausgewählt. Hierfür müssen Sie Benutzername und Passwort des Datenbank-Super-Users in das untenstehende Formular eintragen.
|
||||
YouAskToCreateDatabaseUserSoRootRequired=Sie haben die Option "Datenbankbenutzer erstellen" ausgewählt. Hierfür müssen Sie Benutzername und Passwort des Datenbank-Super-Users in das untenstehende Formular eintragen.
|
||||
NextStepMightLastALongTime=Der aktuelle Vorgang kann mehrere Minuten dauern. Holen Sie sich eine frische Tasse Kaffee, oder nutzen Sie die Gelegenheit für eine Rauchpause. Warten Sie jedoch bitte in jedem Fall, bis der nächste Bildschirm vollständig angezeigt wird, bevor Sir fortfahren.
|
||||
NextStepMightLastALongTime=Der aktuelle Vorgang kann mehrere Minuten dauern. Holen Sie sich eine frische Tasse Kaffee, oder nutzen Sie die Gelegenheit für eine Rauchpause. Warten Sie jedoch bitte in jedem Fall, bis der nächste Bildschirm vollständig angezeigt wird, bevor Sie fortfahren.
|
||||
MigrationCustomerOrderShipping=Kundenbestellungsversand aktualisieren
|
||||
MigrationShippingDelivery=Aktualisiere die Speicherung von Lieferungen (Versandart?)
|
||||
MigrationShippingDelivery2=Aktualisiere die Speicherung von Lieferungen 2 (Versandart 2?)
|
||||
@ -158,7 +158,6 @@ ShowEditTechnicalParameters=Hier klicken um erweiterte Funktionen zu zeigen/bear
|
||||
|
||||
#########
|
||||
# upgrade
|
||||
#########
|
||||
MigrationFixData=Denormalisierte Daten bereinigen
|
||||
MigrationOrder=Datenmigration für Kundenbestellungen
|
||||
MigrationSupplierOrder=Datenmigration für Lieferantenbestellungen
|
||||
@ -207,3 +206,6 @@ MigrationProjectTaskTime=Aktualisiere aufgewandte Zeit (in Sekunden)
|
||||
MigrationActioncommElement=Aktualisiere die Maßnahmen
|
||||
MigrationPaymentMode=Migration der Daten für die Zahlungsart
|
||||
MigrationCategorieAssociation=Kategorien verschieben
|
||||
|
||||
ShowNotAvailableOptions=Show not available options
|
||||
HideNotAvailableOptions=Hide not available options
|
||||
|
||||
@ -45,9 +45,9 @@ Notify_MEMBER_SUBSCRIPTION=Mitglied hat unterzeichnet
|
||||
Notify_MEMBER_RESILIATE=Mitglied auflösen
|
||||
Notify_MEMBER_DELETE=Mitglied gelöscht
|
||||
Notify_PROJECT_CREATE=Projekt-Erstellung
|
||||
Notify_TASK_CREATE=Task created
|
||||
Notify_TASK_MODIFY=Task modified
|
||||
Notify_TASK_DELETE=Task deleted
|
||||
Notify_TASK_CREATE=Aufgabe erstellt
|
||||
Notify_TASK_MODIFY=Aufgabe geändert
|
||||
Notify_TASK_DELETE=Aufgabe gelöscht
|
||||
NbOfAttachedFiles=Anzahl der angehängten Dateien/okumente
|
||||
TotalSizeOfAttachedFiles=Gesamtgröße der angehängten Dateien/Dokumente
|
||||
MaxSize=Maximalgröße
|
||||
|
||||
@ -109,7 +109,7 @@ BarcodeValue=Barcode-Wert
|
||||
NoteNotVisibleOnBill=Anmerkung (nicht sichtbar auf Rechnungen, Angeboten,...)
|
||||
CreateCopy=Kopie erstellen
|
||||
ServiceLimitedDuration=Ist die Leistungserbringung eines Service zeitlich beschränkt:
|
||||
MultiPricesAbility=Several level of prices per product/service
|
||||
MultiPricesAbility=Mehrere Preisstufen pro Produkt/Service
|
||||
MultiPricesNumPrices=Preisnummer
|
||||
MultiPriceLevelsName=Preiskategorien
|
||||
AssociatedProductsAbility=Untergeordnete Produkte aktivieren
|
||||
@ -156,12 +156,12 @@ NoSupplierPriceDefinedForThisProduct=Einkaufskonditionen für dieses Produkt noc
|
||||
RecordedProducts=Erfasste Produkte
|
||||
RecordedServices=Erfasste Services
|
||||
RecordedProductsAndServices=Erfasste Produkte/Leistungen
|
||||
PredefinedProductsToSell=Predefined products to sell
|
||||
PredefinedServicesToSell=Predefined services to sell
|
||||
PredefinedProductsAndServicesToSell=Predefined products/services to sell
|
||||
PredefinedProductsToPurchase=Predefined product to purchase
|
||||
PredefinedServicesToPurchase=Predefined services to purchase
|
||||
PredefinedProductsAndServicesToPurchase=Predefined products/services to puchase
|
||||
PredefinedProductsToSell=Vordefinierte Verkaufs-Produkte
|
||||
PredefinedServicesToSell=Vordefinierte Services zum Verkauf
|
||||
PredefinedProductsAndServicesToSell=Vordefinierte Verkaufs-Produkte/-Services
|
||||
PredefinedProductsToPurchase=Vordefinierte Einkaufs-Produkte
|
||||
PredefinedServicesToPurchase=Vordefinierte Services zum Einkauf
|
||||
PredefinedProductsAndServicesToPurchase=Vordefinierte Einkaufs-Produkte/-Services
|
||||
GenerateThumb=Erzeuge Vorschaubild
|
||||
ProductCanvasAbility=Verwende spezielle "canvas" Add-Ons
|
||||
ServiceNb=Leistung #%s
|
||||
@ -174,7 +174,7 @@ CloneProduct=Produkt/Leistung duplizieren
|
||||
ConfirmCloneProduct=Möchten Sie <b>%s</b> wirklich duplizieren?
|
||||
CloneContentProduct=Allgemeine Informationen des Produkts/Leistungen duplizieren
|
||||
ClonePricesProduct=Allgemeine Informationen und Preise duplizieren
|
||||
CloneCompositionProduct=Clone virtual product/services
|
||||
CloneCompositionProduct=Unterprodukt/-Service duplizieren
|
||||
ProductIsUsed=Produkt in Verwendung
|
||||
NewRefForClone=Artikel-Nr. des neuen Produkts/Leistungen
|
||||
CustomerPrices=Kundenpreise
|
||||
|
||||
@ -50,10 +50,10 @@ ErrorCodeCantContainZero=Ο κώδικας δεν μπορεί να περιέχ
|
||||
DisableJavascript=Απενεργοποίηση συναρτήσεων JavaScript και Ajax
|
||||
ConfirmAjax=Χρήση διαλόγων επιβεβαίωσης Ajax
|
||||
UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
|
||||
UseSearchToSelectCompany=Use autocompletion fields to choose third parties instead of using a list box.
|
||||
UseSearchToSelectCompany=Χρησιμοποιήστε τα πεδία αυτόματης συμπλήρωσης για να επιλέξετε Πελ./Προμ. αντί να χρησιμοποιεί ένα πλαίσιο λίστας.
|
||||
ActivityStateToSelectCompany= Προσθέστε μια επιλογή φίλτρου για εμφάνιση / απόκρυψη ΠΕΛ./ΠΡΟΜ. τα οποία βρίσκονται σε λειτουργία ή έχει παύσει
|
||||
UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
|
||||
UseSearchToSelectContact=Use autocompletion fields to choose contact (instead of using a list box).
|
||||
UseSearchToSelectContact=Χρησιμοποιήστε τα πεδία αυτόματης συμπλήρωσης για να επιλέξετε την επαφή (αντί της χρήσης ενός πλαισίου λίστας).
|
||||
SearchFilter=Αναζήτηση επιλογές φίλτρων
|
||||
NumberOfKeyToSearch=Πλήθος χαρακτήρων για να ξεκινήσει η αναζήτηση: %s
|
||||
ViewFullDateActions=Εμφάνιση πλήρους χρονοδιαγράμματος γεγονότων στο φύλλο ΠΕΛ./ΠΡΟΜ.
|
||||
@ -102,9 +102,9 @@ OtherOptions=Άλλες Επιλογές
|
||||
OtherSetup=Άλλες Ρυθμίσεις
|
||||
CurrentValueSeparatorDecimal=Διαχωριστικό Δεκαδικών
|
||||
CurrentValueSeparatorThousand=Διαχωριστικό Χιλιάδων
|
||||
Destination=Destination
|
||||
Destination=Προορισμός
|
||||
IdModule=Module ID
|
||||
IdPermissions=Permissions ID
|
||||
IdPermissions=Δικαιώματα ID
|
||||
Modules=Modules
|
||||
ModulesCommon=Βασικά modules
|
||||
ModulesOther=Άλλα modules
|
||||
@ -1310,7 +1310,7 @@ ModifyProductDescAbility=Personalization of product descriptions in forms
|
||||
ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip)
|
||||
ViewProductDescInThirdpartyLanguageAbility=Οπτικοποίηση των προϊόντων περιγραφών στη γλώσσα άλλους κατασκευαστές
|
||||
UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
|
||||
UseSearchToSelectProduct=Use a search form to choose a product (rather than a drop-down list).
|
||||
UseSearchToSelectProduct=Χρησιμοποιήστε μια φόρμα αναζήτησης για να επιλέξετε ένα προϊόν (αντί για μια αναπτυσσόμενη λίστα).
|
||||
UseEcoTaxeAbility=Support Eco-Taxe (WEEE)
|
||||
SetDefaultBarcodeTypeProducts=Default barcode type to use for products
|
||||
SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties
|
||||
@ -1499,4 +1499,4 @@ ECMSetup = GED Setup
|
||||
ECMAutoTree = Automatic tree folder and document
|
||||
|
||||
|
||||
Format=Format
|
||||
Format=Μορφή
|
||||
|
||||
@ -133,7 +133,7 @@ CashBudget=Προϋπολογισμός Μετρητών
|
||||
PlannedTransactions=Προγραμματισμένες Συναλλαγές
|
||||
Graph=Γραφικά
|
||||
ExportDataset_banque_1=Τραπεζικές συναλλαγές και κίνηση λογαριασμού
|
||||
ExportDataset_banque_2=Deposit slip
|
||||
ExportDataset_banque_2=Απόδειξη κατάθεσης
|
||||
TransactionOnTheOtherAccount=Συναλλαγή στον άλλο λογαριασμό
|
||||
TransactionWithOtherAccount=Μεταφορά σε Λογαριασμό
|
||||
PaymentNumberUpdateSucceeded=Ο αριθμός πληρωμής ενημερώθηκε επιτυχώς
|
||||
|
||||
@ -37,4 +37,4 @@ ShowCompany=Εμφάνιση εταιρείας
|
||||
ShowStock=Εμφάνιση αποθήκης
|
||||
DeleteArticle=Κάντε κλικ για να καταργήσετε αυτό το προϊόν
|
||||
FilterRefOrLabelOrBC=Αναζήτηση (Κωδ. / Ετικέτα)
|
||||
# UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
|
||||
UserNeedPermissionToEditStockToUsePos=Θα ζητήσει να μειώσει το απόθεμα κατά την δημιουργία του τιμολογίου, έτσι ώστε ο χρήστης που χρησιμοποιεί το POS να χρειάζεται να έχει άδεια για να επεξεργαστείτε το απόθεμα.
|
||||
|
||||
@ -34,7 +34,6 @@ ReturnCP=Επιστροφή στην προηγούμενη σελίδα
|
||||
ErrorUserViewCP=Δεν έχετε δικαίωμα να διαβάσετε αυτό το αίτημα για τις άδειες.
|
||||
InfosCP=Πληροφορίες για τη ζήτηση των αδειών
|
||||
InfosWorkflowCP=Πληροφορίες για την ροή εργασιών
|
||||
DateCreateCP=Ημερομηνία Δημιουργίας
|
||||
RequestByCP=Ζητήθηκε από
|
||||
TitreRequestCP=Φύλλο αδειών
|
||||
NbUseDaysCP=Αριθμός ημερών αδειών που καταναλώνονται
|
||||
@ -130,7 +129,6 @@ ErrorMailNotSend=Παρουσιάστηκε σφάλμα κατά την απο
|
||||
NoCPforMonth=Όχι αυτό το μήνα.
|
||||
nbJours=Αριθμός ημερών
|
||||
TitleAdminCP=Διαμόρφωση αδειών
|
||||
|
||||
#Messages
|
||||
Hello=Γεια σας
|
||||
HolidaysToValidate=Επικύρωση άδειας
|
||||
@ -143,10 +141,10 @@ HolidaysRefused=Άρνηση άδειας
|
||||
HolidaysRefusedBody=Το αίτημα σας για την άδεια από %s έως %s έχει απορριφθεί για τους ακόλουθους λόγους:
|
||||
HolidaysCanceled=Ακύρωση άδειας
|
||||
HolidaysCanceledBody=Το αίτημά σας για άδεια από %s έως %s έχει ακυρωθεί.
|
||||
|
||||
Permission20001=Διαβάστε/δημιουργήστε/τροποποιήστε τις άδειες τους
|
||||
Permission20002=Διαβάστε/τροποποιήστε όλα τα αιτήματα των αδειών
|
||||
Permission20003=Διαγραφή αιτημάτων αδειών
|
||||
Permission20004=Ορίστε χρήστες για άδειες
|
||||
Permission20000=Read you own holidays
|
||||
Permission20001=Create/modify your holidays
|
||||
Permission20002=Create/modify holidays for everybody
|
||||
Permission20003=Delete holidays requests
|
||||
Permission20004=Setup users holidays
|
||||
Permission20005=Επανεξέταση καταγραφής των τροποποιημένων αδειών
|
||||
Permission20006=Πρόσβαση μηνιαίας αναφοράς αδειών
|
||||
Permission20006=Read holidays monthly report
|
||||
|
||||
@ -158,7 +158,6 @@ ShowEditTechnicalParameters=Κάντε κλικ εδώ για να δείτε/ε
|
||||
|
||||
#########
|
||||
# upgrade
|
||||
#########
|
||||
MigrationFixData=Fix for denormalized data
|
||||
MigrationOrder=Data migration for customer's orders
|
||||
MigrationSupplierOrder=Data migration for supplier's orders
|
||||
@ -207,3 +206,6 @@ MigrationProjectTaskTime=Update time spent in seconds
|
||||
MigrationActioncommElement=Ενημέρωση στοιχεία για τις δράσεις
|
||||
MigrationPaymentMode=Η μεταφορά δεδομένων για την κατάσταση πληρωμής
|
||||
MigrationCategorieAssociation=Μετακίνηση των κατηγοριών
|
||||
|
||||
ShowNotAvailableOptions=Show not available options
|
||||
HideNotAvailableOptions=Hide not available options
|
||||
|
||||
@ -605,8 +605,8 @@ Notes=Σημειώσεις
|
||||
AddNewLine=Προσθήκη Γραμμής
|
||||
AddFile=Προσθήκη Αρχείου
|
||||
ListOfFiles=Λίστα Διαθέσιμων Αρχείων
|
||||
FreeZone=Free entry
|
||||
FreeLineOfType=Free entry of type
|
||||
FreeZone=Δωρεάν είσοδος
|
||||
FreeLineOfType=Δωρεάν είσοδος του τύπου
|
||||
CloneMainAttributes=Κλωνοποίηση αντικειμένου με τα βασικά του χαρακτηριστικά
|
||||
PDFMerge=Ενσωμάτωση PDF
|
||||
Merge=Ενσωμάτωση
|
||||
|
||||
@ -14,9 +14,9 @@ NewService=Νέα Υπηρεσία
|
||||
ProductCode=Κωδικός Προϊόντος
|
||||
ServiceCode=Κωδικός Υπηρεσίας
|
||||
ProductVatMassChange=Μαζική αλλαγή ΦΠΑ
|
||||
ProductVatMassChangeDesc=This page can be used to modify a VAT rate defined on products or services from a value to another. Warning, this change is done on all database.
|
||||
ProductVatMassChangeDesc=Αυτή η σελίδα μπορεί να χρησιμοποιηθεί για να τροποποιήσει τον συντελεστή ΦΠΑ που ορίζεται για τα προϊόντα ή τις υπηρεσίες από μια τιμή σε μια άλλη. Προσοχή, αυτή η αλλαγή γίνεται σε όλες τις βάσης δεδομένων.
|
||||
MassBarcodeInit=Μαζική barcode init
|
||||
MassBarcodeInitDesc=This page can be used to initialize a barcode on objects that does not have barcode defined. Check before that setup of module barcode is complete.
|
||||
MassBarcodeInitDesc=Αυτή η σελίδα μπορεί να χρησιμοποιείται για να προετοιμάσει ένα barcode σε αντικείμενα που δεν έχουν barcode. Ελέγξτε πριν από την εγκατάσταση του module barcode αν έχει ολοκληρωθεί.
|
||||
ProductAccountancyBuyCode=Λογιστικός κωδικός (αγορά)
|
||||
ProductAccountancySellCode=Λογιστικός κωδικός (πώληση)
|
||||
ProductOrService=Προϊόν ή Υπηρεσία
|
||||
@ -109,7 +109,7 @@ BarcodeValue=ΤΙμή Barcode
|
||||
NoteNotVisibleOnBill=Σημείωση (μη ορατή σε τιμολόγια, προτάσεις...)
|
||||
CreateCopy=Δημιουργία Αντιγράφου
|
||||
ServiceLimitedDuration=Εάν το προϊόν είναι μια υπηρεσία με περιορισμένη διάρκεια:
|
||||
MultiPricesAbility=Several level of prices per product/service
|
||||
MultiPricesAbility=Πολλά επίπεδα των τιμών ανά προϊόν/υπηρεσία
|
||||
MultiPricesNumPrices=Αριθμός τιμής
|
||||
MultiPriceLevelsName=Κατηγορίες τιμών
|
||||
AssociatedProductsAbility=Ενεργοποίηση υποπροϊόντων
|
||||
@ -156,12 +156,12 @@ NoSupplierPriceDefinedForThisProduct=Δεν υπάρχει τιμή προμηθ
|
||||
RecordedProducts=Προϊόντα που καταγράφονται
|
||||
RecordedServices=Services recorded
|
||||
RecordedProductsAndServices=Προϊόντα / υπηρεσίες που καταγράφονται
|
||||
PredefinedProductsToSell=Predefined products to sell
|
||||
PredefinedServicesToSell=Predefined services to sell
|
||||
PredefinedProductsAndServicesToSell=Predefined products/services to sell
|
||||
PredefinedProductsToPurchase=Predefined product to purchase
|
||||
PredefinedServicesToPurchase=Predefined services to purchase
|
||||
PredefinedProductsAndServicesToPurchase=Predefined products/services to puchase
|
||||
PredefinedProductsToSell=Προκαθορισμένα προϊόντα για για την πώληση
|
||||
PredefinedServicesToSell=Προκαθορισμένες υπηρεσίες προς πώληση
|
||||
PredefinedProductsAndServicesToSell=Προκαθορισμένα προϊόντα/υπηρεσίες προς πώληση
|
||||
PredefinedProductsToPurchase=Προκαθορισμένο προϊόν στην αγορά
|
||||
PredefinedServicesToPurchase=Προκαθορισμένες υπηρεσίες για την αγορά
|
||||
PredefinedProductsAndServicesToPurchase=Προκαθορισμένα προϊόντα/υπηρεσίες στις αγορές
|
||||
GenerateThumb=Δημιουργία μικρογραφίας
|
||||
ProductCanvasAbility=Χρησιμοποιήστε το ειδικό "καμβά" addons
|
||||
ServiceNb=Υπηρεσία #%s
|
||||
@ -226,9 +226,9 @@ DefinitionOfBarCodeForProductNotComplete=Ορισμός του τύπου ή τ
|
||||
DefinitionOfBarCodeForThirdpartyNotComplete=Ορισμός του τύπου ή της αξίας του barcode είναι μη πλήρης για άλλους κατασκευαστές %s.
|
||||
BarCodeDataForProduct=Πληροφορίες barcode του προϊόντος %s :
|
||||
BarCodeDataForThirdparty=Πληροφορίες Barcode από άλλους κατασκευαστές %s :
|
||||
ResetBarcodeForAllRecords=Define barcode value for all records (this will also reset barcode value already defined with new values)
|
||||
ResetBarcodeForAllRecords=Ορίστε την αξία barcode για όλα τα αρχεία (προσοχή, θα επαναφέρει επίσης την αξία barcode που έχουν ήδη καθοριστεί με νέες τιμές)
|
||||
PriceByCustomer=Τιμή ανά πελάτη
|
||||
PriceCatalogue=Unique price per product/service
|
||||
PriceCatalogue=Μοναδική τιμή ανά προϊόν/υπηρεσία
|
||||
PricingRule=Κανόνες τιμολόγησης
|
||||
AddCustomerPrice=Προσθέστε τιμή των πελατών
|
||||
ForceUpdateChildPriceSoc=Ορισμός ίδιας τιμής για τις θυγατρικές του πελάτη
|
||||
|
||||
@ -94,7 +94,7 @@ DesiredStock=Επιθυμητο απόθεμα
|
||||
StockToBuy=Για να παραγγείλετε
|
||||
Replenishment=Αναπλήρωση
|
||||
ReplenishmentOrders=Αναπλήρωση παραγγελίων
|
||||
VirtualDiffersFromPhysical=According to increase/decrease stock options, physical stock and virtual stock (physical + current orders) may differs
|
||||
VirtualDiffersFromPhysical=Σύμφωνα με την την αύξηση/μείωση αποθέματος, φυσικού αποθέματος και εικονικού αποθέματος (φυσική + τρέχουσες παραγγελίες) μπορεί να διαφέρει
|
||||
UseVirtualStockByDefault=Χρησιμοποιήστε το εικονικό απόθεμα από προεπιλογή, αντί των φυσικών αποθεμάτων, για τη \nλειτουργία αναπλήρωσης
|
||||
UseVirtualStock=Χρησιμοποιήστε το εικονικό απόθεμα
|
||||
UsePhysicalStock=Χρησιμοποιήστε το φυσικό απόθεμα
|
||||
@ -117,8 +117,8 @@ SelectProductInAndOutWareHouse=Επιλέξτε ένα προϊόν, ποσότ
|
||||
RecordMovement=Η εγγραφή μεταφέρθηκε
|
||||
ReceivingForSameOrder=Λήψη για αυτή τη σειρά
|
||||
StockMovementRecorded=Οι κινήσεις των αποθεμάτων καταγράφονται
|
||||
RuleForStockAvailability=Rules on stock requirements
|
||||
StockMustBeEnoughForInvoice=Stock level must be enough to add product/service into invoice
|
||||
StockMustBeEnoughForOrder=Stock level must be enough to add product/service into order
|
||||
StockMustBeEnoughForShipment= Stock level must be enough to add product/service into shipment
|
||||
RuleForStockAvailability=Κανόνες σχετικά με τις απαιτήσεις του αποθέματος
|
||||
StockMustBeEnoughForInvoice=Το επίπεδο των αποθεμάτων πρέπει να είναι επαρκής για να προσθέσετε το προϊόν / υπηρεσία στο τιμολόγιο
|
||||
StockMustBeEnoughForOrder=Το επίπεδο των αποθεμάτων πρέπει να είναι επαρκής για να προσθέσετε το προϊόν / υπηρεσία για αγορά
|
||||
StockMustBeEnoughForShipment= Το επίπεδο των αποθεμάτων πρέπει να είναι επαρκής για να προσθέσετε το προϊόν / υπηρεσία για αποστολή
|
||||
|
||||
|
||||
@ -116,7 +116,7 @@ LanguageBrowserParameter=Parameter %s
|
||||
LocalisationDolibarrParameters=Localisation parameters
|
||||
ClientTZ=Client Time Zone (user)
|
||||
ClientHour=Client time (user)
|
||||
OSTZ=Servre OS Time Zone
|
||||
OSTZ=Server OS Time Zone
|
||||
PHPTZ=PHP server Time Zone
|
||||
PHPServerOffsetWithGreenwich=PHP server offset width Greenwich (seconds)
|
||||
ClientOffsetWithGreenwich=Client/Browser offset width Greenwich (seconds)
|
||||
@ -369,9 +369,9 @@ ExtrafieldSelectList = Select from table
|
||||
ExtrafieldSeparator=Separator
|
||||
ExtrafieldCheckBox=Checkbox
|
||||
ExtrafieldRadio=Radio button
|
||||
ExtrafieldParamHelpselect=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...<br><br>In order to have the list depending on another :<br>1,value1|parent_list_code:parent_key<br>2,value2|parent_list_code:parent_key
|
||||
ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||
ExtrafieldParamHelpradio=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||
ExtrafieldParamHelpselect=Parameters list have to be like key,value<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...<br><br>In order to have the list depending on another :<br>1,value1|parent_list_code:parent_key<br>2,value2|parent_list_code:parent_key
|
||||
ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||
ExtrafieldParamHelpradio=Parameters list have to be like key,value<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||
ExtrafieldParamHelpsellist=Parameters list comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value <br> if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
|
||||
LibraryToBuildPDF=Library used to build PDF
|
||||
WarningUsingFPDF=Warning: Your <b>conf.php</b> contains directive <b>dolibarr_pdf_force_fpdf=1</b>. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.<br>To solve this and have a full support of PDF generation, please download <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, then comment or remove the line <b>$dolibarr_pdf_force_fpdf=1</b>, and add instead <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b>
|
||||
@ -472,7 +472,7 @@ Module410Desc=Webcalendar integration
|
||||
Module500Name=Special expenses (tax, social contributions, dividends)
|
||||
Module500Desc=Management of special expenses like taxes, social contribution, dividends and salaries
|
||||
Module510Name=Salaries
|
||||
Module510Desc=Management of empoyees salaries and payments
|
||||
Module510Desc=Management of employees salaries and payments
|
||||
Module600Name=Notifications
|
||||
Module600Desc=Send notifications by email on some Dolibarr business events to third party contacts
|
||||
Module700Name=Donations
|
||||
@ -495,15 +495,15 @@ Module2400Name=Agenda
|
||||
Module2400Desc=Events/tasks and agenda management
|
||||
Module2500Name=Electronic Content Management
|
||||
Module2500Desc=Save and share documents
|
||||
Module2600Name= WebServices
|
||||
Module2600Desc= Enable the Dolibarr web services server
|
||||
Module2700Name= Gravatar
|
||||
Module2700Desc= Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
|
||||
Module2600Name=WebServices
|
||||
Module2600Desc=Enable the Dolibarr web services server
|
||||
Module2700Name=Gravatar
|
||||
Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
|
||||
Module2800Desc=FTP Client
|
||||
Module2900Name= GeoIPMaxmind
|
||||
Module2900Desc= GeoIP Maxmind conversions capabilities
|
||||
Module3100Name= Skype
|
||||
Module3100Desc= Add a Skype button into card of adherents / third parties / contacts
|
||||
Module2900Name=GeoIPMaxmind
|
||||
Module2900Desc=GeoIP Maxmind conversions capabilities
|
||||
Module3100Name=Skype
|
||||
Module3100Desc=Add a Skype button into card of adherents / third parties / contacts
|
||||
Module5000Name=Multi-company
|
||||
Module5000Desc=Allows you to manage multiple companies
|
||||
Module6000Name=Workflow
|
||||
@ -999,7 +999,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders)
|
||||
ExtraFieldsSupplierInvoices=Complementary attributes (invoices)
|
||||
ExtraFieldsProject=Complementary attributes (projects)
|
||||
ExtraFieldsProjectTask=Complementary attributes (tasks)
|
||||
ExtraFieldHasWrongValue=Attribut %s has a wrong value.
|
||||
ExtraFieldHasWrongValue=Attribute %s has a wrong value.
|
||||
AlphaNumOnlyCharsAndNoSpace=only alphanumericals characters without space
|
||||
AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space
|
||||
SendingMailSetup=Setup of sendings by email
|
||||
@ -1018,13 +1018,13 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin
|
||||
ConditionIsCurrently=Condition is currently %s
|
||||
TestNotPossibleWithCurrentBrowsers=Automatic detection not possible
|
||||
YouUseBestDriver=You use driver %s that is best driver available currently.
|
||||
YouDoNotUseBestDriver=You use drive %s but driver %s is recommanded.
|
||||
YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
|
||||
NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
|
||||
SearchOptim=Search optimization
|
||||
YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
|
||||
BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
|
||||
BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
|
||||
XDebugInstalled=XDebug est chargé.
|
||||
XDebugInstalled=XDebug is loaded.
|
||||
XCacheInstalled=XCache is loaded.
|
||||
AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink
|
||||
FieldEdition=Edition of field %s
|
||||
@ -1073,7 +1073,7 @@ WebCalServer=Server hosting calendar database
|
||||
WebCalDatabaseName=Database name
|
||||
WebCalUser=User to access database
|
||||
WebCalSetupSaved=Webcalendar setup saved successfully.
|
||||
WebCalTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
|
||||
WebCalTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
|
||||
WebCalTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
|
||||
WebCalTestKo2=Connection to server '%s' with user '%s' failed.
|
||||
WebCalErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be a Webcalendar database.
|
||||
@ -1119,7 +1119,7 @@ WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty)
|
||||
OrdersSetup=Order management setup
|
||||
OrdersNumberingModules=Orders numbering models
|
||||
OrdersModelModule=Order documents models
|
||||
HideTreadedOrders=Hide the treated or canceled orders in the list
|
||||
HideTreadedOrders=Hide the treated or cancelled orders in the list
|
||||
ValidOrderAfterPropalClosed=To validate the order after proposal closer, makes it possible not to step by the provisional order
|
||||
FreeLegalTextOnOrders=Free text on orders
|
||||
WatermarkOnDraftOrders=Watermark on draft orders (none if empty)
|
||||
@ -1214,9 +1214,9 @@ LDAPSynchroKO=Failed synchronization test
|
||||
LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
|
||||
LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
|
||||
LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
|
||||
LDAPBindOK=Connect/Authentificate to LDAP server sucessfull (Server=%s, Port=%s, Admin=%s, Password=%s)
|
||||
LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
|
||||
LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
|
||||
LDAPUnbindSuccessfull=Disconnect successfull
|
||||
LDAPUnbindSuccessfull=Disconnect successful
|
||||
LDAPUnbindFailed=Disconnect failed
|
||||
LDAPConnectToDNSuccessfull=Connection to DN (%s) successful
|
||||
LDAPConnectToDNFailed=Connection to DN (%s) failed
|
||||
@ -1273,7 +1273,7 @@ LDAPFieldSidExample=Example : objectsid
|
||||
LDAPFieldEndLastSubscription=Date of subscription end
|
||||
LDAPFieldTitle=Post/Function
|
||||
LDAPFieldTitleExample=Example: title
|
||||
LDAPParametersAreStillHardCoded=LDAP parametres are still hardcoded (in contact class)
|
||||
LDAPParametersAreStillHardCoded=LDAP parameters are still hardcoded (in contact class)
|
||||
LDAPSetupNotComplete=LDAP setup not complete (go on others tabs)
|
||||
LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode.
|
||||
LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts.
|
||||
@ -1299,7 +1299,7 @@ FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
|
||||
CacheByServer=Cache by server
|
||||
CacheByClient=Cache by browser
|
||||
CompressionOfResources=Compression of HTTP responses
|
||||
TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current bowsers
|
||||
TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
|
||||
##### Products #####
|
||||
ProductSetup=Products module setup
|
||||
ServiceSetup=Services module setup
|
||||
@ -1429,7 +1429,7 @@ OptionVATDefault=Standard
|
||||
OptionVATDebitOption=Option services on Debit
|
||||
OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on payments for services
|
||||
OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
|
||||
SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to choosed option:
|
||||
SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
|
||||
OnDelivery=On delivery
|
||||
OnPayment=On payment
|
||||
OnInvoice=On invoice
|
||||
@ -1446,7 +1446,7 @@ AccountancyCodeBuy=Purchase account. code
|
||||
AgendaSetup=Events and agenda module setup
|
||||
PasswordTogetVCalExport=Key to authorize export link
|
||||
PastDelayVCalExport=Do not export event older than
|
||||
AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionnary -> Type of agenda events)
|
||||
AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events)
|
||||
##### ClickToDial #####
|
||||
ClickToDialDesc=This module allows to add an icon after phone numbers. A click on this icon will call a server with a particular URL you define below. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
|
||||
##### Point Of Sales (CashDesk) #####
|
||||
|
||||
@ -8,7 +8,6 @@ NotActiveModCP=You must enable the module holidays to view this page.
|
||||
NotConfigModCP=You must configure the module holidays to view this page. To do this, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> click here </ a>.
|
||||
NoCPforUser=You don't have a demand for holidays.
|
||||
AddCP=Apply for holidays
|
||||
CPErrorSQL=An SQL error occurred:
|
||||
Employe=Employee
|
||||
DateDebCP=Start date
|
||||
DateFinCP=End date
|
||||
|
||||
@ -551,6 +551,7 @@ MailSentBy=Email sent by
|
||||
TextUsedInTheMessageBody=Email body
|
||||
SendAcknowledgementByMail=Send Ack. by email
|
||||
NoEMail=No email
|
||||
NoMobilePhone=No mobile phone
|
||||
Owner=Owner
|
||||
DetectedVersion=Detected version
|
||||
FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
|
||||
|
||||
@ -179,6 +179,7 @@ ProductIsUsed=This product is used
|
||||
NewRefForClone=Ref. of new product/service
|
||||
CustomerPrices=Customers prices
|
||||
SuppliersPrices=Suppliers prices
|
||||
SuppliersPricesOfProductsOrServices=Suppliers prices (of products or services)
|
||||
CustomCode=Customs code
|
||||
CountryOrigin=Origin country
|
||||
HiddenIntoCombo=Hidden into select lists
|
||||
@ -208,6 +209,7 @@ CostPmpHT=Net total VWAP
|
||||
ProductUsedForBuild=Auto consumed by production
|
||||
ProductBuilded=Production completed
|
||||
ProductsMultiPrice=Product multi-price
|
||||
ProductsOrServiceMultiPrice=Customers prices (of products or services, multi-prices)
|
||||
ProductSellByQuarterHT=Products turnover quarterly VWAP
|
||||
ServiceSellByQuarterHT=Services turnover quarterly VWAP
|
||||
Quarter1=1st. Quarter
|
||||
|
||||
@ -49,11 +49,11 @@ ErrorReservedTypeSystemSystemAuto=El uso del tipo 'system' y 'systemauto' está
|
||||
ErrorCodeCantContainZero=El código no puede contener el valor 0
|
||||
DisableJavascript=Desactivar las funciones Javascript y AJAX
|
||||
ConfirmAjax=Utilizar los diálogos de confirmación Ajax
|
||||
UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
|
||||
UseSearchToSelectCompany=Use autocompletion fields to choose third parties instead of using a list box.
|
||||
UseSearchToSelectCompanyTooltip=También si tiene un gran número de terceros (> 100 000), puede aumentar la velocidad mediante el establecimiento COMPANY_DONOTSEARCH_ANYWHERE constante a 1 en Configuración-> Otros. La búsqueda será limitada a la creación de cadena.
|
||||
UseSearchToSelectCompany=Utilice los campos de autocompletar para elegir terceros en lugar de utilizar un cuadro de lista
|
||||
ActivityStateToSelectCompany= Agregar un filtro en la búsqueda para mostrar/ocultar los terceros en activo o que hayan dejado de ejercer
|
||||
UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
|
||||
UseSearchToSelectContact=Use autocompletion fields to choose contact (instead of using a list box).
|
||||
UseSearchToSelectContactTooltip=También si usted tiene un gran número de terceros (> 100 000), puede aumentar la velocidad mediante el establecimiento CONTACT_DONOTSEARCH_ANYWHERE constante a 1 en Configuración-> Otros. La búsqueda será limitada a la creación de cadena.
|
||||
UseSearchToSelectContact=Utilice los campos de autocompletar para seleccionar contactos (en lugar de utilizar un cuadro de lista).
|
||||
SearchFilter=Opciones filtros de búsqueda
|
||||
NumberOfKeyToSearch=Nº de caracteres para desencadenar la búsqueda: %s
|
||||
ViewFullDateActions=Ver las fechas de las acciones en su totalidad en la ficha de tercero
|
||||
@ -102,9 +102,9 @@ OtherOptions=Otras opciones
|
||||
OtherSetup=Varios
|
||||
CurrentValueSeparatorDecimal=Separador decimal
|
||||
CurrentValueSeparatorThousand=Separador miles
|
||||
Destination=Destination
|
||||
IdModule=Module ID
|
||||
IdPermissions=Permissions ID
|
||||
Destination=destino
|
||||
IdModule=identificador de modulo
|
||||
IdPermissions=Identificador de permisos
|
||||
Modules=Módulos
|
||||
ModulesCommon=Módulos principales
|
||||
ModulesOther=Módulos complementarios
|
||||
@ -372,7 +372,7 @@ ExtrafieldRadio=Botón de selección excluyente
|
||||
ExtrafieldParamHelpselect=El listado tiene que ser en forma clave, valor<br><br> por ejemplo : <br>1,text1<br>2,text2<br>3,text3<br>...
|
||||
ExtrafieldParamHelpcheckbox=El listado tiene que ser en forma clave, valor<br><br> por ejemplo : <br>1,text1<br>2,text2<br>3,text3<br>...
|
||||
ExtrafieldParamHelpradio=El listado tiene que ser en forma clave, valor<br><br> por ejemplo : <br>1,text1<br>2,text2<br>3,text3<br>...
|
||||
ExtrafieldParamHelpsellist=Parameters list comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value <br> if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
|
||||
ExtrafieldParamHelpsellist=Lista Parámetros viene de una tabla <br> Sintaxis: nombre_tabla: etiqueta_campo: identificador_campo :: filtro <br> Ejemplo: c_typent: libelle: id :: filtro <br> filtro puede ser una prueba simple (por ejemplo, activo = 1) para mostrar el valor sólo se activa <br> si desea filtrar un campo extra utilizar la sintáxis extra.fieldcode = ... (donde el código de campo es el código del campo extra) <br> para tener la lista en función de otra: <br> c_typent: libelle: id: parent_list_code | parent_column: filtro
|
||||
LibraryToBuildPDF=Librería usada para la creación de archivos PDF
|
||||
WarningUsingFPDF=Atención: Su archivo <b>conf.php</b> contiene la directiva <b>dolibarr_pdf_force_fpdf=1</b>. Esto hace que se use la librería FPDF para generar sus archivos PDF. Esta librería es antigua y no cubre algunas funcionalidades (Unicode, transparencia de imágenes, idiomas cirílicos, árabes o asiáticos, etc.), por lo que puede tener problemas en la generación de los PDF.<br>Para resolverlo, y disponer de un soporte completo de PDF, puede descargar la <a href="http://www.tcpdf.org/" target="_blank">librería TCPDF</a> , y a continuación comentar o eliminar la línea <b>$dolibarr_pdf_force_fpdf=1</b>, y añadir en su lugar <b>$dolibarr_lib_TCPDF_PATH='ruta_a_TCPDF'</b>
|
||||
LocalTaxDesc=Algunos países aplican 2 o 3 tasas a cada línea de factura. Si es el caso, escoja el tipo de la segunda y tercera tasa y su valor. Los posibles tipos son:<br>1 : tasa local aplicable a productos y servicios sin IVA (IVA no se aplica en la tasa local)<br>2 : tasa local se aplica a productos y servicios antes del IVA (IVA se calcula sobre importe+tasa local)<br>3 : tasa local se aplica a productos sin IVA (IVA no se aplica en la tasa local)<br>4 : tasa local se aplica a productos antes del IVA (IVA se calcula sobre el importe+tasa local)<br>5 : tasa local se aplica a servicios sin IVA (IVA no se aplica a la tasa local)<br>6 : tasa local se aplica a servicios antes del IVA (IVA se calcula sobre importe + tasa local)
|
||||
@ -1287,8 +1287,8 @@ YouMayFindPerfAdviceHere=En esta página encontrará varias pruebas y consejos r
|
||||
NotInstalled=No instalado, por lo que su servidor no baja de rendimiento con esto.
|
||||
ApplicativeCache=Aplicación caché
|
||||
MemcachedNotAvailable=No se ha encontrado una aplicación de cache. Puede mejorar el rendimiento instalando un cache server Memcached y un módulo capaz de usar ese servidor de cache.<br>Más información aquí <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Tenga en cuenta que algunos hostings no ofrecen servidores de cache.
|
||||
MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
|
||||
MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
|
||||
MemcachedModuleAvailableButNotSetup=Módulo memcached para el caché aplicativo encontrado pero la configuración del módulo no está completa.
|
||||
MemcachedAvailableAndSetup=Memcached módulo dedicado a utilizar el servidor memcached está disponible.
|
||||
OPCodeCache=OPCode caché
|
||||
NoOPCodeCacheFound=No se ha encontrado ningún OPCode caché. Puede ser que esté usando otro OPCode como XCache o eAccelerator (mejor), o puede que no tenga OPCode caché (peor).
|
||||
HTTPCacheStaticResources=Caché HTTP para estadísticas de recursos (css, img, javascript)
|
||||
@ -1309,8 +1309,8 @@ ConfirmDeleteProductLineAbility=Confirmación de eliminación de una línea de p
|
||||
ModifyProductDescAbility=Personalización de las descripciones de los productos en los formularios
|
||||
ViewProductDescInFormAbility=Visualización de las descripciones de los productos en los formularios
|
||||
ViewProductDescInThirdpartyLanguageAbility=Visualización de las descripciones de productos en el idioma del tercero
|
||||
UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
|
||||
UseSearchToSelectProduct=Use a search form to choose a product (rather than a drop-down list).
|
||||
UseSearchToSelectProductTooltip=También si usted tiene una gran cantidad de producto (> 100 000), puede aumentar la velocidad mediante el establecimiento PRODUCT_DONOTSEARCH_ANYWHERE constante a 1 en Configuración-> Otros. La búsqueda será limitada a la creación de cadena.
|
||||
UseSearchToSelectProduct=Utilice un formulario de búsqueda para elegir un producto (en lugar de una lista desplegable).
|
||||
UseEcoTaxeAbility=Asumir ecotasa (DEEE)
|
||||
SetDefaultBarcodeTypeProducts=Tipo de código de barras utilizado por defecto para los productos
|
||||
SetDefaultBarcodeTypeThirdParties=Tipo de código de barras utilizado por defecto para los terceros
|
||||
@ -1499,4 +1499,4 @@ ECMSetup = Configuración del módulo GED
|
||||
ECMAutoTree = El árbol automático está disponible
|
||||
|
||||
|
||||
Format=Format
|
||||
Format=Formatear
|
||||
|
||||
@ -133,7 +133,7 @@ CashBudget=Presupuesto de tesorería
|
||||
PlannedTransactions=Transacciones previstas
|
||||
Graph=Gráficos
|
||||
ExportDataset_banque_1=Transacción bancaria y extracto
|
||||
ExportDataset_banque_2=Deposit slip
|
||||
ExportDataset_banque_2=Justificante bancario
|
||||
TransactionOnTheOtherAccount=Transacción sobre la otra cuenta
|
||||
TransactionWithOtherAccount=Transferencia de cuenta
|
||||
PaymentNumberUpdateSucceeded=Numero de pago modificado
|
||||
|
||||
@ -135,7 +135,7 @@ ErrorWarehouseMustDiffers=El almacén de origen y destino deben de ser diferente
|
||||
ErrorBadFormat=¡El formato es erróneo!
|
||||
ErrorPaymentDateLowerThanInvoiceDate=La fecha de pago (%s) no puede ser anterior a la fecha (%s) de la factura %s.
|
||||
ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, este miembro aún no está enlazado un tercero. Enlace el miembro a un tercero existente o cree un tercero nuevo antes de crear la suscripción con la factura.
|
||||
ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
|
||||
ErrorThereIsSomeDeliveries=Error, hay entregas vinculados a este envío. No se puede eliminar.
|
||||
|
||||
# Warnings
|
||||
WarningMandatorySetupNotComplete=Los parámetros obligatorios de configuración no están todavía definidos
|
||||
|
||||
@ -34,7 +34,6 @@ ReturnCP=Volver a la página anterior
|
||||
ErrorUserViewCP=No está autorizado a leer esta petición de vacaciones.
|
||||
InfosCP=Información de la petición de vacaciones
|
||||
InfosWorkflowCP=Información del workflow
|
||||
DateCreateCP=Fecha de creación
|
||||
RequestByCP=Pedido por
|
||||
TitreRequestCP=Ficha vacaciones
|
||||
NbUseDaysCP=Número de días de vacaciones consumidos
|
||||
@ -130,7 +129,6 @@ ErrorMailNotSend=Se ha producido un error en el envío del e-mail :
|
||||
NoCPforMonth=Sin vacaciones este mes.
|
||||
nbJours=Número de días
|
||||
TitleAdminCP=Configuración de las vacaciones
|
||||
|
||||
#Messages
|
||||
Hello=Hola
|
||||
HolidaysToValidate=Días retribuidos a validar
|
||||
@ -143,10 +141,10 @@ HolidaysRefused=Días retribuidos denegados
|
||||
HolidaysRefusedBody=Su solicitud de días retribuidos desde el %s al %s ha sido denegada por el siguiente motivo :
|
||||
HolidaysCanceled=Días retribuidos cancelados
|
||||
HolidaysCanceledBody=Su solicitud de días retribuidos desde el %s al %s ha sido cancelada.
|
||||
|
||||
Permission20001=Consultar/crear/modificar sus vacaciones
|
||||
Permission20002=Consultar/modificar todas las solicitudes de permisos retribuídos
|
||||
Permission20003=Eliminar las solicitudes de permisos retribuídos
|
||||
Permission20004=Definir los permisos retribuídos de los usuarios
|
||||
Permission20000=Leer sus propios días retribuidos
|
||||
Permission20001=Crear/modificar sus días retribuidos
|
||||
Permission20002=Crear/modificar días retribuidos para todos
|
||||
Permission20003=Eliminar peticiones de días retribuidos
|
||||
Permission20004=Configurar días retribuidos de usuarios
|
||||
Permission20005=Consultar el historial de modificaciones de permisos retribuídos
|
||||
Permission20006=Acceder al informe mensual de permisos retribuídos
|
||||
Permission20006=Leer informe mensual de días retribuidos
|
||||
|
||||
@ -206,3 +206,6 @@ MigrationProjectTaskTime=Actualización de tiempo dedicado en segundos
|
||||
MigrationActioncommElement=Actualización de los datos de acciones sobre elementos
|
||||
MigrationPaymentMode=Actualización de los modos de pago
|
||||
MigrationCategorieAssociation=Actualización de las categorías
|
||||
|
||||
ShowNotAvailableOptions=Mostrar opciones no disponibles
|
||||
HideNotAvailableOptions=Ocultar opciones no disponibles
|
||||
|
||||
@ -119,7 +119,7 @@ TargetsReset=Vaciar lista
|
||||
ToClearAllRecipientsClickHere=Para vaciar la lista de los destinatarios de este E-Mailing, haga click en el botón
|
||||
ToAddRecipientsChooseHere=Para añadir destinatarios, escoja los que figuran en las listas a continuación
|
||||
NbOfEMailingsReceived=E-Mailings en masa recibidos
|
||||
NbOfEMailingsSend=Mass emailings sent
|
||||
NbOfEMailingsSend=Emailings masivos enviados
|
||||
IdRecord=ID registro
|
||||
DeliveryReceipt=Acuse de recibo
|
||||
YouCanUseCommaSeparatorForSeveralRecipients=Puede usar el carácter de separación <b>coma </b> para especificar múltiples destinatarios.
|
||||
|
||||
@ -206,7 +206,7 @@ Limit=Límite
|
||||
Limits=Límites
|
||||
DevelopmentTeam=Equipo de desarrollo
|
||||
Logout=Desconexión
|
||||
NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode <b>%s</b>
|
||||
NoLogoutProcessWithAuthMode=Sin funcionalidades de desconexión con el modo de autenticación <b>%s</b>
|
||||
Connection=Conexión
|
||||
Setup=Configuración
|
||||
Alert=Alerta
|
||||
@ -605,8 +605,8 @@ Notes=Notas
|
||||
AddNewLine=Añadir nueva línea
|
||||
AddFile=Añadir archivo
|
||||
ListOfFiles=Listado de archivos disponibles
|
||||
FreeZone=Free entry
|
||||
FreeLineOfType=Free entry of type
|
||||
FreeZone=Entrada libre
|
||||
FreeLineOfType=Entrada libre del tipo
|
||||
CloneMainAttributes=Clonar el objeto con estos atributos principales
|
||||
PDFMerge=Fusión PDF
|
||||
Merge=Fusión
|
||||
|
||||
@ -45,9 +45,9 @@ Notify_MEMBER_SUBSCRIPTION=Afiliación miembro
|
||||
Notify_MEMBER_RESILIATE=Baja miembro
|
||||
Notify_MEMBER_DELETE=Eliminación miembro
|
||||
Notify_PROJECT_CREATE=Creación de proyecto
|
||||
Notify_TASK_CREATE=Task created
|
||||
Notify_TASK_MODIFY=Task modified
|
||||
Notify_TASK_DELETE=Task deleted
|
||||
Notify_TASK_CREATE=Tarea creada
|
||||
Notify_TASK_MODIFY=Tarea modificada
|
||||
Notify_TASK_DELETE=Tarea eliminada
|
||||
NbOfAttachedFiles=Número archivos/documentos adjuntos
|
||||
TotalSizeOfAttachedFiles=Tamaño total de los archivos/documentos adjuntos
|
||||
MaxSize=Tamaño máximo
|
||||
|
||||
@ -109,7 +109,7 @@ BarcodeValue=Valor del código de barras
|
||||
NoteNotVisibleOnBill=Nota (no visible en las facturas, presupuestos, etc.)
|
||||
CreateCopy=Crear cópia
|
||||
ServiceLimitedDuration=Si el servicio es de duración limitada :
|
||||
MultiPricesAbility=Several level of prices per product/service
|
||||
MultiPricesAbility=Varios niveles de precio por producto/servicio
|
||||
MultiPricesNumPrices=Nº de precios
|
||||
MultiPriceLevelsName=Categoría de precios
|
||||
AssociatedProductsAbility=Activar productos compuestos
|
||||
@ -156,12 +156,12 @@ NoSupplierPriceDefinedForThisProduct=Ningún precio/cant. proveedor definida par
|
||||
RecordedProducts=Productos en venta
|
||||
RecordedServices=Servicios en venta
|
||||
RecordedProductsAndServices=Productos/servicios en venta
|
||||
PredefinedProductsToSell=Predefined products to sell
|
||||
PredefinedServicesToSell=Predefined services to sell
|
||||
PredefinedProductsAndServicesToSell=Predefined products/services to sell
|
||||
PredefinedProductsToPurchase=Predefined product to purchase
|
||||
PredefinedServicesToPurchase=Predefined services to purchase
|
||||
PredefinedProductsAndServicesToPurchase=Predefined products/services to puchase
|
||||
PredefinedProductsToSell=Productos predefinidos para vender
|
||||
PredefinedServicesToSell=Servicios predefinidos para vender
|
||||
PredefinedProductsAndServicesToSell=Productos/servicios predefinidos a la venta
|
||||
PredefinedProductsToPurchase=Producto predefinido para comprar
|
||||
PredefinedServicesToPurchase=Servicios predefinidos para comprar
|
||||
PredefinedProductsAndServicesToPurchase=Productos/servicios predefinidos para comprar
|
||||
GenerateThumb=Generar la etiqueta
|
||||
ProductCanvasAbility=Usar las extensiones especiales "canvas"
|
||||
ServiceNb=Servicio no %s
|
||||
@ -228,7 +228,7 @@ BarCodeDataForProduct=Información del código de barras del producto %s:
|
||||
BarCodeDataForThirdparty=Información del código de barras del tercero %s:
|
||||
ResetBarcodeForAllRecords=Definir códigos de barras para todos los registros (machacará los valores de códigos de barras ya registrados)
|
||||
PriceByCustomer=Precio por cliente
|
||||
PriceCatalogue=Unique price per product/service
|
||||
PriceCatalogue=Precio único por producto/servicio
|
||||
PricingRule=Reglas de precio
|
||||
AddCustomerPrice=Añadir precio por clientes
|
||||
ForceUpdateChildPriceSoc=Establecer el mismo precio en las filiales de los clientes
|
||||
|
||||
@ -34,7 +34,6 @@ ReturnCP=Mine tagasi eelmisele lehele
|
||||
ErrorUserViewCP=Sul ei ole ligipääsuõigusi antud puhkusetaotluse vaatamiseks.
|
||||
InfosCP=Puhkusevajaduse info
|
||||
InfosWorkflowCP=Informatsiooni töövoog
|
||||
DateCreateCP=Loomiskuupäev
|
||||
RequestByCP=Taotles
|
||||
TitreRequestCP=Puhkuste leht
|
||||
NbUseDaysCP=Kulutatud puhkusepäevade arv
|
||||
@ -130,7 +129,6 @@ ErrorMailNotSend=E-kirja saatmisel tekkis viga:
|
||||
NoCPforMonth=Sellel kuul pole puhkusi.
|
||||
nbJours=Päevade arv
|
||||
TitleAdminCP=Puhkuste seadistamine
|
||||
|
||||
#Messages
|
||||
Hello=Tere
|
||||
HolidaysToValidate=Kinnita puhkused
|
||||
@ -143,10 +141,10 @@ HolidaysRefused=Tagasi lükatud puhkused
|
||||
HolidaysRefusedBody=Sinu puhkusetaotlus alates %s kuni %s on tagasi lükatud põhjusel:
|
||||
HolidaysCanceled=Tühistatud puhkused
|
||||
HolidaysCanceledBody=Sinu puhkusetaotlus alates %s kuni %s on tühistatud.
|
||||
|
||||
Permission20001=Oma puhkuste vaatamine/loomine/muutmine
|
||||
Permission20002=Kõikide puhkusetaotluste vaatamine/muutmine
|
||||
Permission20003=Oma puhkusetaotluste kustutamine
|
||||
Permission20004=Kasutajate puhkuste määratlemine
|
||||
Permission20000=Read you own holidays
|
||||
Permission20001=Create/modify your holidays
|
||||
Permission20002=Create/modify holidays for everybody
|
||||
Permission20003=Delete holidays requests
|
||||
Permission20004=Setup users holidays
|
||||
Permission20005=Muudetud puhkuste logi vaatamine
|
||||
Permission20006=Ligipääs puhkuste igakuisele aruandele
|
||||
Permission20006=Read holidays monthly report
|
||||
|
||||
@ -158,7 +158,6 @@ ShowEditTechnicalParameters=Klõpsa siia lisaparameetrite näitamiseks/muutmisek
|
||||
|
||||
#########
|
||||
# upgrade
|
||||
#########
|
||||
MigrationFixData=Paranda denormaliseeritud andmed
|
||||
MigrationOrder=Kliendi tellimuste andmete migreerimine
|
||||
MigrationSupplierOrder=Ostutellimuste andmete migreerimine
|
||||
@ -207,3 +206,6 @@ MigrationProjectTaskTime=Uuendamiseks kulutatud aeg sekundites
|
||||
MigrationActioncommElement=Uuenda tegevuste andmec
|
||||
MigrationPaymentMode=Maksete režiimi andmete migreerimine
|
||||
MigrationCategorieAssociation=Kategooriate migreerimine
|
||||
|
||||
ShowNotAvailableOptions=Show not available options
|
||||
HideNotAvailableOptions=Hide not available options
|
||||
|
||||
@ -1,152 +1,150 @@
|
||||
# Dolibarr language file - Source file is en_US - holiday
|
||||
# HRM=HRM
|
||||
# Holidays=Holidays
|
||||
# CPTitreMenu=Holidays
|
||||
# MenuReportMonth=Monthly statement
|
||||
# MenuAddCP=Apply for holidays
|
||||
# NotActiveModCP=You must enable the module holidays to view this page.
|
||||
# NotConfigModCP=You must configure the module holidays to view this page. To do this, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> click here </ a>.
|
||||
# NoCPforUser=You don't have a demand for holidays.
|
||||
# AddCP=Apply for holidays
|
||||
# CPErrorSQL=An SQL error occurred:
|
||||
# Employe=Employee
|
||||
# DateDebCP=Start date
|
||||
# DateFinCP=End date
|
||||
# DateCreateCP=Creation date
|
||||
# DraftCP=Draft
|
||||
# ToReviewCP=Awaiting approval
|
||||
# ApprovedCP=Approved
|
||||
# CancelCP=Canceled
|
||||
# RefuseCP=Refused
|
||||
# ValidatorCP=Approbator
|
||||
# ListeCP=List of holidays
|
||||
# ReviewedByCP=Will be reviewed by
|
||||
# DescCP=Description
|
||||
# SendRequestCP=Creating demand for holidays
|
||||
# DelayToRequestCP=Applications for holidays must be made at least <b>%s day(s)</b> before them.
|
||||
# MenuConfCP=Edit balance of holidays
|
||||
# UpdateAllCP=Update the holidays
|
||||
# SoldeCPUser=Holidays balance is <b>%s</b> days.
|
||||
# ErrorEndDateCP=You must select an end date greater than the start date.
|
||||
# ErrorSQLCreateCP=An SQL error occurred during the creation:
|
||||
# ErrorIDFicheCP=An error has occurred, the request for holidays does not exist.
|
||||
# ReturnCP=Return to previous page
|
||||
# ErrorUserViewCP=You are not authorized to read this request for holidays.
|
||||
# InfosCP=Information of the demand of holidays
|
||||
# InfosWorkflowCP=Information Workflow
|
||||
# DateCreateCP=Creation date
|
||||
# RequestByCP=Requested by
|
||||
# TitreRequestCP=Sheet of holidays
|
||||
# NbUseDaysCP=Number of days of holidays consumed
|
||||
# EditCP=Edit
|
||||
# DeleteCP=Delete
|
||||
# ActionValidCP=Validate
|
||||
# ActionRefuseCP=Refuse
|
||||
# ActionCancelCP=Cancel
|
||||
# StatutCP=Status
|
||||
# SendToValidationCP=Send to validation
|
||||
# TitleDeleteCP=Delete the request of holidays
|
||||
# ConfirmDeleteCP=Confirm the deletion of this request for holidays?
|
||||
# ErrorCantDeleteCP=Error you don't have the right to delete this holiday request.
|
||||
# CantCreateCP=You don't have the right to apply for holidays.
|
||||
# InvalidValidatorCP=You must choose an approbator to your holiday request.
|
||||
# UpdateButtonCP=Update
|
||||
# CantUpdate=You cannot update this request of holidays.
|
||||
# NoDateDebut=You must select a start date.
|
||||
# NoDateFin=You must select an end date.
|
||||
# ErrorDureeCP=Your request for holidays does not contain working day.
|
||||
# TitleValidCP=Approve the request holidays
|
||||
# ConfirmValidCP=Are you sure you want to approve the holiday request?
|
||||
# DateValidCP=Date approved
|
||||
# TitleToValidCP=Send request holidays
|
||||
# ConfirmToValidCP=Are you sure you want to send the request of holidays?
|
||||
# TitleRefuseCP=Refuse the request holidays
|
||||
# ConfirmRefuseCP=Are you sure you want to refuse the request of holidays?
|
||||
# NoMotifRefuseCP=You must choose a reason for refusing the request.
|
||||
# TitleCancelCP=Cancel the request holidays
|
||||
# ConfirmCancelCP=Are you sure you want to cancel the request of holidays?
|
||||
# DetailRefusCP=Reason for refusal
|
||||
# DateRefusCP=Date of refusal
|
||||
# DateCancelCP=Date of cancellation
|
||||
# DefineEventUserCP=Assign an exceptional leave for a user
|
||||
# addEventToUserCP=Assign leave
|
||||
# MotifCP=Reason
|
||||
# UserCP=User
|
||||
# ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
|
||||
# AddEventToUserOkCP=The addition of the exceptional leave has been completed.
|
||||
# MenuLogCP=View logs of holidays
|
||||
# LogCP=Log of updates of holidays
|
||||
# ActionByCP=Performed by
|
||||
# UserUpdateCP=For the user
|
||||
# PrevSoldeCP=Previous Balance
|
||||
# NewSoldeCP=New Balance
|
||||
# alreadyCPexist=A request for holidays has already been done on this period.
|
||||
# UserName=Name
|
||||
# Employee=Employee
|
||||
# FirstDayOfHoliday=First day of holiday
|
||||
# LastDayOfHoliday=Last day of holiday
|
||||
# HolidaysMonthlyUpdate=Monthly update
|
||||
# ManualUpdate=Manual update
|
||||
# HolidaysCancelation=Holidays cancelation
|
||||
HRM=HRM
|
||||
Holidays=Holidays
|
||||
CPTitreMenu=Holidays
|
||||
MenuReportMonth=Monthly statement
|
||||
MenuAddCP=Apply for holidays
|
||||
NotActiveModCP=You must enable the module holidays to view this page.
|
||||
NotConfigModCP=You must configure the module holidays to view this page. To do this, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> click here </ a>.
|
||||
NoCPforUser=You don't have a demand for holidays.
|
||||
AddCP=Apply for holidays
|
||||
CPErrorSQL=An SQL error occurred:
|
||||
Employe=Employee
|
||||
DateDebCP=Start date
|
||||
DateFinCP=End date
|
||||
DateCreateCP=Creation date
|
||||
DraftCP=Draft
|
||||
ToReviewCP=Awaiting approval
|
||||
ApprovedCP=Approved
|
||||
CancelCP=Canceled
|
||||
RefuseCP=Refused
|
||||
ValidatorCP=Approbator
|
||||
ListeCP=List of holidays
|
||||
ReviewedByCP=Will be reviewed by
|
||||
DescCP=Description
|
||||
SendRequestCP=Creating demand for holidays
|
||||
DelayToRequestCP=Applications for holidays must be made at least <b>%s day(s)</b> before them.
|
||||
MenuConfCP=Edit balance of holidays
|
||||
UpdateAllCP=Update the holidays
|
||||
SoldeCPUser=Holidays balance is <b>%s</b> days.
|
||||
ErrorEndDateCP=You must select an end date greater than the start date.
|
||||
ErrorSQLCreateCP=An SQL error occurred during the creation:
|
||||
ErrorIDFicheCP=An error has occurred, the request for holidays does not exist.
|
||||
ReturnCP=Return to previous page
|
||||
ErrorUserViewCP=You are not authorized to read this request for holidays.
|
||||
InfosCP=Information of the demand of holidays
|
||||
InfosWorkflowCP=Information Workflow
|
||||
RequestByCP=Requested by
|
||||
TitreRequestCP=Sheet of holidays
|
||||
NbUseDaysCP=Number of days of holidays consumed
|
||||
EditCP=Edit
|
||||
DeleteCP=Delete
|
||||
ActionValidCP=Validate
|
||||
ActionRefuseCP=Refuse
|
||||
ActionCancelCP=Cancel
|
||||
StatutCP=Status
|
||||
SendToValidationCP=Send to validation
|
||||
TitleDeleteCP=Delete the request of holidays
|
||||
ConfirmDeleteCP=Confirm the deletion of this request for holidays?
|
||||
ErrorCantDeleteCP=Error you don't have the right to delete this holiday request.
|
||||
CantCreateCP=You don't have the right to apply for holidays.
|
||||
InvalidValidatorCP=You must choose an approbator to your holiday request.
|
||||
UpdateButtonCP=Update
|
||||
CantUpdate=You cannot update this request of holidays.
|
||||
NoDateDebut=You must select a start date.
|
||||
NoDateFin=You must select an end date.
|
||||
ErrorDureeCP=Your request for holidays does not contain working day.
|
||||
TitleValidCP=Approve the request holidays
|
||||
ConfirmValidCP=Are you sure you want to approve the holiday request?
|
||||
DateValidCP=Date approved
|
||||
TitleToValidCP=Send request holidays
|
||||
ConfirmToValidCP=Are you sure you want to send the request of holidays?
|
||||
TitleRefuseCP=Refuse the request holidays
|
||||
ConfirmRefuseCP=Are you sure you want to refuse the request of holidays?
|
||||
NoMotifRefuseCP=You must choose a reason for refusing the request.
|
||||
TitleCancelCP=Cancel the request holidays
|
||||
ConfirmCancelCP=Are you sure you want to cancel the request of holidays?
|
||||
DetailRefusCP=Reason for refusal
|
||||
DateRefusCP=Date of refusal
|
||||
DateCancelCP=Date of cancellation
|
||||
DefineEventUserCP=Assign an exceptional leave for a user
|
||||
addEventToUserCP=Assign leave
|
||||
MotifCP=Reason
|
||||
UserCP=User
|
||||
ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
|
||||
AddEventToUserOkCP=The addition of the exceptional leave has been completed.
|
||||
MenuLogCP=View logs of holidays
|
||||
LogCP=Log of updates of holidays
|
||||
ActionByCP=Performed by
|
||||
UserUpdateCP=For the user
|
||||
PrevSoldeCP=Previous Balance
|
||||
NewSoldeCP=New Balance
|
||||
alreadyCPexist=A request for holidays has already been done on this period.
|
||||
UserName=Name
|
||||
Employee=Employee
|
||||
FirstDayOfHoliday=First day of holiday
|
||||
LastDayOfHoliday=Last day of holiday
|
||||
HolidaysMonthlyUpdate=Monthly update
|
||||
ManualUpdate=Manual update
|
||||
HolidaysCancelation=Holidays cancelation
|
||||
|
||||
## Configuration du Module ##
|
||||
# ConfCP=Configuration of holidays module
|
||||
# DescOptionCP=Description of the option
|
||||
# ValueOptionCP=Value
|
||||
# GroupToValidateCP=Group with the ability to approve holidays
|
||||
# ConfirmConfigCP=Validate the configuration
|
||||
# LastUpdateCP=Last updated automatically of holidays
|
||||
# UpdateConfCPOK=Updated successfully.
|
||||
# ErrorUpdateConfCP=An error occurred during the update, please try again.
|
||||
# AddCPforUsers=Please add the balance of holidays of users by <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">clicking here</a>.
|
||||
# DelayForSubmitCP=Deadline to apply for holidays
|
||||
# AlertapprobatortorDelayCP=Prevent the approbator if the holiday request does not match the deadline
|
||||
# AlertValidatorDelayCP=Préevent the approbator if the holiday request exceed delay
|
||||
# AlertValidorSoldeCP=Prevent the approbator if the holiday request exceed the balance
|
||||
# nbUserCP=Number of users supported in the module holidays
|
||||
# nbHolidayDeductedCP=Number of holidays to be deducted per day of holiday taken
|
||||
# nbHolidayEveryMonthCP=Number of holidays added every month
|
||||
# Module27130Name= Management of holidays
|
||||
# Module27130Desc= Management of holidays
|
||||
# TitleOptionMainCP=Main settings of holidays
|
||||
# TitleOptionEventCP=Settings of holidays related to events
|
||||
# ValidEventCP=Validate
|
||||
# UpdateEventCP=Update events
|
||||
# CreateEventCP=Create
|
||||
# NameEventCP=Event name
|
||||
# OkCreateEventCP=The addition of the event went well.
|
||||
# ErrorCreateEventCP=Error creating the event.
|
||||
# UpdateEventOkCP=The update of the event went well.
|
||||
# ErrorUpdateEventCP=Error while updating the event.
|
||||
# DeleteEventCP=Delete Event
|
||||
# DeleteEventOkCP=The event has been deleted.
|
||||
# ErrorDeleteEventCP=Error while deleting the event.
|
||||
# TitleDeleteEventCP=Delete a exceptional leave
|
||||
# TitleCreateEventCP=Create a exceptional leave
|
||||
# TitleUpdateEventCP=Edit or delete a exceptional leave
|
||||
# DeleteEventOptionCP=Delete
|
||||
# UpdateEventOptionCP=Update
|
||||
# ErrorMailNotSend=An error occurred while sending email:
|
||||
# NoCPforMonth=No leave this month.
|
||||
# nbJours=Number days
|
||||
# TitleAdminCP=Configuration of Holidays
|
||||
|
||||
ConfCP=Configuration of holidays module
|
||||
DescOptionCP=Description of the option
|
||||
ValueOptionCP=Value
|
||||
GroupToValidateCP=Group with the ability to approve holidays
|
||||
ConfirmConfigCP=Validate the configuration
|
||||
LastUpdateCP=Last updated automatically of holidays
|
||||
UpdateConfCPOK=Updated successfully.
|
||||
ErrorUpdateConfCP=An error occurred during the update, please try again.
|
||||
AddCPforUsers=Please add the balance of holidays of users by <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">clicking here</a>.
|
||||
DelayForSubmitCP=Deadline to apply for holidays
|
||||
AlertapprobatortorDelayCP=Prevent the approbator if the holiday request does not match the deadline
|
||||
AlertValidatorDelayCP=Préevent the approbator if the holiday request exceed delay
|
||||
AlertValidorSoldeCP=Prevent the approbator if the holiday request exceed the balance
|
||||
nbUserCP=Number of users supported in the module holidays
|
||||
nbHolidayDeductedCP=Number of holidays to be deducted per day of holiday taken
|
||||
nbHolidayEveryMonthCP=Number of holidays added every month
|
||||
Module27130Name= Management of holidays
|
||||
Module27130Desc= Management of holidays
|
||||
TitleOptionMainCP=Main settings of holidays
|
||||
TitleOptionEventCP=Settings of holidays related to events
|
||||
ValidEventCP=Validate
|
||||
UpdateEventCP=Update events
|
||||
CreateEventCP=Create
|
||||
NameEventCP=Event name
|
||||
OkCreateEventCP=The addition of the event went well.
|
||||
ErrorCreateEventCP=Error creating the event.
|
||||
UpdateEventOkCP=The update of the event went well.
|
||||
ErrorUpdateEventCP=Error while updating the event.
|
||||
DeleteEventCP=Delete Event
|
||||
DeleteEventOkCP=The event has been deleted.
|
||||
ErrorDeleteEventCP=Error while deleting the event.
|
||||
TitleDeleteEventCP=Delete a exceptional leave
|
||||
TitleCreateEventCP=Create a exceptional leave
|
||||
TitleUpdateEventCP=Edit or delete a exceptional leave
|
||||
DeleteEventOptionCP=Delete
|
||||
UpdateEventOptionCP=Update
|
||||
ErrorMailNotSend=An error occurred while sending email:
|
||||
NoCPforMonth=No leave this month.
|
||||
nbJours=Number days
|
||||
TitleAdminCP=Configuration of Holidays
|
||||
#Messages
|
||||
# Hello=Hello
|
||||
# HolidaysToValidate=Validate holidays
|
||||
# HolidaysToValidateBody=Below is a request for holidays to validate
|
||||
# HolidaysToValidateDelay=This request for holidays will take place within a period of less than %s days.
|
||||
# HolidaysToValidateAlertSolde=The user who made this request for holidays do not have enough available days.
|
||||
# HolidaysValidated=Validated holidays
|
||||
# HolidaysValidatedBody=Your request for holidays for %s to %s has been validated.
|
||||
# HolidaysRefused=Denied holidays
|
||||
# HolidaysRefusedBody=Your request for holidays for %s to %s has been denied for the following reason :
|
||||
# HolidaysCanceled=Canceled holidays
|
||||
# HolidaysCanceledBody=Your request for holidays for %s to %s has been canceled.
|
||||
|
||||
# Permission20001=Read/create/modify their holidays
|
||||
# Permission20002=Read/modify all requests of holidays
|
||||
# Permission20003=Delete their holidays requests
|
||||
# Permission20004=Define users holidays
|
||||
# Permission20005=Review log of modified holidays
|
||||
# Permission20006=Access holidays monthly report
|
||||
Hello=Hello
|
||||
HolidaysToValidate=Validate holidays
|
||||
HolidaysToValidateBody=Below is a request for holidays to validate
|
||||
HolidaysToValidateDelay=This request for holidays will take place within a period of less than %s days.
|
||||
HolidaysToValidateAlertSolde=The user who made this request for holidays do not have enough available days.
|
||||
HolidaysValidated=Validated holidays
|
||||
HolidaysValidatedBody=Your request for holidays for %s to %s has been validated.
|
||||
HolidaysRefused=Denied holidays
|
||||
HolidaysRefusedBody=Your request for holidays for %s to %s has been denied for the following reason :
|
||||
HolidaysCanceled=Canceled holidays
|
||||
HolidaysCanceledBody=Your request for holidays for %s to %s has been canceled.
|
||||
Permission20000=Read you own holidays
|
||||
Permission20001=Create/modify your holidays
|
||||
Permission20002=Create/modify holidays for everybody
|
||||
Permission20003=Delete holidays requests
|
||||
Permission20004=Setup users holidays
|
||||
Permission20005=Review log of modified holidays
|
||||
Permission20006=Read holidays monthly report
|
||||
|
||||
@ -1,209 +1,211 @@
|
||||
# Dolibarr language file - Source file is en_US - install
|
||||
# InstallEasy=Just follow the instructions step by step.
|
||||
# MiscellaneousChecks=Prerequisites check
|
||||
# DolibarrWelcome=Welcome to Dolibarr
|
||||
# ConfFileExists=Configuration file <b>%s</b> exists.
|
||||
# ConfFileDoesNotExists=Configuration file <b>%s</b> does not exist !
|
||||
# ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created !
|
||||
# ConfFileCouldBeCreated=Configuration file <b>%s</b> could be created.
|
||||
# ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be granted to be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
|
||||
# ConfFileIsWritable=Configuration file <b>%s</b> is writable.
|
||||
# ConfFileReload=Reload all information from configuration file.
|
||||
# PHPSupportSessions=This PHP supports sessions.
|
||||
# PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
|
||||
# PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
|
||||
# PHPSupportGD=This PHP support GD graphical functions.
|
||||
# PHPSupportUTF8=This PHP support UTF8 functions.
|
||||
# PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
|
||||
# PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
|
||||
# Recheck=Click here for a more significative test
|
||||
# ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
|
||||
# ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
|
||||
# ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
|
||||
# ErrorDirDoesNotExists=Directory %s does not exist.
|
||||
# ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
|
||||
# ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
|
||||
# ErrorFailedToCreateDatabase=Failed to create database '%s'.
|
||||
# ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
|
||||
# ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
|
||||
# ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
|
||||
# WarningPHPVersionTooLow=PHP version too old. Version %s or more is expected. This version should allow install but is not supported.
|
||||
# ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
|
||||
# ErrorDatabaseAlreadyExists=Database '%s' already exists.
|
||||
# IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
|
||||
# IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
|
||||
# WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
|
||||
# PHPVersion=PHP Version
|
||||
# YouCanContinue=You can continue...
|
||||
# PleaseBePatient=Please be patient...
|
||||
# License=Using license
|
||||
# ConfigurationFile=Configuration file
|
||||
# WebPagesDirectory=Directory where web pages are stored
|
||||
# DocumentsDirectory=Directory to store uploaded and generated documents
|
||||
# URLRoot=URL Root
|
||||
# ForceHttps=Force secure connections (https)
|
||||
# CheckToForceHttps=Check this option to force secure connections (https).<br>This requires that the web server is configured with an SSL certificate.
|
||||
# DolibarrDatabase=Dolibarr Database
|
||||
# DatabaseChoice=Database choice
|
||||
# DatabaseType=Database type
|
||||
# DriverType=Driver type
|
||||
# Server=Server
|
||||
# ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
|
||||
# ServerPortDescription=Database server port. Keep empty if unknown.
|
||||
# DatabaseServer=Database server
|
||||
# DatabaseName=Database name
|
||||
# DatabasePrefix=Database prefix table
|
||||
# Login=Login
|
||||
# AdminLogin=Login for Dolibarr database owner.
|
||||
# Password=Password
|
||||
# PasswordAgain=Retype password a second time
|
||||
# AdminPassword=Password for Dolibarr database owner.
|
||||
# CreateDatabase=Create database
|
||||
# CreateUser=Create owner
|
||||
# DatabaseSuperUserAccess=Database server - Superuser access
|
||||
# CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
|
||||
# CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
|
||||
# Experimental=(experimental)
|
||||
# DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
|
||||
# KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
|
||||
# SaveConfigurationFile=Save values
|
||||
# ConfigurationSaving=Saving configuration file
|
||||
# ServerConnection=Server connection
|
||||
# DatabaseConnection=Database connection
|
||||
# DatabaseCreation=Database creation
|
||||
# UserCreation=User creation
|
||||
# CreateDatabaseObjects=Database objects creation
|
||||
# ReferenceDataLoading=Reference data loading
|
||||
# TablesAndPrimaryKeysCreation=Tables and Primary keys creation
|
||||
# CreateTableAndPrimaryKey=Create table %s
|
||||
# CreateOtherKeysForTable=Create foreign keys and indexes for table %s
|
||||
# OtherKeysCreation=Foreign keys and indexes creation
|
||||
# FunctionsCreation=Functions creation
|
||||
# AdminAccountCreation=Administrator login creation
|
||||
# PleaseTypePassword=Please type a password, empty passwords are not allowed !
|
||||
# PleaseTypeALogin=Please type a login !
|
||||
# PasswordsMismatch=Passwords differs, please try again !
|
||||
# SetupEnd=End of setup
|
||||
# SystemIsInstalled=This installation is complete.
|
||||
# SystemIsUpgraded=Dolibarr has been upgraded successfully.
|
||||
# YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (appearance, features, ...). To do this, please follow the link below:
|
||||
# AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfuly.
|
||||
# GoToDolibarr=Go to Dolibarr
|
||||
# GoToSetupArea=Go to Dolibarr (setup area)
|
||||
# MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
|
||||
# GoToUpgradePage=Go to upgrade page again
|
||||
# Examples=Examples
|
||||
# WithNoSlashAtTheEnd=Without the slash "/" at the end
|
||||
# DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
|
||||
# LoginAlreadyExists=Already exists
|
||||
# DolibarrAdminLogin=Dolibarr admin login
|
||||
# AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
|
||||
# WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
|
||||
# ThisPHPDoesNotSupportTypeBase=This PHP system does not support any interface to access database type %s
|
||||
# FunctionNotAvailableInThisPHP=Not available on this PHP
|
||||
# MigrateScript=Migration script
|
||||
# ChoosedMigrateScript=Choose migration script
|
||||
# DataMigration=Data migration
|
||||
# DatabaseMigration=Structure database migration
|
||||
# ProcessMigrateScript=Script processing
|
||||
# ChooseYourSetupMode=Choose your setup mode and click "Start"...
|
||||
# FreshInstall=Fresh install
|
||||
# FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
|
||||
# Upgrade=Upgrade
|
||||
# UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
|
||||
# Start=Start
|
||||
# InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
|
||||
# NotAvailable=Not available
|
||||
# YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
|
||||
# CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
|
||||
# AlreadyDone=Already migrated
|
||||
# DatabaseVersion=Database version
|
||||
# ServerVersion=Database server version
|
||||
# YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
|
||||
# CharsetChoice=Character set choice
|
||||
# CharacterSetClient=Character set used for generated HTML web pages
|
||||
# CharacterSetClientComment=Choose character set for web display.<br/> Default proposed character set is the one of your database.
|
||||
# DBSortingCollation=Character sorting order
|
||||
# DBSortingCollationComment=Choose page code that defines character's sorting order used by database. This parameter is also called 'collation' by some databases.<br/>This parameter can't be defined if database already exists.
|
||||
# CharacterSetDatabase=Character set for database
|
||||
# CharacterSetDatabaseComment=Choose character set wanted for database creation.<br/>This parameter can't be defined if database already exists.
|
||||
# YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
|
||||
# YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
|
||||
# BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
|
||||
# OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
|
||||
# RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
|
||||
# KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
|
||||
# KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
|
||||
# KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
|
||||
# KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
|
||||
# FieldRenamed=Field renamed
|
||||
# IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
|
||||
# ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
|
||||
# InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
|
||||
# InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
|
||||
# MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
|
||||
# CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
|
||||
# IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
|
||||
# OpenBaseDir=PHP openbasedir parameter
|
||||
# YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
|
||||
# YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
|
||||
# NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
|
||||
# MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
|
||||
# MigrationShippingDelivery=Upgrade storage of shipping
|
||||
# MigrationShippingDelivery2=Upgrade storage of shipping 2
|
||||
# MigrationFinished=Migration finished
|
||||
# LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
|
||||
# ActivateModule=Activate module %s
|
||||
# ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
|
||||
InstallEasy=Just follow the instructions step by step.
|
||||
MiscellaneousChecks=Prerequisites check
|
||||
DolibarrWelcome=Welcome to Dolibarr
|
||||
ConfFileExists=Configuration file <b>%s</b> exists.
|
||||
ConfFileDoesNotExists=Configuration file <b>%s</b> does not exist !
|
||||
ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created !
|
||||
ConfFileCouldBeCreated=Configuration file <b>%s</b> could be created.
|
||||
ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be granted to be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
|
||||
ConfFileIsWritable=Configuration file <b>%s</b> is writable.
|
||||
ConfFileReload=Reload all information from configuration file.
|
||||
PHPSupportSessions=This PHP supports sessions.
|
||||
PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
|
||||
PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
|
||||
PHPSupportGD=This PHP support GD graphical functions.
|
||||
PHPSupportUTF8=This PHP support UTF8 functions.
|
||||
PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
|
||||
PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
|
||||
Recheck=Click here for a more significative test
|
||||
ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
|
||||
ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
|
||||
ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
|
||||
ErrorDirDoesNotExists=Directory %s does not exist.
|
||||
ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
|
||||
ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
|
||||
ErrorFailedToCreateDatabase=Failed to create database '%s'.
|
||||
ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
|
||||
ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
|
||||
ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
|
||||
WarningPHPVersionTooLow=PHP version too old. Version %s or more is expected. This version should allow install but is not supported.
|
||||
ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
|
||||
ErrorDatabaseAlreadyExists=Database '%s' already exists.
|
||||
IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
|
||||
IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
|
||||
WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
|
||||
PHPVersion=PHP Version
|
||||
YouCanContinue=You can continue...
|
||||
PleaseBePatient=Please be patient...
|
||||
License=Using license
|
||||
ConfigurationFile=Configuration file
|
||||
WebPagesDirectory=Directory where web pages are stored
|
||||
DocumentsDirectory=Directory to store uploaded and generated documents
|
||||
URLRoot=URL Root
|
||||
ForceHttps=Force secure connections (https)
|
||||
CheckToForceHttps=Check this option to force secure connections (https).<br>This requires that the web server is configured with an SSL certificate.
|
||||
DolibarrDatabase=Dolibarr Database
|
||||
DatabaseChoice=Database choice
|
||||
DatabaseType=Database type
|
||||
DriverType=Driver type
|
||||
Server=Server
|
||||
ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
|
||||
ServerPortDescription=Database server port. Keep empty if unknown.
|
||||
DatabaseServer=Database server
|
||||
DatabaseName=Database name
|
||||
DatabasePrefix=Database prefix table
|
||||
Login=Login
|
||||
AdminLogin=Login for Dolibarr database owner.
|
||||
Password=Password
|
||||
PasswordAgain=Retype password a second time
|
||||
AdminPassword=Password for Dolibarr database owner.
|
||||
CreateDatabase=Create database
|
||||
CreateUser=Create owner
|
||||
DatabaseSuperUserAccess=Database server - Superuser access
|
||||
CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
|
||||
CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
|
||||
Experimental=(experimental)
|
||||
DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
|
||||
KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
|
||||
SaveConfigurationFile=Save values
|
||||
ConfigurationSaving=Saving configuration file
|
||||
ServerConnection=Server connection
|
||||
DatabaseConnection=Database connection
|
||||
DatabaseCreation=Database creation
|
||||
UserCreation=User creation
|
||||
CreateDatabaseObjects=Database objects creation
|
||||
ReferenceDataLoading=Reference data loading
|
||||
TablesAndPrimaryKeysCreation=Tables and Primary keys creation
|
||||
CreateTableAndPrimaryKey=Create table %s
|
||||
CreateOtherKeysForTable=Create foreign keys and indexes for table %s
|
||||
OtherKeysCreation=Foreign keys and indexes creation
|
||||
FunctionsCreation=Functions creation
|
||||
AdminAccountCreation=Administrator login creation
|
||||
PleaseTypePassword=Please type a password, empty passwords are not allowed !
|
||||
PleaseTypeALogin=Please type a login !
|
||||
PasswordsMismatch=Passwords differs, please try again !
|
||||
SetupEnd=End of setup
|
||||
SystemIsInstalled=This installation is complete.
|
||||
SystemIsUpgraded=Dolibarr has been upgraded successfully.
|
||||
YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (appearance, features, ...). To do this, please follow the link below:
|
||||
AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfuly.
|
||||
GoToDolibarr=Go to Dolibarr
|
||||
GoToSetupArea=Go to Dolibarr (setup area)
|
||||
MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
|
||||
GoToUpgradePage=Go to upgrade page again
|
||||
Examples=Examples
|
||||
WithNoSlashAtTheEnd=Without the slash "/" at the end
|
||||
DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
|
||||
LoginAlreadyExists=Already exists
|
||||
DolibarrAdminLogin=Dolibarr admin login
|
||||
AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
|
||||
WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
|
||||
ThisPHPDoesNotSupportTypeBase=This PHP system does not support any interface to access database type %s
|
||||
FunctionNotAvailableInThisPHP=Not available on this PHP
|
||||
MigrateScript=Migration script
|
||||
ChoosedMigrateScript=Choose migration script
|
||||
DataMigration=Data migration
|
||||
DatabaseMigration=Structure database migration
|
||||
ProcessMigrateScript=Script processing
|
||||
ChooseYourSetupMode=Choose your setup mode and click "Start"...
|
||||
FreshInstall=Fresh install
|
||||
FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
|
||||
Upgrade=Upgrade
|
||||
UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
|
||||
Start=Start
|
||||
InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
|
||||
NotAvailable=Not available
|
||||
YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
|
||||
CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
|
||||
AlreadyDone=Already migrated
|
||||
DatabaseVersion=Database version
|
||||
ServerVersion=Database server version
|
||||
YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
|
||||
CharsetChoice=Character set choice
|
||||
CharacterSetClient=Character set used for generated HTML web pages
|
||||
CharacterSetClientComment=Choose character set for web display.<br/> Default proposed character set is the one of your database.
|
||||
DBSortingCollation=Character sorting order
|
||||
DBSortingCollationComment=Choose page code that defines character's sorting order used by database. This parameter is also called 'collation' by some databases.<br/>This parameter can't be defined if database already exists.
|
||||
CharacterSetDatabase=Character set for database
|
||||
CharacterSetDatabaseComment=Choose character set wanted for database creation.<br/>This parameter can't be defined if database already exists.
|
||||
YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
|
||||
YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
|
||||
BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
|
||||
OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
|
||||
RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
|
||||
KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
|
||||
KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
|
||||
KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
|
||||
KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
|
||||
FieldRenamed=Field renamed
|
||||
IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
|
||||
ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
|
||||
InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
|
||||
InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
|
||||
MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
|
||||
CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
|
||||
IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
|
||||
OpenBaseDir=PHP openbasedir parameter
|
||||
YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
|
||||
YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
|
||||
NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
|
||||
MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
|
||||
MigrationShippingDelivery=Upgrade storage of shipping
|
||||
MigrationShippingDelivery2=Upgrade storage of shipping 2
|
||||
MigrationFinished=Migration finished
|
||||
LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
|
||||
ActivateModule=Activate module %s
|
||||
ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
|
||||
|
||||
#########
|
||||
# upgrade
|
||||
#########
|
||||
# MigrationFixData=Fix for denormalized data
|
||||
# MigrationOrder=Data migration for customer's orders
|
||||
# MigrationSupplierOrder=Data migration for supplier's orders
|
||||
# MigrationProposal=Data migration for commercial proposals
|
||||
# MigrationInvoice=Data migration for customer's invoices
|
||||
# MigrationContract=Data migration for contracts
|
||||
# MigrationSuccessfullUpdate=Upgrade successful
|
||||
# MigrationUpdateFailed=Failed upgrade process
|
||||
# MigrationRelationshipTables=Data migration for relationship tables (%s)
|
||||
# MigrationPaymentsUpdate=Payment data correction
|
||||
# MigrationPaymentsNumberToUpdate=%s payment(s) to update
|
||||
# MigrationProcessPaymentUpdate=Update payment(s) %s
|
||||
# MigrationPaymentsNothingToUpdate=No more things to do
|
||||
# MigrationPaymentsNothingUpdatable=No more payments that can be corrected
|
||||
# MigrationContractsUpdate=Contract data correction
|
||||
# MigrationContractsNumberToUpdate=%s contract(s) to update
|
||||
# MigrationContractsLineCreation=Create contract line for contract ref %s
|
||||
# MigrationContractsNothingToUpdate=No more things to do
|
||||
# MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
|
||||
# MigrationContractsEmptyDatesUpdate=Contract empty date correction
|
||||
# MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfuly
|
||||
# MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
|
||||
# MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
|
||||
# MigrationContractsInvalidDatesUpdate=Bad value date contract correction
|
||||
# MigrationContractsInvalidDateFix=Correct contract %s (Contract date=%s, Starting service date min=%s)
|
||||
# MigrationContractsInvalidDatesNumber=%s contracts modified
|
||||
# MigrationContractsInvalidDatesNothingToUpdate=No date with bad value to correct
|
||||
# MigrationContractsIncoherentCreationDateUpdate=Bad value contract creation date correction
|
||||
# MigrationContractsIncoherentCreationDateUpdateSuccess=Bad value contract creation date correction done succesfuly
|
||||
# MigrationContractsIncoherentCreationDateNothingToUpdate=No bad value for contract creation date to correct
|
||||
# MigrationReopeningContracts=Open contract closed by error
|
||||
# MigrationReopenThisContract=Reopen contract %s
|
||||
# MigrationReopenedContractsNumber=%s contracts modified
|
||||
# MigrationReopeningContractsNothingToUpdate=No closed contract to open
|
||||
# MigrationBankTransfertsUpdate=Update links between bank transaction and a bank transfer
|
||||
# MigrationBankTransfertsNothingToUpdate=All links are up to date
|
||||
# MigrationShipmentOrderMatching=Sendings receipt update
|
||||
# MigrationDeliveryOrderMatching=Delivery receipt update
|
||||
# MigrationDeliveryDetail=Delivery update
|
||||
# MigrationStockDetail=Update stock value of products
|
||||
# MigrationMenusDetail=Update dynamic menus tables
|
||||
# MigrationDeliveryAddress=Update delivery address in shipments
|
||||
# MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
|
||||
# MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
|
||||
# MigrationProjectTaskTime=Update time spent in seconds
|
||||
# MigrationActioncommElement=Update data on actions
|
||||
# MigrationPaymentMode=Data migration for payment mode
|
||||
# MigrationCategorieAssociation=Migration of categories
|
||||
MigrationFixData=Fix for denormalized data
|
||||
MigrationOrder=Data migration for customer's orders
|
||||
MigrationSupplierOrder=Data migration for supplier's orders
|
||||
MigrationProposal=Data migration for commercial proposals
|
||||
MigrationInvoice=Data migration for customer's invoices
|
||||
MigrationContract=Data migration for contracts
|
||||
MigrationSuccessfullUpdate=Upgrade successful
|
||||
MigrationUpdateFailed=Failed upgrade process
|
||||
MigrationRelationshipTables=Data migration for relationship tables (%s)
|
||||
MigrationPaymentsUpdate=Payment data correction
|
||||
MigrationPaymentsNumberToUpdate=%s payment(s) to update
|
||||
MigrationProcessPaymentUpdate=Update payment(s) %s
|
||||
MigrationPaymentsNothingToUpdate=No more things to do
|
||||
MigrationPaymentsNothingUpdatable=No more payments that can be corrected
|
||||
MigrationContractsUpdate=Contract data correction
|
||||
MigrationContractsNumberToUpdate=%s contract(s) to update
|
||||
MigrationContractsLineCreation=Create contract line for contract ref %s
|
||||
MigrationContractsNothingToUpdate=No more things to do
|
||||
MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
|
||||
MigrationContractsEmptyDatesUpdate=Contract empty date correction
|
||||
MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfuly
|
||||
MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
|
||||
MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
|
||||
MigrationContractsInvalidDatesUpdate=Bad value date contract correction
|
||||
MigrationContractsInvalidDateFix=Correct contract %s (Contract date=%s, Starting service date min=%s)
|
||||
MigrationContractsInvalidDatesNumber=%s contracts modified
|
||||
MigrationContractsInvalidDatesNothingToUpdate=No date with bad value to correct
|
||||
MigrationContractsIncoherentCreationDateUpdate=Bad value contract creation date correction
|
||||
MigrationContractsIncoherentCreationDateUpdateSuccess=Bad value contract creation date correction done succesfuly
|
||||
MigrationContractsIncoherentCreationDateNothingToUpdate=No bad value for contract creation date to correct
|
||||
MigrationReopeningContracts=Open contract closed by error
|
||||
MigrationReopenThisContract=Reopen contract %s
|
||||
MigrationReopenedContractsNumber=%s contracts modified
|
||||
MigrationReopeningContractsNothingToUpdate=No closed contract to open
|
||||
MigrationBankTransfertsUpdate=Update links between bank transaction and a bank transfer
|
||||
MigrationBankTransfertsNothingToUpdate=All links are up to date
|
||||
MigrationShipmentOrderMatching=Sendings receipt update
|
||||
MigrationDeliveryOrderMatching=Delivery receipt update
|
||||
MigrationDeliveryDetail=Delivery update
|
||||
MigrationStockDetail=Update stock value of products
|
||||
MigrationMenusDetail=Update dynamic menus tables
|
||||
MigrationDeliveryAddress=Update delivery address in shipments
|
||||
MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
|
||||
MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
|
||||
MigrationProjectTaskTime=Update time spent in seconds
|
||||
MigrationActioncommElement=Update data on actions
|
||||
MigrationPaymentMode=Data migration for payment mode
|
||||
MigrationCategorieAssociation=Migration of categories
|
||||
|
||||
ShowNotAvailableOptions=Show not available options
|
||||
HideNotAvailableOptions=Hide not available options
|
||||
|
||||
@ -1,152 +1,150 @@
|
||||
# Dolibarr language file - Source file is en_US - holiday
|
||||
# HRM=HRM
|
||||
# Holidays=Holidays
|
||||
# CPTitreMenu=Holidays
|
||||
# MenuReportMonth=Monthly statement
|
||||
# MenuAddCP=Apply for holidays
|
||||
# NotActiveModCP=You must enable the module holidays to view this page.
|
||||
# NotConfigModCP=You must configure the module holidays to view this page. To do this, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> click here </ a>.
|
||||
# NoCPforUser=You don't have a demand for holidays.
|
||||
# AddCP=Apply for holidays
|
||||
# CPErrorSQL=An SQL error occurred:
|
||||
# Employe=Employee
|
||||
HRM=HRM
|
||||
Holidays=Holidays
|
||||
CPTitreMenu=Holidays
|
||||
MenuReportMonth=Monthly statement
|
||||
MenuAddCP=Apply for holidays
|
||||
NotActiveModCP=You must enable the module holidays to view this page.
|
||||
NotConfigModCP=You must configure the module holidays to view this page. To do this, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> click here </ a>.
|
||||
NoCPforUser=You don't have a demand for holidays.
|
||||
AddCP=Apply for holidays
|
||||
CPErrorSQL=An SQL error occurred:
|
||||
Employe=Employee
|
||||
DateDebCP=تاريخ البدء
|
||||
DateFinCP=نهاية التاريخ
|
||||
DateCreateCP=تاريخ الإنشاء
|
||||
DraftCP=مسودة
|
||||
# ToReviewCP=Awaiting approval
|
||||
ToReviewCP=Awaiting approval
|
||||
ApprovedCP=وافق
|
||||
CancelCP=ألغيت
|
||||
RefuseCP=رفض
|
||||
# ValidatorCP=Approbator
|
||||
# ListeCP=List of holidays
|
||||
# ReviewedByCP=Will be reviewed by
|
||||
ValidatorCP=Approbator
|
||||
ListeCP=List of holidays
|
||||
ReviewedByCP=Will be reviewed by
|
||||
DescCP=وصف
|
||||
# SendRequestCP=Creating demand for holidays
|
||||
# DelayToRequestCP=Applications for holidays must be made at least <b>%s day(s)</b> before them.
|
||||
# MenuConfCP=Edit balance of holidays
|
||||
# UpdateAllCP=Update the holidays
|
||||
# SoldeCPUser=Holidays balance is <b>%s</b> days.
|
||||
# ErrorEndDateCP=You must select an end date greater than the start date.
|
||||
# ErrorSQLCreateCP=An SQL error occurred during the creation:
|
||||
# ErrorIDFicheCP=An error has occurred, the request for holidays does not exist.
|
||||
# ReturnCP=Return to previous page
|
||||
# ErrorUserViewCP=You are not authorized to read this request for holidays.
|
||||
# InfosCP=Information of the demand of holidays
|
||||
# InfosWorkflowCP=Information Workflow
|
||||
DateCreateCP=تاريخ الإنشاء
|
||||
# RequestByCP=Requested by
|
||||
# TitreRequestCP=Sheet of holidays
|
||||
# NbUseDaysCP=Number of days of holidays consumed
|
||||
SendRequestCP=Creating demand for holidays
|
||||
DelayToRequestCP=Applications for holidays must be made at least <b>%s day(s)</b> before them.
|
||||
MenuConfCP=Edit balance of holidays
|
||||
UpdateAllCP=Update the holidays
|
||||
SoldeCPUser=Holidays balance is <b>%s</b> days.
|
||||
ErrorEndDateCP=You must select an end date greater than the start date.
|
||||
ErrorSQLCreateCP=An SQL error occurred during the creation:
|
||||
ErrorIDFicheCP=An error has occurred, the request for holidays does not exist.
|
||||
ReturnCP=Return to previous page
|
||||
ErrorUserViewCP=You are not authorized to read this request for holidays.
|
||||
InfosCP=Information of the demand of holidays
|
||||
InfosWorkflowCP=Information Workflow
|
||||
RequestByCP=Requested by
|
||||
TitreRequestCP=Sheet of holidays
|
||||
NbUseDaysCP=Number of days of holidays consumed
|
||||
EditCP=ویرایش
|
||||
DeleteCP=حذف
|
||||
ActionValidCP=تایید کردن
|
||||
# ActionRefuseCP=Refuse
|
||||
ActionRefuseCP=Refuse
|
||||
ActionCancelCP=لغو
|
||||
StatutCP=حالة
|
||||
# SendToValidationCP=Send to validation
|
||||
# TitleDeleteCP=Delete the request of holidays
|
||||
# ConfirmDeleteCP=Confirm the deletion of this request for holidays?
|
||||
# ErrorCantDeleteCP=Error you don't have the right to delete this holiday request.
|
||||
# CantCreateCP=You don't have the right to apply for holidays.
|
||||
# InvalidValidatorCP=You must choose an approbator to your holiday request.
|
||||
SendToValidationCP=Send to validation
|
||||
TitleDeleteCP=Delete the request of holidays
|
||||
ConfirmDeleteCP=Confirm the deletion of this request for holidays?
|
||||
ErrorCantDeleteCP=Error you don't have the right to delete this holiday request.
|
||||
CantCreateCP=You don't have the right to apply for holidays.
|
||||
InvalidValidatorCP=You must choose an approbator to your holiday request.
|
||||
UpdateButtonCP=به روز کردن
|
||||
# CantUpdate=You cannot update this request of holidays.
|
||||
# NoDateDebut=You must select a start date.
|
||||
# NoDateFin=You must select an end date.
|
||||
# ErrorDureeCP=Your request for holidays does not contain working day.
|
||||
# TitleValidCP=Approve the request holidays
|
||||
# ConfirmValidCP=Are you sure you want to approve the holiday request?
|
||||
# DateValidCP=Date approved
|
||||
# TitleToValidCP=Send request holidays
|
||||
# ConfirmToValidCP=Are you sure you want to send the request of holidays?
|
||||
# TitleRefuseCP=Refuse the request holidays
|
||||
# ConfirmRefuseCP=Are you sure you want to refuse the request of holidays?
|
||||
# NoMotifRefuseCP=You must choose a reason for refusing the request.
|
||||
# TitleCancelCP=Cancel the request holidays
|
||||
# ConfirmCancelCP=Are you sure you want to cancel the request of holidays?
|
||||
# DetailRefusCP=Reason for refusal
|
||||
# DateRefusCP=Date of refusal
|
||||
# DateCancelCP=Date of cancellation
|
||||
# DefineEventUserCP=Assign an exceptional leave for a user
|
||||
# addEventToUserCP=Assign leave
|
||||
CantUpdate=You cannot update this request of holidays.
|
||||
NoDateDebut=You must select a start date.
|
||||
NoDateFin=You must select an end date.
|
||||
ErrorDureeCP=Your request for holidays does not contain working day.
|
||||
TitleValidCP=Approve the request holidays
|
||||
ConfirmValidCP=Are you sure you want to approve the holiday request?
|
||||
DateValidCP=Date approved
|
||||
TitleToValidCP=Send request holidays
|
||||
ConfirmToValidCP=Are you sure you want to send the request of holidays?
|
||||
TitleRefuseCP=Refuse the request holidays
|
||||
ConfirmRefuseCP=Are you sure you want to refuse the request of holidays?
|
||||
NoMotifRefuseCP=You must choose a reason for refusing the request.
|
||||
TitleCancelCP=Cancel the request holidays
|
||||
ConfirmCancelCP=Are you sure you want to cancel the request of holidays?
|
||||
DetailRefusCP=Reason for refusal
|
||||
DateRefusCP=Date of refusal
|
||||
DateCancelCP=Date of cancellation
|
||||
DefineEventUserCP=Assign an exceptional leave for a user
|
||||
addEventToUserCP=Assign leave
|
||||
MotifCP=سبب
|
||||
UserCP=مستخدم
|
||||
# ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
|
||||
# AddEventToUserOkCP=The addition of the exceptional leave has been completed.
|
||||
# MenuLogCP=View logs of holidays
|
||||
# LogCP=Log of updates of holidays
|
||||
# ActionByCP=Performed by
|
||||
# UserUpdateCP=For the user
|
||||
# PrevSoldeCP=Previous Balance
|
||||
# NewSoldeCP=New Balance
|
||||
# alreadyCPexist=A request for holidays has already been done on this period.
|
||||
ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
|
||||
AddEventToUserOkCP=The addition of the exceptional leave has been completed.
|
||||
MenuLogCP=View logs of holidays
|
||||
LogCP=Log of updates of holidays
|
||||
ActionByCP=Performed by
|
||||
UserUpdateCP=For the user
|
||||
PrevSoldeCP=Previous Balance
|
||||
NewSoldeCP=New Balance
|
||||
alreadyCPexist=A request for holidays has already been done on this period.
|
||||
UserName=اسم
|
||||
# Employee=Employee
|
||||
# FirstDayOfHoliday=First day of holiday
|
||||
# LastDayOfHoliday=Last day of holiday
|
||||
# HolidaysMonthlyUpdate=Monthly update
|
||||
# ManualUpdate=Manual update
|
||||
# HolidaysCancelation=Holidays cancelation
|
||||
Employee=Employee
|
||||
FirstDayOfHoliday=First day of holiday
|
||||
LastDayOfHoliday=Last day of holiday
|
||||
HolidaysMonthlyUpdate=Monthly update
|
||||
ManualUpdate=Manual update
|
||||
HolidaysCancelation=Holidays cancelation
|
||||
|
||||
## Configuration du Module ##
|
||||
# ConfCP=Configuration of holidays module
|
||||
# DescOptionCP=Description of the option
|
||||
ConfCP=Configuration of holidays module
|
||||
DescOptionCP=Description of the option
|
||||
ValueOptionCP=القيمة
|
||||
# GroupToValidateCP=Group with the ability to approve holidays
|
||||
# ConfirmConfigCP=Validate the configuration
|
||||
# LastUpdateCP=Last updated automatically of holidays
|
||||
# UpdateConfCPOK=Updated successfully.
|
||||
# ErrorUpdateConfCP=An error occurred during the update, please try again.
|
||||
# AddCPforUsers=Please add the balance of holidays of users by <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">clicking here</a>.
|
||||
# DelayForSubmitCP=Deadline to apply for holidays
|
||||
# AlertapprobatortorDelayCP=Prevent the approbator if the holiday request does not match the deadline
|
||||
# AlertValidatorDelayCP=Préevent the approbator if the holiday request exceed delay
|
||||
# AlertValidorSoldeCP=Prevent the approbator if the holiday request exceed the balance
|
||||
# nbUserCP=Number of users supported in the module holidays
|
||||
# nbHolidayDeductedCP=Number of holidays to be deducted per day of holiday taken
|
||||
# nbHolidayEveryMonthCP=Number of holidays added every month
|
||||
# Module27130Name= Management of holidays
|
||||
# Module27130Desc= Management of holidays
|
||||
# TitleOptionMainCP=Main settings of holidays
|
||||
# TitleOptionEventCP=Settings of holidays related to events
|
||||
GroupToValidateCP=Group with the ability to approve holidays
|
||||
ConfirmConfigCP=Validate the configuration
|
||||
LastUpdateCP=Last updated automatically of holidays
|
||||
UpdateConfCPOK=Updated successfully.
|
||||
ErrorUpdateConfCP=An error occurred during the update, please try again.
|
||||
AddCPforUsers=Please add the balance of holidays of users by <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">clicking here</a>.
|
||||
DelayForSubmitCP=Deadline to apply for holidays
|
||||
AlertapprobatortorDelayCP=Prevent the approbator if the holiday request does not match the deadline
|
||||
AlertValidatorDelayCP=Préevent the approbator if the holiday request exceed delay
|
||||
AlertValidorSoldeCP=Prevent the approbator if the holiday request exceed the balance
|
||||
nbUserCP=Number of users supported in the module holidays
|
||||
nbHolidayDeductedCP=Number of holidays to be deducted per day of holiday taken
|
||||
nbHolidayEveryMonthCP=Number of holidays added every month
|
||||
Module27130Name= Management of holidays
|
||||
Module27130Desc= Management of holidays
|
||||
TitleOptionMainCP=Main settings of holidays
|
||||
TitleOptionEventCP=Settings of holidays related to events
|
||||
ValidEventCP=تایید کردن
|
||||
# UpdateEventCP=Update events
|
||||
UpdateEventCP=Update events
|
||||
CreateEventCP=خلق
|
||||
# NameEventCP=Event name
|
||||
# OkCreateEventCP=The addition of the event went well.
|
||||
# ErrorCreateEventCP=Error creating the event.
|
||||
# UpdateEventOkCP=The update of the event went well.
|
||||
# ErrorUpdateEventCP=Error while updating the event.
|
||||
# DeleteEventCP=Delete Event
|
||||
# DeleteEventOkCP=The event has been deleted.
|
||||
# ErrorDeleteEventCP=Error while deleting the event.
|
||||
# TitleDeleteEventCP=Delete a exceptional leave
|
||||
# TitleCreateEventCP=Create a exceptional leave
|
||||
# TitleUpdateEventCP=Edit or delete a exceptional leave
|
||||
NameEventCP=Event name
|
||||
OkCreateEventCP=The addition of the event went well.
|
||||
ErrorCreateEventCP=Error creating the event.
|
||||
UpdateEventOkCP=The update of the event went well.
|
||||
ErrorUpdateEventCP=Error while updating the event.
|
||||
DeleteEventCP=Delete Event
|
||||
DeleteEventOkCP=The event has been deleted.
|
||||
ErrorDeleteEventCP=Error while deleting the event.
|
||||
TitleDeleteEventCP=Delete a exceptional leave
|
||||
TitleCreateEventCP=Create a exceptional leave
|
||||
TitleUpdateEventCP=Edit or delete a exceptional leave
|
||||
DeleteEventOptionCP=حذف
|
||||
UpdateEventOptionCP=به روز کردن
|
||||
# ErrorMailNotSend=An error occurred while sending email:
|
||||
# NoCPforMonth=No leave this month.
|
||||
# nbJours=Number days
|
||||
# TitleAdminCP=Configuration of Holidays
|
||||
|
||||
ErrorMailNotSend=An error occurred while sending email:
|
||||
NoCPforMonth=No leave this month.
|
||||
nbJours=Number days
|
||||
TitleAdminCP=Configuration of Holidays
|
||||
#Messages
|
||||
# Hello=Hello
|
||||
# HolidaysToValidate=Validate holidays
|
||||
# HolidaysToValidateBody=Below is a request for holidays to validate
|
||||
# HolidaysToValidateDelay=This request for holidays will take place within a period of less than %s days.
|
||||
# HolidaysToValidateAlertSolde=The user who made this request for holidays do not have enough available days.
|
||||
# HolidaysValidated=Validated holidays
|
||||
# HolidaysValidatedBody=Your request for holidays for %s to %s has been validated.
|
||||
# HolidaysRefused=Denied holidays
|
||||
# HolidaysRefusedBody=Your request for holidays for %s to %s has been denied for the following reason :
|
||||
# HolidaysCanceled=Canceled holidays
|
||||
# HolidaysCanceledBody=Your request for holidays for %s to %s has been canceled.
|
||||
|
||||
# Permission20001=Read/create/modify their holidays
|
||||
# Permission20002=Read/modify all requests of holidays
|
||||
# Permission20003=Delete their holidays requests
|
||||
# Permission20004=Define users holidays
|
||||
# Permission20005=Review log of modified holidays
|
||||
# Permission20006=Access holidays monthly report
|
||||
Hello=Hello
|
||||
HolidaysToValidate=Validate holidays
|
||||
HolidaysToValidateBody=Below is a request for holidays to validate
|
||||
HolidaysToValidateDelay=This request for holidays will take place within a period of less than %s days.
|
||||
HolidaysToValidateAlertSolde=The user who made this request for holidays do not have enough available days.
|
||||
HolidaysValidated=Validated holidays
|
||||
HolidaysValidatedBody=Your request for holidays for %s to %s has been validated.
|
||||
HolidaysRefused=Denied holidays
|
||||
HolidaysRefusedBody=Your request for holidays for %s to %s has been denied for the following reason :
|
||||
HolidaysCanceled=Canceled holidays
|
||||
HolidaysCanceledBody=Your request for holidays for %s to %s has been canceled.
|
||||
Permission20000=Read you own holidays
|
||||
Permission20001=Create/modify your holidays
|
||||
Permission20002=Create/modify holidays for everybody
|
||||
Permission20003=Delete holidays requests
|
||||
Permission20004=Setup users holidays
|
||||
Permission20005=Review log of modified holidays
|
||||
Permission20006=Read holidays monthly report
|
||||
|
||||
@ -8,7 +8,7 @@ ConfFileDoesNotExistsAndCouldNotBeCreated=ملفات <b>ل ٪</b> لا وجود
|
||||
ConfFileCouldBeCreated=ملفات <b>ل ٪</b> ويمكن أن تنشأ.
|
||||
ConfFileIsNotWritable=ملفات <b>٪ ق</b> ليست للكتابة. التحقق من الأذونات. أولا لتركيب وخدمة الويب الخاص بك يجب أن تمنح ليكون قادرا على الكتابة في هذا الملف خلال عملية التهيئة ( "chmod 666" على سبيل المثال ، مثل نظام التشغيل يونكس).
|
||||
ConfFileIsWritable=ملفات للكتابة هو <b>٪ ق.</b>
|
||||
# ConfFileReload=Reload all information from configuration file.
|
||||
ConfFileReload=Reload all information from configuration file.
|
||||
PHPSupportSessions=ويدعم هذا PHP الدورات.
|
||||
PHPSupportPOSTGETOk=ويدعم هذا PHP المتغيرات والحصول على الوظائف.
|
||||
PHPSupportPOSTGETKo=فمن الممكن PHP الإعداد الخاص بك لا يدعم الوظائف المتغيرات و / أو الحصول عليه. التحقق من اتصالك <b>variables_order</b> معلمة في php.ini.
|
||||
@ -25,14 +25,14 @@ ErrorGoBackAndCorrectParameters=العودة إلى الوراء وتصحيح ا
|
||||
ErrorWrongValueForParameter=قد تكون لديكم مطبوعة خاطئة قيمة معلمة '٪ ق.
|
||||
ErrorFailedToCreateDatabase=فشل إنشاء قاعدة بيانات '٪ ق.
|
||||
ErrorFailedToConnectToDatabase=فشل في الاتصال بقاعدة البيانات '٪ ق.
|
||||
# ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
|
||||
ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
|
||||
ErrorPHPVersionTooLow=PHP نسخة قديمة جدا. النسخة ٪ ق هو مطلوب.
|
||||
# WarningPHPVersionTooLow=PHP version too old. Version %s or more is expected. This version should allow install but is not supported.
|
||||
WarningPHPVersionTooLow=PHP version too old. Version %s or more is expected. This version should allow install but is not supported.
|
||||
ErrorConnectedButDatabaseNotFound=خادم الصدد الى قاعدة البيانات ولكن النجاح في '٪ ق' لم يتم العثور عليه.
|
||||
ErrorDatabaseAlreadyExists=قاعدة البيانات '٪ ق' موجود بالفعل.
|
||||
IfDatabaseNotExistsGoBackAndUncheckCreate=إذا كان لا وجود قاعدة بيانات ، والتأكد من العودة الخيار "إنشاء قاعدة بيانات".
|
||||
IfDatabaseExistsGoBackAndCheckCreate=إذا كانت قاعدة البيانات موجود بالفعل ، من العودة وإلغاء "إنشاء قاعدة بيانات" الخيار.
|
||||
# WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
|
||||
WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
|
||||
PHPVersion=PHP الإصدار
|
||||
YouCanContinue=يمكنك الاستمرار...
|
||||
PleaseBePatient=يرجى التحلي بالصبر...
|
||||
@ -52,7 +52,7 @@ ServerAddressDescription=الملكية الفكرية في اسم أو عنوا
|
||||
ServerPortDescription=قاعدة بيانات الميناء. تبقي فارغة إذا كانت غير معروفة.
|
||||
DatabaseServer=خادم قاعدة البيانات
|
||||
DatabaseName=اسم قاعدة البيانات
|
||||
# DatabasePrefix=Database prefix table
|
||||
DatabasePrefix=Database prefix table
|
||||
Login=تسجيل الدخول
|
||||
AdminLogin=ادخل لDolibarr مدير قاعدة البيانات. تبقي فارغة إذا لم يذكر اسمه في اتصال
|
||||
Password=كلمة السر
|
||||
@ -135,13 +135,13 @@ RemoveItManuallyAndPressF5ToContinue=إزالته يدويا واضغط F5 لل
|
||||
KeepDefaultValuesWamp=استخدام معالج الإعداد DoliWamp ، حتى القيم المقترحة هنا بالفعل الأمثل. تغييرها إلا إذا كنت تعرف ما تفعله.
|
||||
KeepDefaultValuesDeb=يمكنك استخدام معالج الإعداد Dolibarr من أوبونتو أو حزمة ديبيان ، لذلك القيم المقترحة هنا هي الأمثل بالفعل. يجب أن تكتمل إلا كلمة السر للمالك قاعدة البيانات لإنشاء. تغيير معلمات أخرى إلا إذا كنت تعرف ما تفعله.
|
||||
KeepDefaultValuesMamp=استخدام معالج الإعداد DoliMamp ، حتى القيم المقترحة هنا بالفعل الأمثل. تغييرها إلا إذا كنت تعرف ما تفعله.
|
||||
# KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
|
||||
KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
|
||||
FieldRenamed=تغيير اسم الميدان
|
||||
IfLoginDoesNotExistsCheckCreateUser=اذا ادخل لا يوجد حتى الآن ، يجب عليك التحقق من خيار "تكوين المستخدم"
|
||||
ErrorConnection=الخادم <b>"٪ ل"</b> اسم قاعدة بيانات <b>"٪ ل"</b> ادخل <b>"٪ ل"</b> أو كلمة سر قاعدة البيانات قد تكون خاطئة أو PHP العميل نسخة قديمة جدا ويمكن مقارنة مع قاعدة البيانات نسخة.
|
||||
InstallChoiceRecommanded=وأوصت لتثبيت اختيار النسخة <b>٪ المستندات</b> الخاصة بك من النسخة الحالية <b>ل ٪</b>
|
||||
InstallChoiceSuggested=<b>اقترح تثبيت اختيار المثبت.</b>
|
||||
# MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
|
||||
MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
|
||||
CheckThatDatabasenameIsCorrect=تأكد من أن اسم قاعدة البيانات <b>"%s"</b> هو الصحيح.
|
||||
IfAlreadyExistsCheckOption=وإذا كان هذا الاسم هو الصحيح وأنه لا وجود قاعدة بيانات حتى الآن ، ويجب التحقق من خيار "إنشاء قاعدة بيانات".
|
||||
OpenBaseDir=بي openbasedir المعلمة
|
||||
@ -153,12 +153,11 @@ MigrationShippingDelivery=ترقية تخزين الشحن
|
||||
MigrationShippingDelivery2=ترقية تخزين الشحن 2
|
||||
MigrationFinished=مهاجرت به پایان رسید
|
||||
LastStepDesc=<strong>آخرین مرحله</strong> : در اینجا با نام کاربری خود وارد شوید و رمز عبور تعریف شما قصد دارید استفاده برای اتصال به نرم افزار. سست این ، آن را به عنوان حساب اداره از همه دیگران نیست.
|
||||
# ActivateModule=Activate module %s
|
||||
# ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
|
||||
ActivateModule=Activate module %s
|
||||
ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
|
||||
|
||||
#########
|
||||
# upgrade
|
||||
#########
|
||||
MigrationFixData=إصلاح البيانات الذي لم تتم تسويته
|
||||
MigrationOrder=بيانات الهجرة طلبات الزبائن
|
||||
MigrationSupplierOrder=بيانات الهجرة من أجل الموردين أوامر
|
||||
@ -205,5 +204,8 @@ MigrationProjectTaskActors=بيانات الهجرة لllx_projet_task_actors ا
|
||||
MigrationProjectUserResp=بيانات fk_user_resp مجال الهجرة من llx_projet لllx_element_contact
|
||||
MigrationProjectTaskTime=تحديث الوقت الذي يقضيه في ثوان
|
||||
MigrationActioncommElement=به روز رسانی داده ها در اعمال
|
||||
# MigrationPaymentMode=Data migration for payment mode
|
||||
# MigrationCategorieAssociation=Migration of categories
|
||||
MigrationPaymentMode=Data migration for payment mode
|
||||
MigrationCategorieAssociation=Migration of categories
|
||||
|
||||
ShowNotAvailableOptions=Show not available options
|
||||
HideNotAvailableOptions=Hide not available options
|
||||
|
||||
@ -1,152 +1,150 @@
|
||||
# Dolibarr language file - Source file is en_US - holiday
|
||||
# HRM=HRM
|
||||
# Holidays=Holidays
|
||||
# CPTitreMenu=Holidays
|
||||
# MenuReportMonth=Monthly statement
|
||||
# MenuAddCP=Apply for holidays
|
||||
# NotActiveModCP=You must enable the module holidays to view this page.
|
||||
# NotConfigModCP=You must configure the module holidays to view this page. To do this, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> click here </ a>.
|
||||
# NoCPforUser=You don't have a demand for holidays.
|
||||
# AddCP=Apply for holidays
|
||||
# CPErrorSQL=An SQL error occurred:
|
||||
# Employe=Employee
|
||||
HRM=HRM
|
||||
Holidays=Vapaapäivät
|
||||
CPTitreMenu=Holidays
|
||||
MenuReportMonth=Monthly statement
|
||||
MenuAddCP=Apply for holidays
|
||||
NotActiveModCP=Sinun täytyy aktivoida lomat -moduuli nähdäksesi tämän sivun.
|
||||
NotConfigModCP=You must configure the module holidays to view this page. To do this, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> click here </ a>.
|
||||
NoCPforUser=Sinulla ei ole voimassa olevaa lomatoivomusta.
|
||||
AddCP=Apply for holidays
|
||||
CPErrorSQL=An SQL error occurred:
|
||||
Employe=Työntekijä
|
||||
DateDebCP=Aloituspäivämäärä
|
||||
DateFinCP=Lopetuspäivä
|
||||
DateCreateCP=Luontipäivämäärä
|
||||
DraftCP=Luonnos
|
||||
# ToReviewCP=Awaiting approval
|
||||
ToReviewCP=Awaiting approval
|
||||
ApprovedCP=Hyväksytty
|
||||
CancelCP=Peruttu
|
||||
RefuseCP=Refused
|
||||
# ValidatorCP=Approbator
|
||||
# ListeCP=List of holidays
|
||||
# ReviewedByCP=Will be reviewed by
|
||||
ValidatorCP=Approbator
|
||||
ListeCP=List of holidays
|
||||
ReviewedByCP=Will be reviewed by
|
||||
DescCP=Kuvaus
|
||||
# SendRequestCP=Creating demand for holidays
|
||||
# DelayToRequestCP=Applications for holidays must be made at least <b>%s day(s)</b> before them.
|
||||
# MenuConfCP=Edit balance of holidays
|
||||
# UpdateAllCP=Update the holidays
|
||||
# SoldeCPUser=Holidays balance is <b>%s</b> days.
|
||||
# ErrorEndDateCP=You must select an end date greater than the start date.
|
||||
# ErrorSQLCreateCP=An SQL error occurred during the creation:
|
||||
# ErrorIDFicheCP=An error has occurred, the request for holidays does not exist.
|
||||
# ReturnCP=Return to previous page
|
||||
# ErrorUserViewCP=You are not authorized to read this request for holidays.
|
||||
# InfosCP=Information of the demand of holidays
|
||||
# InfosWorkflowCP=Information Workflow
|
||||
DateCreateCP=Luontipäivämäärä
|
||||
# RequestByCP=Requested by
|
||||
# TitreRequestCP=Sheet of holidays
|
||||
# NbUseDaysCP=Number of days of holidays consumed
|
||||
SendRequestCP=Creating demand for holidays
|
||||
DelayToRequestCP=Applications for holidays must be made at least <b>%s day(s)</b> before them.
|
||||
MenuConfCP=Edit balance of holidays
|
||||
UpdateAllCP=Update the holidays
|
||||
SoldeCPUser=Holidays balance is <b>%s</b> days.
|
||||
ErrorEndDateCP=You must select an end date greater than the start date.
|
||||
ErrorSQLCreateCP=An SQL error occurred during the creation:
|
||||
ErrorIDFicheCP=An error has occurred, the request for holidays does not exist.
|
||||
ReturnCP=Return to previous page
|
||||
ErrorUserViewCP=You are not authorized to read this request for holidays.
|
||||
InfosCP=Information of the demand of holidays
|
||||
InfosWorkflowCP=Information Workflow
|
||||
RequestByCP=Requested by
|
||||
TitreRequestCP=Sheet of holidays
|
||||
NbUseDaysCP=Number of days of holidays consumed
|
||||
EditCP=Muokkaa
|
||||
DeleteCP=Poistaa
|
||||
ActionValidCP=Validate
|
||||
# ActionRefuseCP=Refuse
|
||||
ActionRefuseCP=Refuse
|
||||
ActionCancelCP=Peruuta
|
||||
StatutCP=Tila
|
||||
# SendToValidationCP=Send to validation
|
||||
# TitleDeleteCP=Delete the request of holidays
|
||||
# ConfirmDeleteCP=Confirm the deletion of this request for holidays?
|
||||
# ErrorCantDeleteCP=Error you don't have the right to delete this holiday request.
|
||||
# CantCreateCP=You don't have the right to apply for holidays.
|
||||
# InvalidValidatorCP=You must choose an approbator to your holiday request.
|
||||
SendToValidationCP=Send to validation
|
||||
TitleDeleteCP=Delete the request of holidays
|
||||
ConfirmDeleteCP=Confirm the deletion of this request for holidays?
|
||||
ErrorCantDeleteCP=Error you don't have the right to delete this holiday request.
|
||||
CantCreateCP=You don't have the right to apply for holidays.
|
||||
InvalidValidatorCP=You must choose an approbator to your holiday request.
|
||||
UpdateButtonCP=Päivittää
|
||||
# CantUpdate=You cannot update this request of holidays.
|
||||
# NoDateDebut=You must select a start date.
|
||||
# NoDateFin=You must select an end date.
|
||||
# ErrorDureeCP=Your request for holidays does not contain working day.
|
||||
# TitleValidCP=Approve the request holidays
|
||||
# ConfirmValidCP=Are you sure you want to approve the holiday request?
|
||||
# DateValidCP=Date approved
|
||||
# TitleToValidCP=Send request holidays
|
||||
# ConfirmToValidCP=Are you sure you want to send the request of holidays?
|
||||
# TitleRefuseCP=Refuse the request holidays
|
||||
# ConfirmRefuseCP=Are you sure you want to refuse the request of holidays?
|
||||
# NoMotifRefuseCP=You must choose a reason for refusing the request.
|
||||
# TitleCancelCP=Cancel the request holidays
|
||||
# ConfirmCancelCP=Are you sure you want to cancel the request of holidays?
|
||||
# DetailRefusCP=Reason for refusal
|
||||
# DateRefusCP=Date of refusal
|
||||
# DateCancelCP=Date of cancellation
|
||||
# DefineEventUserCP=Assign an exceptional leave for a user
|
||||
# addEventToUserCP=Assign leave
|
||||
CantUpdate=You cannot update this request of holidays.
|
||||
NoDateDebut=You must select a start date.
|
||||
NoDateFin=You must select an end date.
|
||||
ErrorDureeCP=Your request for holidays does not contain working day.
|
||||
TitleValidCP=Approve the request holidays
|
||||
ConfirmValidCP=Are you sure you want to approve the holiday request?
|
||||
DateValidCP=Date approved
|
||||
TitleToValidCP=Send request holidays
|
||||
ConfirmToValidCP=Are you sure you want to send the request of holidays?
|
||||
TitleRefuseCP=Refuse the request holidays
|
||||
ConfirmRefuseCP=Are you sure you want to refuse the request of holidays?
|
||||
NoMotifRefuseCP=You must choose a reason for refusing the request.
|
||||
TitleCancelCP=Cancel the request holidays
|
||||
ConfirmCancelCP=Are you sure you want to cancel the request of holidays?
|
||||
DetailRefusCP=Reason for refusal
|
||||
DateRefusCP=Date of refusal
|
||||
DateCancelCP=Date of cancellation
|
||||
DefineEventUserCP=Assign an exceptional leave for a user
|
||||
addEventToUserCP=Assign leave
|
||||
MotifCP=Syy
|
||||
UserCP=Käyttäjä
|
||||
# ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
|
||||
# AddEventToUserOkCP=The addition of the exceptional leave has been completed.
|
||||
# MenuLogCP=View logs of holidays
|
||||
# LogCP=Log of updates of holidays
|
||||
# ActionByCP=Performed by
|
||||
# UserUpdateCP=For the user
|
||||
# PrevSoldeCP=Previous Balance
|
||||
# NewSoldeCP=New Balance
|
||||
# alreadyCPexist=A request for holidays has already been done on this period.
|
||||
ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
|
||||
AddEventToUserOkCP=The addition of the exceptional leave has been completed.
|
||||
MenuLogCP=View logs of holidays
|
||||
LogCP=Log of updates of holidays
|
||||
ActionByCP=Performed by
|
||||
UserUpdateCP=For the user
|
||||
PrevSoldeCP=Previous Balance
|
||||
NewSoldeCP=New Balance
|
||||
alreadyCPexist=A request for holidays has already been done on this period.
|
||||
UserName=Nimi
|
||||
# Employee=Employee
|
||||
# FirstDayOfHoliday=First day of holiday
|
||||
# LastDayOfHoliday=Last day of holiday
|
||||
# HolidaysMonthlyUpdate=Monthly update
|
||||
# ManualUpdate=Manual update
|
||||
# HolidaysCancelation=Holidays cancelation
|
||||
Employee=Employee
|
||||
FirstDayOfHoliday=First day of holiday
|
||||
LastDayOfHoliday=Last day of holiday
|
||||
HolidaysMonthlyUpdate=Monthly update
|
||||
ManualUpdate=Manual update
|
||||
HolidaysCancelation=Holidays cancelation
|
||||
|
||||
## Configuration du Module ##
|
||||
# ConfCP=Configuration of holidays module
|
||||
# DescOptionCP=Description of the option
|
||||
ConfCP=Configuration of holidays module
|
||||
DescOptionCP=Description of the option
|
||||
ValueOptionCP=Value
|
||||
# GroupToValidateCP=Group with the ability to approve holidays
|
||||
# ConfirmConfigCP=Validate the configuration
|
||||
# LastUpdateCP=Last updated automatically of holidays
|
||||
# UpdateConfCPOK=Updated successfully.
|
||||
# ErrorUpdateConfCP=An error occurred during the update, please try again.
|
||||
# AddCPforUsers=Please add the balance of holidays of users by <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">clicking here</a>.
|
||||
# DelayForSubmitCP=Deadline to apply for holidays
|
||||
# AlertapprobatortorDelayCP=Prevent the approbator if the holiday request does not match the deadline
|
||||
# AlertValidatorDelayCP=Préevent the approbator if the holiday request exceed delay
|
||||
# AlertValidorSoldeCP=Prevent the approbator if the holiday request exceed the balance
|
||||
# nbUserCP=Number of users supported in the module holidays
|
||||
# nbHolidayDeductedCP=Number of holidays to be deducted per day of holiday taken
|
||||
# nbHolidayEveryMonthCP=Number of holidays added every month
|
||||
# Module27130Name= Management of holidays
|
||||
# Module27130Desc= Management of holidays
|
||||
# TitleOptionMainCP=Main settings of holidays
|
||||
# TitleOptionEventCP=Settings of holidays related to events
|
||||
GroupToValidateCP=Group with the ability to approve holidays
|
||||
ConfirmConfigCP=Validate the configuration
|
||||
LastUpdateCP=Last updated automatically of holidays
|
||||
UpdateConfCPOK=Updated successfully.
|
||||
ErrorUpdateConfCP=An error occurred during the update, please try again.
|
||||
AddCPforUsers=Please add the balance of holidays of users by <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">clicking here</a>.
|
||||
DelayForSubmitCP=Deadline to apply for holidays
|
||||
AlertapprobatortorDelayCP=Prevent the approbator if the holiday request does not match the deadline
|
||||
AlertValidatorDelayCP=Préevent the approbator if the holiday request exceed delay
|
||||
AlertValidorSoldeCP=Prevent the approbator if the holiday request exceed the balance
|
||||
nbUserCP=Number of users supported in the module holidays
|
||||
nbHolidayDeductedCP=Number of holidays to be deducted per day of holiday taken
|
||||
nbHolidayEveryMonthCP=Number of holidays added every month
|
||||
Module27130Name= Management of holidays
|
||||
Module27130Desc= Management of holidays
|
||||
TitleOptionMainCP=Main settings of holidays
|
||||
TitleOptionEventCP=Settings of holidays related to events
|
||||
ValidEventCP=Validate
|
||||
# UpdateEventCP=Update events
|
||||
UpdateEventCP=Update events
|
||||
CreateEventCP=Luo
|
||||
# NameEventCP=Event name
|
||||
# OkCreateEventCP=The addition of the event went well.
|
||||
# ErrorCreateEventCP=Error creating the event.
|
||||
# UpdateEventOkCP=The update of the event went well.
|
||||
# ErrorUpdateEventCP=Error while updating the event.
|
||||
# DeleteEventCP=Delete Event
|
||||
# DeleteEventOkCP=The event has been deleted.
|
||||
# ErrorDeleteEventCP=Error while deleting the event.
|
||||
# TitleDeleteEventCP=Delete a exceptional leave
|
||||
# TitleCreateEventCP=Create a exceptional leave
|
||||
# TitleUpdateEventCP=Edit or delete a exceptional leave
|
||||
NameEventCP=Event name
|
||||
OkCreateEventCP=The addition of the event went well.
|
||||
ErrorCreateEventCP=Error creating the event.
|
||||
UpdateEventOkCP=The update of the event went well.
|
||||
ErrorUpdateEventCP=Error while updating the event.
|
||||
DeleteEventCP=Delete Event
|
||||
DeleteEventOkCP=The event has been deleted.
|
||||
ErrorDeleteEventCP=Error while deleting the event.
|
||||
TitleDeleteEventCP=Delete a exceptional leave
|
||||
TitleCreateEventCP=Create a exceptional leave
|
||||
TitleUpdateEventCP=Edit or delete a exceptional leave
|
||||
DeleteEventOptionCP=Poistaa
|
||||
UpdateEventOptionCP=Päivittää
|
||||
# ErrorMailNotSend=An error occurred while sending email:
|
||||
# NoCPforMonth=No leave this month.
|
||||
# nbJours=Number days
|
||||
# TitleAdminCP=Configuration of Holidays
|
||||
|
||||
ErrorMailNotSend=An error occurred while sending email:
|
||||
NoCPforMonth=No leave this month.
|
||||
nbJours=Number days
|
||||
TitleAdminCP=Configuration of Holidays
|
||||
#Messages
|
||||
# Hello=Hello
|
||||
# HolidaysToValidate=Validate holidays
|
||||
# HolidaysToValidateBody=Below is a request for holidays to validate
|
||||
# HolidaysToValidateDelay=This request for holidays will take place within a period of less than %s days.
|
||||
# HolidaysToValidateAlertSolde=The user who made this request for holidays do not have enough available days.
|
||||
# HolidaysValidated=Validated holidays
|
||||
# HolidaysValidatedBody=Your request for holidays for %s to %s has been validated.
|
||||
# HolidaysRefused=Denied holidays
|
||||
# HolidaysRefusedBody=Your request for holidays for %s to %s has been denied for the following reason :
|
||||
# HolidaysCanceled=Canceled holidays
|
||||
# HolidaysCanceledBody=Your request for holidays for %s to %s has been canceled.
|
||||
|
||||
# Permission20001=Read/create/modify their holidays
|
||||
# Permission20002=Read/modify all requests of holidays
|
||||
# Permission20003=Delete their holidays requests
|
||||
# Permission20004=Define users holidays
|
||||
# Permission20005=Review log of modified holidays
|
||||
# Permission20006=Access holidays monthly report
|
||||
Hello=Hello
|
||||
HolidaysToValidate=Validate holidays
|
||||
HolidaysToValidateBody=Below is a request for holidays to validate
|
||||
HolidaysToValidateDelay=This request for holidays will take place within a period of less than %s days.
|
||||
HolidaysToValidateAlertSolde=The user who made this request for holidays do not have enough available days.
|
||||
HolidaysValidated=Validated holidays
|
||||
HolidaysValidatedBody=Your request for holidays for %s to %s has been validated.
|
||||
HolidaysRefused=Denied holidays
|
||||
HolidaysRefusedBody=Your request for holidays for %s to %s has been denied for the following reason :
|
||||
HolidaysCanceled=Canceled holidays
|
||||
HolidaysCanceledBody=Your request for holidays for %s to %s has been canceled.
|
||||
Permission20000=Read you own holidays
|
||||
Permission20001=Create/modify your holidays
|
||||
Permission20002=Create/modify holidays for everybody
|
||||
Permission20003=Delete holidays requests
|
||||
Permission20004=Setup users holidays
|
||||
Permission20005=Review log of modified holidays
|
||||
Permission20006=Read holidays monthly report
|
||||
|
||||
@ -9,7 +9,7 @@ ConfFileCouldBeCreated=Configuration <b>file %s</b> voitaisiin luoda.
|
||||
ConfFileIsNotWritable=Kokoonpano <b>tiedostoa %s</b> ei ole kirjoitettavissa. Tarkista käyttöoikeudet. Ensimmäistä kertaa asentaa, verkkopalvelimesi on myönnettävä voi kirjoittaa tämä tiedosto aikana asennusprosessi ( "chmod 666" esimerkiksi Unix kuten OS).
|
||||
ConfFileIsWritable=Configuration <b>file %s</b> on kirjoitettavissa.
|
||||
ConfFileReload=Päivitä kaikki tiedot asetustiedosto.
|
||||
PHPSupportSessions=Tämä PHP tukee istunnoissa.
|
||||
PHPSupportSessions=Tämä PHP tukee istuntoja.
|
||||
PHPSupportPOSTGETOk=Tämä PHP tukee muuttujat POST ja GET.
|
||||
PHPSupportPOSTGETKo=On mahdollista, sinun PHP asennusohjelma ei tue muuttujat POST tai GET. Tarkista parametri <b>variables_order</b> vuonna php.ini.
|
||||
PHPSupportGD=Tämä PHP tukea GD graafisia toimintoja.
|
||||
@ -25,14 +25,14 @@ ErrorGoBackAndCorrectParameters=Siirry taaksepäin ja korjata väärin parametri
|
||||
ErrorWrongValueForParameter=Olet ehkä kirjoittanut väärän arvon parametri ' %s'.
|
||||
ErrorFailedToCreateDatabase=Luominen epäonnistui tietokanta ' %s'.
|
||||
ErrorFailedToConnectToDatabase=Epäonnistui muodostaa tietokanta ' %s'.
|
||||
# ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
|
||||
ErrorDatabaseVersionTooLow=Tietokannan versio (%s) on liian vanha. Versio %s tai korkeampi on tarpeen.
|
||||
ErrorPHPVersionTooLow=PHP versio liian vanha. Versio %s on tarpeen.
|
||||
WarningPHPVersionTooLow=PHP version liian vanha. Versio %s tai enemmän odotetaan. Tämä versio pitäisi mahdollistaa asentaa mutta ei tueta.
|
||||
ErrorConnectedButDatabaseNotFound=Yhteys palvelimeen onnistunut mutta tietokantaan %s ei löydy.
|
||||
ErrorDatabaseAlreadyExists=Database ' %s' on jo olemassa.
|
||||
IfDatabaseNotExistsGoBackAndUncheckCreate=Jos tietokanta ei ole, palaa takaisin ja tarkistaa vaihtoehto "Luo tietokanta".
|
||||
IfDatabaseExistsGoBackAndCheckCreate=Jos tietokanta on jo olemassa, mene takaisin ja poista "Luo tietokanta" vaihtoehto.
|
||||
# WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
|
||||
WarningBrowserTooOld=Selaimesi versio on liian vanha. Selaimen päivitys tuoreimpaan versioon on suositeltavaa. Suosittelemme selaimeksi Firefoxia, Chromea tai Operaa.
|
||||
PHPVersion=PHP Version
|
||||
YouCanContinue=Voit jatkaa ...
|
||||
PleaseBePatient=Ole kärsivällinen ...
|
||||
@ -154,11 +154,10 @@ MigrationShippingDelivery2=Päivitä varastointi merenkulun 2
|
||||
MigrationFinished=Muuttoliike valmis
|
||||
LastStepDesc=<strong>Viimeinen askel:</strong> Määritä tässä käyttäjätunnuksen ja salasanan aiot käyttää yhteyden ohjelmisto. Älä löysä tämä on tilin hallinnoida kaikkia muita.
|
||||
ActivateModule=Aktivoi moduuli %s
|
||||
# ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
|
||||
ShowEditTechnicalParameters=Klikkaa tästä näyttääksesi/muuttaaksesi edistyneemmät parametrit (asiantuntija tila)
|
||||
|
||||
#########
|
||||
# upgrade
|
||||
#########
|
||||
MigrationFixData=Korjaus denormalized tiedot
|
||||
MigrationOrder=Tietojen siirtäminen asiakkaiden tilauksia
|
||||
MigrationSupplierOrder=Tietojen siirtäminen toimittajille tilausten
|
||||
@ -206,4 +205,7 @@ MigrationProjectUserResp=Tietojen siirtäminen alalla fk_user_resp ja llx_projet
|
||||
MigrationProjectTaskTime=Päivitä aika sekunneissa
|
||||
MigrationActioncommElement=Päivitä tiedot toimista
|
||||
MigrationPaymentMode=Tiedot muuttoliike maksua tilassa
|
||||
# MigrationCategorieAssociation=Migration of categories
|
||||
MigrationCategorieAssociation=Kategorioiden siirto
|
||||
|
||||
ShowNotAvailableOptions=Show not available options
|
||||
HideNotAvailableOptions=Hide not available options
|
||||
|
||||
@ -34,7 +34,6 @@ ReturnCP=Retour à la page précédente
|
||||
ErrorUserViewCP=Vous n'êtes pas autorisé à lire cette demande de congés.
|
||||
InfosCP=Informations de la demande de congés
|
||||
InfosWorkflowCP=Informations du workflow
|
||||
DateCreateCP=Date de création
|
||||
RequestByCP=Demandée par
|
||||
TitreRequestCP=Fiche Congés
|
||||
NbUseDaysCP=Nombre de jours de congés consommés
|
||||
@ -130,7 +129,6 @@ ErrorMailNotSend=Une erreur est survenue lors de l'envoi du mail :
|
||||
NoCPforMonth=Aucun congé ce mois-ci.
|
||||
nbJours=Nombre jours
|
||||
TitleAdminCP=Configuration des Congés
|
||||
|
||||
#Messages
|
||||
Hello=Bonjour
|
||||
HolidaysToValidate=Congés payés à valider
|
||||
@ -143,10 +141,10 @@ HolidaysRefused=Congés payés refusée
|
||||
HolidaysRefusedBody=Votre demande de congés payés %s à %s vient d'être refusée pour le motif suivant :
|
||||
HolidaysCanceled=Congés payés annulée
|
||||
HolidaysCanceledBody=Votre demande de congés %s à %s va été annulée.
|
||||
|
||||
Permission20001=Lire / Créer / modifier ses congès
|
||||
Permission20002=Lire / Modifier toutes les demandes de congés payés
|
||||
Permission20003=Supprimer des demandes de congés payés
|
||||
Permission20004=Définir les congés payés des utilisateurs
|
||||
Permission20000=Lire ses propres congès
|
||||
Permission20001=Créer/modifier ses propres congès
|
||||
Permission20002=Créer/modifier les congès pour tout le monde
|
||||
Permission20003=Supprimer les demandes de congés
|
||||
Permission20004=Définir les congés des utilisateurs
|
||||
Permission20005=Voir les logs de modification des congés payés
|
||||
Permission20006=Accéder au rapport mensuel des congés payés
|
||||
Permission20006=Accéder au rapport mensuel des congés
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user